create-mastra 0.0.0-vector-query-tool-provider-options-20250828222356 → 0.0.0-vector-extension-schema-20250922130418
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1747 -0
- package/README.md +2 -8
- package/dist/index.js +64 -57
- package/dist/index.js.map +1 -1
- package/package.json +17 -9
- package/dist/templates/scorers/answer-relevancy-scorer.ts +0 -15
- package/dist/templates/scorers/bias-detection-scorer.ts +0 -16
- package/dist/templates/scorers/completeness-scorer.ts +0 -16
- package/dist/templates/scorers/content-similarity-scorer.ts +0 -15
- package/dist/templates/scorers/faithfulness-scorer.ts +0 -21
- package/dist/templates/scorers/hallucination-scorer.ts +0 -21
- package/dist/templates/scorers/keyword-coverage-scorer.ts +0 -15
- package/dist/templates/scorers/textual-difference-scorer.ts +0 -16
- package/dist/templates/scorers/tone-consistency-scorer.ts +0 -16
- package/dist/templates/scorers/toxicity-detection-scorer.ts +0 -16
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
|
-
|
|
10
|
+
npx create-mastra@latest
|
|
17
11
|
```
|
|
18
12
|
|
|
19
13
|
Using yarn:
|
|
20
14
|
|
|
21
15
|
```bash
|
|
22
|
-
yarn create
|
|
16
|
+
yarn dlx create-mastra@latest
|
|
23
17
|
```
|
|
24
18
|
|
|
25
19
|
Using pnpm:
|
package/dist/index.js
CHANGED
|
@@ -12,15 +12,15 @@ import y$1, { stdout, stdin } from 'node:process';
|
|
|
12
12
|
import * as g from 'node:readline';
|
|
13
13
|
import g__default from 'node:readline';
|
|
14
14
|
import { Writable } from 'node:stream';
|
|
15
|
-
import
|
|
15
|
+
import fs5 from 'node:fs/promises';
|
|
16
16
|
import child_process from 'node:child_process';
|
|
17
17
|
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
|
|
21
|
+
import fsExtra, { readJSON, ensureFile, writeJSON } from 'fs-extra/esm';
|
|
22
22
|
import prettier from 'prettier';
|
|
23
|
-
import fsExtra from 'fs-extra';
|
|
23
|
+
import fsExtra$1 from 'fs-extra';
|
|
24
24
|
|
|
25
25
|
var __filename = fileURLToPath(import.meta.url);
|
|
26
26
|
var __dirname = path3.dirname(__filename);
|
|
@@ -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"
|
|
@@ -1226,7 +1214,7 @@ async function cloneTemplate(options) {
|
|
|
1226
1214
|
await updatePackageJson(projectPath, projectName);
|
|
1227
1215
|
const envExamplePath = path3.join(projectPath, ".env.example");
|
|
1228
1216
|
if (await fileExists(envExamplePath)) {
|
|
1229
|
-
await
|
|
1217
|
+
await fs5.copyFile(envExamplePath, path3.join(projectPath, ".env"));
|
|
1230
1218
|
}
|
|
1231
1219
|
spinner5.success(`Template "${template.title}" cloned successfully to ${projectName}`);
|
|
1232
1220
|
return projectPath;
|
|
@@ -1237,7 +1225,7 @@ async function cloneTemplate(options) {
|
|
|
1237
1225
|
}
|
|
1238
1226
|
async function directoryExists(dirPath) {
|
|
1239
1227
|
try {
|
|
1240
|
-
const stat = await
|
|
1228
|
+
const stat = await fs5.stat(dirPath);
|
|
1241
1229
|
return stat.isDirectory();
|
|
1242
1230
|
} catch {
|
|
1243
1231
|
return false;
|
|
@@ -1245,14 +1233,14 @@ async function directoryExists(dirPath) {
|
|
|
1245
1233
|
}
|
|
1246
1234
|
async function fileExists(filePath) {
|
|
1247
1235
|
try {
|
|
1248
|
-
const stat = await
|
|
1236
|
+
const stat = await fs5.stat(filePath);
|
|
1249
1237
|
return stat.isFile();
|
|
1250
1238
|
} catch {
|
|
1251
1239
|
return false;
|
|
1252
1240
|
}
|
|
1253
1241
|
}
|
|
1254
1242
|
async function cloneRepositoryWithoutGit(repoUrl, targetPath) {
|
|
1255
|
-
await
|
|
1243
|
+
await fs5.mkdir(targetPath, { recursive: true });
|
|
1256
1244
|
try {
|
|
1257
1245
|
const degitRepo = repoUrl.replace("https://github.com/", "");
|
|
1258
1246
|
const degitCommand = shellQuote.quote(["npx", "degit", degitRepo, targetPath]);
|
|
@@ -1267,7 +1255,7 @@ async function cloneRepositoryWithoutGit(repoUrl, targetPath) {
|
|
|
1267
1255
|
});
|
|
1268
1256
|
const gitDir = path3.join(targetPath, ".git");
|
|
1269
1257
|
if (await directoryExists(gitDir)) {
|
|
1270
|
-
await
|
|
1258
|
+
await fs5.rm(gitDir, { recursive: true, force: true });
|
|
1271
1259
|
}
|
|
1272
1260
|
} catch (gitError) {
|
|
1273
1261
|
throw new Error(`Failed to clone repository: ${gitError instanceof Error ? gitError.message : "Unknown error"}`);
|
|
@@ -1277,10 +1265,10 @@ async function cloneRepositoryWithoutGit(repoUrl, targetPath) {
|
|
|
1277
1265
|
async function updatePackageJson(projectPath, projectName) {
|
|
1278
1266
|
const packageJsonPath = path3.join(projectPath, "package.json");
|
|
1279
1267
|
try {
|
|
1280
|
-
const packageJsonContent = await
|
|
1268
|
+
const packageJsonContent = await fs5.readFile(packageJsonPath, "utf-8");
|
|
1281
1269
|
const packageJson = JSON.parse(packageJsonContent);
|
|
1282
1270
|
packageJson.name = projectName;
|
|
1283
|
-
await
|
|
1271
|
+
await fs5.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), "utf-8");
|
|
1284
1272
|
} catch (error) {
|
|
1285
1273
|
logger.warn(`Could not update package.json: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
1286
1274
|
}
|
|
@@ -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
|
-
|
|
1400
|
-
|
|
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(`${
|
|
1404
|
+
return execa(`${pm} ${installCommand} ${packageList}`, {
|
|
1407
1405
|
all: true,
|
|
1408
1406
|
shell: true,
|
|
1409
1407
|
stdio: "inherit"
|
|
@@ -1413,11 +1411,11 @@ var DepsService = class {
|
|
|
1413
1411
|
try {
|
|
1414
1412
|
const packageJsonPath = path3.join(process.cwd(), "package.json");
|
|
1415
1413
|
try {
|
|
1416
|
-
await
|
|
1414
|
+
await fs5.access(packageJsonPath);
|
|
1417
1415
|
} catch {
|
|
1418
1416
|
return "No package.json file found in the current directory";
|
|
1419
1417
|
}
|
|
1420
|
-
const packageJson = JSON.parse(await
|
|
1418
|
+
const packageJson = JSON.parse(await fs5.readFile(packageJsonPath, "utf-8"));
|
|
1421
1419
|
for (const dependency of dependencies) {
|
|
1422
1420
|
if (!packageJson.dependencies || !packageJson.dependencies[dependency]) {
|
|
1423
1421
|
return `Please install ${dependency} before running this command (${this.packageManager} install ${dependency})`;
|
|
@@ -1432,7 +1430,7 @@ var DepsService = class {
|
|
|
1432
1430
|
async getProjectName() {
|
|
1433
1431
|
try {
|
|
1434
1432
|
const packageJsonPath = path3.join(process.cwd(), "package.json");
|
|
1435
|
-
const packageJson = await
|
|
1433
|
+
const packageJson = await fs5.readFile(packageJsonPath, "utf-8");
|
|
1436
1434
|
const pkg = JSON.parse(packageJson);
|
|
1437
1435
|
return pkg.name;
|
|
1438
1436
|
} catch (err) {
|
|
@@ -1440,12 +1438,12 @@ var DepsService = class {
|
|
|
1440
1438
|
}
|
|
1441
1439
|
}
|
|
1442
1440
|
async addScriptsToPackageJson(scripts) {
|
|
1443
|
-
const packageJson = JSON.parse(await
|
|
1441
|
+
const packageJson = JSON.parse(await fs5.readFile("package.json", "utf-8"));
|
|
1444
1442
|
packageJson.scripts = {
|
|
1445
1443
|
...packageJson.scripts,
|
|
1446
1444
|
...scripts
|
|
1447
1445
|
};
|
|
1448
|
-
await
|
|
1446
|
+
await fs5.writeFile("package.json", JSON.stringify(packageJson, null, 2));
|
|
1449
1447
|
}
|
|
1450
1448
|
};
|
|
1451
1449
|
var args = ["-y", "@mastra/mcp-docs-server"];
|
|
@@ -1598,7 +1596,7 @@ var FileEnvService = class extends EnvService {
|
|
|
1598
1596
|
${key}=${value}`;
|
|
1599
1597
|
}
|
|
1600
1598
|
await this.writeFile({ filePath, data });
|
|
1601
|
-
console.
|
|
1599
|
+
console.info(`${key} set to ${value} in ENV file.`);
|
|
1602
1600
|
return data;
|
|
1603
1601
|
}
|
|
1604
1602
|
async getEnvValue(key) {
|
|
@@ -1635,15 +1633,15 @@ var FileService = class {
|
|
|
1635
1633
|
const filePath = path3.resolve(__dirname, "starter-files", inputFile);
|
|
1636
1634
|
const fileString = fs4__default__default.readFileSync(filePath, "utf8");
|
|
1637
1635
|
if (fs4__default__default.existsSync(outputFilePath) && !replaceIfExists) {
|
|
1638
|
-
console.
|
|
1636
|
+
console.info(`${outputFilePath} already exists`);
|
|
1639
1637
|
return false;
|
|
1640
1638
|
}
|
|
1641
|
-
await
|
|
1639
|
+
await fsExtra.outputFile(outputFilePath, fileString);
|
|
1642
1640
|
return true;
|
|
1643
1641
|
}
|
|
1644
1642
|
async setupEnvFile({ dbUrl }) {
|
|
1645
1643
|
const envPath = path3.join(process.cwd(), ".env.development");
|
|
1646
|
-
await
|
|
1644
|
+
await fsExtra.ensureFile(envPath);
|
|
1647
1645
|
const fileEnvService = new FileEnvService(envPath);
|
|
1648
1646
|
await fileEnvService.setEnvValue("DB_URL", dbUrl);
|
|
1649
1647
|
}
|
|
@@ -1687,6 +1685,8 @@ var getAISDKPackage = (llmProvider) => {
|
|
|
1687
1685
|
return "@ai-sdk/google";
|
|
1688
1686
|
case "cerebras":
|
|
1689
1687
|
return "@ai-sdk/cerebras";
|
|
1688
|
+
case "mistral":
|
|
1689
|
+
return "@ai-sdk/mistral";
|
|
1690
1690
|
default:
|
|
1691
1691
|
return "@ai-sdk/openai";
|
|
1692
1692
|
}
|
|
@@ -1709,6 +1709,9 @@ var getProviderImportAndModelItem = (llmProvider) => {
|
|
|
1709
1709
|
} else if (llmProvider === "cerebras") {
|
|
1710
1710
|
providerImport = `import { cerebras } from '${getAISDKPackage(llmProvider)}';`;
|
|
1711
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')`;
|
|
1712
1715
|
}
|
|
1713
1716
|
return { providerImport, modelItem };
|
|
1714
1717
|
};
|
|
@@ -1751,8 +1754,8 @@ export const weatherAgent = new Agent({
|
|
|
1751
1754
|
parser: "typescript",
|
|
1752
1755
|
singleQuote: true
|
|
1753
1756
|
});
|
|
1754
|
-
await
|
|
1755
|
-
await
|
|
1757
|
+
await fs5.writeFile(destPath, "");
|
|
1758
|
+
await fs5.writeFile(destPath, formattedContent);
|
|
1756
1759
|
}
|
|
1757
1760
|
async function writeWorkflowSample(destPath) {
|
|
1758
1761
|
const content = `import { createStep, createWorkflow } from '@mastra/core/workflows';
|
|
@@ -1945,7 +1948,7 @@ export { weatherWorkflow };`;
|
|
|
1945
1948
|
semi: true,
|
|
1946
1949
|
singleQuote: true
|
|
1947
1950
|
});
|
|
1948
|
-
await
|
|
1951
|
+
await fs5.writeFile(destPath, formattedContent);
|
|
1949
1952
|
}
|
|
1950
1953
|
async function writeToolSample(destPath) {
|
|
1951
1954
|
const fileService = new FileService();
|
|
@@ -1965,7 +1968,7 @@ async function writeCodeSampleForComponents(llmprovider, component, destPath, im
|
|
|
1965
1968
|
}
|
|
1966
1969
|
var createComponentsDir = async (dirPath, component) => {
|
|
1967
1970
|
const componentPath = dirPath + `/${component}`;
|
|
1968
|
-
await
|
|
1971
|
+
await fsExtra.ensureDir(componentPath);
|
|
1969
1972
|
};
|
|
1970
1973
|
var writeIndexFile = async ({
|
|
1971
1974
|
dirPath,
|
|
@@ -1976,13 +1979,13 @@ var writeIndexFile = async ({
|
|
|
1976
1979
|
const indexPath = dirPath + "/index.ts";
|
|
1977
1980
|
const destPath = path3.join(indexPath);
|
|
1978
1981
|
try {
|
|
1979
|
-
await
|
|
1982
|
+
await fs5.writeFile(destPath, "");
|
|
1980
1983
|
const filteredExports = [
|
|
1981
1984
|
addWorkflow ? `workflows: { weatherWorkflow },` : "",
|
|
1982
1985
|
addAgent ? `agents: { weatherAgent },` : ""
|
|
1983
1986
|
].filter(Boolean);
|
|
1984
1987
|
if (!addExample) {
|
|
1985
|
-
await
|
|
1988
|
+
await fs5.writeFile(
|
|
1986
1989
|
destPath,
|
|
1987
1990
|
`
|
|
1988
1991
|
import { Mastra } from '@mastra/core';
|
|
@@ -1992,7 +1995,7 @@ export const mastra = new Mastra()
|
|
|
1992
1995
|
);
|
|
1993
1996
|
return;
|
|
1994
1997
|
}
|
|
1995
|
-
await
|
|
1998
|
+
await fs5.writeFile(
|
|
1996
1999
|
destPath,
|
|
1997
2000
|
`
|
|
1998
2001
|
import { Mastra } from '@mastra/core/mastra';
|
|
@@ -2034,6 +2037,9 @@ var getAPIKey = async (provider) => {
|
|
|
2034
2037
|
case "cerebras":
|
|
2035
2038
|
key = "CEREBRAS_API_KEY";
|
|
2036
2039
|
return key;
|
|
2040
|
+
case "mistral":
|
|
2041
|
+
key = "MISTRAL_API_KEY";
|
|
2042
|
+
return key;
|
|
2037
2043
|
default:
|
|
2038
2044
|
return key;
|
|
2039
2045
|
}
|
|
@@ -2051,10 +2057,10 @@ var createMastraDir = async (directory) => {
|
|
|
2051
2057
|
let dir = directory.trim().split("/").filter((item) => item !== "");
|
|
2052
2058
|
const dirPath = path3.join(process.cwd(), ...dir, "mastra");
|
|
2053
2059
|
try {
|
|
2054
|
-
await
|
|
2060
|
+
await fs5.access(dirPath);
|
|
2055
2061
|
return { ok: false };
|
|
2056
2062
|
} catch {
|
|
2057
|
-
await
|
|
2063
|
+
await fsExtra.ensureDir(dirPath);
|
|
2058
2064
|
return { ok: true, dirPath };
|
|
2059
2065
|
}
|
|
2060
2066
|
};
|
|
@@ -2082,7 +2088,8 @@ var interactivePrompt = async () => {
|
|
|
2082
2088
|
{ value: "anthropic", label: "Anthropic" },
|
|
2083
2089
|
{ value: "groq", label: "Groq" },
|
|
2084
2090
|
{ value: "google", label: "Google" },
|
|
2085
|
-
{ value: "cerebras", label: "Cerebras" }
|
|
2091
|
+
{ value: "cerebras", label: "Cerebras" },
|
|
2092
|
+
{ value: "mistral", label: "Mistral" }
|
|
2086
2093
|
]
|
|
2087
2094
|
}),
|
|
2088
2095
|
llmApiKey: async ({ results: { llmProvider } }) => {
|
|
@@ -2240,7 +2247,7 @@ var init = async ({
|
|
|
2240
2247
|
const aiSdkPackageVersion = getAISDKPackageVersion(llmProvider);
|
|
2241
2248
|
const depsService = new DepsService();
|
|
2242
2249
|
const pm = depsService.packageManager;
|
|
2243
|
-
const installCommand =
|
|
2250
|
+
const installCommand = getPackageManagerAddCommand(pm);
|
|
2244
2251
|
await exec3(`${pm} ${installCommand} ${aiSdkPackage}@${aiSdkPackageVersion}`);
|
|
2245
2252
|
if (configureEditorWithDocsMCP) {
|
|
2246
2253
|
await installMastraDocsMCPServer({
|
|
@@ -2295,9 +2302,9 @@ var execWithTimeout = async (command, timeoutMs) => {
|
|
|
2295
2302
|
}
|
|
2296
2303
|
};
|
|
2297
2304
|
async function installMastraDependency(pm, dependency, versionTag, isDev, timeout) {
|
|
2298
|
-
let installCommand =
|
|
2305
|
+
let installCommand = getPackageManagerAddCommand(pm);
|
|
2299
2306
|
if (isDev) {
|
|
2300
|
-
installCommand = `${installCommand}
|
|
2307
|
+
installCommand = `${installCommand} -D`;
|
|
2301
2308
|
}
|
|
2302
2309
|
try {
|
|
2303
2310
|
await execWithTimeout(`${pm} ${installCommand} ${dependency}${versionTag}`, timeout);
|
|
@@ -2335,7 +2342,7 @@ var createMastraProject = async ({
|
|
|
2335
2342
|
try {
|
|
2336
2343
|
s2.start("Creating project");
|
|
2337
2344
|
try {
|
|
2338
|
-
await
|
|
2345
|
+
await fs5.mkdir(projectName);
|
|
2339
2346
|
} catch (error) {
|
|
2340
2347
|
if (error instanceof Error && "code" in error && error.code === "EEXIST") {
|
|
2341
2348
|
s2.stop(`A directory named "${projectName}" already exists. Please choose a different name.`);
|
|
@@ -2347,7 +2354,7 @@ var createMastraProject = async ({
|
|
|
2347
2354
|
}
|
|
2348
2355
|
process.chdir(projectName);
|
|
2349
2356
|
const pm = getPackageManager();
|
|
2350
|
-
const installCommand =
|
|
2357
|
+
const installCommand = getPackageManagerAddCommand(pm);
|
|
2351
2358
|
s2.message("Initializing project structure");
|
|
2352
2359
|
try {
|
|
2353
2360
|
await exec4(`npm init -y`);
|
|
@@ -2425,7 +2432,7 @@ var createMastraProject = async ({
|
|
|
2425
2432
|
}
|
|
2426
2433
|
s2.stop(".gitignore added");
|
|
2427
2434
|
Se("Project created successfully");
|
|
2428
|
-
console.
|
|
2435
|
+
console.info("");
|
|
2429
2436
|
return { projectName };
|
|
2430
2437
|
} catch (error) {
|
|
2431
2438
|
s2.stop();
|
|
@@ -2635,13 +2642,13 @@ async function getPackageVersion() {
|
|
|
2635
2642
|
const __filename = fileURLToPath(import.meta.url);
|
|
2636
2643
|
const __dirname = dirname(__filename);
|
|
2637
2644
|
const pkgJsonPath = path3.join(__dirname, "..", "package.json");
|
|
2638
|
-
const content = await fsExtra.readJSON(pkgJsonPath);
|
|
2645
|
+
const content = await fsExtra$1.readJSON(pkgJsonPath);
|
|
2639
2646
|
return content.version;
|
|
2640
2647
|
}
|
|
2641
2648
|
async function getCreateVersionTag() {
|
|
2642
2649
|
try {
|
|
2643
2650
|
const pkgPath = fileURLToPath(import.meta.resolve("create-mastra/package.json"));
|
|
2644
|
-
const json = await fsExtra.readJSON(pkgPath);
|
|
2651
|
+
const json = await fsExtra$1.readJSON(pkgPath);
|
|
2645
2652
|
const { stdout } = await execa("npm", ["dist-tag", "create-mastra"]);
|
|
2646
2653
|
const tagLine = stdout.split("\n").find((distLine) => distLine.endsWith(`: ${json.version}`));
|
|
2647
2654
|
const tag = tagLine ? tagLine.split(":")[0].trim() : "latest";
|
|
@@ -2665,7 +2672,7 @@ program.version(`${version}`, "-v, --version").description(`create-mastra ${vers
|
|
|
2665
2672
|
analytics.trackCommand({
|
|
2666
2673
|
command: "version"
|
|
2667
2674
|
});
|
|
2668
|
-
console.
|
|
2675
|
+
console.info(`create-mastra ${version}`);
|
|
2669
2676
|
} catch {
|
|
2670
2677
|
}
|
|
2671
2678
|
});
|