/** * Full workflow configuration as stored in the database. * Includes all sub-entities (roles, consumers). */ export interface LTWorkflowConfig { workflow_type: string; invocable: boolean; task_queue: string | null; default_role: string; description: string | null; roles: string[]; invocation_roles: string[]; consumes: string[]; tool_tags?: string[]; envelope_schema?: Record | null; resolver_schema?: Record | null; cron_schedule?: string | null; /** Bot external_id to run as. When set, workflows use this bot's identity. */ execute_as?: string | null; } /** * Resolved config used by interceptor/executeLT at runtime. * Flat structure with camelCase keys — no DB row noise. */ export interface LTResolvedConfig { invocable: boolean; taskQueue: string | null; role: string; roles: string[]; invocationRoles: string[]; consumes: string[]; toolTags: string[]; envelopeSchema: Record | null; resolverSchema: Record | null; cronSchedule: string | null; executeAs: string | null; } /** * Provider data returned by ltGetProviderData. * Keyed by workflow type name from the `consumes` array. */ export interface LTProviderData { [providerName: string]: { data: Record; completedAt: string; workflowType: string; }; }