Complete TypeScript API documentation for AI Marketing Swarms.
| Class/Function | Purpose |
|---|---|
startMarketingSwarm() |
Start the 15-agent swarm |
SwarmCoordinator |
Main swarm controller |
getEventBus() |
Access event system |
getStateManager() |
Access state management |
Convenience function to initialize and start the swarm.
import { startMarketingSwarm } from '@marketing/ai-swarms';
const swarm = await startMarketingSwarm(config?);Parameters:
| Parameter | Type | Description |
|---|---|---|
config |
SwarmConfig |
Optional configuration |
Returns: Promise<SwarmCoordinator>
Example:
const swarm = await startMarketingSwarm({
maxConcurrentTasks: 100,
autoRecovery: true,
healthCheckInterval: 30000,
});Central controller for the 15-agent swarm.
const swarm = new SwarmCoordinator(config?: SwarmConfig);interface SwarmConfig {
enabledAgents?: AgentId[]; // Agents to enable (default: all)
maxConcurrentTasks?: number; // Max parallel tasks (default: 100)
healthCheckInterval?: number; // Health check ms (default: 30000)
autoRecovery?: boolean; // Auto-recover failed agents (default: true)
logLevel?: 'debug' | 'info' | 'warn' | 'error';
}Initialize and start all agents.
await swarm.start();Returns: Promise<void>
Events Emitted:
swarm:started
Gracefully shutdown all agents.
await swarm.stop();Returns: Promise<void>
Events Emitted:
swarm:stopped
Submit a task for processing.
const task = await swarm.submitTask(type, payload, options?);Parameters:
| Parameter | Type | Description |
|---|---|---|
type |
TaskType |
Type of task |
payload |
object |
Task data |
options.priority |
TaskPriority |
'low' | 'medium' | 'high' | 'critical' |
options.targetAgent |
AgentId |
Route to specific agent |
options.metadata |
object |
Additional metadata |
Returns: Promise<Task>
Task Types:
type TaskType =
| 'campaign_optimization'
| 'bid_optimization'
| 'creative_analysis'
| 'attribution_analysis'
| 'risk_assessment'
| 'forecasting'
| 'health_check';Example:
const task = await swarm.submitTask(
'campaign_optimization',
{
campaignId: 'camp-123',
platform: 'google-ads',
budget: 5000,
},
{
priority: 'high',
targetAgent: 'simulation',
}
);Submit a campaign for processing.
await swarm.submitCampaign(campaign);Parameters:
| Parameter | Type | Description |
|---|---|---|
campaign |
Campaign |
Campaign object |
Returns: Promise<void>
Campaign Interface:
interface Campaign {
id: string;
name: string;
platform: Platform;
status: 'draft' | 'active' | 'paused' | 'completed';
budget: {
daily?: number;
total?: number;
};
targeting?: {
geoTargets?: string[];
ageRange?: { min: number; max: number };
interests?: string[];
};
bidStrategy?: string;
createdAt: Date;
updatedAt: Date;
}Submit a creative for analysis.
await swarm.submitCreative(creative);Parameters:
| Parameter | Type | Description |
|---|---|---|
creative |
Creative |
Creative object |
Returns: Promise<void>
Get current swarm status.
const status = swarm.getStatus();Returns: SwarmStatus
interface SwarmStatus {
status: 'initializing' | 'running' | 'degraded' | 'stopped' | 'error';
activeAgents: number;
totalAgents: number;
agentStatuses: Map<AgentId, AgentStatus>;
uptime: number;
tasksProcessed: number;
lastHealthCheck: Date | null;
}Get swarm performance metrics.
const metrics = swarm.getMetrics();Returns: SwarmMetrics
interface SwarmMetrics {
totalTasksSubmitted: number;
totalTasksCompleted: number;
totalTasksFailed: number;
averageTaskDuration: number;
tasksByType: Map<TaskType, number>;
tasksByAgent: Map<AgentId, number>;
errorRate: number;
throughput: number;
}Get a specific agent instance.
const agent = swarm.getAgent<SimulationAgent>('simulation');Parameters:
| Parameter | Type | Description |
|---|---|---|
agentId |
AgentId |
Agent identifier |
Returns: T | undefined
Run health diagnostics on all agents.
const diagnostics = await swarm.runDiagnostics();Returns: Promise<Map<AgentId, unknown>>
Pub/sub event system for agent communication.
Get the singleton event bus instance.
import { getEventBus } from '@marketing/ai-swarms';
const eventBus = getEventBus();Publish an event.
eventBus.publish({
id: 'evt-123',
type: 'campaign.optimized',
timestamp: new Date(),
source: 'simulation',
payload: { recommendations: [...] },
});Subscribe to events.
// Exact match
eventBus.subscribe('campaign.optimized', (event) => {
console.log('Campaign optimized:', event.payload);
});
// Wildcard
eventBus.subscribe('campaign.*', (event) => {
console.log('Campaign event:', event.type);
});Centralized state management.
Get the singleton state manager.
import { getStateManager } from '@marketing/ai-swarms';
const stateManager = getStateManager();// Campaigns
stateManager.addCampaign(campaign);
stateManager.getCampaign(id);
stateManager.updateCampaign(id, updates);
stateManager.getAllCampaigns();
// Creatives
stateManager.addCreative(creative);
stateManager.getCreative(id);
stateManager.getAllCreatives();
// Tasks
stateManager.addTask(task);
stateManager.getTask(id);
stateManager.updateTaskStatus(id, status);
// Agents
stateManager.registerAgent(id, info);
stateManager.getAgent(id);
stateManager.updateAgentMetrics(id, metrics);
// Snapshots
stateManager.createSnapshot();
stateManager.getSnapshots();type AgentId =
| 'orchestrator'
| 'memory'
| 'quality'
| 'simulation'
| 'historical-memory'
| 'risk-detection'
| 'attention-arbitrage'
| 'creative-genome'
| 'fatigue-forecaster'
| 'mutation'
| 'counterfactual'
| 'causal-graph'
| 'incrementality'
| 'account-health'
| 'cross-platform';type Platform =
| 'google-ads'
| 'meta'
| 'tiktok'
| 'linkedin'
| 'twitter'
| 'pinterest'
| 'snapchat';type TaskPriority = 'low' | 'medium' | 'high' | 'critical';type TaskStatus = 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';All async methods can throw errors:
try {
await swarm.submitTask('campaign_optimization', { ... });
} catch (error) {
if (error.message.includes('swarm is stopped')) {
// Swarm not running
} else if (error.message.includes('agent not found')) {
// Invalid target agent
}
}| Event | Description | Payload |
|---|---|---|
swarm:started |
Swarm initialized | { timestamp } |
swarm:stopped |
Swarm shutdown | { timestamp } |
swarm:healthcheck |
Health check completed | { healthy, unhealthy, status } |
task.assigned |
Task routed to agent | { taskId, agentId } |
task.completed |
Task finished | { taskId, duration, result } |
task.failed |
Task errored | { taskId, error } |
agent.error |
Agent encountered error | { agentId, error } |
campaign.optimized |
Campaign optimization done | { campaignId, recommendations } |
creative.analyzed |
Creative analysis done | { creativeId, dna } |
- Agent Reference - Agent capabilities
- Tutorials - Hands-on examples
- Architecture - System design