giga-code
Version:
A personal AI CLI assistant powered by Grok for local development.
82 lines (81 loc) • 2.39 kB
TypeScript
import type { ChatCompletionMessageParam } from 'openai/resources/chat';
export type GrokMessage = ChatCompletionMessageParam;
export interface GrokTool {
type: 'function';
function: {
name: string;
description: string;
parameters: {
type: 'object';
properties: Record<string, any>;
required: string[];
};
};
}
export interface GrokToolCall {
id: string;
type: 'function';
function: {
name: string;
arguments: string;
};
}
export interface GrokResponse {
choices: Array<{
message: {
role: string;
content: string | null;
tool_calls?: GrokToolCall[];
};
finish_reason: string;
}>;
usage?: {
prompt_tokens?: number;
completion_tokens?: number;
total_tokens?: number;
};
metrics?: {
prefillTimeMs: number;
decodeTimeMs: number;
outputTokens: number;
tokensPerSecond: number;
};
}
export interface ApiCallMetrics {
model: string;
inputTokens: number;
outputTokens: number;
totalTokens: number;
durationMs: number;
tokensPerSecond: number;
}
export declare class GigaClient {
private xaiClient;
private groqClient;
private anthropicClient;
private openRouterClient;
private googleClient;
private cerebrasClient;
private openaiClient;
private ollamaClient;
private groqApiKey?;
private anthropicApiKey?;
private openRouterApiKey?;
private googleApiKey?;
private cerebrasApiKey?;
private openaiApiKey?;
private ollamaBaseUrl?;
private lastStreamingMetrics?;
constructor(apiKey?: string, model?: string, groqApiKey?: string, anthropicApiKey?: string, openRouterApiKey?: string, googleApiKey?: string, cerebrasApiKey?: string, openaiApiKey?: string, ollamaBaseUrl?: string);
private getClientForModel;
setModel(model: string): void;
getCurrentModel(): string;
getLastStreamingMetrics(): {
prefillTimeMs: number;
decodeTimeMs: number;
outputTokens: number;
tokensPerSecond: number;
} | undefined;
chat(messages: GrokMessage[], tools?: GrokTool[], model?: string): Promise<GrokResponse>;
chatStream(messages: GrokMessage[], tools?: GrokTool[], model?: string): AsyncGenerator<any, void, unknown>;
}