Repository Analysis

zhayujie/CowAgent

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

33.2 Strong AI signal View on GitHub
33.2
Adjusted Score
33.2
Raw Score
100%
Time Factor
2026-05-29
Last Push
44,956
Stars
Python
Language
76,320
Lines of Code
295
Files
1833
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 45MEDIUM 315LOW 1473

Pattern Findings

1833 matches across 13 categories. Click a row to expand file-level details.

Decorative Section Separators247 hits · 779 pts
SeverityFileLineSnippet
MEDIUMrun.sh4# ============================
MEDIUMrun.sh6# ============================
MEDIUMplugins/cow_cli/cow_cli.py220 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py222 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py178 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py180 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py257 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py261 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py292 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py294 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py337 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py339 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py374 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py376 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py428 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py430 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py584 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py586 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py629 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py631 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py1016 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py1018 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py1337 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py1339 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py1464 # ------------------------------------------------------------------
MEDIUMplugins/cow_cli/cow_cli.py1466 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py153 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py155 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py193 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py195 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py244 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py246 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py295 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py297 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py358 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py360 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py427 # ------------------------------------------------------------------
MEDIUMagent/tools/web_search/web_search.py429 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py147 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py149 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py62 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py64 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py213 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py215 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py270 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py272 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py384 # ------------------------------------------------------------------
MEDIUMagent/tools/mcp/mcp_client.py386 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py675 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py677 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py30# ---------------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py32# ---------------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py356 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py358 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py634 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py636 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py654 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py656 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py950 # ------------------------------------------------------------------
MEDIUMagent/tools/browser/browser_service.py952 # ------------------------------------------------------------------
187 more matches not shown…
Excessive Try-Catch Wrapping748 hits · 708 pts
SeverityFileLineSnippet
LOWconfig.py266 except Exception as e:
LOWconfig.py282 except Exception as e:
LOWconfig.py291 except Exception as e:
LOWconfig.py316 except Exception as e:
LOWconfig.py365 except Exception:
LOWconfig.py489 except Exception:
MEDIUMconfig.py275def load_user_datas(self):
MEDIUMconfig.py286def save_user_datas(self):
MEDIUMconfig.py298def drag_sensitive(config):
LOWapp.py95 except Exception:
LOWapp.py120 except Exception as e:
LOWapp.py152 except Exception as e:
LOWapp.py180 except Exception as e:
LOWapp.py260 except Exception as e:
LOWapp.py287 except Exception as e:
LOWapp.py297 except Exception as e:
LOWapp.py326 except Exception as e:
LOWapp.py330 except Exception as e:
LOWapp.py377 except Exception as e:
LOWplugins/plugin.py43 except Exception as e:
LOWplugins/plugin_manager.py86 except Exception as e:
LOWplugins/plugin_manager.py114 except Exception as e:
LOWplugins/plugin_manager.py151 except Exception as e:
LOWplugins/plugin_manager.py254 except Exception as e:
LOWplugins/plugin_manager.py276 except Exception as e:
LOWplugins/plugin_manager.py286 except Exception as e:
LOWplugins/plugin_manager.py295 except Exception as e:
LOWplugins/plugin_manager.py321 except Exception as e:
LOWplugins/plugin_manager.py345 except Exception as e:
LOWplugins/role/role.py70 except Exception as e:
LOWplugins/linkai/linkai.py296 except Exception as e:
LOWplugins/linkai/midjourney.py293 except Exception as e:
LOWplugins/linkai/midjourney.py437 except Exception as e:
LOWplugins/linkai/utils.py49 except Exception as e:
MEDIUMplugins/cow_cli/cow_cli.py1073def _run():
MEDIUMplugins/cow_cli/cow_cli.py1230def _run():
LOWplugins/cow_cli/cow_cli.py214 except Exception as e:
LOWplugins/cow_cli/cow_cli.py277 except Exception:
LOWplugins/cow_cli/cow_cli.py358 except Exception as e:
LOWplugins/cow_cli/cow_cli.py519 except Exception as e:
LOWplugins/cow_cli/cow_cli.py540 except Exception as e:
LOWplugins/cow_cli/cow_cli.py601 except Exception as e:
LOWplugins/cow_cli/cow_cli.py675 except Exception as e:
LOWplugins/cow_cli/cow_cli.py753 except Exception as e:
LOWplugins/cow_cli/cow_cli.py798 except Exception as e:
LOWplugins/cow_cli/cow_cli.py846 except Exception as e:
LOWplugins/cow_cli/cow_cli.py899 except Exception:
LOWplugins/cow_cli/cow_cli.py1002 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1060 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1080 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1094 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1209 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1245 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1261 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1285 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1294 except Exception:
LOWplugins/cow_cli/cow_cli.py1367 except Exception as e:
LOWplugins/cow_cli/cow_cli.py1481 except Exception:
LOWplugins/godcmd/godcmd.py295 except Exception as e:
LOWplugins/godcmd/godcmd.py315 except Exception as e:
688 more matches not shown…
Deep Nesting281 hits · 229 pts
SeverityFileLineSnippet
LOWconfig.py298
LOWconfig.py322
LOWconfig.py494
LOWapp.py224
LOWapp.py301
LOWapp.py60
LOWapp.py124
LOWplugins/plugin_manager.py89
LOWplugins/plugin_manager.py142
LOWplugins/plugin_manager.py192
LOWplugins/plugin_manager.py249
LOWplugins/role/role.py44
LOWplugins/role/role.py77
LOWplugins/role/role.py98
LOWplugins/linkai/midjourney.py81
LOWplugins/linkai/midjourney.py106
LOWplugins/linkai/midjourney.py270
LOWplugins/linkai/utils.py33
LOWplugins/dungeon/dungeon.py64
LOWplugins/cow_cli/cow_cli.py633
LOWplugins/cow_cli/cow_cli.py678
LOWplugins/cow_cli/cow_cli.py1020
LOWplugins/godcmd/godcmd.py214
LOWplugins/banwords/banwords.py24
LOWplugins/banwords/lib/WordsSearch.py78
LOWplugins/banwords/lib/WordsSearch.py186
LOWplugins/banwords/lib/WordsSearch.py229
LOWplugins/keyword/keyword.py47
LOWplugins/tool/tool.py49
LOWbridge/agent_bridge.py138
LOWbridge/agent_bridge.py198
LOWbridge/agent_bridge.py297
LOWbridge/agent_bridge.py386
LOWbridge/agent_bridge.py622
LOWbridge/agent_bridge.py867
LOWbridge/agent_bridge.py877
LOWbridge/agent_initializer.py133
LOWbridge/agent_initializer.py182
LOWbridge/agent_initializer.py507
LOWbridge/agent_initializer.py573
LOWbridge/agent_initializer.py670
LOWbridge/agent_initializer.py766
LOWbridge/agent_event_handler.py35
LOWbridge/bridge.py134
LOWagent/tools/tool_manager.py90
LOWagent/tools/tool_manager.py167
LOWagent/tools/tool_manager.py228
LOWagent/tools/tool_manager.py444
LOWagent/tools/web_fetch/web_fetch.py150
LOWagent/tools/web_fetch/web_fetch.py222
LOWagent/tools/web_fetch/web_fetch.py301
LOWagent/tools/web_search/web_search.py431
LOWagent/tools/read/read.py221
LOWagent/tools/read/read.py398
LOWagent/tools/scheduler/task_store.py59
LOWagent/tools/scheduler/integration.py21
LOWagent/tools/scheduler/integration.py192
LOWagent/tools/scheduler/integration.py292
LOWagent/tools/scheduler/integration.py373
LOWagent/tools/scheduler/integration.py445
221 more matches not shown…
Unused Imports219 hits · 213 pts
SeverityFileLineSnippet
LOWapp.py12
LOWplugins/__init__.py1
LOWplugins/__init__.py2
LOWplugins/plugin.py3
LOWplugins/plugin_manager.py12
LOWplugins/plugin_manager.py14
LOWplugins/role/__init__.py1
LOWplugins/role/role.py13
LOWplugins/linkai/__init__.py1
LOWplugins/linkai/linkai.py4
LOWplugins/linkai/linkai.py12
LOWplugins/dungeon/dungeon.py11
LOWplugins/dungeon/__init__.py1
LOWplugins/finish/__init__.py1
LOWplugins/finish/finish.py8
LOWplugins/cow_cli/__init__.py1
LOWplugins/godcmd/godcmd.py10
LOWplugins/godcmd/godcmd.py17
LOWplugins/godcmd/__init__.py1
LOWplugins/hello/hello.py8
LOWplugins/hello/__init__.py1
LOWplugins/banwords/banwords.py10
LOWplugins/banwords/__init__.py1
LOWplugins/keyword/__init__.py1
LOWplugins/keyword/keyword.py10
LOWplugins/tool/tool.py10
LOWplugins/tool/tool.py11
LOWtests/test_minimax_provider.py10
LOWtests/test_minimax_provider.py12
LOWtests/test_minimax_provider.py66
LOWagent/tools/tool_manager.py5
LOWagent/tools/tool_manager.py5
LOWagent/tools/tool_manager.py5
LOWagent/tools/__init__.py2
LOWagent/tools/__init__.py3
LOWagent/tools/__init__.py6
LOWagent/tools/__init__.py7
LOWagent/tools/__init__.py8
LOWagent/tools/__init__.py9
LOWagent/tools/__init__.py10
LOWagent/tools/__init__.py11
LOWagent/tools/__init__.py14
LOWagent/tools/__init__.py15
LOWagent/tools/base_tool.py4
LOWagent/tools/write/write.py8
LOWagent/tools/write/__init__.py1
LOWagent/tools/web_search/__init__.py1
LOWagent/tools/memory/__init__.py7
LOWagent/tools/memory/__init__.py8
LOWagent/tools/memory/memory_search.py7
LOWagent/tools/memory/memory_search.py7
LOWagent/tools/read/__init__.py1
LOWagent/tools/scheduler/task_store.py10
LOWagent/tools/scheduler/__init__.py5
LOWagent/tools/scheduler/integration.py7
LOWagent/tools/scheduler/scheduler_tool.py7
LOWagent/tools/scheduler/scheduler_tool.py7
LOWagent/tools/scheduler/scheduler_tool.py11
LOWagent/tools/scheduler/scheduler_tool.py12
LOWagent/tools/scheduler/scheduler_tool.py12
159 more matches not shown…
Hyper-Verbose Identifiers193 hits · 185 pts
SeverityFileLineSnippet
LOWconfig.py532def _sync_skill_config_to_env(skill_section) -> int:
LOWplugins/cow_cli/cow_cli.py549 def _resolve_bot_type_for_model(model_name: str) -> str:
LOWplugins/cow_cli/cow_cli.py1099 def _resolve_active_embedding():
LOWplugins/cow_cli/cow_cli.py1323 def _create_standalone_flush_manager():
LOWbridge/agent_bridge.py21def add_openai_compatible_support(bot_instance):
LOWbridge/agent_bridge.py735 def remember_scheduled_output(
LOWbridge/agent_bridge.py867 def _prune_scheduled_in_memory(cls, agent, keep_last_n: int) -> None:
LOWbridge/agent_bridge.py1007 def _refresh_conditional_tools(agent):
LOWbridge/agent_initializer.py331 def _init_embedding_provider_legacy(self, session_id: Optional[str] = None):
LOWbridge/agent_initializer.py619 def _initialize_skill_manager(self, workspace_root: str, session_id: Optional[str] = None):
LOWbridge/agent_initializer.py133 def _restore_conversation_history(self, agent, session_id: str) -> None:
LOWbridge/agent_initializer.py182 def _filter_text_only_messages(messages: list) -> list:
LOWbridge/agent_initializer.py381 def _init_embedding_provider_explicit(
LOWbridge/agent_initializer.py449 def _resolve_embedding_api_key(provider_key: str) -> str:
LOWbridge/agent_initializer.py469 def _resolve_embedding_api_base(provider_key: str, default_base: str) -> str:
LOWbridge/agent_event_handler.py83 def _handle_tool_execution_start(self, data):
LOWbridge/agent_event_handler.py86 def _handle_tool_execution_end(self, data):
LOWtests/test_qianfan_provider.py365 def test_web_console_registers_qianfan_provider(self):
LOWtests/test_qianfan_provider.py374 def test_web_console_allows_qianfan_config_edits(self):
LOWtests/test_qianfan_provider.py380 def test_session_plugins_allow_qianfan(self):
LOWtests/test_qianfan_provider.py581 def test_model_indexes_link_qianfan(self):
LOWtests/test_qianfan_provider.py590 def test_readme_documents_native_qianfan_provider(self):
LOWtests/test_qianfan_provider.py597 def test_vision_docs_document_qianfan_provider(self):
LOWtests/test_qianfan_provider.py11 def test_qianfan_provider_constant_defined(self):
LOWtests/test_qianfan_provider.py16 def test_ernie_constants_are_in_model_list(self):
LOWtests/test_qianfan_provider.py46 def test_qianfan_config_keys_are_available(self):
LOWtests/test_qianfan_provider.py52 def test_agent_bridge_routes_ernie_models_to_qianfan(self):
LOWtests/test_qianfan_provider.py74 def test_cow_cli_routes_ernie_models_to_qianfan(self):
LOWtests/test_qianfan_provider.py142 def test_bot_factory_returns_qianfan_bot(self):
LOWtests/test_qianfan_provider.py154 def test_default_model_uses_ernie_when_model_is_provider_alias(self):
LOWtests/test_qianfan_provider.py164 def test_reply_text_posts_openai_compatible_payload(self):
LOWtests/test_qianfan_provider.py214 def test_reply_text_returns_raw_message_for_non_json_error(self):
LOWtests/test_qianfan_provider.py235 def test_qianfan_bot_supports_vision_for_multimodal_models(self):
LOWtests/test_qianfan_provider.py248 def test_qianfan_bot_does_not_advertise_vision_for_text_only_models(self):
LOWtests/test_qianfan_provider.py261 def test_call_vision_posts_openai_compatible_multimodal_payload(self):
LOWtests/test_qianfan_provider.py310 def test_call_vision_allows_explicit_model_override(self):
LOWtests/test_qianfan_provider.py337 def test_call_vision_returns_error_dict_for_api_error(self):
LOWtests/test_qianfan_provider.py405 def test_vision_auto_discovers_qianfan_when_key_configured(self):
LOWtests/test_qianfan_provider.py424 def test_vision_routes_ernie_model_override_to_qianfan(self):
LOWtests/test_qianfan_provider.py443 def test_vision_main_model_uses_qianfan_when_configured_model_is_ernie(self):
LOWtests/test_qianfan_provider.py484 def test_vision_falls_back_to_qianfan_vl_when_main_model_is_text_only_ernie(self):
LOWtests/test_qianfan_provider.py523 def test_vision_prefers_same_vendor_fallback_over_other_configured_keys(self):
LOWtests/test_qianfan_provider.py569 def test_qianfan_docs_exist_in_all_doc_locales(self):
LOWtests/test_minimax_provider.py38 def test_minimax_provider_key_defined(self):
LOWtests/test_minimax_provider.py64 def test_default_model_string(self):
LOWtests/test_minimax_provider.py98 def test_api_base_no_trailing_slash(self):
LOWtests/test_minimax_provider.py102 def test_voice_to_text_not_supported(self):
LOWtests/test_minimax_provider.py107 def test_text_to_voice_success(self):
LOWtests/test_minimax_provider.py144 def test_text_to_voice_no_audio_returns_error(self):
LOWtests/test_minimax_provider.py173 def test_minimax_voice_factory(self):
LOWtests/test_youdao_translator.py39 def test_init_missing_credentials_raises(self):
LOWtests/test_youdao_translator.py52 def test_truncate_input_short(self):
LOWtests/test_youdao_translator.py75 def test_convert_lang_known_codes(self):
LOWtests/test_youdao_translator.py84 def test_convert_lang_passthrough(self):
LOWtests/test_youdao_translator.py162 def test_translate_multiline_joins_with_newlines(self):
LOWtests/test_youdao_translator.py178 def test_translate_empty_query_returns_empty(self):
LOWtests/test_youdao_translator.py185 def test_translate_error_code_raises(self):
LOWtests/test_youdao_translator.py203 def test_translate_empty_translation_raises(self):
LOWtests/test_youdao_translator.py216 def test_translate_default_target_language(self):
LOWtests/test_youdao_translator.py234 def test_factory_creates_youdao(self):
133 more matches not shown…
Cross-Language Confusion24 hits · 150 pts
SeverityFileLineSnippet
HIGHagent/tools/browser/browser_service.py123 return t ? t : null;
HIGHagent/tools/browser/browser_service.py125 if (node.nodeType !== Node.ELEMENT_NODE) return null;
HIGHagent/tools/browser/browser_service.py127 if (SKIP.has(tag)) return null;
HIGHagent/tools/browser/browser_service.py128 if (!visible(node)) return null;
HIGHagent/tools/browser/browser_service.py133 if (r !== null) {
HIGHagent/tools/browser/browser_service.py134 if (typeof r === "string") children.push(r);
HIGHagent/tools/browser/browser_service.py135 else children.push(r);
HIGHagent/tools/browser/browser_service.py144 if (children.length === 0) return null;
HIGHagent/tools/browser/browser_service.py150 if (nativeInteractive || implicitInteractive) {
HIGHagent/tools/browser/browser_service.py160 if (!directText && children.length === 0) {
HIGHagent/tools/browser/browser_service.py176 obj.name = node.name || undefined;
HIGHagent/tools/browser/browser_service.py176 obj.name = node.name || undefined;
HIGHagent/tools/browser/browser_service.py177 obj.value = node.value || undefined;
HIGHagent/tools/browser/browser_service.py177 obj.value = node.value || undefined;
HIGHagent/tools/browser/browser_service.py178 obj.placeholder = node.placeholder || undefined;
HIGHagent/tools/browser/browser_service.py178 obj.placeholder = node.placeholder || undefined;
HIGHagent/tools/browser/browser_service.py71 if (role && CLICKABLE_ROLES.has(role)) return true;
HIGHagent/tools/browser/browser_service.py98 if (ariaLabel && ariaLabel.trim()) return true;
HIGHagent/tools/browser/browser_service.py100 if (title && title.trim()) return true;
HIGHagent/tools/browser/browser_service.py200 if (children.length === 1 && typeof children[0] === "string") {
HIGHagent/tools/browser/browser_service.py761 const el = window.__cowRefMap && window.__cowRefMap[{ref}];
HIGHagent/tools/browser/browser_service.py789 const el = window.__cowRefMap && window.__cowRefMap[{ref}];
HIGHagent/tools/browser/browser_service.py818 const el = window.__cowRefMap && window.__cowRefMap[{ref}];
HIGHagent/tools/browser/browser_service.py819 if (!el || el.tagName.toLowerCase() !== "select")
Redundant / Tautological Comments52 hits · 83 pts
SeverityFileLineSnippet
LOWrun.sh25# Check if using Bash
LOWrun.sh102 # Check if version is in supported range (3.7 - 3.12)
LOWrun.sh691# Check if service is running
LOWrun.sh696# Check if cow CLI is available
LOWbridge/agent_bridge.py370 # Check if agent exists for this session
LOWbridge/agent_bridge.py513 # Check if there are files to send (from send/read tool)
LOWagent/tools/tool_manager.py100 # Check if __all__ is defined
LOWagent/tools/write/write.py62 # Write file
LOWagent/tools/read/read.py89 # Check if file exists
LOWagent/tools/read/read.py100 # Check if readable
LOWagent/tools/read/read.py108 # Check if image - return metadata for sending
LOWagent/tools/read/read.py112 # Check if video/audio/binary/archive - return metadata only
LOWagent/tools/read/read.py120 # Check if PDF
LOWagent/tools/read/read.py124 # Check if Office document (.docx, .xlsx, .pptx, etc.)
LOWagent/tools/read/read.py247 # Read file (utf-8-sig strips BOM automatically on Windows)
LOWagent/tools/scheduler/scheduler_tool.py340 # Check if it's relative time (e.g., "+5s", "+10m", "+1h", "+1d")
LOWagent/tools/utils/truncate.py100 # Check if no truncation is needed
LOWagent/tools/utils/truncate.py116 # Check if first line alone exceeds byte limit
LOWagent/tools/utils/truncate.py195 # Check if no truncation is needed
LOWagent/tools/bash/bash.py183 # Check if we need to save full output to temp file
LOWagent/tools/edit/edit.py69 # Check if file exists
LOWagent/tools/edit/edit.py73 # Check if readable/writable
LOWagent/tools/edit/edit.py78 # Read file
LOWagent/tools/edit/edit.py143 # Write file
LOWagent/tools/send/send.py60 # Check if file exists
LOWagent/tools/send/send.py64 # Check if readable
LOWagent/memory/chunker.py85 # Check if adding this line would exceed limit
LOWagent/protocol/agent_stream.py506 # Check if this is a file to send
LOWagent/protocol/agent_stream.py820 # Check if this is a context overflow error (keyword-based, works for all models)
LOWagent/protocol/agent_stream.py898 # Check if error is context overflow (non-retryable, needs session reset)
LOWagent/protocol/agent_stream.py910 # Check if error is message format error (incomplete tool_use/tool_result pairs)
LOWagent/protocol/agent_stream.py964 # Check if error is rate limit (429)
LOWagent/protocol/agent_stream.py967 # Check if error is retryable (timeout, connection, server busy, etc.)
LOWagent/prompt/workspace.py45 # Check if this is a brand new workspace (AGENT.md not yet created).
LOWagent/skills/config.py201 # Check if value is truthy
LOWmodels/openai_compatible_bot.py238 # Check if already in OpenAI format
LOWmodels/openai_compatible_bot.py302 # Check if this is a tool result message (user role with tool_result blocks)
LOWmodels/openai_compatible_bot.py336 # Check if this is an assistant message with tool_use blocks
LOWmodels/zhipuai/zhipuai_bot.py396 # Check if already in ZhipuAI/OpenAI format
LOWmodels/zhipuai/zhipuai_bot.py435 # Check if this is a tool result message (user role with tool_result blocks)
LOWmodels/zhipuai/zhipuai_bot.py446 # Check if this is an assistant message with tool_use blocks
LOWmodels/dashscope/dashscope_bot.py533 # Check if already in DashScope/OpenAI format
LOWmodels/dashscope/dashscope_bot.py603 # Check if this is a tool result message (user role with tool_result blocks)
LOWmodels/dashscope/dashscope_bot.py614 # Check if this is an assistant message with tool_use blocks
LOWmodels/chatgpt/chat_gpt_bot.py165 # Check if file exists
LOWchannel/channel.py75 # Check if agent mode is enabled
LOWchannel/dingtalk/dingtalk_channel.py730 # Check if msg exists (for scheduled tasks, msg might be None)
LOWchannel/feishu/feishu_channel.py1410 # Check if it's a local file path (file:// protocol)
LOWchannel/feishu/feishu_channel.py689 # Check if we can reply to an existing message (need msg_id)
LOWchannel/feishu/feishu_channel.py1161 # Check if it's a local file path (file:// protocol)
LOWchannel/wecom_bot/wecom_bot_channel.py241 # Check if this is a response to a pending request
LOWskills/skill-creator/scripts/init_skill.py208 # Check if directory already exists
Cross-File Repetition13 hits · 65 pts
SeverityFileLineSnippet
HIGHagent/tools/write/write.py0resolve path to absolute path :param path: relative or absolute path :return: absolute path
HIGHagent/tools/read/read.py0resolve path to absolute path :param path: relative or absolute path :return: absolute path
HIGHagent/tools/edit/edit.py0resolve path to absolute path :param path: relative or absolute path :return: absolute path
HIGHmodels/moonshot/moonshot_bot.py0convert tools from claude format to openai format. claude: {name, description, input_schema} openai: {type: "function",
HIGHmodels/doubao/doubao_bot.py0convert tools from claude format to openai format. claude: {name, description, input_schema} openai: {type: "function",
HIGHmodels/deepseek/deepseek_bot.py0convert tools from claude format to openai format. claude: {name, description, input_schema} openai: {type: "function",
HIGHmodels/baidu/baidu_wenxin_session.py0returns the number of tokens used by a list of messages.
HIGHmodels/minimax/minimax_session.py0returns the number of tokens used by a list of messages.
HIGHmodels/chatgpt/chat_gpt_session.py0returns the number of tokens used by a list of messages.
HIGHmodels/chatgpt/chat_gpt_session.py0returns the number of tokens used by a list of messages.
HIGHmodels/linkai/link_ai_bot.py0get api configuration for openai-compatible base class
HIGHmodels/chatgpt/chat_gpt_bot.py0get api configuration for openai-compatible base class
HIGHmodels/openai/open_ai_bot.py0get api configuration for openai-compatible base class
Magic Placeholder Names8 hits · 45 pts
SeverityFileLineSnippet
HIGHbridge/agent_initializer.py341 if openai_api_key and openai_api_key not in ["", "YOUR API KEY", "YOUR_API_KEY"]:
HIGHbridge/agent_initializer.py357 if linkai_api_key and linkai_api_key not in ["", "YOUR API KEY", "YOUR_API_KEY"]:
HIGHbridge/agent_initializer.py464 if value in ["", "YOUR API KEY", "YOUR_API_KEY"]:
HIGHbridge/bridge.py121 return v != "" and v not in ("YOUR API KEY", "YOUR_API_KEY")
HIGHagent/memory/embedding/provider.py199 if not self.api_key or self.api_key in ["", "YOUR API KEY", "YOUR_API_KEY"]:
HIGHagent/memory/embedding/provider.py317 if not self.api_key or self.api_key in ["", "YOUR API KEY", "YOUR_API_KEY"]:
HIGHchannel/web/web_channel.py534 if val and val not in ("YOUR API KEY", "YOUR_API_KEY"):
HIGHchannel/web/web_channel.py2014 return bool(value) and value not in ("", "YOUR API KEY", "YOUR_API_KEY")
Self-Referential Comments12 hits · 34 pts
SeverityFileLineSnippet
MEDIUMbridge/agent_bridge.py35 # Create a temporary mixin class that combines the bot with OpenAI compatibility
MEDIUMagent/tools/tool_manager.py130 # Create a temporary instance to get the name
MEDIUMagent/tools/tool_manager.py201 # Create a temporary instance to get the name
MEDIUMagent/tools/tool_manager.py576 # Create a new instance
MEDIUMagent/tools/tool_manager.py600 # Create a temporary instance to get schema
MEDIUMagent/tools/scheduler/integration.py218 # Create a unique session_id for this scheduled task to avoid polluting user's conversation
MEDIUMagent/tools/bash/bash.py161 # Create a mock result with helpful error message
MEDIUMagent/memory/summarizer.py706 # Create main MEMORY.md in workspace root (always needed for bootstrap)
MEDIUMagent/chat/service.py167 # Create a copy of messages for this execution
MEDIUMagent/protocol/agent.py415 # Create a copy of messages for this execution to avoid concurrent modification
MEDIUMchannel/wechatmp/passive_reply.py18# This class is instantiated once per query
MEDIUMchannel/wechatmp/active_reply.py16# This class is instantiated once per query
Verbosity Indicators18 hits · 26 pts
SeverityFileLineSnippet
LOWagent/tools/vision/vision.py236 # Step 1: preferred provider — explicit `tools.vision.provider`
LOWagent/tools/vision/vision.py247 # Step 2: auto-discovery chain as fallback
LOWagent/memory/storage.py658 # Step 1: Standard FTS5 (unicode61) — pure ASCII queries only.
LOWagent/memory/storage.py673 # Step 2: Trigram FTS5 — CJK/mixed queries, plus fallback when unicode61
LOWagent/memory/storage.py683 # Step 3: LIKE fallback — last resort (FTS5 unavailable, or CJK tokens
LOWagent/protocol/agent_stream.py1523 # Step 0: Truncate large tool results in historical turns (30K -> 10K)
LOWagent/protocol/agent_stream.py1526 # Step 1: 识别完整轮次
LOWagent/protocol/agent_stream.py1532 # Step 2: 轮次限制 - 超出时移除前一半,保留后一半
LOWagent/protocol/agent_stream.py164 # Step 1: close any orphaned tool_use in the trailing assistant
LOWagent/protocol/agent_stream.py196 # Step 2: append a stable "interrupted" marker so the LLM sees a
LOWagent/protocol/agent_stream.py1376 # Step 1: Aggressively truncate ALL tool results to 5K chars
LOWagent/protocol/agent_stream.py1409 # Step 2: Truncate overly long user text messages (e.g. pasted content)
LOWagent/protocol/agent_stream.py1434 # Step 3: Keep only the last 5 complete turns
LOWagent/protocol/agent_stream.py1559 # Step 3: Token 限制 - 保留完整轮次
LOWchannel/web/static/js/console.js663 // Step 1: replace markdown-it anchor tags whose href points to a video file.
LOWchannel/web/static/js/console.js668 // Step 2: replace any remaining bare video URLs in text nodes (not inside HTML tags).
LOWchannel/web/static/js/console.js686 // Step 1: anchor whose href points to an image file -> replace with <img> preview.
LOWchannel/web/static/js/console.js691 // Step 2: bare image URLs left in text nodes (rare — markdown-it's linkify usually catches them).
Over-Commented Block16 hits · 14 pts
SeverityFileLineSnippet
LOWconfig.py341 # 将json字符串反序列化为dict类型。
LOWdocker/entrypoint.sh1#!/bin/bash
LOWplugins/tool/README.md121###### 发送短信
LOWagent/memory/embedding/provider.py61# Fields:
LOWagent/chat/service.py201 trimmed = len(executor.messages) < original_length
LOWmodels/openai/open_ai_bot.py161 # which calls /chat/completions via our shared HTTP client. The previous
LOWmodels/openai/openai_http_client.py341 # error-shape that `_handle_stream_response` previously emitted.
LOWchannel/web/web_channel.py1961 # Listed verbatim (not via const.*) because these are skill-side names
LOWchannel/web/web_channel.py2101 # vendors like Zhipu/MiniMax the bot hard-codes the vision model
LOWchannel/web/static/js/console.js3881 overlay.addEventListener('click', onOverlayClick);
LOWchannel/web/static/js/console.js4701 // standalone dispatcher lands.
LOWchannel/web/static/js/console.js4881 // `scope` lets the caller (renderCapabilityBody) target a still-detached
LOWvoice/xunfei/xunfei_tts.py1# -*- coding:utf-8 -*-
LOWvoice/xunfei/xunfei_asr.py1# -*- coding:utf-8 -*-
LOWvoice/xunfei/xunfei_voice.py1#####################################################################
LOWvoice/xunfei/xunfei_voice.py61 # 识别本地文件
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippet
LOWagent/memory/manager.py215 # No embeddings, just use None
MEDIUMagent/memory/manager.py313 # on any sibling helpers — keeps it robust against partial reloads