import { type CopilotSanitizationOptions, sanitizeForCopilot, } from '@/lib/workflows/sanitization/json-sanitizer' type CopilotWorkflowState = { blocks?: Record edges?: any[] loops?: Record parallels?: Record } export function formatWorkflowStateForCopilot( state: CopilotWorkflowState, options?: CopilotSanitizationOptions ): string { const workflowState = { blocks: state.blocks || {}, edges: state.edges || [], loops: state.loops || {}, parallels: state.parallels || {}, } const sanitized = sanitizeForCopilot(workflowState, options) return JSON.stringify(sanitized, null, 2) } export function formatNormalizedWorkflowForCopilot( normalized: CopilotWorkflowState | null | undefined, options?: CopilotSanitizationOptions ): string | null { if (!normalized) return null return formatWorkflowStateForCopilot(normalized, options) } export function normalizeWorkflowName(name?: string | null): string { return String(name || '') .trim() .toLowerCase() } export function extractWorkflowNames(workflows: Array<{ name?: string | null }>): string[] { return workflows .map((workflow) => (typeof workflow?.name === 'string' ? workflow.name : null)) .filter((name): name is string => Boolean(name)) }