@ai-sdk/xai 2.0.0-canary.0 → 2.0.0-canary.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/CHANGELOG.md CHANGED
@@ -1,5 +1,129 @@
1
1
  # @ai-sdk/xai
2
2
 
3
+ ## 2.0.0-canary.10
4
+
5
+ ### Patch Changes
6
+
7
+ - cf8280e: fix(providers/xai): return actual usage when streaming instead of NaN
8
+ - Updated dependencies [cf8280e]
9
+ - Updated dependencies [e86be6f]
10
+ - @ai-sdk/openai-compatible@1.0.0-canary.10
11
+ - @ai-sdk/provider@2.0.0-canary.9
12
+ - @ai-sdk/provider-utils@3.0.0-canary.10
13
+
14
+ ## 2.0.0-canary.9
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [95857aa]
19
+ - Updated dependencies [7ea4132]
20
+ - @ai-sdk/provider@2.0.0-canary.8
21
+ - @ai-sdk/openai-compatible@1.0.0-canary.9
22
+ - @ai-sdk/provider-utils@3.0.0-canary.9
23
+
24
+ ## 2.0.0-canary.8
25
+
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [5d142ab]
29
+ - Updated dependencies [b6b43c7]
30
+ - Updated dependencies [b9a6121]
31
+ - Updated dependencies [8aa9e20]
32
+ - Updated dependencies [3795467]
33
+ - @ai-sdk/provider-utils@3.0.0-canary.8
34
+ - @ai-sdk/provider@2.0.0-canary.7
35
+ - @ai-sdk/openai-compatible@1.0.0-canary.8
36
+
37
+ ## 2.0.0-canary.7
38
+
39
+ ### Patch Changes
40
+
41
+ - 41cab5c: fix(providers/xai): edit supported models for structured output
42
+ - fa49207: feat(providers/openai-compatible): convert to providerOptions
43
+ - d9b26f2: chore (providers/xai): update grok-3 model aliases
44
+ - Updated dependencies [fa49207]
45
+ - Updated dependencies [26735b5]
46
+ - Updated dependencies [443d8ec]
47
+ - Updated dependencies [14c9410]
48
+ - Updated dependencies [d9c98f4]
49
+ - Updated dependencies [c4a2fec]
50
+ - Updated dependencies [0054544]
51
+ - Updated dependencies [9e9c809]
52
+ - Updated dependencies [32831c6]
53
+ - Updated dependencies [d0f9495]
54
+ - Updated dependencies [fd65bc6]
55
+ - Updated dependencies [393138b]
56
+ - Updated dependencies [7182d14]
57
+ - @ai-sdk/openai-compatible@1.0.0-canary.7
58
+ - @ai-sdk/provider@2.0.0-canary.6
59
+ - @ai-sdk/provider-utils@3.0.0-canary.7
60
+
61
+ ## 2.0.0-canary.6
62
+
63
+ ### Patch Changes
64
+
65
+ - Updated dependencies [6db02c9]
66
+ - Updated dependencies [411e483]
67
+ - Updated dependencies [79457bd]
68
+ - Updated dependencies [ad80501]
69
+ - Updated dependencies [1766ede]
70
+ - Updated dependencies [f10304b]
71
+ - @ai-sdk/openai-compatible@1.0.0-canary.6
72
+ - @ai-sdk/provider@2.0.0-canary.5
73
+ - @ai-sdk/provider-utils@3.0.0-canary.6
74
+
75
+ ## 2.0.0-canary.5
76
+
77
+ ### Patch Changes
78
+
79
+ - a7d3fbd: feat (providers/xai): add grok-3 models
80
+ - Updated dependencies [6f6bb89]
81
+ - @ai-sdk/provider@2.0.0-canary.4
82
+ - @ai-sdk/openai-compatible@1.0.0-canary.5
83
+ - @ai-sdk/provider-utils@3.0.0-canary.5
84
+
85
+ ## 2.0.0-canary.4
86
+
87
+ ### Patch Changes
88
+
89
+ - Updated dependencies [d1a1aa1]
90
+ - @ai-sdk/provider@2.0.0-canary.3
91
+ - @ai-sdk/openai-compatible@1.0.0-canary.4
92
+ - @ai-sdk/provider-utils@3.0.0-canary.4
93
+
94
+ ## 2.0.0-canary.3
95
+
96
+ ### Patch Changes
97
+
98
+ - Updated dependencies [a166433]
99
+ - Updated dependencies [abf9a79]
100
+ - Updated dependencies [9f95b35]
101
+ - Updated dependencies [0a87932]
102
+ - Updated dependencies [6dc848c]
103
+ - @ai-sdk/provider-utils@3.0.0-canary.3
104
+ - @ai-sdk/provider@2.0.0-canary.2
105
+ - @ai-sdk/openai-compatible@1.0.0-canary.3
106
+
107
+ ## 2.0.0-canary.2
108
+
109
+ ### Patch Changes
110
+
111
+ - Updated dependencies [c57e248]
112
+ - Updated dependencies [33f4a6a]
113
+ - @ai-sdk/provider@2.0.0-canary.1
114
+ - @ai-sdk/openai-compatible@1.0.0-canary.2
115
+ - @ai-sdk/provider-utils@3.0.0-canary.2
116
+
117
+ ## 2.0.0-canary.1
118
+
119
+ ### Patch Changes
120
+
121
+ - Updated dependencies [060370c]
122
+ - Updated dependencies [0c0c0b3]
123
+ - Updated dependencies [63d791d]
124
+ - @ai-sdk/provider-utils@3.0.0-canary.1
125
+ - @ai-sdk/openai-compatible@1.0.0-canary.1
126
+
3
127
  ## 2.0.0-canary.0
