Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.

shihabshahrier/freelm

https://github.com/shihabshahrier/freelm · scanned 2026-06-16 00:10 UTC (2 months, 2 weeks ago)

18 raw signals (0 security + 18 graph)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 2 months, 2 weeks ago · v1 · 14 actionable findings from 1 signal source. 4 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all

All 437 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.

LabelLayerStatusPath
ok_payload software healthy tests/conftest.py:4
test_new_providers_construct software healthy tests/test_providers_extra.py:4
test_new_providers_have_discovery_enabled software healthy tests/test_providers_extra.py:13
test_from_env_includes_new_providers software healthy tests/test_providers_extra.py:20
test_stream_basic software healthy tests/test_streaming.py:20
test_stream_fails_over_before_first_token software healthy tests/test_streaming.py:30
test_astream_basic software healthy tests/test_streaming.py:38
run software healthy tests/test_streaming.py:40
test_openai_compat_shim software healthy tests/test_compat.py:13
test_openai_compat_accepts_sdk_ctor_kwargs software healthy tests/test_compat.py:26
test_openai_compat_stream_yields_chunks software healthy tests/test_compat.py:44
test_token_bucket_consume_and_refill software healthy tests/test_units.py:7
test_circuit_breaker_opens_and_half_opens software healthy tests/test_units.py:17
test_keystate_daily_quota_and_reset software healthy tests/test_units.py:31
test_keystate_cooldown_and_disable software healthy tests/test_units.py:41
test_registry_resolution software healthy tests/test_units.py:52
test_registry_passthrough_with_colon_suffix software healthy tests/test_units.py:64
test_modelspec_priority_orders_resolution software healthy tests/test_units.py:72
test_tag_aliases_route_to_tagged_models software healthy tests/test_units.py:82
test_provider_prefer_reorders_resolved_models software healthy tests/test_units.py:93
test_per_call_model_chain_resolves_in_order software healthy tests/test_units.py:112
test_provider_priority_breaks_ties_in_dynamic_strategies software healthy tests/test_units.py:128
mk software healthy tests/test_units.py:132
test_apply_success_zero_latency_keeps_ewma software healthy tests/test_units.py:142
_env software healthy tests/test_cli.py:23
test_version_flag software healthy tests/test_cli.py:29
test_no_command_prints_help software healthy tests/test_cli.py:36
test_no_keys_is_clean_config_error software healthy tests/test_cli.py:41
test_chat_prints_reply software healthy tests/test_cli.py:47
test_models_lists_fallback_catalog software healthy tests/test_cli.py:58
test_health_prints_rows software healthy tests/test_cli.py:68
test_success software healthy tests/test_router.py:15
test_rotate_key_on_429 software healthy tests/test_router.py:25
test_failover_across_providers software healthy tests/test_router.py:36
test_quota_402_disables_key_and_fails_over software healthy tests/test_router.py:46
test_auth_disables_key_then_exhausts software healthy tests/test_router.py:60
test_transient_then_recover_via_failover software healthy tests/test_router.py:70
test_bad_request_raises_immediately software healthy tests/test_router.py:82
test_model_scoped_429_tries_next_model_same_key software healthy tests/test_router.py:93
test_key_scoped_429_cools_the_key software healthy tests/test_router.py:113
test_interleave_reaches_second_provider_despite_many_models software healthy tests/test_router.py:123
test_wait_retries_recovered_key software healthy tests/test_router.py:139
test_health_report software healthy tests/test_router.py:155
test_free_guard_blocks_paid_passthrough software healthy tests/test_router.py:164
test_free_guard_opt_out_and_free_ids_pass software healthy tests/test_router.py:175
test_per_call_model_chain_fails_over_to_second_id software healthy tests/test_router.py:186
test_on_event_sees_failover_sequence_and_survives_bad_callb… software healthy tests/test_router.py:204
hook software healthy tests/test_router.py:210
test_tools_and_response_format_reach_request_body software healthy tests/test_router.py:222
_tmp_cache software healthy tests/test_state.py:16

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
README.md software healthy README.md
CLAUDE.md software healthy CLAUDE.md
.env.example software healthy .env.example
pyproject.toml software healthy pyproject.toml
LICENSE software healthy LICENSE
AGENTS.md software healthy AGENTS.md
CHANGELOG.md software healthy CHANGELOG.md
conftest.py software healthy tests/conftest.py
test_providers_extra.py software healthy tests/test_providers_extra.py
test_streaming.py software healthy tests/test_streaming.py
test_compat.py software healthy tests/test_compat.py
test_units.py software healthy tests/test_units.py
test_cli.py software healthy tests/test_cli.py
test_router.py software healthy tests/test_router.py
test_state.py software healthy tests/test_state.py
test_async.py software healthy tests/test_async.py
test_discovery.py software healthy tests/test_discovery.py
README.md software healthy js/README.md
package.json software healthy js/package.json
package-lock.json software healthy js/package-lock.json
tsup.config.ts software healthy js/tsup.config.ts
tsconfig.json software healthy js/tsconfig.json
LICENSE software healthy js/LICENSE
vitest.config.ts software healthy js/vitest.config.ts
compat.test.ts software healthy js/test/compat.test.ts
router.test.ts software healthy js/test/router.test.ts
streaming.test.ts software healthy js/test/streaming.test.ts
discovery.test.ts software healthy js/test/discovery.test.ts
units.test.ts software healthy js/test/units.test.ts
providers.test.ts software healthy js/test/providers.test.ts
state.test.ts software healthy js/test/state.test.ts
cli.test.ts software healthy js/test/cli.test.ts
e2e.mjs software healthy js/examples/e2e.mjs
config.ts software healthy js/src/config.ts
cache.ts software healthy js/src/cache.ts
registry.ts software healthy js/src/registry.ts
discovery.ts software healthy js/src/discovery.ts
version.ts software healthy js/src/version.ts
index.ts software healthy js/src/index.ts
backoff.ts software healthy js/src/backoff.ts
ratelimit.ts software healthy js/src/ratelimit.ts
breaker.ts software healthy js/src/breaker.ts
cli.ts software healthy js/src/cli.ts
state.ts software healthy js/src/state.ts
client.ts software healthy js/src/client.ts
strategy.ts software healthy js/src/strategy.ts
keys.ts software healthy js/src/keys.ts
time.ts software healthy js/src/time.ts
types.ts software healthy js/src/types.ts
engine.ts software healthy js/src/engine.ts

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
TokenBucket software healthy js/src/ratelimit.ts:TokenBucket
CircuitBreaker software healthy js/src/breaker.ts:CircuitBreaker
StateStore software healthy js/src/state.ts:StateStore
FreeLLM software healthy js/src/client.ts:FreeLLM
KeyState software healthy js/src/keys.ts:KeyState
ChatResponse software healthy js/src/types.ts:ChatResponse
FreeLLMError software healthy js/src/errors.ts:FreeLLMError
ConfigError software healthy js/src/errors.ts:ConfigError
ProviderError software healthy js/src/errors.ts:ProviderError
AuthError software healthy js/src/errors.ts:AuthError
RateLimited software healthy js/src/errors.ts:RateLimited
Transient software healthy js/src/errors.ts:Transient
ModelNotFound software healthy js/src/errors.ts:ModelNotFound
QuotaExhausted software healthy js/src/errors.ts:QuotaExhausted
NoProvidersAvailable software healthy js/src/errors.ts:NoProvidersAvailable
Completions software healthy js/src/compat/openai.ts:Completions
Chat software healthy js/src/compat/openai.ts:Chat
OpenAI software healthy js/src/compat/openai.ts:OpenAI
Cerebras software healthy js/src/providers/cerebras.ts:Cerebras
Mistral software healthy js/src/providers/mistral.ts:Mistral
Provider software healthy js/src/providers/base.ts:Provider
OpenRouter software healthy js/src/providers/openrouter.ts:OpenRouter
NIM software healthy js/src/providers/nim.ts:NIM
Groq software healthy js/src/providers/groq.ts:Groq
GoogleAIStudio software healthy js/src/providers/google.ts:GoogleAIStudio
StateStore software healthy src/freelm/_state.py:29
_BaseClient software healthy src/freelm/client.py:39
FreeLLM software healthy src/freelm/client.py:129
AsyncFreeLLM software healthy src/freelm/client.py:316
ModelSpec software healthy src/freelm/registry.py:15
Candidate software healthy src/freelm/strategy.py:20
Message software healthy src/freelm/_types.py:9
Usage software healthy src/freelm/_types.py:46
Choice software healthy src/freelm/_types.py:62
ChatResponse software healthy src/freelm/_types.py:69
Event software healthy src/freelm/_types.py:96
ChatRequest software healthy src/freelm/_types.py:117
CompatMessage software healthy src/freelm/types_compat.py:11
CompatChoice software healthy src/freelm/types_compat.py:24
CompatUsage software healthy src/freelm/types_compat.py:34
CompatCompletion software healthy src/freelm/types_compat.py:48
CompatDelta software healthy src/freelm/types_compat.py:90
CompatChunkChoice software healthy src/freelm/types_compat.py:104
CompatChunk software healthy src/freelm/types_compat.py:114
CircuitBreaker software healthy src/freelm/_breaker.py:12
TokenBucket software healthy src/freelm/_ratelimit.py:10
KeyState software healthy src/freelm/_keys.py:16
FreeLLMError software healthy src/freelm/errors.py:7
ConfigError software healthy src/freelm/errors.py:11
ProviderError software healthy src/freelm/errors.py:15

Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.

