@zhivex-ai/xai 0.1.0

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/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # @zhivex-ai/xai
2
+
3
+ xAI Grok adapter for Zhivex AI SDK. It uses the xAI Responses API by default and supports Chat Completions as an explicit compatibility mode.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ bun add @zhivex-ai/xai
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { generateText } from "@zhivex-ai/core";
15
+ import { createXAI, xAIXSearchTool, xAIWebSearchTool } from "@zhivex-ai/xai";
16
+
17
+ const xai = createXAI({
18
+ apiKey: process.env.XAI_API_KEY
19
+ });
20
+
21
+ const result = await generateText({
22
+ model: xai("grok-4.5"),
23
+ prompt: "Summarize the latest xAI release with sources.",
24
+ reasoning: { effort: "medium" },
25
+ providerOptions: { conversationId: "release-research" },
26
+ tools: {
27
+ web: xAIWebSearchTool(),
28
+ x: xAIXSearchTool()
29
+ }
30
+ });
31
+
32
+ console.log(result.text);
33
+ ```
34
+
35
+ The adapter defaults to `https://api.x.ai/v1` and reads `XAI_API_KEY` when no API key is passed explicitly.
36
+
37
+ ## Supported Grok 4.5 features
38
+
39
+ - text and image input
40
+ - streaming
41
+ - function calling and tool choice
42
+ - native structured output
43
+ - `low`, `medium`, and `high` reasoning effort
44
+ - hosted Web Search, X Search, code execution, and Collections file search
45
+ - Files API attachments
46
+ - prompt caching through `conversationId` or `prompt_cache_key`
47
+ - Responses conversation continuity and encrypted reasoning preservation when `store: false`
48
+
49
+ Use `providerOptions: { apiMode: "chat" }` only when Chat Completions compatibility is required. In Chat mode, `conversationId` is sent through the `x-grok-conv-id` header.
50
+
51
+ Repository and full documentation:
52
+
53
+ - <https://github.com/Zhivex/zhivex-ai-sdk>
@@ -0,0 +1,67 @@
1
+ import { type CallableProviderAdapter, type FilesClient, type JsonValue, type ProviderAdapter } from "@zhivex-ai/core";
2
+ export interface XAIProviderOptions {
3
+ apiKey?: string;
4
+ baseURL?: string;
5
+ headers?: Record<string, string>;
6
+ fetch?: typeof globalThis.fetch;
7
+ }
8
+ export interface XAILanguageModelOptions {
9
+ apiMode?: "chat" | "responses";
10
+ headers?: Record<string, string>;
11
+ conversationId?: string;
12
+ prompt_cache_key?: string;
13
+ include?: string[];
14
+ store?: boolean;
15
+ parallel_tool_calls?: boolean;
16
+ top_p?: number;
17
+ frequency_penalty?: number;
18
+ presence_penalty?: number;
19
+ stop?: string | string[];
20
+ seed?: number;
21
+ user?: string;
22
+ [key: string]: unknown;
23
+ }
24
+ export interface XAIFileOptions {
25
+ purpose?: string;
26
+ expires_after?: number;
27
+ order?: "asc" | "desc";
28
+ sort_by?: "created_at" | "filename" | "size";
29
+ filter?: string;
30
+ [key: string]: unknown;
31
+ }
32
+ export interface XAIWebSearchToolConfig {
33
+ allowed_domains?: string[];
34
+ excluded_domains?: string[];
35
+ enable_image_understanding?: boolean;
36
+ enable_image_search?: boolean;
37
+ }
38
+ export interface XAIXSearchToolConfig {
39
+ allowed_x_handles?: string[];
40
+ excluded_x_handles?: string[];
41
+ from_date?: string;
42
+ to_date?: string;
43
+ enable_image_understanding?: boolean;
44
+ }
45
+ export interface XAICodeExecutionToolConfig {
46
+ [key: string]: JsonValue | undefined;
47
+ }
48
+ export interface XAIFileSearchToolConfig {
49
+ vector_store_ids: string[];
50
+ max_num_results?: number;
51
+ filters?: Record<string, JsonValue>;
52
+ }
53
+ export declare const xAIWebSearchTool: (config?: XAIWebSearchToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
54
+ export declare const xAIXSearchTool: (config?: XAIXSearchToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
55
+ export declare const xAICodeExecutionTool: (config?: XAICodeExecutionToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
56
+ export declare const xAIFileSearchTool: (config: XAIFileSearchToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
57
+ export declare const xAIFilePart: (fileId: string, mediaType?: string, filename?: string) => {
58
+ type: "file";
59
+ data: string;
60
+ mediaType: string;
61
+ filename: string | undefined;
62
+ };
63
+ export declare const createXAI: (options?: XAIProviderOptions) => CallableProviderAdapter & ProviderAdapter & {
64
+ files: FilesClient<XAIFileOptions>;
65
+ rawFetch: typeof globalThis.fetch;
66
+ };
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,uBAAuB,EAI5B,KAAK,WAAW,EAKhB,KAAK,SAAS,EAKd,KAAK,eAAe,EAIrB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACrC;AA+aD,eAAO,MAAM,gBAAgB,GAAI,SAAQ,sBAA2B,8DAkBnE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAQ,oBAAyB,8DAO5D,CAAC;AAEL,eAAO,MAAM,oBAAoB,GAAI,SAAQ,0BAA+B,8DAOxE,CAAC;AAEL,eAAO,MAAM,iBAAiB,GAAI,QAAQ,uBAAuB,8DAO7D,CAAC;AAEL,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,kBAAsC,EAAE,WAAW,MAAM;;;;;CAKnG,CAAC;AAEH,eAAO,MAAM,SAAS,GACpB,UAAS,kBAAuB,KAC/B,uBAAuB,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACnC,QAAQ,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAmBrC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,425 @@
1
+ import { ConfigurationError, ProviderHTTPError, UnsupportedFeatureError, createProviderAdapter, hostedTool, isHostedToolDefinition, normalizeMessages, withRetry, withTimeoutSignal } from "@zhivex-ai/core";
2
+ import { createOpenAI } from "@zhivex-ai/openai";
3
+ const baseCapabilities = {
4
+ streaming: true,
5
+ tools: true,
6
+ structuredOutput: true,
7
+ jsonMode: true,
8
+ toolChoice: true,
9
+ parallelToolCalls: true,
10
+ vision: true,
11
+ files: true,
12
+ audioInput: false,
13
+ audioOutput: false,
14
+ embeddings: false,
15
+ fileSearch: true,
16
+ contextCaching: true,
17
+ reasoning: true,
18
+ webSearch: true,
19
+ agentCapabilities: {
20
+ supportTier: "tier-b",
21
+ toolChoiceNone: true,
22
+ approvalRequests: false,
23
+ hostedWebSearch: true,
24
+ hostedFileSearch: true,
25
+ remoteMcp: false,
26
+ computerUse: false,
27
+ codeExecution: true,
28
+ toolsets: false
29
+ }
30
+ };
31
+ const normalizedModelId = (modelId) => modelId.trim().toLowerCase();
32
+ const isGrok45 = (modelId) => /^grok-4\.5(?:[-@]|$)/.test(normalizedModelId(modelId));
33
+ const isGrok420MultiAgent = (modelId) => /^grok-4\.20(?:-\d{4})?-multi-agent(?:[-@]|$)/.test(normalizedModelId(modelId));
34
+ const isNonReasoningModel = (modelId) => /non-reasoning/.test(normalizedModelId(modelId));
35
+ const modelCapabilities = (modelId) => ({
36
+ ...baseCapabilities,
37
+ reasoning: !isNonReasoningModel(modelId),
38
+ reasoningEfforts: isNonReasoningModel(modelId)
39
+ ? undefined
40
+ : isGrok45(modelId)
41
+ ? ["low", "medium", "high"]
42
+ : isGrok420MultiAgent(modelId)
43
+ ? ["low", "medium", "high", "xhigh"]
44
+ : ["none", "low", "medium", "high"]
45
+ });
46
+ const jsonHeaders = (apiKey) => ({
47
+ "content-type": "application/json",
48
+ authorization: `Bearer ${apiKey}`
49
+ });
50
+ const parseJson = async (response) => {
51
+ if (!response.ok) {
52
+ const body = await response.text();
53
+ throw new ProviderHTTPError(`xAI request failed with status ${response.status}.`, response.status, {
54
+ responseBody: body
55
+ });
56
+ }
57
+ return response.json();
58
+ };
59
+ const remapHTTPError = (error) => {
60
+ if (error instanceof ProviderHTTPError) {
61
+ throw new ProviderHTTPError(`xAI request failed with status ${error.status}.`, error.status, {
62
+ cause: error,
63
+ responseBody: error.responseBody
64
+ });
65
+ }
66
+ throw error;
67
+ };
68
+ const remapMessageProvider = (message, from, to) => ({
69
+ ...message,
70
+ parts: message.parts.map((part) => part.type === "provider-data" && part.provider === from
71
+ ? { ...part, provider: to }
72
+ : part)
73
+ });
74
+ const remapToolsForOpenAITransport = (tools) => tools
75
+ ? Object.fromEntries(Object.entries(tools).map(([name, definition]) => [
76
+ name,
77
+ isHostedToolDefinition(definition) && definition.provider === "xai"
78
+ ? { ...definition, provider: "openai" }
79
+ : definition
80
+ ]))
81
+ : undefined;
82
+ const validateXAIInput = (modelId, input) => {
83
+ const reasoning = input.reasoning;
84
+ if (reasoning?.budgetTokens !== undefined) {
85
+ throw new UnsupportedFeatureError('Provider "xai" does not support "reasoning.budgetTokens".');
86
+ }
87
+ if (reasoning?.mode !== undefined || reasoning?.context !== undefined) {
88
+ throw new UnsupportedFeatureError('Provider "xai" does not support "reasoning.mode" or "reasoning.context".');
89
+ }
90
+ if (reasoning?.includeThoughts) {
91
+ throw new UnsupportedFeatureError('Provider "xai" does not expose reasoning through "includeThoughts"; use providerOptions.include with encrypted reasoning when required.');
92
+ }
93
+ if (isNonReasoningModel(modelId) && reasoning) {
94
+ throw new UnsupportedFeatureError(`Provider "xai" model "${modelId}" does not support reasoning.`);
95
+ }
96
+ const effort = reasoning?.effort;
97
+ const supportedEfforts = modelCapabilities(modelId).reasoningEfforts;
98
+ if (effort && supportedEfforts && !supportedEfforts.includes(effort)) {
99
+ throw new UnsupportedFeatureError(`Provider "xai" model "${modelId}" does not support reasoning effort "${effort}". Supported efforts: ${supportedEfforts.join(", ")}.`);
100
+ }
101
+ const providerOptions = input.providerOptions;
102
+ if (providerOptions?.apiMode === "chat" &&
103
+ Object.values(input.tools ?? {}).some(isHostedToolDefinition)) {
104
+ throw new UnsupportedFeatureError('Provider "xai" supports hosted tools through the Responses API only.');
105
+ }
106
+ const reasoningIsActive = Boolean(reasoning) || isGrok45(modelId);
107
+ if (reasoningIsActive &&
108
+ (providerOptions?.presence_penalty !== undefined ||
109
+ providerOptions?.frequency_penalty !== undefined ||
110
+ providerOptions?.stop !== undefined)) {
111
+ throw new UnsupportedFeatureError(`Provider "xai" model "${modelId}" does not support presence_penalty, frequency_penalty, or stop while reasoning is active.`);
112
+ }
113
+ };
114
+ const resolveTransportOptions = (options, defaultHeaders) => {
115
+ const { conversationId, headers, apiMode = "responses", prompt_cache_key: promptCacheKey, ...bodyOptions } = options ?? {};
116
+ const mergedHeaders = { ...defaultHeaders, ...headers };
117
+ if (apiMode === "chat") {
118
+ const cacheKey = conversationId ?? promptCacheKey;
119
+ if (cacheKey) {
120
+ mergedHeaders["x-grok-conv-id"] = cacheKey;
121
+ }
122
+ return {
123
+ ...bodyOptions,
124
+ apiMode,
125
+ headers: mergedHeaders
126
+ };
127
+ }
128
+ const include = bodyOptions.store === false
129
+ ? [...new Set([...(Array.isArray(bodyOptions.include) ? bodyOptions.include : []), "reasoning.encrypted_content"])]
130
+ : bodyOptions.include;
131
+ return {
132
+ ...bodyOptions,
133
+ apiMode,
134
+ headers: mergedHeaders,
135
+ ...(include ? { include } : {}),
136
+ ...(promptCacheKey ?? conversationId ? { prompt_cache_key: promptCacheKey ?? conversationId } : {})
137
+ };
138
+ };
139
+ const prepareTransportInput = (input, defaultHeaders) => ({
140
+ ...input,
141
+ messages: input.messages.map((message) => remapMessageProvider(message, "xai", "openai")),
142
+ tools: remapToolsForOpenAITransport(input.tools),
143
+ providerOptions: resolveTransportOptions(input.providerOptions, defaultHeaders)
144
+ });
145
+ const remapGenerateResult = (result) => ({
146
+ ...result,
147
+ ...(result.message ? { message: remapMessageProvider(result.message, "openai", "xai") } : {}),
148
+ ...(result.messages
149
+ ? { messages: result.messages.map((message) => remapMessageProvider(message, "openai", "xai")) }
150
+ : {})
151
+ });
152
+ class XAILanguageModel {
153
+ modelId;
154
+ delegate;
155
+ defaultHeaders;
156
+ provider = "xai";
157
+ capabilities;
158
+ constructor(modelId, delegate, defaultHeaders) {
159
+ this.modelId = modelId;
160
+ this.delegate = delegate;
161
+ this.defaultHeaders = defaultHeaders;
162
+ this.capabilities = modelCapabilities(modelId);
163
+ }
164
+ async generate(input) {
165
+ validateXAIInput(this.modelId, input);
166
+ try {
167
+ return remapGenerateResult(await this.delegate.generate(prepareTransportInput(input, this.defaultHeaders)));
168
+ }
169
+ catch (error) {
170
+ return remapHTTPError(error);
171
+ }
172
+ }
173
+ async stream(input) {
174
+ validateXAIInput(this.modelId, input);
175
+ if (!this.delegate.stream) {
176
+ throw new UnsupportedFeatureError('Provider "xai" transport does not support streaming.');
177
+ }
178
+ let stream;
179
+ try {
180
+ stream = await this.delegate.stream(prepareTransportInput(input, this.defaultHeaders));
181
+ }
182
+ catch (error) {
183
+ return remapHTTPError(error);
184
+ }
185
+ return (async function* () {
186
+ for await (const event of stream) {
187
+ if (event.type === "provider-data" && event.provider === "openai") {
188
+ yield { ...event, provider: "xai" };
189
+ }
190
+ else {
191
+ yield event;
192
+ }
193
+ }
194
+ })();
195
+ }
196
+ }
197
+ const extractSources = (value) => {
198
+ const sources = [];
199
+ const visit = (node) => {
200
+ if (!node || typeof node !== "object")
201
+ return;
202
+ const record = node;
203
+ if (typeof record.url === "string") {
204
+ sources.push({
205
+ title: typeof record.title === "string" ? record.title : undefined,
206
+ url: record.url,
207
+ snippet: typeof record.snippet === "string" ? record.snippet : undefined,
208
+ providerMetadata: record
209
+ });
210
+ }
211
+ for (const nested of Object.values(record)) {
212
+ if (Array.isArray(nested))
213
+ nested.forEach(visit);
214
+ else if (nested && typeof nested === "object")
215
+ visit(nested);
216
+ }
217
+ };
218
+ visit(value);
219
+ return sources.filter((source, index, all) => all.findIndex((candidate) => candidate.url === source.url) === index);
220
+ };
221
+ class XAIGroundedLanguageModel {
222
+ modelId;
223
+ languageModel;
224
+ provider = "xai";
225
+ capabilities;
226
+ constructor(modelId, languageModel) {
227
+ this.modelId = modelId;
228
+ this.languageModel = languageModel;
229
+ this.capabilities = languageModel.capabilities;
230
+ }
231
+ async generate(input) {
232
+ const result = await this.languageModel.generate({
233
+ ...input,
234
+ messages: normalizeMessages(input),
235
+ tools: { webSearch: xAIWebSearchTool() }
236
+ });
237
+ return {
238
+ text: result.text ?? "",
239
+ sources: extractSources(result.rawResponse),
240
+ finishReason: result.finishReason,
241
+ providerFinishReason: result.providerFinishReason,
242
+ usage: result.usage,
243
+ rawResponse: result.rawResponse
244
+ };
245
+ }
246
+ }
247
+ const blobFromData = (data, mediaType) => {
248
+ if (data instanceof Blob)
249
+ return data;
250
+ if (typeof data === "string")
251
+ return new Blob([Buffer.from(data, "base64")], { type: mediaType });
252
+ return new Blob([data instanceof Uint8Array ? data.buffer : data], { type: mediaType });
253
+ };
254
+ const normalizeUploadedFile = (json) => ({
255
+ name: json.id ?? json.name,
256
+ uri: json.id ?? json.uri,
257
+ mimeType: json.mime_type ?? json.mimeType,
258
+ sizeBytes: json.bytes ?? json.size_bytes ?? json.sizeBytes,
259
+ state: json.status ?? json.state,
260
+ displayName: json.filename ?? json.display_name ?? json.displayName,
261
+ rawResponse: json,
262
+ providerMetadata: json
263
+ });
264
+ const appendQuery = (url, query) => {
265
+ const parsed = new URL(url);
266
+ for (const [key, value] of Object.entries(query)) {
267
+ if (value !== undefined)
268
+ parsed.searchParams.set(key, String(value));
269
+ }
270
+ return parsed.toString();
271
+ };
272
+ class XAIFilesClient {
273
+ apiKey;
274
+ baseURL;
275
+ fetcher;
276
+ constructor(apiKey, baseURL, fetcher) {
277
+ this.apiKey = apiKey;
278
+ this.baseURL = baseURL;
279
+ this.fetcher = fetcher;
280
+ }
281
+ async upload(input) {
282
+ const { signal, cleanup } = withTimeoutSignal(input);
283
+ const form = new FormData();
284
+ const options = input.providerOptions ?? {};
285
+ if (options.expires_after !== undefined &&
286
+ (!Number.isInteger(options.expires_after) || options.expires_after < 3_600 || options.expires_after > 2_592_000)) {
287
+ throw new UnsupportedFeatureError('Provider "xai" requires files.expires_after to be an integer between 3600 and 2592000 seconds.');
288
+ }
289
+ if (options.expires_after !== undefined)
290
+ form.set("expires_after", String(options.expires_after));
291
+ form.set("purpose", options.purpose ?? "assistants");
292
+ for (const [key, value] of Object.entries(options)) {
293
+ if (!["expires_after", "purpose", "order", "sort_by", "filter"].includes(key) && value !== undefined) {
294
+ form.set(key, typeof value === "string" ? value : JSON.stringify(value));
295
+ }
296
+ }
297
+ const filename = input.filename ?? input.displayName ?? input.name ?? "file";
298
+ form.set("file", blobFromData(input.data, input.mediaType), filename);
299
+ try {
300
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/files`, {
301
+ method: "POST",
302
+ headers: { authorization: `Bearer ${this.apiKey}` },
303
+ signal,
304
+ body: form
305
+ }), input);
306
+ return normalizeUploadedFile(await parseJson(response));
307
+ }
308
+ finally {
309
+ cleanup();
310
+ }
311
+ }
312
+ async get(input) {
313
+ const { signal, cleanup } = withTimeoutSignal(input);
314
+ try {
315
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/files/${input.name}`, {
316
+ method: "GET",
317
+ headers: jsonHeaders(this.apiKey),
318
+ signal
319
+ }), input);
320
+ return normalizeUploadedFile(await parseJson(response));
321
+ }
322
+ finally {
323
+ cleanup();
324
+ }
325
+ }
326
+ async list(input = {}) {
327
+ const { signal, cleanup } = withTimeoutSignal(input);
328
+ const options = input.providerOptions ?? {};
329
+ try {
330
+ const response = await withRetry(() => this.fetcher(appendQuery(`${this.baseURL}/files`, {
331
+ limit: input.pageSize,
332
+ pagination_token: input.pageToken,
333
+ order: options.order,
334
+ sort_by: options.sort_by,
335
+ filter: options.filter
336
+ }), { method: "GET", headers: jsonHeaders(this.apiKey), signal }), input);
337
+ const json = await parseJson(response);
338
+ return {
339
+ files: (json.data ?? json.files ?? []).map(normalizeUploadedFile),
340
+ nextPageToken: json.pagination_token ?? json.next ?? json.nextPageToken,
341
+ rawResponse: json
342
+ };
343
+ }
344
+ finally {
345
+ cleanup();
346
+ }
347
+ }
348
+ async delete(input) {
349
+ const { signal, cleanup } = withTimeoutSignal(input);
350
+ try {
351
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/files/${input.name}`, {
352
+ method: "DELETE",
353
+ headers: jsonHeaders(this.apiKey),
354
+ signal
355
+ }), input);
356
+ return { name: input.name, rawResponse: await parseJson(response) };
357
+ }
358
+ finally {
359
+ cleanup();
360
+ }
361
+ }
362
+ }
363
+ const sanitizeConfig = (config) => Object.fromEntries(Object.entries(config).filter(([, value]) => value !== undefined));
364
+ export const xAIWebSearchTool = (config = {}) => {
365
+ const { allowed_domains, excluded_domains, ...rest } = config;
366
+ if (allowed_domains?.length && excluded_domains?.length) {
367
+ throw new UnsupportedFeatureError('Provider "xai" Web Search cannot combine allowed_domains with excluded_domains.');
368
+ }
369
+ return hostedTool({
370
+ name: "web_search",
371
+ provider: "xai",
372
+ type: "web_search",
373
+ toolClass: "web-search",
374
+ config: sanitizeConfig({
375
+ ...rest,
376
+ ...(allowed_domains?.length ? { filters: { allowed_domains } } : {}),
377
+ ...(excluded_domains?.length ? { filters: { excluded_domains } } : {})
378
+ })
379
+ });
380
+ };
381
+ export const xAIXSearchTool = (config = {}) => hostedTool({
382
+ name: "x_search",
383
+ provider: "xai",
384
+ type: "x_search",
385
+ toolClass: "web-search",
386
+ config: sanitizeConfig(config)
387
+ });
388
+ export const xAICodeExecutionTool = (config = {}) => hostedTool({
389
+ name: "code_execution",
390
+ provider: "xai",
391
+ type: "code_interpreter",
392
+ toolClass: "code-execution",
393
+ config: sanitizeConfig(config)
394
+ });
395
+ export const xAIFileSearchTool = (config) => hostedTool({
396
+ name: "file_search",
397
+ provider: "xai",
398
+ type: "file_search",
399
+ toolClass: "file-search",
400
+ config: sanitizeConfig(config)
401
+ });
402
+ export const xAIFilePart = (fileId, mediaType = "application/octet-stream", filename) => ({
403
+ type: "file",
404
+ data: fileId,
405
+ mediaType,
406
+ filename
407
+ });
408
+ export const createXAI = (options = {}) => {
409
+ const apiKey = options.apiKey ?? process.env.XAI_API_KEY;
410
+ if (!apiKey)
411
+ throw new ConfigurationError("Missing xAI API key.");
412
+ const baseURL = (options.baseURL ?? "https://api.x.ai/v1").replace(/\/+$/, "");
413
+ const fetcher = options.fetch ?? globalThis.fetch;
414
+ const transport = createOpenAI({ apiKey, baseURL, fetch: fetcher });
415
+ const defaultHeaders = options.headers ?? {};
416
+ const languageModel = (modelId) => new XAILanguageModel(modelId, transport.languageModel(modelId), defaultHeaders);
417
+ return createProviderAdapter({
418
+ name: "xai",
419
+ languageModel,
420
+ groundedLanguageModel: (modelId) => new XAIGroundedLanguageModel(modelId, languageModel(modelId)),
421
+ files: new XAIFilesClient(apiKey, baseURL, fetcher),
422
+ rawFetch: fetcher
423
+ });
424
+ };
425
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@zhivex-ai/xai",
3
+ "version": "0.1.0",
4
+ "description": "xAI Grok adapter for Zhivex AI SDK.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "engines": {
10
+ "node": ">=18.18.0",
11
+ "bun": ">=1.3.7"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "README.md"
22
+ ],
23
+ "sideEffects": false,
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/Zhivex/zhivex-ai-sdk.git",
27
+ "directory": "packages/xai"
28
+ },
29
+ "homepage": "https://github.com/Zhivex/zhivex-ai-sdk#readme",
30
+ "bugs": {
31
+ "url": "https://github.com/Zhivex/zhivex-ai-sdk/issues"
32
+ },
33
+ "keywords": [
34
+ "ai",
35
+ "sdk",
36
+ "xai",
37
+ "grok",
38
+ "llm",
39
+ "typescript"
40
+ ],
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "dependencies": {
45
+ "@zhivex-ai/core": "^0.17.0",
46
+ "@zhivex-ai/openai": "^0.8.1"
47
+ }
48
+ }