drizzle-cube
Version:
Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.
50 lines (49 loc) • 1.13 kB
TypeScript
/**
* Types for AI Assistant functionality
*/
export interface AIQueryRequest {
text: string;
}
export interface GeminiMessageResponse {
candidates: Array<{
content: {
parts: Array<{
text: string;
}>;
};
finishReason: string;
index: number;
}>;
usageMetadata: {
promptTokenCount: number;
candidatesTokenCount: number;
totalTokenCount: number;
};
}
export interface AIQueryResponse {
query: string;
rateLimit?: {
usingServerKey: boolean;
dailyLimit: number;
};
}
export interface AIConfig {
provider: 'gemini';
apiKey: string;
}
export interface AIAssistantState {
step: 'api-key' | 'query';
apiKey: string;
systemPromptTemplate: string;
userPrompt: string;
isSubmitting: boolean;
response: string | null;
responseError: string | null;
isValidating: boolean;
validationResult: 'valid' | 'invalid' | null;
validationError: string | null;
}
export interface SystemPromptVariables {
CUBE_SCHEMA: string;
USER_PROMPT: string;
}