task-master-ai
Version:
A task management system for ambitious AI-driven development that doesn't overwhelm and confuse Cursor.
48 lines (41 loc) • 1.16 kB
JavaScript
/**
* xai.js
* AI provider implementation for xAI models using Vercel AI SDK.
*/
import { createXai } from '@ai-sdk/xai';
import { BaseAIProvider } from './base-provider.js';
export class XAIProvider extends BaseAIProvider {
constructor() {
super();
this.name = 'xAI';
}
/**
* Returns the environment variable name required for this provider's API key.
* @returns {string} The environment variable name for the xAI API key
*/
getRequiredApiKeyName() {
return 'XAI_API_KEY';
}
/**
* Creates and returns an xAI client instance.
* @param {object} params - Parameters for client initialization
* @param {string} params.apiKey - xAI API key
* @param {string} [params.baseURL] - Optional custom API endpoint
* @returns {Function} xAI client function
* @throws {Error} If API key is missing or initialization fails
*/
getClient(params) {
try {
const { apiKey, baseURL } = params;
if (!apiKey) {
throw new Error('xAI API key is required.');
}
return createXai({
apiKey,
baseURL: baseURL || 'https://api.x.ai/v1'
});
} catch (error) {
this.handleError('client initialization', error);
}
}
}