@mastra/braintrust 0.0.0-fix-backport-setserver-20251201144151 → 0.0.0-fix-request-context-as-query-key-20251209093005
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 +176 -47
- package/README.md +1 -1
- package/dist/index.cjs +123 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -26
- package/dist/index.js.map +1 -1
- package/dist/metrics.d.ts +3 -1
- package/dist/metrics.d.ts.map +1 -1
- package/dist/tracing.d.ts +65 -0
- package/dist/tracing.d.ts.map +1 -0
- package/package.json +18 -16
- package/dist/ai-tracing.d.ts +0 -35
- package/dist/ai-tracing.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,91 +1,215 @@
|
|
|
1
1
|
# @mastra/braintrust
|
|
2
2
|
|
|
3
|
-
## 0.0.0-fix-
|
|
3
|
+
## 0.0.0-fix-request-context-as-query-key-20251209093005
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Major Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
- @mastra/core@0.0.0-fix-backport-setserver-20251201144151
|
|
7
|
+
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
- ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
|
|
12
|
+
import { Mastra } from '@mastra/core';
|
|
13
|
+
import { Observability } from '@mastra/observability'; // Explicit import
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
const mastra = new Mastra({
|
|
16
|
+
...other_config,
|
|
17
|
+
observability: new Observability({
|
|
18
|
+
default: { enabled: true }
|
|
19
|
+
}) // Instance
|
|
20
|
+
});
|
|
21
|
+
```
|
|
15
22
|
|
|
16
|
-
|
|
17
|
-
- @mastra/core@0.24.0
|
|
23
|
+
Instead of:
|
|
18
24
|
|
|
19
|
-
|
|
25
|
+
```
|
|
26
|
+
import { Mastra } from '@mastra/core';
|
|
27
|
+
import '@mastra/observability/init'; // Explicit import
|
|
20
28
|
|
|
21
|
-
|
|
29
|
+
const mastra = new Mastra({
|
|
30
|
+
...other_config,
|
|
31
|
+
observability: {
|
|
32
|
+
default: { enabled: true }
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Also renamed a bunch of:
|
|
38
|
+
- `Tracing` things to `Observability` things.
|
|
39
|
+
- `AI-` things to just things.
|
|
40
|
+
|
|
41
|
+
- Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
|
|
42
|
+
|
|
43
|
+
- moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
|
|
44
|
+
|
|
45
|
+
### Minor Changes
|
|
46
|
+
|
|
47
|
+
- Adds trace tagging support to the BrainTrust and Langfuse tracing exporters. ([#10765](https://github.com/mastra-ai/mastra/pull/10765))
|
|
22
48
|
|
|
23
|
-
-
|
|
49
|
+
- Rename LLM span types and attributes to use Model prefix ([#9105](https://github.com/mastra-ai/mastra/pull/9105))
|
|
50
|
+
|
|
51
|
+
BREAKING CHANGE: This release renames tracing span types and attribute interfaces to use the "Model" prefix instead of "LLM":
|
|
52
|
+
- `AISpanType.LLM_GENERATION` → `AISpanType.MODEL_GENERATION`
|
|
53
|
+
- `AISpanType.LLM_STEP` → `AISpanType.MODEL_STEP`
|
|
54
|
+
- `AISpanType.LLM_CHUNK` → `AISpanType.MODEL_CHUNK`
|
|
55
|
+
- `LLMGenerationAttributes` → `ModelGenerationAttributes`
|
|
56
|
+
- `LLMStepAttributes` → `ModelStepAttributes`
|
|
57
|
+
- `LLMChunkAttributes` → `ModelChunkAttributes`
|
|
58
|
+
- `InternalSpans.LLM` → `InternalSpans.MODEL`
|
|
24
59
|
|
|
25
|
-
|
|
26
|
-
- @mastra/core@0.24.0-alpha.0
|
|
60
|
+
This change better reflects that these span types apply to all AI models, not just Large Language Models.
|
|
27
61
|
|
|
28
|
-
|
|
62
|
+
Migration guide:
|
|
63
|
+
- Update all imports: `import { ModelGenerationAttributes } from '@mastra/core/ai-tracing'`
|
|
64
|
+
- Update span type references: `AISpanType.MODEL_GENERATION`
|
|
65
|
+
- Update InternalSpans usage: `InternalSpans.MODEL`
|
|
29
66
|
|
|
30
67
|
### Patch Changes
|
|
31
68
|
|
|
32
|
-
-
|
|
69
|
+
- dependencies updates: ([#10107](https://github.com/mastra-ai/mastra/pull/10107))
|
|
70
|
+
- Updated dependency [`braintrust@^0.4.9` ↗︎](https://www.npmjs.com/package/braintrust/v/0.4.9) (from `^0.4.3`, in `dependencies`)
|
|
71
|
+
|
|
72
|
+
- Add time-to-first-token (TTFT) support for Braintrust integration ([#10840](https://github.com/mastra-ai/mastra/pull/10840))
|
|
73
|
+
|
|
74
|
+
Adds `time_to_first_token` metric to Braintrust spans, populated from the `completionStartTime` attribute captured when the first streaming chunk arrives.
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
// time_to_first_token is now automatically sent to Braintrust
|
|
78
|
+
// as part of span metrics during streaming
|
|
79
|
+
const result = await agent.stream('Hello');
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
- Fixed import isssues in exporters. ([#9316](https://github.com/mastra-ai/mastra/pull/9316))
|
|
33
83
|
|
|
34
|
-
-
|
|
35
|
-
- @mastra/core@0.23.2
|
|
84
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
36
85
|
|
|
37
|
-
|
|
86
|
+
- Fix Braintrust Thread view not displaying LLM messages correctly ([#10794](https://github.com/mastra-ai/mastra/pull/10794))
|
|
87
|
+
|
|
88
|
+
Transforms LLM input/output format to match Braintrust's expected format for Thread view. Input is unwrapped from `{ messages: [...] }` to direct array format, and output is unwrapped from `{ content: '...' }` to direct string format.
|
|
89
|
+
|
|
90
|
+
- Fixed Braintrust span nesting so root spans correctly show as the trace name. ([#10876](https://github.com/mastra-ai/mastra/pull/10876))
|
|
91
|
+
|
|
92
|
+
- Fix traceMap overwrite when multiple root spans share the same traceId ([#10903](https://github.com/mastra-ai/mastra/pull/10903))
|
|
93
|
+
|
|
94
|
+
Previously, when multiple root spans shared the same traceId (e.g., multiple `agent.stream` calls in the same trace), the trace data would be overwritten instead of reused. This could cause spans to be orphaned or lost.
|
|
95
|
+
|
|
96
|
+
Now both exporters check if a trace already exists before creating a new one, matching the behavior of the Langfuse and PostHog exporters.
|
|
97
|
+
|
|
98
|
+
- Add braintrustLogger as an optional parameter to BraintrustExporter ([#9946](https://github.com/mastra-ai/mastra/pull/9946))
|
|
99
|
+
|
|
100
|
+
- Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`6c59a40`](https://github.com/mastra-ai/mastra/commit/6c59a40e0ad160467bd13d63a8a287028d75b02d), [`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`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), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`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), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`83b08dc`](https://github.com/mastra-ai/mastra/commit/83b08dcf1bfcc915efab23c09207df90fa247908), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`103586c`](https://github.com/mastra-ai/mastra/commit/103586cb23ebcd2466c7f68a71674d37cc10e263), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`a64d16a`](https://github.com/mastra-ai/mastra/commit/a64d16aedafe57ee5707bdcc25f96e07fa1a0233), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`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), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`f111eac`](https://github.com/mastra-ai/mastra/commit/f111eac5de509b2e5fccfc1882e7f74cda264c74), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`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), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`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), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`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), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`0bada2f`](https://github.com/mastra-ai/mastra/commit/0bada2f2c1234932cf30c1c47a719ffb64b801c5), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`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), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`cc60ff6`](https://github.com/mastra-ai/mastra/commit/cc60ff616541a3b0fb531a7e469bf9ae7bb90528), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`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), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
|
|
101
|
+
- @mastra/core@0.0.0-fix-request-context-as-query-key-20251209093005
|
|
102
|
+
- @mastra/observability@0.0.0-fix-request-context-as-query-key-20251209093005
|
|
103
|
+
|
|
104
|
+
## 1.0.0-beta.4
|
|
38
105
|
|
|
39
106
|
### Patch Changes
|
|
40
107
|
|
|
41
|
-
-
|
|
108
|
+
- Fix traceMap overwrite when multiple root spans share the same traceId ([#10903](https://github.com/mastra-ai/mastra/pull/10903))
|
|
109
|
+
|
|
110
|
+
Previously, when multiple root spans shared the same traceId (e.g., multiple `agent.stream` calls in the same trace), the trace data would be overwritten instead of reused. This could cause spans to be orphaned or lost.
|
|
42
111
|
|
|
43
|
-
|
|
44
|
-
- @mastra/core@0.23.2-alpha.0
|
|
112
|
+
Now both exporters check if a trace already exists before creating a new one, matching the behavior of the Langfuse and PostHog exporters.
|
|
45
113
|
|
|
46
|
-
|
|
114
|
+
- Updated dependencies [[`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b)]:
|
|
115
|
+
- @mastra/core@1.0.0-beta.8
|
|
116
|
+
|
|
117
|
+
## 1.0.0-beta.3
|
|
47
118
|
|
|
48
119
|
### Patch Changes
|
|
49
120
|
|
|
50
|
-
-
|
|
121
|
+
- Add time-to-first-token (TTFT) support for Braintrust integration ([#10840](https://github.com/mastra-ai/mastra/pull/10840))
|
|
51
122
|
|
|
52
|
-
|
|
53
|
-
|
|
123
|
+
Adds `time_to_first_token` metric to Braintrust spans, populated from the `completionStartTime` attribute captured when the first streaming chunk arrives.
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
// time_to_first_token is now automatically sent to Braintrust
|
|
127
|
+
// as part of span metrics during streaming
|
|
128
|
+
const result = await agent.stream('Hello');
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
- Fix Braintrust Thread view not displaying LLM messages correctly ([#10794](https://github.com/mastra-ai/mastra/pull/10794))
|
|
132
|
+
|
|
133
|
+
Transforms LLM input/output format to match Braintrust's expected format for Thread view. Input is unwrapped from `{ messages: [...] }` to direct array format, and output is unwrapped from `{ content: '...' }` to direct string format.
|
|
54
134
|
|
|
55
|
-
|
|
135
|
+
- Fixed Braintrust span nesting so root spans correctly show as the trace name. ([#10876](https://github.com/mastra-ai/mastra/pull/10876))
|
|
136
|
+
|
|
137
|
+
- Updated dependencies [[`6c59a40`](https://github.com/mastra-ai/mastra/commit/6c59a40e0ad160467bd13d63a8a287028d75b02d), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`0bada2f`](https://github.com/mastra-ai/mastra/commit/0bada2f2c1234932cf30c1c47a719ffb64b801c5), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`cc60ff6`](https://github.com/mastra-ai/mastra/commit/cc60ff616541a3b0fb531a7e469bf9ae7bb90528), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b)]:
|
|
138
|
+
- @mastra/observability@1.0.0-beta.3
|
|
139
|
+
- @mastra/core@1.0.0-beta.7
|
|
140
|
+
|
|
141
|
+
## 1.0.0-beta.2
|
|
56
142
|
|
|
57
143
|
### Minor Changes
|
|
58
144
|
|
|
59
|
-
-
|
|
145
|
+
- Adds trace tagging support to the BrainTrust and Langfuse tracing exporters. ([#10765](https://github.com/mastra-ai/mastra/pull/10765))
|
|
60
146
|
|
|
61
|
-
|
|
62
|
-
- `AISpanType.LLM_GENERATION` → `AISpanType.MODEL_GENERATION`
|
|
63
|
-
- `AISpanType.LLM_STEP` → `AISpanType.MODEL_STEP`
|
|
64
|
-
- `AISpanType.LLM_CHUNK` → `AISpanType.MODEL_CHUNK`
|
|
65
|
-
- `LLMGenerationAttributes` → `ModelGenerationAttributes`
|
|
66
|
-
- `LLMStepAttributes` → `ModelStepAttributes`
|
|
67
|
-
- `LLMChunkAttributes` → `ModelChunkAttributes`
|
|
68
|
-
- `InternalSpans.LLM` → `InternalSpans.MODEL`
|
|
147
|
+
### Patch Changes
|
|
69
148
|
|
|
70
|
-
|
|
149
|
+
- Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`103586c`](https://github.com/mastra-ai/mastra/commit/103586cb23ebcd2466c7f68a71674d37cc10e263), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749)]:
|
|
150
|
+
- @mastra/core@1.0.0-beta.6
|
|
151
|
+
- @mastra/observability@1.0.0-beta.2
|
|
71
152
|
|
|
72
|
-
|
|
73
|
-
- Update all imports: `import { ModelGenerationAttributes } from '@mastra/core/ai-tracing'`
|
|
74
|
-
- Update span type references: `AISpanType.MODEL_GENERATION`
|
|
75
|
-
- Update InternalSpans usage: `InternalSpans.MODEL`
|
|
153
|
+
## 1.0.0-beta.1
|
|
76
154
|
|
|
77
155
|
### Patch Changes
|
|
78
156
|
|
|
79
|
-
-
|
|
80
|
-
-
|
|
157
|
+
- dependencies updates: ([#10107](https://github.com/mastra-ai/mastra/pull/10107))
|
|
158
|
+
- Updated dependency [`braintrust@^0.4.9` ↗︎](https://www.npmjs.com/package/braintrust/v/0.4.9) (from `^0.4.3`, in `dependencies`)
|
|
159
|
+
|
|
160
|
+
- Add braintrustLogger as an optional parameter to BraintrustExporter ([#9946](https://github.com/mastra-ai/mastra/pull/9946))
|
|
161
|
+
|
|
162
|
+
- Updated dependencies [[`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`a64d16a`](https://github.com/mastra-ai/mastra/commit/a64d16aedafe57ee5707bdcc25f96e07fa1a0233), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4)]:
|
|
163
|
+
- @mastra/core@1.0.0-beta.3
|
|
164
|
+
- @mastra/observability@1.0.0-beta.1
|
|
165
|
+
|
|
166
|
+
## 1.0.0-beta.0
|
|
167
|
+
|
|
168
|
+
### Major Changes
|
|
169
|
+
|
|
170
|
+
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
171
|
+
|
|
172
|
+
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
81
173
|
|
|
82
|
-
|
|
174
|
+
- ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
|
|
175
|
+
import { Mastra } from '@mastra/core';
|
|
176
|
+
import { Observability } from '@mastra/observability'; // Explicit import
|
|
177
|
+
|
|
178
|
+
const mastra = new Mastra({
|
|
179
|
+
...other_config,
|
|
180
|
+
observability: new Observability({
|
|
181
|
+
default: { enabled: true }
|
|
182
|
+
}) // Instance
|
|
183
|
+
});
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Instead of:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
import { Mastra } from '@mastra/core';
|
|
190
|
+
import '@mastra/observability/init'; // Explicit import
|
|
191
|
+
|
|
192
|
+
const mastra = new Mastra({
|
|
193
|
+
...other_config,
|
|
194
|
+
observability: {
|
|
195
|
+
default: { enabled: true }
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Also renamed a bunch of:
|
|
201
|
+
- `Tracing` things to `Observability` things.
|
|
202
|
+
- `AI-` things to just things.
|
|
203
|
+
|
|
204
|
+
- Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
|
|
205
|
+
|
|
206
|
+
- moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
|
|
83
207
|
|
|
84
208
|
### Minor Changes
|
|
85
209
|
|
|
86
210
|
- Rename LLM span types and attributes to use Model prefix ([#9105](https://github.com/mastra-ai/mastra/pull/9105))
|
|
87
211
|
|
|
88
|
-
BREAKING CHANGE: This release renames
|
|
212
|
+
BREAKING CHANGE: This release renames tracing span types and attribute interfaces to use the "Model" prefix instead of "LLM":
|
|
89
213
|
- `AISpanType.LLM_GENERATION` → `AISpanType.MODEL_GENERATION`
|
|
90
214
|
- `AISpanType.LLM_STEP` → `AISpanType.MODEL_STEP`
|
|
91
215
|
- `AISpanType.LLM_CHUNK` → `AISpanType.MODEL_CHUNK`
|
|
@@ -103,8 +227,13 @@
|
|
|
103
227
|
|
|
104
228
|
### Patch Changes
|
|
105
229
|
|
|
106
|
-
-
|
|
107
|
-
|
|
230
|
+
- Fixed import isssues in exporters. ([#9316](https://github.com/mastra-ai/mastra/pull/9316))
|
|
231
|
+
|
|
232
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
233
|
+
|
|
234
|
+
- Updated dependencies [[`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`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), [`83b08dc`](https://github.com/mastra-ai/mastra/commit/83b08dcf1bfcc915efab23c09207df90fa247908), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`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), [`f111eac`](https://github.com/mastra-ai/mastra/commit/f111eac5de509b2e5fccfc1882e7f74cda264c74), [`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), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`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), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`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), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`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), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`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)]:
|
|
235
|
+
- @mastra/core@1.0.0-beta.0
|
|
236
|
+
- @mastra/observability@1.0.0-beta.0
|
|
108
237
|
|
|
109
238
|
## 0.1.9
|
|
110
239
|
|
package/README.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var observability$1 = require('@mastra/core/observability');
|
|
4
|
+
var utils = require('@mastra/core/utils');
|
|
5
|
+
var observability = require('@mastra/observability');
|
|
4
6
|
var braintrust = require('braintrust');
|
|
5
7
|
|
|
6
|
-
// src/
|
|
8
|
+
// src/tracing.ts
|
|
7
9
|
|
|
8
10
|
// src/metrics.ts
|
|
9
11
|
function normalizeUsageMetrics(modelAttr) {
|
|
@@ -30,36 +32,58 @@ function normalizeUsageMetrics(modelAttr) {
|
|
|
30
32
|
if (modelAttr.usage?.promptCacheMissTokens !== void 0) {
|
|
31
33
|
metrics.prompt_cache_creation_tokens = modelAttr.usage?.promptCacheMissTokens;
|
|
32
34
|
}
|
|
35
|
+
if (modelAttr.completionStartTime) {
|
|
36
|
+
const startTime = modelAttr.completionStartTime;
|
|
37
|
+
if (startTime instanceof Date) {
|
|
38
|
+
metrics.time_to_first_token = startTime.getTime();
|
|
39
|
+
} else if (typeof startTime === "number") {
|
|
40
|
+
metrics.time_to_first_token = startTime;
|
|
41
|
+
} else if (typeof startTime === "string") {
|
|
42
|
+
metrics.time_to_first_token = new Date(startTime).getTime();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
33
45
|
return metrics;
|
|
34
46
|
}
|
|
35
47
|
|
|
36
|
-
// src/
|
|
48
|
+
// src/tracing.ts
|
|
49
|
+
var MASTRA_TRACE_ID_METADATA_KEY = "mastra-trace-id";
|
|
37
50
|
var DEFAULT_SPAN_TYPE = "task";
|
|
38
51
|
var SPAN_TYPE_EXCEPTIONS = {
|
|
39
|
-
[
|
|
40
|
-
[
|
|
41
|
-
[
|
|
42
|
-
[
|
|
43
|
-
[
|
|
44
|
-
[
|
|
52
|
+
[observability$1.SpanType.MODEL_GENERATION]: "llm",
|
|
53
|
+
[observability$1.SpanType.MODEL_CHUNK]: "llm",
|
|
54
|
+
[observability$1.SpanType.TOOL_CALL]: "tool",
|
|
55
|
+
[observability$1.SpanType.MCP_TOOL_CALL]: "tool",
|
|
56
|
+
[observability$1.SpanType.WORKFLOW_CONDITIONAL_EVAL]: "function",
|
|
57
|
+
[observability$1.SpanType.WORKFLOW_WAIT_EVENT]: "function"
|
|
45
58
|
};
|
|
46
59
|
function mapSpanType(spanType) {
|
|
47
60
|
return SPAN_TYPE_EXCEPTIONS[spanType] ?? DEFAULT_SPAN_TYPE;
|
|
48
61
|
}
|
|
49
|
-
var BraintrustExporter = class extends
|
|
62
|
+
var BraintrustExporter = class extends observability.BaseExporter {
|
|
50
63
|
name = "braintrust";
|
|
51
64
|
traceMap = /* @__PURE__ */ new Map();
|
|
52
65
|
config;
|
|
66
|
+
// Flags and logger for context-aware mode
|
|
67
|
+
useProvidedLogger;
|
|
68
|
+
providedLogger;
|
|
53
69
|
constructor(config) {
|
|
54
70
|
super(config);
|
|
55
|
-
if (
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
58
|
-
|
|
71
|
+
if (config.braintrustLogger) {
|
|
72
|
+
this.useProvidedLogger = true;
|
|
73
|
+
this.providedLogger = config.braintrustLogger;
|
|
74
|
+
this.config = config;
|
|
75
|
+
} else {
|
|
76
|
+
if (!config.apiKey) {
|
|
77
|
+
this.setDisabled(`Missing required credentials (apiKey: ${!!config.apiKey})`);
|
|
78
|
+
this.config = null;
|
|
79
|
+
this.useProvidedLogger = false;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.useProvidedLogger = false;
|
|
83
|
+
this.config = config;
|
|
59
84
|
}
|
|
60
|
-
this.config = config;
|
|
61
85
|
}
|
|
62
|
-
async
|
|
86
|
+
async _exportTracingEvent(event) {
|
|
63
87
|
if (event.exportedSpan.isEvent) {
|
|
64
88
|
await this.handleEventSpan(event.exportedSpan);
|
|
65
89
|
return;
|
|
@@ -78,7 +102,11 @@ var BraintrustExporter = class extends aiTracing.BaseExporter {
|
|
|
78
102
|
}
|
|
79
103
|
async handleSpanStarted(span) {
|
|
80
104
|
if (span.isRootSpan) {
|
|
81
|
-
|
|
105
|
+
if (this.useProvidedLogger) {
|
|
106
|
+
await this.initLoggerOrUseContext(span);
|
|
107
|
+
} else {
|
|
108
|
+
await this.initLoggerPerTrace(span);
|
|
109
|
+
}
|
|
82
110
|
}
|
|
83
111
|
const method = "handleSpanStarted";
|
|
84
112
|
const spanData = this.getSpanData({ span, method });
|
|
@@ -97,9 +125,14 @@ var BraintrustExporter = class extends aiTracing.BaseExporter {
|
|
|
97
125
|
spanId: span.id,
|
|
98
126
|
name: span.name,
|
|
99
127
|
type: mapSpanType(span.type),
|
|
100
|
-
parentSpanIds: span.parentSpanId ? { spanId: span.parentSpanId, rootSpanId: span.traceId } : { spanId: span.traceId, rootSpanId: span.traceId },
|
|
101
128
|
...payload
|
|
102
129
|
});
|
|
130
|
+
braintrustSpan.log({
|
|
131
|
+
metadata: {
|
|
132
|
+
[MASTRA_TRACE_ID_METADATA_KEY]: span.traceId
|
|
133
|
+
},
|
|
134
|
+
...span.isRootSpan && span.tags?.length ? { tags: span.tags } : {}
|
|
135
|
+
});
|
|
103
136
|
spanData.spans.set(span.id, braintrustSpan);
|
|
104
137
|
}
|
|
105
138
|
async handleSpanUpdateOrEnd(span, isEnd) {
|
|
@@ -131,7 +164,7 @@ var BraintrustExporter = class extends aiTracing.BaseExporter {
|
|
|
131
164
|
if (!span.isEvent) {
|
|
132
165
|
spanData.activeIds.delete(span.id);
|
|
133
166
|
}
|
|
134
|
-
if (spanData.activeIds.size === 0) {
|
|
167
|
+
if (spanData.activeIds.size === 0 && !spanData.isExternal) {
|
|
135
168
|
this.traceMap.delete(span.traceId);
|
|
136
169
|
}
|
|
137
170
|
}
|
|
@@ -144,7 +177,11 @@ var BraintrustExporter = class extends aiTracing.BaseExporter {
|
|
|
144
177
|
spanName: span.name,
|
|
145
178
|
method: "handleEventSpan"
|
|
146
179
|
});
|
|
147
|
-
|
|
180
|
+
if (this.useProvidedLogger) {
|
|
181
|
+
await this.initLoggerOrUseContext(span);
|
|
182
|
+
} else {
|
|
183
|
+
await this.initLoggerPerTrace(span);
|
|
184
|
+
}
|
|
148
185
|
}
|
|
149
186
|
const method = "handleEventSpan";
|
|
150
187
|
const spanData = this.getSpanData({ span, method });
|
|
@@ -160,20 +197,56 @@ var BraintrustExporter = class extends aiTracing.BaseExporter {
|
|
|
160
197
|
spanId: span.id,
|
|
161
198
|
name: span.name,
|
|
162
199
|
type: mapSpanType(span.type),
|
|
163
|
-
parentSpanIds: span.parentSpanId ? { spanId: span.parentSpanId, rootSpanId: span.traceId } : { spanId: span.traceId, rootSpanId: span.traceId },
|
|
164
200
|
startTime: span.startTime.getTime() / 1e3,
|
|
165
201
|
...payload
|
|
166
202
|
});
|
|
167
203
|
braintrustSpan.end({ endTime: span.startTime.getTime() / 1e3 });
|
|
168
204
|
}
|
|
169
|
-
|
|
205
|
+
initTraceMap(params) {
|
|
206
|
+
const { traceId, isExternal, logger } = params;
|
|
207
|
+
if (this.traceMap.has(traceId)) {
|
|
208
|
+
this.logger.debug("Braintrust exporter: Reusing existing trace from local map", { traceId });
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
this.traceMap.set(traceId, {
|
|
212
|
+
logger,
|
|
213
|
+
spans: /* @__PURE__ */ new Map(),
|
|
214
|
+
activeIds: /* @__PURE__ */ new Set(),
|
|
215
|
+
isExternal
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Creates a new logger per trace using config credentials
|
|
220
|
+
*/
|
|
221
|
+
async initLoggerPerTrace(span) {
|
|
222
|
+
if (this.traceMap.has(span.traceId)) {
|
|
223
|
+
this.logger.debug("Braintrust exporter: Reusing existing trace from local map", { traceId: span.traceId });
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
170
226
|
const logger = await braintrust.initLogger({
|
|
171
227
|
projectName: this.config.projectName ?? "mastra-tracing",
|
|
172
228
|
apiKey: this.config.apiKey,
|
|
173
229
|
appUrl: this.config.endpoint,
|
|
174
230
|
...this.config.tuningParameters
|
|
175
231
|
});
|
|
176
|
-
this.
|
|
232
|
+
this.initTraceMap({ logger, isExternal: false, traceId: span.traceId });
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Uses provided logger and detects external Braintrust spans.
|
|
236
|
+
* If a Braintrust span is detected (from logger.traced() or Eval()), attaches to it.
|
|
237
|
+
* Otherwise, uses the provided logger instance.
|
|
238
|
+
*/
|
|
239
|
+
async initLoggerOrUseContext(span) {
|
|
240
|
+
if (this.traceMap.has(span.traceId)) {
|
|
241
|
+
this.logger.debug("Braintrust exporter: Reusing existing trace from local map", { traceId: span.traceId });
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
const braintrustSpan = braintrust.currentSpan();
|
|
245
|
+
if (braintrustSpan && braintrustSpan.id) {
|
|
246
|
+
this.initTraceMap({ logger: braintrustSpan, isExternal: true, traceId: span.traceId });
|
|
247
|
+
} else {
|
|
248
|
+
this.initTraceMap({ logger: this.providedLogger, isExternal: false, traceId: span.traceId });
|
|
249
|
+
}
|
|
177
250
|
}
|
|
178
251
|
getSpanData(options) {
|
|
179
252
|
const { span, method } = options;
|
|
@@ -212,13 +285,36 @@ var BraintrustExporter = class extends aiTracing.BaseExporter {
|
|
|
212
285
|
method
|
|
213
286
|
});
|
|
214
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Transforms MODEL_GENERATION input to Braintrust Thread view format.
|
|
290
|
+
*/
|
|
291
|
+
transformInput(input, spanType) {
|
|
292
|
+
if (spanType === observability$1.SpanType.MODEL_GENERATION) {
|
|
293
|
+
if (input && Array.isArray(input.messages)) {
|
|
294
|
+
return input.messages;
|
|
295
|
+
} else if (input && typeof input === "object" && "content" in input) {
|
|
296
|
+
return [{ role: input.role, content: input.content }];
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return input;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Transforms MODEL_GENERATION output to Braintrust Thread view format.
|
|
303
|
+
*/
|
|
304
|
+
transformOutput(output, spanType) {
|
|
305
|
+
if (spanType === observability$1.SpanType.MODEL_GENERATION) {
|
|
306
|
+
const { text, ...rest } = output;
|
|
307
|
+
return { role: "assistant", content: text, ...rest };
|
|
308
|
+
}
|
|
309
|
+
return output;
|
|
310
|
+
}
|
|
215
311
|
buildSpanPayload(span) {
|
|
216
312
|
const payload = {};
|
|
217
313
|
if (span.input !== void 0) {
|
|
218
|
-
payload.input = span.input;
|
|
314
|
+
payload.input = this.transformInput(span.input, span.type);
|
|
219
315
|
}
|
|
220
316
|
if (span.output !== void 0) {
|
|
221
|
-
payload.output = span.output;
|
|
317
|
+
payload.output = this.transformOutput(span.output, span.type);
|
|
222
318
|
}
|
|
223
319
|
payload.metrics = {};
|
|
224
320
|
payload.metadata = {
|
|
@@ -226,7 +322,7 @@ var BraintrustExporter = class extends aiTracing.BaseExporter {
|
|
|
226
322
|
...span.metadata
|
|
227
323
|
};
|
|
228
324
|
const attributes = span.attributes ?? {};
|
|
229
|
-
if (span.type ===
|
|
325
|
+
if (span.type === observability$1.SpanType.MODEL_GENERATION) {
|
|
230
326
|
const modelAttr = attributes;
|
|
231
327
|
if (modelAttr.model !== void 0) {
|
|
232
328
|
payload.metadata.model = modelAttr.model;
|
|
@@ -238,7 +334,7 @@ var BraintrustExporter = class extends aiTracing.BaseExporter {
|
|
|
238
334
|
if (modelAttr.parameters !== void 0) {
|
|
239
335
|
payload.metadata.modelParameters = modelAttr.parameters;
|
|
240
336
|
}
|
|
241
|
-
const otherAttributes =
|
|
337
|
+
const otherAttributes = utils.omitKeys(attributes, ["model", "usage", "parameters"]);
|
|
242
338
|
payload.metadata = {
|
|
243
339
|
...payload.metadata,
|
|
244
340
|
...otherAttributes
|