UNPKG

@agentdb/sdk

Version:

JavaScript SDK for AgentDB database service

145 lines (117 loc) 5.18 kB
/** * AgentDB SDK Debug Mode Example * * This example demonstrates how to use debug mode to get detailed * logging information from both the SDK and the API server. */ import { DatabaseService } from '../index.js'; async function debugExample() { console.log('=== AgentDB SDK Debug Mode Example ===\n'); // Replace with your actual API details const baseUrl = 'https://api.agentdb.dev'; const apiKey = 'your-api-key-here'; const token = 'your-uuid-token-here'; try { // 1. Create service with debug mode enabled console.log('1. Creating DatabaseService with debug mode enabled...'); const dbService = new DatabaseService(baseUrl, apiKey, true); console.log('✓ DatabaseService created with debug mode\n'); // 2. List databases (will show debug logs) console.log('2. Listing databases...'); const databases = await dbService.listDatabases(token); console.log(`✓ Found ${databases.length} databases\n`); // 3. Create a database connection (inherits debug mode) console.log('3. Creating database connection...'); const connection = dbService.connect(token, 'example-db', 'sqlite'); console.log('✓ Database connection created\n'); // 4. Execute SQL with debug information console.log('4. Executing SQL statements...'); const result = await connection.execute([ { sql: 'CREATE TABLE IF NOT EXISTS debug_test (id INTEGER PRIMARY KEY, message TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP)', params: [] }, { sql: 'INSERT INTO debug_test (message) VALUES (?)', params: ['Debug mode test message'] }, { sql: 'SELECT * FROM debug_test ORDER BY created_at DESC LIMIT 5', params: [] } ]); console.log('✓ SQL execution completed'); console.log('Results:', result.results); // 5. Show debug logs from API response if (result.debugLogs && result.debugLogs.length > 0) { console.log('\n📋 Server-side debug logs:'); result.debugLogs.forEach((log, index) => { console.log(` ${index + 1}. [${log.level.toUpperCase()}] ${log.timestamp}`); console.log(` ${log.message}`); }); } else { console.log('\n⚠️ No debug logs received from server (debug mode may not be supported by this endpoint)'); } // 6. Demonstrate database management with debug console.log('\n5. Testing database management operations...'); try { // Try to get upload URL (this will show debug logs) const uploadInfo = await dbService.getUploadUrl(token, 'debug-test-db', 'sqlite'); console.log('✓ Upload URL generated successfully'); if (uploadInfo.debugLogs) { console.log('📋 Upload URL debug logs:', uploadInfo.debugLogs.length, 'entries'); } } catch (error) { console.log('⚠️ Upload URL generation failed (this is normal for demo):', error.message); } console.log('\n=== Debug Mode Example Completed Successfully ==='); } catch (error) { console.error('\n❌ Error during debug example:', error); // Show debug logs from error response if available if (error.response && error.response.debugLogs) { console.log('\n📋 Debug logs from error response:'); error.response.debugLogs.forEach((log, index) => { console.log(` ${index + 1}. [${log.level.toUpperCase()}] ${log.timestamp}`); console.log(` ${log.message}`); }); } } } async function compareWithoutDebug() { console.log('\n=== Comparison: Same Operations Without Debug Mode ===\n'); const baseUrl = 'https://api.agentdb.dev'; const apiKey = 'your-api-key-here'; const token = 'your-uuid-token-here'; try { // Create service WITHOUT debug mode console.log('Creating DatabaseService without debug mode...'); const dbService = new DatabaseService(baseUrl, apiKey, false); // debug = false // List databases (no debug logs will be shown) console.log('Listing databases (no debug output)...'); const databases = await dbService.listDatabases(token); console.log(`Found ${databases.length} databases (no debug logs shown)`); // Create connection and execute SQL const connection = dbService.connect(token, 'example-db', 'sqlite'); const result = await connection.execute({ sql: 'SELECT COUNT(*) as count FROM debug_test', params: [] }); console.log('Query result:', result.results); console.log('Debug logs in response:', result.debugLogs ? 'Present' : 'Not present'); console.log('\n✓ Operations completed without debug mode'); } catch (error) { console.error('Error without debug mode:', error.message); } } // Run the examples async function runExamples() { await debugExample(); await compareWithoutDebug(); console.log('\n📚 For more information about debug mode, see DEBUG_USAGE.md'); console.log('💡 Remember to disable debug mode in production for better performance'); } // Execute if run directly if (import.meta.url === `file://${process.argv[1]}`) { runExamples().catch(console.error); } export { debugExample, compareWithoutDebug };