@claude-vector/claude-tools
Version:
Claude integration tools for AI-powered development assistance
376 lines (281 loc) • 8.95 kB
Markdown
# @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