How akashn-tech/lens works
XYMP Lens is a database exploration and natural-language analytics product. Users create projects for connected databases or spreadsheets, inspect their schema, ask questions in a conversational playground, and review query results or synthesized analysis. The backend separates project and conversation APIs, SQL and analysis agents, database connectors, and spreadsheet ingestion. The frontend’s landing and table views are represented alongside those runtime layers. Several spreadsheet and connector capabilities are documented by module names and references, but their internal call paths were not sampled, so uncertain links are omitted.
Main entry points: projects.py Project API · analysis_agent.py Analysis chain · main.py FastAPI app · sql_routes.py SQL API
Components 26
User interface
- App routing
frontend/src/App.tsx - Project landing
frontend/src/pages/landing-page.tsx - Table explorer
frontend/src/pages/tables-page.tsx - Playground chat
frontend/src/components/playground/playground-chat.tsx - Query results
frontend/src/components/query-result/query-result-renderer.tsx
Backend API
- FastAPI app
backend/app/main.py - Project API
backend/app/api/projects.py - SQL API
backend/app/api/sql_routes.py - Analysis API
backend/app/api/analysis_routes.py - Conversation API
backend/app/api/conversation_routes.py
SQL and analysis
- SQL generation
backend/app/agent/sql_generator.py - Analysis chain
backend/app/agent/analysis_agent.py - Schema introspection
backend/app/agent/introspect_schema.py - SQL execution agent
backend/app/agent/sql_executor.py
Database access
- Query runner
backend/app/db/query_runner.py - DB connectors
backend/app/db/connectors - DuckDB connector
backend/app/db/connectors/duckdb_file.py - Spreadsheet ingestion
backend/app/storage/xlsx_ingest.py - Schema catalog
backend/app/db/schema_catalog.py
Projects and state
- Project database
backend/app/db/app_db.py - Query learnings
backend/app/db/learnings.py - Conversation store
backend/app/db/conversations.py - Supabase file storage
backend/app/storage/supabase_storage.py
Other components
- User
- Supabase
- OpenAI model
Connections 34
- User → App routing: uses
frontend/src/App.tsx - App routing → Project landing: routes to
frontend/src/App.tsx - App routing → Table explorer: routes to
frontend/src/App.tsx - User → Playground chat: asks questions
- Playground chat → Query results: renders results
- FastAPI app → Project API: registers
backend/app/main.py - FastAPI app → SQL API: registers
backend/app/main.py - FastAPI app → Analysis API: registers
backend/app/main.py - FastAPI app → Conversation API: registers
backend/app/main.py - Project API → Project database: manages projects
backend/app/api/projects.py - Project API → Schema catalog: updates catalog
backend/app/api/projects.py - Project API → Spreadsheet ingestion: ingests files
backend/app/api/projects.py - Project API → Supabase file storage: stores files
backend/app/api/projects.py - Supabase file storage → Supabase: uploads files
backend/app/storage/supabase_storage.py - SQL API → SQL generation: generates SQL
backend/app/api/sql_routes.py - SQL API → SQL execution agent: executes SQL
backend/app/api/sql_routes.py - SQL API → Query learnings: records attempts
backend/app/api/sql_routes.py - Analysis API → Analysis chain: runs analysis
backend/app/api/analysis_routes.py - Analysis API → Conversation store: persists turns
backend/app/api/analysis_routes.py - Analysis API → Query learnings: records attempts
backend/app/api/analysis_routes.py - Conversation API → Project database: checks projects
backend/app/api/conversation_routes.py - Conversation API → Conversation store: loads conversations
backend/app/api/conversation_routes.py - SQL generation → Schema introspection: introspects schema
backend/app/agent/sql_generator.py - SQL generation → Query learnings: loads learnings
backend/app/agent/sql_generator.py - Analysis chain → Schema introspection: introspects schema
backend/app/agent/analysis_agent.py - Analysis chain → SQL execution agent: executes queries
backend/app/agent/analysis_agent.py - Analysis chain → Query learnings: records attempts
backend/app/agent/analysis_agent.py - Analysis chain → OpenAI model: requests model
- SQL generation → OpenAI model: requests model
- SQL execution agent → Query runner: delegates execution
backend/app/agent/sql_executor.py - Query runner → Project database: loads project
backend/app/db/query_runner.py - Query runner → DB connectors: selects connector
backend/app/db/query_runner.py - DB connectors → DuckDB connector: supports engine
- Project database → Supabase: stores project data