//#region src/services/workflowLaunchCommand/index.d.ts /** * The `/workflow-launch` line, parsed. * * WHY A VERB AT ALL: * A browser can only send a session a prompt frame, so every cockpit action * that has to run inside the session travels as a slash line, the way the * agent catalog sends `/run`. The workflow tools answer to the agent, not to a * page, and the leader board answers to a keyboard, so neither of them can be * what the launch dialog sends. * * THE SHAPE: * /workflow-launch [key=value ...] [prompt words] * * Key-value pairs come first and stop at the first token that is not one, so * everything after them is the prompt exactly as it was typed, including any * `=` inside it. `runner` is the one reserved key; the rest are the workflow's * own `workflow_dispatch` inputs. Values may be double quoted to hold spaces. */ export interface ParsedWorkflowLaunch { /** The workflow's name or its path, as typed; resolution belongs to the caller. */ workflow: string; runner?: string; inputs: Record; prompt?: string; } export interface WorkflowLaunchParseFailure { error: string; } export declare function parseWorkflowLaunchCommand(args: string): ParsedWorkflowLaunch | WorkflowLaunchParseFailure; /** What a workflow declares, as much of it as a launch has to satisfy. */ export interface LaunchRequirements { triggers: readonly string[]; inputs: readonly { name: string; required?: boolean; options?: readonly string[]; }[]; /** Absent means the workflow names no runner map, so any runner will do. */ runners?: readonly string[]; } /** * Everything wrong with a launch, before it is started. * * Checked here rather than left to the engine because the failure would * otherwise be a run that starts and then waits forever for terminal input, or * one that dies on a runner its steps never declared. Both read as the launch * having worked. */ export declare function validateWorkflowLaunch(requirements: LaunchRequirements, parsed: Pick): string[]; //#endregion //# sourceMappingURL=index.d.cts.map