create-mastra 0.0.0-memory-system-message-error-20250813233316 → 0.0.0-message-file-url-handling-fix-20250904234524

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 (29) hide show
  1. package/CHANGELOG.md +1631 -0
  2. package/README.md +2 -8
  3. package/dist/index.js +49 -42
  4. package/dist/index.js.map +1 -1
  5. package/package.json +13 -5
  6. package/dist/starter-files/tools.d.ts +0 -79
  7. package/dist/starter-files/tools.d.ts.map +0 -1
  8. package/dist/templates/dev.entry.d.ts +0 -2
  9. package/dist/templates/dev.entry.d.ts.map +0 -1
  10. package/dist/templates/scorers/answer-relevancy-scorer.d.ts +0 -2
  11. package/dist/templates/scorers/answer-relevancy-scorer.d.ts.map +0 -1
  12. package/dist/templates/scorers/bias-detection-scorer.d.ts +0 -2
  13. package/dist/templates/scorers/bias-detection-scorer.d.ts.map +0 -1
  14. package/dist/templates/scorers/completeness-scorer.d.ts +0 -2
  15. package/dist/templates/scorers/completeness-scorer.d.ts.map +0 -1
  16. package/dist/templates/scorers/content-similarity-scorer.d.ts +0 -2
  17. package/dist/templates/scorers/content-similarity-scorer.d.ts.map +0 -1
  18. package/dist/templates/scorers/faithfulness-scorer.d.ts +0 -2
  19. package/dist/templates/scorers/faithfulness-scorer.d.ts.map +0 -1
  20. package/dist/templates/scorers/hallucination-scorer.d.ts +0 -2
  21. package/dist/templates/scorers/hallucination-scorer.d.ts.map +0 -1
  22. package/dist/templates/scorers/keyword-coverage-scorer.d.ts +0 -2
  23. package/dist/templates/scorers/keyword-coverage-scorer.d.ts.map +0 -1
  24. package/dist/templates/scorers/textual-difference-scorer.d.ts +0 -2
  25. package/dist/templates/scorers/textual-difference-scorer.d.ts.map +0 -1
  26. package/dist/templates/scorers/tone-consistency-scorer.d.ts +0 -2
  27. package/dist/templates/scorers/tone-consistency-scorer.d.ts.map +0 -1
  28. package/dist/templates/scorers/toxicity-detection-scorer.d.ts +0 -2
  29. package/dist/templates/scorers/toxicity-detection-scorer.d.ts.map +0 -1
package/README.md CHANGED
@@ -4,22 +4,16 @@ The easiest way to get started with Mastra is by using `create-mastra`. This CLI
4
4
 
5
5
  ## Usage
6
6
 
7
- Using npx:
8
-
9
- ```bash
10
- npx create-mastra@latest
11
- ```
12
-
13
7
  Using npm:
14
8
 
15
9
  ```bash
16
- npm create mastra@latest
10
+ npx create-mastra@latest
17
11
  ```
18
12
 
19
13
  Using yarn:
20
14
 
21
15
  ```bash
22
- yarn create mastra
16
+ yarn dlx create-mastra@latest
23
17
  ```
24
18
 
25
19
  Using pnpm:
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ import tty from 'node:tty';
18
18
  import pino from 'pino';
19
19
  import pretty from 'pino-pretty';
20
20
  import { execa } from 'execa';
21
- import fsExtra3, { readJSON, ensureFile, writeJSON } from 'fs-extra/esm';
21
+ import fsExtra2, { readJSON, ensureFile, writeJSON } from 'fs-extra/esm';
22
22
  import prettier from 'prettier';
23
23
  import fsExtra from 'fs-extra';
24
24
 
@@ -1196,18 +1196,6 @@ function getPackageManager() {
1196
1196
  }
1197
1197
  return "npm";
1198
1198
  }
