@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio
66 lines (65 loc) • 2.45 kB
TypeScript
/**
* TaskManager — Main orchestrator for scheduled and self-running tasks.
*
* Manages the full task lifecycle: create, schedule, execute, pause, resume, delete.
* Auto-selects TaskStore and TaskBackend based on config.
*
* Usage:
* const neurolink = new NeuroLink({ tasks: { backend: "bullmq" } });
* await neurolink.tasks.create({ name: "monitor", prompt: "...", schedule: { type: "interval", every: 60000 } });
*/
import { type NeuroLinkExecutable, type Task, type TaskDefinition, type TaskManagerConfig, type TaskRunResult, type TaskStatus } from "../types/index.js";
export declare class TaskManager {
private neurolink;
private config;
private store;
private backend;
private executor;
private initialized;
private initPromise;
/** In-memory callback registry (not serializable to store) */
private callbacks;
/** Emitter reference — set by NeuroLink on integration */
private emitter?;
constructor(neurolink: NeuroLinkExecutable, config?: TaskManagerConfig);
/** Set the event emitter (called by NeuroLink during integration) */
setEmitter(emitter: {
emit(event: string, ...args: unknown[]): boolean;
}): void;
private ensureInitialized;
private doInitialize;
private getStore;
private getBackend;
private getExecutor;
create(definition: TaskDefinition): Promise<Task>;
get(taskId: string): Promise<Task | null>;
list(filter?: {
status?: TaskStatus;
}): Promise<Task[]>;
update(taskId: string, updates: Partial<TaskDefinition>): Promise<Task>;
/** Run a task immediately (outside of its schedule) */
run(taskId: string): Promise<TaskRunResult>;
pause(taskId: string): Promise<Task>;
resume(taskId: string): Promise<Task>;
delete(taskId: string): Promise<void>;
runs(taskId: string, options?: {
limit?: number;
status?: string;
}): Promise<TaskRunResult[]>;
shutdown(): Promise<void>;
/** Check if the backend is healthy */
isHealthy(): Promise<boolean>;
private restoreScheduledTask;
private rollbackTaskUpdate;
/**
* Called by the backend on each scheduled tick.
* Executes the task, updates state, fires callbacks/events.
*/
private onTaskTick;
/**
* Re-schedule all active tasks from store.
* Called on initialization to handle process restarts.
*/
private rescheduleActiveTasks;
private emit;
}