Scan timing: clone 26.98s · analysis 1.07s · 27.7 MB · GitHub API rate-limit (preflight)
https://github.com/HKUDS/ViMax.git
· scanned 2026-05-20 00:19 UTC (2 weeks ago)
· 10 languages
102 findings (50 legacy + 52 scanner) 11/13 scanners ran 43rd percentile · Python · small (2-20K LoC) Scanner says 98 (lower by 30)
Last scanned 2 weeks ago · v2 · 76 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
75.0 | 0.15 | 11.25 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
30.0 | 0.20 | 6.00 |
documentation_score |
77.0 | 0.15 | 11.55 |
practices_score |
42.0 | 0.15 | 6.30 |
code_quality |
75.0 | 0.10 | 7.50 |
| Overall | 1.00 | 67.6 |
All 289 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
main |
software | healthy | main_script2video.py:28 |
main |
software | healthy | main_idea2video.py:21 |
test_minimax_preset_exists |
software | healthy | tests/test_provider_presets.py:17 |
test_minimax_preset_base_url |
software | healthy | tests/test_provider_presets.py:20 |
test_minimax_preset_env_key |
software | healthy | tests/test_provider_presets.py:26 |
test_minimax_preset_default_model |
software | healthy | tests/test_provider_presets.py:29 |
test_minimax_preset_has_models_list |
software | healthy | tests/test_provider_presets.py:32 |
test_minimax_preset_temperature_range |
software | healthy | tests/test_provider_presets.py:39 |
test_unknown_provider_passes_through |
software | healthy | tests/test_provider_presets.py:48 |
test_no_model_provider_passes_through |
software | healthy | tests/test_provider_presets.py:55 |
test_minimax_rewrites_provider_to_openai |
software | healthy | tests/test_provider_presets.py:60 |
test_minimax_sets_base_url |
software | healthy | tests/test_provider_presets.py:65 |
test_minimax_preserves_custom_base_url |
software | healthy | tests/test_provider_presets.py:70 |
test_minimax_defaults_model |
software | healthy | tests/test_provider_presets.py:80 |
test_minimax_preserves_explicit_model |
software | healthy | tests/test_provider_presets.py:85 |
test_minimax_reads_api_key_from_env |
software | healthy | tests/test_provider_presets.py:91 |
test_minimax_prefers_explicit_api_key_over_env |
software | healthy | tests/test_provider_presets.py:96 |
test_minimax_clamps_temperature_above_max |
software | healthy | tests/test_provider_presets.py:102 |
test_minimax_clamps_temperature_below_min |
software | healthy | tests/test_provider_presets.py:107 |
test_minimax_passes_valid_temperature |
software | healthy | tests/test_provider_presets.py:112 |
test_minimax_temperature_zero_allowed |
software | healthy | tests/test_provider_presets.py:117 |
test_minimax_no_temperature_key |
software | healthy | tests/test_provider_presets.py:122 |
test_minimax_temperature_none_ignored |
software | healthy | tests/test_provider_presets.py:127 |
test_original_dict_not_mutated |
software | healthy | tests/test_provider_presets.py:132 |
test_empty_model_string_gets_default |
software | healthy | tests/test_provider_presets.py:137 |
test_detects_minimax |
software | healthy | tests/test_provider_presets.py:147 |
test_returns_none_when_no_keys |
software | healthy | tests/test_provider_presets.py:151 |
test_idea2video_minimax_yaml |
software | healthy | tests/test_provider_presets.py:158 |
test_script2video_minimax_yaml |
software | healthy | tests/test_provider_presets.py:166 |
_make_minimax_config |
software | healthy | tests/test_minimax_integration.py:43 |
test_full_minimax_config_resolution |
software | healthy | tests/test_minimax_integration.py:52 |
test_minimax_highspeed_model |
software | healthy | tests/test_minimax_integration.py:60 |
test_minimax_m25_model |
software | healthy | tests/test_minimax_integration.py:66 |
test_env_key_fallback_in_config |
software | healthy | tests/test_minimax_integration.py:72 |
test_openrouter_config_unchanged |
software | healthy | tests/test_minimax_integration.py:80 |
test_init_chat_model_receives_openai_provider |
software | healthy | tests/test_minimax_integration.py:93 |
test_temperature_clamping_in_pipeline_flow |
software | healthy | tests/test_minimax_integration.py:101 |
test_extra_kwargs_preserved |
software | healthy | tests/test_minimax_integration.py:106 |
test_idea2video_pipeline_minimax_config |
software | healthy | tests/test_minimax_integration.py:118 |
test_script2video_pipeline_minimax_config |
software | healthy | tests/test_minimax_integration.py:134 |
test_existing_openrouter_config_still_works |
software | healthy | tests/test_minimax_integration.py:150 |
__call__ |
software | healthy | pipelines/novel2movie_pipeline.py:24 |
retrieve_relevant_chunks |
software | healthy | pipelines/novel2movie_pipeline.py:171 |
extract_scenes_for_event |
software | healthy | pipelines/novel2movie_pipeline.py:262 |
merge_characters_across_scenes_in_event |
software | healthy | pipelines/novel2movie_pipeline.py:308 |
generate_portrait_for_character |
software | healthy | pipelines/novel2movie_pipeline.py:402 |
generate_portrait_for_character_in_scene |
software | healthy | pipelines/novel2movie_pipeline.py:435 |
__init__ |
software | healthy | pipelines/script2video_pipeline.py:25 |
init_from_config |
software | healthy | pipelines/script2video_pipeline.py:49 |
__call__ |
software | healthy | pipelines/script2video_pipeline.py:64 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestProviderPresets |
software | healthy | tests/test_provider_presets.py:14 |
TestResolveChatModelConfig |
software | healthy | tests/test_provider_presets.py:45 |
TestDetectProviderFromEnv |
software | healthy | tests/test_provider_presets.py:143 |
TestConfigYAMLLoading |
software | healthy | tests/test_provider_presets.py:155 |
TestPipelineConfigResolution |
software | healthy | tests/test_minimax_integration.py:40 |
TestPipelineInitFromConfig |
software | healthy | tests/test_minimax_integration.py:113 |
Novel2MoviePipeline |
software | healthy | pipelines/novel2movie_pipeline.py:22 |
Script2VideoPipeline |
software | healthy | pipelines/script2video_pipeline.py:17 |
Idea2VideoPipeline |
software | healthy | pipelines/idea2video_pipeline.py:16 |
Idea2SVideoPipeline |
software | healthy | pipelines/idea2video_pipeline_deprecated.py:6 |
RateLimiter |
software | healthy | utils/rate_limiter.py:6 |
Timer |
software | healthy | utils/timer.py:5 |
ShotBriefDescription |
software | healthy | interfaces/shot_description.py:5 |
ShotDescription |
software | healthy | interfaces/shot_description.py:95 |
Scene |
software | healthy | interfaces/scene.py:7 |
Frame |
software | healthy | interfaces/frame.py:5 |
EnvironmentInScene |
software | healthy | interfaces/environment.py:7 |
CharacterInScene |
software | healthy | interfaces/character.py:8 |
CharacterInEvent |
software | healthy | interfaces/character.py:49 |
CharacterInNovel |
software | healthy | interfaces/character.py:76 |
Event |
software | healthy | interfaces/event.py:6 |
Camera |
software | healthy | interfaces/camera.py:6 |
ImageOutput |
software | healthy | interfaces/image_output.py:10 |
VideoOutput |
software | healthy | interfaces/video_output.py:8 |
SceneExtractor |
software | healthy | agents/scene_extractor.py:61 |
VisDescDecompositionResponse |
software | healthy | agents/storyboard_artist.py:125 |
StoryboardArtist |
software | healthy | agents/storyboard_artist.py:170 |
StoryboardResponse |
software | healthy | agents/storyboard_artist.py:187 |
EnhancedScriptResponse |
software | healthy | agents/script_enhancer.py:66 |
ScriptEnhancer |
software | healthy | agents/script_enhancer.py:73 |
RefImageIndicesAndTextPrompt |
software | healthy | agents/reference_image_selector.py:121 |
ReferenceImageSelector |
software | healthy | agents/reference_image_selector.py:138 |
NovelCompressor |
software | healthy | agents/novel_compressor.py:80 |
MergeCharactersAcrossScenesInEventResponse |
software | healthy | agents/global_information_planner.py:75 |
CharacterForMergingToNovel |
software | healthy | agents/global_information_planner.py:116 |
MergeCharactersToExistingCharactersInNovelResponse |
software | healthy | agents/global_information_planner.py:133 |
GlobalInformationPlanner |
software | healthy | agents/global_information_planner.py:140 |
Screenwriter |
software | healthy | agents/screenwriter.py:118 |
WriteScriptBasedOnStoryResponse |
software | healthy | agents/screenwriter.py:146 |
BestImageResponse |
software | healthy | agents/best_image_selector.py:50 |
BestImageSelector |
software | healthy | agents/best_image_selector.py:61 |
EventExtractor |
software | healthy | agents/event_extractor.py:79 |
CharacterPortraitsGenerator |
software | healthy | agents/character_portraits_generator.py:35 |
IntentRouterResponse |
software | healthy | agents/script_planner.py:312 |
PlannedScriptResponse |
software | healthy | agents/script_planner.py:321 |
ScriptPlanner |
software | healthy | agents/script_planner.py:329 |
CameraParentItem |
software | healthy | agents/camera_image_generator.py:68 |
CameraTreeResponse |
software | healthy | agents/camera_image_generator.py:101 |
CameraImageGenerator |
software | healthy | agents/camera_image_generator.py:108 |
ExtractCharactersResponse |
software | healthy | agents/character_extractor.py:57 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README_ZH.md |
software | healthy | README_ZH.md |
Communication.md |
software | healthy | Communication.md |
pyproject.toml |
software | healthy | pyproject.toml |
main_script2video.py |
software | healthy | main_script2video.py |
readme.md |
software | healthy | readme.md |
main_idea2video.py |
software | healthy | main_idea2video.py |
__init__.py |
software | healthy | tests/__init__.py |
test_provider_presets.py |
software | healthy | tests/test_provider_presets.py |
test_minimax_integration.py |
software | healthy | tests/test_minimax_integration.py |
novel2movie_pipeline.py |
software | healthy | pipelines/novel2movie_pipeline.py |
script2video_pipeline.py |
software | healthy | pipelines/script2video_pipeline.py |
idea2video_pipeline.py |
software | healthy | pipelines/idea2video_pipeline.py |
__init__.py |
software | healthy | pipelines/__init__.py |
idea2video_pipeline_deprecated.py |
software | healthy | pipelines/idea2video_pipeline_deprecated.py |
rate_limiter.py |
software | healthy | utils/rate_limiter.py |
retry.py |
software | healthy | utils/retry.py |
__init__.py |
software | healthy | utils/__init__.py |
video.py |
software | healthy | utils/video.py |
image.py |
software | healthy | utils/image.py |
timer.py |
software | healthy | utils/timer.py |
provider_presets.py |
software | healthy | utils/provider_presets.py |
shot_description.py |
software | healthy | interfaces/shot_description.py |
__init__.py |
software | healthy | interfaces/__init__.py |
scene.py |
software | healthy | interfaces/scene.py |
frame.py |
software | healthy | interfaces/frame.py |
environment.py |
software | healthy | interfaces/environment.py |
character.py |
software | healthy | interfaces/character.py |
event.py |
software | healthy | interfaces/event.py |
camera.py |
software | healthy | interfaces/camera.py |
image_output.py |
software | healthy | interfaces/image_output.py |
video_output.py |
software | healthy | interfaces/video_output.py |
scene_extractor.py |
software | healthy | agents/scene_extractor.py |
storyboard_artist.py |
software | healthy | agents/storyboard_artist.py |
__init__.py |
software | healthy | agents/__init__.py |
script_enhancer.py |
software | healthy | agents/script_enhancer.py |
reference_image_selector.py |
software | healthy | agents/reference_image_selector.py |
novel_compressor.py |
software | healthy | agents/novel_compressor.py |
global_information_planner.py |
software | healthy | agents/global_information_planner.py |
screenwriter.py |
software | healthy | agents/screenwriter.py |
best_image_selector.py |
software | healthy | agents/best_image_selector.py |
event_extractor.py |
software | healthy | agents/event_extractor.py |
character_portraits_generator.py |
software | healthy | agents/character_portraits_generator.py |
script_planner.py |
software | healthy | agents/script_planner.py |
camera_image_generator.py |
software | healthy | agents/camera_image_generator.py |
character_extractor.py |
software | healthy | agents/character_extractor.py |
protocols.py |
software | healthy | tools/protocols.py |
__init__.py |
software | healthy | tools/__init__.py |
video_generator_veo_yunwu_api.py |
software | healthy | tools/video_generator_veo_yunwu_api.py |
video_generator_veo_google_api.py |
software | healthy | tools/video_generator_veo_google_api.py |
image_generator_nanobanana_yunwu_api.py |
software | healthy | tools/image_generator_nanobanana_yunwu_api.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
pipelines |
software | healthy | pipelines |
utils |
software | healthy | utils |
interfaces |
software | healthy | interfaces |
agents |
software | healthy | agents |
tools |
software | healthy | tools |
configs |
software | healthy | configs |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-ylhapabg |
software | healthy | /tmp/repobility-clone-ylhapabg |
| Label | Layer | Status | Path |
|---|---|---|---|
0.6.7.1 |
network | healthy | pyproject.toml |
This page is publicly accessible at:
https://repobility.com/scan/99b4aa28-a388-4d28-b169-2e7309b85809/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/99b4aa28-a388-4d28-b169-2e7309b85809/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.