#!/usr/bin/env bun /** * Intelligent bidirectional query command for edgework-sdk * Supports both text-to-SQL and SQL-to-text transformations with statistical analysis */ import { Command } from 'commander'; import chalk from 'chalk'; import ora from 'ora'; import { readFileSync } from 'fs'; import { InputDetector } from '../src/transformations/query/detector'; import { QueryOptions, InputType, TransformationResult, } from '../src/transformations/common-types'; import { StatisticalAnalyzer } from '../src/transformations/statistical/analyzer'; import { ContextBuilder } from '../src/transformations/statistical/context-builder'; import { QueryPromptBuilder } from '../src/transformations/query/prompt'; import { Sql2TextPromptBuilder } from '../src/transformations/sql2text/prompt'; import { edgeworkProvider, EdgeworkRequest, EdgeworkResponse, } from '../src/transformations/ai/edgework-provider'; /** * Helper to call Edgework AI Gateway */ async function callAIGateway( prompt: string, modelId: string, options: any ): Promise<{ success: boolean; data: string; error?: string }> { try { const request: EdgeworkRequest = { model: modelId, messages: [ { role: 'system', content: 'You are an expert data assistant. Provide accurate transformations and analysis.', }, { role: 'user', content: prompt, }, ], temperature: options.temperature || 0.7, maxTokens: options.maxTokens || 4000, }; if (options.apiKey) { edgeworkProvider.setApiKey(options.apiKey); } const response = await edgeworkProvider.makeRequest(request); return { success: true, data: response.content, }; } catch (error: any) { return { success: false, data: '', error: error.message, }; } } import { StreamProcessor } from '../src/transformations/streaming/stream-processor'; import { TemplateManager } from '../src/transformations/templates/template-manager'; import { AdvancedStatisticalModels } from '../src/transformations/statistical/advanced-models'; import { InteractiveMode } from '../src/transformations/interactive/interactive-mode-fixed'; import { globalCache } from '../src/transformations/performance/cache-manager'; import { chartGenerator } from '../src/transformations/visualizations/chart-generator'; import { authManager } from '../src/production/auth-manager'; import { monitoring } from '../src/production/monitoring-fixed'; const program = new Command(); program .name('edgework query') .description( 'Intelligent bidirectional data transformation with statistical analysis' ) .version('2.0.0') .argument('[input...]', 'Input text, file, or pipe data') .option( '-m, --mode ', 'Transformation mode: text2sql, sql2text, or auto', 'auto' ) .option('-t, --table ', 'Target table name for SQL generation') .option('-c, --create-table', 'Create new table if needed') .option('-a, --analyze', 'Perform deep statistical analysis') .option('--validate-outliers', 'Validate and report outliers') .option('--recommend-types', 'Recommend optimal data types') .option( '-f, --format ', 'Output format: text, markdown, json, csv, html, latex, pdf', 'markdown' ) .option('--template