@mastra/core 0.0.0-commonjs-20250227130920

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/LICENSE +21 -0
  2. package/README.md +180 -0
  3. package/dist/agent/index.cjs +1865 -0
  4. package/dist/agent/index.d.cts +15 -0
  5. package/dist/agent/index.d.ts +15 -0
  6. package/dist/agent/index.js +1 -0
  7. package/dist/base-D90KQ4XI.d.ts +139 -0
  8. package/dist/base-hs9NDAZ2.d.cts +139 -0
  9. package/dist/base-nKCMCNrM.d.ts +920 -0
  10. package/dist/base-nhesrHv3.d.cts +920 -0
  11. package/dist/base.cjs +138 -0
  12. package/dist/base.d.cts +6 -0
  13. package/dist/base.d.ts +6 -0
  14. package/dist/base.js +1 -0
  15. package/dist/bundler/index.cjs +158 -0
  16. package/dist/bundler/index.d.cts +28 -0
  17. package/dist/bundler/index.d.ts +28 -0
  18. package/dist/bundler/index.js +1 -0
  19. package/dist/chunk-33GSTUNK.js +620 -0
  20. package/dist/chunk-4YRYBCOZ.js +10 -0
  21. package/dist/chunk-55NFNRKO.js +10 -0
  22. package/dist/chunk-5XPCMNGW.js +215 -0
  23. package/dist/chunk-B3M27AMP.js +1479 -0
  24. package/dist/chunk-BB4KXGBU.js +83 -0
  25. package/dist/chunk-C6A6W6XS.js +77 -0
  26. package/dist/chunk-HQ55LN2U.js +318 -0
  27. package/dist/chunk-KNVTCZW7.js +416 -0
  28. package/dist/chunk-LH47WVJL.js +61 -0
  29. package/dist/chunk-NGD2HQYW.js +346 -0
  30. package/dist/chunk-NUDAZEOG.js +35 -0
  31. package/dist/chunk-OZ4XVJ6F.js +49 -0
  32. package/dist/chunk-PHMSPCTC.js +145 -0
  33. package/dist/chunk-PNZK456O.js +88 -0
  34. package/dist/chunk-QAAJAHDB.js +37 -0
  35. package/dist/chunk-RG66XEJT.js +8 -0
  36. package/dist/chunk-SIFBBGY6.js +190 -0
  37. package/dist/chunk-SVEAENO7.js +22 -0
  38. package/dist/chunk-SY5244IR.js +1499 -0
  39. package/dist/chunk-W5HVJX45.js +402 -0
  40. package/dist/chunk-WIBGG4X6.js +173 -0
  41. package/dist/chunk-ZDWFBE5L.js +1 -0
  42. package/dist/chunk-ZINPRHAN.js +22 -0
  43. package/dist/deployer/index.cjs +165 -0
  44. package/dist/deployer/index.d.cts +19 -0
  45. package/dist/deployer/index.d.ts +19 -0
  46. package/dist/deployer/index.js +1 -0
  47. package/dist/eval/index.cjs +110 -0
  48. package/dist/eval/index.d.cts +28 -0
  49. package/dist/eval/index.d.ts +28 -0
  50. package/dist/eval/index.js +1 -0
  51. package/dist/filter/index.cjs +192 -0
  52. package/dist/filter/index.d.cts +90 -0
  53. package/dist/filter/index.d.ts +90 -0
  54. package/dist/filter/index.js +1 -0
  55. package/dist/hooks/index.cjs +87 -0
  56. package/dist/hooks/index.d.cts +33 -0
  57. package/dist/hooks/index.d.ts +33 -0
  58. package/dist/hooks/index.js +1 -0
  59. package/dist/index-mKY1XrpK.d.cts +90 -0
  60. package/dist/index-mKY1XrpK.d.ts +90 -0
  61. package/dist/index.cjs +6844 -0
  62. package/dist/index.d.cts +97 -0
  63. package/dist/index.d.ts +97 -0
  64. package/dist/index.js +119 -0
  65. package/dist/integration/index.cjs +113 -0
  66. package/dist/integration/index.d.cts +52 -0
  67. package/dist/integration/index.d.ts +52 -0
  68. package/dist/integration/index.js +1 -0
  69. package/dist/llm/index.cjs +2 -0
  70. package/dist/llm/index.d.cts +15 -0
  71. package/dist/llm/index.d.ts +15 -0
  72. package/dist/llm/index.js +1 -0
  73. package/dist/logger/index.cjs +159 -0
  74. package/dist/logger/index.d.cts +3 -0
  75. package/dist/logger/index.d.ts +3 -0
  76. package/dist/logger/index.js +1 -0
  77. package/dist/mastra/index.cjs +1741 -0
  78. package/dist/mastra/index.d.cts +67 -0
  79. package/dist/mastra/index.d.ts +67 -0
  80. package/dist/mastra/index.js +1 -0
  81. package/dist/memory/index.cjs +1907 -0
  82. package/dist/memory/index.d.cts +15 -0
  83. package/dist/memory/index.d.ts +15 -0
  84. package/dist/memory/index.js +1 -0
  85. package/dist/relevance/index.cjs +1927 -0
  86. package/dist/relevance/index.d.cts +21 -0
  87. package/dist/relevance/index.d.ts +21 -0
  88. package/dist/relevance/index.js +1 -0
  89. package/dist/storage/index.cjs +361 -0
  90. package/dist/storage/index.d.cts +15 -0
  91. package/dist/storage/index.d.ts +15 -0
  92. package/dist/storage/index.js +2 -0
  93. package/dist/storage/libsql/index.cjs +770 -0
  94. package/dist/storage/libsql/index.d.cts +81 -0
  95. package/dist/storage/libsql/index.d.ts +81 -0
  96. package/dist/storage/libsql/index.js +1 -0
  97. package/dist/telemetry/index.cjs +413 -0
  98. package/dist/telemetry/index.d.cts +51 -0
  99. package/dist/telemetry/index.d.ts +51 -0
  100. package/dist/telemetry/index.js +1 -0
  101. package/dist/telemetry/otel-vendor.cjs +52 -0
  102. package/dist/telemetry/otel-vendor.d.cts +7 -0
  103. package/dist/telemetry/otel-vendor.d.ts +7 -0
  104. package/dist/telemetry/otel-vendor.js +7 -0
  105. package/dist/tools/index.cjs +25 -0
  106. package/dist/tools/index.d.cts +29 -0
  107. package/dist/tools/index.d.ts +29 -0
  108. package/dist/tools/index.js +1 -0
  109. package/dist/tts/index.cjs +328 -0
  110. package/dist/tts/index.d.cts +28 -0
  111. package/dist/tts/index.d.ts +28 -0
  112. package/dist/tts/index.js +1 -0
  113. package/dist/types-m9RryK9a.d.cts +14 -0
  114. package/dist/types-m9RryK9a.d.ts +14 -0
  115. package/dist/utils.cjs +179 -0
  116. package/dist/utils.d.cts +26 -0
  117. package/dist/utils.d.ts +26 -0
  118. package/dist/utils.js +1 -0
  119. package/dist/vector/index.cjs +145 -0
  120. package/dist/vector/index.d.cts +30 -0
  121. package/dist/vector/index.d.ts +30 -0
  122. package/dist/vector/index.js +1 -0
  123. package/dist/vector/libsql/index.cjs +951 -0
  124. package/dist/vector/libsql/index.d.cts +29 -0
  125. package/dist/vector/libsql/index.d.ts +29 -0
  126. package/dist/vector/libsql/index.js +1 -0
  127. package/dist/voice/index.cjs +369 -0
  128. package/dist/voice/index.d.cts +67 -0
  129. package/dist/voice/index.d.ts +67 -0
  130. package/dist/voice/index.js +76 -0
  131. package/dist/workflow-DqQ4pON_.d.cts +84 -0
  132. package/dist/workflow-Ng_F_Zaf.d.ts +84 -0
  133. package/dist/workflows/index.cjs +1628 -0
  134. package/dist/workflows/index.d.cts +48 -0
  135. package/dist/workflows/index.d.ts +48 -0
  136. package/dist/workflows/index.js +1 -0
  137. package/package.json +162 -0
