# Agentic-Jujutsu Integration Examples This directory contains comprehensive examples demonstrating the integration of **agentic-jujutsu** (quantum-resistant, self-learning version control) with **agentic-synth** (synthetic data generation). ## ๐ŸŽฏ Overview Agentic-jujutsu brings advanced version control capabilities to synthetic data generation: - **Version Control**: Track data generation history with full provenance - **Multi-Agent Coordination**: Multiple agents generating different data types - **ReasoningBank Intelligence**: Self-learning and adaptive generation - **Quantum-Resistant Security**: Cryptographic integrity and immutable history - **Collaborative Workflows**: Team-based data generation with review processes ## ๐Ÿ“‹ Table of Contents - [Installation](#installation) - [Quick Start](#quick-start) - [Examples](#examples) - [Version Control Integration](#1-version-control-integration) - [Multi-Agent Data Generation](#2-multi-agent-data-generation) - [ReasoningBank Learning](#3-reasoningbank-learning) - [Quantum-Resistant Data](#4-quantum-resistant-data) - [Collaborative Workflows](#5-collaborative-workflows) - [Testing](#testing) - [Best Practices](#best-practices) - [Troubleshooting](#troubleshooting) - [API Reference](#api-reference) ## ๐Ÿš€ Installation ### Prerequisites - Node.js 18+ or Bun runtime - Git (for jujutsu compatibility) - Agentic-synth installed ### Install Agentic-Jujutsu ```bash # Install globally for CLI access npm install -g agentic-jujutsu@latest # Or use via npx (no installation required) npx agentic-jujutsu@latest --version ``` ### Install Dependencies ```bash cd packages/agentic-synth npm install ``` ## โšก Quick Start ### Basic Version-Controlled Data Generation ```typescript import { VersionControlledDataGenerator } from './examples/agentic-jujutsu/version-control-integration'; const generator = new VersionControlledDataGenerator('./my-data-repo'); // Initialize repository await generator.initializeRepository(); // Generate and commit data const schema = { name: 'string', email: 'email', age: 'number' }; const commit = await generator.generateAndCommit( schema, 1000, 'Initial user dataset' ); console.log(`Generated ${commit.metadata.recordCount} records`); console.log(`Quality: ${(commit.metadata.quality * 100).toFixed(1)}%`); ``` ### Running with npx ```bash # Initialize a jujutsu repository npx agentic-jujutsu@latest init # Check status npx agentic-jujutsu@latest status # View history npx agentic-jujutsu@latest log # Create branches for experimentation npx agentic-jujutsu@latest branch create experiment-1 ``` ## ๐Ÿ“š Examples ### 1. Version Control Integration **File**: `version-control-integration.ts` Demonstrates version controlling synthetic data with branching, merging, and rollback capabilities. **Key Features**: - Repository initialization - Data generation with metadata tracking - Branch management for different strategies - Dataset comparison between versions - Rollback to previous generations - Version tagging **Run Example**: ```bash npx tsx examples/agentic-jujutsu/version-control-integration.ts ``` **Key Commands**: ```typescript // Initialize repository await generator.initializeRepository(); // Generate and commit const commit = await generator.generateAndCommit(schema, 1000, 'Message'); // Create experimental branch await generator.createGenerationBranch('experiment-1', 'Testing new approach'); // Compare datasets const comparison = await generator.compareDatasets(commit1.hash, commit2.hash); // Tag stable version await generator.tagVersion('v1.0', 'Production baseline'); // Rollback if needed await generator.rollbackToVersion(previousCommit); ``` **Real-World Use Cases**: - A/B testing different generation strategies - Maintaining production vs. experimental datasets - Rolling back to known-good generations - Tracking data quality over time --- ### 2. Multi-Agent Data Generation **File**: `multi-agent-data-generation.ts` Coordinates multiple agents generating different types of synthetic data with automatic conflict resolution. **Key Features**: - Agent registration with dedicated branches - Parallel data generation - Contribution merging (sequential/octopus) - Conflict detection and resolution - Agent synchronization - Activity tracking **Run Example**: ```bash npx tsx examples/agentic-jujutsu/multi-agent-data-generation.ts ``` **Key Commands**: ```typescript // Initialize multi-agent environment await coordinator.initialize(); // Register agents const userAgent = await coordinator.registerAgent( 'agent-001', 'User Generator', 'users', { name: 'string', email: 'email' } ); // Parallel generation const contributions = await coordinator.coordinateParallelGeneration([ { agentId: 'agent-001', count: 1000, description: 'Users' }, { agentId: 'agent-002', count: 500, description: 'Products' } ]); // Merge contributions await coordinator.mergeContributions(['agent-001', 'agent-002']); // Synchronize agents await coordinator.synchronizeAgents(); ``` **Real-World Use Cases**: - Large-scale data generation with specialized agents - Distributed team generating different data types - Parallel processing for faster generation - Coordinating microservices generating test data --- ### 3. ReasoningBank Learning **File**: `reasoning-bank-learning.ts` Self-learning data generation that improves quality over time using ReasoningBank intelligence. **Key Features**: - Trajectory tracking for each generation - Pattern recognition from successful generations - Adaptive schema evolution - Continuous quality improvement - Memory distillation - Self-optimization **Run Example**: ```bash npx tsx examples/agentic-jujutsu/reasoning-bank-learning.ts ``` **Key Commands**: ```typescript // Initialize ReasoningBank await generator.initialize(); // Generate with learning const { data, trajectory } = await generator.generateWithLearning( schema, { count: 1000 }, 'Learning generation' ); console.log(`Quality: ${trajectory.quality}`); console.log(`Lessons learned: ${trajectory.lessons.length}`); // Evolve schema based on learning const evolved = await generator.evolveSchema(schema, 0.95, 10); // Continuous improvement const improvement = await generator.continuousImprovement(5); console.log(`Quality improved by ${improvement.qualityImprovement}%`); // Recognize patterns const patterns = await generator.recognizePatterns(); ``` **Real-World Use Cases**: - Optimizing data quality automatically - Learning from production feedback - Adapting schemas to new requirements - Self-improving test data generation --- ### 4. Quantum-Resistant Data **File**: `quantum-resistant-data.ts` Secure data generation with cryptographic signatures and quantum-resistant integrity verification. **Key Features**: - Quantum-resistant key generation - Cryptographic data signing - Integrity verification - Merkle tree proofs - Audit trail generation - Tampering detection **Run Example**: ```bash npx tsx examples/agentic-jujutsu/quantum-resistant-data.ts ``` **Key Commands**: ```typescript // Initialize quantum-resistant repo await generator.initialize(); // Generate secure data const generation = await generator.generateSecureData( schema, 1000, 'Secure generation' ); console.log(`Hash: ${generation.dataHash}`); console.log(`Signature: ${generation.signature}`); // Verify integrity const verified = await generator.verifyIntegrity(generation.id); // Create proof const proof = await generator.createIntegrityProof(generation.id); // Generate audit trail const audit = await generator.generateAuditTrail(generation.id); // Detect tampering const tampered = await generator.detectTampering(); ``` **Real-World Use Cases**: - Financial data generation with audit requirements - Healthcare data with HIPAA compliance - Blockchain and cryptocurrency test data - Secure supply chain data - Regulated industry compliance --- ### 5. Collaborative Workflows **File**: `collaborative-workflows.ts` Team-based data generation with review processes, quality gates, and approval workflows. **Key Features**: - Team creation with permissions - Team-specific workspaces - Review request system - Quality gate automation - Comment and approval system - Collaborative schema design - Team statistics and reporting **Run Example**: ```bash npx tsx examples/agentic-jujutsu/collaborative-workflows.ts ``` **Key Commands**: ```typescript // Initialize workspace await workflow.initialize(); // Create teams const dataTeam = await workflow.createTeam( 'data-team', 'Data Engineering', ['alice', 'bob', 'charlie'] ); // Team generates data await workflow.teamGenerate( 'data-team', 'alice', schema, 1000, 'User dataset' ); // Create review request const review = await workflow.createReviewRequest( 'data-team', 'alice', 'Add user dataset', 'Generated 1000 users', ['dave', 'eve'] ); // Add comments await workflow.addComment(review.id, 'dave', 'Looks good!'); // Approve and merge await workflow.approveReview(review.id, 'dave'); await workflow.mergeReview(review.id); // Design collaborative schema await workflow.designCollaborativeSchema( 'user-schema', ['alice', 'dave'], baseSchema ); ``` **Real-World Use Cases**: - Enterprise data generation with governance - Multi-team development environments - Quality assurance workflows - Production data approval processes - Regulated data generation pipelines --- ## ๐Ÿงช Testing ### Run the Comprehensive Test Suite ```bash # Run all tests npm test examples/agentic-jujutsu/test-suite.ts # Run with coverage npm run test:coverage examples/agentic-jujutsu/test-suite.ts # Run specific test suite npm test examples/agentic-jujutsu/test-suite.ts -t "Version Control" ``` ### Test Categories The test suite includes: 1. **Version Control Integration Tests** - Repository initialization - Data generation and commits - Branch management - Dataset comparison - History retrieval 2. **Multi-Agent Coordination Tests** - Agent registration - Parallel generation - Contribution merging - Activity tracking 3. **ReasoningBank Learning Tests** - Learning-enabled generation - Pattern recognition - Schema evolution - Continuous improvement 4. **Quantum-Resistant Tests** - Secure data generation - Integrity verification - Proof creation and validation - Audit trail generation - Tampering detection 5. **Collaborative Workflow Tests** - Team creation - Review requests - Quality gates - Schema collaboration 6. **Performance Benchmarks** - Operation timing - Scalability tests - Resource usage 7. **Error Handling Tests** - Invalid inputs - Edge cases - Graceful failures ## ๐Ÿ“– Best Practices ### 1. Repository Organization ``` my-data-repo/ โ”œโ”€โ”€ .jj/ # Jujutsu metadata โ”œโ”€โ”€ data/ โ”‚ โ”œโ”€โ”€ users/ # Organized by type โ”‚ โ”œโ”€โ”€ products/ โ”‚ โ””โ”€โ”€ transactions/ โ”œโ”€โ”€ schemas/ โ”‚ โ””โ”€โ”€ shared/ # Collaborative schemas โ””โ”€โ”€ reviews/ # Review requests ``` ### 2. Commit Messages Use descriptive commit messages with metadata: ```typescript await generator.generateAndCommit( schema, count, `Generate ${count} records for ${purpose} Quality: ${quality} Schema: ${schemaVersion} Generator: ${generatorName}` ); ``` ### 3. Branch Naming Follow consistent branch naming: - `agent/{agent-id}/{data-type}` - Agent branches - `team/{team-id}/{team-name}` - Team branches - `experiment/{description}` - Experimental branches - `schema/{schema-name}` - Schema design branches ### 4. Quality Gates Always define quality gates for production: ```typescript const qualityGates = [ { name: 'Data Completeness', required: true }, { name: 'Schema Validation', required: true }, { name: 'Quality Threshold', required: true }, { name: 'Security Scan', required: false } ]; ``` ### 5. Security For sensitive data: - Always use quantum-resistant features - Enable integrity verification - Generate audit trails - Regular tampering scans - Secure key management ### 6. Learning Optimization Maximize ReasoningBank benefits: - Track all generations as trajectories - Regularly recognize patterns - Use adaptive schema evolution - Implement continuous improvement - Analyze quality trends ## ๐Ÿ”ง Troubleshooting ### Common Issues #### 1. Jujutsu Not Found ```bash # Error: jujutsu command not found # Solution: Install jujutsu npm install -g agentic-jujutsu@latest # Or use npx npx agentic-jujutsu@latest init ``` #### 2. Merge Conflicts ```bash # Error: Merge conflicts detected # Solution: Use conflict resolution await coordinator.resolveConflicts(conflictFiles, 'ours'); # or await coordinator.resolveConflicts(conflictFiles, 'theirs'); ``` #### 3. Integrity Verification Failed ```typescript // Error: Signature verification failed // Solution: Check keys and regenerate if needed await generator.initialize(); // Regenerates keys const verified = await generator.verifyIntegrity(generationId); ``` #### 4. Quality Gates Failing ```typescript // Error: Quality gate threshold not met // Solution: Use adaptive learning to improve const evolved = await generator.evolveSchema(schema, targetQuality); ``` #### 5. Permission Denied ```bash # Error: Permission denied on team operations # Solution: Verify team membership const team = await workflow.teams.get(teamId); if (!team.members.includes(author)) { // Add member to team team.members.push(author); } ``` ### Debug Mode Enable debug logging: ```typescript // Set environment variable process.env.DEBUG = 'agentic-jujutsu:*'; // Or enable in code import { setLogLevel } from 'agentic-synth'; setLogLevel('debug'); ``` ## ๐Ÿ“š API Reference ### VersionControlledDataGenerator ```typescript class VersionControlledDataGenerator { constructor(repoPath: string); async initializeRepository(): Promise; async generateAndCommit(schema: any, count: number, message: string): Promise; async createGenerationBranch(branchName: string, description: string): Promise; async compareDatasets(ref1: string, ref2: string): Promise; async mergeBranches(source: string, target: string): Promise; async rollbackToVersion(commitHash: string): Promise; async getHistory(limit?: number): Promise; async tagVersion(tag: string, message: string): Promise; } ``` ### MultiAgentDataCoordinator ```typescript class MultiAgentDataCoordinator { constructor(repoPath: string); async initialize(): Promise; async registerAgent(id: string, name: string, dataType: string, schema: any): Promise; async agentGenerate(agentId: string, count: number, description: string): Promise; async coordinateParallelGeneration(tasks: Task[]): Promise; async mergeContributions(agentIds: string[], strategy?: 'sequential' | 'octopus'): Promise; async resolveConflicts(files: string[], strategy: 'ours' | 'theirs' | 'manual'): Promise; async synchronizeAgents(agentIds?: string[]): Promise; async getAgentActivity(agentId: string): Promise; } ``` ### ReasoningBankDataGenerator ```typescript class ReasoningBankDataGenerator { constructor(repoPath: string); async initialize(): Promise; async generateWithLearning(schema: any, parameters: any, description: string): Promise<{ data: any[]; trajectory: GenerationTrajectory }>; async evolveSchema(baseSchema: any, targetQuality?: number, maxGenerations?: number): Promise; async recognizePatterns(): Promise; async continuousImprovement(iterations?: number): Promise; } ``` ### QuantumResistantDataGenerator ```typescript class QuantumResistantDataGenerator { constructor(repoPath: string); async initialize(): Promise; async generateSecureData(schema: any, count: number, description: string): Promise; async verifyIntegrity(generationId: string): Promise; async createIntegrityProof(generationId: string): Promise; async verifyIntegrityProof(generationId: string): Promise; async generateAuditTrail(generationId: string): Promise; async detectTampering(): Promise; } ``` ### CollaborativeDataWorkflow ```typescript class CollaborativeDataWorkflow { constructor(repoPath: string); async initialize(): Promise; async createTeam(id: string, name: string, members: string[], permissions?: string[]): Promise; async teamGenerate(teamId: string, author: string, schema: any, count: number, description: string): Promise; async createReviewRequest(teamId: string, author: string, title: string, description: string, reviewers: string[]): Promise; async addComment(requestId: string, author: string, text: string): Promise; async approveReview(requestId: string, reviewer: string): Promise; async mergeReview(requestId: string): Promise; async designCollaborativeSchema(name: string, contributors: string[], baseSchema: any): Promise; async getTeamStatistics(teamId: string): Promise; } ``` ## ๐Ÿ”— Related Resources - [Agentic-Jujutsu Repository](https://github.com/ruvnet/agentic-jujutsu) - [Agentic-Synth Documentation](../../README.md) - [Jujutsu VCS Documentation](https://github.com/martinvonz/jj) - [ReasoningBank Paper](https://arxiv.org/abs/example) ## ๐Ÿค Contributing Contributions are welcome! Please: 1. Fork the repository 2. Create a feature branch 3. Add tests for new features 4. Submit a pull request ## ๐Ÿ“„ License MIT License - see LICENSE file for details ## ๐Ÿ’ฌ Support - Issues: [GitHub Issues](https://github.com/ruvnet/ruvector/issues) - Discussions: [GitHub Discussions](https://github.com/ruvnet/ruvector/discussions) - Email: support@ruv.io --- **Built with โค๏ธ by the RUV Team**