ai 4.1.8 → 4.1.10

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/dist/index.js CHANGED
@@ -84,7 +84,8 @@ __export(streams_exports, {
84
84
  smoothStream: () => smoothStream,
85
85
  streamObject: () => streamObject,
86
86
  streamText: () => streamText,
87
- tool: () => tool
87
+ tool: () => tool,
88
+ wrapLanguageModel: () => wrapLanguageModel
88
89
  });
89
90
  module.exports = __toCommonJS(streams_exports);
90
91
 
@@ -1485,150 +1486,6 @@ var import_provider10 = require("@ai-sdk/provider");
1485
1486
  var import_provider_utils4 = require("@ai-sdk/provider-utils");
1486
1487
  var import_zod7 = require("zod");
1487
1488
 
1488
- // core/prompt/message.ts
1489
- var import_zod6 = require("zod");
1490
-
1491
- // core/types/provider-metadata.ts
1492
- var import_zod3 = require("zod");
1493
-
1494
- // core/types/json-value.ts
1495
- var import_zod2 = require("zod");
1496
- var jsonValueSchema = import_zod2.z.lazy(
1497
- () => import_zod2.z.union([
1498
- import_zod2.z.null(),
1499
- import_zod2.z.string(),
1500
- import_zod2.z.number(),
1501
- import_zod2.z.boolean(),
1502
- import_zod2.z.record(import_zod2.z.string(), jsonValueSchema),
1503
- import_zod2.z.array(jsonValueSchema)
1504
- ])
1505
- );
1506
-
1507
- // core/types/provider-metadata.ts
1508
- var providerMetadataSchema = import_zod3.z.record(
1509
- import_zod3.z.string(),
1510
- import_zod3.z.record(import_zod3.z.string(), jsonValueSchema)
1511
- );
1512
-
1513
- // core/prompt/content-part.ts
1514
- var import_zod5 = require("zod");
1515
-
1516
- // core/prompt/tool-result-content.ts
1517
- var import_zod4 = require("zod");
1518
- var toolResultContentSchema = import_zod4.z.array(
1519
- import_zod4.z.union([
1520
- import_zod4.z.object({ type: import_zod4.z.literal("text"), text: import_zod4.z.string() }),
1521
- import_zod4.z.object({
1522
- type: import_zod4.z.literal("image"),
1523
- data: import_zod4.z.string(),
1524
- mimeType: import_zod4.z.string().optional()
1525
- })
1526
- ])
1527
- );
1528
-
1529
- // core/prompt/content-part.ts
1530
- var textPartSchema = import_zod5.z.object({
1531
- type: import_zod5.z.literal("text"),
1532
- text: import_zod5.z.string(),
1533
- experimental_providerMetadata: providerMetadataSchema.optional()
1534
- });
1535
- var imagePartSchema = import_zod5.z.object({
1536
- type: import_zod5.z.literal("image"),
1537
- image: import_zod5.z.union([dataContentSchema, import_zod5.z.instanceof(URL)]),
1538
- mimeType: import_zod5.z.string().optional(),
1539
- experimental_providerMetadata: providerMetadataSchema.optional()
1540
- });
1541
- var filePartSchema = import_zod5.z.object({
1542
- type: import_zod5.z.literal("file"),
1543
- data: import_zod5.z.union([dataContentSchema, import_zod5.z.instanceof(URL)]),
1544
- mimeType: import_zod5.z.string(),
1545
- experimental_providerMetadata: providerMetadataSchema.optional()
1546
- });
1547
- var toolCallPartSchema = import_zod5.z.object({
1548
- type: import_zod5.z.literal("tool-call"),
1549
- toolCallId: import_zod5.z.string(),
1550
- toolName: import_zod5.z.string(),
1551
- args: import_zod5.z.unknown()
1552
- });
1553
- var toolResultPartSchema = import_zod5.z.object({
1554
- type: import_zod5.z.literal("tool-result"),
1555
- toolCallId: import_zod5.z.string(),
1556
- toolName: import_zod5.z.string(),
1557
- result: import_zod5.z.unknown(),
1558
- content: toolResultContentSchema.optional(),
1559
- isError: import_zod5.z.boolean().optional(),
1560
- experimental_providerMetadata: providerMetadataSchema.optional()
1561
- });
1562
-
1563
- // core/prompt/message.ts
1564
- var coreSystemMessageSchema = import_zod6.z.object({
1565
- role: import_zod6.z.literal("system"),
1566
- content: import_zod6.z.string(),
1567
- experimental_providerMetadata: providerMetadataSchema.optional()
1568
- });
1569
- var coreUserMessageSchema = import_zod6.z.object({
1570
- role: import_zod6.z.literal("user"),
1571
- content: import_zod6.z.union([
1572
- import_zod6.z.string(),
1573
- import_zod6.z.array(import_zod6.z.union([textPartSchema, imagePartSchema, filePartSchema]))
1574
- ]),
1575
- experimental_providerMetadata: providerMetadataSchema.optional()
1576
- });
1577
- var coreAssistantMessageSchema = import_zod6.z.object({
1578
- role: import_zod6.z.literal("assistant"),
1579
- content: import_zod6.z.union([
1580
- import_zod6.z.string(),
1581
- import_zod6.z.array(import_zod6.z.union([textPartSchema, toolCallPartSchema]))
1582
- ]),
1583
- experimental_providerMetadata: providerMetadataSchema.optional()
1584
- });
1585
- var coreToolMessageSchema = import_zod6.z.object({
1586
- role: import_zod6.z.literal("tool"),
1587
- content: import_zod6.z.array(toolResultPartSchema),
1588
- experimental_providerMetadata: providerMetadataSchema.optional()
1589
- });
1590
- var coreMessageSchema = import_zod6.z.union([
1591
- coreSystemMessageSchema,
1592
- coreUserMessageSchema,
1593
- coreAssistantMessageSchema,
1594
- coreToolMessageSchema
1595
- ]);
1596
-
1597
- // core/prompt/detect-prompt-type.ts
1598
- function detectPromptType(prompt) {
1599
- if (!Array.isArray(prompt)) {
1600
- return "other";
1601
- }
1602
- if (prompt.length === 0) {
1603
- return "messages";
1604
- }
1605
- const characteristics = prompt.map(detectSingleMessageCharacteristics);
1606
- if (characteristics.some((c) => c === "has-ui-specific-parts")) {
1607
- return "ui-messages";
1608
- } else if (characteristics.every(
1609
- (c) => c === "has-core-specific-parts" || c === "message"
1610
- )) {
1611
- return "messages";
1612
- } else {
1613
- return "other";
1614
- }
1615
- }
1616
- function detectSingleMessageCharacteristics(message) {
1617
- if (typeof message === "object" && message !== null && (message.role === "function" || // UI-only role
1618
- message.role === "data" || // UI-only role
1619
- "toolInvocations" in message || // UI-specific field
1620
- "experimental_attachments" in message)) {
1621
- return "has-ui-specific-parts";
1622
- } else if (typeof message === "object" && message !== null && "content" in message && (Array.isArray(message.content) || // Core messages can have array content
1623
- "experimental_providerMetadata" in message)) {
1624
- return "has-core-specific-parts";
1625
- } else if (typeof message === "object" && message !== null && "role" in message && "content" in message && typeof message.content === "string" && ["system", "user", "assistant", "tool"].includes(message.role)) {
1626
- return "message";
1627
- } else {
1628
- return "other";
1629
- }
1630
- }
1631
-
1632
1489
  // core/prompt/attachments-to-parts.ts
