@mastra/observability 0.0.0-main-test-05-11-2025-2-20251106022801 → 0.0.0-main-test-05-11-2025-2-20251106053353

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
  # @mastra/observability
2
2
 
3
- ## 0.0.0-main-test-05-11-2025-2-20251106022801
3
+ ## 0.0.0-main-test-05-11-2025-2-20251106053353
4
4
 
5
5
  ### Major Changes
6
6
 
@@ -48,8 +48,10 @@
48
48
 
49
49
  - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
50
50
 
51
+ - moved observability config to zod to provide better validation ([#9783](https://github.com/mastra-ai/mastra/pull/9783))
52
+
51
53
  - Updated dependencies [[`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
52
- - @mastra/core@0.0.0-main-test-05-11-2025-2-20251106022801
54
+ - @mastra/core@0.0.0-main-test-05-11-2025-2-20251106053353
53
55
 
54
56
  ## 0.0.2
55
57
 
package/dist/config.d.ts CHANGED
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import type { RequestContext } from '@mastra/core/di';
8
8
  import type { ObservabilityInstance, ObservabilityExporter, SpanOutputProcessor, ConfigSelector } from '@mastra/core/observability';
9
+ import { z } from 'zod';
9
10
  /**
10
11
  * Sampling strategy types
11
12
  */
@@ -72,4 +73,271 @@ export interface ObservabilityRegistryConfig {
72
73
  /** Optional selector function to choose which tracing instance to use */
73
74
  configSelector?: ConfigSelector;
74
75
  }
76
+ /**
77
+ * Zod schema for SamplingStrategy
78
+ */
79
+ export declare const samplingStrategySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
80
+ type: z.ZodLiteral<SamplingStrategyType.ALWAYS>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ type: SamplingStrategyType.ALWAYS;
83
+ }, {
84
+ type: SamplingStrategyType.ALWAYS;
85
+ }>, z.ZodObject<{
86
+ type: z.ZodLiteral<SamplingStrategyType.NEVER>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ type: SamplingStrategyType.NEVER;
89
+ }, {
90
+ type: SamplingStrategyType.NEVER;
91
+ }>, z.ZodObject<{
92
+ type: z.ZodLiteral<SamplingStrategyType.RATIO>;
93
+ probability: z.ZodNumber;
94
+ }, "strip", z.ZodTypeAny, {
95
+ type: SamplingStrategyType.RATIO;
96
+ probability: number;
97
+ }, {
98
+ type: SamplingStrategyType.RATIO;
99
+ probability: number;
100
+ }>, z.ZodObject<{
101
+ type: z.ZodLiteral<SamplingStrategyType.CUSTOM>;
102
+ sampler: z.ZodFunction<z.ZodTuple<[z.ZodOptional<z.ZodAny>], z.ZodUnknown>, z.ZodBoolean>;
103
+ }, "strip", z.ZodTypeAny, {
104
+ type: SamplingStrategyType.CUSTOM;
105
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
106
+ }, {
107
+ type: SamplingStrategyType.CUSTOM;
108
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
109
+ }>]>;
110
+ /**
111
+ * Zod schema for ObservabilityInstanceConfig
112
+ * Note: exporters, spanOutputProcessors, and configSelector are validated as any
113
+ * since they're complex runtime objects
114
+ */
115
+ export declare const observabilityInstanceConfigSchema: z.ZodObject<{
116
+ name: z.ZodString;
117
+ serviceName: z.ZodString;
118
+ sampling: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
119
+ type: z.ZodLiteral<SamplingStrategyType.ALWAYS>;
120
+ }, "strip", z.ZodTypeAny, {
121
+ type: SamplingStrategyType.ALWAYS;
122
+ }, {
123
+ type: SamplingStrategyType.ALWAYS;
124
+ }>, z.ZodObject<{
125
+ type: z.ZodLiteral<SamplingStrategyType.NEVER>;
126
+ }, "strip", z.ZodTypeAny, {
127
+ type: SamplingStrategyType.NEVER;
128
+ }, {
129
+ type: SamplingStrategyType.NEVER;
130
+ }>, z.ZodObject<{
131
+ type: z.ZodLiteral<SamplingStrategyType.RATIO>;
132
+ probability: z.ZodNumber;
133
+ }, "strip", z.ZodTypeAny, {
134
+ type: SamplingStrategyType.RATIO;
135
+ probability: number;
136
+ }, {
137
+ type: SamplingStrategyType.RATIO;
138
+ probability: number;
139
+ }>, z.ZodObject<{
140
+ type: z.ZodLiteral<SamplingStrategyType.CUSTOM>;
141
+ sampler: z.ZodFunction<z.ZodTuple<[z.ZodOptional<z.ZodAny>], z.ZodUnknown>, z.ZodBoolean>;
142
+ }, "strip", z.ZodTypeAny, {
143
+ type: SamplingStrategyType.CUSTOM;
144
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
145
+ }, {
146
+ type: SamplingStrategyType.CUSTOM;
147
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
148
+ }>]>>;
149
+ exporters: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
150
+ spanOutputProcessors: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
151
+ includeInternalSpans: z.ZodOptional<z.ZodBoolean>;
152
+ requestContextKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
153
+ }, "strip", z.ZodTypeAny, {
154
+ name: string;
155
+ serviceName: string;
156
+ sampling?: {
157
+ type: SamplingStrategyType.ALWAYS;
158
+ } | {
159
+ type: SamplingStrategyType.NEVER;
160
+ } | {
161
+ type: SamplingStrategyType.RATIO;
162
+ probability: number;
163
+ } | {
164
+ type: SamplingStrategyType.CUSTOM;
165
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
166
+ } | undefined;
167
+ exporters?: any[] | undefined;
168
+ spanOutputProcessors?: any[] | undefined;
169
+ includeInternalSpans?: boolean | undefined;
170
+ requestContextKeys?: string[] | undefined;
171
+ }, {
172
+ name: string;
173
+ serviceName: string;
174
+ sampling?: {
175
+ type: SamplingStrategyType.ALWAYS;
176
+ } | {
177
+ type: SamplingStrategyType.NEVER;
178
+ } | {
179
+ type: SamplingStrategyType.RATIO;
180
+ probability: number;
181
+ } | {
182
+ type: SamplingStrategyType.CUSTOM;
183
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
184
+ } | undefined;
185
+ exporters?: any[] | undefined;
186
+ spanOutputProcessors?: any[] | undefined;
187
+ includeInternalSpans?: boolean | undefined;
188
+ requestContextKeys?: string[] | undefined;
189
+ }>;
190
+ /**
191
+ * Zod schema for config values in the configs map
192
+ * This is the config object without the name field
193
+ */
194
+ export declare const observabilityConfigValueSchema: z.ZodObject<{
195
+ serviceName: z.ZodString;
196
+ sampling: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
197
+ type: z.ZodLiteral<SamplingStrategyType.ALWAYS>;
198
+ }, "strip", z.ZodTypeAny, {
199
+ type: SamplingStrategyType.ALWAYS;
200
+ }, {
201
+ type: SamplingStrategyType.ALWAYS;
202
+ }>, z.ZodObject<{
203
+ type: z.ZodLiteral<SamplingStrategyType.NEVER>;
204
+ }, "strip", z.ZodTypeAny, {
205
+ type: SamplingStrategyType.NEVER;
206
+ }, {
207
+ type: SamplingStrategyType.NEVER;
208
+ }>, z.ZodObject<{
209
+ type: z.ZodLiteral<SamplingStrategyType.RATIO>;
210
+ probability: z.ZodNumber;
211
+ }, "strip", z.ZodTypeAny, {
212
+ type: SamplingStrategyType.RATIO;
213
+ probability: number;
214
+ }, {
215
+ type: SamplingStrategyType.RATIO;
216
+ probability: number;
217
+ }>, z.ZodObject<{
218
+ type: z.ZodLiteral<SamplingStrategyType.CUSTOM>;
219
+ sampler: z.ZodFunction<z.ZodTuple<[z.ZodOptional<z.ZodAny>], z.ZodUnknown>, z.ZodBoolean>;
220
+ }, "strip", z.ZodTypeAny, {
221
+ type: SamplingStrategyType.CUSTOM;
222
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
223
+ }, {
224
+ type: SamplingStrategyType.CUSTOM;
225
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
226
+ }>]>>;
227
+ exporters: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
228
+ spanOutputProcessors: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
229
+ includeInternalSpans: z.ZodOptional<z.ZodBoolean>;
230
+ requestContextKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
231
+ }, "strip", z.ZodTypeAny, {
232
+ serviceName: string;
233
+ sampling?: {
234
+ type: SamplingStrategyType.ALWAYS;
235
+ } | {
236
+ type: SamplingStrategyType.NEVER;
237
+ } | {
238
+ type: SamplingStrategyType.RATIO;
239
+ probability: number;
240
+ } | {
241
+ type: SamplingStrategyType.CUSTOM;
242
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
243
+ } | undefined;
244
+ exporters?: any[] | undefined;
245
+ spanOutputProcessors?: any[] | undefined;
246
+ includeInternalSpans?: boolean | undefined;
247
+ requestContextKeys?: string[] | undefined;
248
+ }, {
249
+ serviceName: string;
250
+ sampling?: {
251
+ type: SamplingStrategyType.ALWAYS;
252
+ } | {
253
+ type: SamplingStrategyType.NEVER;
254
+ } | {
255
+ type: SamplingStrategyType.RATIO;
256
+ probability: number;
257
+ } | {
258
+ type: SamplingStrategyType.CUSTOM;
259
+ sampler: (args_0: any, ...args: unknown[]) => boolean;
260
+ } | undefined;
261
+ exporters?: any[] | undefined;
262
+ spanOutputProcessors?: any[] | undefined;
263
+ includeInternalSpans?: boolean | undefined;
264
+ requestContextKeys?: string[] | undefined;
265
+ }>;
266
+ /**
267
+ * Zod schema for ObservabilityRegistryConfig
268
+ * Note: Individual configs are validated separately in the constructor to allow for
269
+ * both plain config objects and pre-instantiated ObservabilityInstance objects.
270
+ * The schema is permissive to handle edge cases gracefully (arrays, null values).
271
+ */
272
+ export declare const observabilityRegistryConfigSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
273
+ default: z.ZodNullable<z.ZodOptional<z.ZodObject<{
274
+ enabled: z.ZodOptional<z.ZodBoolean>;
275
+ }, "strip", z.ZodTypeAny, {
276
+ enabled?: boolean | undefined;
277
+ }, {
278
+ enabled?: boolean | undefined;
279
+ }>>>;
280
+ configs: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny, "many">, z.ZodNull]>>;
281
+ configSelector: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
282
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
283
+ default: z.ZodNullable<z.ZodOptional<z.ZodObject<{
284
+ enabled: z.ZodOptional<z.ZodBoolean>;
285
+ }, "strip", z.ZodTypeAny, {
286
+ enabled?: boolean | undefined;
287
+ }, {
288
+ enabled?: boolean | undefined;
289
+ }>>>;
290
+ configs: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny, "many">, z.ZodNull]>>;
291
+ configSelector: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
292
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
293
+ default: z.ZodNullable<z.ZodOptional<z.ZodObject<{
294
+ enabled: z.ZodOptional<z.ZodBoolean>;
295
+ }, "strip", z.ZodTypeAny, {
296
+ enabled?: boolean | undefined;
297
+ }, {
298
+ enabled?: boolean | undefined;
299
+ }>>>;
300
+ configs: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny, "many">, z.ZodNull]>>;
301
+ configSelector: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
302
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
303
+ default: z.ZodNullable<z.ZodOptional<z.ZodObject<{
304
+ enabled: z.ZodOptional<z.ZodBoolean>;
305
+ }, "strip", z.ZodTypeAny, {
306
+ enabled?: boolean | undefined;
307
+ }, {
308
+ enabled?: boolean | undefined;
309
+ }>>>;
310
+ configs: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny, "many">, z.ZodNull]>>;
311
+ configSelector: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
312
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
313
+ default: z.ZodNullable<z.ZodOptional<z.ZodObject<{
314
+ enabled: z.ZodOptional<z.ZodBoolean>;
315
+ }, "strip", z.ZodTypeAny, {
316
+ enabled?: boolean | undefined;
317
+ }, {
318
+ enabled?: boolean | undefined;
319
+ }>>>;
320
+ configs: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny, "many">, z.ZodNull]>>;
321
+ configSelector: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
322
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
323
+ default: z.ZodNullable<z.ZodOptional<z.ZodObject<{
324
+ enabled: z.ZodOptional<z.ZodBoolean>;
325
+ }, "strip", z.ZodTypeAny, {
326
+ enabled?: boolean | undefined;
327
+ }, {
328
+ enabled?: boolean | undefined;
329
+ }>>>;
330
+ configs: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny, "many">, z.ZodNull]>>;
331
+ configSelector: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
332
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
333
+ default: z.ZodNullable<z.ZodOptional<z.ZodObject<{
334
+ enabled: z.ZodOptional<z.ZodBoolean>;
335
+ }, "strip", z.ZodTypeAny, {
336
+ enabled?: boolean | undefined;
337
+ }, {
338
+ enabled?: boolean | undefined;
339
+ }>>>;
340
+ configs: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny, "many">, z.ZodNull]>>;
341
+ configSelector: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
342
+ }, z.ZodTypeAny, "passthrough">>;
75
343
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAMpC;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAA;CAAE,CAAC;AAMhG;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,uBAAuB;IACvB,SAAS,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACpC,oCAAoC;IACpC,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7C,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qFAAqF;IACrF,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC;IAC5F,yEAAyE;IACzE,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAA;CAAE,CAAC;AAMhG;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,uBAAuB;IACvB,SAAS,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACpC,oCAAoC;IACpC,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7C,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qFAAqF;IACrF,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC;IAC5F,yEAAyE;IACzE,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAMD;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAejC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ5C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOzC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAiD3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../src/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAA+B,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAezF,qBAAa,aAAc,SAAQ,UAAW,YAAW,uBAAuB;;gBAGlE,MAAM,EAAE,2BAA2B;IAqD/C,gBAAgB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuBnD,SAAS,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI;IAOnD,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,SAAS;IAItF;;OAEG;IAEH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,SAAS,UAAQ,GAAG,IAAI;IAIxF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAI5D,kBAAkB,IAAI,qBAAqB,GAAG,SAAS;IAIvD,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAI3D,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIjD,KAAK,IAAI,IAAI;IAIP,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../src/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAA+B,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAezF,qBAAa,aAAc,SAAQ,UAAW,YAAW,uBAAuB;;gBAGlE,MAAM,EAAE,2BAA2B;IAsF/C,gBAAgB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuBnD,SAAS,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI;IAOnD,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,SAAS;IAItF;;OAEG;IAEH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,SAAS,UAAQ,GAAG,IAAI;IAIxF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAI5D,kBAAkB,IAAI,qBAAqB,GAAG,SAAS;IAIvD,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAI3D,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIjD,KAAK,IAAI,IAAI;IAIP,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
package/dist/index.cjs CHANGED
@@ -1,15 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var base = require('@mastra/core/base');
4
- var logger = require('@mastra/core/logger');
5
4
  var error = require('@mastra/core/error');
5
+ var logger = require('@mastra/core/logger');
6
+ var zod = require('zod');
6
7
  var observability = require('@mastra/core/observability');
7
8
  var utils = require('@mastra/core/utils');
8
9
  var web = require('stream/web');
9
10
 
10
11
  // src/default.ts
11
-
12
- // src/config.ts
13
12
  var SamplingStrategyType = /* @__PURE__ */ ((SamplingStrategyType2) => {
14
13
  SamplingStrategyType2["ALWAYS"] = "always";
15
14
  SamplingStrategyType2["NEVER"] = "never";
@@ -17,6 +16,66 @@ var SamplingStrategyType = /* @__PURE__ */ ((SamplingStrategyType2) => {
17
16
  SamplingStrategyType2["CUSTOM"] = "custom";
18
17
  return SamplingStrategyType2;
19
18
  })(SamplingStrategyType || {});
19
+ var samplingStrategySchema = zod.z.discriminatedUnion("type", [
20
+ zod.z.object({
21
+ type: zod.z.literal("always" /* ALWAYS */)
22
+ }),
23
+ zod.z.object({
24
+ type: zod.z.literal("never" /* NEVER */)
25
+ }),
26
+ zod.z.object({
27
+ type: zod.z.literal("ratio" /* RATIO */),
28
+ probability: zod.z.number().min(0, "Probability must be between 0 and 1").max(1, "Probability must be between 0 and 1")
29
+ }),
30
+ zod.z.object({
31
+ type: zod.z.literal("custom" /* CUSTOM */),
32
+ sampler: zod.z.function().args(zod.z.any().optional()).returns(zod.z.boolean())
33
+ })
34
+ ]);
35
+ var observabilityInstanceConfigSchema = zod.z.object({
36
+ name: zod.z.string().min(1, "Name is required"),
37
+ serviceName: zod.z.string().min(1, "Service name is required"),
38
+ sampling: samplingStrategySchema.optional(),
39
+ exporters: zod.z.array(zod.z.any()).optional(),
40
+ spanOutputProcessors: zod.z.array(zod.z.any()).optional(),
41
+ includeInternalSpans: zod.z.boolean().optional(),
42
+ requestContextKeys: zod.z.array(zod.z.string()).optional()
43
+ });
44
+ var observabilityConfigValueSchema = zod.z.object({
45
+ serviceName: zod.z.string().min(1, "Service name is required"),
46
+ sampling: samplingStrategySchema.optional(),
47
+ exporters: zod.z.array(zod.z.any()).optional(),
48
+ spanOutputProcessors: zod.z.array(zod.z.any()).optional(),
49
+ includeInternalSpans: zod.z.boolean().optional(),
50
+ requestContextKeys: zod.z.array(zod.z.string()).optional()
51
+ });
52
+ var observabilityRegistryConfigSchema = zod.z.object({
53
+ default: zod.z.object({
54
+ enabled: zod.z.boolean().optional()
55
+ }).optional().nullable(),
56
+ configs: zod.z.union([zod.z.record(zod.z.string(), zod.z.any()), zod.z.array(zod.z.any()), zod.z.null()]).optional(),
57
+ configSelector: zod.z.function().optional()
58
+ }).passthrough().refine(
59
+ (data) => {
60
+ const isDefaultEnabled = data.default?.enabled === true;
61
+ const hasConfigs = data.configs && typeof data.configs === "object" && !Array.isArray(data.configs) ? Object.keys(data.configs).length > 0 : false;
62
+ return !(isDefaultEnabled && hasConfigs);
63
+ },
64
+ {
65
+ message: 'Cannot specify both "default" (when enabled) and "configs". Use either default observability or custom configs, but not both.'
66
+ }
67
+ ).refine(
68
+ (data) => {
69
+ const configCount = data.configs && typeof data.configs === "object" && !Array.isArray(data.configs) ? Object.keys(data.configs).length : 0;
70
+ if (configCount > 1 && !data.configSelector) {
71
+ return false;
72
+ }
73
+ return true;
74
+ },
75
+ {
76
+ message: 'A "configSelector" function is required when multiple configs are specified to determine which config to use.'
77
+ }
78
+ );
20
79
  var BaseExporter = class {
21
80
  /** Mastra logger instance */
22
81
  logger;
@@ -1996,10 +2055,38 @@ var Observability = class extends base.MastraBase {
1996
2055
  if (config === void 0) {
1997
2056
  config = {};
1998
2057
  }
1999
- if (config.default?.enabled && config.configs?.["default"]) {
2000
- throw new Error(
2001
- "Cannot use 'default' as a custom config name when default tracing is enabled. Please rename your custom config to avoid conflicts."
2002
- );
2058
+ const validationResult = observabilityRegistryConfigSchema.safeParse(config);
2059
+ if (!validationResult.success) {
2060
+ const errorMessages = validationResult.error.errors.map((err) => `${err.path.join(".") || "config"}: ${err.message}`).join("; ");
2061
+ throw new error.MastraError({
2062
+ id: "OBSERVABILITY_INVALID_CONFIG",
2063
+ text: `Invalid observability configuration: ${errorMessages}`,
2064
+ domain: error.ErrorDomain.MASTRA_OBSERVABILITY,
2065
+ category: error.ErrorCategory.USER,
2066
+ details: {
2067
+ validationErrors: errorMessages
2068
+ }
2069
+ });
2070
+ }
2071
+ if (config.configs) {
2072
+ for (const [name, configValue] of Object.entries(config.configs)) {
2073
+ if (!isInstance(configValue)) {
2074
+ const configValidation = observabilityConfigValueSchema.safeParse(configValue);
2075
+ if (!configValidation.success) {
2076
+ const errorMessages = configValidation.error.errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("; ");
2077
+ throw new error.MastraError({
2078
+ id: "OBSERVABILITY_INVALID_INSTANCE_CONFIG",
2079
+ text: `Invalid configuration for observability instance '${name}': ${errorMessages}`,
2080
+ domain: error.ErrorDomain.MASTRA_OBSERVABILITY,
2081
+ category: error.ErrorCategory.USER,
2082
+ details: {
2083
+ instanceName: name,
2084
+ validationErrors: errorMessages
2085
+ }
2086
+ });
2087
+ }
2088
+ }
2089
+ }
2003
2090
  }
2004
2091
  if (config.default?.enabled) {
2005
2092
  const defaultInstance = new DefaultObservabilityInstance({
@@ -2098,5 +2185,9 @@ exports.Observability = Observability;
2098
2185
  exports.SamplingStrategyType = SamplingStrategyType;
2099
2186
  exports.SensitiveDataFilter = SensitiveDataFilter;
2100
2187
  exports.deepClean = deepClean;
2188
+ exports.observabilityConfigValueSchema = observabilityConfigValueSchema;
2189
+ exports.observabilityInstanceConfigSchema = observabilityInstanceConfigSchema;
2190
+ exports.observabilityRegistryConfigSchema = observabilityRegistryConfigSchema;
2191
+ exports.samplingStrategySchema = samplingStrategySchema;
2101
2192
  //# sourceMappingURL=index.cjs.map
2102
2193
  //# sourceMappingURL=index.cjs.map