Files
pi-subagents/src/runner.ts

22 lines
664 B
TypeScript

import type { RunnerMode } from "./config.ts";
import type { SubagentRunResult } from "./schema.ts";
export interface RunSingleTaskInput {
cwd: string;
meta: Record<string, unknown>;
onEvent?: (event: any) => void;
}
export type RunSingleTask = (input: RunSingleTaskInput) => Promise<SubagentRunResult>;
export function createConfiguredRunSingleTask(deps: {
loadConfig: (cwd: string) => { runner: RunnerMode };
processRunner: RunSingleTask;
tmuxRunner: RunSingleTask;
}): RunSingleTask {
return (input) => {
const config = deps.loadConfig(input.cwd);
return (config.runner === "tmux" ? deps.tmuxRunner : deps.processRunner)(input);
};
}