4
128
 
5
129
  ### Major Changes
package/README.md CHANGED
@@ -26,7 +26,7 @@ import { xai } from '@ai-sdk/xai';
26
26
  import { generateText } from 'ai';
27
27
 
28
28
  const { text } = await generateText({
29
- model: xai('grok-2-1212'),
29
+ model: xai('grok-3-beta'),
30
30
  prompt: 'Write a vegetarian lasagna recipe for 4 people.',
31
31
  });
32
32
  ```
package/dist/index.d.mts CHANGED
@@ -1,11 +1,8 @@
1
- import { ProviderV1, LanguageModelV1, ImageModelV1 } from '@ai-sdk/provider';
1
+ import { ProviderV2, LanguageModelV2, ImageModelV1 } from '@ai-sdk/provider';
2
2
  import { FetchFunction } from '@ai-sdk/provider-utils';
3
- import { OpenAICompatibleChatSettings } from '@ai-sdk/openai-compatible';
4
3
  import { z } from 'zod';
5
4
 
6
- type XaiChatModelId = 'grok-2-1212' | 'grok-2-vision-1212' | 'grok-beta' | 'grok-vision-beta' | (string & {});
7
- interface XaiChatSettings extends OpenAICompatibleChatSettings {
8
- }
5
+ type XaiChatModelId = 'grok-3' | 'grok-3-latest' | 'grok-3-fast' | 'grok-3-fast-latest' | 'grok-3-mini' | 'grok-3-mini-latest' | 'grok-3-mini-fast' | 'grok-3-mini-fast-latest' | 'grok-2-vision-1212' | 'grok-2-vision' | 'grok-2-vision-latest' | 'grok-2-image-1212' | 'grok-2-image' | 'grok-2-image-latest' | 'grok-2-1212' | 'grok-2' | 'grok-2-latest' | 'grok-vision-beta' | 'grok-beta' | (string & {});
9
6
 
10
7
  type XaiImageModelId = 'grok-2-image' | (string & {});
11
8
  interface XaiImageSettings {
@@ -15,19 +12,19 @@ interface XaiImageSettings {
15
12
  maxImagesPerCall?: number;
16
13
  }
17
14
 
18
- interface XaiProvider extends ProviderV1 {
15
+ interface XaiProvider extends ProviderV2 {
19
16
  /**
20
17
  Creates an Xai chat model for text generation.
21
18
  */
22
- (modelId: XaiChatModelId, settings?: XaiChatSettings): LanguageModelV1;
19
+ (modelId: XaiChatModelId): LanguageModelV2;
23
20
  /**
24
21
  Creates an Xai language model for text generation.
25
22
  */
26
- languageModel(modelId: XaiChatModelId, settings?: XaiChatSettings): LanguageModelV1;
23
+ languageModel(modelId: XaiChatModelId): LanguageModelV2;
27
24
  /**
28
25
  Creates an Xai chat model for text generation.
29
26
  */
30
- chat: (modelId: XaiChatModelId, settings?: XaiChatSettings) => LanguageModelV1;
27
+ chat: (modelId: XaiChatModelId) => LanguageModelV2;
31
28
  /**
32
29
  Creates an Xai image model for image generation.
33
30
  */
package/dist/index.d.ts CHANGED
@@ -1,11 +1,8 @@
1
- import { ProviderV1, LanguageModelV1, ImageModelV1 } from '@ai-sdk/provider';
1
+ import { ProviderV2, LanguageModelV2, ImageModelV1 } from '@ai-sdk/provider';
2
2
  import { FetchFunction } from '@ai-sdk/provider-utils';
3
- import { OpenAICompatibleChatSettings } from '@ai-sdk/openai-compatible';
4
3
  import { z } from 'zod';
5
4
 
6
- type XaiChatModelId = 'grok-2-1212' | 'grok-2-vision-1212' | 'grok-beta' | 'grok-vision-beta' | (string & {});
7
- interface XaiChatSettings extends OpenAICompatibleChatSettings {
8
- }
5
+ type XaiChatModelId = 'grok-3' | 'grok-3-latest' | 'grok-3-fast' | 'grok-3-fast-latest' | 'grok-3-mini' | 'grok-3-mini-latest' | 'grok-3-mini-fast' | 'grok-3-mini-fast-latest' | 'grok-2-vision-1212' | 'grok-2-vision' | 'grok-2-vision-latest' | 'grok-2-image-1212' | 'grok-2-image' | 'grok-2-image-latest' | 'grok-2-1212' | 'grok-2' | 'grok-2-latest' | 'grok-vision-beta' | 'grok-beta' | (string & {});
9
6
 
10
7
  type XaiImageModelId = 'grok-2-image' | (string & {});
11
8
  interface XaiImageSettings {
@@ -15,19 +12,19 @@ interface XaiImageSettings {
15
12
  maxImagesPerCall?: number;
16
13
  }
17
14
 
18
- interface XaiProvider extends ProviderV1 {
15
+ interface XaiProvider extends ProviderV2 {
19
16
  /**
20
17
  Creates an Xai chat model for text generation.
21
18
  */
22
- (modelId: XaiChatModelId, settings?: XaiChatSettings): LanguageModelV1;
19
+ (modelId: XaiChatModelId): LanguageModelV2;
23
20
  /**
24
21
  Creates an Xai language model for text generation.
25
22
  */
26
- languageModel(modelId: XaiChatModelId, settings?: XaiChatSettings): LanguageModelV1;
23
+ languageModel(modelId: XaiChatModelId): LanguageModelV2;
27
24
  /**
28
25
  Creates an Xai chat model for text generation.
29
26
  */
30
- chat: (modelId: XaiChatModelId, settings?: XaiChatSettings) => LanguageModelV1;
27
+ chat: (modelId: XaiChatModelId) => LanguageModelV2;
31
28
  /**
32
29
  Creates an Xai image model for image generation.
33
30
  */
package/dist/index.js CHANGED
@@ -26,13 +26,28 @@ __export(src_exports, {
26
26
  module.exports = __toCommonJS(src_exports);
27
27
 
28
28
  // src/xai-provider.ts
29
- var import_provider = require("@ai-sdk/provider");
30
29
  var import_openai_compatible = require("@ai-sdk/openai-compatible");
30
+ var import_provider = require("@ai-sdk/provider");
31
31
  var import_provider_utils = require("@ai-sdk/provider-utils");
32
32
 
33
33
  // src/xai-chat-settings.ts
34
34
  function supportsStructuredOutputs(modelId) {
35
- return ["grok-2-1212", "grok-2-vision-1212"].includes(modelId);
35
+ return [
36
+ "grok-3",
37
+ "grok-3-beta",
38
+ "grok-3-latest",
39
+ "grok-3-fast",
40
+ "grok-3-fast-beta",
41
+ "grok-3-fast-latest",
42
+ "grok-3-mini",
43
+ "grok-3-mini-beta",
44
+ "grok-3-mini-latest",
45
+ "grok-3-mini-fast",
46
+ "grok-3-mini-fast-beta",
47
+ "grok-3-mini-fast-latest",
48
+ "grok-2-1212",
49
+ "grok-2-vision-1212"
50
+ ].includes(modelId);
36
51
  }
37
52
 
38
53
  // src/xai-error.ts
@@ -60,16 +75,16 @@ function createXai(options = {}) {
60
75
  })}`,
