22 lines
664 B
TypeScript
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);
|
|
};
|
|
}
|