create-mastra 0.0.0-feat-improve-processors-20251205191721 → 0.0.0-feat-mcp-embedded-docs-tools-clean-20260102135536

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # create-mastra
2
2
 
3
- ## 0.0.0-feat-improve-processors-20251205191721
3
+ ## 0.0.0-feat-mcp-embedded-docs-tools-clean-20260102135536
4
4
 
5
5
  ### Major Changes
6
6
 
@@ -10,8 +10,22 @@
10
10
 
11
11
  - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
12
12
 
13
+ ### Minor Changes
14
+
15
+ - Add Antigravity IDE support to create-mastra CLI. Users can now select Antigravity during project initialization and automatically configure the global Mastra MCP server for the IDE, reducing manual setup and enabling immediate use of Mastra agents. ([#11374](https://github.com/mastra-ai/mastra/pull/11374))
16
+
13
17
  ### Patch Changes
14
18
 
19
+ - Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
20
+
21
+ ```diff
22
+ + const run = await workflow.createRun({ runId: '123' });
23
+ - const stream = await run.streamVNext({ inputData: { ... } });
24
+ + const stream = await run.stream({ inputData: { ... } });
25
+ ```
26
+
27
+ - Fix select options overflow when list is long by adding maximum height ([#10813](https://github.com/mastra-ai/mastra/pull/10813))
28
+
15
29
  - dependencies updates: ([#10111](https://github.com/mastra-ai/mastra/pull/10111))
16
30
  - Updated dependency [`pino@^10.1.0` ↗︎](https://www.npmjs.com/package/pino/v/10.1.0) (from `^9.7.0`, in `dependencies`)
17
31
 
@@ -20,20 +34,138 @@
20
34
 
21
35
  - Update MainSidebar component to fit required changes in Cloud CTA link ([#9318](https://github.com/mastra-ai/mastra/pull/9318))
22
36
 
37
+ - Fix default value showing on workflow form after user submits ([#10983](https://github.com/mastra-ai/mastra/pull/10983))
38
+
39
+ - Auto resume suspended tools if `autoResumeSuspendedTools: true` ([#11157](https://github.com/mastra-ai/mastra/pull/11157))
40
+
41
+ The flag can be added to `defaultAgentOptions` when creating the agent or to options in `agent.stream` or `agent.generate`
42
+
43
+ ```typescript
44
+ const agent = new Agent({
45
+ //...agent information,
46
+ defaultAgentOptions: {
47
+ autoResumeSuspendedTools: true,
48
+ },
49
+ });
50
+ ```
51
+
23
52
  - Make MainSidebar toggle button sticky to bottom, always visible ([#9682](https://github.com/mastra-ai/mastra/pull/9682))
24
53
 
25
- - fix: detect bun runtime and cleanup on failure ([#10242](https://github.com/mastra-ai/mastra/pull/10242))
54
+ - Detect bun runtime and cleanup on failure ([#10242](https://github.com/mastra-ai/mastra/pull/10242))
55
+
56
+ - Add `Run` instance to client-js. `workflow.createRun` returns the `Run` instance which can be used for the different run methods. ([#11207](https://github.com/mastra-ai/mastra/pull/11207))
57
+ With this change, run methods cannot be called directly on workflow instance anymore
58
+
59
+ ```diff
60
+ - const result = await workflow.stream({ runId: '123', inputData: { ... } });
61
+ + const run = await workflow.createRun({ runId: '123' });
62
+ + const stream = await run.stream({ inputData: { ... } });
63
+ ```
26
64
 
27
65
  - Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
28
66
 
67
+ - Add debugger-like click-through UI to workflow graph ([#11350](https://github.com/mastra-ai/mastra/pull/11350))
68
+
69
+ - Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
70
+
71
+ ```typescript
72
+ await workflow.deleteWorkflowRunById(runId);
73
+ ```
74
+
29
75
  - Fix discriminatedUnion schema information lost when json schema is converted to zod ([#10500](https://github.com/mastra-ai/mastra/pull/10500))
30
76
 
77
+ - Move useScorers down to trace page to trigger it once for all trace spans ([#10985](https://github.com/mastra-ai/mastra/pull/10985))
78
+
79
+ - Update Observability Trace Spans list UI, so a user can expand/collapse span children/descendants and can filter the list by span type or name ([#10378](https://github.com/mastra-ai/mastra/pull/10378))
80
+
81
+ - Fix workflow trigger form overflow ([#10986](https://github.com/mastra-ai/mastra/pull/10986))
82
+
31
83
  - Fix scorer filtering for SpanScoring, add error and info message for user ([#10160](https://github.com/mastra-ai/mastra/pull/10160))
32
84
 
33
85
  - Hide time travel on map steps in Studio ([#10631](https://github.com/mastra-ai/mastra/pull/10631))
34
86
 
35
87
  - Fix double scroll on agent chat container ([#10253](https://github.com/mastra-ai/mastra/pull/10253))
36
88
 
89
+ - fix isTopLevelSpan value definition on SpanScoring to properly recognize lack of span?.parentSpanId value (null or empty string) ([#11083](https://github.com/mastra-ai/mastra/pull/11083))
90
+
91
+ ## 1.0.0-beta.12
92
+
93
+ ### Minor Changes
94
+
95
+ - Add Antigravity IDE support to create-mastra CLI. Users can now select Antigravity during project initialization and automatically configure the global Mastra MCP server for the IDE, reducing manual setup and enabling immediate use of Mastra agents. ([#11374](https://github.com/mastra-ai/mastra/pull/11374))
96
+
97
+ ### Patch Changes
98
+
99
+ - Add debugger-like click-through UI to workflow graph ([#11350](https://github.com/mastra-ai/mastra/pull/11350))
100
+
101
+ ## 1.0.0-beta.11
102
+
103
+ ## 1.0.0-beta.10
104
+
105
+ ### Patch Changes
106
+
107
+ - Auto resume suspended tools if `autoResumeSuspendedTools: true` ([#11157](https://github.com/mastra-ai/mastra/pull/11157))
108
+
109
+ The flag can be added to `defaultAgentOptions` when creating the agent or to options in `agent.stream` or `agent.generate`
110
+
111
+ ```typescript
112
+ const agent = new Agent({
113
+ //...agent information,
114
+ defaultAgentOptions: {
115
+ autoResumeSuspendedTools: true,
116
+ },
117
+ });
118
+ ```
119
+
120
+ - Add `Run` instance to client-js. `workflow.createRun` returns the `Run` instance which can be used for the different run methods. ([#11207](https://github.com/mastra-ai/mastra/pull/11207))
121
+ With this change, run methods cannot be called directly on workflow instance anymore
122
+
123
+ ```diff
124
+ - const result = await workflow.stream({ runId: '123', inputData: { ... } });
125
+ + const run = await workflow.createRun({ runId: '123' });
126
+ + const stream = await run.stream({ inputData: { ... } });
127
+ ```
128
+
129
+ - fix isTopLevelSpan value definition on SpanScoring to properly recognize lack of span?.parentSpanId value (null or empty string) ([#11083](https://github.com/mastra-ai/mastra/pull/11083))
130
+
131
+ ## 1.0.0-beta.9
132
+
133
+ ## 1.0.0-beta.8
134
+
135
+ ### Patch Changes
136
+
137
+ - Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
138
+
139
+ ```typescript
140
+ await workflow.deleteWorkflowRunById(runId);
141
+ ```
142
+
143
+ ## 1.0.0-beta.7
144
+
145
+ ### Patch Changes
146
+
147
+ - Fix default value showing on workflow form after user submits ([#10983](https://github.com/mastra-ai/mastra/pull/10983))
148
+
149
+ - Move useScorers down to trace page to trigger it once for all trace spans ([#10985](https://github.com/mastra-ai/mastra/pull/10985))
150
+
151
+ - Update Observability Trace Spans list UI, so a user can expand/collapse span children/descendants and can filter the list by span type or name ([#10378](https://github.com/mastra-ai/mastra/pull/10378))
152
+
153
+ - Fix workflow trigger form overflow ([#10986](https://github.com/mastra-ai/mastra/pull/10986))
154
+
155
+ ## 1.0.0-beta.6
156
+
157
+ ### Patch Changes
158
+
159
+ - Fix select options overflow when list is long by adding maximum height ([#10813](https://github.com/mastra-ai/mastra/pull/10813))
160
+
161
+ ## 1.0.0-beta.5
162
+
163
+ ### Patch Changes
164
+
165
+ - Fix discriminatedUnion schema information lost when json schema is converted to zod ([#10500](https://github.com/mastra-ai/mastra/pull/10500))
166
+
167
+ - Hide time travel on map steps in Studio ([#10631](https://github.com/mastra-ai/mastra/pull/10631))
168
+
37
169
  ## 1.0.0-beta.4
38
170
 
39
171
  ### Patch Changes
package/dist/index.js CHANGED
@@ -18,9 +18,9 @@ import tty from 'node:tty';
18
18
  import fsExtra, { readJSON, ensureFile, writeJSON } from 'fs-extra/esm';
19
19
  import prettier from 'prettier';
20
20
  import { execa } from 'execa';
21
+ import fsExtra$1 from 'fs-extra';
21
22
  import pino from 'pino';
22
23
  import pretty from 'pino-pretty';
23
- import fsExtra$1 from 'fs-extra';
24
24
 
25
25
  var __filename = fileURLToPath(import.meta.url);
26
26
  var __dirname = path3.dirname(__filename);
@@ -105,6 +105,10 @@ var PosthogAnalytics = class {
105
105
  machine_id: os.hostname()
106
106
  };
107
107
  }
108
+ getDurationMs(startTime) {
109
+ const [seconds, nanoseconds] = process.hrtime(startTime);
110
+ return seconds * 1e3 + nanoseconds / 1e6;
111
+ }
108
112
  captureSessionStart() {
109
113
  if (!this.client) {
110
114
  return;
@@ -173,8 +177,7 @@ var PosthogAnalytics = class {
173
177
  const startTime = process.hrtime();
174
178
  try {
175
179
  const result = await execution();
176
- const [seconds, nanoseconds] = process.hrtime(startTime);
177
- const durationMs = seconds * 1e3 + nanoseconds / 1e6;
180
+ const durationMs = this.getDurationMs(startTime);
178
181
  this.trackCommand({
179
182
  command,
180
183
  args,
@@ -184,8 +187,7 @@ var PosthogAnalytics = class {
184
187
  });
185
188
  return result;
186
189
  } catch (error) {
187
- const [seconds, nanoseconds] = process.hrtime(startTime);
188
- const durationMs = seconds * 1e3 + nanoseconds / 1e6;
190
+ const durationMs = this.getDurationMs(startTime);
189
191
  this.trackCommand({
190
192
  command,
191
193
  args,
@@ -1144,10 +1146,15 @@ var MastraLogger = class {
1144
1146
  }
1145
1147
  };
1146
1148
 
1147
- var PinoLogger = class extends MastraLogger {
1149
+ var PinoLogger = class _PinoLogger extends MastraLogger {
1148
1150
  logger;
1149
1151
  constructor(options = {}) {
1150
1152
  super(options);
1153
+ const internalOptions = options;
1154
+ if (internalOptions._logger) {
1155
+ this.logger = internalOptions._logger;
1156
+ return;
1157
+ }
1151
1158
  let prettyStream = void 0;
1152
1159
  if (!options.overrideDefaultTransports) {
1153
1160
  prettyStream = pretty({
@@ -1164,7 +1171,8 @@ var PinoLogger = class extends MastraLogger {
1164
1171
  {
1165
1172
  name: options.name || "app",
1166
1173
  level: options.level || LogLevel.INFO,
1167
- formatters: options.formatters
1174
+ formatters: options.formatters,
1175
+ redact: options.redact
1168
1176
  },
1169
1177
  options.overrideDefaultTransports ? options?.transports?.default : transportsAry.length === 0 ? prettyStream : pino.multistream([
1170
1178
  ...transportsAry.map(([, transport]) => ({
@@ -1178,6 +1186,38 @@ var PinoLogger = class extends MastraLogger {
1178
1186
  ])
1179
1187
  );
1180
1188
  }
1189
+ /**
1190
+ * Creates a child logger with additional bound context.
1191
+ * All logs from the child logger will include the bound context.
1192
+ *
1193
+ * @param bindings - Key-value pairs to include in all logs from this child logger
1194
+ * @returns A new PinoLogger instance with the bound context
1195
+ *
1196
+ * @example
1197
+ * ```typescript
1198
+ * const baseLogger = new PinoLogger({ name: 'MyApp' });
1199
+ *
1200
+ * // Create module-scoped logger
1201
+ * const serviceLogger = baseLogger.child({ module: 'UserService' });
1202
+ * serviceLogger.info('User created', { userId: '123' });
1203
+ * // Output includes: { module: 'UserService', userId: '123', msg: 'User created' }
1204
+ *
1205
+ * // Create request-scoped logger
1206
+ * const requestLogger = baseLogger.child({ requestId: req.id });
1207
+ * requestLogger.error('Request failed', { err: error });
1208
+ * // Output includes: { requestId: 'abc', msg: 'Request failed', err: {...} }
1209
+ * ```
1210
+ */
1211
+ child(bindings) {
1212
+ const childPino = this.logger.child(bindings);
1213
+ const childOptions = {
1214
+ name: this.name,
1215
+ level: this.level,
1216
+ transports: Object.fromEntries(this.transports),
1217
+ _logger: childPino
1218
+ };
1219
+ return new _PinoLogger(childOptions);
1220
+ }
1181
1221
  debug(message, args = {}) {
1182
1222
  this.logger.debug(args, message);
1183
1223
  }
@@ -1193,7 +1233,7 @@ var PinoLogger = class extends MastraLogger {
1193
1233
  };
1194
1234
 
1195
1235
  var package_default = {
1196
- version: "1.0.0-beta.4"};
1236
+ version: "1.0.0-beta.12"};
1197
1237
  function getPackageManagerAddCommand(pm) {
1198
1238
  switch (pm) {
1199
1239
  case "npm":
@@ -1453,6 +1493,7 @@ async function writeMergedConfig(configPath, editor, versionTag) {
1453
1493
  });
1454
1494
  }
1455
1495
  var windsurfGlobalMCPConfigPath = path3.join(os.homedir(), ".codeium", "windsurf", "mcp_config.json");
1496
+ var antigravityGlobalMCPConfigPath = path3.join(os.homedir(), ".gemini", "antigravity", "mcp_config.json");
1456
1497
  var cursorGlobalMCPConfigPath = path3.join(os.homedir(), ".cursor", "mcp.json");
1457
1498
  path3.join(process.cwd(), ".vscode", "mcp.json");
1458
1499
  var vscodeGlobalMCPConfigPath = path3.join(
@@ -1484,11 +1525,20 @@ async function installMastraDocsMCPServer({
1484
1525
  }
1485
1526
  await writeMergedConfig(windsurfGlobalMCPConfigPath, editor, versionTag);
1486
1527
  }
1528
+ if (editor === `antigravity`) {
1529
+ const alreadyInstalled = await globalMCPIsAlreadyInstalled(editor, versionTag);
1530
+ if (alreadyInstalled) {
1531
+ return;
1532
+ }
1533
+ await writeMergedConfig(antigravityGlobalMCPConfigPath, editor, versionTag);
1534
+ }
1487
1535
  }
1488
1536
  async function globalMCPIsAlreadyInstalled(editor, versionTag) {
1489
1537
  let configPath = ``;
1490
1538
  if (editor === "windsurf") {
1491
1539
  configPath = windsurfGlobalMCPConfigPath;
1540
+ } else if (editor === "antigravity") {
1541
+ configPath = antigravityGlobalMCPConfigPath;
1492
1542
  } else if (editor === "cursor-global") {
1493
1543
  configPath = cursorGlobalMCPConfigPath;
1494
1544
  } else if (editor === "vscode") {
@@ -1552,7 +1602,6 @@ async function writeAgentSample(llmProvider, destPath, addExampleTool, addScorer
1552
1602
  const content = `
1553
1603
  import { Agent } from '@mastra/core/agent';
1554
1604
  import { Memory } from '@mastra/memory';
1555
- import { LibSQLStore } from '@mastra/libsql';
1556
1605
  ${addExampleTool ? `import { weatherTool } from '../tools/weather-tool';` : ""}
1557
1606
  ${addScorers ? `import { scorers } from '../scorers/weather-scorer';` : ""}
1558
1607
 
@@ -1585,12 +1634,7 @@ export const weatherAgent = new Agent({
1585
1634
  },
1586
1635
  },
1587
1636
  },` : ""}
1588
- memory: new Memory({
1589
- storage: new LibSQLStore({
1590
- id: "memory-storage",
1591
- url: "file:../mastra.db", // path is relative to the .mastra/output directory
1592
- })
1593
- })
1637
+ memory: new Memory()
1594
1638
  });
1595
1639
  `;
1596
1640
  const formattedContent = await prettier.format(content, {
@@ -1960,7 +2004,7 @@ export const mastra = new Mastra({
1960
2004
  observability: new Observability({
1961
2005
  // Enables DefaultExporter and CloudExporter for tracing
1962
2006
  default: { enabled: true },
1963
- }),
2007
+ }),
1964
2008
  });
1965
2009
  `
1966
2010
  );
@@ -2082,6 +2126,10 @@ var interactivePrompt = async (args = {}) => {
2082
2126
  {
2083
2127
  value: "vscode",
2084
2128
  label: "VSCode"
2129
+ },
2130
+ {
2131
+ value: "antigravity",
2132
+ label: "Antigravity"
2085
2133
  }
2086
2134
  ]
2087
2135
  });
@@ -2118,9 +2166,23 @@ This means the Mastra docs MCP server will be available in all your Windsurf pro
2118
2166
  return void 0;
2119
2167
  }
2120
2168
  }
2169
+ if (editor === `antigravity`) {
2170
+ const confirm3 = await ve({
2171
+ message: `Antigravity only supports a global MCP config (at ${antigravityGlobalMCPConfigPath}). Is it ok to add/update that global config?
2172
+ This will make the Mastra docs MCP server available in all Antigravity projects.`,
2173
+ options: [
2174
+ { value: "yes", label: "Yes, I understand" },
2175
+ { value: "skip", label: "No, skip for now" }
2176
+ ]
2177
+ });
2178
+ if (confirm3 !== `yes`) {
2179
+ return void 0;
2180
+ }
2181
+ }
2121
2182
  return editor;
2122
2183
  },
2123
2184
  initGit: async () => {
2185
+ if (skip?.gitInit) return false;
2124
2186
  return ye({
2125
2187
  message: "Initialize a new git repository?",
2126
2188
  initialValue: true
@@ -2981,7 +3043,7 @@ program.version(`${version}`, "-v, --version").description(`create-mastra ${vers
2981
3043
  program.name("create-mastra").description("Create a new Mastra project").argument("[project-name]", "Directory name of the project").option(
2982
3044
  "-p, --project-name <string>",
2983
3045
  "Project name that will be used in package.json and as the project directory name."
2984
- ).option("--default", "Quick start with defaults (src, OpenAI, examples)").option("-c, --components <components>", "Comma-separated list of components (agents, tools, workflows, scorers)").option("-l, --llm <model-provider>", "Default model provider (openai, anthropic, groq, google, or cerebras)").option("-k, --llm-api-key <api-key>", "API key for the model provider").option("-e, --example", "Include example code").option("-n, --no-example", "Do not include example code").option("-t, --timeout [timeout]", "Configurable timeout for package installation, defaults to 60000 ms").option("-d, --dir <directory>", "Target directory for Mastra source code (default: src/)").option("-m, --mcp <mcp>", "MCP Server for code editor (cursor, cursor-global, windsurf, vscode)").option(
3046
+ ).option("--default", "Quick start with defaults (src, OpenAI, examples)").option("-c, --components <components>", "Comma-separated list of components (agents, tools, workflows, scorers)").option("-l, --llm <model-provider>", "Default model provider (openai, anthropic, groq, google, or cerebras)").option("-k, --llm-api-key <api-key>", "API key for the model provider").option("-e, --example", "Include example code").option("-n, --no-example", "Do not include example code").option("-t, --timeout [timeout]", "Configurable timeout for package installation, defaults to 60000 ms").option("-d, --dir <directory>", "Target directory for Mastra source code (default: src/)").option("-m, --mcp <mcp>", "MCP Server for code editor (cursor, cursor-global, windsurf, vscode, antigravity)").option(
2985
3047
  "--template [template-name]",
2986
3048
  "Create project from a template (use template name, public GitHub URL, or leave blank to select from list)"
2987
3049
  ).action(async (projectNameArg, args) => {