@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.
- package/LICENSE +21 -0
- package/README.md +180 -0
- package/dist/agent/index.cjs +1865 -0
- package/dist/agent/index.d.cts +15 -0
- package/dist/agent/index.d.ts +15 -0
- package/dist/agent/index.js +1 -0
- package/dist/base-D90KQ4XI.d.ts +139 -0
- package/dist/base-hs9NDAZ2.d.cts +139 -0
- package/dist/base-nKCMCNrM.d.ts +920 -0
- package/dist/base-nhesrHv3.d.cts +920 -0
- package/dist/base.cjs +138 -0
- package/dist/base.d.cts +6 -0
- package/dist/base.d.ts +6 -0
- package/dist/base.js +1 -0
- package/dist/bundler/index.cjs +158 -0
- package/dist/bundler/index.d.cts +28 -0
- package/dist/bundler/index.d.ts +28 -0
- package/dist/bundler/index.js +1 -0
- package/dist/chunk-33GSTUNK.js +620 -0
- package/dist/chunk-4YRYBCOZ.js +10 -0
- package/dist/chunk-55NFNRKO.js +10 -0
- package/dist/chunk-5XPCMNGW.js +215 -0
- package/dist/chunk-B3M27AMP.js +1479 -0
- package/dist/chunk-BB4KXGBU.js +83 -0
- package/dist/chunk-C6A6W6XS.js +77 -0
- package/dist/chunk-HQ55LN2U.js +318 -0
- package/dist/chunk-KNVTCZW7.js +416 -0
- package/dist/chunk-LH47WVJL.js +61 -0
- package/dist/chunk-NGD2HQYW.js +346 -0
- package/dist/chunk-NUDAZEOG.js +35 -0
- package/dist/chunk-OZ4XVJ6F.js +49 -0
- package/dist/chunk-PHMSPCTC.js +145 -0
- package/dist/chunk-PNZK456O.js +88 -0
- package/dist/chunk-QAAJAHDB.js +37 -0
- package/dist/chunk-RG66XEJT.js +8 -0
- package/dist/chunk-SIFBBGY6.js +190 -0
- package/dist/chunk-SVEAENO7.js +22 -0
- package/dist/chunk-SY5244IR.js +1499 -0
- package/dist/chunk-W5HVJX45.js +402 -0
- package/dist/chunk-WIBGG4X6.js +173 -0
- package/dist/chunk-ZDWFBE5L.js +1 -0
- package/dist/chunk-ZINPRHAN.js +22 -0
- package/dist/deployer/index.cjs +165 -0
- package/dist/deployer/index.d.cts +19 -0
- package/dist/deployer/index.d.ts +19 -0
- package/dist/deployer/index.js +1 -0
- package/dist/eval/index.cjs +110 -0
- package/dist/eval/index.d.cts +28 -0
- package/dist/eval/index.d.ts +28 -0
- package/dist/eval/index.js +1 -0
- package/dist/filter/index.cjs +192 -0
- package/dist/filter/index.d.cts +90 -0
- package/dist/filter/index.d.ts +90 -0
- package/dist/filter/index.js +1 -0
- package/dist/hooks/index.cjs +87 -0
- package/dist/hooks/index.d.cts +33 -0
- package/dist/hooks/index.d.ts +33 -0
- package/dist/hooks/index.js +1 -0
- package/dist/index-mKY1XrpK.d.cts +90 -0
- package/dist/index-mKY1XrpK.d.ts +90 -0
- package/dist/index.cjs +6844 -0
- package/dist/index.d.cts +97 -0
- package/dist/index.d.ts +97 -0
- package/dist/index.js +119 -0
- package/dist/integration/index.cjs +113 -0
- package/dist/integration/index.d.cts +52 -0
- package/dist/integration/index.d.ts +52 -0
- package/dist/integration/index.js +1 -0
- package/dist/llm/index.cjs +2 -0
- package/dist/llm/index.d.cts +15 -0
- package/dist/llm/index.d.ts +15 -0
- package/dist/llm/index.js +1 -0
- package/dist/logger/index.cjs +159 -0
- package/dist/logger/index.d.cts +3 -0
- package/dist/logger/index.d.ts +3 -0
- package/dist/logger/index.js +1 -0
- package/dist/mastra/index.cjs +1741 -0
- package/dist/mastra/index.d.cts +67 -0
- package/dist/mastra/index.d.ts +67 -0
- package/dist/mastra/index.js +1 -0
- package/dist/memory/index.cjs +1907 -0
- package/dist/memory/index.d.cts +15 -0
- package/dist/memory/index.d.ts +15 -0
- package/dist/memory/index.js +1 -0
- package/dist/relevance/index.cjs +1927 -0
- package/dist/relevance/index.d.cts +21 -0
- package/dist/relevance/index.d.ts +21 -0
- package/dist/relevance/index.js +1 -0
- package/dist/storage/index.cjs +361 -0
- package/dist/storage/index.d.cts +15 -0
- package/dist/storage/index.d.ts +15 -0
- package/dist/storage/index.js +2 -0
- package/dist/storage/libsql/index.cjs +770 -0
- package/dist/storage/libsql/index.d.cts +81 -0
- package/dist/storage/libsql/index.d.ts +81 -0
- package/dist/storage/libsql/index.js +1 -0
- package/dist/telemetry/index.cjs +413 -0
- package/dist/telemetry/index.d.cts +51 -0
- package/dist/telemetry/index.d.ts +51 -0
- package/dist/telemetry/index.js +1 -0
- package/dist/telemetry/otel-vendor.cjs +52 -0
- package/dist/telemetry/otel-vendor.d.cts +7 -0
- package/dist/telemetry/otel-vendor.d.ts +7 -0
- package/dist/telemetry/otel-vendor.js +7 -0
- package/dist/tools/index.cjs +25 -0
- package/dist/tools/index.d.cts +29 -0
- package/dist/tools/index.d.ts +29 -0
- package/dist/tools/index.js +1 -0
- package/dist/tts/index.cjs +328 -0
- package/dist/tts/index.d.cts +28 -0
- package/dist/tts/index.d.ts +28 -0
- package/dist/tts/index.js +1 -0
- package/dist/types-m9RryK9a.d.cts +14 -0
- package/dist/types-m9RryK9a.d.ts +14 -0
- package/dist/utils.cjs +179 -0
- package/dist/utils.d.cts +26 -0
- package/dist/utils.d.ts +26 -0
- package/dist/utils.js +1 -0
- package/dist/vector/index.cjs +145 -0
- package/dist/vector/index.d.cts +30 -0
- package/dist/vector/index.d.ts +30 -0
- package/dist/vector/index.js +1 -0
- package/dist/vector/libsql/index.cjs +951 -0
- package/dist/vector/libsql/index.d.cts +29 -0
- package/dist/vector/libsql/index.d.ts +29 -0
- package/dist/vector/libsql/index.js +1 -0
- package/dist/voice/index.cjs +369 -0
- package/dist/voice/index.d.cts +67 -0
- package/dist/voice/index.d.ts +67 -0
- package/dist/voice/index.js +76 -0
- package/dist/workflow-DqQ4pON_.d.cts +84 -0
- package/dist/workflow-Ng_F_Zaf.d.ts +84 -0
- package/dist/workflows/index.cjs +1628 -0
- package/dist/workflows/index.d.cts +48 -0
- package/dist/workflows/index.d.ts +48 -0
- package/dist/workflows/index.js +1 -0
- 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 };
|