claude-flow
Version:
Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration
198 lines • 5.26 kB
TypeScript
/**
* V3 CLI Type Definitions
* Modernized type system for the Claude Flow V3 CLI
*/
export interface CommandContext {
args: string[];
flags: ParsedFlags;
config?: V3Config;
cwd: string;
interactive: boolean;
}
export interface ParsedFlags {
[key: string]: string | boolean | number | string[];
_: string[];
}
export interface Command {
name: string;
description: string;
aliases?: string[];
subcommands?: Command[];
options?: CommandOption[];
examples?: CommandExample[];
action?: CommandAction;
hidden?: boolean;
}
export interface CommandOption {
name: string;
short?: string;
description: string;
type: 'string' | 'boolean' | 'number' | 'array';
default?: unknown;
required?: boolean;
choices?: string[];
validate?: (value: unknown) => boolean | string;
}
export interface CommandExample {
command: string;
description: string;
}
export type CommandAction = (ctx: CommandContext) => Promise<CommandResult | void>;
export interface CommandResult {
success: boolean;
message?: string;
data?: unknown;
exitCode?: number;
}
export interface V3Config {
version: string;
projectRoot: string;
agents: AgentConfig;
swarm: SwarmConfig;
memory: MemoryConfig;
mcp: MCPConfig;
cli: CLIPreferences;
hooks: HooksConfig;
}
export interface AgentConfig {
defaultType: string;
autoSpawn: boolean;
maxConcurrent: number;
timeout: number;
providers: ProviderConfig[];
}
export interface ProviderConfig {
name: string;
apiKey?: string;
baseUrl?: string;
model?: string;
priority: number;
enabled: boolean;
}
export interface SwarmConfig {
topology: 'hierarchical' | 'mesh' | 'ring' | 'star' | 'hybrid' | 'hierarchical-mesh';
maxAgents: number;
autoScale: boolean;
coordinationStrategy: 'consensus' | 'leader' | 'distributed';
healthCheckInterval: number;
}
export interface MemoryConfig {
backend: 'agentdb' | 'sqlite' | 'memory' | 'hybrid';
persistPath: string;
cacheSize: number;
enableHNSW: boolean;
vectorDimension: number;
}
export interface MCPConfig {
serverHost: string;
serverPort: number;
autoStart: boolean;
transportType: 'stdio' | 'http' | 'websocket';
tools: string[];
}
export interface CLIPreferences {
colorOutput: boolean;
interactive: boolean;
verbosity: 'quiet' | 'normal' | 'verbose' | 'debug';
outputFormat: 'text' | 'json' | 'table';
progressStyle: 'bar' | 'spinner' | 'dots' | 'none';
}
export interface HooksConfig {
enabled: boolean;
autoExecute: boolean;
hooks: HookDefinition[];
}
export interface HookDefinition {
name: string;
event: string;
handler: string;
priority: number;
enabled: boolean;
}
export interface TableColumn {
key: string;
header: string;
width?: number;
align?: 'left' | 'center' | 'right';
format?: (value: unknown) => string;
}
export interface TableOptions {
columns: TableColumn[];
data: Record<string, unknown>[];
border?: boolean;
header?: boolean;
padding?: number;
maxWidth?: number;
}
export interface ProgressOptions {
total: number;
current?: number;
width?: number;
format?: string;
showPercentage?: boolean;
showETA?: boolean;
showSpeed?: boolean;
}
export interface SpinnerOptions {
text: string;
spinner?: 'dots' | 'line' | 'arc' | 'circle' | 'arrows';
color?: string;
}
export interface SelectOption<T = string> {
value: T;
label: string;
hint?: string;
disabled?: boolean;
/** For multiselect: whether this option is selected by default */
selected?: boolean;
}
export interface SelectPromptOptions<T = string> {
message: string;
options: SelectOption<T>[];
default?: T;
searchable?: boolean;
pageSize?: number;
}
export interface ConfirmPromptOptions {
message: string;
default?: boolean;
active?: string;
inactive?: string;
}
export interface InputPromptOptions {
message: string;
default?: string;
placeholder?: string;
validate?: (value: string) => boolean | string;
mask?: boolean;
}
export interface MultiSelectPromptOptions<T = string> {
message: string;
options: SelectOption<T>[];
default?: T[];
required?: boolean;
min?: number;
max?: number;
}
export type CLIEventType = 'command:start' | 'command:end' | 'command:error' | 'prompt:start' | 'prompt:complete' | 'output:write' | 'progress:update' | 'spinner:start' | 'spinner:stop';
export interface CLIEvent {
type: CLIEventType;
timestamp: number;
data?: unknown;
}
export declare class CLIError extends Error {
code: string;
exitCode: number;
details?: unknown | undefined;
constructor(message: string, code: string, exitCode?: number, details?: unknown | undefined);
}
export declare class ValidationError extends CLIError {
constructor(message: string, details?: unknown);
}
export declare class ConfigError extends CLIError {
constructor(message: string, details?: unknown);
}
export declare class CommandNotFoundError extends CLIError {
constructor(commandName: string);
}
//# sourceMappingURL=types.d.ts.map