Package Exports
- @codervisor/devlog-ai
- @codervisor/devlog-ai/build/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@codervisor/devlog-ai) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@codervisor/devlog-ai
AI Chat History Extractor & Docker-based Automation - TypeScript implementation for GitHub Copilot and other AI coding assistants in the devlog ecosystem.
Features
Chat History Analysis
- Extract Real Chat History: Discovers and parses actual AI chat sessions from VS Code data directories
- Multi-AI Support: Currently supports GitHub Copilot, with planned support for Cursor, Claude Code, and other AI assistants
- Cross-Platform Support: Works with VS Code, VS Code Insiders, and other variants across Windows, macOS, and Linux
- Multiple Export Formats: Export to JSON and Markdown
- Search Functionality: Search through chat content to find specific conversations
- Statistics: View usage statistics and patterns
- Devlog Integration: Seamlessly integrates with the devlog core system for enhanced project management
🤖 Docker-based Automation (NEW!)
- Automated Copilot Testing: Run containerized VS Code Instances with GitHub Copilot for automated code generation testing
- Scenario-Based Testing: Pre-built test scenarios for algorithms, APIs, data processing, and more
- Real-time Interaction Capture: Monitor and capture Copilot suggestions and user interactions in real-time
- Comprehensive Reporting: Export detailed automation results with metrics, statistics, and analysis
- Multiple Programming Languages: Support for JavaScript, TypeScript, Python, and more
- Docker Orchestration: Automated container lifecycle management with VS Code Insiders and extensions
Technical Features
- TypeScript Native: Fully typed implementation with modern Node.js tooling
- ESM Support: Modern ES modules with proper .js extensions for runtime compatibility
- Extensible Architecture: Plugin-based parser system for adding new AI assistants
- Performance Optimized: Streaming and batch processing for large datasets
- Type Safety: Strict TypeScript with minimal
anyusage and proper error handling - Comprehensive Testing: Full test coverage with vitest
Installation
# Install dependencies
pnpm install
# Build the package
pnpm --filter @codervisor/devlog-ai buildUsage
Command Line Interface
Chat History Analysis
npx @codervisor/devlog-ai stats
# Search chat sessions with filters
npx @codervisor/devlog-ai chat
# Search with advanced filters
npx @codervisor/devlog-ai search "error handling" --limit 20
# Export chat history
npx @codervisor/devlog-ai chat --format json --output chat_history.json
npx @codervisor/devlog-ai chat --format md --output chat_history.md🤖 Docker-based Automation
# Test Docker setup
npx @codervisor/devlog-ai automation test-setup
# List available scenarios
npx @codervisor/devlog-ai automation scenarios
npx @codervisor/devlog-ai automation scenarios --category algorithms --verbose
# List scenario categories
npx @codervisor/devlog-ai automation categories
# Run a specific scenario
npx @codervisor/devlog-ai automation run \
--token YOUR_GITHUB_TOKEN \
--scenarios algorithms,api \
--language javascript \
--count 5 \
--output ./results \
--debug
# Run with environment variable
export GITHUB_TOKEN=your_token_here
# Run multiple scenarios
npx @codervisor/devlog-ai automation run --scenarios testing --language pythonProgrammatic Usage
Chat History Analysis
import {
CopilotParser,
JSONExporter,
MarkdownExporter,
DefaultChatImportService,
ChatHubService,
} from '@codervisor/devlog-ai';
// Parse chat data
const parser = new CopilotParser();
const data = await parser.discoverChatData();
// Get statistics
const stats = parser.getChatStatistics(data);
// Search content
const results = parser.searchChatContent(data, 'async function');
// Export to JSON
const jsonExporter = new JSONExporter();
await jsonExporter.exportData(
{
chat_data: data.toDict(),
statistics: stats,
},
'output.json',
);
// Export to Markdown
const mdExporter = new MarkdownExporter();
await mdExporter.exportChatData(
{
statistics: stats,
chat_data: { chat_sessions: data.chat_sessions },
search_results: results,
},
'report.md',
);
// Import to devlog system
const importService = new DefaultChatImportService(storageProvider);
const progress = await importService.importFromCopilot();🤖 Docker Automation
import {
DockerCopilotAutomation,
CodeGenerationScenario,
AutomationResultExporter,
} from '@codervisor/devlog-ai';
// Configure automation
const config = {
githubToken: process.env.GITHUB_TOKEN!,
timeout: 60000,
debug: true,
ports: { codeServer: 8080, vscode: 3000 },
};
// Get test scenarios
const scenarios = CodeGenerationScenario.getScenariosByCategory('algorithms');
// Run automation session
const automation = new DockerCopilotAutomation(config);
const sessionResult = await automation.runSession(scenarios);
// Export results
const exporter = new AutomationResultExporter();
await exporter.exportDetailedReport(sessionResult, './automation-results');
// Create custom scenarios
const customScenario = new CodeGenerationScenario({
id: 'custom-test',
name: 'Custom Algorithm Test',
description: 'Test custom algorithm implementation',
language: 'typescript',
initialCode: 'function customSort(arr: number[]): number[] {\n // TODO: implement\n}',
expectedPrompts: ['if (arr.length <= 1)', 'return arr;'],
timeout: 30000,
});
await automation.runSession([customScenario]);How It Works
Chat History Discovery
AI-Chat discovers AI assistant chat sessions stored in VS Code's application data:
- macOS:
~/Library/Application Support/Code*/User/workspaceStorage/*/chatSessions/ - Windows:
%APPDATA%/Code*/User/workspaceStorage/*/chatSessions/ - Linux:
~/.config/Code*/User/workspaceStorage/*/chatSessions/
Each chat session is stored as a JSON file containing the conversation between you and your AI assistant.
🤖 Docker Automation Architecture
The automation system creates isolated Docker containers with VS Code Insiders and GitHub Copilot to run reproducible tests:
Container Setup
- Base Image: Ubuntu 22.04 with Node.js, Python, and development tools
- VS Code Insiders: Latest insider build with GitHub Copilot extensions
- Code Server: Web-based VS Code interface for automation control
- Test Environment: Isolated workspace with pre-configured test files
Automation Flow
- Container Launch: Docker container with VS Code Insiders starts
- Extension Loading: GitHub Copilot and related extensions activate
- Scenario Execution: Test scenarios run with simulated typing and interactions
- Real-time Capture: Copilot suggestions and interactions are captured
- Result Collection: Generated code, metrics, and interaction data collected
- Report Generation: Comprehensive reports exported in multiple formats
Test Scenarios
- Algorithm Implementation: Binary search, sorting algorithms, data structures
- API Development: REST endpoints, error handling, middleware patterns
- Data Processing: Validation functions, transformations, parsing
- Testing Patterns: Unit tests, integration tests, mocking strategies
- Security: Input validation, sanitization, authentication patterns
Configuration
Docker Requirements
- Docker Desktop or Docker Engine installed and running
- Internet connection for pulling base images and VS Code components
- At least 2GB RAM available for containers
- GitHub token with Copilot access
Environment Variables
# Required for automation
export GITHUB_TOKEN=your_personal_access_token
# Optional configuration
export DOCKER_AUTOMATION_PORT=8080 # Code server port
export DOCKER_AUTOMATION_TIMEOUT=60000 # Operation timeout (ms)
export DEBUG=1 # Enable debug loggingAutomation Configuration
interface AutomationConfig {
githubToken: string; // Required: GitHub token for Copilot
vscodeVersion?: string; // VS Code Insiders version (default: latest)
ports?: {
codeServer: number; // Code server port (default: 8080)
vscode: number; // VS Code port (default: 3000)
};
timeout?: number; // Operation timeout (default: 60000ms)
debug?: boolean; // Debug logging (default: false)
}Architecture
src/
├── models/ # TypeScript interfaces and types
├── parsers/ # VS Code data discovery and parsing
│ ├── base/ # Abstract base classes for AI providers
│ └── copilot/ # GitHub Copilot implementation
├── exporters/ # Export functionality (JSON, Markdown)
├── automation/ # 🤖 NEW: Docker-based automation layer
│ ├── docker/ # Container orchestration and management
│ ├── scenarios/ # Test scenario definitions and factories
│ ├── capture/ # Real-time interaction capture and parsing
│ ├── exporters/ # Automation result exporters
│ └── types/ # Automation-specific TypeScript types
├── utils/ # Cross-platform utilities
├── cli/ # Command-line interface
│ ├── index.ts # Main CLI with chat history commands
│ └── automation.ts # Automation-specific CLI commands
└── index.ts # Main exportsCore Components
Historical Analysis (Existing)
- CopilotParser: Discovers and parses VS Code chat sessions
- JSONExporter/MarkdownExporter: Export chat data in various formats
- SearchResult: Search through chat content with context
🤖 Automation Layer (New)
- DockerCopilotAutomation: Main orchestrator for automation sessions
- VSCodeContainer: Docker container lifecycle management
- RealTimeCaptureParser: Live capture of Copilot interactions
- CodeGenerationScenario: Pre-built and custom test scenarios
- AutomationResultExporter: Comprehensive result reporting
Troubleshooting
Docker Issues
# Check Docker installation
docker --version
# Test basic Docker functionality
docker run hello-world
# Check if Docker daemon is running
docker info
# Pull required base image manually
docker pull ubuntu:22.04Automation Issues
# Test environment setup
npx @codervisor/devlog-ai automation test-setup
# Check GitHub token
echo $GITHUB_TOKEN
# Run with debug logging
npx @codervisor/devlog-ai automation run --debug --token $GITHUB_TOKENCommon Problems
"Docker not found"
- Install Docker Desktop: https://docs.docker.com/get-docker/
- Ensure Docker daemon is running
- Add your user to docker group (Linux):
sudo usermod -aG docker $USER
"GitHub token invalid"
- Generate personal access token: https://github.com/settings/tokens
- Ensure token has appropriate Copilot access permissions
- Set token as environment variable or use --token flag
"Container startup timeout"
- Increase timeout:
--timeout 120000 - Check available system resources (RAM, disk space)
- Verify internet connection for downloading VS Code components
"No scenarios found"
- List available categories:
npx @codervisor/devlog-ai automation categories - Check scenario filters:
--category algorithms --language javascript - Create custom scenarios using the programmatic API
Integration with Devlog
This package is part of the devlog monorepo ecosystem:
- @codervisor/devlog-core: Shared utilities and types
- @codervisor/devlog-mcp: MCP server integration for AI agents
- @codervisor/devlog-web: Web interface for visualization
License
Apache 2.0 License - see LICENSE file for details.