(input: string)
| 76 | } |
| 77 | |
| 78 | function fallbackTitle(input: string): string { |
| 79 | const cleaned = input.replace(/\s+/g, " ").trim() |
| 80 | return cleaned.length <= 50 ? cleaned : `${cleaned.slice(0, 50).trim()}...` |
| 81 | } |
| 82 | |
| 83 | function executionIdForTask(taskId: string): string { |
| 84 | return `headless-${taskId}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}` |