@mastra/ai-sdk 1.8.0-alpha.0 → 1.8.0-alpha.2
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 +27 -0
- package/dist/helpers.d.ts +9 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/index.cjs +11 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @mastra/ai-sdk
|
|
2
2
|
|
|
3
|
+
## 1.8.0-alpha.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fixed the finish reason dropping out of AI SDK UI message streams. The final `finish` chunk from `handleChatStream` and `toAISdkStream` now carries `finishReason`, so clients can tell `stop`, `length`, `content-filter`, `tool-calls` and `other` apart. This matches the AI SDK behavior. Fixes #20562. ([#20983](https://github.com/mastra-ai/mastra/pull/20983))
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`cdd5c33`](https://github.com/mastra-ai/mastra/commit/cdd5c33ac6c7118a9f139e6dc0e14e6a8ae31658), [`d7cf7fa`](https://github.com/mastra-ai/mastra/commit/d7cf7fafc1ae1b50bd8462dd0e6c671a8606db93), [`0f9a448`](https://github.com/mastra-ai/mastra/commit/0f9a448502157e59f7b76f24360ad497168f5ef8), [`289f4ce`](https://github.com/mastra-ai/mastra/commit/289f4ce16e3293370440172132c52ee787cbc09f), [`4f16ff8`](https://github.com/mastra-ai/mastra/commit/4f16ff824bf2f9b0ddc93f210477c10c8a4fb1ab), [`1c67d85`](https://github.com/mastra-ai/mastra/commit/1c67d85e9da8285662f4dbbf47e0378c3fee0747), [`ba24be6`](https://github.com/mastra-ai/mastra/commit/ba24be662439c331ab23a600041f93803c89eca8), [`842b5fe`](https://github.com/mastra-ai/mastra/commit/842b5fe22b6a7fa811bd14e48eb9af523ac989f2), [`80bdf3a`](https://github.com/mastra-ai/mastra/commit/80bdf3ae16ade6ff63bde0cb16fa2df8ab7dd4dd), [`9ba1247`](https://github.com/mastra-ai/mastra/commit/9ba12470c77f1c03642d720ce67e517e878f666e), [`fd96298`](https://github.com/mastra-ai/mastra/commit/fd96298a8367622f4ebfcaa97b5b6c1fbbd14564), [`6a84954`](https://github.com/mastra-ai/mastra/commit/6a84954a2667f85b6d59da652dab1bbff007ccb0), [`52d8ef0`](https://github.com/mastra-ai/mastra/commit/52d8ef03801f1deb7ee48532fc4190dd4a33916c), [`cdd5c33`](https://github.com/mastra-ai/mastra/commit/cdd5c33ac6c7118a9f139e6dc0e14e6a8ae31658), [`efd5c81`](https://github.com/mastra-ai/mastra/commit/efd5c81cc25fde3c2ddd86fc1178deb4ec176e19), [`0976933`](https://github.com/mastra-ai/mastra/commit/0976933142333ec78451feef265b68bcb45aa5e7), [`242b945`](https://github.com/mastra-ai/mastra/commit/242b94558777bfbdeb42cbfea84afff0b6ad0633), [`fea5cae`](https://github.com/mastra-ai/mastra/commit/fea5caedc7e2cfea51784a15e015952692027abf), [`4b59f78`](https://github.com/mastra-ai/mastra/commit/4b59f786cbc9a7d1ef07a07517dbd4b96865e99d), [`7010c5d`](https://github.com/mastra-ai/mastra/commit/7010c5d15728bf9c5dfe4fb6b1bf80ce23bf143a)]:
|
|
10
|
+
- @mastra/core@1.58.0-alpha.3
|
|
11
|
+
|
|
12
|
+
## 1.8.0-alpha.1
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Enqueue a `tool-output-denied` chunk when a `requireApproval` tool is declined so live AI SDK clients resolve the pending tool call instead of hanging. Persistence as `output-denied` already worked; only the stream path was missing. ([#20886](https://github.com/mastra-ai/mastra/pull/20886))
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
for await (const part of toAISdkStream(result.fullStream, { from: 'agent' })) {
|
|
20
|
+
if (part.type === 'tool-output-denied') {
|
|
21
|
+
// Clears the pending requireApproval tool call on the client
|
|
22
|
+
console.log('denied', part.toolCallId);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- Updated dependencies [[`b4c89b4`](https://github.com/mastra-ai/mastra/commit/b4c89b4371b0c86da57403ad1a3b3ef0681f3128), [`e44e8f3`](https://github.com/mastra-ai/mastra/commit/e44e8f370b66c339ddcaba946d33da6d3c3f06cd), [`c967a5e`](https://github.com/mastra-ai/mastra/commit/c967a5eec150c5dc5418c4a4388982d1fb7ad27c), [`f53d5bd`](https://github.com/mastra-ai/mastra/commit/f53d5bd4885b29e4ac29a428a6044088ea8d6aa3), [`bda2235`](https://github.com/mastra-ai/mastra/commit/bda22353ee28f2df0eaea555f7cae1549f979c0b), [`a7eb4a1`](https://github.com/mastra-ai/mastra/commit/a7eb4a11450f6170274ed5141bffe821d4fdd5a6), [`2f9ef3f`](https://github.com/mastra-ai/mastra/commit/2f9ef3f4ca06fc2dcdd5088c26b7f4da6a016791), [`e7eefcb`](https://github.com/mastra-ai/mastra/commit/e7eefcb162cda7c493e8c3bf43050ead0efbcb2c), [`4d7aca2`](https://github.com/mastra-ai/mastra/commit/4d7aca2fe75f225c83d1502d63079568e6ec163f), [`c4ec889`](https://github.com/mastra-ai/mastra/commit/c4ec889561c0264c43f66d04d587bee4ce35e792), [`9be8878`](https://github.com/mastra-ai/mastra/commit/9be8878dcf0388e84fc4873e0eec27bd49b881a4)]:
|
|
28
|
+
- @mastra/core@1.58.0-alpha.2
|
|
29
|
+
|
|
3
30
|
## 1.8.0-alpha.0
|
|
4
31
|
|
|
5
32
|
### Minor Changes
|
package/dist/helpers.d.ts
CHANGED
|
@@ -15,6 +15,13 @@ export declare const APPROVAL_ID_SEPARATOR = "::";
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function toAISDKFinishReason(reason: MastraFinishReason): FinishReason;
|
|
17
17
|
export type OutputChunkType<OUTPUT = undefined> = TextStreamPart<ToolSet> | ObjectStreamPart<Partial<OUTPUT>> | ToolApprovalRequest | DataChunkType | undefined;
|
|
18
|
+
type AISDKToolOutputDenied = {
|
|
19
|
+
type: 'tool-output-denied';
|
|
20
|
+
toolCallId: string;
|
|
21
|
+
toolName: string;
|
|
22
|
+
providerExecuted?: boolean;
|
|
23
|
+
dynamic?: boolean;
|
|
24
|
+
};
|
|
18
25
|
export type ToolAgentChunkType = {
|
|
19
26
|
type: 'tool-agent';
|
|
20
27
|
toolCallId: string;
|
|
@@ -47,9 +54,9 @@ export declare function toAISDKFinishReasonV6(reason: MastraFinishReason): Finis
|
|
|
47
54
|
export declare function convertMastraChunkToAISDKv6<OUTPUT = undefined>({ chunk, mode, }: {
|
|
48
55
|
chunk: ChunkType<OUTPUT>;
|
|
49
56
|
mode?: 'generate' | 'stream';
|
|
50
|
-
}): OutputChunkType<OUTPUT> | OutputChunkType<OUTPUT>[];
|
|
57
|
+
}): OutputChunkType<OUTPUT> | AISDKToolOutputDenied | OutputChunkType<OUTPUT>[];
|
|
51
58
|
export declare function convertFullStreamChunkToUIMessageStream<UI_MESSAGE extends UIMessage>({ part, messageMetadataValue, sendReasoning, sendSources, onError, sendStart, sendFinish, responseMessageId, }: {
|
|
52
|
-
part: TextStreamPart<ToolSet> | DataChunkType | ToolApprovalRequest | {
|
|
59
|
+
part: TextStreamPart<ToolSet> | AISDKToolOutputDenied | DataChunkType | ToolApprovalRequest | {
|
|
53
60
|
type: 'tool-output';
|
|
54
61
|
toolCallId: string;
|
|
55
62
|
output: any;
|
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAEnB,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,SAAS,EACT,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAEV,YAAY,IAAI,cAAc,EAC9B,mBAAmB,IAAI,qBAAqB,EAE5C,mBAAmB,EACnB,SAAS,IAAI,WAAW,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGxF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAK5E;AAED,MAAM,MAAM,eAAe,CAAC,MAAM,GAAG,SAAS,IAC1C,cAAc,CAAC,OAAO,CAAC,GACvB,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GACjC,mBAAmB,GACnB,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC;AAC1F,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC;AAChG,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC;AAE9F,KAAK,gCAAgC,CAAC,MAAM,IAAI;IAC9C,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC7B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,SAAS,KAAK,GAAG,EAAE,CAAC;IAC1D,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACpC,qBAAqB,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAC9D,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AA8EF,wBAAgB,6BAA6B,CAAC,MAAM,GAAG,SAAS,EAAE,EAChE,KAAK,EACL,IAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,sBAA8B,GAC/B,EAAE,gCAAgC,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CA0RpE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,GAAG,SAAS,EAAE,EAC9D,KAAK,EACL,IAAe,GAChB,EAAE;IACD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;CAC9B,GAAG,eAAe,CAAC,MAAM,CAAC,CAQ1B;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAYhF;AAkDD,wBAAgB,2BAA2B,CAAC,MAAM,GAAG,SAAS,EAAE,EAC9D,KAAK,EACL,IAAe,GAChB,EAAE;IACD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;CAC9B,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -8863,6 +8863,7 @@ const isMastraTextStreamChunk = (chunk) => {
|
|
|
8863
8863
|
"tool-call",
|
|
8864
8864
|
"tool-result",
|
|
8865
8865
|
"tool-error",
|
|
8866
|
+
"tool-output-denied",
|
|
8866
8867
|
"error",
|
|
8867
8868
|
"start-step",
|
|
8868
8869
|
"finish-step",
|
|
@@ -9215,6 +9216,11 @@ function normalizeV6Usage(usage) {
|
|
|
9215
9216
|
};
|
|
9216
9217
|
}
|
|
9217
9218
|
function convertMastraChunkToAISDKv6({ chunk, mode = "stream" }) {
|
|
9219
|
+
if (chunk.type === "tool-output-denied") return {
|
|
9220
|
+
type: "tool-output-denied",
|
|
9221
|
+
toolCallId: chunk.payload.toolCallId,
|
|
9222
|
+
toolName: chunk.payload.toolName
|
|
9223
|
+
};
|
|
9218
9224
|
if (chunk.type === "tool-call-approval") {
|
|
9219
9225
|
const displayTransform = getTransformedToolPayload(chunk.metadata, "display", "approval");
|
|
9220
9226
|
return [{
|
|
@@ -9343,6 +9349,10 @@ function convertFullStreamChunkToUIMessageStream({ part, messageMetadataValue, s
|
|
|
9343
9349
|
...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},
|
|
9344
9350
|
...part.dynamic != null ? { dynamic: part.dynamic } : {}
|
|
9345
9351
|
};
|
|
9352
|
+
case "tool-output-denied": return {
|
|
9353
|
+
type: "tool-output-denied",
|
|
9354
|
+
toolCallId: part.toolCallId
|
|
9355
|
+
};
|
|
9346
9356
|
case "tool-output":
|
|
9347
9357
|
if (part.output.from === "AGENT") return {
|
|
9348
9358
|
type: "tool-agent",
|
|
@@ -9395,6 +9405,7 @@ function convertFullStreamChunkToUIMessageStream({ part, messageMetadataValue, s
|
|
|
9395
9405
|
case "finish":
|
|
9396
9406
|
if (sendFinish) return {
|
|
9397
9407
|
type: "finish",
|
|
9408
|
+
...part.finishReason != null ? { finishReason: part.finishReason } : {},
|
|
9398
9409
|
...messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}
|
|
9399
9410
|
};
|
|
9400
9411
|
return;
|