@mastra/observability 0.0.0-remove-unused-model-providers-api-20251030210744 → 0.0.0-vnext-20251104230439

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 (45) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/README.md +101 -0
  3. package/dist/default-entrypoint.d.ts +16 -0
  4. package/dist/default-entrypoint.d.ts.map +1 -0
  5. package/dist/exporters/base.d.ts +111 -0
  6. package/dist/exporters/base.d.ts.map +1 -0
  7. package/dist/exporters/cloud.d.ts +30 -0
  8. package/dist/exporters/cloud.d.ts.map +1 -0
  9. package/dist/exporters/console.d.ts +10 -0
  10. package/dist/exporters/console.d.ts.map +1 -0
  11. package/dist/exporters/default.d.ts +93 -0
  12. package/dist/exporters/default.d.ts.map +1 -0
  13. package/dist/exporters/index.d.ts +9 -0
  14. package/dist/exporters/index.d.ts.map +1 -0
  15. package/dist/index.cjs +2052 -0
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.ts +7 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2029 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/init.d.ts +2 -0
  22. package/dist/init.d.ts.map +1 -0
  23. package/dist/model-tracing.d.ts +48 -0
  24. package/dist/model-tracing.d.ts.map +1 -0
  25. package/dist/registry.d.ts +51 -0
  26. package/dist/registry.d.ts.map +1 -0
  27. package/dist/span_processors/index.d.ts +5 -0
  28. package/dist/span_processors/index.d.ts.map +1 -0
  29. package/dist/span_processors/sensitive-data-filter.d.ts +85 -0
  30. package/dist/span_processors/sensitive-data-filter.d.ts.map +1 -0
  31. package/dist/spans/base.d.ts +71 -0
  32. package/dist/spans/base.d.ts.map +1 -0
  33. package/dist/spans/default.d.ts +13 -0
  34. package/dist/spans/default.d.ts.map +1 -0
  35. package/dist/spans/index.d.ts +7 -0
  36. package/dist/spans/index.d.ts.map +1 -0
  37. package/dist/spans/no-op.d.ts +15 -0
  38. package/dist/spans/no-op.d.ts.map +1 -0
  39. package/dist/tracers/base.d.ts +105 -0
  40. package/dist/tracers/base.d.ts.map +1 -0
  41. package/dist/tracers/default.d.ts +7 -0
  42. package/dist/tracers/default.d.ts.map +1 -0
  43. package/dist/tracers/index.d.ts +6 -0
  44. package/dist/tracers/index.d.ts.map +1 -0
  45. package/package.json +8 -6
package/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # @mastra/observability
2
2
 
3
- ## 0.0.0-remove-unused-model-providers-api-20251030210744
3
+ ## 0.0.0-vnext-20251104230439
4
+
5
+ ### Major Changes
6
+
7
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
8
+
9
+ - moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
4
10
 
5
11
  ### Patch Changes
6
12
 
@@ -8,8 +14,8 @@
8
14
 
9
15
  - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
10
16
 
