UNPKG

@claude-vector/claude-tools

Version:

Claude integration tools for AI-powered development assistance

376 lines (281 loc) 8.95 kB
# @claude-vector/claude-tools Advanced Claude integration tools for AI-powered development assistance. Provides context management, session handling, and workflow automation. ## Features - 🧠 **Context Management**: Intelligent context optimization with token estimation - 📊 **Session Management**: Persistent development sessions with state management - 🔍 **Query Optimization**: Learning-based query enhancement and expansion with feedback collection - 🐛 **Error Analysis**: AI-powered error debugging and solution suggestions - 📈 **Learning System**: Improves search accuracy based on user feedback patterns - 🚀 **Performance**: Optimized for long-running sessions and large codebases - 🔄 **Integration**: Seamless integration with @claude-vector/core ## Installation ```bash npm install @claude-vector/claude-tools ``` ## Quick Start ```javascript import { ContextManager, SessionManager } from '@claude-vector/claude-tools'; // Initialize context manager const contextManager = new ContextManager(150000); // 150k token limit // Add context items contextManager.addItem({ type: 'code', content: 'function authenticate(user) { ... }', metadata: { file: 'auth.js' } }, 0.8); // Optimize for current context const optimizedContext = contextManager.optimize(); // Session management const sessionManager = new SessionManager(); await sessionManager.startSession('implement-auth', 'development'); ``` ## Core Components ### ContextManager Manages development context with intelligent optimization and token management. ```javascript import { ContextManager } from '@claude-vector/claude-tools'; const contextManager = new ContextManager(150000); // 150k token limit // Add items with priority contextManager.addItem({ type: 'code', content: 'function login() { ... }', metadata: { file: 'auth.js', line: 45 } }, 0.9); // Smart merging with duplicate detection contextManager.addItemSmart({ type: 'code', content: 'function login() { ... }', // Will be merged if similar metadata: { file: 'auth.js', line: 45 } }, 0.8); // Optimize for token limits const optimized = contextManager.optimize(); console.log(`Optimized to ${optimized.totalTokens} tokens`); // Get performance metrics const stats = contextManager.getStats(); console.log(stats); ``` #### Key Features - **Token Estimation**: Accurate token counting for Japanese and English text - **Smart Merging**: Automatic duplicate detection and content merging - **Dynamic Prioritization**: Priority adjustment based on access patterns - **Performance Optimization**: LRU caching and fast lookups - **Context Integration**: Seamless search result integration ### SessionManager Manages persistent development sessions with state preservation. ```javascript import { SessionManager } from '@claude-vector/claude-tools'; const sessionManager = new SessionManager(); // Start new session await sessionManager.startSession('feature-implementation', 'development'); // Add session context await sessionManager.addContext({ type: 'task', content: 'Implement user authentication', priority: 0.9 }); // Get session info const session = await sessionManager.getCurrentSession(); console.log(session); // Session activities const activities = await sessionManager.getSessionActivities(); console.log(activities); ``` #### Session Types - **development**: General development tasks - **debugging**: Error analysis and debugging - **research**: Code exploration and research - **refactoring**: Code refactoring and optimization ### QueryOptimizer Enhances search queries with learning and expansion capabilities. ```javascript import { QueryOptimizer } from '@claude-vector/claude-tools'; const optimizer = new QueryOptimizer(); // Optimize query for search const optimizedQuery = await optimizer.optimizeQuery('user login', { taskType: 'feature', previousSearches: [] // optional context }); // Record user feedback await optimizer.recordFeedback('user login', { useful: true, rating: 5, resultIds: [0, 2, 4], // indices of useful results taskType: 'feature' }); // Get learning statistics const history = await optimizer.getHistory(); console.log(history.successfulPatterns); console.log(history.queries); // Get query suggestions const suggestions = optimizer.getQuerySuggestions('auth', { taskType: 'feature' }); ``` #### Features - **Task-based Optimization**: Different optimization strategies per task type - **Learning System**: Improves based on user feedback and successful patterns - **Query Expansion**: Automatically adds relevant synonyms and terms - **Feedback Collection**: Records explicit and implicit feedback - **Statistics Tracking**: Monitors successful patterns and usage - **Persistent Learning**: Saves learning data to `.claude-query-history.json` ### ErrorAssistant Analyzes errors and provides debugging assistance. ```javascript import { ErrorAssistant } from '@claude-vector/claude-tools'; const errorAssistant = new ErrorAssistant(); // Analyze error const analysis = await errorAssistant.analyzeError( 'TypeError: Cannot read property "name" of undefined', { file: 'user.js', line: 42, context: 'function getUser() { ... }' } ); console.log(analysis.explanation); console.log(analysis.suggestions); ``` ## Configuration ### Environment Variables ```bash # Required OPENAI_API_KEY=sk-your-api-key-here # Optional CLAUDE_SESSION_DIR=~/.claude-sessions CLAUDE_CACHE_DIR=.claude-vector-cache CLAUDE_LOG_LEVEL=info ``` ### Configuration File Create `.claude-tools.config.js`: ```javascript export default { context: { maxTokens: 150000, maxItems: 5000, cacheSize: 1000, mergeThreshold: 0.85 }, session: { autoSave: true, maxHistory: 100, cleanupInterval: 3600000 // 1 hour }, query: { enableLearning: true, maxSuggestions: 5, expansionThreshold: 0.7 } }; ``` ## Integration Examples ### With @claude-vector/core ```javascript import { VectorSearchEngine } from '@claude-vector/core'; import { ContextManager, QueryOptimizer } from '@claude-vector/claude-tools'; const searchEngine = new VectorSearchEngine(config); const contextManager = new ContextManager(); const queryOptimizer = new QueryOptimizer(); // Set up integration contextManager.setSearchEngine(searchEngine); // Optimized search with context integration const optimizedQuery = await queryOptimizer.optimizeQuery( 'user authentication', 'development' ); const results = await searchEngine.search(optimizedQuery); await contextManager.integrateSearchResults(results, optimizedQuery); ``` ### With Express.js API ```javascript import express from 'express'; import { SessionManager, ContextManager } from '@claude-vector/claude-tools'; const app = express(); const sessionManager = new SessionManager(); app.post('/api/sessions', async (req, res) => { const { task, type } = req.body; const session = await sessionManager.startSession(task, type); res.json(session); }); app.get('/api/sessions/current', async (req, res) => { const session = await sessionManager.getCurrentSession(); res.json(session); }); app.listen(3000); ``` ## Performance Optimization ### Memory Management ```javascript // Configure memory limits const contextManager = new ContextManager(150000, { maxContextItems: 5000, memoryLimit: '500MB', enableGC: true }); // Monitor memory usage const memoryStats = contextManager.getMemoryStats(); console.log(memoryStats); // Cleanup when needed contextManager.cleanup(); ``` ### Caching Strategy ```javascript // Configure caching const contextManager = new ContextManager(150000, { cacheSize: 1000, enableLRU: true, cacheCompression: true }); // Cache hit statistics const cacheStats = contextManager.getCacheStats(); console.log(`Cache hit rate: ${cacheStats.hitRate}%`); ``` ## Advanced Usage ### Custom Context Types ```javascript // Define custom context types const customTypes = { 'test-case': { priority: 0.7, tokenWeight: 1.2, category: 'testing' }, 'documentation': { priority: 0.5, tokenWeight: 0.8, category: 'docs' } }; contextManager.registerCustomTypes(customTypes); ``` ### Event Handling ```javascript // Listen to context events contextManager.on('itemAdded', (item) => { console.log(`Added item: ${item.type}`); }); contextManager.on('optimized', (stats) => { console.log(`Optimized: ${stats.itemsRemoved} items removed`); }); // Session events sessionManager.on('sessionStarted', (session) => { console.log(`Started session: ${session.task}`); }); ``` ## Testing Run the test suite: ```bash # Unit tests npm test # Integration tests npm run test:integration # Performance tests npm run test:performance ``` ## API Reference Detailed API documentation is available in the source code with JSDoc comments. ## Requirements - Node.js 18+ - OpenAI API key - @claude-vector/core package ## License MIT