@mastra/core 0.2.0-alpha.93 → 0.2.0-alpha.95

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 (137) hide show
  1. package/README.md +11 -8
  2. package/dist/action/index.d.ts +1 -3
  3. package/dist/agent/index.d.ts +2 -4
  4. package/dist/agent/index.js +3 -5
  5. package/dist/{chunk-SDKEPBBH.js → chunk-4ZUSEHLH.js} +109 -12
  6. package/dist/{chunk-F7ILHRX5.js → chunk-5DZIXJRV.js} +1 -1
  7. package/dist/chunk-AE3H2QEY.js +1 -0
  8. package/dist/{chunk-IE37CBXB.js → chunk-G4LP2IJU.js} +1 -3
  9. package/dist/{chunk-JWVCENG2.js → chunk-JY322VLW.js} +445 -32
  10. package/dist/{chunk-ECUVL2G5.js → chunk-K3N7KJHH.js} +1 -1
  11. package/dist/chunk-MBOUQZQT.js +16 -0
  12. package/dist/{chunk-GGYXCZUW.js → chunk-N44BCOWP.js} +4 -12
  13. package/dist/{chunk-WBPDZBUT.js → chunk-TYIBRZOY.js} +2 -17
  14. package/dist/eval/index.d.ts +1 -3
  15. package/dist/index-CBxGSZZE.d.ts +808 -0
  16. package/dist/index.d.ts +6 -12
  17. package/dist/index.js +12 -26
  18. package/dist/integration/index.d.ts +5 -7
  19. package/dist/llm/index.d.ts +4 -6
  20. package/dist/llm/index.js +1 -6
  21. package/dist/mastra/index.d.ts +2 -5
  22. package/dist/mastra/index.js +2 -6
  23. package/dist/memory/index.d.ts +1 -3
  24. package/dist/memory/index.js +1 -1
  25. package/dist/relevance/index.d.ts +2 -19
  26. package/dist/relevance/index.js +4 -6
  27. package/dist/storage/index.d.ts +2 -4
  28. package/dist/storage/index.js +2 -3
  29. package/dist/telemetry/index.js +1 -2
  30. package/dist/tools/index.d.ts +2 -4
  31. package/dist/tts/index.js +2 -3
  32. package/dist/vector/index.d.ts +0 -7
  33. package/dist/vector/index.js +1 -2
  34. package/dist/vector/libsql/index.d.ts +0 -1
  35. package/dist/vector/libsql/index.js +2 -3
  36. package/dist/{workflow-CSwxE-4q.d.ts → workflow-BA2Pnq90.d.ts} +1 -1
  37. package/dist/workflows/index.d.ts +3 -5
  38. package/package.json +20 -56
  39. package/dist/chunk-5DYJZVB7.js +0 -66
  40. package/dist/chunk-6ZVFVYLE.js +0 -101
  41. package/dist/chunk-AD6IIOCI.js +0 -11
  42. package/dist/chunk-BOS3IA23.js +0 -76
  43. package/dist/chunk-CQU72KBX.js +0 -54
  44. package/dist/chunk-HH5JIATB.js +0 -36
  45. package/dist/chunk-IEFQZ3IL.js +0 -78
  46. package/dist/chunk-IJ55HGH4.js +0 -24
  47. package/dist/chunk-NNNAWW2H.js +0 -66
  48. package/dist/chunk-NYBGZL6Z.js +0 -30
  49. package/dist/chunk-QX2CHXA7.js +0 -408
  50. package/dist/chunk-RAR7V3E3.js +0 -66
  51. package/dist/chunk-RI3ECMVF.js +0 -636
  52. package/dist/chunk-VPSYTVWP.js +0 -66
  53. package/dist/chunk-ZA7MIXNW.js +0 -66
  54. package/dist/embeddings/index.d.ts +0 -8
  55. package/dist/embeddings/index.js +0 -2
  56. package/dist/embeddings/model/providers/bedrock.d.ts +0 -42
  57. package/dist/embeddings/model/providers/bedrock.js +0 -3
  58. package/dist/embeddings/model/providers/bedrock.test.d.ts +0 -2
  59. package/dist/embeddings/model/providers/bedrock.test.js +0 -37
  60. package/dist/embeddings/model/providers/cohere.d.ts +0 -34
  61. package/dist/embeddings/model/providers/cohere.js +0 -3
  62. package/dist/embeddings/model/providers/cohere.test.d.ts +0 -2
  63. package/dist/embeddings/model/providers/cohere.test.js +0 -37
  64. package/dist/embeddings/model/providers/embedder.d.ts +0 -28
  65. package/dist/embeddings/model/providers/embedder.js +0 -2
  66. package/dist/embeddings/model/providers/google.d.ts +0 -34
  67. package/dist/embeddings/model/providers/google.js +0 -3
  68. package/dist/embeddings/model/providers/google.test.d.ts +0 -2
  69. package/dist/embeddings/model/providers/google.test.js +0 -37
  70. package/dist/embeddings/model/providers/mistral.d.ts +0 -34
  71. package/dist/embeddings/model/providers/mistral.js +0 -3
  72. package/dist/embeddings/model/providers/mistral.test.d.ts +0 -2
  73. package/dist/embeddings/model/providers/mistral.test.js +0 -37
  74. package/dist/embeddings/model/providers/mock.d.ts +0 -20
  75. package/dist/embeddings/model/providers/mock.js +0 -3
  76. package/dist/embeddings/model/providers/mock.test.d.ts +0 -2
  77. package/dist/embeddings/model/providers/mock.test.js +0 -29
  78. package/dist/embeddings/model/providers/openai.d.ts +0 -34
  79. package/dist/embeddings/model/providers/openai.js +0 -3
  80. package/dist/embeddings/model/providers/openai.test.d.ts +0 -2
  81. package/dist/embeddings/model/providers/openai.test.js +0 -37
  82. package/dist/embeddings/model/providers/voyage.d.ts +0 -34
  83. package/dist/embeddings/model/providers/voyage.js +0 -3
  84. package/dist/embeddings/model/providers/voyage.test.d.ts +0 -2
  85. package/dist/embeddings/model/providers/voyage.test.js +0 -37
  86. package/dist/index-B48181D5.d.ts +0 -1070
  87. package/dist/llm/model/index.d.ts +0 -45
  88. package/dist/llm/model/index.js +0 -5
  89. package/dist/llm/model/providers/anthropic-vertex.d.ts +0 -31
  90. package/dist/llm/model/providers/anthropic-vertex.js +0 -23
  91. package/dist/llm/model/providers/anthropic.d.ts +0 -29
  92. package/dist/llm/model/providers/anthropic.js +0 -21
  93. package/dist/llm/model/providers/azure.d.ts +0 -48
  94. package/dist/llm/model/providers/azure.js +0 -50
  95. package/dist/llm/model/providers/baseten.d.ts +0 -33
  96. package/dist/llm/model/providers/baseten.js +0 -29
  97. package/dist/llm/model/providers/bedrock.d.ts +0 -32
  98. package/dist/llm/model/providers/bedrock.js +0 -24
  99. package/dist/llm/model/providers/cerebras.d.ts +0 -30
  100. package/dist/llm/model/providers/cerebras.js +0 -22
  101. package/dist/llm/model/providers/cohere.d.ts +0 -30
  102. package/dist/llm/model/providers/cohere.js +0 -22
  103. package/dist/llm/model/providers/deepinfra.d.ts +0 -30
  104. package/dist/llm/model/providers/deepinfra.js +0 -22
  105. package/dist/llm/model/providers/deepseek.d.ts +0 -30
  106. package/dist/llm/model/providers/deepseek.js +0 -22
  107. package/dist/llm/model/providers/fireworks.d.ts +0 -35
  108. package/dist/llm/model/providers/fireworks.js +0 -40
  109. package/dist/llm/model/providers/google-vertex.d.ts +0 -48
  110. package/dist/llm/model/providers/google-vertex.js +0 -22
  111. package/dist/llm/model/providers/google.d.ts +0 -54
  112. package/dist/llm/model/providers/google.js +0 -23
  113. package/dist/llm/model/providers/grok.d.ts +0 -32
  114. package/dist/llm/model/providers/grok.js +0 -22
  115. package/dist/llm/model/providers/groq.d.ts +0 -37
  116. package/dist/llm/model/providers/groq.js +0 -42
  117. package/dist/llm/model/providers/lmstudio.d.ts +0 -29
  118. package/dist/llm/model/providers/lmstudio.js +0 -22
  119. package/dist/llm/model/providers/mistral.d.ts +0 -30
  120. package/dist/llm/model/providers/mistral.js +0 -22
  121. package/dist/llm/model/providers/mock.d.ts +0 -30
  122. package/dist/llm/model/providers/mock.js +0 -83
  123. package/dist/llm/model/providers/ollama.d.ts +0 -31
  124. package/dist/llm/model/providers/ollama.js +0 -23
  125. package/dist/llm/model/providers/openai-compat.d.ts +0 -39
  126. package/dist/llm/model/providers/openai-compat.js +0 -6
  127. package/dist/llm/model/providers/openai.d.ts +0 -34
  128. package/dist/llm/model/providers/openai.js +0 -6
  129. package/dist/llm/model/providers/openai.test.d.ts +0 -2
  130. package/dist/llm/model/providers/openai.test.js +0 -220
  131. package/dist/llm/model/providers/perplexity.d.ts +0 -30
  132. package/dist/llm/model/providers/perplexity.js +0 -22
  133. package/dist/llm/model/providers/portkey.d.ts +0 -34
  134. package/dist/llm/model/providers/portkey.js +0 -22
  135. package/dist/llm/model/providers/togetherai.d.ts +0 -30
  136. package/dist/llm/model/providers/togetherai.js +0 -22
  137. package/dist/types-M16hSruO.d.ts +0 -40