11
- - Updated dependencies [[`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`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), [`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), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`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), [`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), [`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), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`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), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
12
- - @mastra/core@0.0.0-remove-unused-model-providers-api-20251030210744
17
+ - Updated dependencies [[`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`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), [`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), [`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), [`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), [`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), [`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), [`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), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
18
+ - @mastra/core@0.0.0-vnext-20251104230439
13
19
 
14
20
  ## 0.0.2
15
21
 
package/README.md ADDED
@@ -0,0 +1,101 @@
1
+ # AI Tracing
2
+
3
+ A comprehensive tracing system for AI operations in Mastra, providing type-safe span tracking, event-driven exports, and OpenTelemetry-compatible tracing.
4
+
5
+ ## Overview
6
+
7
+ The AI Tracing system enables detailed observability for AI-driven applications by tracking operations through spans that capture metadata, timing, and context. It's designed to work seamlessly with Mastra's architecture while providing flexible configuration and export options.
8
+
9
+ ## Key Features
10
+
11
+ - **Type-Safe Spans**: Strongly typed metadata based on span type prevents runtime errors
12
+ - **Event-Driven Architecture**: Real-time tracing events for immediate observability
13
+ - **OpenTelemetry Compatible**: Uses standard trace and span ID formats for integration
14
+ - **Flexible Sampling**: Multiple sampling strategies with custom sampler support
15
+ - **Pluggable Processors**: Modify or filter span fields before export
16
+ - **Pluggable Exporters**: Multiple export formats and destinations
17
+ - **Automatic Lifecycle Management**: Spans automatically emit events without manual intervention
18
+
19
+ ## Quick Start
20
+
21
+ ### Manual Tracing
22
+
23
+ ```typescript
24
+ import { DefaultAITracing, AISpanType } from '@mastra/core/observability';
25
+
26
+ // Create tracing instance
27
+ const tracing = new DefaultAITracing({
28
+ serviceName: 'my-app',
29
+ });
30
+
31
+ // Start an agent span
32
+ const agentSpan = tracing.startSpan({
33
+ type: AISpanType.AGENT_RUN,
34
+ name: 'customer-support-agent',
35
+ attributes: {
36
+ agentId: 'agent-123',
37
+ instructions: 'Help with customer support',
38
+ maxSteps: 10,
39
+ },
40
+ });
41
+
42
+ // Create child spans for nested operations
43
+ const llmSpan = agentSpan.createChildSpan({
44
+ type: AISpanType.MODEL_GENERATION,
45
+ name: 'gpt-4-response',
46
+ attributes: {
47
+ model: 'gpt-4',
48
+ provider: 'openai',
49
+ streaming: false,
50
+ },
51
+ });
52
+
53
+ // End spans with results
54
+ llmSpan.end({
55
+ output: 'Generated response',
56
+ attributes: { usage: { totalTokens: 180 } },
57
+ });
58
+ agentSpan.end();
59
+ ```
60
+
61
+ ### Span Types
62
+
63
+ - **`WORKFLOW_RUN`**: Root span for entire workflow execution
64
+ - **`WORKFLOW_STEP`**: Individual step execution within a workflow
65
+ - **`AGENT_RUN`**: Agent processing (supports tools, memory, multi-step)
66
+ - **`MODEL_GENERATION`**: Individual model API calls with token usage
67
+ - **`TOOL_CALL`**: Function/tool execution
68
+ - **`MCP_TOOL_CALL`**: Model Context Protocol tool execution
69
+ - **`GENERIC`**: Custom spans for other operations
70
+
71
+ ### Basic Configuration
72
+
73
+ Enable AI Observability in your Mastra instance:
74
+
75
+ ```typescript
76
+ export const mastra = new Mastra({
77
+ // ... other config
78
+ observability: {
79
+ default: { enabled: true },
80
+ },
81
+ });
82
+ ```
83
+
84
+ This enables the Default and Cloud exporters, with the SensitiveDataFilter, and 'Always' Sampling.
85
+
86
+ ## Performance Considerations
87
+
88
+ ### Current Implementation
89
+
90
+ The current implementation prioritizes correctness and ease of use:
91
+
92
+ - **Automatic Lifecycle Management**: All spans automatically emit events through method wrapping
93
+ - **Real-time Export**: Events are exported immediately when they occur
94
+ - **Memory Overhead**: Each span maintains references to tracing instance
95
+
96
+ ### Future Optimization Opportunities
97
+
98
+ When performance becomes a concern, consider these optimizations:
99
+
100
+ 1. **Sampling at Creation**: Move sampling decision earlier to avoid creating unnecessary spans
101
+ 2. **Async Export Queues**: Buffer events and export in batches to reduce I/O overhead
@@ -0,0 +1,16 @@
1
+ import type { Mastra } from '@mastra/core';
2
+ import { MastraBase } from '@mastra/core/base';
3
+ import type { IMastraLogger } from '@mastra/core/logger';
4
+ import type { ConfigSelectorOptions, ObservabilityEntrypoint, ObservabilityRegistryConfig } from '@mastra/core/observability';
5
+ export declare class DefaultEntrypoint extends MastraBase implements ObservabilityEntrypoint {
6
+ constructor(config: ObservabilityRegistryConfig);
7
+ registerMastra(options: {
8
+ mastra: Mastra;
9
+ }): void;
10
+ setLogger(options: {
11
+ logger: IMastraLogger;
12
+ }): void;
13
+ getSelectedObservability(options: ConfigSelectorOptions): import("@mastra/core/observability").AITracing | undefined;
14
+ shutdown(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=default-entrypoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-entrypoint.d.ts","sourceRoot":"","sources":["../src/default-entrypoint.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,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AAGpC,qBAAa,iBAAkB,SAAQ,UAAW,YAAW,uBAAuB;gBACtE,MAAM,EAAE,2BAA2B;IAQ/C,cAAc,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuBjD,SAAS,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI;IAQnD,wBAAwB,CAAC,OAAO,EAAE,qBAAqB;IAIjD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Base Exporter for AI Tracing
3
+ *
4
+ * Provides common functionality shared by all AI tracing exporters:
5
+ * - Logger initialization with proper Mastra logger support
6
+ * - Disabled state management
7
+ * - Graceful shutdown lifecycle
8
+ */
9
+ import { LogLevel } from '@mastra/core/logger';
10
+ import type { IMastraLogger } from '@mastra/core/logger';
11
+ import type { AITracingEvent, AITracingExporter, InitExporterOptions } from '@mastra/core/observability';
12
+ /**
13
+ * Base configuration that all exporters should support
14
+ */
15
+ export interface BaseExporterConfig {
16
+ /** Optional Mastra logger instance */
17
+ logger?: IMastraLogger;
18
+ /** Log level for the exporter (defaults to INFO) - accepts both enum and string */
19
+ logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error';
20
+ }
21
+ /**
22
+ * Abstract base class for AI tracing exporters
23
+ *
24
+ * Handles common concerns:
25
+ * - Logger setup with proper Mastra logger
26
+ * - Disabled state management
27
+ * - Basic lifecycle methods
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * class MyExporter extends BaseExporter {
32
+ * name = 'my-exporter';
33
+ *
34
+ * constructor(config: MyExporterConfig) {
35
+ * super(config);
36
+ *
37
+ * if (!config.apiKey) {
38
+ * this.setDisabled('Missing API key');
39
+ * return;
40
+ * }
41
+ *
42
+ * // Initialize exporter-specific logic
43
+ * }
44
+ *
45
+ * async _exportEvent(event: AITracingEvent): Promise<void> {
46
+ * // Export logic
47
+ * }
48
+ * }
49
+ * ```
50
+ */
51
+ export declare abstract class BaseExporter implements AITracingExporter {
52
+ /** Exporter name - must be implemented by subclasses */
53
+ abstract name: string;
54
+ /** Mastra logger instance */
55
+ protected logger: IMastraLogger;
56
+ /** Whether this exporter is disabled */
57
+ protected isDisabled: boolean;
58
+ /**
59
+ * Initialize the base exporter with logger
60
+ */
61
+ constructor(config?: BaseExporterConfig);
62
+ /**
63
+ * Set the logger for the exporter (called by Mastra/AITracing during initialization)
64
+ */
65
+ __setLogger(logger: IMastraLogger): void;
66
+ /**
67
+ * Convert string log level to LogLevel enum
68
+ */
69
+ private resolveLogLevel;
70
+ /**
71
+ * Mark the exporter as disabled and log a message
72
+ *
73
+ * @param reason - Reason why the exporter is disabled
74
+ */
75
+ protected setDisabled(reason: string): void;
76
+ /**
77
+ * Export a tracing event
78
+ *
79
+ * This method checks if the exporter is disabled before calling _exportEvent.
80
+ * Subclasses should implement _exportEvent instead of overriding this method.
81
+ */
82
+ exportEvent(event: AITracingEvent): Promise<void>;
83
+ /**
84
+ * Export a tracing event - must be implemented by subclasses
85
+ *
86
+ * This method is called by exportEvent after checking if the exporter is disabled.
87
+ */
88
+ protected abstract _exportEvent(event: AITracingEvent): Promise<void>;
89
+ /**
90
+ * Optional initialization hook called after Mastra is fully configured
91
+ */
92
+ init?(_options: InitExporterOptions): void;
93
+ /**
94
+ * Optional method to add scores to traces
95
+ */
96
+ addScoreToTrace?(_args: {
97
+ traceId: string;
98
+ spanId?: string;
99
+ score: number;
100
+ reason?: string;
101
+ scorerName: string;
102
+ metadata?: Record<string, any>;
103
+ }): Promise<void>;
104
+ /**
105
+ * Shutdown the exporter and clean up resources
106
+ *
107
+ * Default implementation just logs. Override to add custom cleanup.
108
+ */
109
+ shutdown(): Promise<void>;
110
+ }
111
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/exporters/base.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8BAAsB,YAAa,YAAW,iBAAiB;IAC7D,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,6BAA6B;IAC7B,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAEhC,wCAAwC;IACxC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAS;IAEtC;;OAEG;gBACS,MAAM,GAAE,kBAAuB;IAO3C;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAMxC;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK3C;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAErE;;OAEG;IACH,IAAI,CAAC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAE1C;;OAEG;IACH,eAAe,CAAC,CAAC,KAAK,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjB;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
@@ -0,0 +1,30 @@
1
+ import type { AITracingEvent } from '@mastra/core/observability';
2
+ import { BaseExporter } from './base.js';
3
+ import type { BaseExporterConfig } from './base.js';
4
+ export interface CloudExporterConfig extends BaseExporterConfig {
5
+ maxBatchSize?: number;
6
+ maxBatchWaitMs?: number;
7
+ maxRetries?: number;
8
+ accessToken?: string;
9
+ endpoint?: string;
10
+ }
11
+ export declare class CloudExporter extends BaseExporter {
12
+ name: string;
13
+ private config;
14
+ private buffer;
15
+ private flushTimer;
16
+ constructor(config?: CloudExporterConfig);
17
+ protected _exportEvent(event: AITracingEvent): Promise<void>;
18
+ private addToBuffer;
19
+ private formatSpan;
20
+ private shouldFlush;
21
+ private scheduleFlush;
22
+ private flush;
23
+ /**
24
+ * Uploads spans to cloud API using fetchWithRetry for all retry logic
25
+ */
26
+ private batchUpload;
27
+ private resetBuffer;
28
+ shutdown(): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=cloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/exporters/cloud.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,4BAA4B,CAAC;AAEpF,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA0BD,qBAAa,aAAc,SAAQ,YAAY;IAC7C,IAAI,SAAsC;IAE1C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAA+B;gBAErC,MAAM,GAAE,mBAAwB;cA8B5B,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlE,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,aAAa;YAoBP,KAAK;IA8CnB;;OAEG;YACW,WAAW;IAezB,OAAO,CAAC,WAAW;IAMb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAuChC"}
@@ -0,0 +1,10 @@
1
+ import type { AITracingEvent } from '@mastra/core/observability';
2
+ import { BaseExporter } from './base.js';
3
+ import type { BaseExporterConfig } from './base.js';
4
+ export declare class ConsoleExporter extends BaseExporter {
5
+ name: string;
6
+ constructor(config?: BaseExporterConfig);
7
+ protected _exportEvent(event: AITracingEvent): Promise<void>;
8
+ shutdown(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=console.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/exporters/console.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,IAAI,SAA8B;gBAEtB,MAAM,GAAE,kBAAuB;cAI3B,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+E5D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
@@ -0,0 +1,93 @@
1
+ import type { IMastraLogger } from '@mastra/core/logger';
2
+ import type { AITracingEvent, AITracingExporter, InitExporterOptions, TracingStrategy } from '@mastra/core/observability';
3
+ interface BatchingConfig {
4
+ maxBatchSize?: number;
5
+ maxBufferSize?: number;
6
+ maxBatchWaitMs?: number;
7
+ maxRetries?: number;
8
+ retryDelayMs?: number;
9
+ strategy?: TracingStrategy | 'auto';
10
+ }
11
+ export declare class DefaultExporter implements AITracingExporter {
12
+ name: string;
13
+ private logger;
14
+ private storage?;
15
+ private config;
16
+ private resolvedStrategy;
17
+ private buffer;
18
+ private flushTimer;
19
+ private allCreatedSpans;
20
+ constructor(config?: BatchingConfig, logger?: IMastraLogger);
21
+ private strategyInitialized;
22
+ /**
23
+ * Initialize the exporter (called after all dependencies are ready)
24
+ */
25
+ init(options: InitExporterOptions): void;
26
+ /**
27
+ * Initialize the resolved strategy once storage is available
28
+ */
29
+ private initializeStrategy;
30
+ /**
31
+ * Builds a unique span key for tracking
32
+ */
33
+ private buildSpanKey;
34
+ /**
35
+ * Gets the next sequence number for a span
36
+ */
37
+ private getNextSequence;
38
+ /**
39
+ * Handles out-of-order span updates by logging and skipping
40
+ */
41
+ private handleOutOfOrderUpdate;
42
+ /**
43
+ * Adds an event to the appropriate buffer based on strategy
44
+ */
45
+ private addToBuffer;
46
+ /**
47
+ * Checks if buffer should be flushed based on size or time triggers
48
+ */
49
+ private shouldFlush;
50
+ /**
51
+ * Resets the buffer after successful flush
52
+ */
53
+ private resetBuffer;
54
+ /**
55
+ * Schedules a flush using setTimeout
56
+ */
57
+ private scheduleFlush;
58
+ /**
59
+ * Serializes span attributes to storage record format
60
+ * Handles all AI span types and their specific attributes
61
+ */
62
+ private serializeAttributes;
63
+ private buildCreateRecord;
64
+ private buildUpdateRecord;
65
+ /**
66
+ * Handles realtime strategy - processes each event immediately
67
+ */
68
+ private handleRealtimeEvent;
69
+ /**
70
+ * Handles batch-with-updates strategy - buffers events and processes in batches
71
+ */
72
+ private handleBatchWithUpdatesEvent;
73
+ /**
74
+ * Handles insert-only strategy - only processes SPAN_ENDED events in batches
75
+ */
76
+ private handleInsertOnlyEvent;
77
+ /**
78
+ * Calculates retry delay using exponential backoff
79
+ */
80
+ private calculateRetryDelay;
81
+ /**
82
+ * Flushes the current buffer to storage with retry logic
83
+ */
84
+ private flush;
85
+ /**
86
+ * Attempts to flush with exponential backoff retry logic
87
+ */
88
+ private flushWithRetries;
89
+ exportEvent(event: AITracingEvent): Promise<void>;
90
+ shutdown(): Promise<void>;
91
+ }
92
+ export {};
93
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/exporters/default.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAEjB,mBAAmB,EACnB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAIpC,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;CACrC;AAoDD,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,IAAI,SAA8B;IAClC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,UAAU,CAA+B;IAGjD,OAAO,CAAC,eAAe,CAA0B;gBAErC,MAAM,GAAE,cAAmB,EAAE,MAAM,CAAC,EAAE,aAAa;IAkC/D,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAUxC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAgFnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,iBAAiB;IAczB;;OAEG;YACW,mBAAmB;IAyCjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;YACW,KAAK;IAsDnB;;OAEG;YACW,gBAAgB;IA2DxB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBjD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBhC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Mastra AI Tracing Exporters
3
+ */
4
+ export * from './base.js';
5
+ export { CloudExporter } from './cloud.js';
6
+ export type { CloudExporterConfig } from './cloud.js';
7
+ export * from './console.js';
8
+ export * from './default.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exporters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,QAAQ,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}