UNPKG

@mindmakr/gs-websdk

Version:

Web SDK for Guru SaaS System - Complete JavaScript/TypeScript SDK for building applications with dynamic schema management

306 lines (305 loc) 8.52 kB
/** * AI Enhancement Service Module * Provides AI-powered schema generation and field enhancement capabilities */ import { GuruSaaSClient } from '../core/client'; import { RequestConfig, AIFieldSuggestion, FieldEnhancement, ValidationRule } from '../types'; export interface AIFieldNameRequest { fieldType: string; businessContext: string; existingFields: string[]; userIntent?: string; templateCategory?: string; } export interface AIFieldNameResponse { suggestions: AIFieldSuggestion[]; confidence: number; reasoning: string; } export interface AIValidationRequest { fieldName: string; fieldType: string; businessDomain: string; existingValidation?: ValidationRule[]; templateCategory?: string; } export interface AIValidationSuggestion { rules: ValidationRule[]; patterns: Record<string, string>; errorMessages: Record<string, Record<string, string>>; confidence: number; reasoning: string; businessContext: string[]; } export interface AIValidationResponse { suggestions: AIValidationSuggestion; confidence: number; reasoning: string; } export interface AIFieldTypeRequest { fieldName: string; businessContext: string; userIntent?: string; existingFields?: string[]; } export interface AIFieldTypeResponse { suggestedType: string; alternatives: string[]; enhancement: FieldEnhancement; confidence: number; reasoning: string; } export interface AISchemaGenerationRequest { businessDescription: string; industry?: string; formType?: 'registration' | 'profile' | 'contact' | 'feedback' | 'order' | 'custom'; existingFields?: string[]; requirements?: string[]; language?: string; } export interface AISchemaGenerationResponse { schema: Record<string, any>; metadata: { title: string; description: string; category: string; confidence: number; reasoning: string; }; fieldSuggestions: Array<{ key: string; type: string; title: string; description: string; enhancement: FieldEnhancement; reasoning: string; }>; } export interface AIContextAnalysisRequest { businessDomain: string; existingSchema?: Record<string, any>; userGoals?: string[]; targetAudience?: string; } export interface AIContextAnalysisResponse { recommendations: Array<{ type: 'field_addition' | 'field_modification' | 'validation_improvement' | 'ui_enhancement'; title: string; description: string; impact: 'low' | 'medium' | 'high'; implementation: Record<string, any>; }>; insights: { domainSpecificFields: string[]; suggestedCategories: string[]; complianceConsiderations: string[]; userExperienceNotes: string[]; }; confidence: number; } export interface ConversationMessage { role: 'user' | 'assistant' | 'system'; content: string; timestamp: Date; metadata?: Record<string, any>; } export interface Conversation { id: string; user_id: string; tenant_id: string; name: string; metadata: Record<string, any>; created_at: string; updated_at: string; messages?: ConversationMessage[]; } export interface FunctionCall { name: string; arguments: Record<string, any>; description?: string; } export interface ConversationResponse { type: 'text' | 'action' | 'form' | 'diagram' | 'data'; content: string; responseFormat?: 'text' | 'form' | 'diagram' | 'table' | 'code'; functionCall?: FunctionCall; renderedContent?: any; metadata?: { tokensUsed?: number; model?: string; processingTime?: number; }; } export declare class AIService { private client; constructor(client: GuruSaaSClient); /** * Get AI service health status (ACTUAL ENDPOINT) */ getHealthStatus(config?: RequestConfig): Promise<{ status: string; message: string; service?: string; timestamp?: string; uptime?: number; environment?: string; }>; /** * Get schema knowledge for a business domain and category */ getSchemaKnowledge(businessDomain: string, category: string, config?: RequestConfig): Promise<{ insights: { commonFields: string[]; bestPractices: string[]; validationPatterns: Record<string, string>; }; recommendations: Array<{ type: string; title: string; description: string; }>; confidence: number; }>; /** * Edit schema with AI assistance */ editSchema(request: { templateId: number; currentSchema: Record<string, any>; editInstruction: string; preserveData?: boolean; businessContext?: string; }, config?: RequestConfig): Promise<{ modifiedSchema: Record<string, any>; changes: Array<{ type: string; field: string; description: string; oldValue?: any; newValue?: any; }>; breakingChanges: string[]; confidence: number; recommendations: string[]; contextUsed?: { templatesAnalyzed: number; patternsFound: number; fieldsExtracted: number; filesProcessed: number; }; }>; /** * Create a new conversation */ createConversation(data: { name: string; metadata?: Record<string, any>; }, config?: RequestConfig): Promise<Conversation>; /** * Get all conversations */ getConversations(config?: RequestConfig): Promise<Conversation[]>; /** * Get a specific conversation by ID */ getConversation(conversationId: string, config?: RequestConfig): Promise<Conversation>; /** * Delete a conversation */ deleteConversation(conversationId: string, config?: RequestConfig): Promise<void>; /** * Process a conversation message */ processConversation(data: { message: string; userId: string; tenantId: string; conversationId?: string; context?: { businessDomain?: string; sessionId?: string; contextFiles?: any[]; schemaTemplates?: any[]; currentSchema?: any; userRole?: string; }; }, config?: RequestConfig): Promise<ConversationResponse>; /** * Execute AI function */ executeFunction(data: { functionName: string; parameters: Record<string, any>; userId: string; tenantId: string; conversationId?: string; requiresConfirmation?: boolean; }, config?: RequestConfig): Promise<{ success: boolean; result?: any; error?: string; requiresConfirmation?: boolean; confirmationMessage?: string; }>; /** * Analyze context for AI suggestions */ analyzeContext(data: { context: string; type?: string; }, config?: RequestConfig): Promise<{ success: boolean; data: any; }>; /** * Suggest field name based on context */ suggestFieldName(data: { context: string; existing_fields?: string[]; }, config?: RequestConfig): Promise<{ success: boolean; data: { suggested_name: string; }; }>; /** * Suggest validation rules for a field */ suggestValidation(data: { field_type: string; context: string; }, config?: RequestConfig): Promise<{ success: boolean; data: { validation_rules: Record<string, any>; }; }>; /** * Suggest field type based on context */ suggestFieldType(data: { context: string; field_name?: string; }, config?: RequestConfig): Promise<{ success: boolean; data: { suggested_type: string; confidence?: number; }; }>; /** * Suggest field enhancements for schema * Note: This endpoint may not be working according to api-status.md */ suggestFields(data: { schema_context: string; existing_fields?: any[]; requirements?: string; }, config?: RequestConfig): Promise<{ success: boolean; data: { suggested_fields: any[]; }; }>; }