@workflow-manager/runner
Version:
CLI runner for in-memory and markdown workflow orchestration using ATEP-like envelopes
40 lines (39 loc) • 1.41 kB
JavaScript
export const DEFAULT_TASK_ADAPTER = "pi-agent";
export const SUPPORTED_ADAPTERS = [
"pi-agent",
"mock",
"opencode",
"codex",
"claude-code",
"kimi",
"gemini",
"qwen",
"acp",
];
export function resolveTaskAdapter(adapter) {
return adapter ?? DEFAULT_TASK_ADAPTER;
}
/**
* Resolves the adapter and payload the engine will use for a step's agent validator
* (validation.mode "agent"), or null when the step has no agent validator.
* The validator inherits the step's adapter when validation.agent.adapterKey is not
* set, and inherits an explicit useRealAdapter: false opt-out from the step payload
* unless the validator payload sets its own useRealAdapter — so a step opted out to
* mock never silently spawns a real agent to validate itself.
*/
export function resolveValidatorAgentSpec(step) {
if (step.validation?.mode !== "agent") {
return null;
}
const agentSpec = step.validation.agent ?? {};
const adapterKey = agentSpec.adapterKey ?? resolveTaskAdapter(step.taskSpec?.adapterKey);
const payload = { ...(agentSpec.payload ?? {}) };
const stepPayload = step.taskSpec?.payload;
if (!("useRealAdapter" in payload) &&
stepPayload !== null &&
typeof stepPayload === "object" &&
stepPayload.useRealAdapter === false) {
payload.useRealAdapter = false;
}
return { adapterKey, payload };
}