Files
ra-h-os/src/services/database/index.ts
T
“BeeRad” 733d1c3407 Initial commit: RA-H Open Source Edition
Local-first knowledge management system with BYO API keys.

Features:
- 3-panel UI (Nodes | Focus | Helpers)
- SQLite + sqlite-vec for vector search
- Agent system (Easy/Hard mode orchestrators)
- Content extraction (YouTube, PDF, web)
- Integrate workflow for connection discovery
- Dimension system with auto-assignment

Tech stack:
- Next.js 15 + TypeScript + Tailwind CSS
- Anthropic (Claude) + OpenAI (GPT) via Vercel AI SDK

Setup:
  npm install && npm rebuild better-sqlite3
  scripts/dev/bootstrap-local.sh
  npm run dev

MIT License
2025-12-15 16:14:28 +11:00

71 lines
1.8 KiB
TypeScript

// Service instances
export { nodeService, NodeService } from './nodes';
export { chunkService, ChunkService } from './chunks';
export { edgeService, EdgeService } from './edges';
export { dimensionService, DimensionService } from './dimensionService';
// export { HelperService } from './helpers'; // Removed - migrated to JSON-based service
// Types
export * from '@/types/database';
// Health check utility
export async function checkDatabaseHealth(): Promise<{
connected: boolean;
vectorExtension: boolean;
tablesExist: boolean;
error?: string;
}> {
try {
return checkSQLiteDatabaseHealth();
} catch (error) {
return {
connected: false,
vectorExtension: false,
tablesExist: false,
error: error instanceof Error ? error.message : 'Unknown error'
};
}
}
async function checkSQLiteDatabaseHealth(): Promise<{
connected: boolean;
vectorExtension: boolean;
tablesExist: boolean;
error?: string;
}> {
try {
const { getSQLiteClient } = await import('./sqlite-client');
const sqlite = getSQLiteClient();
const connected = await sqlite.testConnection();
if (!connected) {
return {
connected: false,
vectorExtension: false,
tablesExist: false,
error: 'SQLite connection failed'
};
}
const vectorExtension = await sqlite.checkVectorExtension();
// Check if main tables exist
const tables = await sqlite.checkTables();
const requiredTables = ['nodes', 'chunks', 'edges'];
const tablesExist = requiredTables.every(table => tables.includes(table));
return {
connected,
vectorExtension,
tablesExist
};
} catch (error) {
return {
connected: false,
vectorExtension: false,
tablesExist: false,
error: error instanceof Error ? error.message : 'Unknown error'
};
}
}