61
76
  ...options.headers
62
77
  });
63
- const createLanguageModel = (modelId, settings = {}) => {
78
+ const createLanguageModel = (modelId) => {
64
79
  const structuredOutputs = supportsStructuredOutputs(modelId);
65
- return new import_openai_compatible.OpenAICompatibleChatLanguageModel(modelId, settings, {
80
+ return new import_openai_compatible.OpenAICompatibleChatLanguageModel(modelId, {
66
81
  provider: "xai.chat",
67
82
  url: ({ path }) => `${baseURL}${path}`,
68
83
  headers: getHeaders,
69
84
  fetch: options.fetch,
70
- defaultObjectGenerationMode: structuredOutputs ? "json" : "tool",
71
85
  errorStructure: xaiErrorStructure,
72
- supportsStructuredOutputs: structuredOutputs
86
+ supportsStructuredOutputs: structuredOutputs,
87
+ includeUsage: true
73
88
  });
74
89
  };
75
90
  const createImageModel = (modelId, settings = {}) => {
@@ -81,7 +96,7 @@ function createXai(options = {}) {
81
96
  errorStructure: xaiErrorStructure
82
97
  });
83
98
  };
84
- const provider = (modelId, settings) => createLanguageModel(modelId, settings);
99
+ const provider = (modelId) => createLanguageModel(modelId);
85
100
  provider.languageModel = createLanguageModel;
86
101
  provider.chat = createLanguageModel;
87
102
  provider.textEmbeddingModel = (modelId) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/xai-provider.ts","../src/xai-chat-settings.ts","../src/xai-error.ts"],"sourcesContent":["export { createXai, xai } from './xai-provider';\nexport type { XaiProvider, XaiProviderSettings } from './xai-provider';\nexport type { XaiErrorData } from './xai-error';\n","import {\n ImageModelV1,\n LanguageModelV1,\n NoSuchModelError,\n ProviderV1,\n} from '@ai-sdk/provider';\nimport {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleImageModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport {\n XaiChatModelId,\n XaiChatSettings,\n supportsStructuredOutputs,\n} from './xai-chat-settings';\nimport { XaiImageSettings } from './xai-image-settings';\nimport { XaiImageModelId } from './xai-image-settings';\nimport { XaiErrorData, xaiErrorSchema } from './xai-error';\n\nconst xaiErrorStructure: ProviderErrorStructure<XaiErrorData> = {\n errorSchema: xaiErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface XaiProvider extends ProviderV1 {\n /**\nCreates an Xai chat model for text generation.\n */\n (modelId: XaiChatModelId, settings?: XaiChatSettings): LanguageModelV1;\n\n /**\nCreates an Xai language model for text generation.\n */\n languageModel(\n modelId: XaiChatModelId,\n settings?: XaiChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates an Xai chat model for text generation.\n */\n chat: (\n modelId: XaiChatModelId,\n settings?: XaiChatSettings,\n ) => LanguageModelV1;\n\n /**\nCreates an Xai image model for image generation.\n */\n image(modelId: XaiImageModelId, settings?: XaiImageSettings): ImageModelV1;\n\n /**\nCreates an Xai image model for image generation.\n */\n imageModel(\n modelId: XaiImageModelId,\n settings?: XaiImageSettings,\n ): ImageModelV1;\n}\n\nexport interface XaiProviderSettings {\n /**\nBase URL for the xAI API calls.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport function createXai(options: XaiProviderSettings = {}): XaiProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.x.ai/v1',\n );\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'XAI_API_KEY',\n description: 'xAI API key',\n })}`,\n ...options.headers,\n });\n\n const createLanguageModel = (\n modelId: XaiChatModelId,\n settings: XaiChatSettings = {},\n ) => {\n const structuredOutputs = supportsStructuredOutputs(modelId);\n return new OpenAICompatibleChatLanguageModel(modelId, settings, {\n provider: 'xai.chat',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n defaultObjectGenerationMode: structuredOutputs ? 'json' : 'tool',\n errorStructure: xaiErrorStructure,\n supportsStructuredOutputs: structuredOutputs,\n });\n };\n\n const createImageModel = (\n modelId: XaiImageModelId,\n settings: XaiImageSettings = {},\n ) => {\n return new OpenAICompatibleImageModel(modelId, settings, {\n provider: 'xai.image',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: xaiErrorStructure,\n });\n };\n\n const provider = (modelId: XaiChatModelId, settings?: XaiChatSettings) =>\n createLanguageModel(modelId, settings);\n\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.textEmbeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'textEmbeddingModel' });\n };\n provider.imageModel = createImageModel;\n provider.image = createImageModel;\n\n return provider;\n}\n\nexport const xai = createXai();\n","import { OpenAICompatibleChatSettings } from '@ai-sdk/openai-compatible';\n\n// https://console.x.ai and see \"View models\"\nexport type XaiChatModelId =\n | 'grok-2-1212'\n | 'grok-2-vision-1212'\n | 'grok-beta'\n | 'grok-vision-beta'\n | (string & {});\n\nexport interface XaiChatSettings extends OpenAICompatibleChatSettings {}\n\nexport function supportsStructuredOutputs(modelId: XaiChatModelId) {\n return ['grok-2-1212', 'grok-2-vision-1212'].includes(modelId);\n}\n","import { z } from 'zod';\n\n// Add error schema and structure\nexport const xaiErrorSchema = z.object({\n code: z.string(),\n error: z.string(),\n});\n\nexport type XaiErrorData = z.infer<typeof xaiErrorSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,sBAKO;AACP,+BAIO;AACP,4BAIO;;;ACHA,SAAS,0BAA0B,SAAyB;AACjE,SAAO,CAAC,eAAe,oBAAoB,EAAE,SAAS,OAAO;AAC/D;;;ACdA,iBAAkB;AAGX,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACrC,MAAM,aAAE,OAAO;AAAA,EACf,OAAO,aAAE,OAAO;AAClB,CAAC;;;AFmBD,IAAM,oBAA0D;AAAA,EAC9D,aAAa;AAAA,EACb,gBAAgB,UAAQ,KAAK;AAC/B;AA6DO,SAAS,UAAU,UAA+B,CAAC,GAAgB;AAzF1E;AA0FE,QAAM,cAAU;AAAA,KACd,aAAQ,YAAR,YAAmB;AAAA,EACrB;AACA,QAAM,aAAa,OAAO;AAAA,IACxB,eAAe,cAAU,kCAAW;AAAA,MAClC,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC,CAAC;AAAA,IACF,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,sBAAsB,CAC1B,SACA,WAA4B,CAAC,MAC1B;AACH,UAAM,oBAAoB,0BAA0B,OAAO;AAC3D,WAAO,IAAI,2DAAkC,SAAS,UAAU;AAAA,MAC9D,UAAU;AAAA,MACV,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,6BAA6B,oBAAoB,SAAS;AAAA,MAC1D,gBAAgB;AAAA,MAChB,2BAA2B;AAAA,IAC7B,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,CACvB,SACA,WAA6B,CAAC,MAC3B;AACH,WAAO,IAAI,oDAA2B,SAAS,UAAU;AAAA,MACvD,UAAU;AAAA,MACV,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAEA,QAAM,WAAW,CAAC,SAAyB,aACzC,oBAAoB,SAAS,QAAQ;AAEvC,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,qBAAqB,CAAC,YAAoB;AACjD,UAAM,IAAI,iCAAiB,EAAE,SAAS,WAAW,qBAAqB,CAAC;AAAA,EACzE;AACA,WAAS,aAAa;AACtB,WAAS,QAAQ;AAEjB,SAAO;AACT;AAEO,IAAM,MAAM,UAAU;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/xai-provider.ts","../src/xai-chat-settings.ts","../src/xai-error.ts"],"sourcesContent":["export { createXai, xai } from './xai-provider';\nexport type { XaiProvider, XaiProviderSettings } from './xai-provider';\nexport type { XaiErrorData } from './xai-error';\n","import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleImageModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n ImageModelV1,\n LanguageModelV2,\n NoSuchModelError,\n ProviderV2,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { XaiChatModelId, supportsStructuredOutputs } from './xai-chat-settings';\nimport { XaiErrorData, xaiErrorSchema } from './xai-error';\nimport { XaiImageModelId, XaiImageSettings } from './xai-image-settings';\n\nconst xaiErrorStructure: ProviderErrorStructure<XaiErrorData> = {\n errorSchema: xaiErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface XaiProvider extends ProviderV2 {\n /**\nCreates an Xai chat model for text generation.\n */\n (modelId: XaiChatModelId): LanguageModelV2;\n\n /**\nCreates an Xai language model for text generation.\n */\n languageModel(modelId: XaiChatModelId): LanguageModelV2;\n\n /**\nCreates an Xai chat model for text generation.\n */\n chat: (modelId: XaiChatModelId) => LanguageModelV2;\n\n /**\nCreates an Xai image model for image generation.\n */\n image(modelId: XaiImageModelId, settings?: XaiImageSettings): ImageModelV1;\n\n /**\nCreates an Xai image model for image generation.\n */\n imageModel(\n modelId: XaiImageModelId,\n settings?: XaiImageSettings,\n ): ImageModelV1;\n}\n\nexport interface XaiProviderSettings {\n /**\nBase URL for the xAI API calls.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport function createXai(options: XaiProviderSettings = {}): XaiProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.x.ai/v1',\n );\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'XAI_API_KEY',\n description: 'xAI API key',\n })}`,\n ...options.headers,\n });\n\n const createLanguageModel = (modelId: XaiChatModelId) => {\n const structuredOutputs = supportsStructuredOutputs(modelId);\n return new OpenAICompatibleChatLanguageModel(modelId, {\n provider: 'xai.chat',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: xaiErrorStructure,\n supportsStructuredOutputs: structuredOutputs,\n includeUsage: true,\n });\n };\n\n const createImageModel = (\n modelId: XaiImageModelId,\n settings: XaiImageSettings = {},\n ) => {\n return new OpenAICompatibleImageModel(modelId, settings, {\n provider: 'xai.image',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: xaiErrorStructure,\n });\n };\n\n const provider = (modelId: XaiChatModelId) => createLanguageModel(modelId);\n\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.textEmbeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'textEmbeddingModel' });\n };\n provider.imageModel = createImageModel;\n provider.image = createImageModel;\n\n return provider;\n}\n\nexport const xai = createXai();\n","// https://console.x.ai and see \"View models\"\nexport type XaiChatModelId =\n | 'grok-3'\n | 'grok-3-latest'\n | 'grok-3-fast'\n | 'grok-3-fast-latest'\n | 'grok-3-mini'\n | 'grok-3-mini-latest'\n | 'grok-3-mini-fast'\n | 'grok-3-mini-fast-latest'\n | 'grok-2-vision-1212'\n | 'grok-2-vision'\n | 'grok-2-vision-latest'\n | 'grok-2-image-1212'\n | 'grok-2-image'\n | 'grok-2-image-latest'\n | 'grok-2-1212'\n | 'grok-2'\n | 'grok-2-latest'\n | 'grok-vision-beta'\n | 'grok-beta'\n | (string & {});\n\n/**\n * https://docs.x.ai/docs/guides/structured-outputs\n */\nexport function supportsStructuredOutputs(modelId: XaiChatModelId) {\n return [\n 'grok-3',\n 'grok-3-beta',\n 'grok-3-latest',\n 'grok-3-fast',\n 'grok-3-fast-beta',\n 'grok-3-fast-latest',\n 'grok-3-mini',\n 'grok-3-mini-beta',\n 'grok-3-mini-latest',\n 'grok-3-mini-fast',\n 'grok-3-mini-fast-beta',\n 'grok-3-mini-fast-latest',\n 'grok-2-1212',\n 'grok-2-vision-1212',\n ].includes(modelId);\n}\n","import { z } from 'zod';\n\n// Add error schema and structure\nexport const xaiErrorSchema = z.object({\n code: z.string(),\n error: z.string(),\n});\n\nexport type XaiErrorData = z.infer<typeof xaiErrorSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,+BAIO;AACP,sBAKO;AACP,4BAIO;;;ACWA,SAAS,0BAA0B,SAAyB;AACjE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,SAAS,OAAO;AACpB;;;AC3CA,iBAAkB;AAGX,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACrC,MAAM,aAAE,OAAO;AAAA,EACf,OAAO,aAAE,OAAO;AAClB,CAAC;;;AFcD,IAAM,oBAA0D;AAAA,EAC9D,aAAa;AAAA,EACb,gBAAgB,UAAQ,KAAK;AAC/B;AAuDO,SAAS,UAAU,UAA+B,CAAC,GAAgB;AA9E1E;AA+EE,QAAM,cAAU;AAAA,KACd,aAAQ,YAAR,YAAmB;AAAA,EACrB;AACA,QAAM,aAAa,OAAO;AAAA,IACxB,eAAe,cAAU,kCAAW;AAAA,MAClC,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC,CAAC;AAAA,IACF,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,sBAAsB,CAAC,YAA4B;AACvD,UAAM,oBAAoB,0BAA0B,OAAO;AAC3D,WAAO,IAAI,2DAAkC,SAAS;AAAA,MACpD,UAAU;AAAA,MACV,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,gBAAgB;AAAA,MAChB,2BAA2B;AAAA,MAC3B,cAAc;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,CACvB,SACA,WAA6B,CAAC,MAC3B;AACH,WAAO,IAAI,oDAA2B,SAAS,UAAU;AAAA,MACvD,UAAU;AAAA,MACV,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAEA,QAAM,WAAW,CAAC,YAA4B,oBAAoB,OAAO;AAEzE,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,qBAAqB,CAAC,YAAoB;AACjD,UAAM,IAAI,iCAAiB,EAAE,SAAS,WAAW,qBAAqB,CAAC;AAAA,EACzE;AACA,WAAS,aAAa;AACtB,WAAS,QAAQ;AAEjB,SAAO;AACT;AAEO,IAAM,MAAM,UAAU;","names":[]}
package/dist/index.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  // src/xai-provider.ts
2
- import {
3
- NoSuchModelError
4
- } from "@ai-sdk/provider";
5
2
  import {
6
3
  OpenAICompatibleChatLanguageModel,
7
4
  OpenAICompatibleImageModel
8
5
  } from "@ai-sdk/openai-compatible";
6
+ import {
7
+ NoSuchModelError
8
+ } from "@ai-sdk/provider";
9
9
  import {
10
10
  loadApiKey,
11
11
  withoutTrailingSlash
@@ -13,7 +13,22 @@ import {
13
13
 
14
14
  // src/xai-chat-settings.ts
15
15
  function supportsStructuredOutputs(modelId) {
16
- return ["grok-2-1212", "grok-2-vision-1212"].includes(modelId);
16
+ return [
17
+ "grok-3",
18
+ "grok-3-beta",
19
+ "grok-3-latest",
20
+ "grok-3-fast",
21
+ "grok-3-fast-beta",
22
+ "grok-3-fast-latest",
23
+ "grok-3-mini",
24
+ "grok-3-mini-beta",
25
+ "grok-3-mini-latest",
26
+ "grok-3-mini-fast",
27
+ "grok-3-mini-fast-beta",
28
+ "grok-3-mini-fast-latest",
29
+ "grok-2-1212",
30
+ "grok-2-vision-1212"
31
+ ].includes(modelId);
17
32
  }
18
33
 
19
34
  // src/xai-error.ts
@@ -41,16 +56,16 @@ function createXai(options = {}) {
41
56
  })}`,
42
57
  ...options.headers
43
58
  });
44
- const createLanguageModel = (modelId, settings = {}) => {
59
+ const createLanguageModel = (modelId) => {
45
60
  const structuredOutputs = supportsStructuredOutputs(modelId);
46
- return new OpenAICompatibleChatLanguageModel(modelId, settings, {
61
+ return new OpenAICompatibleChatLanguageModel(modelId, {
47
62
  provider: "xai.chat",
48
63
  url: ({ path }) => `${baseURL}${path}`,
49
64
  headers: getHeaders,
50
65
  fetch: options.fetch,
51
- defaultObjectGenerationMode: structuredOutputs ? "json" : "tool",
52
66
  errorStructure: xaiErrorStructure,
53
- supportsStructuredOutputs: structuredOutputs
67
+ supportsStructuredOutputs: structuredOutputs,
68
+ includeUsage: true
54
69
  });
55
70
  };
56
71
  const createImageModel = (modelId, settings = {}) => {
@@ -62,7 +77,7 @@ function createXai(options = {}) {
62
77
  errorStructure: xaiErrorStructure
63
78
  });
64
79
  };
65
- const provider = (modelId, settings) => createLanguageModel(modelId, settings);
80
+ const provider = (modelId) => createLanguageModel(modelId);
66
81
  provider.languageModel = createLanguageModel;
67
82
  provider.chat = createLanguageModel;
68
83
  provider.textEmbeddingModel = (modelId) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/xai-provider.ts","../src/xai-chat-settings.ts","../src/xai-error.ts"],"sourcesContent":["import {\n ImageModelV1,\n LanguageModelV1,\n NoSuchModelError,\n ProviderV1,\n} from '@ai-sdk/provider';\nimport {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleImageModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport {\n XaiChatModelId,\n XaiChatSettings,\n supportsStructuredOutputs,\n} from './xai-chat-settings';\nimport { XaiImageSettings } from './xai-image-settings';\nimport { XaiImageModelId } from './xai-image-settings';\nimport { XaiErrorData, xaiErrorSchema } from './xai-error';\n\nconst xaiErrorStructure: ProviderErrorStructure<XaiErrorData> = {\n errorSchema: xaiErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface XaiProvider extends ProviderV1 {\n /**\nCreates an Xai chat model for text generation.\n */\n (modelId: XaiChatModelId, settings?: XaiChatSettings): LanguageModelV1;\n\n /**\nCreates an Xai language model for text generation.\n */\n languageModel(\n modelId: XaiChatModelId,\n settings?: XaiChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates an Xai chat model for text generation.\n */\n chat: (\n modelId: XaiChatModelId,\n settings?: XaiChatSettings,\n ) => LanguageModelV1;\n\n /**\nCreates an Xai image model for image generation.\n */\n image(modelId: XaiImageModelId, settings?: XaiImageSettings): ImageModelV1;\n\n /**\nCreates an Xai image model for image generation.\n */\n imageModel(\n modelId: XaiImageModelId,\n settings?: XaiImageSettings,\n ): ImageModelV1;\n}\n\nexport interface XaiProviderSettings {\n /**\nBase URL for the xAI API calls.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport function createXai(options: XaiProviderSettings = {}): XaiProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.x.ai/v1',\n );\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'XAI_API_KEY',\n description: 'xAI API key',\n })}`,\n ...options.headers,\n });\n\n const createLanguageModel = (\n modelId: XaiChatModelId,\n settings: XaiChatSettings = {},\n ) => {\n const structuredOutputs = supportsStructuredOutputs(modelId);\n return new OpenAICompatibleChatLanguageModel(modelId, settings, {\n provider: 'xai.chat',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n defaultObjectGenerationMode: structuredOutputs ? 'json' : 'tool',\n errorStructure: xaiErrorStructure,\n supportsStructuredOutputs: structuredOutputs,\n });\n };\n\n const createImageModel = (\n modelId: XaiImageModelId,\n settings: XaiImageSettings = {},\n ) => {\n return new OpenAICompatibleImageModel(modelId, settings, {\n provider: 'xai.image',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: xaiErrorStructure,\n });\n };\n\n const provider = (modelId: XaiChatModelId, settings?: XaiChatSettings) =>\n createLanguageModel(modelId, settings);\n\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.textEmbeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'textEmbeddingModel' });\n };\n provider.imageModel = createImageModel;\n provider.image = createImageModel;\n\n return provider;\n}\n\nexport const xai = createXai();\n","import { OpenAICompatibleChatSettings } from '@ai-sdk/openai-compatible';\n\n// https://console.x.ai and see \"View models\"\nexport type XaiChatModelId =\n | 'grok-2-1212'\n | 'grok-2-vision-1212'\n | 'grok-beta'\n | 'grok-vision-beta'\n | (string & {});\n\nexport interface XaiChatSettings extends OpenAICompatibleChatSettings {}\n\nexport function supportsStructuredOutputs(modelId: XaiChatModelId) {\n return ['grok-2-1212', 'grok-2-vision-1212'].includes(modelId);\n}\n","import { z } from 'zod';\n\n// Add error schema and structure\nexport const xaiErrorSchema = z.object({\n code: z.string(),\n error: z.string(),\n});\n\nexport type XaiErrorData = z.infer<typeof xaiErrorSchema>;\n"],"mappings":";AAAA;AAAA,EAGE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;;;ACHA,SAAS,0BAA0B,SAAyB;AACjE,SAAO,CAAC,eAAe,oBAAoB,EAAE,SAAS,OAAO;AAC/D;;;ACdA,SAAS,SAAS;AAGX,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,MAAM,EAAE,OAAO;AAAA,EACf,OAAO,EAAE,OAAO;AAClB,CAAC;;;AFmBD,IAAM,oBAA0D;AAAA,EAC9D,aAAa;AAAA,EACb,gBAAgB,UAAQ,KAAK;AAC/B;AA6DO,SAAS,UAAU,UAA+B,CAAC,GAAgB;AAzF1E;AA0FE,QAAM,UAAU;AAAA,KACd,aAAQ,YAAR,YAAmB;AAAA,EACrB;AACA,QAAM,aAAa,OAAO;AAAA,IACxB,eAAe,UAAU,WAAW;AAAA,MAClC,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC,CAAC;AAAA,IACF,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,sBAAsB,CAC1B,SACA,WAA4B,CAAC,MAC1B;AACH,UAAM,oBAAoB,0BAA0B,OAAO;AAC3D,WAAO,IAAI,kCAAkC,SAAS,UAAU;AAAA,MAC9D,UAAU;AAAA,MACV,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,6BAA6B,oBAAoB,SAAS;AAAA,MAC1D,gBAAgB;AAAA,MAChB,2BAA2B;AAAA,IAC7B,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,CACvB,SACA,WAA6B,CAAC,MAC3B;AACH,WAAO,IAAI,2BAA2B,SAAS,UAAU;AAAA,MACvD,UAAU;AAAA,MACV,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAEA,QAAM,WAAW,CAAC,SAAyB,aACzC,oBAAoB,SAAS,QAAQ;AAEvC,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,qBAAqB,CAAC,YAAoB;AACjD,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,qBAAqB,CAAC;AAAA,EACzE;AACA,WAAS,aAAa;AACtB,WAAS,QAAQ;AAEjB,SAAO;AACT;AAEO,IAAM,MAAM,UAAU;","names":[]}
