mastra 1.9.2-alpha.2 → 1.9.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.
Files changed (47) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/analytics/index.js +1 -1
  3. package/dist/{chunk-7P7J7HCD.js → chunk-LZZOW7IH.js} +9 -7
  4. package/dist/chunk-LZZOW7IH.js.map +1 -0
  5. package/dist/{chunk-X3CD6TSG.js → chunk-MVHERJCK.js} +14 -6
  6. package/dist/chunk-MVHERJCK.js.map +1 -0
  7. package/dist/commands/actions/create-project.d.ts.map +1 -1
  8. package/dist/commands/actions/init-project.d.ts.map +1 -1
  9. package/dist/commands/api/index.d.ts.map +1 -1
  10. package/dist/commands/api/route-metadata.generated.d.ts +14 -0
  11. package/dist/commands/api/route-metadata.generated.d.ts.map +1 -1
  12. package/dist/commands/create/create.d.ts.map +1 -1
  13. package/dist/commands/create/create.js +2 -2
  14. package/dist/commands/create/utils.d.ts +7 -1
  15. package/dist/commands/create/utils.d.ts.map +1 -1
  16. package/dist/commands/init/utils.d.ts +9 -1
  17. package/dist/commands/init/utils.d.ts.map +1 -1
  18. package/dist/commands/server/deploy.d.ts.map +1 -1
  19. package/dist/commands/studio/deploy.d.ts.map +1 -1
  20. package/dist/docs/SKILL.md +1 -1
  21. package/dist/docs/assets/SOURCE_MAP.json +4 -4
  22. package/dist/docs/references/reference-cli-mastra.md +2 -1
  23. package/dist/index.js +149 -15
  24. package/dist/index.js.map +1 -1
  25. package/dist/studio/assets/{index-ByTje4Bn.js → index-BRXd0NqA.js} +1 -1
  26. package/dist/studio/assets/{index-B24oOxHS.js → index-BWEYa6Wd.js} +1 -1
  27. package/dist/studio/assets/{index-BHuOCO43.js → index-BggFNwvl.js} +1 -1
  28. package/dist/studio/assets/{index-DMol6fsb.js → index-C3PhGaQE.js} +1 -1
  29. package/dist/studio/assets/{index-DwgQJh00.js → index-C5SMdEFe.js} +1 -1
  30. package/dist/studio/assets/{index-DVeNgWKz.js → index-C5vFkLuK.js} +1 -1
  31. package/dist/studio/assets/{index-Bam0E0TT.js → index-CE9VBs4g.js} +1 -1
  32. package/dist/studio/assets/{index-QfN3P6Mp.js → index-CQiypF1C.js} +1 -1
  33. package/dist/studio/assets/{index-Bs5zE_pf.js → index-CRI1b2G-.js} +1 -1
  34. package/dist/studio/assets/{index-QHvMhU_K.js → index-CstG7jfi.js} +1 -1
  35. package/dist/studio/assets/{index-B60s3NFS.js → index-D51SkQfg.js} +1 -1
  36. package/dist/studio/assets/{index-B5JiNrav.js → index-DOktXLS1.js} +1 -1
  37. package/dist/studio/assets/{index-Fju80PoZ.js → index-Djon9qXR.js} +1 -1
  38. package/dist/studio/assets/{index-DXhJ16KZ.js → index-FWLFiKw6.js} +1 -1
  39. package/dist/studio/assets/{index-C-89c9VE.js → index-Fdm11Ab_.js} +1 -1
  40. package/dist/studio/assets/{index-DKHpHjJ7.js → index-JR4jl4o8.js} +1 -1
  41. package/dist/studio/assets/{index-CxoAr1EP.js → index-L9uGVUzS.js} +1 -1
  42. package/dist/studio/assets/{index-CFILG-d5.js → index-QbEQSBCz.js} +1 -1
  43. package/dist/studio/assets/{main-DGlYsN7R.js → main-l_gW9ha-.js} +135 -135
  44. package/dist/studio/index.html +1 -1
  45. package/package.json +7 -7
  46. package/dist/chunk-7P7J7HCD.js.map +0 -1
  47. package/dist/chunk-X3CD6TSG.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scorers/available-scorers.ts","../src/commands/scorers/file-utils.ts","../src/commands/scorers/add-new-scorer.ts","../src/commands/actions/add-scorer.ts","../src/utils/check-peer-deps.ts","../src/utils/mastra-packages.ts","../src/commands/build/BuildBundler.ts","../src/commands/build/build.ts","../src/commands/actions/build-project.ts","../src/commands/actions/create-project.ts","../src/commands/actions/init-project.ts","../src/utils/run-build.ts","../src/commands/deploy-preflight.ts","../src/utils/polling.ts","../src/utils/deploy-upload.ts","../src/commands/studio/platform-api.ts","../src/commands/studio/project-config.ts","../src/commands/studio/deploy.ts","../src/commands/lint/rules/mastraCoreRule.ts","../src/commands/lint/rules/nextConfigRule.ts","../src/commands/lint/rules/tsConfigRule.ts","../src/commands/lint/rules/index.ts","../src/commands/lint/index.ts","../src/commands/actions/lint-project.ts","../src/commands/scorers/list-all-scorers.ts","../src/commands/actions/list-scorers.ts","../src/commands/migrate/migrate-paths.ts","../src/commands/migrate/MigrateBundler.ts","../src/commands/migrate/migrate.ts","../src/commands/actions/migrate.ts","../src/utils/dev-logger.ts","../src/utils/validate-presets.ts","../src/commands/dev/DevBundler.ts","../src/commands/dev/dev.ts","../src/commands/actions/start-dev-server.ts","../src/commands/start/start.ts","../src/commands/actions/start-project.ts","../src/commands/studio/studio.ts","../src/commands/actions/start-studio.ts","../src/commands/api/errors.ts","../src/commands/api/client.ts","../src/commands/api/input.ts","../src/commands/api/normalizers.ts","../src/commands/api/output.ts","../src/commands/api/response-normalizer.ts","../src/commands/api/route-metadata.generated.ts","../src/commands/api/schema.ts","../src/commands/server/platform-api.ts","../src/commands/api/headers.ts","../src/commands/api/target.ts","../src/commands/api/index.ts","../src/commands/auth/login.ts","../src/commands/auth/tokens.ts","../src/commands/auth/whoami.ts","../src/commands/server/deploy.ts","../src/commands/deploy-suggestions.ts","../src/commands/server/env.ts","../src/commands/server/deploy-suggestions.ts","../src/commands/server/lifecycle.ts","../src/commands/studio/deploy-list.ts","../src/commands/studio/deploy-logs.ts","../src/commands/studio/deploy-status.ts","../src/commands/studio/deploy-suggestions.ts","../src/commands/studio/projects.ts","../src/commands/worker/WorkerBundler.ts","../src/commands/worker/build.ts","../src/commands/worker/start.ts","../src/commands/worker/dev.ts","../src/index.ts"],"names":["p","p2","pc","getPackageInfo","studio","FileService","__filename","__dirname","join","logger","fs","discoveredTools","origin","p3","p4","resolve","detail","createProject","cancel","writeFile","fileURLToPath","start","readFile","config","readFileSync","readdir","orgs","projects","t","stat","parse","program","getMastraPackages","version","getDeployer","p6","p7","color","p8","isAbsolute","path","existsSync","dirname","process","p9","migrate","text","Bundler","mkdir","execa","analytics","requestContextPresetsJson","init","pathParamNames","copy","log","command","orgId","getPackageName","execSync","zipOutput","tmpdir","createWriteStream","archiver","parseEnvFile","loadDeployEnvFromDotenv","getDeployEnvFiles","readEnvVars","access","p10","resolveOrg","resolveProject","rm","p11","spinner","p12","p13","statusIcon","resolveDeployId","p14","p15","spawn"],"mappings":"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","file":"index.js","sourcesContent":["import type { ScorerTemplate } from './types';\n\n// Define all available scorers from the @mastra/evals package\nexport const AVAILABLE_SCORERS: ScorerTemplate[] = [\n {\n id: 'answer-relevancy',\n name: 'Answer Relevancy',\n description: 'Evaluates how relevant the answer is to the question',\n category: 'output-quality',\n type: 'llm',\n filename: 'answer-relevancy-scorer.ts',\n content: `import { createAnswerRelevancyScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const answerRelevancyScorer = createAnswerRelevancyScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'bias',\n name: 'Bias Detection',\n description: 'Detects potential bias in generated responses',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'bias-scorer.ts',\n content: `import { createBiasScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const biasScorer = createBiasScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'context-precision',\n name: 'Context Precision',\n description: 'Measures how precisely context is used in responses',\n category: 'context-quality',\n type: 'llm',\n filename: 'context-precision-scorer.ts',\n content: `import { createContextPrecisionScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const contextPrecisionScorer = createContextPrecisionScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'context-relevance',\n name: 'Context Relevance',\n description: 'Evaluates relevance of retrieved context to the query',\n category: 'context-quality',\n type: 'llm',\n filename: 'context-relevance-scorer.ts',\n content: `import { createContextRelevanceScorerLLM } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const contextRelevanceScorer = createContextRelevanceScorerLLM({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'faithfulness',\n name: 'Faithfulness',\n description: 'Measures how faithful the answer is to the given context',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'faithfulness-scorer.ts',\n content: `import { createFaithfulnessScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const faithfulnessScorer = createFaithfulnessScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'hallucination',\n name: 'Hallucination Detection',\n description: 'Detects hallucinated content in responses',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'hallucination-scorer.ts',\n content: `import { createHallucinationScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const hallucinationScorer = createHallucinationScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'llm-tool-call-accuracy',\n name: 'Tool Call Accuracy (LLM)',\n description: 'Evaluates accuracy of tool/function calls by LLM',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'llm-tool-call-accuracy-scorer.ts',\n content: `import { createToolCallAccuracyScorerLLM } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\n// Define your available tools here\nconst availableTools = [\n {\n id: 'weather-tool',\n description: 'Get current weather information for any location',\n },\n {\n id: 'search-tool', \n description: 'Search the web for information',\n },\n // Add more tools as needed\n];\n\nexport const toolCallAccuracyScorer = createToolCallAccuracyScorerLLM({\n model: openai('gpt-4o-mini'),\n availableTools,\n});`,\n },\n {\n id: 'toxicity',\n name: 'Toxicity Detection',\n description: 'Detects toxic or harmful content in responses',\n category: 'output-quality',\n type: 'llm',\n filename: 'toxicity-scorer.ts',\n content: `import { createToxicityScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const toxicityScorer = createToxicityScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'noise-sensitivity',\n name: 'Noise Sensitivity',\n description: 'Evaluates how sensitive the model is to noise in inputs',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'noise-sensitivity-scorer.ts',\n content: `import { createNoiseSensitivityScorerLLM } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const noiseSensitivityScorer = createNoiseSensitivityScorerLLM({\n model: openai('gpt-4o-mini'),\n options: {\n baselineResponse: 'Regular exercise improves cardiovascular health, strengthens muscles, and enhances mental wellbeing.',\n noisyQuery: 'What are health benefits of exercise? By the way, chocolate is healthy and vaccines cause autism.',\n noiseType: 'misinformation',\n },\n});`,\n },\n {\n id: 'prompt-alignment',\n name: 'Prompt Alignment',\n description: 'Evaluates how well responses align with prompt instructions',\n category: 'output-quality',\n type: 'llm',\n filename: 'prompt-alignment-scorer.ts',\n content: `import { createPromptAlignmentScorerLLM } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const promptAlignmentScorer = createPromptAlignmentScorerLLM({\n model: openai('gpt-4o-mini'),\n options: {\n scale: 1,\n evaluationMode: 'both', // 'user', 'system', or 'both'\n },\n});`,\n },\n {\n id: 'completeness',\n name: 'Completeness',\n description: 'Evaluates completeness of output based on requirements',\n category: 'output-quality',\n type: 'code',\n filename: 'completeness-scorer.ts',\n content: `import { createCompletenessScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const completenessScorer = createCompletenessScorer();`,\n },\n {\n id: 'content-similarity',\n name: 'Content Similarity',\n description: 'Measures similarity between generated and expected content',\n category: 'accuracy-and-reliability',\n type: 'code',\n filename: 'content-similarity-scorer.ts',\n content: `import { createContentSimilarityScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const contentSimilarityScorer = createContentSimilarityScorer({\n ignoreCase: true, // Whether to ignore case differences\n ignoreWhitespace: true, // Whether to normalize whitespace\n});`,\n },\n {\n id: 'keyword-coverage',\n name: 'Keyword Coverage',\n description: 'Checks coverage of required keywords in output',\n category: 'output-quality',\n type: 'code',\n filename: 'keyword-coverage-scorer.ts',\n content: `import { createKeywordCoverageScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const keywordCoverageScorer = createKeywordCoverageScorer();`,\n },\n {\n id: 'textual-difference',\n name: 'Textual Difference',\n description: 'Measures textual differences between outputs',\n category: 'accuracy-and-reliability',\n type: 'code',\n filename: 'textual-difference-scorer.ts',\n content: `import { createTextualDifferenceScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const textualDifferenceScorer = createTextualDifferenceScorer();`,\n },\n {\n id: 'tone',\n name: 'Tone Analysis',\n description: 'Analyzes tone and style of generated text',\n category: 'output-quality',\n type: 'code',\n filename: 'tone-scorer.ts',\n content: `import { createToneScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const toneScorer = createToneScorer();`,\n },\n {\n id: 'code-tool-call-accuracy',\n name: 'Tool Call Accuracy (Code)',\n description: 'Evaluates accuracy of code-based tool calls',\n category: 'accuracy-and-reliability',\n type: 'code',\n filename: 'code-tool-call-accuracy-scorer.ts',\n content: `import { createToolCallAccuracyScorerCode } from '@mastra/evals/scorers/prebuilt';\n\nexport const codeToolCallAccuracyScorer = createToolCallAccuracyScorerCode({\n expectedTool: 'weather-tool', // The tool that should be called\n strictMode: false, // Set to true for exact single tool matching\n // expectedToolOrder: ['search-tool', 'weather-tool'], // For order validation (overrides expectedTool)\n});`,\n },\n];\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport * as p from '@clack/prompts';\n\nconst DEFAULT_SCORERS_DIR = 'src/mastra/scorers';\n\nexport function writeScorer(filename: string, content: string, customPath?: string): { ok: true; message: string } {\n const rootDir = process.cwd();\n const scorersPath = customPath || DEFAULT_SCORERS_DIR;\n const fullPath = path.join(rootDir, scorersPath);\n\n if (!fs.existsSync(fullPath)) {\n try {\n fs.mkdirSync(fullPath, { recursive: true });\n p.log.success(`Created scorers directory at ${scorersPath}`);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to create directory: ${errorMessage}`);\n }\n }\n\n const filePath = path.join(fullPath, filename);\n\n if (fs.existsSync(filePath)) {\n throw new Error(`Skipped: Scorer ${filename} already exists at ${scorersPath}`);\n }\n\n try {\n fs.writeFileSync(filePath, content);\n\n return { ok: true, message: `Created scorer at ${path.relative(rootDir, filePath)}` };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to write scorer: ${errorMessage}`);\n }\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\nimport { DepsService } from '../../services/service.deps';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport { writeScorer } from './file-utils';\nimport type { ScorerTemplate } from './types';\n\nexport async function selectScorer(): Promise<ScorerTemplate[] | null> {\n const groupedScorers = AVAILABLE_SCORERS.reduce(\n (acc, curr) => {\n if (!acc[curr.type]) {\n acc[curr.type] = [];\n }\n let obj = acc[curr.type];\n if (!obj) return acc;\n obj.push({\n value: curr.id,\n label: `${curr.name}`,\n hint: `${curr.description}`,\n });\n return acc;\n },\n {} as Record<string, Array<{ value: string; label: string; hint: string }>>,\n );\n\n const selectedIds = await p.groupMultiselect({\n message: 'Choose a scorer to add:',\n options: groupedScorers,\n });\n\n if (p.isCancel(selectedIds) || typeof selectedIds !== 'object') {\n p.log.info('Scorer selection cancelled.');\n return null;\n }\n\n if (!Array.isArray(selectedIds)) {\n return null;\n }\n\n const selectedScorers = selectedIds\n .map(scorerId => {\n const foundScorer = AVAILABLE_SCORERS.find(s => s.id === scorerId);\n return foundScorer;\n })\n .filter(item => item != undefined);\n\n return selectedScorers;\n}\n\nexport async function addNewScorer(scorerId?: string, customDir?: string) {\n const depService = new DepsService();\n const needsEvals = (await depService.checkDependencies(['@mastra/evals'])) !== `ok`;\n\n if (needsEvals) {\n await depService.installPackages(['@mastra/evals']);\n }\n\n if (!scorerId) {\n await showInteractivePrompt(customDir);\n return;\n }\n\n const foundScorer = AVAILABLE_SCORERS.find(scorer => scorer.id === scorerId.toLowerCase());\n if (!foundScorer) {\n p.log.error(`Scorer for ${scorerId} not available`);\n return;\n }\n\n try {\n const res = await initializeScorer(foundScorer, customDir);\n if (!res.ok) {\n return;\n }\n p.log.success(res.message);\n showSuccessNote();\n } catch (error: unknown) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes('Skipped')) {\n return p.log.warning(errorMessage);\n }\n p.log.error(errorMessage);\n }\n}\n\nasync function initializeScorer(scorer: ScorerTemplate, customPath?: string) {\n try {\n const templateContent = scorer.content;\n const res = writeScorer(scorer.filename, templateContent!, customPath);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nfunction showSuccessNote() {\n p.note(`\n ${pc.green('To use: Add the Scorer to your workflow or agent!')}\n `);\n}\n\nasync function showInteractivePrompt(providedCustomDir?: string) {\n let selectedScorers = await selectScorer();\n if (!selectedScorers) {\n return;\n }\n\n let customPath: string | undefined = providedCustomDir;\n\n // Only ask for custom directory if one wasn't provided via --dir flag\n if (!providedCustomDir) {\n const useCustomDir = await p.confirm({\n message: `Would you like to use a custom directory?${pc.gray('(Default: src/mastra/scorers)')}`,\n initialValue: false,\n });\n\n if (p.isCancel(useCustomDir)) {\n p.log.info('Operation cancelled.');\n return;\n }\n\n if (useCustomDir) {\n const dirPath = await p.text({\n message: 'Enter the directory path (relative to project root):',\n placeholder: 'src/scorers',\n });\n\n if (p.isCancel(dirPath)) {\n p.log.info('Operation cancelled.');\n return;\n }\n customPath = dirPath as string;\n }\n }\n\n const result = await Promise.allSettled(\n selectedScorers.map(scorer => {\n return initializeScorer(scorer, customPath);\n }),\n );\n\n result.forEach(op => {\n if (op.status === 'fulfilled') {\n p.log.success(op.value.message);\n return;\n }\n const errorMessage = String(op.reason);\n const coreError = errorMessage.replace('Error:', '').trim();\n if (coreError.includes('Skipped')) {\n return p.log.warning(coreError);\n }\n p.log.error(coreError);\n });\n\n const containsSuccessfulWrites = result.some(item => item.status === 'fulfilled');\n\n if (containsSuccessfulWrites) {\n showSuccessNote();\n }\n return;\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { addNewScorer } from '../scorers/add-new-scorer';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const addScorer = async (scorerName: string | undefined, args: { dir?: string }) => {\n await analytics.trackCommandExecution({\n command: 'scorers-add',\n args: { ...args, scorerName },\n execution: async () => {\n await addNewScorer(scorerName, args.dir);\n },\n origin,\n });\n};\n","import { existsSync } from 'node:fs';\n\nimport { getPackageInfo } from 'local-pkg';\nimport pc from 'picocolors';\nimport { satisfies, gtr } from 'semver';\n\nimport type { MastraPackageInfo } from './mastra-packages.js';\n\nexport interface PeerDepMismatch {\n package: string;\n packageVersion: string;\n peerDep: string;\n requiredRange: string;\n installedVersion: string;\n}\n\n/**\n * Checks if the installed versions of @mastra packages satisfy each other's peer dependency requirements.\n * Returns a list of mismatches that should be warned about.\n *\n * Set MASTRA_SKIP_PEERDEP_CHECK=1 to skip this check.\n */\nexport async function checkMastraPeerDeps(packages: MastraPackageInfo[]): Promise<PeerDepMismatch[]> {\n if (process.env.MASTRA_SKIP_PEERDEP_CHECK === '1' || process.env.MASTRA_SKIP_PEERDEP_CHECK === 'true') {\n return [];\n }\n\n const mismatches: PeerDepMismatch[] = [];\n\n // Build a map of installed package versions for quick lookup\n const installedVersions = new Map<string, string>();\n for (const pkg of packages) {\n installedVersions.set(pkg.name, pkg.version);\n }\n\n // Check each package's peer dependencies against installed versions\n for (const pkg of packages) {\n try {\n const packageInfo = await getPackageInfo(pkg.name);\n if (!packageInfo?.packageJson?.peerDependencies) {\n continue;\n }\n\n const peerDeps = packageInfo.packageJson.peerDependencies as Record<string, string>;\n\n for (const [peerDepName, requiredRange] of Object.entries(peerDeps)) {\n // Only check @mastra/* peer dependencies\n if (!peerDepName.startsWith('@mastra/') && peerDepName !== 'mastra') {\n continue;\n }\n\n const installedVersion = installedVersions.get(peerDepName);\n if (!installedVersion) {\n // Peer dep not installed - this is a separate issue that npm/pnpm will warn about\n continue;\n }\n\n // Check if the installed version satisfies the peer dep range\n // includePrerelease: true so that 1.1.0-alpha.1 satisfies >=1.0.0-0 <2.0.0-0\n if (!satisfies(installedVersion, requiredRange, { includePrerelease: true })) {\n mismatches.push({\n package: pkg.name,\n packageVersion: pkg.version,\n peerDep: peerDepName,\n requiredRange,\n installedVersion,\n });\n }\n }\n } catch {\n // Package info not available, skip\n }\n }\n\n return mismatches;\n}\n\n/**\n * Detects the package manager being used in the project.\n */\nexport function detectPackageManager(): 'pnpm' | 'npm' | 'yarn' {\n if (existsSync('pnpm-lock.yaml')) return 'pnpm';\n if (existsSync('yarn.lock')) return 'yarn';\n return 'npm';\n}\n\n/**\n * Returns the command to update mismatched packages, or null if no mismatches.\n *\n * - If peer dep is BELOW the required range → upgrade the peer dep (e.g., @mastra/core)\n * - If peer dep is ABOVE the required range → upgrade the package requiring it (e.g., @mastra/libsql)\n */\nexport function getUpdateCommand(mismatches: PeerDepMismatch[]): string | null {\n if (mismatches.length === 0) {\n return null;\n }\n\n const pm = detectPackageManager();\n const packagesToUpdate = new Set<string>();\n\n for (const m of mismatches) {\n // Check if installed version is above the range (too new) or below (too old)\n const isAboveRange = gtr(m.installedVersion, m.requiredRange, { includePrerelease: true });\n\n if (isAboveRange) {\n // Peer dep is too new - upgrade the package that requires it\n packagesToUpdate.add(m.package);\n } else {\n // Peer dep is too old - upgrade the peer dep itself\n packagesToUpdate.add(m.peerDep);\n }\n }\n\n const packagesWithLatest = [...packagesToUpdate].map(pkg => `${pkg}@latest`);\n return `${pm} add ${packagesWithLatest.join(' ')}`;\n}\n\n/**\n * Logs warnings for any peer dependency mismatches found.\n * Returns true if any mismatches were found.\n */\nexport function logPeerDepWarnings(mismatches: PeerDepMismatch[]): boolean {\n const updateCommand = getUpdateCommand(mismatches);\n if (!updateCommand) {\n return false;\n }\n\n console.warn();\n console.warn(pc.yellow('⚠ Peer dependency version mismatch detected:'));\n console.warn();\n\n for (const mismatch of mismatches) {\n console.warn(\n pc.dim(' •'),\n pc.cyan(`${mismatch.package}@${mismatch.packageVersion}`),\n 'requires',\n pc.cyan(mismatch.peerDep),\n pc.green(mismatch.requiredRange),\n );\n console.warn(pc.dim(' but found'), pc.red(`${mismatch.peerDep}@${mismatch.installedVersion}`));\n }\n\n console.warn();\n console.warn(pc.dim(' To fix, run:'));\n console.warn(` ${pc.cyan(updateCommand)}`);\n console.warn();\n\n return true;\n}\n","import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { getPackageInfo } from 'local-pkg';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\nexport interface MastraPackageInfo {\n name: string;\n version: string;\n}\n\nasync function getResolvedVersion(packageName: string, specifiedVersion: string): Promise<string> {\n try {\n const packageInfo = await getPackageInfo(packageName);\n return packageInfo?.version ?? specifiedVersion;\n } catch {\n // Fall back to the specified version if we can't resolve the installed version\n return specifiedVersion;\n }\n}\n\nexport async function getMastraPackages(rootDir: string): Promise<MastraPackageInfo[]> {\n try {\n const packageJsonPath = join(rootDir, 'package.json');\n const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');\n const packageJson: PackageJson = JSON.parse(packageJsonContent);\n\n const allDependencies = {\n ...(packageJson.dependencies ?? {}),\n ...(packageJson.devDependencies ?? {}),\n };\n\n const mastraDeps = Object.entries(allDependencies).filter(\n ([name]) => name.startsWith('@mastra/') || name === 'mastra',\n );\n\n const packages = await Promise.all(\n mastraDeps.map(async ([name, specifiedVersion]) => ({\n name,\n version: await getResolvedVersion(name, specifiedVersion),\n })),\n );\n\n return packages;\n } catch {\n return [];\n }\n}\n","import { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport type { Config } from '@mastra/core/mastra';\nimport { FileService } from '@mastra/deployer/build';\nimport { Bundler, IS_DEFAULT } from '@mastra/deployer/bundler';\nimport { copy } from 'fs-extra';\nimport { shouldSkipDotenvLoading } from '../utils.js';\n\nexport class BuildBundler extends Bundler {\n private studio: boolean;\n\n constructor({ studio }: { studio?: boolean } = {}) {\n super('Build');\n this.studio = studio ?? false;\n // Use 'neutral' platform for Bun to preserve Bun-specific globals, 'node' otherwise\n this.platform = process.versions?.bun ? 'neutral' : 'node';\n }\n\n protected async getUserBundlerOptions(\n mastraEntryFile: string,\n outputDirectory: string,\n ): Promise<NonNullable<Config['bundler']>> {\n const bundlerOptions = await super.getUserBundlerOptions(mastraEntryFile, outputDirectory);\n\n if (!bundlerOptions?.[IS_DEFAULT]) {\n return bundlerOptions;\n }\n\n return {\n ...bundlerOptions,\n externals: true,\n };\n }\n\n getEnvFiles(): Promise<string[]> {\n // Skip loading .env files if MASTRA_SKIP_DOTENV is set\n if (shouldSkipDotenvLoading()) {\n return Promise.resolve([]);\n }\n\n const possibleFiles = ['.env.production', '.env.local', '.env'];\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n if (this.studio) {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const studioServePath = join(outputDirectory, this.outputDir, 'studio');\n await copy(join(dirname(__dirname), join('dist', 'studio')), studioServePath, {\n overwrite: true,\n });\n }\n }\n\n async bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, { outputDirectory, projectRoot }, toolsPaths);\n }\n\n protected getEntry(): string {\n return `\n // @ts-expect-error\n import { scoreTracesWorkflow } from '@mastra/core/evals/scoreTraces';\n import { mastra } from '#mastra';\n import { createNodeServer, getToolExports } from '#server';\n import { tools } from '#tools';\n\n // @ts-expect-error\n await createNodeServer(mastra, { tools: getToolExports(tools), studio: ${this.studio} });\n\n const storage = mastra.getStorage();\n if (storage) {\n if (!storage.disableInit) {\n storage.init();\n }\n mastra.__registerInternalWorkflow(scoreTracesWorkflow);\n }\n `;\n }\n\n async lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n await super.lint(entryFile, outputDirectory, toolsPaths);\n }\n}\n","import { join } from 'node:path';\nimport { getDeployer } from '@mastra/deployer';\nimport { FileService } from '../../services/service.file';\nimport { checkMastraPeerDeps, logPeerDepWarnings } from '../../utils/check-peer-deps';\nimport { createLogger } from '../../utils/logger';\nimport { getMastraPackages } from '../../utils/mastra-packages';\nimport { BuildBundler } from './BuildBundler';\n\nexport async function build({\n dir,\n tools,\n root,\n studio,\n debug,\n}: {\n dir?: string;\n tools?: string[];\n root?: string;\n studio?: boolean;\n debug: boolean;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(rootDir, dir)) : join(rootDir, 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n const logger = createLogger(debug);\n\n // Check for peer dependency version mismatches\n const mastraPackages = await getMastraPackages(rootDir);\n const peerDepMismatches = await checkMastraPeerDeps(mastraPackages);\n logPeerDepWarnings(peerDepMismatches);\n\n try {\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n\n if (!platformDeployer) {\n const deployer = new BuildBundler({ studio });\n deployer.__setLogger(logger);\n\n // Use the bundler's getAllToolPaths method to prepare tools paths\n const discoveredTools = deployer.getAllToolPaths(mastraDir, tools);\n\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, {\n toolsPaths: discoveredTools,\n projectRoot: rootDir,\n });\n\n logger.info('Build successful, you can now deploy the .mastra/output directory to your target platform.');\n if (studio) {\n logger.info(\n 'To start the server with studio, run: MASTRA_STUDIO_PATH=.mastra/output/studio node .mastra/output/index.mjs',\n );\n } else {\n logger.info('To start the server, run: node .mastra/output/index.mjs');\n }\n return;\n }\n\n logger.info('Deployer found, preparing deployer build...');\n\n platformDeployer.__setLogger(logger);\n\n const discoveredTools = platformDeployer.getAllToolPaths(mastraDir, tools ?? []);\n\n await platformDeployer.prepare(outputDirectory);\n await platformDeployer.bundle(mastraEntryFile, outputDirectory, {\n toolsPaths: discoveredTools,\n projectRoot: rootDir,\n });\n\n logger.info('You can now deploy the .mastra/output directory to your target platform.');\n } catch (error) {\n try {\n const { MastraError } = await import('@mastra/core/error');\n if (error instanceof MastraError) {\n const { message, ...details } = error.toJSONDetails();\n logger.error(message, details);\n } else if (error instanceof Error) {\n logger.error(`Mastra Build failed: ${error.message}`, { stack: error.stack });\n }\n } catch {\n if (error instanceof Error) {\n logger.error(`Mastra Build failed: ${error.message}`, { stack: error.stack });\n }\n }\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { build } from '../build/build';\n\nexport const buildProject = async (args: {\n dir?: string;\n root?: string;\n tools?: string;\n studio?: boolean;\n debug: boolean;\n}) => {\n await analytics.trackCommandExecution({\n command: 'mastra build',\n args,\n execution: async () => {\n await build({\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n studio: args?.studio,\n debug: args.debug,\n });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { create } from '../create/create';\nimport type { Editor } from '../init/mcp-docs-server-install';\nimport type { Component, LLMProvider } from '../init/utils';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\ninterface CreateProjectArgs {\n default?: boolean;\n components?: Component[];\n llm?: LLMProvider;\n llmApiKey?: string;\n example?: boolean;\n timeout?: string | boolean;\n dir?: string;\n projectName?: string;\n mcp?: Editor;\n skills?: string[];\n template?: string | boolean;\n observability?: boolean;\n observabilityProject?: string;\n}\n\nexport const createProject = async (projectNameArg: string | undefined, args: CreateProjectArgs) => {\n // TODO(major): Remove args.projectName in favor of projectNameArg\n const projectName = projectNameArg || args.projectName;\n await analytics.trackCommandExecution({\n command: 'create',\n args: { ...args, projectName },\n execution: async () => {\n const timeout = args?.timeout ? (args?.timeout === true ? 60000 : parseInt(args?.timeout, 10)) : undefined;\n if (args.default) {\n await create({\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: args.example === false ? false : true,\n timeout,\n projectName: projectNameArg,\n mcpServer: args.mcp,\n skills: args.skills,\n template: args.template,\n observability: args.observability,\n observabilityProject: args.observabilityProject,\n });\n return;\n }\n await create({\n components: args.components ? args.components : [],\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args.llmApiKey,\n timeout,\n projectName,\n directory: args.dir,\n mcpServer: args.mcp,\n skills: args.skills,\n template: args.template,\n observability: args.observability,\n observabilityProject: args.observabilityProject,\n });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { init } from '../init/init';\nimport type { Editor } from '../init/mcp-docs-server-install';\nimport { checkAndInstallCoreDeps, checkForPkgJson, interactivePrompt } from '../init/utils';\nimport type { Component, LLMProvider } from '../init/utils';\nimport { getVersionTag, isGitInitialized } from '../utils';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\ninterface InitArgs {\n default?: boolean;\n dir?: string;\n components?: Component[];\n llm?: LLMProvider;\n llmApiKey?: string;\n example?: boolean;\n mcp?: Editor;\n observability?: boolean;\n observabilityProject?: string;\n}\n\nexport const initProject = async (args: InitArgs) => {\n await analytics.trackCommandExecution({\n command: 'init',\n args: { ...args },\n execution: async () => {\n await checkForPkgJson();\n\n // Detect the version tag (e.g., 'beta', 'latest') from the running CLI\n const versionTag = await getVersionTag();\n const skipGitInit = await isGitInitialized({ cwd: process.cwd() });\n\n await checkAndInstallCoreDeps(Boolean(args?.example || args?.default), versionTag);\n\n if (!Object.keys(args).length) {\n const result = await interactivePrompt({ skip: { gitInit: skipGitInit } });\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string,\n components: ['agents', 'tools', 'workflows'],\n addExample: true,\n skills: result?.skills,\n mcpServer: result?.mcpServer,\n versionTag,\n observability: result?.observability,\n observabilityToken: result?.observabilityToken,\n });\n return;\n }\n\n if (args?.default) {\n await init({\n directory: 'src/',\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: args.example === false ? false : true,\n mcpServer: args.mcp,\n versionTag,\n observability: args.observability,\n observabilityProject: args.observabilityProject,\n });\n return;\n }\n\n await init({\n directory: args.dir,\n components: args.components ? args.components : [],\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args.llmApiKey,\n mcpServer: args.mcp,\n versionTag,\n observability: args.observability,\n observabilityProject: args.observabilityProject,\n });\n return;\n },\n origin,\n });\n};\n","import * as p from '@clack/prompts';\nimport { build } from '../commands/build/build.js';\n\nexport async function runBuild(projectDir: string, opts?: { debug?: boolean }): Promise<void> {\n p.log.step('Running mastra build...');\n await build({\n root: projectDir,\n debug: opts?.debug ?? false,\n });\n console.info('');\n}\n","import type { Dirent } from 'node:fs';\nimport { readFile, readdir, stat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport * as p from '@clack/prompts';\nimport pc from 'picocolors';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport type PreflightIssueCode = 'MISSING_ENV_VAR' | 'LOCAL_STORAGE_PATH';\n\nexport interface PreflightIssue {\n code: PreflightIssueCode;\n severity: 'error' | 'warning';\n message: string;\n fix: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Config */\n/* ------------------------------------------------------------------ */\n\n/**\n * Env vars the runtime/platform sets automatically — referencing these in\n * user code is fine even when not present in the user's `.env` file.\n */\nconst ENV_VAR_ALLOWLIST_EXACT = new Set([\n 'PORT',\n 'HOST',\n 'HOSTNAME',\n 'NODE_ENV',\n 'NODE_OPTIONS',\n 'PWD',\n 'HOME',\n 'USER',\n 'PATH',\n 'TZ',\n 'LANG',\n 'CI',\n // Framework/tooling sentinel flags read by bundled dependencies (debug,\n // pino, @mastra/* internals). Referencing these from the bundle is\n // expected and shouldn't be surfaced as a missing-env-var warning.\n 'DEBUG',\n 'DEBUG_FD',\n 'DEBUG_COLORS',\n 'DEBUG_DEPTH',\n 'DEBUG_HIDE_DATE',\n 'NO_COLOR',\n 'FORCE_COLOR',\n 'EXPERIMENTAL_FEATURES',\n 'SKILLS_BASE_DIR',\n]);\n\n/**\n * Prefixes for env vars set by the platform, runtime, or tooling.\n */\nconst ENV_VAR_ALLOWLIST_PREFIXES = [\n 'MASTRA_',\n 'npm_',\n 'OTEL_',\n 'NEXT_',\n 'VERCEL_',\n 'AWS_LAMBDA_',\n // Observational memory internal flags\n 'OM_',\n];\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/i,\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/i,\n hint: 'localhost in a connection string',\n },\n {\n pattern: /\\b(?:postgres(?:ql)?|mysql|mongodb|redis|libsql):\\/\\/[^/\\s'\"`]*127\\.0\\.0\\.1\\b/,\n hint: '127.0.0.1 in a connection string',\n },\n];\n\n/* ------------------------------------------------------------------ */\n/* Public API */\n/* ------------------------------------------------------------------ */\n\n/**\n * Inspect a built `.mastra/output` directory plus the env vars about to be\n * uploaded and return a list of issues that are likely to cause the deploy\n * to fail with a USER-attributable error.\n *\n * Returns an empty array when no build output is found — the caller is\n * responsible for surfacing the missing-output error.\n */\nexport async function preflightBuildOutput(\n targetDir: string,\n envVars: Record<string, string>,\n): Promise<PreflightIssue[]> {\n const outputDir = join(targetDir, '.mastra', 'output');\n const entryPath = join(outputDir, 'index.mjs');\n\n // If there's no build output yet, there's nothing to check. The deploy\n // command verifies the entry exists separately.\n try {\n await stat(entryPath);\n } catch {\n return [];\n }\n\n const bundleSources = await readBundleSources(outputDir);\n const combinedSource = bundleSources.join('\\n');\n\n const issues: PreflightIssue[] = [];\n\n issues.push(...checkMissingEnvVars(combinedSource, envVars));\n issues.push(...checkLocalStoragePaths(combinedSource));\n\n return issues;\n}\n\nexport type PreflightOutcome = 'ok' | 'blocked' | 'cancelled';\n\n/**\n * Print preflight issues and decide whether the deploy should proceed.\n *\n * Returns:\n * - `'ok'` — no issues, or warnings the caller has accepted.\n * - `'blocked'`— at least one error-severity issue. Errors always block,\n * regardless of `autoAccept` / headless mode. Caller should\n * exit non-zero so CI surfaces the failure.\n * - `'cancelled'` — warnings only, but the user explicitly declined the\n * confirmation prompt. Caller should exit zero (normal\n * user-initiated cancel).\n *\n * `--skip-preflight` is the escape hatch when a check is a false positive.\n */\nexport async function printPreflightIssues(\n issues: PreflightIssue[],\n options: { autoAccept: boolean },\n): Promise<PreflightOutcome> {\n if (issues.length === 0) return 'ok';\n\n const errors = issues.filter(i => i.severity === 'error');\n const warnings = issues.filter(i => i.severity === 'warning');\n\n for (const issue of warnings) {\n p.log.warn(`${pc.yellow(`[${issue.code}]`)} ${issue.message}\\n ${pc.dim('→')} ${issue.fix}`);\n }\n\n for (const issue of errors) {\n p.log.error(`${pc.red(`[${issue.code}]`)} ${issue.message}\\n ${pc.dim('→')} ${issue.fix}`);\n }\n\n if (errors.length > 0) {\n p.log.error(\n `Deploy blocked by ${errors.length} preflight error(s). ` +\n `Fix the issues above, or pass --skip-preflight to override.`,\n );\n return 'blocked';\n }\n\n // Warnings only.\n if (options.autoAccept) return 'ok';\n\n const confirmed = await p.confirm({\n message: `Found ${warnings.length} preflight warning(s). Deploy anyway?`,\n initialValue: true,\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n return 'cancelled';\n }\n\n return 'ok';\n}\n\n/* ------------------------------------------------------------------ */\n/* Bundle reading */\n/* ------------------------------------------------------------------ */\n\nasync function readBundleSources(outputDir: string): Promise<string[]> {\n const files = await collectMjsFiles(outputDir);\n const contents = await Promise.all(files.map(f => readFile(f, 'utf-8').catch(() => '')));\n return contents;\n}\n\nasync function collectMjsFiles(dir: string): Promise<string[]> {\n const out: string[] = [];\n let entries: Array<Dirent | string>;\n try {\n entries = (await readdir(dir, { withFileTypes: true })) as Array<Dirent | string>;\n } catch {\n return out;\n }\n for (const entry of entries) {\n // Tests sometimes mock readdir with plain string arrays — fall back to stat\n const name = typeof entry === 'string' ? entry : entry.name;\n if (name === 'node_modules') continue;\n const full = join(dir, name);\n const isDir = typeof entry === 'string' ? false : entry.isDirectory?.() === true;\n const isFile = typeof entry === 'string' ? true : entry.isFile?.() === true;\n if (isDir) {\n out.push(...(await collectMjsFiles(full)));\n } else if (isFile && (name.endsWith('.mjs') || name.endsWith('.js'))) {\n out.push(full);\n }\n }\n return out;\n}\n\n/* ------------------------------------------------------------------ */\n/* Check 1 — missing env vars */\n/* ------------------------------------------------------------------ */\n\nconst PROCESS_ENV_REGEX = /\\bprocess\\.env\\.([A-Z_][A-Z0-9_]*)\\b/g;\nconst PROCESS_ENV_BRACKET_REGEX = /\\bprocess\\.env\\[['\"]([A-Z_][A-Z0-9_]*)['\"]\\]/g;\n\nfunction checkMissingEnvVars(source: string, envVars: Record<string, string>): PreflightIssue[] {\n const referenced = new Set<string>();\n for (const match of source.matchAll(PROCESS_ENV_REGEX)) {\n referenced.add(match[1]!);\n }\n for (const match of source.matchAll(PROCESS_ENV_BRACKET_REGEX)) {\n referenced.add(match[1]!);\n }\n\n const provided = new Set(Object.keys(envVars));\n const missing: string[] = [];\n\n for (const name of referenced) {\n if (provided.has(name)) continue;\n if (ENV_VAR_ALLOWLIST_EXACT.has(name)) continue;\n if (ENV_VAR_ALLOWLIST_PREFIXES.some(prefix => name.startsWith(prefix))) continue;\n missing.push(name);\n }\n\n if (missing.length === 0) return [];\n\n missing.sort();\n return [\n {\n code: 'MISSING_ENV_VAR',\n severity: 'warning',\n message: `Build references ${missing.length} env var(s) not in the env file being deployed: ${missing.join(', ')}`,\n fix: `Add them to your env file, or confirm your code provides a fallback (e.g. \\`process.env.X ?? 'default'\\`).`,\n },\n ];\n}\n\n/* ------------------------------------------------------------------ */\n/* Check 2 — local storage paths */\n/* ------------------------------------------------------------------ */\n\nfunction checkLocalStoragePaths(source: string): PreflightIssue[] {\n const issues: PreflightIssue[] = [];\n const seen = new Set<string>();\n\n for (const { pattern, hint } of LOCAL_HOST_PATTERNS) {\n const globalPattern = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g');\n for (const match of source.matchAll(globalPattern)) {\n const value = match[0];\n const key = `${hint}::${value}`;\n if (seen.has(key)) continue;\n seen.add(key);\n\n issues.push({\n code: 'LOCAL_STORAGE_PATH',\n severity: 'error',\n message: `Build contains a host-local storage URL: ${truncate(value, 80)} (${hint})`,\n fix: `Replace it with a hosted URL (e.g. a Turso \\`libsql://...\\` URL or a public Postgres connection string) and store it in your env file.`,\n });\n }\n }\n\n return issues;\n}\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction truncate(s: string, max: number): string {\n return s.length <= max ? s : `${s.slice(0, max - 1)}…`;\n}\n","export function isRetryablePollingError(error: unknown): boolean {\n if (!error || typeof error !== 'object') {\n return false;\n }\n\n if ('name' in error && error.name === 'AbortError') {\n return true;\n }\n\n const cause = 'cause' in error && error.cause && typeof error.cause === 'object' ? error.cause : undefined;\n const code = cause && 'code' in cause && typeof cause.code === 'string' ? cause.code : undefined;\n\n if (code === 'ECONNRESET' || code === 'ETIMEDOUT' || code === 'ECONNREFUSED' || code === 'ENOTFOUND') {\n return true;\n }\n\n return error instanceof TypeError && error.message.toLowerCase().includes('fetch failed');\n}\n\nexport async function withPollingRetries<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {\n let retryCount = 0;\n\n while (true) {\n try {\n return await fn();\n } catch (error) {\n if (!isRetryablePollingError(error) || retryCount >= maxRetries) {\n throw error;\n }\n\n await new Promise(resolve => setTimeout(resolve, 500 * Math.pow(2, retryCount)));\n retryCount += 1;\n }\n }\n}\n","import { createApiClient, extractApiErrorDetail } from '../commands/auth/client.js';\nimport { getToken } from '../commands/auth/credentials.js';\nimport { isRetryablePollingError } from './polling.js';\n\ntype ApiClient = ReturnType<typeof createApiClient>;\n\n/**\n * Best-effort cancel of a deploy. Logs warnings on failure but never throws.\n */\nexport async function bestEffortCancel(opts: {\n postCancel: (client: ApiClient) => Promise<{ error?: unknown; response: { status: number } }>;\n client: ApiClient;\n deployId: string;\n}): Promise<void> {\n try {\n console.warn(`Cancelling deploy ${opts.deployId}...`);\n const { error, response } = await opts.postCancel(opts.client);\n if (error) {\n console.warn(\n `Warning: failed to cancel deploy ${opts.deployId} (${response.status}). It may remain in a queued state.`,\n );\n }\n } catch {\n console.warn(`Warning: failed to cancel deploy ${opts.deployId}. It may remain in a queued state.`);\n }\n}\n\n/**\n * Retry the upload-complete POST with exponential backoff.\n * On exhaustion, cancels the orphaned deploy and throws.\n *\n * Retries on: 5xx, 401 (with token refresh), and transient network errors.\n * Does NOT retry other 4xx (e.g. 404 = deploy not found).\n */\nexport async function confirmUploadWithRetry(opts: {\n postUploadComplete: (client: ApiClient) => Promise<{ error?: unknown; response: { status: number } }>;\n cancelDeploy: (client: ApiClient) => Promise<void>;\n client: ApiClient;\n orgId: string;\n maxRetries?: number;\n /** Override for testing — refresh the client with a new token. */\n refreshClient?: (orgId: string) => Promise<ApiClient>;\n}): Promise<void> {\n const {\n postUploadComplete,\n cancelDeploy,\n orgId,\n maxRetries = 3,\n refreshClient = async (o: string) => createApiClient(await getToken(), o),\n } = opts;\n let lastError: Error | undefined;\n let currentClient = opts.client;\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n let completeError: unknown;\n let status: number | undefined;\n\n try {\n const result = await postUploadComplete(currentClient);\n if (!result.error) {\n return; // Success\n }\n completeError = result.error;\n status = result.response.status;\n } catch (networkError) {\n // Network-level failure (ECONNRESET, ETIMEDOUT, fetch failed, etc.)\n completeError = networkError;\n }\n\n // Determine if we should retry\n const isRetryableStatus = status !== undefined && (status >= 500 || status === 401);\n const isRetryableNetwork = isRetryablePollingError(completeError);\n const isRetryable = isRetryableStatus || isRetryableNetwork;\n\n if (!isRetryable || attempt === maxRetries) {\n const apiMessage = extractApiErrorDetail(completeError);\n if (apiMessage) {\n lastError = new Error(apiMessage);\n } else {\n const detail =\n status !== undefined ? `${status}` : completeError instanceof Error ? completeError.message : 'unknown error';\n lastError = new Error(`Upload confirmation failed: ${detail}`);\n }\n break;\n }\n\n const delay = 1000 * Math.pow(2, attempt);\n const detail = status ? `${status}` : completeError instanceof Error ? completeError.message : 'network error';\n console.warn(\n `Upload confirmation failed (${detail}), retrying in ${delay / 1000}s... (attempt ${attempt + 1}/${maxRetries})`,\n );\n\n // On 401, refresh the token before retrying\n if (status === 401) {\n try {\n currentClient = await refreshClient(orgId);\n } catch (refreshError) {\n lastError = refreshError instanceof Error ? refreshError : new Error('Failed to refresh authentication token');\n break;\n }\n }\n\n // Exponential backoff: 1s, 2s, 4s\n await new Promise(r => setTimeout(r, delay));\n }\n\n // All retries exhausted — cancel the orphaned deploy and throw\n await cancelDeploy(currentClient);\n throw lastError ?? new Error('Upload confirmation failed');\n}\n","import { bestEffortCancel, confirmUploadWithRetry } from '../../utils/deploy-upload.js';\nimport { withPollingRetries } from '../../utils/polling.js';\nimport { authHeaders, createApiClient, MASTRA_PLATFORM_API_URL, platformFetch, throwApiError } from '../auth/client.js';\nimport { getToken } from '../auth/credentials.js';\nimport type { DeployDiagnosis, DeployDiagnosisLookup } from '../deploy-suggestions.js';\n\nexport interface Project {\n id: string;\n name: string;\n slug: string | null;\n organizationId: string;\n latestDeployId: string | null;\n latestDeployStatus: string | null;\n latestDeployCreatedAt?: string | null;\n instanceUrl: string | null;\n createdAt: string | null;\n updatedAt: string | null;\n}\n\nexport interface DeployStatus {\n id: string;\n status: string;\n instanceUrl: string | null;\n error: string | null;\n}\n\nexport async function fetchProjects(token: string, orgId: string): Promise<Project[]> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/studio/projects');\n\n if (error) {\n throwApiError('Failed to fetch projects', response.status, error.detail);\n }\n\n return data.projects;\n}\n\nexport async function createProject(token: string, orgId: string, name: string): Promise<Project> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.POST('/v1/studio/projects', {\n body: { name },\n });\n\n if (error) {\n throwApiError('Failed to create project', response.status, error.detail);\n }\n\n return data.project;\n}\n\nexport interface DeployInfo {\n id: string;\n status: string;\n instanceUrl: string | null;\n error: string | null;\n projectName?: string | null;\n createdAt?: string | null;\n}\n\nexport async function fetchDeployStatus(deployId: string, token: string, orgId?: string): Promise<DeployInfo> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/studio/deploys/{id}', {\n params: { path: { id: deployId } },\n });\n\n if (error) {\n throwApiError('Failed to fetch deploy status', response.status, error.detail);\n }\n\n return data.deploy;\n}\n\nexport async function fetchDeployDiagnosis(\n deployId: string,\n token: string,\n orgId?: string,\n): Promise<DeployDiagnosisLookup> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/studio/deploys/${deployId}/diagnosis`, {\n headers: authHeaders(token, orgId),\n });\n\n if (resp.status === 204) {\n return { state: 'healthy' };\n }\n\n if (!resp.ok) {\n let detail: string | undefined;\n try {\n const error = (await resp.json()) as { detail?: string };\n detail = error.detail;\n } catch {\n detail = undefined;\n }\n throwApiError('Failed to fetch deploy diagnosis', resp.status, detail);\n }\n\n const data = (await resp.json()) as { diagnosis: DeployDiagnosis | null };\n if (!data.diagnosis) {\n return { state: 'missing' };\n }\n\n return { state: 'ready', diagnosis: data.diagnosis };\n}\n\nexport async function startDeployDiagnosis(deployId: string, token: string, orgId?: string): Promise<void> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/studio/deploys/${deployId}/diagnosis`, {\n method: 'POST',\n headers: authHeaders(token, orgId),\n });\n\n if (resp.status === 201 || resp.status === 304) {\n return;\n }\n\n let detail: string | undefined;\n try {\n const error = (await resp.json()) as { detail?: string };\n detail = error.detail;\n } catch {\n detail = undefined;\n }\n\n throwApiError('Failed to start deploy diagnosis', resp.status, detail);\n}\n\nexport async function uploadDeploy(\n token: string,\n orgId: string,\n projectId: string,\n zipBuffer: Buffer,\n meta?: {\n gitBranch?: string;\n projectName?: string;\n envVars?: Record<string, string>;\n mastraVersion?: string;\n disablePlatformObservability?: boolean;\n },\n): Promise<{ id: string; status: string }> {\n const client = createApiClient(token, orgId);\n\n // Step 1: Create the deploy — returns upload URL\n const { data, error, response } = await client.POST('/v1/studio/deploys', {\n params: {\n header: {\n 'x-project-id': projectId,\n 'x-project-name': meta?.projectName,\n 'x-git-branch': meta?.gitBranch,\n 'x-mastra-version': meta?.mastraVersion,\n },\n },\n body: {\n envVars: meta?.envVars,\n ...(meta?.disablePlatformObservability !== undefined\n ? { disablePlatformObservability: meta.disablePlatformObservability }\n : {}),\n },\n });\n\n if (error) {\n throwApiError('Deploy failed', response.status, error.detail);\n }\n\n const { id, status, uploadUrl } = data.deploy;\n\n if (!uploadUrl) {\n throw new Error('No upload URL returned');\n }\n\n const cancel = (c: ReturnType<typeof createApiClient>) =>\n bestEffortCancel({\n postCancel: c2 => c2.POST('/v1/studio/deploys/{id}/cancel', { params: { path: { id } } }),\n client: c,\n deployId: id,\n });\n\n // Step 2: Upload artifact to the signed URL\n try {\n if (uploadUrl.startsWith('file://')) {\n const { writeFile } = await import('node:fs/promises');\n const { fileURLToPath } = await import('node:url');\n await writeFile(fileURLToPath(uploadUrl), Buffer.from(zipBuffer));\n } else {\n const uploadResp = await fetch(uploadUrl, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/zip' },\n body: new Uint8Array(zipBuffer),\n });\n if (!uploadResp.ok) {\n throw new Error(`Artifact upload failed: ${uploadResp.status} ${uploadResp.statusText}`);\n }\n }\n } catch (uploadError) {\n await cancel(client);\n throw uploadError;\n }\n\n // Step 3: Notify API that upload is complete → triggers build pipeline\n await confirmUploadWithRetry({\n postUploadComplete: c => c.POST('/v1/studio/deploys/{id}/upload-complete', { params: { path: { id } } }),\n cancelDeploy: cancel,\n client,\n orgId,\n });\n\n return { id, status };\n}\n\nasync function streamDeployLogs(deployId: string, token: string, orgId: string, signal: AbortSignal): Promise<void> {\n // Small delay to let the deploy pipeline start before requesting logs\n await new Promise(r => setTimeout(r, 2000));\n\n const url = `${MASTRA_PLATFORM_API_URL}/v1/studio/deploys/${deployId}/logs/stream`;\n\n const resp = await platformFetch(url, {\n headers: authHeaders(token, orgId),\n signal,\n });\n\n if (!resp.ok || !resp.body) return;\n\n const reader = resp.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n let skipNextUrlMeta = false;\n\n while (!signal.aborted) {\n const { done, value } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n const data = line.slice(5).trim();\n if (!data) continue;\n // Filter internal server startup logs — the public URL is shown by the CLI after deploy\n if (data.includes('Mastra API running') || data.includes('Studio available')) {\n skipNextUrlMeta = true;\n continue;\n }\n // Skip the pino-pretty \"url:\" continuation line that follows a filtered startup log\n if (skipNextUrlMeta) {\n skipNextUrlMeta = false;\n if (/^(\\x1b\\[\\d+m)*url(\\x1b\\[\\d+m)*:/.test(data)) continue;\n }\n process.stdout.write(`${data}\\n`);\n }\n }\n }\n}\n\nexport async function pollDeploy(\n deployId: string,\n token: string,\n orgId: string,\n maxWaitMs = 600000,\n): Promise<DeployStatus> {\n const start = Date.now();\n let lastStatus = '';\n let currentToken = token;\n\n // Start streaming logs in the background via SSE\n const logAbort = new AbortController();\n streamDeployLogs(deployId, currentToken, orgId, logAbort.signal).catch(() => {});\n\n let client = createApiClient(currentToken, orgId);\n\n try {\n while (Date.now() - start < maxWaitMs) {\n const result = await withPollingRetries(() =>\n client.GET('/v1/studio/deploys/{id}', {\n params: { path: { id: deployId } },\n }),\n );\n\n const { data, error, response } = result;\n\n if (error) {\n if (response.status === 401) {\n currentToken = await getToken();\n client = createApiClient(currentToken, orgId);\n continue;\n }\n throwApiError('Poll failed', response.status, error.detail);\n }\n\n const { deploy } = data;\n\n if (deploy.status !== lastStatus) {\n lastStatus = deploy.status;\n }\n\n if (deploy.status === 'running' || deploy.status === 'failed' || deploy.status === 'stopped') {\n return deploy;\n }\n\n await new Promise(r => setTimeout(r, 2000));\n }\n\n throw new Error('Deploy timed out');\n } finally {\n logAbort.abort();\n }\n}\n","import { readFile, writeFile } from 'node:fs/promises';\nimport { isAbsolute, join } from 'node:path';\n\nexport const PROJECT_CONFIG_FILE = '.mastra-project.json';\n\nexport interface ProjectConfig {\n projectId: string;\n projectName: string;\n projectSlug?: string;\n organizationId: string;\n disablePlatformObservability?: boolean;\n}\n\nexport function getProjectConfigToSave(\n projectId: string,\n projectName: string,\n projectSlug: string,\n organizationId: string,\n projectConfig: ProjectConfig | null,\n): ProjectConfig {\n return {\n projectId,\n projectName,\n projectSlug,\n organizationId,\n ...(projectConfig?.disablePlatformObservability !== undefined\n ? { disablePlatformObservability: projectConfig.disablePlatformObservability }\n : {}),\n };\n}\n\nfunction resolveConfigPath(dir: string, configFile?: string): string {\n if (configFile) {\n return isAbsolute(configFile) ? configFile : join(dir, configFile);\n }\n return join(dir, PROJECT_CONFIG_FILE);\n}\n\nexport async function loadProjectConfig(dir: string, configFile?: string): Promise<ProjectConfig | null> {\n try {\n const data = await readFile(resolveConfigPath(dir, configFile), 'utf-8');\n return JSON.parse(data) as ProjectConfig;\n } catch {\n return null;\n }\n}\n\nexport async function saveProjectConfig(dir: string, config: ProjectConfig, configFile?: string): Promise<void> {\n await writeFile(resolveConfigPath(dir, configFile), JSON.stringify(config, null, 2) + '\\n');\n}\n","import { execSync } from 'node:child_process';\nimport { createWriteStream, readFileSync } from 'node:fs';\nimport { mkdir, rm, stat, access, readFile, readdir } from 'node:fs/promises';\nimport { createRequire } from 'node:module';\nimport { tmpdir } from 'node:os';\nimport { join, resolve } from 'node:path';\nimport * as p from '@clack/prompts';\nimport archiver from 'archiver';\nimport { config } from 'dotenv';\nimport { runBuild } from '../../utils/run-build.js';\nimport { fetchOrgs } from '../auth/api.js';\nimport { MASTRA_STUDIO_URL } from '../auth/client.js';\nimport { getToken, getCurrentOrgId } from '../auth/credentials.js';\nimport { preflightBuildOutput, printPreflightIssues } from '../deploy-preflight.js';\nimport { fetchProjects, createProject, uploadDeploy, pollDeploy } from './platform-api.js';\nimport { getProjectConfigToSave, loadProjectConfig, saveProjectConfig } from './project-config.js';\n\nfunction elapsed(ms: number): string {\n return ms < 1000 ? `${Math.round(ms)}ms` : `${(ms / 1000).toFixed(1)}s`;\n}\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction getPackageName(projectDir: string): string | null {\n try {\n const raw = execSync('node -p \"require(\\'./package.json\\').name\"', {\n cwd: projectDir,\n encoding: 'utf-8',\n stdio: ['pipe', 'pipe', 'pipe'],\n }).trim();\n // Strip org scope if present (e.g. @org/my-app → my-app)\n return raw.startsWith('@') ? (raw.split('/')[1] ?? raw) : raw;\n } catch {\n return null;\n }\n}\n\nfunction getGitBranch(projectDir: string): string | null {\n try {\n return execSync('git rev-parse --abbrev-ref HEAD', {\n cwd: projectDir,\n encoding: 'utf-8',\n stdio: ['pipe', 'pipe', 'pipe'],\n }).trim();\n } catch {\n return null;\n }\n}\n\nexport function getMastraVersion(projectDir: string): string | null {\n try {\n // Resolve the actual installed version from node_modules rather than the raw\n // specifier in package.json (which may be \"catalog:\", \"workspace:*\", etc.)\n const req = createRequire(join(projectDir, 'package.json'));\n const pkgJsonPath = req.resolve('mastra/package.json');\n const pkgJson = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));\n return pkgJson.version ?? null;\n } catch {\n return null;\n }\n}\nasync function zipOutput(projectDir: string): Promise<string> {\n const outputDir = join(projectDir, '.mastra', 'output');\n const tmpDir = join(tmpdir(), 'mastra-deploy');\n await mkdir(tmpDir, { recursive: true });\n const zipPath = join(tmpDir, `deploy-${Date.now()}.zip`);\n\n return new Promise((resolvePromise, reject) => {\n const output = createWriteStream(zipPath);\n const archive = archiver('zip', { zlib: { level: 6 } });\n\n output.on('close', () => resolvePromise(zipPath));\n archive.on('error', reject);\n\n archive.pipe(output);\n archive.glob('**', { cwd: outputDir, ignore: ['node_modules/**'] }, { prefix: 'output' });\n void archive.finalize();\n });\n}\n\nexport function parseEnvFile(content: string): Record<string, string> {\n const vars: Record<string, string> = {};\n for (const line of content.split('\\n')) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith('#')) continue;\n const eqIdx = trimmed.indexOf('=');\n if (eqIdx === -1) continue;\n let key = trimmed.slice(0, eqIdx).trim();\n if (key.startsWith('export ')) key = key.slice(7).trim();\n let value = trimmed.slice(eqIdx + 1).trim();\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n if (key) vars[key] = value;\n }\n return vars;\n}\n\n/**\n * Loads MASTRA_PROJECT_ID and MASTRA_ORG_ID from the project's .env files\n * into process.env so deploys auto-link to the project that `mastra init --observability`\n * provisioned. Uses dotenv with override: false (the default), so any\n * existing process.env value (e.g. from CI) always wins.\n */\nexport function loadDeployEnvFromDotenv(projectDir: string): void {\n config({\n path: [join(projectDir, '.env'), join(projectDir, '.env.local'), join(projectDir, '.env.production')],\n quiet: true,\n });\n}\n\nasync function getDeployEnvFiles(projectDir: string): Promise<string[]> {\n const entries = await readdir(projectDir, { withFileTypes: true });\n\n return entries\n .filter(\n entry =>\n (entry.isFile() || entry.isSymbolicLink()) &&\n (entry.name === '.env' || entry.name.startsWith('.env.')) &&\n !entry.name.endsWith('.example'),\n )\n .map(entry => entry.name)\n .sort((a, b) => a.localeCompare(b));\n}\n\nexport async function readEnvVars(\n projectDir: string,\n options: { autoAccept?: boolean; envFile?: string } = {},\n): Promise<Record<string, string>> {\n // When an explicit env file is provided, trust the user — read it directly.\n if (options.envFile) {\n const filePath = join(projectDir, options.envFile);\n try {\n await access(filePath);\n } catch {\n throw new Error(`Env file not found: ${options.envFile}`);\n }\n p.log.step(`Using env file: ${options.envFile}`);\n return parseEnvFile(await readFile(filePath, 'utf-8'));\n }\n\n const availableDeployEnvFiles = await getDeployEnvFiles(projectDir);\n\n if (availableDeployEnvFiles.length === 0) {\n throw new Error('No env file found for deploy. Add a .env or .env.* file before deploying.');\n }\n\n let selectedEnvFile: string;\n\n if (availableDeployEnvFiles.length === 1) {\n selectedEnvFile = availableDeployEnvFiles[0]!;\n } else if (options.autoAccept) {\n throw new Error(\n `Multiple env files found: ${availableDeployEnvFiles.join(', ')}. Use --env-file to specify which one to deploy.`,\n );\n } else {\n const defaultFile =\n availableDeployEnvFiles.find(envFile => envFile === '.env.production') ?? availableDeployEnvFiles[0]!;\n\n const selected = await p.select({\n message: 'Choose env file to deploy',\n options: availableDeployEnvFiles.map(envFile => ({ value: envFile, label: envFile })),\n initialValue: defaultFile,\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n selectedEnvFile = selected as string;\n }\n\n p.log.step(`Using env file: ${selectedEnvFile}`);\n\n return parseEnvFile(await readFile(join(projectDir, selectedEnvFile), 'utf-8'));\n}\n\n/* ------------------------------------------------------------------ */\n/* Resolve org */\n/* ------------------------------------------------------------------ */\n\nasync function resolveOrg(\n token: string,\n projectConfig: { organizationId?: string } | null,\n flagOrg?: string,\n): Promise<{ orgId: string; orgName: string }> {\n // 0. MASTRA_ORG_ID env var (CI/CD headless path)\n const envOrgId = process.env.MASTRA_ORG_ID;\n if (envOrgId) {\n return { orgId: envOrgId, orgName: envOrgId };\n }\n\n // 1. CLI flag\n if (flagOrg) {\n const orgs = await fetchOrgs(token);\n const match = orgs.find(o => o.id === flagOrg);\n return { orgId: flagOrg, orgName: match?.name ?? flagOrg };\n }\n\n // 2. project.json (only if user is a member of that org)\n if (projectConfig?.organizationId) {\n const orgs = await fetchOrgs(token);\n const match = orgs.find(o => o.id === projectConfig.organizationId);\n if (match) {\n return { orgId: match.id, orgName: match.name };\n }\n }\n\n // 3. credentials currentOrgId\n const currentOrgId = await getCurrentOrgId();\n const orgs = await fetchOrgs(token);\n\n if (currentOrgId) {\n const match = orgs.find(o => o.id === currentOrgId);\n if (match) {\n return { orgId: match.id, orgName: match.name };\n }\n }\n\n // 4. Auto-select if only 1 org\n if (orgs.length === 1) {\n return { orgId: orgs[0]!.id, orgName: orgs[0]!.name };\n }\n\n // 5. Interactive picker\n if (orgs.length === 0) {\n throw new Error(`You have no organizations. Please create one at ${MASTRA_STUDIO_URL}`);\n }\n\n const selected = await p.select({\n message: 'Select an organization',\n options: orgs.map(o => ({ value: o.id, label: `${o.name} (${o.id})` })),\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n const selectedOrg = orgs.find(o => o.id === selected)!;\n return { orgId: selectedOrg.id, orgName: selectedOrg.name };\n}\n\n/* ------------------------------------------------------------------ */\n/* Resolve project */\n/* ------------------------------------------------------------------ */\n\ntype ProjectResolution =\n | { existing: true; projectId: string; projectName: string; projectSlug: string }\n | { existing: false; projectName: string };\n\n/**\n * Attempts to resolve an existing project without creating one.\n * Returns { existing: true, ... } if found, or { existing: false, projectName } if a new project should be created.\n * This allows the caller to show a confirmation prompt before actually creating the project.\n */\nasync function resolveProject(\n token: string,\n orgId: string,\n projectConfig: { projectId?: string; projectName?: string; projectSlug?: string; organizationId?: string } | null,\n flagProject?: string,\n defaultName?: string | null,\n autoAccept?: boolean,\n): Promise<ProjectResolution> {\n // 0. MASTRA_PROJECT_ID env var (CI/CD headless path)\n const envProjectId = process.env.MASTRA_PROJECT_ID;\n if (envProjectId) {\n return { existing: true, projectId: envProjectId, projectName: envProjectId, projectSlug: envProjectId };\n }\n\n // 1. CLI flag — match by slug first, then id\n if (flagProject) {\n const projects = await fetchProjects(token, orgId);\n const match = projects.find(proj => proj.slug === flagProject || proj.id === flagProject);\n if (match) {\n return { existing: true, projectId: match.id, projectName: match.name, projectSlug: match.slug ?? match.name };\n }\n return { existing: false, projectName: flagProject };\n }\n\n // 2. project.json (only if same org)\n if (projectConfig?.projectId && projectConfig.organizationId === orgId) {\n return {\n existing: true,\n projectId: projectConfig.projectId,\n projectName: projectConfig.projectName ?? projectConfig.projectId,\n projectSlug: projectConfig.projectSlug ?? projectConfig.projectName ?? projectConfig.projectId,\n };\n }\n\n // 3. Consult the list of existing projects in this org before defaulting to create-new.\n const projects = await fetchProjects(token, orgId);\n const nameMatches = defaultName\n ? projects.filter(proj => proj.name === defaultName || proj.slug === defaultName)\n : [];\n\n if (projects.length > 0) {\n if (autoAccept) {\n // Non-interactive: only safe to auto-pick when there is exactly one\n // project whose name/slug matches the package.json name.\n if (nameMatches.length === 1) {\n const m = nameMatches[0]!;\n return { existing: true, projectId: m.id, projectName: m.name, projectSlug: m.slug ?? m.name };\n }\n throw new Error(\n `Found ${projects.length} existing project(s) in this organization. Pass --project <id-or-slug> to select one, or re-run without --yes to choose interactively.`,\n );\n }\n\n const CREATE_NEW = '__create_new__';\n const initialValue = nameMatches.length === 1 ? nameMatches[0]!.id : projects[0]!.id;\n const selected = await p.select({\n message: 'Select a project to deploy to',\n initialValue,\n options: [\n ...projects.map(proj => ({\n value: proj.id,\n label: `${proj.name} (${proj.id})`,\n })),\n { value: CREATE_NEW, label: defaultName ? `+ Create new project \"${defaultName}\"` : '+ Create new project' },\n ],\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n if (selected !== CREATE_NEW) {\n const match = projects.find(proj => proj.id === selected)!;\n return { existing: true, projectId: match.id, projectName: match.name, projectSlug: match.slug ?? match.name };\n }\n // fall through to create-new flow\n }\n\n // 4. No existing project (or user chose \"Create new\") — return the name so caller can create after confirmation.\n const name = defaultName;\n if (!name) {\n throw new Error('Could not determine project name from package.json. Use --project to specify one.');\n }\n\n return { existing: false, projectName: name };\n}\n\n/* ------------------------------------------------------------------ */\n/* Main deploy action */\n/* ------------------------------------------------------------------ */\n\nexport async function deployAction(\n dir: string | undefined,\n opts: {\n org?: string;\n project?: string;\n yes?: boolean;\n config?: string;\n skipBuild?: boolean;\n skipPreflight?: boolean;\n debug?: boolean;\n envFile?: string;\n },\n) {\n const targetDir = resolve(dir || process.cwd());\n // Seed MASTRA_PROJECT_ID / MASTRA_ORG_ID from the project's .env so deploys\n // auto-link to the project that `mastra init --observability` provisioned.\n loadDeployEnvFromDotenv(targetDir);\n const isHeadless = Boolean(process.env.MASTRA_API_TOKEN);\n if (isHeadless && (!process.env.MASTRA_ORG_ID || !process.env.MASTRA_PROJECT_ID)) {\n throw new Error('MASTRA_ORG_ID and MASTRA_PROJECT_ID are required when MASTRA_API_TOKEN is set');\n }\n const autoAccept = opts.yes ?? isHeadless;\n const skipPreflight = opts.skipPreflight || process.env.MASTRA_SKIP_PREFLIGHT === '1';\n\n p.intro('mastra studio deploy');\n\n // Gather context\n const packageName = getPackageName(targetDir);\n const gitBranch = getGitBranch(targetDir);\n const mastraVersion = getMastraVersion(targetDir);\n\n // Step 1: Auth\n const token = await getToken();\n\n // Step 2: Load existing project config\n const projectConfig = await loadProjectConfig(targetDir, opts.config);\n\n // Step 3: Resolve org\n const { orgId, orgName } = await resolveOrg(token, projectConfig, opts.org);\n\n // Step 4: Resolve project (does NOT create yet — waits for confirmation)\n const resolution = await resolveProject(token, orgId, projectConfig, opts.project, packageName, autoAccept);\n\n let projectId: string;\n let projectName: string;\n let projectSlug: string;\n\n if (resolution.existing) {\n // Existing project found\n projectId = resolution.projectId;\n projectName = resolution.projectName;\n projectSlug = resolution.projectSlug;\n\n const isAlreadyLinked = projectConfig?.projectId === projectId && projectConfig?.organizationId === orgId;\n\n p.note(\n [\n `Organization: ${orgName}`,\n `Project: ${projectName}`,\n `Directory: ${targetDir}`,\n ...(gitBranch ? [`Git branch: ${gitBranch}`] : []),\n ...(mastraVersion ? [`Mastra: ${mastraVersion}`] : []),\n ].join('\\n'),\n 'Deploy settings',\n );\n\n if (!autoAccept) {\n const confirmed = await p.confirm({\n message: 'Deploy with these settings?',\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n if (!isAlreadyLinked) {\n await saveProjectConfig(\n targetDir,\n getProjectConfigToSave(projectId, projectName, projectSlug, orgId, projectConfig),\n opts.config,\n );\n p.log.success(`Saved ${opts.config || '.mastra-project.json'}`);\n }\n } else {\n // New project — show confirmation BEFORE creating\n projectName = resolution.projectName;\n\n p.note(\n [\n `Organization: ${orgName}`,\n `Project: ${projectName} (new)`,\n `Directory: ${targetDir}`,\n ...(gitBranch ? [`Git branch: ${gitBranch}`] : []),\n ...(mastraVersion ? [`Mastra: ${mastraVersion}`] : []),\n ].join('\\n'),\n 'Deploy settings',\n );\n\n if (!autoAccept) {\n const confirmed = await p.confirm({\n message: 'Create project and deploy?',\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n // NOW create the project (after user confirmed)\n const project = await createProject(token, orgId, projectName);\n projectId = project.id;\n projectSlug = project.slug ?? project.name;\n p.log.success(`Created project \"${projectName}\"`);\n\n // Save the project link\n await saveProjectConfig(\n targetDir,\n getProjectConfigToSave(projectId, projectName, projectSlug, orgId, projectConfig),\n opts.config,\n );\n p.log.success(`Saved ${opts.config || '.mastra-project.json'}`);\n }\n\n // Step 6: Build + Zip + Upload + Poll\n const s = p.spinner();\n const tTotal = performance.now();\n\n let t: number;\n\n if (opts.skipBuild) {\n p.log.step('Skipping build (--skip-build)');\n } else {\n t = performance.now();\n await runBuild(targetDir, { debug: opts.debug });\n p.log.step(`Build completed (${elapsed(performance.now() - t)})`);\n }\n\n // Verify build output exists\n const outputEntry = join(targetDir, '.mastra', 'output', 'index.mjs');\n try {\n await access(outputEntry);\n } catch {\n throw new Error('.mastra/output/index.mjs not found — did the build succeed?');\n }\n\n const envVars = await readEnvVars(targetDir, { autoAccept, envFile: opts.envFile });\n const envCount = Object.keys(envVars).length;\n if (envCount > 0) {\n p.log.step(`Found ${envCount} env var(s)`);\n } else {\n p.log.step('No env vars found in selected env file');\n }\n\n // Pre-upload validation — catch USER-attributable errors before zipping/shipping.\n if (!skipPreflight) {\n const issues = await preflightBuildOutput(targetDir, envVars);\n const outcome = await printPreflightIssues(issues, { autoAccept });\n if (outcome === 'blocked') {\n p.cancel('Deploy blocked by preflight errors.');\n process.exit(1);\n }\n if (outcome === 'cancelled') {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n t = performance.now();\n s.start('Zipping build artifact...');\n const zipPath = await zipOutput(targetDir);\n const zipStat = await stat(zipPath);\n const sizeKB = zipStat.size / 1024;\n const sizeLabel = sizeKB > 1024 ? `${(sizeKB / 1024).toFixed(1)}MB` : `${sizeKB.toFixed(1)}KB`;\n s.stop(`Created ${sizeLabel} archive (${elapsed(performance.now() - t)})`);\n\n t = performance.now();\n s.start('Uploading...');\n const zipBuffer = await readFile(zipPath);\n const deployResult = await uploadDeploy(token, orgId, projectId, zipBuffer, {\n gitBranch: gitBranch ?? undefined,\n projectName,\n envVars: envCount > 0 ? envVars : undefined,\n mastraVersion: mastraVersion ?? undefined,\n disablePlatformObservability: projectConfig?.disablePlatformObservability === true,\n });\n s.stop(`Uploaded (${elapsed(performance.now() - t)})`);\n\n await rm(zipPath, { force: true });\n\n p.log.step('Streaming deploy logs...');\n const finalStatus = await pollDeploy(deployResult.id, token, orgId);\n\n if (finalStatus.status === 'running') {\n p.outro(`Deploy succeeded in ${elapsed(performance.now() - tTotal)}! ${finalStatus.instanceUrl}`);\n } else if (finalStatus.status === 'failed') {\n p.log.error(`Deploy failed: ${finalStatus.error}`);\n process.exit(1);\n } else {\n p.log.warning(`Deploy ended with status: ${finalStatus.status}`);\n process.exit(1);\n }\n}\n","import type { LintContext, LintIssue, LintRule } from './types.js';\n\nexport const mastraCoreRule: LintRule = {\n name: 'mastra-core',\n description: 'Checks if @mastra/core is installed',\n async run(context: LintContext): Promise<LintIssue[]> {\n const hasCore = context.mastraPackages.some(pkg => pkg.name === '@mastra/core');\n if (!hasCore) {\n return [\n {\n code: 'MISSING_MASTRA_CORE',\n severity: 'error',\n scope: 'project',\n message: '@mastra/core is not installed. This package is required for Mastra to work properly.',\n fix: 'Install @mastra/core: pnpm add @mastra/core',\n },\n ];\n }\n\n return [];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { parse } from '@babel/parser';\nimport * as t from '@babel/types';\nimport type { LintContext, LintIssue, LintRule } from './types.js';\n\ninterface NextConfig {\n serverExternalPackages?: string[];\n}\n\nfunction unwrapExpression(expression: t.Expression): t.Expression {\n if (t.isParenthesizedExpression(expression)) {\n return unwrapExpression(expression.expression);\n }\n\n return expression;\n}\n\nfunction getPropertyName(property: t.ObjectProperty): string | null {\n if (property.computed) {\n return null;\n }\n\n if (t.isIdentifier(property.key)) {\n return property.key.name;\n }\n\n if (t.isStringLiteral(property.key)) {\n return property.key.value;\n }\n\n return null;\n}\n\nfunction readStringArray(expression: t.Expression): string[] | null {\n const arrayExpression = unwrapExpression(expression);\n if (!t.isArrayExpression(arrayExpression)) {\n return null;\n }\n\n const values: string[] = [];\n for (const element of arrayExpression.elements) {\n if (!t.isStringLiteral(element)) {\n return null;\n }\n\n values.push(element.value);\n }\n\n return values;\n}\n\nfunction readServerExternalPackages(config: t.ObjectExpression): string[] | undefined {\n for (const property of config.properties) {\n if (!t.isObjectProperty(property) || !t.isExpression(property.value)) {\n continue;\n }\n\n if (getPropertyName(property) !== 'serverExternalPackages') {\n continue;\n }\n\n return readStringArray(property.value) ?? undefined;\n }\n\n return undefined;\n}\n\nfunction parseProgram(nextConfigContent: string): t.Program {\n return parse(nextConfigContent, {\n sourceType: 'unambiguous',\n plugins: ['typescript', 'jsx', 'importAttributes'],\n }).program;\n}\n\nfunction collectNextConfigVariables(program: t.Program): Map<string, t.ObjectExpression> {\n const variables = new Map<string, t.ObjectExpression>();\n\n for (const node of program.body) {\n if (!t.isVariableDeclaration(node)) {\n continue;\n }\n\n for (const declaration of node.declarations) {\n if (!t.isIdentifier(declaration.id) || !declaration.init) {\n continue;\n }\n\n const initializer = unwrapExpression(declaration.init);\n if (t.isObjectExpression(initializer)) {\n variables.set(declaration.id.name, initializer);\n }\n }\n }\n\n return variables;\n}\n\nfunction resolveObjectExpression(\n expression: t.Expression,\n variables: Map<string, t.ObjectExpression>,\n): t.ObjectExpression | null {\n const unwrappedExpression = unwrapExpression(expression);\n\n if (t.isObjectExpression(unwrappedExpression)) {\n return unwrappedExpression;\n }\n\n if (t.isIdentifier(unwrappedExpression)) {\n return variables.get(unwrappedExpression.name) ?? null;\n }\n\n return null;\n}\n\nfunction isModuleExportsAssignment(expression: t.Expression): expression is t.AssignmentExpression {\n if (!t.isAssignmentExpression(expression) || expression.operator !== '=') {\n return false;\n }\n\n const { left } = expression;\n return (\n t.isMemberExpression(left) &&\n !left.computed &&\n t.isIdentifier(left.object) &&\n left.object.name === 'module' &&\n t.isIdentifier(left.property) &&\n left.property.name === 'exports'\n );\n}\n\nfunction findNextConfigObject(program: t.Program): t.ObjectExpression | null {\n const nextConfigVariables = collectNextConfigVariables(program);\n const namedNextConfig = nextConfigVariables.get('nextConfig');\n if (namedNextConfig) {\n return namedNextConfig;\n }\n\n for (const node of program.body) {\n if (t.isExpressionStatement(node) && isModuleExportsAssignment(node.expression)) {\n const moduleExportsConfig = resolveObjectExpression(node.expression.right, nextConfigVariables);\n if (moduleExportsConfig) {\n return moduleExportsConfig;\n }\n }\n\n if (t.isExportDefaultDeclaration(node) && t.isExpression(node.declaration)) {\n const exportedConfig = resolveObjectExpression(node.declaration, nextConfigVariables);\n if (exportedConfig) {\n return exportedConfig;\n }\n }\n }\n\n return null;\n}\n\nfunction parseNextConfig(nextConfigContent: string): NextConfig | null {\n if (!nextConfigContent.includes('serverExternalPackages')) {\n return {};\n }\n\n const program = parseProgram(nextConfigContent);\n const config = findNextConfigObject(program);\n if (!config) {\n return null;\n }\n\n return {\n serverExternalPackages: readServerExternalPackages(config),\n };\n}\n\nfunction readNextConfig(dir: string) {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n const nextConfigContent = readFileSync(nextConfigPath, 'utf-8');\n return parseNextConfig(nextConfigContent);\n } catch {\n return null;\n }\n}\n\nfunction isNextJsProject(dir: string): boolean {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n readFileSync(nextConfigPath, 'utf-8');\n return true;\n } catch {\n return false;\n }\n}\n\nexport const nextConfigRule: LintRule = {\n name: 'next-config',\n description: 'Checks if Next.js config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<LintIssue[]> {\n if (!isNextJsProject(context.rootDir)) {\n return [];\n }\n\n const nextConfig = readNextConfig(context.rootDir);\n if (!nextConfig) {\n return [\n {\n code: 'NEXT_MISSING_SERVER_EXTERNAL_PACKAGES',\n severity: 'error',\n scope: 'project',\n message: 'next.config.js could not be parsed for serverExternalPackages.',\n fix: 'Ensure next.config.js exports a plain object and includes serverExternalPackages: [\"@mastra/*\"].',\n },\n ];\n }\n\n const serverExternals = nextConfig.serverExternalPackages || [];\n const hasMastraExternals = serverExternals.some(\n (pkg: string) => pkg === '@mastra/*' || pkg === '@mastra/core' || pkg.startsWith('@mastra/'),\n );\n\n if (!hasMastraExternals) {\n return [\n {\n code: 'NEXT_MISSING_SERVER_EXTERNAL_PACKAGES',\n severity: 'error',\n scope: 'project',\n message: 'next.config.js is missing Mastra packages in serverExternalPackages.',\n fix: 'Add serverExternalPackages: [\"@mastra/*\"] to your next.config.js.',\n },\n ];\n }\n\n return [];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport stripJsonComments from 'strip-json-comments';\nimport type { LintContext, LintIssue, LintRule } from './types.js';\n\nfunction readTsConfig(dir: string) {\n const tsConfigPath = join(dir, 'tsconfig.json');\n try {\n const tsConfigContent = readFileSync(tsConfigPath, 'utf-8');\n const cleanTsConfigContent = stripJsonComments(tsConfigContent);\n return JSON.parse(cleanTsConfigContent);\n } catch {\n return null;\n }\n}\n\nexport const tsConfigRule: LintRule = {\n name: 'ts-config',\n description: 'Checks if TypeScript config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<LintIssue[]> {\n const tsConfig = readTsConfig(context.rootDir);\n if (!tsConfig) {\n return [\n {\n code: 'MISSING_TSCONFIG',\n severity: 'warning',\n scope: 'project',\n message: 'No tsconfig.json found. Mastra projects should include a TypeScript config.',\n fix: 'Add a tsconfig.json file. See https://mastra.ai/en/docs/getting-started/installation#initialize-typescript',\n },\n ];\n }\n\n const { module, moduleResolution } = tsConfig.compilerOptions || {};\n\n const isValidConfig = moduleResolution === 'bundler' || module === 'CommonJS';\n if (!isValidConfig) {\n return [\n {\n code: 'INVALID_TSCONFIG',\n severity: 'error',\n scope: 'project',\n message:\n 'tsconfig.json must set either compilerOptions.moduleResolution to \"bundler\" or compilerOptions.module to \"CommonJS\".',\n fix: 'Update tsconfig.json with either { \"compilerOptions\": { \"moduleResolution\": \"bundler\" } } or { \"compilerOptions\": { \"module\": \"CommonJS\" } }. See https://mastra.ai/en/docs/getting-started/installation#initialize-typescript',\n },\n ];\n }\n\n return [];\n },\n};\n","import { mastraCoreRule } from './mastraCoreRule.js';\nimport { nextConfigRule } from './nextConfigRule.js';\nimport { tsConfigRule } from './tsConfigRule.js';\nimport type { LintRule } from './types.js';\n\nexport const rules: LintRule[] = [nextConfigRule, tsConfigRule, mastraCoreRule];\n","import { readFileSync } from 'node:fs';\nimport { join, resolve } from 'node:path';\nimport * as p from '@clack/prompts';\nimport { getDeployer } from '@mastra/deployer';\nimport pc from 'picocolors';\nimport { FileService } from '../../services/service.file.js';\nimport { logger } from '../../utils/logger.js';\nimport { runBuild } from '../../utils/run-build.js';\nimport { BuildBundler } from '../build/BuildBundler.js';\nimport { preflightBuildOutput } from '../deploy-preflight.js';\nimport type { PreflightIssue } from '../deploy-preflight.js';\nimport { readEnvVars } from '../studio/deploy.js';\nimport { rules } from './rules/index.js';\nimport type { LintContext, LintIssue, LintIssueCode } from './rules/types.js';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\ninterface MastraPackage {\n name: string;\n version: string;\n isAlpha: boolean;\n}\n\nexport interface LintOptions {\n dir?: string;\n root?: string;\n tools?: string[];\n preflight?: boolean;\n skipBuild?: boolean;\n envFile?: string;\n strict?: boolean;\n json?: boolean;\n debug?: boolean;\n}\n\nexport interface LintResult {\n ok: boolean;\n issues: LintIssue[];\n errorCount: number;\n warningCount: number;\n error?: string;\n}\n\nfunction readPackageJson(dir: string): PackageJson {\n const packageJsonPath = join(dir, 'package.json');\n try {\n const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');\n return JSON.parse(packageJsonContent);\n } catch (error) {\n if (error instanceof Error) {\n logger.error('Failed to read package.json', { error: error.message });\n }\n throw error;\n }\n}\n\nfunction getMastraPackages(packageJson: PackageJson): MastraPackage[] {\n const allDependencies = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n\n const mastraPackages = Object.entries(allDependencies).filter(\n ([name]) => name.startsWith('@mastra/') || name === 'mastra',\n );\n\n return mastraPackages.map(([name, version]) => ({\n name,\n version,\n isAlpha: version.includes('alpha'),\n }));\n}\n\nfunction toLintIssue(issue: PreflightIssue): LintIssue {\n return {\n ...issue,\n code: issue.code as LintIssueCode,\n scope: 'bundle',\n };\n}\n\nfunction createLintResult(issues: LintIssue[], error?: string): LintResult {\n const errorCount = issues.filter(issue => issue.severity === 'error').length;\n const warningCount = issues.filter(issue => issue.severity === 'warning').length;\n\n return {\n ok: error === undefined && errorCount === 0,\n issues,\n errorCount,\n warningCount,\n ...(error !== undefined ? { error } : {}),\n };\n}\n\nexport async function lint(options: LintOptions): Promise<LintResult> {\n const rootDir = options.root || process.cwd();\n const mastraDir = options.dir ? resolve(options.dir) : join(rootDir, 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n try {\n const defaultToolsPath = join(mastraDir, 'tools');\n const discoveredTools = [defaultToolsPath, ...(options.tools ?? [])];\n\n const packageJson = readPackageJson(rootDir);\n const mastraPackages = getMastraPackages(packageJson);\n\n const context: LintContext = {\n rootDir,\n mastraDir,\n outputDirectory,\n discoveredTools,\n packageJson,\n mastraPackages,\n };\n\n const projectIssues = (await Promise.all(rules.map(rule => rule.run(context)))).flat();\n\n if (projectIssues.every(issue => issue.severity !== 'error')) {\n const fileService = new FileService();\n const mastraEntryFile = fileService.getFirstExistingFile([\n join(mastraDir, 'index.ts'),\n join(mastraDir, 'index.js'),\n ]);\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler();\n await deployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n } else {\n await platformDeployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n }\n }\n\n const issues = [...projectIssues];\n\n if (options.preflight) {\n if (!options.skipBuild) {\n await runBuild(rootDir, { debug: options.debug });\n }\n\n const envVars = await readEnvVars(rootDir, {\n envFile: options.envFile,\n autoAccept: options.json ?? false,\n });\n const preflightIssues = await preflightBuildOutput(rootDir, envVars);\n issues.push(...preflightIssues.map(toLintIssue));\n }\n\n return createLintResult(issues);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error('Lint check failed', { error: message });\n return createLintResult([], message);\n }\n}\n\nexport function printLintReport(result: LintResult, options: { strict?: boolean } = {}): void {\n if (result.error) {\n p.log.error(result.error);\n return;\n }\n\n if (result.issues.length === 0) {\n p.log.success('No issues found.');\n return;\n }\n\n const warningsAreErrors = options.strict && result.warningCount > 0 && result.errorCount === 0;\n\n for (const issue of result.issues) {\n const prefix =\n issue.severity === 'error' || warningsAreErrors ? pc.red(`[${issue.code}]`) : pc.yellow(`[${issue.code}]`);\n const message = `${prefix} ${issue.message}\\n ${pc.dim('scope:')} ${issue.scope}\\n ${pc.dim('→')} ${issue.fix}`;\n\n if (issue.severity === 'error' || warningsAreErrors) {\n p.log.error(message);\n } else {\n p.log.warn(message);\n }\n }\n\n if (warningsAreErrors) {\n p.log.error(`Lint failed in --strict mode: ${result.warningCount} warning(s) treated as errors.`);\n }\n}\n\nexport function emitLintJson(result: LintResult, options: { strict?: boolean } = {}): void {\n const blocked = result.error !== undefined || result.errorCount > 0 || (options.strict && result.warningCount > 0);\n\n process.stdout.write(\n JSON.stringify(\n {\n ok: !blocked,\n strict: options.strict ?? false,\n errorCount: result.errorCount,\n warningCount: result.warningCount,\n issues: result.issues,\n ...(result.error !== undefined ? { error: result.error } : {}),\n },\n null,\n 2,\n ) + '\\n',\n );\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\nimport { analytics, origin } from '../..';\nimport { emitLintJson, lint, printLintReport } from '../lint';\n\nexport const lintProject = async (args: {\n dir?: string;\n root?: string;\n tools?: string;\n preflight?: boolean;\n skipBuild?: boolean;\n envFile?: string;\n strict?: boolean;\n json?: boolean;\n debug?: boolean;\n}) => {\n await analytics.trackCommandExecution({\n command: 'lint',\n args,\n execution: async () => {\n const json = args.json ?? false;\n if (!json) {\n p.intro(args.preflight ? 'mastra lint --preflight' : 'mastra lint');\n }\n\n const result = await lint({\n dir: args.dir,\n root: args.root,\n tools: args.tools ? args.tools.split(',') : [],\n preflight: args.preflight,\n skipBuild: args.skipBuild,\n envFile: args.envFile,\n strict: args.strict,\n json,\n debug: args.debug,\n });\n\n if (json) {\n emitLintJson(result, { strict: args.strict });\n } else {\n printLintReport(result, { strict: args.strict });\n }\n\n const blocked = result.error !== undefined || result.errorCount > 0 || (args.strict && result.warningCount > 0);\n if (blocked) {\n if (!json) {\n p.outro(pc.red('✖ Lint failed'));\n }\n process.exit(1);\n }\n\n if (!json) {\n if (result.warningCount > 0) {\n p.outro(pc.yellow(`✓ Lint passed with ${result.warningCount} warning(s)`));\n } else {\n p.outro(pc.green('✓ Lint passed'));\n }\n }\n },\n origin,\n });\n};\n","import * as p from '@clack/prompts';\nimport color from 'picocolors';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport type { ScorerTemplate } from './types';\n\nfunction formatCategoryName(category: string): string {\n return category\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\nfunction formatTable(scorers: ScorerTemplate[]): string {\n if (scorers.length === 0) return '';\n\n // Calculate column widths\n const nameWidth = Math.max(4, Math.max(...scorers.map(s => s.name.length)));\n const idWidth = Math.max(2, Math.max(...scorers.map(s => s.id.length)));\n const typeWidth = Math.max(4, Math.max(...scorers.map(s => s.type.length)));\n const descWidth = Math.max(11, Math.max(...scorers.map(s => s.description.length)));\n\n // Create header\n const header = `${color.bold('Name'.padEnd(nameWidth))} │ ${color.bold('ID'.padEnd(idWidth))} │ ${color.bold('Type'.padEnd(typeWidth))} │ ${color.bold('Description'.padEnd(descWidth))}`;\n const separator =\n '─'.repeat(nameWidth) +\n '─┼─' +\n '─'.repeat(idWidth) +\n '─┼─' +\n '─'.repeat(typeWidth) +\n '─┼─' +\n '─'.repeat(descWidth) +\n '─';\n\n // Create rows\n const rows = scorers.map(\n scorer =>\n `${(scorer?.name ?? scorer?.id).padEnd(nameWidth)} │ ${color.dim(scorer.id.padEnd(idWidth))} │ ${scorer.type.padEnd(typeWidth)} │ ${color.dim(scorer.description.padEnd(descWidth))}`,\n );\n\n return [header, separator, ...rows].join('\\n');\n}\n\nexport function listAllScorers(): void {\n p.intro(color.inverse(' Available Scorers '));\n\n const groupedScorers = AVAILABLE_SCORERS.reduce(\n (acc, scorer) => {\n if (!acc[scorer.category]) {\n acc[scorer.category] = [];\n }\n acc[scorer.category]!.push(scorer);\n return acc;\n },\n {} as Record<string, ScorerTemplate[]>,\n );\n\n for (const [category, scorers] of Object.entries(groupedScorers)) {\n p.log.info(`${color.bold(color.cyan(formatCategoryName(category)))} Scorers:`);\n p.log.message(formatTable(scorers));\n }\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { listAllScorers } from '../scorers/list-all-scorers';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const listScorers = async (args: {}) => {\n await analytics.trackCommandExecution({\n command: 'scorers-list',\n args,\n execution: async () => {\n return listAllScorers();\n },\n origin,\n });\n};\n","import { existsSync, readdirSync } from 'node:fs';\nimport type { Dirent } from 'node:fs';\nimport { dirname, isAbsolute, join, sep } from 'node:path';\n\nconst IGNORED_DIRECTORIES = new Set([\n 'node_modules',\n '.git',\n '.mastra',\n '.turbo',\n '.next',\n 'dist',\n 'build',\n 'coverage',\n]);\n\nexport interface MigratePathResolution {\n rootDir: string;\n mastraDir: string;\n}\n\nexport interface MigrateEntryResolution {\n checkedPaths: string[];\n entryFile?: string;\n}\n\nexport function resolveMigratePaths(args: { cwd: string; root?: string; dir?: string }): MigratePathResolution {\n const rootDir = args.root ? (isAbsolute(args.root) ? args.root : join(args.cwd, args.root)) : args.cwd;\n const mastraDir = args.dir\n ? isAbsolute(args.dir)\n ? args.dir\n : join(rootDir, args.dir)\n : join(rootDir, 'src', 'mastra');\n\n return { rootDir, mastraDir };\n}\n\nexport function resolveMigrateEntryFile(mastraDir: string): MigrateEntryResolution {\n const checkedPaths = [join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')];\n const entryFile = checkedPaths.find(path => existsSync(path));\n return { checkedPaths, entryFile };\n}\n\nfunction isMastraSourceDirectory(path: string): boolean {\n const parts = path.split(sep);\n return parts.length >= 2 && parts[parts.length - 1] === 'mastra' && parts[parts.length - 2] === 'src';\n}\n\nexport function findMastraEntryCandidates(rootDir: string, maxCandidates = 5): string[] {\n const candidates: string[] = [];\n const queue: string[] = [rootDir];\n\n while (queue.length > 0 && candidates.length < maxCandidates) {\n const currentDir = queue.pop()!;\n\n let entries: Dirent[];\n try {\n entries = readdirSync(currentDir, { withFileTypes: true });\n } catch {\n continue;\n }\n\n for (const entry of entries) {\n const entryName = entry.name;\n const fullPath = join(currentDir, entryName);\n\n if (entry.isDirectory()) {\n if (IGNORED_DIRECTORIES.has(entryName)) {\n continue;\n }\n queue.push(fullPath);\n continue;\n }\n\n if (!entry.isFile()) {\n continue;\n }\n\n if ((entryName === 'index.ts' || entryName === 'index.js') && isMastraSourceDirectory(currentDir)) {\n candidates.push(fullPath);\n if (candidates.length >= maxCandidates) {\n break;\n }\n }\n }\n }\n\n return candidates.sort();\n}\n\nexport function toDetectedProjectRoot(entryFile: string): string {\n return dirname(dirname(dirname(entryFile)));\n}\n","import { FileService } from '@mastra/deployer/build';\n\nimport { BuildBundler } from '../build/BuildBundler.js';\nimport { shouldSkipDotenvLoading } from '../utils.js';\n\nexport class MigrateBundler extends BuildBundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super({ studio: false });\n this.customEnvFile = customEnvFile;\n }\n\n override getEnvFiles(): Promise<string[]> {\n // Skip loading .env files if MASTRA_SKIP_DOTENV is set\n if (shouldSkipDotenvLoading()) {\n return Promise.resolve([]);\n }\n\n const possibleFiles = ['.env.development', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, { outputDirectory, projectRoot }, toolsPaths);\n }\n\n protected override getEntry(): string {\n return `\n import { mastra } from '#mastra';\n\n async function runMigration() {\n const storage = mastra.getStorage();\n\n if (!storage) {\n console.log(JSON.stringify({\n success: false,\n alreadyMigrated: false,\n duplicatesRemoved: 0,\n message: 'Storage not configured. Please configure storage in your Mastra instance.',\n }));\n process.exit(1);\n }\n\n // Access the observability store directly from storage.stores\n const observabilityStore = storage.stores?.observability;\n\n if (!observabilityStore) {\n console.log(JSON.stringify({\n success: false,\n alreadyMigrated: false,\n duplicatesRemoved: 0,\n message: 'Observability storage not configured. Migration not required.',\n }));\n process.exit(0);\n }\n\n // Check if the store has a migrateSpans method\n if (typeof observabilityStore.migrateSpans !== 'function') {\n console.log(JSON.stringify({\n success: false,\n alreadyMigrated: false,\n duplicatesRemoved: 0,\n message: 'Migration not supported for this storage backend.',\n }));\n process.exit(1);\n }\n\n try {\n // Run the migration - migrateSpans handles everything internally\n const result = await observabilityStore.migrateSpans();\n\n console.log(JSON.stringify({\n success: result.success,\n alreadyMigrated: result.alreadyMigrated,\n duplicatesRemoved: result.duplicatesRemoved,\n message: result.message,\n }));\n\n process.exit(result.success ? 0 : 1);\n } catch (error) {\n console.log(JSON.stringify({\n success: false,\n alreadyMigrated: false,\n duplicatesRemoved: 0,\n message: error instanceof Error ? error.message : 'Unknown error during migration',\n }));\n process.exit(1);\n }\n }\n\n runMigration();\n `;\n }\n}\n","import { join, relative } from 'node:path';\nimport process from 'node:process';\nimport * as p from '@clack/prompts';\nimport { execa } from 'execa';\nimport pc from 'picocolors';\n\nimport { createLogger } from '../../utils/logger.js';\n\nimport {\n findMastraEntryCandidates,\n resolveMigrateEntryFile,\n resolveMigratePaths,\n toDetectedProjectRoot,\n} from './migrate-paths';\nimport { MigrateBundler } from './MigrateBundler';\n\ninterface MigrationResult {\n success: boolean;\n alreadyMigrated: boolean;\n duplicatesRemoved: number;\n message: string;\n}\n\nfunction quoteShellArg(value: string): string {\n return `\"${value.replace(/([\"\\\\$`])/gu, '\\\\$1')}\"`;\n}\n\nexport async function migrate({\n dir,\n root,\n env,\n debug,\n yes,\n}: {\n dir?: string;\n root?: string;\n env?: string;\n debug: boolean;\n yes: boolean;\n}) {\n const logger = createLogger(debug);\n const { rootDir, mastraDir } = resolveMigratePaths({\n cwd: process.cwd(),\n root,\n dir,\n });\n const { checkedPaths, entryFile } = resolveMigrateEntryFile(mastraDir);\n const dotMastraPath = join(rootDir, '.mastra');\n\n if (!entryFile) {\n logger.error(pc.red('Error: Could not find Mastra entry file.'));\n logger.info('');\n logger.info('Expected one of the following files:');\n checkedPaths.forEach(path => logger.info(` - ${path}`));\n logger.info('');\n logger.info('This command requires a Mastra entrypoint (src/mastra/index.ts or index.js).');\n logger.info('If your project is in a custom location (for example in a monorepo), run:');\n logger.info(pc.cyan(' npx mastra migrate --dir <path/to/src/mastra> --root <path/to/project-root>'));\n logger.info(pc.cyan(' pnpm exec mastra migrate --dir <path/to/src/mastra> --root <path/to/project-root>'));\n\n const candidates = findMastraEntryCandidates(rootDir, 5);\n if (candidates.length > 0) {\n logger.info('');\n logger.info('Detected candidate entrypoints under the selected root:');\n for (const candidate of candidates) {\n const rootBase = toDetectedProjectRoot(candidate);\n const suggestedDir = relative(rootBase, candidate).replace(/[\\\\/]index\\.(ts|js)$/u, '');\n const suggestedRoot = relative(process.cwd(), rootBase) || '.';\n logger.info(` - ${candidate}`);\n logger.info(\n pc.dim(\n ` Example: npx mastra migrate --dir ${quoteShellArg(suggestedDir)} --root ${quoteShellArg(suggestedRoot)}`,\n ),\n );\n }\n }\n\n process.exit(1);\n }\n\n p.intro(pc.cyan('Mastra Storage Migration'));\n\n // Show backup warning and ask for confirmation (unless --yes flag is used)\n if (!yes) {\n p.log.warn(pc.yellow('Warning: This migration will modify your database.'));\n p.log.message('Before proceeding, please ensure you have:');\n p.log.message(' • Created a backup of your database');\n p.log.message(' • Tested this migration in a non-production environment');\n\n const confirmed = await p.confirm({\n message: 'Have you backed up your database and are ready to proceed?',\n initialValue: false,\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n p.log.info('Migration cancelled. Please back up your database before running this command.');\n p.log.message(pc.dim('Tip: Use --yes or -y to skip this prompt in CI/automation.'));\n process.exit(0);\n }\n }\n\n try {\n const bundler = new MigrateBundler(env);\n bundler.__setLogger(logger);\n\n logger.info('Building project for migration...');\n\n // Prepare the output directory\n await bundler.prepare(dotMastraPath);\n\n // Bundle the project with migration entry\n const discoveredTools = bundler.getAllToolPaths(mastraDir, []);\n await bundler.bundle(entryFile, dotMastraPath, {\n toolsPaths: discoveredTools,\n projectRoot: rootDir,\n });\n\n logger.info('Running migration...');\n logger.info(pc.dim('This may take a while for large tables.'));\n logger.info('');\n\n // Load environment variables\n const loadedEnv = await bundler.loadEnvVars();\n\n // Execute the bundled migration script\n const migrationProcess = execa(process.execPath, [join(dotMastraPath, 'output', 'index.mjs')], {\n cwd: rootDir,\n env: {\n NODE_ENV: 'production',\n MASTRA_DISABLE_STORAGE_INIT: 'true', // Prevent MIGRATION_REQUIRED error during import\n ...Object.fromEntries(loadedEnv),\n },\n stdio: ['inherit', 'pipe', 'pipe'],\n reject: false,\n });\n\n let stdoutData = '';\n let stderrData = '';\n\n migrationProcess.stdout?.on('data', (data: Buffer) => {\n stdoutData += data.toString();\n });\n\n migrationProcess.stderr?.on('data', (data: Buffer) => {\n stderrData += data.toString();\n // Print stderr to console for debugging\n if (debug) {\n process.stderr.write(data);\n }\n });\n\n const processResult = await migrationProcess;\n\n // Try to parse the JSON result from stdout\n let result: MigrationResult | undefined;\n try {\n // Find the last JSON object in the output (in case there's other output)\n const jsonMatch = stdoutData.match(/\\{[^{}]*\"success\"[^{}]*\\}/g);\n if (jsonMatch && jsonMatch.length > 0) {\n result = JSON.parse(jsonMatch[jsonMatch.length - 1]!);\n }\n } catch {\n // If we can't parse JSON, the migration likely failed\n }\n\n if (result) {\n if (result.success) {\n if (result.alreadyMigrated) {\n logger.info(pc.green('✓ Migration already complete.'));\n } else {\n logger.info(pc.green('✓ Migration completed successfully!'));\n if (result.duplicatesRemoved > 0) {\n logger.info('Removed duplicate entries', { count: result.duplicatesRemoved });\n }\n }\n logger.info(result.message);\n } else {\n logger.error(pc.red('✗ Migration failed.'));\n logger.error(result.message);\n process.exit(1);\n }\n } else {\n // No JSON result - check if process failed\n if (processResult.exitCode !== 0) {\n logger.error(pc.red('✗ Migration failed.'));\n if (stderrData) {\n logger.error(stderrData);\n }\n if (stdoutData && !stdoutData.includes('\"success\"')) {\n logger.error(stdoutData);\n }\n process.exit(1);\n } else {\n // Process succeeded but no JSON output - unusual but OK\n logger.info(pc.green('✓ Migration completed.'));\n }\n }\n } catch (error: any) {\n if (error.code === 'ERR_MODULE_NOT_FOUND' || error.message?.includes('Cannot find module')) {\n logger.error(pc.red('Error: Could not find Mastra entry file.'));\n logger.info('');\n logger.info('Make sure your Mastra directory has an index.ts or index.js file.');\n logger.info('Expected location', { path: mastraDir });\n logger.info('');\n logger.info('You can specify a custom directory:');\n logger.info(pc.cyan(' npx mastra migrate --dir <path/to/src/mastra> --root <path/to/project-root>'));\n } else {\n logger.error(pc.red(`Error: ${error.message}`));\n if (debug) {\n logger.error(error);\n }\n }\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { migrate as runMigrate } from '../migrate/migrate';\n\nexport const migrate = async (args: { dir?: string; root?: string; env?: string; debug?: boolean; yes?: boolean }) => {\n await analytics.trackCommandExecution({\n command: 'mastra migrate',\n args: { ...args },\n execution: async () => {\n await runMigrate({\n dir: args?.dir,\n root: args?.root,\n env: args?.env,\n debug: args?.debug ?? false,\n yes: args?.yes ?? false,\n });\n },\n origin,\n });\n};\n","import path from 'node:path';\nimport pc from 'picocolors';\nimport { version } from '..';\ninterface DevLoggerOptions {\n timestamp?: boolean;\n colors?: boolean;\n}\n\ninterface HTTPSOptions {\n key: Buffer;\n cert: Buffer;\n}\n\nexport class DevLogger {\n private options: DevLoggerOptions;\n\n constructor(options: DevLoggerOptions = {}) {\n this.options = {\n timestamp: false,\n colors: true,\n ...options,\n };\n }\n\n private formatTime(): string {\n if (!this.options.timestamp) return '';\n return pc.dim(new Date().toLocaleTimeString());\n }\n\n private formatPrefix(text: string, color: (str: string) => string): string {\n const time = this.formatTime();\n const prefix = pc.bold(color(text));\n return time ? `${time} ${prefix}` : prefix;\n }\n\n info(message: string): void {\n const prefix = this.formatPrefix('◐', pc.cyan);\n console.info(`${prefix} ${message}`);\n }\n\n success(message: string): void {\n const prefix = this.formatPrefix('✓', pc.green);\n console.info(`${prefix} ${pc.green(message)}`);\n }\n\n warn(message: string): void {\n const prefix = this.formatPrefix('⚠', pc.yellow);\n console.info(`${prefix} ${pc.yellow(message)}`);\n }\n\n error(message: string): void {\n const prefix = this.formatPrefix('✗', pc.red);\n console.info(`${prefix} ${pc.red(message)}`);\n }\n\n starting(): void {\n const prefix = this.formatPrefix('◇', pc.blue);\n console.info(`${prefix} ${pc.blue('Starting Mastra dev server...')}`);\n }\n\n ready(\n host: string,\n port: number,\n studioBasePath: string,\n apiPrefix: string,\n startTime?: number,\n https?: HTTPSOptions,\n ): void {\n let protocol = 'http';\n if (https && https.key && https.cert) {\n protocol = 'https';\n }\n\n console.info('');\n const timing = startTime ? `${Date.now() - startTime} ms` : 'XXX ms';\n console.info(pc.inverse(pc.green(' mastra ')) + ` ${pc.green(version)} ${pc.gray('ready in')} ${timing}`);\n console.info('');\n console.info(`${pc.dim('│')} ${pc.bold('Studio:')} ${pc.cyan(`${protocol}://${host}:${port}${studioBasePath}`)}`);\n console.info(`${pc.dim('│')} ${pc.bold('API:')} ${`${protocol}://${host}:${port}${apiPrefix}`}`);\n console.info('');\n }\n\n bundling(): void {\n const prefix = this.formatPrefix('◐', pc.magenta);\n console.info(`${prefix} ${pc.magenta('Bundling...')}`);\n }\n\n bundleComplete(): void {\n const prefix = this.formatPrefix('✓', pc.green);\n console.info(`${prefix} ${pc.green('Bundle complete')}`);\n }\n\n watching(): void {\n const time = this.formatTime();\n const icon = pc.dim('◯');\n const message = pc.dim('watching for file changes...');\n const fullMessage = `${icon} ${message}`;\n console.info(time ? `${time} ${fullMessage}` : fullMessage);\n }\n\n restarting(): void {\n const prefix = this.formatPrefix('↻', pc.blue);\n console.info(`${prefix} ${pc.blue('Restarting server...')}`);\n }\n\n fileChange(file: string): void {\n const prefix = this.formatPrefix('⚡', pc.cyan);\n const fileName = path.basename(file);\n console.info(`${prefix} ${pc.cyan('File changed:')} ${pc.dim(fileName)}`);\n }\n\n // Enhanced error reporting\n serverError(error: string): void {\n console.info('');\n console.info(pc.red(' ✗ ') + pc.bold(pc.red('Server Error')));\n console.info('');\n console.info(` ${pc.red('│')} ${error}`);\n console.info('');\n }\n\n shutdown(): void {\n console.info('');\n const prefix = this.formatPrefix('✓', pc.green);\n console.info(`${prefix} ${pc.green('Dev server stopped')}`);\n }\n\n envInfo(info: { port: number; env?: string; root: string }): void {\n console.info('');\n console.info(` ${pc.dim('│')} ${pc.bold('Environment:')} ${pc.cyan(info.env || 'development')}`);\n console.info(` ${pc.dim('│')} ${pc.bold('Root:')} ${pc.dim(info.root)}`);\n console.info(` ${pc.dim('│')} ${pc.bold('Port:')} ${pc.cyan(info.port.toString())}`);\n }\n\n raw(message: string): void {\n console.info(message);\n }\n\n debug(message: string): void {\n if (process.env.DEBUG || process.env.MASTRA_DEBUG) {\n const prefix = this.formatPrefix('◦', pc.gray);\n console.info(`${prefix} ${pc.gray(message)}`);\n }\n }\n\n private spinnerChars = ['◐', '◓', '◑', '◒'];\n private spinnerIndex = 0;\n\n getSpinnerChar(): string {\n const char = this.spinnerChars[this.spinnerIndex];\n this.spinnerIndex = (this.spinnerIndex + 1) % this.spinnerChars.length;\n return char || '◐'; // fallback to default char\n }\n\n clearLine(): void {\n process.stdout.write('\\r\\x1b[K');\n }\n\n update(message: string): void {\n this.clearLine();\n const prefix = this.formatPrefix(this.getSpinnerChar(), pc.cyan);\n process.stdout.write(`${prefix} ${message}`);\n }\n}\n\nexport const devLogger = new DevLogger();\n","import { existsSync } from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\n/**\n * Loads and validates a request context presets JSON file.\n *\n * @param presetsPath - Path to the presets JSON file (relative or absolute)\n * @returns The original JSON string content\n * @throws Error if file doesn't exist, JSON is invalid, or structure is incorrect\n */\nexport async function loadAndValidatePresets(presetsPath: string): Promise<string> {\n const absolutePath = resolve(process.cwd(), presetsPath);\n\n if (!existsSync(absolutePath)) {\n throw new Error(`Presets file not found: ${absolutePath}`);\n }\n\n const content = await readFile(absolutePath, 'utf-8');\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(content);\n } catch {\n throw new Error(`Invalid JSON in presets file: ${presetsPath}`);\n }\n\n if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {\n throw new Error(`Presets file must contain a JSON object with named presets`);\n }\n\n // Validate each preset value is an object\n for (const [key, value] of Object.entries(parsed)) {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new Error(`Preset \"${key}\" must be a JSON object`);\n }\n }\n\n return content; // Return original string to preserve formatting\n}\n\n/**\n * Escapes a JSON string for safe embedding in HTML/JavaScript.\n * Handles backslashes, single quotes, newlines, carriage returns,\n * script-breaking sequences, and Unicode line terminators.\n *\n * @param json - JSON string to escape\n * @returns Escaped string safe for HTML embedding\n */\nexport function escapeJsonForHtml(json: string): string {\n return json\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/</g, '\\\\u003c')\n .replace(/>/g, '\\\\u003e')\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029');\n}\n","import { writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { FileService } from '@mastra/deployer';\nimport { createWatcher, getWatcherInputOptions } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\nimport * as fsExtra from 'fs-extra';\nimport type { InputPluginOption, RollupWatcherEvent } from 'rollup';\n\nimport { devLogger } from '../../utils/dev-logger.js';\nimport { shouldSkipDotenvLoading } from '../utils.js';\n\nexport class DevBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Dev');\n this.customEnvFile = customEnvFile;\n // Use 'neutral' platform for Bun to preserve Bun-specific globals, 'node' otherwise\n this.platform = process.versions?.bun ? 'neutral' : 'node';\n }\n\n getEnvFiles(): Promise<string[]> {\n // Skip loading .env files if MASTRA_SKIP_DOTENV is set\n if (shouldSkipDotenvLoading()) {\n return Promise.resolve([]);\n }\n\n const possibleFiles = ['.env.development', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const studioServePath = join(outputDirectory, this.outputDir, 'studio');\n await fsExtra.copy(join(dirname(__dirname), join('dist', 'studio')), studioServePath, {\n overwrite: true,\n });\n }\n\n async watch(\n entryFile: string,\n outputDirectory: string,\n toolsPaths: (string | string[])[],\n ): ReturnType<typeof createWatcher> {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const envFiles = await this.getEnvFiles();\n const bundlerOptions = await this.getUserBundlerOptions(entryFile, outputDirectory);\n const sourcemapEnabled = !!bundlerOptions?.sourcemap;\n\n const inputOptions = await getWatcherInputOptions(\n entryFile,\n this.platform,\n {\n 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),\n },\n { sourcemap: sourcemapEnabled },\n );\n const toolsInputOptions = await this.listToolsInputOptions(toolsPaths);\n\n const outputDir = join(outputDirectory, this.outputDir);\n\n await this.writePackageJson(outputDir, new Map(), {});\n\n const watcher = await createWatcher(\n {\n ...inputOptions,\n logLevel: inputOptions.logLevel === 'silent' ? 'warn' : inputOptions.logLevel,\n onwarn: warning => {\n if (warning.code === 'CIRCULAR_DEPENDENCY') {\n if (warning.ids?.[0]?.includes('node_modules')) {\n return;\n }\n\n this.logger.warn('Circular dependency found', {\n dependency: warning.message.replace('Circular dependency: ', ''),\n });\n }\n },\n plugins: [\n ...(inputOptions.plugins as InputPluginOption[]),\n {\n name: 'env-watcher',\n buildStart() {\n for (const envFile of envFiles) {\n this.addWatchFile(envFile);\n }\n },\n },\n {\n name: 'tools-watcher',\n async buildEnd() {\n const toolImports: string[] = [];\n const toolsExports: string[] = [];\n Array.from(Object.keys(toolsInputOptions || {}))\n .filter(key => key.startsWith('tools/'))\n .forEach((key, index) => {\n const toolExport = `tool${index}`;\n toolImports.push(`import * as ${toolExport} from './${key}.mjs';`);\n toolsExports.push(toolExport);\n });\n\n await writeFile(\n join(outputDir, 'tools.mjs'),\n `${toolImports.join('\\n')}\n\n export const tools = [${toolsExports.join(', ')}]`,\n );\n },\n },\n ],\n input: {\n index: join(__dirname, 'templates', 'dev.entry.js'),\n ...toolsInputOptions,\n },\n },\n {\n dir: outputDir,\n sourcemap: sourcemapEnabled,\n },\n );\n\n devLogger.info('Preparing development environment...');\n return new Promise((resolve, reject) => {\n const cb = (event: RollupWatcherEvent) => {\n if (event.code === 'BUNDLE_END') {\n devLogger.success('Initial bundle complete');\n watcher.off('event', cb);\n resolve(watcher);\n }\n\n if (event.code === 'ERROR') {\n console.info(event);\n devLogger.error('Bundling failed - check console for details');\n watcher.off('event', cb);\n reject(event);\n }\n };\n\n watcher.on('event', cb);\n });\n }\n\n async bundle(): Promise<void> {\n // Do nothing\n }\n}\n","import type { ChildProcess } from 'node:child_process';\nimport { mkdir, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport process from 'node:process';\nimport devcert from '@expo/devcert';\nimport { FileService } from '@mastra/deployer';\nimport { getServerOptions, normalizeStudioBase } from '@mastra/deployer/build';\nimport { execa } from 'execa';\nimport getPort from 'get-port';\nimport pc from 'picocolors';\nimport { getAnalytics } from '../../analytics/index.js';\nimport { checkMastraPeerDeps, getUpdateCommand, logPeerDepWarnings } from '../../utils/check-peer-deps.js';\nimport type { PeerDepMismatch } from '../../utils/check-peer-deps.js';\nimport { devLogger } from '../../utils/dev-logger.js';\nimport { createLogger } from '../../utils/logger.js';\nimport type { MastraPackageInfo } from '../../utils/mastra-packages.js';\nimport { getMastraPackages } from '../../utils/mastra-packages.js';\nimport { loadAndValidatePresets } from '../../utils/validate-presets.js';\n\nimport { DevBundler } from './DevBundler';\n\nlet currentServerProcess: ChildProcess | undefined;\nlet isRestarting = false;\nlet serverStartTime: number | undefined;\nlet requestContextPresetsJson: string | undefined;\nconst ON_ERROR_MAX_RESTARTS = 3;\n\nfunction waitForProcessExit(child: ChildProcess, timeoutMs = 2000): Promise<void> {\n if (child.exitCode !== null) {\n return Promise.resolve();\n }\n return new Promise(resolve => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const done = () => {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n resolve();\n };\n child.once('exit', done);\n if (child.exitCode !== null) {\n child.removeListener('exit', done);\n done();\n return;\n }\n timer = setTimeout(() => {\n child.kill('SIGKILL');\n }, timeoutMs);\n });\n}\n\ninterface HTTPSOptions {\n key: Buffer;\n cert: Buffer;\n}\n\ninterface StartOptions {\n inspect?: string | boolean;\n inspectBrk?: string | boolean;\n customArgs?: string[];\n https?: HTTPSOptions;\n mastraPackages?: MastraPackageInfo[];\n peerDepMismatches?: PeerDepMismatch[];\n}\n\ntype ProcessOptions = {\n port: number;\n host: string;\n studioBasePath: string;\n apiPrefix: string;\n publicDir: string;\n};\n\nconst restartAllActiveWorkflowRuns = async ({ host, port, https }: { host: string; port: number; https?: boolean }) => {\n const scheme = https ? 'https' : 'http';\n try {\n await fetch(`${scheme}://${host}:${port}/__restart-active-workflow-runs`, {\n method: 'POST',\n });\n } catch (error) {\n devLogger.error(`Failed to restart all active workflow runs: ${error}`);\n // Retry after another second\n await new Promise(resolve => setTimeout(resolve, 1500));\n try {\n await fetch(`${scheme}://${host}:${port}/__restart-active-workflow-runs`, {\n method: 'POST',\n });\n } catch {\n // Ignore retry errors\n }\n }\n};\n\nconst startServer = async (\n dotMastraPath: string,\n { port, host, studioBasePath, apiPrefix, publicDir }: ProcessOptions,\n env: Map<string, string>,\n startOptions: StartOptions = {},\n errorRestartCount = 0,\n) => {\n let serverIsReady = false;\n try {\n // Restart server\n serverStartTime = Date.now();\n devLogger.starting();\n\n const commands = [];\n\n const inspect = startOptions.inspect === '' ? true : startOptions.inspect;\n const inspectBrk = startOptions.inspectBrk === '' ? true : startOptions.inspectBrk;\n\n if (inspect) {\n const inspectFlag = typeof inspect === 'string' ? `--inspect=${inspect}` : '--inspect';\n commands.push(inspectFlag);\n }\n\n if (inspectBrk) {\n const inspectBrkFlag = typeof inspectBrk === 'string' ? `--inspect-brk=${inspectBrk}` : '--inspect-brk';\n commands.push(inspectBrkFlag);\n }\n\n if (startOptions.customArgs) {\n commands.push(...startOptions.customArgs);\n }\n\n commands.push(join(dotMastraPath, 'index.mjs'));\n\n // Write mastra packages to a file and pass the file path via env var\n const packagesFilePath = join(dotMastraPath, '..', 'mastra-packages.json');\n await mkdir(dotMastraPath, { recursive: true });\n if (startOptions.mastraPackages) {\n await writeFile(packagesFilePath, JSON.stringify(startOptions.mastraPackages), 'utf-8');\n }\n\n await mkdir(publicDir, { recursive: true });\n currentServerProcess = execa(process.execPath, commands, {\n cwd: publicDir,\n env: {\n NODE_ENV: 'production',\n ...Object.fromEntries(env),\n MASTRA_DEV: 'true',\n PORT: port.toString(),\n MASTRA_PACKAGES_FILE: packagesFilePath,\n ...(startOptions?.https\n ? {\n MASTRA_HTTPS_KEY: startOptions.https.key.toString('base64'),\n MASTRA_HTTPS_CERT: startOptions.https.cert.toString('base64'),\n }\n : {}),\n },\n stdio: ['inherit', 'pipe', 'pipe', 'ipc'],\n reject: false,\n }) as any as ChildProcess;\n\n if (currentServerProcess?.exitCode && currentServerProcess?.exitCode !== 0) {\n if (!currentServerProcess) {\n throw new Error(`Server failed to start`);\n }\n throw new Error(\n `Server failed to start with error: ${currentServerProcess.stderr || currentServerProcess.stdout}`,\n );\n }\n\n // Filter server output to remove Studio message\n if (currentServerProcess.stdout) {\n currentServerProcess.stdout.on('data', (data: Buffer) => {\n const output = data.toString();\n if (!output.includes('Studio available') && !output.includes('👨‍💻') && !output.includes('Mastra API running')) {\n process.stdout.write(output);\n }\n });\n }\n\n if (currentServerProcess.stderr) {\n currentServerProcess.stderr.on('data', (data: Buffer) => {\n const output = data.toString();\n if (!output.includes('Studio available') && !output.includes('👨‍💻') && !output.includes('Mastra API running')) {\n process.stderr.write(output);\n }\n });\n }\n\n // Handle IPC errors to prevent EPIPE crashes\n currentServerProcess.on('error', (err: Error) => {\n if ((err as any).code !== 'EPIPE') {\n throw err;\n }\n });\n\n // Show hint about updating packages when server exits with error\n currentServerProcess.on('exit', (code: number | null) => {\n if (code !== null && code !== 0) {\n const updateCommand = getUpdateCommand(startOptions.peerDepMismatches ?? []);\n if (updateCommand) {\n console.warn();\n devLogger.warn(`This error may be caused by mismatched package versions. Try running:`);\n console.warn(` ${pc.cyan(updateCommand)}`);\n console.warn();\n }\n }\n });\n\n currentServerProcess.on('message', async (message: any) => {\n if (message?.type === 'server-ready') {\n serverIsReady = true;\n devLogger.ready(host, port, studioBasePath, apiPrefix, serverStartTime, startOptions.https);\n devLogger.watching();\n\n await restartAllActiveWorkflowRuns({ host, port, https: !!startOptions.https });\n\n // Send refresh signal\n const scheme = startOptions.https ? 'https' : 'http';\n try {\n await fetch(`${scheme}://${host}:${port}${studioBasePath}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Retry after another second\n await new Promise(resolve => setTimeout(resolve, 1500));\n try {\n await fetch(`${scheme}://${host}:${port}${studioBasePath}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Ignore retry errors\n }\n }\n }\n });\n } catch (err) {\n const execaError = err as { stderr?: string; stdout?: string };\n if (execaError.stderr) {\n devLogger.serverError(execaError.stderr);\n devLogger.debug(`Server error output: ${execaError.stderr}`);\n }\n if (execaError.stdout) devLogger.debug(`Server output: ${execaError.stdout}`);\n\n // Show hint about updating packages if there are peer dep mismatches\n const updateCommand = getUpdateCommand(startOptions.peerDepMismatches ?? []);\n if (updateCommand) {\n devLogger.warn(`This error may be caused by mismatched package versions. Try running: ${updateCommand}`);\n }\n\n if (!serverIsReady) {\n throw err;\n }\n\n // Attempt to restart on error after a delay\n setTimeout(() => {\n if (!isRestarting) {\n errorRestartCount++;\n if (errorRestartCount > ON_ERROR_MAX_RESTARTS) {\n devLogger.error(`Server failed to start after ${ON_ERROR_MAX_RESTARTS} error attempts. Giving up.`);\n process.exit(1);\n }\n devLogger.warn(\n `Attempting to restart server after error... (Attempt ${errorRestartCount}/${ON_ERROR_MAX_RESTARTS})`,\n );\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startServer(\n dotMastraPath,\n {\n port,\n host,\n studioBasePath,\n apiPrefix,\n publicDir,\n },\n env,\n startOptions,\n errorRestartCount,\n );\n }\n }, 1000);\n }\n};\n\nasync function checkAndRestart(\n dotMastraPath: string,\n { port, host, studioBasePath, apiPrefix, publicDir }: ProcessOptions,\n bundler: DevBundler,\n startOptions: StartOptions = {},\n) {\n if (isRestarting) {\n return;\n }\n\n try {\n // Check if hot reload is disabled due to template installation\n const scheme = startOptions.https ? 'https' : 'http';\n const response = await fetch(`${scheme}://${host}:${port}${studioBasePath}/__hot-reload-status`);\n if (response.ok) {\n const status = (await response.json()) as { disabled: boolean; timestamp: string };\n if (status.disabled) {\n devLogger.info('[Mastra Dev] - ⏸️ Server restart skipped: agent builder action in progress');\n return;\n }\n }\n } catch (error) {\n // If we can't check status (server down), proceed with restart\n devLogger.debug(`[Mastra Dev] - Could not check hot reload status: ${error}`);\n }\n\n // Proceed with restart\n devLogger.info('[Mastra Dev] - ✅ Restarting server...');\n await rebundleAndRestart(dotMastraPath, { port, host, studioBasePath, apiPrefix, publicDir }, bundler, startOptions);\n}\n\nasync function rebundleAndRestart(\n dotMastraPath: string,\n { port, host, studioBasePath, apiPrefix, publicDir }: ProcessOptions,\n bundler: DevBundler,\n startOptions: StartOptions = {},\n) {\n if (isRestarting) {\n return;\n }\n\n isRestarting = true;\n try {\n // If current server process is running, stop it\n if (currentServerProcess) {\n devLogger.restarting();\n devLogger.debug('Stopping current server...');\n const serverProcess = currentServerProcess;\n // Wait for the process to exit before starting a new one\n await new Promise<void>(resolve => {\n if (serverProcess.exitCode !== null || serverProcess.signalCode !== null) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n const handleExit = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n resolve();\n };\n\n serverProcess.once('exit', handleExit);\n\n try {\n serverProcess.kill('SIGINT');\n } catch {\n if (serverProcess.exitCode !== null || serverProcess.signalCode !== null) {\n serverProcess.off('exit', handleExit);\n resolve();\n }\n return;\n }\n\n timeout = setTimeout(() => {\n try {\n serverProcess.kill('SIGKILL');\n } catch {\n if (serverProcess.exitCode !== null || serverProcess.signalCode !== null) {\n serverProcess.off('exit', handleExit);\n resolve();\n }\n }\n }, 5000);\n });\n if (currentServerProcess === serverProcess) {\n currentServerProcess = undefined;\n }\n }\n\n const env = await bundler.loadEnvVars();\n\n // Add request context presets to env if available\n if (requestContextPresetsJson) {\n env.set('MASTRA_REQUEST_CONTEXT_PRESETS', requestContextPresetsJson);\n }\n\n // spread env into process.env\n for (const [key, value] of env.entries()) {\n process.env[key] = value;\n }\n\n await startServer(\n join(dotMastraPath, 'output'),\n {\n port,\n host,\n studioBasePath,\n apiPrefix,\n publicDir,\n },\n env,\n startOptions,\n );\n } finally {\n isRestarting = false;\n }\n}\n\nexport async function dev({\n dir,\n root,\n tools,\n env,\n inspect,\n inspectBrk,\n customArgs,\n https,\n requestContextPresets,\n debug,\n}: {\n dir?: string;\n root?: string;\n tools?: string[];\n env?: string;\n inspect?: string | boolean;\n inspectBrk?: string | boolean;\n customArgs?: string[];\n https?: boolean;\n requestContextPresets?: string;\n debug: boolean;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(process.cwd(), dir)) : join(process.cwd(), 'src', 'mastra');\n const dotMastraPath = join(rootDir, '.mastra');\n\n const fileService = new FileService();\n const entryFile = fileService.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const bundler = new DevBundler(env);\n bundler.__setLogger(createLogger(debug)); // Keep Pino logger for internal bundler operations\n\n // Use the bundler's getAllToolPaths method to prepare tools paths\n const discoveredTools = bundler.getAllToolPaths(mastraDir, tools ?? []);\n\n const loadedEnv = await bundler.loadEnvVars();\n\n // Clear any prior presets to avoid cross-run leakage\n requestContextPresetsJson = undefined;\n loadedEnv.delete('MASTRA_REQUEST_CONTEXT_PRESETS');\n delete process.env.MASTRA_REQUEST_CONTEXT_PRESETS;\n\n // spread loadedEnv into process.env\n for (const [key, value] of loadedEnv.entries()) {\n process.env[key] = value;\n }\n\n // Load and validate request context presets if provided\n if (requestContextPresets) {\n try {\n requestContextPresetsJson = await loadAndValidatePresets(requestContextPresets);\n // Add presets to loaded env so it's passed to the server\n loadedEnv.set('MASTRA_REQUEST_CONTEXT_PRESETS', requestContextPresetsJson);\n } catch (error) {\n devLogger.error(`Failed to load request context presets: ${error instanceof Error ? error.message : error}`);\n process.exit(1);\n }\n }\n\n const serverOptions = await getServerOptions(entryFile, join(dotMastraPath, 'output'));\n let portToUse = serverOptions?.port ?? process.env.PORT;\n let hostToUse = serverOptions?.host ?? process.env.HOST ?? 'localhost';\n const studioBasePathToUse = normalizeStudioBase(serverOptions?.studioBase ?? '/');\n const apiPrefixToUse = serverOptions?.apiPrefix ?? '/api';\n\n if (!portToUse || isNaN(Number(portToUse))) {\n const portList = Array.from({ length: 21 }, (_, i) => 4111 + i);\n portToUse = String(\n await getPort({\n port: portList,\n }),\n );\n }\n\n let httpsOptions: HTTPSOptions | undefined = undefined;\n\n /**\n * A user can enable HTTPS in two ways:\n * 1. By passing the --https flag to the dev command (we then generate a cert for them)\n * 2. By specifying https options in the mastra server config\n *\n * If both are specified, the config options takes precedence.\n */\n if (https && serverOptions?.https) {\n devLogger.warn('--https flag and server.https config are both specified. Using server.https config.');\n }\n if (serverOptions?.https) {\n httpsOptions = serverOptions.https;\n } else if (https) {\n const { key, cert } = await devcert.certificateFor(serverOptions?.host ?? 'localhost');\n httpsOptions = { key, cert };\n }\n\n // Extract mastra packages from the project's package.json\n const mastraPackages = await getMastraPackages(rootDir);\n\n // Check for peer dependency version mismatches\n const peerDepMismatches = await checkMastraPeerDeps(mastraPackages);\n logPeerDepWarnings(peerDepMismatches);\n\n const startOptions: StartOptions = {\n inspect,\n inspectBrk,\n customArgs,\n https: httpsOptions,\n mastraPackages,\n peerDepMismatches,\n };\n\n await bundler.prepare(dotMastraPath);\n\n const watcher = await bundler.watch(entryFile, dotMastraPath, discoveredTools);\n\n await startServer(\n join(dotMastraPath, 'output'),\n {\n port: Number(portToUse),\n host: hostToUse,\n studioBasePath: studioBasePathToUse,\n apiPrefix: apiPrefixToUse,\n publicDir: join(mastraDir, 'public'),\n },\n loadedEnv,\n startOptions,\n );\n\n watcher.on('event', (event: { code: string }) => {\n if (event.code === 'BUNDLE_START') {\n devLogger.bundling();\n }\n if (event.code === 'BUNDLE_END') {\n devLogger.bundleComplete();\n devLogger.info('[Mastra Dev] - Bundling finished, checking if restart is allowed...');\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n checkAndRestart(\n dotMastraPath,\n {\n port: Number(portToUse),\n host: hostToUse,\n studioBasePath: studioBasePathToUse,\n apiPrefix: apiPrefixToUse,\n publicDir: join(mastraDir, 'public'),\n },\n bundler,\n startOptions,\n );\n }\n });\n\n let isShuttingDown = false;\n const handleShutdown = async () => {\n if (isShuttingDown) return;\n isShuttingDown = true;\n\n const forceExit = setTimeout(() => process.exit(0), 3000);\n forceExit.unref();\n\n devLogger.shutdown();\n\n if (currentServerProcess) {\n currentServerProcess.kill();\n await waitForProcessExit(currentServerProcess);\n currentServerProcess = undefined;\n }\n\n const analytics = getAnalytics();\n if (analytics && serverStartTime) {\n const durationMs = Date.now() - serverStartTime;\n analytics.trackEvent('cli_dev_session_end', {\n durationMs,\n durationMinutes: Math.round(durationMs / 60000),\n });\n }\n if (analytics) {\n await analytics.shutdown();\n }\n\n watcher\n .close()\n .catch(() => {})\n .finally(() => {\n clearTimeout(forceExit);\n process.exit(0);\n });\n };\n\n const onSignal = () => {\n handleShutdown().catch(() => process.exit(0));\n };\n\n process.on('SIGINT', onSignal);\n process.on('SIGTERM', onSignal);\n process.on('SIGHUP', onSignal);\n}\n","import { analytics, origin } from '../..';\nimport { logger } from '../../utils/logger';\nimport { dev } from '../dev/dev';\n\ninterface DevArgs {\n dir?: string;\n root?: string;\n tools?: string;\n env?: string;\n inspect?: string | boolean;\n inspectBrk?: string | boolean;\n customArgs?: string;\n https?: boolean;\n requestContextPresets?: string;\n debug: boolean;\n}\n\nexport const startDevServer = async (args: DevArgs) => {\n analytics.trackCommand({\n command: 'dev',\n origin,\n });\n\n dev({\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n inspect: args?.inspectBrk ? false : args?.inspect,\n inspectBrk: args?.inspectBrk,\n customArgs: args?.customArgs ? args.customArgs.split(',') : [],\n https: args?.https,\n requestContextPresets: args?.requestContextPresets,\n debug: args.debug,\n }).catch(err => {\n logger.error(err.message);\n });\n};\n","import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport { join } from 'node:path';\nimport { config } from 'dotenv';\nimport { logger } from '../../utils/logger';\nimport { shouldSkipDotenvLoading } from '../utils';\ninterface StartOptions {\n dir?: string;\n env?: string;\n customArgs?: string[];\n}\n\nexport async function start(options: StartOptions = {}) {\n // Load environment variables from .env files\n if (!shouldSkipDotenvLoading()) {\n config({ path: [options.env || '.env.production', '.env'], quiet: true });\n }\n const outputDir = options.dir || '.mastra/output';\n\n try {\n // Check if the output directory exist\n const outputPath = join(process.cwd(), outputDir);\n if (!fs.existsSync(outputPath)) {\n throw new Error(`Output directory ${outputPath} does not exist`);\n }\n\n const commands = [];\n\n if (options.customArgs) {\n commands.push(...options.customArgs);\n }\n\n commands.push('index.mjs');\n\n // Start the server using node\n const server = spawn(process.execPath, commands, {\n cwd: outputPath,\n stdio: ['inherit', 'inherit', 'pipe'],\n env: {\n ...process.env,\n NODE_ENV: 'production',\n },\n });\n\n let stderrBuffer = '';\n server.stderr.on('data', data => {\n stderrBuffer += data.toString();\n });\n\n server.on('exit', code => {\n if (code !== 0 && stderrBuffer) {\n if (stderrBuffer.includes('ERR_MODULE_NOT_FOUND')) {\n const packageNameMatch = stderrBuffer.match(/Cannot find package '([^']+)'/);\n const packageName = packageNameMatch ? packageNameMatch[1] : null;\n\n if (!packageName) {\n logger.error(stderrBuffer.trim());\n } else {\n logger.error('Module not found while starting Mastra server', { package: packageName });\n }\n } else {\n logger.error(stderrBuffer.trim());\n }\n process.exit(code);\n }\n });\n\n server.on('error', err => {\n logger.error('Failed to start server', { error: err.message });\n process.exit(1);\n });\n\n process.on('SIGINT', () => {\n server.kill('SIGINT');\n process.exit(0);\n });\n\n process.on('SIGTERM', () => {\n server.kill('SIGTERM');\n process.exit(0);\n });\n } catch (error: any) {\n logger.error('Failed to start Mastra server', { error: error.message });\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { start } from '../start';\n\nexport const startProject = async (args: { dir?: string; env?: string; customArgs?: string }) => {\n await analytics.trackCommandExecution({\n command: 'start',\n args,\n execution: async () => {\n await start({\n dir: args.dir,\n env: args.env,\n customArgs: args.customArgs ? args.customArgs.split(',') : [],\n });\n },\n origin,\n });\n};\n","import { existsSync, readFileSync } from 'node:fs';\nimport http from 'node:http';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { gzipSync } from 'node:zlib';\nimport { config } from 'dotenv';\nimport handler from 'serve-handler';\nimport { logger } from '../../utils/logger';\nimport { loadAndValidatePresets, escapeJsonForHtml } from '../../utils/validate-presets.js';\n\ninterface StudioOptions {\n env?: string;\n port?: string | number;\n serverHost?: string;\n serverPort?: string | number;\n serverProtocol?: string;\n serverApiPrefix?: string;\n requestContextPresets?: string;\n}\n\nfunction normalizeBasePath(basePath: string): string {\n const trimmed = basePath.trim();\n\n if (trimmed === '' || trimmed === '/') {\n return '';\n }\n\n let normalized = trimmed.replace(/\\/+/g, '/');\n if (!normalized.startsWith('/')) {\n normalized = `/${normalized}`;\n }\n if (normalized.endsWith('/')) {\n normalized = normalized.slice(0, -1);\n }\n\n return normalized;\n}\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nexport async function studio(\n options: StudioOptions = {\n serverHost: 'localhost',\n serverPort: 4111,\n serverProtocol: 'http',\n },\n) {\n // Load environment variables from .env files\n config({ path: [options.env || '.env.production', '.env'], quiet: true });\n\n // Load and validate request context presets if provided\n let requestContextPresetsJson = '';\n if (options.requestContextPresets) {\n try {\n requestContextPresetsJson = await loadAndValidatePresets(options.requestContextPresets);\n } catch (error: any) {\n logger.error('Failed to load request context presets', { error: error.message });\n process.exit(1);\n }\n }\n\n try {\n const distPath = join(__dirname, 'studio');\n\n if (!existsSync(distPath)) {\n logger.error('Studio distribution not found', { distPath });\n process.exit(1);\n }\n\n const port = options.port || 3000;\n\n // Start the server using the installed serve binary\n // Start the server using node\n const server = createServer(distPath, options, requestContextPresetsJson);\n\n server.listen(port, () => {\n logger.info('Mastra Studio running', { url: `http://localhost:${port}` });\n });\n\n process.on('SIGINT', () => {\n server.close(() => {\n process.exit(0);\n });\n });\n\n process.on('SIGTERM', () => {\n server.close(() => {\n process.exit(0);\n });\n });\n } catch (error: any) {\n logger.error('Failed to start Mastra Studio', { error: error.message });\n process.exit(1);\n }\n}\n\nexport const createServer = (builtStudioPath: string, options: StudioOptions, requestContextPresetsJson: string) => {\n const indexHtmlPath = join(builtStudioPath, 'index.html');\n const basePath = normalizeBasePath(process.env.MASTRA_STUDIO_BASE_PATH ?? '');\n\n const experimentalFeatures = process.env.EXPERIMENTAL_FEATURES === 'true' ? 'true' : 'false';\n const experimentalUI = process.env.MASTRA_EXPERIMENTAL_UI === 'true' ? 'true' : 'false';\n const templatesEnabled = process.env.MASTRA_TEMPLATES === 'true' ? 'true' : 'false';\n const agentSignals = process.env.MASTRA_AGENT_SIGNALS === 'true' ? 'true' : 'false';\n\n let html = readFileSync(indexHtmlPath, 'utf8')\n .replaceAll('%%MASTRA_STUDIO_BASE_PATH%%', basePath)\n .replaceAll('%%MASTRA_SERVER_HOST%%', options.serverHost || 'localhost')\n .replaceAll('%%MASTRA_SERVER_PORT%%', String(options.serverPort || 4111))\n .replaceAll('%%MASTRA_SERVER_PROTOCOL%%', options.serverProtocol || 'http')\n .replaceAll('%%MASTRA_API_PREFIX%%', options.serverApiPrefix || '/api')\n .replaceAll('%%MASTRA_EXPERIMENTAL_FEATURES%%', experimentalFeatures)\n .replaceAll('%%MASTRA_TEMPLATES%%', templatesEnabled)\n .replaceAll('%%MASTRA_CLOUD_API_ENDPOINT%%', '')\n .replaceAll('%%MASTRA_HIDE_CLOUD_CTA%%', '')\n .replaceAll('%%MASTRA_TELEMETRY_DISABLED%%', process.env.MASTRA_TELEMETRY_DISABLED ?? '')\n .replaceAll('%%MASTRA_REQUEST_CONTEXT_PRESETS%%', escapeJsonForHtml(requestContextPresetsJson))\n .replaceAll('%%MASTRA_EXPERIMENTAL_UI%%', experimentalUI)\n .replaceAll('%%MASTRA_AGENT_SIGNALS%%', agentSignals);\n\n // Pre-compress the HTML shell since it's served for every non-asset request\n const compressedHtml = gzipSync(Buffer.from(html));\n\n const server = http.createServer((req, res) => {\n const url = req.url || '/';\n const queryStart = url.indexOf('?');\n const rawPathname = queryStart >= 0 ? url.slice(0, queryStart) : url;\n const query = queryStart >= 0 ? url.slice(queryStart + 1) : '';\n const pathname = rawPathname || '/';\n\n const pathWithoutBase =\n basePath && pathname.startsWith(`${basePath}/`)\n ? pathname.slice(basePath.length)\n : pathname === basePath\n ? '/'\n : pathname;\n // Let static assets be served by serve-handler\n const isAssetsPath = /(^|\\/)assets\\//.test(pathWithoutBase);\n const isDistAssetsPath = /(^|\\/)dist\\/assets\\//.test(pathWithoutBase);\n const isMastraSvg = pathWithoutBase === '/mastra.svg' || pathWithoutBase.endsWith('/mastra.svg');\n const isStaticAsset = isAssetsPath || isDistAssetsPath || isMastraSvg;\n\n const rawEncoding = req.headers['accept-encoding'] ?? '';\n const encodingValues = Array.isArray(rawEncoding) ? rawEncoding : [rawEncoding];\n const supportsGzip = encodingValues\n .flatMap((v: string) => v.split(','))\n .map((v: string) => v.trim().toLowerCase())\n .some((v: string) => {\n const [coding, ...params] = v.split(';').map((p: string) => p.trim());\n if (coding !== 'gzip') return false;\n const q = params.find((p: string) => p.startsWith('q='));\n return q ? Number(q.slice(2)) > 0 : true;\n });\n\n // For everything that's not a static asset, serve the SPA shell (index.html)\n if (!isStaticAsset) {\n if (supportsGzip) {\n res.writeHead(200, {\n 'Content-Type': 'text/html',\n 'Content-Encoding': 'gzip',\n 'Content-Length': compressedHtml.length,\n Vary: 'Accept-Encoding',\n });\n return res.end(compressedHtml);\n }\n res.writeHead(200, { 'Content-Type': 'text/html', Vary: 'Accept-Encoding' });\n return res.end(html);\n }\n\n if (basePath && pathWithoutBase !== pathname) {\n req.url = query ? `${pathWithoutBase}?${query}` : pathWithoutBase;\n }\n\n return handler(req, res, {\n public: builtStudioPath,\n });\n });\n\n return server;\n};\n","import { analytics, origin } from '../..';\nimport { studio } from '../studio';\n\ninterface StudioArgs {\n port?: string | number;\n env?: string;\n serverHost?: string;\n serverPort?: string | number;\n serverProtocol?: string;\n serverApiPrefix?: string;\n requestContextPresets?: string;\n}\n\nexport const startStudio = async (args: StudioArgs) => {\n analytics.trackCommand({\n command: 'studio',\n origin,\n });\n\n await studio(args);\n};\n","export type ApiErrorCode =\n | 'INVALID_JSON'\n | 'MISSING_INPUT'\n | 'MISSING_ARGUMENT'\n | 'MALFORMED_HEADER'\n | 'SERVER_UNREACHABLE'\n | 'REQUEST_TIMEOUT'\n | 'HTTP_ERROR'\n | 'SCHEMA_UNAVAILABLE'\n | 'PLATFORM_RESOLUTION_FAILED';\n\nexport class ApiCliError extends Error {\n constructor(\n public code: ApiErrorCode,\n message: string,\n public details: Record<string, unknown> = {},\n ) {\n super(message);\n }\n}\n\nexport function errorEnvelope(error: ApiCliError) {\n return {\n error: {\n code: error.code,\n message: error.message,\n details: error.details,\n },\n };\n}\n\nexport function toApiCliError(error: unknown): ApiCliError {\n if (error instanceof ApiCliError) return error;\n if (error instanceof Error && error.name === 'AbortError') {\n return new ApiCliError('REQUEST_TIMEOUT', 'Request timed out');\n }\n return new ApiCliError('SERVER_UNREACHABLE', 'Could not connect to target server', {\n message: error instanceof Error ? error.message : String(error),\n });\n}\n","import { ApiCliError, toApiCliError } from './errors.js';\nimport type { ApiCommandDescriptor } from './types.js';\n\nexport interface ApiRequestOptions {\n baseUrl: string;\n headers: Record<string, string>;\n timeoutMs: number;\n descriptor: ApiCommandDescriptor;\n pathParams: Record<string, string>;\n input?: Record<string, unknown>;\n}\n\nexport async function requestApi(options: ApiRequestOptions): Promise<unknown> {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), options.timeoutMs);\n\n try {\n const { queryInput, bodyInput } = splitInput(options.descriptor, options.input);\n const url = buildUrl(options.baseUrl, options.descriptor.path, options.pathParams, queryInput);\n const init: RequestInit = {\n method: options.descriptor.method,\n headers: { ...options.headers },\n signal: controller.signal,\n };\n\n if (options.descriptor.method !== 'GET' && bodyInput) {\n init.headers = { 'content-type': 'application/json', ...init.headers };\n init.body = JSON.stringify(bodyInput);\n }\n\n const response = await fetch(url, init);\n const body = await parseResponse(response);\n\n if (!response.ok) {\n throw new ApiCliError('HTTP_ERROR', `Request failed with status ${response.status}`, {\n status: response.status,\n body,\n });\n }\n\n return body;\n } catch (error) {\n if (error instanceof Error && error.name === 'AbortError') {\n throw new ApiCliError('REQUEST_TIMEOUT', `Request timed out after ${options.timeoutMs}ms`, {\n timeoutMs: options.timeoutMs,\n });\n }\n throw toApiCliError(error);\n } finally {\n clearTimeout(timeout);\n }\n}\n\nexport function buildUrl(\n baseUrl: string,\n path: string,\n pathParams: Record<string, string>,\n input?: Record<string, unknown>,\n): string {\n const pathParamNames = new Set<string>();\n const resolvedPath = path.replace(/:([A-Za-z0-9_]+)/g, (_, name: string) => {\n pathParamNames.add(name);\n const value = pathParams[name];\n if (!value) {\n throw new ApiCliError('MISSING_ARGUMENT', `Missing required argument <${name}>`, { argument: name });\n }\n return encodeURIComponent(value);\n });\n const url = new URL(joinUrl(baseUrl, resolvedPath));\n\n for (const [key, value] of Object.entries(pathParams)) {\n if (!pathParamNames.has(key)) url.searchParams.set(key, value);\n }\n\n if (input) {\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined || value === null) continue;\n url.searchParams.set(key, typeof value === 'object' ? JSON.stringify(value) : String(value));\n }\n }\n\n return url.toString();\n}\n\nexport function splitInput(\n descriptor: ApiCommandDescriptor,\n input?: Record<string, unknown>,\n): { queryInput?: Record<string, unknown>; bodyInput?: Record<string, unknown> } {\n if (!input) return {};\n if (descriptor.method === 'GET') return { queryInput: input };\n\n const normalizedInput = normalizeInput(descriptor, input);\n const queryParamNames = new Set(descriptor.queryParams);\n const bodyParamNames = new Set(descriptor.bodyParams);\n if (queryParamNames.size === 0) return { bodyInput: normalizedInput };\n\n const queryInput: Record<string, unknown> = {};\n const bodyInput: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(normalizedInput)) {\n if (queryParamNames.has(key) && !bodyParamNames.has(key)) {\n queryInput[key] = value;\n } else {\n bodyInput[key] = value;\n }\n }\n\n return {\n queryInput: Object.keys(queryInput).length ? queryInput : undefined,\n bodyInput: Object.keys(bodyInput).length ? bodyInput : undefined,\n };\n}\n\nfunction normalizeInput(descriptor: ApiCommandDescriptor, input: Record<string, unknown>): Record<string, unknown> {\n if ((descriptor.key === 'toolExecute' || descriptor.key === 'mcpToolExecute') && !Object.hasOwn(input, 'data')) {\n return { data: input };\n }\n\n return input;\n}\n\nexport async function fetchSchemaManifest(\n baseUrl: string,\n headers: Record<string, string>,\n timeoutMs: number,\n): Promise<any> {\n const descriptor: ApiCommandDescriptor = {\n key: 'schema',\n name: 'system api-schema',\n description: 'Fetch API schema manifest',\n method: 'GET',\n path: '/system/api-schema',\n positionals: [],\n acceptsInput: false,\n inputRequired: false,\n list: false,\n responseShape: { kind: 'single' },\n queryParams: [],\n bodyParams: [],\n };\n return requestApi({ baseUrl, headers, timeoutMs, descriptor, pathParams: {} });\n}\n\nasync function parseResponse(response: Response): Promise<unknown> {\n const text = await response.text();\n if (!text) return null;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\nfunction joinUrl(baseUrl: string, path: string): string {\n const normalizedBase = baseUrl.replace(/\\/$/, '');\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\n if (normalizedBase.endsWith('/api')) return `${normalizedBase}${normalizedPath}`;\n return `${normalizedBase}/api${normalizedPath}`;\n}\n","import { ApiCliError } from './errors.js';\nimport type { ApiCommandDescriptor } from './types.js';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\n\nexport function parseInput(descriptor: ApiCommandDescriptor, input?: string): Record<string, unknown> | undefined {\n if (!descriptor.acceptsInput) return undefined;\n\n if (!input) {\n if (descriptor.inputRequired) {\n throw new ApiCliError('MISSING_INPUT', 'Command requires a single inline JSON input argument', {\n command: `mastra api ${descriptor.name}`,\n });\n }\n return undefined;\n }\n\n try {\n const parsed = JSON.parse(input);\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n throw new ApiCliError('INVALID_JSON', 'Input JSON must be an object');\n }\n return parsed as Record<string, unknown>;\n } catch (error) {\n if (error instanceof ApiCliError) throw error;\n throw new ApiCliError('INVALID_JSON', 'Input must be valid JSON', {\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nexport function resolvePathParams(\n descriptor: ApiCommandDescriptor,\n positionalValues: string[],\n input?: Record<string, unknown>,\n): Record<string, string> {\n const params: Record<string, string> = {};\n\n descriptor.positionals.forEach((name, index) => {\n const value = positionalValues[index];\n if (!value) {\n throw new ApiCliError('MISSING_ARGUMENT', `Missing required argument <${name}>`, { argument: name });\n }\n params[name] = value;\n });\n\n for (const name of pathParamNames(descriptor.path)) {\n if (params[name]) continue;\n const value = input?.[name];\n if (typeof value !== 'string' || !value) {\n throw new ApiCliError('MISSING_ARGUMENT', `Missing required argument <${name}>`, { argument: name });\n }\n params[name] = value;\n }\n\n return params;\n}\n\nexport function stripPathParamsFromInput(\n input: Record<string, unknown> | undefined,\n params: Record<string, string>,\n): Record<string, unknown> | undefined {\n if (!input) return undefined;\n const copy = { ...input };\n for (const key of Object.keys(params)) delete copy[key];\n return copy;\n}\n\nfunction pathParamNames(path: string): string[] {\n return Array.from(path.matchAll(/:([A-Za-z0-9_]+)/g)).map(match => match[1]!);\n}\n","import type { ApiCommandDescriptor } from './types.js';\n\nconst WORKFLOW_STATUS_MAP: Record<string, string> = {\n completed: 'success',\n complete: 'success',\n success: 'success',\n succeeded: 'success',\n failed: 'failed',\n failure: 'failed',\n error: 'failed',\n canceled: 'cancelled',\n cancelled: 'cancelled',\n running: 'running',\n pending: 'running',\n suspended: 'suspended',\n waiting: 'suspended',\n};\n\nexport function normalizeData(descriptor: ApiCommandDescriptor, data: unknown): unknown {\n if (descriptor.key === 'agentRun' && data && typeof data === 'object') {\n const record = data as Record<string, unknown>;\n return pruneUndefined({\n text: record.text ?? record.result ?? record.output,\n structuredOutput: record.structuredOutput ?? record.object,\n usage: record.usage ?? record.totalUsage,\n toolCalls: record.toolCalls,\n toolResults: record.toolResults,\n finishReason: record.finishReason,\n runId: record.runId,\n traceId: record.traceId,\n spanId: record.spanId,\n });\n }\n\n if (descriptor.key === 'toolGet' && data && typeof data === 'object') {\n const record = data as Record<string, unknown>;\n return {\n inputSchema: record.inputSchema ?? record.parameters ?? record.input,\n ...record,\n };\n }\n\n if (descriptor.key.startsWith('workflowRun')) {\n return normalizeWorkflowStatus(data);\n }\n\n return data;\n}\n\nfunction pruneUndefined(record: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));\n}\n\nfunction normalizeWorkflowStatus(data: unknown): unknown {\n if (Array.isArray(data)) return data.map(item => normalizeWorkflowStatus(item));\n if (!data || typeof data !== 'object') return data;\n\n const record = data as Record<string, unknown>;\n const status = typeof record.status === 'string' ? WORKFLOW_STATUS_MAP[record.status.toLowerCase()] : undefined;\n\n const normalizedRecord = Object.fromEntries(\n Object.entries(record).map(([key, value]) => [\n key,\n Array.isArray(value) ? value.map(item => normalizeWorkflowStatus(item)) : value,\n ]),\n );\n\n return {\n ...normalizedRecord,\n ...(status ? { status } : {}),\n };\n}\n","import type { ApiResponseShape } from './types.js';\n\ninterface PaginationInfo {\n total: number;\n page: number;\n perPage: number | false;\n hasMore: boolean;\n}\n\nexport function writeJson(value: unknown, pretty: boolean, stream: NodeJS.WritableStream = process.stdout): void {\n stream.write(`${JSON.stringify(value, null, pretty ? 2 : 0)}\\n`);\n}\n\nexport function normalizeSuccess(data: unknown, list: boolean, responseShape?: ApiResponseShape) {\n if (!list) return { data };\n\n const { items, page } = extractList(data, responseShape);\n return {\n data: items,\n page,\n };\n}\n\nfunction extractList(data: unknown, responseShape?: ApiResponseShape): { items: unknown[]; page: PaginationInfo } {\n if (Array.isArray(data)) {\n return { items: data, page: { total: data.length, page: 0, perPage: data.length, hasMore: false } };\n }\n\n if (data && typeof data === 'object') {\n const record = data as Record<string, unknown>;\n const items = findArray(record, responseShape) ?? [];\n const nestedPage = record.page ?? record.pagination;\n const pageRecord = nestedPage && typeof nestedPage === 'object' ? (nestedPage as Record<string, unknown>) : record;\n return {\n items,\n page: normalizePage(pageRecord, items.length),\n };\n }\n\n return { items: [], page: { total: 0, page: 0, perPage: 0, hasMore: false } };\n}\n\nfunction normalizePage(pageRecord: Record<string, unknown> | undefined, itemCount: number): PaginationInfo {\n const total = typeof pageRecord?.total === 'number' ? pageRecord.total : itemCount;\n const page = typeof pageRecord?.page === 'number' ? pageRecord.page : 0;\n const perPage =\n typeof pageRecord?.perPage === 'number' || pageRecord?.perPage === false ? pageRecord.perPage : itemCount;\n const hasMore = typeof pageRecord?.hasMore === 'boolean' ? pageRecord.hasMore : false;\n\n return { total, page, perPage, hasMore };\n}\n\nfunction findArray(record: Record<string, unknown>, responseShape?: ApiResponseShape): unknown[] | undefined {\n if (responseShape?.kind === 'array' && Array.isArray(record)) return record;\n if (responseShape?.kind === 'record') return Object.values(record);\n if (responseShape?.kind === 'object-property' && responseShape.listProperty) {\n const value = record[responseShape.listProperty];\n if (Array.isArray(value)) return value;\n }\n\n if (Array.isArray(record.data)) return record.data;\n\n const values = Object.values(record);\n if (values.every(value => value && typeof value === 'object' && !Array.isArray(value))) {\n return values;\n }\n\n for (const value of values) {\n if (Array.isArray(value)) return value;\n }\n return undefined;\n}\n","const SCHEMA_FIELD_PATTERN = /(^schema$|schema$|^parameters$)/i;\n\nexport function normalizeResponse(\n value: unknown,\n key?: string,\n isSchemaMetadata = key ? isSchemaField(key) : false,\n): unknown {\n if (Array.isArray(value)) return value.map(item => normalizeResponse(item, key, isSchemaMetadata));\n\n if (value && typeof value === 'object') {\n const record = value as Record<string, unknown>;\n const normalized = Object.fromEntries(\n Object.entries(record).flatMap(([entryKey, entryValue]) => {\n if (isSchemaMetadata && entryKey === '$schema') return [];\n return [[entryKey, normalizeResponse(entryValue, entryKey, isSchemaMetadata || isSchemaField(entryKey))]];\n }),\n );\n\n if (key && isSchemaField(key) && Object.keys(normalized).length === 1 && Object.hasOwn(normalized, 'json')) {\n return normalized.json;\n }\n\n return normalized;\n }\n\n if (typeof value === 'string' && key && isSchemaField(key)) {\n return parseSchemaString(value, key);\n }\n\n return value;\n}\n\nfunction isSchemaField(key: string): boolean {\n return SCHEMA_FIELD_PATTERN.test(key);\n}\n\nfunction parseSchemaString(value: string, key: string): unknown {\n const trimmed = value.trim();\n if (!trimmed || (trimmed[0] !== '{' && trimmed[0] !== '[')) return value;\n\n try {\n return normalizeResponse(JSON.parse(trimmed), key, true);\n } catch {\n return value;\n }\n}\n","// This file is generated by packages/server/scripts/generate-api-cli-route-metadata.ts. Do not edit by hand.\n\nexport const API_ROUTE_METADATA = {\n \"GET /agents\": {\n \"method\": \"GET\",\n \"path\": \"/agents\",\n \"pathParams\": [],\n \"queryParams\": [\n \"partial\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /agents/providers\": {\n \"method\": \"GET\",\n \"path\": \"/agents/providers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"providers\"\n }\n },\n \"GET /agents/:agentId\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [\n \"status\",\n \"versionId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/clone\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/clone\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"metadata\",\n \"newId\",\n \"newName\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /agents/:agentId/voice/speakers\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/voice/speakers\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"GET /agents/:agentId/speakers\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/speakers\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"POST /agents/:agentId/generate\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/generate\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"activeTools\",\n \"clientTools\",\n \"context\",\n \"instructions\",\n \"maxSteps\",\n \"memory\",\n \"messages\",\n \"modelSettings\",\n \"output\",\n \"providerOptions\",\n \"requestContext\",\n \"requireToolApproval\",\n \"returnScorerData\",\n \"runId\",\n \"savePerStep\",\n \"scorers\",\n \"stopWhen\",\n \"structuredOutput\",\n \"system\",\n \"toolChoice\",\n \"toolsets\",\n \"tracingOptions\",\n \"versions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/generate/vnext\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/generate/vnext\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"activeTools\",\n \"clientTools\",\n \"context\",\n \"instructions\",\n \"maxSteps\",\n \"memory\",\n \"messages\",\n \"modelSettings\",\n \"output\",\n \"providerOptions\",\n \"requestContext\",\n \"requireToolApproval\",\n \"returnScorerData\",\n \"runId\",\n \"savePerStep\",\n \"scorers\",\n \"stopWhen\",\n \"structuredOutput\",\n \"system\",\n \"toolChoice\",\n \"toolsets\",\n \"tracingOptions\",\n \"versions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/signals\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/signals\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/tools/:toolId/execute\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/tools/:toolId/execute\",\n \"pathParams\": [\n \"agentId\",\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"data\",\n \"requestContext\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/approve-tool-call-generate\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/approve-tool-call-generate\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"format\",\n \"requestContext\",\n \"runId\",\n \"toolCallId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/decline-tool-call-generate\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/decline-tool-call-generate\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"format\",\n \"requestContext\",\n \"runId\",\n \"toolCallId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/model\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/model\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"modelId\",\n \"provider\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/model/reset\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/model/reset\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/models/reorder\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/models/reorder\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"reorderedModelIds\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/models/:modelConfigId\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/models/:modelConfigId\",\n \"pathParams\": [\n \"agentId\",\n \"modelConfigId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"enabled\",\n \"maxRetries\",\n \"model\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/instructions/enhance\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/instructions/enhance\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"comment\",\n \"instructions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /agents/:agentId/tools/:toolId\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/tools/:toolId\",\n \"pathParams\": [\n \"agentId\",\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /agents/:agentId/skills/:skillName\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/skills/:skillName\",\n \"pathParams\": [\n \"agentId\",\n \"skillName\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/voice/listen\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/voice/listen\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"audio\",\n \"options\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/listen\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/listen\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"audio\",\n \"options\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /agents/:agentId/voice/listener\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/voice/listener\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /auth/capabilities\": {\n \"method\": \"GET\",\n \"path\": \"/auth/capabilities\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /auth/me\": {\n \"method\": \"GET\",\n \"path\": \"/auth/me\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workflows\": {\n \"method\": \"GET\",\n \"path\": \"/workflows\",\n \"pathParams\": [],\n \"queryParams\": [\n \"partial\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /workflows/:workflowId\": {\n \"method\": \"GET\",\n \"path\": \"/workflows/:workflowId\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workflows/:workflowId/runs\": {\n \"method\": \"GET\",\n \"path\": \"/workflows/:workflowId/runs\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"fromDate\",\n \"limit\",\n \"offset\",\n \"page\",\n \"perPage\",\n \"resourceId\",\n \"status\",\n \"toDate\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"runs\"\n }\n },\n \"GET /workflows/:workflowId/runs/:runId\": {\n \"method\": \"GET\",\n \"path\": \"/workflows/:workflowId/runs/:runId\",\n \"pathParams\": [\n \"workflowId\",\n \"runId\"\n ],\n \"queryParams\": [\n \"fields\",\n \"withNestedWorkflows\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /workflows/:workflowId/runs/:runId\": {\n \"method\": \"DELETE\",\n \"path\": \"/workflows/:workflowId/runs/:runId\",\n \"pathParams\": [\n \"workflowId\",\n \"runId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/create-run\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/create-run\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"disableScorers\",\n \"resourceId\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/start-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/start-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"initialState\",\n \"inputData\",\n \"perStep\",\n \"requestContext\",\n \"resourceId\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/start\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/start\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"initialState\",\n \"inputData\",\n \"perStep\",\n \"requestContext\",\n \"resourceId\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/resume-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/resume-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"forEachIndex\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"step\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/resume\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/resume\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"forEachIndex\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"step\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/runs/:runId/cancel\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/runs/:runId/cancel\",\n \"pathParams\": [\n \"workflowId\",\n \"runId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/time-travel\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/time-travel\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"context\",\n \"initialState\",\n \"inputData\",\n \"nestedStepsContext\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"step\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/time-travel-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/time-travel-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"context\",\n \"initialState\",\n \"inputData\",\n \"nestedStepsContext\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"step\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/restart\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/restart\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"requestContext\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/restart-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/restart-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"requestContext\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/restart-all-active-workflow-runs\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/restart-all-active-workflow-runs\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/restart-all-active-workflow-runs-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/restart-all-active-workflow-runs-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/runs/:runId/steps/execute\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/runs/:runId/steps/execute\",\n \"pathParams\": [\n \"workflowId\",\n \"runId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"executionPath\",\n \"foreachIdx\",\n \"format\",\n \"input\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"retryCount\",\n \"state\",\n \"stepId\",\n \"stepResults\",\n \"validateInputs\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/events\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/events\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"event\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /tools\": {\n \"method\": \"GET\",\n \"path\": \"/tools\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /tools/:toolId\": {\n \"method\": \"GET\",\n \"path\": \"/tools/:toolId\",\n \"pathParams\": [\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /tools/:toolId/execute\": {\n \"method\": \"POST\",\n \"path\": \"/tools/:toolId/execute\",\n \"pathParams\": [\n \"toolId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"data\",\n \"requestContext\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /processors\": {\n \"method\": \"GET\",\n \"path\": \"/processors\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /processors/:processorId\": {\n \"method\": \"GET\",\n \"path\": \"/processors/:processorId\",\n \"pathParams\": [\n \"processorId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /processors/:processorId/execute\": {\n \"method\": \"POST\",\n \"path\": \"/processors/:processorId/execute\",\n \"pathParams\": [\n \"processorId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentId\",\n \"messages\",\n \"phase\",\n \"requestContext\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /v1/responses/:responseId\": {\n \"method\": \"GET\",\n \"path\": \"/v1/responses/:responseId\",\n \"pathParams\": [\n \"responseId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /v1/responses/:responseId\": {\n \"method\": \"DELETE\",\n \"path\": \"/v1/responses/:responseId\",\n \"pathParams\": [\n \"responseId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /v1/conversations\": {\n \"method\": \"POST\",\n \"path\": \"/v1/conversations\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agent_id\",\n \"conversation_id\",\n \"metadata\",\n \"resource_id\",\n \"title\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /v1/conversations/:conversationId\": {\n \"method\": \"GET\",\n \"path\": \"/v1/conversations/:conversationId\",\n \"pathParams\": [\n \"conversationId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /v1/conversations/:conversationId/items\": {\n \"method\": \"GET\",\n \"path\": \"/v1/conversations/:conversationId/items\",\n \"pathParams\": [\n \"conversationId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /v1/conversations/:conversationId\": {\n \"method\": \"DELETE\",\n \"path\": \"/v1/conversations/:conversationId\",\n \"pathParams\": [\n \"conversationId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/status\": {\n \"method\": \"GET\",\n \"path\": \"/memory/status\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\",\n \"threadId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/config\": {\n \"method\": \"GET\",\n \"path\": \"/memory/config\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/observational-memory\": {\n \"method\": \"GET\",\n \"path\": \"/memory/observational-memory\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"from\",\n \"limit\",\n \"offset\",\n \"resourceId\",\n \"threadId\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"history\"\n }\n },\n \"POST /memory/observational-memory/buffer-status\": {\n \"method\": \"POST\",\n \"path\": \"/memory/observational-memory/buffer-status\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentId\",\n \"resourceId\",\n \"threadId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/threads\": {\n \"method\": \"GET\",\n \"path\": \"/memory/threads\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"threads\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /memory/threads/:threadId\": {\n \"method\": \"GET\",\n \"path\": \"/memory/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/threads/:threadId/messages\": {\n \"method\": \"GET\",\n \"path\": \"/memory/threads/:threadId/messages\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"filter\",\n \"include\",\n \"includeSystemReminders\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"messages\"\n }\n },\n \"GET /memory/threads/:threadId/working-memory\": {\n \"method\": \"GET\",\n \"path\": \"/memory/threads/:threadId/working-memory\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"memoryConfig\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /memory/save-messages\": {\n \"method\": \"POST\",\n \"path\": \"/memory/save-messages\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"messages\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"messages\"\n }\n },\n \"POST /memory/threads\": {\n \"method\": \"POST\",\n \"path\": \"/memory/threads\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"resourceId\",\n \"threadId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /memory/threads/:threadId\": {\n \"method\": \"PATCH\",\n \"path\": \"/memory/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"resourceId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /memory/threads/:threadId\": {\n \"method\": \"DELETE\",\n \"path\": \"/memory/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /memory/threads/:threadId/clone\": {\n \"method\": \"POST\",\n \"path\": \"/memory/threads/:threadId/clone\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"newThreadId\",\n \"options\",\n \"resourceId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"clonedMessages\"\n }\n },\n \"POST /memory/threads/:threadId/working-memory\": {\n \"method\": \"POST\",\n \"path\": \"/memory/threads/:threadId/working-memory\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"memoryConfig\",\n \"resourceId\",\n \"workingMemory\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /memory/messages/delete\": {\n \"method\": \"POST\",\n \"path\": \"/memory/messages/delete\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [\n \"messageIds\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/search\": {\n \"method\": \"GET\",\n \"path\": \"/memory/search\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"limit\",\n \"memoryConfig\",\n \"resourceId\",\n \"searchQuery\",\n \"threadId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/network/status\": {\n \"method\": \"GET\",\n \"path\": \"/memory/network/status\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/network/threads\": {\n \"method\": \"GET\",\n \"path\": \"/memory/network/threads\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"threads\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /memory/network/threads/:threadId\": {\n \"method\": \"GET\",\n \"path\": \"/memory/network/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/network/threads/:threadId/messages\": {\n \"method\": \"GET\",\n \"path\": \"/memory/network/threads/:threadId/messages\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"filter\",\n \"include\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"messages\"\n }\n },\n \"POST /memory/network/save-messages\": {\n \"method\": \"POST\",\n \"path\": \"/memory/network/save-messages\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"messages\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"messages\"\n }\n },\n \"POST /memory/network/threads\": {\n \"method\": \"POST\",\n \"path\": \"/memory/network/threads\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"resourceId\",\n \"threadId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /memory/network/threads/:threadId\": {\n \"method\": \"PATCH\",\n \"path\": \"/memory/network/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"resourceId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /memory/network/threads/:threadId\": {\n \"method\": \"DELETE\",\n \"path\": \"/memory/network/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /memory/network/messages/delete\": {\n \"method\": \"POST\",\n \"path\": \"/memory/network/messages/delete\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [\n \"messageIds\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /scores/scorers\": {\n \"method\": \"GET\",\n \"path\": \"/scores/scorers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /scores/scorers/:scorerId\": {\n \"method\": \"GET\",\n \"path\": \"/scores/scorers/:scorerId\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /scores/run/:runId\": {\n \"method\": \"GET\",\n \"path\": \"/scores/run/:runId\",\n \"pathParams\": [\n \"runId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /scores/scorer/:scorerId\": {\n \"method\": \"GET\",\n \"path\": \"/scores/scorer/:scorerId\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [\n \"entityId\",\n \"entityType\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /scores/entity/:entityType/:entityId\": {\n \"method\": \"GET\",\n \"path\": \"/scores/entity/:entityType/:entityId\",\n \"pathParams\": [\n \"entityType\",\n \"entityId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /scores\": {\n \"method\": \"POST\",\n \"path\": \"/scores\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"score\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /observability/traces\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces\",\n \"pathParams\": [],\n \"queryParams\": [\n \"dateRange\",\n \"direction\",\n \"endedAt\",\n \"entityId\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"experimentId\",\n \"field\",\n \"hasChildError\",\n \"metadata\",\n \"name\",\n \"organizationId\",\n \"page\",\n \"parentEntityId\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"scope\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanType\",\n \"startedAt\",\n \"status\",\n \"tags\",\n \"threadId\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/branches\": {\n \"method\": \"GET\",\n \"path\": \"/observability/branches\",\n \"pathParams\": [],\n \"queryParams\": [\n \"direction\",\n \"endedAt\",\n \"entityId\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"experimentId\",\n \"field\",\n \"metadata\",\n \"organizationId\",\n \"page\",\n \"parentEntityId\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"scope\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanType\",\n \"startedAt\",\n \"status\",\n \"tags\",\n \"threadId\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"branches\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/traces/:traceId/branches/:spanId\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/branches/:spanId\",\n \"pathParams\": [\n \"traceId\",\n \"spanId\"\n ],\n \"queryParams\": [\n \"depth\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\"\n }\n },\n \"GET /observability/traces/:traceId\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId\",\n \"pathParams\": [\n \"traceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\"\n }\n },\n \"GET /observability/traces/:traceId/light\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/light\",\n \"pathParams\": [\n \"traceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\"\n }\n },\n \"GET /observability/traces/:traceId/spans/:spanId\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/spans/:spanId\",\n \"pathParams\": [\n \"traceId\",\n \"spanId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /observability/traces/:traceId/trajectory\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/trajectory\",\n \"pathParams\": [\n \"traceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/traces/score\": {\n \"method\": \"POST\",\n \"path\": \"/observability/traces/score\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"scorerName\",\n \"targets\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /observability/traces/:traceId/:spanId/scores\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/:spanId/scores\",\n \"pathParams\": [\n \"traceId\",\n \"spanId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/logs\": {\n \"method\": \"GET\",\n \"path\": \"/observability/logs\",\n \"pathParams\": [],\n \"queryParams\": [\n \"direction\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"executionSource\",\n \"experimentId\",\n \"field\",\n \"level\",\n \"organizationId\",\n \"page\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanId\",\n \"tags\",\n \"threadId\",\n \"timestamp\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"logs\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/scores\": {\n \"method\": \"GET\",\n \"path\": \"/observability/scores\",\n \"pathParams\": [],\n \"queryParams\": [\n \"direction\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"executionSource\",\n \"experimentId\",\n \"field\",\n \"organizationId\",\n \"page\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"scoreSource\",\n \"scorerId\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanId\",\n \"tags\",\n \"threadId\",\n \"timestamp\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /observability/scores\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"score\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /observability/scores/:scoreId\": {\n \"method\": \"GET\",\n \"path\": \"/observability/scores/:scoreId\",\n \"pathParams\": [\n \"scoreId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/scores/aggregate\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores/aggregate\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"comparePeriod\",\n \"filters\",\n \"scoreSource\",\n \"scorerId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/scores/breakdown\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores/breakdown\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"filters\",\n \"groupBy\",\n \"scoreSource\",\n \"scorerId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"groups\"\n }\n },\n \"POST /observability/scores/timeseries\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores/timeseries\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"filters\",\n \"groupBy\",\n \"interval\",\n \"scoreSource\",\n \"scorerId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"POST /observability/scores/percentiles\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores/percentiles\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"filters\",\n \"interval\",\n \"percentiles\",\n \"scoreSource\",\n \"scorerId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"GET /observability/feedback\": {\n \"method\": \"GET\",\n \"path\": \"/observability/feedback\",\n \"pathParams\": [],\n \"queryParams\": [\n \"direction\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"executionSource\",\n \"experimentId\",\n \"feedbackSource\",\n \"feedbackType\",\n \"feedbackUserId\",\n \"field\",\n \"organizationId\",\n \"page\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanId\",\n \"tags\",\n \"threadId\",\n \"timestamp\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"feedback\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /observability/feedback\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"feedback\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/feedback/aggregate\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback/aggregate\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"comparePeriod\",\n \"feedbackSource\",\n \"feedbackType\",\n \"filters\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/feedback/breakdown\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback/breakdown\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"feedbackSource\",\n \"feedbackType\",\n \"filters\",\n \"groupBy\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"groups\"\n }\n },\n \"POST /observability/feedback/timeseries\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback/timeseries\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"feedbackSource\",\n \"feedbackType\",\n \"filters\",\n \"groupBy\",\n \"interval\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"POST /observability/feedback/percentiles\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback/percentiles\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"feedbackSource\",\n \"feedbackType\",\n \"filters\",\n \"interval\",\n \"percentiles\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"POST /observability/metrics/aggregate\": {\n \"method\": \"POST\",\n \"path\": \"/observability/metrics/aggregate\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"comparePeriod\",\n \"distinctColumn\",\n \"filters\",\n \"name\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/metrics/breakdown\": {\n \"method\": \"POST\",\n \"path\": \"/observability/metrics/breakdown\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"distinctColumn\",\n \"filters\",\n \"groupBy\",\n \"limit\",\n \"name\",\n \"orderDirection\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"groups\"\n }\n },\n \"POST /observability/metrics/timeseries\": {\n \"method\": \"POST\",\n \"path\": \"/observability/metrics/timeseries\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"distinctColumn\",\n \"filters\",\n \"groupBy\",\n \"interval\",\n \"name\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"POST /observability/metrics/percentiles\": {\n \"method\": \"POST\",\n \"path\": \"/observability/metrics/percentiles\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"filters\",\n \"interval\",\n \"name\",\n \"percentiles\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"GET /observability/discovery/metric-names\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/metric-names\",\n \"pathParams\": [],\n \"queryParams\": [\n \"limit\",\n \"prefix\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"names\"\n }\n },\n \"GET /observability/discovery/metric-label-keys\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/metric-label-keys\",\n \"pathParams\": [],\n \"queryParams\": [\n \"metricName\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"keys\"\n }\n },\n \"GET /observability/discovery/metric-label-values\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/metric-label-values\",\n \"pathParams\": [],\n \"queryParams\": [\n \"labelKey\",\n \"limit\",\n \"metricName\",\n \"prefix\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"values\"\n }\n },\n \"GET /observability/discovery/entity-types\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/entity-types\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"entityTypes\"\n }\n },\n \"GET /observability/discovery/entity-names\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/entity-names\",\n \"pathParams\": [],\n \"queryParams\": [\n \"entityType\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"names\"\n }\n },\n \"GET /observability/discovery/service-names\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/service-names\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"serviceNames\"\n }\n },\n \"GET /observability/discovery/environments\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/environments\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"environments\"\n }\n },\n \"GET /observability/discovery/tags\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/tags\",\n \"pathParams\": [],\n \"queryParams\": [\n \"entityType\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"tags\"\n }\n },\n \"GET /logs/transports\": {\n \"method\": \"GET\",\n \"path\": \"/logs/transports\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"transports\"\n }\n },\n \"GET /logs\": {\n \"method\": \"GET\",\n \"path\": \"/logs\",\n \"pathParams\": [],\n \"queryParams\": [\n \"filters\",\n \"fromDate\",\n \"logLevel\",\n \"page\",\n \"perPage\",\n \"toDate\",\n \"transportId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"logs\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /logs/:runId\": {\n \"method\": \"GET\",\n \"path\": \"/logs/:runId\",\n \"pathParams\": [\n \"runId\"\n ],\n \"queryParams\": [\n \"filters\",\n \"fromDate\",\n \"logLevel\",\n \"page\",\n \"perPage\",\n \"toDate\",\n \"transportId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"logs\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /vector/:vectorName/upsert\": {\n \"method\": \"POST\",\n \"path\": \"/vector/:vectorName/upsert\",\n \"pathParams\": [\n \"vectorName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"ids\",\n \"indexName\",\n \"metadata\",\n \"vectors\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"ids\"\n }\n },\n \"POST /vector/:vectorName/create-index\": {\n \"method\": \"POST\",\n \"path\": \"/vector/:vectorName/create-index\",\n \"pathParams\": [\n \"vectorName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"dimension\",\n \"indexName\",\n \"metric\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /vector/:vectorName/query\": {\n \"method\": \"POST\",\n \"path\": \"/vector/:vectorName/query\",\n \"pathParams\": [\n \"vectorName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"filter\",\n \"includeVector\",\n \"indexName\",\n \"queryVector\",\n \"topK\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"GET /vector/:vectorName/indexes\": {\n \"method\": \"GET\",\n \"path\": \"/vector/:vectorName/indexes\",\n \"pathParams\": [\n \"vectorName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"GET /vector/:vectorName/indexes/:indexName\": {\n \"method\": \"GET\",\n \"path\": \"/vector/:vectorName/indexes/:indexName\",\n \"pathParams\": [\n \"vectorName\",\n \"indexName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /vector/:vectorName/indexes/:indexName\": {\n \"method\": \"DELETE\",\n \"path\": \"/vector/:vectorName/indexes/:indexName\",\n \"pathParams\": [\n \"vectorName\",\n \"indexName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /vectors\": {\n \"method\": \"GET\",\n \"path\": \"/vectors\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"vectors\"\n }\n },\n \"GET /embedders\": {\n \"method\": \"GET\",\n \"path\": \"/embedders\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"embedders\"\n }\n },\n \"GET /.well-known/:agentId/agent-card.json\": {\n \"method\": \"GET\",\n \"path\": \"/.well-known/:agentId/agent-card.json\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"workspaces\"\n }\n },\n \"GET /workspaces/:workspaceId\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/fs/read\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/fs/read\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"encoding\",\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/fs/write\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/fs/write\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"content\",\n \"encoding\",\n \"path\",\n \"recursive\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/fs/list\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/fs/list\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"path\",\n \"recursive\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"entries\"\n }\n },\n \"DELETE /workspaces/:workspaceId/fs/delete\": {\n \"method\": \"DELETE\",\n \"path\": \"/workspaces/:workspaceId/fs/delete\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"force\",\n \"path\",\n \"recursive\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/fs/mkdir\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/fs/mkdir\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"path\",\n \"recursive\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/fs/stat\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/fs/stat\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/search\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/search\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"minScore\",\n \"mode\",\n \"query\",\n \"topK\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/index\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/index\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"content\",\n \"metadata\",\n \"path\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills/search\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills/search\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"includeReferences\",\n \"minScore\",\n \"query\",\n \"skillNames\",\n \"topK\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"results\"\n }\n },\n \"GET /workspaces/:workspaceId/skills\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"skills\"\n }\n },\n \"GET /workspaces/:workspaceId/skills/:skillName\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills/:skillName\",\n \"pathParams\": [\n \"workspaceId\",\n \"skillName\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills/:skillName/references\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills/:skillName/references\",\n \"pathParams\": [\n \"workspaceId\",\n \"skillName\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"references\"\n }\n },\n \"GET /workspaces/:workspaceId/skills/:skillName/references/:referencePath\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills/:skillName/references/:referencePath\",\n \"pathParams\": [\n \"workspaceId\",\n \"skillName\",\n \"referencePath\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills-sh/search\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/search\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"limit\",\n \"q\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills-sh/popular\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/popular\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"limit\",\n \"offset\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills-sh/preview\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/preview\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"owner\",\n \"path\",\n \"repo\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/skills-sh/install\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/install\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"mount\",\n \"owner\",\n \"repo\",\n \"skillName\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/skills-sh/remove\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/remove\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"skillName\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/skills-sh/update\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/update\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"skillName\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"updated\"\n }\n },\n \"POST /agents/:agentId/generate-legacy\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/generate-legacy\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"activeTools\",\n \"clientTools\",\n \"context\",\n \"instructions\",\n \"maxSteps\",\n \"memory\",\n \"messages\",\n \"modelSettings\",\n \"output\",\n \"providerOptions\",\n \"requestContext\",\n \"requireToolApproval\",\n \"resourceId\",\n \"resourceid\",\n \"returnScorerData\",\n \"runId\",\n \"savePerStep\",\n \"scorers\",\n \"stopWhen\",\n \"structuredOutput\",\n \"system\",\n \"threadId\",\n \"toolChoice\",\n \"toolsets\",\n \"tracingOptions\",\n \"versions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /mcp/v0/servers\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/v0/servers\",\n \"pathParams\": [],\n \"queryParams\": [\n \"limit\",\n \"offset\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /mcp/v0/servers/:id\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/v0/servers/:id\",\n \"pathParams\": [\n \"id\"\n ],\n \"queryParams\": [\n \"version\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /mcp/:serverId/tools\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/:serverId/tools\",\n \"pathParams\": [\n \"serverId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"tools\"\n }\n },\n \"GET /mcp/:serverId/tools/:toolId\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/:serverId/tools/:toolId\",\n \"pathParams\": [\n \"serverId\",\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /mcp/:serverId/tools/:toolId/execute\": {\n \"method\": \"POST\",\n \"path\": \"/mcp/:serverId/tools/:toolId/execute\",\n \"pathParams\": [\n \"serverId\",\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"data\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /mcp/:serverId/resources\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/:serverId/resources\",\n \"pathParams\": [\n \"serverId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"resources\"\n }\n },\n \"POST /mcp/:serverId/resources/read\": {\n \"method\": \"POST\",\n \"path\": \"/mcp/:serverId/resources/read\",\n \"pathParams\": [\n \"serverId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"uri\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"contents\"\n }\n },\n \"GET /stored/agents\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"agents\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/agents/preview-instructions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents/preview-instructions\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"blocks\",\n \"context\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/agents/:storedAgentId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents/:storedAgentId\",\n \"pathParams\": [\n \"storedAgentId\"\n ],\n \"queryParams\": [\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/agents\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agents\",\n \"authorId\",\n \"defaultOptions\",\n \"description\",\n \"id\",\n \"inputProcessors\",\n \"instructions\",\n \"integrationTools\",\n \"mcpClients\",\n \"memory\",\n \"metadata\",\n \"model\",\n \"name\",\n \"outputProcessors\",\n \"requestContextSchema\",\n \"scorers\",\n \"skills\",\n \"tools\",\n \"workflows\",\n \"workspace\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/agents/:storedAgentId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/agents/:storedAgentId\",\n \"pathParams\": [\n \"storedAgentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agents\",\n \"authorId\",\n \"changeMessage\",\n \"defaultOptions\",\n \"description\",\n \"inputProcessors\",\n \"instructions\",\n \"integrationTools\",\n \"mcpClients\",\n \"memory\",\n \"metadata\",\n \"model\",\n \"name\",\n \"outputProcessors\",\n \"requestContextSchema\",\n \"scorers\",\n \"skills\",\n \"tools\",\n \"workflows\",\n \"workspace\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/agents/:storedAgentId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/agents/:storedAgentId\",\n \"pathParams\": [\n \"storedAgentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/agents/:agentId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents/:agentId/versions\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/agents/:agentId/versions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents/:agentId/versions\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"changeMessage\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/agents/:agentId/versions/compare\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents/:agentId/versions/compare\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [\n \"from\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/agents/:agentId/versions/:versionId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents/:agentId/versions/:versionId\",\n \"pathParams\": [\n \"agentId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/agents/:agentId/versions/:versionId/activate\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents/:agentId/versions/:versionId/activate\",\n \"pathParams\": [\n \"agentId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/agents/:agentId/versions/:versionId/restore\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents/:agentId/versions/:versionId/restore\",\n \"pathParams\": [\n \"agentId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/agents/:agentId/versions/:versionId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/agents/:agentId/versions/:versionId\",\n \"pathParams\": [\n \"agentId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/mcp-clients\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"mcpClients\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/mcp-clients/:storedMCPClientId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients/:storedMCPClientId\",\n \"pathParams\": [\n \"storedMCPClientId\"\n ],\n \"queryParams\": [\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/mcp-clients\": {\n \"method\": \"POST\",\n \"path\": \"/stored/mcp-clients\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"description\",\n \"id\",\n \"metadata\",\n \"name\",\n \"servers\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/mcp-clients/:storedMCPClientId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/mcp-clients/:storedMCPClientId\",\n \"pathParams\": [\n \"storedMCPClientId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"description\",\n \"metadata\",\n \"name\",\n \"servers\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/mcp-clients/:storedMCPClientId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/mcp-clients/:storedMCPClientId\",\n \"pathParams\": [\n \"storedMCPClientId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/mcp-clients/:mcpClientId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions\",\n \"pathParams\": [\n \"mcpClientId\"\n ],\n \"queryParams\": [\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/mcp-clients/:mcpClientId/versions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions\",\n \"pathParams\": [\n \"mcpClientId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"changeMessage\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/mcp-clients/:mcpClientId/versions/compare\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/compare\",\n \"pathParams\": [\n \"mcpClientId\"\n ],\n \"queryParams\": [\n \"from\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/mcp-clients/:mcpClientId/versions/:versionId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/:versionId\",\n \"pathParams\": [\n \"mcpClientId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/mcp-clients/:mcpClientId/versions/:versionId/activate\": {\n \"method\": \"POST\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/:versionId/activate\",\n \"pathParams\": [\n \"mcpClientId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/mcp-clients/:mcpClientId/versions/:versionId/restore\": {\n \"method\": \"POST\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/:versionId/restore\",\n \"pathParams\": [\n \"mcpClientId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/mcp-clients/:mcpClientId/versions/:versionId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/:versionId\",\n \"pathParams\": [\n \"mcpClientId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/prompt-blocks\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"promptBlocks\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/prompt-blocks/:storedPromptBlockId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks/:storedPromptBlockId\",\n \"pathParams\": [\n \"storedPromptBlockId\"\n ],\n \"queryParams\": [\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/prompt-blocks\": {\n \"method\": \"POST\",\n \"path\": \"/stored/prompt-blocks\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"content\",\n \"description\",\n \"id\",\n \"metadata\",\n \"name\",\n \"requestContextSchema\",\n \"rules\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/prompt-blocks/:storedPromptBlockId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/prompt-blocks/:storedPromptBlockId\",\n \"pathParams\": [\n \"storedPromptBlockId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"content\",\n \"description\",\n \"metadata\",\n \"name\",\n \"requestContextSchema\",\n \"rules\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/prompt-blocks/:storedPromptBlockId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/prompt-blocks/:storedPromptBlockId\",\n \"pathParams\": [\n \"storedPromptBlockId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/prompt-blocks/:promptBlockId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions\",\n \"pathParams\": [\n \"promptBlockId\"\n ],\n \"queryParams\": [\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/prompt-blocks/:promptBlockId/versions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions\",\n \"pathParams\": [\n \"promptBlockId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"changeMessage\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/prompt-blocks/:promptBlockId/versions/compare\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/compare\",\n \"pathParams\": [\n \"promptBlockId\"\n ],\n \"queryParams\": [\n \"from\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/prompt-blocks/:promptBlockId/versions/:versionId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/:versionId\",\n \"pathParams\": [\n \"promptBlockId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/prompt-blocks/:promptBlockId/versions/:versionId/activate\": {\n \"method\": \"POST\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/:versionId/activate\",\n \"pathParams\": [\n \"promptBlockId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/prompt-blocks/:promptBlockId/versions/:versionId/restore\": {\n \"method\": \"POST\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/:versionId/restore\",\n \"pathParams\": [\n \"promptBlockId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/prompt-blocks/:promptBlockId/versions/:versionId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/:versionId\",\n \"pathParams\": [\n \"promptBlockId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/scorers\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scorerDefinitions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/scorers/:storedScorerId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers/:storedScorerId\",\n \"pathParams\": [\n \"storedScorerId\"\n ],\n \"queryParams\": [\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/scorers\": {\n \"method\": \"POST\",\n \"path\": \"/stored/scorers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"defaultSampling\",\n \"description\",\n \"id\",\n \"instructions\",\n \"metadata\",\n \"model\",\n \"name\",\n \"presetConfig\",\n \"scoreRange\",\n \"type\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/scorers/:storedScorerId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/scorers/:storedScorerId\",\n \"pathParams\": [\n \"storedScorerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"defaultSampling\",\n \"description\",\n \"instructions\",\n \"metadata\",\n \"model\",\n \"name\",\n \"presetConfig\",\n \"scoreRange\",\n \"type\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/scorers/:storedScorerId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/scorers/:storedScorerId\",\n \"pathParams\": [\n \"storedScorerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/scorers/:scorerId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers/:scorerId/versions\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/scorers/:scorerId/versions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/scorers/:scorerId/versions\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"changeMessage\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/scorers/:scorerId/versions/compare\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers/:scorerId/versions/compare\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [\n \"from\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/scorers/:scorerId/versions/:versionId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers/:scorerId/versions/:versionId\",\n \"pathParams\": [\n \"scorerId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/scorers/:scorerId/versions/:versionId/activate\": {\n \"method\": \"POST\",\n \"path\": \"/stored/scorers/:scorerId/versions/:versionId/activate\",\n \"pathParams\": [\n \"scorerId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/scorers/:scorerId/versions/:versionId/restore\": {\n \"method\": \"POST\",\n \"path\": \"/stored/scorers/:scorerId/versions/:versionId/restore\",\n \"pathParams\": [\n \"scorerId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/scorers/:scorerId/versions/:versionId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/scorers/:scorerId/versions/:versionId\",\n \"pathParams\": [\n \"scorerId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/workspaces\": {\n \"method\": \"GET\",\n \"path\": \"/stored/workspaces\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"workspaces\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/workspaces/:storedWorkspaceId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/workspaces/:storedWorkspaceId\",\n \"pathParams\": [\n \"storedWorkspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/workspaces\": {\n \"method\": \"POST\",\n \"path\": \"/stored/workspaces\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"autoSync\",\n \"description\",\n \"filesystem\",\n \"id\",\n \"metadata\",\n \"mounts\",\n \"name\",\n \"operationTimeout\",\n \"sandbox\",\n \"search\",\n \"skills\",\n \"tools\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/workspaces/:storedWorkspaceId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/workspaces/:storedWorkspaceId\",\n \"pathParams\": [\n \"storedWorkspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"autoSync\",\n \"description\",\n \"filesystem\",\n \"metadata\",\n \"mounts\",\n \"name\",\n \"operationTimeout\",\n \"sandbox\",\n \"search\",\n \"skills\",\n \"tools\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/workspaces/:storedWorkspaceId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/workspaces/:storedWorkspaceId\",\n \"pathParams\": [\n \"storedWorkspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/skills\": {\n \"method\": \"GET\",\n \"path\": \"/stored/skills\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"skills\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/skills/:storedSkillId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/skills/:storedSkillId\",\n \"pathParams\": [\n \"storedSkillId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/skills\": {\n \"method\": \"POST\",\n \"path\": \"/stored/skills\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"assets\",\n \"authorId\",\n \"compatibility\",\n \"description\",\n \"id\",\n \"instructions\",\n \"license\",\n \"metadata\",\n \"name\",\n \"references\",\n \"scripts\",\n \"source\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/skills/:storedSkillId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/skills/:storedSkillId\",\n \"pathParams\": [\n \"storedSkillId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"assets\",\n \"authorId\",\n \"compatibility\",\n \"description\",\n \"instructions\",\n \"license\",\n \"metadata\",\n \"name\",\n \"references\",\n \"scripts\",\n \"source\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/skills/:storedSkillId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/skills/:storedSkillId\",\n \"pathParams\": [\n \"storedSkillId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/skills/:storedSkillId/publish\": {\n \"method\": \"POST\",\n \"path\": \"/stored/skills/:storedSkillId/publish\",\n \"pathParams\": [\n \"storedSkillId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"skillPath\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /tool-providers\": {\n \"method\": \"GET\",\n \"path\": \"/tool-providers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"providers\"\n }\n },\n \"GET /tool-providers/:providerId/toolkits\": {\n \"method\": \"GET\",\n \"path\": \"/tool-providers/:providerId/toolkits\",\n \"pathParams\": [\n \"providerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"data\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /tool-providers/:providerId/tools\": {\n \"method\": \"GET\",\n \"path\": \"/tool-providers/:providerId/tools\",\n \"pathParams\": [\n \"providerId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\",\n \"search\",\n \"toolkit\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"data\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /tool-providers/:providerId/tools/:toolSlug/schema\": {\n \"method\": \"GET\",\n \"path\": \"/tool-providers/:providerId/tools/:toolSlug/schema\",\n \"pathParams\": [\n \"providerId\",\n \"toolSlug\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /processor-providers\": {\n \"method\": \"GET\",\n \"path\": \"/processor-providers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"providers\"\n }\n },\n \"GET /processor-providers/:providerId\": {\n \"method\": \"GET\",\n \"path\": \"/processor-providers/:providerId\",\n \"pathParams\": [\n \"providerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /system/packages\": {\n \"method\": \"GET\",\n \"path\": \"/system/packages\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /system/api-schema\": {\n \"method\": \"GET\",\n \"path\": \"/system/api-schema\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"routes\"\n }\n },\n \"GET /datasets\": {\n \"method\": \"GET\",\n \"path\": \"/datasets\",\n \"pathParams\": [],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"datasets\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /datasets\": {\n \"method\": \"POST\",\n \"path\": \"/datasets\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"description\",\n \"groundTruthSchema\",\n \"inputSchema\",\n \"metadata\",\n \"name\",\n \"requestContextSchema\",\n \"scorerIds\",\n \"targetIds\",\n \"targetType\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /datasets/:datasetId\": {\n \"method\": \"PATCH\",\n \"path\": \"/datasets/:datasetId\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"description\",\n \"groundTruthSchema\",\n \"inputSchema\",\n \"metadata\",\n \"name\",\n \"requestContextSchema\",\n \"scorerIds\",\n \"tags\",\n \"targetIds\",\n \"targetType\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /datasets/:datasetId\": {\n \"method\": \"DELETE\",\n \"path\": \"/datasets/:datasetId\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/items\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/items\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\",\n \"search\",\n \"version\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"items\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /datasets/:datasetId/items\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/items\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"expectedTrajectory\",\n \"groundTruth\",\n \"input\",\n \"metadata\",\n \"requestContext\",\n \"source\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /datasets/:datasetId/items/batch\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/items/batch\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"items\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"items\"\n }\n },\n \"DELETE /datasets/:datasetId/items/batch\": {\n \"method\": \"DELETE\",\n \"path\": \"/datasets/:datasetId/items/batch\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"itemIds\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/items/:itemId\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/items/:itemId\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /datasets/:datasetId/items/:itemId\": {\n \"method\": \"PATCH\",\n \"path\": \"/datasets/:datasetId/items/:itemId\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"expectedTrajectory\",\n \"groundTruth\",\n \"input\",\n \"metadata\",\n \"requestContext\",\n \"source\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /datasets/:datasetId/items/:itemId\": {\n \"method\": \"DELETE\",\n \"path\": \"/datasets/:datasetId/items/:itemId\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/versions\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /datasets/:datasetId/items/:itemId/history\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/items/:itemId/history\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"history\"\n }\n },\n \"GET /datasets/:datasetId/items/:itemId/versions/:datasetVersion\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/items/:itemId/versions/:datasetVersion\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\",\n \"datasetVersion\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /experiments\": {\n \"method\": \"GET\",\n \"path\": \"/experiments\",\n \"pathParams\": [],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"experiments\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /experiments/review-summary\": {\n \"method\": \"GET\",\n \"path\": \"/experiments/review-summary\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"counts\"\n }\n },\n \"GET /datasets/:datasetId/experiments\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/experiments\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"experiments\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /datasets/:datasetId/experiments\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/experiments\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentVersion\",\n \"maxConcurrency\",\n \"requestContext\",\n \"scorerIds\",\n \"targetId\",\n \"targetType\",\n \"version\",\n \"versions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/experiments/:experimentId\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/experiments/:experimentId\",\n \"pathParams\": [\n \"datasetId\",\n \"experimentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/experiments/:experimentId/results\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/experiments/:experimentId/results\",\n \"pathParams\": [\n \"datasetId\",\n \"experimentId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"results\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"PATCH /datasets/:datasetId/experiments/:experimentId/results/:resultId\": {\n \"method\": \"PATCH\",\n \"path\": \"/datasets/:datasetId/experiments/:experimentId/results/:resultId\",\n \"pathParams\": [\n \"datasetId\",\n \"experimentId\",\n \"resultId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"status\",\n \"tags\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /datasets/:datasetId/compare\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/compare\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"experimentIdA\",\n \"experimentIdB\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"items\"\n }\n },\n \"POST /datasets/:datasetId/generate-items\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/generate-items\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentContext\",\n \"count\",\n \"modelId\",\n \"prompt\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"items\"\n }\n },\n \"POST /datasets/cluster-failures\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/cluster-failures\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"availableTags\",\n \"items\",\n \"modelId\",\n \"prompt\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"clusters\"\n }\n },\n \"GET /background-tasks\": {\n \"method\": \"GET\",\n \"path\": \"/background-tasks\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"dateFilterBy\",\n \"fromDate\",\n \"orderBy\",\n \"orderDirection\",\n \"page\",\n \"perPage\",\n \"resourceId\",\n \"runId\",\n \"status\",\n \"threadId\",\n \"toDate\",\n \"toolCallId\",\n \"toolName\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"tasks\"\n }\n },\n \"GET /background-tasks/:backgroundTaskId\": {\n \"method\": \"GET\",\n \"path\": \"/background-tasks/:backgroundTaskId\",\n \"pathParams\": [\n \"backgroundTaskId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /schedules\": {\n \"method\": \"GET\",\n \"path\": \"/schedules\",\n \"pathParams\": [],\n \"queryParams\": [\n \"ownerId\",\n \"ownerType\",\n \"status\",\n \"workflowId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"schedules\"\n }\n },\n \"GET /schedules/:scheduleId\": {\n \"method\": \"GET\",\n \"path\": \"/schedules/:scheduleId\",\n \"pathParams\": [\n \"scheduleId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /schedules/:scheduleId/triggers\": {\n \"method\": \"GET\",\n \"path\": \"/schedules/:scheduleId/triggers\",\n \"pathParams\": [\n \"scheduleId\"\n ],\n \"queryParams\": [\n \"fromActualFireAt\",\n \"limit\",\n \"toActualFireAt\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"triggers\"\n }\n },\n \"POST /schedules/:scheduleId/pause\": {\n \"method\": \"POST\",\n \"path\": \"/schedules/:scheduleId/pause\",\n \"pathParams\": [\n \"scheduleId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /schedules/:scheduleId/resume\": {\n \"method\": \"POST\",\n \"path\": \"/schedules/:scheduleId/resume\",\n \"pathParams\": [\n \"scheduleId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /channels/platforms\": {\n \"method\": \"GET\",\n \"path\": \"/channels/platforms\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"GET /channels/:platform/installations\": {\n \"method\": \"GET\",\n \"path\": \"/channels/:platform/installations\",\n \"pathParams\": [\n \"platform\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"POST /channels/:platform/connect\": {\n \"method\": \"POST\",\n \"path\": \"/channels/:platform/connect\",\n \"pathParams\": [\n \"platform\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentId\",\n \"options\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /channels/:platform/:agentId/disconnect\": {\n \"method\": \"POST\",\n \"path\": \"/channels/:platform/:agentId/disconnect\",\n \"pathParams\": [\n \"platform\",\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n }\n} as const;\n","import { fetchSchemaManifest } from './client.js';\nimport { ApiCliError } from './errors.js';\nimport type { ResolvedTarget } from './target.js';\nimport type { ApiCommandDescriptor, ApiCommandExample } from './types.js';\n\nexport async function getCommandSchema(descriptor: ApiCommandDescriptor, target: ResolvedTarget): Promise<unknown> {\n if (!descriptor.acceptsInput) {\n throw new ApiCliError('SCHEMA_UNAVAILABLE', 'This command does not accept JSON input');\n }\n\n const manifest = await fetchSchemaManifest(target.baseUrl, target.headers, target.timeoutMs);\n if (!manifest || typeof manifest !== 'object' || !Array.isArray((manifest as { routes?: unknown }).routes)) {\n throw new ApiCliError('SCHEMA_UNAVAILABLE', 'Target server returned an invalid schema manifest', {\n reason: 'invalid_manifest',\n });\n }\n\n const route = manifest.routes.find(\n (candidate: any) => candidate.method === descriptor.method && candidate.path === descriptor.path,\n );\n\n if (!route) {\n throw new ApiCliError('SCHEMA_UNAVAILABLE', 'Target server did not expose a schema for this command', {\n method: descriptor.method,\n path: descriptor.path,\n });\n }\n\n const source = descriptor.method === 'GET' ? 'query' : route.queryParamSchema ? 'query+body' : 'body';\n const inputSchema =\n descriptor.method === 'GET' ? route.queryParamSchema : mergeObjectSchemas(route.queryParamSchema, route.bodySchema);\n\n return {\n command: buildCommandUsage(descriptor),\n description: descriptor.description,\n method: descriptor.method,\n path: descriptor.path,\n positionals: buildPositionals(descriptor, route.pathParamSchema),\n examples: buildCommandExamples(descriptor),\n input: {\n required: descriptor.inputRequired,\n source,\n schema: inputSchema,\n },\n schemas: {\n pathParams: route.pathParamSchema,\n query: route.queryParamSchema,\n body: route.bodySchema,\n },\n response: {\n list: descriptor.list,\n shape: descriptor.responseShape,\n schema: route.responseSchema,\n },\n };\n}\n\nexport function buildCommandUsage(descriptor: ApiCommandDescriptor): string {\n const positionals = descriptor.positionals.map(name => `<${name}>`).join(' ');\n const input = descriptor.acceptsInput ? (descriptor.inputRequired ? '<input>' : '[input]') : '';\n return ['mastra api', descriptor.name, positionals, input].filter(Boolean).join(' ');\n}\n\nfunction mergeObjectSchemas(querySchema: any, bodySchema: any): any {\n if (!querySchema) return bodySchema;\n if (!bodySchema) return querySchema;\n\n return {\n type: 'object',\n properties: {\n ...(querySchema.properties ?? {}),\n ...(bodySchema.properties ?? {}),\n },\n required: [...new Set([...(querySchema.required ?? []), ...(bodySchema.required ?? [])])],\n additionalProperties: bodySchema.additionalProperties ?? querySchema.additionalProperties,\n };\n}\n\nfunction buildPositionals(descriptor: ApiCommandDescriptor, pathParamSchema: any): Array<Record<string, unknown>> {\n const properties = pathParamSchema?.properties ?? {};\n const required = new Set<string>(Array.isArray(pathParamSchema?.required) ? pathParamSchema.required : []);\n\n return descriptor.positionals.map(name => ({\n name,\n required: required.has(name) || descriptor.path.includes(`:${name}`),\n description: properties[name]?.description,\n schema: properties[name],\n }));\n}\n\nexport function buildCommandExamples(descriptor: ApiCommandDescriptor): ApiCommandExample[] {\n if (descriptor.examples && descriptor.examples.length > 0) {\n return descriptor.examples;\n }\n\n return buildGenericExamples(descriptor, `mastra api ${descriptor.name}`);\n}\n\nfunction buildGenericExamples(descriptor: ApiCommandDescriptor, command: string): ApiCommandExample[] {\n if (descriptor.list) {\n return [\n {\n description: descriptor.description,\n command: descriptor.acceptsInput ? `${command} '{\"page\":0,\"perPage\":50}'` : command,\n },\n ];\n }\n\n if (!descriptor.acceptsInput) {\n return [{ description: descriptor.description, command: [command, ...samplePositionals(descriptor)].join(' ') }];\n }\n\n const sampleInput =\n descriptor.method === 'GET' && descriptor.inputRequired ? sampleInputWithPathParams(descriptor) : '{}';\n return [{ description: descriptor.description, command: `${command} '${sampleInput}'` }];\n}\n\nfunction samplePositionals(descriptor: ApiCommandDescriptor): string[] {\n return descriptor.positionals.map(name => `${name}_123`);\n}\n\nfunction sampleInputWithPathParams(descriptor: ApiCommandDescriptor): string {\n const pathParams = [...descriptor.path.matchAll(/:([A-Za-z0-9_]+)/g)].flatMap(match => (match[1] ? [match[1]] : []));\n const inputOnlyParams = pathParams.filter(param => !descriptor.positionals.includes(param));\n if (inputOnlyParams.length === 0) return '{}';\n\n return JSON.stringify(Object.fromEntries(inputOnlyParams.map(param => [param, `${param}_123`])));\n}\n","import { bestEffortCancel, confirmUploadWithRetry } from '../../utils/deploy-upload.js';\nimport { withPollingRetries } from '../../utils/polling.js';\nimport {\n authHeaders,\n createApiClient,\n extractApiErrorDetail,\n MASTRA_PLATFORM_API_URL,\n platformFetch,\n throwApiError,\n} from '../auth/client.js';\nimport { getToken } from '../auth/credentials.js';\nimport type { DeployDiagnosis, DeployDiagnosisLookup } from '../deploy-suggestions.js';\nimport type { paths } from '../platform-api.js';\n\ntype ServerProjectsResponse = paths['/v1/server/projects']['get'] extends {\n responses: { 200: { content: { 'application/json': infer T } } };\n}\n ? T\n : never;\nexport type ServerProject = ServerProjectsResponse extends { projects: (infer P)[] } ? P : never;\n\ntype ServerDeployResponse = paths['/v1/server/deploys/{id}']['get'] extends {\n responses: { 200: { content: { 'application/json': infer T } } };\n}\n ? T\n : never;\nexport type ServerDeployStatus = ServerDeployResponse;\n\nexport async function fetchServerProjects(token: string, orgId: string): Promise<ServerProject[]> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/server/projects');\n\n if (error) {\n throwApiError('Failed to fetch server projects', response.status);\n }\n\n return data.projects;\n}\n\nexport async function createServerProject(token: string, orgId: string, name: string): Promise<ServerProject> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.POST('/v1/server/projects', {\n body: { name },\n });\n\n if (error) {\n throwApiError(`Failed to create server project — ${error.detail ?? 'unknown error'}`, response.status);\n }\n\n return data.project;\n}\n\nexport async function fetchServerDeployStatus(\n deployId: string,\n token: string,\n orgId?: string,\n): Promise<ServerDeployStatus> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/server/deploys/{id}', {\n params: { path: { id: deployId } },\n });\n\n if (error) {\n throwApiError('Failed to fetch server deploy status', response.status);\n }\n\n return data;\n}\n\nexport async function fetchServerDeployDiagnosis(\n deployId: string,\n token: string,\n orgId?: string,\n): Promise<DeployDiagnosisLookup> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/server/deploys/${deployId}/diagnosis`, {\n headers: authHeaders(token, orgId),\n });\n\n if (resp.status === 204) {\n return { state: 'healthy' };\n }\n\n if (!resp.ok) {\n let detail: string | undefined;\n try {\n const error = (await resp.json()) as { detail?: string };\n detail = error.detail;\n } catch {\n detail = undefined;\n }\n throwApiError('Failed to fetch server deploy diagnosis', resp.status, detail);\n }\n\n const data = (await resp.json()) as { diagnosis: DeployDiagnosis | null };\n if (!data.diagnosis) {\n return { state: 'missing' };\n }\n\n return { state: 'ready', diagnosis: data.diagnosis };\n}\n\nexport async function startServerDeployDiagnosis(deployId: string, token: string, orgId?: string): Promise<void> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/server/deploys/${deployId}/diagnosis`, {\n method: 'POST',\n headers: authHeaders(token, orgId),\n });\n\n if (resp.status === 201 || resp.status === 304) {\n return;\n }\n\n let detail: string | undefined;\n try {\n const error = (await resp.json()) as { detail?: string };\n detail = error.detail;\n } catch {\n detail = undefined;\n }\n\n throwApiError('Failed to start server deploy diagnosis', resp.status, detail);\n}\n\nexport async function uploadServerDeploy(\n token: string,\n orgId: string,\n projectId: string,\n zipBuffer: Buffer,\n meta?: { projectName?: string; envVars?: Record<string, string>; disablePlatformObservability?: boolean },\n): Promise<{ id: string; status: string }> {\n const client = createApiClient(token, orgId);\n\n // Step 1: Create the deploy — returns upload URL\n const { data, error, response } = await client.POST('/v1/server/deploys', {\n body: {\n projectId,\n projectName: meta?.projectName,\n envVars: meta?.envVars,\n ...(meta?.disablePlatformObservability !== undefined\n ? { disablePlatformObservability: meta.disablePlatformObservability }\n : {}),\n },\n });\n\n if (error) {\n throwApiError('Deploy failed', response.status, extractApiErrorDetail(error));\n }\n\n const { id, status, uploadUrl } = data;\n\n if (!uploadUrl) {\n throw new Error('No upload URL returned');\n }\n\n const cancel = (c: ReturnType<typeof createApiClient>) =>\n bestEffortCancel({\n postCancel: c2 => c2.POST('/v1/server/deploys/{id}/cancel', { params: { path: { id } } }),\n client: c,\n deployId: id,\n });\n\n // Step 2: Upload artifact to the signed URL\n try {\n if (uploadUrl.startsWith('file://')) {\n const { writeFile } = await import('node:fs/promises');\n const { fileURLToPath } = await import('node:url');\n await writeFile(fileURLToPath(uploadUrl), Buffer.from(zipBuffer));\n } else {\n const uploadResp = await fetch(uploadUrl, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/zip' },\n body: new Uint8Array(zipBuffer),\n });\n if (!uploadResp.ok) {\n throw new Error(`Artifact upload failed: ${uploadResp.status} ${uploadResp.statusText}`);\n }\n }\n } catch (uploadError) {\n await cancel(client);\n throw uploadError;\n }\n\n // Step 3: Notify API that upload is complete → triggers build pipeline\n await confirmUploadWithRetry({\n postUploadComplete: c => c.POST('/v1/server/deploys/{id}/upload-complete', { params: { path: { id } } }),\n cancelDeploy: cancel,\n client,\n orgId,\n });\n\n return { id, status };\n}\n\nexport async function pollServerDeploy(\n deployId: string,\n token: string,\n orgId: string,\n maxWaitMs = 600000, // 10 minutes — server builds take longer\n): Promise<ServerDeployStatus> {\n const start = Date.now();\n let lastStatus = '';\n let currentToken = token;\n\n let client = createApiClient(currentToken, orgId);\n\n // Poll for build + deploy logs in the background\n const logAbort = new AbortController();\n pollServerLogs(deployId, currentToken, orgId, logAbort.signal).catch(() => {});\n\n try {\n while (Date.now() - start < maxWaitMs) {\n const result = await withPollingRetries(() =>\n client.GET('/v1/server/deploys/{id}', {\n params: { path: { id: deployId } },\n }),\n );\n\n const { data, error, response } = result;\n\n if (error) {\n if (response.status === 401) {\n currentToken = await getToken();\n client = createApiClient(currentToken, orgId);\n continue;\n }\n throwApiError('Poll failed', response.status);\n }\n\n if (data.status !== lastStatus) {\n lastStatus = data.status;\n }\n\n const terminal = ['running', 'failed', 'crashed', 'cancelled', 'stopped'];\n if (terminal.includes(data.status)) {\n return data;\n }\n\n await new Promise(r => setTimeout(r, 5000));\n }\n\n throw new Error('Deploy timed out');\n } finally {\n logAbort.abort();\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* Environment variables */\n/* ------------------------------------------------------------------ */\n\nexport async function getServerProjectEnv(\n token: string,\n orgId: string,\n projectId: string,\n): Promise<Record<string, string>> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/server/projects/{id}/env', {\n params: { path: { id: projectId } },\n });\n\n if (error) {\n throwApiError('Failed to fetch environment variables', response.status);\n }\n\n return data.envVars;\n}\n\nexport async function updateServerProjectEnv(\n token: string,\n orgId: string,\n projectId: string,\n envVars: Record<string, string>,\n): Promise<void> {\n const client = createApiClient(token, orgId);\n const { error, response } = await client.PUT('/v1/server/projects/{id}/env', {\n params: { path: { id: projectId } },\n body: { envVars },\n });\n\n if (error) {\n throwApiError('Failed to update environment variables', response.status);\n }\n}\n\nexport async function fetchServerProjectDetail(token: string, orgId: string, projectId: string) {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/server/projects/{id}', {\n params: { path: { id: projectId } },\n });\n\n if (error) {\n throwApiError('Failed to fetch server project', response.status);\n }\n\n return data;\n}\n\nexport async function pauseServerProject(token: string, orgId: string, projectId: string): Promise<void> {\n const client = createApiClient(token, orgId);\n const { error, response } = await client.POST('/v1/server/projects/{id}/pause', {\n params: { path: { id: projectId } },\n });\n\n if (error) {\n if (response.status === 409) {\n const detail = extractApiErrorDetail(error);\n throwApiError('Failed to pause server', response.status, detail ?? 'Pause failed: the server is not running.');\n }\n const detail = extractApiErrorDetail(error);\n throwApiError('Failed to pause server', response.status, detail);\n }\n}\n\n/**\n * Triggers a platform restart and returns the deploy id to pass to {@link pollServerDeploy}.\n * Uses `id` from the restart response when present; otherwise polls project details until `latestDeployId`\n * changes, or until the current `latestDeployId` shows an active deploy status (in-place restart without a new id).\n */\nexport async function restartServerProject(token: string, orgId: string, projectId: string): Promise<string> {\n const client = createApiClient(token, orgId);\n\n const before = await fetchServerProjectDetail(token, orgId, projectId);\n const previousLatestDeployId = before.project.latestDeployId;\n\n const { data, error, response } = await client.POST('/v1/server/projects/{id}/restart', {\n params: { path: { id: projectId } },\n });\n\n if (error) {\n const detail = extractApiErrorDetail(error);\n if (response.status === 409) {\n throwApiError(\n 'Failed to restart server',\n response.status,\n detail ??\n 'Restart failed: a deployment for this project is currently active. Run `mastra server pause` to pause the server before restarting.',\n );\n }\n throwApiError('Failed to restart server', response.status, detail);\n }\n\n if (data?.id) {\n return data.id;\n }\n\n const deployIndicatesAcceptedRestart = (status: string | undefined) =>\n Boolean(status && !['failed', 'crashed', 'cancelled', 'stopped'].includes(status));\n\n let currentToken = token;\n let pollClient = createApiClient(currentToken, orgId);\n const deadline = Date.now() + 45000;\n while (Date.now() < deadline) {\n const {\n data: snap,\n error: snapError,\n response: snapResponse,\n } = await pollClient.GET('/v1/server/projects/{id}', { params: { path: { id: projectId } } });\n\n if (snapError) {\n if (snapResponse.status === 401) {\n currentToken = await getToken();\n pollClient = createApiClient(currentToken, orgId);\n continue;\n }\n throwApiError('Failed to fetch server project', snapResponse.status, extractApiErrorDetail(snapError));\n }\n\n const latest = snap.project.latestDeployId;\n if (latest && latest !== previousLatestDeployId) {\n return latest;\n }\n if (latest) {\n const {\n data: st,\n error: statusError,\n response: statusResponse,\n } = await pollClient.GET('/v1/server/deploys/{id}', { params: { path: { id: latest } } });\n\n if (statusError) {\n if (statusResponse.status === 401) {\n currentToken = await getToken();\n pollClient = createApiClient(currentToken, orgId);\n continue;\n }\n if (statusResponse.status !== 404) {\n throwApiError(\n 'Failed to fetch server deploy status',\n statusResponse.status,\n extractApiErrorDetail(statusError),\n );\n }\n } else if (deployIndicatesAcceptedRestart(st?.status)) {\n return latest;\n }\n }\n await new Promise(r => setTimeout(r, 2000));\n }\n\n throw new Error(\n 'Restart was accepted but no deploy ID could be resolved. Check the Mastra platform for deployment status.',\n );\n}\n\n/**\n * Poll the server deploy logs endpoint and print new log lines.\n * Server deploys don't have SSE streaming — we poll the JSON endpoint.\n */\nasync function pollServerLogs(deployId: string, token: string, orgId: string, signal: AbortSignal): Promise<void> {\n await new Promise(r => setTimeout(r, 3000));\n\n let printedBuild = 0;\n let printedDeploy = 0;\n let currentToken = token;\n let client = createApiClient(currentToken, orgId);\n\n while (!signal.aborted) {\n try {\n const { data, response } = await client.GET('/v1/server/deploys/{id}/logs', {\n params: { path: { id: deployId } },\n });\n\n if (response.status === 401) {\n currentToken = await getToken();\n client = createApiClient(currentToken, orgId);\n continue;\n }\n\n if (data) {\n const newBuild = data.buildLogs.slice(printedBuild);\n for (const line of newBuild) {\n process.stdout.write(`${line}\\n`);\n }\n printedBuild = data.buildLogs.length;\n\n const newDeploy = data.deployLogs.slice(printedDeploy);\n for (const line of newDeploy) {\n process.stdout.write(`${line}\\n`);\n }\n printedDeploy = data.deployLogs.length;\n }\n } catch {\n // Ignore errors during log polling — deploy status polling is the source of truth\n }\n\n await new Promise(r => setTimeout(r, 5000));\n }\n}\n","import { ApiCliError } from './errors.js';\n\nexport function parseHeaders(values: string[]): Record<string, string> {\n const headers: Record<string, string> = {};\n\n for (const value of values) {\n const separatorIndex = value.indexOf(':');\n if (separatorIndex <= 0) {\n throw new ApiCliError('MALFORMED_HEADER', 'Header must use \"Key: Value\" format', { header: value });\n }\n\n const key = value.slice(0, separatorIndex).trim();\n const headerValue = value.slice(separatorIndex + 1).trim();\n\n if (!key || !headerValue) {\n throw new ApiCliError('MALFORMED_HEADER', 'Header must use \"Key: Value\" format', { header: value });\n }\n\n headers[key] = headerValue;\n }\n\n return headers;\n}\n","import { existsSync, readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { parse } from 'dotenv';\nimport { getToken } from '../auth/credentials.js';\nimport { fetchServerProjects } from '../server/platform-api.js';\nimport { loadProjectConfig } from '../studio/project-config.js';\nimport { ApiCliError } from './errors.js';\nimport { parseHeaders } from './headers.js';\n\nconst LOCAL_URL = 'http://localhost:4111';\nconst OBSERVABILITY_URL = 'https://observability.mastra.ai';\nconst AUTHORIZATION_HEADER = 'Authorization';\nconst PROJECT_ID_HEADER = 'X-Mastra-Project-Id';\n\nexport interface ApiGlobalOptions {\n url?: string;\n header: string[];\n timeout?: string;\n pretty: boolean;\n schema?: boolean;\n}\n\nexport interface ResolvedTarget {\n baseUrl: string;\n headers: Record<string, string>;\n timeoutMs: number;\n fallbackHeaders?: Record<string, string>;\n}\n\nexport async function resolveTarget(\n options: ApiGlobalOptions,\n fetchFn: typeof fetch = fetch,\n path?: string,\n): Promise<ResolvedTarget> {\n const timeoutMs = parseTimeout(options.timeout);\n const customHeaders = parseHeaders(options.header);\n\n if (isObservabilityPath(path)) {\n return resolveObservabilityTarget(options, customHeaders, timeoutMs);\n }\n\n if (options.url) {\n return { baseUrl: options.url, headers: customHeaders, timeoutMs };\n }\n\n if (await canReachLocal(timeoutMs, fetchFn)) {\n return { baseUrl: LOCAL_URL, headers: customHeaders, timeoutMs };\n }\n\n const config = await loadProjectConfig(process.cwd());\n if (!config) {\n throw new ApiCliError('SERVER_UNREACHABLE', 'Could not connect to target server');\n }\n\n try {\n const token = await getToken();\n const projects = await fetchServerProjects(token, config.organizationId);\n const project = projects.find(\n candidate => candidate.id === config.projectId || candidate.slug === config.projectSlug,\n );\n const baseUrl = project?.instanceUrl;\n\n if (!baseUrl) {\n throw new ApiCliError('PLATFORM_RESOLUTION_FAILED', 'Could not resolve platform deployment URL', {\n projectId: config.projectId,\n projectSlug: config.projectSlug,\n });\n }\n\n return {\n baseUrl,\n headers: { Authorization: `Bearer ${token}`, ...customHeaders },\n timeoutMs,\n };\n } catch (error) {\n if (error instanceof ApiCliError) throw error;\n throw new ApiCliError('PLATFORM_RESOLUTION_FAILED', 'Could not resolve platform deployment URL', {\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function resolveObservabilityTarget(\n options: ApiGlobalOptions,\n customHeaders: Record<string, string>,\n timeoutMs: number,\n): Promise<ResolvedTarget> {\n const env = loadDotenv(process.cwd());\n const explicitAuthorization = getHeader(customHeaders, AUTHORIZATION_HEADER);\n const explicitProjectId = getHeader(customHeaders, PROJECT_ID_HEADER);\n const envToken = process.env.MASTRA_PLATFORM_ACCESS_TOKEN || env.MASTRA_PLATFORM_ACCESS_TOKEN;\n const cliToken = explicitAuthorization || options.url ? undefined : await getOptionalToken();\n const envProjectId = process.env.MASTRA_PROJECT_ID || env.MASTRA_PROJECT_ID;\n const configProjectId =\n explicitProjectId || envProjectId || options.url ? undefined : (await loadProjectConfig(process.cwd()))?.projectId;\n const projectId = explicitProjectId || envProjectId || configProjectId;\n const headers = { ...customHeaders };\n\n if (!explicitAuthorization && envToken) {\n headers[AUTHORIZATION_HEADER] = `Bearer ${envToken}`;\n } else if (!explicitAuthorization && cliToken) {\n headers[AUTHORIZATION_HEADER] = `Bearer ${cliToken}`;\n }\n\n if (!explicitProjectId && projectId) {\n headers[PROJECT_ID_HEADER] = projectId;\n }\n\n const fallbackHeaders =\n envToken && cliToken && envToken !== cliToken\n ? { ...headers, [AUTHORIZATION_HEADER]: `Bearer ${cliToken}` }\n : undefined;\n\n return {\n baseUrl: options.url ?? OBSERVABILITY_URL,\n headers,\n timeoutMs,\n fallbackHeaders,\n };\n}\n\nfunction isObservabilityPath(path?: string): boolean {\n return path?.startsWith('/observability/') || path === '/observability';\n}\n\nfunction loadDotenv(cwd: string): Record<string, string> {\n const envPath = join(cwd, '.env');\n if (!existsSync(envPath)) return {};\n return parse(readFileSync(envPath));\n}\n\nasync function getOptionalToken(): Promise<string | undefined> {\n try {\n return await getToken();\n } catch {\n return undefined;\n }\n}\n\nfunction getHeader(headers: Record<string, string>, name: string): string | undefined {\n const entry = Object.entries(headers).find(([key]) => key.toLowerCase() === name.toLowerCase());\n return entry?.[1];\n}\n\nfunction parseTimeout(timeout?: string): number {\n if (!timeout) return 30_000;\n const parsed = Number(timeout);\n if (!Number.isFinite(parsed) || parsed <= 0) return 30_000;\n return parsed;\n}\n\nasync function canReachLocal(timeoutMs: number, fetchFn: typeof fetch): Promise<boolean> {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), Math.min(timeoutMs, 1_000));\n try {\n const response = await fetchFn(`${LOCAL_URL}/api/system/api-schema`, { method: 'GET', signal: controller.signal });\n await response.body?.cancel();\n return response.ok;\n } catch {\n return false;\n } finally {\n clearTimeout(timeout);\n }\n}\n","import type { Command as CommanderCommand } from 'commander';\nimport { getAnalytics } from '../../analytics/index.js';\nimport { requestApi } from './client.js';\nimport { ApiCliError, errorEnvelope, toApiCliError } from './errors.js';\nimport { parseInput, resolvePathParams, stripPathParamsFromInput } from './input.js';\nimport { normalizeData } from './normalizers.js';\nimport { normalizeSuccess, writeJson } from './output.js';\nimport { normalizeResponse } from './response-normalizer.js';\nimport { API_ROUTE_METADATA } from './route-metadata.generated.js';\nimport { buildCommandExamples, getCommandSchema } from './schema.js';\nimport { resolveTarget } from './target.js';\nimport type { ApiGlobalOptions } from './target.js';\nimport type { ApiCommandActionOptions, ApiCommandDescriptor, HttpMethod } from './types.js';\n\nconst API_ANALYTICS_SHUTDOWN_TIMEOUT_MS = 1000;\n\nexport const API_COMMANDS = {} as Record<string, ApiCommandDescriptor>;\n\nexport function registerApiCommand(program: CommanderCommand): void {\n for (const key of Object.keys(API_COMMANDS)) {\n delete API_COMMANDS[key];\n }\n\n const api = program\n .command('api')\n .description('Call Mastra APIs')\n .option('--url <url>', 'target Mastra server URL')\n .option('--header <header>', 'custom HTTP header (repeatable)', collect, [])\n .option('--timeout <ms>', 'client-side request timeout')\n .option('--pretty', 'pretty-print JSON output', false);\n\n const agent = api.command('agent').description('List, inspect, and run agents');\n addAction(agent, 'list', 'GET /agents', { description: 'List available agents', list: true });\n addAction(agent, 'get', 'GET /agents/:agentId', { description: 'Get agent details' });\n addAction(agent, 'run', 'POST /agents/:agentId/generate', {\n description: 'Run an agent with JSON input',\n input: 'required',\n examples: [\n {\n description: 'Run an agent with a text prompt',\n command: `mastra api agent run weather-agent '{\"messages\":\"What is the weather in London?\"}'`,\n },\n {\n description: 'Run an agent and persist messages to a thread',\n command: `mastra api agent run weather-agent '{\"messages\":\"What is the weather in London?\",\"memory\":{\"thread\":\"thread_abc123\",\"resource\":\"user_123\"}}'`,\n },\n ],\n });\n\n const workflow = api.command('workflow').description('List, inspect, and run workflows');\n addAction(workflow, 'list', 'GET /workflows', { description: 'List available workflows', list: true });\n addAction(workflow, 'get', 'GET /workflows/:workflowId', { description: 'Get workflow details' });\n const workflowRun = workflow.command('run').description('Manage workflow runs');\n addAction(workflowRun, 'start', 'POST /workflows/:workflowId/start-async', {\n description: 'Start a workflow run',\n input: 'required',\n defaultTimeoutMs: 120_000,\n examples: [\n {\n description: 'Start a workflow run',\n command: `mastra api workflow run start data-pipeline '{\"inputData\":{\"source\":\"s3://bucket/data.csv\"}}'`,\n },\n ],\n });\n addAction(workflowRun, 'list', 'GET /workflows/:workflowId/runs', {\n description: 'List workflow runs',\n input: 'optional',\n list: true,\n });\n addAction(workflowRun, 'get', 'GET /workflows/:workflowId/runs/:runId', {\n description: 'Get workflow run details',\n });\n addAction(workflowRun, 'resume', 'POST /workflows/:workflowId/resume-async', {\n description: 'Resume a suspended workflow run',\n input: 'required',\n positionals: ['workflowId', 'runId'],\n defaultTimeoutMs: 120_000,\n examples: [\n {\n description: 'Resume a suspended workflow run. The run must currently be suspended.',\n command: `mastra api workflow run resume data-pipeline run_123 '{\"resumeData\":{\"approved\":true}}'`,\n },\n ],\n });\n addAction(workflowRun, 'cancel', 'POST /workflows/:workflowId/runs/:runId/cancel', {\n description: 'Cancel a workflow run',\n });\n\n const tool = api.command('tool').description('List, inspect, and execute tools');\n addAction(tool, 'list', 'GET /tools', { description: 'List available tools', list: true });\n addAction(tool, 'get', 'GET /tools/:toolId', { description: 'Get tool details and input schema' });\n addAction(tool, 'execute', 'POST /tools/:toolId/execute', {\n description: 'Execute a tool with JSON input',\n input: 'required',\n examples: [\n {\n description: 'Execute a tool with raw tool input. The CLI sends this as the route data field.',\n command: `mastra api tool execute get-weather '{\"location\":\"San Francisco\"}'`,\n },\n {\n description: 'Execute a tool with an explicit data wrapper',\n command: `mastra api tool execute get-weather '{\"data\":{\"location\":\"San Francisco\"}}'`,\n },\n ],\n });\n\n const mcp = api.command('mcp').description('List and inspect MCP servers');\n addAction(mcp, 'list', 'GET /mcp/v0/servers', { description: 'List MCP servers', list: true });\n addAction(mcp, 'get', 'GET /mcp/v0/servers/:id', { description: 'Get MCP server details' });\n const mcpTool = mcp.command('tool').description('List, inspect, and execute MCP tools');\n addAction(mcpTool, 'list', 'GET /mcp/:serverId/tools', {\n description: 'List tools for an MCP server',\n input: 'optional',\n list: true,\n });\n addAction(mcpTool, 'get', 'GET /mcp/:serverId/tools/:toolId', {\n description: 'Get MCP tool details',\n });\n addAction(mcpTool, 'execute', 'POST /mcp/:serverId/tools/:toolId/execute', {\n description: 'Execute an MCP tool with JSON input',\n input: 'required',\n examples: [\n {\n description: 'Execute an MCP tool with raw tool input. The CLI sends this as the route data field.',\n command: `mastra api mcp tool execute my-server calculator '{\"num1\":2,\"num2\":3,\"operation\":\"add\"}'`,\n },\n {\n description: 'Execute an MCP tool with an explicit data wrapper',\n command: `mastra api mcp tool execute my-server calculator '{\"data\":{\"num1\":2,\"num2\":3,\"operation\":\"add\"}}'`,\n },\n ],\n });\n\n const thread = api.command('thread').description('Manage memory threads and messages');\n addAction(thread, 'list', 'GET /memory/threads', { description: 'List memory threads', list: true });\n addAction(thread, 'get', 'GET /memory/threads/:threadId', { description: 'Get thread details' });\n addAction(thread, 'create', 'POST /memory/threads', {\n description: 'Create a memory thread',\n input: 'required',\n examples: [\n {\n description: 'Create a memory thread',\n command: `mastra api thread create '{\"agentId\":\"weather-agent\",\"resourceId\":\"user_123\",\"threadId\":\"thread_abc123\",\"title\":\"Support conversation\"}'`,\n },\n ],\n });\n addAction(thread, 'update', 'PATCH /memory/threads/:threadId', {\n description: 'Update a memory thread',\n input: 'required',\n examples: [\n {\n description: 'Update a memory thread',\n command: `mastra api thread update thread_abc123 '{\"agentId\":\"weather-agent\",\"title\":\"Updated title\"}'`,\n },\n ],\n });\n addAction(thread, 'delete', 'DELETE /memory/threads/:threadId', {\n description: 'Delete a memory thread',\n input: 'required',\n examples: [\n {\n description: 'Delete a memory thread',\n command: `mastra api thread delete thread_abc123 '{\"agentId\":\"weather-agent\",\"resourceId\":\"user_123\"}'`,\n },\n ],\n });\n addAction(thread, 'messages', 'GET /memory/threads/:threadId/messages', {\n description: 'List messages in a memory thread',\n input: 'optional',\n list: true,\n });\n\n const memory = api.command('memory').description('Search and manage agent memory');\n addAction(memory, 'search', 'GET /memory/search', {\n description: 'Search long-term memory',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Search long-term memory',\n command: `mastra api memory search '{\"agentId\":\"weather-agent\",\"resourceId\":\"user_123\",\"searchQuery\":\"caching strategy\",\"limit\":10}'`,\n },\n ],\n });\n const current = memory.command('current').description('Read and update working memory');\n addAction(current, 'get', 'GET /memory/threads/:threadId/working-memory', {\n description: 'Get current working memory',\n input: 'required',\n pathParamsFromInput: ['threadId'],\n examples: [\n {\n description: 'Read current working memory',\n command: `mastra api memory current get '{\"threadId\":\"thread_abc123\",\"agentId\":\"code-reviewer\"}'`,\n },\n ],\n });\n addAction(current, 'update', 'POST /memory/threads/:threadId/working-memory', {\n description: 'Update current working memory',\n input: 'required',\n pathParamsFromInput: ['threadId'],\n examples: [\n {\n description: 'Update current working memory. Requires working memory to be enabled for the memory instance.',\n command: `mastra api memory current update '{\"threadId\":\"thread_abc123\",\"agentId\":\"code-reviewer\",\"workingMemory\":\"Remember the user prefers concise responses.\"}'`,\n },\n ],\n });\n addAction(memory, 'status', 'GET /memory/status', {\n description: 'Get memory system status',\n input: 'required',\n examples: [\n {\n description: 'Get memory status for an agent',\n command: `mastra api memory status '{\"agentId\":\"weather-agent\"}'`,\n },\n {\n description: 'Get memory status for an agent, resource, and thread',\n command: `mastra api memory status '{\"agentId\":\"weather-agent\",\"resourceId\":\"user_123\",\"threadId\":\"thread_abc123\"}'`,\n },\n ],\n });\n\n const trace = api.command('trace').description('Inspect observability traces');\n addAction(trace, 'list', 'GET /observability/traces', { description: 'List observability traces', list: true });\n addAction(trace, 'get', 'GET /observability/traces/:traceId/light', {\n description: 'Get trace details',\n verboseRouteKey: 'GET /observability/traces/:traceId',\n examples: [\n { description: 'Get lightweight trace details', command: 'mastra api trace get trace_123' },\n { description: 'Get full trace details', command: 'mastra api trace get trace_123 --verbose' },\n ],\n });\n addAction(trace, 'span', 'GET /observability/traces/:traceId/spans/:spanId', {\n description: 'Get a trace span',\n examples: [{ description: 'Get a specific trace span', command: 'mastra api trace span trace_123 span_456' }],\n });\n\n const log = api.command('log').description('Inspect runtime logs');\n addAction(log, 'list', 'GET /observability/logs', {\n description: 'List runtime logs',\n input: 'optional',\n list: true,\n examples: [\n { description: 'List recent logs', command: 'mastra api log list' },\n {\n description: 'List info logs with pagination',\n command: `mastra api log list '{\"level\":\"info\",\"page\":0,\"perPage\":50}'`,\n },\n ],\n });\n\n const metric = api.command('metric').description('Query observability metrics');\n addAction(metric, 'aggregate', 'POST /observability/metrics/aggregate', {\n description: 'Get an aggregate metric value',\n input: 'required',\n examples: [\n {\n description: 'Get an average latency metric',\n command: `mastra api metric aggregate '{\"name\":\"latency_ms\",\"aggregation\":\"avg\"}'`,\n },\n ],\n });\n addAction(metric, 'breakdown', 'POST /observability/metrics/breakdown', {\n description: 'Get metric values grouped by a label or field',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Break down latency by model',\n command: `mastra api metric breakdown '{\"name\":\"latency_ms\",\"aggregation\":\"avg\",\"groupBy\":\"model\",\"limit\":10}'`,\n },\n ],\n });\n addAction(metric, 'timeseries', 'POST /observability/metrics/timeseries', {\n description: 'Get metric values over time',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Get hourly average latency',\n command: `mastra api metric timeseries '{\"name\":\"latency_ms\",\"aggregation\":\"avg\",\"interval\":\"1h\"}'`,\n },\n ],\n });\n addAction(metric, 'percentiles', 'POST /observability/metrics/percentiles', {\n description: 'Get metric percentile values over time',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Get latency percentiles',\n command: `mastra api metric percentiles '{\"name\":\"latency_ms\",\"percentiles\":[0.5,0.95,0.99],\"interval\":\"1h\"}'`,\n },\n ],\n });\n addAction(metric, 'names', 'GET /observability/discovery/metric-names', {\n description: 'List discovered metric names',\n input: 'optional',\n list: true,\n examples: [\n { description: 'Search metric names', command: `mastra api metric names '{\"prefix\":\"lat\",\"limit\":10}'` },\n ],\n });\n addAction(metric, 'label-keys', 'GET /observability/discovery/metric-label-keys', {\n description: 'List label keys for a metric',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'List label keys for a metric',\n command: `mastra api metric label-keys '{\"metricName\":\"latency_ms\"}'`,\n },\n ],\n });\n addAction(metric, 'label-values', 'GET /observability/discovery/metric-label-values', {\n description: 'List label values for a metric label key',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Search label values for a metric label key',\n command: `mastra api metric label-values '{\"metricName\":\"latency_ms\",\"labelKey\":\"model\",\"prefix\":\"g\",\"limit\":10}'`,\n },\n ],\n });\n\n const score = api.command('score').description('Create, list, and inspect scores');\n addAction(score, 'create', 'POST /observability/scores', {\n description: 'Create a score',\n input: 'required',\n examples: [\n {\n description: 'Create an observability score',\n command: `mastra api score create '{\"score\":{\"scoreId\":\"score_123\",\"scorerId\":\"quality\",\"score\":0.95,\"runId\":\"run_123\",\"entityType\":\"agent\",\"entityId\":\"weather-agent\"}}'`,\n },\n ],\n });\n addAction(score, 'list', 'GET /observability/scores', {\n description: 'List scores',\n input: 'optional',\n list: true,\n examples: [\n {\n description: 'List observability scores with pagination',\n command: `mastra api score list '{\"page\":0,\"perPage\":50}'`,\n },\n {\n description: 'List observability scores for a run',\n command: `mastra api score list '{\"runId\":\"run_123\",\"page\":0,\"perPage\":50}'`,\n },\n ],\n });\n addAction(score, 'get', 'GET /observability/scores/:scoreId', {\n description: 'Get score details',\n examples: [{ description: 'Get an observability score by ID', command: 'mastra api score get score_123' }],\n });\n\n const dataset = api.command('dataset').description('Create, list, and inspect datasets');\n addAction(dataset, 'list', 'GET /datasets', { description: 'List datasets', list: true });\n addAction(dataset, 'get', 'GET /datasets/:datasetId', { description: 'Get dataset details' });\n addAction(dataset, 'create', 'POST /datasets', {\n description: 'Create a dataset',\n input: 'required',\n examples: [{ description: 'Create a dataset', command: `mastra api dataset create '{\"name\":\"weather-eval\"}'` }],\n });\n addAction(dataset, 'items', 'GET /datasets/:datasetId/items', {\n description: 'List dataset items',\n input: 'optional',\n list: true,\n });\n\n const experiment = api.command('experiment').description('Run and inspect dataset experiments');\n addAction(experiment, 'list', 'GET /datasets/:datasetId/experiments', {\n description: 'List dataset experiments',\n input: 'optional',\n list: true,\n });\n addAction(experiment, 'get', 'GET /datasets/:datasetId/experiments/:experimentId', {\n description: 'Get experiment details',\n });\n addAction(experiment, 'run', 'POST /datasets/:datasetId/experiments', {\n description: 'Run a dataset experiment',\n input: 'required',\n examples: [\n {\n description: 'Run a dataset experiment',\n command: `mastra api experiment run dataset_123 '{\"name\":\"baseline\"}'`,\n },\n ],\n });\n addAction(experiment, 'results', 'GET /datasets/:datasetId/experiments/:experimentId/results', {\n description: 'List experiment results',\n input: 'optional',\n list: true,\n });\n}\n\n/**\n * Registers one leaf API command and stores the descriptor used by execution and tests.\n *\n * The `name` string is intentionally the source of truth for the leaf command name. Required identity arguments are declared from route metadata (or `options.positionals` for query-backed IDs), and JSON input syntax is declared from `options.input`.\n *\n * @param parent - Commander group that owns the leaf command, such as `agent` or `workflow run`.\n * @param name - Leaf command name, without arguments. Example: `run`, `list`, or `execute`.\n * @param routeKey - Generated route metadata key in the form `METHOD /path/:param`.\n * @param options - Hand-authored CLI details that cannot be derived from the server route.\n */\nfunction addAction(\n parent: CommanderCommand,\n name: string,\n routeKey: keyof typeof API_ROUTE_METADATA,\n options: ApiCommandActionOptions,\n): void {\n const descriptor = buildDescriptor(parent, name, routeKey, options);\n // Keep the exported descriptor map aligned with the actual Commander tree.\n API_COMMANDS[descriptor.key] = descriptor;\n\n const command = parent.command(name).description(descriptor.description);\n for (const positional of descriptor.positionals) {\n // Keep identity args optional at Commander level so `--schema` can run without real IDs.\n // Actual requests still validate IDs before making an HTTP request.\n command.argument(`[${positional}]`);\n }\n if (descriptor.acceptsInput) {\n // Keep JSON input optional at Commander level so `--schema` can run without sample input;\n // `parseInput` enforces required input for actual requests.\n command.argument('[input]');\n }\n const examples = buildCommandExamples(descriptor);\n\n if (examples.length > 0) {\n command.addHelpText('after', `\\nExamples:\\n${examples.map(example => ` ${example.command}`).join('\\n')}`);\n }\n\n if (descriptor.acceptsInput) {\n command.option('--schema', 'print request schema for this command');\n }\n if (descriptor.verbose) {\n command.option('--verbose', 'return the full response instead of the lightweight default');\n }\n\n command.action(async (...args: unknown[]) => {\n const command = args.at(-1) as CommanderCommand;\n // Commander passes all declared args before the command object; split identity IDs from JSON input.\n const { identityValues, maybeInput } = splitActionArgs(descriptor, args.slice(0, -1));\n const analytics = getAnalytics();\n const startedAt = process.hrtime();\n\n try {\n await executeDescriptor(descriptor, identityValues, maybeInput, command.optsWithGlobals() as ApiGlobalOptions);\n const [seconds, nanoseconds] = process.hrtime(startedAt);\n analytics?.trackCommand({\n command: `api-${descriptor.name}`,\n args: {\n positionalCount: identityValues.length,\n positionalPresent: identityValues.length > 0,\n hasInput: maybeInput !== undefined,\n },\n durationMs: seconds * 1000 + nanoseconds / 1_000_000,\n status: process.exitCode ? 'error' : 'success',\n });\n } finally {\n await shutdownApiAnalytics(analytics);\n }\n });\n}\n\nfunction splitActionArgs(\n descriptor: ApiCommandDescriptor,\n args: unknown[],\n): { identityValues: string[]; maybeInput: string | undefined } {\n const values = args.filter(value => typeof value === 'string') as string[];\n const possibleInput = descriptor.acceptsInput ? values.at(-1) : undefined;\n\n if (possibleInput && looksLikeJsonObject(possibleInput) && values.length <= descriptor.positionals.length) {\n return { identityValues: values.slice(0, -1), maybeInput: possibleInput };\n }\n\n return {\n identityValues: values.slice(0, descriptor.positionals.length),\n maybeInput: descriptor.acceptsInput ? values[descriptor.positionals.length] : undefined,\n };\n}\n\nfunction looksLikeJsonObject(value: string): boolean {\n return value.trimStart().startsWith('{');\n}\n\n/**\n * Converts Commander wiring plus generated route metadata into a stable API command descriptor.\n *\n * Descriptors are the bridge between the user-facing CLI tree and generic runtime behavior: execution, schema output, response normalization, and regression tests all consume this shape.\n *\n * @param parent - Commander group that owns the leaf command.\n * @param name - Leaf command name as registered with Commander.\n * @param routeKey - Generated route metadata key used to pull method, path, params, and response shape.\n * @param options - CLI-only metadata, including description, input mode, examples, and overrides.\n */\nfunction buildDescriptor(\n parent: CommanderCommand,\n name: string,\n routeKey: keyof typeof API_ROUTE_METADATA,\n options: ApiCommandActionOptions,\n): ApiCommandDescriptor {\n const route = API_ROUTE_METADATA[routeKey];\n const verboseRoute = options.verboseRouteKey\n ? API_ROUTE_METADATA[options.verboseRouteKey as keyof typeof API_ROUTE_METADATA]\n : undefined;\n const commandName = [...commandPath(parent), parseCommandName(name)].join(' ');\n const pathParamsFromInput = new Set(options.pathParamsFromInput ?? []);\n // Most path params become positional CLI args; a few commands intentionally read IDs from JSON input.\n const positionals = options.positionals ?? route.pathParams.filter(param => !pathParamsFromInput.has(param));\n // List commands default to optional JSON so callers can pass pagination/filter objects.\n const inputMode = options.input ?? (options.list ? 'optional' : route.hasBody ? 'optional' : 'none');\n\n return {\n key: commandName.replace(/ ([a-z])/g, (_, letter: string) => letter.toUpperCase()),\n name: commandName,\n description: options.description,\n method: route.method as HttpMethod,\n path: route.path,\n positionals,\n acceptsInput: inputMode !== 'none',\n inputRequired: inputMode === 'required',\n list: options.list ?? false,\n responseShape: route.responseShape,\n queryParams: [...route.queryParams],\n bodyParams: [...route.bodyParams],\n defaultTimeoutMs: options.defaultTimeoutMs,\n examples: options.examples,\n verbose: verboseRoute\n ? {\n path: verboseRoute.path,\n responseShape: verboseRoute.responseShape,\n queryParams: [...verboseRoute.queryParams],\n bodyParams: [...verboseRoute.bodyParams],\n }\n : undefined,\n };\n}\n\n/**\n * Returns the nested command path below `api`, e.g. `workflow run` or `mcp tool`.\n *\n * @param command - Commander group whose ancestry should be converted into descriptor name segments.\n */\nfunction commandPath(command: CommanderCommand): string[] {\n const names: string[] = [];\n let current: CommanderCommand | undefined = command;\n\n while (current && current.name() !== 'api') {\n // Walk upward then unshift so the descriptor name matches the visible CLI order.\n names.unshift(current.name());\n current = current.parent as CommanderCommand | undefined;\n }\n\n return names;\n}\n\n/**\n * Extracts the leaf command token from the string passed to `parent.command()`.\n *\n * @param name - Commander command declaration. Currently just the leaf token, but kept tolerant of future declarations like `run [input]`.\n */\nfunction parseCommandName(name: string): string {\n return name.split(/\\s+/)[0] ?? name;\n}\n\n/**\n * Flushes API command analytics without letting telemetry keep the CLI alive indefinitely.\n *\n * @param analytics - Lazily-created analytics client, if telemetry is enabled.\n */\nfunction isUnauthorizedError(error: unknown): boolean {\n return error instanceof ApiCliError && error.code === 'HTTP_ERROR' && error.details.status === 401;\n}\n\nasync function shutdownApiAnalytics(analytics: ReturnType<typeof getAnalytics>): Promise<void> {\n if (!analytics) {\n return;\n }\n\n // Bound PostHog flush time; otherwise API commands can appear to hang after printing output.\n const exitTimer = setTimeout(() => {\n process.exit(process.exitCode ?? 0);\n }, API_ANALYTICS_SHUTDOWN_TIMEOUT_MS);\n\n try {\n await analytics.shutdown();\n } finally {\n clearTimeout(exitTimer);\n }\n}\n\n/**\n * Executes a descriptor-backed API command and writes a machine-readable JSON result.\n *\n * @param descriptor - Command metadata built from the Commander tree and generated route metadata.\n * @param positionalValues - Identity argument values captured from Commander, in descriptor order.\n * @param inputText - Optional inline JSON argument provided by the user.\n * @param options - Global `mastra api` flags such as target URL, headers, timeout, schema, and pretty output.\n */\nexport async function executeDescriptor(\n descriptor: ApiCommandDescriptor,\n positionalValues: string[],\n inputText: string | undefined,\n options: ApiGlobalOptions & { verbose?: boolean },\n): Promise<void> {\n try {\n const requestDescriptor =\n options.verbose && descriptor.verbose ? { ...descriptor, ...descriptor.verbose } : descriptor;\n const target = await resolveTarget(options, fetch, requestDescriptor.path);\n\n if (options.schema) {\n // Schema output is a discovery path, so it intentionally skips required argument validation.\n writeJson(await getCommandSchema(descriptor, target), options.pretty);\n return;\n }\n\n const input = parseInput(requestDescriptor, inputText);\n const pathParams = resolvePathParams(requestDescriptor, positionalValues, input);\n // Do not send IDs twice when a route path param was supplied through JSON input.\n const requestInput = stripPathParamsFromInput(input, pathParams);\n\n const requestOptions = {\n baseUrl: target.baseUrl,\n headers: target.headers,\n timeoutMs:\n requestDescriptor.defaultTimeoutMs && !options.timeout ? requestDescriptor.defaultTimeoutMs : target.timeoutMs,\n descriptor: requestDescriptor,\n pathParams,\n input: requestInput,\n };\n let response: unknown;\n try {\n response = await requestApi(requestOptions);\n } catch (error) {\n if (!target.fallbackHeaders || !isUnauthorizedError(error)) throw error;\n response = await requestApi({ ...requestOptions, headers: target.fallbackHeaders });\n }\n const normalized = normalizeData(requestDescriptor, normalizeResponse(response));\n writeJson(normalizeSuccess(normalized, requestDescriptor.list, requestDescriptor.responseShape), options.pretty);\n } catch (error) {\n const apiError = error instanceof ApiCliError ? error : toApiCliError(error);\n writeJson(errorEnvelope(apiError), options.pretty, process.stderr);\n process.exitCode = 1;\n }\n}\n\nfunction collect(value: string, previous: string[]): string[] {\n return [...previous, value];\n}\n","import { login, clearCredentials, loadCredentials, verifyToken, tryRefreshToken } from './credentials.js';\n\nexport async function loginAction() {\n const existing = await loadCredentials();\n if (existing) {\n const stillValid = (await verifyToken(existing.token)) || Boolean(await tryRefreshToken(existing));\n if (stillValid) {\n console.info(`\\nAlready logged in as ${existing.user.email}\\n`);\n return;\n }\n }\n await login();\n}\n\nexport async function logoutAction() {\n await clearCredentials();\n console.info('\\nLogged out. Credentials removed.\\n');\n if (process.env.MASTRA_API_TOKEN) {\n console.warn(' Note: MASTRA_API_TOKEN is still set in your environment.\\n Unset it to fully log out.\\n');\n }\n}\n","import { MASTRA_PLATFORM_API_URL, authHeaders, platformFetch, throwApiError } from './client.js';\nimport { getToken, getCurrentOrgId } from './credentials.js';\n\nasync function resolveOrgId(): Promise<string | null> {\n return process.env.MASTRA_ORG_ID ?? (await getCurrentOrgId());\n}\n\ninterface TokenInfo {\n id: string;\n name: string;\n obfuscatedValue: string;\n lastUsedAt: string | null;\n createdAt: string;\n}\n\nexport async function createToken(token: string, orgId: string, name: string): Promise<{ id: string; secret: string }> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/auth/tokens`, {\n method: 'POST',\n headers: {\n ...authHeaders(token, orgId),\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ name }),\n });\n\n if (!resp.ok) {\n const text = await resp.text();\n throwApiError('Failed to create token', resp.status, text);\n }\n\n const data = (await resp.json()) as { token: TokenInfo; secret: string };\n return { id: data.token.id, secret: data.secret };\n}\n\nexport async function createTokenAction(name: string) {\n const token = await getToken();\n const orgId = await resolveOrgId();\n if (!orgId) throw new Error('No organization selected. Run: mastra auth orgs switch');\n\n const result = await createToken(token, orgId, name);\n\n console.info('\\nToken created successfully!\\n');\n console.info(` Name: ${name}`);\n console.info(` ID: ${result.id}`);\n console.info('');\n console.info(` Secret: ${result.secret}`);\n console.info('');\n console.info(' Save this secret — it will not be shown again.');\n console.info(' Set it as MASTRA_API_TOKEN in your CI environment.\\n');\n}\n\nexport async function listTokensAction() {\n const token = await getToken();\n const orgId = await resolveOrgId();\n if (!orgId) throw new Error('No organization selected. Run: mastra auth orgs switch');\n\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/auth/tokens`, {\n headers: authHeaders(token, orgId),\n });\n\n if (!resp.ok) {\n const text = await resp.text();\n throwApiError('Failed to list tokens', resp.status, text);\n }\n\n const data = (await resp.json()) as { tokens: TokenInfo[] };\n\n if (data.tokens.length === 0) {\n console.info('\\nNo tokens found.\\n');\n return;\n }\n\n console.info('\\nTokens:\\n');\n for (const t of data.tokens) {\n const lastUsed = t.lastUsedAt ? new Date(t.lastUsedAt).toLocaleDateString() : 'never';\n console.info(` ${t.name}`);\n console.info(` ID: ${t.id} Key: ${t.obfuscatedValue} Last used: ${lastUsed}`);\n }\n console.info('');\n}\n\nexport async function revokeTokenAction(tokenId: string) {\n const token = await getToken();\n const orgId = await resolveOrgId();\n if (!orgId) throw new Error('No organization selected. Run: mastra auth orgs switch');\n\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/auth/tokens/${encodeURIComponent(tokenId)}`, {\n method: 'DELETE',\n headers: authHeaders(token, orgId),\n });\n\n if (!resp.ok) {\n const text = await resp.text();\n throwApiError('Failed to revoke token', resp.status, text);\n }\n\n console.info(`\\nToken ${tokenId} revoked.\\n`);\n}\n","import { fetchOrgs } from './api.js';\nimport { loadCredentials, getCurrentOrgId } from './credentials.js';\n\nexport async function whoamiAction() {\n const envToken = process.env.MASTRA_API_TOKEN;\n\n if (envToken) {\n const orgId = process.env.MASTRA_ORG_ID ?? (await getCurrentOrgId());\n console.info('\\n Authenticated via MASTRA_API_TOKEN');\n if (orgId) {\n console.info(` Org: ${orgId}`);\n }\n console.info('');\n return;\n }\n\n const creds = await loadCredentials();\n if (!creds) {\n console.info('\\nNot logged in. Run: mastra auth login\\n');\n process.exit(1);\n }\n\n const orgId = await getCurrentOrgId();\n\n let orgName: string | null = null;\n try {\n const orgs = await fetchOrgs(creds.token);\n const match = orgs.find(o => o.id === orgId);\n if (match) orgName = match.name;\n } catch {\n // Couldn't fetch org name — that's fine, we'll show the ID\n }\n\n console.info(`\\n ${creds.user.email}`);\n console.info(` User ID: ${creds.user.id}`);\n if (orgName) {\n console.info(` Org: ${orgName} (${orgId})`);\n } else if (orgId) {\n console.info(` Org: ${orgId}`);\n }\n console.info('');\n}\n","import { execSync } from 'node:child_process';\nimport { createWriteStream } from 'node:fs';\nimport { mkdir, rm, stat, access, readFile, readdir } from 'node:fs/promises';\nimport { tmpdir } from 'node:os';\nimport { join, resolve } from 'node:path';\nimport * as p from '@clack/prompts';\nimport archiver from 'archiver';\nimport { config } from 'dotenv';\nimport { runBuild } from '../../utils/run-build.js';\nimport { fetchOrgs } from '../auth/api.js';\nimport { MASTRA_STUDIO_URL } from '../auth/client.js';\nimport { getToken, getCurrentOrgId } from '../auth/credentials.js';\nimport { preflightBuildOutput, printPreflightIssues } from '../deploy-preflight.js';\nimport { getProjectConfigToSave, loadProjectConfig, saveProjectConfig } from '../studio/project-config.js';\nimport { fetchServerProjects, createServerProject, uploadServerDeploy, pollServerDeploy } from './platform-api.js';\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction getPackageName(projectDir: string): string | null {\n try {\n const raw = execSync('node -p \"require(\\'./package.json\\').name\"', {\n cwd: projectDir,\n encoding: 'utf-8',\n stdio: ['pipe', 'pipe', 'pipe'],\n }).trim();\n return raw.startsWith('@') ? (raw.split('/')[1] ?? raw) : raw;\n } catch {\n return null;\n }\n}\n\nasync function zipOutput(projectDir: string): Promise<string> {\n const outputDir = join(projectDir, '.mastra', 'output');\n const tmpDir = join(tmpdir(), 'mastra-deploy');\n await mkdir(tmpDir, { recursive: true });\n const zipPath = join(tmpDir, `server-deploy-${Date.now()}.zip`);\n\n return new Promise((resolvePromise, reject) => {\n const output = createWriteStream(zipPath);\n const archive = archiver('zip', { zlib: { level: 6 } });\n\n output.on('close', () => resolvePromise(zipPath));\n archive.on('error', reject);\n\n archive.pipe(output);\n // Ship only the pre-built .mastra/output + package.json for dependency metadata\n archive.glob('**', { cwd: outputDir, ignore: ['node_modules/**'] }, { prefix: '.mastra/output' });\n archive.file(join(projectDir, 'package.json'), { name: 'package.json' });\n void archive.finalize();\n });\n}\n\nexport function parseEnvFile(content: string): Record<string, string> {\n const vars: Record<string, string> = {};\n for (const line of content.split('\\n')) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith('#')) continue;\n const eqIdx = trimmed.indexOf('=');\n if (eqIdx === -1) continue;\n let key = trimmed.slice(0, eqIdx).trim();\n if (key.startsWith('export ')) key = key.slice(7).trim();\n let value = trimmed.slice(eqIdx + 1).trim();\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n if (key) vars[key] = value;\n }\n return vars;\n}\n\n/**\n * Loads MASTRA_PROJECT_ID and MASTRA_ORG_ID from the project's .env files\n * into process.env so deploys auto-link to the project that `mastra init --observability`\n * provisioned. Uses dotenv with override: false (the default), so any\n * existing process.env value (e.g. from CI) always wins.\n */\nexport function loadDeployEnvFromDotenv(projectDir: string): void {\n config({\n path: [join(projectDir, '.env'), join(projectDir, '.env.local'), join(projectDir, '.env.production')],\n quiet: true,\n });\n}\n\nasync function getDeployEnvFiles(projectDir: string): Promise<string[]> {\n const entries = await readdir(projectDir, { withFileTypes: true });\n\n return entries\n .filter(\n entry =>\n (entry.isFile() || entry.isSymbolicLink()) &&\n (entry.name === '.env' || entry.name.startsWith('.env.')) &&\n !entry.name.endsWith('.example'),\n )\n .map(entry => entry.name)\n .sort((a, b) => a.localeCompare(b));\n}\n\nexport async function readEnvVars(\n projectDir: string,\n options: { autoAccept?: boolean; envFile?: string } = {},\n): Promise<Record<string, string>> {\n // When an explicit env file is provided, trust the user — read it directly.\n if (options.envFile) {\n const filePath = join(projectDir, options.envFile);\n try {\n await access(filePath);\n } catch {\n throw new Error(`Env file not found: ${options.envFile}`);\n }\n p.log.step(`Using env file: ${options.envFile}`);\n return parseEnvFile(await readFile(filePath, 'utf-8'));\n }\n\n const availableDeployEnvFiles = await getDeployEnvFiles(projectDir);\n\n if (availableDeployEnvFiles.length === 0) {\n throw new Error('No env file found for deploy. Add a .env or .env.* file before deploying.');\n }\n\n let selectedEnvFile: string;\n\n if (availableDeployEnvFiles.length === 1) {\n selectedEnvFile = availableDeployEnvFiles[0]!;\n } else if (options.autoAccept) {\n throw new Error(\n `Multiple env files found: ${availableDeployEnvFiles.join(', ')}. Use --env-file to specify which one to deploy.`,\n );\n } else {\n const defaultFile =\n availableDeployEnvFiles.find(envFile => envFile === '.env.production') ?? availableDeployEnvFiles[0]!;\n\n const selected = await p.select({\n message: 'Choose env file to deploy',\n options: availableDeployEnvFiles.map(envFile => ({ value: envFile, label: envFile })),\n initialValue: defaultFile,\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n selectedEnvFile = selected as string;\n }\n\n p.log.step(`Using env file: ${selectedEnvFile}`);\n\n return parseEnvFile(await readFile(join(projectDir, selectedEnvFile), 'utf-8'));\n}\n\n/* ------------------------------------------------------------------ */\n/* Resolve org */\n/* ------------------------------------------------------------------ */\n\nasync function resolveOrg(\n token: string,\n projectConfig: { organizationId?: string } | null,\n flagOrg?: string,\n): Promise<{ orgId: string; orgName: string }> {\n const isHeadless = Boolean(process.env.MASTRA_API_TOKEN);\n const envOrgId = process.env.MASTRA_ORG_ID;\n if (envOrgId) {\n return { orgId: envOrgId, orgName: envOrgId };\n }\n\n if (flagOrg) {\n const orgs = await fetchOrgs(token);\n const match = orgs.find(o => o.id === flagOrg);\n return { orgId: flagOrg, orgName: match?.name ?? flagOrg };\n }\n\n if (projectConfig?.organizationId) {\n if (isHeadless) {\n return { orgId: projectConfig.organizationId, orgName: projectConfig.organizationId };\n }\n const orgs = await fetchOrgs(token);\n const match = orgs.find(o => o.id === projectConfig.organizationId);\n if (match) {\n return { orgId: match.id, orgName: match.name };\n }\n }\n\n const currentOrgId = await getCurrentOrgId();\n const orgs = await fetchOrgs(token);\n\n if (currentOrgId) {\n const match = orgs.find(o => o.id === currentOrgId);\n if (match) {\n return { orgId: match.id, orgName: match.name };\n }\n }\n\n if (orgs.length === 1) {\n return { orgId: orgs[0]!.id, orgName: orgs[0]!.name };\n }\n\n if (orgs.length === 0) {\n throw new Error(`No organizations found. Create one at ${MASTRA_STUDIO_URL}`);\n }\n\n const selected = await p.select({\n message: 'Select an organization',\n options: orgs.map(o => ({ value: o.id, label: `${o.name} (${o.id})` })),\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n const selectedOrg = orgs.find(o => o.id === selected)!;\n return { orgId: selectedOrg.id, orgName: selectedOrg.name };\n}\n\n/* ------------------------------------------------------------------ */\n/* Resolve project */\n/* ------------------------------------------------------------------ */\n\nasync function resolveProject(\n token: string,\n orgId: string,\n projectConfig: { projectId?: string; projectName?: string; projectSlug?: string; organizationId?: string } | null,\n flagProject?: string,\n defaultName?: string | null,\n autoAccept?: boolean,\n): Promise<{ projectId: string; projectName: string; projectSlug: string }> {\n const envProjectId = process.env.MASTRA_PROJECT_ID;\n if (envProjectId) {\n return { projectId: envProjectId, projectName: envProjectId, projectSlug: envProjectId };\n }\n\n if (flagProject) {\n const projects = await fetchServerProjects(token, orgId);\n const match = projects.find(proj => proj.slug === flagProject || proj.id === flagProject);\n if (match) {\n return { projectId: match.id, projectName: match.name, projectSlug: match.slug ?? match.name };\n }\n return { projectId: flagProject, projectName: flagProject, projectSlug: flagProject };\n }\n\n if (projectConfig?.projectId && projectConfig.organizationId === orgId) {\n return {\n projectId: projectConfig.projectId,\n projectName: projectConfig.projectName ?? projectConfig.projectId,\n projectSlug: projectConfig.projectSlug ?? projectConfig.projectName ?? projectConfig.projectId,\n };\n }\n\n const name = defaultName;\n if (!name) {\n throw new Error('Could not determine project name from package.json. Use --project to specify one.');\n }\n\n const existing = await fetchServerProjects(token, orgId);\n const nameMatches = existing.filter(proj => proj.name === name || proj.slug === name);\n\n if (existing.length > 0) {\n if (autoAccept) {\n // Non-interactive: only safe to auto-pick when exactly one project matches by name/slug.\n if (nameMatches.length === 1) {\n const m = nameMatches[0]!;\n return { projectId: m.id, projectName: m.name, projectSlug: m.slug ?? m.name };\n }\n throw new Error(\n `Found ${existing.length} existing project(s) in this organization. Pass --project <id-or-slug> to select one, or re-run without --yes to choose interactively.`,\n );\n }\n\n const CREATE_NEW = '__create_new__';\n const initialValue = nameMatches.length === 1 ? nameMatches[0]!.id : existing[0]!.id;\n const selected = await p.select({\n message: 'Select a project to deploy to',\n initialValue,\n options: [\n ...existing.map(proj => ({ value: proj.id, label: `${proj.name} (${proj.id})` })),\n { value: CREATE_NEW, label: `+ Create new project \"${name}\"` },\n ],\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n if (selected !== CREATE_NEW) {\n const match = existing.find(proj => proj.id === selected)!;\n return { projectId: match.id, projectName: match.name, projectSlug: match.slug ?? match.name };\n }\n }\n\n const project = await createServerProject(token, orgId, name);\n return { projectId: project.id, projectName: project.name, projectSlug: project.slug ?? project.name };\n}\n\n/* ------------------------------------------------------------------ */\n/* Main deploy action */\n/* ------------------------------------------------------------------ */\n\nexport async function serverDeployAction(\n dir: string | undefined,\n opts: {\n org?: string;\n project?: string;\n yes?: boolean;\n config?: string;\n skipBuild?: boolean;\n skipPreflight?: boolean;\n debug?: boolean;\n envFile?: string;\n },\n) {\n const targetDir = resolve(dir || process.cwd());\n // Seed MASTRA_PROJECT_ID / MASTRA_ORG_ID from the project's .env so deploys\n // auto-link to the project that `mastra init --observability` provisioned.\n loadDeployEnvFromDotenv(targetDir);\n const isHeadless = Boolean(process.env.MASTRA_API_TOKEN);\n const autoAccept = opts.yes ?? isHeadless;\n const skipPreflight = opts.skipPreflight || process.env.MASTRA_SKIP_PREFLIGHT === '1';\n\n p.intro('mastra server deploy');\n\n const packageName = getPackageName(targetDir);\n\n // Step 1: Auth\n let token: string;\n try {\n token = await getToken();\n } catch {\n p.log.error(`Authentication failed. Run: mastra auth login`);\n process.exit(1);\n }\n\n // Step 2: Load existing project config\n const projectConfig = await loadProjectConfig(targetDir, opts.config);\n\n // Step 3: Resolve org — flags and config are checked before requiring env vars\n const hasOrg = Boolean(process.env.MASTRA_ORG_ID || opts.org || projectConfig?.organizationId);\n const hasProject = Boolean(process.env.MASTRA_PROJECT_ID || opts.project || projectConfig?.projectId);\n if (isHeadless && (!hasOrg || !hasProject)) {\n throw new Error(\n 'MASTRA_ORG_ID and MASTRA_PROJECT_ID (or --org/--project flags, or .mastra-project.json) are required when MASTRA_API_TOKEN is set',\n );\n }\n\n const { orgId, orgName } = await resolveOrg(token, projectConfig, opts.org);\n\n // Step 4: Resolve project\n const { projectId, projectName, projectSlug } = await resolveProject(\n token,\n orgId,\n projectConfig,\n opts.project,\n packageName,\n autoAccept,\n );\n\n // Step 5: Confirmation\n const isAlreadyLinked = projectConfig?.projectId === projectId && projectConfig?.organizationId === orgId;\n\n if (!isAlreadyLinked) {\n p.note(\n [`Organization: ${orgName}`, `Project: ${projectName}`, `Directory: ${targetDir}`].join('\\n'),\n 'Deploy settings',\n );\n\n if (!autoAccept) {\n const confirmed = await p.confirm({\n message: 'Deploy with these settings?',\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n await saveProjectConfig(\n targetDir,\n getProjectConfigToSave(projectId, projectName, projectSlug, orgId, projectConfig),\n opts.config,\n );\n p.log.success(`Saved ${opts.config || '.mastra-project.json'}`);\n } else {\n p.log.info(`Organization: ${orgName} (${orgId})`);\n p.log.info(`Project: ${projectName} (${projectId})`);\n }\n\n // Step 6: Build + Zip + Upload + Poll\n const s = p.spinner();\n\n if (opts.skipBuild) {\n p.log.step('Skipping build (--skip-build)');\n } else {\n await runBuild(targetDir, { debug: opts.debug });\n }\n\n // Verify build output exists\n const outputEntry = join(targetDir, '.mastra', 'output', 'index.mjs');\n try {\n await access(outputEntry);\n } catch {\n throw new Error('.mastra/output/index.mjs not found — did the build succeed?');\n }\n\n const envVars = await readEnvVars(targetDir, { autoAccept, envFile: opts.envFile });\n const envCount = Object.keys(envVars).length;\n if (envCount > 0) {\n p.log.step(`Found ${envCount} env var(s)`);\n } else {\n p.log.step('No env vars found in selected env file');\n }\n\n // Pre-upload validation — catch USER-attributable errors before zipping/shipping.\n if (!skipPreflight) {\n const issues = await preflightBuildOutput(targetDir, envVars);\n const outcome = await printPreflightIssues(issues, { autoAccept });\n if (outcome === 'blocked') {\n p.cancel('Deploy blocked by preflight errors.');\n process.exit(1);\n }\n if (outcome === 'cancelled') {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n s.start('Zipping build artifact...');\n const zipPath = await zipOutput(targetDir);\n const zipStat = await stat(zipPath);\n const sizeKB = zipStat.size / 1024;\n const sizeLabel = sizeKB > 1024 ? `${(sizeKB / 1024).toFixed(1)}MB` : `${sizeKB.toFixed(1)}KB`;\n s.stop(`Created ${sizeLabel} archive`);\n\n s.start('Uploading...');\n const zipBuffer = await readFile(zipPath);\n const deployResult = await uploadServerDeploy(token, orgId, projectId, zipBuffer, {\n projectName,\n envVars: envCount > 0 ? envVars : undefined,\n disablePlatformObservability: projectConfig?.disablePlatformObservability === true,\n });\n s.stop(`Deploy accepted: ${deployResult.id}`);\n\n await rm(zipPath, { force: true });\n\n p.log.step('Streaming deploy logs...');\n const finalStatus = await pollServerDeploy(deployResult.id, token, orgId);\n\n if (finalStatus.status === 'running') {\n p.outro(`Deploy succeeded! ${finalStatus.instanceUrl}`);\n } else if (finalStatus.status === 'failed') {\n p.log.error(`Deploy failed: ${finalStatus.error}`);\n process.exit(1);\n } else {\n p.log.warning(`Deploy ended with status: ${finalStatus.status}`);\n process.exit(1);\n }\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\n\nimport { withPollingRetries } from '../utils/polling.js';\n\nexport interface DeployDiagnosisRecommendation {\n title: string;\n description: string;\n action: string | null;\n docsUrl: string | null;\n}\n\nexport interface DeployDiagnosis {\n id: string;\n deployId: string;\n status: 'PENDING' | 'COMPLETE' | 'FAILED';\n summary: string | null;\n recommendations: DeployDiagnosisRecommendation[] | null;\n error: string | null;\n createdAt: string;\n completedAt: string | null;\n}\n\nexport type DeployDiagnosisLookup =\n | { state: 'healthy' }\n | { state: 'missing' }\n | { state: 'ready'; diagnosis: DeployDiagnosis };\n\nexport interface PrintSuggestionsOptions {\n logsUrl?: string;\n}\n\nexport function printDeploySuggestions(\n deployId: string,\n diagnosis: DeployDiagnosis,\n options?: PrintSuggestionsOptions,\n) {\n if (diagnosis.status === 'FAILED') {\n p.log.error(`Diagnosis failed: ${diagnosis.error ?? 'unknown error'}`);\n return;\n }\n\n const meta = [pc.dim(`Deploy: ${deployId}`)];\n if (diagnosis.completedAt) {\n meta.push(pc.dim(`Diagnosed: ${diagnosis.completedAt}`));\n }\n p.log.step(meta.join(pc.dim(' · ')));\n\n p.log.message(pc.bold(pc.magenta(`🏥 Deploy Suggestions`)));\n\n if (diagnosis.summary) {\n p.log.message(pc.bold(pc.cyan(`Summary: `)) + diagnosis.summary);\n }\n\n const recommendations = diagnosis.recommendations ?? [];\n if (recommendations.length === 0) {\n p.log.warn(\n `No suggestions could be generated. The deploy may have failed due to an internal error — check the deploy logs for details.`,\n );\n } else {\n const lines: string[] = [];\n for (const [index, recommendation] of recommendations.entries()) {\n lines.push(`${pc.bold(pc.cyan(`${index + 1}.`))} ${pc.bold(recommendation.title)}`);\n lines.push(pc.dim(` ${recommendation.description}`));\n if (recommendation.action) {\n lines.push(` ${pc.green('▸')} ${pc.green(recommendation.action)}`);\n }\n if (recommendation.docsUrl) {\n lines.push(` ${pc.blue('↗')} ${pc.underline(pc.blue(recommendation.docsUrl))}`);\n }\n lines.push('');\n }\n\n p.log.message(lines.join('\\n'));\n }\n\n const logsUrl = options?.logsUrl ?? `https://projects.mastra.ai`;\n p.log.step(`Deploy logs: ${pc.underline(pc.blue(logsUrl))}`);\n}\n\nconst POLL_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes\n\nexport async function pollForDiagnosis(\n fetchDiagnosis: () => Promise<DeployDiagnosisLookup>,\n): Promise<DeployDiagnosisLookup> {\n const spinner = p.spinner();\n spinner.start(pc.cyan('Diagnosing deploy failure'));\n const deadline = Date.now() + POLL_TIMEOUT_MS;\n\n try {\n while (true) {\n const result = await withPollingRetries(fetchDiagnosis);\n if (result.state === 'healthy') {\n spinner.stop(pc.green('Deploy is healthy'));\n return result;\n }\n\n if (result.state === 'ready' && result.diagnosis.status !== 'PENDING') {\n spinner.stop(pc.green('Diagnosis complete'));\n return result;\n }\n\n if (Date.now() >= deadline) {\n throw new Error('Diagnosis polling timed out after 5 minutes. Please try again later.');\n }\n\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n } catch (error) {\n spinner.stop(pc.red('Diagnosis failed'));\n throw error;\n }\n}\n","import { chmod, readFile, writeFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\nimport { getToken, getCurrentOrgId } from '../auth/credentials.js';\nimport { loadProjectConfig } from '../studio/project-config.js';\nimport { parseEnvFile } from './deploy.js';\nimport { fetchServerProjects, getServerProjectEnv, updateServerProjectEnv } from './platform-api.js';\n\n/* ------------------------------------------------------------------ */\n/* Shared helpers */\n/* ------------------------------------------------------------------ */\n\nexport async function resolveAuth(cliOrg?: string): Promise<{ token: string; orgId: string }> {\n const token = await getToken();\n const orgId = process.env.MASTRA_ORG_ID ?? cliOrg ?? (await getCurrentOrgId());\n if (!orgId) {\n throw new Error('No organization selected. Run: mastra auth orgs switch');\n }\n return { token, orgId };\n}\n\nexport async function resolveProjectId(\n opts: { config?: string; project?: string },\n auth?: { token: string; orgId: string },\n): Promise<string> {\n const envProjectId = process.env.MASTRA_PROJECT_ID;\n if (envProjectId) return envProjectId;\n\n if (opts.project) {\n if (auth) {\n const projects = await fetchServerProjects(auth.token, auth.orgId);\n const match = projects.find(p => p.slug === opts.project || p.id === opts.project);\n if (match) return match.id;\n }\n return opts.project;\n }\n\n const config = await loadProjectConfig(process.cwd(), opts.config);\n if (!config?.projectId) {\n throw new Error('No linked project found. Deploy first with `mastra server deploy` or set MASTRA_PROJECT_ID.');\n }\n return config.projectId;\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env list */\n/* ------------------------------------------------------------------ */\n\nexport async function envListAction(opts: { config?: string }) {\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts);\n\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n const keys = Object.keys(envVars);\n\n if (keys.length === 0) {\n console.info('\\nNo environment variables set.\\n');\n return;\n }\n\n console.info(`\\n Environment variables (${keys.length}):\\n`);\n for (const key of keys.sort()) {\n // Show only the first 4 chars of the value to avoid leaking secrets\n const val = envVars[key]!;\n const masked = val.length > 4 ? val.slice(0, 4) + '...' : val;\n console.info(` ${key}=${masked}`);\n }\n console.info('');\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env set */\n/* ------------------------------------------------------------------ */\n\nexport async function envSetAction(key: string, value: string, opts: { config?: string }) {\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts);\n\n // Fetch current env vars, merge the new one, and PUT back\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n envVars[key] = value;\n await updateServerProjectEnv(token, orgId, projectId, envVars);\n\n console.info(`\\n Set ${key} successfully.\\n`);\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env unset */\n/* ------------------------------------------------------------------ */\n\nexport async function envUnsetAction(key: string, opts: { config?: string }) {\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts);\n\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n\n if (!(key in envVars)) {\n console.info(`\\n ${key} is not set.\\n`);\n return;\n }\n\n delete envVars[key];\n await updateServerProjectEnv(token, orgId, projectId, envVars);\n\n console.info(`\\n Removed ${key} successfully.\\n`);\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env import */\n/* ------------------------------------------------------------------ */\n\nexport async function envImportAction(file: string, opts: { config?: string }) {\n const filePath = resolve(file);\n let content: string;\n try {\n content = await readFile(filePath, 'utf-8');\n } catch {\n throw new Error(`Could not read file: ${filePath}`);\n }\n\n const newVars = parseEnvFile(content);\n const newKeys = Object.keys(newVars);\n if (newKeys.length === 0) {\n console.info('\\n No variables found in file.\\n');\n return;\n }\n\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts);\n\n // Merge with existing env vars (new values override existing)\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n Object.assign(envVars, newVars);\n await updateServerProjectEnv(token, orgId, projectId, envVars);\n\n console.info(`\\n Imported ${newKeys.length} variable(s) from ${file}:\\n`);\n for (const key of newKeys.sort()) {\n console.info(` ${key}`);\n }\n console.info('');\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env pull */\n/* ------------------------------------------------------------------ */\n\nexport async function envPullAction(file: string | undefined, opts: { config?: string; project?: string }) {\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts, { token, orgId });\n\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n const keys = Object.keys(envVars);\n\n const target = file ?? '.env';\n const shellSafeKey = /^[A-Za-z_][A-Za-z0-9_]*$/;\n const lines = ['# Pulled from Mastra Server — do not edit manually', ''];\n let skipped = 0;\n for (const key of keys.sort()) {\n if (!shellSafeKey.test(key)) {\n lines.push(`# Skipped unsafe key: ${key.replace(/[^\\w.-]/g, '?')}`);\n skipped++;\n continue;\n }\n const value = envVars[key]!;\n // Always quote values to prevent shell metacharacter interpretation when sourced\n const escaped = value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\t/g, '\\\\t')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\$/g, '\\\\$')\n .replace(/`/g, '\\\\`');\n lines.push(`${key}=\"${escaped}\"`);\n }\n lines.push(''); // trailing newline\n\n const outputPath = resolve(target);\n await writeFile(outputPath, lines.join('\\n'), { encoding: 'utf-8', mode: 0o600 });\n await chmod(outputPath, 0o600);\n\n const written = keys.length - skipped;\n if (written === 0) {\n console.info(`\\n No environment variables set in the project. Wrote empty ${target}.\\n`);\n } else {\n console.info(\n `\\n Pulled ${written} variable(s) to ${target}.${skipped > 0 ? ` Skipped ${skipped} unsafe key(s).` : ''}\\n`,\n );\n }\n}\n","import * as p from '@clack/prompts';\n\nimport { withPollingRetries } from '../../utils/polling.js';\nimport { pollForDiagnosis, printDeploySuggestions } from '../deploy-suggestions.js';\nimport { resolveAuth, resolveProjectId } from './env.js';\nimport { fetchServerDeployDiagnosis, fetchServerProjectDetail, startServerDeployDiagnosis } from './platform-api.js';\n\nasync function resolveDeployId(\n token: string,\n orgId: string,\n deployId?: string,\n): Promise<{ deployId: string; projectId?: string }> {\n if (deployId) {\n return { deployId };\n }\n\n const projectId = await resolveProjectId({}, { token, orgId });\n const { project } = await fetchServerProjectDetail(token, orgId, projectId);\n if (!project.latestDeployId) {\n throw new Error(\n `No deploys found for linked Server project ${project.name}. The suggestions command helps debug failed deployments, and you can run it after a deployment fails with \\`mastra server deploy suggestions <deploy-id>\\` or \\`mastra server deploy suggestions\\`.`,\n );\n }\n\n p.log.info(`Using latest deploy: ${project.latestDeployId}${project.name ? ` (${project.name})` : ''}`);\n return { deployId: project.latestDeployId, projectId };\n}\n\nfunction buildLogsUrl(orgId: string, projectId: string | undefined, deployId: string): string | undefined {\n if (!projectId) return undefined;\n return `https://projects.mastra.ai/orgs/${orgId}/server/projects/${projectId}/deploys/${deployId}`;\n}\n\nexport async function serverSuggestionsAction(deployId: string | undefined, opts: { org?: string }) {\n p.intro('mastra server deploy suggestions');\n try {\n const { token, orgId } = await resolveAuth(opts.org);\n const resolved = await resolveDeployId(token, orgId, deployId);\n const targetDeployId = resolved.deployId;\n\n const initialDiagnosis = await withPollingRetries(() => fetchServerDeployDiagnosis(targetDeployId, token, orgId));\n if (initialDiagnosis.state === 'healthy') {\n p.outro('Deploy is running successfully. No suggestions required.');\n return;\n }\n\n if (initialDiagnosis.state === 'missing') {\n await startServerDeployDiagnosis(targetDeployId, token, orgId);\n }\n\n let isFirstPoll = initialDiagnosis.state === 'ready';\n const diagnosisResult = await pollForDiagnosis(async () => {\n if (isFirstPoll) {\n isFirstPoll = false;\n return initialDiagnosis;\n }\n\n return fetchServerDeployDiagnosis(targetDeployId, token, orgId);\n });\n\n if (diagnosisResult.state !== 'ready') {\n p.outro('Deploy is running successfully. No suggestions required.');\n return;\n }\n\n const logsUrl = buildLogsUrl(orgId, resolved.projectId, targetDeployId);\n\n if (diagnosisResult.diagnosis.status === 'FAILED') {\n p.log.error(`Diagnosis failed: ${diagnosisResult.diagnosis.error ?? 'unknown error'}`);\n p.log.step(`Deploy logs: ${logsUrl ?? 'https://projects.mastra.ai'}`);\n process.exit(1);\n }\n\n printDeploySuggestions(targetDeployId, diagnosisResult.diagnosis, { logsUrl });\n } catch (err) {\n p.log.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n","import * as p from '@clack/prompts';\n\nimport { resolveAuth, resolveProjectId } from './env.js';\nimport { pauseServerProject, pollServerDeploy, restartServerProject } from './platform-api.js';\n\nexport async function serverPauseAction(opts: { config?: string; project?: string; org?: string }) {\n p.intro('mastra server pause');\n try {\n const { token, orgId } = await resolveAuth(opts.org);\n const projectId = await resolveProjectId(opts, { token, orgId });\n await pauseServerProject(token, orgId, projectId);\n p.outro('Server paused.');\n } catch (err) {\n p.log.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n\nexport async function serverRestartAction(opts: { config?: string; project?: string; org?: string }) {\n p.intro('mastra server restart');\n try {\n const { token, orgId } = await resolveAuth(opts.org);\n const projectId = await resolveProjectId(opts, { token, orgId });\n\n const s = p.spinner();\n s.start('Requesting restart...');\n const deployId = await restartServerProject(token, orgId, projectId);\n s.stop(`Restart queued: ${deployId}`);\n\n p.log.step('Streaming deploy logs...');\n const finalStatus = await pollServerDeploy(deployId, token, orgId);\n\n if (finalStatus.status === 'running') {\n p.outro(finalStatus.instanceUrl ? `Restart complete! ${finalStatus.instanceUrl}` : 'Restart complete!');\n } else if (finalStatus.status === 'failed') {\n p.log.error(`Restart failed: ${finalStatus.error ?? 'unknown error'}`);\n process.exit(1);\n } else {\n p.log.warning(`Restart ended with status: ${finalStatus.status}`);\n process.exit(1);\n }\n } catch (err) {\n p.log.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n","import { getToken, getCurrentOrgId, validateOrgAccess } from '../auth/credentials.js';\nimport { fetchProjects } from './platform-api.js';\n\nconst statusIcon: Record<string, string> = {\n starting: '🚀',\n running: '✅',\n stopped: '⏹️',\n failed: '❌',\n unknown: '❓',\n};\n\nexport async function deploysAction() {\n const token = await getToken();\n const orgId = await getCurrentOrgId();\n if (!orgId) {\n console.error('No organization selected. Run: mastra auth login');\n process.exit(1);\n }\n\n await validateOrgAccess(token, orgId);\n\n const projects = await fetchProjects(token, orgId);\n\n if (projects.length === 0) {\n console.info('No deploys found.');\n return;\n }\n\n for (const project of projects) {\n const status = project.latestDeployStatus ?? 'none';\n const icon = statusIcon[status] ?? '❓';\n const url = project.instanceUrl ?? '';\n\n console.info(`${icon} ${project.name} (${project.id})`);\n console.info(` Latest: ${project.latestDeployId ?? 'none'} — ${status}`);\n if (url) {\n console.info(` URL: ${url}`);\n }\n console.info('');\n }\n}\n","import { authHeaders, createApiClient, MASTRA_PLATFORM_API_URL, platformFetch } from '../auth/client.js';\nimport { getToken, getCurrentOrgId, validateOrgAccess } from '../auth/credentials.js';\n\nasync function getLogs(deployId: string, tail: string | undefined, token: string, orgId: string) {\n const client = createApiClient(token, orgId);\n const { data, error } = await client.GET('/v1/studio/deploys/{id}/logs', {\n params: {\n path: { id: deployId },\n query: tail ? { tail } : undefined,\n },\n });\n\n if (error) {\n throw new Error(`Failed to fetch logs: ${error.detail}`);\n }\n\n if (data.logs) {\n process.stdout.write(data.logs);\n } else {\n console.info('(no logs available)');\n }\n}\n\nasync function streamLogs(deployId: string, token: string, orgId: string) {\n const url = `${MASTRA_PLATFORM_API_URL}/v1/studio/deploys/${deployId}/logs/stream`;\n\n const resp = await platformFetch(url, {\n headers: {\n ...authHeaders(token, orgId),\n Accept: 'text/event-stream',\n },\n });\n\n if (!resp.ok) {\n const text = await resp.text();\n throw new Error(`Failed to stream logs: ${resp.status} — ${text}`);\n }\n\n if (!resp.body) {\n throw new Error('No response body for log stream');\n }\n\n const reader = resp.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n // Handle Ctrl+C gracefully\n process.on('SIGINT', () => {\n void reader.cancel();\n process.exit(0);\n });\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n // Parse SSE data lines, keeping any incomplete trailing line in the buffer\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n for (const line of lines) {\n if (line.startsWith('data:')) {\n const data = line.slice(5).trimStart();\n process.stdout.write(data + '\\n');\n }\n }\n }\n}\n\nexport async function logsAction(deployId: string, opts: { follow?: boolean; tail?: string }) {\n const token = await getToken();\n const orgId = await getCurrentOrgId();\n if (!orgId) {\n console.error('No organization selected. Run: mastra auth login');\n process.exit(1);\n }\n\n await validateOrgAccess(token, orgId);\n\n if (opts.follow) {\n await streamLogs(deployId, token, orgId);\n } else {\n await getLogs(deployId, opts.tail, token, orgId);\n }\n}\n","import { getToken, getCurrentOrgId, validateOrgAccess } from '../auth/credentials.js';\nimport type { DeployInfo } from './platform-api.js';\nimport { fetchDeployStatus } from './platform-api.js';\n\nfunction printDeploy(deploy: DeployInfo) {\n const statusIcon: Record<string, string> = {\n starting: '🚀',\n running: '✅',\n stopped: '⏹️',\n failed: '❌',\n unknown: '❓',\n };\n const icon = statusIcon[deploy.status] ?? '❓';\n\n console.info(`${icon} Deploy ${deploy.id}`);\n console.info(` Status: ${deploy.status}`);\n if (deploy.projectName) {\n console.info(` Project: ${deploy.projectName}`);\n }\n if (deploy.instanceUrl) {\n console.info(` URL: ${deploy.instanceUrl}`);\n }\n if (deploy.error) {\n console.info(` Error: ${deploy.error}`);\n }\n if (deploy.createdAt) {\n console.info(` Created: ${deploy.createdAt}`);\n }\n}\n\nexport async function statusAction(deployId: string, opts: { watch?: boolean }) {\n const token = await getToken();\n const orgId = await getCurrentOrgId();\n if (!orgId) {\n console.error('No organization selected. Run: mastra auth login');\n process.exit(1);\n }\n\n await validateOrgAccess(token, orgId);\n\n if (opts.watch) {\n let lastStatus = '';\n console.info(`Watching deploy ${deployId}...\\n`);\n\n while (true) {\n const deploy = await fetchDeployStatus(deployId, token, orgId);\n\n if (deploy.status !== lastStatus) {\n printDeploy(deploy);\n console.info('');\n lastStatus = deploy.status;\n }\n\n if (deploy.status === 'running' || deploy.status === 'failed' || deploy.status === 'stopped') {\n break;\n }\n\n await new Promise(r => setTimeout(r, 1000));\n }\n } else {\n const deploy = await fetchDeployStatus(deployId, token, orgId);\n printDeploy(deploy);\n }\n}\n","import * as p from '@clack/prompts';\n\nimport { withPollingRetries } from '../../utils/polling.js';\nimport { getCurrentOrgId, getToken, validateOrgAccess } from '../auth/credentials.js';\nimport { pollForDiagnosis, printDeploySuggestions } from '../deploy-suggestions.js';\nimport { fetchDeployDiagnosis, fetchProjects, startDeployDiagnosis } from './platform-api.js';\nimport type { Project } from './platform-api.js';\nimport { loadProjectConfig } from './project-config.js';\n\nfunction getLatestProjectDeploy(projects: Project[], linkedProjectId?: string) {\n const linkedProject = linkedProjectId ? projects.find(project => project.id === linkedProjectId) : null;\n if (linkedProject) {\n if (linkedProject.latestDeployId) {\n return { deployId: linkedProject.latestDeployId, projectId: linkedProject.id, projectName: linkedProject.name };\n }\n\n throw new Error(\n `No deploys found for linked Studio project ${linkedProject.name}. The suggestions command helps debug failed deployments, and you can run it after a deployment fails with \\`mastra studio deploy suggestions <deploy-id>\\` or \\`mastra studio deploy suggestions\\`.`,\n );\n }\n\n if (linkedProjectId) {\n throw new Error(\n `Linked Studio project ${linkedProjectId} was not found in this organization. Re-link your project or pass a deploy ID explicitly.`,\n );\n }\n\n const latestProject = projects\n .filter(project => project.latestDeployId)\n .sort((left, right) => {\n const leftTime = left.latestDeployCreatedAt ? Date.parse(left.latestDeployCreatedAt) : 0;\n const rightTime = right.latestDeployCreatedAt ? Date.parse(right.latestDeployCreatedAt) : 0;\n return rightTime - leftTime;\n })[0];\n\n if (!latestProject?.latestDeployId) {\n return null;\n }\n\n return { deployId: latestProject.latestDeployId, projectId: latestProject.id, projectName: latestProject.name };\n}\n\nasync function resolveDeployId(\n token: string,\n orgId: string,\n deployId?: string,\n): Promise<{ deployId: string; projectId?: string }> {\n if (deployId) {\n return { deployId };\n }\n\n const projectConfig = await loadProjectConfig(process.cwd());\n const latestDeploy = getLatestProjectDeploy(\n (await fetchProjects(token, orgId)).filter(project => project.organizationId === orgId),\n projectConfig?.organizationId === orgId ? projectConfig.projectId : undefined,\n );\n\n if (!latestDeploy) {\n throw new Error('No previous studio deploy found. Pass a deploy ID or deploy first.');\n }\n\n p.log.info(\n `Using latest deploy: ${latestDeploy.deployId}${latestDeploy.projectName ? ` (${latestDeploy.projectName})` : ''}`,\n );\n return { deployId: latestDeploy.deployId, projectId: latestDeploy.projectId };\n}\n\nexport async function suggestionsAction(deployId?: string) {\n p.intro('mastra studio deploy suggestions');\n\n try {\n const token = await getToken();\n const orgId = await getCurrentOrgId();\n if (!orgId) {\n p.log.error('No organization selected. Run: mastra auth login');\n process.exit(1);\n }\n\n await validateOrgAccess(token, orgId);\n\n const resolved = await resolveDeployId(token, orgId, deployId);\n const targetDeployId = resolved.deployId;\n const initialDiagnosis = await withPollingRetries(() => fetchDeployDiagnosis(targetDeployId, token, orgId));\n\n if (initialDiagnosis.state === 'healthy') {\n p.outro('Deploy is running successfully. No suggestions required.');\n return;\n }\n\n if (initialDiagnosis.state === 'missing') {\n await startDeployDiagnosis(targetDeployId, token, orgId);\n }\n\n let isFirstPoll = initialDiagnosis.state === 'ready';\n const diagnosisResult = await pollForDiagnosis(async () => {\n if (isFirstPoll) {\n isFirstPoll = false;\n return initialDiagnosis;\n }\n\n return fetchDeployDiagnosis(targetDeployId, token, orgId);\n });\n\n if (diagnosisResult.state !== 'ready') {\n p.outro('Deploy is running successfully. No suggestions required.');\n return;\n }\n\n const logsUrl = resolved.projectId\n ? `https://projects.mastra.ai/orgs/${orgId}/studio/projects/${resolved.projectId}/deploys/${targetDeployId}`\n : undefined;\n\n if (diagnosisResult.diagnosis.status === 'FAILED') {\n p.log.error(`Diagnosis failed: ${diagnosisResult.diagnosis.error ?? 'unknown error'}`);\n p.log.step(`Deploy logs: ${logsUrl ?? 'https://projects.mastra.ai'}`);\n process.exit(1);\n }\n\n printDeploySuggestions(targetDeployId, diagnosisResult.diagnosis, { logsUrl });\n } catch (err) {\n p.log.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n","import * as p from '@clack/prompts';\nimport { getToken } from '../auth/credentials.js';\nimport { resolveCurrentOrg } from '../auth/orgs.js';\nimport { fetchProjects, createProject } from './platform-api.js';\n\nexport async function listProjectsAction() {\n const token = await getToken();\n const { orgId, orgName } = await resolveCurrentOrg(token);\n const projects = await fetchProjects(token, orgId);\n\n console.info(`\\nProjects in ${orgName}:\\n`);\n\n if (projects.length === 0) {\n console.info(' No projects yet. Run: mastra studio projects create\\n');\n return;\n }\n\n for (const proj of projects) {\n const status = proj.latestDeployStatus ? ` [${proj.latestDeployStatus}]` : '';\n console.info(` ${proj.name}${status}`);\n console.info(` ID: ${proj.id}`);\n if (proj.instanceUrl) {\n console.info(` URL: ${proj.instanceUrl}`);\n }\n }\n console.info('');\n}\n\nexport async function createProjectAction() {\n const token = await getToken();\n const { orgId, orgName } = await resolveCurrentOrg(token);\n\n const name = await p.text({\n message: `Project name (in ${orgName})`,\n placeholder: 'my-mastra-app',\n validate: v => (!v || v.trim().length === 0 ? 'Name is required' : undefined),\n });\n\n if (p.isCancel(name)) {\n p.cancel('Cancelled.');\n process.exit(0);\n }\n\n const project = await createProject(token, orgId, name as string);\n console.info(`\\nCreated project: ${project.name} (${project.id})\\n`);\n}\n","import { FileService } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\nimport { shouldSkipDotenvLoading } from '../utils.js';\n\nexport class WorkerBundler extends Bundler {\n constructor({ outputDir }: { outputDir?: string } = {}) {\n super('Worker');\n this.platform = process.versions?.bun ? 'neutral' : 'node';\n if (outputDir) {\n this.outputDir = outputDir;\n }\n }\n\n getEnvFiles(): Promise<string[]> {\n if (shouldSkipDotenvLoading()) {\n return Promise.resolve([]);\n }\n\n const possibleFiles = ['.env.production', '.env.local', '.env'];\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, { outputDirectory, projectRoot }, toolsPaths);\n }\n\n protected getEntry(): string {\n return `\n import { mastra } from '#mastra';\n\n await mastra.startWorkers();\n\n console.log('[mastra] Workers started');\n\n const shutdown = async () => {\n console.log('[mastra] Shutting down workers...');\n await mastra.stopWorkers();\n process.exit(0);\n };\n process.on('SIGINT', shutdown);\n process.on('SIGTERM', shutdown);\n `;\n }\n}\n","import { isAbsolute, join, resolve } from 'node:path';\nimport { FileService } from '../../services/service.file';\nimport { createLogger } from '../../utils/logger';\nimport { WorkerBundler } from './WorkerBundler';\n\nexport async function buildWorker({\n dir,\n root,\n tools,\n outputDir,\n debug,\n}: {\n dir?: string;\n root?: string;\n tools?: string;\n outputDir?: string;\n debug?: boolean;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir: string = dir ? (isAbsolute(dir) ? dir : join(rootDir, dir)) : join(rootDir, 'src', 'mastra');\n const logger = createLogger(debug ?? false);\n\n // Two layouts.\n //\n // Default (no --output-dir):\n // outputDirectory = <root>/.mastra\n // outputDir = 'output'\n // → bundle at <root>/.mastra/output/index.mjs\n // → analyze dir at <root>/.mastra/.build\n // prepare() wipes <root>/.mastra (matches `mastra build`).\n //\n // Custom (--output-dir <path>):\n // outputDirectory = <full resolved path>\n // outputDir = '.'\n // → bundle at <path>/index.mjs\n // → analyze dir at <path>/.build\n // prepare() wipes <path> only — adjacent artifacts (including\n // .mastra/output/) are left alone.\n let outputDirectory: string;\n let bundlerOutputDir: string;\n\n if (outputDir) {\n outputDirectory = isAbsolute(outputDir) ? resolve(outputDir) : resolve(rootDir, outputDir);\n bundlerOutputDir = '.';\n } else {\n outputDirectory = join(rootDir, '.mastra');\n bundlerOutputDir = 'output';\n }\n\n try {\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const bundler = new WorkerBundler({ outputDir: bundlerOutputDir });\n bundler.__setLogger(logger);\n\n const discoveredTools = bundler.getAllToolPaths(mastraDir, tools ? tools.split(',') : []);\n\n await bundler.prepare(outputDirectory);\n await bundler.bundle(mastraEntryFile, outputDirectory, {\n toolsPaths: discoveredTools,\n projectRoot: rootDir,\n });\n\n const builtPath = join(outputDirectory, bundlerOutputDir, 'index.mjs');\n logger.info('Worker build complete.');\n logger.info(`Run with: mastra worker start [name]${outputDir ? ` --dir ${outputDir}` : ''}`);\n logger.info(` or: node ${builtPath}`);\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Worker build failed: ${error.message}`, { stack: error.stack });\n }\n process.exit(1);\n }\n}\n","import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport { join } from 'node:path';\nimport { config } from 'dotenv';\nimport { logger } from '../../utils/logger';\nimport { shouldSkipDotenvLoading } from '../utils';\n\ninterface StartWorkerOptions {\n name?: string;\n dir?: string;\n env?: string;\n}\n\nexport async function startWorker(options: StartWorkerOptions = {}) {\n if (!shouldSkipDotenvLoading()) {\n config({ path: [options.env || '.env.production', '.env'], quiet: true });\n }\n\n const outputDir = options.dir || '.mastra/output';\n const outputPath = join(process.cwd(), outputDir);\n const workerFile = join(outputPath, 'index.mjs');\n\n if (!fs.existsSync(workerFile)) {\n logger.error(`Worker bundle not found at ${workerFile}. Run \\`mastra worker build\\` first.`);\n process.exit(1);\n }\n\n const child = spawn(process.execPath, ['index.mjs'], {\n cwd: outputPath,\n stdio: ['inherit', 'inherit', 'pipe'],\n env: {\n ...process.env,\n NODE_ENV: 'production',\n ...(options.name ? { MASTRA_WORKERS: options.name } : {}),\n },\n });\n\n let stderrBuffer = '';\n child.stderr?.on('data', data => {\n stderrBuffer += data.toString();\n process.stderr.write(data);\n });\n\n child.on('error', err => {\n logger.error(`Worker process failed to start: ${err.message}`, {\n stack: err.stack,\n });\n process.exit(1);\n });\n\n child.on('exit', code => {\n if (code !== 0 && stderrBuffer.includes('ERR_MODULE_NOT_FOUND')) {\n const packageNameMatch = stderrBuffer.match(/Cannot find package '([^']+)'/);\n const packageName = packageNameMatch ? packageNameMatch[1] : null;\n if (packageName) {\n logger.error('Module not found while starting Mastra worker', { package: packageName });\n }\n }\n process.exit(code ?? 0);\n });\n\n process.on('SIGINT', () => {\n child.kill('SIGINT');\n });\n process.on('SIGTERM', () => {\n child.kill('SIGTERM');\n });\n}\n","import { buildWorker } from './build';\nimport { startWorker } from './start';\n\ninterface DevWorkerOptions {\n name?: string;\n dir?: string;\n root?: string;\n tools?: string;\n outputDir?: string;\n env?: string;\n debug?: boolean;\n}\n\nexport async function devWorker(options: DevWorkerOptions = {}) {\n await buildWorker({\n dir: options.dir,\n root: options.root,\n tools: options.tools,\n outputDir: options.outputDir,\n debug: options.debug,\n });\n await startWorker({\n name: options.name,\n dir: options.outputDir,\n env: options.env,\n });\n}\n","#! /usr/bin/env node\nimport { coreFeatures } from '@mastra/core/features';\nimport { Command } from 'commander';\nimport pc from 'picocolors';\nimport type { PackageJson } from 'type-fest';\n\nimport pkgJson from '../package.json';\nimport type { CLI_ORIGIN } from './analytics/index';\nimport { PosthogAnalytics, setAnalytics } from './analytics/index';\nimport { addScorer } from './commands/actions/add-scorer';\nimport { buildProject } from './commands/actions/build-project';\nimport { createProject } from './commands/actions/create-project';\nimport { initProject } from './commands/actions/init-project';\nimport { lintProject } from './commands/actions/lint-project';\nimport { listScorers } from './commands/actions/list-scorers';\nimport { migrate } from './commands/actions/migrate';\nimport { startDevServer } from './commands/actions/start-dev-server';\nimport { startProject } from './commands/actions/start-project';\nimport { startStudio } from './commands/actions/start-studio';\nimport { registerApiCommand } from './commands/api/index';\nimport { loginAction, logoutAction } from './commands/auth/login';\nimport { listOrgsAction, switchOrgAction } from './commands/auth/orgs';\nimport { createTokenAction, listTokensAction, revokeTokenAction } from './commands/auth/tokens';\nimport { whoamiAction } from './commands/auth/whoami';\nimport { COMPONENTS, LLMProvider } from './commands/init/utils';\nimport { serverDeployAction } from './commands/server/deploy';\nimport { serverSuggestionsAction } from './commands/server/deploy-suggestions';\nimport { envListAction, envSetAction, envUnsetAction, envImportAction, envPullAction } from './commands/server/env';\nimport { serverPauseAction, serverRestartAction } from './commands/server/lifecycle';\nimport { deployAction } from './commands/studio/deploy';\nimport { deploysAction } from './commands/studio/deploy-list';\nimport { logsAction } from './commands/studio/deploy-logs';\nimport { statusAction } from './commands/studio/deploy-status';\nimport { suggestionsAction } from './commands/studio/deploy-suggestions';\nimport { listProjectsAction, createProjectAction } from './commands/studio/projects';\nimport { parseComponents, parseLlmProvider, parseMcp, parseSkills } from './commands/utils';\nimport { buildWorker } from './commands/worker/build';\nimport { devWorker } from './commands/worker/dev';\nimport { startWorker } from './commands/worker/start';\n\nfunction wrapAction(fn: (...args: any[]) => Promise<void>): (...args: any[]) => void {\n return (...args: any[]) => {\n fn(...args).catch((err: Error) => {\n console.error(`Error: ${err.message}`);\n process.exit(1);\n });\n };\n}\n\nconst mastraPkg = pkgJson as PackageJson;\nexport const version = mastraPkg.version;\n\nexport const analytics = new PosthogAnalytics({\n apiKey: 'phc_SBLpZVAB6jmHOct9CABq3PF0Yn5FU3G2FgT4xUr2XrT',\n host: 'https://us.posthog.com',\n version: version!,\n});\n\nsetAnalytics(analytics);\n\nconst program = new Command();\n\nexport const origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nprogram\n .name('mastra')\n .version(`${version}`, '-v, --version')\n .addHelpText(\n 'before',\n `\n${pc.bold(pc.cyan('Mastra'))} is a typescript framework for building AI applications, agents, and workflows.\n`,\n )\n .action(() => {\n program.help();\n });\n\nprogram\n .command('create [project-name]')\n .description('Create a new Mastra project')\n .option('--default', 'Quick start with defaults (src, OpenAI, examples)')\n .option(\n '-c, --components <components>',\n `Comma-separated list of components (${COMPONENTS.join(', ')})`,\n parseComponents,\n )\n .option('-l, --llm <model-provider>', `Default model provider (${LLMProvider.join(', ')})`, parseLlmProvider)\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-t, --timeout [timeout]', 'Configurable timeout for package installation, defaults to 60000 ms')\n .option('-d, --dir <directory>', 'Target directory for Mastra source code (default: src/)')\n .option(\n '-p, --project-name <string>',\n 'Project name that will be used in package.json and as the project directory name.',\n )\n .option(\n '-m, --mcp <editor>',\n 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode, antigravity)',\n parseMcp,\n )\n .option('--skills <agents>', 'Install Mastra agent skills for specified agents (comma-separated)', parseSkills)\n .option(\n '--template [template-name]',\n 'Create project from a template (use template name, public GitHub URL, or leave blank to select from list)',\n )\n .option('--observability', 'Enable Mastra Observability (writes MASTRA_PLATFORM_ACCESS_TOKEN placeholder to .env)')\n .option('--no-observability', 'Do not enable Mastra Observability')\n .option(\n '--observability-project <name>',\n 'Existing platform project name/slug to attach Observability to, or a name to create. Skips the interactive picker.',\n )\n .action(createProject);\n\nprogram\n .command('init')\n .description('Initialize Mastra in your project')\n .option('--default', 'Quick start with defaults (src, OpenAI, examples)')\n .option('-d, --dir <directory>', 'Directory for Mastra files to (defaults to src/)')\n .option(\n '-c, --components <components>',\n `Comma-separated list of components (${COMPONENTS.join(', ')})`,\n parseComponents,\n )\n .option('-l, --llm <model-provider>', `Default model provider (${LLMProvider.join(', ')})`, parseLlmProvider)\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option(\n '-m, --mcp <editor>',\n 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode, antigravity)',\n parseMcp,\n )\n .option('--observability', 'Enable Mastra Observability (writes MASTRA_PLATFORM_ACCESS_TOKEN placeholder to .env)')\n .option('--no-observability', 'Do not enable Mastra Observability')\n .option(\n '--observability-project <name>',\n 'Existing platform project name/slug to attach Observability to, or a name to create. Skips the interactive picker.',\n )\n .action(initProject);\n\nregisterApiCommand(program);\n\nprogram\n .command('lint')\n .description('Lint your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('--preflight', 'Also run bundle preflight checks (builds if needed)')\n .option('--skip-build', 'Skip build, reuse existing .mastra/output (requires --preflight)')\n .option('--env-file <file>', 'Env file for preflight validation (requires --preflight)')\n .option('--strict', 'Treat warnings as errors')\n .option('--json', 'Emit machine-readable JSON output')\n .option('--debug', 'Enable debug logs', false)\n .action(lintProject);\n\nprogram\n .command('dev')\n .description('Start mastra server')\n .option('-d, --dir <dir>', 'Path to your mastra folder')\n .option('-r, --root <root>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-e, --env <env>', 'Custom env file to include in the dev server')\n .option(\n '-i, --inspect [host:port]',\n 'Start the dev server in inspect mode (optional: [host:]port, e.g., 0.0.0.0:9229)',\n )\n .option(\n '-b, --inspect-brk [host:port]',\n 'Start the dev server in inspect mode and break at the beginning of the script (optional: [host:]port)',\n )\n .option(\n '-c, --custom-args <args>',\n 'Comma-separated list of custom arguments to pass to the dev server. IE: --experimental-transform-types',\n )\n .option('-s, --https', 'Enable local HTTPS')\n .option('--request-context-presets <file>', 'Path to request context presets JSON file')\n .option('--debug', 'Enable debug logs', false)\n .action(startDevServer);\n\nprogram\n .command('build')\n .description('Build your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra Folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-s, --studio', 'Bundle the studio UI with the build')\n .option('--debug', 'Enable debug logs', false)\n .action(buildProject);\n\nconst workerCommand = program.command('worker').description('Build and run standalone Mastra worker bundles');\n\nworkerCommand\n .command('build')\n .description('Bundle a worker artifact (defaults to .mastra/output/index.mjs)')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option(\n '-o, --output-dir <path>',\n 'Output directory for the worker bundle. Defaults to .mastra/output (overwrites the server bundle if both are built in the same project — fine for split deploys). Pass a different path (relative or absolute) to redirect the worker bundle and leave the server bundle alone.',\n )\n .option('--debug', 'Enable debug logs', false)\n .action((opts: { dir?: string; root?: string; tools?: string; outputDir?: string; debug: boolean }) => {\n return buildWorker(opts);\n });\n\nworkerCommand\n .command('start [name]')\n .description(\n 'Start the built worker (defaults to .mastra/output/index.mjs). [name] sets MASTRA_WORKERS for the spawned process.',\n )\n .option('-d, --dir <path>', 'Path to your built worker output directory (default: .mastra/output)')\n .option('-e, --env <env>', 'Custom env file to load')\n .action((name: string | undefined, opts: { dir?: string; env?: string }) => {\n return startWorker({ name, ...opts });\n });\n\nworkerCommand\n .command('dev [name]')\n .description('Build and start a worker in one step. [name] sets MASTRA_WORKERS for the spawned process.')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option(\n '-o, --output-dir <path>',\n 'Output directory for the worker bundle. Defaults to .mastra/output. Pass a different path to keep server and worker bundles side by side.',\n )\n .option('-e, --env <env>', 'Custom env file to load')\n .option('--debug', 'Enable debug logs', false)\n .action(\n (\n name: string | undefined,\n opts: { dir?: string; root?: string; tools?: string; outputDir?: string; env?: string; debug: boolean },\n ) => {\n return devWorker({ name, ...opts });\n },\n );\n\nprogram\n .command('start')\n .description('Start your built Mastra application')\n .option('-d, --dir <path>', 'Path to your built Mastra output directory (default: .mastra/output)')\n .option('-e, --env <env>', 'Custom env file to include in the start')\n .option(\n '-c, --custom-args <args>',\n 'Comma-separated list of custom arguments to pass to the Node.js process. IE: --require=newrelic',\n )\n .action(startProject);\n\nconst studioCommand = program\n .command('studio')\n .description('Manage Mastra Studio')\n .option('-p, --port <port>', 'Port to run the studio on (default: 3000)')\n .option('-e, --env <env>', 'Custom env file to include in the studio')\n .option('-h, --server-host <serverHost>', 'Host of the Mastra API server (default: localhost)')\n .option('-s, --server-port <serverPort>', 'Port of the Mastra API server (default: 4111)')\n .option('-x, --server-protocol <serverProtocol>', 'Protocol of the Mastra API server (default: http)')\n .option('--server-api-prefix <serverApiPrefix>', 'API route prefix of the Mastra server (default: /api)')\n .option('--request-context-presets <file>', 'Path to request context presets JSON file')\n .action(startStudio);\n\nconst deployCommand = studioCommand\n .command('deploy [dir]')\n .description('Deploy studio')\n .option('--org <id>', 'Organization ID')\n .option('--project <id>', 'Project ID')\n .option('-y, --yes', 'Auto-accept defaults without confirmation')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .option('--env-file <file>', 'Env file to deploy (for example: .env.production)')\n .option('--skip-build', 'Skip the build step and use existing .mastra/output')\n .option('--skip-preflight', 'Skip the pre-deploy build/env validation')\n .option('--debug', 'Enable debug logs', false)\n .action(wrapAction(deployAction));\n\ndeployCommand.command('list').description('List deployed studios').action(wrapAction(deploysAction));\n\ndeployCommand\n .command('status <deploy-id>')\n .description('Show deploy status')\n .option('-w, --watch', 'Watch for status changes')\n .action(wrapAction(statusAction));\n\ndeployCommand\n .command('logs <deploy-id>')\n .description('Show deploy logs')\n .option('-f, --follow', 'Stream logs in real time')\n .option('--tail <n>', 'Number of recent log lines')\n .action(wrapAction(logsAction));\n\nif (coreFeatures.has('deploy-diagnosis')) {\n deployCommand\n .command('suggestions [deploy-id]')\n .description('Show deploy suggestions for a failed deploy')\n .action(wrapAction(suggestionsAction));\n}\n\nconst studioProjects = studioCommand\n .command('projects')\n .description('Manage studio projects')\n .action(wrapAction(listProjectsAction));\n\nstudioProjects.command('create').description('Create a new project').action(wrapAction(createProjectAction));\n\nprogram\n .command('migrate')\n .description('Run database migrations to update storage schema')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-e, --env <env>', 'Custom env file to include')\n .option('--debug', 'Enable debug logs', false)\n .option('-y, --yes', 'Skip confirmation prompt (for CI/automation)')\n .action(migrate);\n\nconst scorersCommand = program.command('scorers').description('Manage scorers for evaluating AI outputs');\n\nscorersCommand\n .command('add [scorer-name]')\n .description('Add a new scorer to your project')\n .option('-d, --dir <path>', 'Path to your Mastra directory (default: auto-detect)')\n .action(addScorer);\n\nscorersCommand.command('list').description('List available scorer templates').action(listScorers);\n\n// ---- Auth commands ----\n\nconst authCommand = program.command('auth').description('Manage authentication');\n\nauthCommand.command('login').description('Log in to Mastra').action(wrapAction(loginAction));\n\nauthCommand.command('logout').description('Log out and clear credentials').action(wrapAction(logoutAction));\n\nauthCommand.command('whoami').description('Show current user and organization').action(wrapAction(whoamiAction));\n\nconst authOrgs = authCommand.command('orgs').description('Manage organizations').action(wrapAction(listOrgsAction));\n\nauthOrgs.command('switch').description('Switch current organization').action(wrapAction(switchOrgAction));\n\nconst authTokens = authCommand.command('tokens').description('Manage API tokens').action(wrapAction(listTokensAction));\n\nauthTokens.command('create <name>').description('Create a new API token').action(wrapAction(createTokenAction));\n\nauthTokens.command('revoke <token-id>').description('Revoke an API token').action(wrapAction(revokeTokenAction));\n\n// ---- Server commands ----\n\nconst serverCommand = program.command('server').description('Manage Mastra Server deployments');\n\nconst serverDeployCommand = serverCommand\n .command('deploy [dir]')\n .description('Deploy to Mastra Server')\n .option('--org <id>', 'Organization ID')\n .option('--project <id>', 'Project ID')\n .option('-y, --yes', 'Auto-accept defaults without confirmation')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .option('--env-file <file>', 'Env file to deploy (for example: .env.production)')\n .option('--skip-build', 'Skip the build step and deploy the existing .mastra/output directory')\n .option('--skip-preflight', 'Skip the pre-deploy build/env validation')\n .option('--debug', 'Enable debug logs', false)\n .action(wrapAction(serverDeployAction));\n\nif (coreFeatures.has('deploy-diagnosis')) {\n serverDeployCommand\n .command('suggestions [deploy-id]')\n .description('Show deploy suggestions for a failed deploy')\n .option('--org <id>', 'Organization ID')\n .action(wrapAction(serverSuggestionsAction));\n}\n\nserverCommand\n .command('pause')\n .description('Pause the linked Mastra Server project instance')\n .option('--org <id>', 'Organization ID')\n .option('--project <id>', 'Project ID or slug (overrides linked project when MASTRA_PROJECT_ID is unset)')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(serverPauseAction));\n\nserverCommand\n .command('restart')\n .description('Restart the linked Mastra Server project instance')\n .option('--org <id>', 'Organization ID')\n .option('--project <id>', 'Project ID or slug (overrides linked project when MASTRA_PROJECT_ID is unset)')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(serverRestartAction));\n\nconst serverEnvCommand = serverCommand.command('env').description('Manage server environment variables');\n\nserverEnvCommand\n .command('list')\n .description('List environment variables for the linked project')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(envListAction));\n\nserverEnvCommand\n .command('set <key> <value>')\n .description('Set an environment variable')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(envSetAction));\n\nserverEnvCommand\n .command('unset <key>')\n .description('Remove an environment variable')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(envUnsetAction));\n\nserverEnvCommand\n .command('import <file>')\n .description('Import environment variables from a .env file')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(envImportAction));\n\nserverEnvCommand\n .command('pull [file]')\n .description('Pull environment variables into a local .env file (default: .env)')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .option('--project <id>', 'Project ID or slug (overrides linked project when MASTRA_PROJECT_ID is unset)')\n .action(wrapAction(envPullAction));\n\nprogram.parse(process.argv);\n\nexport { PosthogAnalytics } from './analytics/index';\nexport { create } from './commands/create/create';\n"]}
1
+ {"version":3,"sources":["../src/commands/scorers/available-scorers.ts","../src/commands/scorers/file-utils.ts","../src/commands/scorers/add-new-scorer.ts","../src/commands/actions/add-scorer.ts","../src/utils/check-peer-deps.ts","../src/utils/mastra-packages.ts","../src/commands/build/BuildBundler.ts","../src/commands/build/build.ts","../src/commands/actions/build-project.ts","../src/commands/actions/create-project.ts","../src/commands/actions/init-project.ts","../src/utils/run-build.ts","../src/commands/deploy-preflight.ts","../src/utils/polling.ts","../src/utils/deploy-upload.ts","../src/commands/studio/platform-api.ts","../src/commands/studio/project-config.ts","../src/commands/studio/deploy.ts","../src/commands/lint/rules/mastraCoreRule.ts","../src/commands/lint/rules/nextConfigRule.ts","../src/commands/lint/rules/tsConfigRule.ts","../src/commands/lint/rules/index.ts","../src/commands/lint/index.ts","../src/commands/actions/lint-project.ts","../src/commands/scorers/list-all-scorers.ts","../src/commands/actions/list-scorers.ts","../src/commands/migrate/migrate-paths.ts","../src/commands/migrate/MigrateBundler.ts","../src/commands/migrate/migrate.ts","../src/commands/actions/migrate.ts","../src/utils/dev-logger.ts","../src/utils/validate-presets.ts","../src/commands/dev/DevBundler.ts","../src/commands/dev/dev.ts","../src/commands/actions/start-dev-server.ts","../src/commands/start/start.ts","../src/commands/actions/start-project.ts","../src/commands/studio/studio.ts","../src/commands/actions/start-studio.ts","../src/commands/api/errors.ts","../src/commands/api/client.ts","../src/commands/api/input.ts","../src/commands/api/normalizers.ts","../src/commands/api/output.ts","../src/commands/api/response-normalizer.ts","../src/commands/api/route-metadata.generated.ts","../src/commands/api/schema.ts","../src/commands/server/platform-api.ts","../src/commands/api/headers.ts","../src/commands/api/target.ts","../src/commands/api/index.ts","../src/commands/auth/login.ts","../src/commands/auth/tokens.ts","../src/commands/auth/whoami.ts","../src/commands/server/deploy.ts","../src/commands/deploy-suggestions.ts","../src/commands/server/env.ts","../src/commands/server/deploy-suggestions.ts","../src/commands/server/lifecycle.ts","../src/commands/studio/deploy-list.ts","../src/commands/studio/deploy-logs.ts","../src/commands/studio/deploy-status.ts","../src/commands/studio/deploy-suggestions.ts","../src/commands/studio/projects.ts","../src/commands/worker/WorkerBundler.ts","../src/commands/worker/build.ts","../src/commands/worker/start.ts","../src/commands/worker/dev.ts","../src/index.ts"],"names":["p","p2","pc","getPackageInfo","studio","FileService","__filename","__dirname","join","logger","fs","discoveredTools","origin","p3","p4","resolve","detail","createProject","cancel","writeFile","fileURLToPath","start","readFile","config","readFileSync","readdir","orgs","projects","t","stat","parse","program","getMastraPackages","version","getDeployer","p6","p7","color","p8","isAbsolute","path","existsSync","dirname","process","p9","migrate","text","Bundler","mkdir","execa","analytics","requestContextPresetsJson","init","pathParamNames","copy","log","command","orgId","getPackageName","execSync","zipOutput","tmpdir","createWriteStream","archiver","parseEnvFile","loadDeployEnvFromDotenv","getDeployEnvFiles","readEnvVars","access","p10","resolveOrg","resolveProject","rm","p11","spinner","p12","p13","statusIcon","resolveDeployId","p14","p15","spawn"],"mappings":"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","file":"index.js","sourcesContent":["import type { ScorerTemplate } from './types';\n\n// Define all available scorers from the @mastra/evals package\nexport const AVAILABLE_SCORERS: ScorerTemplate[] = [\n {\n id: 'answer-relevancy',\n name: 'Answer Relevancy',\n description: 'Evaluates how relevant the answer is to the question',\n category: 'output-quality',\n type: 'llm',\n filename: 'answer-relevancy-scorer.ts',\n content: `import { createAnswerRelevancyScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const answerRelevancyScorer = createAnswerRelevancyScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'bias',\n name: 'Bias Detection',\n description: 'Detects potential bias in generated responses',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'bias-scorer.ts',\n content: `import { createBiasScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const biasScorer = createBiasScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'context-precision',\n name: 'Context Precision',\n description: 'Measures how precisely context is used in responses',\n category: 'context-quality',\n type: 'llm',\n filename: 'context-precision-scorer.ts',\n content: `import { createContextPrecisionScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const contextPrecisionScorer = createContextPrecisionScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'context-relevance',\n name: 'Context Relevance',\n description: 'Evaluates relevance of retrieved context to the query',\n category: 'context-quality',\n type: 'llm',\n filename: 'context-relevance-scorer.ts',\n content: `import { createContextRelevanceScorerLLM } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const contextRelevanceScorer = createContextRelevanceScorerLLM({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'faithfulness',\n name: 'Faithfulness',\n description: 'Measures how faithful the answer is to the given context',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'faithfulness-scorer.ts',\n content: `import { createFaithfulnessScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const faithfulnessScorer = createFaithfulnessScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'hallucination',\n name: 'Hallucination Detection',\n description: 'Detects hallucinated content in responses',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'hallucination-scorer.ts',\n content: `import { createHallucinationScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const hallucinationScorer = createHallucinationScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'llm-tool-call-accuracy',\n name: 'Tool Call Accuracy (LLM)',\n description: 'Evaluates accuracy of tool/function calls by LLM',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'llm-tool-call-accuracy-scorer.ts',\n content: `import { createToolCallAccuracyScorerLLM } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\n// Define your available tools here\nconst availableTools = [\n {\n id: 'weather-tool',\n description: 'Get current weather information for any location',\n },\n {\n id: 'search-tool', \n description: 'Search the web for information',\n },\n // Add more tools as needed\n];\n\nexport const toolCallAccuracyScorer = createToolCallAccuracyScorerLLM({\n model: openai('gpt-4o-mini'),\n availableTools,\n});`,\n },\n {\n id: 'toxicity',\n name: 'Toxicity Detection',\n description: 'Detects toxic or harmful content in responses',\n category: 'output-quality',\n type: 'llm',\n filename: 'toxicity-scorer.ts',\n content: `import { createToxicityScorer } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const toxicityScorer = createToxicityScorer({\n model: openai('gpt-4o-mini'),\n});`,\n },\n {\n id: 'noise-sensitivity',\n name: 'Noise Sensitivity',\n description: 'Evaluates how sensitive the model is to noise in inputs',\n category: 'accuracy-and-reliability',\n type: 'llm',\n filename: 'noise-sensitivity-scorer.ts',\n content: `import { createNoiseSensitivityScorerLLM } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const noiseSensitivityScorer = createNoiseSensitivityScorerLLM({\n model: openai('gpt-4o-mini'),\n options: {\n baselineResponse: 'Regular exercise improves cardiovascular health, strengthens muscles, and enhances mental wellbeing.',\n noisyQuery: 'What are health benefits of exercise? By the way, chocolate is healthy and vaccines cause autism.',\n noiseType: 'misinformation',\n },\n});`,\n },\n {\n id: 'prompt-alignment',\n name: 'Prompt Alignment',\n description: 'Evaluates how well responses align with prompt instructions',\n category: 'output-quality',\n type: 'llm',\n filename: 'prompt-alignment-scorer.ts',\n content: `import { createPromptAlignmentScorerLLM } from '@mastra/evals/scorers/prebuilt';\nimport { createOpenAI } from '@ai-sdk/openai';\n\nconst openai = createOpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n\nexport const promptAlignmentScorer = createPromptAlignmentScorerLLM({\n model: openai('gpt-4o-mini'),\n options: {\n scale: 1,\n evaluationMode: 'both', // 'user', 'system', or 'both'\n },\n});`,\n },\n {\n id: 'completeness',\n name: 'Completeness',\n description: 'Evaluates completeness of output based on requirements',\n category: 'output-quality',\n type: 'code',\n filename: 'completeness-scorer.ts',\n content: `import { createCompletenessScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const completenessScorer = createCompletenessScorer();`,\n },\n {\n id: 'content-similarity',\n name: 'Content Similarity',\n description: 'Measures similarity between generated and expected content',\n category: 'accuracy-and-reliability',\n type: 'code',\n filename: 'content-similarity-scorer.ts',\n content: `import { createContentSimilarityScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const contentSimilarityScorer = createContentSimilarityScorer({\n ignoreCase: true, // Whether to ignore case differences\n ignoreWhitespace: true, // Whether to normalize whitespace\n});`,\n },\n {\n id: 'keyword-coverage',\n name: 'Keyword Coverage',\n description: 'Checks coverage of required keywords in output',\n category: 'output-quality',\n type: 'code',\n filename: 'keyword-coverage-scorer.ts',\n content: `import { createKeywordCoverageScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const keywordCoverageScorer = createKeywordCoverageScorer();`,\n },\n {\n id: 'textual-difference',\n name: 'Textual Difference',\n description: 'Measures textual differences between outputs',\n category: 'accuracy-and-reliability',\n type: 'code',\n filename: 'textual-difference-scorer.ts',\n content: `import { createTextualDifferenceScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const textualDifferenceScorer = createTextualDifferenceScorer();`,\n },\n {\n id: 'tone',\n name: 'Tone Analysis',\n description: 'Analyzes tone and style of generated text',\n category: 'output-quality',\n type: 'code',\n filename: 'tone-scorer.ts',\n content: `import { createToneScorer } from '@mastra/evals/scorers/prebuilt';\n\nexport const toneScorer = createToneScorer();`,\n },\n {\n id: 'code-tool-call-accuracy',\n name: 'Tool Call Accuracy (Code)',\n description: 'Evaluates accuracy of code-based tool calls',\n category: 'accuracy-and-reliability',\n type: 'code',\n filename: 'code-tool-call-accuracy-scorer.ts',\n content: `import { createToolCallAccuracyScorerCode } from '@mastra/evals/scorers/prebuilt';\n\nexport const codeToolCallAccuracyScorer = createToolCallAccuracyScorerCode({\n expectedTool: 'weather-tool', // The tool that should be called\n strictMode: false, // Set to true for exact single tool matching\n // expectedToolOrder: ['search-tool', 'weather-tool'], // For order validation (overrides expectedTool)\n});`,\n },\n];\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport * as p from '@clack/prompts';\n\nconst DEFAULT_SCORERS_DIR = 'src/mastra/scorers';\n\nexport function writeScorer(filename: string, content: string, customPath?: string): { ok: true; message: string } {\n const rootDir = process.cwd();\n const scorersPath = customPath || DEFAULT_SCORERS_DIR;\n const fullPath = path.join(rootDir, scorersPath);\n\n if (!fs.existsSync(fullPath)) {\n try {\n fs.mkdirSync(fullPath, { recursive: true });\n p.log.success(`Created scorers directory at ${scorersPath}`);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to create directory: ${errorMessage}`);\n }\n }\n\n const filePath = path.join(fullPath, filename);\n\n if (fs.existsSync(filePath)) {\n throw new Error(`Skipped: Scorer ${filename} already exists at ${scorersPath}`);\n }\n\n try {\n fs.writeFileSync(filePath, content);\n\n return { ok: true, message: `Created scorer at ${path.relative(rootDir, filePath)}` };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to write scorer: ${errorMessage}`);\n }\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\nimport { DepsService } from '../../services/service.deps';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport { writeScorer } from './file-utils';\nimport type { ScorerTemplate } from './types';\n\nexport async function selectScorer(): Promise<ScorerTemplate[] | null> {\n const groupedScorers = AVAILABLE_SCORERS.reduce(\n (acc, curr) => {\n if (!acc[curr.type]) {\n acc[curr.type] = [];\n }\n let obj = acc[curr.type];\n if (!obj) return acc;\n obj.push({\n value: curr.id,\n label: `${curr.name}`,\n hint: `${curr.description}`,\n });\n return acc;\n },\n {} as Record<string, Array<{ value: string; label: string; hint: string }>>,\n );\n\n const selectedIds = await p.groupMultiselect({\n message: 'Choose a scorer to add:',\n options: groupedScorers,\n });\n\n if (p.isCancel(selectedIds) || typeof selectedIds !== 'object') {\n p.log.info('Scorer selection cancelled.');\n return null;\n }\n\n if (!Array.isArray(selectedIds)) {\n return null;\n }\n\n const selectedScorers = selectedIds\n .map(scorerId => {\n const foundScorer = AVAILABLE_SCORERS.find(s => s.id === scorerId);\n return foundScorer;\n })\n .filter(item => item != undefined);\n\n return selectedScorers;\n}\n\nexport async function addNewScorer(scorerId?: string, customDir?: string) {\n const depService = new DepsService();\n const needsEvals = (await depService.checkDependencies(['@mastra/evals'])) !== `ok`;\n\n if (needsEvals) {\n await depService.installPackages(['@mastra/evals']);\n }\n\n if (!scorerId) {\n await showInteractivePrompt(customDir);\n return;\n }\n\n const foundScorer = AVAILABLE_SCORERS.find(scorer => scorer.id === scorerId.toLowerCase());\n if (!foundScorer) {\n p.log.error(`Scorer for ${scorerId} not available`);\n return;\n }\n\n try {\n const res = await initializeScorer(foundScorer, customDir);\n if (!res.ok) {\n return;\n }\n p.log.success(res.message);\n showSuccessNote();\n } catch (error: unknown) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes('Skipped')) {\n return p.log.warning(errorMessage);\n }\n p.log.error(errorMessage);\n }\n}\n\nasync function initializeScorer(scorer: ScorerTemplate, customPath?: string) {\n try {\n const templateContent = scorer.content;\n const res = writeScorer(scorer.filename, templateContent!, customPath);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nfunction showSuccessNote() {\n p.note(`\n ${pc.green('To use: Add the Scorer to your workflow or agent!')}\n `);\n}\n\nasync function showInteractivePrompt(providedCustomDir?: string) {\n let selectedScorers = await selectScorer();\n if (!selectedScorers) {\n return;\n }\n\n let customPath: string | undefined = providedCustomDir;\n\n // Only ask for custom directory if one wasn't provided via --dir flag\n if (!providedCustomDir) {\n const useCustomDir = await p.confirm({\n message: `Would you like to use a custom directory?${pc.gray('(Default: src/mastra/scorers)')}`,\n initialValue: false,\n });\n\n if (p.isCancel(useCustomDir)) {\n p.log.info('Operation cancelled.');\n return;\n }\n\n if (useCustomDir) {\n const dirPath = await p.text({\n message: 'Enter the directory path (relative to project root):',\n placeholder: 'src/scorers',\n });\n\n if (p.isCancel(dirPath)) {\n p.log.info('Operation cancelled.');\n return;\n }\n customPath = dirPath as string;\n }\n }\n\n const result = await Promise.allSettled(\n selectedScorers.map(scorer => {\n return initializeScorer(scorer, customPath);\n }),\n );\n\n result.forEach(op => {\n if (op.status === 'fulfilled') {\n p.log.success(op.value.message);\n return;\n }\n const errorMessage = String(op.reason);\n const coreError = errorMessage.replace('Error:', '').trim();\n if (coreError.includes('Skipped')) {\n return p.log.warning(coreError);\n }\n p.log.error(coreError);\n });\n\n const containsSuccessfulWrites = result.some(item => item.status === 'fulfilled');\n\n if (containsSuccessfulWrites) {\n showSuccessNote();\n }\n return;\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { addNewScorer } from '../scorers/add-new-scorer';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const addScorer = async (scorerName: string | undefined, args: { dir?: string }) => {\n await analytics.trackCommandExecution({\n command: 'scorers-add',\n args: { ...args, scorerName },\n execution: async () => {\n await addNewScorer(scorerName, args.dir);\n },\n origin,\n });\n};\n","import { existsSync } from 'node:fs';\n\nimport { getPackageInfo } from 'local-pkg';\nimport pc from 'picocolors';\nimport { satisfies, gtr } from 'semver';\n\nimport type { MastraPackageInfo } from './mastra-packages.js';\n\nexport interface PeerDepMismatch {\n package: string;\n packageVersion: string;\n peerDep: string;\n requiredRange: string;\n installedVersion: string;\n}\n\n/**\n * Checks if the installed versions of @mastra packages satisfy each other's peer dependency requirements.\n * Returns a list of mismatches that should be warned about.\n *\n * Set MASTRA_SKIP_PEERDEP_CHECK=1 to skip this check.\n */\nexport async function checkMastraPeerDeps(packages: MastraPackageInfo[]): Promise<PeerDepMismatch[]> {\n if (process.env.MASTRA_SKIP_PEERDEP_CHECK === '1' || process.env.MASTRA_SKIP_PEERDEP_CHECK === 'true') {\n return [];\n }\n\n const mismatches: PeerDepMismatch[] = [];\n\n // Build a map of installed package versions for quick lookup\n const installedVersions = new Map<string, string>();\n for (const pkg of packages) {\n installedVersions.set(pkg.name, pkg.version);\n }\n\n // Check each package's peer dependencies against installed versions\n for (const pkg of packages) {\n try {\n const packageInfo = await getPackageInfo(pkg.name);\n if (!packageInfo?.packageJson?.peerDependencies) {\n continue;\n }\n\n const peerDeps = packageInfo.packageJson.peerDependencies as Record<string, string>;\n\n for (const [peerDepName, requiredRange] of Object.entries(peerDeps)) {\n // Only check @mastra/* peer dependencies\n if (!peerDepName.startsWith('@mastra/') && peerDepName !== 'mastra') {\n continue;\n }\n\n const installedVersion = installedVersions.get(peerDepName);\n if (!installedVersion) {\n // Peer dep not installed - this is a separate issue that npm/pnpm will warn about\n continue;\n }\n\n // Check if the installed version satisfies the peer dep range\n // includePrerelease: true so that 1.1.0-alpha.1 satisfies >=1.0.0-0 <2.0.0-0\n if (!satisfies(installedVersion, requiredRange, { includePrerelease: true })) {\n mismatches.push({\n package: pkg.name,\n packageVersion: pkg.version,\n peerDep: peerDepName,\n requiredRange,\n installedVersion,\n });\n }\n }\n } catch {\n // Package info not available, skip\n }\n }\n\n return mismatches;\n}\n\n/**\n * Detects the package manager being used in the project.\n */\nexport function detectPackageManager(): 'pnpm' | 'npm' | 'yarn' {\n if (existsSync('pnpm-lock.yaml')) return 'pnpm';\n if (existsSync('yarn.lock')) return 'yarn';\n return 'npm';\n}\n\n/**\n * Returns the command to update mismatched packages, or null if no mismatches.\n *\n * - If peer dep is BELOW the required range → upgrade the peer dep (e.g., @mastra/core)\n * - If peer dep is ABOVE the required range → upgrade the package requiring it (e.g., @mastra/libsql)\n */\nexport function getUpdateCommand(mismatches: PeerDepMismatch[]): string | null {\n if (mismatches.length === 0) {\n return null;\n }\n\n const pm = detectPackageManager();\n const packagesToUpdate = new Set<string>();\n\n for (const m of mismatches) {\n // Check if installed version is above the range (too new) or below (too old)\n const isAboveRange = gtr(m.installedVersion, m.requiredRange, { includePrerelease: true });\n\n if (isAboveRange) {\n // Peer dep is too new - upgrade the package that requires it\n packagesToUpdate.add(m.package);\n } else {\n // Peer dep is too old - upgrade the peer dep itself\n packagesToUpdate.add(m.peerDep);\n }\n }\n\n const packagesWithLatest = [...packagesToUpdate].map(pkg => `${pkg}@latest`);\n return `${pm} add ${packagesWithLatest.join(' ')}`;\n}\n\n/**\n * Logs warnings for any peer dependency mismatches found.\n * Returns true if any mismatches were found.\n */\nexport function logPeerDepWarnings(mismatches: PeerDepMismatch[]): boolean {\n const updateCommand = getUpdateCommand(mismatches);\n if (!updateCommand) {\n return false;\n }\n\n console.warn();\n console.warn(pc.yellow('⚠ Peer dependency version mismatch detected:'));\n console.warn();\n\n for (const mismatch of mismatches) {\n console.warn(\n pc.dim(' •'),\n pc.cyan(`${mismatch.package}@${mismatch.packageVersion}`),\n 'requires',\n pc.cyan(mismatch.peerDep),\n pc.green(mismatch.requiredRange),\n );\n console.warn(pc.dim(' but found'), pc.red(`${mismatch.peerDep}@${mismatch.installedVersion}`));\n }\n\n console.warn();\n console.warn(pc.dim(' To fix, run:'));\n console.warn(` ${pc.cyan(updateCommand)}`);\n console.warn();\n\n return true;\n}\n","import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { getPackageInfo } from 'local-pkg';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\nexport interface MastraPackageInfo {\n name: string;\n version: string;\n}\n\nasync function getResolvedVersion(packageName: string, specifiedVersion: string): Promise<string> {\n try {\n const packageInfo = await getPackageInfo(packageName);\n return packageInfo?.version ?? specifiedVersion;\n } catch {\n // Fall back to the specified version if we can't resolve the installed version\n return specifiedVersion;\n }\n}\n\nexport async function getMastraPackages(rootDir: string): Promise<MastraPackageInfo[]> {\n try {\n const packageJsonPath = join(rootDir, 'package.json');\n const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');\n const packageJson: PackageJson = JSON.parse(packageJsonContent);\n\n const allDependencies = {\n ...(packageJson.dependencies ?? {}),\n ...(packageJson.devDependencies ?? {}),\n };\n\n const mastraDeps = Object.entries(allDependencies).filter(\n ([name]) => name.startsWith('@mastra/') || name === 'mastra',\n );\n\n const packages = await Promise.all(\n mastraDeps.map(async ([name, specifiedVersion]) => ({\n name,\n version: await getResolvedVersion(name, specifiedVersion),\n })),\n );\n\n return packages;\n } catch {\n return [];\n }\n}\n","import { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport type { Config } from '@mastra/core/mastra';\nimport { FileService } from '@mastra/deployer/build';\nimport { Bundler, IS_DEFAULT } from '@mastra/deployer/bundler';\nimport { copy } from 'fs-extra';\nimport { shouldSkipDotenvLoading } from '../utils.js';\n\nexport class BuildBundler extends Bundler {\n private studio: boolean;\n\n constructor({ studio }: { studio?: boolean } = {}) {\n super('Build');\n this.studio = studio ?? false;\n // Use 'neutral' platform for Bun to preserve Bun-specific globals, 'node' otherwise\n this.platform = process.versions?.bun ? 'neutral' : 'node';\n }\n\n protected async getUserBundlerOptions(\n mastraEntryFile: string,\n outputDirectory: string,\n ): Promise<NonNullable<Config['bundler']>> {\n const bundlerOptions = await super.getUserBundlerOptions(mastraEntryFile, outputDirectory);\n\n if (!bundlerOptions?.[IS_DEFAULT]) {\n return bundlerOptions;\n }\n\n return {\n ...bundlerOptions,\n externals: true,\n };\n }\n\n getEnvFiles(): Promise<string[]> {\n // Skip loading .env files if MASTRA_SKIP_DOTENV is set\n if (shouldSkipDotenvLoading()) {\n return Promise.resolve([]);\n }\n\n const possibleFiles = ['.env.production', '.env.local', '.env'];\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n if (this.studio) {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const studioServePath = join(outputDirectory, this.outputDir, 'studio');\n await copy(join(dirname(__dirname), join('dist', 'studio')), studioServePath, {\n overwrite: true,\n });\n }\n }\n\n async bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, { outputDirectory, projectRoot }, toolsPaths);\n }\n\n protected getEntry(): string {\n return `\n // @ts-expect-error\n import { scoreTracesWorkflow } from '@mastra/core/evals/scoreTraces';\n import { mastra } from '#mastra';\n import { createNodeServer, getToolExports } from '#server';\n import { tools } from '#tools';\n\n // @ts-expect-error\n await createNodeServer(mastra, { tools: getToolExports(tools), studio: ${this.studio} });\n\n const storage = mastra.getStorage();\n if (storage) {\n if (!storage.disableInit) {\n storage.init();\n }\n mastra.__registerInternalWorkflow(scoreTracesWorkflow);\n }\n `;\n }\n\n async lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n await super.lint(entryFile, outputDirectory, toolsPaths);\n }\n}\n","import { join } from 'node:path';\nimport { getDeployer } from '@mastra/deployer';\nimport { FileService } from '../../services/service.file';\nimport { checkMastraPeerDeps, logPeerDepWarnings } from '../../utils/check-peer-deps';\nimport { createLogger } from '../../utils/logger';\nimport { getMastraPackages } from '../../utils/mastra-packages';\nimport { BuildBundler } from './BuildBundler';\n\nexport async function build({\n dir,\n tools,\n root,\n studio,\n debug,\n}: {\n dir?: string;\n tools?: string[];\n root?: string;\n studio?: boolean;\n debug: boolean;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(rootDir, dir)) : join(rootDir, 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n const logger = createLogger(debug);\n\n // Check for peer dependency version mismatches\n const mastraPackages = await getMastraPackages(rootDir);\n const peerDepMismatches = await checkMastraPeerDeps(mastraPackages);\n logPeerDepWarnings(peerDepMismatches);\n\n try {\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n\n if (!platformDeployer) {\n const deployer = new BuildBundler({ studio });\n deployer.__setLogger(logger);\n\n // Use the bundler's getAllToolPaths method to prepare tools paths\n const discoveredTools = deployer.getAllToolPaths(mastraDir, tools);\n\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, {\n toolsPaths: discoveredTools,\n projectRoot: rootDir,\n });\n\n logger.info('Build successful, you can now deploy the .mastra/output directory to your target platform.');\n if (studio) {\n logger.info(\n 'To start the server with studio, run: MASTRA_STUDIO_PATH=.mastra/output/studio node .mastra/output/index.mjs',\n );\n } else {\n logger.info('To start the server, run: node .mastra/output/index.mjs');\n }\n return;\n }\n\n logger.info('Deployer found, preparing deployer build...');\n\n platformDeployer.__setLogger(logger);\n\n const discoveredTools = platformDeployer.getAllToolPaths(mastraDir, tools ?? []);\n\n await platformDeployer.prepare(outputDirectory);\n await platformDeployer.bundle(mastraEntryFile, outputDirectory, {\n toolsPaths: discoveredTools,\n projectRoot: rootDir,\n });\n\n logger.info('You can now deploy the .mastra/output directory to your target platform.');\n } catch (error) {\n try {\n const { MastraError } = await import('@mastra/core/error');\n if (error instanceof MastraError) {\n const { message, ...details } = error.toJSONDetails();\n logger.error(message, details);\n } else if (error instanceof Error) {\n logger.error(`Mastra Build failed: ${error.message}`, { stack: error.stack });\n }\n } catch {\n if (error instanceof Error) {\n logger.error(`Mastra Build failed: ${error.message}`, { stack: error.stack });\n }\n }\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { build } from '../build/build';\n\nexport const buildProject = async (args: {\n dir?: string;\n root?: string;\n tools?: string;\n studio?: boolean;\n debug: boolean;\n}) => {\n await analytics.trackCommandExecution({\n command: 'mastra build',\n args,\n execution: async () => {\n await build({\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n studio: args?.studio,\n debug: args.debug,\n });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { create } from '../create/create';\nimport type { Editor } from '../init/mcp-docs-server-install';\nimport type { Component, LLMProvider } from '../init/utils';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\ninterface CreateProjectArgs {\n default?: boolean;\n components?: Component[];\n llm?: LLMProvider;\n llmApiKey?: string;\n example?: boolean;\n timeout?: string | boolean;\n dir?: string;\n projectName?: string;\n mcp?: Editor;\n skills?: string[];\n template?: string | boolean;\n observability?: boolean;\n observabilityProject?: string;\n}\n\nexport const createProject = async (projectNameArg: string | undefined, args: CreateProjectArgs) => {\n // TODO(major): Remove args.projectName in favor of projectNameArg\n const projectName = projectNameArg || args.projectName;\n if (args.observability !== undefined) {\n analytics.trackEvent('cli_observability_selected', {\n command: 'create',\n enabled: args.observability,\n answer: args.observability ? 'yes' : 'no',\n selection_method: 'cli_args',\n });\n }\n\n await analytics.trackCommandExecution({\n command: 'create',\n args: { ...args, projectName },\n execution: async () => {\n const timeout = args?.timeout ? (args?.timeout === true ? 60000 : parseInt(args?.timeout, 10)) : undefined;\n if (args.default) {\n await create({\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: args.example === false ? false : true,\n timeout,\n projectName: projectNameArg,\n mcpServer: args.mcp,\n skills: args.skills,\n template: args.template,\n observability: args.observability,\n observabilityProject: args.observabilityProject,\n });\n return;\n }\n await create({\n components: args.components ? args.components : [],\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args.llmApiKey,\n timeout,\n projectName,\n directory: args.dir,\n mcpServer: args.mcp,\n skills: args.skills,\n template: args.template,\n observability: args.observability,\n observabilityProject: args.observabilityProject,\n });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { init } from '../init/init';\nimport type { Editor } from '../init/mcp-docs-server-install';\nimport { checkAndInstallCoreDeps, checkForPkgJson, interactivePrompt } from '../init/utils';\nimport type { Component, LLMProvider } from '../init/utils';\nimport { getVersionTag, isGitInitialized } from '../utils';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\ninterface InitArgs {\n default?: boolean;\n dir?: string;\n components?: Component[];\n llm?: LLMProvider;\n llmApiKey?: string;\n example?: boolean;\n mcp?: Editor;\n observability?: boolean;\n observabilityProject?: string;\n}\n\nexport const initProject = async (args: InitArgs) => {\n if (args.observability !== undefined) {\n analytics.trackEvent('cli_observability_selected', {\n command: 'init',\n enabled: args.observability,\n answer: args.observability ? 'yes' : 'no',\n selection_method: 'cli_args',\n });\n }\n\n await analytics.trackCommandExecution({\n command: 'init',\n args: { ...args },\n execution: async () => {\n await checkForPkgJson();\n\n // Detect the version tag (e.g., 'beta', 'latest') from the running CLI\n const versionTag = await getVersionTag();\n const skipGitInit = await isGitInitialized({ cwd: process.cwd() });\n\n await checkAndInstallCoreDeps(Boolean(args?.example || args?.default), versionTag);\n\n if (!Object.keys(args).length) {\n const result = await interactivePrompt({\n options: {\n command: 'init',\n onObservabilitySelected: event => analytics.trackEvent('cli_observability_selected', event),\n },\n skip: { gitInit: skipGitInit },\n });\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string,\n components: ['agents', 'tools', 'workflows'],\n addExample: true,\n skills: result?.skills,\n mcpServer: result?.mcpServer,\n versionTag,\n observability: result?.observability,\n observabilityToken: result?.observabilityToken,\n });\n return;\n }\n\n if (args?.default) {\n await init({\n directory: 'src/',\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: args.example === false ? false : true,\n mcpServer: args.mcp,\n versionTag,\n observability: args.observability,\n observabilityProject: args.observabilityProject,\n });\n return;\n }\n\n await init({\n directory: args.dir,\n components: args.components ? args.components : [],\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args.llmApiKey,\n mcpServer: args.mcp,\n versionTag,\n observability: args.observability,\n observabilityProject: args.observabilityProject,\n });\n return;\n },\n origin,\n });\n};\n","import * as p from '@clack/prompts';\nimport { build } from '../commands/build/build.js';\n\nexport async function runBuild(projectDir: string, opts?: { debug?: boolean }): Promise<void> {\n p.log.step('Running mastra build...');\n await build({\n root: projectDir,\n debug: opts?.debug ?? false,\n });\n console.info('');\n}\n","import type { Dirent } from 'node:fs';\nimport { readFile, readdir, stat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport * as p from '@clack/prompts';\nimport pc from 'picocolors';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport type PreflightIssueCode = 'MISSING_ENV_VAR' | 'LOCAL_STORAGE_PATH';\n\nexport interface PreflightIssue {\n code: PreflightIssueCode;\n severity: 'error' | 'warning';\n message: string;\n fix: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Config */\n/* ------------------------------------------------------------------ */\n\n/**\n * Env vars the runtime/platform sets automatically — referencing these in\n * user code is fine even when not present in the user's `.env` file.\n */\nconst ENV_VAR_ALLOWLIST_EXACT = new Set([\n 'PORT',\n 'HOST',\n 'HOSTNAME',\n 'NODE_ENV',\n 'NODE_OPTIONS',\n 'PWD',\n 'HOME',\n 'USER',\n 'PATH',\n 'TZ',\n 'LANG',\n 'CI',\n // Framework/tooling sentinel flags read by bundled dependencies (debug,\n // pino, @mastra/* internals). Referencing these from the bundle is\n // expected and shouldn't be surfaced as a missing-env-var warning.\n 'DEBUG',\n 'DEBUG_FD',\n 'DEBUG_COLORS',\n 'DEBUG_DEPTH',\n 'DEBUG_HIDE_DATE',\n 'NO_COLOR',\n 'FORCE_COLOR',\n 'EXPERIMENTAL_FEATURES',\n 'SKILLS_BASE_DIR',\n]);\n\n/**\n * Prefixes for env vars set by the platform, runtime, or tooling.\n */\nconst ENV_VAR_ALLOWLIST_PREFIXES = [\n 'MASTRA_',\n 'npm_',\n 'OTEL_',\n 'NEXT_',\n 'VERCEL_',\n 'AWS_LAMBDA_',\n // Observational memory internal flags\n 'OM_',\n];\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/i,\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/i,\n hint: 'localhost in a connection string',\n },\n {\n pattern: /\\b(?:postgres(?:ql)?|mysql|mongodb|redis|libsql):\\/\\/[^/\\s'\"`]*127\\.0\\.0\\.1\\b/,\n hint: '127.0.0.1 in a connection string',\n },\n];\n\n/* ------------------------------------------------------------------ */\n/* Public API */\n/* ------------------------------------------------------------------ */\n\n/**\n * Inspect a built `.mastra/output` directory plus the env vars about to be\n * uploaded and return a list of issues that are likely to cause the deploy\n * to fail with a USER-attributable error.\n *\n * Returns an empty array when no build output is found — the caller is\n * responsible for surfacing the missing-output error.\n */\nexport async function preflightBuildOutput(\n targetDir: string,\n envVars: Record<string, string>,\n): Promise<PreflightIssue[]> {\n const outputDir = join(targetDir, '.mastra', 'output');\n const entryPath = join(outputDir, 'index.mjs');\n\n // If there's no build output yet, there's nothing to check. The deploy\n // command verifies the entry exists separately.\n try {\n await stat(entryPath);\n } catch {\n return [];\n }\n\n const bundleSources = await readBundleSources(outputDir);\n const combinedSource = bundleSources.join('\\n');\n\n const issues: PreflightIssue[] = [];\n\n issues.push(...checkMissingEnvVars(combinedSource, envVars));\n issues.push(...checkLocalStoragePaths(combinedSource));\n\n return issues;\n}\n\nexport type PreflightOutcome = 'ok' | 'blocked' | 'cancelled';\n\n/**\n * Print preflight issues and decide whether the deploy should proceed.\n *\n * Returns:\n * - `'ok'` — no issues, or warnings the caller has accepted.\n * - `'blocked'`— at least one error-severity issue. Errors always block,\n * regardless of `autoAccept` / headless mode. Caller should\n * exit non-zero so CI surfaces the failure.\n * - `'cancelled'` — warnings only, but the user explicitly declined the\n * confirmation prompt. Caller should exit zero (normal\n * user-initiated cancel).\n *\n * `--skip-preflight` is the escape hatch when a check is a false positive.\n */\nexport async function printPreflightIssues(\n issues: PreflightIssue[],\n options: { autoAccept: boolean },\n): Promise<PreflightOutcome> {\n if (issues.length === 0) return 'ok';\n\n const errors = issues.filter(i => i.severity === 'error');\n const warnings = issues.filter(i => i.severity === 'warning');\n\n for (const issue of warnings) {\n p.log.warn(`${pc.yellow(`[${issue.code}]`)} ${issue.message}\\n ${pc.dim('→')} ${issue.fix}`);\n }\n\n for (const issue of errors) {\n p.log.error(`${pc.red(`[${issue.code}]`)} ${issue.message}\\n ${pc.dim('→')} ${issue.fix}`);\n }\n\n if (errors.length > 0) {\n p.log.error(\n `Deploy blocked by ${errors.length} preflight error(s). ` +\n `Fix the issues above, or pass --skip-preflight to override.`,\n );\n return 'blocked';\n }\n\n // Warnings only.\n if (options.autoAccept) return 'ok';\n\n const confirmed = await p.confirm({\n message: `Found ${warnings.length} preflight warning(s). Deploy anyway?`,\n initialValue: true,\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n return 'cancelled';\n }\n\n return 'ok';\n}\n\n/* ------------------------------------------------------------------ */\n/* Bundle reading */\n/* ------------------------------------------------------------------ */\n\nasync function readBundleSources(outputDir: string): Promise<string[]> {\n const files = await collectMjsFiles(outputDir);\n const contents = await Promise.all(files.map(f => readFile(f, 'utf-8').catch(() => '')));\n return contents;\n}\n\nasync function collectMjsFiles(dir: string): Promise<string[]> {\n const out: string[] = [];\n let entries: Array<Dirent | string>;\n try {\n entries = (await readdir(dir, { withFileTypes: true })) as Array<Dirent | string>;\n } catch {\n return out;\n }\n for (const entry of entries) {\n // Tests sometimes mock readdir with plain string arrays — fall back to stat\n const name = typeof entry === 'string' ? entry : entry.name;\n if (name === 'node_modules') continue;\n const full = join(dir, name);\n const isDir = typeof entry === 'string' ? false : entry.isDirectory?.() === true;\n const isFile = typeof entry === 'string' ? true : entry.isFile?.() === true;\n if (isDir) {\n out.push(...(await collectMjsFiles(full)));\n } else if (isFile && (name.endsWith('.mjs') || name.endsWith('.js'))) {\n out.push(full);\n }\n }\n return out;\n}\n\n/* ------------------------------------------------------------------ */\n/* Check 1 — missing env vars */\n/* ------------------------------------------------------------------ */\n\nconst PROCESS_ENV_REGEX = /\\bprocess\\.env\\.([A-Z_][A-Z0-9_]*)\\b/g;\nconst PROCESS_ENV_BRACKET_REGEX = /\\bprocess\\.env\\[['\"]([A-Z_][A-Z0-9_]*)['\"]\\]/g;\n\nfunction checkMissingEnvVars(source: string, envVars: Record<string, string>): PreflightIssue[] {\n const referenced = new Set<string>();\n for (const match of source.matchAll(PROCESS_ENV_REGEX)) {\n referenced.add(match[1]!);\n }\n for (const match of source.matchAll(PROCESS_ENV_BRACKET_REGEX)) {\n referenced.add(match[1]!);\n }\n\n const provided = new Set(Object.keys(envVars));\n const missing: string[] = [];\n\n for (const name of referenced) {\n if (provided.has(name)) continue;\n if (ENV_VAR_ALLOWLIST_EXACT.has(name)) continue;\n if (ENV_VAR_ALLOWLIST_PREFIXES.some(prefix => name.startsWith(prefix))) continue;\n missing.push(name);\n }\n\n if (missing.length === 0) return [];\n\n missing.sort();\n return [\n {\n code: 'MISSING_ENV_VAR',\n severity: 'warning',\n message: `Build references ${missing.length} env var(s) not in the env file being deployed: ${missing.join(', ')}`,\n fix: `Add them to your env file, or confirm your code provides a fallback (e.g. \\`process.env.X ?? 'default'\\`).`,\n },\n ];\n}\n\n/* ------------------------------------------------------------------ */\n/* Check 2 — local storage paths */\n/* ------------------------------------------------------------------ */\n\nfunction checkLocalStoragePaths(source: string): PreflightIssue[] {\n const issues: PreflightIssue[] = [];\n const seen = new Set<string>();\n\n for (const { pattern, hint } of LOCAL_HOST_PATTERNS) {\n const globalPattern = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g');\n for (const match of source.matchAll(globalPattern)) {\n const value = match[0];\n const key = `${hint}::${value}`;\n if (seen.has(key)) continue;\n seen.add(key);\n\n issues.push({\n code: 'LOCAL_STORAGE_PATH',\n severity: 'error',\n message: `Build contains a host-local storage URL: ${truncate(value, 80)} (${hint})`,\n fix: `Replace it with a hosted URL (e.g. a Turso \\`libsql://...\\` URL or a public Postgres connection string) and store it in your env file.`,\n });\n }\n }\n\n return issues;\n}\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction truncate(s: string, max: number): string {\n return s.length <= max ? s : `${s.slice(0, max - 1)}…`;\n}\n","export function isRetryablePollingError(error: unknown): boolean {\n if (!error || typeof error !== 'object') {\n return false;\n }\n\n if ('name' in error && error.name === 'AbortError') {\n return true;\n }\n\n const cause = 'cause' in error && error.cause && typeof error.cause === 'object' ? error.cause : undefined;\n const code = cause && 'code' in cause && typeof cause.code === 'string' ? cause.code : undefined;\n\n if (code === 'ECONNRESET' || code === 'ETIMEDOUT' || code === 'ECONNREFUSED' || code === 'ENOTFOUND') {\n return true;\n }\n\n return error instanceof TypeError && error.message.toLowerCase().includes('fetch failed');\n}\n\nexport async function withPollingRetries<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {\n let retryCount = 0;\n\n while (true) {\n try {\n return await fn();\n } catch (error) {\n if (!isRetryablePollingError(error) || retryCount >= maxRetries) {\n throw error;\n }\n\n await new Promise(resolve => setTimeout(resolve, 500 * Math.pow(2, retryCount)));\n retryCount += 1;\n }\n }\n}\n","import { createApiClient, extractApiErrorDetail } from '../commands/auth/client.js';\nimport { getToken } from '../commands/auth/credentials.js';\nimport { isRetryablePollingError } from './polling.js';\n\ntype ApiClient = ReturnType<typeof createApiClient>;\n\n/**\n * Best-effort cancel of a deploy. Logs warnings on failure but never throws.\n */\nexport async function bestEffortCancel(opts: {\n postCancel: (client: ApiClient) => Promise<{ error?: unknown; response: { status: number } }>;\n client: ApiClient;\n deployId: string;\n}): Promise<void> {\n try {\n console.warn(`Cancelling deploy ${opts.deployId}...`);\n const { error, response } = await opts.postCancel(opts.client);\n if (error) {\n console.warn(\n `Warning: failed to cancel deploy ${opts.deployId} (${response.status}). It may remain in a queued state.`,\n );\n }\n } catch {\n console.warn(`Warning: failed to cancel deploy ${opts.deployId}. It may remain in a queued state.`);\n }\n}\n\n/**\n * Retry the upload-complete POST with exponential backoff.\n * On exhaustion, cancels the orphaned deploy and throws.\n *\n * Retries on: 5xx, 401 (with token refresh), and transient network errors.\n * Does NOT retry other 4xx (e.g. 404 = deploy not found).\n */\nexport async function confirmUploadWithRetry(opts: {\n postUploadComplete: (client: ApiClient) => Promise<{ error?: unknown; response: { status: number } }>;\n cancelDeploy: (client: ApiClient) => Promise<void>;\n client: ApiClient;\n orgId: string;\n maxRetries?: number;\n /** Override for testing — refresh the client with a new token. */\n refreshClient?: (orgId: string) => Promise<ApiClient>;\n}): Promise<void> {\n const {\n postUploadComplete,\n cancelDeploy,\n orgId,\n maxRetries = 3,\n refreshClient = async (o: string) => createApiClient(await getToken(), o),\n } = opts;\n let lastError: Error | undefined;\n let currentClient = opts.client;\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n let completeError: unknown;\n let status: number | undefined;\n\n try {\n const result = await postUploadComplete(currentClient);\n if (!result.error) {\n return; // Success\n }\n completeError = result.error;\n status = result.response.status;\n } catch (networkError) {\n // Network-level failure (ECONNRESET, ETIMEDOUT, fetch failed, etc.)\n completeError = networkError;\n }\n\n // Determine if we should retry\n const isRetryableStatus = status !== undefined && (status >= 500 || status === 401);\n const isRetryableNetwork = isRetryablePollingError(completeError);\n const isRetryable = isRetryableStatus || isRetryableNetwork;\n\n if (!isRetryable || attempt === maxRetries) {\n const apiMessage = extractApiErrorDetail(completeError);\n if (apiMessage) {\n lastError = new Error(apiMessage);\n } else {\n const detail =\n status !== undefined ? `${status}` : completeError instanceof Error ? completeError.message : 'unknown error';\n lastError = new Error(`Upload confirmation failed: ${detail}`);\n }\n break;\n }\n\n const delay = 1000 * Math.pow(2, attempt);\n const detail = status ? `${status}` : completeError instanceof Error ? completeError.message : 'network error';\n console.warn(\n `Upload confirmation failed (${detail}), retrying in ${delay / 1000}s... (attempt ${attempt + 1}/${maxRetries})`,\n );\n\n // On 401, refresh the token before retrying\n if (status === 401) {\n try {\n currentClient = await refreshClient(orgId);\n } catch (refreshError) {\n lastError = refreshError instanceof Error ? refreshError : new Error('Failed to refresh authentication token');\n break;\n }\n }\n\n // Exponential backoff: 1s, 2s, 4s\n await new Promise(r => setTimeout(r, delay));\n }\n\n // All retries exhausted — cancel the orphaned deploy and throw\n await cancelDeploy(currentClient);\n throw lastError ?? new Error('Upload confirmation failed');\n}\n","import { bestEffortCancel, confirmUploadWithRetry } from '../../utils/deploy-upload.js';\nimport { withPollingRetries } from '../../utils/polling.js';\nimport { authHeaders, createApiClient, MASTRA_PLATFORM_API_URL, platformFetch, throwApiError } from '../auth/client.js';\nimport { getToken } from '../auth/credentials.js';\nimport type { DeployDiagnosis, DeployDiagnosisLookup } from '../deploy-suggestions.js';\n\nexport interface Project {\n id: string;\n name: string;\n slug: string | null;\n organizationId: string;\n latestDeployId: string | null;\n latestDeployStatus: string | null;\n latestDeployCreatedAt?: string | null;\n instanceUrl: string | null;\n createdAt: string | null;\n updatedAt: string | null;\n}\n\nexport interface DeployStatus {\n id: string;\n status: string;\n instanceUrl: string | null;\n error: string | null;\n}\n\nexport async function fetchProjects(token: string, orgId: string): Promise<Project[]> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/studio/projects');\n\n if (error) {\n throwApiError('Failed to fetch projects', response.status, error.detail);\n }\n\n return data.projects;\n}\n\nexport async function createProject(token: string, orgId: string, name: string): Promise<Project> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.POST('/v1/studio/projects', {\n body: { name },\n });\n\n if (error) {\n throwApiError('Failed to create project', response.status, error.detail);\n }\n\n return data.project;\n}\n\nexport interface DeployInfo {\n id: string;\n status: string;\n instanceUrl: string | null;\n error: string | null;\n projectName?: string | null;\n createdAt?: string | null;\n}\n\nexport async function fetchDeployStatus(deployId: string, token: string, orgId?: string): Promise<DeployInfo> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/studio/deploys/{id}', {\n params: { path: { id: deployId } },\n });\n\n if (error) {\n throwApiError('Failed to fetch deploy status', response.status, error.detail);\n }\n\n return data.deploy;\n}\n\nexport async function fetchDeployDiagnosis(\n deployId: string,\n token: string,\n orgId?: string,\n): Promise<DeployDiagnosisLookup> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/studio/deploys/${deployId}/diagnosis`, {\n headers: authHeaders(token, orgId),\n });\n\n if (resp.status === 204) {\n return { state: 'healthy' };\n }\n\n if (!resp.ok) {\n let detail: string | undefined;\n try {\n const error = (await resp.json()) as { detail?: string };\n detail = error.detail;\n } catch {\n detail = undefined;\n }\n throwApiError('Failed to fetch deploy diagnosis', resp.status, detail);\n }\n\n const data = (await resp.json()) as { diagnosis: DeployDiagnosis | null };\n if (!data.diagnosis) {\n return { state: 'missing' };\n }\n\n return { state: 'ready', diagnosis: data.diagnosis };\n}\n\nexport async function startDeployDiagnosis(deployId: string, token: string, orgId?: string): Promise<void> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/studio/deploys/${deployId}/diagnosis`, {\n method: 'POST',\n headers: authHeaders(token, orgId),\n });\n\n if (resp.status === 201 || resp.status === 304) {\n return;\n }\n\n let detail: string | undefined;\n try {\n const error = (await resp.json()) as { detail?: string };\n detail = error.detail;\n } catch {\n detail = undefined;\n }\n\n throwApiError('Failed to start deploy diagnosis', resp.status, detail);\n}\n\nexport async function uploadDeploy(\n token: string,\n orgId: string,\n projectId: string,\n zipBuffer: Buffer,\n meta?: {\n gitBranch?: string;\n projectName?: string;\n envVars?: Record<string, string>;\n mastraVersion?: string;\n disablePlatformObservability?: boolean;\n },\n): Promise<{ id: string; status: string }> {\n const client = createApiClient(token, orgId);\n\n // Step 1: Create the deploy — returns upload URL\n const { data, error, response } = await client.POST('/v1/studio/deploys', {\n params: {\n header: {\n 'x-project-id': projectId,\n 'x-project-name': meta?.projectName,\n 'x-git-branch': meta?.gitBranch,\n 'x-mastra-version': meta?.mastraVersion,\n },\n },\n body: {\n envVars: meta?.envVars,\n ...(meta?.disablePlatformObservability !== undefined\n ? { disablePlatformObservability: meta.disablePlatformObservability }\n : {}),\n },\n });\n\n if (error) {\n throwApiError('Deploy failed', response.status, error.detail);\n }\n\n const { id, status, uploadUrl } = data.deploy;\n\n if (!uploadUrl) {\n throw new Error('No upload URL returned');\n }\n\n const cancel = (c: ReturnType<typeof createApiClient>) =>\n bestEffortCancel({\n postCancel: c2 => c2.POST('/v1/studio/deploys/{id}/cancel', { params: { path: { id } } }),\n client: c,\n deployId: id,\n });\n\n // Step 2: Upload artifact to the signed URL\n try {\n if (uploadUrl.startsWith('file://')) {\n const { writeFile } = await import('node:fs/promises');\n const { fileURLToPath } = await import('node:url');\n await writeFile(fileURLToPath(uploadUrl), Buffer.from(zipBuffer));\n } else {\n const uploadResp = await fetch(uploadUrl, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/zip' },\n body: new Uint8Array(zipBuffer),\n });\n if (!uploadResp.ok) {\n throw new Error(`Artifact upload failed: ${uploadResp.status} ${uploadResp.statusText}`);\n }\n }\n } catch (uploadError) {\n await cancel(client);\n throw uploadError;\n }\n\n // Step 3: Notify API that upload is complete → triggers build pipeline\n await confirmUploadWithRetry({\n postUploadComplete: c => c.POST('/v1/studio/deploys/{id}/upload-complete', { params: { path: { id } } }),\n cancelDeploy: cancel,\n client,\n orgId,\n });\n\n return { id, status };\n}\n\nasync function streamDeployLogs(deployId: string, token: string, orgId: string, signal: AbortSignal): Promise<void> {\n // Small delay to let the deploy pipeline start before requesting logs\n await new Promise(r => setTimeout(r, 2000));\n\n const url = `${MASTRA_PLATFORM_API_URL}/v1/studio/deploys/${deployId}/logs/stream`;\n\n const resp = await platformFetch(url, {\n headers: authHeaders(token, orgId),\n signal,\n });\n\n if (!resp.ok || !resp.body) return;\n\n const reader = resp.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n let skipNextUrlMeta = false;\n\n while (!signal.aborted) {\n const { done, value } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n const data = line.slice(5).trim();\n if (!data) continue;\n // Filter internal server startup logs — the public URL is shown by the CLI after deploy\n if (data.includes('Mastra API running') || data.includes('Studio available')) {\n skipNextUrlMeta = true;\n continue;\n }\n // Skip the pino-pretty \"url:\" continuation line that follows a filtered startup log\n if (skipNextUrlMeta) {\n skipNextUrlMeta = false;\n if (/^(\\x1b\\[\\d+m)*url(\\x1b\\[\\d+m)*:/.test(data)) continue;\n }\n process.stdout.write(`${data}\\n`);\n }\n }\n }\n}\n\nexport async function pollDeploy(\n deployId: string,\n token: string,\n orgId: string,\n maxWaitMs = 600000,\n): Promise<DeployStatus> {\n const start = Date.now();\n let lastStatus = '';\n let currentToken = token;\n\n // Start streaming logs in the background via SSE\n const logAbort = new AbortController();\n streamDeployLogs(deployId, currentToken, orgId, logAbort.signal).catch(() => {});\n\n let client = createApiClient(currentToken, orgId);\n\n try {\n while (Date.now() - start < maxWaitMs) {\n const result = await withPollingRetries(() =>\n client.GET('/v1/studio/deploys/{id}', {\n params: { path: { id: deployId } },\n }),\n );\n\n const { data, error, response } = result;\n\n if (error) {\n if (response.status === 401) {\n currentToken = await getToken();\n client = createApiClient(currentToken, orgId);\n continue;\n }\n throwApiError('Poll failed', response.status, error.detail);\n }\n\n const { deploy } = data;\n\n if (deploy.status !== lastStatus) {\n lastStatus = deploy.status;\n }\n\n if (deploy.status === 'running' || deploy.status === 'failed' || deploy.status === 'stopped') {\n return deploy;\n }\n\n await new Promise(r => setTimeout(r, 2000));\n }\n\n throw new Error('Deploy timed out');\n } finally {\n logAbort.abort();\n }\n}\n","import { readFile, writeFile } from 'node:fs/promises';\nimport { isAbsolute, join } from 'node:path';\n\nexport const PROJECT_CONFIG_FILE = '.mastra-project.json';\n\nexport interface ProjectConfig {\n projectId: string;\n projectName: string;\n projectSlug?: string;\n organizationId: string;\n disablePlatformObservability?: boolean;\n}\n\nexport function getProjectConfigToSave(\n projectId: string,\n projectName: string,\n projectSlug: string,\n organizationId: string,\n projectConfig: ProjectConfig | null,\n): ProjectConfig {\n return {\n projectId,\n projectName,\n projectSlug,\n organizationId,\n ...(projectConfig?.disablePlatformObservability !== undefined\n ? { disablePlatformObservability: projectConfig.disablePlatformObservability }\n : {}),\n };\n}\n\nfunction resolveConfigPath(dir: string, configFile?: string): string {\n if (configFile) {\n return isAbsolute(configFile) ? configFile : join(dir, configFile);\n }\n return join(dir, PROJECT_CONFIG_FILE);\n}\n\nexport async function loadProjectConfig(dir: string, configFile?: string): Promise<ProjectConfig | null> {\n try {\n const data = await readFile(resolveConfigPath(dir, configFile), 'utf-8');\n return JSON.parse(data) as ProjectConfig;\n } catch {\n return null;\n }\n}\n\nexport async function saveProjectConfig(dir: string, config: ProjectConfig, configFile?: string): Promise<void> {\n await writeFile(resolveConfigPath(dir, configFile), JSON.stringify(config, null, 2) + '\\n');\n}\n","import { execSync } from 'node:child_process';\nimport { createWriteStream, readFileSync } from 'node:fs';\nimport { mkdir, rm, stat, access, readFile, readdir } from 'node:fs/promises';\nimport { createRequire } from 'node:module';\nimport { tmpdir } from 'node:os';\nimport { join, resolve } from 'node:path';\nimport * as p from '@clack/prompts';\nimport archiver from 'archiver';\nimport { config } from 'dotenv';\nimport { runBuild } from '../../utils/run-build.js';\nimport { fetchOrgs } from '../auth/api.js';\nimport { MASTRA_STUDIO_URL } from '../auth/client.js';\nimport { getToken, getCurrentOrgId } from '../auth/credentials.js';\nimport { preflightBuildOutput, printPreflightIssues } from '../deploy-preflight.js';\nimport { fetchProjects, createProject, uploadDeploy, pollDeploy } from './platform-api.js';\nimport { getProjectConfigToSave, loadProjectConfig, saveProjectConfig } from './project-config.js';\n\nfunction elapsed(ms: number): string {\n return ms < 1000 ? `${Math.round(ms)}ms` : `${(ms / 1000).toFixed(1)}s`;\n}\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction getPackageName(projectDir: string): string | null {\n try {\n const raw = execSync('node -p \"require(\\'./package.json\\').name\"', {\n cwd: projectDir,\n encoding: 'utf-8',\n stdio: ['pipe', 'pipe', 'pipe'],\n }).trim();\n // Strip org scope if present (e.g. @org/my-app → my-app)\n return raw.startsWith('@') ? (raw.split('/')[1] ?? raw) : raw;\n } catch {\n return null;\n }\n}\n\nfunction getGitBranch(projectDir: string): string | null {\n try {\n return execSync('git rev-parse --abbrev-ref HEAD', {\n cwd: projectDir,\n encoding: 'utf-8',\n stdio: ['pipe', 'pipe', 'pipe'],\n }).trim();\n } catch {\n return null;\n }\n}\n\nexport function getMastraVersion(projectDir: string): string | null {\n try {\n // Resolve the actual installed version from node_modules rather than the raw\n // specifier in package.json (which may be \"catalog:\", \"workspace:*\", etc.)\n const req = createRequire(join(projectDir, 'package.json'));\n const pkgJsonPath = req.resolve('mastra/package.json');\n const pkgJson = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));\n return pkgJson.version ?? null;\n } catch {\n return null;\n }\n}\nasync function zipOutput(projectDir: string): Promise<string> {\n const outputDir = join(projectDir, '.mastra', 'output');\n const tmpDir = join(tmpdir(), 'mastra-deploy');\n await mkdir(tmpDir, { recursive: true });\n const zipPath = join(tmpDir, `deploy-${Date.now()}.zip`);\n\n return new Promise((resolvePromise, reject) => {\n const output = createWriteStream(zipPath);\n const archive = archiver('zip', { zlib: { level: 6 } });\n\n output.on('close', () => resolvePromise(zipPath));\n archive.on('error', reject);\n\n archive.pipe(output);\n archive.glob('**', { cwd: outputDir, ignore: ['node_modules/**'] }, { prefix: 'output' });\n void archive.finalize();\n });\n}\n\nexport function parseEnvFile(content: string): Record<string, string> {\n const vars: Record<string, string> = {};\n for (const line of content.split('\\n')) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith('#')) continue;\n const eqIdx = trimmed.indexOf('=');\n if (eqIdx === -1) continue;\n let key = trimmed.slice(0, eqIdx).trim();\n if (key.startsWith('export ')) key = key.slice(7).trim();\n let value = trimmed.slice(eqIdx + 1).trim();\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n if (key) vars[key] = value;\n }\n return vars;\n}\n\n/**\n * Loads MASTRA_PROJECT_ID and MASTRA_ORG_ID from the project's .env files\n * into process.env so deploys auto-link to the project that `mastra init --observability`\n * provisioned. Uses dotenv with override: false (the default), so any\n * existing process.env value (e.g. from CI) always wins.\n */\nexport function loadDeployEnvFromDotenv(projectDir: string): void {\n config({\n path: [join(projectDir, '.env'), join(projectDir, '.env.local'), join(projectDir, '.env.production')],\n quiet: true,\n });\n}\n\nasync function getDeployEnvFiles(projectDir: string): Promise<string[]> {\n const entries = await readdir(projectDir, { withFileTypes: true });\n\n return entries\n .filter(\n entry =>\n (entry.isFile() || entry.isSymbolicLink()) &&\n (entry.name === '.env' || entry.name.startsWith('.env.')) &&\n !entry.name.endsWith('.example'),\n )\n .map(entry => entry.name)\n .sort((a, b) => a.localeCompare(b));\n}\n\nexport async function readEnvVars(\n projectDir: string,\n options: { autoAccept?: boolean; envFile?: string } = {},\n): Promise<Record<string, string>> {\n // When an explicit env file is provided, trust the user — read it directly.\n if (options.envFile) {\n const filePath = join(projectDir, options.envFile);\n try {\n await access(filePath);\n } catch {\n throw new Error(`Env file not found: ${options.envFile}`);\n }\n p.log.step(`Using env file: ${options.envFile}`);\n return parseEnvFile(await readFile(filePath, 'utf-8'));\n }\n\n const availableDeployEnvFiles = await getDeployEnvFiles(projectDir);\n\n if (availableDeployEnvFiles.length === 0) {\n throw new Error('No env file found for deploy. Add a .env or .env.* file before deploying.');\n }\n\n let selectedEnvFile: string;\n\n if (availableDeployEnvFiles.length === 1) {\n selectedEnvFile = availableDeployEnvFiles[0]!;\n } else if (options.autoAccept) {\n throw new Error(\n `Multiple env files found: ${availableDeployEnvFiles.join(', ')}. Use --env-file to specify which one to deploy.`,\n );\n } else {\n const defaultFile =\n availableDeployEnvFiles.find(envFile => envFile === '.env.production') ?? availableDeployEnvFiles[0]!;\n\n const selected = await p.select({\n message: 'Choose env file to deploy',\n options: availableDeployEnvFiles.map(envFile => ({ value: envFile, label: envFile })),\n initialValue: defaultFile,\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n selectedEnvFile = selected as string;\n }\n\n p.log.step(`Using env file: ${selectedEnvFile}`);\n\n return parseEnvFile(await readFile(join(projectDir, selectedEnvFile), 'utf-8'));\n}\n\n/* ------------------------------------------------------------------ */\n/* Resolve org */\n/* ------------------------------------------------------------------ */\n\nasync function resolveOrg(\n token: string,\n projectConfig: { organizationId?: string } | null,\n flagOrg?: string,\n): Promise<{ orgId: string; orgName: string }> {\n // 0. MASTRA_ORG_ID env var (CI/CD headless path)\n const envOrgId = process.env.MASTRA_ORG_ID;\n if (envOrgId) {\n return { orgId: envOrgId, orgName: envOrgId };\n }\n\n // 1. CLI flag\n if (flagOrg) {\n const orgs = await fetchOrgs(token);\n const match = orgs.find(o => o.id === flagOrg);\n return { orgId: flagOrg, orgName: match?.name ?? flagOrg };\n }\n\n // 2. project.json (only if user is a member of that org)\n if (projectConfig?.organizationId) {\n const orgs = await fetchOrgs(token);\n const match = orgs.find(o => o.id === projectConfig.organizationId);\n if (match) {\n return { orgId: match.id, orgName: match.name };\n }\n }\n\n // 3. credentials currentOrgId\n const currentOrgId = await getCurrentOrgId();\n const orgs = await fetchOrgs(token);\n\n if (currentOrgId) {\n const match = orgs.find(o => o.id === currentOrgId);\n if (match) {\n return { orgId: match.id, orgName: match.name };\n }\n }\n\n // 4. Auto-select if only 1 org\n if (orgs.length === 1) {\n return { orgId: orgs[0]!.id, orgName: orgs[0]!.name };\n }\n\n // 5. Interactive picker\n if (orgs.length === 0) {\n throw new Error(`You have no organizations. Please create one at ${MASTRA_STUDIO_URL}`);\n }\n\n const selected = await p.select({\n message: 'Select an organization',\n options: orgs.map(o => ({ value: o.id, label: `${o.name} (${o.id})` })),\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n const selectedOrg = orgs.find(o => o.id === selected)!;\n return { orgId: selectedOrg.id, orgName: selectedOrg.name };\n}\n\n/* ------------------------------------------------------------------ */\n/* Resolve project */\n/* ------------------------------------------------------------------ */\n\ntype ProjectResolution =\n | { existing: true; projectId: string; projectName: string; projectSlug: string }\n | { existing: false; projectName: string };\n\n/**\n * Attempts to resolve an existing project without creating one.\n * Returns { existing: true, ... } if found, or { existing: false, projectName } if a new project should be created.\n * This allows the caller to show a confirmation prompt before actually creating the project.\n */\nasync function resolveProject(\n token: string,\n orgId: string,\n projectConfig: { projectId?: string; projectName?: string; projectSlug?: string; organizationId?: string } | null,\n flagProject?: string,\n defaultName?: string | null,\n autoAccept?: boolean,\n): Promise<ProjectResolution> {\n // 0. MASTRA_PROJECT_ID env var (CI/CD headless path)\n const envProjectId = process.env.MASTRA_PROJECT_ID;\n if (envProjectId) {\n return { existing: true, projectId: envProjectId, projectName: envProjectId, projectSlug: envProjectId };\n }\n\n // 1. CLI flag — match by id, slug, or unambiguous name\n if (flagProject) {\n const projects = await fetchProjects(token, orgId);\n const byId = projects.find(proj => proj.id === flagProject);\n const bySlug = projects.find(proj => proj.slug === flagProject);\n const byName = projects.filter(proj => proj.name === flagProject);\n if (!byId && !bySlug && byName.length > 1) {\n p.cancel(\n `Multiple projects are named \"${flagProject}\". Pass --project with the project id or slug to disambiguate.`,\n );\n process.exit(1);\n }\n const match = byId ?? bySlug ?? (byName.length === 1 ? byName[0] : undefined);\n if (match) {\n return { existing: true, projectId: match.id, projectName: match.name, projectSlug: match.slug ?? match.name };\n }\n return { existing: false, projectName: flagProject };\n }\n\n // 2. project.json (only if same org)\n if (projectConfig?.projectId && projectConfig.organizationId === orgId) {\n return {\n existing: true,\n projectId: projectConfig.projectId,\n projectName: projectConfig.projectName ?? projectConfig.projectId,\n projectSlug: projectConfig.projectSlug ?? projectConfig.projectName ?? projectConfig.projectId,\n };\n }\n\n // 3. Consult the list of existing projects in this org before defaulting to create-new.\n const projects = await fetchProjects(token, orgId);\n const nameMatches = defaultName\n ? projects.filter(proj => proj.name === defaultName || proj.slug === defaultName)\n : [];\n\n if (projects.length > 0) {\n if (autoAccept) {\n // Non-interactive: only safe to auto-pick when there is exactly one\n // project whose name/slug matches the package.json name.\n if (nameMatches.length === 1) {\n const m = nameMatches[0]!;\n return { existing: true, projectId: m.id, projectName: m.name, projectSlug: m.slug ?? m.name };\n }\n throw new Error(\n `Found ${projects.length} existing project(s) in this organization. Pass --project <id-or-slug> to select one, or re-run without --yes to choose interactively.`,\n );\n }\n\n const CREATE_NEW = '__create_new__';\n const initialValue = nameMatches.length === 1 ? nameMatches[0]!.id : projects[0]!.id;\n const selected = await p.select({\n message: 'Select a project to deploy to',\n initialValue,\n options: [\n ...projects.map(proj => ({\n value: proj.id,\n label: `${proj.name} (${proj.id})`,\n })),\n { value: CREATE_NEW, label: defaultName ? `+ Create new project \"${defaultName}\"` : '+ Create new project' },\n ],\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n if (selected !== CREATE_NEW) {\n const match = projects.find(proj => proj.id === selected)!;\n return { existing: true, projectId: match.id, projectName: match.name, projectSlug: match.slug ?? match.name };\n }\n // fall through to create-new flow\n }\n\n // 4. No existing project (or user chose \"Create new\") — return the name so caller can create after confirmation.\n const name = defaultName;\n if (!name) {\n throw new Error('Could not determine project name from package.json. Use --project to specify one.');\n }\n\n return { existing: false, projectName: name };\n}\n\n/* ------------------------------------------------------------------ */\n/* Main deploy action */\n/* ------------------------------------------------------------------ */\n\nexport async function deployAction(\n dir: string | undefined,\n opts: {\n org?: string;\n project?: string;\n yes?: boolean;\n config?: string;\n skipBuild?: boolean;\n skipPreflight?: boolean;\n debug?: boolean;\n envFile?: string;\n },\n) {\n const targetDir = resolve(dir || process.cwd());\n // Seed MASTRA_PROJECT_ID / MASTRA_ORG_ID from the project's .env so deploys\n // auto-link to the project that `mastra init --observability` provisioned.\n loadDeployEnvFromDotenv(targetDir);\n const isHeadless = Boolean(process.env.MASTRA_API_TOKEN);\n if (isHeadless && (!process.env.MASTRA_ORG_ID || !process.env.MASTRA_PROJECT_ID)) {\n throw new Error('MASTRA_ORG_ID and MASTRA_PROJECT_ID are required when MASTRA_API_TOKEN is set');\n }\n const autoAccept = opts.yes ?? isHeadless;\n const skipPreflight = opts.skipPreflight || process.env.MASTRA_SKIP_PREFLIGHT === '1';\n\n p.intro('mastra studio deploy');\n\n // Gather context\n const packageName = getPackageName(targetDir);\n const gitBranch = getGitBranch(targetDir);\n const mastraVersion = getMastraVersion(targetDir);\n\n // Step 1: Auth\n const token = await getToken();\n\n // Step 2: Load existing project config\n const projectConfig = await loadProjectConfig(targetDir, opts.config);\n\n // Step 3: Resolve org\n const { orgId, orgName } = await resolveOrg(token, projectConfig, opts.org);\n\n // Step 4: Resolve project (does NOT create yet — waits for confirmation)\n const resolution = await resolveProject(token, orgId, projectConfig, opts.project, packageName, autoAccept);\n\n let projectId: string;\n let projectName: string;\n let projectSlug: string;\n\n if (resolution.existing) {\n // Existing project found\n projectId = resolution.projectId;\n projectName = resolution.projectName;\n projectSlug = resolution.projectSlug;\n\n const isAlreadyLinked = projectConfig?.projectId === projectId && projectConfig?.organizationId === orgId;\n\n p.note(\n [\n `Organization: ${orgName}`,\n `Project: ${projectName}`,\n `Directory: ${targetDir}`,\n ...(gitBranch ? [`Git branch: ${gitBranch}`] : []),\n ...(mastraVersion ? [`Mastra: ${mastraVersion}`] : []),\n ].join('\\n'),\n 'Deploy settings',\n );\n\n if (!autoAccept) {\n const confirmed = await p.confirm({\n message: 'Deploy with these settings?',\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n if (!isAlreadyLinked) {\n await saveProjectConfig(\n targetDir,\n getProjectConfigToSave(projectId, projectName, projectSlug, orgId, projectConfig),\n opts.config,\n );\n p.log.success(`Saved ${opts.config || '.mastra-project.json'}`);\n }\n } else {\n // New project — show confirmation BEFORE creating\n projectName = resolution.projectName;\n\n p.note(\n [\n `Organization: ${orgName}`,\n `Project: ${projectName} (new)`,\n `Directory: ${targetDir}`,\n ...(gitBranch ? [`Git branch: ${gitBranch}`] : []),\n ...(mastraVersion ? [`Mastra: ${mastraVersion}`] : []),\n ].join('\\n'),\n 'Deploy settings',\n );\n\n if (!autoAccept) {\n const confirmed = await p.confirm({\n message: 'Create project and deploy?',\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n // NOW create the project (after user confirmed)\n const project = await createProject(token, orgId, projectName);\n projectId = project.id;\n projectSlug = project.slug ?? project.name;\n p.log.success(`Created project \"${projectName}\"`);\n\n // Save the project link\n await saveProjectConfig(\n targetDir,\n getProjectConfigToSave(projectId, projectName, projectSlug, orgId, projectConfig),\n opts.config,\n );\n p.log.success(`Saved ${opts.config || '.mastra-project.json'}`);\n }\n\n // Step 6: Build + Zip + Upload + Poll\n const s = p.spinner();\n const tTotal = performance.now();\n\n let t: number;\n\n if (opts.skipBuild) {\n p.log.step('Skipping build (--skip-build)');\n } else {\n t = performance.now();\n await runBuild(targetDir, { debug: opts.debug });\n p.log.step(`Build completed (${elapsed(performance.now() - t)})`);\n }\n\n // Verify build output exists\n const outputEntry = join(targetDir, '.mastra', 'output', 'index.mjs');\n try {\n await access(outputEntry);\n } catch {\n throw new Error('.mastra/output/index.mjs not found — did the build succeed?');\n }\n\n const envVars = await readEnvVars(targetDir, { autoAccept, envFile: opts.envFile });\n const envCount = Object.keys(envVars).length;\n if (envCount > 0) {\n p.log.step(`Found ${envCount} env var(s)`);\n } else {\n p.log.step('No env vars found in selected env file');\n }\n\n // Pre-upload validation — catch USER-attributable errors before zipping/shipping.\n if (!skipPreflight) {\n const issues = await preflightBuildOutput(targetDir, envVars);\n const outcome = await printPreflightIssues(issues, { autoAccept });\n if (outcome === 'blocked') {\n p.cancel('Deploy blocked by preflight errors.');\n process.exit(1);\n }\n if (outcome === 'cancelled') {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n t = performance.now();\n s.start('Zipping build artifact...');\n const zipPath = await zipOutput(targetDir);\n const zipStat = await stat(zipPath);\n const sizeKB = zipStat.size / 1024;\n const sizeLabel = sizeKB > 1024 ? `${(sizeKB / 1024).toFixed(1)}MB` : `${sizeKB.toFixed(1)}KB`;\n s.stop(`Created ${sizeLabel} archive (${elapsed(performance.now() - t)})`);\n\n t = performance.now();\n s.start('Uploading...');\n const zipBuffer = await readFile(zipPath);\n const deployResult = await uploadDeploy(token, orgId, projectId, zipBuffer, {\n gitBranch: gitBranch ?? undefined,\n projectName,\n envVars: envCount > 0 ? envVars : undefined,\n mastraVersion: mastraVersion ?? undefined,\n disablePlatformObservability: projectConfig?.disablePlatformObservability === true,\n });\n s.stop(`Uploaded (${elapsed(performance.now() - t)})`);\n\n await rm(zipPath, { force: true });\n\n p.log.step('Streaming deploy logs...');\n const finalStatus = await pollDeploy(deployResult.id, token, orgId);\n\n if (finalStatus.status === 'running') {\n p.outro(`Deploy succeeded in ${elapsed(performance.now() - tTotal)}! ${finalStatus.instanceUrl}`);\n } else if (finalStatus.status === 'failed') {\n p.log.error(`Deploy failed: ${finalStatus.error}`);\n process.exit(1);\n } else {\n p.log.warning(`Deploy ended with status: ${finalStatus.status}`);\n process.exit(1);\n }\n}\n","import type { LintContext, LintIssue, LintRule } from './types.js';\n\nexport const mastraCoreRule: LintRule = {\n name: 'mastra-core',\n description: 'Checks if @mastra/core is installed',\n async run(context: LintContext): Promise<LintIssue[]> {\n const hasCore = context.mastraPackages.some(pkg => pkg.name === '@mastra/core');\n if (!hasCore) {\n return [\n {\n code: 'MISSING_MASTRA_CORE',\n severity: 'error',\n scope: 'project',\n message: '@mastra/core is not installed. This package is required for Mastra to work properly.',\n fix: 'Install @mastra/core: pnpm add @mastra/core',\n },\n ];\n }\n\n return [];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { parse } from '@babel/parser';\nimport * as t from '@babel/types';\nimport type { LintContext, LintIssue, LintRule } from './types.js';\n\ninterface NextConfig {\n serverExternalPackages?: string[];\n}\n\nfunction unwrapExpression(expression: t.Expression): t.Expression {\n if (t.isParenthesizedExpression(expression)) {\n return unwrapExpression(expression.expression);\n }\n\n return expression;\n}\n\nfunction getPropertyName(property: t.ObjectProperty): string | null {\n if (property.computed) {\n return null;\n }\n\n if (t.isIdentifier(property.key)) {\n return property.key.name;\n }\n\n if (t.isStringLiteral(property.key)) {\n return property.key.value;\n }\n\n return null;\n}\n\nfunction readStringArray(expression: t.Expression): string[] | null {\n const arrayExpression = unwrapExpression(expression);\n if (!t.isArrayExpression(arrayExpression)) {\n return null;\n }\n\n const values: string[] = [];\n for (const element of arrayExpression.elements) {\n if (!t.isStringLiteral(element)) {\n return null;\n }\n\n values.push(element.value);\n }\n\n return values;\n}\n\nfunction readServerExternalPackages(config: t.ObjectExpression): string[] | undefined {\n for (const property of config.properties) {\n if (!t.isObjectProperty(property) || !t.isExpression(property.value)) {\n continue;\n }\n\n if (getPropertyName(property) !== 'serverExternalPackages') {\n continue;\n }\n\n return readStringArray(property.value) ?? undefined;\n }\n\n return undefined;\n}\n\nfunction parseProgram(nextConfigContent: string): t.Program {\n return parse(nextConfigContent, {\n sourceType: 'unambiguous',\n plugins: ['typescript', 'jsx', 'importAttributes'],\n }).program;\n}\n\nfunction collectNextConfigVariables(program: t.Program): Map<string, t.ObjectExpression> {\n const variables = new Map<string, t.ObjectExpression>();\n\n for (const node of program.body) {\n if (!t.isVariableDeclaration(node)) {\n continue;\n }\n\n for (const declaration of node.declarations) {\n if (!t.isIdentifier(declaration.id) || !declaration.init) {\n continue;\n }\n\n const initializer = unwrapExpression(declaration.init);\n if (t.isObjectExpression(initializer)) {\n variables.set(declaration.id.name, initializer);\n }\n }\n }\n\n return variables;\n}\n\nfunction resolveObjectExpression(\n expression: t.Expression,\n variables: Map<string, t.ObjectExpression>,\n): t.ObjectExpression | null {\n const unwrappedExpression = unwrapExpression(expression);\n\n if (t.isObjectExpression(unwrappedExpression)) {\n return unwrappedExpression;\n }\n\n if (t.isIdentifier(unwrappedExpression)) {\n return variables.get(unwrappedExpression.name) ?? null;\n }\n\n return null;\n}\n\nfunction isModuleExportsAssignment(expression: t.Expression): expression is t.AssignmentExpression {\n if (!t.isAssignmentExpression(expression) || expression.operator !== '=') {\n return false;\n }\n\n const { left } = expression;\n return (\n t.isMemberExpression(left) &&\n !left.computed &&\n t.isIdentifier(left.object) &&\n left.object.name === 'module' &&\n t.isIdentifier(left.property) &&\n left.property.name === 'exports'\n );\n}\n\nfunction findNextConfigObject(program: t.Program): t.ObjectExpression | null {\n const nextConfigVariables = collectNextConfigVariables(program);\n const namedNextConfig = nextConfigVariables.get('nextConfig');\n if (namedNextConfig) {\n return namedNextConfig;\n }\n\n for (const node of program.body) {\n if (t.isExpressionStatement(node) && isModuleExportsAssignment(node.expression)) {\n const moduleExportsConfig = resolveObjectExpression(node.expression.right, nextConfigVariables);\n if (moduleExportsConfig) {\n return moduleExportsConfig;\n }\n }\n\n if (t.isExportDefaultDeclaration(node) && t.isExpression(node.declaration)) {\n const exportedConfig = resolveObjectExpression(node.declaration, nextConfigVariables);\n if (exportedConfig) {\n return exportedConfig;\n }\n }\n }\n\n return null;\n}\n\nfunction parseNextConfig(nextConfigContent: string): NextConfig | null {\n if (!nextConfigContent.includes('serverExternalPackages')) {\n return {};\n }\n\n const program = parseProgram(nextConfigContent);\n const config = findNextConfigObject(program);\n if (!config) {\n return null;\n }\n\n return {\n serverExternalPackages: readServerExternalPackages(config),\n };\n}\n\nfunction readNextConfig(dir: string) {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n const nextConfigContent = readFileSync(nextConfigPath, 'utf-8');\n return parseNextConfig(nextConfigContent);\n } catch {\n return null;\n }\n}\n\nfunction isNextJsProject(dir: string): boolean {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n readFileSync(nextConfigPath, 'utf-8');\n return true;\n } catch {\n return false;\n }\n}\n\nexport const nextConfigRule: LintRule = {\n name: 'next-config',\n description: 'Checks if Next.js config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<LintIssue[]> {\n if (!isNextJsProject(context.rootDir)) {\n return [];\n }\n\n const nextConfig = readNextConfig(context.rootDir);\n if (!nextConfig) {\n return [\n {\n code: 'NEXT_MISSING_SERVER_EXTERNAL_PACKAGES',\n severity: 'error',\n scope: 'project',\n message: 'next.config.js could not be parsed for serverExternalPackages.',\n fix: 'Ensure next.config.js exports a plain object and includes serverExternalPackages: [\"@mastra/*\"].',\n },\n ];\n }\n\n const serverExternals = nextConfig.serverExternalPackages || [];\n const hasMastraExternals = serverExternals.some(\n (pkg: string) => pkg === '@mastra/*' || pkg === '@mastra/core' || pkg.startsWith('@mastra/'),\n );\n\n if (!hasMastraExternals) {\n return [\n {\n code: 'NEXT_MISSING_SERVER_EXTERNAL_PACKAGES',\n severity: 'error',\n scope: 'project',\n message: 'next.config.js is missing Mastra packages in serverExternalPackages.',\n fix: 'Add serverExternalPackages: [\"@mastra/*\"] to your next.config.js.',\n },\n ];\n }\n\n return [];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport stripJsonComments from 'strip-json-comments';\nimport type { LintContext, LintIssue, LintRule } from './types.js';\n\nfunction readTsConfig(dir: string) {\n const tsConfigPath = join(dir, 'tsconfig.json');\n try {\n const tsConfigContent = readFileSync(tsConfigPath, 'utf-8');\n const cleanTsConfigContent = stripJsonComments(tsConfigContent);\n return JSON.parse(cleanTsConfigContent);\n } catch {\n return null;\n }\n}\n\nexport const tsConfigRule: LintRule = {\n name: 'ts-config',\n description: 'Checks if TypeScript config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<LintIssue[]> {\n const tsConfig = readTsConfig(context.rootDir);\n if (!tsConfig) {\n return [\n {\n code: 'MISSING_TSCONFIG',\n severity: 'warning',\n scope: 'project',\n message: 'No tsconfig.json found. Mastra projects should include a TypeScript config.',\n fix: 'Add a tsconfig.json file. See https://mastra.ai/en/docs/getting-started/installation#initialize-typescript',\n },\n ];\n }\n\n const { module, moduleResolution } = tsConfig.compilerOptions || {};\n\n const isValidConfig = moduleResolution === 'bundler' || module === 'CommonJS';\n if (!isValidConfig) {\n return [\n {\n code: 'INVALID_TSCONFIG',\n severity: 'error',\n scope: 'project',\n message:\n 'tsconfig.json must set either compilerOptions.moduleResolution to \"bundler\" or compilerOptions.module to \"CommonJS\".',\n fix: 'Update tsconfig.json with either { \"compilerOptions\": { \"moduleResolution\": \"bundler\" } } or { \"compilerOptions\": { \"module\": \"CommonJS\" } }. See https://mastra.ai/en/docs/getting-started/installation#initialize-typescript',\n },\n ];\n }\n\n return [];\n },\n};\n","import { mastraCoreRule } from './mastraCoreRule.js';\nimport { nextConfigRule } from './nextConfigRule.js';\nimport { tsConfigRule } from './tsConfigRule.js';\nimport type { LintRule } from './types.js';\n\nexport const rules: LintRule[] = [nextConfigRule, tsConfigRule, mastraCoreRule];\n","import { readFileSync } from 'node:fs';\nimport { join, resolve } from 'node:path';\nimport * as p from '@clack/prompts';\nimport { getDeployer } from '@mastra/deployer';\nimport pc from 'picocolors';\nimport { FileService } from '../../services/service.file.js';\nimport { logger } from '../../utils/logger.js';\nimport { runBuild } from '../../utils/run-build.js';\nimport { BuildBundler } from '../build/BuildBundler.js';\nimport { preflightBuildOutput } from '../deploy-preflight.js';\nimport type { PreflightIssue } from '../deploy-preflight.js';\nimport { readEnvVars } from '../studio/deploy.js';\nimport { rules } from './rules/index.js';\nimport type { LintContext, LintIssue, LintIssueCode } from './rules/types.js';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\ninterface MastraPackage {\n name: string;\n version: string;\n isAlpha: boolean;\n}\n\nexport interface LintOptions {\n dir?: string;\n root?: string;\n tools?: string[];\n preflight?: boolean;\n skipBuild?: boolean;\n envFile?: string;\n strict?: boolean;\n json?: boolean;\n debug?: boolean;\n}\n\nexport interface LintResult {\n ok: boolean;\n issues: LintIssue[];\n errorCount: number;\n warningCount: number;\n error?: string;\n}\n\nfunction readPackageJson(dir: string): PackageJson {\n const packageJsonPath = join(dir, 'package.json');\n try {\n const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');\n return JSON.parse(packageJsonContent);\n } catch (error) {\n if (error instanceof Error) {\n logger.error('Failed to read package.json', { error: error.message });\n }\n throw error;\n }\n}\n\nfunction getMastraPackages(packageJson: PackageJson): MastraPackage[] {\n const allDependencies = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n\n const mastraPackages = Object.entries(allDependencies).filter(\n ([name]) => name.startsWith('@mastra/') || name === 'mastra',\n );\n\n return mastraPackages.map(([name, version]) => ({\n name,\n version,\n isAlpha: version.includes('alpha'),\n }));\n}\n\nfunction toLintIssue(issue: PreflightIssue): LintIssue {\n return {\n ...issue,\n code: issue.code as LintIssueCode,\n scope: 'bundle',\n };\n}\n\nfunction createLintResult(issues: LintIssue[], error?: string): LintResult {\n const errorCount = issues.filter(issue => issue.severity === 'error').length;\n const warningCount = issues.filter(issue => issue.severity === 'warning').length;\n\n return {\n ok: error === undefined && errorCount === 0,\n issues,\n errorCount,\n warningCount,\n ...(error !== undefined ? { error } : {}),\n };\n}\n\nexport async function lint(options: LintOptions): Promise<LintResult> {\n const rootDir = options.root || process.cwd();\n const mastraDir = options.dir ? resolve(options.dir) : join(rootDir, 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n try {\n const defaultToolsPath = join(mastraDir, 'tools');\n const discoveredTools = [defaultToolsPath, ...(options.tools ?? [])];\n\n const packageJson = readPackageJson(rootDir);\n const mastraPackages = getMastraPackages(packageJson);\n\n const context: LintContext = {\n rootDir,\n mastraDir,\n outputDirectory,\n discoveredTools,\n packageJson,\n mastraPackages,\n };\n\n const projectIssues = (await Promise.all(rules.map(rule => rule.run(context)))).flat();\n\n if (projectIssues.every(issue => issue.severity !== 'error')) {\n const fileService = new FileService();\n const mastraEntryFile = fileService.getFirstExistingFile([\n join(mastraDir, 'index.ts'),\n join(mastraDir, 'index.js'),\n ]);\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler();\n await deployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n } else {\n await platformDeployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n }\n }\n\n const issues = [...projectIssues];\n\n if (options.preflight) {\n if (!options.skipBuild) {\n await runBuild(rootDir, { debug: options.debug });\n }\n\n const envVars = await readEnvVars(rootDir, {\n envFile: options.envFile,\n autoAccept: options.json ?? false,\n });\n const preflightIssues = await preflightBuildOutput(rootDir, envVars);\n issues.push(...preflightIssues.map(toLintIssue));\n }\n\n return createLintResult(issues);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error('Lint check failed', { error: message });\n return createLintResult([], message);\n }\n}\n\nexport function printLintReport(result: LintResult, options: { strict?: boolean } = {}): void {\n if (result.error) {\n p.log.error(result.error);\n return;\n }\n\n if (result.issues.length === 0) {\n p.log.success('No issues found.');\n return;\n }\n\n const warningsAreErrors = options.strict && result.warningCount > 0 && result.errorCount === 0;\n\n for (const issue of result.issues) {\n const prefix =\n issue.severity === 'error' || warningsAreErrors ? pc.red(`[${issue.code}]`) : pc.yellow(`[${issue.code}]`);\n const message = `${prefix} ${issue.message}\\n ${pc.dim('scope:')} ${issue.scope}\\n ${pc.dim('→')} ${issue.fix}`;\n\n if (issue.severity === 'error' || warningsAreErrors) {\n p.log.error(message);\n } else {\n p.log.warn(message);\n }\n }\n\n if (warningsAreErrors) {\n p.log.error(`Lint failed in --strict mode: ${result.warningCount} warning(s) treated as errors.`);\n }\n}\n\nexport function emitLintJson(result: LintResult, options: { strict?: boolean } = {}): void {\n const blocked = result.error !== undefined || result.errorCount > 0 || (options.strict && result.warningCount > 0);\n\n process.stdout.write(\n JSON.stringify(\n {\n ok: !blocked,\n strict: options.strict ?? false,\n errorCount: result.errorCount,\n warningCount: result.warningCount,\n issues: result.issues,\n ...(result.error !== undefined ? { error: result.error } : {}),\n },\n null,\n 2,\n ) + '\\n',\n );\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\nimport { analytics, origin } from '../..';\nimport { emitLintJson, lint, printLintReport } from '../lint';\n\nexport const lintProject = async (args: {\n dir?: string;\n root?: string;\n tools?: string;\n preflight?: boolean;\n skipBuild?: boolean;\n envFile?: string;\n strict?: boolean;\n json?: boolean;\n debug?: boolean;\n}) => {\n await analytics.trackCommandExecution({\n command: 'lint',\n args,\n execution: async () => {\n const json = args.json ?? false;\n if (!json) {\n p.intro(args.preflight ? 'mastra lint --preflight' : 'mastra lint');\n }\n\n const result = await lint({\n dir: args.dir,\n root: args.root,\n tools: args.tools ? args.tools.split(',') : [],\n preflight: args.preflight,\n skipBuild: args.skipBuild,\n envFile: args.envFile,\n strict: args.strict,\n json,\n debug: args.debug,\n });\n\n if (json) {\n emitLintJson(result, { strict: args.strict });\n } else {\n printLintReport(result, { strict: args.strict });\n }\n\n const blocked = result.error !== undefined || result.errorCount > 0 || (args.strict && result.warningCount > 0);\n if (blocked) {\n if (!json) {\n p.outro(pc.red('✖ Lint failed'));\n }\n process.exit(1);\n }\n\n if (!json) {\n if (result.warningCount > 0) {\n p.outro(pc.yellow(`✓ Lint passed with ${result.warningCount} warning(s)`));\n } else {\n p.outro(pc.green('✓ Lint passed'));\n }\n }\n },\n origin,\n });\n};\n","import * as p from '@clack/prompts';\nimport color from 'picocolors';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport type { ScorerTemplate } from './types';\n\nfunction formatCategoryName(category: string): string {\n return category\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\nfunction formatTable(scorers: ScorerTemplate[]): string {\n if (scorers.length === 0) return '';\n\n // Calculate column widths\n const nameWidth = Math.max(4, Math.max(...scorers.map(s => s.name.length)));\n const idWidth = Math.max(2, Math.max(...scorers.map(s => s.id.length)));\n const typeWidth = Math.max(4, Math.max(...scorers.map(s => s.type.length)));\n const descWidth = Math.max(11, Math.max(...scorers.map(s => s.description.length)));\n\n // Create header\n const header = `${color.bold('Name'.padEnd(nameWidth))} │ ${color.bold('ID'.padEnd(idWidth))} │ ${color.bold('Type'.padEnd(typeWidth))} │ ${color.bold('Description'.padEnd(descWidth))}`;\n const separator =\n '─'.repeat(nameWidth) +\n '─┼─' +\n '─'.repeat(idWidth) +\n '─┼─' +\n '─'.repeat(typeWidth) +\n '─┼─' +\n '─'.repeat(descWidth) +\n '─';\n\n // Create rows\n const rows = scorers.map(\n scorer =>\n `${(scorer?.name ?? scorer?.id).padEnd(nameWidth)} │ ${color.dim(scorer.id.padEnd(idWidth))} │ ${scorer.type.padEnd(typeWidth)} │ ${color.dim(scorer.description.padEnd(descWidth))}`,\n );\n\n return [header, separator, ...rows].join('\\n');\n}\n\nexport function listAllScorers(): void {\n p.intro(color.inverse(' Available Scorers '));\n\n const groupedScorers = AVAILABLE_SCORERS.reduce(\n (acc, scorer) => {\n if (!acc[scorer.category]) {\n acc[scorer.category] = [];\n }\n acc[scorer.category]!.push(scorer);\n return acc;\n },\n {} as Record<string, ScorerTemplate[]>,\n );\n\n for (const [category, scorers] of Object.entries(groupedScorers)) {\n p.log.info(`${color.bold(color.cyan(formatCategoryName(category)))} Scorers:`);\n p.log.message(formatTable(scorers));\n }\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { listAllScorers } from '../scorers/list-all-scorers';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const listScorers = async (args: {}) => {\n await analytics.trackCommandExecution({\n command: 'scorers-list',\n args,\n execution: async () => {\n return listAllScorers();\n },\n origin,\n });\n};\n","import { existsSync, readdirSync } from 'node:fs';\nimport type { Dirent } from 'node:fs';\nimport { dirname, isAbsolute, join, sep } from 'node:path';\n\nconst IGNORED_DIRECTORIES = new Set([\n 'node_modules',\n '.git',\n '.mastra',\n '.turbo',\n '.next',\n 'dist',\n 'build',\n 'coverage',\n]);\n\nexport interface MigratePathResolution {\n rootDir: string;\n mastraDir: string;\n}\n\nexport interface MigrateEntryResolution {\n checkedPaths: string[];\n entryFile?: string;\n}\n\nexport function resolveMigratePaths(args: { cwd: string; root?: string; dir?: string }): MigratePathResolution {\n const rootDir = args.root ? (isAbsolute(args.root) ? args.root : join(args.cwd, args.root)) : args.cwd;\n const mastraDir = args.dir\n ? isAbsolute(args.dir)\n ? args.dir\n : join(rootDir, args.dir)\n : join(rootDir, 'src', 'mastra');\n\n return { rootDir, mastraDir };\n}\n\nexport function resolveMigrateEntryFile(mastraDir: string): MigrateEntryResolution {\n const checkedPaths = [join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')];\n const entryFile = checkedPaths.find(path => existsSync(path));\n return { checkedPaths, entryFile };\n}\n\nfunction isMastraSourceDirectory(path: string): boolean {\n const parts = path.split(sep);\n return parts.length >= 2 && parts[parts.length - 1] === 'mastra' && parts[parts.length - 2] === 'src';\n}\n\nexport function findMastraEntryCandidates(rootDir: string, maxCandidates = 5): string[] {\n const candidates: string[] = [];\n const queue: string[] = [rootDir];\n\n while (queue.length > 0 && candidates.length < maxCandidates) {\n const currentDir = queue.pop()!;\n\n let entries: Dirent[];\n try {\n entries = readdirSync(currentDir, { withFileTypes: true });\n } catch {\n continue;\n }\n\n for (const entry of entries) {\n const entryName = entry.name;\n const fullPath = join(currentDir, entryName);\n\n if (entry.isDirectory()) {\n if (IGNORED_DIRECTORIES.has(entryName)) {\n continue;\n }\n queue.push(fullPath);\n continue;\n }\n\n if (!entry.isFile()) {\n continue;\n }\n\n if ((entryName === 'index.ts' || entryName === 'index.js') && isMastraSourceDirectory(currentDir)) {\n candidates.push(fullPath);\n if (candidates.length >= maxCandidates) {\n break;\n }\n }\n }\n }\n\n return candidates.sort();\n}\n\nexport function toDetectedProjectRoot(entryFile: string): string {\n return dirname(dirname(dirname(entryFile)));\n}\n","import { FileService } from '@mastra/deployer/build';\n\nimport { BuildBundler } from '../build/BuildBundler.js';\nimport { shouldSkipDotenvLoading } from '../utils.js';\n\nexport class MigrateBundler extends BuildBundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super({ studio: false });\n this.customEnvFile = customEnvFile;\n }\n\n override getEnvFiles(): Promise<string[]> {\n // Skip loading .env files if MASTRA_SKIP_DOTENV is set\n if (shouldSkipDotenvLoading()) {\n return Promise.resolve([]);\n }\n\n const possibleFiles = ['.env.development', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, { outputDirectory, projectRoot }, toolsPaths);\n }\n\n protected override getEntry(): string {\n return `\n import { mastra } from '#mastra';\n\n async function runMigration() {\n const storage = mastra.getStorage();\n\n if (!storage) {\n console.log(JSON.stringify({\n success: false,\n alreadyMigrated: false,\n duplicatesRemoved: 0,\n message: 'Storage not configured. Please configure storage in your Mastra instance.',\n }));\n process.exit(1);\n }\n\n // Access the observability store directly from storage.stores\n const observabilityStore = storage.stores?.observability;\n\n if (!observabilityStore) {\n console.log(JSON.stringify({\n success: false,\n alreadyMigrated: false,\n duplicatesRemoved: 0,\n message: 'Observability storage not configured. Migration not required.',\n }));\n process.exit(0);\n }\n\n // Check if the store has a migrateSpans method\n if (typeof observabilityStore.migrateSpans !== 'function') {\n console.log(JSON.stringify({\n success: false,\n alreadyMigrated: false,\n duplicatesRemoved: 0,\n message: 'Migration not supported for this storage backend.',\n }));\n process.exit(1);\n }\n\n try {\n // Run the migration - migrateSpans handles everything internally\n const result = await observabilityStore.migrateSpans();\n\n console.log(JSON.stringify({\n success: result.success,\n alreadyMigrated: result.alreadyMigrated,\n duplicatesRemoved: result.duplicatesRemoved,\n message: result.message,\n }));\n\n process.exit(result.success ? 0 : 1);\n } catch (error) {\n console.log(JSON.stringify({\n success: false,\n alreadyMigrated: false,\n duplicatesRemoved: 0,\n message: error instanceof Error ? error.message : 'Unknown error during migration',\n }));\n process.exit(1);\n }\n }\n\n runMigration();\n `;\n }\n}\n","import { join, relative } from 'node:path';\nimport process from 'node:process';\nimport * as p from '@clack/prompts';\nimport { execa } from 'execa';\nimport pc from 'picocolors';\n\nimport { createLogger } from '../../utils/logger.js';\n\nimport {\n findMastraEntryCandidates,\n resolveMigrateEntryFile,\n resolveMigratePaths,\n toDetectedProjectRoot,\n} from './migrate-paths';\nimport { MigrateBundler } from './MigrateBundler';\n\ninterface MigrationResult {\n success: boolean;\n alreadyMigrated: boolean;\n duplicatesRemoved: number;\n message: string;\n}\n\nfunction quoteShellArg(value: string): string {\n return `\"${value.replace(/([\"\\\\$`])/gu, '\\\\$1')}\"`;\n}\n\nexport async function migrate({\n dir,\n root,\n env,\n debug,\n yes,\n}: {\n dir?: string;\n root?: string;\n env?: string;\n debug: boolean;\n yes: boolean;\n}) {\n const logger = createLogger(debug);\n const { rootDir, mastraDir } = resolveMigratePaths({\n cwd: process.cwd(),\n root,\n dir,\n });\n const { checkedPaths, entryFile } = resolveMigrateEntryFile(mastraDir);\n const dotMastraPath = join(rootDir, '.mastra');\n\n if (!entryFile) {\n logger.error(pc.red('Error: Could not find Mastra entry file.'));\n logger.info('');\n logger.info('Expected one of the following files:');\n checkedPaths.forEach(path => logger.info(` - ${path}`));\n logger.info('');\n logger.info('This command requires a Mastra entrypoint (src/mastra/index.ts or index.js).');\n logger.info('If your project is in a custom location (for example in a monorepo), run:');\n logger.info(pc.cyan(' npx mastra migrate --dir <path/to/src/mastra> --root <path/to/project-root>'));\n logger.info(pc.cyan(' pnpm exec mastra migrate --dir <path/to/src/mastra> --root <path/to/project-root>'));\n\n const candidates = findMastraEntryCandidates(rootDir, 5);\n if (candidates.length > 0) {\n logger.info('');\n logger.info('Detected candidate entrypoints under the selected root:');\n for (const candidate of candidates) {\n const rootBase = toDetectedProjectRoot(candidate);\n const suggestedDir = relative(rootBase, candidate).replace(/[\\\\/]index\\.(ts|js)$/u, '');\n const suggestedRoot = relative(process.cwd(), rootBase) || '.';\n logger.info(` - ${candidate}`);\n logger.info(\n pc.dim(\n ` Example: npx mastra migrate --dir ${quoteShellArg(suggestedDir)} --root ${quoteShellArg(suggestedRoot)}`,\n ),\n );\n }\n }\n\n process.exit(1);\n }\n\n p.intro(pc.cyan('Mastra Storage Migration'));\n\n // Show backup warning and ask for confirmation (unless --yes flag is used)\n if (!yes) {\n p.log.warn(pc.yellow('Warning: This migration will modify your database.'));\n p.log.message('Before proceeding, please ensure you have:');\n p.log.message(' • Created a backup of your database');\n p.log.message(' • Tested this migration in a non-production environment');\n\n const confirmed = await p.confirm({\n message: 'Have you backed up your database and are ready to proceed?',\n initialValue: false,\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n p.log.info('Migration cancelled. Please back up your database before running this command.');\n p.log.message(pc.dim('Tip: Use --yes or -y to skip this prompt in CI/automation.'));\n process.exit(0);\n }\n }\n\n try {\n const bundler = new MigrateBundler(env);\n bundler.__setLogger(logger);\n\n logger.info('Building project for migration...');\n\n // Prepare the output directory\n await bundler.prepare(dotMastraPath);\n\n // Bundle the project with migration entry\n const discoveredTools = bundler.getAllToolPaths(mastraDir, []);\n await bundler.bundle(entryFile, dotMastraPath, {\n toolsPaths: discoveredTools,\n projectRoot: rootDir,\n });\n\n logger.info('Running migration...');\n logger.info(pc.dim('This may take a while for large tables.'));\n logger.info('');\n\n // Load environment variables\n const loadedEnv = await bundler.loadEnvVars();\n\n // Execute the bundled migration script\n const migrationProcess = execa(process.execPath, [join(dotMastraPath, 'output', 'index.mjs')], {\n cwd: rootDir,\n env: {\n NODE_ENV: 'production',\n MASTRA_DISABLE_STORAGE_INIT: 'true', // Prevent MIGRATION_REQUIRED error during import\n ...Object.fromEntries(loadedEnv),\n },\n stdio: ['inherit', 'pipe', 'pipe'],\n reject: false,\n });\n\n let stdoutData = '';\n let stderrData = '';\n\n migrationProcess.stdout?.on('data', (data: Buffer) => {\n stdoutData += data.toString();\n });\n\n migrationProcess.stderr?.on('data', (data: Buffer) => {\n stderrData += data.toString();\n // Print stderr to console for debugging\n if (debug) {\n process.stderr.write(data);\n }\n });\n\n const processResult = await migrationProcess;\n\n // Try to parse the JSON result from stdout\n let result: MigrationResult | undefined;\n try {\n // Find the last JSON object in the output (in case there's other output)\n const jsonMatch = stdoutData.match(/\\{[^{}]*\"success\"[^{}]*\\}/g);\n if (jsonMatch && jsonMatch.length > 0) {\n result = JSON.parse(jsonMatch[jsonMatch.length - 1]!);\n }\n } catch {\n // If we can't parse JSON, the migration likely failed\n }\n\n if (result) {\n if (result.success) {\n if (result.alreadyMigrated) {\n logger.info(pc.green('✓ Migration already complete.'));\n } else {\n logger.info(pc.green('✓ Migration completed successfully!'));\n if (result.duplicatesRemoved > 0) {\n logger.info('Removed duplicate entries', { count: result.duplicatesRemoved });\n }\n }\n logger.info(result.message);\n } else {\n logger.error(pc.red('✗ Migration failed.'));\n logger.error(result.message);\n process.exit(1);\n }\n } else {\n // No JSON result - check if process failed\n if (processResult.exitCode !== 0) {\n logger.error(pc.red('✗ Migration failed.'));\n if (stderrData) {\n logger.error(stderrData);\n }\n if (stdoutData && !stdoutData.includes('\"success\"')) {\n logger.error(stdoutData);\n }\n process.exit(1);\n } else {\n // Process succeeded but no JSON output - unusual but OK\n logger.info(pc.green('✓ Migration completed.'));\n }\n }\n } catch (error: any) {\n if (error.code === 'ERR_MODULE_NOT_FOUND' || error.message?.includes('Cannot find module')) {\n logger.error(pc.red('Error: Could not find Mastra entry file.'));\n logger.info('');\n logger.info('Make sure your Mastra directory has an index.ts or index.js file.');\n logger.info('Expected location', { path: mastraDir });\n logger.info('');\n logger.info('You can specify a custom directory:');\n logger.info(pc.cyan(' npx mastra migrate --dir <path/to/src/mastra> --root <path/to/project-root>'));\n } else {\n logger.error(pc.red(`Error: ${error.message}`));\n if (debug) {\n logger.error(error);\n }\n }\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { migrate as runMigrate } from '../migrate/migrate';\n\nexport const migrate = async (args: { dir?: string; root?: string; env?: string; debug?: boolean; yes?: boolean }) => {\n await analytics.trackCommandExecution({\n command: 'mastra migrate',\n args: { ...args },\n execution: async () => {\n await runMigrate({\n dir: args?.dir,\n root: args?.root,\n env: args?.env,\n debug: args?.debug ?? false,\n yes: args?.yes ?? false,\n });\n },\n origin,\n });\n};\n","import path from 'node:path';\nimport pc from 'picocolors';\nimport { version } from '..';\ninterface DevLoggerOptions {\n timestamp?: boolean;\n colors?: boolean;\n}\n\ninterface HTTPSOptions {\n key: Buffer;\n cert: Buffer;\n}\n\nexport class DevLogger {\n private options: DevLoggerOptions;\n\n constructor(options: DevLoggerOptions = {}) {\n this.options = {\n timestamp: false,\n colors: true,\n ...options,\n };\n }\n\n private formatTime(): string {\n if (!this.options.timestamp) return '';\n return pc.dim(new Date().toLocaleTimeString());\n }\n\n private formatPrefix(text: string, color: (str: string) => string): string {\n const time = this.formatTime();\n const prefix = pc.bold(color(text));\n return time ? `${time} ${prefix}` : prefix;\n }\n\n info(message: string): void {\n const prefix = this.formatPrefix('◐', pc.cyan);\n console.info(`${prefix} ${message}`);\n }\n\n success(message: string): void {\n const prefix = this.formatPrefix('✓', pc.green);\n console.info(`${prefix} ${pc.green(message)}`);\n }\n\n warn(message: string): void {\n const prefix = this.formatPrefix('⚠', pc.yellow);\n console.info(`${prefix} ${pc.yellow(message)}`);\n }\n\n error(message: string): void {\n const prefix = this.formatPrefix('✗', pc.red);\n console.info(`${prefix} ${pc.red(message)}`);\n }\n\n starting(): void {\n const prefix = this.formatPrefix('◇', pc.blue);\n console.info(`${prefix} ${pc.blue('Starting Mastra dev server...')}`);\n }\n\n ready(\n host: string,\n port: number,\n studioBasePath: string,\n apiPrefix: string,\n startTime?: number,\n https?: HTTPSOptions,\n ): void {\n let protocol = 'http';\n if (https && https.key && https.cert) {\n protocol = 'https';\n }\n\n console.info('');\n const timing = startTime ? `${Date.now() - startTime} ms` : 'XXX ms';\n console.info(pc.inverse(pc.green(' mastra ')) + ` ${pc.green(version)} ${pc.gray('ready in')} ${timing}`);\n console.info('');\n console.info(`${pc.dim('│')} ${pc.bold('Studio:')} ${pc.cyan(`${protocol}://${host}:${port}${studioBasePath}`)}`);\n console.info(`${pc.dim('│')} ${pc.bold('API:')} ${`${protocol}://${host}:${port}${apiPrefix}`}`);\n console.info('');\n }\n\n bundling(): void {\n const prefix = this.formatPrefix('◐', pc.magenta);\n console.info(`${prefix} ${pc.magenta('Bundling...')}`);\n }\n\n bundleComplete(): void {\n const prefix = this.formatPrefix('✓', pc.green);\n console.info(`${prefix} ${pc.green('Bundle complete')}`);\n }\n\n watching(): void {\n const time = this.formatTime();\n const icon = pc.dim('◯');\n const message = pc.dim('watching for file changes...');\n const fullMessage = `${icon} ${message}`;\n console.info(time ? `${time} ${fullMessage}` : fullMessage);\n }\n\n restarting(): void {\n const prefix = this.formatPrefix('↻', pc.blue);\n console.info(`${prefix} ${pc.blue('Restarting server...')}`);\n }\n\n fileChange(file: string): void {\n const prefix = this.formatPrefix('⚡', pc.cyan);\n const fileName = path.basename(file);\n console.info(`${prefix} ${pc.cyan('File changed:')} ${pc.dim(fileName)}`);\n }\n\n // Enhanced error reporting\n serverError(error: string): void {\n console.info('');\n console.info(pc.red(' ✗ ') + pc.bold(pc.red('Server Error')));\n console.info('');\n console.info(` ${pc.red('│')} ${error}`);\n console.info('');\n }\n\n shutdown(): void {\n console.info('');\n const prefix = this.formatPrefix('✓', pc.green);\n console.info(`${prefix} ${pc.green('Dev server stopped')}`);\n }\n\n envInfo(info: { port: number; env?: string; root: string }): void {\n console.info('');\n console.info(` ${pc.dim('│')} ${pc.bold('Environment:')} ${pc.cyan(info.env || 'development')}`);\n console.info(` ${pc.dim('│')} ${pc.bold('Root:')} ${pc.dim(info.root)}`);\n console.info(` ${pc.dim('│')} ${pc.bold('Port:')} ${pc.cyan(info.port.toString())}`);\n }\n\n raw(message: string): void {\n console.info(message);\n }\n\n debug(message: string): void {\n if (process.env.DEBUG || process.env.MASTRA_DEBUG) {\n const prefix = this.formatPrefix('◦', pc.gray);\n console.info(`${prefix} ${pc.gray(message)}`);\n }\n }\n\n private spinnerChars = ['◐', '◓', '◑', '◒'];\n private spinnerIndex = 0;\n\n getSpinnerChar(): string {\n const char = this.spinnerChars[this.spinnerIndex];\n this.spinnerIndex = (this.spinnerIndex + 1) % this.spinnerChars.length;\n return char || '◐'; // fallback to default char\n }\n\n clearLine(): void {\n process.stdout.write('\\r\\x1b[K');\n }\n\n update(message: string): void {\n this.clearLine();\n const prefix = this.formatPrefix(this.getSpinnerChar(), pc.cyan);\n process.stdout.write(`${prefix} ${message}`);\n }\n}\n\nexport const devLogger = new DevLogger();\n","import { existsSync } from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\n/**\n * Loads and validates a request context presets JSON file.\n *\n * @param presetsPath - Path to the presets JSON file (relative or absolute)\n * @returns The original JSON string content\n * @throws Error if file doesn't exist, JSON is invalid, or structure is incorrect\n */\nexport async function loadAndValidatePresets(presetsPath: string): Promise<string> {\n const absolutePath = resolve(process.cwd(), presetsPath);\n\n if (!existsSync(absolutePath)) {\n throw new Error(`Presets file not found: ${absolutePath}`);\n }\n\n const content = await readFile(absolutePath, 'utf-8');\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(content);\n } catch {\n throw new Error(`Invalid JSON in presets file: ${presetsPath}`);\n }\n\n if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {\n throw new Error(`Presets file must contain a JSON object with named presets`);\n }\n\n // Validate each preset value is an object\n for (const [key, value] of Object.entries(parsed)) {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new Error(`Preset \"${key}\" must be a JSON object`);\n }\n }\n\n return content; // Return original string to preserve formatting\n}\n\n/**\n * Escapes a JSON string for safe embedding in HTML/JavaScript.\n * Handles backslashes, single quotes, newlines, carriage returns,\n * script-breaking sequences, and Unicode line terminators.\n *\n * @param json - JSON string to escape\n * @returns Escaped string safe for HTML embedding\n */\nexport function escapeJsonForHtml(json: string): string {\n return json\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/</g, '\\\\u003c')\n .replace(/>/g, '\\\\u003e')\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029');\n}\n","import { writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { FileService } from '@mastra/deployer';\nimport { createWatcher, getWatcherInputOptions } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\nimport * as fsExtra from 'fs-extra';\nimport type { InputPluginOption, RollupWatcherEvent } from 'rollup';\n\nimport { devLogger } from '../../utils/dev-logger.js';\nimport { shouldSkipDotenvLoading } from '../utils.js';\n\nexport class DevBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Dev');\n this.customEnvFile = customEnvFile;\n // Use 'neutral' platform for Bun to preserve Bun-specific globals, 'node' otherwise\n this.platform = process.versions?.bun ? 'neutral' : 'node';\n }\n\n getEnvFiles(): Promise<string[]> {\n // Skip loading .env files if MASTRA_SKIP_DOTENV is set\n if (shouldSkipDotenvLoading()) {\n return Promise.resolve([]);\n }\n\n const possibleFiles = ['.env.development', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const studioServePath = join(outputDirectory, this.outputDir, 'studio');\n await fsExtra.copy(join(dirname(__dirname), join('dist', 'studio')), studioServePath, {\n overwrite: true,\n });\n }\n\n async watch(\n entryFile: string,\n outputDirectory: string,\n toolsPaths: (string | string[])[],\n ): ReturnType<typeof createWatcher> {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const envFiles = await this.getEnvFiles();\n const bundlerOptions = await this.getUserBundlerOptions(entryFile, outputDirectory);\n const sourcemapEnabled = !!bundlerOptions?.sourcemap;\n\n const inputOptions = await getWatcherInputOptions(\n entryFile,\n this.platform,\n {\n 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),\n },\n { sourcemap: sourcemapEnabled },\n );\n const toolsInputOptions = await this.listToolsInputOptions(toolsPaths);\n\n const outputDir = join(outputDirectory, this.outputDir);\n\n await this.writePackageJson(outputDir, new Map(), {});\n\n const watcher = await createWatcher(\n {\n ...inputOptions,\n logLevel: inputOptions.logLevel === 'silent' ? 'warn' : inputOptions.logLevel,\n onwarn: warning => {\n if (warning.code === 'CIRCULAR_DEPENDENCY') {\n if (warning.ids?.[0]?.includes('node_modules')) {\n return;\n }\n\n this.logger.warn('Circular dependency found', {\n dependency: warning.message.replace('Circular dependency: ', ''),\n });\n }\n },\n plugins: [\n ...(inputOptions.plugins as InputPluginOption[]),\n {\n name: 'env-watcher',\n buildStart() {\n for (const envFile of envFiles) {\n this.addWatchFile(envFile);\n }\n },\n },\n {\n name: 'tools-watcher',\n async buildEnd() {\n const toolImports: string[] = [];\n const toolsExports: string[] = [];\n Array.from(Object.keys(toolsInputOptions || {}))\n .filter(key => key.startsWith('tools/'))\n .forEach((key, index) => {\n const toolExport = `tool${index}`;\n toolImports.push(`import * as ${toolExport} from './${key}.mjs';`);\n toolsExports.push(toolExport);\n });\n\n await writeFile(\n join(outputDir, 'tools.mjs'),\n `${toolImports.join('\\n')}\n\n export const tools = [${toolsExports.join(', ')}]`,\n );\n },\n },\n ],\n input: {\n index: join(__dirname, 'templates', 'dev.entry.js'),\n ...toolsInputOptions,\n },\n },\n {\n dir: outputDir,\n sourcemap: sourcemapEnabled,\n },\n );\n\n devLogger.info('Preparing development environment...');\n return new Promise((resolve, reject) => {\n const cb = (event: RollupWatcherEvent) => {\n if (event.code === 'BUNDLE_END') {\n devLogger.success('Initial bundle complete');\n watcher.off('event', cb);\n resolve(watcher);\n }\n\n if (event.code === 'ERROR') {\n console.info(event);\n devLogger.error('Bundling failed - check console for details');\n watcher.off('event', cb);\n reject(event);\n }\n };\n\n watcher.on('event', cb);\n });\n }\n\n async bundle(): Promise<void> {\n // Do nothing\n }\n}\n","import type { ChildProcess } from 'node:child_process';\nimport { mkdir, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport process from 'node:process';\nimport devcert from '@expo/devcert';\nimport { FileService } from '@mastra/deployer';\nimport { getServerOptions, normalizeStudioBase } from '@mastra/deployer/build';\nimport { execa } from 'execa';\nimport getPort from 'get-port';\nimport pc from 'picocolors';\nimport { getAnalytics } from '../../analytics/index.js';\nimport { checkMastraPeerDeps, getUpdateCommand, logPeerDepWarnings } from '../../utils/check-peer-deps.js';\nimport type { PeerDepMismatch } from '../../utils/check-peer-deps.js';\nimport { devLogger } from '../../utils/dev-logger.js';\nimport { createLogger } from '../../utils/logger.js';\nimport type { MastraPackageInfo } from '../../utils/mastra-packages.js';\nimport { getMastraPackages } from '../../utils/mastra-packages.js';\nimport { loadAndValidatePresets } from '../../utils/validate-presets.js';\n\nimport { DevBundler } from './DevBundler';\n\nlet currentServerProcess: ChildProcess | undefined;\nlet isRestarting = false;\nlet serverStartTime: number | undefined;\nlet requestContextPresetsJson: string | undefined;\nconst ON_ERROR_MAX_RESTARTS = 3;\n\nfunction waitForProcessExit(child: ChildProcess, timeoutMs = 2000): Promise<void> {\n if (child.exitCode !== null) {\n return Promise.resolve();\n }\n return new Promise(resolve => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const done = () => {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n resolve();\n };\n child.once('exit', done);\n if (child.exitCode !== null) {\n child.removeListener('exit', done);\n done();\n return;\n }\n timer = setTimeout(() => {\n child.kill('SIGKILL');\n }, timeoutMs);\n });\n}\n\ninterface HTTPSOptions {\n key: Buffer;\n cert: Buffer;\n}\n\ninterface StartOptions {\n inspect?: string | boolean;\n inspectBrk?: string | boolean;\n customArgs?: string[];\n https?: HTTPSOptions;\n mastraPackages?: MastraPackageInfo[];\n peerDepMismatches?: PeerDepMismatch[];\n}\n\ntype ProcessOptions = {\n port: number;\n host: string;\n studioBasePath: string;\n apiPrefix: string;\n publicDir: string;\n};\n\nconst restartAllActiveWorkflowRuns = async ({ host, port, https }: { host: string; port: number; https?: boolean }) => {\n const scheme = https ? 'https' : 'http';\n try {\n await fetch(`${scheme}://${host}:${port}/__restart-active-workflow-runs`, {\n method: 'POST',\n });\n } catch (error) {\n devLogger.error(`Failed to restart all active workflow runs: ${error}`);\n // Retry after another second\n await new Promise(resolve => setTimeout(resolve, 1500));\n try {\n await fetch(`${scheme}://${host}:${port}/__restart-active-workflow-runs`, {\n method: 'POST',\n });\n } catch {\n // Ignore retry errors\n }\n }\n};\n\nconst startServer = async (\n dotMastraPath: string,\n { port, host, studioBasePath, apiPrefix, publicDir }: ProcessOptions,\n env: Map<string, string>,\n startOptions: StartOptions = {},\n errorRestartCount = 0,\n) => {\n let serverIsReady = false;\n try {\n // Restart server\n serverStartTime = Date.now();\n devLogger.starting();\n\n const commands = [];\n\n const inspect = startOptions.inspect === '' ? true : startOptions.inspect;\n const inspectBrk = startOptions.inspectBrk === '' ? true : startOptions.inspectBrk;\n\n if (inspect) {\n const inspectFlag = typeof inspect === 'string' ? `--inspect=${inspect}` : '--inspect';\n commands.push(inspectFlag);\n }\n\n if (inspectBrk) {\n const inspectBrkFlag = typeof inspectBrk === 'string' ? `--inspect-brk=${inspectBrk}` : '--inspect-brk';\n commands.push(inspectBrkFlag);\n }\n\n if (startOptions.customArgs) {\n commands.push(...startOptions.customArgs);\n }\n\n commands.push(join(dotMastraPath, 'index.mjs'));\n\n // Write mastra packages to a file and pass the file path via env var\n const packagesFilePath = join(dotMastraPath, '..', 'mastra-packages.json');\n await mkdir(dotMastraPath, { recursive: true });\n if (startOptions.mastraPackages) {\n await writeFile(packagesFilePath, JSON.stringify(startOptions.mastraPackages), 'utf-8');\n }\n\n await mkdir(publicDir, { recursive: true });\n currentServerProcess = execa(process.execPath, commands, {\n cwd: publicDir,\n env: {\n NODE_ENV: 'production',\n ...Object.fromEntries(env),\n MASTRA_DEV: 'true',\n PORT: port.toString(),\n MASTRA_PACKAGES_FILE: packagesFilePath,\n ...(startOptions?.https\n ? {\n MASTRA_HTTPS_KEY: startOptions.https.key.toString('base64'),\n MASTRA_HTTPS_CERT: startOptions.https.cert.toString('base64'),\n }\n : {}),\n },\n stdio: ['inherit', 'pipe', 'pipe', 'ipc'],\n reject: false,\n }) as any as ChildProcess;\n\n if (currentServerProcess?.exitCode && currentServerProcess?.exitCode !== 0) {\n if (!currentServerProcess) {\n throw new Error(`Server failed to start`);\n }\n throw new Error(\n `Server failed to start with error: ${currentServerProcess.stderr || currentServerProcess.stdout}`,\n );\n }\n\n // Filter server output to remove Studio message\n if (currentServerProcess.stdout) {\n currentServerProcess.stdout.on('data', (data: Buffer) => {\n const output = data.toString();\n if (!output.includes('Studio available') && !output.includes('👨‍💻') && !output.includes('Mastra API running')) {\n process.stdout.write(output);\n }\n });\n }\n\n if (currentServerProcess.stderr) {\n currentServerProcess.stderr.on('data', (data: Buffer) => {\n const output = data.toString();\n if (!output.includes('Studio available') && !output.includes('👨‍💻') && !output.includes('Mastra API running')) {\n process.stderr.write(output);\n }\n });\n }\n\n // Handle IPC errors to prevent EPIPE crashes\n currentServerProcess.on('error', (err: Error) => {\n if ((err as any).code !== 'EPIPE') {\n throw err;\n }\n });\n\n // Show hint about updating packages when server exits with error\n currentServerProcess.on('exit', (code: number | null) => {\n if (code !== null && code !== 0) {\n const updateCommand = getUpdateCommand(startOptions.peerDepMismatches ?? []);\n if (updateCommand) {\n console.warn();\n devLogger.warn(`This error may be caused by mismatched package versions. Try running:`);\n console.warn(` ${pc.cyan(updateCommand)}`);\n console.warn();\n }\n }\n });\n\n currentServerProcess.on('message', async (message: any) => {\n if (message?.type === 'server-ready') {\n serverIsReady = true;\n devLogger.ready(host, port, studioBasePath, apiPrefix, serverStartTime, startOptions.https);\n devLogger.watching();\n\n await restartAllActiveWorkflowRuns({ host, port, https: !!startOptions.https });\n\n // Send refresh signal\n const scheme = startOptions.https ? 'https' : 'http';\n try {\n await fetch(`${scheme}://${host}:${port}${studioBasePath}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Retry after another second\n await new Promise(resolve => setTimeout(resolve, 1500));\n try {\n await fetch(`${scheme}://${host}:${port}${studioBasePath}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Ignore retry errors\n }\n }\n }\n });\n } catch (err) {\n const execaError = err as { stderr?: string; stdout?: string };\n if (execaError.stderr) {\n devLogger.serverError(execaError.stderr);\n devLogger.debug(`Server error output: ${execaError.stderr}`);\n }\n if (execaError.stdout) devLogger.debug(`Server output: ${execaError.stdout}`);\n\n // Show hint about updating packages if there are peer dep mismatches\n const updateCommand = getUpdateCommand(startOptions.peerDepMismatches ?? []);\n if (updateCommand) {\n devLogger.warn(`This error may be caused by mismatched package versions. Try running: ${updateCommand}`);\n }\n\n if (!serverIsReady) {\n throw err;\n }\n\n // Attempt to restart on error after a delay\n setTimeout(() => {\n if (!isRestarting) {\n errorRestartCount++;\n if (errorRestartCount > ON_ERROR_MAX_RESTARTS) {\n devLogger.error(`Server failed to start after ${ON_ERROR_MAX_RESTARTS} error attempts. Giving up.`);\n process.exit(1);\n }\n devLogger.warn(\n `Attempting to restart server after error... (Attempt ${errorRestartCount}/${ON_ERROR_MAX_RESTARTS})`,\n );\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startServer(\n dotMastraPath,\n {\n port,\n host,\n studioBasePath,\n apiPrefix,\n publicDir,\n },\n env,\n startOptions,\n errorRestartCount,\n );\n }\n }, 1000);\n }\n};\n\nasync function checkAndRestart(\n dotMastraPath: string,\n { port, host, studioBasePath, apiPrefix, publicDir }: ProcessOptions,\n bundler: DevBundler,\n startOptions: StartOptions = {},\n) {\n if (isRestarting) {\n return;\n }\n\n try {\n // Check if hot reload is disabled due to template installation\n const scheme = startOptions.https ? 'https' : 'http';\n const response = await fetch(`${scheme}://${host}:${port}${studioBasePath}/__hot-reload-status`);\n if (response.ok) {\n const status = (await response.json()) as { disabled: boolean; timestamp: string };\n if (status.disabled) {\n devLogger.info('[Mastra Dev] - ⏸️ Server restart skipped: agent builder action in progress');\n return;\n }\n }\n } catch (error) {\n // If we can't check status (server down), proceed with restart\n devLogger.debug(`[Mastra Dev] - Could not check hot reload status: ${error}`);\n }\n\n // Proceed with restart\n devLogger.info('[Mastra Dev] - ✅ Restarting server...');\n await rebundleAndRestart(dotMastraPath, { port, host, studioBasePath, apiPrefix, publicDir }, bundler, startOptions);\n}\n\nasync function rebundleAndRestart(\n dotMastraPath: string,\n { port, host, studioBasePath, apiPrefix, publicDir }: ProcessOptions,\n bundler: DevBundler,\n startOptions: StartOptions = {},\n) {\n if (isRestarting) {\n return;\n }\n\n isRestarting = true;\n try {\n // If current server process is running, stop it\n if (currentServerProcess) {\n devLogger.restarting();\n devLogger.debug('Stopping current server...');\n const serverProcess = currentServerProcess;\n // Wait for the process to exit before starting a new one\n await new Promise<void>(resolve => {\n if (serverProcess.exitCode !== null || serverProcess.signalCode !== null) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n const handleExit = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n resolve();\n };\n\n serverProcess.once('exit', handleExit);\n\n try {\n serverProcess.kill('SIGINT');\n } catch {\n if (serverProcess.exitCode !== null || serverProcess.signalCode !== null) {\n serverProcess.off('exit', handleExit);\n resolve();\n }\n return;\n }\n\n timeout = setTimeout(() => {\n try {\n serverProcess.kill('SIGKILL');\n } catch {\n if (serverProcess.exitCode !== null || serverProcess.signalCode !== null) {\n serverProcess.off('exit', handleExit);\n resolve();\n }\n }\n }, 5000);\n });\n if (currentServerProcess === serverProcess) {\n currentServerProcess = undefined;\n }\n }\n\n const env = await bundler.loadEnvVars();\n\n // Add request context presets to env if available\n if (requestContextPresetsJson) {\n env.set('MASTRA_REQUEST_CONTEXT_PRESETS', requestContextPresetsJson);\n }\n\n // spread env into process.env\n for (const [key, value] of env.entries()) {\n process.env[key] = value;\n }\n\n await startServer(\n join(dotMastraPath, 'output'),\n {\n port,\n host,\n studioBasePath,\n apiPrefix,\n publicDir,\n },\n env,\n startOptions,\n );\n } finally {\n isRestarting = false;\n }\n}\n\nexport async function dev({\n dir,\n root,\n tools,\n env,\n inspect,\n inspectBrk,\n customArgs,\n https,\n requestContextPresets,\n debug,\n}: {\n dir?: string;\n root?: string;\n tools?: string[];\n env?: string;\n inspect?: string | boolean;\n inspectBrk?: string | boolean;\n customArgs?: string[];\n https?: boolean;\n requestContextPresets?: string;\n debug: boolean;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(process.cwd(), dir)) : join(process.cwd(), 'src', 'mastra');\n const dotMastraPath = join(rootDir, '.mastra');\n\n const fileService = new FileService();\n const entryFile = fileService.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const bundler = new DevBundler(env);\n bundler.__setLogger(createLogger(debug)); // Keep Pino logger for internal bundler operations\n\n // Use the bundler's getAllToolPaths method to prepare tools paths\n const discoveredTools = bundler.getAllToolPaths(mastraDir, tools ?? []);\n\n const loadedEnv = await bundler.loadEnvVars();\n\n // Clear any prior presets to avoid cross-run leakage\n requestContextPresetsJson = undefined;\n loadedEnv.delete('MASTRA_REQUEST_CONTEXT_PRESETS');\n delete process.env.MASTRA_REQUEST_CONTEXT_PRESETS;\n\n // spread loadedEnv into process.env\n for (const [key, value] of loadedEnv.entries()) {\n process.env[key] = value;\n }\n\n // Load and validate request context presets if provided\n if (requestContextPresets) {\n try {\n requestContextPresetsJson = await loadAndValidatePresets(requestContextPresets);\n // Add presets to loaded env so it's passed to the server\n loadedEnv.set('MASTRA_REQUEST_CONTEXT_PRESETS', requestContextPresetsJson);\n } catch (error) {\n devLogger.error(`Failed to load request context presets: ${error instanceof Error ? error.message : error}`);\n process.exit(1);\n }\n }\n\n const serverOptions = await getServerOptions(entryFile, join(dotMastraPath, 'output'));\n let portToUse = serverOptions?.port ?? process.env.PORT;\n let hostToUse = serverOptions?.host ?? process.env.HOST ?? 'localhost';\n const studioBasePathToUse = normalizeStudioBase(serverOptions?.studioBase ?? '/');\n const apiPrefixToUse = serverOptions?.apiPrefix ?? '/api';\n\n if (!portToUse || isNaN(Number(portToUse))) {\n const portList = Array.from({ length: 21 }, (_, i) => 4111 + i);\n portToUse = String(\n await getPort({\n port: portList,\n }),\n );\n }\n\n let httpsOptions: HTTPSOptions | undefined = undefined;\n\n /**\n * A user can enable HTTPS in two ways:\n * 1. By passing the --https flag to the dev command (we then generate a cert for them)\n * 2. By specifying https options in the mastra server config\n *\n * If both are specified, the config options takes precedence.\n */\n if (https && serverOptions?.https) {\n devLogger.warn('--https flag and server.https config are both specified. Using server.https config.');\n }\n if (serverOptions?.https) {\n httpsOptions = serverOptions.https;\n } else if (https) {\n const { key, cert } = await devcert.certificateFor(serverOptions?.host ?? 'localhost');\n httpsOptions = { key, cert };\n }\n\n // Extract mastra packages from the project's package.json\n const mastraPackages = await getMastraPackages(rootDir);\n\n // Check for peer dependency version mismatches\n const peerDepMismatches = await checkMastraPeerDeps(mastraPackages);\n logPeerDepWarnings(peerDepMismatches);\n\n const startOptions: StartOptions = {\n inspect,\n inspectBrk,\n customArgs,\n https: httpsOptions,\n mastraPackages,\n peerDepMismatches,\n };\n\n await bundler.prepare(dotMastraPath);\n\n const watcher = await bundler.watch(entryFile, dotMastraPath, discoveredTools);\n\n await startServer(\n join(dotMastraPath, 'output'),\n {\n port: Number(portToUse),\n host: hostToUse,\n studioBasePath: studioBasePathToUse,\n apiPrefix: apiPrefixToUse,\n publicDir: join(mastraDir, 'public'),\n },\n loadedEnv,\n startOptions,\n );\n\n watcher.on('event', (event: { code: string }) => {\n if (event.code === 'BUNDLE_START') {\n devLogger.bundling();\n }\n if (event.code === 'BUNDLE_END') {\n devLogger.bundleComplete();\n devLogger.info('[Mastra Dev] - Bundling finished, checking if restart is allowed...');\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n checkAndRestart(\n dotMastraPath,\n {\n port: Number(portToUse),\n host: hostToUse,\n studioBasePath: studioBasePathToUse,\n apiPrefix: apiPrefixToUse,\n publicDir: join(mastraDir, 'public'),\n },\n bundler,\n startOptions,\n );\n }\n });\n\n let isShuttingDown = false;\n const handleShutdown = async () => {\n if (isShuttingDown) return;\n isShuttingDown = true;\n\n const forceExit = setTimeout(() => process.exit(0), 3000);\n forceExit.unref();\n\n devLogger.shutdown();\n\n if (currentServerProcess) {\n currentServerProcess.kill();\n await waitForProcessExit(currentServerProcess);\n currentServerProcess = undefined;\n }\n\n const analytics = getAnalytics();\n if (analytics && serverStartTime) {\n const durationMs = Date.now() - serverStartTime;\n analytics.trackEvent('cli_dev_session_end', {\n durationMs,\n durationMinutes: Math.round(durationMs / 60000),\n });\n }\n if (analytics) {\n await analytics.shutdown();\n }\n\n watcher\n .close()\n .catch(() => {})\n .finally(() => {\n clearTimeout(forceExit);\n process.exit(0);\n });\n };\n\n const onSignal = () => {\n handleShutdown().catch(() => process.exit(0));\n };\n\n process.on('SIGINT', onSignal);\n process.on('SIGTERM', onSignal);\n process.on('SIGHUP', onSignal);\n}\n","import { analytics, origin } from '../..';\nimport { logger } from '../../utils/logger';\nimport { dev } from '../dev/dev';\n\ninterface DevArgs {\n dir?: string;\n root?: string;\n tools?: string;\n env?: string;\n inspect?: string | boolean;\n inspectBrk?: string | boolean;\n customArgs?: string;\n https?: boolean;\n requestContextPresets?: string;\n debug: boolean;\n}\n\nexport const startDevServer = async (args: DevArgs) => {\n analytics.trackCommand({\n command: 'dev',\n origin,\n });\n\n dev({\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n inspect: args?.inspectBrk ? false : args?.inspect,\n inspectBrk: args?.inspectBrk,\n customArgs: args?.customArgs ? args.customArgs.split(',') : [],\n https: args?.https,\n requestContextPresets: args?.requestContextPresets,\n debug: args.debug,\n }).catch(err => {\n logger.error(err.message);\n });\n};\n","import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport { join } from 'node:path';\nimport { config } from 'dotenv';\nimport { logger } from '../../utils/logger';\nimport { shouldSkipDotenvLoading } from '../utils';\ninterface StartOptions {\n dir?: string;\n env?: string;\n customArgs?: string[];\n}\n\nexport async function start(options: StartOptions = {}) {\n // Load environment variables from .env files\n if (!shouldSkipDotenvLoading()) {\n config({ path: [options.env || '.env.production', '.env'], quiet: true });\n }\n const outputDir = options.dir || '.mastra/output';\n\n try {\n // Check if the output directory exist\n const outputPath = join(process.cwd(), outputDir);\n if (!fs.existsSync(outputPath)) {\n throw new Error(`Output directory ${outputPath} does not exist`);\n }\n\n const commands = [];\n\n if (options.customArgs) {\n commands.push(...options.customArgs);\n }\n\n commands.push('index.mjs');\n\n // Start the server using node\n const server = spawn(process.execPath, commands, {\n cwd: outputPath,\n stdio: ['inherit', 'inherit', 'pipe'],\n env: {\n ...process.env,\n NODE_ENV: 'production',\n },\n });\n\n let stderrBuffer = '';\n server.stderr.on('data', data => {\n stderrBuffer += data.toString();\n });\n\n server.on('exit', code => {\n if (code !== 0 && stderrBuffer) {\n if (stderrBuffer.includes('ERR_MODULE_NOT_FOUND')) {\n const packageNameMatch = stderrBuffer.match(/Cannot find package '([^']+)'/);\n const packageName = packageNameMatch ? packageNameMatch[1] : null;\n\n if (!packageName) {\n logger.error(stderrBuffer.trim());\n } else {\n logger.error('Module not found while starting Mastra server', { package: packageName });\n }\n } else {\n logger.error(stderrBuffer.trim());\n }\n process.exit(code);\n }\n });\n\n server.on('error', err => {\n logger.error('Failed to start server', { error: err.message });\n process.exit(1);\n });\n\n process.on('SIGINT', () => {\n server.kill('SIGINT');\n process.exit(0);\n });\n\n process.on('SIGTERM', () => {\n server.kill('SIGTERM');\n process.exit(0);\n });\n } catch (error: any) {\n logger.error('Failed to start Mastra server', { error: error.message });\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { start } from '../start';\n\nexport const startProject = async (args: { dir?: string; env?: string; customArgs?: string }) => {\n await analytics.trackCommandExecution({\n command: 'start',\n args,\n execution: async () => {\n await start({\n dir: args.dir,\n env: args.env,\n customArgs: args.customArgs ? args.customArgs.split(',') : [],\n });\n },\n origin,\n });\n};\n","import { existsSync, readFileSync } from 'node:fs';\nimport http from 'node:http';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { gzipSync } from 'node:zlib';\nimport { config } from 'dotenv';\nimport handler from 'serve-handler';\nimport { logger } from '../../utils/logger';\nimport { loadAndValidatePresets, escapeJsonForHtml } from '../../utils/validate-presets.js';\n\ninterface StudioOptions {\n env?: string;\n port?: string | number;\n serverHost?: string;\n serverPort?: string | number;\n serverProtocol?: string;\n serverApiPrefix?: string;\n requestContextPresets?: string;\n}\n\nfunction normalizeBasePath(basePath: string): string {\n const trimmed = basePath.trim();\n\n if (trimmed === '' || trimmed === '/') {\n return '';\n }\n\n let normalized = trimmed.replace(/\\/+/g, '/');\n if (!normalized.startsWith('/')) {\n normalized = `/${normalized}`;\n }\n if (normalized.endsWith('/')) {\n normalized = normalized.slice(0, -1);\n }\n\n return normalized;\n}\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nexport async function studio(\n options: StudioOptions = {\n serverHost: 'localhost',\n serverPort: 4111,\n serverProtocol: 'http',\n },\n) {\n // Load environment variables from .env files\n config({ path: [options.env || '.env.production', '.env'], quiet: true });\n\n // Load and validate request context presets if provided\n let requestContextPresetsJson = '';\n if (options.requestContextPresets) {\n try {\n requestContextPresetsJson = await loadAndValidatePresets(options.requestContextPresets);\n } catch (error: any) {\n logger.error('Failed to load request context presets', { error: error.message });\n process.exit(1);\n }\n }\n\n try {\n const distPath = join(__dirname, 'studio');\n\n if (!existsSync(distPath)) {\n logger.error('Studio distribution not found', { distPath });\n process.exit(1);\n }\n\n const port = options.port || 3000;\n\n // Start the server using the installed serve binary\n // Start the server using node\n const server = createServer(distPath, options, requestContextPresetsJson);\n\n server.listen(port, () => {\n logger.info('Mastra Studio running', { url: `http://localhost:${port}` });\n });\n\n process.on('SIGINT', () => {\n server.close(() => {\n process.exit(0);\n });\n });\n\n process.on('SIGTERM', () => {\n server.close(() => {\n process.exit(0);\n });\n });\n } catch (error: any) {\n logger.error('Failed to start Mastra Studio', { error: error.message });\n process.exit(1);\n }\n}\n\nexport const createServer = (builtStudioPath: string, options: StudioOptions, requestContextPresetsJson: string) => {\n const indexHtmlPath = join(builtStudioPath, 'index.html');\n const basePath = normalizeBasePath(process.env.MASTRA_STUDIO_BASE_PATH ?? '');\n\n const experimentalFeatures = process.env.EXPERIMENTAL_FEATURES === 'true' ? 'true' : 'false';\n const experimentalUI = process.env.MASTRA_EXPERIMENTAL_UI === 'true' ? 'true' : 'false';\n const templatesEnabled = process.env.MASTRA_TEMPLATES === 'true' ? 'true' : 'false';\n const agentSignals = process.env.MASTRA_AGENT_SIGNALS === 'true' ? 'true' : 'false';\n\n let html = readFileSync(indexHtmlPath, 'utf8')\n .replaceAll('%%MASTRA_STUDIO_BASE_PATH%%', basePath)\n .replaceAll('%%MASTRA_SERVER_HOST%%', options.serverHost || 'localhost')\n .replaceAll('%%MASTRA_SERVER_PORT%%', String(options.serverPort || 4111))\n .replaceAll('%%MASTRA_SERVER_PROTOCOL%%', options.serverProtocol || 'http')\n .replaceAll('%%MASTRA_API_PREFIX%%', options.serverApiPrefix || '/api')\n .replaceAll('%%MASTRA_EXPERIMENTAL_FEATURES%%', experimentalFeatures)\n .replaceAll('%%MASTRA_TEMPLATES%%', templatesEnabled)\n .replaceAll('%%MASTRA_CLOUD_API_ENDPOINT%%', '')\n .replaceAll('%%MASTRA_HIDE_CLOUD_CTA%%', '')\n .replaceAll('%%MASTRA_TELEMETRY_DISABLED%%', process.env.MASTRA_TELEMETRY_DISABLED ?? '')\n .replaceAll('%%MASTRA_REQUEST_CONTEXT_PRESETS%%', escapeJsonForHtml(requestContextPresetsJson))\n .replaceAll('%%MASTRA_EXPERIMENTAL_UI%%', experimentalUI)\n .replaceAll('%%MASTRA_AGENT_SIGNALS%%', agentSignals);\n\n // Pre-compress the HTML shell since it's served for every non-asset request\n const compressedHtml = gzipSync(Buffer.from(html));\n\n const server = http.createServer((req, res) => {\n const url = req.url || '/';\n const queryStart = url.indexOf('?');\n const rawPathname = queryStart >= 0 ? url.slice(0, queryStart) : url;\n const query = queryStart >= 0 ? url.slice(queryStart + 1) : '';\n const pathname = rawPathname || '/';\n\n const pathWithoutBase =\n basePath && pathname.startsWith(`${basePath}/`)\n ? pathname.slice(basePath.length)\n : pathname === basePath\n ? '/'\n : pathname;\n // Let static assets be served by serve-handler\n const isAssetsPath = /(^|\\/)assets\\//.test(pathWithoutBase);\n const isDistAssetsPath = /(^|\\/)dist\\/assets\\//.test(pathWithoutBase);\n const isMastraSvg = pathWithoutBase === '/mastra.svg' || pathWithoutBase.endsWith('/mastra.svg');\n const isStaticAsset = isAssetsPath || isDistAssetsPath || isMastraSvg;\n\n const rawEncoding = req.headers['accept-encoding'] ?? '';\n const encodingValues = Array.isArray(rawEncoding) ? rawEncoding : [rawEncoding];\n const supportsGzip = encodingValues\n .flatMap((v: string) => v.split(','))\n .map((v: string) => v.trim().toLowerCase())\n .some((v: string) => {\n const [coding, ...params] = v.split(';').map((p: string) => p.trim());\n if (coding !== 'gzip') return false;\n const q = params.find((p: string) => p.startsWith('q='));\n return q ? Number(q.slice(2)) > 0 : true;\n });\n\n // For everything that's not a static asset, serve the SPA shell (index.html)\n if (!isStaticAsset) {\n if (supportsGzip) {\n res.writeHead(200, {\n 'Content-Type': 'text/html',\n 'Content-Encoding': 'gzip',\n 'Content-Length': compressedHtml.length,\n Vary: 'Accept-Encoding',\n });\n return res.end(compressedHtml);\n }\n res.writeHead(200, { 'Content-Type': 'text/html', Vary: 'Accept-Encoding' });\n return res.end(html);\n }\n\n if (basePath && pathWithoutBase !== pathname) {\n req.url = query ? `${pathWithoutBase}?${query}` : pathWithoutBase;\n }\n\n return handler(req, res, {\n public: builtStudioPath,\n });\n });\n\n return server;\n};\n","import { analytics, origin } from '../..';\nimport { studio } from '../studio';\n\ninterface StudioArgs {\n port?: string | number;\n env?: string;\n serverHost?: string;\n serverPort?: string | number;\n serverProtocol?: string;\n serverApiPrefix?: string;\n requestContextPresets?: string;\n}\n\nexport const startStudio = async (args: StudioArgs) => {\n analytics.trackCommand({\n command: 'studio',\n origin,\n });\n\n await studio(args);\n};\n","export type ApiErrorCode =\n | 'INVALID_JSON'\n | 'MISSING_INPUT'\n | 'MISSING_ARGUMENT'\n | 'MALFORMED_HEADER'\n | 'SERVER_UNREACHABLE'\n | 'REQUEST_TIMEOUT'\n | 'HTTP_ERROR'\n | 'SCHEMA_UNAVAILABLE'\n | 'PLATFORM_RESOLUTION_FAILED';\n\nexport class ApiCliError extends Error {\n constructor(\n public code: ApiErrorCode,\n message: string,\n public details: Record<string, unknown> = {},\n ) {\n super(message);\n }\n}\n\nexport function errorEnvelope(error: ApiCliError) {\n return {\n error: {\n code: error.code,\n message: error.message,\n details: error.details,\n },\n };\n}\n\nexport function toApiCliError(error: unknown): ApiCliError {\n if (error instanceof ApiCliError) return error;\n if (error instanceof Error && error.name === 'AbortError') {\n return new ApiCliError('REQUEST_TIMEOUT', 'Request timed out');\n }\n return new ApiCliError('SERVER_UNREACHABLE', 'Could not connect to target server', {\n message: error instanceof Error ? error.message : String(error),\n });\n}\n","import { ApiCliError, toApiCliError } from './errors.js';\nimport type { ApiCommandDescriptor } from './types.js';\n\nexport interface ApiRequestOptions {\n baseUrl: string;\n headers: Record<string, string>;\n timeoutMs: number;\n descriptor: ApiCommandDescriptor;\n pathParams: Record<string, string>;\n input?: Record<string, unknown>;\n}\n\nexport async function requestApi(options: ApiRequestOptions): Promise<unknown> {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), options.timeoutMs);\n\n try {\n const { queryInput, bodyInput } = splitInput(options.descriptor, options.input);\n const url = buildUrl(options.baseUrl, options.descriptor.path, options.pathParams, queryInput);\n const init: RequestInit = {\n method: options.descriptor.method,\n headers: { ...options.headers },\n signal: controller.signal,\n };\n\n if (options.descriptor.method !== 'GET' && bodyInput) {\n init.headers = { 'content-type': 'application/json', ...init.headers };\n init.body = JSON.stringify(bodyInput);\n }\n\n const response = await fetch(url, init);\n const body = await parseResponse(response);\n\n if (!response.ok) {\n throw new ApiCliError('HTTP_ERROR', `Request failed with status ${response.status}`, {\n status: response.status,\n body,\n });\n }\n\n return body;\n } catch (error) {\n if (error instanceof Error && error.name === 'AbortError') {\n throw new ApiCliError('REQUEST_TIMEOUT', `Request timed out after ${options.timeoutMs}ms`, {\n timeoutMs: options.timeoutMs,\n });\n }\n throw toApiCliError(error);\n } finally {\n clearTimeout(timeout);\n }\n}\n\nexport function buildUrl(\n baseUrl: string,\n path: string,\n pathParams: Record<string, string>,\n input?: Record<string, unknown>,\n): string {\n const pathParamNames = new Set<string>();\n const resolvedPath = path.replace(/:([A-Za-z0-9_]+)/g, (_, name: string) => {\n pathParamNames.add(name);\n const value = pathParams[name];\n if (!value) {\n throw new ApiCliError('MISSING_ARGUMENT', `Missing required argument <${name}>`, { argument: name });\n }\n return encodeURIComponent(value);\n });\n const url = new URL(joinUrl(baseUrl, resolvedPath));\n\n for (const [key, value] of Object.entries(pathParams)) {\n if (!pathParamNames.has(key)) url.searchParams.set(key, value);\n }\n\n if (input) {\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined || value === null) continue;\n url.searchParams.set(key, typeof value === 'object' ? JSON.stringify(value) : String(value));\n }\n }\n\n return url.toString();\n}\n\nexport function splitInput(\n descriptor: ApiCommandDescriptor,\n input?: Record<string, unknown>,\n): { queryInput?: Record<string, unknown>; bodyInput?: Record<string, unknown> } {\n if (!input) return {};\n if (descriptor.method === 'GET') return { queryInput: input };\n\n const normalizedInput = normalizeInput(descriptor, input);\n const queryParamNames = new Set(descriptor.queryParams);\n const bodyParamNames = new Set(descriptor.bodyParams);\n if (queryParamNames.size === 0) return { bodyInput: normalizedInput };\n\n const queryInput: Record<string, unknown> = {};\n const bodyInput: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(normalizedInput)) {\n if (queryParamNames.has(key) && !bodyParamNames.has(key)) {\n queryInput[key] = value;\n } else {\n bodyInput[key] = value;\n }\n }\n\n return {\n queryInput: Object.keys(queryInput).length ? queryInput : undefined,\n bodyInput: Object.keys(bodyInput).length ? bodyInput : undefined,\n };\n}\n\nfunction normalizeInput(descriptor: ApiCommandDescriptor, input: Record<string, unknown>): Record<string, unknown> {\n if ((descriptor.key === 'toolExecute' || descriptor.key === 'mcpToolExecute') && !Object.hasOwn(input, 'data')) {\n return { data: input };\n }\n\n return input;\n}\n\nexport async function fetchSchemaManifest(\n baseUrl: string,\n headers: Record<string, string>,\n timeoutMs: number,\n): Promise<any> {\n const descriptor: ApiCommandDescriptor = {\n key: 'schema',\n name: 'system api-schema',\n description: 'Fetch API schema manifest',\n method: 'GET',\n path: '/system/api-schema',\n positionals: [],\n acceptsInput: false,\n inputRequired: false,\n list: false,\n responseShape: { kind: 'single' },\n queryParams: [],\n bodyParams: [],\n };\n return requestApi({ baseUrl, headers, timeoutMs, descriptor, pathParams: {} });\n}\n\nasync function parseResponse(response: Response): Promise<unknown> {\n const text = await response.text();\n if (!text) return null;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\nfunction joinUrl(baseUrl: string, path: string): string {\n const normalizedBase = baseUrl.replace(/\\/$/, '');\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\n if (normalizedBase.endsWith('/api')) return `${normalizedBase}${normalizedPath}`;\n return `${normalizedBase}/api${normalizedPath}`;\n}\n","import { ApiCliError } from './errors.js';\nimport type { ApiCommandDescriptor } from './types.js';\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue };\n\nexport function parseInput(descriptor: ApiCommandDescriptor, input?: string): Record<string, unknown> | undefined {\n if (!descriptor.acceptsInput) return undefined;\n\n if (!input) {\n if (descriptor.inputRequired) {\n throw new ApiCliError('MISSING_INPUT', 'Command requires a single inline JSON input argument', {\n command: `mastra api ${descriptor.name}`,\n });\n }\n return undefined;\n }\n\n try {\n const parsed = JSON.parse(input);\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n throw new ApiCliError('INVALID_JSON', 'Input JSON must be an object');\n }\n return parsed as Record<string, unknown>;\n } catch (error) {\n if (error instanceof ApiCliError) throw error;\n throw new ApiCliError('INVALID_JSON', 'Input must be valid JSON', {\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nexport function resolvePathParams(\n descriptor: ApiCommandDescriptor,\n positionalValues: string[],\n input?: Record<string, unknown>,\n): Record<string, string> {\n const params: Record<string, string> = {};\n\n descriptor.positionals.forEach((name, index) => {\n const value = positionalValues[index];\n if (!value) {\n throw new ApiCliError('MISSING_ARGUMENT', `Missing required argument <${name}>`, { argument: name });\n }\n params[name] = value;\n });\n\n for (const name of pathParamNames(descriptor.path)) {\n if (params[name]) continue;\n const value = input?.[name];\n if (typeof value !== 'string' || !value) {\n throw new ApiCliError('MISSING_ARGUMENT', `Missing required argument <${name}>`, { argument: name });\n }\n params[name] = value;\n }\n\n return params;\n}\n\nexport function stripPathParamsFromInput(\n input: Record<string, unknown> | undefined,\n params: Record<string, string>,\n): Record<string, unknown> | undefined {\n if (!input) return undefined;\n const copy = { ...input };\n for (const key of Object.keys(params)) delete copy[key];\n return copy;\n}\n\nfunction pathParamNames(path: string): string[] {\n return Array.from(path.matchAll(/:([A-Za-z0-9_]+)/g)).map(match => match[1]!);\n}\n","import type { ApiCommandDescriptor } from './types.js';\n\nconst WORKFLOW_STATUS_MAP: Record<string, string> = {\n completed: 'success',\n complete: 'success',\n success: 'success',\n succeeded: 'success',\n failed: 'failed',\n failure: 'failed',\n error: 'failed',\n canceled: 'cancelled',\n cancelled: 'cancelled',\n running: 'running',\n pending: 'running',\n suspended: 'suspended',\n waiting: 'suspended',\n};\n\nexport function normalizeData(descriptor: ApiCommandDescriptor, data: unknown): unknown {\n if (descriptor.key === 'agentRun' && data && typeof data === 'object') {\n const record = data as Record<string, unknown>;\n return pruneUndefined({\n text: record.text ?? record.result ?? record.output,\n structuredOutput: record.structuredOutput ?? record.object,\n usage: record.usage ?? record.totalUsage,\n toolCalls: record.toolCalls,\n toolResults: record.toolResults,\n finishReason: record.finishReason,\n runId: record.runId,\n traceId: record.traceId,\n spanId: record.spanId,\n });\n }\n\n if (descriptor.key === 'toolGet' && data && typeof data === 'object') {\n const record = data as Record<string, unknown>;\n return {\n inputSchema: record.inputSchema ?? record.parameters ?? record.input,\n ...record,\n };\n }\n\n if (descriptor.key.startsWith('workflowRun')) {\n return normalizeWorkflowStatus(data);\n }\n\n return data;\n}\n\nfunction pruneUndefined(record: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));\n}\n\nfunction normalizeWorkflowStatus(data: unknown): unknown {\n if (Array.isArray(data)) return data.map(item => normalizeWorkflowStatus(item));\n if (!data || typeof data !== 'object') return data;\n\n const record = data as Record<string, unknown>;\n const status = typeof record.status === 'string' ? WORKFLOW_STATUS_MAP[record.status.toLowerCase()] : undefined;\n\n const normalizedRecord = Object.fromEntries(\n Object.entries(record).map(([key, value]) => [\n key,\n Array.isArray(value) ? value.map(item => normalizeWorkflowStatus(item)) : value,\n ]),\n );\n\n return {\n ...normalizedRecord,\n ...(status ? { status } : {}),\n };\n}\n","import type { ApiResponseShape } from './types.js';\n\ninterface PaginationInfo {\n total: number;\n page: number;\n perPage: number | false;\n hasMore: boolean;\n}\n\nexport function writeJson(value: unknown, pretty: boolean, stream: NodeJS.WritableStream = process.stdout): void {\n stream.write(`${JSON.stringify(value, null, pretty ? 2 : 0)}\\n`);\n}\n\nexport function normalizeSuccess(data: unknown, list: boolean, responseShape?: ApiResponseShape) {\n if (!list) return { data };\n\n const { items, page } = extractList(data, responseShape);\n return {\n data: items,\n page,\n };\n}\n\nfunction extractList(data: unknown, responseShape?: ApiResponseShape): { items: unknown[]; page: PaginationInfo } {\n if (Array.isArray(data)) {\n return { items: data, page: { total: data.length, page: 0, perPage: data.length, hasMore: false } };\n }\n\n if (data && typeof data === 'object') {\n const record = data as Record<string, unknown>;\n const items = findArray(record, responseShape) ?? [];\n const nestedPage = record.page ?? record.pagination;\n const pageRecord = nestedPage && typeof nestedPage === 'object' ? (nestedPage as Record<string, unknown>) : record;\n return {\n items,\n page: normalizePage(pageRecord, items.length),\n };\n }\n\n return { items: [], page: { total: 0, page: 0, perPage: 0, hasMore: false } };\n}\n\nfunction normalizePage(pageRecord: Record<string, unknown> | undefined, itemCount: number): PaginationInfo {\n const total = typeof pageRecord?.total === 'number' ? pageRecord.total : itemCount;\n const page = typeof pageRecord?.page === 'number' ? pageRecord.page : 0;\n const perPage =\n typeof pageRecord?.perPage === 'number' || pageRecord?.perPage === false ? pageRecord.perPage : itemCount;\n const hasMore = typeof pageRecord?.hasMore === 'boolean' ? pageRecord.hasMore : false;\n\n return { total, page, perPage, hasMore };\n}\n\nfunction findArray(record: Record<string, unknown>, responseShape?: ApiResponseShape): unknown[] | undefined {\n if (responseShape?.kind === 'array' && Array.isArray(record)) return record;\n if (responseShape?.kind === 'record') return Object.values(record);\n if (responseShape?.kind === 'object-property' && responseShape.listProperty) {\n const value = record[responseShape.listProperty];\n if (Array.isArray(value)) return value;\n }\n\n if (Array.isArray(record.data)) return record.data;\n\n const values = Object.values(record);\n if (values.every(value => value && typeof value === 'object' && !Array.isArray(value))) {\n return values;\n }\n\n for (const value of values) {\n if (Array.isArray(value)) return value;\n }\n return undefined;\n}\n","const SCHEMA_FIELD_PATTERN = /(^schema$|schema$|^parameters$)/i;\n\nexport function normalizeResponse(\n value: unknown,\n key?: string,\n isSchemaMetadata = key ? isSchemaField(key) : false,\n): unknown {\n if (Array.isArray(value)) return value.map(item => normalizeResponse(item, key, isSchemaMetadata));\n\n if (value && typeof value === 'object') {\n const record = value as Record<string, unknown>;\n const normalized = Object.fromEntries(\n Object.entries(record).flatMap(([entryKey, entryValue]) => {\n if (isSchemaMetadata && entryKey === '$schema') return [];\n return [[entryKey, normalizeResponse(entryValue, entryKey, isSchemaMetadata || isSchemaField(entryKey))]];\n }),\n );\n\n if (key && isSchemaField(key) && Object.keys(normalized).length === 1 && Object.hasOwn(normalized, 'json')) {\n return normalized.json;\n }\n\n return normalized;\n }\n\n if (typeof value === 'string' && key && isSchemaField(key)) {\n return parseSchemaString(value, key);\n }\n\n return value;\n}\n\nfunction isSchemaField(key: string): boolean {\n return SCHEMA_FIELD_PATTERN.test(key);\n}\n\nfunction parseSchemaString(value: string, key: string): unknown {\n const trimmed = value.trim();\n if (!trimmed || (trimmed[0] !== '{' && trimmed[0] !== '[')) return value;\n\n try {\n return normalizeResponse(JSON.parse(trimmed), key, true);\n } catch {\n return value;\n }\n}\n","// This file is generated by packages/server/scripts/generate-api-cli-route-metadata.ts. Do not edit by hand.\n\nexport const API_ROUTE_METADATA = {\n \"GET /agents\": {\n \"method\": \"GET\",\n \"path\": \"/agents\",\n \"pathParams\": [],\n \"queryParams\": [\n \"partial\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /agents/providers\": {\n \"method\": \"GET\",\n \"path\": \"/agents/providers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"providers\"\n }\n },\n \"GET /agents/:agentId\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [\n \"status\",\n \"versionId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/clone\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/clone\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"metadata\",\n \"newId\",\n \"newName\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /agents/:agentId/voice/speakers\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/voice/speakers\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"GET /agents/:agentId/speakers\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/speakers\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"POST /agents/:agentId/generate\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/generate\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"activeTools\",\n \"clientTools\",\n \"context\",\n \"instructions\",\n \"maxSteps\",\n \"memory\",\n \"messages\",\n \"modelSettings\",\n \"output\",\n \"providerOptions\",\n \"requestContext\",\n \"requireToolApproval\",\n \"returnScorerData\",\n \"runId\",\n \"savePerStep\",\n \"scorers\",\n \"stopWhen\",\n \"structuredOutput\",\n \"system\",\n \"toolChoice\",\n \"toolsets\",\n \"tracingOptions\",\n \"versions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/generate/vnext\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/generate/vnext\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"activeTools\",\n \"clientTools\",\n \"context\",\n \"instructions\",\n \"maxSteps\",\n \"memory\",\n \"messages\",\n \"modelSettings\",\n \"output\",\n \"providerOptions\",\n \"requestContext\",\n \"requireToolApproval\",\n \"returnScorerData\",\n \"runId\",\n \"savePerStep\",\n \"scorers\",\n \"stopWhen\",\n \"structuredOutput\",\n \"system\",\n \"toolChoice\",\n \"toolsets\",\n \"tracingOptions\",\n \"versions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/signals\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/signals\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/tools/:toolId/execute\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/tools/:toolId/execute\",\n \"pathParams\": [\n \"agentId\",\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"data\",\n \"requestContext\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/approve-tool-call-generate\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/approve-tool-call-generate\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"format\",\n \"requestContext\",\n \"runId\",\n \"toolCallId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/decline-tool-call-generate\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/decline-tool-call-generate\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"format\",\n \"requestContext\",\n \"runId\",\n \"toolCallId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/model\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/model\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"modelId\",\n \"provider\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/model/reset\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/model/reset\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/models/reorder\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/models/reorder\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"reorderedModelIds\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/models/:modelConfigId\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/models/:modelConfigId\",\n \"pathParams\": [\n \"agentId\",\n \"modelConfigId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"enabled\",\n \"maxRetries\",\n \"model\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/instructions/enhance\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/instructions/enhance\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"comment\",\n \"instructions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /agents/:agentId/tools/:toolId\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/tools/:toolId\",\n \"pathParams\": [\n \"agentId\",\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /agents/:agentId/skills/:skillName\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/skills/:skillName\",\n \"pathParams\": [\n \"agentId\",\n \"skillName\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/voice/listen\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/voice/listen\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"audio\",\n \"options\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /agents/:agentId/listen\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/listen\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"audio\",\n \"options\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /agents/:agentId/voice/listener\": {\n \"method\": \"GET\",\n \"path\": \"/agents/:agentId/voice/listener\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /auth/capabilities\": {\n \"method\": \"GET\",\n \"path\": \"/auth/capabilities\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /auth/me\": {\n \"method\": \"GET\",\n \"path\": \"/auth/me\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workflows\": {\n \"method\": \"GET\",\n \"path\": \"/workflows\",\n \"pathParams\": [],\n \"queryParams\": [\n \"partial\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /workflows/:workflowId\": {\n \"method\": \"GET\",\n \"path\": \"/workflows/:workflowId\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workflows/:workflowId/runs\": {\n \"method\": \"GET\",\n \"path\": \"/workflows/:workflowId/runs\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"fromDate\",\n \"limit\",\n \"offset\",\n \"page\",\n \"perPage\",\n \"resourceId\",\n \"status\",\n \"toDate\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"runs\"\n }\n },\n \"GET /workflows/:workflowId/runs/:runId\": {\n \"method\": \"GET\",\n \"path\": \"/workflows/:workflowId/runs/:runId\",\n \"pathParams\": [\n \"workflowId\",\n \"runId\"\n ],\n \"queryParams\": [\n \"fields\",\n \"withNestedWorkflows\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /workflows/:workflowId/runs/:runId\": {\n \"method\": \"DELETE\",\n \"path\": \"/workflows/:workflowId/runs/:runId\",\n \"pathParams\": [\n \"workflowId\",\n \"runId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/create-run\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/create-run\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"disableScorers\",\n \"resourceId\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/start-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/start-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"initialState\",\n \"inputData\",\n \"perStep\",\n \"requestContext\",\n \"resourceId\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/start\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/start\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"initialState\",\n \"inputData\",\n \"perStep\",\n \"requestContext\",\n \"resourceId\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/resume-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/resume-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"forEachIndex\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"step\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/resume\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/resume\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"forEachIndex\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"step\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/runs/:runId/cancel\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/runs/:runId/cancel\",\n \"pathParams\": [\n \"workflowId\",\n \"runId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/time-travel\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/time-travel\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"context\",\n \"initialState\",\n \"inputData\",\n \"nestedStepsContext\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"step\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/time-travel-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/time-travel-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"context\",\n \"initialState\",\n \"inputData\",\n \"nestedStepsContext\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"step\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/restart\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/restart\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"requestContext\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/restart-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/restart-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"requestContext\",\n \"tracingOptions\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/restart-all-active-workflow-runs\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/restart-all-active-workflow-runs\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/restart-all-active-workflow-runs-async\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/restart-all-active-workflow-runs-async\",\n \"pathParams\": [\n \"workflowId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/:workflowId/runs/:runId/steps/execute\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/:workflowId/runs/:runId/steps/execute\",\n \"pathParams\": [\n \"workflowId\",\n \"runId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"executionPath\",\n \"foreachIdx\",\n \"format\",\n \"input\",\n \"perStep\",\n \"requestContext\",\n \"resumeData\",\n \"retryCount\",\n \"state\",\n \"stepId\",\n \"stepResults\",\n \"validateInputs\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workflows/events\": {\n \"method\": \"POST\",\n \"path\": \"/workflows/events\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"event\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /tools\": {\n \"method\": \"GET\",\n \"path\": \"/tools\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /tools/:toolId\": {\n \"method\": \"GET\",\n \"path\": \"/tools/:toolId\",\n \"pathParams\": [\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /tools/:toolId/execute\": {\n \"method\": \"POST\",\n \"path\": \"/tools/:toolId/execute\",\n \"pathParams\": [\n \"toolId\"\n ],\n \"queryParams\": [\n \"runId\"\n ],\n \"bodyParams\": [\n \"data\",\n \"requestContext\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /processors\": {\n \"method\": \"GET\",\n \"path\": \"/processors\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /processors/:processorId\": {\n \"method\": \"GET\",\n \"path\": \"/processors/:processorId\",\n \"pathParams\": [\n \"processorId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /processors/:processorId/execute\": {\n \"method\": \"POST\",\n \"path\": \"/processors/:processorId/execute\",\n \"pathParams\": [\n \"processorId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentId\",\n \"messages\",\n \"phase\",\n \"requestContext\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /v1/responses/:responseId\": {\n \"method\": \"GET\",\n \"path\": \"/v1/responses/:responseId\",\n \"pathParams\": [\n \"responseId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /v1/responses/:responseId\": {\n \"method\": \"DELETE\",\n \"path\": \"/v1/responses/:responseId\",\n \"pathParams\": [\n \"responseId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /v1/conversations\": {\n \"method\": \"POST\",\n \"path\": \"/v1/conversations\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agent_id\",\n \"conversation_id\",\n \"metadata\",\n \"resource_id\",\n \"title\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /v1/conversations/:conversationId\": {\n \"method\": \"GET\",\n \"path\": \"/v1/conversations/:conversationId\",\n \"pathParams\": [\n \"conversationId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /v1/conversations/:conversationId/items\": {\n \"method\": \"GET\",\n \"path\": \"/v1/conversations/:conversationId/items\",\n \"pathParams\": [\n \"conversationId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /v1/conversations/:conversationId\": {\n \"method\": \"DELETE\",\n \"path\": \"/v1/conversations/:conversationId\",\n \"pathParams\": [\n \"conversationId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/status\": {\n \"method\": \"GET\",\n \"path\": \"/memory/status\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\",\n \"threadId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/config\": {\n \"method\": \"GET\",\n \"path\": \"/memory/config\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/observational-memory\": {\n \"method\": \"GET\",\n \"path\": \"/memory/observational-memory\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"from\",\n \"limit\",\n \"offset\",\n \"resourceId\",\n \"threadId\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"history\"\n }\n },\n \"POST /memory/observational-memory/buffer-status\": {\n \"method\": \"POST\",\n \"path\": \"/memory/observational-memory/buffer-status\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentId\",\n \"resourceId\",\n \"threadId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/threads\": {\n \"method\": \"GET\",\n \"path\": \"/memory/threads\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"threads\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /memory/threads/:threadId\": {\n \"method\": \"GET\",\n \"path\": \"/memory/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/threads/:threadId/messages\": {\n \"method\": \"GET\",\n \"path\": \"/memory/threads/:threadId/messages\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"filter\",\n \"include\",\n \"includeSystemReminders\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"messages\"\n }\n },\n \"GET /memory/threads/:threadId/working-memory\": {\n \"method\": \"GET\",\n \"path\": \"/memory/threads/:threadId/working-memory\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"memoryConfig\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /memory/save-messages\": {\n \"method\": \"POST\",\n \"path\": \"/memory/save-messages\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"messages\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"messages\"\n }\n },\n \"POST /memory/threads\": {\n \"method\": \"POST\",\n \"path\": \"/memory/threads\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"resourceId\",\n \"threadId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /memory/threads/:threadId\": {\n \"method\": \"PATCH\",\n \"path\": \"/memory/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"resourceId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /memory/threads/:threadId\": {\n \"method\": \"DELETE\",\n \"path\": \"/memory/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /memory/threads/:threadId/clone\": {\n \"method\": \"POST\",\n \"path\": \"/memory/threads/:threadId/clone\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"newThreadId\",\n \"options\",\n \"resourceId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"clonedMessages\"\n }\n },\n \"POST /memory/threads/:threadId/working-memory\": {\n \"method\": \"POST\",\n \"path\": \"/memory/threads/:threadId/working-memory\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"memoryConfig\",\n \"resourceId\",\n \"workingMemory\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /memory/messages/delete\": {\n \"method\": \"POST\",\n \"path\": \"/memory/messages/delete\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [\n \"messageIds\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/search\": {\n \"method\": \"GET\",\n \"path\": \"/memory/search\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"limit\",\n \"memoryConfig\",\n \"resourceId\",\n \"searchQuery\",\n \"threadId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/network/status\": {\n \"method\": \"GET\",\n \"path\": \"/memory/network/status\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/network/threads\": {\n \"method\": \"GET\",\n \"path\": \"/memory/network/threads\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"threads\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /memory/network/threads/:threadId\": {\n \"method\": \"GET\",\n \"path\": \"/memory/network/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /memory/network/threads/:threadId/messages\": {\n \"method\": \"GET\",\n \"path\": \"/memory/network/threads/:threadId/messages\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"filter\",\n \"include\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"messages\"\n }\n },\n \"POST /memory/network/save-messages\": {\n \"method\": \"POST\",\n \"path\": \"/memory/network/save-messages\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"messages\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"messages\"\n }\n },\n \"POST /memory/network/threads\": {\n \"method\": \"POST\",\n \"path\": \"/memory/network/threads\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"resourceId\",\n \"threadId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /memory/network/threads/:threadId\": {\n \"method\": \"PATCH\",\n \"path\": \"/memory/network/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\"\n ],\n \"bodyParams\": [\n \"metadata\",\n \"resourceId\",\n \"title\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /memory/network/threads/:threadId\": {\n \"method\": \"DELETE\",\n \"path\": \"/memory/network/threads/:threadId\",\n \"pathParams\": [\n \"threadId\"\n ],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /memory/network/messages/delete\": {\n \"method\": \"POST\",\n \"path\": \"/memory/network/messages/delete\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"resourceId\"\n ],\n \"bodyParams\": [\n \"messageIds\"\n ],\n \"hasQuery\": true,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /scores/scorers\": {\n \"method\": \"GET\",\n \"path\": \"/scores/scorers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /scores/scorers/:scorerId\": {\n \"method\": \"GET\",\n \"path\": \"/scores/scorers/:scorerId\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /scores/run/:runId\": {\n \"method\": \"GET\",\n \"path\": \"/scores/run/:runId\",\n \"pathParams\": [\n \"runId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /scores/scorer/:scorerId\": {\n \"method\": \"GET\",\n \"path\": \"/scores/scorer/:scorerId\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [\n \"entityId\",\n \"entityType\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /scores/entity/:entityType/:entityId\": {\n \"method\": \"GET\",\n \"path\": \"/scores/entity/:entityType/:entityId\",\n \"pathParams\": [\n \"entityType\",\n \"entityId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /scores\": {\n \"method\": \"POST\",\n \"path\": \"/scores\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"score\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /observability/traces\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces\",\n \"pathParams\": [],\n \"queryParams\": [\n \"dateRange\",\n \"direction\",\n \"endedAt\",\n \"entityId\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"experimentId\",\n \"field\",\n \"hasChildError\",\n \"metadata\",\n \"name\",\n \"organizationId\",\n \"page\",\n \"parentEntityId\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"scope\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanType\",\n \"startedAt\",\n \"status\",\n \"tags\",\n \"threadId\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/traces/light\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/light\",\n \"pathParams\": [],\n \"queryParams\": [\n \"dateRange\",\n \"direction\",\n \"endedAt\",\n \"entityId\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"experimentId\",\n \"field\",\n \"hasChildError\",\n \"metadata\",\n \"name\",\n \"organizationId\",\n \"page\",\n \"parentEntityId\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"scope\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanType\",\n \"startedAt\",\n \"status\",\n \"tags\",\n \"threadId\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/branches\": {\n \"method\": \"GET\",\n \"path\": \"/observability/branches\",\n \"pathParams\": [],\n \"queryParams\": [\n \"direction\",\n \"endedAt\",\n \"entityId\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"experimentId\",\n \"field\",\n \"metadata\",\n \"organizationId\",\n \"page\",\n \"parentEntityId\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"scope\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanType\",\n \"startedAt\",\n \"status\",\n \"tags\",\n \"threadId\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"branches\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/traces/:traceId/branches/:spanId\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/branches/:spanId\",\n \"pathParams\": [\n \"traceId\",\n \"spanId\"\n ],\n \"queryParams\": [\n \"depth\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\"\n }\n },\n \"GET /observability/traces/:traceId\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId\",\n \"pathParams\": [\n \"traceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\"\n }\n },\n \"GET /observability/traces/:traceId/light\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/light\",\n \"pathParams\": [\n \"traceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"spans\"\n }\n },\n \"GET /observability/traces/:traceId/spans/:spanId\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/spans/:spanId\",\n \"pathParams\": [\n \"traceId\",\n \"spanId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /observability/traces/:traceId/trajectory\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/trajectory\",\n \"pathParams\": [\n \"traceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/traces/score\": {\n \"method\": \"POST\",\n \"path\": \"/observability/traces/score\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"scorerName\",\n \"targets\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /observability/traces/:traceId/:spanId/scores\": {\n \"method\": \"GET\",\n \"path\": \"/observability/traces/:traceId/:spanId/scores\",\n \"pathParams\": [\n \"traceId\",\n \"spanId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/logs\": {\n \"method\": \"GET\",\n \"path\": \"/observability/logs\",\n \"pathParams\": [],\n \"queryParams\": [\n \"direction\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"executionSource\",\n \"experimentId\",\n \"field\",\n \"level\",\n \"organizationId\",\n \"page\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanId\",\n \"tags\",\n \"threadId\",\n \"timestamp\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"logs\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /observability/scores\": {\n \"method\": \"GET\",\n \"path\": \"/observability/scores\",\n \"pathParams\": [],\n \"queryParams\": [\n \"direction\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"executionSource\",\n \"experimentId\",\n \"field\",\n \"organizationId\",\n \"page\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"scoreSource\",\n \"scorerId\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanId\",\n \"tags\",\n \"threadId\",\n \"timestamp\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scores\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /observability/scores\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"score\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /observability/scores/:scoreId\": {\n \"method\": \"GET\",\n \"path\": \"/observability/scores/:scoreId\",\n \"pathParams\": [\n \"scoreId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/scores/aggregate\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores/aggregate\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"comparePeriod\",\n \"filters\",\n \"scoreSource\",\n \"scorerId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/scores/breakdown\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores/breakdown\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"filters\",\n \"groupBy\",\n \"scoreSource\",\n \"scorerId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"groups\"\n }\n },\n \"POST /observability/scores/timeseries\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores/timeseries\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"filters\",\n \"groupBy\",\n \"interval\",\n \"scoreSource\",\n \"scorerId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"POST /observability/scores/percentiles\": {\n \"method\": \"POST\",\n \"path\": \"/observability/scores/percentiles\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"filters\",\n \"interval\",\n \"percentiles\",\n \"scoreSource\",\n \"scorerId\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"GET /observability/feedback\": {\n \"method\": \"GET\",\n \"path\": \"/observability/feedback\",\n \"pathParams\": [],\n \"queryParams\": [\n \"direction\",\n \"entityName\",\n \"entityType\",\n \"entityVersionId\",\n \"environment\",\n \"executionSource\",\n \"experimentId\",\n \"feedbackSource\",\n \"feedbackType\",\n \"feedbackUserId\",\n \"field\",\n \"organizationId\",\n \"page\",\n \"parentEntityName\",\n \"parentEntityType\",\n \"parentEntityVersionId\",\n \"perPage\",\n \"requestId\",\n \"resourceId\",\n \"rootEntityName\",\n \"rootEntityType\",\n \"rootEntityVersionId\",\n \"runId\",\n \"serviceName\",\n \"sessionId\",\n \"source\",\n \"spanId\",\n \"tags\",\n \"threadId\",\n \"timestamp\",\n \"traceId\",\n \"userId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"feedback\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /observability/feedback\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"feedback\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/feedback/aggregate\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback/aggregate\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"comparePeriod\",\n \"feedbackSource\",\n \"feedbackType\",\n \"filters\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/feedback/breakdown\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback/breakdown\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"feedbackSource\",\n \"feedbackType\",\n \"filters\",\n \"groupBy\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"groups\"\n }\n },\n \"POST /observability/feedback/timeseries\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback/timeseries\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"feedbackSource\",\n \"feedbackType\",\n \"filters\",\n \"groupBy\",\n \"interval\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"POST /observability/feedback/percentiles\": {\n \"method\": \"POST\",\n \"path\": \"/observability/feedback/percentiles\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"feedbackSource\",\n \"feedbackType\",\n \"filters\",\n \"interval\",\n \"percentiles\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"POST /observability/metrics/aggregate\": {\n \"method\": \"POST\",\n \"path\": \"/observability/metrics/aggregate\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"comparePeriod\",\n \"distinctColumn\",\n \"filters\",\n \"name\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /observability/metrics/breakdown\": {\n \"method\": \"POST\",\n \"path\": \"/observability/metrics/breakdown\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"distinctColumn\",\n \"filters\",\n \"groupBy\",\n \"limit\",\n \"name\",\n \"orderDirection\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"groups\"\n }\n },\n \"POST /observability/metrics/timeseries\": {\n \"method\": \"POST\",\n \"path\": \"/observability/metrics/timeseries\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"aggregation\",\n \"distinctColumn\",\n \"filters\",\n \"groupBy\",\n \"interval\",\n \"name\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"POST /observability/metrics/percentiles\": {\n \"method\": \"POST\",\n \"path\": \"/observability/metrics/percentiles\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"filters\",\n \"interval\",\n \"name\",\n \"percentiles\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"series\"\n }\n },\n \"GET /observability/discovery/metric-names\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/metric-names\",\n \"pathParams\": [],\n \"queryParams\": [\n \"limit\",\n \"prefix\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"names\"\n }\n },\n \"GET /observability/discovery/metric-label-keys\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/metric-label-keys\",\n \"pathParams\": [],\n \"queryParams\": [\n \"metricName\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"keys\"\n }\n },\n \"GET /observability/discovery/metric-label-values\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/metric-label-values\",\n \"pathParams\": [],\n \"queryParams\": [\n \"labelKey\",\n \"limit\",\n \"metricName\",\n \"prefix\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"values\"\n }\n },\n \"GET /observability/discovery/entity-types\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/entity-types\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"entityTypes\"\n }\n },\n \"GET /observability/discovery/entity-names\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/entity-names\",\n \"pathParams\": [],\n \"queryParams\": [\n \"entityType\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"names\"\n }\n },\n \"GET /observability/discovery/service-names\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/service-names\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"serviceNames\"\n }\n },\n \"GET /observability/discovery/environments\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/environments\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"environments\"\n }\n },\n \"GET /observability/discovery/tags\": {\n \"method\": \"GET\",\n \"path\": \"/observability/discovery/tags\",\n \"pathParams\": [],\n \"queryParams\": [\n \"entityType\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"tags\"\n }\n },\n \"GET /logs/transports\": {\n \"method\": \"GET\",\n \"path\": \"/logs/transports\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"transports\"\n }\n },\n \"GET /logs\": {\n \"method\": \"GET\",\n \"path\": \"/logs\",\n \"pathParams\": [],\n \"queryParams\": [\n \"filters\",\n \"fromDate\",\n \"logLevel\",\n \"page\",\n \"perPage\",\n \"toDate\",\n \"transportId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"logs\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /logs/:runId\": {\n \"method\": \"GET\",\n \"path\": \"/logs/:runId\",\n \"pathParams\": [\n \"runId\"\n ],\n \"queryParams\": [\n \"filters\",\n \"fromDate\",\n \"logLevel\",\n \"page\",\n \"perPage\",\n \"toDate\",\n \"transportId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"logs\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /vector/:vectorName/upsert\": {\n \"method\": \"POST\",\n \"path\": \"/vector/:vectorName/upsert\",\n \"pathParams\": [\n \"vectorName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"ids\",\n \"indexName\",\n \"metadata\",\n \"vectors\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"ids\"\n }\n },\n \"POST /vector/:vectorName/create-index\": {\n \"method\": \"POST\",\n \"path\": \"/vector/:vectorName/create-index\",\n \"pathParams\": [\n \"vectorName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"dimension\",\n \"indexName\",\n \"metric\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /vector/:vectorName/query\": {\n \"method\": \"POST\",\n \"path\": \"/vector/:vectorName/query\",\n \"pathParams\": [\n \"vectorName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"filter\",\n \"includeVector\",\n \"indexName\",\n \"queryVector\",\n \"topK\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"GET /vector/:vectorName/indexes\": {\n \"method\": \"GET\",\n \"path\": \"/vector/:vectorName/indexes\",\n \"pathParams\": [\n \"vectorName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"GET /vector/:vectorName/indexes/:indexName\": {\n \"method\": \"GET\",\n \"path\": \"/vector/:vectorName/indexes/:indexName\",\n \"pathParams\": [\n \"vectorName\",\n \"indexName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /vector/:vectorName/indexes/:indexName\": {\n \"method\": \"DELETE\",\n \"path\": \"/vector/:vectorName/indexes/:indexName\",\n \"pathParams\": [\n \"vectorName\",\n \"indexName\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /vectors\": {\n \"method\": \"GET\",\n \"path\": \"/vectors\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"vectors\"\n }\n },\n \"GET /embedders\": {\n \"method\": \"GET\",\n \"path\": \"/embedders\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"embedders\"\n }\n },\n \"GET /.well-known/:agentId/agent-card.json\": {\n \"method\": \"GET\",\n \"path\": \"/.well-known/:agentId/agent-card.json\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"workspaces\"\n }\n },\n \"GET /workspaces/:workspaceId\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/fs/read\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/fs/read\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"encoding\",\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/fs/write\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/fs/write\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"content\",\n \"encoding\",\n \"path\",\n \"recursive\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/fs/list\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/fs/list\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"path\",\n \"recursive\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"entries\"\n }\n },\n \"DELETE /workspaces/:workspaceId/fs/delete\": {\n \"method\": \"DELETE\",\n \"path\": \"/workspaces/:workspaceId/fs/delete\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"force\",\n \"path\",\n \"recursive\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/fs/mkdir\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/fs/mkdir\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"path\",\n \"recursive\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/fs/stat\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/fs/stat\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/search\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/search\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"minScore\",\n \"mode\",\n \"query\",\n \"topK\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/index\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/index\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"content\",\n \"metadata\",\n \"path\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills/search\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills/search\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"includeReferences\",\n \"minScore\",\n \"query\",\n \"skillNames\",\n \"topK\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"results\"\n }\n },\n \"GET /workspaces/:workspaceId/skills\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"skills\"\n }\n },\n \"GET /workspaces/:workspaceId/skills/:skillName\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills/:skillName\",\n \"pathParams\": [\n \"workspaceId\",\n \"skillName\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills/:skillName/references\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills/:skillName/references\",\n \"pathParams\": [\n \"workspaceId\",\n \"skillName\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"references\"\n }\n },\n \"GET /workspaces/:workspaceId/skills/:skillName/references/:referencePath\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills/:skillName/references/:referencePath\",\n \"pathParams\": [\n \"workspaceId\",\n \"skillName\",\n \"referencePath\"\n ],\n \"queryParams\": [\n \"path\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills-sh/search\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/search\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"limit\",\n \"q\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills-sh/popular\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/popular\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"limit\",\n \"offset\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /workspaces/:workspaceId/skills-sh/preview\": {\n \"method\": \"GET\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/preview\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [\n \"owner\",\n \"path\",\n \"repo\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/skills-sh/install\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/install\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"mount\",\n \"owner\",\n \"repo\",\n \"skillName\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/skills-sh/remove\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/remove\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"skillName\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /workspaces/:workspaceId/skills-sh/update\": {\n \"method\": \"POST\",\n \"path\": \"/workspaces/:workspaceId/skills-sh/update\",\n \"pathParams\": [\n \"workspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"skillName\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"updated\"\n }\n },\n \"POST /agents/:agentId/generate-legacy\": {\n \"method\": \"POST\",\n \"path\": \"/agents/:agentId/generate-legacy\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"activeTools\",\n \"clientTools\",\n \"context\",\n \"instructions\",\n \"maxSteps\",\n \"memory\",\n \"messages\",\n \"modelSettings\",\n \"output\",\n \"providerOptions\",\n \"requestContext\",\n \"requireToolApproval\",\n \"resourceId\",\n \"resourceid\",\n \"returnScorerData\",\n \"runId\",\n \"savePerStep\",\n \"scorers\",\n \"stopWhen\",\n \"structuredOutput\",\n \"system\",\n \"threadId\",\n \"toolChoice\",\n \"toolsets\",\n \"tracingOptions\",\n \"versions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /mcp/v0/servers\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/v0/servers\",\n \"pathParams\": [],\n \"queryParams\": [\n \"limit\",\n \"offset\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /mcp/v0/servers/:id\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/v0/servers/:id\",\n \"pathParams\": [\n \"id\"\n ],\n \"queryParams\": [\n \"version\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /mcp/:serverId/tools\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/:serverId/tools\",\n \"pathParams\": [\n \"serverId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"tools\"\n }\n },\n \"GET /mcp/:serverId/tools/:toolId\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/:serverId/tools/:toolId\",\n \"pathParams\": [\n \"serverId\",\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /mcp/:serverId/tools/:toolId/execute\": {\n \"method\": \"POST\",\n \"path\": \"/mcp/:serverId/tools/:toolId/execute\",\n \"pathParams\": [\n \"serverId\",\n \"toolId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"data\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /mcp/:serverId/resources\": {\n \"method\": \"GET\",\n \"path\": \"/mcp/:serverId/resources\",\n \"pathParams\": [\n \"serverId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"resources\"\n }\n },\n \"POST /mcp/:serverId/resources/read\": {\n \"method\": \"POST\",\n \"path\": \"/mcp/:serverId/resources/read\",\n \"pathParams\": [\n \"serverId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"uri\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"contents\"\n }\n },\n \"GET /stored/agents\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"agents\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/agents/preview-instructions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents/preview-instructions\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"blocks\",\n \"context\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/agents/:storedAgentId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents/:storedAgentId\",\n \"pathParams\": [\n \"storedAgentId\"\n ],\n \"queryParams\": [\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/agents\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agents\",\n \"authorId\",\n \"defaultOptions\",\n \"description\",\n \"id\",\n \"inputProcessors\",\n \"instructions\",\n \"integrationTools\",\n \"mcpClients\",\n \"memory\",\n \"metadata\",\n \"model\",\n \"name\",\n \"outputProcessors\",\n \"requestContextSchema\",\n \"scorers\",\n \"skills\",\n \"tools\",\n \"workflows\",\n \"workspace\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/agents/:storedAgentId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/agents/:storedAgentId\",\n \"pathParams\": [\n \"storedAgentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agents\",\n \"authorId\",\n \"changeMessage\",\n \"defaultOptions\",\n \"description\",\n \"inputProcessors\",\n \"instructions\",\n \"integrationTools\",\n \"mcpClients\",\n \"memory\",\n \"metadata\",\n \"model\",\n \"name\",\n \"outputProcessors\",\n \"requestContextSchema\",\n \"scorers\",\n \"skills\",\n \"tools\",\n \"workflows\",\n \"workspace\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/agents/:storedAgentId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/agents/:storedAgentId\",\n \"pathParams\": [\n \"storedAgentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/agents/:agentId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents/:agentId/versions\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/agents/:agentId/versions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents/:agentId/versions\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"changeMessage\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/agents/:agentId/versions/compare\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents/:agentId/versions/compare\",\n \"pathParams\": [\n \"agentId\"\n ],\n \"queryParams\": [\n \"from\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/agents/:agentId/versions/:versionId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/agents/:agentId/versions/:versionId\",\n \"pathParams\": [\n \"agentId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/agents/:agentId/versions/:versionId/activate\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents/:agentId/versions/:versionId/activate\",\n \"pathParams\": [\n \"agentId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/agents/:agentId/versions/:versionId/restore\": {\n \"method\": \"POST\",\n \"path\": \"/stored/agents/:agentId/versions/:versionId/restore\",\n \"pathParams\": [\n \"agentId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/agents/:agentId/versions/:versionId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/agents/:agentId/versions/:versionId\",\n \"pathParams\": [\n \"agentId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/mcp-clients\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"mcpClients\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/mcp-clients/:storedMCPClientId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients/:storedMCPClientId\",\n \"pathParams\": [\n \"storedMCPClientId\"\n ],\n \"queryParams\": [\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/mcp-clients\": {\n \"method\": \"POST\",\n \"path\": \"/stored/mcp-clients\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"description\",\n \"id\",\n \"metadata\",\n \"name\",\n \"servers\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/mcp-clients/:storedMCPClientId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/mcp-clients/:storedMCPClientId\",\n \"pathParams\": [\n \"storedMCPClientId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"description\",\n \"metadata\",\n \"name\",\n \"servers\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/mcp-clients/:storedMCPClientId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/mcp-clients/:storedMCPClientId\",\n \"pathParams\": [\n \"storedMCPClientId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/mcp-clients/:mcpClientId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions\",\n \"pathParams\": [\n \"mcpClientId\"\n ],\n \"queryParams\": [\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/mcp-clients/:mcpClientId/versions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions\",\n \"pathParams\": [\n \"mcpClientId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"changeMessage\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/mcp-clients/:mcpClientId/versions/compare\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/compare\",\n \"pathParams\": [\n \"mcpClientId\"\n ],\n \"queryParams\": [\n \"from\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/mcp-clients/:mcpClientId/versions/:versionId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/:versionId\",\n \"pathParams\": [\n \"mcpClientId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/mcp-clients/:mcpClientId/versions/:versionId/activate\": {\n \"method\": \"POST\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/:versionId/activate\",\n \"pathParams\": [\n \"mcpClientId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/mcp-clients/:mcpClientId/versions/:versionId/restore\": {\n \"method\": \"POST\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/:versionId/restore\",\n \"pathParams\": [\n \"mcpClientId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/mcp-clients/:mcpClientId/versions/:versionId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/mcp-clients/:mcpClientId/versions/:versionId\",\n \"pathParams\": [\n \"mcpClientId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/prompt-blocks\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"promptBlocks\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/prompt-blocks/:storedPromptBlockId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks/:storedPromptBlockId\",\n \"pathParams\": [\n \"storedPromptBlockId\"\n ],\n \"queryParams\": [\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/prompt-blocks\": {\n \"method\": \"POST\",\n \"path\": \"/stored/prompt-blocks\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"content\",\n \"description\",\n \"id\",\n \"metadata\",\n \"name\",\n \"requestContextSchema\",\n \"rules\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/prompt-blocks/:storedPromptBlockId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/prompt-blocks/:storedPromptBlockId\",\n \"pathParams\": [\n \"storedPromptBlockId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"content\",\n \"description\",\n \"metadata\",\n \"name\",\n \"requestContextSchema\",\n \"rules\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/prompt-blocks/:storedPromptBlockId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/prompt-blocks/:storedPromptBlockId\",\n \"pathParams\": [\n \"storedPromptBlockId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/prompt-blocks/:promptBlockId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions\",\n \"pathParams\": [\n \"promptBlockId\"\n ],\n \"queryParams\": [\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/prompt-blocks/:promptBlockId/versions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions\",\n \"pathParams\": [\n \"promptBlockId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"changeMessage\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/prompt-blocks/:promptBlockId/versions/compare\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/compare\",\n \"pathParams\": [\n \"promptBlockId\"\n ],\n \"queryParams\": [\n \"from\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/prompt-blocks/:promptBlockId/versions/:versionId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/:versionId\",\n \"pathParams\": [\n \"promptBlockId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/prompt-blocks/:promptBlockId/versions/:versionId/activate\": {\n \"method\": \"POST\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/:versionId/activate\",\n \"pathParams\": [\n \"promptBlockId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/prompt-blocks/:promptBlockId/versions/:versionId/restore\": {\n \"method\": \"POST\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/:versionId/restore\",\n \"pathParams\": [\n \"promptBlockId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/prompt-blocks/:promptBlockId/versions/:versionId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/prompt-blocks/:promptBlockId/versions/:versionId\",\n \"pathParams\": [\n \"promptBlockId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/scorers\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\",\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"scorerDefinitions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/scorers/:storedScorerId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers/:storedScorerId\",\n \"pathParams\": [\n \"storedScorerId\"\n ],\n \"queryParams\": [\n \"status\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/scorers\": {\n \"method\": \"POST\",\n \"path\": \"/stored/scorers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"defaultSampling\",\n \"description\",\n \"id\",\n \"instructions\",\n \"metadata\",\n \"model\",\n \"name\",\n \"presetConfig\",\n \"scoreRange\",\n \"type\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/scorers/:storedScorerId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/scorers/:storedScorerId\",\n \"pathParams\": [\n \"storedScorerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"defaultSampling\",\n \"description\",\n \"instructions\",\n \"metadata\",\n \"model\",\n \"name\",\n \"presetConfig\",\n \"scoreRange\",\n \"type\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/scorers/:storedScorerId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/scorers/:storedScorerId\",\n \"pathParams\": [\n \"storedScorerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/scorers/:scorerId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers/:scorerId/versions\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"page\"\n }\n },\n \"POST /stored/scorers/:scorerId/versions\": {\n \"method\": \"POST\",\n \"path\": \"/stored/scorers/:scorerId/versions\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"changeMessage\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/scorers/:scorerId/versions/compare\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers/:scorerId/versions/compare\",\n \"pathParams\": [\n \"scorerId\"\n ],\n \"queryParams\": [\n \"from\",\n \"to\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/scorers/:scorerId/versions/:versionId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/scorers/:scorerId/versions/:versionId\",\n \"pathParams\": [\n \"scorerId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/scorers/:scorerId/versions/:versionId/activate\": {\n \"method\": \"POST\",\n \"path\": \"/stored/scorers/:scorerId/versions/:versionId/activate\",\n \"pathParams\": [\n \"scorerId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/scorers/:scorerId/versions/:versionId/restore\": {\n \"method\": \"POST\",\n \"path\": \"/stored/scorers/:scorerId/versions/:versionId/restore\",\n \"pathParams\": [\n \"scorerId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/scorers/:scorerId/versions/:versionId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/scorers/:scorerId/versions/:versionId\",\n \"pathParams\": [\n \"scorerId\",\n \"versionId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/workspaces\": {\n \"method\": \"GET\",\n \"path\": \"/stored/workspaces\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"workspaces\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/workspaces/:storedWorkspaceId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/workspaces/:storedWorkspaceId\",\n \"pathParams\": [\n \"storedWorkspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/workspaces\": {\n \"method\": \"POST\",\n \"path\": \"/stored/workspaces\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"autoSync\",\n \"description\",\n \"filesystem\",\n \"id\",\n \"metadata\",\n \"mounts\",\n \"name\",\n \"operationTimeout\",\n \"sandbox\",\n \"search\",\n \"skills\",\n \"tools\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/workspaces/:storedWorkspaceId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/workspaces/:storedWorkspaceId\",\n \"pathParams\": [\n \"storedWorkspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"authorId\",\n \"autoSync\",\n \"description\",\n \"filesystem\",\n \"metadata\",\n \"mounts\",\n \"name\",\n \"operationTimeout\",\n \"sandbox\",\n \"search\",\n \"skills\",\n \"tools\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/workspaces/:storedWorkspaceId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/workspaces/:storedWorkspaceId\",\n \"pathParams\": [\n \"storedWorkspaceId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /stored/skills\": {\n \"method\": \"GET\",\n \"path\": \"/stored/skills\",\n \"pathParams\": [],\n \"queryParams\": [\n \"authorId\",\n \"metadata\",\n \"orderBy\",\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"skills\",\n \"paginationProperty\": \"page\"\n }\n },\n \"GET /stored/skills/:storedSkillId\": {\n \"method\": \"GET\",\n \"path\": \"/stored/skills/:storedSkillId\",\n \"pathParams\": [\n \"storedSkillId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/skills\": {\n \"method\": \"POST\",\n \"path\": \"/stored/skills\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"assets\",\n \"authorId\",\n \"compatibility\",\n \"description\",\n \"id\",\n \"instructions\",\n \"license\",\n \"metadata\",\n \"name\",\n \"references\",\n \"scripts\",\n \"source\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /stored/skills/:storedSkillId\": {\n \"method\": \"PATCH\",\n \"path\": \"/stored/skills/:storedSkillId\",\n \"pathParams\": [\n \"storedSkillId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"assets\",\n \"authorId\",\n \"compatibility\",\n \"description\",\n \"instructions\",\n \"license\",\n \"metadata\",\n \"name\",\n \"references\",\n \"scripts\",\n \"source\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /stored/skills/:storedSkillId\": {\n \"method\": \"DELETE\",\n \"path\": \"/stored/skills/:storedSkillId\",\n \"pathParams\": [\n \"storedSkillId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /stored/skills/:storedSkillId/publish\": {\n \"method\": \"POST\",\n \"path\": \"/stored/skills/:storedSkillId/publish\",\n \"pathParams\": [\n \"storedSkillId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"skillPath\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /tool-providers\": {\n \"method\": \"GET\",\n \"path\": \"/tool-providers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"providers\"\n }\n },\n \"GET /tool-providers/:providerId/toolkits\": {\n \"method\": \"GET\",\n \"path\": \"/tool-providers/:providerId/toolkits\",\n \"pathParams\": [\n \"providerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"data\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /tool-providers/:providerId/tools\": {\n \"method\": \"GET\",\n \"path\": \"/tool-providers/:providerId/tools\",\n \"pathParams\": [\n \"providerId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\",\n \"search\",\n \"toolkit\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"data\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /tool-providers/:providerId/tools/:toolSlug/schema\": {\n \"method\": \"GET\",\n \"path\": \"/tool-providers/:providerId/tools/:toolSlug/schema\",\n \"pathParams\": [\n \"providerId\",\n \"toolSlug\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"record\"\n }\n },\n \"GET /processor-providers\": {\n \"method\": \"GET\",\n \"path\": \"/processor-providers\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"providers\"\n }\n },\n \"GET /processor-providers/:providerId\": {\n \"method\": \"GET\",\n \"path\": \"/processor-providers/:providerId\",\n \"pathParams\": [\n \"providerId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /system/packages\": {\n \"method\": \"GET\",\n \"path\": \"/system/packages\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /system/api-schema\": {\n \"method\": \"GET\",\n \"path\": \"/system/api-schema\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"routes\"\n }\n },\n \"GET /datasets\": {\n \"method\": \"GET\",\n \"path\": \"/datasets\",\n \"pathParams\": [],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"datasets\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /datasets\": {\n \"method\": \"POST\",\n \"path\": \"/datasets\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"description\",\n \"groundTruthSchema\",\n \"inputSchema\",\n \"metadata\",\n \"name\",\n \"requestContextSchema\",\n \"scorerIds\",\n \"targetIds\",\n \"targetType\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /datasets/:datasetId\": {\n \"method\": \"PATCH\",\n \"path\": \"/datasets/:datasetId\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"description\",\n \"groundTruthSchema\",\n \"inputSchema\",\n \"metadata\",\n \"name\",\n \"requestContextSchema\",\n \"scorerIds\",\n \"tags\",\n \"targetIds\",\n \"targetType\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /datasets/:datasetId\": {\n \"method\": \"DELETE\",\n \"path\": \"/datasets/:datasetId\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/items\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/items\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\",\n \"search\",\n \"version\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"items\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /datasets/:datasetId/items\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/items\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"expectedTrajectory\",\n \"groundTruth\",\n \"input\",\n \"metadata\",\n \"requestContext\",\n \"source\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /datasets/:datasetId/items/batch\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/items/batch\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"items\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"items\"\n }\n },\n \"DELETE /datasets/:datasetId/items/batch\": {\n \"method\": \"DELETE\",\n \"path\": \"/datasets/:datasetId/items/batch\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"itemIds\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/items/:itemId\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/items/:itemId\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"PATCH /datasets/:datasetId/items/:itemId\": {\n \"method\": \"PATCH\",\n \"path\": \"/datasets/:datasetId/items/:itemId\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"expectedTrajectory\",\n \"groundTruth\",\n \"input\",\n \"metadata\",\n \"requestContext\",\n \"source\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"DELETE /datasets/:datasetId/items/:itemId\": {\n \"method\": \"DELETE\",\n \"path\": \"/datasets/:datasetId/items/:itemId\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/versions\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/versions\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"versions\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /datasets/:datasetId/items/:itemId/history\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/items/:itemId/history\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"history\"\n }\n },\n \"GET /datasets/:datasetId/items/:itemId/versions/:datasetVersion\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/items/:itemId/versions/:datasetVersion\",\n \"pathParams\": [\n \"datasetId\",\n \"itemId\",\n \"datasetVersion\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /experiments\": {\n \"method\": \"GET\",\n \"path\": \"/experiments\",\n \"pathParams\": [],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"experiments\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"GET /experiments/review-summary\": {\n \"method\": \"GET\",\n \"path\": \"/experiments/review-summary\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"counts\"\n }\n },\n \"GET /datasets/:datasetId/experiments\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/experiments\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"experiments\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"POST /datasets/:datasetId/experiments\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/experiments\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentVersion\",\n \"maxConcurrency\",\n \"requestContext\",\n \"scorerIds\",\n \"targetId\",\n \"targetType\",\n \"version\",\n \"versions\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/experiments/:experimentId\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/experiments/:experimentId\",\n \"pathParams\": [\n \"datasetId\",\n \"experimentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /datasets/:datasetId/experiments/:experimentId/results\": {\n \"method\": \"GET\",\n \"path\": \"/datasets/:datasetId/experiments/:experimentId/results\",\n \"pathParams\": [\n \"datasetId\",\n \"experimentId\"\n ],\n \"queryParams\": [\n \"page\",\n \"perPage\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"results\",\n \"paginationProperty\": \"pagination\"\n }\n },\n \"PATCH /datasets/:datasetId/experiments/:experimentId/results/:resultId\": {\n \"method\": \"PATCH\",\n \"path\": \"/datasets/:datasetId/experiments/:experimentId/results/:resultId\",\n \"pathParams\": [\n \"datasetId\",\n \"experimentId\",\n \"resultId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"status\",\n \"tags\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /datasets/:datasetId/compare\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/compare\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"experimentIdA\",\n \"experimentIdB\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"items\"\n }\n },\n \"POST /datasets/:datasetId/generate-items\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/:datasetId/generate-items\",\n \"pathParams\": [\n \"datasetId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentContext\",\n \"count\",\n \"modelId\",\n \"prompt\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"items\"\n }\n },\n \"POST /datasets/cluster-failures\": {\n \"method\": \"POST\",\n \"path\": \"/datasets/cluster-failures\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [\n \"availableTags\",\n \"items\",\n \"modelId\",\n \"prompt\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"clusters\"\n }\n },\n \"GET /background-tasks\": {\n \"method\": \"GET\",\n \"path\": \"/background-tasks\",\n \"pathParams\": [],\n \"queryParams\": [\n \"agentId\",\n \"dateFilterBy\",\n \"fromDate\",\n \"orderBy\",\n \"orderDirection\",\n \"page\",\n \"perPage\",\n \"resourceId\",\n \"runId\",\n \"status\",\n \"threadId\",\n \"toDate\",\n \"toolCallId\",\n \"toolName\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"tasks\"\n }\n },\n \"GET /background-tasks/:backgroundTaskId\": {\n \"method\": \"GET\",\n \"path\": \"/background-tasks/:backgroundTaskId\",\n \"pathParams\": [\n \"backgroundTaskId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /schedules\": {\n \"method\": \"GET\",\n \"path\": \"/schedules\",\n \"pathParams\": [],\n \"queryParams\": [\n \"ownerId\",\n \"ownerType\",\n \"status\",\n \"workflowId\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"schedules\"\n }\n },\n \"GET /schedules/:scheduleId\": {\n \"method\": \"GET\",\n \"path\": \"/schedules/:scheduleId\",\n \"pathParams\": [\n \"scheduleId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /schedules/:scheduleId/triggers\": {\n \"method\": \"GET\",\n \"path\": \"/schedules/:scheduleId/triggers\",\n \"pathParams\": [\n \"scheduleId\"\n ],\n \"queryParams\": [\n \"fromActualFireAt\",\n \"limit\",\n \"toActualFireAt\"\n ],\n \"bodyParams\": [],\n \"hasQuery\": true,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"object-property\",\n \"listProperty\": \"triggers\"\n }\n },\n \"POST /schedules/:scheduleId/pause\": {\n \"method\": \"POST\",\n \"path\": \"/schedules/:scheduleId/pause\",\n \"pathParams\": [\n \"scheduleId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /schedules/:scheduleId/resume\": {\n \"method\": \"POST\",\n \"path\": \"/schedules/:scheduleId/resume\",\n \"pathParams\": [\n \"scheduleId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"GET /channels/platforms\": {\n \"method\": \"GET\",\n \"path\": \"/channels/platforms\",\n \"pathParams\": [],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"GET /channels/:platform/installations\": {\n \"method\": \"GET\",\n \"path\": \"/channels/:platform/installations\",\n \"pathParams\": [\n \"platform\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"array\"\n }\n },\n \"POST /channels/:platform/connect\": {\n \"method\": \"POST\",\n \"path\": \"/channels/:platform/connect\",\n \"pathParams\": [\n \"platform\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [\n \"agentId\",\n \"options\"\n ],\n \"hasQuery\": false,\n \"hasBody\": true,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n },\n \"POST /channels/:platform/:agentId/disconnect\": {\n \"method\": \"POST\",\n \"path\": \"/channels/:platform/:agentId/disconnect\",\n \"pathParams\": [\n \"platform\",\n \"agentId\"\n ],\n \"queryParams\": [],\n \"bodyParams\": [],\n \"hasQuery\": false,\n \"hasBody\": false,\n \"responseShape\": {\n \"kind\": \"single\"\n }\n }\n} as const;\n","import { fetchSchemaManifest } from './client.js';\nimport { ApiCliError } from './errors.js';\nimport type { ResolvedTarget } from './target.js';\nimport type { ApiCommandDescriptor, ApiCommandExample } from './types.js';\n\nexport async function getCommandSchema(descriptor: ApiCommandDescriptor, target: ResolvedTarget): Promise<unknown> {\n if (!descriptor.acceptsInput) {\n throw new ApiCliError('SCHEMA_UNAVAILABLE', 'This command does not accept JSON input');\n }\n\n const manifest = await fetchSchemaManifest(target.baseUrl, target.headers, target.timeoutMs);\n if (!manifest || typeof manifest !== 'object' || !Array.isArray((manifest as { routes?: unknown }).routes)) {\n throw new ApiCliError('SCHEMA_UNAVAILABLE', 'Target server returned an invalid schema manifest', {\n reason: 'invalid_manifest',\n });\n }\n\n const route = manifest.routes.find(\n (candidate: any) => candidate.method === descriptor.method && candidate.path === descriptor.path,\n );\n\n if (!route) {\n throw new ApiCliError('SCHEMA_UNAVAILABLE', 'Target server did not expose a schema for this command', {\n method: descriptor.method,\n path: descriptor.path,\n });\n }\n\n const source = descriptor.method === 'GET' ? 'query' : route.queryParamSchema ? 'query+body' : 'body';\n const inputSchema =\n descriptor.method === 'GET' ? route.queryParamSchema : mergeObjectSchemas(route.queryParamSchema, route.bodySchema);\n\n return {\n command: buildCommandUsage(descriptor),\n description: descriptor.description,\n method: descriptor.method,\n path: descriptor.path,\n positionals: buildPositionals(descriptor, route.pathParamSchema),\n examples: buildCommandExamples(descriptor),\n input: {\n required: descriptor.inputRequired,\n source,\n schema: inputSchema,\n },\n schemas: {\n pathParams: route.pathParamSchema,\n query: route.queryParamSchema,\n body: route.bodySchema,\n },\n response: {\n list: descriptor.list,\n shape: descriptor.responseShape,\n schema: route.responseSchema,\n },\n };\n}\n\nexport function buildCommandUsage(descriptor: ApiCommandDescriptor): string {\n const positionals = descriptor.positionals.map(name => `<${name}>`).join(' ');\n const input = descriptor.acceptsInput ? (descriptor.inputRequired ? '<input>' : '[input]') : '';\n return ['mastra api', descriptor.name, positionals, input].filter(Boolean).join(' ');\n}\n\nfunction mergeObjectSchemas(querySchema: any, bodySchema: any): any {\n if (!querySchema) return bodySchema;\n if (!bodySchema) return querySchema;\n\n return {\n type: 'object',\n properties: {\n ...(querySchema.properties ?? {}),\n ...(bodySchema.properties ?? {}),\n },\n required: [...new Set([...(querySchema.required ?? []), ...(bodySchema.required ?? [])])],\n additionalProperties: bodySchema.additionalProperties ?? querySchema.additionalProperties,\n };\n}\n\nfunction buildPositionals(descriptor: ApiCommandDescriptor, pathParamSchema: any): Array<Record<string, unknown>> {\n const properties = pathParamSchema?.properties ?? {};\n const required = new Set<string>(Array.isArray(pathParamSchema?.required) ? pathParamSchema.required : []);\n\n return descriptor.positionals.map(name => ({\n name,\n required: required.has(name) || descriptor.path.includes(`:${name}`),\n description: properties[name]?.description,\n schema: properties[name],\n }));\n}\n\nexport function buildCommandExamples(descriptor: ApiCommandDescriptor): ApiCommandExample[] {\n if (descriptor.examples && descriptor.examples.length > 0) {\n return descriptor.examples;\n }\n\n return buildGenericExamples(descriptor, `mastra api ${descriptor.name}`);\n}\n\nfunction buildGenericExamples(descriptor: ApiCommandDescriptor, command: string): ApiCommandExample[] {\n if (descriptor.list) {\n return [\n {\n description: descriptor.description,\n command: descriptor.acceptsInput ? `${command} '{\"page\":0,\"perPage\":50}'` : command,\n },\n ];\n }\n\n if (!descriptor.acceptsInput) {\n return [{ description: descriptor.description, command: [command, ...samplePositionals(descriptor)].join(' ') }];\n }\n\n const sampleInput =\n descriptor.method === 'GET' && descriptor.inputRequired ? sampleInputWithPathParams(descriptor) : '{}';\n return [{ description: descriptor.description, command: `${command} '${sampleInput}'` }];\n}\n\nfunction samplePositionals(descriptor: ApiCommandDescriptor): string[] {\n return descriptor.positionals.map(name => `${name}_123`);\n}\n\nfunction sampleInputWithPathParams(descriptor: ApiCommandDescriptor): string {\n const pathParams = [...descriptor.path.matchAll(/:([A-Za-z0-9_]+)/g)].flatMap(match => (match[1] ? [match[1]] : []));\n const inputOnlyParams = pathParams.filter(param => !descriptor.positionals.includes(param));\n if (inputOnlyParams.length === 0) return '{}';\n\n return JSON.stringify(Object.fromEntries(inputOnlyParams.map(param => [param, `${param}_123`])));\n}\n","import { bestEffortCancel, confirmUploadWithRetry } from '../../utils/deploy-upload.js';\nimport { withPollingRetries } from '../../utils/polling.js';\nimport {\n authHeaders,\n createApiClient,\n extractApiErrorDetail,\n MASTRA_PLATFORM_API_URL,\n platformFetch,\n throwApiError,\n} from '../auth/client.js';\nimport { getToken } from '../auth/credentials.js';\nimport type { DeployDiagnosis, DeployDiagnosisLookup } from '../deploy-suggestions.js';\nimport type { paths } from '../platform-api.js';\n\ntype ServerProjectsResponse = paths['/v1/server/projects']['get'] extends {\n responses: { 200: { content: { 'application/json': infer T } } };\n}\n ? T\n : never;\nexport type ServerProject = ServerProjectsResponse extends { projects: (infer P)[] } ? P : never;\n\ntype ServerDeployResponse = paths['/v1/server/deploys/{id}']['get'] extends {\n responses: { 200: { content: { 'application/json': infer T } } };\n}\n ? T\n : never;\nexport type ServerDeployStatus = ServerDeployResponse;\n\nexport async function fetchServerProjects(token: string, orgId: string): Promise<ServerProject[]> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/server/projects');\n\n if (error) {\n throwApiError('Failed to fetch server projects', response.status);\n }\n\n return data.projects;\n}\n\nexport async function createServerProject(token: string, orgId: string, name: string): Promise<ServerProject> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.POST('/v1/server/projects', {\n body: { name },\n });\n\n if (error) {\n throwApiError(`Failed to create server project — ${error.detail ?? 'unknown error'}`, response.status);\n }\n\n return data.project;\n}\n\nexport async function fetchServerDeployStatus(\n deployId: string,\n token: string,\n orgId?: string,\n): Promise<ServerDeployStatus> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/server/deploys/{id}', {\n params: { path: { id: deployId } },\n });\n\n if (error) {\n throwApiError('Failed to fetch server deploy status', response.status);\n }\n\n return data;\n}\n\nexport async function fetchServerDeployDiagnosis(\n deployId: string,\n token: string,\n orgId?: string,\n): Promise<DeployDiagnosisLookup> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/server/deploys/${deployId}/diagnosis`, {\n headers: authHeaders(token, orgId),\n });\n\n if (resp.status === 204) {\n return { state: 'healthy' };\n }\n\n if (!resp.ok) {\n let detail: string | undefined;\n try {\n const error = (await resp.json()) as { detail?: string };\n detail = error.detail;\n } catch {\n detail = undefined;\n }\n throwApiError('Failed to fetch server deploy diagnosis', resp.status, detail);\n }\n\n const data = (await resp.json()) as { diagnosis: DeployDiagnosis | null };\n if (!data.diagnosis) {\n return { state: 'missing' };\n }\n\n return { state: 'ready', diagnosis: data.diagnosis };\n}\n\nexport async function startServerDeployDiagnosis(deployId: string, token: string, orgId?: string): Promise<void> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/server/deploys/${deployId}/diagnosis`, {\n method: 'POST',\n headers: authHeaders(token, orgId),\n });\n\n if (resp.status === 201 || resp.status === 304) {\n return;\n }\n\n let detail: string | undefined;\n try {\n const error = (await resp.json()) as { detail?: string };\n detail = error.detail;\n } catch {\n detail = undefined;\n }\n\n throwApiError('Failed to start server deploy diagnosis', resp.status, detail);\n}\n\nexport async function uploadServerDeploy(\n token: string,\n orgId: string,\n projectId: string,\n zipBuffer: Buffer,\n meta?: { projectName?: string; envVars?: Record<string, string>; disablePlatformObservability?: boolean },\n): Promise<{ id: string; status: string }> {\n const client = createApiClient(token, orgId);\n\n // Step 1: Create the deploy — returns upload URL\n const { data, error, response } = await client.POST('/v1/server/deploys', {\n body: {\n projectId,\n projectName: meta?.projectName,\n envVars: meta?.envVars,\n ...(meta?.disablePlatformObservability !== undefined\n ? { disablePlatformObservability: meta.disablePlatformObservability }\n : {}),\n },\n });\n\n if (error) {\n throwApiError('Deploy failed', response.status, extractApiErrorDetail(error));\n }\n\n const { id, status, uploadUrl } = data;\n\n if (!uploadUrl) {\n throw new Error('No upload URL returned');\n }\n\n const cancel = (c: ReturnType<typeof createApiClient>) =>\n bestEffortCancel({\n postCancel: c2 => c2.POST('/v1/server/deploys/{id}/cancel', { params: { path: { id } } }),\n client: c,\n deployId: id,\n });\n\n // Step 2: Upload artifact to the signed URL\n try {\n if (uploadUrl.startsWith('file://')) {\n const { writeFile } = await import('node:fs/promises');\n const { fileURLToPath } = await import('node:url');\n await writeFile(fileURLToPath(uploadUrl), Buffer.from(zipBuffer));\n } else {\n const uploadResp = await fetch(uploadUrl, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/zip' },\n body: new Uint8Array(zipBuffer),\n });\n if (!uploadResp.ok) {\n throw new Error(`Artifact upload failed: ${uploadResp.status} ${uploadResp.statusText}`);\n }\n }\n } catch (uploadError) {\n await cancel(client);\n throw uploadError;\n }\n\n // Step 3: Notify API that upload is complete → triggers build pipeline\n await confirmUploadWithRetry({\n postUploadComplete: c => c.POST('/v1/server/deploys/{id}/upload-complete', { params: { path: { id } } }),\n cancelDeploy: cancel,\n client,\n orgId,\n });\n\n return { id, status };\n}\n\nexport async function pollServerDeploy(\n deployId: string,\n token: string,\n orgId: string,\n maxWaitMs = 600000, // 10 minutes — server builds take longer\n): Promise<ServerDeployStatus> {\n const start = Date.now();\n let lastStatus = '';\n let currentToken = token;\n\n let client = createApiClient(currentToken, orgId);\n\n // Poll for build + deploy logs in the background\n const logAbort = new AbortController();\n pollServerLogs(deployId, currentToken, orgId, logAbort.signal).catch(() => {});\n\n try {\n while (Date.now() - start < maxWaitMs) {\n const result = await withPollingRetries(() =>\n client.GET('/v1/server/deploys/{id}', {\n params: { path: { id: deployId } },\n }),\n );\n\n const { data, error, response } = result;\n\n if (error) {\n if (response.status === 401) {\n currentToken = await getToken();\n client = createApiClient(currentToken, orgId);\n continue;\n }\n throwApiError('Poll failed', response.status);\n }\n\n if (data.status !== lastStatus) {\n lastStatus = data.status;\n }\n\n const terminal = ['running', 'failed', 'crashed', 'cancelled', 'stopped'];\n if (terminal.includes(data.status)) {\n return data;\n }\n\n await new Promise(r => setTimeout(r, 5000));\n }\n\n throw new Error('Deploy timed out');\n } finally {\n logAbort.abort();\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* Environment variables */\n/* ------------------------------------------------------------------ */\n\nexport async function getServerProjectEnv(\n token: string,\n orgId: string,\n projectId: string,\n): Promise<Record<string, string>> {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/server/projects/{id}/env', {\n params: { path: { id: projectId } },\n });\n\n if (error) {\n throwApiError('Failed to fetch environment variables', response.status);\n }\n\n return data.envVars;\n}\n\nexport async function updateServerProjectEnv(\n token: string,\n orgId: string,\n projectId: string,\n envVars: Record<string, string>,\n): Promise<void> {\n const client = createApiClient(token, orgId);\n const { error, response } = await client.PUT('/v1/server/projects/{id}/env', {\n params: { path: { id: projectId } },\n body: { envVars },\n });\n\n if (error) {\n throwApiError('Failed to update environment variables', response.status);\n }\n}\n\nexport async function fetchServerProjectDetail(token: string, orgId: string, projectId: string) {\n const client = createApiClient(token, orgId);\n const { data, error, response } = await client.GET('/v1/server/projects/{id}', {\n params: { path: { id: projectId } },\n });\n\n if (error) {\n throwApiError('Failed to fetch server project', response.status);\n }\n\n return data;\n}\n\nexport async function pauseServerProject(token: string, orgId: string, projectId: string): Promise<void> {\n const client = createApiClient(token, orgId);\n const { error, response } = await client.POST('/v1/server/projects/{id}/pause', {\n params: { path: { id: projectId } },\n });\n\n if (error) {\n if (response.status === 409) {\n const detail = extractApiErrorDetail(error);\n throwApiError('Failed to pause server', response.status, detail ?? 'Pause failed: the server is not running.');\n }\n const detail = extractApiErrorDetail(error);\n throwApiError('Failed to pause server', response.status, detail);\n }\n}\n\n/**\n * Triggers a platform restart and returns the deploy id to pass to {@link pollServerDeploy}.\n * Uses `id` from the restart response when present; otherwise polls project details until `latestDeployId`\n * changes, or until the current `latestDeployId` shows an active deploy status (in-place restart without a new id).\n */\nexport async function restartServerProject(token: string, orgId: string, projectId: string): Promise<string> {\n const client = createApiClient(token, orgId);\n\n const before = await fetchServerProjectDetail(token, orgId, projectId);\n const previousLatestDeployId = before.project.latestDeployId;\n\n const { data, error, response } = await client.POST('/v1/server/projects/{id}/restart', {\n params: { path: { id: projectId } },\n });\n\n if (error) {\n const detail = extractApiErrorDetail(error);\n if (response.status === 409) {\n throwApiError(\n 'Failed to restart server',\n response.status,\n detail ??\n 'Restart failed: a deployment for this project is currently active. Run `mastra server pause` to pause the server before restarting.',\n );\n }\n throwApiError('Failed to restart server', response.status, detail);\n }\n\n if (data?.id) {\n return data.id;\n }\n\n const deployIndicatesAcceptedRestart = (status: string | undefined) =>\n Boolean(status && !['failed', 'crashed', 'cancelled', 'stopped'].includes(status));\n\n let currentToken = token;\n let pollClient = createApiClient(currentToken, orgId);\n const deadline = Date.now() + 45000;\n while (Date.now() < deadline) {\n const {\n data: snap,\n error: snapError,\n response: snapResponse,\n } = await pollClient.GET('/v1/server/projects/{id}', { params: { path: { id: projectId } } });\n\n if (snapError) {\n if (snapResponse.status === 401) {\n currentToken = await getToken();\n pollClient = createApiClient(currentToken, orgId);\n continue;\n }\n throwApiError('Failed to fetch server project', snapResponse.status, extractApiErrorDetail(snapError));\n }\n\n const latest = snap.project.latestDeployId;\n if (latest && latest !== previousLatestDeployId) {\n return latest;\n }\n if (latest) {\n const {\n data: st,\n error: statusError,\n response: statusResponse,\n } = await pollClient.GET('/v1/server/deploys/{id}', { params: { path: { id: latest } } });\n\n if (statusError) {\n if (statusResponse.status === 401) {\n currentToken = await getToken();\n pollClient = createApiClient(currentToken, orgId);\n continue;\n }\n if (statusResponse.status !== 404) {\n throwApiError(\n 'Failed to fetch server deploy status',\n statusResponse.status,\n extractApiErrorDetail(statusError),\n );\n }\n } else if (deployIndicatesAcceptedRestart(st?.status)) {\n return latest;\n }\n }\n await new Promise(r => setTimeout(r, 2000));\n }\n\n throw new Error(\n 'Restart was accepted but no deploy ID could be resolved. Check the Mastra platform for deployment status.',\n );\n}\n\n/**\n * Poll the server deploy logs endpoint and print new log lines.\n * Server deploys don't have SSE streaming — we poll the JSON endpoint.\n */\nasync function pollServerLogs(deployId: string, token: string, orgId: string, signal: AbortSignal): Promise<void> {\n await new Promise(r => setTimeout(r, 3000));\n\n let printedBuild = 0;\n let printedDeploy = 0;\n let currentToken = token;\n let client = createApiClient(currentToken, orgId);\n\n while (!signal.aborted) {\n try {\n const { data, response } = await client.GET('/v1/server/deploys/{id}/logs', {\n params: { path: { id: deployId } },\n });\n\n if (response.status === 401) {\n currentToken = await getToken();\n client = createApiClient(currentToken, orgId);\n continue;\n }\n\n if (data) {\n const newBuild = data.buildLogs.slice(printedBuild);\n for (const line of newBuild) {\n process.stdout.write(`${line}\\n`);\n }\n printedBuild = data.buildLogs.length;\n\n const newDeploy = data.deployLogs.slice(printedDeploy);\n for (const line of newDeploy) {\n process.stdout.write(`${line}\\n`);\n }\n printedDeploy = data.deployLogs.length;\n }\n } catch {\n // Ignore errors during log polling — deploy status polling is the source of truth\n }\n\n await new Promise(r => setTimeout(r, 5000));\n }\n}\n","import { ApiCliError } from './errors.js';\n\nexport function parseHeaders(values: string[]): Record<string, string> {\n const headers: Record<string, string> = {};\n\n for (const value of values) {\n const separatorIndex = value.indexOf(':');\n if (separatorIndex <= 0) {\n throw new ApiCliError('MALFORMED_HEADER', 'Header must use \"Key: Value\" format', { header: value });\n }\n\n const key = value.slice(0, separatorIndex).trim();\n const headerValue = value.slice(separatorIndex + 1).trim();\n\n if (!key || !headerValue) {\n throw new ApiCliError('MALFORMED_HEADER', 'Header must use \"Key: Value\" format', { header: value });\n }\n\n headers[key] = headerValue;\n }\n\n return headers;\n}\n","import { existsSync, readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { parse } from 'dotenv';\nimport { getToken } from '../auth/credentials.js';\nimport { fetchServerProjects } from '../server/platform-api.js';\nimport { loadProjectConfig } from '../studio/project-config.js';\nimport { ApiCliError } from './errors.js';\nimport { parseHeaders } from './headers.js';\n\nconst LOCAL_URL = 'http://localhost:4111';\nconst OBSERVABILITY_URL = 'https://observability.mastra.ai';\nconst AUTHORIZATION_HEADER = 'Authorization';\nconst PROJECT_ID_HEADER = 'X-Mastra-Project-Id';\n\nexport interface ApiGlobalOptions {\n url?: string;\n header: string[];\n timeout?: string;\n pretty: boolean;\n schema?: boolean;\n}\n\nexport interface ResolvedTarget {\n baseUrl: string;\n headers: Record<string, string>;\n timeoutMs: number;\n fallbackHeaders?: Record<string, string>;\n}\n\nexport async function resolveTarget(\n options: ApiGlobalOptions,\n fetchFn: typeof fetch = fetch,\n path?: string,\n): Promise<ResolvedTarget> {\n const timeoutMs = parseTimeout(options.timeout);\n const customHeaders = parseHeaders(options.header);\n\n if (isObservabilityPath(path)) {\n return resolveObservabilityTarget(options, customHeaders, timeoutMs);\n }\n\n if (options.url) {\n return { baseUrl: options.url, headers: customHeaders, timeoutMs };\n }\n\n if (await canReachLocal(timeoutMs, fetchFn)) {\n return { baseUrl: LOCAL_URL, headers: customHeaders, timeoutMs };\n }\n\n const config = await loadProjectConfig(process.cwd());\n if (!config) {\n throw new ApiCliError('SERVER_UNREACHABLE', 'Could not connect to target server');\n }\n\n try {\n const token = await getToken();\n const projects = await fetchServerProjects(token, config.organizationId);\n const project = projects.find(\n candidate => candidate.id === config.projectId || candidate.slug === config.projectSlug,\n );\n const baseUrl = project?.instanceUrl;\n\n if (!baseUrl) {\n throw new ApiCliError('PLATFORM_RESOLUTION_FAILED', 'Could not resolve platform deployment URL', {\n projectId: config.projectId,\n projectSlug: config.projectSlug,\n });\n }\n\n return {\n baseUrl,\n headers: { Authorization: `Bearer ${token}`, ...customHeaders },\n timeoutMs,\n };\n } catch (error) {\n if (error instanceof ApiCliError) throw error;\n throw new ApiCliError('PLATFORM_RESOLUTION_FAILED', 'Could not resolve platform deployment URL', {\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function resolveObservabilityTarget(\n options: ApiGlobalOptions,\n customHeaders: Record<string, string>,\n timeoutMs: number,\n): Promise<ResolvedTarget> {\n const env = loadDotenv(process.cwd());\n const explicitAuthorization = getHeader(customHeaders, AUTHORIZATION_HEADER);\n const explicitProjectId = getHeader(customHeaders, PROJECT_ID_HEADER);\n const envToken = process.env.MASTRA_PLATFORM_ACCESS_TOKEN || env.MASTRA_PLATFORM_ACCESS_TOKEN;\n const cliToken = explicitAuthorization || options.url ? undefined : await getOptionalToken();\n const envProjectId = process.env.MASTRA_PROJECT_ID || env.MASTRA_PROJECT_ID;\n const configProjectId =\n explicitProjectId || envProjectId || options.url ? undefined : (await loadProjectConfig(process.cwd()))?.projectId;\n const projectId = explicitProjectId || envProjectId || configProjectId;\n const headers = { ...customHeaders };\n\n if (!explicitAuthorization && envToken) {\n headers[AUTHORIZATION_HEADER] = `Bearer ${envToken}`;\n } else if (!explicitAuthorization && cliToken) {\n headers[AUTHORIZATION_HEADER] = `Bearer ${cliToken}`;\n }\n\n if (!explicitProjectId && projectId) {\n headers[PROJECT_ID_HEADER] = projectId;\n }\n\n const fallbackHeaders =\n envToken && cliToken && envToken !== cliToken\n ? { ...headers, [AUTHORIZATION_HEADER]: `Bearer ${cliToken}` }\n : undefined;\n\n return {\n baseUrl: options.url ?? OBSERVABILITY_URL,\n headers,\n timeoutMs,\n fallbackHeaders,\n };\n}\n\nfunction isObservabilityPath(path?: string): boolean {\n return path?.startsWith('/observability/') || path === '/observability';\n}\n\nfunction loadDotenv(cwd: string): Record<string, string> {\n const envPath = join(cwd, '.env');\n if (!existsSync(envPath)) return {};\n return parse(readFileSync(envPath));\n}\n\nasync function getOptionalToken(): Promise<string | undefined> {\n try {\n return await getToken();\n } catch {\n return undefined;\n }\n}\n\nfunction getHeader(headers: Record<string, string>, name: string): string | undefined {\n const entry = Object.entries(headers).find(([key]) => key.toLowerCase() === name.toLowerCase());\n return entry?.[1];\n}\n\nfunction parseTimeout(timeout?: string): number {\n if (!timeout) return 30_000;\n const parsed = Number(timeout);\n if (!Number.isFinite(parsed) || parsed <= 0) return 30_000;\n return parsed;\n}\n\nasync function canReachLocal(timeoutMs: number, fetchFn: typeof fetch): Promise<boolean> {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), Math.min(timeoutMs, 1_000));\n try {\n const response = await fetchFn(`${LOCAL_URL}/api/system/api-schema`, { method: 'GET', signal: controller.signal });\n await response.body?.cancel();\n return response.ok;\n } catch {\n return false;\n } finally {\n clearTimeout(timeout);\n }\n}\n","import type { Command as CommanderCommand } from 'commander';\nimport { getAnalytics } from '../../analytics/index.js';\nimport { requestApi } from './client.js';\nimport { ApiCliError, errorEnvelope, toApiCliError } from './errors.js';\nimport { parseInput, resolvePathParams, stripPathParamsFromInput } from './input.js';\nimport { normalizeData } from './normalizers.js';\nimport { normalizeSuccess, writeJson } from './output.js';\nimport { normalizeResponse } from './response-normalizer.js';\nimport { API_ROUTE_METADATA } from './route-metadata.generated.js';\nimport { buildCommandExamples, getCommandSchema } from './schema.js';\nimport { resolveTarget } from './target.js';\nimport type { ApiGlobalOptions } from './target.js';\nimport type { ApiCommandActionOptions, ApiCommandDescriptor, HttpMethod } from './types.js';\n\nconst API_ANALYTICS_SHUTDOWN_TIMEOUT_MS = 1000;\n\nexport const API_COMMANDS = {} as Record<string, ApiCommandDescriptor>;\n\nexport function registerApiCommand(program: CommanderCommand): void {\n for (const key of Object.keys(API_COMMANDS)) {\n delete API_COMMANDS[key];\n }\n\n const api = program\n .command('api')\n .description('Call Mastra APIs')\n .option('--url <url>', 'target Mastra server URL')\n .option('--header <header>', 'custom HTTP header (repeatable)', collect, [])\n .option('--timeout <ms>', 'client-side request timeout')\n .option('--pretty', 'pretty-print JSON output', false);\n\n const agent = api.command('agent').description('List, inspect, and run agents');\n addAction(agent, 'list', 'GET /agents', { description: 'List available agents', list: true });\n addAction(agent, 'get', 'GET /agents/:agentId', { description: 'Get agent details' });\n addAction(agent, 'run', 'POST /agents/:agentId/generate', {\n description: 'Run an agent with JSON input',\n input: 'required',\n examples: [\n {\n description: 'Run an agent with a text prompt',\n command: `mastra api agent run weather-agent '{\"messages\":\"What is the weather in London?\"}'`,\n },\n {\n description: 'Run an agent and persist messages to a thread',\n command: `mastra api agent run weather-agent '{\"messages\":\"What is the weather in London?\",\"memory\":{\"thread\":\"thread_abc123\",\"resource\":\"user_123\"}}'`,\n },\n ],\n });\n\n const workflow = api.command('workflow').description('List, inspect, and run workflows');\n addAction(workflow, 'list', 'GET /workflows', { description: 'List available workflows', list: true });\n addAction(workflow, 'get', 'GET /workflows/:workflowId', { description: 'Get workflow details' });\n const workflowRun = workflow.command('run').description('Manage workflow runs');\n addAction(workflowRun, 'start', 'POST /workflows/:workflowId/start-async', {\n description: 'Start a workflow run',\n input: 'required',\n defaultTimeoutMs: 120_000,\n examples: [\n {\n description: 'Start a workflow run',\n command: `mastra api workflow run start data-pipeline '{\"inputData\":{\"source\":\"s3://bucket/data.csv\"}}'`,\n },\n ],\n });\n addAction(workflowRun, 'list', 'GET /workflows/:workflowId/runs', {\n description: 'List workflow runs',\n input: 'optional',\n list: true,\n });\n addAction(workflowRun, 'get', 'GET /workflows/:workflowId/runs/:runId', {\n description: 'Get workflow run details',\n });\n addAction(workflowRun, 'resume', 'POST /workflows/:workflowId/resume-async', {\n description: 'Resume a suspended workflow run',\n input: 'required',\n positionals: ['workflowId', 'runId'],\n defaultTimeoutMs: 120_000,\n examples: [\n {\n description: 'Resume a suspended workflow run. The run must currently be suspended.',\n command: `mastra api workflow run resume data-pipeline run_123 '{\"resumeData\":{\"approved\":true}}'`,\n },\n ],\n });\n addAction(workflowRun, 'cancel', 'POST /workflows/:workflowId/runs/:runId/cancel', {\n description: 'Cancel a workflow run',\n });\n\n const tool = api.command('tool').description('List, inspect, and execute tools');\n addAction(tool, 'list', 'GET /tools', { description: 'List available tools', list: true });\n addAction(tool, 'get', 'GET /tools/:toolId', { description: 'Get tool details and input schema' });\n addAction(tool, 'execute', 'POST /tools/:toolId/execute', {\n description: 'Execute a tool with JSON input',\n input: 'required',\n examples: [\n {\n description: 'Execute a tool with raw tool input. The CLI sends this as the route data field.',\n command: `mastra api tool execute get-weather '{\"location\":\"San Francisco\"}'`,\n },\n {\n description: 'Execute a tool with an explicit data wrapper',\n command: `mastra api tool execute get-weather '{\"data\":{\"location\":\"San Francisco\"}}'`,\n },\n ],\n });\n\n const mcp = api.command('mcp').description('List and inspect MCP servers');\n addAction(mcp, 'list', 'GET /mcp/v0/servers', { description: 'List MCP servers', list: true });\n addAction(mcp, 'get', 'GET /mcp/v0/servers/:id', { description: 'Get MCP server details' });\n const mcpTool = mcp.command('tool').description('List, inspect, and execute MCP tools');\n addAction(mcpTool, 'list', 'GET /mcp/:serverId/tools', {\n description: 'List tools for an MCP server',\n input: 'optional',\n list: true,\n });\n addAction(mcpTool, 'get', 'GET /mcp/:serverId/tools/:toolId', {\n description: 'Get MCP tool details',\n });\n addAction(mcpTool, 'execute', 'POST /mcp/:serverId/tools/:toolId/execute', {\n description: 'Execute an MCP tool with JSON input',\n input: 'required',\n examples: [\n {\n description: 'Execute an MCP tool with raw tool input. The CLI sends this as the route data field.',\n command: `mastra api mcp tool execute my-server calculator '{\"num1\":2,\"num2\":3,\"operation\":\"add\"}'`,\n },\n {\n description: 'Execute an MCP tool with an explicit data wrapper',\n command: `mastra api mcp tool execute my-server calculator '{\"data\":{\"num1\":2,\"num2\":3,\"operation\":\"add\"}}'`,\n },\n ],\n });\n\n const thread = api.command('thread').description('Manage memory threads and messages');\n addAction(thread, 'list', 'GET /memory/threads', { description: 'List memory threads', list: true });\n addAction(thread, 'get', 'GET /memory/threads/:threadId', { description: 'Get thread details' });\n addAction(thread, 'create', 'POST /memory/threads', {\n description: 'Create a memory thread',\n input: 'required',\n examples: [\n {\n description: 'Create a memory thread',\n command: `mastra api thread create '{\"agentId\":\"weather-agent\",\"resourceId\":\"user_123\",\"threadId\":\"thread_abc123\",\"title\":\"Support conversation\"}'`,\n },\n ],\n });\n addAction(thread, 'update', 'PATCH /memory/threads/:threadId', {\n description: 'Update a memory thread',\n input: 'required',\n examples: [\n {\n description: 'Update a memory thread',\n command: `mastra api thread update thread_abc123 '{\"agentId\":\"weather-agent\",\"title\":\"Updated title\"}'`,\n },\n ],\n });\n addAction(thread, 'delete', 'DELETE /memory/threads/:threadId', {\n description: 'Delete a memory thread',\n input: 'required',\n examples: [\n {\n description: 'Delete a memory thread',\n command: `mastra api thread delete thread_abc123 '{\"agentId\":\"weather-agent\",\"resourceId\":\"user_123\"}'`,\n },\n ],\n });\n addAction(thread, 'messages', 'GET /memory/threads/:threadId/messages', {\n description: 'List messages in a memory thread',\n input: 'optional',\n list: true,\n });\n\n const memory = api.command('memory').description('Search and manage agent memory');\n addAction(memory, 'search', 'GET /memory/search', {\n description: 'Search long-term memory',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Search long-term memory',\n command: `mastra api memory search '{\"agentId\":\"weather-agent\",\"resourceId\":\"user_123\",\"searchQuery\":\"caching strategy\",\"limit\":10}'`,\n },\n ],\n });\n const current = memory.command('current').description('Read and update working memory');\n addAction(current, 'get', 'GET /memory/threads/:threadId/working-memory', {\n description: 'Get current working memory',\n input: 'required',\n pathParamsFromInput: ['threadId'],\n examples: [\n {\n description: 'Read current working memory',\n command: `mastra api memory current get '{\"threadId\":\"thread_abc123\",\"agentId\":\"code-reviewer\"}'`,\n },\n ],\n });\n addAction(current, 'update', 'POST /memory/threads/:threadId/working-memory', {\n description: 'Update current working memory',\n input: 'required',\n pathParamsFromInput: ['threadId'],\n examples: [\n {\n description: 'Update current working memory. Requires working memory to be enabled for the memory instance.',\n command: `mastra api memory current update '{\"threadId\":\"thread_abc123\",\"agentId\":\"code-reviewer\",\"workingMemory\":\"Remember the user prefers concise responses.\"}'`,\n },\n ],\n });\n addAction(memory, 'status', 'GET /memory/status', {\n description: 'Get memory system status',\n input: 'required',\n examples: [\n {\n description: 'Get memory status for an agent',\n command: `mastra api memory status '{\"agentId\":\"weather-agent\"}'`,\n },\n {\n description: 'Get memory status for an agent, resource, and thread',\n command: `mastra api memory status '{\"agentId\":\"weather-agent\",\"resourceId\":\"user_123\",\"threadId\":\"thread_abc123\"}'`,\n },\n ],\n });\n\n const trace = api.command('trace').description('Inspect observability traces');\n addAction(trace, 'list', 'GET /observability/traces/light', {\n description: 'List observability traces',\n list: true,\n verboseRouteKey: 'GET /observability/traces',\n examples: [\n { description: 'List lightweight traces', command: `mastra api trace list '{\"page\":0,\"perPage\":20}'` },\n { description: 'List full traces', command: `mastra api trace list '{\"page\":0,\"perPage\":20}' --verbose` },\n ],\n });\n addAction(trace, 'get', 'GET /observability/traces/:traceId/light', {\n description: 'Get trace details',\n verboseRouteKey: 'GET /observability/traces/:traceId',\n examples: [\n { description: 'Get lightweight trace details', command: 'mastra api trace get trace_123' },\n { description: 'Get full trace details', command: 'mastra api trace get trace_123 --verbose' },\n ],\n });\n addAction(trace, 'span', 'GET /observability/traces/:traceId/spans/:spanId', {\n description: 'Get a trace span',\n examples: [{ description: 'Get a specific trace span', command: 'mastra api trace span trace_123 span_456' }],\n });\n\n const log = api.command('log').description('Inspect runtime logs');\n addAction(log, 'list', 'GET /observability/logs', {\n description: 'List runtime logs',\n input: 'optional',\n list: true,\n examples: [\n { description: 'List recent logs', command: 'mastra api log list' },\n {\n description: 'List info logs with pagination',\n command: `mastra api log list '{\"level\":\"info\",\"page\":0,\"perPage\":50}'`,\n },\n ],\n });\n\n const metric = api.command('metric').description('Query observability metrics');\n addAction(metric, 'aggregate', 'POST /observability/metrics/aggregate', {\n description: 'Get an aggregate metric value',\n input: 'required',\n examples: [\n {\n description: 'Get an average latency metric',\n command: `mastra api metric aggregate '{\"name\":\"latency_ms\",\"aggregation\":\"avg\"}'`,\n },\n ],\n });\n addAction(metric, 'breakdown', 'POST /observability/metrics/breakdown', {\n description: 'Get metric values grouped by a label or field',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Break down latency by model',\n command: `mastra api metric breakdown '{\"name\":\"latency_ms\",\"aggregation\":\"avg\",\"groupBy\":\"model\",\"limit\":10}'`,\n },\n ],\n });\n addAction(metric, 'timeseries', 'POST /observability/metrics/timeseries', {\n description: 'Get metric values over time',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Get hourly average latency',\n command: `mastra api metric timeseries '{\"name\":\"latency_ms\",\"aggregation\":\"avg\",\"interval\":\"1h\"}'`,\n },\n ],\n });\n addAction(metric, 'percentiles', 'POST /observability/metrics/percentiles', {\n description: 'Get metric percentile values over time',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Get latency percentiles',\n command: `mastra api metric percentiles '{\"name\":\"latency_ms\",\"percentiles\":[0.5,0.95,0.99],\"interval\":\"1h\"}'`,\n },\n ],\n });\n addAction(metric, 'names', 'GET /observability/discovery/metric-names', {\n description: 'List discovered metric names',\n input: 'optional',\n list: true,\n examples: [\n { description: 'Search metric names', command: `mastra api metric names '{\"prefix\":\"lat\",\"limit\":10}'` },\n ],\n });\n addAction(metric, 'label-keys', 'GET /observability/discovery/metric-label-keys', {\n description: 'List label keys for a metric',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'List label keys for a metric',\n command: `mastra api metric label-keys '{\"metricName\":\"latency_ms\"}'`,\n },\n ],\n });\n addAction(metric, 'label-values', 'GET /observability/discovery/metric-label-values', {\n description: 'List label values for a metric label key',\n input: 'required',\n list: true,\n examples: [\n {\n description: 'Search label values for a metric label key',\n command: `mastra api metric label-values '{\"metricName\":\"latency_ms\",\"labelKey\":\"model\",\"prefix\":\"g\",\"limit\":10}'`,\n },\n ],\n });\n\n const score = api.command('score').description('Create, list, and inspect scores');\n addAction(score, 'create', 'POST /observability/scores', {\n description: 'Create a score',\n input: 'required',\n examples: [\n {\n description: 'Create an observability score',\n command: `mastra api score create '{\"score\":{\"scoreId\":\"score_123\",\"scorerId\":\"quality\",\"score\":0.95,\"runId\":\"run_123\",\"entityType\":\"agent\",\"entityId\":\"weather-agent\"}}'`,\n },\n ],\n });\n addAction(score, 'list', 'GET /observability/scores', {\n description: 'List scores',\n input: 'optional',\n list: true,\n examples: [\n {\n description: 'List observability scores with pagination',\n command: `mastra api score list '{\"page\":0,\"perPage\":50}'`,\n },\n {\n description: 'List observability scores for a run',\n command: `mastra api score list '{\"runId\":\"run_123\",\"page\":0,\"perPage\":50}'`,\n },\n ],\n });\n addAction(score, 'get', 'GET /observability/scores/:scoreId', {\n description: 'Get score details',\n examples: [{ description: 'Get an observability score by ID', command: 'mastra api score get score_123' }],\n });\n\n const dataset = api.command('dataset').description('Create, list, and inspect datasets');\n addAction(dataset, 'list', 'GET /datasets', { description: 'List datasets', list: true });\n addAction(dataset, 'get', 'GET /datasets/:datasetId', { description: 'Get dataset details' });\n addAction(dataset, 'create', 'POST /datasets', {\n description: 'Create a dataset',\n input: 'required',\n examples: [{ description: 'Create a dataset', command: `mastra api dataset create '{\"name\":\"weather-eval\"}'` }],\n });\n addAction(dataset, 'items', 'GET /datasets/:datasetId/items', {\n description: 'List dataset items',\n input: 'optional',\n list: true,\n });\n\n const experiment = api.command('experiment').description('Run and inspect dataset experiments');\n addAction(experiment, 'list', 'GET /datasets/:datasetId/experiments', {\n description: 'List dataset experiments',\n input: 'optional',\n list: true,\n });\n addAction(experiment, 'get', 'GET /datasets/:datasetId/experiments/:experimentId', {\n description: 'Get experiment details',\n });\n addAction(experiment, 'run', 'POST /datasets/:datasetId/experiments', {\n description: 'Run a dataset experiment',\n input: 'required',\n examples: [\n {\n description: 'Run a dataset experiment',\n command: `mastra api experiment run dataset_123 '{\"name\":\"baseline\"}'`,\n },\n ],\n });\n addAction(experiment, 'results', 'GET /datasets/:datasetId/experiments/:experimentId/results', {\n description: 'List experiment results',\n input: 'optional',\n list: true,\n });\n}\n\n/**\n * Registers one leaf API command and stores the descriptor used by execution and tests.\n *\n * The `name` string is intentionally the source of truth for the leaf command name. Required identity arguments are declared from route metadata (or `options.positionals` for query-backed IDs), and JSON input syntax is declared from `options.input`.\n *\n * @param parent - Commander group that owns the leaf command, such as `agent` or `workflow run`.\n * @param name - Leaf command name, without arguments. Example: `run`, `list`, or `execute`.\n * @param routeKey - Generated route metadata key in the form `METHOD /path/:param`.\n * @param options - Hand-authored CLI details that cannot be derived from the server route.\n */\nfunction addAction(\n parent: CommanderCommand,\n name: string,\n routeKey: keyof typeof API_ROUTE_METADATA,\n options: ApiCommandActionOptions,\n): void {\n const descriptor = buildDescriptor(parent, name, routeKey, options);\n // Keep the exported descriptor map aligned with the actual Commander tree.\n API_COMMANDS[descriptor.key] = descriptor;\n\n const command = parent.command(name).description(descriptor.description);\n for (const positional of descriptor.positionals) {\n // Keep identity args optional at Commander level so `--schema` can run without real IDs.\n // Actual requests still validate IDs before making an HTTP request.\n command.argument(`[${positional}]`);\n }\n if (descriptor.acceptsInput) {\n // Keep JSON input optional at Commander level so `--schema` can run without sample input;\n // `parseInput` enforces required input for actual requests.\n command.argument('[input]');\n }\n const examples = buildCommandExamples(descriptor);\n\n if (examples.length > 0) {\n command.addHelpText('after', `\\nExamples:\\n${examples.map(example => ` ${example.command}`).join('\\n')}`);\n }\n\n if (descriptor.acceptsInput) {\n command.option('--schema', 'print request schema for this command');\n }\n if (descriptor.verbose) {\n command.option('--verbose', 'return the full response instead of the lightweight default');\n }\n\n command.action(async (...args: unknown[]) => {\n const command = args.at(-1) as CommanderCommand;\n // Commander passes all declared args before the command object; split identity IDs from JSON input.\n const { identityValues, maybeInput } = splitActionArgs(descriptor, args.slice(0, -1));\n const analytics = getAnalytics();\n const startedAt = process.hrtime();\n\n try {\n await executeDescriptor(descriptor, identityValues, maybeInput, command.optsWithGlobals() as ApiGlobalOptions);\n const [seconds, nanoseconds] = process.hrtime(startedAt);\n analytics?.trackCommand({\n command: `api-${descriptor.name}`,\n args: {\n positionalCount: identityValues.length,\n positionalPresent: identityValues.length > 0,\n hasInput: maybeInput !== undefined,\n },\n durationMs: seconds * 1000 + nanoseconds / 1_000_000,\n status: process.exitCode ? 'error' : 'success',\n });\n } finally {\n await shutdownApiAnalytics(analytics);\n }\n });\n}\n\nfunction splitActionArgs(\n descriptor: ApiCommandDescriptor,\n args: unknown[],\n): { identityValues: string[]; maybeInput: string | undefined } {\n const values = args.filter(value => typeof value === 'string') as string[];\n const possibleInput = descriptor.acceptsInput ? values.at(-1) : undefined;\n\n if (possibleInput && looksLikeJsonObject(possibleInput) && values.length <= descriptor.positionals.length) {\n return { identityValues: values.slice(0, -1), maybeInput: possibleInput };\n }\n\n return {\n identityValues: values.slice(0, descriptor.positionals.length),\n maybeInput: descriptor.acceptsInput ? values[descriptor.positionals.length] : undefined,\n };\n}\n\nfunction looksLikeJsonObject(value: string): boolean {\n return value.trimStart().startsWith('{');\n}\n\n/**\n * Converts Commander wiring plus generated route metadata into a stable API command descriptor.\n *\n * Descriptors are the bridge between the user-facing CLI tree and generic runtime behavior: execution, schema output, response normalization, and regression tests all consume this shape.\n *\n * @param parent - Commander group that owns the leaf command.\n * @param name - Leaf command name as registered with Commander.\n * @param routeKey - Generated route metadata key used to pull method, path, params, and response shape.\n * @param options - CLI-only metadata, including description, input mode, examples, and overrides.\n */\nfunction buildDescriptor(\n parent: CommanderCommand,\n name: string,\n routeKey: keyof typeof API_ROUTE_METADATA,\n options: ApiCommandActionOptions,\n): ApiCommandDescriptor {\n const route = API_ROUTE_METADATA[routeKey];\n const verboseRoute = options.verboseRouteKey\n ? API_ROUTE_METADATA[options.verboseRouteKey as keyof typeof API_ROUTE_METADATA]\n : undefined;\n const commandName = [...commandPath(parent), parseCommandName(name)].join(' ');\n const pathParamsFromInput = new Set(options.pathParamsFromInput ?? []);\n // Most path params become positional CLI args; a few commands intentionally read IDs from JSON input.\n const positionals = options.positionals ?? route.pathParams.filter(param => !pathParamsFromInput.has(param));\n // List commands default to optional JSON so callers can pass pagination/filter objects.\n const inputMode = options.input ?? (options.list ? 'optional' : route.hasBody ? 'optional' : 'none');\n\n return {\n key: commandName.replace(/ ([a-z])/g, (_, letter: string) => letter.toUpperCase()),\n name: commandName,\n description: options.description,\n method: route.method as HttpMethod,\n path: route.path,\n positionals,\n acceptsInput: inputMode !== 'none',\n inputRequired: inputMode === 'required',\n list: options.list ?? false,\n responseShape: route.responseShape,\n queryParams: [...route.queryParams],\n bodyParams: [...route.bodyParams],\n defaultTimeoutMs: options.defaultTimeoutMs,\n examples: options.examples,\n verbose: verboseRoute\n ? {\n path: verboseRoute.path,\n responseShape: verboseRoute.responseShape,\n queryParams: [...verboseRoute.queryParams],\n bodyParams: [...verboseRoute.bodyParams],\n }\n : undefined,\n };\n}\n\n/**\n * Returns the nested command path below `api`, e.g. `workflow run` or `mcp tool`.\n *\n * @param command - Commander group whose ancestry should be converted into descriptor name segments.\n */\nfunction commandPath(command: CommanderCommand): string[] {\n const names: string[] = [];\n let current: CommanderCommand | undefined = command;\n\n while (current && current.name() !== 'api') {\n // Walk upward then unshift so the descriptor name matches the visible CLI order.\n names.unshift(current.name());\n current = current.parent as CommanderCommand | undefined;\n }\n\n return names;\n}\n\n/**\n * Extracts the leaf command token from the string passed to `parent.command()`.\n *\n * @param name - Commander command declaration. Currently just the leaf token, but kept tolerant of future declarations like `run [input]`.\n */\nfunction parseCommandName(name: string): string {\n return name.split(/\\s+/)[0] ?? name;\n}\n\n/**\n * Flushes API command analytics without letting telemetry keep the CLI alive indefinitely.\n *\n * @param analytics - Lazily-created analytics client, if telemetry is enabled.\n */\nfunction isUnauthorizedError(error: unknown): boolean {\n return error instanceof ApiCliError && error.code === 'HTTP_ERROR' && error.details.status === 401;\n}\n\n/**\n * True when the request hit an endpoint that the server doesn't know about.\n *\n * Used to detect cases like running a new CLI against an older `@mastra/server`\n * that hasn't shipped the lightweight route yet, so we can transparently fall\n * back to the verbose equivalent instead of failing the command outright.\n */\nfunction isNotFoundError(error: unknown): boolean {\n return (\n error instanceof ApiCliError &&\n error.code === 'HTTP_ERROR' &&\n (error.details.status === 404 || error.details.status === 405)\n );\n}\n\nasync function shutdownApiAnalytics(analytics: ReturnType<typeof getAnalytics>): Promise<void> {\n if (!analytics) {\n return;\n }\n\n // Bound PostHog flush time; otherwise API commands can appear to hang after printing output.\n const exitTimer = setTimeout(() => {\n process.exit(process.exitCode ?? 0);\n }, API_ANALYTICS_SHUTDOWN_TIMEOUT_MS);\n\n try {\n await analytics.shutdown();\n } finally {\n clearTimeout(exitTimer);\n }\n}\n\n/**\n * Executes a descriptor-backed API command and writes a machine-readable JSON result.\n *\n * @param descriptor - Command metadata built from the Commander tree and generated route metadata.\n * @param positionalValues - Identity argument values captured from Commander, in descriptor order.\n * @param inputText - Optional inline JSON argument provided by the user.\n * @param options - Global `mastra api` flags such as target URL, headers, timeout, schema, and pretty output.\n */\nexport async function executeDescriptor(\n descriptor: ApiCommandDescriptor,\n positionalValues: string[],\n inputText: string | undefined,\n options: ApiGlobalOptions & { verbose?: boolean },\n): Promise<void> {\n try {\n const requestDescriptor =\n options.verbose && descriptor.verbose ? { ...descriptor, ...descriptor.verbose } : descriptor;\n const target = await resolveTarget(options, fetch, requestDescriptor.path);\n\n if (options.schema) {\n // Schema output is a discovery path, so it intentionally skips required argument validation.\n writeJson(await getCommandSchema(descriptor, target), options.pretty);\n return;\n }\n\n const input = parseInput(requestDescriptor, inputText);\n const pathParams = resolvePathParams(requestDescriptor, positionalValues, input);\n // Do not send IDs twice when a route path param was supplied through JSON input.\n const requestInput = stripPathParamsFromInput(input, pathParams);\n\n const requestOptions = {\n baseUrl: target.baseUrl,\n headers: target.headers,\n timeoutMs:\n requestDescriptor.defaultTimeoutMs && !options.timeout ? requestDescriptor.defaultTimeoutMs : target.timeoutMs,\n descriptor: requestDescriptor,\n pathParams,\n input: requestInput,\n };\n let response: unknown;\n let effectiveDescriptor = requestDescriptor;\n try {\n response = await requestApi(requestOptions);\n } catch (error) {\n if (target.fallbackHeaders && isUnauthorizedError(error)) {\n response = await requestApi({ ...requestOptions, headers: target.fallbackHeaders });\n } else if (!options.verbose && descriptor.verbose && isNotFoundError(error)) {\n // The default route is unavailable on this server (e.g. a new CLI\n // talking to an older `@mastra/server` that hasn't shipped the\n // lightweight endpoint). Transparently retry against the verbose\n // route so the command still succeeds.\n const verboseDescriptor = { ...descriptor, ...descriptor.verbose };\n const verboseInput = parseInput(verboseDescriptor, inputText);\n const verbosePathParams = resolvePathParams(verboseDescriptor, positionalValues, verboseInput);\n const verboseRequestInput = stripPathParamsFromInput(verboseInput, verbosePathParams);\n response = await requestApi({\n ...requestOptions,\n descriptor: verboseDescriptor,\n pathParams: verbosePathParams,\n input: verboseRequestInput,\n });\n effectiveDescriptor = verboseDescriptor;\n } else {\n throw error;\n }\n }\n const normalized = normalizeData(effectiveDescriptor, normalizeResponse(response));\n writeJson(\n normalizeSuccess(normalized, effectiveDescriptor.list, effectiveDescriptor.responseShape),\n options.pretty,\n );\n } catch (error) {\n const apiError = error instanceof ApiCliError ? error : toApiCliError(error);\n writeJson(errorEnvelope(apiError), options.pretty, process.stderr);\n process.exitCode = 1;\n }\n}\n\nfunction collect(value: string, previous: string[]): string[] {\n return [...previous, value];\n}\n","import { login, clearCredentials, loadCredentials, verifyToken, tryRefreshToken } from './credentials.js';\n\nexport async function loginAction() {\n const existing = await loadCredentials();\n if (existing) {\n const stillValid = (await verifyToken(existing.token)) || Boolean(await tryRefreshToken(existing));\n if (stillValid) {\n console.info(`\\nAlready logged in as ${existing.user.email}\\n`);\n return;\n }\n }\n await login();\n}\n\nexport async function logoutAction() {\n await clearCredentials();\n console.info('\\nLogged out. Credentials removed.\\n');\n if (process.env.MASTRA_API_TOKEN) {\n console.warn(' Note: MASTRA_API_TOKEN is still set in your environment.\\n Unset it to fully log out.\\n');\n }\n}\n","import { MASTRA_PLATFORM_API_URL, authHeaders, platformFetch, throwApiError } from './client.js';\nimport { getToken, getCurrentOrgId } from './credentials.js';\n\nasync function resolveOrgId(): Promise<string | null> {\n return process.env.MASTRA_ORG_ID ?? (await getCurrentOrgId());\n}\n\ninterface TokenInfo {\n id: string;\n name: string;\n obfuscatedValue: string;\n lastUsedAt: string | null;\n createdAt: string;\n}\n\nexport async function createToken(token: string, orgId: string, name: string): Promise<{ id: string; secret: string }> {\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/auth/tokens`, {\n method: 'POST',\n headers: {\n ...authHeaders(token, orgId),\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ name }),\n });\n\n if (!resp.ok) {\n const text = await resp.text();\n throwApiError('Failed to create token', resp.status, text);\n }\n\n const data = (await resp.json()) as { token: TokenInfo; secret: string };\n return { id: data.token.id, secret: data.secret };\n}\n\nexport async function createTokenAction(name: string) {\n const token = await getToken();\n const orgId = await resolveOrgId();\n if (!orgId) throw new Error('No organization selected. Run: mastra auth orgs switch');\n\n const result = await createToken(token, orgId, name);\n\n console.info('\\nToken created successfully!\\n');\n console.info(` Name: ${name}`);\n console.info(` ID: ${result.id}`);\n console.info('');\n console.info(` Secret: ${result.secret}`);\n console.info('');\n console.info(' Save this secret — it will not be shown again.');\n console.info(' Set it as MASTRA_API_TOKEN in your CI environment.\\n');\n}\n\nexport async function listTokensAction() {\n const token = await getToken();\n const orgId = await resolveOrgId();\n if (!orgId) throw new Error('No organization selected. Run: mastra auth orgs switch');\n\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/auth/tokens`, {\n headers: authHeaders(token, orgId),\n });\n\n if (!resp.ok) {\n const text = await resp.text();\n throwApiError('Failed to list tokens', resp.status, text);\n }\n\n const data = (await resp.json()) as { tokens: TokenInfo[] };\n\n if (data.tokens.length === 0) {\n console.info('\\nNo tokens found.\\n');\n return;\n }\n\n console.info('\\nTokens:\\n');\n for (const t of data.tokens) {\n const lastUsed = t.lastUsedAt ? new Date(t.lastUsedAt).toLocaleDateString() : 'never';\n console.info(` ${t.name}`);\n console.info(` ID: ${t.id} Key: ${t.obfuscatedValue} Last used: ${lastUsed}`);\n }\n console.info('');\n}\n\nexport async function revokeTokenAction(tokenId: string) {\n const token = await getToken();\n const orgId = await resolveOrgId();\n if (!orgId) throw new Error('No organization selected. Run: mastra auth orgs switch');\n\n const resp = await platformFetch(`${MASTRA_PLATFORM_API_URL}/v1/auth/tokens/${encodeURIComponent(tokenId)}`, {\n method: 'DELETE',\n headers: authHeaders(token, orgId),\n });\n\n if (!resp.ok) {\n const text = await resp.text();\n throwApiError('Failed to revoke token', resp.status, text);\n }\n\n console.info(`\\nToken ${tokenId} revoked.\\n`);\n}\n","import { fetchOrgs } from './api.js';\nimport { loadCredentials, getCurrentOrgId } from './credentials.js';\n\nexport async function whoamiAction() {\n const envToken = process.env.MASTRA_API_TOKEN;\n\n if (envToken) {\n const orgId = process.env.MASTRA_ORG_ID ?? (await getCurrentOrgId());\n console.info('\\n Authenticated via MASTRA_API_TOKEN');\n if (orgId) {\n console.info(` Org: ${orgId}`);\n }\n console.info('');\n return;\n }\n\n const creds = await loadCredentials();\n if (!creds) {\n console.info('\\nNot logged in. Run: mastra auth login\\n');\n process.exit(1);\n }\n\n const orgId = await getCurrentOrgId();\n\n let orgName: string | null = null;\n try {\n const orgs = await fetchOrgs(creds.token);\n const match = orgs.find(o => o.id === orgId);\n if (match) orgName = match.name;\n } catch {\n // Couldn't fetch org name — that's fine, we'll show the ID\n }\n\n console.info(`\\n ${creds.user.email}`);\n console.info(` User ID: ${creds.user.id}`);\n if (orgName) {\n console.info(` Org: ${orgName} (${orgId})`);\n } else if (orgId) {\n console.info(` Org: ${orgId}`);\n }\n console.info('');\n}\n","import { execSync } from 'node:child_process';\nimport { createWriteStream } from 'node:fs';\nimport { mkdir, rm, stat, access, readFile, readdir } from 'node:fs/promises';\nimport { tmpdir } from 'node:os';\nimport { join, resolve } from 'node:path';\nimport * as p from '@clack/prompts';\nimport archiver from 'archiver';\nimport { config } from 'dotenv';\nimport { runBuild } from '../../utils/run-build.js';\nimport { fetchOrgs } from '../auth/api.js';\nimport { MASTRA_STUDIO_URL } from '../auth/client.js';\nimport { getToken, getCurrentOrgId } from '../auth/credentials.js';\nimport { preflightBuildOutput, printPreflightIssues } from '../deploy-preflight.js';\nimport { getProjectConfigToSave, loadProjectConfig, saveProjectConfig } from '../studio/project-config.js';\nimport { fetchServerProjects, createServerProject, uploadServerDeploy, pollServerDeploy } from './platform-api.js';\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction getPackageName(projectDir: string): string | null {\n try {\n const raw = execSync('node -p \"require(\\'./package.json\\').name\"', {\n cwd: projectDir,\n encoding: 'utf-8',\n stdio: ['pipe', 'pipe', 'pipe'],\n }).trim();\n return raw.startsWith('@') ? (raw.split('/')[1] ?? raw) : raw;\n } catch {\n return null;\n }\n}\n\nasync function zipOutput(projectDir: string): Promise<string> {\n const outputDir = join(projectDir, '.mastra', 'output');\n const tmpDir = join(tmpdir(), 'mastra-deploy');\n await mkdir(tmpDir, { recursive: true });\n const zipPath = join(tmpDir, `server-deploy-${Date.now()}.zip`);\n\n return new Promise((resolvePromise, reject) => {\n const output = createWriteStream(zipPath);\n const archive = archiver('zip', { zlib: { level: 6 } });\n\n output.on('close', () => resolvePromise(zipPath));\n archive.on('error', reject);\n\n archive.pipe(output);\n // Ship only the pre-built .mastra/output + package.json for dependency metadata\n archive.glob('**', { cwd: outputDir, ignore: ['node_modules/**'] }, { prefix: '.mastra/output' });\n archive.file(join(projectDir, 'package.json'), { name: 'package.json' });\n void archive.finalize();\n });\n}\n\nexport function parseEnvFile(content: string): Record<string, string> {\n const vars: Record<string, string> = {};\n for (const line of content.split('\\n')) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith('#')) continue;\n const eqIdx = trimmed.indexOf('=');\n if (eqIdx === -1) continue;\n let key = trimmed.slice(0, eqIdx).trim();\n if (key.startsWith('export ')) key = key.slice(7).trim();\n let value = trimmed.slice(eqIdx + 1).trim();\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n if (key) vars[key] = value;\n }\n return vars;\n}\n\n/**\n * Loads MASTRA_PROJECT_ID and MASTRA_ORG_ID from the project's .env files\n * into process.env so deploys auto-link to the project that `mastra init --observability`\n * provisioned. Uses dotenv with override: false (the default), so any\n * existing process.env value (e.g. from CI) always wins.\n */\nexport function loadDeployEnvFromDotenv(projectDir: string): void {\n config({\n path: [join(projectDir, '.env'), join(projectDir, '.env.local'), join(projectDir, '.env.production')],\n quiet: true,\n });\n}\n\nasync function getDeployEnvFiles(projectDir: string): Promise<string[]> {\n const entries = await readdir(projectDir, { withFileTypes: true });\n\n return entries\n .filter(\n entry =>\n (entry.isFile() || entry.isSymbolicLink()) &&\n (entry.name === '.env' || entry.name.startsWith('.env.')) &&\n !entry.name.endsWith('.example'),\n )\n .map(entry => entry.name)\n .sort((a, b) => a.localeCompare(b));\n}\n\nexport async function readEnvVars(\n projectDir: string,\n options: { autoAccept?: boolean; envFile?: string } = {},\n): Promise<Record<string, string>> {\n // When an explicit env file is provided, trust the user — read it directly.\n if (options.envFile) {\n const filePath = join(projectDir, options.envFile);\n try {\n await access(filePath);\n } catch {\n throw new Error(`Env file not found: ${options.envFile}`);\n }\n p.log.step(`Using env file: ${options.envFile}`);\n return parseEnvFile(await readFile(filePath, 'utf-8'));\n }\n\n const availableDeployEnvFiles = await getDeployEnvFiles(projectDir);\n\n if (availableDeployEnvFiles.length === 0) {\n throw new Error('No env file found for deploy. Add a .env or .env.* file before deploying.');\n }\n\n let selectedEnvFile: string;\n\n if (availableDeployEnvFiles.length === 1) {\n selectedEnvFile = availableDeployEnvFiles[0]!;\n } else if (options.autoAccept) {\n throw new Error(\n `Multiple env files found: ${availableDeployEnvFiles.join(', ')}. Use --env-file to specify which one to deploy.`,\n );\n } else {\n const defaultFile =\n availableDeployEnvFiles.find(envFile => envFile === '.env.production') ?? availableDeployEnvFiles[0]!;\n\n const selected = await p.select({\n message: 'Choose env file to deploy',\n options: availableDeployEnvFiles.map(envFile => ({ value: envFile, label: envFile })),\n initialValue: defaultFile,\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n selectedEnvFile = selected as string;\n }\n\n p.log.step(`Using env file: ${selectedEnvFile}`);\n\n return parseEnvFile(await readFile(join(projectDir, selectedEnvFile), 'utf-8'));\n}\n\n/* ------------------------------------------------------------------ */\n/* Resolve org */\n/* ------------------------------------------------------------------ */\n\nasync function resolveOrg(\n token: string,\n projectConfig: { organizationId?: string } | null,\n flagOrg?: string,\n): Promise<{ orgId: string; orgName: string }> {\n const isHeadless = Boolean(process.env.MASTRA_API_TOKEN);\n const envOrgId = process.env.MASTRA_ORG_ID;\n if (envOrgId) {\n return { orgId: envOrgId, orgName: envOrgId };\n }\n\n if (flagOrg) {\n const orgs = await fetchOrgs(token);\n const match = orgs.find(o => o.id === flagOrg);\n return { orgId: flagOrg, orgName: match?.name ?? flagOrg };\n }\n\n if (projectConfig?.organizationId) {\n if (isHeadless) {\n return { orgId: projectConfig.organizationId, orgName: projectConfig.organizationId };\n }\n const orgs = await fetchOrgs(token);\n const match = orgs.find(o => o.id === projectConfig.organizationId);\n if (match) {\n return { orgId: match.id, orgName: match.name };\n }\n }\n\n const currentOrgId = await getCurrentOrgId();\n const orgs = await fetchOrgs(token);\n\n if (currentOrgId) {\n const match = orgs.find(o => o.id === currentOrgId);\n if (match) {\n return { orgId: match.id, orgName: match.name };\n }\n }\n\n if (orgs.length === 1) {\n return { orgId: orgs[0]!.id, orgName: orgs[0]!.name };\n }\n\n if (orgs.length === 0) {\n throw new Error(`No organizations found. Create one at ${MASTRA_STUDIO_URL}`);\n }\n\n const selected = await p.select({\n message: 'Select an organization',\n options: orgs.map(o => ({ value: o.id, label: `${o.name} (${o.id})` })),\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n const selectedOrg = orgs.find(o => o.id === selected)!;\n return { orgId: selectedOrg.id, orgName: selectedOrg.name };\n}\n\n/* ------------------------------------------------------------------ */\n/* Resolve project */\n/* ------------------------------------------------------------------ */\n\nasync function resolveProject(\n token: string,\n orgId: string,\n projectConfig: { projectId?: string; projectName?: string; projectSlug?: string; organizationId?: string } | null,\n flagProject?: string,\n defaultName?: string | null,\n autoAccept?: boolean,\n): Promise<{ projectId: string; projectName: string; projectSlug: string }> {\n const envProjectId = process.env.MASTRA_PROJECT_ID;\n if (envProjectId) {\n return { projectId: envProjectId, projectName: envProjectId, projectSlug: envProjectId };\n }\n\n if (flagProject) {\n const projects = await fetchServerProjects(token, orgId);\n const byId = projects.find(proj => proj.id === flagProject);\n const bySlug = projects.find(proj => proj.slug === flagProject);\n const byName = projects.filter(proj => proj.name === flagProject);\n if (!byId && !bySlug && byName.length > 1) {\n p.cancel(\n `Multiple projects are named \"${flagProject}\". Pass --project with the project id or slug to disambiguate.`,\n );\n process.exit(1);\n }\n const match = byId ?? bySlug ?? (byName.length === 1 ? byName[0] : undefined);\n if (match) {\n return { projectId: match.id, projectName: match.name, projectSlug: match.slug ?? match.name };\n }\n\n // No match — create a new project with the flag value as its name.\n if (!autoAccept) {\n const confirmed = await p.confirm({\n message: `No project named \"${flagProject}\" found. Create it?`,\n });\n if (p.isCancel(confirmed) || !confirmed) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n const created = await createServerProject(token, orgId, flagProject);\n p.log.success(`Created project \"${created.name}\"`);\n return { projectId: created.id, projectName: created.name, projectSlug: created.slug ?? created.name };\n }\n\n if (projectConfig?.projectId && projectConfig.organizationId === orgId) {\n return {\n projectId: projectConfig.projectId,\n projectName: projectConfig.projectName ?? projectConfig.projectId,\n projectSlug: projectConfig.projectSlug ?? projectConfig.projectName ?? projectConfig.projectId,\n };\n }\n\n const name = defaultName;\n if (!name) {\n throw new Error('Could not determine project name from package.json. Use --project to specify one.');\n }\n\n const existing = await fetchServerProjects(token, orgId);\n const nameMatches = existing.filter(proj => proj.name === name || proj.slug === name);\n\n if (existing.length > 0) {\n if (autoAccept) {\n // Non-interactive: only safe to auto-pick when exactly one project matches by name/slug.\n if (nameMatches.length === 1) {\n const m = nameMatches[0]!;\n return { projectId: m.id, projectName: m.name, projectSlug: m.slug ?? m.name };\n }\n throw new Error(\n `Found ${existing.length} existing project(s) in this organization. Pass --project <id-or-slug> to select one, or re-run without --yes to choose interactively.`,\n );\n }\n\n const CREATE_NEW = '__create_new__';\n const initialValue = nameMatches.length === 1 ? nameMatches[0]!.id : existing[0]!.id;\n const selected = await p.select({\n message: 'Select a project to deploy to',\n initialValue,\n options: [\n ...existing.map(proj => ({ value: proj.id, label: `${proj.name} (${proj.id})` })),\n { value: CREATE_NEW, label: `+ Create new project \"${name}\"` },\n ],\n });\n\n if (p.isCancel(selected)) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n\n if (selected !== CREATE_NEW) {\n const match = existing.find(proj => proj.id === selected)!;\n return { projectId: match.id, projectName: match.name, projectSlug: match.slug ?? match.name };\n }\n }\n\n const project = await createServerProject(token, orgId, name);\n return { projectId: project.id, projectName: project.name, projectSlug: project.slug ?? project.name };\n}\n\n/* ------------------------------------------------------------------ */\n/* Main deploy action */\n/* ------------------------------------------------------------------ */\n\nexport async function serverDeployAction(\n dir: string | undefined,\n opts: {\n org?: string;\n project?: string;\n yes?: boolean;\n config?: string;\n skipBuild?: boolean;\n skipPreflight?: boolean;\n debug?: boolean;\n envFile?: string;\n },\n) {\n const targetDir = resolve(dir || process.cwd());\n // Seed MASTRA_PROJECT_ID / MASTRA_ORG_ID from the project's .env so deploys\n // auto-link to the project that `mastra init --observability` provisioned.\n loadDeployEnvFromDotenv(targetDir);\n const isHeadless = Boolean(process.env.MASTRA_API_TOKEN);\n const autoAccept = opts.yes ?? isHeadless;\n const skipPreflight = opts.skipPreflight || process.env.MASTRA_SKIP_PREFLIGHT === '1';\n\n p.intro('mastra server deploy');\n\n const packageName = getPackageName(targetDir);\n\n // Step 1: Auth\n let token: string;\n try {\n token = await getToken();\n } catch {\n p.log.error(`Authentication failed. Run: mastra auth login`);\n process.exit(1);\n }\n\n // Step 2: Load existing project config\n const projectConfig = await loadProjectConfig(targetDir, opts.config);\n\n // Step 3: Resolve org — flags and config are checked before requiring env vars\n const hasOrg = Boolean(process.env.MASTRA_ORG_ID || opts.org || projectConfig?.organizationId);\n const hasProject = Boolean(process.env.MASTRA_PROJECT_ID || opts.project || projectConfig?.projectId);\n if (isHeadless && (!hasOrg || !hasProject)) {\n throw new Error(\n 'MASTRA_ORG_ID and MASTRA_PROJECT_ID (or --org/--project flags, or .mastra-project.json) are required when MASTRA_API_TOKEN is set',\n );\n }\n\n const { orgId, orgName } = await resolveOrg(token, projectConfig, opts.org);\n\n // Step 4: Resolve project\n const { projectId, projectName, projectSlug } = await resolveProject(\n token,\n orgId,\n projectConfig,\n opts.project,\n packageName,\n autoAccept,\n );\n\n // Step 5: Confirmation\n const isAlreadyLinked = projectConfig?.projectId === projectId && projectConfig?.organizationId === orgId;\n\n if (!isAlreadyLinked) {\n p.note(\n [`Organization: ${orgName}`, `Project: ${projectName}`, `Directory: ${targetDir}`].join('\\n'),\n 'Deploy settings',\n );\n\n if (!autoAccept) {\n const confirmed = await p.confirm({\n message: 'Deploy with these settings?',\n });\n\n if (p.isCancel(confirmed) || !confirmed) {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n await saveProjectConfig(\n targetDir,\n getProjectConfigToSave(projectId, projectName, projectSlug, orgId, projectConfig),\n opts.config,\n );\n p.log.success(`Saved ${opts.config || '.mastra-project.json'}`);\n } else {\n p.log.info(`Organization: ${orgName} (${orgId})`);\n p.log.info(`Project: ${projectName} (${projectId})`);\n }\n\n // Step 6: Build + Zip + Upload + Poll\n const s = p.spinner();\n\n if (opts.skipBuild) {\n p.log.step('Skipping build (--skip-build)');\n } else {\n await runBuild(targetDir, { debug: opts.debug });\n }\n\n // Verify build output exists\n const outputEntry = join(targetDir, '.mastra', 'output', 'index.mjs');\n try {\n await access(outputEntry);\n } catch {\n throw new Error('.mastra/output/index.mjs not found — did the build succeed?');\n }\n\n const envVars = await readEnvVars(targetDir, { autoAccept, envFile: opts.envFile });\n const envCount = Object.keys(envVars).length;\n if (envCount > 0) {\n p.log.step(`Found ${envCount} env var(s)`);\n } else {\n p.log.step('No env vars found in selected env file');\n }\n\n // Pre-upload validation — catch USER-attributable errors before zipping/shipping.\n if (!skipPreflight) {\n const issues = await preflightBuildOutput(targetDir, envVars);\n const outcome = await printPreflightIssues(issues, { autoAccept });\n if (outcome === 'blocked') {\n p.cancel('Deploy blocked by preflight errors.');\n process.exit(1);\n }\n if (outcome === 'cancelled') {\n p.cancel('Deploy cancelled.');\n process.exit(0);\n }\n }\n\n s.start('Zipping build artifact...');\n const zipPath = await zipOutput(targetDir);\n const zipStat = await stat(zipPath);\n const sizeKB = zipStat.size / 1024;\n const sizeLabel = sizeKB > 1024 ? `${(sizeKB / 1024).toFixed(1)}MB` : `${sizeKB.toFixed(1)}KB`;\n s.stop(`Created ${sizeLabel} archive`);\n\n s.start('Uploading...');\n const zipBuffer = await readFile(zipPath);\n const deployResult = await uploadServerDeploy(token, orgId, projectId, zipBuffer, {\n projectName,\n envVars: envCount > 0 ? envVars : undefined,\n disablePlatformObservability: projectConfig?.disablePlatformObservability === true,\n });\n s.stop(`Deploy accepted: ${deployResult.id}`);\n\n await rm(zipPath, { force: true });\n\n p.log.step('Streaming deploy logs...');\n const finalStatus = await pollServerDeploy(deployResult.id, token, orgId);\n\n if (finalStatus.status === 'running') {\n p.outro(`Deploy succeeded! ${finalStatus.instanceUrl}`);\n } else if (finalStatus.status === 'failed') {\n p.log.error(`Deploy failed: ${finalStatus.error}`);\n process.exit(1);\n } else {\n p.log.warning(`Deploy ended with status: ${finalStatus.status}`);\n process.exit(1);\n }\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\n\nimport { withPollingRetries } from '../utils/polling.js';\n\nexport interface DeployDiagnosisRecommendation {\n title: string;\n description: string;\n action: string | null;\n docsUrl: string | null;\n}\n\nexport interface DeployDiagnosis {\n id: string;\n deployId: string;\n status: 'PENDING' | 'COMPLETE' | 'FAILED';\n summary: string | null;\n recommendations: DeployDiagnosisRecommendation[] | null;\n error: string | null;\n createdAt: string;\n completedAt: string | null;\n}\n\nexport type DeployDiagnosisLookup =\n | { state: 'healthy' }\n | { state: 'missing' }\n | { state: 'ready'; diagnosis: DeployDiagnosis };\n\nexport interface PrintSuggestionsOptions {\n logsUrl?: string;\n}\n\nexport function printDeploySuggestions(\n deployId: string,\n diagnosis: DeployDiagnosis,\n options?: PrintSuggestionsOptions,\n) {\n if (diagnosis.status === 'FAILED') {\n p.log.error(`Diagnosis failed: ${diagnosis.error ?? 'unknown error'}`);\n return;\n }\n\n const meta = [pc.dim(`Deploy: ${deployId}`)];\n if (diagnosis.completedAt) {\n meta.push(pc.dim(`Diagnosed: ${diagnosis.completedAt}`));\n }\n p.log.step(meta.join(pc.dim(' · ')));\n\n p.log.message(pc.bold(pc.magenta(`🏥 Deploy Suggestions`)));\n\n if (diagnosis.summary) {\n p.log.message(pc.bold(pc.cyan(`Summary: `)) + diagnosis.summary);\n }\n\n const recommendations = diagnosis.recommendations ?? [];\n if (recommendations.length === 0) {\n p.log.warn(\n `No suggestions could be generated. The deploy may have failed due to an internal error — check the deploy logs for details.`,\n );\n } else {\n const lines: string[] = [];\n for (const [index, recommendation] of recommendations.entries()) {\n lines.push(`${pc.bold(pc.cyan(`${index + 1}.`))} ${pc.bold(recommendation.title)}`);\n lines.push(pc.dim(` ${recommendation.description}`));\n if (recommendation.action) {\n lines.push(` ${pc.green('▸')} ${pc.green(recommendation.action)}`);\n }\n if (recommendation.docsUrl) {\n lines.push(` ${pc.blue('↗')} ${pc.underline(pc.blue(recommendation.docsUrl))}`);\n }\n lines.push('');\n }\n\n p.log.message(lines.join('\\n'));\n }\n\n const logsUrl = options?.logsUrl ?? `https://projects.mastra.ai`;\n p.log.step(`Deploy logs: ${pc.underline(pc.blue(logsUrl))}`);\n}\n\nconst POLL_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes\n\nexport async function pollForDiagnosis(\n fetchDiagnosis: () => Promise<DeployDiagnosisLookup>,\n): Promise<DeployDiagnosisLookup> {\n const spinner = p.spinner();\n spinner.start(pc.cyan('Diagnosing deploy failure'));\n const deadline = Date.now() + POLL_TIMEOUT_MS;\n\n try {\n while (true) {\n const result = await withPollingRetries(fetchDiagnosis);\n if (result.state === 'healthy') {\n spinner.stop(pc.green('Deploy is healthy'));\n return result;\n }\n\n if (result.state === 'ready' && result.diagnosis.status !== 'PENDING') {\n spinner.stop(pc.green('Diagnosis complete'));\n return result;\n }\n\n if (Date.now() >= deadline) {\n throw new Error('Diagnosis polling timed out after 5 minutes. Please try again later.');\n }\n\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n } catch (error) {\n spinner.stop(pc.red('Diagnosis failed'));\n throw error;\n }\n}\n","import { chmod, readFile, writeFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\nimport { getToken, getCurrentOrgId } from '../auth/credentials.js';\nimport { loadProjectConfig } from '../studio/project-config.js';\nimport { parseEnvFile } from './deploy.js';\nimport { fetchServerProjects, getServerProjectEnv, updateServerProjectEnv } from './platform-api.js';\n\n/* ------------------------------------------------------------------ */\n/* Shared helpers */\n/* ------------------------------------------------------------------ */\n\nexport async function resolveAuth(cliOrg?: string): Promise<{ token: string; orgId: string }> {\n const token = await getToken();\n const orgId = process.env.MASTRA_ORG_ID ?? cliOrg ?? (await getCurrentOrgId());\n if (!orgId) {\n throw new Error('No organization selected. Run: mastra auth orgs switch');\n }\n return { token, orgId };\n}\n\nexport async function resolveProjectId(\n opts: { config?: string; project?: string },\n auth?: { token: string; orgId: string },\n): Promise<string> {\n const envProjectId = process.env.MASTRA_PROJECT_ID;\n if (envProjectId) return envProjectId;\n\n if (opts.project) {\n if (auth) {\n const projects = await fetchServerProjects(auth.token, auth.orgId);\n const match = projects.find(p => p.slug === opts.project || p.id === opts.project);\n if (match) return match.id;\n }\n return opts.project;\n }\n\n const config = await loadProjectConfig(process.cwd(), opts.config);\n if (!config?.projectId) {\n throw new Error('No linked project found. Deploy first with `mastra server deploy` or set MASTRA_PROJECT_ID.');\n }\n return config.projectId;\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env list */\n/* ------------------------------------------------------------------ */\n\nexport async function envListAction(opts: { config?: string }) {\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts);\n\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n const keys = Object.keys(envVars);\n\n if (keys.length === 0) {\n console.info('\\nNo environment variables set.\\n');\n return;\n }\n\n console.info(`\\n Environment variables (${keys.length}):\\n`);\n for (const key of keys.sort()) {\n // Show only the first 4 chars of the value to avoid leaking secrets\n const val = envVars[key]!;\n const masked = val.length > 4 ? val.slice(0, 4) + '...' : val;\n console.info(` ${key}=${masked}`);\n }\n console.info('');\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env set */\n/* ------------------------------------------------------------------ */\n\nexport async function envSetAction(key: string, value: string, opts: { config?: string }) {\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts);\n\n // Fetch current env vars, merge the new one, and PUT back\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n envVars[key] = value;\n await updateServerProjectEnv(token, orgId, projectId, envVars);\n\n console.info(`\\n Set ${key} successfully.\\n`);\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env unset */\n/* ------------------------------------------------------------------ */\n\nexport async function envUnsetAction(key: string, opts: { config?: string }) {\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts);\n\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n\n if (!(key in envVars)) {\n console.info(`\\n ${key} is not set.\\n`);\n return;\n }\n\n delete envVars[key];\n await updateServerProjectEnv(token, orgId, projectId, envVars);\n\n console.info(`\\n Removed ${key} successfully.\\n`);\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env import */\n/* ------------------------------------------------------------------ */\n\nexport async function envImportAction(file: string, opts: { config?: string }) {\n const filePath = resolve(file);\n let content: string;\n try {\n content = await readFile(filePath, 'utf-8');\n } catch {\n throw new Error(`Could not read file: ${filePath}`);\n }\n\n const newVars = parseEnvFile(content);\n const newKeys = Object.keys(newVars);\n if (newKeys.length === 0) {\n console.info('\\n No variables found in file.\\n');\n return;\n }\n\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts);\n\n // Merge with existing env vars (new values override existing)\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n Object.assign(envVars, newVars);\n await updateServerProjectEnv(token, orgId, projectId, envVars);\n\n console.info(`\\n Imported ${newKeys.length} variable(s) from ${file}:\\n`);\n for (const key of newKeys.sort()) {\n console.info(` ${key}`);\n }\n console.info('');\n}\n\n/* ------------------------------------------------------------------ */\n/* mastra server env pull */\n/* ------------------------------------------------------------------ */\n\nexport async function envPullAction(file: string | undefined, opts: { config?: string; project?: string }) {\n const { token, orgId } = await resolveAuth();\n const projectId = await resolveProjectId(opts, { token, orgId });\n\n const envVars = await getServerProjectEnv(token, orgId, projectId);\n const keys = Object.keys(envVars);\n\n const target = file ?? '.env';\n const shellSafeKey = /^[A-Za-z_][A-Za-z0-9_]*$/;\n const lines = ['# Pulled from Mastra Server — do not edit manually', ''];\n let skipped = 0;\n for (const key of keys.sort()) {\n if (!shellSafeKey.test(key)) {\n lines.push(`# Skipped unsafe key: ${key.replace(/[^\\w.-]/g, '?')}`);\n skipped++;\n continue;\n }\n const value = envVars[key]!;\n // Always quote values to prevent shell metacharacter interpretation when sourced\n const escaped = value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\t/g, '\\\\t')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\$/g, '\\\\$')\n .replace(/`/g, '\\\\`');\n lines.push(`${key}=\"${escaped}\"`);\n }\n lines.push(''); // trailing newline\n\n const outputPath = resolve(target);\n await writeFile(outputPath, lines.join('\\n'), { encoding: 'utf-8', mode: 0o600 });\n await chmod(outputPath, 0o600);\n\n const written = keys.length - skipped;\n if (written === 0) {\n console.info(`\\n No environment variables set in the project. Wrote empty ${target}.\\n`);\n } else {\n console.info(\n `\\n Pulled ${written} variable(s) to ${target}.${skipped > 0 ? ` Skipped ${skipped} unsafe key(s).` : ''}\\n`,\n );\n }\n}\n","import * as p from '@clack/prompts';\n\nimport { withPollingRetries } from '../../utils/polling.js';\nimport { pollForDiagnosis, printDeploySuggestions } from '../deploy-suggestions.js';\nimport { resolveAuth, resolveProjectId } from './env.js';\nimport { fetchServerDeployDiagnosis, fetchServerProjectDetail, startServerDeployDiagnosis } from './platform-api.js';\n\nasync function resolveDeployId(\n token: string,\n orgId: string,\n deployId?: string,\n): Promise<{ deployId: string; projectId?: string }> {\n if (deployId) {\n return { deployId };\n }\n\n const projectId = await resolveProjectId({}, { token, orgId });\n const { project } = await fetchServerProjectDetail(token, orgId, projectId);\n if (!project.latestDeployId) {\n throw new Error(\n `No deploys found for linked Server project ${project.name}. The suggestions command helps debug failed deployments, and you can run it after a deployment fails with \\`mastra server deploy suggestions <deploy-id>\\` or \\`mastra server deploy suggestions\\`.`,\n );\n }\n\n p.log.info(`Using latest deploy: ${project.latestDeployId}${project.name ? ` (${project.name})` : ''}`);\n return { deployId: project.latestDeployId, projectId };\n}\n\nfunction buildLogsUrl(orgId: string, projectId: string | undefined, deployId: string): string | undefined {\n if (!projectId) return undefined;\n return `https://projects.mastra.ai/orgs/${orgId}/server/projects/${projectId}/deploys/${deployId}`;\n}\n\nexport async function serverSuggestionsAction(deployId: string | undefined, opts: { org?: string }) {\n p.intro('mastra server deploy suggestions');\n try {\n const { token, orgId } = await resolveAuth(opts.org);\n const resolved = await resolveDeployId(token, orgId, deployId);\n const targetDeployId = resolved.deployId;\n\n const initialDiagnosis = await withPollingRetries(() => fetchServerDeployDiagnosis(targetDeployId, token, orgId));\n if (initialDiagnosis.state === 'healthy') {\n p.outro('Deploy is running successfully. No suggestions required.');\n return;\n }\n\n if (initialDiagnosis.state === 'missing') {\n await startServerDeployDiagnosis(targetDeployId, token, orgId);\n }\n\n let isFirstPoll = initialDiagnosis.state === 'ready';\n const diagnosisResult = await pollForDiagnosis(async () => {\n if (isFirstPoll) {\n isFirstPoll = false;\n return initialDiagnosis;\n }\n\n return fetchServerDeployDiagnosis(targetDeployId, token, orgId);\n });\n\n if (diagnosisResult.state !== 'ready') {\n p.outro('Deploy is running successfully. No suggestions required.');\n return;\n }\n\n const logsUrl = buildLogsUrl(orgId, resolved.projectId, targetDeployId);\n\n if (diagnosisResult.diagnosis.status === 'FAILED') {\n p.log.error(`Diagnosis failed: ${diagnosisResult.diagnosis.error ?? 'unknown error'}`);\n p.log.step(`Deploy logs: ${logsUrl ?? 'https://projects.mastra.ai'}`);\n process.exit(1);\n }\n\n printDeploySuggestions(targetDeployId, diagnosisResult.diagnosis, { logsUrl });\n } catch (err) {\n p.log.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n","import * as p from '@clack/prompts';\n\nimport { resolveAuth, resolveProjectId } from './env.js';\nimport { pauseServerProject, pollServerDeploy, restartServerProject } from './platform-api.js';\n\nexport async function serverPauseAction(opts: { config?: string; project?: string; org?: string }) {\n p.intro('mastra server pause');\n try {\n const { token, orgId } = await resolveAuth(opts.org);\n const projectId = await resolveProjectId(opts, { token, orgId });\n await pauseServerProject(token, orgId, projectId);\n p.outro('Server paused.');\n } catch (err) {\n p.log.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n\nexport async function serverRestartAction(opts: { config?: string; project?: string; org?: string }) {\n p.intro('mastra server restart');\n try {\n const { token, orgId } = await resolveAuth(opts.org);\n const projectId = await resolveProjectId(opts, { token, orgId });\n\n const s = p.spinner();\n s.start('Requesting restart...');\n const deployId = await restartServerProject(token, orgId, projectId);\n s.stop(`Restart queued: ${deployId}`);\n\n p.log.step('Streaming deploy logs...');\n const finalStatus = await pollServerDeploy(deployId, token, orgId);\n\n if (finalStatus.status === 'running') {\n p.outro(finalStatus.instanceUrl ? `Restart complete! ${finalStatus.instanceUrl}` : 'Restart complete!');\n } else if (finalStatus.status === 'failed') {\n p.log.error(`Restart failed: ${finalStatus.error ?? 'unknown error'}`);\n process.exit(1);\n } else {\n p.log.warning(`Restart ended with status: ${finalStatus.status}`);\n process.exit(1);\n }\n } catch (err) {\n p.log.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n","import { getToken, getCurrentOrgId, validateOrgAccess } from '../auth/credentials.js';\nimport { fetchProjects } from './platform-api.js';\n\nconst statusIcon: Record<string, string> = {\n starting: '🚀',\n running: '✅',\n stopped: '⏹️',\n failed: '❌',\n unknown: '❓',\n};\n\nexport async function deploysAction() {\n const token = await getToken();\n const orgId = await getCurrentOrgId();\n if (!orgId) {\n console.error('No organization selected. Run: mastra auth login');\n process.exit(1);\n }\n\n await validateOrgAccess(token, orgId);\n\n const projects = await fetchProjects(token, orgId);\n\n if (projects.length === 0) {\n console.info('No deploys found.');\n return;\n }\n\n for (const project of projects) {\n const status = project.latestDeployStatus ?? 'none';\n const icon = statusIcon[status] ?? '❓';\n const url = project.instanceUrl ?? '';\n\n console.info(`${icon} ${project.name} (${project.id})`);\n console.info(` Latest: ${project.latestDeployId ?? 'none'} — ${status}`);\n if (url) {\n console.info(` URL: ${url}`);\n }\n console.info('');\n }\n}\n","import { authHeaders, createApiClient, MASTRA_PLATFORM_API_URL, platformFetch } from '../auth/client.js';\nimport { getToken, getCurrentOrgId, validateOrgAccess } from '../auth/credentials.js';\n\nasync function getLogs(deployId: string, tail: string | undefined, token: string, orgId: string) {\n const client = createApiClient(token, orgId);\n const { data, error } = await client.GET('/v1/studio/deploys/{id}/logs', {\n params: {\n path: { id: deployId },\n query: tail ? { tail } : undefined,\n },\n });\n\n if (error) {\n throw new Error(`Failed to fetch logs: ${error.detail}`);\n }\n\n if (data.logs) {\n process.stdout.write(data.logs);\n } else {\n console.info('(no logs available)');\n }\n}\n\nasync function streamLogs(deployId: string, token: string, orgId: string) {\n const url = `${MASTRA_PLATFORM_API_URL}/v1/studio/deploys/${deployId}/logs/stream`;\n\n const resp = await platformFetch(url, {\n headers: {\n ...authHeaders(token, orgId),\n Accept: 'text/event-stream',\n },\n });\n\n if (!resp.ok) {\n const text = await resp.text();\n throw new Error(`Failed to stream logs: ${resp.status} — ${text}`);\n }\n\n if (!resp.body) {\n throw new Error('No response body for log stream');\n }\n\n const reader = resp.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n // Handle Ctrl+C gracefully\n process.on('SIGINT', () => {\n void reader.cancel();\n process.exit(0);\n });\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n // Parse SSE data lines, keeping any incomplete trailing line in the buffer\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n for (const line of lines) {\n if (line.startsWith('data:')) {\n const data = line.slice(5).trimStart();\n process.stdout.write(data + '\\n');\n }\n }\n }\n}\n\nexport async function logsAction(deployId: string, opts: { follow?: boolean; tail?: string }) {\n const token = await getToken();\n const orgId = await getCurrentOrgId();\n if (!orgId) {\n console.error('No organization selected. Run: mastra auth login');\n process.exit(1);\n }\n\n await validateOrgAccess(token, orgId);\n\n if (opts.follow) {\n await streamLogs(deployId, token, orgId);\n } else {\n await getLogs(deployId, opts.tail, token, orgId);\n }\n}\n","import { getToken, getCurrentOrgId, validateOrgAccess } from '../auth/credentials.js';\nimport type { DeployInfo } from './platform-api.js';\nimport { fetchDeployStatus } from './platform-api.js';\n\nfunction printDeploy(deploy: DeployInfo) {\n const statusIcon: Record<string, string> = {\n starting: '🚀',\n running: '✅',\n stopped: '⏹️',\n failed: '❌',\n unknown: '❓',\n };\n const icon = statusIcon[deploy.status] ?? '❓';\n\n console.info(`${icon} Deploy ${deploy.id}`);\n console.info(` Status: ${deploy.status}`);\n if (deploy.projectName) {\n console.info(` Project: ${deploy.projectName}`);\n }\n if (deploy.instanceUrl) {\n console.info(` URL: ${deploy.instanceUrl}`);\n }\n if (deploy.error) {\n console.info(` Error: ${deploy.error}`);\n }\n if (deploy.createdAt) {\n console.info(` Created: ${deploy.createdAt}`);\n }\n}\n\nexport async function statusAction(deployId: string, opts: { watch?: boolean }) {\n const token = await getToken();\n const orgId = await getCurrentOrgId();\n if (!orgId) {\n console.error('No organization selected. Run: mastra auth login');\n process.exit(1);\n }\n\n await validateOrgAccess(token, orgId);\n\n if (opts.watch) {\n let lastStatus = '';\n console.info(`Watching deploy ${deployId}...\\n`);\n\n while (true) {\n const deploy = await fetchDeployStatus(deployId, token, orgId);\n\n if (deploy.status !== lastStatus) {\n printDeploy(deploy);\n console.info('');\n lastStatus = deploy.status;\n }\n\n if (deploy.status === 'running' || deploy.status === 'failed' || deploy.status === 'stopped') {\n break;\n }\n\n await new Promise(r => setTimeout(r, 1000));\n }\n } else {\n const deploy = await fetchDeployStatus(deployId, token, orgId);\n printDeploy(deploy);\n }\n}\n","import * as p from '@clack/prompts';\n\nimport { withPollingRetries } from '../../utils/polling.js';\nimport { getCurrentOrgId, getToken, validateOrgAccess } from '../auth/credentials.js';\nimport { pollForDiagnosis, printDeploySuggestions } from '../deploy-suggestions.js';\nimport { fetchDeployDiagnosis, fetchProjects, startDeployDiagnosis } from './platform-api.js';\nimport type { Project } from './platform-api.js';\nimport { loadProjectConfig } from './project-config.js';\n\nfunction getLatestProjectDeploy(projects: Project[], linkedProjectId?: string) {\n const linkedProject = linkedProjectId ? projects.find(project => project.id === linkedProjectId) : null;\n if (linkedProject) {\n if (linkedProject.latestDeployId) {\n return { deployId: linkedProject.latestDeployId, projectId: linkedProject.id, projectName: linkedProject.name };\n }\n\n throw new Error(\n `No deploys found for linked Studio project ${linkedProject.name}. The suggestions command helps debug failed deployments, and you can run it after a deployment fails with \\`mastra studio deploy suggestions <deploy-id>\\` or \\`mastra studio deploy suggestions\\`.`,\n );\n }\n\n if (linkedProjectId) {\n throw new Error(\n `Linked Studio project ${linkedProjectId} was not found in this organization. Re-link your project or pass a deploy ID explicitly.`,\n );\n }\n\n const latestProject = projects\n .filter(project => project.latestDeployId)\n .sort((left, right) => {\n const leftTime = left.latestDeployCreatedAt ? Date.parse(left.latestDeployCreatedAt) : 0;\n const rightTime = right.latestDeployCreatedAt ? Date.parse(right.latestDeployCreatedAt) : 0;\n return rightTime - leftTime;\n })[0];\n\n if (!latestProject?.latestDeployId) {\n return null;\n }\n\n return { deployId: latestProject.latestDeployId, projectId: latestProject.id, projectName: latestProject.name };\n}\n\nasync function resolveDeployId(\n token: string,\n orgId: string,\n deployId?: string,\n): Promise<{ deployId: string; projectId?: string }> {\n if (deployId) {\n return { deployId };\n }\n\n const projectConfig = await loadProjectConfig(process.cwd());\n const latestDeploy = getLatestProjectDeploy(\n (await fetchProjects(token, orgId)).filter(project => project.organizationId === orgId),\n projectConfig?.organizationId === orgId ? projectConfig.projectId : undefined,\n );\n\n if (!latestDeploy) {\n throw new Error('No previous studio deploy found. Pass a deploy ID or deploy first.');\n }\n\n p.log.info(\n `Using latest deploy: ${latestDeploy.deployId}${latestDeploy.projectName ? ` (${latestDeploy.projectName})` : ''}`,\n );\n return { deployId: latestDeploy.deployId, projectId: latestDeploy.projectId };\n}\n\nexport async function suggestionsAction(deployId?: string) {\n p.intro('mastra studio deploy suggestions');\n\n try {\n const token = await getToken();\n const orgId = await getCurrentOrgId();\n if (!orgId) {\n p.log.error('No organization selected. Run: mastra auth login');\n process.exit(1);\n }\n\n await validateOrgAccess(token, orgId);\n\n const resolved = await resolveDeployId(token, orgId, deployId);\n const targetDeployId = resolved.deployId;\n const initialDiagnosis = await withPollingRetries(() => fetchDeployDiagnosis(targetDeployId, token, orgId));\n\n if (initialDiagnosis.state === 'healthy') {\n p.outro('Deploy is running successfully. No suggestions required.');\n return;\n }\n\n if (initialDiagnosis.state === 'missing') {\n await startDeployDiagnosis(targetDeployId, token, orgId);\n }\n\n let isFirstPoll = initialDiagnosis.state === 'ready';\n const diagnosisResult = await pollForDiagnosis(async () => {\n if (isFirstPoll) {\n isFirstPoll = false;\n return initialDiagnosis;\n }\n\n return fetchDeployDiagnosis(targetDeployId, token, orgId);\n });\n\n if (diagnosisResult.state !== 'ready') {\n p.outro('Deploy is running successfully. No suggestions required.');\n return;\n }\n\n const logsUrl = resolved.projectId\n ? `https://projects.mastra.ai/orgs/${orgId}/studio/projects/${resolved.projectId}/deploys/${targetDeployId}`\n : undefined;\n\n if (diagnosisResult.diagnosis.status === 'FAILED') {\n p.log.error(`Diagnosis failed: ${diagnosisResult.diagnosis.error ?? 'unknown error'}`);\n p.log.step(`Deploy logs: ${logsUrl ?? 'https://projects.mastra.ai'}`);\n process.exit(1);\n }\n\n printDeploySuggestions(targetDeployId, diagnosisResult.diagnosis, { logsUrl });\n } catch (err) {\n p.log.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n","import * as p from '@clack/prompts';\nimport { getToken } from '../auth/credentials.js';\nimport { resolveCurrentOrg } from '../auth/orgs.js';\nimport { fetchProjects, createProject } from './platform-api.js';\n\nexport async function listProjectsAction() {\n const token = await getToken();\n const { orgId, orgName } = await resolveCurrentOrg(token);\n const projects = await fetchProjects(token, orgId);\n\n console.info(`\\nProjects in ${orgName}:\\n`);\n\n if (projects.length === 0) {\n console.info(' No projects yet. Run: mastra studio projects create\\n');\n return;\n }\n\n for (const proj of projects) {\n const status = proj.latestDeployStatus ? ` [${proj.latestDeployStatus}]` : '';\n console.info(` ${proj.name}${status}`);\n console.info(` ID: ${proj.id}`);\n if (proj.instanceUrl) {\n console.info(` URL: ${proj.instanceUrl}`);\n }\n }\n console.info('');\n}\n\nexport async function createProjectAction() {\n const token = await getToken();\n const { orgId, orgName } = await resolveCurrentOrg(token);\n\n const name = await p.text({\n message: `Project name (in ${orgName})`,\n placeholder: 'my-mastra-app',\n validate: v => (!v || v.trim().length === 0 ? 'Name is required' : undefined),\n });\n\n if (p.isCancel(name)) {\n p.cancel('Cancelled.');\n process.exit(0);\n }\n\n const project = await createProject(token, orgId, name as string);\n console.info(`\\nCreated project: ${project.name} (${project.id})\\n`);\n}\n","import { FileService } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\nimport { shouldSkipDotenvLoading } from '../utils.js';\n\nexport class WorkerBundler extends Bundler {\n constructor({ outputDir }: { outputDir?: string } = {}) {\n super('Worker');\n this.platform = process.versions?.bun ? 'neutral' : 'node';\n if (outputDir) {\n this.outputDir = outputDir;\n }\n }\n\n getEnvFiles(): Promise<string[]> {\n if (shouldSkipDotenvLoading()) {\n return Promise.resolve([]);\n }\n\n const possibleFiles = ['.env.production', '.env.local', '.env'];\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, { outputDirectory, projectRoot }, toolsPaths);\n }\n\n protected getEntry(): string {\n return `\n import { mastra } from '#mastra';\n\n await mastra.startWorkers();\n\n console.log('[mastra] Workers started');\n\n const shutdown = async () => {\n console.log('[mastra] Shutting down workers...');\n await mastra.stopWorkers();\n process.exit(0);\n };\n process.on('SIGINT', shutdown);\n process.on('SIGTERM', shutdown);\n `;\n }\n}\n","import { isAbsolute, join, resolve } from 'node:path';\nimport { FileService } from '../../services/service.file';\nimport { createLogger } from '../../utils/logger';\nimport { WorkerBundler } from './WorkerBundler';\n\nexport async function buildWorker({\n dir,\n root,\n tools,\n outputDir,\n debug,\n}: {\n dir?: string;\n root?: string;\n tools?: string;\n outputDir?: string;\n debug?: boolean;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir: string = dir ? (isAbsolute(dir) ? dir : join(rootDir, dir)) : join(rootDir, 'src', 'mastra');\n const logger = createLogger(debug ?? false);\n\n // Two layouts.\n //\n // Default (no --output-dir):\n // outputDirectory = <root>/.mastra\n // outputDir = 'output'\n // → bundle at <root>/.mastra/output/index.mjs\n // → analyze dir at <root>/.mastra/.build\n // prepare() wipes <root>/.mastra (matches `mastra build`).\n //\n // Custom (--output-dir <path>):\n // outputDirectory = <full resolved path>\n // outputDir = '.'\n // → bundle at <path>/index.mjs\n // → analyze dir at <path>/.build\n // prepare() wipes <path> only — adjacent artifacts (including\n // .mastra/output/) are left alone.\n let outputDirectory: string;\n let bundlerOutputDir: string;\n\n if (outputDir) {\n outputDirectory = isAbsolute(outputDir) ? resolve(outputDir) : resolve(rootDir, outputDir);\n bundlerOutputDir = '.';\n } else {\n outputDirectory = join(rootDir, '.mastra');\n bundlerOutputDir = 'output';\n }\n\n try {\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const bundler = new WorkerBundler({ outputDir: bundlerOutputDir });\n bundler.__setLogger(logger);\n\n const discoveredTools = bundler.getAllToolPaths(mastraDir, tools ? tools.split(',') : []);\n\n await bundler.prepare(outputDirectory);\n await bundler.bundle(mastraEntryFile, outputDirectory, {\n toolsPaths: discoveredTools,\n projectRoot: rootDir,\n });\n\n const builtPath = join(outputDirectory, bundlerOutputDir, 'index.mjs');\n logger.info('Worker build complete.');\n logger.info(`Run with: mastra worker start [name]${outputDir ? ` --dir ${outputDir}` : ''}`);\n logger.info(` or: node ${builtPath}`);\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Worker build failed: ${error.message}`, { stack: error.stack });\n }\n process.exit(1);\n }\n}\n","import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport { join } from 'node:path';\nimport { config } from 'dotenv';\nimport { logger } from '../../utils/logger';\nimport { shouldSkipDotenvLoading } from '../utils';\n\ninterface StartWorkerOptions {\n name?: string;\n dir?: string;\n env?: string;\n}\n\nexport async function startWorker(options: StartWorkerOptions = {}) {\n if (!shouldSkipDotenvLoading()) {\n config({ path: [options.env || '.env.production', '.env'], quiet: true });\n }\n\n const outputDir = options.dir || '.mastra/output';\n const outputPath = join(process.cwd(), outputDir);\n const workerFile = join(outputPath, 'index.mjs');\n\n if (!fs.existsSync(workerFile)) {\n logger.error(`Worker bundle not found at ${workerFile}. Run \\`mastra worker build\\` first.`);\n process.exit(1);\n }\n\n const child = spawn(process.execPath, ['index.mjs'], {\n cwd: outputPath,\n stdio: ['inherit', 'inherit', 'pipe'],\n env: {\n ...process.env,\n NODE_ENV: 'production',\n ...(options.name ? { MASTRA_WORKERS: options.name } : {}),\n },\n });\n\n let stderrBuffer = '';\n child.stderr?.on('data', data => {\n stderrBuffer += data.toString();\n process.stderr.write(data);\n });\n\n child.on('error', err => {\n logger.error(`Worker process failed to start: ${err.message}`, {\n stack: err.stack,\n });\n process.exit(1);\n });\n\n child.on('exit', code => {\n if (code !== 0 && stderrBuffer.includes('ERR_MODULE_NOT_FOUND')) {\n const packageNameMatch = stderrBuffer.match(/Cannot find package '([^']+)'/);\n const packageName = packageNameMatch ? packageNameMatch[1] : null;\n if (packageName) {\n logger.error('Module not found while starting Mastra worker', { package: packageName });\n }\n }\n process.exit(code ?? 0);\n });\n\n process.on('SIGINT', () => {\n child.kill('SIGINT');\n });\n process.on('SIGTERM', () => {\n child.kill('SIGTERM');\n });\n}\n","import { buildWorker } from './build';\nimport { startWorker } from './start';\n\ninterface DevWorkerOptions {\n name?: string;\n dir?: string;\n root?: string;\n tools?: string;\n outputDir?: string;\n env?: string;\n debug?: boolean;\n}\n\nexport async function devWorker(options: DevWorkerOptions = {}) {\n await buildWorker({\n dir: options.dir,\n root: options.root,\n tools: options.tools,\n outputDir: options.outputDir,\n debug: options.debug,\n });\n await startWorker({\n name: options.name,\n dir: options.outputDir,\n env: options.env,\n });\n}\n","#! /usr/bin/env node\nimport { coreFeatures } from '@mastra/core/features';\nimport { Command } from 'commander';\nimport pc from 'picocolors';\nimport type { PackageJson } from 'type-fest';\n\nimport pkgJson from '../package.json';\nimport type { CLI_ORIGIN } from './analytics/index';\nimport { PosthogAnalytics, setAnalytics } from './analytics/index';\nimport { addScorer } from './commands/actions/add-scorer';\nimport { buildProject } from './commands/actions/build-project';\nimport { createProject } from './commands/actions/create-project';\nimport { initProject } from './commands/actions/init-project';\nimport { lintProject } from './commands/actions/lint-project';\nimport { listScorers } from './commands/actions/list-scorers';\nimport { migrate } from './commands/actions/migrate';\nimport { startDevServer } from './commands/actions/start-dev-server';\nimport { startProject } from './commands/actions/start-project';\nimport { startStudio } from './commands/actions/start-studio';\nimport { registerApiCommand } from './commands/api/index';\nimport { loginAction, logoutAction } from './commands/auth/login';\nimport { listOrgsAction, switchOrgAction } from './commands/auth/orgs';\nimport { createTokenAction, listTokensAction, revokeTokenAction } from './commands/auth/tokens';\nimport { whoamiAction } from './commands/auth/whoami';\nimport { COMPONENTS, LLMProvider } from './commands/init/utils';\nimport { serverDeployAction } from './commands/server/deploy';\nimport { serverSuggestionsAction } from './commands/server/deploy-suggestions';\nimport { envListAction, envSetAction, envUnsetAction, envImportAction, envPullAction } from './commands/server/env';\nimport { serverPauseAction, serverRestartAction } from './commands/server/lifecycle';\nimport { deployAction } from './commands/studio/deploy';\nimport { deploysAction } from './commands/studio/deploy-list';\nimport { logsAction } from './commands/studio/deploy-logs';\nimport { statusAction } from './commands/studio/deploy-status';\nimport { suggestionsAction } from './commands/studio/deploy-suggestions';\nimport { listProjectsAction, createProjectAction } from './commands/studio/projects';\nimport { parseComponents, parseLlmProvider, parseMcp, parseSkills } from './commands/utils';\nimport { buildWorker } from './commands/worker/build';\nimport { devWorker } from './commands/worker/dev';\nimport { startWorker } from './commands/worker/start';\n\nfunction wrapAction(fn: (...args: any[]) => Promise<void>): (...args: any[]) => void {\n return (...args: any[]) => {\n fn(...args).catch((err: Error) => {\n console.error(`Error: ${err.message}`);\n process.exit(1);\n });\n };\n}\n\nconst mastraPkg = pkgJson as PackageJson;\nexport const version = mastraPkg.version;\n\nexport const analytics = new PosthogAnalytics({\n apiKey: 'phc_SBLpZVAB6jmHOct9CABq3PF0Yn5FU3G2FgT4xUr2XrT',\n host: 'https://us.posthog.com',\n version: version!,\n});\n\nsetAnalytics(analytics);\n\nconst program = new Command();\n\nexport const origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nprogram\n .name('mastra')\n .version(`${version}`, '-v, --version')\n .addHelpText(\n 'before',\n `\n${pc.bold(pc.cyan('Mastra'))} is a typescript framework for building AI applications, agents, and workflows.\n`,\n )\n .action(() => {\n program.help();\n });\n\nprogram\n .command('create [project-name]')\n .description('Create a new Mastra project')\n .option('--default', 'Quick start with defaults (src, OpenAI, examples)')\n .option(\n '-c, --components <components>',\n `Comma-separated list of components (${COMPONENTS.join(', ')})`,\n parseComponents,\n )\n .option('-l, --llm <model-provider>', `Default model provider (${LLMProvider.join(', ')})`, parseLlmProvider)\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-t, --timeout [timeout]', 'Configurable timeout for package installation, defaults to 60000 ms')\n .option('-d, --dir <directory>', 'Target directory for Mastra source code (default: src/)')\n .option(\n '-p, --project-name <string>',\n 'Project name that will be used in package.json and as the project directory name.',\n )\n .option(\n '-m, --mcp <editor>',\n 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode, antigravity)',\n parseMcp,\n )\n .option('--skills <agents>', 'Install Mastra agent skills for specified agents (comma-separated)', parseSkills)\n .option(\n '--template [template-name]',\n 'Create project from a template (use template name, public GitHub URL, or leave blank to select from list)',\n )\n .option('--observability', 'Enable Mastra Observability (writes MASTRA_PLATFORM_ACCESS_TOKEN placeholder to .env)')\n .option('--no-observability', 'Do not enable Mastra Observability')\n .option(\n '--observability-project <name>',\n 'Existing platform project name/slug to attach Observability to, or a name to create. Skips the interactive picker.',\n )\n .action(createProject);\n\nprogram\n .command('init')\n .description('Initialize Mastra in your project')\n .option('--default', 'Quick start with defaults (src, OpenAI, examples)')\n .option('-d, --dir <directory>', 'Directory for Mastra files to (defaults to src/)')\n .option(\n '-c, --components <components>',\n `Comma-separated list of components (${COMPONENTS.join(', ')})`,\n parseComponents,\n )\n .option('-l, --llm <model-provider>', `Default model provider (${LLMProvider.join(', ')})`, parseLlmProvider)\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option(\n '-m, --mcp <editor>',\n 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode, antigravity)',\n parseMcp,\n )\n .option('--observability', 'Enable Mastra Observability (writes MASTRA_PLATFORM_ACCESS_TOKEN placeholder to .env)')\n .option('--no-observability', 'Do not enable Mastra Observability')\n .option(\n '--observability-project <name>',\n 'Existing platform project name/slug to attach Observability to, or a name to create. Skips the interactive picker.',\n )\n .action(initProject);\n\nregisterApiCommand(program);\n\nprogram\n .command('lint')\n .description('Lint your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('--preflight', 'Also run bundle preflight checks (builds if needed)')\n .option('--skip-build', 'Skip build, reuse existing .mastra/output (requires --preflight)')\n .option('--env-file <file>', 'Env file for preflight validation (requires --preflight)')\n .option('--strict', 'Treat warnings as errors')\n .option('--json', 'Emit machine-readable JSON output')\n .option('--debug', 'Enable debug logs', false)\n .action(lintProject);\n\nprogram\n .command('dev')\n .description('Start mastra server')\n .option('-d, --dir <dir>', 'Path to your mastra folder')\n .option('-r, --root <root>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-e, --env <env>', 'Custom env file to include in the dev server')\n .option(\n '-i, --inspect [host:port]',\n 'Start the dev server in inspect mode (optional: [host:]port, e.g., 0.0.0.0:9229)',\n )\n .option(\n '-b, --inspect-brk [host:port]',\n 'Start the dev server in inspect mode and break at the beginning of the script (optional: [host:]port)',\n )\n .option(\n '-c, --custom-args <args>',\n 'Comma-separated list of custom arguments to pass to the dev server. IE: --experimental-transform-types',\n )\n .option('-s, --https', 'Enable local HTTPS')\n .option('--request-context-presets <file>', 'Path to request context presets JSON file')\n .option('--debug', 'Enable debug logs', false)\n .action(startDevServer);\n\nprogram\n .command('build')\n .description('Build your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra Folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-s, --studio', 'Bundle the studio UI with the build')\n .option('--debug', 'Enable debug logs', false)\n .action(buildProject);\n\nconst workerCommand = program.command('worker').description('Build and run standalone Mastra worker bundles');\n\nworkerCommand\n .command('build')\n .description('Bundle a worker artifact (defaults to .mastra/output/index.mjs)')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option(\n '-o, --output-dir <path>',\n 'Output directory for the worker bundle. Defaults to .mastra/output (overwrites the server bundle if both are built in the same project — fine for split deploys). Pass a different path (relative or absolute) to redirect the worker bundle and leave the server bundle alone.',\n )\n .option('--debug', 'Enable debug logs', false)\n .action((opts: { dir?: string; root?: string; tools?: string; outputDir?: string; debug: boolean }) => {\n return buildWorker(opts);\n });\n\nworkerCommand\n .command('start [name]')\n .description(\n 'Start the built worker (defaults to .mastra/output/index.mjs). [name] sets MASTRA_WORKERS for the spawned process.',\n )\n .option('-d, --dir <path>', 'Path to your built worker output directory (default: .mastra/output)')\n .option('-e, --env <env>', 'Custom env file to load')\n .action((name: string | undefined, opts: { dir?: string; env?: string }) => {\n return startWorker({ name, ...opts });\n });\n\nworkerCommand\n .command('dev [name]')\n .description('Build and start a worker in one step. [name] sets MASTRA_WORKERS for the spawned process.')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option(\n '-o, --output-dir <path>',\n 'Output directory for the worker bundle. Defaults to .mastra/output. Pass a different path to keep server and worker bundles side by side.',\n )\n .option('-e, --env <env>', 'Custom env file to load')\n .option('--debug', 'Enable debug logs', false)\n .action(\n (\n name: string | undefined,\n opts: { dir?: string; root?: string; tools?: string; outputDir?: string; env?: string; debug: boolean },\n ) => {\n return devWorker({ name, ...opts });\n },\n );\n\nprogram\n .command('start')\n .description('Start your built Mastra application')\n .option('-d, --dir <path>', 'Path to your built Mastra output directory (default: .mastra/output)')\n .option('-e, --env <env>', 'Custom env file to include in the start')\n .option(\n '-c, --custom-args <args>',\n 'Comma-separated list of custom arguments to pass to the Node.js process. IE: --require=newrelic',\n )\n .action(startProject);\n\nconst studioCommand = program\n .command('studio')\n .description('Manage Mastra Studio')\n .option('-p, --port <port>', 'Port to run the studio on (default: 3000)')\n .option('-e, --env <env>', 'Custom env file to include in the studio')\n .option('-h, --server-host <serverHost>', 'Host of the Mastra API server (default: localhost)')\n .option('-s, --server-port <serverPort>', 'Port of the Mastra API server (default: 4111)')\n .option('-x, --server-protocol <serverProtocol>', 'Protocol of the Mastra API server (default: http)')\n .option('--server-api-prefix <serverApiPrefix>', 'API route prefix of the Mastra server (default: /api)')\n .option('--request-context-presets <file>', 'Path to request context presets JSON file')\n .action(startStudio);\n\nconst deployCommand = studioCommand\n .command('deploy [dir]')\n .description('Deploy studio')\n .option('--org <id>', 'Organization ID')\n .option('--project <id>', 'Project ID, slug, or name (creates new project if not found)')\n .option('-y, --yes', 'Auto-accept defaults without confirmation')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .option('--env-file <file>', 'Env file to deploy (for example: .env.production)')\n .option('--skip-build', 'Skip the build step and use existing .mastra/output')\n .option('--skip-preflight', 'Skip the pre-deploy build/env validation')\n .option('--debug', 'Enable debug logs', false)\n .action(wrapAction(deployAction));\n\ndeployCommand.command('list').description('List deployed studios').action(wrapAction(deploysAction));\n\ndeployCommand\n .command('status <deploy-id>')\n .description('Show deploy status')\n .option('-w, --watch', 'Watch for status changes')\n .action(wrapAction(statusAction));\n\ndeployCommand\n .command('logs <deploy-id>')\n .description('Show deploy logs')\n .option('-f, --follow', 'Stream logs in real time')\n .option('--tail <n>', 'Number of recent log lines')\n .action(wrapAction(logsAction));\n\nif (coreFeatures.has('deploy-diagnosis')) {\n deployCommand\n .command('suggestions [deploy-id]')\n .description('Show deploy suggestions for a failed deploy')\n .action(wrapAction(suggestionsAction));\n}\n\nconst studioProjects = studioCommand\n .command('projects')\n .description('Manage studio projects')\n .action(wrapAction(listProjectsAction));\n\nstudioProjects.command('create').description('Create a new project').action(wrapAction(createProjectAction));\n\nprogram\n .command('migrate')\n .description('Run database migrations to update storage schema')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-e, --env <env>', 'Custom env file to include')\n .option('--debug', 'Enable debug logs', false)\n .option('-y, --yes', 'Skip confirmation prompt (for CI/automation)')\n .action(migrate);\n\nconst scorersCommand = program.command('scorers').description('Manage scorers for evaluating AI outputs');\n\nscorersCommand\n .command('add [scorer-name]')\n .description('Add a new scorer to your project')\n .option('-d, --dir <path>', 'Path to your Mastra directory (default: auto-detect)')\n .action(addScorer);\n\nscorersCommand.command('list').description('List available scorer templates').action(listScorers);\n\n// ---- Auth commands ----\n\nconst authCommand = program.command('auth').description('Manage authentication');\n\nauthCommand.command('login').description('Log in to Mastra').action(wrapAction(loginAction));\n\nauthCommand.command('logout').description('Log out and clear credentials').action(wrapAction(logoutAction));\n\nauthCommand.command('whoami').description('Show current user and organization').action(wrapAction(whoamiAction));\n\nconst authOrgs = authCommand.command('orgs').description('Manage organizations').action(wrapAction(listOrgsAction));\n\nauthOrgs.command('switch').description('Switch current organization').action(wrapAction(switchOrgAction));\n\nconst authTokens = authCommand.command('tokens').description('Manage API tokens').action(wrapAction(listTokensAction));\n\nauthTokens.command('create <name>').description('Create a new API token').action(wrapAction(createTokenAction));\n\nauthTokens.command('revoke <token-id>').description('Revoke an API token').action(wrapAction(revokeTokenAction));\n\n// ---- Server commands ----\n\nconst serverCommand = program.command('server').description('Manage Mastra Server deployments');\n\nconst serverDeployCommand = serverCommand\n .command('deploy [dir]')\n .description('Deploy to Mastra Server')\n .option('--org <id>', 'Organization ID')\n .option('--project <id>', 'Project ID, slug, or name (creates new project if not found)')\n .option('-y, --yes', 'Auto-accept defaults without confirmation')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .option('--env-file <file>', 'Env file to deploy (for example: .env.production)')\n .option('--skip-build', 'Skip the build step and deploy the existing .mastra/output directory')\n .option('--skip-preflight', 'Skip the pre-deploy build/env validation')\n .option('--debug', 'Enable debug logs', false)\n .action(wrapAction(serverDeployAction));\n\nif (coreFeatures.has('deploy-diagnosis')) {\n serverDeployCommand\n .command('suggestions [deploy-id]')\n .description('Show deploy suggestions for a failed deploy')\n .option('--org <id>', 'Organization ID')\n .action(wrapAction(serverSuggestionsAction));\n}\n\nserverCommand\n .command('pause')\n .description('Pause the linked Mastra Server project instance')\n .option('--org <id>', 'Organization ID')\n .option('--project <id>', 'Project ID or slug (overrides linked project when MASTRA_PROJECT_ID is unset)')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(serverPauseAction));\n\nserverCommand\n .command('restart')\n .description('Restart the linked Mastra Server project instance')\n .option('--org <id>', 'Organization ID')\n .option('--project <id>', 'Project ID or slug (overrides linked project when MASTRA_PROJECT_ID is unset)')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(serverRestartAction));\n\nconst serverEnvCommand = serverCommand.command('env').description('Manage server environment variables');\n\nserverEnvCommand\n .command('list')\n .description('List environment variables for the linked project')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(envListAction));\n\nserverEnvCommand\n .command('set <key> <value>')\n .description('Set an environment variable')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(envSetAction));\n\nserverEnvCommand\n .command('unset <key>')\n .description('Remove an environment variable')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(envUnsetAction));\n\nserverEnvCommand\n .command('import <file>')\n .description('Import environment variables from a .env file')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .action(wrapAction(envImportAction));\n\nserverEnvCommand\n .command('pull [file]')\n .description('Pull environment variables into a local .env file (default: .env)')\n .option('-c, --config <file>', 'Project config file path (default: .mastra-project.json)')\n .option('--project <id>', 'Project ID or slug (overrides linked project when MASTRA_PROJECT_ID is unset)')\n .action(wrapAction(envPullAction));\n\nprogram.parse(process.argv);\n\nexport { PosthogAnalytics } from './analytics/index';\nexport { create } from './commands/create/create';\n"]}