Skip to main content

igon7 Engine - API Reference

Référence complète de l'API igon7.


📦 Core API

WorkflowBuilder

class WorkflowBuilder {
constructor(name: string)

// Methods
addNode<T>(name: string, fn: NodeFunction<T>, options?: NodeOptions): WorkflowBuilder
addWorkflow(name: string, workflow: Workflow, options?: SubWorkflowOptions): WorkflowBuilder
parallel(names: string[], fns: NodeFunction[], options?: ParallelOptions): WorkflowBuilder
conditional(name: string, condition: ConditionFn, branches: BranchOptions): WorkflowBuilder
delay(name: string, duration: number | DurationFn, options?: DelayOptions): WorkflowBuilder
onError(handler: ErrorHandlerFn, options?: ErrorHandlerOptions): WorkflowBuilder

validate(): ValidationResult
getNodes(): ReadonlyArray<Node>
getEdges(): ReadonlyArray<Edge>
build(): Workflow
}

NodeOptions

interface NodeOptions {
dependsOn?: string[]
retry?: RetryPolicy
timeout?: number
concurrency?: number
cache?: CacheConfig
onError?: 'fail' | 'continue' | 'fallback'
fallback?: string
metadata?: NodeMetadata
}

RetryPolicy

interface RetryPolicy {
maxAttempts: number
initialInterval: number
backoffCoefficient: number
maxInterval: number
retryableErrors?: ErrorConstructor[]
onRetry?: (error: Error, attempt: number) => void
}

📊 DAG Builder API

class DAGBuilder {
addNode(id: string, task: Task, config?: NodeConfig): DAGBuilder
addEdge(from: string, to: string, condition?: EdgeCondition): DAGBuilder
validate(): ValidationResult
hasCycle(): boolean
getTopologicalOrder(): string[]
toMermaid(): string
build(): DAG
}

⚡ Executor API

class TemporalExecutor {
constructor(config: TemporalConfig)

execute<T>(workflow: Workflow, options?: ExecutionOptions): Promise<T>
executeWithRetry<T>(workflow: Workflow, options?: RetryOptions): Promise<T>
startAsync(workflow: Workflow, options?: AsyncOptions): Promise<ExecutionHandle>

cancel(executionId: string): Promise<void>
pause(executionId: string): Promise<void>
resume(executionId: string): Promise<void>
getStatus(executionId: string): Promise<ExecutionStatus>

registerActivity(name: string, fn: ActivityFunction): void
registerActivities(activities: Record<string, ActivityFunction>): void
}

📈 Monitor API

class WorkflowMonitor {
constructor(config: MonitorConfig)

on<T extends keyof WorkflowEvents>(event: T, handler: (e: WorkflowEvents[T]) => void): void
off<T extends keyof WorkflowEvents>(event: T, handler: (e: WorkflowEvents[T]) => void): void

getMetrics(executionId: string): Promise<WorkflowMetrics>
getTimeline(executionId: string): Promise<TimelineEntry[]>
getErrors(executionId: string): Promise<ErrorReport[]>

getDashboardURL(executionId: string): string
exportMetrics(executionId: string, format: 'json' | 'prometheus'): Promise<string>
}

Version : 1.0.0