ai 6.0.289 → 6.0.291

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 (33) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/index.d.mts +13 -0
  3. package/dist/index.d.ts +13 -0
  4. package/dist/index.js +326 -250
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +263 -182
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/internal/index.js +4 -2
  9. package/dist/internal/index.js.map +1 -1
  10. package/dist/internal/index.mjs +4 -2
  11. package/dist/internal/index.mjs.map +1 -1
  12. package/docs/03-ai-sdk-core/16-mcp-tools.mdx +57 -0
  13. package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +7 -0
  14. package/package.json +4 -3
  15. package/src/embed/embed-many.ts +19 -3
  16. package/src/generate-speech/generated-audio-file.ts +0 -8
  17. package/src/generate-text/generated-file.ts +0 -4
  18. package/src/generate-text/parse-tool-call.ts +30 -23
  19. package/src/generate-text/stream-text.ts +9 -1
  20. package/src/generate-text/to-response-messages.ts +7 -0
  21. package/src/generate-text/tool-call.ts +26 -0
  22. package/src/generate-text/validate-tool-approvals.ts +20 -2
  23. package/src/middleware/extract-reasoning-middleware.ts +1 -1
  24. package/src/middleware/wrap-embedding-model.ts +12 -2
  25. package/src/model/get-embedding-model-provider-options-transformer.ts +17 -0
  26. package/src/prompt/content-part.ts +2 -0
  27. package/src/ui/chat.ts +108 -17
  28. package/src/ui/convert-to-model-messages.ts +8 -0
  29. package/src/ui/process-ui-message-stream.ts +6 -0
  30. package/src/ui/ui-messages.ts +10 -0
  31. package/src/ui/validate-ui-messages.ts +79 -114
  32. package/src/ui-message-stream/ui-message-chunks.ts +2 -0
  33. package/src/util/write-to-server-response.ts +0 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # ai
2
2
 
3
+ ## 6.0.291
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [1915a6f]
8
+ - @ai-sdk/gateway@3.0.201
9
+
10
+ ## 6.0.290
11
+
12
+ ### Patch Changes
13
+
14
+ - 069a945: Fix Google `embedMany` calls with more than 100 values by keeping per-value multimodal content aligned across automatic batches, including text-only entries. Validate content length before sending requests and validate each batch's provider options after middleware transforms them.
15
+ - 7f42b4d: fix(ai): resume tool approvals from earlier messages
16
+ - d1a36d2: fix(ai): execute manually approved tool inputs produced by schema transforms
17
+
18
+ Preserve approved inputs during revalidation and reject histories whose reconstructed schema output differs, including signed approvals with missing original input. Validate transformed UI tool inputs against the reconstructed output before returning them as static tool parts.
19
+
20
+ - f7f36d2: chore: enable dead code lint rules
21
+ - 7c41f5e: fix(ai): preserve parsed metadata and data values when validating UI messages
22
+ - Updated dependencies [069a945]
23
+ - Updated dependencies [d1a36d2]
24
+ - Updated dependencies [f7f36d2]
25
+ - Updated dependencies [be4ca16]
26
+ - Updated dependencies [ffb9507]
27
+ - Updated dependencies [bbd0115]
28
+ - @ai-sdk/provider-utils@4.0.54
29
+ - @ai-sdk/gateway@3.0.200
30
+
3
31
  ## 6.0.289
4
32
 
5
33
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1759,6 +1759,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1759
1759
  descriptor?: unknown;
1760
1760
  reason?: never;
1761
1761
  signature?: string;
1762
+ inputSchemaInput?: unknown;
1762
1763
  };
1763
1764
  } | {
1764
1765
  state: 'approval-responded';
@@ -1772,6 +1773,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1772
1773
  descriptor?: unknown;
1773
1774
  reason?: string;
1774
1775
  signature?: string;
1776
+ inputSchemaInput?: unknown;
1775
1777
  };
1776
1778
  } | {
1777
1779
  state: 'output-available';
@@ -1787,6 +1789,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1787
1789
  descriptor?: unknown;
1788
1790
  reason?: string;
1789
1791
  signature?: string;
1792
+ inputSchemaInput?: unknown;
1790
1793
  };
