#!/usr/bin/env node
/**
* Test script for the enhanced session-start hook
*/
const path = require('path');
// Import the enhanced hook
const sessionStartHook = require('../../claude-hooks/core/session-start.js');
async function testEnhancedHook() {
console.log('๐งช Testing Enhanced Session Start Hook\n');
// Mock context for testing
const mockContext = {
workingDirectory: process.cwd(),
sessionId: 'test-session-' + Date.now(),
trigger: 'session-start',
userMessage: 'Help me understand the memory service improvements',
injectSystemMessage: async (message) => {
console.log('\n๐ฏ INJECTED CONTEXT:');
console.log('โ'.repeat(60));
console.log(message);
console.log('โ'.repeat(60));
return true;
}
};
console.log(`๐ Testing in directory: ${mockContext.workingDirectory}`);
console.log(`๐ Test query: "${mockContext.userMessage}"`);
console.log(`โ๏ธ Trigger: ${mockContext.trigger}\n`);
try {
// Execute the enhanced hook
await sessionStartHook.handler(mockContext);
console.log('\nโ
Hook execution completed successfully!');
console.log('\n๐ Expected improvements:');
console.log(' โข Multi-phase memory retrieval (recent + important + fallback)');
console.log(' โข Enhanced recency indicators (๐ today, ๐
this week)');
console.log(' โข Better semantic queries with git context');
console.log(' โข Improved categorization with "Recent Work" section');
console.log(' โข Configurable memory ratios and time windows');
} catch (error) {
console.error('โ Hook execution failed:', error.message);
console.error('Stack trace:', error.stack);
}
}
// Run the test
if (require.main === module) {
testEnhancedHook()
.then(() => {
console.log('\n๐ Test completed');
process.exit(0);
})
.catch(error => {
console.error('\n๐ฅ Test failed:', error.message);
process.exit(1);
});
}
module.exports = { testEnhancedHook };