LabelLayerStatusPath
tests software healthy tests
js software healthy js
test software healthy js/test
examples software healthy js/examples
src software healthy js/src
compat software healthy js/src/compat
providers software healthy js/src/providers
examples software healthy examples
.github software healthy .github
workflows software healthy .github/workflows
src software healthy src
freelm software healthy src/freelm
compat software healthy src/freelm/compat
providers software healthy src/freelm/providers

LabelLayerStatusPath
gha::js-ci cicd healthy .github/workflows/js-ci.yml
gha::ci cicd healthy .github/workflows/ci.yml
gha::npm-release cicd healthy .github/workflows/npm-release.yml
gha::release cicd healthy .github/workflows/release.yml

LabelLayerStatusPath
test cicd healthy .github/workflows/js-ci.yml
test cicd healthy .github/workflows/ci.yml
publish cicd healthy .github/workflows/npm-release.yml
publish cicd healthy .github/workflows/release.yml

LabelLayerStatusPath
PYPI_API_TOKEN cicd healthy
NPM_TOKEN cicd healthy

LabelLayerStatusPath
repobility-clone-fli5rtej software healthy /tmp/repobility-clone-fli5rtej

LabelLayerStatusPath
gpu (detected) hardware healthy README.md

LabelLayerStatusPath
auth::.github/workflows/npm-release.yml security healthy .github/workflows/npm-release.yml
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/a7a5a213-d3bd-44fa-ad29-c93b3e7205e5/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/a7a5a213-d3bd-44fa-ad29-c93b3e7205e5/

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.