1791
1794
  } | {
1792
1795
  state: 'output-error';
@@ -1802,6 +1805,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1802
1805
  descriptor?: unknown;
1803
1806
  reason?: string;
1804
1807
  signature?: string;
1808
+ inputSchemaInput?: unknown;
1805
1809
  };
1806
1810
  } | {
1807
1811
  state: 'output-denied';
@@ -1815,6 +1819,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1815
1819
  descriptor?: unknown;
1816
1820
  reason?: string;
1817
1821
  signature?: string;
1822
+ inputSchemaInput?: unknown;
1818
1823
  };
1819
1824
  });
1820
1825
  type ToolUIPart<TOOLS extends UITools = UITools> = ValueOf<{
@@ -1864,6 +1869,7 @@ type DynamicToolUIPart = {
1864
1869
  descriptor?: unknown;
1865
1870
  reason?: never;
1866
1871
  signature?: string;
1872
+ inputSchemaInput?: unknown;
1867
1873
  };
1868
1874
  } | {
1869
1875
  state: 'approval-responded';
@@ -1877,6 +1883,7 @@ type DynamicToolUIPart = {
1877
1883
  descriptor?: unknown;
1878
1884
  reason?: string;
1879
1885
  signature?: string;
1886
+ inputSchemaInput?: unknown;
1880
1887
  };
1881
1888
  } | {
1882
1889
  state: 'output-available';
@@ -1892,6 +1899,7 @@ type DynamicToolUIPart = {
1892
1899
  descriptor?: unknown;
1893
1900
  reason?: string;
1894
1901
  signature?: string;
1902
+ inputSchemaInput?: unknown;
1895
1903
  };
1896
1904
  } | {
1897
1905
  state: 'output-error';
@@ -1906,6 +1914,7 @@ type DynamicToolUIPart = {
1906
1914
  descriptor?: unknown;
1907
1915
  reason?: string;
1908
1916
  signature?: string;
1917
+ inputSchemaInput?: unknown;
1909
1918
  };
1910
1919
  } | {
1911
1920
  state: 'output-denied';
@@ -1919,6 +1928,7 @@ type DynamicToolUIPart = {
1919
1928
  descriptor?: unknown;
1920
1929
  reason?: string;
1921
1930
  signature?: string;
1931
+ inputSchemaInput?: unknown;
1922
1932
  };
1923
1933
  });
1924
1934
  /**
@@ -2051,6 +2061,7 @@ type UIMessageChunk<METADATA = unknown, DATA_TYPES extends UIDataTypes = UIDataT
2051
2061
  approvalId: string;
2052
2062
  toolCallId: string;
2053
2063
  approvalDescriptor?: unknown;
2064
+ inputSchemaInput?: unknown;
2054
2065
  signature?: string;
2055
2066
  } | {
2056
2067
  type: 'tool-output-available';
@@ -3848,6 +3859,7 @@ declare abstract class AbstractChat<UI_MESSAGE extends UIMessage> {
3848
3859
  private onFinish?;
3849
3860
  private onData?;
3850
3861
  private sendAutomaticallyWhen?;
3862
+ private pendingApprovalMessageId;
3851
3863
  private activeResponse;
3852
3864
  private activeResumeRequest;
3853
3865
  private jobExecutor;
@@ -3917,6 +3929,7 @@ declare abstract class AbstractChat<UI_MESSAGE extends UIMessage> {
3917
3929
  */
3918
3930
  stop: () => Promise<void>;
3919
3931
  private shouldSendAutomatically;
3932
+ private makeRequestForToolApproval;
3920
3933
  private makeRequest;
3921
3934
  }
3922
3935
 
package/dist/index.d.ts CHANGED
@@ -1759,6 +1759,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1759
1759
  descriptor?: unknown;
1760
1760
  reason?: never;
1761
1761
  signature?: string;
1762
+ inputSchemaInput?: unknown;
1762
1763
  };
1763
1764
  } | {
1764
1765
  state: 'approval-responded';
@@ -1772,6 +1773,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1772
1773
  descriptor?: unknown;
1773
1774
  reason?: string;
1774
1775
  signature?: string;
1776
+ inputSchemaInput?: unknown;
1775
1777
  };