package/README.md CHANGED
@@ -29,15 +29,13 @@ For comprehensive documentation, visit our [official documentation](https://mast
29
29
  Agents are autonomous AI entities that can understand instructions, use tools, and complete tasks. They encapsulate LLM interactions and can maintain conversation history, use provided tools, and follow specific behavioral guidelines through instructions.
30
30
 
31
31
  ```typescript
32
+ import { openai } from '@ai-sdk/openai';
32
33
  import { Agent } from '@mastra/core/agent';
33
34
 
34
35
  const agent = new Agent({
35
36
  name: 'my-agent',
36
37
  instructions: 'Your task-specific instructions',
37
- model: {
38
- provider: 'openai',
39
- model: 'gpt-4',
40
- },
38
+ model: openai('gpt-4o-mini'),
41
39
  tools: {}, // Optional tools
42
40
  });
43
41
  ```
@@ -49,10 +47,12 @@ const agent = new Agent({
49
47
  The embeddings module provides a unified interface for converting text into vector representations across multiple AI providers. These vectors are essential for semantic search, similarity comparisons, and other NLP tasks.
50
48
 
51
49
  ```typescript
52
- import { embed } from '@mastra/core/embeddings/openai';
50
+ import { openai } from '@ai-sdk/openai';
51
+ import { embed } from 'ai';
53
52
 
54
- const embeddings = await embed('text to embed', {
55
- model: 'text-embedding-3-small',
53
+ const embeddings = await embed({
54
+ model: openai.embedding('text-embedding-3-small'),
55
+ value: 'text to embed',
56
56
  });
57
57
  ```
58
58
 
@@ -89,7 +89,10 @@ const memory = new MastraMemory({
89
89
  });
90
90
  ```
91
91
 
92
- [More memory documentation →](https://mastra.ai/docs/reference/memory/overview)
92
+ **Note:** this is the base `MastraMemory` class. This class in `@mastra/core` is intended to be extended when developing custom agent memory strategies.
93
+ To use a premade memory strategy (recommended), with long and short term memory built in, use `import { Memory } from "@mastra/memory"` instead.
94
+
95
+ [Visit the memory documentation to use Memory in your project →](https://mastra.ai/docs/reference/memory/overview)
93
96
 
94
97
  ### Vector Stores (`/vector`)
95
98
 
@@ -1,5 +1,5 @@
1
1
  import 'zod';
2
- export { I as IAction, aT as IExecutionContext, d as MastraPrimitives } from '../index-B48181D5.js';
2
+ export { I as IAction, ah as IExecutionContext, c as MastraPrimitives } from '../index-CBxGSZZE.js';
3
3
  import '../index-CBZ2mk2H.js';
4
4
  import '../telemetry-oCUM52DG.js';
5
5
  import '../vector/index.js';
@@ -14,5 +14,3 @@ import '@opentelemetry/sdk-node';
14
14
  import '@opentelemetry/sdk-trace-base';
15
15
  import '../metric-D2V4CR8D.js';
16
16
  import 'sift';
17
- import '../embeddings/model/providers/embedder.js';
18
- import '../types-M16hSruO.js';
@@ -1,17 +1,15 @@
1
1
  import 'ai';
2
2
  import 'json-schema';
3
3
  import 'zod';
4
- export { A as Agent } from '../index-B48181D5.js';
4
+ export { A as Agent } from '../index-CBxGSZZE.js';
5
5
  import '../base.js';
6
6
  import '../metric-D2V4CR8D.js';
7
7
  import '../telemetry-oCUM52DG.js';
8
+ import 'sift';
8
9
  import '../index-CBZ2mk2H.js';
9
10
  import 'pino';
10
11
  import 'stream';
11
- import 'sift';
12
- import '../embeddings/model/providers/embedder.js';
13
12
  import '../vector/index.js';
14
- import '../types-M16hSruO.js';
15
13
  import '@opentelemetry/api';
16
14
  import '@opentelemetry/sdk-node';
17
15
  import '@opentelemetry/sdk-trace-base';
@@ -1,9 +1,7 @@
1
- export { Agent } from '../chunk-JWVCENG2.js';
2
- import '../chunk-SDKEPBBH.js';
3
- import '../chunk-RI3ECMVF.js';
4
- import '../chunk-6ZVFVYLE.js';
1
+ export { Agent } from '../chunk-JY322VLW.js';
2
+ import '../chunk-4ZUSEHLH.js';
5
3
  import '../chunk-KNPBNSJ7.js';
4
+ import '../chunk-HBTQNIAX.js';
6
5
  import '../chunk-G4MCO7XF.js';
7
6
  import '../chunk-ICMEXHKD.js';
8
- import '../chunk-HBTQNIAX.js';
9
7
  import '../chunk-AJJZUHB4.js';
@@ -1,6 +1,5 @@
1
- import { hasActiveTelemetry } from './chunk-6ZVFVYLE.js';
2
1
  import { __name, __publicField } from './chunk-AJJZUHB4.js';
3
- import { trace, SpanStatusCode } from '@opentelemetry/api';
2
+ import { trace, context, SpanStatusCode, SpanKind } from '@opentelemetry/api';
4
3
  import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
5
4
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
6
5
  import { Resource } from '@opentelemetry/resources';
@@ -8,6 +7,104 @@ import { NodeSDK } from '@opentelemetry/sdk-node';
8
7
  import { ConsoleSpanExporter, AlwaysOnSampler, AlwaysOffSampler, TraceIdRatioBasedSampler, ParentBasedSampler } from '@opentelemetry/sdk-trace-base';
9
8
  import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
10
9
 
10
+ function hasActiveTelemetry() {
11
+ try {
12
+ return !!trace.getTracer("default-tracer");
13
+ } catch {
14
+ return false;
15
+ }
16
+ }
17
+ __name(hasActiveTelemetry, "hasActiveTelemetry");
18
+
19
+ // src/telemetry/telemetry.decorators.ts
20
+ function withSpan(options) {
21
+ return function(_target, propertyKey, descriptor) {
22
+ if (!descriptor || typeof descriptor === "number") return;
23
+ const originalMethod = descriptor.value;
24
+ const methodName = String(propertyKey);
25
+ descriptor.value = function(...args) {
26
+ if (options?.skipIfNoTelemetry && !hasActiveTelemetry()) {
27
+ return originalMethod.apply(this, args);
28
+ }
29
+ const tracer = trace.getTracer("default-tracer");
30
+ let spanName;
31
+ let spanKind;
32
+ if (typeof options === "string") {
33
+ spanName = options;
34
+ } else if (options) {
35
+ spanName = options.spanName || methodName;
36
+ spanKind = options.spanKind;
37
+ } else {
38
+ spanName = methodName;
39
+ }
40
+ const span = tracer.startSpan(spanName, {
41
+ kind: spanKind
42
+ });
43
+ const ctx = trace.setSpan(context.active(), span);
44
+ args.forEach((arg, index) => {
45
+ try {
46
+ span.setAttribute(`${spanName}.argument.${index}`, JSON.stringify(arg));
47
+ } catch (e) {
48
+ span.setAttribute(`${spanName}.argument.${index}`, "[Not Serializable]");
49
+ }
50
+ });
51
+ let result;
52
+ try {
53
+ result = context.with(ctx, () => originalMethod.apply(this, args));
54
+ if (result instanceof Promise) {
55
+ return result.then((resolvedValue) => {
56
+ try {
57
+ span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));
58
+ } catch (e) {
59
+ span.setAttribute(`${spanName}.result`, "[Not Serializable]");
60
+ }
61
+ return resolvedValue;
62
+ }).finally(() => span.end());
63
+ }
64
+ try {
65
+ span.setAttribute(`${spanName}.result`, JSON.stringify(result));
66
+ } catch (e) {
67
+ span.setAttribute(`${spanName}.result`, "[Not Serializable]");
68
+ }
69
+ return result;
70
+ } catch (error) {
71
+ span.setStatus({
72
+ code: SpanStatusCode.ERROR,
73
+ message: error instanceof Error ? error.message : "Unknown error"
74
+ });
75
+ if (error instanceof Error) {
76
+ span.recordException(error);
77
+ }
78
+ throw error;
79
+ } finally {
80
+ if (!(result instanceof Promise)) {
81
+ span.end();
82
+ }
83
+ }
84
+ };
85
+ return descriptor;
86
+ };
87
+ }
88
+ __name(withSpan, "withSpan");
89
+ function InstrumentClass(options) {
90
+ return function(target) {
91
+ const methods = Object.getOwnPropertyNames(target.prototype);
92
+ methods.forEach((method) => {
93
+ if (options?.excludeMethods?.includes(method) || method === "constructor") return;
94
+ if (options?.methodFilter && !options.methodFilter(method)) return;
95
+ const descriptor = Object.getOwnPropertyDescriptor(target.prototype, method);
96
+ if (descriptor && typeof descriptor.value === "function") {
97
+ Object.defineProperty(target.prototype, method, withSpan({
98
+ spanName: options?.prefix ? `${options.prefix}.${method}` : method,
99
+ skipIfNoTelemetry: true,
100
+ spanKind: options?.spanKind || SpanKind.INTERNAL
101
+ })(target, method, descriptor));
102
+ }
103
+ });
104
+ return target;
105
+ };
106
+ }
107
+ __name(InstrumentClass, "InstrumentClass");
11
108
  var sdkInstance = null;
12
109
  var _Telemetry = class _Telemetry {
13
110
  constructor(config) {
@@ -143,29 +240,29 @@ var _Telemetry = class _Telemetry {
143
240
  * @param context Additional context for the trace
144
241
  * @returns Wrapped method with tracing
145
242
  */
146
- traceMethod(method, context) {
147
- const { skipIfNoTelemetry = true } = context;
243
+ traceMethod(method, context2) {
244
+ const { skipIfNoTelemetry = true } = context2;
148
245
  if (skipIfNoTelemetry && !hasActiveTelemetry()) {
149
246
  return method;
150
247
  }
151
248
  return async (...args) => {
152
- const span = this.tracer.startSpan(context.spanName);
249
+ const span = this.tracer.startSpan(context2.spanName);
153
250
  try {
154
- if (context.attributes) {
155
- span.setAttributes(context.attributes);
251
+ if (context2.attributes) {
252
+ span.setAttributes(context2.attributes);
156
253
  }
157
254
  args.forEach((arg, index) => {
158
255
  try {
159
- span.setAttribute(`${context.spanName}.argument.${index}`, JSON.stringify(arg));
256
+ span.setAttribute(`${context2.spanName}.argument.${index}`, JSON.stringify(arg));
160
257
  } catch (e) {
161
- span.setAttribute(`${context.spanName}.argument.${index}`, "[Not Serializable]");
258
+ span.setAttribute(`${context2.spanName}.argument.${index}`, "[Not Serializable]");
162
259
  }
163
260
  });
164
261
  const result = await method(...args);
165
262
  try {
166
- span.setAttribute(`${context.spanName}.result`, JSON.stringify(result));
263
+ span.setAttribute(`${context2.spanName}.result`, JSON.stringify(result));
167
264
  } catch (e) {
168
- span.setAttribute(`${context.spanName}.result`, "[Not Serializable]");
265
+ span.setAttribute(`${context2.spanName}.result`, "[Not Serializable]");
169
266
  }
170
267
  span.end();
171
268
  return result;
@@ -185,4 +282,4 @@ __name(_Telemetry, "Telemetry");
185
282
  __publicField(_Telemetry, "isInitialized", false);
186
283
  var Telemetry = _Telemetry;
187
284
 
188
- export { Telemetry };
285
+ export { InstrumentClass, Telemetry, hasActiveTelemetry, withSpan };
@@ -1,4 +1,4 @@
1
- import { MastraVector } from './chunk-HH5JIATB.js';
1
+ import { MastraVector } from './chunk-MBOUQZQT.js';
2
2
  import { BaseFilterTranslator } from './chunk-4LJFWC2Q.js';
3
3
  import { __name, __publicField } from './chunk-AJJZUHB4.js';
4
4
  import { createClient } from '@libsql/client';
@@ -0,0 +1 @@
1
+
@@ -46,9 +46,7 @@ For example:
46
46
  new Memory({
47
47
  storage,
48
48
  vector,
49
- embedder: new OpenAIEmbedder({ // <- this is required
50
- model: "text-embedding-3-small",
51
- })
49
+ embedder: openai("text-embedding-3-small") // example
52
50
  });
53
51
  `);
54
52
  }