claude-flow-novice
Version:
Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes Local RuVector Accelerator and all CFN skills for complete functionality.
80 lines (79 loc) ⢠2.58 kB
JavaScript
/**
* Simple Project Manager for novice users
*/ import * as fs from 'fs';
export class ProjectManager {
configFile = 'claude-flow-novice.json';
/**
* Initialize a new project
*/ initProject(name, description = '') {
if (this.projectExists()) {
throw new Error('Project already exists in this directory');
}
const config = {
name,
description,
agents: [],
created: new Date()
};
this.saveConfig(config);
console.log(`š Initialized project: ${name}`);
}
/**
* Load project configuration
*/ loadProject() {
if (!this.projectExists()) {
throw new Error('No project found. Run "claude-flow-novice init <name>" first.');
}
const configData = fs.readFileSync(this.configFile, 'utf-8');
return JSON.parse(configData);
}
/**
* Save project configuration
*/ saveConfig(config) {
fs.writeFileSync(this.configFile, JSON.stringify(config, null, 2));
}
/**
* Check if project exists
*/ projectExists() {
return fs.existsSync(this.configFile);
}
/**
* Get project status
*/ getStatus() {
if (!this.projectExists()) {
console.log('ā No project found in current directory');
return;
}
const config = this.loadProject();
console.log(`š Project: ${config.name}`);
console.log(`š Description: ${config.description || 'No description'}`);
console.log(`š
Created: ${new Date(config.created).toLocaleDateString()}`);
console.log(`š¤ Agents: ${config.agents.length}`);
if (config.agents.length > 0) {
console.log('\\nš¤ Agent Summary:');
const statusCounts = config.agents.reduce((acc, agent)=>{
acc[agent.status] = (acc[agent.status] || 0) + 1;
return acc;
}, {});
Object.entries(statusCounts).forEach(([status, count])=>{
const emoji = this.getStatusEmoji(status);
console.log(` ${emoji} ${status}: ${count}`);
});
}
}
getStatusEmoji(status) {
switch(status){
case 'pending':
return 'ā³';
case 'running':
return 'š';
case 'completed':
return 'ā
';
case 'failed':
return 'ā';
default:
return 'ā';
}
}
}
//# sourceMappingURL=project-manager.js.map