@@ -0,0 +1,29 @@
1
+ import { Filter } from '../../filter/index.cjs';
2
+ import { MastraVector, QueryResult, IndexStats } from '../index.cjs';
3
+ import '../../base-hs9NDAZ2.cjs';
4
+ import '@opentelemetry/api';
5
+ import '../../index-mKY1XrpK.cjs';
6
+ import 'stream';
7
+ import 'pino';
8
+ import '@opentelemetry/sdk-trace-base';
9
+
10
+ declare class LibSQLVector extends MastraVector {
11
+ private turso;
12
+ constructor({ connectionUrl, authToken, syncUrl, syncInterval, }: {
13
+ connectionUrl: string;
14
+ authToken?: string;
15
+ syncUrl?: string;
16
+ syncInterval?: number;
17
+ });
18
+ protected rewriteDbUrl(url: string): string;
19
+ transformFilter(filter?: Filter): Filter;
20
+ query(indexName: string, queryVector: number[], topK?: number, filter?: Filter, includeVector?: boolean, minScore?: number): Promise<QueryResult[]>;
21
+ upsert(indexName: string, vectors: number[][], metadata?: Record<string, any>[], ids?: string[]): Promise<string[]>;
22
+ createIndex(indexName: string, dimension: number, _metric?: 'cosine' | 'euclidean' | 'dotproduct'): Promise<void>;
23
+ deleteIndex(indexName: string): Promise<void>;
24
+ listIndexes(): Promise<string[]>;
25
+ describeIndex(indexName: string): Promise<IndexStats>;
26
+ truncateIndex(indexName: string): Promise<void>;
27
+ }
28
+
29
+ export { LibSQLVector as DefaultVectorDB, LibSQLVector };
@@ -0,0 +1,29 @@
1
+ import { Filter } from '../../filter/index.js';
2
+ import { MastraVector, QueryResult, IndexStats } from '../index.js';
3
+ import '../../base-D90KQ4XI.js';
4
+ import '@opentelemetry/api';
5
+ import '../../index-mKY1XrpK.js';
6
+ import 'stream';
7
+ import 'pino';
8
+ import '@opentelemetry/sdk-trace-base';
9
+
10
+ declare class LibSQLVector extends MastraVector {
11
+ private turso;
12
+ constructor({ connectionUrl, authToken, syncUrl, syncInterval, }: {
13
+ connectionUrl: string;
14
+ authToken?: string;
15
+ syncUrl?: string;
16
+ syncInterval?: number;
17
+ });
18
+ protected rewriteDbUrl(url: string): string;
19
+ transformFilter(filter?: Filter): Filter;
20
+ query(indexName: string, queryVector: number[], topK?: number, filter?: Filter, includeVector?: boolean, minScore?: number): Promise<QueryResult[]>;
21
+ upsert(indexName: string, vectors: number[][], metadata?: Record<string, any>[], ids?: string[]): Promise<string[]>;
22
+ createIndex(indexName: string, dimension: number, _metric?: 'cosine' | 'euclidean' | 'dotproduct'): Promise<void>;
23
+ deleteIndex(indexName: string): Promise<void>;
24
+ listIndexes(): Promise<string[]>;
25
+ describeIndex(indexName: string): Promise<IndexStats>;
26
+ truncateIndex(indexName: string): Promise<void>;
27
+ }
28
+
29
+ export { LibSQLVector as DefaultVectorDB, LibSQLVector };
@@ -0,0 +1 @@
1
+ export { LibSQLVector as DefaultVectorDB, LibSQLVector } from '../../chunk-33GSTUNK.js';
@@ -0,0 +1,369 @@
1
+ 'use strict';
2
+
3
+ var stream = require('stream');
4
+ var pino = require('pino');
5
+ var pretty = require('pino-pretty');
6
+ var api = require('@opentelemetry/api');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var pino__default = /*#__PURE__*/_interopDefault(pino);
11
+ var pretty__default = /*#__PURE__*/_interopDefault(pretty);
12
+
13
+ var __create = Object.create;
14
+ var __defProp = Object.defineProperty;
15
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
16
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
17
+ var __typeError = msg => {
18
+ throw TypeError(msg);
19
+ };
20
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value
25
+ }) : obj[key] = value;
26
+ var __name = (target, value) => __defProp(target, "name", {
27
+ value,
28
+ configurable: true
29
+ });
30
+ var __decoratorStart = base => [,,, __create(base?.[__knownSymbol("metadata")] ?? null)];
31
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
32
+ var __expectFn = fn => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
33
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({
34
+ kind: __decoratorStrings[kind],
35
+ name,
36
+ metadata,
37
+ addInitializer: fn => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null))
38
+ });
39
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
40
+ var __runInitializers = (array, flags, self, value) => {
41
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) fns[i].call(self) ;
42
+ return value;
43
+ };
44
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
45
+ var it,
46
+ done,
47
+ ctx,
48
+ k = flags & 7,
49
+ p = false;
50
+ var j = 0;
51
+ var extraInitializers = array[j] || (array[j] = []);
52
+ var desc = k && ((target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(target , name));
53
+ __name(target, name);
54
+ for (var i = decorators.length - 1; i >= 0; i--) {
55
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
56
+ it = (0, decorators[i])(target, ctx), done._ = 1;
57
+ __expectFn(it) && (target = it);
58
+ }
59
+ return __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
60
+ };
61
+ var RegisteredLogger = {
62
+ LLM: "LLM"};
63
+ var LogLevel = {
64
+ INFO: "info"};
65
+ var Logger = class {
66
+ logger;
67
+ transports;
68
+ constructor(options = {}) {
69
+ this.transports = options.transports || {};
70
+ const transportsAry = Object.entries(this.transports);
71
+ this.logger = pino__default.default({
72
+ name: options.name || "app",
73
+ level: options.level || LogLevel.INFO
74
+ }, options.overrideDefaultTransports ? options?.transports?.default : transportsAry.length === 0 ? pretty__default.default({
75
+ colorize: true,
76
+ levelFirst: true,
77
+ ignore: "pid,hostname",
78
+ colorizeObjects: true,
79
+ translateTime: "SYS:standard",
80
+ singleLine: false
81
+ }) : pino__default.default.multistream([...transportsAry.map(([_, transport]) => ({
82
+ stream: transport,
83
+ level: options.level || LogLevel.INFO
84
+ })), {
85
+ stream: pretty__default.default({
86
+ colorize: true,
87
+ levelFirst: true,
88
+ ignore: "pid,hostname",
89
+ colorizeObjects: true,
90
+ translateTime: "SYS:standard",
91
+ singleLine: false
92
+ }),
93
+ level: options.level || LogLevel.INFO
94
+ }]));
95
+ }
96
+ debug(message, args = {}) {
97
+ this.logger.debug(args, message);
98
+ }
99
+ info(message, args = {}) {
100
+ this.logger.info(args, message);
101
+ }
102
+ warn(message, args = {}) {
103
+ this.logger.warn(args, message);
104
+ }
105
+ error(message, args = {}) {
106
+ this.logger.error(args, message);
107
+ }
108
+ // Stream creation for process output handling
109
+ createStream() {
110
+ return new stream.Transform({
111
+ transform: (chunk, _encoding, callback) => {
112
+ const line = chunk.toString().trim();
113
+ if (line) {
114
+ this.info(line);
115
+ }
116
+ callback(null, chunk);
117
+ }
118
+ });
119
+ }
120
+ async getLogs(transportId) {
121
+ if (!transportId || !this.transports[transportId]) {
122
+ return [];
123
+ }
124
+ return this.transports[transportId].getLogs();
125
+ }
126
+ async getLogsByRunId({
127
+ runId,
128
+ transportId
129
+ }) {
130
+ return this.transports[transportId]?.getLogsByRunId({
131
+ runId
132
+ });
133
+ }
134
+ };
135
+ function createLogger(options) {
136
+ return new Logger(options);
137
+ }
138
+
139
+ // src/base.ts
140
+ var MastraBase = class {
141
+ component = RegisteredLogger.LLM;
142
+ logger;
143
+ name;
144
+ telemetry;
145
+ constructor({
146
+ component,
147
+ name
148
+ }) {
149
+ this.component = component || RegisteredLogger.LLM;
150
+ this.name = name;
151
+ this.logger = createLogger({
152
+ name: `${this.component} - ${this.name}`
153
+ });
154
+ }
155
+ /**
156
+ * Set the logger for the agent
157
+ * @param logger
158
+ */
159
+ __setLogger(logger) {
160
+ this.logger = logger;
161
+ this.logger.debug(`Logger updated [component=${this.component}] [name=${this.name}]`);
162
+ }
163
+ /**
164
+ * Set the telemetry for the
165
+ * @param telemetry
166
+ */
167
+ __setTelemetry(telemetry) {
168
+ this.telemetry = telemetry;
169
+ this.logger.debug(`Telemetry updated [component=${this.component}] [tracer=${this.telemetry.tracer}]`);
170
+ }
171
+ /**
172
+ * Get the telemetry on the vector
173
+ * @returns telemetry
174
+ */
175
+ __getTelemetry() {
176
+ return this.telemetry;
177
+ }
178
+ /*
179
+ get experimental_telemetry config
180
+ */
181
+ get experimental_telemetry() {
182
+ return this.telemetry ? {
183
+ // tracer: this.telemetry.tracer,
184
+ tracer: this.telemetry.getBaggageTracer(),
185
+ isEnabled: !!this.telemetry.tracer
186
+ } : void 0;
187
+ }
188
+ };
189
+ function hasActiveTelemetry(tracerName = "default-tracer") {
190
+ try {
191
+ return !!api.trace.getTracer(tracerName);
192
+ } catch {
193
+ return false;
194
+ }
195
+ }
196
+
197
+ // src/telemetry/telemetry.decorators.ts
198
+ function withSpan(options) {
199
+ return function (_target, propertyKey, descriptor) {
200
+ if (!descriptor || typeof descriptor === "number") return;
201
+ const originalMethod = descriptor.value;
202
+ const methodName = String(propertyKey);
203
+ descriptor.value = function (...args) {
204
+ if (options?.skipIfNoTelemetry && !hasActiveTelemetry(options?.tracerName)) {
205
+ return originalMethod.apply(this, args);
206
+ }
207
+ const tracer = api.trace.getTracer(options?.tracerName ?? "default-tracer");
208
+ let spanName;
209
+ let spanKind;
210
+ if (typeof options === "string") {
211
+ spanName = options;
212
+ } else if (options) {
213
+ spanName = options.spanName || methodName;
214
+ spanKind = options.spanKind;
215
+ } else {
216
+ spanName = methodName;
217
+ }
218
+ const span = tracer.startSpan(spanName, {
219
+ kind: spanKind
220
+ });
221
+ let ctx = api.trace.setSpan(api.context.active(), span);
222
+ args.forEach((arg, index) => {
223
+ try {
224
+ span.setAttribute(`${spanName}.argument.${index}`, JSON.stringify(arg));
225
+ } catch {
226
+ span.setAttribute(`${spanName}.argument.${index}`, "[Not Serializable]");
227
+ }
228
+ });
229
+ const currentBaggage = api.propagation.getBaggage(ctx);
230
+ if (currentBaggage?.componentName) {
231
+ span.setAttribute("componentName", currentBaggage?.componentName);
232
+ span.setAttribute("runId", currentBaggage?.runId);
233
+ } else if (this && this.name) {
234
+ span.setAttribute("componentName", this.name);
235
+ span.setAttribute("runId", this.runId);
236
+ ctx = api.propagation.setBaggage(ctx, {
237
+ componentName: this.name,
238
+ runId: this.runId
239
+ });
240
+ }
241
+ let result;
242
+ try {
243
+ result = api.context.with(ctx, () => originalMethod.apply(this, args));
244
+ if (result instanceof Promise) {
245
+ return result.then(resolvedValue => {
246
+ try {
247
+ span.setAttribute(`${spanName}.result`, JSON.stringify(resolvedValue));
248
+ } catch {
249
+ span.setAttribute(`${spanName}.result`, "[Not Serializable]");
250
+ }
251
+ return resolvedValue;
252
+ }).finally(() => span.end());
253
+ }
254
+ try {
255
+ span.setAttribute(`${spanName}.result`, JSON.stringify(result));
256
+ } catch {
257
+ span.setAttribute(`${spanName}.result`, "[Not Serializable]");
258
+ }
259
+ return result;
260
+ } catch (error) {
261
+ span.setStatus({
262
+ code: api.SpanStatusCode.ERROR,
263
+ message: error instanceof Error ? error.message : "Unknown error"
264
+ });
265
+ if (error instanceof Error) {
266
+ span.recordException(error);
267
+ }
268
+ throw error;
269
+ } finally {
270
+ if (!(result instanceof Promise)) {
271
+ span.end();
272
+ }
273
+ }
274
+ };
275
+ return descriptor;
276
+ };
277
+ }
278
+ function InstrumentClass(options) {
279
+ return function (target) {
280
+ const methods = Object.getOwnPropertyNames(target.prototype);
281
+ methods.forEach(method => {
282
+ if (options?.excludeMethods?.includes(method) || method === "constructor") return;
283
+ if (options?.methodFilter && !options.methodFilter(method)) return;
284
+ const descriptor = Object.getOwnPropertyDescriptor(target.prototype, method);
285
+ if (descriptor && typeof descriptor.value === "function") {
286
+ Object.defineProperty(target.prototype, method, withSpan({
287
+ spanName: options?.prefix ? `${options.prefix}.${method}` : method,
288
+ skipIfNoTelemetry: true,
289
+ spanKind: options?.spanKind || api.SpanKind.INTERNAL,
290
+ tracerName: options?.tracerName
291
+ })(target, method, descriptor));
292
+ }
293
+ });
294
+ return target;
295
+ };
296
+ }
297
+
298
+ // src/voice/voice.ts
299
+ var _MastraVoice_decorators, _init, _a;
300
+ _MastraVoice_decorators = [InstrumentClass({
301
+ prefix: "voice",
302
+ excludeMethods: ["__setTools", "__setLogger", "__setTelemetry", "#log"]
303
+ })];
304
+ exports.MastraVoice = class MastraVoice extends (_a = MastraBase) {
305
+ listeningModel;
306
+ speechModel;
307
+ speaker;
308
+ constructor({
309
+ listeningModel,
310
+ speechModel,
311
+ speaker
312
+ } = {}) {
313
+ super({
314
+ component: "VOICE"
315
+ });
316
+ this.listeningModel = listeningModel;
317
+ this.speechModel = speechModel;
318
+ this.speaker = speaker;
319
+ }
320
+ traced(method, methodName) {
321
+ return this.telemetry?.traceMethod(method, {
322
+ spanName: `voice.${methodName}`,
323
+ attributes: {
324
+ "voice.type": this.speechModel?.name || this.listeningModel?.name || "unknown"
325
+ }
326
+ }) ?? method;
327
+ }
328
+ };
329
+ exports.MastraVoice = /*@__PURE__*/(_ => {
330
+ _init = __decoratorStart(_a);
331
+ exports.MastraVoice = __decorateElement(_init, 0, "MastraVoice", _MastraVoice_decorators, exports.MastraVoice);
332
+ __runInitializers(_init, 1, exports.MastraVoice);
333
+
334
+ // src/voice/composite-voice.ts
335
+ return exports.MastraVoice;
336
+ })();
337
+ // src/voice/composite-voice.ts
338
+ var CompositeVoice = class extends exports.MastraVoice {
339
+ speakProvider;
340
+ listenProvider;
341
+ constructor({
342
+ speakProvider,
343
+ listenProvider
344
+ }) {
345
+ super();
346
+ this.speakProvider = speakProvider;
347
+ this.listenProvider = listenProvider;
348
+ }
349
+ async speak(input, options) {
350
+ if (!this.speakProvider) {
351
+ throw new Error("No speak provider configured");
352
+ }
353
+ return this.speakProvider.speak(input, options);
354
+ }
355
+ async listen(audioStream, options) {
356
+ if (!this.listenProvider) {
357
+ throw new Error("No listen provider configured");
358
+ }
359
+ return this.listenProvider.listen(audioStream, options);
360
+ }
361
+ async getSpeakers() {
362
+ if (!this.speakProvider) {
363
+ throw new Error("No speak provider configured");
364
+ }
365
+ return this.speakProvider.getSpeakers();
366
+ }
367
+ };
368
+
369
+ exports.CompositeVoice = CompositeVoice;
@@ -0,0 +1,67 @@
1
+ import { M as MastraBase } from '../base-hs9NDAZ2.cjs';
2
+ import '@opentelemetry/api';
3
+ import '../index-mKY1XrpK.cjs';
4
+ import 'stream';
5
+ import 'pino';
6
+ import '@opentelemetry/sdk-trace-base';
7
+
8
+ interface BuiltInModelConfig {
9
+ name: string;
10
+ apiKey?: string;
11
+ }
12
+ interface VoiceConfig {
13
+ listeningModel?: BuiltInModelConfig;
14
+ speechModel?: BuiltInModelConfig;
15
+ speaker?: string;
16
+ }
17
+ declare abstract class MastraVoice extends MastraBase {
18
+ protected listeningModel?: BuiltInModelConfig;
19
+ protected speechModel?: BuiltInModelConfig;
20
+ protected speaker?: string;
21
+ constructor({ listeningModel, speechModel, speaker }?: VoiceConfig);
22
+ traced<T extends Function>(method: T, methodName: string): T;
23
+ /**
24
+ * Convert text to speech
25
+ * @param input Text or text stream to convert to speech
26
+ * @param options Speech options including speaker and provider-specific options
27
+ * @returns Audio stream
28
+ */
29
+ abstract speak(input: string | NodeJS.ReadableStream, options?: {
30
+ speaker?: string;
31
+ [key: string]: any;
32
+ }): Promise<NodeJS.ReadableStream>;
33
+ /**
34
+ * Convert speech to text
35
+ * @param audioStream Audio stream to transcribe
36
+ * @param options Provider-specific transcription options
37
+ * @returns Text or text stream
38
+ */
39
+ abstract listen(audioStream: NodeJS.ReadableStream, options?: {
40
+ [key: string]: any;
41
+ }): Promise<string | NodeJS.ReadableStream>;
42
+ /**
43
+ * Get available speakers/voices
44
+ * @returns Array of available voice IDs and their metadata
45
+ */
46
+ abstract getSpeakers(): Promise<Array<{
47
+ voiceId: string;
48
+ [key: string]: any;
49
+ }>>;
50
+ }
51
+
52
+ declare class CompositeVoice extends MastraVoice {
53
+ protected speakProvider?: MastraVoice;
54
+ protected listenProvider?: MastraVoice;
55
+ constructor({ speakProvider, listenProvider }: {
56
+ speakProvider?: MastraVoice;
57
+ listenProvider?: MastraVoice;
58
+ });
59
+ speak(input: string | NodeJS.ReadableStream, options?: any): Promise<NodeJS.ReadableStream>;
60
+ listen(audioStream: NodeJS.ReadableStream, options?: any): Promise<string | NodeJS.ReadableStream>;
61
+ getSpeakers(): Promise<{
62
+ [key: string]: any;
63
+ voiceId: string;
64
+ }[]>;
65
+ }
66
+
67
+ export { CompositeVoice, MastraVoice, type VoiceConfig };
@@ -0,0 +1,67 @@
1
+ import { M as MastraBase } from '../base-D90KQ4XI.js';
2
+ import '@opentelemetry/api';
3
+ import '../index-mKY1XrpK.js';
4
+ import 'stream';
5
+ import 'pino';
6
+ import '@opentelemetry/sdk-trace-base';
7
+
8
+ interface BuiltInModelConfig {
9
+ name: string;
10
+ apiKey?: string;
11
+ }
12
+ interface VoiceConfig {
13
+ listeningModel?: BuiltInModelConfig;
14
+ speechModel?: BuiltInModelConfig;
15
+ speaker?: string;
16
+ }
17
+ declare abstract class MastraVoice extends MastraBase {
18
+ protected listeningModel?: BuiltInModelConfig;
19
+ protected speechModel?: BuiltInModelConfig;
20
+ protected speaker?: string;
21
+ constructor({ listeningModel, speechModel, speaker }?: VoiceConfig);
22
+ traced<T extends Function>(method: T, methodName: string): T;
23
+ /**
24
+ * Convert text to speech
25
+ * @param input Text or text stream to convert to speech
26
+ * @param options Speech options including speaker and provider-specific options
27
+ * @returns Audio stream
28
+ */
29
+ abstract speak(input: string | NodeJS.ReadableStream, options?: {
30
+ speaker?: string;
31
+ [key: string]: any;
32
+ }): Promise<NodeJS.ReadableStream>;
33
+ /**
34
+ * Convert speech to text
35
+ * @param audioStream Audio stream to transcribe
36
+ * @param options Provider-specific transcription options
37
+ * @returns Text or text stream
38
+ */
39
+ abstract listen(audioStream: NodeJS.ReadableStream, options?: {
40
+ [key: string]: any;
41
+ }): Promise<string | NodeJS.ReadableStream>;
42
+ /**
43
+ * Get available speakers/voices
44
+ * @returns Array of available voice IDs and their metadata
45
+ */
46
+ abstract getSpeakers(): Promise<Array<{
47
+ voiceId: string;
48
+ [key: string]: any;
49
+ }>>;
50
+ }
51
+
52
+ declare class CompositeVoice extends MastraVoice {
53
+ protected speakProvider?: MastraVoice;
54
+ protected listenProvider?: MastraVoice;
55
+ constructor({ speakProvider, listenProvider }: {
56
+ speakProvider?: MastraVoice;
57
+ listenProvider?: MastraVoice;
58
+ });
59
+ speak(input: string | NodeJS.ReadableStream, options?: any): Promise<NodeJS.ReadableStream>;
60
+ listen(audioStream: NodeJS.ReadableStream, options?: any): Promise<string | NodeJS.ReadableStream>;
61
+ getSpeakers(): Promise<{
62
+ [key: string]: any;
63
+ voiceId: string;
64
+ }[]>;
65
+ }
66
+
67
+ export { CompositeVoice, MastraVoice, type VoiceConfig };
@@ -0,0 +1,76 @@
1
+ import { InstrumentClass } from '../chunk-W5HVJX45.js';
2
+ import { MastraBase } from '../chunk-OZ4XVJ6F.js';
3
+ import { __decoratorStart, __decorateElement, __runInitializers } from '../chunk-C6A6W6XS.js';
4
+
5
+ // src/voice/voice.ts
6
+ var _MastraVoice_decorators, _init, _a;
7
+ _MastraVoice_decorators = [InstrumentClass({
8
+ prefix: "voice",
9
+ excludeMethods: ["__setTools", "__setLogger", "__setTelemetry", "#log"]
10
+ })];
11
+ var MastraVoice = class extends (_a = MastraBase) {
12
+ listeningModel;
13
+ speechModel;
14
+ speaker;
15
+ constructor({
16
+ listeningModel,
17
+ speechModel,
18
+ speaker
19
+ } = {}) {
20
+ super({
21
+ component: "VOICE"
22
+ });
23
+ this.listeningModel = listeningModel;
24
+ this.speechModel = speechModel;
25
+ this.speaker = speaker;
26
+ }
27
+ traced(method, methodName) {
28
+ return this.telemetry?.traceMethod(method, {
29
+ spanName: `voice.${methodName}`,
30
+ attributes: {
31
+ "voice.type": this.speechModel?.name || this.listeningModel?.name || "unknown"
32
+ }
33
+ }) ?? method;
34
+ }
35
+ };
36
+ MastraVoice = /*@__PURE__*/(_ => {
37
+ _init = __decoratorStart(_a);
38
+ MastraVoice = __decorateElement(_init, 0, "MastraVoice", _MastraVoice_decorators, MastraVoice);
39
+ __runInitializers(_init, 1, MastraVoice);
40
+
41
+ // src/voice/composite-voice.ts
42
+ return MastraVoice;
43
+ })();
44
+ // src/voice/composite-voice.ts
45
+ var CompositeVoice = class extends MastraVoice {
46
+ speakProvider;
47
+ listenProvider;
48
+ constructor({
49
+ speakProvider,
50
+ listenProvider
51
+ }) {
52
+ super();
53
+ this.speakProvider = speakProvider;
54
+ this.listenProvider = listenProvider;
55
+ }
56
+ async speak(input, options) {
57
+ if (!this.speakProvider) {
58
+ throw new Error("No speak provider configured");
59
+ }
60
+ return this.speakProvider.speak(input, options);
61
+ }
62
+ async listen(audioStream, options) {
63
+ if (!this.listenProvider) {
64
+ throw new Error("No listen provider configured");
65
+ }
66
+ return this.listenProvider.listen(audioStream, options);
67
+ }
68
+ async getSpeakers() {
69
+ if (!this.speakProvider) {
70
+ throw new Error("No speak provider configured");
71
+ }
72
+ return this.speakProvider.getSpeakers();
73
+ }
74
+ };
75
+
76
+ export { CompositeVoice, MastraVoice };