"ViMax: Agentic Video Generation (Director, Screenwriter, Producer, and Video Generator All-in-One)"
This report summarizes scanner evidence for HKUDS/ViMax, a Python project with 12,610 GitHub stars. SynthScan examined 30,123 lines of code across 172 source files, recording 495 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 22.1 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 291 finding(s).
Are imports declared and package/API names verified? 159 finding(s).
Are wrappers, guards, and repeated structures necessary? 296 finding(s).
Which changes need focused human review? 495 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 495 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/src/cli.tsx | 329 | function scheduleResponseIdleClear() { | CODE |
| LOW | tools/image_generator_openrouter_api.py | 35 | def _is_retryable_image_error(exc: BaseException) -> bool: | CODE |
| LOW | tools/image_generator_openrouter_api.py | 151 | def _prompt_with_landscape_requirement(prompt: str, aspect_ratio: str | None) -> str: | CODE |
| LOW | tools/image_orientation.py | 9 | def landscape_guard_requested(*, size: Any = None, aspect_ratio: Any = None, enforce_landscape: Any = True, allow_portra | CODE |
| LOW | tools/video_generator_doubao_seedance_yunwu_api.py | 29 | async def create_video_generation_task( | CODE |
| LOW | tools/video_generator_doubao_seedance_yunwu_api.py | 132 | async def query_video_generation_task( | CODE |
| LOW | tools/video_generator_omni_yunwu_api.py | 90 | async def create_video_generation_task( | CODE |
| LOW | tools/video_generator_omni_yunwu_api.py | 156 | async def query_video_generation_task(self, task_id: str, model: str) -> str: | CODE |
| LOW | web/src/artifactPresentation.ts | 137 | export function extractStoryboardPreviews(document: JsonValue, sourcePath: string): StoryboardPreview[] { | CODE |
| LOW | web/src/artifactPresentation.ts | 163 | export function deriveStoryboardReadiness(artifacts: Artifact[], storyboardCount: number): StoryboardReadiness { | CODE |
| LOW | tests/test_image_selection.py | 73 | async def test_candidates_are_concurrent_and_selected_result_is_persisted(self): | CODE |
| LOW | tests/test_image_selection.py | 103 | async def test_single_candidate_disables_vlm(self): | CODE |
| LOW | tests/test_image_selection.py | 111 | async def test_failed_or_portrait_candidate_is_excluded(self): | CODE |
| LOW⚡ | tests/test_image_selection.py | 124 | async def test_filtered_indices_map_back_to_original_candidate(self): | CODE |
| LOW⚡ | tests/test_image_selection.py | 133 | async def test_all_candidate_failures_remain_errors(self): | CODE |
| LOW⚡ | tests/test_image_selection.py | 142 | async def test_selection_failure_keeps_candidates_and_resume_reuses_them(self): | CODE |
| LOW | tests/test_image_selection.py | 160 | async def test_changed_prompt_does_not_reuse_old_candidates(self): | CODE |
| LOW | tests/test_image_selection.py | 169 | async def test_cancellation_stops_candidate_tasks_and_persists_status(self): | CODE |
| LOW | tests/test_image_selection.py | 183 | async def test_first_and_last_frame_candidates_are_separate_and_cached(self): | CODE |
| LOW | tests/test_image_selection.py | 201 | async def test_camera_first_frame_uses_candidate_selection(self): | CODE |
| LOW | tests/test_image_selection.py | 218 | async def test_reuses_configured_model_and_sends_reference_and_candidates(self): | CODE |
| LOW | tests/test_image_selection.py | 234 | async def test_schema_wrapped_response_parses_without_resampling(self): | CODE |
| LOW | tests/test_image_selection.py | 242 | async def test_invalid_index_fails_after_bounded_retries(self): | CODE |
| LOW | tests/test_image_selection.py | 253 | async def test_idea_scenes_receive_count_and_scoped_progress(self): | CODE |
| LOW | tests/test_image_selection.py | 279 | async def test_adapter_reads_workspace_count_and_rejects_invalid_count(self): | CODE |
| LOW | tests/test_image_selection.py | 336 | def test_pipeline_yaml_wires_count_to_both_workflows(self): | CODE |
| LOW | tests/test_image_selection.py | 346 | def test_malformed_selection_section_is_rejected(self): | CODE |
| LOW | tests/test_novel2video_adapter.py | 24 | async def compress_single_novel_chunk(self, semaphore, index, novel_chunk): | CODE |
| LOW | tests/test_novel2video_adapter.py | 58 | async def merge_characters_across_scenes_in_event(self, event_idx, scenes): | CODE |
| LOW | tests/test_novel2video_adapter.py | 61 | def merge_characters_to_existing_characters_in_novel(self, event_idx, existing_characters_in_novel, characters_in_ev | CODE |
| LOW | tests/test_novel2video_adapter.py | 111 | async def test_merge_event_characters_uses_scene_character_idx(self): | CODE |
| LOW | tests/test_novel2video_adapter.py | 126 | async def test_run_planning_step_suppresses_stdout_stderr_and_warnings(self): | CODE |
| LOW | tests/test_novel2video_adapter.py | 142 | async def test_plan_text_artifacts_writes_structured_text_and_progress(self): | CODE |
| LOW | tests/test_novel2video_adapter.py | 192 | def write_minimal_novel_artifacts(root: Path): | CODE |
| LOW | tests/test_novel2video_adapter.py | 218 | async def test_novel_initializes_named_empty_active_session(self): | CODE |
| LOW | tests/test_novel2video_adapter.py | 231 | async def test_missing_rag_config_returns_tool_error_and_marks_session_error(self): | CODE |
| LOW | tests/test_generator_protocol.py | 24 | def test_generate_single_video_accepts_arbitrary_kwargs(self): | CODE |
| LOW | tests/test_wrong_output_guards.py | 39 | def test_out_of_order_camera_indices_group_correctly(self): | CODE |
| LOW | tests/test_wrong_output_guards.py | 49 | def test_priorities_are_shot_indices_not_camera_indices(self): | CODE |
| LOW | tests/test_wrong_output_guards.py | 67 | def test_two_pipelines_do_not_share_events(self): | CODE |
| LOW | tests/test_wrong_output_guards.py | 78 | def test_no_class_level_mutable_event_dicts(self): | CODE |
| LOW | tests/test_wrong_output_guards.py | 87 | async def test_existing_new_camera_image_is_still_offered_to_selector(self): | CODE |
| LOW | tests/test_wrong_output_guards.py | 140 | def test_out_of_range_rejected(self): | CODE |
| LOW⚡ | tests/test_wrong_output_guards.py | 154 | def test_negative_index_rejected(self): | CODE |
| LOW⚡ | tests/test_wrong_output_guards.py | 158 | def test_out_of_range_rejected(self): | CODE |
| LOW⚡ | tests/test_wrong_output_guards.py | 164 | def test_clean_names_unchanged(self): | CODE |
| LOW⚡ | tests/test_wrong_output_guards.py | 168 | def test_unicode_names_preserved(self): | CODE |
| LOW⚡ | tests/test_wrong_output_guards.py | 171 | def test_path_separators_removed(self): | CODE |
| LOW⚡ | tests/test_wrong_output_guards.py | 175 | def test_traversal_neutralized(self): | CODE |
| LOW⚡ | tests/test_wrong_output_guards.py | 180 | def test_empty_becomes_placeholder(self): | CODE |
| LOW⚡ | tests/test_robustness.py | 51 | async def test_retries_rate_limit_then_succeeds(self): | CODE |
| LOW⚡ | tests/test_robustness.py | 58 | async def test_does_not_retry_auth_errors(self): | CODE |
| LOW⚡ | tests/test_robustness.py | 65 | async def test_gives_up_after_bounded_attempts(self): | CODE |
| LOW⚡ | tests/test_robustness.py | 73 | async def test_empty_choices_raises_clear_error(self): | CODE |
| LOW | tests/test_robustness.py | 86 | async def test_llm_failure_emits_error_and_persists_failed_turn(self): | CODE |
| LOW | tests/test_robustness.py | 104 | def test_corrupt_sessions_file_is_backed_up_not_silently_replaced(self): | CODE |
| LOW | tests/test_robustness.py | 115 | def test_save_is_atomic_and_leaves_no_temp_files(self): | CODE |
| LOW | tests/test_robustness.py | 122 | def test_concurrent_creates_do_not_lose_sessions(self): | CODE |
| LOW | tests/test_robustness.py | 153 | def test_every_retry_is_bounded_with_backoff(self): | CODE |
| LOW | tests/test_robustness.py | 201 | async def test_reranker_surfaces_http_error_without_retry(self): | CODE |
| 189 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main_agent.py | 1 | CODE | |
| LOW | tools/image_generator_openrouter_api.py | 1 | CODE | |
| LOW | tools/video_generator_openrouter_api.py | 2 | CODE | |
| LOW | tools/video_generator_veo_yunwu_api.py | 2 | CODE | |
| LOW | tools/image_response.py | 1 | CODE | |
| LOW | tools/__init__.py | 2 | CODE | |
| LOW | tools/__init__.py | 2 | CODE | |
| LOW | tools/__init__.py | 3 | CODE | |
| LOW | tools/__init__.py | 6 | CODE | |
| LOW | tools/__init__.py | 7 | CODE | |
| LOW | tools/__init__.py | 8 | CODE | |
| LOW | tools/__init__.py | 9 | CODE | |
| LOW | tools/__init__.py | 12 | CODE | |
| LOW | tools/__init__.py | 15 | CODE | |
| LOW | tools/__init__.py | 16 | CODE | |
| LOW | tools/__init__.py | 16 | CODE | |
| LOW | tools/__init__.py | 17 | CODE | |
| LOW | tools/__init__.py | 18 | CODE | |
| LOW | tools/__init__.py | 19 | CODE | |
| LOW | tools/image_orientation.py | 1 | CODE | |
| LOW | tests/test_image_selection.py | 8 | CODE | |
| LOW | tests/test_robustness.py | 11 | CODE | |
| LOW | tests/test_script2video_pipeline_guards.py | 5 | CODE | |
| LOW | tests/test_script2video_pipeline_guards.py | 5 | CODE | |
| LOW | tests/test_minimax_integration.py | 15 | CODE | |
| LOW | tests/test_agent_tools.py | 1 | CODE | |
| LOW | agents/reference_image_selector.py | 8 | CODE | |
| LOW | agents/scene_extractor.py | 1 | CODE | |
| LOW | agents/scene_extractor.py | 5 | CODE | |
| LOW | agents/scene_extractor.py | 5 | CODE | |
| LOW | agents/scene_extractor.py | 6 | CODE | |
| LOW | agents/scene_extractor.py | 6 | CODE | |
| LOW | agents/scene_extractor.py | 6 | CODE | |
| LOW | agents/scene_extractor.py | 6 | CODE | |
| LOW | agents/global_information_planner.py | 1 | CODE | |
| LOW | agents/global_information_planner.py | 3 | CODE | |
| LOW | agents/global_information_planner.py | 4 | CODE | |
| LOW | agents/global_information_planner.py | 4 | CODE | |
| LOW | agents/global_information_planner.py | 4 | CODE | |
| LOW | agents/global_information_planner.py | 9 | CODE | |
| LOW | agents/global_information_planner.py | 10 | CODE | |
| LOW | agents/event_extractor.py | 1 | CODE | |
| LOW | agents/event_extractor.py | 3 | CODE | |
| LOW | agents/event_extractor.py | 9 | CODE | |
| LOW | agents/event_extractor.py | 9 | CODE | |
| LOW | agents/character_portraits_generator.py | 1 | CODE | |
| LOW | agents/character_portraits_generator.py | 2 | CODE | |
| LOW | agents/character_portraits_generator.py | 3 | CODE | |
| LOW | agents/character_portraits_generator.py | 4 | CODE | |
| LOW | agents/character_portraits_generator.py | 5 | CODE | |
| LOW | agents/character_portraits_generator.py | 6 | CODE | |
| LOW | agents/character_portraits_generator.py | 7 | CODE | |
| LOW | agents/character_portraits_generator.py | 8 | CODE | |
| LOW | agents/character_portraits_generator.py | 8 | CODE | |
| LOW | agents/character_portraits_generator.py | 9 | CODE | |
| LOW | agents/character_portraits_generator.py | 9 | CODE | |
| LOW | agents/character_portraits_generator.py | 9 | CODE | |
| LOW | agents/character_portraits_generator.py | 11 | CODE | |
| LOW | agents/character_portraits_generator.py | 11 | CODE | |
| LOW | agents/character_extractor.py | 1 | CODE | |
| 81 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | readme.md | 244 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 244 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 249 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 249 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 254 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 254 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 321 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 321 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 327 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 327 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 332 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | readme.md | 332 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | README_ZH.md | 284 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | README_ZH.md | 284 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | README_ZH.md | 290 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | README_ZH.md | 290 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | README_ZH.md | 295 | api_key: <YOUR_API_KEY> | CODE |
| HIGH⚡ | README_ZH.md | 295 | api_key: <YOUR_API_KEY> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main_agent.py | 143 | except Exception as exc: | CODE |
| LOW | tools/image_generator_openrouter_api.py | 169 | except Exception as exc: | CODE |
| LOW | tools/video_generator_veo_yunwu_api.py | 121 | except Exception as e: | CODE |
| LOW | tools/video_generator_veo_yunwu_api.py | 152 | except Exception as e: | CODE |
| LOW | tools/video_generator_doubao_seedance_yunwu_api.py | 107 | except Exception as e: | CODE |
| LOW | tools/video_generator_doubao_seedance_yunwu_api.py | 162 | except Exception as e: | CODE |
| LOW | tools/video_generator_omni_yunwu_api.py | 124 | except Exception as e: | CODE |
| LOW | tools/video_generator_omni_yunwu_api.py | 171 | except Exception as e: | CODE |
| LOW | agents/reference_image_selector.py | 185 | except Exception as e: | CODE |
| LOW | agents/reference_image_selector.py | 222 | except Exception as e: | CODE |
| LOW | agents/script_enhancer.py | 119 | except Exception as e: | CODE |
| LOW | agents/script_planner.py | 430 | except Exception as e: | CODE |
| LOW | pipelines/script2video_pipeline.py | 172 | except Exception: | CODE |
| LOW | pipelines/script2video_pipeline.py | 610 | except Exception as exc: | CODE |
| LOW | pipelines/script2video_pipeline.py | 642 | except Exception as exc: | CODE |
| LOW | pipelines/idea2video_pipeline.py | 187 | except Exception as e: | CODE |
| LOW | pipelines/idea2video_pipeline.py | 203 | except Exception as e: | CODE |
| LOW | utils/video.py | 21 | except Exception as e: | CODE |
| MEDIUM | utils/video.py | 8 | def download_video(url, save_path): | CODE |
| LOW | utils/image.py | 24 | except Exception as e: | CODE |
| MEDIUM | utils/image.py | 12 | def download_image(url, save_path): | CODE |
| LOW | agent_runtime/context_compactor.py | 145 | except Exception: | CODE |
| LOW | agent_runtime/tools.py | 162 | except Exception as exc: | CODE |
| LOW | agent_runtime/vimax_adapters.py | 200 | except Exception as exc: | CODE |
| LOW | agent_runtime/vimax_adapters.py | 260 | except Exception as exc: | CODE |
| LOW | agent_runtime/vimax_adapters.py | 318 | except Exception as exc: | CODE |
| LOW | agent_runtime/vimax_adapters.py | 403 | except Exception as exc: | CODE |
| LOW⚡ | agent_runtime/vimax_adapters.py | 520 | except Exception as exc: | CODE |
| LOW | agent_runtime/vimax_adapters.py | 672 | except Exception: | CODE |
| LOW | agent_runtime/llm.py | 75 | except Exception as exc: | CODE |
| LOW | agent_runtime/loop.py | 72 | except Exception as exc: | CODE |
| LOW | agent_runtime/image_tools.py | 93 | except Exception as exc: | CODE |
| LOW | agent_runtime/image_tools.py | 135 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main_agent.py | 42 | CODE | |
| LOW | main_agent.py | 102 | CODE | |
| LOW | tests/test_image_selection.py | 279 | CODE | |
| LOW | tests/test_agent_config.py | 119 | CODE | |
| LOW | pipelines/script2video_pipeline.py | 332 | CODE | |
| LOW | pipelines/novel2movie_pipeline.py | 73 | CODE | |
| LOW | pipelines/novel2movie_pipeline.py | 479 | CODE | |
| LOW | pipelines/novel2movie_pipeline.py | 626 | CODE | |
| LOW | utils/rate_limiter.py | 39 | CODE | |
| LOW | agent_runtime/tools.py | 188 | CODE | |
| LOW | agent_runtime/tools.py | 198 | CODE | |
| LOW | agent_runtime/tools.py | 290 | CODE | |
| LOW | agent_runtime/vimax_adapters.py | 686 | CODE | |
| LOW | agent_runtime/loop.py | 43 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pipelines/novel2movie_pipeline.py | 486 | # Step 1: Compress the novel text | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 554 | # Step 2: Extract events from the compressed novel | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 598 | # Step 3: Extract relevant chunks for each event | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 685 | # Step 4: Extract scenes for each event, design the script for each scene | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 751 | # Step 5: Merge characters from scene-level to event-level, then to novel-level | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 845 | # Step 6: Generate the portrait for all characters in the novel | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 963 | # Step 7: Generate video for each scene | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pipelines/novel2movie_pipeline.py | 486 | # Step 1: Compress the novel text | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 554 | # Step 2: Extract events from the compressed novel | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 598 | # Step 3: Extract relevant chunks for each event | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 685 | # Step 4: Extract scenes for each event, design the script for each scene | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 751 | # Step 5: Merge characters from scene-level to event-level, then to novel-level | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 845 | # Step 6: Generate the portrait for all characters in the novel | COMMENT |
| LOW | pipelines/novel2movie_pipeline.py | 963 | # Step 7: Generate video for each scene | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agents/global_information_planner.py | 281 | # self, | COMMENT |
| LOW | agents/global_information_planner.py | 301 | COMMENT | |
| LOW | agents/global_information_planner.py | 321 | # # check the output is valid | COMMENT |
| LOW | agents/global_information_planner.py | 341 | COMMENT | |
| LOW | agents/global_information_planner.py | 361 | # character_name=character.identifier_in_novel, | COMMENT |
| LOW | interfaces/scene.py | 41 | # description="The index of the scene within the event, starting from 0" | COMMENT |
| LOW | interfaces/shot_description.py | 41 | # default=None, | COMMENT |
| LOW | interfaces/shot_description.py | 61 | # False, | COMMENT |
| LOW | interfaces/shot_description.py | 161 | "[Sound Effect] Ambient sound (supermarket background noise, shopping cart wheels rolling)", | COMMENT |
| LOW | interfaces/shot_description.py | 181 | # ) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | agents/script_planner.py | 404 | except NameError: | CODE |
| HIGH | pipelines/script2video_pipeline.py | 569 | except (OSError, ValueError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | utils/provider_presets.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | utils/provider_presets.py | 17 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/__init__.py | 22 | __all__ = [ | CODE |
| LOW | agents/__init__.py | 8 | __all__ = [ | CODE |
| LOW⚡ | utils/provider_presets.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent_runtime/vimax_adapters.py | 456 | def _update_session_metadata(self, session_id: str, *, idea: str, user_requirement: str, style: str) -> None: | CODE |
| LOW | agent_runtime/__init__.py | 3 | __all__ = ["AgentLoop", "SessionIndex", "ToolRegistry", "build_runtime"] | CODE |
| LOW | agent_runtime/session_index.py | 162 | def update_stage(self, session_id: str, stage: str, summary: str = "") -> None: | CODE |
| LOW | agent_runtime/session_index.py | 186 | def update_compaction(self, session_id: str, result: dict[str, Any]) -> None: | CODE |
| LOW | interfaces/__init__.py | 10 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/image_generator_openrouter_api.py | 46 | CODE | |
| LOW | tools/video_generator_omni_yunwu_api.py | 13 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/video_generator_veo_google_api.py | 105 | # Check if operation completed successfully | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agents/global_information_planner.py | 353 | # parser = None # no need to parse the output, just return the text | COMMENT |