1
+ {"version":3,"sources":["../src/xai-provider.ts","../src/xai-chat-settings.ts","../src/xai-error.ts"],"sourcesContent":["import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleImageModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n ImageModelV1,\n LanguageModelV2,\n NoSuchModelError,\n ProviderV2,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { XaiChatModelId, supportsStructuredOutputs } from './xai-chat-settings';\nimport { XaiErrorData, xaiErrorSchema } from './xai-error';\nimport { XaiImageModelId, XaiImageSettings } from './xai-image-settings';\n\nconst xaiErrorStructure: ProviderErrorStructure<XaiErrorData> = {\n errorSchema: xaiErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface XaiProvider extends ProviderV2 {\n /**\nCreates an Xai chat model for text generation.\n */\n (modelId: XaiChatModelId): LanguageModelV2;\n\n /**\nCreates an Xai language model for text generation.\n */\n languageModel(modelId: XaiChatModelId): LanguageModelV2;\n\n /**\nCreates an Xai chat model for text generation.\n */\n chat: (modelId: XaiChatModelId) => LanguageModelV2;\n\n /**\nCreates an Xai image model for image generation.\n */\n image(modelId: XaiImageModelId, settings?: XaiImageSettings): ImageModelV1;\n\n /**\nCreates an Xai image model for image generation.\n */\n imageModel(\n modelId: XaiImageModelId,\n settings?: XaiImageSettings,\n ): ImageModelV1;\n}\n\nexport interface XaiProviderSettings {\n /**\nBase URL for the xAI API calls.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport function createXai(options: XaiProviderSettings = {}): XaiProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.x.ai/v1',\n );\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'XAI_API_KEY',\n description: 'xAI API key',\n })}`,\n ...options.headers,\n });\n\n const createLanguageModel = (modelId: XaiChatModelId) => {\n const structuredOutputs = supportsStructuredOutputs(modelId);\n return new OpenAICompatibleChatLanguageModel(modelId, {\n provider: 'xai.chat',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: xaiErrorStructure,\n supportsStructuredOutputs: structuredOutputs,\n includeUsage: true,\n });\n };\n\n const createImageModel = (\n modelId: XaiImageModelId,\n settings: XaiImageSettings = {},\n ) => {\n return new OpenAICompatibleImageModel(modelId, settings, {\n provider: 'xai.image',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: xaiErrorStructure,\n });\n };\n\n const provider = (modelId: XaiChatModelId) => createLanguageModel(modelId);\n\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.textEmbeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'textEmbeddingModel' });\n };\n provider.imageModel = createImageModel;\n provider.image = createImageModel;\n\n return provider;\n}\n\nexport const xai = createXai();\n","// https://console.x.ai and see \"View models\"\nexport type XaiChatModelId =\n | 'grok-3'\n | 'grok-3-latest'\n | 'grok-3-fast'\n | 'grok-3-fast-latest'\n | 'grok-3-mini'\n | 'grok-3-mini-latest'\n | 'grok-3-mini-fast'\n | 'grok-3-mini-fast-latest'\n | 'grok-2-vision-1212'\n | 'grok-2-vision'\n | 'grok-2-vision-latest'\n | 'grok-2-image-1212'\n | 'grok-2-image'\n | 'grok-2-image-latest'\n | 'grok-2-1212'\n | 'grok-2'\n | 'grok-2-latest'\n | 'grok-vision-beta'\n | 'grok-beta'\n | (string & {});\n\n/**\n * https://docs.x.ai/docs/guides/structured-outputs\n */\nexport function supportsStructuredOutputs(modelId: XaiChatModelId) {\n return [\n 'grok-3',\n 'grok-3-beta',\n 'grok-3-latest',\n 'grok-3-fast',\n 'grok-3-fast-beta',\n 'grok-3-fast-latest',\n 'grok-3-mini',\n 'grok-3-mini-beta',\n 'grok-3-mini-latest',\n 'grok-3-mini-fast',\n 'grok-3-mini-fast-beta',\n 'grok-3-mini-fast-latest',\n 'grok-2-1212',\n 'grok-2-vision-1212',\n ].includes(modelId);\n}\n","import { z } from 'zod';\n\n// Add error schema and structure\nexport const xaiErrorSchema = z.object({\n code: z.string(),\n error: z.string(),\n});\n\nexport type XaiErrorData = z.infer<typeof xaiErrorSchema>;\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EAGE;AAAA,OAEK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;;;ACWA,SAAS,0BAA0B,SAAyB;AACjE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,SAAS,OAAO;AACpB;;;AC3CA,SAAS,SAAS;AAGX,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,MAAM,EAAE,OAAO;AAAA,EACf,OAAO,EAAE,OAAO;AAClB,CAAC;;;AFcD,IAAM,oBAA0D;AAAA,EAC9D,aAAa;AAAA,EACb,gBAAgB,UAAQ,KAAK;AAC/B;AAuDO,SAAS,UAAU,UAA+B,CAAC,GAAgB;AA9E1E;AA+EE,QAAM,UAAU;AAAA,KACd,aAAQ,YAAR,YAAmB;AAAA,EACrB;AACA,QAAM,aAAa,OAAO;AAAA,IACxB,eAAe,UAAU,WAAW;AAAA,MAClC,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC,CAAC;AAAA,IACF,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,sBAAsB,CAAC,YAA4B;AACvD,UAAM,oBAAoB,0BAA0B,OAAO;AAC3D,WAAO,IAAI,kCAAkC,SAAS;AAAA,MACpD,UAAU;AAAA,MACV,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,gBAAgB;AAAA,MAChB,2BAA2B;AAAA,MAC3B,cAAc;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,CACvB,SACA,WAA6B,CAAC,MAC3B;AACH,WAAO,IAAI,2BAA2B,SAAS,UAAU;AAAA,MACvD,UAAU;AAAA,MACV,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAEA,QAAM,WAAW,CAAC,YAA4B,oBAAoB,OAAO;AAEzE,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,qBAAqB,CAAC,YAAoB;AACjD,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,qBAAqB,CAAC;AAAA,EACzE;AACA,WAAS,aAAa;AACtB,WAAS,QAAQ;AAEjB,SAAO;AACT;AAEO,IAAM,MAAM,UAAU;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/xai",
3
- "version": "2.0.0-canary.0",
3
+ "version": "2.0.0-canary.10",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -19,14 +19,14 @@
19
19
  }
20
20
  },