1633
1490
  function attachmentsToParts(attachments) {
1634
1491
  var _a15, _b, _c;
@@ -1813,6 +1670,150 @@ function convertToCoreMessages(messages, options) {
1813
1670
  return coreMessages;
1814
1671
  }
1815
1672
 
1673
+ // core/prompt/detect-prompt-type.ts
1674
+ function detectPromptType(prompt) {
1675
+ if (!Array.isArray(prompt)) {
1676
+ return "other";
1677
+ }
1678
+ if (prompt.length === 0) {
1679
+ return "messages";
1680
+ }
1681
+ const characteristics = prompt.map(detectSingleMessageCharacteristics);
1682
+ if (characteristics.some((c) => c === "has-ui-specific-parts")) {
1683
+ return "ui-messages";
1684
+ } else if (characteristics.every(
1685
+ (c) => c === "has-core-specific-parts" || c === "message"
1686
+ )) {
1687
+ return "messages";
1688
+ } else {
1689
+ return "other";
1690
+ }
1691
+ }
1692
+ function detectSingleMessageCharacteristics(message) {
1693
+ if (typeof message === "object" && message !== null && (message.role === "function" || // UI-only role
1694
+ message.role === "data" || // UI-only role
1695
+ "toolInvocations" in message || // UI-specific field
1696
+ "experimental_attachments" in message)) {
1697
+ return "has-ui-specific-parts";
1698
+ } else if (typeof message === "object" && message !== null && "content" in message && (Array.isArray(message.content) || // Core messages can have array content
1699
+ "experimental_providerMetadata" in message)) {
1700
+ return "has-core-specific-parts";
1701
+ } else if (typeof message === "object" && message !== null && "role" in message && "content" in message && typeof message.content === "string" && ["system", "user", "assistant", "tool"].includes(message.role)) {
1702
+ return "message";
1703
+ } else {
1704
+ return "other";
1705
+ }
1706
+ }
1707
+
1708
+ // core/prompt/message.ts
1709
+ var import_zod6 = require("zod");
1710
+
1711
+ // core/types/provider-metadata.ts
1712
+ var import_zod3 = require("zod");
1713
+
1714
+ // core/types/json-value.ts
1715
+ var import_zod2 = require("zod");
1716
+ var jsonValueSchema = import_zod2.z.lazy(
1717
+ () => import_zod2.z.union([
1718
+ import_zod2.z.null(),
1719
+ import_zod2.z.string(),
1720
+ import_zod2.z.number(),
1721
+ import_zod2.z.boolean(),
1722
+ import_zod2.z.record(import_zod2.z.string(), jsonValueSchema),
1723
+ import_zod2.z.array(jsonValueSchema)
1724
+ ])
1725
+ );
1726
+
1727
+ // core/types/provider-metadata.ts
1728
+ var providerMetadataSchema = import_zod3.z.record(
1729
+ import_zod3.z.string(),
1730
+ import_zod3.z.record(import_zod3.z.string(), jsonValueSchema)
1731
+ );
1732
+
1733
+ // core/prompt/content-part.ts
1734
+ var import_zod5 = require("zod");
1735
+
1736
+ // core/prompt/tool-result-content.ts
1737
+ var import_zod4 = require("zod");
1738
+ var toolResultContentSchema = import_zod4.z.array(
1739
+ import_zod4.z.union([
1740
+ import_zod4.z.object({ type: import_zod4.z.literal("text"), text: import_zod4.z.string() }),
1741
+ import_zod4.z.object({
1742
+ type: import_zod4.z.literal("image"),
1743
+ data: import_zod4.z.string(),
1744
+ mimeType: import_zod4.z.string().optional()
1745
+ })
1746
+ ])
1747
+ );
1748
+
1749
+ // core/prompt/content-part.ts
1750
+ var textPartSchema = import_zod5.z.object({
1751
+ type: import_zod5.z.literal("text"),
1752
+ text: import_zod5.z.string(),
1753
+ experimental_providerMetadata: providerMetadataSchema.optional()
1754
+ });
1755
+ var imagePartSchema = import_zod5.z.object({
1756
+ type: import_zod5.z.literal("image"),
1757
+ image: import_zod5.z.union([dataContentSchema, import_zod5.z.instanceof(URL)]),
1758
+ mimeType: import_zod5.z.string().optional(),
1759
+ experimental_providerMetadata: providerMetadataSchema.optional()
1760
+ });
1761
+ var filePartSchema = import_zod5.z.object({
1762
+ type: import_zod5.z.literal("file"),
1763
+ data: import_zod5.z.union([dataContentSchema, import_zod5.z.instanceof(URL)]),
1764
+ mimeType: import_zod5.z.string(),
1765
+ experimental_providerMetadata: providerMetadataSchema.optional()
1766
+ });
1767
+ var toolCallPartSchema = import_zod5.z.object({
1768
+ type: import_zod5.z.literal("tool-call"),
1769
+ toolCallId: import_zod5.z.string(),
1770
+ toolName: import_zod5.z.string(),
1771
+ args: import_zod5.z.unknown()
1772
+ });
1773
+ var toolResultPartSchema = import_zod5.z.object({
1774
+ type: import_zod5.z.literal("tool-result"),
1775
+ toolCallId: import_zod5.z.string(),
1776
+ toolName: import_zod5.z.string(),
1777
+ result: import_zod5.z.unknown(),
1778
+ content: toolResultContentSchema.optional(),
1779
+ isError: import_zod5.z.boolean().optional(),
1780
+ experimental_providerMetadata: providerMetadataSchema.optional()
1781
+ });
1782
+
1783
+ // core/prompt/message.ts
1784
+ var coreSystemMessageSchema = import_zod6.z.object({
1785
+ role: import_zod6.z.literal("system"),
1786
+ content: import_zod6.z.string(),
1787
+ experimental_providerMetadata: providerMetadataSchema.optional()
1788
+ });
1789
+ var coreUserMessageSchema = import_zod6.z.object({
1790
+ role: import_zod6.z.literal("user"),
1791
+ content: import_zod6.z.union([
1792
+ import_zod6.z.string(),
1793
+ import_zod6.z.array(import_zod6.z.union([textPartSchema, imagePartSchema, filePartSchema]))
1794
+ ]),
1795
+ experimental_providerMetadata: providerMetadataSchema.optional()
1796
+ });
1797
+ var coreAssistantMessageSchema = import_zod6.z.object({
1798
+ role: import_zod6.z.literal("assistant"),
1799
+ content: import_zod6.z.union([
1800
+ import_zod6.z.string(),
1801
+ import_zod6.z.array(import_zod6.z.union([textPartSchema, toolCallPartSchema]))
1802
+ ]),
1803
+ experimental_providerMetadata: providerMetadataSchema.optional()
1804
+ });
1805
+ var coreToolMessageSchema = import_zod6.z.object({
1806
+ role: import_zod6.z.literal("tool"),
1807
+ content: import_zod6.z.array(toolResultPartSchema),
1808
+ experimental_providerMetadata: providerMetadataSchema.optional()
1809
+ });
1810
+ var coreMessageSchema = import_zod6.z.union([
1811
+ coreSystemMessageSchema,
1812
+ coreUserMessageSchema,
1813
+ coreAssistantMessageSchema,
1814
+ coreToolMessageSchema
1815
+ ]);
1816
+
1816
1817
  // core/prompt/standardize-prompt.ts
1817
1818
  function standardizePrompt({
1818
1819
  prompt,
@@ -5597,40 +5598,6 @@ var DefaultStreamTextResult = class {
5597
5598
  }
5598
5599
  };
5599
5600
 
5600
- // core/middleware/wrap-language-model.ts
5601
- var experimental_wrapLanguageModel = ({
5602
- model,
5603
- middleware: { transformParams, wrapGenerate, wrapStream },
5604
- modelId,
5605
- providerId
5606
- }) => {
5607
- async function doTransform({
5608
- params,
5609
- type
5610
- }) {
5611
- return transformParams ? await transformParams({ params, type }) : params;
5612
- }
5613
- return {
5614
- specificationVersion: "v1",
5615
- provider: providerId != null ? providerId : model.provider,
5616
- modelId: modelId != null ? modelId : model.modelId,
5617
- defaultObjectGenerationMode: model.defaultObjectGenerationMode,
5618
- supportsImageUrls: model.supportsImageUrls,
5619
- supportsUrl: model.supportsUrl,
5620
- supportsStructuredOutputs: model.supportsStructuredOutputs,
5621
- async doGenerate(params) {
5622
- const transformedParams = await doTransform({ params, type: "generate" });
5623
- const doGenerate = async () => model.doGenerate(transformedParams);
5624
- return wrapGenerate ? wrapGenerate({ doGenerate, params: transformedParams, model }) : doGenerate();
5625
- },
5626
- async doStream(params) {
5627
- const transformedParams = await doTransform({ params, type: "stream" });
5628
- const doStream = async () => model.doStream(transformedParams);
5629
- return wrapStream ? wrapStream({ doStream, params: transformedParams, model }) : doStream();
5630
- }
5631
- };
5632
- };
5633
-
5634
5601
  // core/util/get-potential-start-index.ts
5635
5602
  function getPotentialStartIndex(text2, searchedText) {
5636
5603
  if (searchedText.length === 0) {
@@ -5657,6 +5624,7 @@ function extractReasoningMiddleware({
5657
5624
  const openingTag = `<${tagName}>`;
5658
5625
  const closingTag = `</${tagName}>`;
5659
5626
  return {
5627
+ middlewareVersion: "v1",
5660
5628
  wrapGenerate: async ({ doGenerate }) => {
5661
5629
  const { text: text2, ...rest } = await doGenerate();
5662
5630
  if (text2 == null) {
@@ -5738,6 +5706,41 @@ function extractReasoningMiddleware({
5738
5706
  };
5739
5707
  }
5740
5708
 
5709
+ // core/middleware/wrap-language-model.ts
5710
+ var wrapLanguageModel = ({
5711
+ model,
5712
+ middleware: { transformParams, wrapGenerate, wrapStream },
5713
+ modelId,
5714
+ providerId
5715
+ }) => {
5716
+ async function doTransform({
5717
+ params,
5718
+ type
5719
+ }) {
5720
+ return transformParams ? await transformParams({ params, type }) : params;
5721
+ }
5722
+ return {
5723
+ specificationVersion: "v1",
5724
+ provider: providerId != null ? providerId : model.provider,
5725
+ modelId: modelId != null ? modelId : model.modelId,
5726
+ defaultObjectGenerationMode: model.defaultObjectGenerationMode,
5727
+ supportsImageUrls: model.supportsImageUrls,
5728
+ supportsUrl: model.supportsUrl,
5729
+ supportsStructuredOutputs: model.supportsStructuredOutputs,
5730
+ async doGenerate(params) {
5731
+ const transformedParams = await doTransform({ params, type: "generate" });
5732
+ const doGenerate = async () => model.doGenerate(transformedParams);
5733
+ return wrapGenerate ? wrapGenerate({ doGenerate, params: transformedParams, model }) : doGenerate();
5734
+ },
5735
+ async doStream(params) {
5736
+ const transformedParams = await doTransform({ params, type: "stream" });
5737
+ const doStream = async () => model.doStream(transformedParams);
5738
+ return wrapStream ? wrapStream({ doStream, params: transformedParams, model }) : doStream();
5739
+ }
5740
+ };
5741
+ };
5742
+ var experimental_wrapLanguageModel = wrapLanguageModel;
5743
+
5741
5744
  // core/prompt/append-client-message.ts
5742
5745
  function appendClientMessage({
5743
5746
  messages,
@@ -6388,6 +6391,7 @@ var StreamData = class {
6388
6391
  smoothStream,
6389
6392
  streamObject,
6390
6393
  streamText,
6391
- tool
6394
+ tool,
6395
+ wrapLanguageModel
6392
6396
  });
6393
6397
  //# sourceMappingURL=index.js.map