@versatil/claude-opera
Version:
š Claude Opera by VERSATIL v6.4.0 - Production-ready OPERA orchestration with 17 agents (7 core + 10 language-specific sub-agents), automatic roadmap generation, 11-MCP ecosystem, RAG memory achieving 98%+ context retention, proactive daemon with file-ba
123 lines (107 loc) ⢠4.65 kB
JavaScript
/**
* Simulate multi-agent coordination workflow
*/
console.log(`
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā VERSATIL Multi-Agent Coordination Demo ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Simulating a complete OPERA workflow with agent handoffs...
`);
async function simulateWorkflow() {
const { createOrchestrator } = await import('../dist/intelligence/agent-orchestrator.js');
const orchestrator = createOrchestrator();
// Scenario: New feature development
const scenarios = [
{
phase: 'Requirements Analysis',
file: 'requirements/user-auth.md',
content: '# User Authentication\n\nUsers need secure login with 2FA.',
agent: 'alex-ba',
description: 'Business analyst reviews requirements'
},
{
phase: 'Frontend Implementation',
file: 'components/LoginForm.jsx',
content: `
import React, { useState } from 'react';
function LoginForm() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
return (
<form>
<input type="text" value={email} onChange={e => setEmail(e.target.value)} />
<input type="password" value={password} onChange={e => setPassword(e.target.value)} />
<button type="submit">Login</button>
</form>
);
}`,
agent: 'james-frontend',
description: 'Frontend specialist builds UI'
},
{
phase: 'Backend API',
file: 'api/auth.js',
content: `
app.post('/api/login', (req, res) => {
const { email, password } = req.body;
const query = \`SELECT * FROM users WHERE email='\${email}'\`;
db.query(query, (err, result) => {
res.json(result);
});
});`,
agent: 'marcus-backend',
description: 'Backend specialist implements API'
},
{
phase: 'Quality Assurance',
file: 'tests/auth.test.js',
content: `
describe('Authentication', () => {
it('should login user', () => {
login('test@example.com', 'password');
});
});`,
agent: 'maria-qa',
description: 'QA specialist reviews tests'
}
];
for (const scenario of scenarios) {
console.log(`\nāāā ${scenario.phase} āāā\n`);
console.log(`š File: ${scenario.file}`);
console.log(`š¤ Agent: ${scenario.agent}`);
console.log(`š Action: ${scenario.description}\n`);
const result = await orchestrator.analyzeFile({
filePath: scenario.file,
content: scenario.content,
language: 'javascript',
projectName: 'User Auth Feature',
userRequest: scenario.description
});
console.log(` ā
Analysis Complete`);
console.log(` š Quality Score: ${result.level1.score}/100`);
console.log(` š Issues Found: ${result.level1.patterns.length}`);
if (result.level1.patterns.length > 0) {
const critical = result.level1.patterns.filter(p => p.severity === 'critical').length;
const high = result.level1.patterns.filter(p => p.severity === 'high').length;
if (critical > 0) console.log(` šØ Critical Issues: ${critical}`);
if (high > 0) console.log(` ā ļø High Priority: ${high}`);
}
if (result.level2.handoffSuggestions.length > 0) {
console.log(` š¤ Handoff To: ${result.level2.handoffSuggestions.join(', ')}`);
}
console.log(` ā±ļø Status: Ready for next phase`);
}
console.log(`\n\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā`);
console.log(`ā Workflow Coordination Summary ā`);
console.log(`āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n`);
console.log(`ā
Phases Completed: ${scenarios.length}`);
console.log(`š¤ Agents Involved: alex-ba, james-frontend, marcus-backend, maria-qa`);
console.log(`š Agent Handoffs: Automatic based on analysis results`);
console.log(`š Quality Gates: Enforced at each phase`);
console.log(`\nš Multi-agent workflow simulation complete!\n`);
}
simulateWorkflow().catch(err => {
console.error('Simulation error:', err.message);
process.exit(1);
});