{"id":44355389,"url":"https://github.com/av/dax","last_synced_at":"2026-02-11T16:05:44.445Z","repository":{"id":320855714,"uuid":"1083566308","full_name":"av/dax","owner":"av","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-26T11:28:16.000Z","size":110,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-26T11:32:12.855Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/av.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-26T09:39:12.000Z","updated_at":"2025-10-26T09:39:16.000Z","dependencies_parsed_at":"2025-10-26T11:32:16.598Z","dependency_job_id":null,"html_url":"https://github.com/av/dax","commit_stats":null,"previous_names":["av/dax"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/av/dax","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/av%2Fdax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/av%2Fdax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/av%2Fdax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/av%2Fdax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/av","download_url":"https://codeload.github.com/av/dax/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/av%2Fdax/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29337045,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T16:00:30.228Z","status":"ssl_error","status_checked_at":"2026-02-11T16:00:25.398Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-11T16:05:43.830Z","updated_at":"2026-02-11T16:05:44.440Z","avatar_url":"https://github.com/av.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# DAX - Data Agent eXplorer\n\nA powerful canvas-based data exploration application with AI agent integration, built with Electron, React, shadcn/ui, and Tailwind CSS.\n\n## Features\n\n### Canvas\n- **Draggable \u0026 Resizable Nodes**: Interactive node-based workspace\n- **Multiple Data Sources**: \n  - Filesystem (FS)\n  - HTTP/HTTPS\n  - Amazon S3\n  - FTP\n  - Google Drive\n  - SMB/CIFS\n  - WebDAV\n  - ZIP archives\n- **Node Operations**:\n  - Multi-add nodes\n  - Live preview\n  - Batch operations\n  - Node toolbar with config\n\n### Agent System\n- **OpenAI Chat Completion API** integration\n- **Configurable Parameters**:\n  - Model selection\n  - Temperature\n  - Max tokens\n  - System prompts\n- **Agent Tools**:\n  - Read/Write canvas operations\n  - Multi-agent support\n  - Per-agent toolsets\n  - Query RDF data\n- **History \u0026 Logging**\n\n### RDF/Knowledge Graph\n- **Entities \u0026 Attributes**: Structured data representation\n- **Import \u0026 Extract**: Automatic entity extraction from data\n- **Schema Generation**: Auto-generate schemas from data\n- **Linkable Entities**: Create relationships between entities\n- **Query Support**: SPARQL-like querying\n\n### Preferences\n- Theme: Light/Dark/System\n- Autostart configuration\n- Data directory management\n- Backup settings\n- Sync configuration\n- Language selection\n- Custom hotkeys\n\n### Database\n- **Turso DB**: Modern SQLite-compatible edge database\n- Persistent storage for all application state\n- Semantic search capabilities\n- Fast SQL-based indexing\n- Multi-user support with user roles\n- Access Control Lists (ACL) for resource permissions\n- Full-text search support\n- Activity logging and audit trail\n\n**Stored Data Models:**\n- Canvas nodes and their configurations\n- RDF entities and links\n- User preferences and settings\n- Agent configurations\n- ACL permissions\n- Activity logs\n\n## Tech Stack\n\n- **Electron**: Cross-platform desktop application\n- **React 19**: Modern UI library\n- **TypeScript**: Type-safe development\n- **Tailwind CSS v4**: Utility-first CSS\n- **shadcn/ui**: Beautiful component library\n- **Vite**: Fast build tool\n- **react-rnd**: Drag and resize functionality\n- **Turso DB**: SQLite-compatible edge database with libSQL\n\n## Installation\n\n```bash\nnpm install\n```\n\n## Configuration\n\nCreate a `.env` file based on `.env.example`:\n\n```bash\ncp .env.example .env\n```\n\nFor **local development** (default):\n```env\nTURSO_URL=file:dax.db\n```\n\nFor **production** with Turso Cloud:\n```env\nTURSO_URL=libsql://your-database.turso.io\nTURSO_AUTH_TOKEN=your-auth-token\n```\n\nTo get a Turso database:\n1. Sign up at [turso.tech](https://turso.tech)\n2. Install Turso CLI: `curl -sSfL https://get.tur.so/install.sh | bash`\n3. Create a database: `turso db create dax`\n4. Get the URL: `turso db show dax --url`\n5. Create a token: `turso db tokens create dax`\n\n## Development\n\n```bash\nnpm run dev\n```\n\nThis will:\n1. Start the Vite dev server on http://localhost:5173\n2. Launch Electron in development mode\n\n## Building\n\n```bash\nnpm run build\n```\n\nThis creates a production build in the `dist` folder.\n\n## Packaging\n\n```bash\nnpm run package\n```\n\nThis creates distributable packages in the `release` folder.\n\n## Project Structure\n\n```\ndax/\n├── src/\n│   ├── main/              # Electron main process\n│   │   ├── main.js        # Main entry point\n│   │   └── preload.js     # Preload script\n│   ├── renderer/          # React application\n│   ├── components/\n│   │   ├── canvas/        # Canvas components\n│   │   ├── sidebar/       # Sidebar components\n│   │   └── ui/            # UI components (shadcn)\n│   ├── services/          # Business logic\n│   │   ├── dataSource.ts  # Data source connectors\n│   │   ├── rdf.ts         # RDF/knowledge graph\n│   │   ├── preferences.ts # User preferences\n│   │   └── database.ts    # Database with ACL\n│   ├── types/             # TypeScript types\n│   ├── lib/               # Utilities\n│   ├── App.tsx            # Main app component\n│   ├── main.tsx           # React entry point\n│   └── index.css          # Global styles\n├── index.html\n├── vite.config.ts\n├── tailwind.config.js\n├── tsconfig.json\n└── package.json\n```\n\n## Usage\n\n### Creating Nodes\n\n1. Select node type from dropdown (Data, Agent, Transform, Output)\n2. Click \"Add Node\" to create a new node on canvas\n3. Drag nodes to reposition\n4. Resize nodes by dragging corners\n5. Use toolbar (hover over node) for actions\n\n### Configuring Agents\n\n1. Open sidebar (Agent tab)\n2. Configure OpenAI settings:\n   - Provider (OpenAI, Anthropic, Custom)\n   - Model name\n   - API key\n   - Temperature and token limits\n   - System prompt\n3. Add/remove tools in the Tools tab\n\n### Working with Data\n\nEach node can connect to different data sources:\n- Configure source type in node settings\n- Provide connection details (URL, path, credentials)\n- Preview data in live mode\n\n### RDF Operations\n\n- Import data to extract entities\n- Define relationships between entities\n- Query using SPARQL-like syntax\n- Auto-generate schemas from data\n\n## Testing\n\nRun the full test suite:\n\n```bash\nnpm test\n```\n\nRun specific test suites:\n\n```bash\nnpm run test:features              # General features\nnpm run test:agent-features        # Agent system\nnpm run test:rdf-features          # RDF/Knowledge graph\nnpm run test:preferences-features  # User preferences\nnpm run test:database-features     # Database functionality\n```\n\n**Test Results:**\n- ✅ 28 general feature tests\n- ✅ 73 agent feature tests\n- ✅ 77 RDF feature tests\n- ✅ 67 preferences feature tests\n- ✅ 119 database feature tests\n- **Total: 364 tests - 100% passing**\n\n## Documentation\n\n- **[Database Verification Report](DATABASE_VERIFICATION_REPORT.md)** - Comprehensive verification of all database features\n- **[Database Quick Reference](DATABASE_QUICK_REFERENCE.md)** - Developer guide for database operations\n- **[Agent Features Guide](AGENT_FEATURES_GUIDE.md)** - Complete agent system documentation\n- **[RDF Features Documentation](RDF_FEATURES_DOCUMENTATION.md)** - Knowledge graph usage guide\n- **[Architecture](ARCHITECTURE.md)** - System architecture overview\n\n## License\n\nISC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fav%2Fdax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fav%2Fdax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fav%2Fdax/lists"}