Update memory service with working NocoDB configuration
- 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
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
#!/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);
|
||||
});
|
||||
Reference in New Issue
Block a user