Repository Analysis

zhayujie/CowAgent

Open-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-model, multi-channel. Lightweight, extensible, one-line install. (formerly chatgpt-on-wechat)

29.3 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of zhayujie/CowAgent, a Python project with 45,967 GitHub stars. SynthScan v2.0 examined 115,180 lines of code across 407 source files, recording 2370 pattern matches distributed across 18 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).

29.3
Adjusted Score
29.3
Raw Score
100%
Time Factor
2026-07-14
Last Push
46.0K
Stars
Python
Language
115.2K
Lines of Code
407
Files
2.4K
Pattern Hits
2026-07-14
Scan Date
0.14
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 56MEDIUM 422LOW 1892

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 2370 distinct pattern matches across 18 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.

Decorative Section Separators331 hits · 1071 pts
SeverityFileLineSnippetContext
MEDIUMrun.sh4# ============================COMMENT
MEDIUMrun.sh6# ============================COMMENT
MEDIUMrun.sh31# ============================COMMENT
MEDIUMrun.sh33# ============================COMMENT
MEDIUMplugins/cow_cli/cow_cli.py344 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py346 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py299 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py301 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py410 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py414 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py445 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py447 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py494 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py496 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py531 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py533 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py599 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py601 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py767 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py769 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py820 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py822 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py1222 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py1224 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py1614 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py1616 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py1748 # ------------------------------------------------------------------COMMENT
MEDIUMplugins/cow_cli/cow_cli.py1750 # ------------------------------------------------------------------COMMENT
MEDIUMtests/test_security_ssrf_path_traversal.py23# =============================================================================COMMENT
MEDIUMtests/test_security_ssrf_path_traversal.py25# =============================================================================COMMENT
MEDIUMtests/test_security_ssrf_path_traversal.py138# =============================================================================COMMENT
MEDIUMtests/test_security_ssrf_path_traversal.py140# =============================================================================COMMENT
MEDIUMtests/test_robustness_fixes.py20# =============================================================================COMMENT
MEDIUMtests/test_robustness_fixes.py22# =============================================================================COMMENT
MEDIUMtests/test_robustness_fixes.py67# =============================================================================COMMENT
MEDIUMtests/test_robustness_fixes.py69# =============================================================================COMMENT
MEDIUMtests/test_mcp_tool_retrieval.py66# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_tool_retrieval.py68# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_tool_retrieval.py107# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_tool_retrieval.py109# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_tool_retrieval.py125# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_tool_retrieval.py127# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_tool_retrieval.py167# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_tool_retrieval.py169# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py93# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py95# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py30# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py179# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py181# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py554# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py556# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py680# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_evolution.py682# ---------------------------------------------------------------------------COMMENT
MEDIUMagent/tools/tool_manager.py624 # ------------------------------------------------------------------COMMENT
MEDIUMagent/tools/tool_manager.py631 # ------------------------------------------------------------------COMMENT
MEDIUMagent/tools/web_search/web_search.py153 # ------------------------------------------------------------------COMMENT
MEDIUMagent/tools/web_search/web_search.py155 # ------------------------------------------------------------------COMMENT
MEDIUMagent/tools/web_search/web_search.py193 # ------------------------------------------------------------------COMMENT
MEDIUMagent/tools/web_search/web_search.py195 # ------------------------------------------------------------------COMMENT
271 more matches not shown…
Excessive Try-Catch Wrapping896 hits · 852 pts
SeverityFileLineSnippetContext
LOWconfig.py312 except Exception as e:CODE
LOWconfig.py334 except Exception as e:CODE
LOWconfig.py345 except Exception as e:CODE
LOWconfig.py383 except Exception as e:CODE
LOWconfig.py442 except Exception:CODE
LOWconfig.py580 except Exception:CODE
MEDIUMconfig.py327def load_user_datas(self):CODE
MEDIUMconfig.py338def save_user_datas(self):CODE
MEDIUMconfig.py374def drag_sensitive(config):CODE
LOWapp.py108 except Exception:CODE
LOWapp.py133 except Exception as e:CODE
LOWapp.py165 except Exception as e:CODE
LOWapp.py193 except Exception as e:CODE
LOWapp.py277 except Exception as e:CODE
LOWapp.py304 except Exception as e:CODE
LOWapp.py314 except Exception as e:CODE
LOWapp.py343 except Exception as e:CODE
LOWapp.py347 except Exception as e:CODE
LOWapp.py402 except Exception as e:CODE
LOWplugins/plugin.py43 except Exception as e:CODE
LOWplugins/plugin_manager.py111 except Exception as e:CODE
LOWplugins/plugin_manager.py139 except Exception as e:CODE
LOWplugins/plugin_manager.py176 except Exception as e:CODE
LOWplugins/plugin_manager.py300 except Exception as e:CODE
LOWplugins/plugin_manager.py322 except Exception as e:CODE
LOWplugins/plugin_manager.py332 except Exception as e:CODE
LOWplugins/plugin_manager.py341 except Exception as e:CODE
LOWplugins/plugin_manager.py367 except Exception as e:CODE
LOWplugins/plugin_manager.py391 except Exception as e:CODE
LOWplugins/role/role.py78 except Exception as e:CODE
LOWplugins/role/role.py103 except Exception as e:CODE
LOWplugins/linkai/linkai.py296 except Exception as e:CODE
LOWplugins/linkai/midjourney.py293 except Exception as e:CODE
LOWplugins/linkai/midjourney.py437 except Exception as e:CODE
LOWplugins/linkai/utils.py49 except Exception as e:CODE
MEDIUMplugins/cow_cli/cow_cli.py1285def _run():CODE
MEDIUMplugins/cow_cli/cow_cli.py1460def _run():CODE
LOWplugins/cow_cli/cow_cli.py338 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py99 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py430 except Exception:CODE
LOWplugins/cow_cli/cow_cli.py515 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py702 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py723 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py784 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py875 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py956 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1001 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1049 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1102 except Exception:CODE
LOWplugins/cow_cli/cow_cli.py1207 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1272 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1292 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1309 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1437 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1479 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1497 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1525 except Exception as e:CODE
LOWplugins/cow_cli/cow_cli.py1534 except Exception:CODE
LOWplugins/cow_cli/cow_cli.py1550 except Exception:CODE
LOWplugins/cow_cli/cow_cli.py1645 except Exception as e:CODE
836 more matches not shown…
Hyper-Verbose Identifiers346 hits · 350 pts
SeverityFileLineSnippetContext
LOWconfig.py359def _mask_sensitive_recursive(obj):CODE
LOWconfig.py623def _sync_skill_config_to_env(skill_section) -> int:CODE
LOWconfig.py702def get_weixin_credentials_path():CODE
LOWplugins/plugin_manager.py213 def _apply_desktop_plugin_denylist(self):CODE
LOWplugins/cow_cli/cow_cli.py732 def _resolve_bot_type_for_model(model_name: str) -> str:CODE
LOWplugins/cow_cli/cow_cli.py1314 def _resolve_active_embedding():CODE
LOWplugins/cow_cli/cow_cli.py1600 def _create_standalone_flush_manager():CODE
LOWbridge/agent_bridge.py21def add_openai_compatible_support(bot_instance):CODE
LOWbridge/agent_bridge.py395 def sync_session_messages_from_store(self, session_id: str) -> int:CODE
LOWbridge/agent_bridge.py799 def _pre_persist_user_message(CODE
LOWbridge/agent_bridge.py884 def remember_scheduled_output(CODE
LOWbridge/agent_bridge.py1016 def _prune_scheduled_in_memory(cls, agent, keep_last_n: int) -> None:CODE
LOWbridge/agent_bridge.py1156 def _refresh_conditional_tools(agent):CODE
LOWbridge/agent_initializer.py453 def _initialize_skill_manager(self, workspace_root: str, session_id: Optional[str] = None):CODE
LOWbridge/agent_initializer.py129 def _restore_conversation_history(self, agent, session_id: str) -> None:CODE
LOWbridge/agent_initializer.py178 def _filter_text_only_messages(messages: list) -> list:CODE
LOWbridge/agent_event_handler.py83 def _handle_tool_execution_start(self, data):CODE
LOWbridge/agent_event_handler.py86 def _handle_tool_execution_end(self, data):CODE
LOWtests/test_custom_provider.py70 def test_legacy_fallback_when_no_providers(self):CODE
LOWtests/test_custom_provider.py87 def test_provider_selected_by_id(self):CODE
LOWtests/test_custom_provider.py102 def test_id_not_found_falls_back_to_legacy(self):CODE
LOWtests/test_custom_provider.py117 def test_provider_without_model_returns_none_model(self):CODE
LOWtests/test_custom_provider.py131 def test_malformed_entries_filtered_and_fallback(self):CODE
LOWtests/test_custom_provider.py147 def test_get_custom_providers_filters_invalid(self):CODE
LOWtests/test_custom_provider.py160 def test_custom_providers_not_a_list_falls_back(self):CODE
LOWtests/test_custom_provider.py192 def test_default_config_has_custom_providers(self):CODE
LOWtests/test_custom_provider.py197 def test_default_config_no_custom_active_provider(self):CODE
LOWtests/test_custom_provider.py206 def test_nested_api_key_masked(self):CODE
LOWtests/test_custom_provider.py225 def test_string_config_masked(self):CODE
LOWtests/test_invariant_bash.py11def test_credential_file_access_is_blocked(command):CODE
LOWtests/test_invariant_bash.py22def test_legitimate_cow_directory_access_is_not_blocked(command):CODE
LOWtests/test_security_ssrf_path_traversal.py52 def test_loopback_localhost_blocked(self):CODE
LOWtests/test_security_ssrf_path_traversal.py117 def test_no_hostname_rejected(self):CODE
LOWtests/test_security_ssrf_path_traversal.py123 def test_non_http_scheme_rejected(self):CODE
LOWtests/test_security_ssrf_path_traversal.py129 def test_dns_failure_rejected(self):CODE
LOWtests/test_security_ssrf_path_traversal.py163 def test_dotdot_traversal_blocked(self):CODE
LOWtests/test_security_ssrf_path_traversal.py169 def test_nested_dotdot_blocked(self):CODE
LOWtests/test_security_ssrf_path_traversal.py175 def test_absolute_path_blocked(self):CODE
LOWtests/test_security_ssrf_path_traversal.py181 def test_backslash_path_blocked(self):CODE
LOWtests/test_security_ssrf_path_traversal.py192 def test_whitespace_only_blocked(self):CODE
LOWtests/test_qianfan_provider.py365 def test_web_console_registers_qianfan_provider(self):CODE
LOWtests/test_qianfan_provider.py374 def test_web_console_allows_qianfan_config_edits(self):CODE
LOWtests/test_qianfan_provider.py380 def test_session_plugins_allow_qianfan(self):CODE
LOWtests/test_qianfan_provider.py581 def test_model_indexes_link_qianfan(self):CODE
LOWtests/test_qianfan_provider.py590 def test_readme_documents_native_qianfan_provider(self):CODE
LOWtests/test_qianfan_provider.py597 def test_vision_docs_document_qianfan_provider(self):CODE
LOWtests/test_qianfan_provider.py11 def test_qianfan_provider_constant_defined(self):CODE
LOWtests/test_qianfan_provider.py16 def test_ernie_constants_are_in_model_list(self):CODE
LOWtests/test_qianfan_provider.py46 def test_qianfan_config_keys_are_available(self):CODE
LOWtests/test_qianfan_provider.py52 def test_agent_bridge_routes_ernie_models_to_qianfan(self):CODE
LOWtests/test_qianfan_provider.py74 def test_cow_cli_routes_ernie_models_to_qianfan(self):CODE
LOWtests/test_qianfan_provider.py142 def test_bot_factory_returns_qianfan_bot(self):CODE
LOWtests/test_qianfan_provider.py154 def test_default_model_uses_ernie_when_model_is_provider_alias(self):CODE
LOWtests/test_qianfan_provider.py164 def test_reply_text_posts_openai_compatible_payload(self):CODE
LOWtests/test_qianfan_provider.py214 def test_reply_text_returns_raw_message_for_non_json_error(self):CODE
LOWtests/test_qianfan_provider.py235 def test_qianfan_bot_supports_vision_for_multimodal_models(self):CODE
LOWtests/test_qianfan_provider.py248 def test_qianfan_bot_does_not_advertise_vision_for_text_only_models(self):CODE
LOWtests/test_qianfan_provider.py261 def test_call_vision_posts_openai_compatible_multimodal_payload(self):CODE
LOWtests/test_qianfan_provider.py310 def test_call_vision_allows_explicit_model_override(self):CODE
LOWtests/test_qianfan_provider.py337 def test_call_vision_returns_error_dict_for_api_error(self):CODE
286 more matches not shown…
Deep Nesting313 hits · 253 pts
SeverityFileLineSnippetContext
LOWconfig.py389CODE
LOWconfig.py585CODE
LOWapp.py237CODE
LOWapp.py318CODE
LOWapp.py65CODE
LOWapp.py137CODE
LOWplugins/plugin_manager.py114CODE
LOWplugins/plugin_manager.py167CODE
LOWplugins/plugin_manager.py238CODE
LOWplugins/plugin_manager.py295CODE
LOWplugins/role/role.py44CODE
LOWplugins/role/role.py85CODE
LOWplugins/role/role.py106CODE
LOWplugins/role/role.py127CODE
LOWplugins/linkai/midjourney.py81CODE
LOWplugins/linkai/midjourney.py106CODE
LOWplugins/linkai/midjourney.py270CODE
LOWplugins/linkai/utils.py33CODE
LOWplugins/dungeon/dungeon.py64CODE
LOWplugins/cow_cli/cow_cli.py824CODE
LOWplugins/cow_cli/cow_cli.py878CODE
LOWplugins/cow_cli/cow_cli.py1226CODE
LOWplugins/godcmd/godcmd.py214CODE
LOWplugins/banwords/banwords.py24CODE
LOWplugins/banwords/lib/WordsSearch.py78CODE
LOWplugins/banwords/lib/WordsSearch.py186CODE
LOWplugins/banwords/lib/WordsSearch.py229CODE
LOWplugins/keyword/keyword.py47CODE
LOWplugins/tool/tool.py49CODE
LOWbridge/agent_bridge.py139CODE
LOWbridge/agent_bridge.py199CODE
LOWbridge/agent_bridge.py306CODE
LOWbridge/agent_bridge.py437CODE
LOWbridge/agent_bridge.py729CODE
LOWbridge/agent_bridge.py1016CODE
LOWbridge/agent_bridge.py1026CODE
LOWbridge/agent_initializer.py129CODE
LOWbridge/agent_initializer.py178CODE
LOWbridge/agent_initializer.py333CODE
LOWbridge/agent_initializer.py407CODE
LOWbridge/agent_initializer.py513CODE
LOWbridge/agent_initializer.py609CODE
LOWbridge/agent_event_handler.py35CODE
LOWbridge/bridge.py134CODE
LOWtests/test_models_handler.py32CODE
LOWtests/test_models_handler.py57CODE
LOWtests/test_evolution.py557CODE
LOWtests/test_evolution.py718CODE
LOWagent/tools/tool_manager.py106CODE
LOWagent/tools/tool_manager.py183CODE
LOWagent/tools/tool_manager.py244CODE
LOWagent/tools/tool_manager.py460CODE
LOWagent/tools/web_fetch/web_fetch.py198CODE
LOWagent/tools/web_fetch/web_fetch.py267CODE
LOWagent/tools/web_fetch/web_fetch.py346CODE
LOWagent/tools/web_search/web_search.py431CODE
LOWagent/tools/read/read.py260CODE
LOWagent/tools/read/read.py444CODE
LOWagent/tools/scheduler/task_store.py59CODE
LOWagent/tools/scheduler/integration.py21CODE
253 more matches not shown…
Unused Imports238 hits · 230 pts
SeverityFileLineSnippetContext
LOWconfig.py4CODE
LOWapp.py12CODE
LOWplugins/__init__.py1CODE
LOWplugins/__init__.py2CODE
LOWplugins/plugin.py3CODE
LOWplugins/plugin_manager.py12CODE
LOWplugins/plugin_manager.py14CODE
LOWplugins/role/__init__.py1CODE
LOWplugins/role/role.py13CODE
LOWplugins/linkai/__init__.py1CODE
LOWplugins/linkai/linkai.py4CODE
LOWplugins/linkai/linkai.py12CODE
LOWplugins/dungeon/dungeon.py11CODE
LOWplugins/dungeon/__init__.py1CODE
LOWplugins/finish/__init__.py1CODE
LOWplugins/finish/finish.py8CODE
LOWplugins/cow_cli/__init__.py1CODE
LOWplugins/godcmd/godcmd.py10CODE
LOWplugins/godcmd/godcmd.py17CODE
LOWplugins/godcmd/__init__.py1CODE
LOWplugins/hello/hello.py8CODE
LOWplugins/hello/__init__.py1CODE
LOWplugins/banwords/banwords.py10CODE
LOWplugins/banwords/__init__.py1CODE
LOWplugins/keyword/__init__.py1CODE
LOWplugins/keyword/keyword.py10CODE
LOWplugins/tool/tool.py10CODE
LOWplugins/tool/tool.py11CODE
LOWtests/test_robustness_fixes.py13CODE
LOWtests/test_robustness_fixes.py77CODE
LOWtests/test_evolution.py559CODE
LOWtests/test_evolution.py662CODE
LOWtests/test_minimax_provider.py10CODE
LOWtests/test_minimax_provider.py12CODE
LOWtests/test_minimax_provider.py75CODE
LOWtests/test_knowledge_service.py3CODE
LOWagent/tools/tool_manager.py5CODE
LOWagent/tools/tool_manager.py5CODE
LOWagent/tools/tool_manager.py5CODE
LOWagent/tools/__init__.py2CODE
LOWagent/tools/__init__.py3CODE
LOWagent/tools/__init__.py6CODE
LOWagent/tools/__init__.py7CODE
LOWagent/tools/__init__.py8CODE
LOWagent/tools/__init__.py9CODE
LOWagent/tools/__init__.py10CODE
LOWagent/tools/__init__.py11CODE
LOWagent/tools/__init__.py14CODE
LOWagent/tools/__init__.py15CODE
LOWagent/tools/__init__.py18CODE
LOWagent/tools/base_tool.py4CODE
LOWagent/tools/write/write.py8CODE
LOWagent/tools/write/__init__.py1CODE
LOWagent/tools/web_search/__init__.py1CODE
LOWagent/tools/memory/__init__.py7CODE
LOWagent/tools/memory/__init__.py8CODE
LOWagent/tools/memory/memory_search.py7CODE
LOWagent/tools/memory/memory_search.py7CODE
LOWagent/tools/read/__init__.py1CODE
LOWagent/tools/scheduler/task_store.py10CODE
178 more matches not shown…
Cross-Language Confusion24 hits · 150 pts
SeverityFileLineSnippetContext
HIGHagent/tools/browser/browser_service.py123 return t ? t : null;CODE
HIGHagent/tools/browser/browser_service.py125 if (node.nodeType !== Node.ELEMENT_NODE) return null;CODE
HIGHagent/tools/browser/browser_service.py127 if (SKIP.has(tag)) return null;CODE
HIGHagent/tools/browser/browser_service.py128 if (!visible(node)) return null;CODE
HIGHagent/tools/browser/browser_service.py133 if (r !== null) {CODE
HIGHagent/tools/browser/browser_service.py134 if (typeof r === "string") children.push(r);CODE
HIGHagent/tools/browser/browser_service.py135 else children.push(r);CODE
HIGHagent/tools/browser/browser_service.py144 if (children.length === 0) return null;CODE
HIGHagent/tools/browser/browser_service.py150 if (nativeInteractive || implicitInteractive) {CODE
HIGHagent/tools/browser/browser_service.py160 if (!directText && children.length === 0) {CODE
HIGHagent/tools/browser/browser_service.py176 obj.name = node.name || undefined;CODE
HIGHagent/tools/browser/browser_service.py176 obj.name = node.name || undefined;CODE
HIGHagent/tools/browser/browser_service.py177 obj.value = node.value || undefined;CODE
HIGHagent/tools/browser/browser_service.py177 obj.value = node.value || undefined;CODE
HIGHagent/tools/browser/browser_service.py178 obj.placeholder = node.placeholder || undefined;CODE
HIGHagent/tools/browser/browser_service.py178 obj.placeholder = node.placeholder || undefined;CODE
HIGHagent/tools/browser/browser_service.py71 if (role && CLICKABLE_ROLES.has(role)) return true;CODE
HIGHagent/tools/browser/browser_service.py98 if (ariaLabel && ariaLabel.trim()) return true;CODE
HIGHagent/tools/browser/browser_service.py100 if (title && title.trim()) return true;CODE
HIGHagent/tools/browser/browser_service.py200 if (children.length === 1 && typeof children[0] === "string") {CODE
HIGHagent/tools/browser/browser_service.py761 const el = window.__cowRefMap && window.__cowRefMap[{ref}];CODE
HIGHagent/tools/browser/browser_service.py789 const el = window.__cowRefMap && window.__cowRefMap[{ref}];CODE
HIGHagent/tools/browser/browser_service.py818 const el = window.__cowRefMap && window.__cowRefMap[{ref}];CODE
HIGHagent/tools/browser/browser_service.py819 if (!el || el.tagName.toLowerCase() !== "select")CODE
Cross-File Repetition24 hits · 120 pts
SeverityFileLineSnippetContext
HIGHagent/tools/write/write.py0resolve path to absolute path :param path: relative or absolute path :return: absolute pathSTRING
HIGHagent/tools/read/read.py0resolve path to absolute path :param path: relative or absolute path :return: absolute pathSTRING
HIGHagent/tools/edit/edit.py0resolve path to absolute path :param path: relative or absolute path :return: absolute pathSTRING
HIGHmodels/openai_compatible_bot.py0convert tools from claude format to dashscope format claude format: {name, description, input_schema} dashscope format: STRING
HIGHmodels/zhipuai/zhipuai_bot.py0convert tools from claude format to dashscope format claude format: {name, description, input_schema} dashscope format: STRING
HIGHmodels/dashscope/dashscope_bot.py0convert tools from claude format to dashscope format claude format: {name, description, input_schema} dashscope format: STRING
HIGHmodels/moonshot/moonshot_bot.py0convert tools from claude format to openai format. claude: {name, description, input_schema} openai: {type: "function", STRING
HIGHmodels/doubao/doubao_bot.py0convert tools from claude format to openai format. claude: {name, description, input_schema} openai: {type: "function", STRING
HIGHmodels/deepseek/deepseek_bot.py0convert tools from claude format to openai format. claude: {name, description, input_schema} openai: {type: "function", STRING
HIGHmodels/baidu/baidu_wenxin_session.py0returns the number of tokens used by a list of messages.STRING
HIGHmodels/minimax/minimax_session.py0returns the number of tokens used by a list of messages.STRING
HIGHmodels/chatgpt/chat_gpt_session.py0returns the number of tokens used by a list of messages.STRING
HIGHmodels/linkai/link_ai_bot.py0get api configuration for openai-compatible base classSTRING
HIGHmodels/chatgpt/chat_gpt_bot.py0get api configuration for openai-compatible base classSTRING
HIGHmodels/openai/open_ai_bot.py0get api configuration for openai-compatible base classSTRING
HIGHchannel/discord/discord_channel.py0fast-path: /cancel calls cancel_session directly without going through agent.STRING
HIGHchannel/telegram/telegram_channel.py0fast-path: /cancel calls cancel_session directly without going through agent.STRING
HIGHchannel/slack/slack_channel.py0fast-path: /cancel calls cancel_session directly without going through agent.STRING
HIGHchannel/discord/discord_channel.py0split long text preferring line breaks to keep markdown structure intact.STRING
HIGHchannel/telegram/telegram_channel.py0split long text preferring line breaks to keep markdown structure intact.STRING
HIGHchannel/slack/slack_channel.py0split long text preferring line breaks to keep markdown structure intact.STRING
HIGHchannel/discord/discord_message.py0local download directory, aligned with other channels (agent_workspace/tmp).STRING
HIGHchannel/telegram/telegram_message.py0local download directory, aligned with other channels (agent_workspace/tmp).STRING
HIGHchannel/slack/slack_message.py0local download directory, aligned with other channels (agent_workspace/tmp).STRING
Redundant / Tautological Comments52 hits · 84 pts
SeverityFileLineSnippetContext
LOWrun.sh25# Check if using BashCOMMENT
LOWrun.sh1034# Check if service is runningCOMMENT
LOWrun.sh1039# Check if cow CLI is availableCOMMENT
LOWbridge/agent_bridge.py379 # Check if agent exists for this sessionCOMMENT
LOWbridge/agent_bridge.py610 # Check if there are files to send (from send/read tool)COMMENT
LOWagent/tools/tool_manager.py116 # Check if __all__ is definedCOMMENT
LOWagent/tools/write/write.py62 # Write fileCOMMENT
LOWagent/tools/read/read.py96 # Check if file existsCOMMENT
LOWagent/tools/read/read.py107 # Check if readableCOMMENT
LOWagent/tools/read/read.py115 # Check if image - return metadata for sendingCOMMENT
LOWagent/tools/read/read.py119 # Check if video/audio/binary/archive - return metadata onlyCOMMENT
LOWagent/tools/read/read.py127 # Check if PDFCOMMENT
LOWagent/tools/read/read.py131 # Check if Office document (.docx, .xlsx, .pptx, etc.)COMMENT
LOWagent/tools/read/read.py286 # Read file (utf-8-sig strips BOM automatically on Windows)COMMENT
LOWagent/tools/scheduler/scheduler_tool.py340 # Check if it's relative time (e.g., "+5s", "+10m", "+1h", "+1d")COMMENT
LOWagent/tools/utils/truncate.py100 # Check if no truncation is neededCOMMENT
LOWagent/tools/utils/truncate.py116 # Check if first line alone exceeds byte limitCOMMENT
LOWagent/tools/utils/truncate.py195 # Check if no truncation is neededCOMMENT
LOWagent/tools/bash/bash.py200 # Check if we need to save full output to temp fileSTRING
LOWagent/tools/edit/edit.py69 # Check if file existsCOMMENT
LOWagent/tools/edit/edit.py73 # Check if readable/writableCOMMENT
LOWagent/tools/edit/edit.py78 # Read fileCOMMENT
LOWagent/tools/edit/edit.py143 # Write fileCOMMENT
LOWagent/tools/send/send.py65 # Check if file existsCOMMENT
LOWagent/tools/send/send.py69 # Check if readableCOMMENT
LOWagent/memory/chunker.py85 # Check if adding this line would exceed limitCOMMENT
LOWagent/protocol/agent_stream.py521 # Check if this is a file to sendCOMMENT
LOWagent/protocol/agent_stream.py915 # Check if this is a context overflow error (keyword-based, works for all models)COMMENT
LOWagent/protocol/agent_stream.py993 # Check if error is context overflow (non-retryable, needs session reset)COMMENT
LOWagent/protocol/agent_stream.py1005 # Check if error is message format error (incomplete tool_use/tool_result pairs)COMMENT
LOWagent/protocol/agent_stream.py1061 # Check if error is rate limit (429)COMMENT
LOWagent/protocol/agent_stream.py1064 # Check if error is retryable (timeout, connection, server busy, etc.)COMMENT
LOWagent/prompt/workspace.py45 # Check if this is a brand new workspace (AGENT.md not yet created).COMMENT
LOWagent/skills/config.py201 # Check if value is truthyCOMMENT
LOWmodels/openai_compatible_bot.py264 # Check if already in OpenAI formatCOMMENT
LOWmodels/openai_compatible_bot.py328 # Check if this is a tool result message (user role with tool_result blocks)COMMENT
LOWmodels/openai_compatible_bot.py362 # Check if this is an assistant message with tool_use blocksCOMMENT
LOWmodels/zhipuai/zhipuai_bot.py396 # Check if already in ZhipuAI/OpenAI formatCOMMENT
LOWmodels/zhipuai/zhipuai_bot.py435 # Check if this is a tool result message (user role with tool_result blocks)COMMENT
LOWmodels/zhipuai/zhipuai_bot.py446 # Check if this is an assistant message with tool_use blocksCOMMENT
LOWmodels/dashscope/dashscope_bot.py533 # Check if already in DashScope/OpenAI formatCOMMENT
LOWmodels/dashscope/dashscope_bot.py603 # Check if this is a tool result message (user role with tool_result blocks)COMMENT
LOWmodels/dashscope/dashscope_bot.py614 # Check if this is an assistant message with tool_use blocksCOMMENT
LOWmodels/chatgpt/chat_gpt_bot.py180 # Check if file existsCOMMENT
LOWchannel/channel.py75 # Check if agent mode is enabledCOMMENT
LOWchannel/dingtalk/dingtalk_channel.py730 # Check if msg exists (for scheduled tasks, msg might be None)COMMENT
LOWchannel/feishu/feishu_channel.py1410 # Check if it's a local file path (file:// protocol)COMMENT
LOWchannel/feishu/feishu_channel.py689 # Check if we can reply to an existing message (need msg_id)COMMENT
LOWchannel/feishu/feishu_channel.py1161 # Check if it's a local file path (file:// protocol)COMMENT
LOWchannel/web/web_channel.py1989 # Check if password was cleared: if there was a password before clearing,COMMENT
LOWchannel/wecom_bot/wecom_bot_channel.py453 # Check if this is a response to a pending requestCOMMENT
LOWskills/skill-creator/scripts/init_skill.py208 # Check if directory already existsCOMMENT
Self-Referential Comments17 hits · 55 pts
SeverityFileLineSnippetContext
MEDIUMbridge/agent_bridge.py35 # Create a temporary mixin class that combines the bot with OpenAI compatibilityCOMMENT
MEDIUMtests/test_security_ssrf_path_traversal.py147 # Create a minimal SkillManager mock with custom_dir set.COMMENT
MEDIUMagent/tools/tool_manager.py146 # Create a temporary instance to get the nameCOMMENT
MEDIUMagent/tools/tool_manager.py217 # Create a temporary instance to get the nameCOMMENT
MEDIUMagent/tools/tool_manager.py718 # Create a new instanceCOMMENT
MEDIUMagent/tools/tool_manager.py742 # Create a temporary instance to get schemaCOMMENT
MEDIUMagent/tools/scheduler/integration.py218 # Create a unique session_id for this scheduled task to avoid polluting user's conversationCOMMENT
MEDIUMagent/tools/bash/bash.py178 # Create a mock result with helpful error messageSTRING
MEDIUMagent/memory/summarizer.py817 # Create main MEMORY.md in workspace root (always needed for bootstrap)COMMENT
MEDIUMagent/chat/service.py177 # Create a copy of messages for this executionCOMMENT
MEDIUMagent/protocol/agent.py430 # Create a copy of messages for this execution to avoid concurrent modificationCOMMENT
MEDIUMagent/prompt/workspace.py60 # Create the memory subdirectoryCOMMENT
MEDIUMagent/prompt/workspace.py63 # Create the skills subdirectory (for workspace-level skills installed by agent)COMMENT
MEDIUMagent/prompt/workspace.py67 # Create the websites subdirectory (for web pages / sites generated by agent)COMMENT
MEDIUMchannel/web/web_channel.py3233 # Creating a new provider — api_base is mandatory.COMMENT
MEDIUMchannel/wechatmp/passive_reply.py18# This class is instantiated once per queryCOMMENT
MEDIUMchannel/wechatmp/active_reply.py16# This class is instantiated once per queryCOMMENT
Magic Placeholder Names8 hits · 45 pts
SeverityFileLineSnippetContext
HIGHbridge/bridge.py121 return v != "" and v not in ("YOUR API KEY", "YOUR_API_KEY")CODE
HIGHagent/memory/embedding/provider.py219 if not self.api_key or self.api_key in ["", "YOUR API KEY", "YOUR_API_KEY"]:CODE
HIGHagent/memory/embedding/provider.py337 if not self.api_key or self.api_key in ["", "YOUR API KEY", "YOUR_API_KEY"]:CODE
HIGHagent/memory/embedding/factory.py45 if openai_api_key and openai_api_key not in ["", "YOUR API KEY", "YOUR_API_KEY"]:CODE
HIGHagent/memory/embedding/factory.py61 if linkai_api_key and linkai_api_key not in ["", "YOUR API KEY", "YOUR_API_KEY"]:CODE
HIGHagent/memory/embedding/factory.py170 if value in ["", "YOUR API KEY", "YOUR_API_KEY"]:CODE
HIGHchannel/web/web_channel.py650 if val and val not in ("YOUR API KEY", "YOUR_API_KEY"):CODE
HIGHchannel/web/web_channel.py2442 return bool(value) and value not in ("", "YOUR API KEY", "YOUR_API_KEY")CODE
Structural Annotation Overuse25 hits · 40 pts
SeverityFileLineSnippetContext
LOWrun.sh1260 # Step 0: choose the install/UI language. Everything after this is localized.COMMENT
LOWagent/tools/vision/vision.py237 # Step 1: preferred provider — explicit `tools.vision.provider`COMMENT
LOWagent/tools/vision/vision.py248 # Step 2: auto-discovery chain as fallbackCOMMENT
LOWagent/memory/storage.py658 # Step 1: Standard FTS5 (unicode61) — pure ASCII queries only.STRING
LOWagent/memory/storage.py673 # Step 2: Trigram FTS5 — CJK/mixed queries, plus fallback when unicode61STRING
LOWagent/memory/storage.py683 # Step 3: LIKE fallback — last resort (FTS5 unavailable, or CJK tokensSTRING
LOWagent/protocol/agent_stream.py197 # Step 2: append a stable "interrupted" marker so the LLM sees aCOMMENT
LOWagent/protocol/agent_stream.py1631 # Step 0: Truncate large tool results in historical turns (30K -> 10K)COMMENT
LOWagent/protocol/agent_stream.py1634 # Step 1: 识别完整轮次COMMENT
LOWagent/protocol/agent_stream.py1640 # Step 2: 轮次限制 - 超出时移除前一半,保留后一半COMMENT
LOWagent/protocol/agent_stream.py1667 # Step 3: Token 限制 - 保留完整轮次COMMENT
LOWagent/protocol/agent_stream.py165 # Step 1: close any orphaned tool_use in the trailing assistantCOMMENT
LOWagent/protocol/agent_stream.py1484 # Step 1: Aggressively truncate ALL tool results to 5K charsCOMMENT
LOWagent/protocol/agent_stream.py1517 # Step 2: Truncate overly long user text messages (e.g. pasted content)COMMENT
LOWagent/protocol/agent_stream.py1542 # Step 3: Keep only the last 5 complete turnsCOMMENT
LOWchannel/web/static/js/console.js1210 // Step 1: replace markdown-it anchor tags whose href points to a video file.COMMENT
LOWchannel/web/static/js/console.js1215 // Step 2: replace any remaining bare video URLs in text nodes (not inside HTML tags).COMMENT
LOWchannel/web/static/js/console.js1233 // Step 1: anchor whose href points to an image file -> replace with <img> preview.COMMENT
LOWchannel/web/static/js/console.js1238 // Step 2: bare image URLs left in text nodes (rare — markdown-it's linkify usually catches them).COMMENT
LOWskills/skill-creator/SKILL.md135### Step 1: Understanding the Skill with Concrete ExamplesCOMMENT
LOWskills/skill-creator/SKILL.md152### Step 2: Planning the Reusable Skill ContentsCOMMENT
LOWskills/skill-creator/SKILL.md185### Step 3: Initialize the SkillCOMMENT
LOWskills/skill-creator/SKILL.md220### Step 4: Edit the SkillCOMMENT
LOWskills/skill-creator/SKILL.md370### Step 5: Validate (Optional)COMMENT
LOWskills/skill-creator/SKILL.md392### Step 6: IterateCOMMENT
Modern AI Meta-Vocabulary10 hits · 34 pts
SeverityFileLineSnippetContext
MEDIUMconfig.py110 "qwen_node_id": "", # id used by workflow-orchestration models; keep it an empty string if qwen_node_id is unusedCODE
MEDIUMbridge/agent_bridge.py173 # reasoning trace, but still benefit from the higher answerCOMMENT
MEDIUMbridge/agent_bridge.py235 # reasoning trace, but still benefit from the higher answerCOMMENT
MEDIUMtests/test_evolution.py94# Test scaffoldingCOMMENT
MEDIUMagent/tools/mcp/tool_retrieval.py116 # embedding model; ranking across dims is meaningless.COMMENT
MEDIUMagent/memory/embedding/provider.py68# default_model : default embedding model nameCOMMENT
MEDIUMagent/memory/embedding/factory.py20# Track whether the embedding model log has been printed in this process,COMMENT
MEDIUMagent/protocol/agent_stream.py1668 # Get context window from agent (based on model)COMMENT
MEDIUMagent/protocol/agent.py222 # Reserve ~10% of context window, with min 10K and max 200KCOMMENT
MEDIUMagent/prompt/workspace.py158 # Truncate MEMORY.md to protect context window (frozen snapshot)COMMENT
Verbosity Indicators19 hits · 30 pts
SeverityFileLineSnippetContext
LOWrun.sh1260 # Step 0: choose the install/UI language. Everything after this is localized.COMMENT
LOWagent/tools/vision/vision.py237 # Step 1: preferred provider — explicit `tools.vision.provider`COMMENT
LOWagent/tools/vision/vision.py248 # Step 2: auto-discovery chain as fallbackCOMMENT
LOWagent/memory/storage.py658 # Step 1: Standard FTS5 (unicode61) — pure ASCII queries only.STRING
LOWagent/memory/storage.py673 # Step 2: Trigram FTS5 — CJK/mixed queries, plus fallback when unicode61STRING
LOWagent/memory/storage.py683 # Step 3: LIKE fallback — last resort (FTS5 unavailable, or CJK tokensSTRING
LOWagent/protocol/agent_stream.py197 # Step 2: append a stable "interrupted" marker so the LLM sees aCOMMENT
LOWagent/protocol/agent_stream.py1631 # Step 0: Truncate large tool results in historical turns (30K -> 10K)COMMENT
LOWagent/protocol/agent_stream.py1634 # Step 1: 识别完整轮次COMMENT
LOWagent/protocol/agent_stream.py1640 # Step 2: 轮次限制 - 超出时移除前一半,保留后一半COMMENT
LOWagent/protocol/agent_stream.py1667 # Step 3: Token 限制 - 保留完整轮次COMMENT
LOWagent/protocol/agent_stream.py165 # Step 1: close any orphaned tool_use in the trailing assistantCOMMENT
LOWagent/protocol/agent_stream.py1484 # Step 1: Aggressively truncate ALL tool results to 5K charsCOMMENT
LOWagent/protocol/agent_stream.py1517 # Step 2: Truncate overly long user text messages (e.g. pasted content)COMMENT
LOWagent/protocol/agent_stream.py1542 # Step 3: Keep only the last 5 complete turnsCOMMENT
LOWchannel/web/static/js/console.js1210 // Step 1: replace markdown-it anchor tags whose href points to a video file.COMMENT
LOWchannel/web/static/js/console.js1215 // Step 2: replace any remaining bare video URLs in text nodes (not inside HTML tags).COMMENT
LOWchannel/web/static/js/console.js1233 // Step 1: anchor whose href points to an image file -> replace with <img> preview.COMMENT
LOWchannel/web/static/js/console.js1238 // Step 2: bare image URLs left in text nodes (rare — markdown-it's linkify usually catches them).COMMENT
Modern Structural Boilerplate28 hits · 28 pts
SeverityFileLineSnippetContext
LOWplugins/banwords/lib/WordsSearch.py10__all__ = ['WordsSearch']CODE
LOWagent/tools/__init__.py130__all__ = [CODE
LOWagent/tools/write/__init__.py3__all__ = ['Write']CODE
LOWagent/tools/web_search/__init__.py3__all__ = ["WebSearch"]CODE
LOWagent/tools/memory/__init__.py10__all__ = ['MemorySearchTool', 'MemoryGetTool']CODE
LOWagent/tools/read/__init__.py3__all__ = ['Read']CODE
LOWagent/tools/scheduler/__init__.py7__all__ = ["SchedulerTool"]CODE
LOWagent/tools/evolution_undo/__init__.py3__all__ = ["EvolutionUndoTool"]CODE
LOWagent/tools/utils/__init__.py29__all__ = [CODE
LOWagent/tools/mcp/__init__.py4__all__ = ["McpClient", "McpClientRegistry", "McpTool"]CODE
LOWagent/tools/mcp/mcp_client.py30def set_reload_callback(fn) -> None:CODE
LOWagent/tools/bash/__init__.py3__all__ = ['Bash']CODE
LOWagent/tools/edit/__init__.py3__all__ = ['Edit']CODE
LOWagent/tools/browser/__init__.py3__all__ = ["BrowserTool"]CODE
LOWagent/tools/env_config/__init__.py3__all__ = ['EnvConfig']CODE
LOWagent/tools/ls/__init__.py3__all__ = ['Ls']CODE
LOWagent/tools/send/__init__.py3__all__ = ['Send']CODE
LOWagent/memory/__init__.py14__all__ = [CODE
LOWagent/memory/embedding/__init__.py30__all__ = [CODE
LOWagent/chat/__init__.py3__all__ = ["ChatService"]CODE
LOWagent/protocol/task.py88 def update_status(self, status: TaskStatus) -> None:CODE
LOWagent/protocol/__init__.py12__all__ = [CODE
LOWagent/prompt/__init__.py8__all__ = [CODE
LOWagent/evolution/__init__.py16__all__ = [CODE
LOWagent/skills/__init__.py21__all__ = [CODE
LOWmodels/openai/openai_compat.py148__all__ = [CODE
LOWchannel/file_cache.py8logger = logging.getLogger(__name__)CODE
LOWchannel/weixin/weixin_channel.py209 def _update_context_token(self, user_id: str, token: str) -> None:CODE
Over-Commented Block28 hits · 22 pts
SeverityFileLineSnippetContext
LOWdocker/entrypoint.sh1#!/bin/bashCOMMENT
LOWplugins/tool/README.md121###### 发送短信COMMENT
LOWdesktop/electron-builder.win.js101async function customSign(configuration) {COMMENT
LOWdesktop/src/renderer/src/store/onboardingStore.ts1import { create } from 'zustand'COMMENT
LOWagent/tools/mcp/mcp_client.py101 # OAuth state (streamable-http only). Lazily created when the serverCOMMENT
LOWagent/memory/embedding/provider.py61#COMMENT
LOWagent/chat/service.py221 # Sync executor messages back to agent (thread-safe).COMMENT
LOWagent/protocol/agent_stream.py821 except Exception:COMMENT
LOWagent/protocol/agent_stream.py1701 # Token limit exceeded — tiered strategy based on turn count:COMMENT
LOWmodels/openai/open_ai_bot.py161 # which calls /chat/completions via our shared HTTP client. The previousCOMMENT
LOWmodels/openai/openai_http_client.py341 # error-shape that `_handle_stream_response` previously emitted.COMMENT
LOWchannel/web/web_channel.py2361 "qianfan": [const.ERNIE_45_TURBO_VL],COMMENT
LOWchannel/web/web_channel.py2381 const.KIMI_K2_6,COMMENT
LOWchannel/web/web_channel.py2641 # Pick a model that the vision runtime can actually dispatch toCOMMENT
LOWchannel/web/static/js/console.js5221 overlay.classList.remove('hidden');COMMENT
LOWchannel/web/static/js/console.js6061 // (see renderCapabilityBody) so the save button stays close to theCOMMENT
LOWchannel/web/static/js/console.js6141 }COMMENT
LOWchannel/web/static/js/console.js6541 statusEl.classList.add('opacity-0');COMMENT
LOWchannel/web/static/js/console.js9341 // to a specific user-session on that channel. Changing the channel to weixinCOMMENT
LOWvoice/xunfei/xunfei_tts.py1# -*- coding:utf-8 -*-COMMENT
LOWvoice/xunfei/xunfei_asr.py1# -*- coding:utf-8 -*-COMMENT
LOWvoice/xunfei/xunfei_voice.py1#####################################################################COMMENT
LOWvoice/xunfei/xunfei_voice.py61 # 识别本地文件COMMENT
LOW.github/workflows/release.yml1name: Release DesktopCOMMENT
LOW.github/workflows/release.yml161 # Pick the signing cert for THIS platform only. The mac and win secretsCOMMENT
LOW.github/workflows/release.yml181 ;;COMMENT
LOW.github/workflows/release.yml321 run: |COMMENT
LOW.github/workflows/publish-desktop.yml1name: Publish DesktopCOMMENT
AI Structural Patterns8 hits · 8 pts
SeverityFileLineSnippetContext
LOWagent/memory/embedding/provider.py181CODE
LOWagent/protocol/agent.py14CODE
LOWagent/prompt/builder.py78CODE
LOWagent/skills/loader.py45CODE
LOWmodels/xunfei/xunfei_spark_bot.py269CODE
LOWmodels/xunfei/xunfei_spark_bot.py183CODE
LOWmodels/openai/openai_http_client.py116CODE
LOWvoice/ali/ali_api.py184CODE
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
LOWagent/memory/manager.py215 # No embeddings, just use NoneCOMMENT
MEDIUMagent/memory/manager.py313 # on any sibling helpers — keeps it robust against partial reloadsCOMMENT
Fake / Example Data1 hit · 0 pts
SeverityFileLineSnippetContext
LOWagent/tools/browser/browser_service.py265 for attr in ("type", "name", "href", "alt", "role", "ariaLabel", "placeholder", "value"):CODE