test-pcb-research.jsā¢2.96 kB
#!/usr/bin/env node
import { SequentialGraphitiIntegration } from './src/core/SequentialGraphitiIntegration.js';
console.log('š§ Testing meMCP with PCB Design Research\n');
async function testMemCPWithPCBResearch() {
const integration = new SequentialGraphitiIntegration();
try {
// Initialize the system
await integration.initialize();
console.log('ā
meMCP system initialized\n');
// Test storing PCB design insights using slash commands
const insights = [
'/remember KiCad has multiple MCP implementations that enable LLMs to directly control PCB design --type verified_pattern --domain pcb_design',
'/remember PyEMS provides high-level Python interface to OpenEMS for electromagnetic simulation of PCBs --type tool_configuration --domain electromagnetic_simulation',
'/remember FreeCAD has plugins to export models to OpenEMS for EM simulation of PCB antennas --type optimization --domain 3d_modeling',
'/remember Altium MCP server allows screenshot capture and layout duplication through LLM understanding --type experimental_approach --domain commercial_eda',
'/remember gEDA project offers mature open-source EDA tools with GPL licensing --type verified_pattern --domain open_source_eda'
];
console.log('š Storing PCB design insights...\n');
for (const insight of insights) {
console.log(`Processing: ${insight.substring(0, 80)}...`);
// Simulate user prompt submission hook
await integration.hookManager.handleUserPromptSubmit({
prompt: insight,
workingDirectory: process.cwd(),
});
// Give it a moment to process
await new Promise(resolve => setTimeout(resolve, 100));
}
console.log('\nā
All insights stored!\n');
// Test retrieval using slash commands
console.log('š Testing memory retrieval...\n');
const queries = [
'/recall MCP',
'/recall Python automation',
'/recall open source',
'/insights recent 3',
'/insights stats'
];
for (const query of queries) {
console.log(`\n--- Query: ${query} ---`);
// Simulate user prompt for recall
await integration.hookManager.handleUserPromptSubmit({
prompt: query,
workingDirectory: process.cwd(),
});
await new Promise(resolve => setTimeout(resolve, 100));
}
// Test the working directory context
console.log('\nšļø Testing working directory context...');
// Get session stats to see context analysis
const stats = await integration.hookManager.getSessionStats();
console.log('Session context:', JSON.stringify(stats.context, null, 2));
console.log('\nā
meMCP testing completed successfully!');
} catch (error) {
console.error('ā Error testing meMCP:', error);
} finally {
await integration.shutdown();
}
}
// Run the test
testMemCPWithPCBResearch().catch(console.error);