@agentdb/sdk
Version:
JavaScript SDK for AgentDB database service
145 lines (117 loc) • 5.18 kB
JavaScript
/**
* 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 };