ai 4.3.13 → 4.3.14

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.mjs CHANGED
@@ -1939,42 +1939,6 @@ function convertToCoreMessages(messages, options) {
1939
1939
  return coreMessages;
1940
1940
  }
1941
1941
 
1942
- // core/prompt/detect-prompt-type.ts
1943
- function detectPromptType(prompt) {
1944
- if (!Array.isArray(prompt)) {
1945
- return "other";
1946
- }
1947
- if (prompt.length === 0) {
1948
- return "messages";
1949
- }
1950
- const characteristics = prompt.map(detectSingleMessageCharacteristics);
1951
- if (characteristics.some((c) => c === "has-ui-specific-parts")) {
1952
- return "ui-messages";
1953
- } else if (characteristics.every(
1954
- (c) => c === "has-core-specific-parts" || c === "message"
1955
- )) {
1956
- return "messages";
1957
- } else {
1958
- return "other";
1959
- }
1960
- }
1961
- function detectSingleMessageCharacteristics(message) {
1962
- if (typeof message === "object" && message !== null && (message.role === "function" || // UI-only role
1963
- message.role === "data" || // UI-only role
1964
- "toolInvocations" in message || // UI-specific field
1965
- "parts" in message || // UI-specific field
1966
- "experimental_attachments" in message)) {
1967
- return "has-ui-specific-parts";
1968
- } else if (typeof message === "object" && message !== null && "content" in message && (Array.isArray(message.content) || // Core messages can have array content
1969
- "experimental_providerMetadata" in message || "providerOptions" in message)) {
1970
- return "has-core-specific-parts";
1971
- } else if (typeof message === "object" && message !== null && "role" in message && "content" in message && typeof message.content === "string" && ["system", "user", "assistant", "tool"].includes(message.role)) {
1972
- return "message";
1973
- } else {
1974
- return "other";
1975
- }
1976
- }
1977
-
1978
1942
  // core/prompt/message.ts
1979
1943
  import { z as z6 } from "zod";
1980
1944
 
@@ -2158,12 +2122,6 @@ function standardizePrompt({
2158
2122
  }
2159
2123
  if (prompt.messages != null) {
2160
2124
  const promptType = detectPromptType(prompt.messages);
2161
- if (promptType === "other") {
2162
- throw new InvalidPromptError({
2163
- prompt,
2164
- message: "messages must be an array of CoreMessage or UIMessage"
2165
- });
2166
- }
2167
2125
  const messages = promptType === "ui-messages" ? convertToCoreMessages(prompt.messages, {
2168
2126
  tools
2169
2127
  }) : prompt.messages;
@@ -2180,7 +2138,10 @@ function standardizePrompt({
2180
2138
  if (!validationResult.success) {
2181
2139
  throw new InvalidPromptError({
2182
2140
  prompt,
2183
- message: "messages must be an array of CoreMessage or UIMessage",
2141
+ message: [
2142
+ "message must be a CoreMessage or a UI message",
2143
+ `Validation error: ${validationResult.error.message}`
2144
+ ].join("\n"),
2184
2145
  cause: validationResult.error
2185
2146
  });
2186
2147
  }
@@ -2192,6 +2153,56 @@ function standardizePrompt({
2192
2153
  }
2193
2154
  throw new Error("unreachable");
2194
2155
  }
2156
+ function detectPromptType(prompt) {
2157
+ if (!Array.isArray(prompt)) {
2158
+ throw new InvalidPromptError({
2159
+ prompt,
2160
+ message: [
2161
+ "messages must be an array of CoreMessage or UIMessage",
2162
+ `Received non-array value: ${JSON.stringify(prompt)}`
2163
+ ].join("\n"),
2164
+ cause: prompt
2165
+ });
2166
+ }
2167
+ if (prompt.length === 0) {
2168
+ return "messages";
2169
+ }
2170
+ const characteristics = prompt.map(detectSingleMessageCharacteristics);
2171
+ if (characteristics.some((c) => c === "has-ui-specific-parts")) {
2172
+ return "ui-messages";
2173
+ }
2174
+ const nonMessageIndex = characteristics.findIndex(
2175
+ (c) => c !== "has-core-specific-parts" && c !== "message"
2176
+ );
2177
+ if (nonMessageIndex === -1) {
2178
+ return "messages";
2179
+ }
2180
+ throw new InvalidPromptError({
2181
+ prompt,
2182
+ message: [
2183
+ "messages must be an array of CoreMessage or UIMessage",
2184
+ `Received message of type: "${characteristics[nonMessageIndex]}" at index ${nonMessageIndex}`,
2185
+ `messages[${nonMessageIndex}]: ${JSON.stringify(prompt[nonMessageIndex])}`
2186
+ ].join("\n"),
2187
+ cause: prompt
2188
+ });
2189
+ }
2190
+ function detectSingleMessageCharacteristics(message) {
2191
+ if (typeof message === "object" && message !== null && (message.role === "function" || // UI-only role
2192
+ message.role === "data" || // UI-only role
2193
+ "toolInvocations" in message || // UI-specific field
2194
+ "parts" in message || // UI-specific field
2195
+ "experimental_attachments" in message)) {
2196
+ return "has-ui-specific-parts";
2197
+ } else if (typeof message === "object" && message !== null && "content" in message && (Array.isArray(message.content) || // Core messages can have array content
2198
+ "experimental_providerMetadata" in message || "providerOptions" in message)) {
2199
+ return "has-core-specific-parts";
2200
+ } else if (typeof message === "object" && message !== null && "role" in message && "content" in message && typeof message.content === "string" && ["system", "user", "assistant", "tool"].includes(message.role)) {
2201
+ return "message";
2202
+ } else {
2203
+ return "other";
2204
+ }
2205
+ }
2195
2206
 
2196
2207
  // core/types/usage.ts
2197
2208
  function calculateLanguageModelUsage({