()
| 436 | }; |
| 437 | |
| 438 | const syncAnalysisControls = () => { |
| 439 | if (visionModeEl) { |
| 440 | visionModeEl.disabled = !visionConfigured; |
| 441 | visionModeEl.textContent = `Vision: ${visionConfigured ? modeLabel(analysisOverrides.vision) : 'Disabled'}`; |
| 442 | visionModeEl.title = visionConfigured |
| 443 | ? 'Cycle Vision between Auto, On, and Off' |
| 444 | : 'Vision is disabled in AI settings'; |
| 445 | } |
| 446 | if (ocrModeEl) { |
| 447 | ocrModeEl.textContent = `OCR: ${modeLabel(analysisOverrides.ocr)}`; |
| 448 | ocrModeEl.title = 'Cycle OCR between Auto, On, and Off'; |
| 449 | } |
| 450 | if (analysisSummaryEl) { |
| 451 | const parts = []; |
| 452 | parts.push(`Vision ${visionConfigured ? modeLabel(analysisOverrides.vision).toLowerCase() : 'disabled'}`); |
| 453 | parts.push(`OCR ${modeLabel(analysisOverrides.ocr).toLowerCase()}`); |
| 454 | analysisSummaryEl.textContent = `Analysis: ${parts.join(' | ')}`; |
| 455 | } |
| 456 | }; |
| 457 | |
| 458 | const buildAnalysisPayload = () => { |
| 459 | const payload = { |
no test coverage detected