overmind-mcp
Version:
Orchestrateur universel agents IA multi-modeles via MCP. Inclut le protocole 'Custom-Nickname' pour identifier vos agents avec des surnoms originaux (The Chaos Prophet, Shadow Sniper, etc.), l'isolation mémoire (Private Memory Context) et le support pour
135 lines • 4.74 kB
TypeScript
/**
* KanbanAdapter — Thin wrapper around `hermes kanban` CLI.
*
* ╔════════════════════════════════════════════════════════════════════════╗
* ║ PURPOSE (v3.0 — Refactored) ║
* ║ ║
* ║ Replaces the old swarm.ts (368 lines) and the parallel orchestration ║
* ║ in dispatcher.ts with native Hermes Kanban tasks. ║
* ║ ║
* ║ Kanban = durable SQLite-backed task board shared across all Hermes ║
* ║ profiles. The dispatcher loop (60s default) atomically claims ready ║
* ║ tasks and spawns the assigned profile as its own OS process. ║
* ║ ║
* ║ YOLO CONFIG (no human-in-the-loop): ║
* ║ - autoReclaim on crash/timeout ║
* ║ - maxRetries: 5 (vs default 2) before block ║
* ║ - autoUnblock via admin API (no manual human intervention) ║
* ║ - dispatcherTick: 30s (vs default 60s — faster pickup) ║
* ╚════════════════════════════════════════════════════════════════════════╝
*/
export declare const YOLO_CONFIG: {
readonly autoReclaim: true;
readonly maxRetries: 5;
readonly autoUnblock: true;
readonly reclaimStaleMs: 900000;
readonly dispatcherTickSeconds: 30;
readonly goalModeMaxTurns: 20;
};
export interface CreateTaskOptions {
title: string;
assignee: string;
body?: string;
tenant?: string;
parents?: string[];
priority?: number;
workspace?: 'scratch' | `dir:${string}` | 'worktree';
idempotencyKey?: string;
maxRuntime?: string;
goalMode?: boolean;
goalMaxTurns?: number;
skills?: string[];
}
export interface TaskStatus {
id: string;
title: string;
assignee: string;
status: string;
body?: string;
tenant?: string;
workspace?: string;
}
export interface TaskResult {
id: string;
status: string;
summary?: string;
metadata?: Record<string, unknown>;
error?: string;
durationMs?: number;
}
export interface TaskSummary {
id: string;
title: string;
assignee: string;
status: string;
tenant?: string;
}
export declare class KanbanAdapter {
private board?;
constructor(board?: string);
private get boardArgs();
/**
* Initialize the kanban board (idempotent).
*/
init(): Promise<void>;
/**
* Force a dispatcher tick immediately (don't wait for the 60s loop).
*/
nudge(): Promise<void>;
/**
* Create a single task.
*/
createTask(opts: CreateTaskOptions): Promise<{
taskId: string;
}>;
/**
* Create multiple independent tasks in parallel (fan-out).
*/
createParallelTasks(tasks: CreateTaskOptions[]): Promise<string[]>;
/**
* Create a pipeline (sequential chain: task[0] → task[1] → task[2]...).
* Each task has the previous one as parent.
*/
createPipeline(tasks: CreateTaskOptions[]): Promise<string[]>;
/**
* Get the status of a task.
*/
getStatus(taskId: string): Promise<TaskStatus>;
/**
* Wait for a task to complete (polling loop).
* YOLO: auto-reclaim on stale claims.
*/
wait(taskId: string, timeoutMs?: number): Promise<TaskResult>;
/**
* Reclaim a task (abort running worker, reset to ready).
*/
reclaim(taskId: string): Promise<void>;
/**
* Unblock a blocked task.
*/
unblock(taskId: string): Promise<void>;
/**
* Archive a task.
*/
archive(taskId: string): Promise<void>;
/**
* List tasks with optional filter.
*/
listTasks(filter?: {
status?: string;
assignee?: string;
tenant?: string;
}): Promise<TaskSummary[]>;
/**
* Add a comment to a task (inter-agent protocol).
*/
comment(taskId: string, body: string): Promise<void>;
/**
* Create a board for a specific project/workstream.
*/
createBoard(slug: string, name: string, opts?: {
description?: string;
switch?: boolean;
}): Promise<void>;
}
//# sourceMappingURL=KanbanAdapter.d.ts.map