# Vooodooo

Vooodooo is an AI orchestration platform that helps you build applications with AI-first planning and documentation.

## Features

- **Agent System**: Specialized AI agents for different phases of development
- **Plugin System**: Extensible plugin architecture for customization
- **Planning System**: Template-based project planning
- **Documentation System**: AI-optimized documentation with human-readable conversion

## Installation

```bash
npm install @m/vooodooo
```

## Usage

### Agent System

```javascript
import { createAgentManager } from '@m/vooodooo';

// Create agent manager
const agentManager = createAgentManager({
  agentsDir: './agents',
  cursorRulesDir: './.cursor/rules'
});

// List available agents
const agents = agentManager.listAgents();
console.log(agents);

// Activate an agent
agentManager.activateAgent('visionary-architect');

// Deactivate the current agent
agentManager.deactivateAgent();
```

### Plugin System

```javascript
import { createPluginManager, createPluginLoader } from '@m/vooodooo';

// Create plugin manager and loader
const pluginManager = createPluginManager();
const pluginLoader = createPluginLoader(pluginManager, './plugins');

// Load all plugins
await pluginLoader.loadPlugins();

// Get all registered plugins
const plugins = pluginManager.getPlugins();
console.log(plugins);
```

### Planning System

```javascript
import { createPlanSystem } from '@m/vooodooo';

// Create plan system
const planSystem = createPlanSystem('./templates/plans');

// Get available templates
const templates = planSystem.getTemplates();
console.log(templates);

// Generate a plan from a template
planSystem.generatePlan({
  templateId: 'project-plan',
  values: {
    projectName: 'My Awesome Project',
    author: 'John Doe',
    description: 'A project to do awesome things'
  },
  outputPath: './plans/awesome-project-plan.md'
});
```

### Documentation System

```javascript
import { createDocSystem } from '@m/vooodooo';

// Create documentation system
const docSystem = createDocSystem({
  aiDir: './docs/ai',
  humanDir: './docs/human'
});

// Convert AI documentation to human-readable
await docSystem.convertAiToHuman({
  input: './docs/ai/component.md',
  output: './docs/human/component.md'
});

// Convert human documentation to AI-optimized
await docSystem.convertHumanToAi({
  input: './docs/human/guide.md',
  output: './docs/ai/guide.md'
});
```

### Vooodooo Core

```javascript
import { createVooodooo } from '@m/vooodooo';

// Create Vooodooo instance
const vooodooo = createVooodooo({
  agentsDir: './agents',
  cursorRulesDir: './.cursor/rules',
  pluginsDir: './plugins'
});

// Initialize
await vooodooo.initialize();

// Get subsystems
const agentManager = vooodooo.getAgentManager();
const pluginManager = vooodooo.getPluginManager();
```

## Creating Plugins

To create a plugin for Vooodooo, you need to implement the `Plugin` interface:

```javascript
import { Plugin, PluginAPI, PluginManifest } from '@m/vooodooo';

class MyPlugin implements Plugin {
  manifest: PluginManifest = {
    id: 'my-plugin',
    name: 'My Plugin',
    version: '1.0.0',
    description: 'A plugin that does cool things',
    author: {
      name: 'John Doe',
      email: 'john@example.com'
    },
    minPlatformVersion: '0.1.0',
    main: 'index.js'
  };

  async initialize(api: PluginAPI): Promise<void> {
    api.log('info', 'Initializing My Plugin');
    
    // Register extensions
    api.registerExtension({
      extensionPointId: 'vooodooo.planTemplates',
      implementation: {
        id: 'my-template',
        name: 'My Template',
        content: '# My Template\n\nThis is a template.'
      }
    });
  }

  async cleanup(): Promise<void> {
    // Clean up resources
  }
}

export default MyPlugin;
```

## License

MIT