1199
- function getPackageManagerInstallCommand(pm) {
1200
- switch (pm) {
1201
- case "npm":
1202
- return "install";
1203
- case "yarn":
1204
- return "add";
1205
- case "pnpm":
1206
- return "add";
1207
- default:
1208
- return "install";
1209
- }
1210
- }
1211
1199
  var logger = new PinoLogger({
1212
1200
  name: "Mastra CLI",
1213
1201
  level: "info"
@@ -1362,6 +1350,20 @@ function findTemplateByName(templates, templateName) {
1362
1350
  function getDefaultProjectName(template) {
1363
1351
  return template.slug.replace(/^template-/, "");
1364
1352
  }
1353
+ function getPackageManagerAddCommand(pm) {
1354
+ switch (pm) {
1355
+ case "npm":
1356
+ return "install --audit=false --fund=false --loglevel=error --progress=false --update-notifier=false";
1357
+ case "yarn":
1358
+ return "add";
1359
+ case "pnpm":
1360
+ return "add --loglevel=error";
1361
+ case "bun":
1362
+ return "add";
1363
+ default:
1364
+ return "add";
1365
+ }
1366
+ }
1365
1367
  var DepsService = class {
1366
1368
  packageManager;
1367
1369
  constructor() {
@@ -1396,14 +1398,10 @@ var DepsService = class {
1396
1398
  }
1397
1399
  }
1398
1400
  async installPackages(packages) {
1399
- let runCommand = this.packageManager;
1400
- if (this.packageManager === "npm") {
1401
- runCommand = `${this.packageManager} i`;
1402
- } else {
1403
- runCommand = `${this.packageManager} add`;
1404
- }
1401
+ const pm = this.packageManager;
1402
+ const installCommand = getPackageManagerAddCommand(pm);
1405
1403
  const packageList = packages.join(" ");
1406
- return execa(`${runCommand} ${packageList}`, {
1404
+ return execa(`${pm} ${installCommand} ${packageList}`, {
1407
1405
  all: true,
1408
1406
  shell: true,
1409
1407
  stdio: "inherit"
@@ -1439,13 +1437,6 @@ var DepsService = class {
1439
1437
  throw err;
1440
1438
  }
1441
1439
  }
1442
- async getPackageVersion() {
1443
- const __filename = fileURLToPath(import.meta.url);
1444
- const __dirname = dirname(__filename);
1445
- const pkgJsonPath = path3.join(__dirname, "..", "package.json");
1446
- const content = await fsExtra3.readJSON(pkgJsonPath);
1447
- return content.version;
1448
- }
1449
1440
  async addScriptsToPackageJson(scripts) {
1450
1441
  const packageJson = JSON.parse(await fs.readFile("package.json", "utf-8"));
1451
1442
  packageJson.scripts = {
@@ -1645,12 +1636,12 @@ var FileService = class {
1645
1636
  console.log(`${outputFilePath} already exists`);
1646
1637
  return false;
1647
1638
  }
1648
- await fsExtra3.outputFile(outputFilePath, fileString);
1639
+ await fsExtra2.outputFile(outputFilePath, fileString);
1649
1640
  return true;
1650
1641
  }
1651
1642
  async setupEnvFile({ dbUrl }) {
1652
1643
  const envPath = path3.join(process.cwd(), ".env.development");
1653
- await fsExtra3.ensureFile(envPath);
1644
+ await fsExtra2.ensureFile(envPath);
1654
1645
  const fileEnvService = new FileEnvService(envPath);
1655
1646
  await fileEnvService.setEnvValue("DB_URL", dbUrl);
1656
1647
  }
@@ -1694,6 +1685,8 @@ var getAISDKPackage = (llmProvider) => {
1694
1685
  return "@ai-sdk/google";
1695
1686
  case "cerebras":
1696
1687
  return "@ai-sdk/cerebras";
1688
+ case "mistral":
1689
+ return "@ai-sdk/mistral";
1697
1690
  default:
1698
1691
  return "@ai-sdk/openai";
1699
1692
  }
@@ -1716,6 +1709,9 @@ var getProviderImportAndModelItem = (llmProvider) => {
1716
1709
  } else if (llmProvider === "cerebras") {
1717
1710
  providerImport = `import { cerebras } from '${getAISDKPackage(llmProvider)}';`;
1718
1711
  modelItem = `cerebras('llama-3.3-70b')`;
1712
+ } else if (llmProvider === "mistral") {
1713
+ providerImport = `import { mistral } from '${getAISDKPackage(llmProvider)}';`;
1714
+ modelItem = `mistral('mistral-medium-2508')`;
1719
1715
  }
1720
1716
  return { providerImport, modelItem };
1721
1717
  };
@@ -1972,7 +1968,7 @@ async function writeCodeSampleForComponents(llmprovider, component, destPath, im
1972
1968
  }
1973
1969
  var createComponentsDir = async (dirPath, component) => {
1974
1970
  const componentPath = dirPath + `/${component}`;
1975
- await fsExtra3.ensureDir(componentPath);
1971
+ await fsExtra2.ensureDir(componentPath);
1976
1972
  };
1977
1973
  var writeIndexFile = async ({
1978
1974
  dirPath,
@@ -2041,6 +2037,9 @@ var getAPIKey = async (provider) => {
2041
2037
  case "cerebras":
2042
2038
  key = "CEREBRAS_API_KEY";
2043
2039
  return key;
2040
+ case "mistral":
2041
+ key = "MISTRAL_API_KEY";
2042
+ return key;
2044
2043
  default:
2045
2044
  return key;
2046
2045
  }
@@ -2061,7 +2060,7 @@ var createMastraDir = async (directory) => {
2061
2060
  await fs.access(dirPath);
2062
2061
  return { ok: false };
2063
2062
  } catch {
2064
- await fsExtra3.ensureDir(dirPath);
2063
+ await fsExtra2.ensureDir(dirPath);
2065
2064
  return { ok: true, dirPath };
2066
2065
  }
2067
2066
  };
@@ -2089,7 +2088,8 @@ var interactivePrompt = async () => {
2089
2088
  { value: "anthropic", label: "Anthropic" },
2090
2089
  { value: "groq", label: "Groq" },
2091
2090
  { value: "google", label: "Google" },
2092
- { value: "cerebras", label: "Cerebras" }
2091
+ { value: "cerebras", label: "Cerebras" },
2092
+ { value: "mistral", label: "Mistral" }
2093
2093
  ]
2094
2094
  }),
2095
2095
  llmApiKey: async ({ results: { llmProvider } }) => {
@@ -2247,7 +2247,7 @@ var init = async ({
2247
2247
  const aiSdkPackageVersion = getAISDKPackageVersion(llmProvider);
2248
2248
  const depsService = new DepsService();
2249
2249
  const pm = depsService.packageManager;
2250
- const installCommand = getPackageManagerInstallCommand(pm);
2250
+ const installCommand = getPackageManagerAddCommand(pm);
2251
2251
  await exec3(`${pm} ${installCommand} ${aiSdkPackage}@${aiSdkPackageVersion}`);
2252
2252
  if (configureEditorWithDocsMCP) {
2253
2253
  await installMastraDocsMCPServer({
@@ -2302,9 +2302,9 @@ var execWithTimeout = async (command, timeoutMs) => {
2302
2302
  }
2303
2303
  };
2304
2304
  async function installMastraDependency(pm, dependency, versionTag, isDev, timeout) {
2305
- let installCommand = getPackageManagerInstallCommand(pm);
2305
+ let installCommand = getPackageManagerAddCommand(pm);
2306
2306
  if (isDev) {
2307
- installCommand = `${installCommand} --save-dev`;
2307
+ installCommand = `${installCommand} -D`;
2308
2308
  }
2309
2309
  try {
2310
2310
  await execWithTimeout(`${pm} ${installCommand} ${dependency}${versionTag}`, timeout);
@@ -2354,7 +2354,7 @@ var createMastraProject = async ({
2354
2354
  }
2355
2355
  process.chdir(projectName);
2356
2356
  const pm = getPackageManager();
2357
- const installCommand = getPackageManagerInstallCommand(pm);
2357
+ const installCommand = getPackageManagerAddCommand(pm);
2358
2358
  s2.message("Initializing project structure");
2359
2359
  try {
2360
2360
  await exec4(`npm init -y`);
@@ -2443,7 +2443,7 @@ var createMastraProject = async ({
2443
2443
  };
2444
2444
  var create = async (args2) => {
2445
2445
  if (args2.template !== void 0) {
2446
- await createFromTemplate(args2);
2446
+ await createFromTemplate({ ...args2, injectedAnalytics: args2.analytics });
2447
2447
  return;
2448
2448
  }
2449
2449
  const { projectName } = await createMastraProject({
@@ -2613,8 +2613,13 @@ async function createFromTemplate(args2) {
2613
2613
  projectName = response;
2614
2614
  }
2615
2615
  try {
2616
- const analytics = getAnalytics();
2617
- if (analytics) ;
2616
+ const analytics = args2.injectedAnalytics || getAnalytics();
2617
+ if (analytics) {
2618
+ analytics.trackEvent("cli_template_used", {
2619
+ template_slug: selectedTemplate.slug,
2620
+ template_title: selectedTemplate.title
2621
+ });
2622
+ }
2618
2623
  const projectPath = await cloneTemplate({
2619
2624
  template: selectedTemplate,
2620
2625
  projectName
@@ -2623,7 +2628,7 @@ async function createFromTemplate(args2) {
2623
2628
  Me(`
2624
2629
  ${color2.green("Mastra template installed!")}
2625
2630
 
2626
- Add the necessary environment
2631
+ Add the necessary environment
2627
2632
  variables in your ${color2.cyan(".env")} file
2628
2633
  `);
2629
2634
  postCreate({ projectName });
@@ -2689,7 +2694,8 @@ program.name("create-mastra").description("Create a new Mastra project").argumen
2689
2694
  timeout,
2690
2695
  mcpServer: args.mcp,
2691
2696
  directory: "src/",
2692
- template: args.template
2697
+ template: args.template,
2698
+ analytics
2693
2699
  });
2694
2700
  return;
2695
2701
  }
@@ -2703,7 +2709,8 @@ program.name("create-mastra").description("Create a new Mastra project").argumen
2703
2709
  projectName,
2704
2710
  directory: args.dir,
2705
2711
  mcpServer: args.mcp,
2706
- template: args.template
2712
+ template: args.template,
2713
+ analytics
2707
2714
  });
2708
2715
  });
2709
2716
  program.parse(process.argv);