mirror of
https://github.com/ruvnet/ruflo.git
synced 2026-11-09 22:13:39 +09:00
- Reorganize v3/ into implementation/ subfolders: - planning/, architecture/, migration/, integration/ - security/, adrs/, research/, swarm-plans/ - Add 15-agent concurrent swarm implementation plans: - SWARM-OVERVIEW.md: Hierarchical mesh topology, 4 phases - AGENT-SPECIFICATIONS.md: 15 agent configs with capabilities - TDD-LONDON-SCHOOL-PLAN.md: Mock-first TDD methodology - BENCHMARK-OPTIMIZATION.md: Performance targets (2.49x-7.47x) - DEPLOYMENT-PLAN.md: Release strategy, CI/CD, rollback - GITHUB-ISSUE-TRACKING.md: Issue workflow with agent replies - Update .claude/settings.json with proper hooks format - Add bash aliases for claude --dangerously-skip-permissions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
83 lines
2.3 KiB
JavaScript
83 lines
2.3 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import os from 'node:os';
|
|
import path from 'node:path';
|
|
import fs from 'node:fs';
|
|
import https from 'node:https';
|
|
import { spawn, exec } from 'node:child_process';
|
|
|
|
console.log('Installing Claude-Flow...');
|
|
|
|
// Check if Deno is available
|
|
function checkDeno() {
|
|
return new Promise((resolve) => {
|
|
const deno = spawn('deno', ['--version'], { stdio: 'pipe' });
|
|
deno.on('close', (code) => {
|
|
resolve(code === 0);
|
|
});
|
|
deno.on('error', () => {
|
|
resolve(false);
|
|
});
|
|
});
|
|
}
|
|
|
|
// Install Deno if not available
|
|
async function installDeno() {
|
|
console.log('Deno not found. Installing Deno...');
|
|
|
|
const platform = os.platform();
|
|
|
|
if (platform === 'win32') {
|
|
return new Promise((resolve, reject) => {
|
|
console.log('Installing Deno on Windows using PowerShell...');
|
|
const psCommand = `powershell -Command "irm https://deno.land/install.ps1 | iex"`;
|
|
exec(psCommand, (error, stdout, stderr) => {
|
|
if (error) {
|
|
console.error('Failed to install Deno with PowerShell:', stderr);
|
|
console.log('Please install Deno manually from https://deno.land/');
|
|
reject(new Error('Failed to install Deno'));
|
|
} else {
|
|
console.log('Deno installed successfully!');
|
|
resolve();
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
return new Promise((resolve, reject) => {
|
|
const installScript = spawn('curl', ['-fsSL', 'https://deno.land/x/install/install.sh'], { stdio: 'pipe' });
|
|
const sh = spawn('sh', [], { stdio: ['pipe', 'inherit', 'inherit'] });
|
|
|
|
installScript.stdout.pipe(sh.stdin);
|
|
|
|
sh.on('close', (code) => {
|
|
if (code === 0) {
|
|
console.log('Deno installed successfully!');
|
|
resolve();
|
|
} else {
|
|
reject(new Error('Failed to install Deno'));
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
// Main installation process
|
|
async function main() {
|
|
try {
|
|
const denoAvailable = await checkDeno();
|
|
|
|
if (!denoAvailable) {
|
|
await installDeno();
|
|
}
|
|
|
|
console.log('Claude-Flow installation completed!');
|
|
console.log('You can now use: npx claude-flow or claude-flow (if installed globally)');
|
|
|
|
} catch (error) {
|
|
console.error('Installation failed:', error.message);
|
|
console.log('Please install Deno manually from https://deno.land/ and try again.');
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
main(); |