@xec-sh/cli
Version:
Xec: The Universal Shell for TypeScript
48 lines (47 loc) • 1.77 kB
TypeScript
import { EventEmitter } from 'events';
import { ConfigurationManager } from './configuration-manager.js';
import { TaskExecutionOptions } from './task-executor.js';
import type { TaskConfig, TaskResult, TaskParameter, TaskDefinition } from './types.js';
export interface TaskManagerOptions {
configManager: ConfigurationManager;
debug?: boolean;
dryRun?: boolean;
defaultTimeout?: number;
}
export interface TaskInfo {
name: string;
description?: string;
params?: TaskParameter[];
isPrivate?: boolean;
hasSteps?: boolean;
hasCommand?: boolean;
hasScript?: boolean;
target?: string;
targets?: string[];
}
export declare class TaskManager extends EventEmitter {
private options;
private parser;
private executor;
private configManager;
private interpolator;
private targetResolver;
private parsedTasks;
private config;
constructor(options: TaskManagerOptions);
load(): Promise<void>;
list(): Promise<TaskInfo[]>;
get(taskName: string): Promise<TaskDefinition | null>;
exists(taskName: string): Promise<boolean>;
run(taskName: string, params?: Record<string, any>, options?: TaskExecutionOptions): Promise<TaskResult>;
runOnTarget(taskName: string, target: string, params?: Record<string, any>, options?: TaskExecutionOptions): Promise<TaskResult>;
create(taskName: string, config: TaskConfig): Promise<void>;
update(taskName: string, config: TaskConfig): Promise<void>;
delete(taskName: string): Promise<void>;
explain(taskName: string, params?: Record<string, any>): Promise<string[]>;
private applyParameterDefaults;
private validateParameters;
private validateParameterType;
private ensureLoaded;
clearCache(): void;
}