21
21
  "dependencies": {
22
- "@ai-sdk/openai-compatible": "1.0.0-canary.0",
23
- "@ai-sdk/provider": "2.0.0-canary.0",
24
- "@ai-sdk/provider-utils": "3.0.0-canary.0"
22
+ "@ai-sdk/openai-compatible": "1.0.0-canary.10",
23
+ "@ai-sdk/provider": "2.0.0-canary.9",
24
+ "@ai-sdk/provider-utils": "3.0.0-canary.10"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "20.17.24",
28
28
  "tsup": "^8",
29
- "typescript": "5.6.3",
29
+ "typescript": "5.8.3",
30
30
  "zod": "3.23.8",
31
31
  "@vercel/ai-tsconfig": "0.0.0"
32
32
  },
@@ -51,13 +51,15 @@
51
51
  "ai"
52
52
  ],
53
53
  "scripts": {
54
- "build": "tsup",
55
- "build:watch": "tsup --watch",
56
- "clean": "rm -rf dist",
54
+ "build": "pnpm clean && tsup --tsconfig tsconfig.build.json",
55
+ "build:watch": "pnpm clean && tsup --watch",
56
+ "clean": "rm -rf dist *.tsbuildinfo",
57
57
  "lint": "eslint \"./**/*.ts*\"",
58
- "type-check": "tsc --noEmit",
58
+ "type-check": "tsc --build",
59
59
  "prettier-check": "prettier --check \"./**/*.ts*\"",
60
60
  "test": "pnpm test:node && pnpm test:edge",
61
+ "test:update": "pnpm test:node -u",
62
+ "test:watch": "vitest --config vitest.node.config.js",
61
63
  "test:edge": "vitest --config vitest.edge.config.js --run",
62
64
  "test:node": "vitest --config vitest.node.config.js --run"
63
65
  }