Drop in a screenshot and convert it to clean code (HTML/Tailwind/React/Vue)
263 matches across 9 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | design-docs/commits-and-variants.md | 120 | async def process_variant_completion(index: int, task: asyncio.Task): |
| LOW | frontend/src/components/settings/GenerationSettings.tsx | 33 | function setSelectedDesignSystemId(id: string | null) { |
| LOW | frontend/src/components/agent/AgentActivity.tsx | 77 | function formatVariantWallClockDuration( |
| LOW | …tend/src/components/unified-input/UnifiedInputPane.tsx | 47 | function setSelectedDesignSystemId(id: string | null) { |
| LOW | frontend/src/components/preview/download.ts | 14 | function filenameFromContentDisposition(contentDisposition: string | null) { |
| LOW | frontend/src/lib/design-systems.ts | 46 | export function createHttpDesignSystemsRequest( |
| LOW | frontend/src/lib/design-systems.ts | 67 | export function createDesignSystemsClient( |
| LOW | frontend/src/lib/prompt-history.ts | 65 | export function resolveAssetIdsToDataUrls( |
| LOW | frontend/src/lib/prompt-history.ts | 100 | export function buildAssistantHistoryMessage( |
| LOW | backend/llm.py | 119 | def get_openai_reasoning_effort(model: Llm) -> str | None: |
| LOW | backend/video/utils.py | 21 | def get_video_bytes_and_mime_type(video_data_url: str) -> tuple[bytes, str]: |
| LOW | backend/evals/runner.py | 27 | def get_eval_output_subfolder(stack: Stack, model: str) -> str: |
| LOW | backend/tests/test_status_broadcast.py | 15 | async def test_video_update_broadcasts_two_variants() -> None: |
| LOW | backend/tests/test_status_broadcast.py | 67 | async def test_image_update_broadcasts_two_variants() -> None: |
| LOW | backend/tests/test_screenshot.py | 8 | def test_url_without_protocol(self): |
| LOW | backend/tests/test_screenshot.py | 14 | def test_url_with_http_protocol(self): |
| LOW | backend/tests/test_screenshot.py | 19 | def test_url_with_https_protocol(self): |
| LOW | backend/tests/test_screenshot.py | 24 | def test_url_with_path_and_params(self): |
| LOW | backend/tests/test_design_systems.py | 18 | async def test_design_system_crud_persists_to_backend_file( |
| LOW | backend/tests/test_openai_input_compare.py | 9 | def test_compare_openai_inputs_returns_none_for_identical_inputs() -> None: |
| LOW | backend/tests/test_openai_input_compare.py | 26 | def test_compare_openai_inputs_finds_first_different_block_and_field() -> None: |
| LOW | backend/tests/test_openai_input_compare.py | 70 | def test_compare_openai_inputs_accepts_raw_input_arrays() -> None: |
| LOW | backend/tests/test_request_parsing.py | 4 | def test_parse_prompt_content_with_valid_data() -> None: |
| LOW | backend/tests/test_request_parsing.py | 20 | def test_parse_prompt_content_filters_invalid_media_types() -> None: |
| LOW | backend/tests/test_request_parsing.py | 36 | def test_parse_prompt_content_defaults_for_invalid_payload() -> None: |
| LOW | backend/tests/test_request_parsing.py | 42 | def test_parse_prompt_history_with_valid_entries() -> None: |
| LOW | backend/tests/test_request_parsing.py | 76 | def test_parse_prompt_history_filters_invalid_items() -> None: |
| LOW | backend/tests/test_request_parsing.py | 102 | def test_parse_prompt_history_defaults_for_invalid_payload() -> None: |
| LOW | backend/tests/test_batching.py | 12 | async def test_process_tasks_batches_replicate_calls( |
| LOW | backend/tests/test_batching.py | 39 | async def test_remove_background_batches_calls( |
| LOW | backend/tests/test_prompts.py | 94 | def test_plan_create_uses_create_from_input(self) -> None: |
| LOW | backend/tests/test_prompts.py | 105 | async def test_create_prompt_includes_design_system(self) -> None: |
| LOW | backend/tests/test_prompts.py | 133 | def test_plan_update_with_history_uses_history_strategy(self) -> None: |
| LOW | backend/tests/test_prompts.py | 143 | def test_plan_update_without_history_uses_file_snapshot_strategy(self) -> None: |
| LOW | backend/tests/test_prompts.py | 154 | async def test_image_mode_create_single_image(self) -> None: |
| LOW | backend/tests/test_prompts.py | 203 | async def test_image_mode_create_with_image_generation_disabled(self) -> None: |
| LOW | backend/tests/test_prompts.py | 240 | async def test_image_mode_update_with_history(self) -> None: |
| LOW | backend/tests/test_prompts.py | 299 | async def test_update_history_with_image_generation_disabled(self) -> None: |
| LOW | backend/tests/test_prompts.py | 325 | async def test_text_mode_create_generation(self) -> None: |
| LOW | backend/tests/test_prompts.py | 368 | async def test_text_mode_update_with_history(self) -> None: |
| LOW | backend/tests/test_prompts.py | 435 | async def test_video_mode_basic_prompt_creation(self) -> None: |
| LOW | backend/tests/test_prompts.py | 489 | async def test_create_raises_on_unsupported_input_mode(self) -> None: |
| LOW | backend/tests/test_prompts.py | 506 | async def test_image_mode_update_with_single_image_in_history(self) -> None: |
| LOW | backend/tests/test_prompts.py | 576 | async def test_image_mode_update_with_multiple_images_in_history(self) -> None: |
| LOW | backend/tests/test_prompts.py | 654 | async def test_update_with_empty_images_arrays(self) -> None: |
| LOW | backend/tests/test_prompts.py | 711 | async def test_update_bootstraps_from_file_state_when_history_is_empty(self) -> None: |
| LOW | backend/tests/test_prompts.py | 779 | async def test_update_requires_history_or_file_state(self) -> None: |
| LOW | backend/tests/test_prompts.py | 790 | async def test_update_history_requires_user_message(self) -> None: |
| LOW | backend/tests/test_agent_tool_runtime.py | 8 | def test_edit_file_returns_structured_result_with_diff() -> None: |
| LOW | backend/tests/test_agent_tool_runtime.py | 40 | async def test_execute_edit_file_uses_updated_result_shape() -> None: |
| LOW | backend/tests/test_image_generation_replicate.py | 6 | def test_extract_output_url_from_string() -> None: |
| LOW | backend/tests/test_image_generation_replicate.py | 13 | def test_extract_output_url_from_dict() -> None: |
| LOW | backend/tests/test_image_generation_replicate.py | 20 | def test_extract_output_url_from_list() -> None: |
| LOW | backend/tests/test_image_generation_replicate.py | 27 | def test_extract_output_url_from_list_item_dict() -> None: |
| LOW | backend/tests/test_image_generation_replicate.py | 36 | def test_extract_output_url_invalid_raises() -> None: |
| LOW | backend/tests/test_image_generation_replicate.py | 42 | async def test_call_replicate_uses_flux_model(monkeypatch: pytest.MonkeyPatch) -> None: |
| LOW | backend/tests/test_image_generation_replicate.py | 45 | async def fake_call_replicate_model( |
| LOW | backend/tests/test_image_generation_replicate.py | 63 | async def test_remove_background_uses_version_and_normalizes_output( |
| LOW | backend/tests/test_image_generation_replicate.py | 68 | async def fake_call_replicate_version( |
| LOW | backend/tests/test_openai_reasoning_parser.py | 12 | async def test_reasoning_summary_part_skipped_after_summary_delta() -> None: |
| 94 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | backend/tests/test_token_usage.py | 41 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 43 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 106 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 108 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 276 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 278 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 12 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 14 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 168 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 170 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 228 | # --------------------------------------------------------------------------- |
| MEDIUM | backend/tests/test_token_usage.py | 230 | # --------------------------------------------------------------------------- |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | backend/video/__init__.py | 1 | |
| LOW | backend/video/__init__.py | 1 | |
| LOW | backend/evals/core.py | 11 | |
| LOW | backend/image_generation/core.py | 1 | |
| LOW | backend/image_generation/core.py | 1 | |
| LOW | backend/image_generation/core.py | 1 | |
| LOW | backend/agent/tools/__init__.py | 1 | |
| LOW | backend/agent/tools/__init__.py | 2 | |
| LOW | backend/agent/tools/__init__.py | 2 | |
| LOW | backend/agent/tools/__init__.py | 2 | |
| LOW | backend/agent/tools/__init__.py | 7 | |
| LOW | backend/agent/tools/__init__.py | 7 | |
| LOW | backend/agent/tools/__init__.py | 8 | |
| LOW | backend/agent/tools/__init__.py | 8 | |
| LOW | backend/agent/tools/__init__.py | 9 | |
| LOW | backend/agent/tools/__init__.py | 9 | |
| LOW | backend/agent/tools/__init__.py | 9 | |
| LOW | backend/agent/tools/runtime.py | 4 | |
| LOW | backend/agent/providers/__init__.py | 1 | |
| LOW | backend/agent/providers/__init__.py | 1 | |
| LOW | backend/agent/providers/__init__.py | 2 | |
| LOW | backend/agent/providers/__init__.py | 2 | |
| LOW | backend/agent/providers/__init__.py | 2 | |
| LOW | backend/agent/providers/__init__.py | 2 | |
| LOW | backend/agent/providers/__init__.py | 2 | |
| LOW | backend/agent/providers/__init__.py | 9 | |
| LOW | backend/agent/providers/__init__.py | 10 | |
| LOW | backend/agent/providers/__init__.py | 10 | |
| LOW | backend/agent/providers/__init__.py | 11 | |
| LOW | backend/agent/providers/__init__.py | 11 | |
| LOW | backend/agent/providers/__init__.py | 11 | |
| LOW | backend/agent/providers/types.py | 1 | |
| LOW | backend/agent/providers/types.py | 1 | |
| LOW | backend/agent/providers/types.py | 1 | |
| LOW | backend/agent/providers/token_usage.py | 1 | |
| LOW | backend/agent/providers/anthropic/__init__.py | 1 | |
| LOW | backend/agent/providers/anthropic/__init__.py | 1 | |
| LOW | backend/agent/providers/anthropic/__init__.py | 1 | |
| LOW | backend/prompts/__init__.py | 1 | |
| LOW | backend/prompts/update/__init__.py | 1 | |
| LOW | backend/prompts/update/__init__.py | 2 | |
| LOW | backend/routes/generate_code.py | 9 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | plan.md | 61 | except Exception as e: |
| LOW | backend/evals/runner.py | 89 | except Exception as e: |
| LOW | backend/evals/runner.py | 263 | except Exception as e_write: |
| LOW | backend/evals/runner.py | 294 | except Exception as e_as_completed: |
| LOW | backend/evals/runner.py | 329 | except Exception as e: |
| MEDIUM | backend/evals/runner.py | 330 | print(f"Error writing timing file {timing_file_path}: {e}") |
| LOW | backend/evals/runner.py | 339 | except Exception as e: |
| MEDIUM | backend/evals/runner.py | 340 | print(f"Error writing failed tasks log {failed_log_path}: {e}") |
| LOW | backend/image_generation/replicate.py | 79 | except Exception as exc: |
| LOW | backend/agent/tools/parsing.py | 73 | except Exception: |
| LOW | backend/agent/providers/gemini.py | 111 | except Exception: |
| LOW | backend/fs_logging/gemini_prompt_report.py | 100 | except Exception as e: |
| LOW | backend/fs_logging/openai_turn_inputs.py | 205 | except Exception as e: |
| MEDIUM | backend/routes/generate_code.py | 177 | print(f"Error (variant {variantIndex + 1}): {value}") |
| LOW | backend/routes/generate_code.py | 397 | except Exception: |
| LOW | backend/routes/generate_code.py | 481 | except Exception: |
| LOW | backend/routes/generate_code.py | 634 | except Exception as e: |
| MEDIUM | backend/routes/generate_code.py | 635 | print(f"Error in variant {index + 1}: {e}") |
| LOW | backend/routes/generate_code.py | 781 | except Exception as e: |
| LOW | backend/routes/evals.py | 47 | except Exception as e: |
| LOW | backend/routes/evals.py | 101 | except Exception as e: |
| LOW | backend/routes/evals.py | 381 | except Exception as e: |
| LOW | backend/routes/evals.py | 516 | except Exception as e: |
| LOW | backend/routes/export.py | 355 | except Exception as exc: |
| LOW | backend/routes/screenshot.py | 105 | except Exception as e: |
| LOW | backend/debug/DebugFileWriter.py | 26 | except Exception as e: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | backend/utils.py | 12 | |
| LOW | backend/utils.py | 39 | |
| LOW | backend/utils.py | 100 | |
| LOW | backend/utils.py | 172 | |
| LOW | backend/evals/runner.py | 110 | |
| LOW | backend/agent/engine.py | 149 | |
| LOW | backend/agent/providers/gemini.py | 117 | |
| LOW | backend/agent/providers/openai.py | 27 | |
| LOW | backend/agent/providers/openai.py | 78 | |
| LOW | backend/agent/providers/openai.py | 161 | |
| LOW | backend/agent/providers/openai.py | 81 | |
| LOW | backend/agent/providers/anthropic/provider.py | 171 | |
| LOW | backend/fs_logging/openai_input_formatting.py | 96 | |
| LOW | backend/routes/generate_code.py | 163 | |
| LOW | backend/routes/generate_code.py | 248 | |
| LOW | backend/routes/generate_code.py | 405 | |
| LOW | backend/routes/evals.py | 54 | |
| LOW | backend/routes/evals.py | 112 | |
| LOW | backend/routes/evals.py | 413 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | backend/routes/generate_code.py | 766 | # Check if all variants failed |
| LOW | backend/routes/screenshot.py | 20 | # Check if we have a scheme |
| LOW | backend/routes/screenshot.py | 28 | # Check if this might be a domain with port (like example.com:8080) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | backend/tests/test_prompt_summary.py | 17 | {"role": "system", "content": "lorem ipsum dolor sit amet"}, |
| LOW | backend/tests/test_prompt_summary.py | 17 | {"role": "system", "content": "lorem ipsum dolor sit amet"}, |
| LOW | backend/tests/test_prompt_summary.py | 35 | assert "SYSTEM: lorem ipsum" in summary |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | frontend/src/index.css | 141 | 90deg, |
| LOW | backend/.pre-commit-config.yaml | 1 | # See https://pre-commit.com for more information |
| LOW | backend/.pre-commit-config.yaml | 21 | # # entry: poetry run --directory backend pyright |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docker-compose.yml | 14 | #- BACKEND_PORT=7001 # if you change the port, make sure to also change the VITE_WS_BACKEND_URL at frontend/.env |