UNPKG

forest-cli

Version:

The Lumberjacks' toolbelt is the Forest CLI which makes easy to manage your back office application directly from the terminal.

81 lines 2.67 kB
/** * Compiles a declarative workflow step-graph into the BPMN XML the server's * workflow engine accepts. A workflow's *elements* (steps) live entirely in * this BPMN artifact — there is no per-element patch path; the file is uploaded * whole (presigned S3) and linked via `bpmnAwsS3Identifier`. This is exactly * what the Forest UI does (verified against a captured request trace). * * The parser reads structure + prompt + execution flags; per-field args and * action/MCP wiring are resolved at runtime. The spec sets the shape. */ /** Error in a workflow `steps` spec (authoring-time, before anything is sent). */ export declare class WorkflowSpecError extends Error { constructor(message: string); } /** Step types → BPMN element + `forest:alternative` (task subtype). */ declare const STEP_TYPES: { readonly action: { readonly alternative: "trigger-action"; readonly element: "serviceTask"; }; readonly condition: { readonly element: "exclusiveGateway"; }; readonly end: { readonly element: "endEvent"; }; readonly escalation: { readonly element: "intermediateThrowEvent"; }; readonly guidance: { readonly alternative: "guideline"; readonly element: "userTask"; }; readonly 'load-related': { readonly alternative: "load-related-record"; readonly element: "serviceTask"; }; readonly mcp: { readonly alternative: "mcp-server"; readonly element: "serviceTask"; }; readonly read: { readonly alternative: "get-data"; readonly element: "serviceTask"; }; readonly update: { readonly alternative: "update-data"; readonly element: "serviceTask"; }; }; export type StepType = keyof typeof STEP_TYPES; export type BranchSpec = { answer: string; color?: string; next: string; }; export type StepSpec = { auto?: boolean; autoComplete?: boolean; branches?: BranchSpec[]; id: string; inboxId?: string; mcpServerId?: string; next?: string; prompt?: string; title?: string; type: StepType; }; export type WorkflowSpec = { collection: string; name: string; segments?: string[]; start?: string; steps: StepSpec[]; }; /** Validate a (possibly partial) spec object and normalize it (entry step, segments). */ export declare function validateWorkflowSpec(spec: Partial<WorkflowSpec>): WorkflowSpec; /** Compile a workflow `steps` spec into BPMN XML (validates first). */ export declare function compileWorkflowToBpmn(input: Partial<WorkflowSpec>): string; export {}; //# sourceMappingURL=workflow-bpmn.d.ts.map