1776
1778
  } | {
1777
1779
  state: 'output-available';
@@ -1787,6 +1789,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1787
1789
  descriptor?: unknown;
1788
1790
  reason?: string;
1789
1791
  signature?: string;
1792
+ inputSchemaInput?: unknown;
1790
1793
  };
1791
1794
  } | {
1792
1795
  state: 'output-error';
@@ -1802,6 +1805,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1802
1805
  descriptor?: unknown;
1803
1806
  reason?: string;
1804
1807
  signature?: string;
1808
+ inputSchemaInput?: unknown;
1805
1809
  };
1806
1810
  } | {
1807
1811
  state: 'output-denied';
@@ -1815,6 +1819,7 @@ type UIToolInvocation<TOOL extends UITool | Tool> = {
1815
1819
  descriptor?: unknown;
1816
1820
  reason?: string;
1817
1821
  signature?: string;
1822
+ inputSchemaInput?: unknown;
1818
1823
  };
1819
1824
  });
1820
1825
  type ToolUIPart<TOOLS extends UITools = UITools> = ValueOf<{
@@ -1864,6 +1869,7 @@ type DynamicToolUIPart = {
1864
1869
  descriptor?: unknown;
1865
1870
  reason?: never;
1866
1871
  signature?: string;
1872
+ inputSchemaInput?: unknown;
1867
1873
  };
1868
1874
  } | {
1869
1875
  state: 'approval-responded';
@@ -1877,6 +1883,7 @@ type DynamicToolUIPart = {
1877
1883
  descriptor?: unknown;
1878
1884
  reason?: string;
1879
1885
  signature?: string;
1886
+ inputSchemaInput?: unknown;
1880
1887
  };
1881
1888
  } | {
1882
1889
  state: 'output-available';
@@ -1892,6 +1899,7 @@ type DynamicToolUIPart = {
1892
1899
  descriptor?: unknown;
1893
1900
  reason?: string;
1894
1901
  signature?: string;
1902
+ inputSchemaInput?: unknown;
1895
1903
  };
1896
1904
  } | {
1897
1905
  state: 'output-error';
@@ -1906,6 +1914,7 @@ type DynamicToolUIPart = {
1906
1914
  descriptor?: unknown;
1907
1915
  reason?: string;
1908
1916
  signature?: string;
1917
+ inputSchemaInput?: unknown;
1909
1918
  };
1910
1919
  } | {
1911
1920
  state: 'output-denied';
@@ -1919,6 +1928,7 @@ type DynamicToolUIPart = {
1919
1928
  descriptor?: unknown;
1920
1929
  reason?: string;
1921
1930
  signature?: string;
1931
+ inputSchemaInput?: unknown;
1922
1932
  };
1923
1933
  });
1924
1934
  /**
@@ -2051,6 +2061,7 @@ type UIMessageChunk<METADATA = unknown, DATA_TYPES extends UIDataTypes = UIDataT
2051
2061
  approvalId: string;
2052
2062
  toolCallId: string;
2053
2063
  approvalDescriptor?: unknown;
2064
+ inputSchemaInput?: unknown;
2054
2065
  signature?: string;
2055
2066
  } | {
2056
2067
  type: 'tool-output-available';
@@ -3848,6 +3859,7 @@ declare abstract class AbstractChat<UI_MESSAGE extends UIMessage> {
3848
3859
  private onFinish?;
3849
3860
  private onData?;
3850
3861
  private sendAutomaticallyWhen?;
3862
+ private pendingApprovalMessageId;
3851
3863
  private activeResponse;
3852
3864
  private activeResumeRequest;
3853
3865
  private jobExecutor;
@@ -3917,6 +3929,7 @@ declare abstract class AbstractChat<UI_MESSAGE extends UIMessage> {
3917
3929
  */
3918
3930
  stop: () => Promise<void>;
3919
3931
  private shouldSendAutomatically;
3932
+ private makeRequestForToolApproval;
3920
3933
  private makeRequest;
3921
3934
  }
3922
3935