The official gpt4free repository | various collection of powerful language models | opus 4.6 gpt 5.3 kimi 2.5 deepseek v3.2 gemini 3
This report presents the forensic synthetic code analysis of xtekky/gpt4free, a Python project with 66,607 GitHub stars. SynthScan v2.0 examined 72,643 lines of code across 350 source files, recording 1515 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 29.3 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1515 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | g4f/tools/optimize_request.py | 1155 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | g4f/tools/optimize_request.py | 1157 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 35 | # ── System prompt condensation ────────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 117 | # ── Tools to remove entirely ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 153 | # ── Tool description replacements ─────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 648 | # ── Message-level optimization ────────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 775 | # ── Tool-loop detection ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 959 | # ── Tool result truncation ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 1028 | # ── Strip redundant tool_call fields ───────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 1084 | # ── Collapse whitespace in message content ────────────────────────────────── | COMMENT |
| MEDIUM | g4f/tools/optimize_request.py | 1123 | # ── Drop stale context (old user turns beyond a threshold) ─────────────────── | COMMENT |
| MEDIUM | g4f/tools/token_optimizer.py | 41 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/tools/token_optimizer.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | g4f/tools/token_optimizer.py | 110 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | g4f/tools/token_optimizer.py | 112 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | g4f/tools/token_optimizer.py | 160 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | g4f/tools/token_optimizer.py | 162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 77 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 129 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 175 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 177 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 340 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 342 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 370 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 372 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 440 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/providers/config_provider.py | 442 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | g4f/Provider/qwen/cookie_generator.py | 489 | # ----------------------- | COMMENT |
| MEDIUM⚡ | g4f/Provider/qwen/cookie_generator.py | 491 | # ----------------------- | COMMENT |
| MEDIUM | g4f/Provider/qwen/generate_ua.py | 10 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/generate_ua.py | 12 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/generate_ua.py | 44 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/generate_ua.py | 46 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/generate_ua.py | 150 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/generate_ua.py | 152 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/generate_ua.py | 246 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/generate_ua.py | 248 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/fingerprint.py | 5 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/fingerprint.py | 7 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/fingerprint.py | 38 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/fingerprint.py | 40 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/fingerprint.py | 93 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/fingerprint.py | 95 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/fingerprint.py | 108 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/qwen/fingerprint.py | 110 | # ========================= | COMMENT |
| MEDIUM | g4f/Provider/glm/__init__.py | 86 | # ── Signature (spoofing.ts: computeSignature) ────────────────────────── | COMMENT |
| MEDIUM | g4f/Provider/glm/__init__.py | 99 | # ── Fingerprint params (spoofing.ts: buildFingerprintParams) ──────────── | COMMENT |
| MEDIUM | g4f/Provider/glm/__init__.py | 151 | # ── Headers (spoofing.ts: buildGlmHeaders) ────────────────────────────── | COMMENT |
| MEDIUM | g4f/Provider/glm/__init__.py | 182 | # ── Variables (spoofing.ts: buildGlmVariables) ────────────────────────── | COMMENT |
| MEDIUM | g4f/Provider/glm/__init__.py | 203 | # ── Auth cache (AuthFileMixin) ────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/Provider/glm/__init__.py | 227 | # ── Models ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | g4f/Provider/glm/__init__.py | 256 | # ── Session (session.ts: getCurrentUser, getOrCreateChatSession) ──────── | COMMENT |
| MEDIUM⚡ | g4f/Provider/glm/__init__.py | 334 | # ── Captcha ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | g4f/Provider/glm/__init__.py | 344 | # ── Main entry point (pipeline.ts: proxyViaGlmWebChat) ────────────────── | COMMENT |
| MEDIUM | g4f/Provider/glm/__init__.py | 506 | # ── SSE stream parser (stream.ts: parseGlmSseLine) ────────────────────── | COMMENT |
| MEDIUM | g4f/mcp/pa_provider.py | 73 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/mcp/pa_provider.py | 75 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | g4f/mcp/pa_provider.py | 90 | # --------------------------------------------------------------------------- | COMMENT |
| 136 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/cookies.py | 197 | except Exception as e: | CODE |
| LOW | g4f/cookies.py | 333 | except Exception as e: | CODE |
| LOW | g4f/version.py | 33 | except Exception as e: | CODE |
| LOW | g4f/version.py | 61 | except Exception as e: | CODE |
| LOW | g4f/version.py | 133 | except Exception: | CODE |
| LOW | g4f/version.py | 159 | except Exception as e: | CODE |
| LOW | g4f/tray.py | 60 | except Exception: | CODE |
| LOW | g4f/tray.py | 78 | except Exception: | CODE |
| LOW | g4f/tray.py | 147 | except Exception as exc: | CODE |
| MEDIUM | g4f/tray.py | 140 | def _run(): | CODE |
| LOW | g4f/tools/files.py | 72 | except Exception: | CODE |
| LOW | g4f/tools/files.py | 509 | except Exception as e: | CODE |
| LOW | g4f/tools/files.py | 685 | except Exception as e: | CODE |
| LOW | g4f/tools/files.py | 708 | except Exception as e: | CODE |
| LOW⚡ | g4f/tools/token_optimizer.py | 106 | except Exception: | CODE |
| LOW⚡ | g4f/tools/token_optimizer.py | 156 | except Exception: | CODE |
| LOW | g4f/tools/token_optimizer.py | 221 | except Exception as exc: | CODE |
| LOW | g4f/tools/run_tools.py | 98 | except Exception: | CODE |
| LOW | g4f/tools/run_tools.py | 293 | except Exception as e: | CODE |
| LOW | g4f/tools/run_tools.py | 490 | except Exception as e: | CODE |
| LOW | g4f/tools/run_tools.py | 495 | except Exception: | CODE |
| LOW | g4f/tools/run_tools.py | 581 | except Exception as e: | CODE |
| LOW | g4f/tools/run_tools.py | 692 | except Exception: | CODE |
| LOW | g4f/integration/markitdown/_llm_caption.py | 25 | except Exception as e: | CODE |
| LOW | g4f/integration/markitdown/__init__.py | 99 | except Exception: | CODE |
| LOW | g4f/integration/markitdown/_youtube_converter.py | 75 | except Exception: | CODE |
| LOW | g4f/integration/markitdown/_youtube_converter.py | 185 | except Exception as e: | CODE |
| MEDIUM | g4f/integration/markitdown/_youtube_converter.py | 186 | print(f"Error extracting description: {e}") | CODE |
| LOW | g4f/integration/markitdown/_youtube_converter.py | 246 | except Exception as e: | CODE |
| MEDIUM | g4f/integration/markitdown/_youtube_converter.py | 249 | print(f"Error fetching transcript: {e}") | CODE |
| LOW | g4f/integration/markitdown/_youtube_converter.py | 262 | except Exception as e: | CODE |
| MEDIUM | g4f/integration/markitdown/_youtube_converter.py | 263 | print(f"Error processing transcript: {e}") | CODE |
| LOW | g4f/integration/markitdown/_youtube_converter.py | 307 | except Exception as e: | CODE |
| LOW | g4f/providers/config_provider.py | 396 | except Exception as e: | CODE |
| LOW | g4f/providers/config_provider.py | 474 | except Exception as e: | CODE |
| LOW | g4f/providers/config_provider.py | 583 | except Exception as e: | CODE |
| LOW | g4f/providers/retry_provider.py | 135 | except Exception as e: | CODE |
| LOW | g4f/providers/retry_provider.py | 195 | except Exception as e: | CODE |
| LOW | g4f/providers/retry_provider.py | 266 | except Exception as e: | CODE |
| LOW | g4f/providers/asyncio.py | 72 | except Exception: | CODE |
| LOW | g4f/providers/cache.py | 31 | except Exception as e: | CODE |
| MEDIUM | g4f/providers/cache.py | 32 | print(f"Error writing to {file}: {e}") | CODE |
| LOW | g4f/providers/any_provider.py | 187 | except Exception as e: | CODE |
| LOW | g4f/providers/any_provider.py | 253 | except Exception as e: | CODE |
| LOW | g4f/providers/any_provider.py | 510 | except Exception as e: | CODE |
| MEDIUM | g4f/providers/any_provider.py | 488 | def _safe_getattr(p): | CODE |
| LOW | g4f/providers/tool_support.py | 41 | except Exception: | CODE |
| LOW | g4f/providers/tool_support.py | 52 | except Exception: | CODE |
| LOW | g4f/providers/tool_support.py | 56 | except Exception: | CODE |
| LOW | g4f/providers/tool_support.py | 78 | except Exception: | CODE |
| LOW | g4f/providers/tool_support.py | 164 | except Exception: | CODE |
| LOW | g4f/providers/tool_support.py | 514 | except Exception: | CODE |
| LOW | g4f/providers/tool_support.py | 552 | except Exception: | CODE |
| LOW | g4f/Provider/DeepAI.py | 257 | except Exception as e: | CODE |
| LOW | g4f/Provider/OperaAria.py | 292 | except Exception as e: | CODE |
| LOW | g4f/Provider/TeachAnything.py | 54 | except Exception as e: | CODE |
| MEDIUM | g4f/Provider/TeachAnything.py | 55 | print(f"Error decoding final buffer: {e}") | CODE |
| LOW | g4f/Provider/CopilotSession.py | 184 | except Exception: | CODE |
| LOW | g4f/Provider/CopilotApp.py | 129 | except Exception as e: | CODE |
| LOW | g4f/Provider/Pollinations.py | 98 | except Exception as e: | CODE |
| 303 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/cookies.py | 1 | CODE | |
| LOW | g4f/files.py | 1 | CODE | |
| LOW | g4f/config.py | 1 | CODE | |
| LOW | g4f/version.py | 1 | CODE | |
| LOW | g4f/version.py | 3 | CODE | |
| LOW | g4f/tray.py | 11 | CODE | |
| LOW | g4f/models.py | 1 | CODE | |
| LOW | g4f/__init__.py | 1 | CODE | |
| LOW | g4f/__init__.py | 7 | CODE | |
| LOW | g4f/__init__.py | 7 | CODE | |
| LOW | g4f/__init__.py | 10 | CODE | |
| LOW | g4f/__init__.py | 10 | CODE | |
| LOW | g4f/__init__.py | 10 | CODE | |
| LOW | g4f/__init__.py | 10 | CODE | |
| LOW | g4f/__init__.py | 12 | CODE | |
| LOW | g4f/__init__.py | 12 | CODE | |
| LOW | g4f/__init__.py | 16 | CODE | |
| LOW | g4f/typing.py | 1 | CODE | |
| LOW | g4f/typing.py | 4 | CODE | |
| LOW | g4f/typing.py | 4 | CODE | |
| LOW | g4f/typing.py | 4 | CODE | |
| LOW | g4f/typing.py | 4 | CODE | |
| LOW | g4f/tools/auth.py | 1 | CODE | |
| LOW | g4f/tools/files.py | 1 | CODE | |
| LOW | g4f/tools/files.py | 88 | CODE | |
| LOW | g4f/tools/fetch_and_scrape.py | 1 | CODE | |
| LOW | g4f/tools/optimize_request.py | 9 | CODE | |
| LOW | g4f/tools/media.py | 1 | CODE | |
| LOW | g4f/tools/token_optimizer.py | 31 | CODE | |
| LOW | g4f/tools/run_tools.py | 1 | CODE | |
| LOW | g4f/tools/run_tools.py | 3 | CODE | |
| LOW | g4f/tools/run_tools.py | 24 | CODE | |
| LOW | g4f/tools/run_tools.py | 45 | CODE | |
| LOW | g4f/tools/run_tools.py | 45 | CODE | |
| LOW | g4f/tools/run_tools.py | 15 | CODE | |
| LOW | g4f/tools/web_search.py | 1 | CODE | |
| LOW | g4f/integration/langchain.py | 1 | CODE | |
| LOW | g4f/integration/pydantic_ai.py | 1 | CODE | |
| LOW | g4f/providers/config_provider.py | 54 | CODE | |
| LOW | g4f/providers/retry_provider.py | 1 | CODE | |
| LOW | g4f/providers/base_provider.py | 1 | CODE | |
| LOW | g4f/providers/asyncio.py | 1 | CODE | |
| LOW | g4f/providers/cache.py | 1 | CODE | |
| LOW | g4f/providers/create_images.py | 1 | CODE | |
| LOW | g4f/providers/response.py | 1 | CODE | |
| LOW | g4f/providers/types.py | 1 | CODE | |
| LOW | g4f/providers/types.py | 3 | CODE | |
| LOW | g4f/providers/types.py | 5 | CODE | |
| LOW | g4f/providers/types.py | 5 | CODE | |
| LOW | g4f/providers/helper.py | 1 | CODE | |
| LOW | g4f/providers/any_provider.py | 1 | CODE | |
| LOW | g4f/providers/tool_support.py | 1 | CODE | |
| LOW | g4f/providers/tool_support.py | 12 | CODE | |
| LOW | g4f/Provider/DeepAI.py | 4 | CODE | |
| LOW | g4f/Provider/DeepAI.py | 9 | CODE | |
| LOW | g4f/Provider/OperaAria.py | 1 | CODE | |
| LOW | g4f/Provider/OperaAria.py | 13 | CODE | |
| LOW | g4f/Provider/base_provider.py | 1 | CODE | |
| LOW | g4f/Provider/base_provider.py | 2 | CODE | |
| LOW | g4f/Provider/base_provider.py | 3 | CODE | |
| 347 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/cookies.py | 158 | CODE | |
| LOW | g4f/cookies.py | 234 | CODE | |
| LOW | g4f/cookies.py | 276 | CODE | |
| LOW | g4f/tools/files.py | 118 | CODE | |
| LOW | g4f/tools/files.py | 189 | CODE | |
| LOW | g4f/tools/files.py | 280 | CODE | |
| LOW | g4f/tools/files.py | 340 | CODE | |
| LOW | g4f/tools/files.py | 421 | CODE | |
| LOW | g4f/tools/files.py | 588 | CODE | |
| LOW | g4f/tools/files.py | 603 | CODE | |
| LOW | g4f/tools/files.py | 618 | CODE | |
| LOW | g4f/tools/files.py | 633 | CODE | |
| LOW | g4f/tools/fetch_and_scrape.py | 23 | CODE | |
| LOW | g4f/tools/optimize_request.py | 654 | CODE | |
| LOW | g4f/tools/optimize_request.py | 672 | CODE | |
| LOW | g4f/tools/optimize_request.py | 697 | CODE | |
| LOW | g4f/tools/optimize_request.py | 804 | CODE | |
| LOW | g4f/tools/optimize_request.py | 962 | CODE | |
| LOW | g4f/tools/optimize_request.py | 1087 | CODE | |
| LOW | g4f/tools/media.py | 64 | CODE | |
| LOW | g4f/tools/token_optimizer.py | 170 | CODE | |
| LOW | g4f/tools/run_tools.py | 299 | CODE | |
| LOW | g4f/tools/run_tools.py | 504 | CODE | |
| LOW | g4f/tools/run_tools.py | 700 | CODE | |
| LOW | g4f/tools/run_tools.py | 215 | CODE | |
| LOW | g4f/integration/markitdown/__init__.py | 33 | CODE | |
| LOW | g4f/integration/markitdown/_audio_converter.py | 50 | CODE | |
| LOW | g4f/integration/markitdown/_youtube_converter.py | 141 | CODE | |
| LOW | g4f/integration/markitdown/_youtube_converter.py | 286 | CODE | |
| LOW | g4f/providers/config_provider.py | 261 | CODE | |
| LOW | g4f/providers/config_provider.py | 514 | CODE | |
| LOW | g4f/providers/retry_provider.py | 87 | CODE | |
| LOW | g4f/providers/retry_provider.py | 160 | CODE | |
| LOW | g4f/providers/retry_provider.py | 241 | CODE | |
| LOW | g4f/providers/base_provider.py | 164 | CODE | |
| LOW | g4f/providers/base_provider.py | 385 | CODE | |
| LOW | g4f/providers/base_provider.py | 476 | CODE | |
| LOW | g4f/providers/base_provider.py | 178 | CODE | |
| LOW | g4f/providers/asyncio.py | 23 | CODE | |
| LOW | g4f/providers/asyncio.py | 60 | CODE | |
| LOW | g4f/providers/create_images.py | 71 | CODE | |
| LOW | g4f/providers/helper.py | 13 | CODE | |
| LOW | g4f/providers/helper.py | 84 | CODE | |
| LOW | g4f/providers/any_provider.py | 139 | CODE | |
| LOW | g4f/providers/any_provider.py | 300 | CODE | |
| LOW | g4f/providers/any_provider.py | 400 | CODE | |
| LOW | g4f/providers/tool_support.py | 99 | CODE | |
| LOW | g4f/providers/tool_support.py | 178 | CODE | |
| LOW | g4f/providers/tool_support.py | 203 | CODE | |
| LOW | g4f/providers/tool_support.py | 245 | CODE | |
| LOW | g4f/providers/tool_support.py | 358 | CODE | |
| LOW | g4f/Provider/DeepAI.py | 95 | CODE | |
| LOW | g4f/Provider/OperaAria.py | 259 | CODE | |
| LOW | g4f/Provider/CopilotSession.py | 33 | CODE | |
| LOW | g4f/Provider/CopilotSession.py | 76 | CODE | |
| LOW | g4f/Provider/CopilotApp.py | 37 | CODE | |
| LOW | g4f/Provider/Pollinations.py | 103 | CODE | |
| LOW | g4f/Provider/Pollinations.py | 267 | CODE | |
| LOW | g4f/Provider/Pollinations.py | 374 | CODE | |
| LOW | g4f/Provider/Copilot.py | 51 | CODE | |
| 163 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/cookies.py | 158 | def load_cookies_from_browsers( | CODE |
| LOW | g4f/tools/files.py | 313 | def stream_read_parts_and_refine( | CODE |
| LOW | g4f/tools/files.py | 340 | def split_file_by_size_and_newline( | CODE |
| LOW | g4f/tools/files.py | 618 | async def async_read_and_download_urls( | CODE |
| LOW | g4f/tools/optimize_request.py | 1031 | def _strip_redundant_tool_fields(messages: Messages) -> int: | CODE |
| LOW | g4f/tools/optimize_request.py | 1087 | def _collapse_message_whitespace(messages: Messages) -> int: | CODE |
| LOW | g4f/tools/optimize_request.py | 1195 | def _drop_empty_trailing_messages(messages: Messages) -> int: | CODE |
| LOW | g4f/tools/run_tools.py | 146 | def provider_supports_native_tools(provider: ProviderType) -> bool: | STRING |
| LOW | g4f/integration/langchain.py | 15 | def new_convert_message_to_dict(message: BaseMessage) -> dict: | CODE |
| LOW | g4f/integration/markitdown/__init__.py | 177 | def _convert_github_url_to_raw(url: str) -> str: | CODE |
| LOW | g4f/integration/markitdown/_youtube_converter.py | 47 | def _extract_youtube_video_id(url: str) -> Optional[str]: | CODE |
| LOW | g4f/providers/base_provider.py | 122 | def get_async_provider_method(provider: type) -> Optional[callable]: | CODE |
| LOW | g4f/providers/tool_support.py | 140 | def _parse_stringified_tool_calls(text: str) -> list[dict]: | CODE |
| LOW | g4f/providers/tool_support.py | 218 | def _merge_messages_to_single_user(messages: Messages) -> Messages: | CODE |
| LOW | g4f/providers/tool_support.py | 245 | def _preprocess_tool_messages(messages: Messages) -> Messages: | CODE |
| LOW | g4f/Provider/Copilot.py | 431 | async def get_access_token_and_cookies( | CODE |
| LOW | g4f/Provider/Yupp.py | 164 | def sync_record_model_feedback( | CODE |
| LOW | g4f/Provider/BraveSearch.py | 82 | def _parse_sveltekit_tap_data(cls, raw_json: dict) -> dict: | CODE |
| LOW | g4f/Provider/DeepInfra.py | 11 | def _get_turnstile_token_sync(model: str) -> str: | CODE |
| LOW⚡ | g4f/Provider/DeepInfra.py | 164 | async def get_turnstile_token_async(model: str = None) -> str: | STRING |
| LOW | g4f/Provider/qwen/fingerprint.py | 191 | def generate_fingerprint_batch(count: int, options: Dict[str, Any] = None) -> List[str]: | CODE |
| LOW | g4f/Provider/yupp/models.py | 192 | class DataManager: | CODE |
| LOW⚡ | g4f/Provider/yupp/token_extractor.py | 334 | def _extract_tokens_from_html(self, html: str) -> List[str]: | CODE |
| LOW | g4f/Provider/needs_auth/gemini_utils.py | 247 | def extract_gemini_error_code(value) -> int | None: | CODE |
| LOW | g4f/Provider/needs_auth/MicrosoftDesigner.py | 173 | async def get_access_token_and_user_agent(url: str, proxy: str = None): | CODE |
| LOW⚡ | g4f/Provider/needs_auth/BlackboxPro.py | 2522 | def _find_session_in_har_files(cls) -> Optional[dict]: | CODE |
| LOW | g4f/Provider/needs_auth/GeminiCLI.py | 105 | def get_gemini_cli_user_agent(model: str = "gemini-2.5-pro") -> str: | CODE |
| LOW | g4f/Provider/needs_auth/GeminiCLI.py | 635 | def _messages_to_gemini_format( | CODE |
| LOW | g4f/Provider/needs_auth/MetaAI.py | 262 | def generate_offline_threading_id() -> str: | CODE |
| LOW | g4f/Provider/needs_auth/Gemini.py | 181 | def _extract_response_content(response_part: list) -> str | None: | CODE |
| LOW | g4f/Provider/needs_auth/Gemini.py | 291 | def _has_authenticated_session(cookies: Cookies) -> bool: | CODE |
| LOW | g4f/Provider/needs_auth/Gemini.py | 295 | def _resolve_gemini_conversation( | CODE |
| LOW | g4f/Provider/needs_auth/DeepSeek.py | 171 | def generate_client_stream_id() -> str: | CODE |
| LOW | g4f/Provider/needs_auth/Antigravity.py | 87 | def get_antigravity_oauth_creds_path(): | CODE |
| LOW | g4f/Provider/needs_auth/Antigravity.py | 1037 | def _messages_to_gemini_format( | CODE |
| LOW | g4f/Provider/glm/__init__.py | 293 | async def _get_or_create_chat_session(cls, session, model: str) -> str: | CODE |
| LOW⚡ | g4f/Provider/glm/__init__.py | 337 | async def _get_captcha_verify_param(cls) -> str: | CODE |
| LOW | g4f/Provider/openai/new.py | 49 | "unregisterProtocolHandler−function unregisterProtocolHandler() { [native code] }", | CODE |
| LOW | g4f/Provider/openai/new.py | 90 | "requestMediaKeySystemAccess−function requestMediaKeySystemAccess() { [native code] }", | CODE |
| LOW | g4f/mcp/apply_patch.py | 224 | def _parse_and_apply_unified_diff( | CODE |
| LOW | g4f/mcp/apply_patch.py | 291 | def apply_patch_with_fallback( | CODE |
| LOW | g4f/mcp/pa_downloader.py | 282 | def auto_download_pa_providers( | CODE |
| LOW | g4f/requests/__init__.py | 96 | def get_cookie_params_from_dict( | CODE |
| LOW | g4f/requests/__init__.py | 264 | def set_browser_executable_path(browser_executable_path: str): | CODE |
| LOW | g4f/gui/server/api.py | 205 | def _prepare_conversation_kwargs(self, json_data: dict): | CODE |
| LOW | g4f/gui/server/api.py | 434 | def get_target_paths_and_urls( | CODE |
| LOW | g4f/api/__init__.py | 478 | def create_app_with_gui_and_debug(): | CODE |
| LOW | g4f/api/__init__.py | 484 | def create_app_with_demo_and_debug(): | CODE |
| LOW | g4f/api/__init__.py | 595 | def register_validation_exception_handler(self): | CODE |
| LOW | g4f/api/__init__.py | 597 | async def validation_exception_handler( | CODE |
| LOW | projects/discord-bot/live_feed.py | 216 | def _extract_first_user_message(body: Any) -> str: | CODE |
| LOW⚡ | projects/discord-bot/mcp_tools.py | 171 | def format_tool_results_for_discord(tool_results: List[dict]) -> str: | CODE |
| LOW⚡ | etc/unittest/config_provider.py | 78 | def test_initial_count_is_zero(self): | CODE |
| LOW⚡ | etc/unittest/config_provider.py | 81 | def test_increment_increases_count(self): | CODE |
| LOW⚡ | etc/unittest/config_provider.py | 180 | def test_quota_balance_pollinations(self): | CODE |
| LOW⚡ | etc/unittest/config_provider.py | 184 | def test_quota_balance_pollinations_false(self): | CODE |
| LOW⚡ | etc/unittest/config_provider.py | 192 | def test_quota_nested_yupp_false(self): | CODE |
| LOW⚡ | etc/unittest/config_provider.py | 196 | def test_quota_missing_key_resolves_zero(self): | CODE |
| LOW⚡ | etc/unittest/config_provider.py | 200 | def test_quota_missing_nested_key_resolves_zero(self): | CODE |
| LOW⚡ | etc/unittest/config_provider.py | 203 | def test_quota_combined_condition(self): | CODE |
| 102 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | g4f/Provider/Qwen.py | 241 | "The `arguments` value MUST be a JSON object (not a string, not null) matching the " | CODE |
| HIGH | g4f/Provider/Qwen.py | 409 | "window.__baxia__ && window.__baxia__.getFYModule" | CODE |
| HIGH | g4f/Provider/audio/ElevenLabs.py | 96 | document.body || new Promise(r => { | STRING |
| HIGH | g4f/Provider/audio/ElevenLabs.py | 187 | if (p.audio_base64) chunks.push(p.audio_base64); | CODE |
| HIGH | g4f/Provider/needs_auth/LMArena.py | 297 | "window.grecaptcha && window.grecaptcha.enterprise" | CODE |
| HIGH | g4f/Provider/needs_auth/LMArena.py | 332 | "window.grecaptcha && window.grecaptcha.enterprise" | CODE |
| HIGH | g4f/Provider/needs_auth/LMArena.py | 347 | resolve(null); | STRING |
| HIGH | g4f/Provider/needs_auth/Gemini.py | 441 | MODEL_HEADER_KEY: "[1,null,null,null,null,null,null,null,[4]]", | CODE |
| HIGH | g4f/Provider/needs_auth/mini_max/crypt.py | 48 | M += hash_function("") # Mimics hashFunction(undefined) in JS | CODE |
| HIGH | g4f/Provider/needs_auth/mini_max/crypt.py | 68 | const os_name = navigator.userAgentData?.platform || navigator.platform || "Unknown"; | STRING |
| HIGH | g4f/Provider/needs_auth/mini_max/crypt.py | 77 | const cpu_core_num = navigator.hardwareConcurrency || 8; | STRING |
| HIGH | g4f/Provider/glm/captcha_solver.py | 72 | Object.defineProperty(navigator, 'webdriver', { get: () => undefined }); | CODE |
| HIGH⚡ | g4f/requests/cdp.py | 566 | let cfIframe = null; | CODE |
| HIGH⚡ | g4f/requests/cdp.py | 568 | if (iframe.src && iframe.src.includes('challenges.cloudflare.com')) { | CODE |
| HIGH⚡ | g4f/requests/cdp.py | 573 | if (!cfIframe) return null; | CODE |
| HIGH | g4f/requests/cdp.py | 377 | Object.defineProperty(navigator, 'webdriver', { get: () => undefined }); | CODE |
| HIGH⚡ | g4f/api/__init__.py | 259 | var all=[], timer=null; | CODE |
| HIGH⚡ | g4f/api/__init__.py | 261 | function btag(e){if(e.streaming&&e.response_body==null)return\'<span class="tag tag-sse">SSE…</span>\';if(e.respo | CODE |
| HIGH⚡ | g4f/api/__init__.py | 263 | function fmt(v){if(v==null)return\'(empty)\';if(typeof v===\'object\')return JSON.stringify(v,null,2);return String(v);} | CODE |
| HIGH | g4f/api/__init__.py | 292 | if(e.request_body!=null)req+=\'\\nBody:\\n\'+fmt(e.request_body); | CODE |
| HIGH | g4f/api/__init__.py | 304 | function toggleAuto(){clearInterval(timer);timer=null;if(document.getElementById(\'auto\').checked)timer=setInterval(loa | CODE |
| HIGH⚡ | etc/unittest/test_gemini.py | 282 | error = ResponseStatusError('Response 400: [["er",null,{"reason":"xsrf"}]]') | CODE |
| HIGH | etc/unittest/test_gemini.py | 404 | 'Response 400: [["er",null,{"reason":"xsrf"}]]' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/tools/optimize_request.py | 1057 | # Check if a subsequent tool message references this call. | COMMENT |
| LOW | g4f/integration/markitdown/__init__.py | 83 | # Check if the converter will accept the file, and if so, try to convert it | COMMENT |
| LOW | g4f/integration/markitdown/__init__.py | 159 | # Check if we have a seekable stream. If not, load the entire stream into memory. | COMMENT |
| LOW | g4f/integration/markitdown/_audio_converter.py | 112 | # Return the result | COMMENT |
| LOW | g4f/Provider/DeepAI.py | 115 | # Check if we should directly generate an image if the user is just asking for it | COMMENT |
| LOW | g4f/Provider/Perplexity.py | 211 | # Check if this is a followup request (has session tokens) | COMMENT |
| LOW | g4f/Provider/Yupp.py | 736 | # Check if this is a token-related error | COMMENT |
| LOW | g4f/Provider/hf_space/CohereForAI_C4AI_Command.py | 48 | # Check if the model exists directly in our models list | COMMENT |
| LOW | g4f/Provider/hf_space/CohereForAI_C4AI_Command.py | 52 | # Check if there's an alias for this model | COMMENT |
| LOW | g4f/Provider/github/copilotTokenProvider.py | 42 | # Check if we have a valid cached token | COMMENT |
| LOW | g4f/Provider/yupp/token_extractor.py | 97 | # Check if this is actually a cached token that failed | COMMENT |
| LOW | g4f/Provider/needs_auth/BlackboxPro.py | 2372 | # Check if there are valid session data in HAR files | COMMENT |
| LOW | g4f/Provider/needs_auth/BlackboxPro.py | 2408 | # Check if there are valid session data in HAR files | COMMENT |
| LOW⚡ | g4f/Provider/needs_auth/BlackboxPro.py | 2515 | # Check if this is a premium session | COMMENT |
| LOW | g4f/Provider/needs_auth/BlackboxPro.py | 2557 | # Check if this is a valid session object | COMMENT |
| LOW | g4f/Provider/needs_auth/BlackboxPro.py | 2719 | # Check if we have a valid session | COMMENT |
| LOW | g4f/Provider/needs_auth/Puter.py | 417 | # Check if we need to use a vision model | COMMENT |
| LOW | g4f/Provider/needs_auth/OpenaiChat.py | 340 | # Check if there is an image response | COMMENT |
| LOW | g4f/Provider/needs_auth/Gemini.py | 1262 | # Check if the cache file was modified in the last minute to avoid 429 Too Many Requests | COMMENT |
| LOW | g4f/Provider/needs_auth/DeepSeek.py | 568 | # Check if response is actually SSE or regular JSON | COMMENT |
| LOW | g4f/Provider/glm/captcha_solver.py | 144 | # Check if the browser is still connected by opening a tab. | COMMENT |
| LOW | g4f/mcp/apply_patch.py | 27 | # Check if patch is available in PATH | COMMENT |
| LOW | g4f/mcp/apply_patch.py | 190 | # Check if any changes | COMMENT |
| LOW | g4f/mcp/tools.py | 195 | # Check if image_data has url attribute | COMMENT |
| LOW | g4f/image/__init__.py | 236 | # Check if the data URI starts with 'data:image' and contains an image format (e.g., jpeg, png, gif) | COMMENT |
| LOW | g4f/image/__init__.py | 241 | # Check if the image format is one of the allowed formats (jpg, jpeg, png, gif) | COMMENT |
| LOW⚡ | g4f/requests/cdp.py | 167 | # Verify if it's reachable and working | COMMENT |
| LOW | etc/examples/vision_images.py | 44 | local_image.close() # Close file after use | CODE |
| LOW⚡ | etc/tool/commit.py | 173 | # Check if it's a git repository | COMMENT |
| LOW⚡ | etc/tool/commit.py | 176 | # Check if we're in a subdirectory of a git repo | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | g4f/providers/base_provider.py | 280 | Abstract method for creating asynchronous results. Args: model (str): The model to use for | STRING |
| HIGH | g4f/providers/base_provider.py | 326 | Abstract method for creating an asynchronous generator. Args: model (str): The model to us | STRING |
| HIGH | g4f/Provider/needs_auth/OpenaiChat.py | 462 | Create an asynchronous generator for the conversation. Args: model (str): The model name. | STRING |
| HIGH | g4f/Provider/needs_auth/bing/create_images.py | 72 | Creates images based on a given prompt using Bing's service. Args: session (ClientSession): Active cli | STRING |
| HIGH | g4f/mcp/pa_provider.py | 725 | Load a ``.pa.py`` file and return the provider class it defines. The file is executed inside the safe sandbox. The | STRING |
| HIGH | g4f/image/__init__.py | 274 | Detect file type from magic number / header signature. Args: binary_data (bytes): File binary data | STRING |
| HIGH | g4f/client/service.py | 44 | Retrieves the model and provider based on input parameters. Args: model (Union[Model, str]): The model | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | g4f/models.py | 598 | # Create a list of all models and their providers | COMMENT |
| MEDIUM | g4f/integration/markitdown/__init__.py | 41 | # Create a copy of the page_converters list, sorted by priority. | COMMENT |
| MEDIUM | g4f/providers/any_provider.py | 279 | # Create a mapping of parent providers to their children | COMMENT |
| MEDIUM | …f/Provider/hf_space/BlackForestLabs_Flux1KontextDev.py | 89 | # Create a conversation/session data container holding tokens and session hash | COMMENT |
| MEDIUM | g4f/requests/cdp.py | 332 | # Create a new tab target | COMMENT |
| MEDIUM | g4f/requests/cdp.py | 726 | # Create a new tab target | COMMENT |
| MEDIUM | g4f/api/__init__.py | 872 | # Create the completion response | COMMENT |
| MEDIUM | g4f/client/factory.py | 52 | # Create a new class that extends OpenaiTemplate | COMMENT |
| MEDIUM | projects/discord-bot/bot.py | 663 | # Create a placeholder then edit/send final result. | COMMENT |
| MEDIUM | etc/examples/mcp_tools_demo.py | 22 | # Create a tool call request for web search | COMMENT |
| MEDIUM | etc/examples/mcp_tools_demo.py | 58 | # Create a tool call request for web scraping | COMMENT |
| MEDIUM | etc/examples/mcp_tools_demo.py | 94 | # Create a tool call request for image generation | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/tools/files.py | 479 | CODE | |
| LOW | g4f/providers/response.py | 244 | CODE | |
| LOW | g4f/Provider/Pollinations.py | 267 | CODE | |
| LOW | g4f/Provider/PollinationsImage.py | 34 | CODE | |
| LOW | …f/Provider/hf_space/BlackForestLabs_Flux1KontextDev.py | 73 | CODE | |
| LOW | g4f/Provider/hf_space/StabilityAI_SD35Large.py | 28 | CODE | |
| LOW | g4f/Provider/hf_space/BlackForestLabs_Flux1Dev.py | 77 | CODE | |
| LOW | g4f/Provider/template/OpenaiTemplate.py | 185 | CODE | |
| LOW | g4f/Provider/search/DDGS.py | 197 | CODE | |
| LOW | g4f/Provider/needs_auth/BlackboxPro.py | 2653 | CODE | |
| LOW | g4f/Provider/needs_auth/Replicate.py | 20 | CODE | |
| LOW | g4f/Provider/needs_auth/GeminiCLI.py | 760 | CODE | |
| LOW | g4f/Provider/needs_auth/OpenaiChat.py | 442 | CODE | |
| LOW | g4f/Provider/needs_auth/Gemini.py | 566 | CODE | |
| LOW | g4f/Provider/needs_auth/DeepSeek.py | 352 | CODE | |
| LOW | g4f/Provider/needs_auth/Anthropic.py | 85 | CODE | |
| LOW | g4f/Provider/needs_auth/Antigravity.py | 1165 | CODE | |
| LOW | g4f/Provider/needs_auth/Cohere.py | 54 | CODE | |
| LOW | g4f/Provider/needs_auth/hf/HuggingFaceMedia.py | 121 | CODE | |
| LOW | g4f/image/copy_images.py | 138 | CODE | |
| LOW | g4f/image/__init__.py | 402 | CODE | |
| LOW | g4f/requests/__init__.py | 135 | CODE | |
| LOW | g4f/api/__init__.py | 593 | CODE | |
| LOW | g4f/client/__init__.py | 355 | CODE | |
| LOW | g4f/client/__init__.py | 753 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | g4f/Provider/qwen/QwenCode.py | 0 | synchronous cli entry point for setup.py console_scripts. | STRING |
| HIGH | g4f/Provider/github/GithubCopilot.py | 0 | synchronous cli entry point for setup.py console_scripts. | STRING |
| HIGH | g4f/Provider/needs_auth/GeminiCLI.py | 0 | synchronous cli entry point for setup.py console_scripts. | STRING |
| HIGH | g4f/Provider/needs_auth/Antigravity.py | 0 | synchronous cli entry point for setup.py console_scripts. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/cookies.py | 150 | def set_cookies(domain_name: str, cookies: Cookies = None) -> None: | CODE |
| LOW | g4f/cookies.py | 206 | def set_cookies_dir(dir_path: str) -> None: | CODE |
| LOW | g4f/tray.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | g4f/typing.py | 88 | __all__ = [ | CODE |
| LOW⚡ | g4f/tools/optimize_request.py | 1160 | def _set_content(msg: dict, content: Any) -> None: | CODE |
| LOW | g4f/tools/optimize_request.py | 578 | def _set_tool_description(tool: Any, desc: str) -> None: | CODE |
| LOW | g4f/tools/token_optimizer.py | 256 | __all__ = [ | CODE |
| LOW | g4f/Provider/__init__.py | 477 | __all__ = [ | CODE |
| LOW | g4f/Provider/search/DDGS.py | 189 | def set_text(self, text: str) -> None: | CODE |
| LOW | g4f/Provider/yupp/models.py | 28 | def _setup_session(self) -> None: | CODE |
| LOW | g4f/Provider/yupp/models.py | 45 | def _set_cookies(self) -> None: | CODE |
| LOW | g4f/mcp/__init__.py | 43 | __all__ = [ | CODE |
| LOW | g4f/requests/cdp.py | 68 | logger = logging.getLogger(__name__) | CODE |
| LOW | g4f/gui/server/api.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | g4f/gui/server/backend_api.py | 92 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | g4f/api/__init__.py | 136 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | etc/tool/fofa_ollama_parser.py | 497 | def update_swarm(hosts: list[str], path: Path = OLLAMA_SWARM_PATH) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | g4f/client/__init__.py | 885 | api_key="your-api-key" | STRING |
| HIGH | etc/testing/test_deepseek_tools.py | 101 | # api_key="your-api-key-here" # Uncomment if needed | COMMENT |
| HIGH | etc/examples/aibadgr.py | 7 | export AIBADGR_API_KEY="your-api-key-here" | STRING |
| HIGH | etc/examples/aibadgr.py | 17 | api_key="your-api-key-here", # Or set AIBADGR_API_KEY environment variable | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/Provider/CopilotSession.py | 121 | await asyncio.sleep(3) | COMMENT |
| LOW | g4f/Provider/CopilotSession.py | 141 | # media = response_json.get("url") | COMMENT |
| LOW | g4f/Provider/CopilotSession.py | 161 | # body: formData | COMMENT |
| LOW | g4f/Provider/Copilot.py | 201 | # if "/c/api/" in har_entry.get("request").get("url", ""): | COMMENT |
| LOW | g4f/Provider/needs_auth/LMArena.py | 261 | textarea = await page.select('textarea[name="message"]') | COMMENT |
| LOW | g4f/Provider/needs_auth/OpenaiChat.py | 301 | COMMENT | |
| LOW | g4f/Provider/needs_auth/Together.py | 121 | ], | COMMENT |
| LOW | g4f/mcp/pa_provider.py | 181 | # --------------------------------------------------------------------------- | COMMENT |
| LOW | g4f/api/_logging.py | 21 | # frame, depth = logging.currentframe(), 2 | COMMENT |
| LOW | g4f/api/__init__.py | 1481 | COMMENT | |
| LOW | g4f/api/_tokenizer.py | 1 | # import tiktoken | COMMENT |
| LOW | projects/discord-bot/bot.py | 141 | } | COMMENT |
| LOW | etc/examples/config.yaml | 1 | # g4f config.yaml – Custom model routing configuration | COMMENT |
| LOW | etc/examples/config.yaml | 21 | # | COMMENT |
| LOW | .github/workflows/build-packages.yml | 301 | # runs-on: ubuntu-latest | COMMENT |
| LOW | g4f-go/runtime_android.go | 21 | // 2. merges the android tarball into the app's writable dir | COMMENT |
| LOW | g4f-go/build-all.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | g4f-go/fetch-python.sh | 1 | #!/usr/bin/env bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/Provider/OperaAria.py | 85 | # Step 1: Get anonymous access token | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 104 | # Step 2: Anonymous signup | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 120 | # Step 3: Exchange auth_token for refresh token | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 215 | # Step 1: Get signed URL | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 227 | # Step 2: Upload to GCS | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 242 | # Step 3: Poll for completion | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/Provider/OperaAria.py | 85 | # Step 1: Get anonymous access token | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 104 | # Step 2: Anonymous signup | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 120 | # Step 3: Exchange auth_token for refresh token | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 215 | # Step 1: Get signed URL | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 227 | # Step 2: Upload to GCS | COMMENT |
| LOW | g4f/Provider/OperaAria.py | 242 | # Step 3: Poll for completion | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | g4f/Provider/qwen/cookie_generator.py | 490 | # Example usage | COMMENT |
| LOW | etc/examples/messages.py | 27 | # Usage example | COMMENT |
| LOW | g4f-go/build-all.sh | 9 | # Usage: | COMMENT |
| LOW | g4f-go/fetch-python.sh | 9 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | etc/unittest/mocks.py | 74 | CODE | |
| MEDIUM | etc/unittest/mocks.py | 83 | CODE | |
| MEDIUM | etc/unittest/mocks.py | 92 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | g4f/Provider/github/oauthFlow.py | 80 | interval += 5 # Increase interval as requested by GitHub | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | etc/tool/fofa_ollama_parser.py | 200 | # If not deep scan and no specific filters, just use a single empty iteration | COMMENT |
| MEDIUM | g4f-go/download.go | 353 | // Best effort: log-free skip keeps extraction robust. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | g4f/Provider/needs_auth/BlackboxPro.py | 352 | "description": "UI-TARS 72B is an open-source multimodal AI model designed specifically for automating browser a | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | g4f/mcp/server.py | 129 | async def handle_request(self, request: MCPRequest) -> MCPResponse: | CODE |