- Set correct table ID: mx149yctebfwvys (ai_data_Memory) - Updated type column with SingleSelect options - Added all required columns for corrections, preferences, episodes, decisions, validation - Fixed column options for type, severity, status fields
113 lines
3.1 KiB
JavaScript
113 lines
3.1 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Test Memory Service Connection
|
|
*
|
|
* Verifies NocoDB connection and tests CRUD operations
|
|
*/
|
|
|
|
const MemoryService = require('./memory-service');
|
|
|
|
async function test() {
|
|
console.log('=== Testing Memory Service Connection ===\n');
|
|
|
|
// Initialize service with working configuration
|
|
const memory = new MemoryService({
|
|
nocodbUrl: 'http://192.168.25.5:8080',
|
|
nocodbToken: 'owuYNodz0RcnDtUqnj5DK4Qeyp3ASQkDYkrdfGtw', // From vault
|
|
baseId: 'pedwxnsn51vxdq2',
|
|
tableId: 'mx149yctebfwvys'
|
|
});
|
|
|
|
// Test 1: Connection
|
|
console.log('1. Testing connection...');
|
|
const conn = await memory.testConnection();
|
|
console.log(conn.success ? '✅ Connected' : '❌ Failed:', conn.message);
|
|
console.log(' Records:', conn.recordCount);
|
|
|
|
if (!conn.success) {
|
|
console.log('\nCannot proceed without connection.');
|
|
process.exit(1);
|
|
}
|
|
|
|
// Test 2: Store a correction
|
|
console.log('\n2. Testing correction storage...');
|
|
try {
|
|
const correction = await memory.storeCorrection({
|
|
id: `correction_${Date.now()}`,
|
|
pattern: '\\d+\\s*(%|percent)',
|
|
severity: 'auto-correct',
|
|
message: 'Quantitative claim requires evidence',
|
|
suggestion: 'Add source or measurement',
|
|
blocking: true,
|
|
autoDetected: true,
|
|
context: 'test'
|
|
});
|
|
console.log('✅ Correction stored:', correction.id);
|
|
} catch (err) {
|
|
console.log('❌ Failed:', err.message);
|
|
}
|
|
|
|
// Test 3: Load corrections
|
|
console.log('\n3. Testing correction loading...');
|
|
try {
|
|
const corrections = await memory.loadCorrections();
|
|
console.log(`✅ Loaded ${corrections.length} corrections`);
|
|
corrections.forEach(c => console.log(` - ${c.id}: ${c.message.substring(0, 50)}...`));
|
|
} catch (err) {
|
|
console.log('❌ Failed:', err.message);
|
|
}
|
|
|
|
// Test 4: Store preference
|
|
console.log('\n4. Testing preference storage...');
|
|
try {
|
|
const pref = await memory.storePreference({
|
|
id: `pref_${Date.now()}`,
|
|
category: 'communication',
|
|
key: 'format',
|
|
value: 'concise',
|
|
importance: 9,
|
|
confidence: 1.0,
|
|
tags: ['format', 'style']
|
|
});
|
|
console.log('✅ Preference stored:', pref.id);
|
|
} catch (err) {
|
|
console.log('❌ Failed:', err.message);
|
|
}
|
|
|
|
// Test 5: Get preferences
|
|
console.log('\n5. Testing preference loading...');
|
|
try {
|
|
const prefs = await memory.getPreferences('communication', 5);
|
|
console.log(`✅ Loaded ${prefs.length} preferences`);
|
|
} catch (err) {
|
|
console.log('❌ Failed:', err.message);
|
|
}
|
|
|
|
// Test 6: Log validation
|
|
console.log('\n6. Testing validation logging...');
|
|
try {
|
|
await memory.logValidation({
|
|
id: `run_${Date.now()}`,
|
|
sessionId: 'test-session',
|
|
inputLength: 100,
|
|
outputLength: 200,
|
|
violationsFound: 1,
|
|
newPatternsDetected: 0,
|
|
correctionsAutoStored: 1,
|
|
processingTimeMs: 50,
|
|
blocked: true,
|
|
workflow: 'test'
|
|
});
|
|
console.log('✅ Validation logged');
|
|
} catch (err) {
|
|
console.log('❌ Failed:', err.message);
|
|
}
|
|
|
|
console.log('\n=== Tests Complete ===');
|
|
}
|
|
|
|
test().catch(err => {
|
|
console.error('Test error:', err);
|
|
process.exit(1);
|
|
});
|