AI Agent Assistant & development framework that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative. ✨
This report presents the forensic synthetic code analysis of AstrBotDevs/AstrBot, a Python project with 39,733 GitHub stars. SynthScan v2.0 examined 379,088 lines of code across 1569 source files, recording 5315 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 16.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 5315 distinct pattern matches across 21 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 |
|---|---|---|---|---|
| LOW | runtime_bootstrap.py | 12 | def _try_patch_aiohttp_ssl_context( | CODE |
| LOW⚡ | runtime_bootstrap.py | 36 | def configure_runtime_ca_bundle(log_obj: Any | None = None) -> bool: | CODE |
| LOW⚡ | runtime_bootstrap.py | 47 | def initialize_runtime_bootstrap(log_obj: Any | None = None) -> bool: | CODE |
| LOW | astrbot/core/log.py | 256 | def _ensure_logger_enricher_filter(cls, logger: logging.Logger) -> None: | CODE |
| LOW | astrbot/core/log.py | 267 | def _ensure_logger_intercept_handler(cls, logger: logging.Logger) -> None: | CODE |
| LOW | astrbot/core/log.py | 294 | def _load_plugin_level_overrides(cls) -> dict[str, str]: | CODE |
| LOW | astrbot/core/log.py | 373 | def _effective_plugin_log_level(cls, plugin_name: str) -> int: | CODE |
| LOW⚡ | astrbot/core/astr_main_agent.py | 845 | async def _compress_image_for_provider( | CODE |
| LOW⚡ | astrbot/core/astr_main_agent.py | 859 | def _is_generated_compressed_image_path( | CODE |
| LOW | astrbot/core/astr_main_agent.py | 382 | async def _get_workspace_path_for_umo(umo: str, plugin_context: Context) -> Path: | CODE |
| LOW | astrbot/core/astr_main_agent.py | 404 | async def _apply_workspace_extra_prompt( | CODE |
| LOW | astrbot/core/astr_main_agent.py | 490 | def _filter_skills_for_current_config( | CODE |
| LOW | astrbot/core/astr_main_agent.py | 522 | async def _ensure_persona_and_skills( | CODE |
| LOW | astrbot/core/astr_main_agent.py | 750 | def _append_quoted_image_attachment(req: ProviderRequest, image_path: str) -> None: | CODE |
| LOW | astrbot/core/astr_main_agent.py | 762 | def _append_quoted_audio_attachment(req: ProviderRequest, audio_path: str) -> None: | CODE |
| LOW | astrbot/core/astr_main_agent.py | 808 | def _get_quoted_message_parser_settings( | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1249 | def _proactive_cron_job_tools(req: ProviderRequest, plugin_context: Context) -> None: | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1290 | def _apply_web_search_citation_prompt( | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1343 | def _get_fallback_chat_providers( | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1378 | def _provider_supports_modality(provider: Provider, modality: str) -> bool: | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1385 | def _select_image_chat_provider( | CODE |
| LOW | astrbot/core/desktop_runtime.py | 14 | def is_desktop_managed_backend() -> bool: | CODE |
| LOW | astrbot/core/desktop_runtime.py | 18 | def get_desktop_session_secret() -> str | None: | CODE |
| LOW | astrbot/core/desktop_runtime.py | 29 | def is_desktop_session_auth_enabled() -> bool: | CODE |
| LOW | astrbot/core/desktop_runtime.py | 48 | def verify_desktop_session_secret( | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 59 | def _collect_image_urls_from_args(cls, image_urls_raw: T.Any) -> list[str]: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 78 | async def _collect_image_urls_from_message( | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 103 | async def _collect_handoff_image_urls( | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 191 | def _get_runtime_computer_tools( | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 381 | async def _execute_handoff_background( | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 397 | async def _run_handoff_in_background() -> None: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 511 | async def _wake_main_agent_for_background_result( | CODE |
| LOW | astrbot/core/zip_updater.py | 79 | async def _fetch_repository_default_branch( | CODE |
| LOW | astrbot/core/zip_updater.py | 110 | async def _resolve_repository_source( | CODE |
| LOW | astrbot/core/zip_updater.py | 324 | def _resolve_archive_root_dir(entries: list[str]) -> str: | CODE |
| LOW | astrbot/core/zip_updater.py | 353 | def _finalize_extracted_archive( | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 61 | def _build_tool_call_status_message(tool_info: dict | None) -> str: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 67 | def _build_tool_result_status_message( | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 90 | def _should_buffer_llm_result( | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 102 | def _merge_buffered_llm_chains( | CODE |
| LOW | astrbot/core/conversation_mgr.py | 30 | def register_on_session_deleted( | CODE |
| LOW | astrbot/core/conversation_mgr.py | 160 | async def delete_conversations_by_user_id(self, unified_msg_origin: str) -> None: | CODE |
| LOW | astrbot/core/conversation_mgr.py | 240 | async def get_filtered_conversations( | CODE |
| LOW | astrbot/core/conversation_mgr.py | 310 | async def update_conversation_title( | CODE |
| LOW | astrbot/core/conversation_mgr.py | 335 | async def update_conversation_persona_id( | CODE |
| LOW | astrbot/core/conversation_mgr.py | 392 | async def get_human_readable_context( | CODE |
| LOW | astrbot/core/process_restart.py | 19 | def _terminate_child_processes() -> None: | CODE |
| LOW | astrbot/core/process_restart.py | 66 | def _build_frozen_restart_args() -> list[str]: | CODE |
| LOW | astrbot/core/process_restart.py | 78 | def _reset_pyinstaller_environment() -> None: | CODE |
| LOW | astrbot/core/workspace.py | 22 | def normalize_umo_for_workspace(umo: str) -> str: | CODE |
| LOW | astrbot/core/workspace.py | 35 | def normalize_project_workspace_type(value: Any) -> str: | CODE |
| LOW | astrbot/core/workspace.py | 121 | def resolve_project_workspace_root(project: Any, *, fallback_umo: str) -> Path: | CODE |
| LOW | astrbot/core/workspace.py | 191 | async def resolve_workspace_root_for_umo( | CODE |
| LOW⚡ | astrbot/core/persona_error_reply.py | 9 | def normalize_persona_custom_error_message(value: object) -> str | None: | CODE |
| LOW⚡ | astrbot/core/persona_error_reply.py | 17 | def extract_persona_custom_error_message_from_persona( | CODE |
| LOW⚡ | astrbot/core/persona_error_reply.py | 26 | def extract_persona_custom_error_message_from_event(event: Any) -> str | None: | CODE |
| LOW⚡ | astrbot/core/persona_error_reply.py | 37 | def set_persona_custom_error_message_on_event( | CODE |
| LOW⚡ | astrbot/core/persona_error_reply.py | 50 | async def resolve_persona_custom_error_message( | CODE |
| LOW | astrbot/core/persona_error_reply.py | 72 | async def resolve_event_conversation_persona_id( | CODE |
| LOW | astrbot/core/core_lifecycle.py | 99 | async def _init_or_reload_subagent_orchestrator(self) -> None: | CODE |
| 2953 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main.py | 105 | except Exception as e: | STRING |
| LOW⚡ | runtime_bootstrap.py | 42 | except Exception as exc: | CODE |
| LOW | astrbot/core/persona_mgr.py | 409 | except Exception as e: | CODE |
| LOW | astrbot/core/initial_loader.py | 31 | except Exception as e: | CODE |
| LOW | astrbot/core/log.py | 360 | except Exception: | CODE |
| LOW | astrbot/core/log.py | 499 | except Exception: | CODE |
| LOW | astrbot/core/log.py | 521 | except Exception: | CODE |
| LOW | astrbot/core/log.py | 562 | except Exception as e: | CODE |
| LOW | astrbot/core/astrbot_config_mgr.py | 118 | except Exception: | CODE |
| LOW | astrbot/core/astrbot_config_mgr.py | 252 | except Exception as e: | CODE |
| LOW | astrbot/core/file_token_service.py | 49 | except Exception: | CODE |
| LOW | astrbot/core/dashboard_assets.py | 266 | except Exception as exc: | CODE |
| LOW⚡ | astrbot/core/astr_main_agent.py | 854 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_main_agent.py | 311 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_main_agent.py | 400 | except Exception: | CODE |
| LOW | astrbot/core/astr_main_agent.py | 418 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_main_agent.py | 686 | except Exception: | CODE |
| LOW | astrbot/core/astr_main_agent.py | 743 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_main_agent.py | 776 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_main_agent.py | 963 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1001 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1120 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1564 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_main_agent.py | 1597 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | astrbot/core/updater.py | 181 | except Exception: | CODE |
| LOW | astrbot/core/updater.py | 348 | except Exception as exc: | CODE |
| LOW | astrbot/core/updater.py | 361 | except Exception: | CODE |
| LOW | astrbot/core/updater.py | 462 | except Exception as exc: | CODE |
| MEDIUM | astrbot/core/astr_agent_tool_exec.py | 163 | def _run_in_background() -> None: | CODE |
| MEDIUM | astrbot/core/astr_agent_tool_exec.py | 397 | def _run_handoff_in_background() -> None: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 93 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 171 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 358 | except Exception: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 405 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 449 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 490 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 691 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 770 | except Exception: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 776 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_tool_exec.py | 801 | except Exception as e: | CODE |
| LOW | astrbot/core/zip_updater.py | 97 | except Exception as exc: | CODE |
| LOW | astrbot/core/zip_updater.py | 204 | except Exception as e: | CODE |
| LOW | astrbot/core/zip_updater.py | 241 | except Exception as e: | CODE |
| LOW | astrbot/core/zip_updater.py | 373 | except Exception: | CODE |
| LOW | astrbot/core/zip_updater.py | 398 | except Exception: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 317 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 346 | except Exception: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 475 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 509 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 569 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 584 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 616 | except Exception as e: | CODE |
| LOW | astrbot/core/astr_agent_run_util.py | 622 | except Exception as e: | CODE |
| LOW | astrbot/core/conversation_mgr.py | 55 | except Exception as e: | CODE |
| LOW | astrbot/core/process_restart.py | 145 | except Exception as exc: | CODE |
| LOW | astrbot/core/workspace.py | 179 | except Exception: | CODE |
| LOW⚡ | astrbot/core/persona_error_reply.py | 33 | except Exception: | CODE |
| LOW⚡ | astrbot/core/persona_error_reply.py | 45 | except Exception: | CODE |
| LOW | astrbot/core/core_lifecycle.py | 114 | except Exception as e: | CODE |
| LOW | astrbot/core/core_lifecycle.py | 206 | except Exception as e: | CODE |
| 924 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | AGENTS.md | 83 | Brief description of the function. Args: user_id: Description of the ID. force_refresh: Description | STRING |
| HIGH | astrbot/core/astrbot_config_mgr.py | 220 | Delete a configuration profile. Args: conf_id: Configuration profile ID. Returns: | STRING |
| HIGH | astrbot/core/file_token_service.py | 30 | 向令牌服务注册一个文件。 Args: file_path(str): 文件路径 timeout(float): 超时时间,单位秒(可选) Returns: | STRING |
| HIGH | astrbot/core/file_token_service.py | 70 | 根据令牌获取文件路径,使用后令牌失效。 Args: file_token(str): 注册时返回的令牌 Returns: str: 文件路径 | STRING |
| HIGH | astrbot/core/dashboard_assets.py | 43 | Normalize a Dashboard version for comparison. Args: version: Version with an optional ``v`` prefix. Re | STRING |
| HIGH | astrbot/core/updater.py | 142 | Download, validate, and apply matching Core and Dashboard packages. Args: version: Release tag or c | STRING |
| HIGH | astrbot/core/updater.py | 387 | Download an AstrBot core update package without applying it. Args: latest: Whether to download the | STRING |
| HIGH | astrbot/core/updater.py | 476 | Apply a previously downloaded AstrBot core update package. Args: zip_path: Core update zip archive | STRING |
| HIGH | astrbot/core/zip_updater.py | 114 | Resolve a repository URL to a downloadable source archive. Args: repo_url: Repository URL, optional | STRING |
| HIGH | astrbot/core/workspace.py | 95 | Resolve a custom workspace path. Args: path: Stored workspace path. Relative values are rooted under AstrBo | STRING |
| HIGH | astrbot/core/workspace.py | 122 | Resolve the workspace root from a project record. Args: project: Project-like object with workspace fields. | STRING |
| HIGH | astrbot/core/repository.py | 59 | Parse a public GitHub repository URL. Args: url: HTTP(S) GitHub URL, optionally ending in ``.git`` | STRING |
| HIGH | astrbot/core/repository.py | 133 | Return a raw file URL in the resolved branch. Args: path: Repository-relative file path. R | STRING |
| HIGH | astrbot/core/repository.py | 156 | Normalize a repository locator without changing its transport. Args: url: GitHub shorthand, HTTP(S), SSH, o | STRING |
| HIGH | astrbot/core/repository.py | 192 | Parse a repository locator without exposing its transfer implementation. Args: url: GitHub shorthand, HTTP( | STRING |
| HIGH | astrbot/core/tools/web_search_tools.py | 75 | Return the current key and advance the round-robin index. Args: provider_settings: Provider setting | STRING |
| HIGH | astrbot/core/tools/web_search_tools.py | 181 | Call the Tavily Search API with API key failover. Args: provider_settings: Provider settings containing Tav | STRING |
| HIGH | astrbot/core/tools/web_search_tools.py | 242 | Call the Tavily Extract API with API key failover. Args: provider_settings: Provider settings containing Ta | STRING |
| HIGH | astrbot/core/tools/web_search_tools.py | 301 | Call the BoCha Search API with API key failover. Args: provider_settings: Provider settings containing BoCh | STRING |
| HIGH | astrbot/core/tools/web_search_tools.py | 367 | Call the Brave Search API with API key failover. Args: provider_settings: Provider settings containing Brav | STRING |
| HIGH | astrbot/core/tools/web_search_tools.py | 428 | Call the Firecrawl Search API with API key failover. Args: provider_settings: Provider settings containing | STRING |
| HIGH | astrbot/core/tools/web_search_tools.py | 494 | Call the Firecrawl Scrape API with API key failover. Args: provider_settings: Provider settings containing | STRING |
| HIGH | astrbot/core/platform/platform.py | 171 | 统一 Webhook 回调入口。 支持统一 Webhook 模式的平台需要实现此方法。 当 Dashboard 收到 /api/platform/webhook/{uuid} 请求时,会调用此方法。 | STRING |
| HIGH | …urces/weixin_official_account/weixin_offacc_adapter.py | 514 | Creates a Weixin Official Account message event. Args: message: AstrBot message object to wrap. | STRING |
| HIGH | astrbot/core/platform/sources/misskey/misskey_api.py | 834 | 通用消息发送函数:统一处理文本+媒体发送 Args: message_type: 消息类型 ('chat', 'room', 'note') target_id: 目标ID | STRING |
| HIGH | …atform/sources/qqofficial/qqofficial_chunked_upload.py | 68 | Compute the hashes required by QQ in one pass over a file. Args: file_path: Local file to hash. Return | STRING |
| HIGH | …atform/sources/qqofficial/qqofficial_chunked_upload.py | 101 | Read exactly one requested file part. Args: file_path: Local file to read. offset: Zero-based byte | STRING |
| HIGH | …atform/sources/qqofficial/qqofficial_chunked_upload.py | 144 | Upload a file for one C2C user. Args: file_path: Local file to upload. file_type: QQ me | STRING |
| HIGH | …atform/sources/qqofficial/qqofficial_chunked_upload.py | 177 | Upload a file for one QQ group. Args: file_path: Local file to upload. file_type: QQ me | STRING |
| HIGH | …atform/sources/qqofficial/qqofficial_chunked_upload.py | 210 | Run the shared QQ chunk transfer flow for one destination path. Args: file_path: Local file to uplo | STRING |
| HIGH | …atform/sources/qqofficial/qqofficial_chunked_upload.py | 546 | Call QQ directly so business error codes remain available. qq-botpy's response handler discards the structured | STRING |
| HIGH | …core/platform/sources/qqofficial/login_registration.py | 104 | Decrypt the AppSecret returned by QQ bot QR binding. Args: encrypted_secret: Base64 payload containing 12-b | STRING |
| HIGH | …core/platform/sources/qqofficial/login_registration.py | 242 | Poll a QQ Official Bot QR binding task once. Args: platform_config: Platform configuration from the dashboa | STRING |
| HIGH | …latform/sources/qqofficial/qqofficial_message_event.py | 636 | Upload media to a QQ group or C2C session. Args: file_source: Local file path or remote URL to uplo | STRING |
| HIGH | astrbot/core/provider/func_tool_manager.py | 1079 | Asynchronously activate a registered function-calling tool. Args: name: Tool name. star | STRING |
| HIGH | astrbot/core/provider/manager.py | 224 | Resolve a provider preference with configuration fallbacks. Args: provider_type: Provider type to r | STRING |
| HIGH | astrbot/core/provider/sources/bailian_rerank_source.py | 142 | 解析API响应结果 Args: data: API响应数据 Returns: 重排序结果列表 Raises: Ba | STRING |
| HIGH | …trbot/core/provider/sources/openai_responses_source.py | 304 | Send a non-streaming Responses API request. Args: payloads: Prepared Responses API payload. | STRING |
| HIGH | …trbot/core/provider/sources/openai_responses_source.py | 373 | Send a streaming Responses API request. Args: payloads: Prepared Responses API payload. | STRING |
| HIGH | …trbot/core/provider/sources/openai_responses_source.py | 491 | Normalize a Responses API response into AstrBot's LLM response. Args: response: SDK Responses API r | STRING |
| HIGH | astrbot/core/utils/media_utils.py | 278 | Decode a base64 payload while tolerating omitted padding. Args: payload: Base64 payload without a data URI | STRING |
| HIGH | astrbot/core/utils/media_utils.py | 1026 | Convert a video file with ffmpeg. Args: video_path: Source video file path. output_format: Target f | STRING |
| HIGH | astrbot/core/utils/media_utils.py | 1115 | Convert an audio file to the requested format with ffmpeg. Args: audio_path: Source audio file path. | STRING |
| HIGH | astrbot/core/utils/media_utils.py | 1234 | Ensure the audio path points to wav format by extension/guess and convert when needed. If the file appears to alrea | STRING |
| HIGH | astrbot/core/utils/media_utils.py | 1279 | Ensure JPEG-compatible still images point to a JPEG file. Args: image_path: Local image path to inspect and | STRING |
| HIGH | astrbot/core/utils/media_utils.py | 1442 | Extract a JPEG cover frame from a video. Args: video_path: Source video file path. output_path: Opt | STRING |
| HIGH | astrbot/core/utils/toml_parser.py | 7 | Read one quoted TOML string value and return its tail. Args: value: Raw value text that starts with a quote | STRING |
| HIGH | astrbot/core/utils/toml_parser.py | 35 | Read a simple inline TOML string array. Args: raw_value: Raw dependency array text, including the surroundi | STRING |
| HIGH | astrbot/core/utils/toml_parser.py | 76 | Read project dependencies from a pyproject.toml file. Args: pyproject_path: Path to the pyproject.toml file | STRING |
| HIGH | astrbot/core/utils/tencent_record_helper.py | 17 | Decode a Tencent Silk file to 24 kHz mono PCM WAV. Args: silk_path: Input Tencent Silk file path. o | STRING |
| HIGH | astrbot/core/utils/tencent_record_helper.py | 52 | Encode a WAV file to Tencent Silk. Args: wav_path: Input WAV file path. output_path: Output Tencent | STRING |
| HIGH | astrbot/core/utils/tencent_record_helper.py | 100 | Convert an audio file to 24 kHz mono 16-bit PCM WAV. Args: input_path: Source audio file path. outp | STRING |
| HIGH | astrbot/core/agent/mcp_client.py | 733 | Call MCP tool with automatic reconnection on failure, max 2 retries. Args: tool_name: tool name | STRING |
| HIGH | astrbot/core/agent/runners/tool_loop_agent_runner.py | 465 | Await work while allowing a stop request to cancel it immediately. Args: awaitable: Provider or con | STRING |
| HIGH | astrbot/core/star/star_manager.py | 1738 | Inspect the important metadata exposed by a plugin repository. Args: repo_url: Supported plugin rep | STRING |
| HIGH | astrbot/core/star/star_manager.py | 1945 | Update and reload an installed plugin. Args: plugin_name: Registered plugin name. proxy | STRING |
| HIGH | astrbot/core/star/star_tools.py | 40 | Sends a message to a session by unified message origin. Args: session: Message session from event.s | STRING |
| HIGH | astrbot/core/star/star_tools.py | 139 | Activates a registered function-calling tool. Args: name: Tool name. Returns: | STRING |
| HIGH | astrbot/core/star/star_tools.py | 156 | Asynchronously activates a registered function-calling tool. Args: name: Tool name. Return | STRING |
| HIGH | astrbot/core/star/star_tools.py | 174 | Deactivates a registered function-calling tool. Args: name: Tool name. Returns: | STRING |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | astrbot/core/log.py | 32 | CODE | |
| LOW | astrbot/core/subagent_orchestrator.py | 1 | CODE | |
| LOW | astrbot/core/__init__.py | 7 | CODE | |
| LOW | astrbot/core/__init__.py | 13 | CODE | |
| LOW | astrbot/core/__init__.py | 16 | CODE | |
| LOW | astrbot/core/__init__.py | 19 | CODE | |
| LOW | astrbot/core/__init__.py | 25 | CODE | |
| LOW | astrbot/core/astr_main_agent.py | 1 | CODE | |
| LOW | astrbot/core/exceptions.py | 1 | CODE | |
| LOW | astrbot/core/workspace.py | 1 | CODE | |
| LOW | astrbot/core/persona_error_reply.py | 1 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 8 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 13 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 13 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 18 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 21 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 22 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 23 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 24 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 25 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 26 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 27 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 28 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 29 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 72 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 73 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 74 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 75 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 76 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 77 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 78 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 79 | CODE | |
| LOW | astrbot/core/pipeline/__init__.py | 80 | CODE | |
| LOW | astrbot/core/pipeline/context.py | 1 | CODE | |
| LOW | astrbot/core/pipeline/stage.py | 1 | CODE | |
| LOW | astrbot/core/pipeline/process_stage/follow_up.py | 1 | CODE | |
| LOW | …e/process_stage/method/agent_sub_stages/third_party.py | 33 | CODE | |
| LOW | …e/process_stage/method/agent_sub_stages/third_party.py | 34 | CODE | |
| LOW | astrbot/core/tools/registry.py | 1 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 1 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 1 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 1 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 6 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 6 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 6 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 6 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 6 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 6 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 14 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 14 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 15 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 15 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 15 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 16 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 16 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 16 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 16 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 16 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 16 | CODE | |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 16 | CODE | |
| 447 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ore/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py | 7 | # ------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | astrbot/core/star/session_llm_manager.py | 10 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | astrbot/core/star/session_llm_manager.py | 12 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | astrbot/core/star/session_llm_manager.py | 81 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | astrbot/core/star/session_llm_manager.py | 83 | # ============================================================================= | COMMENT |
| MEDIUM | astrbot/core/star/session_llm_manager.py | 157 | # ============================================================================= | COMMENT |
| MEDIUM | astrbot/core/star/session_llm_manager.py | 159 | # ============================================================================= | COMMENT |
| MEDIUM | astrbot/core/backup/constants.py | 38 | # ============================================================ | COMMENT |
| MEDIUM | astrbot/core/backup/constants.py | 40 | # ============================================================ | COMMENT |
| MEDIUM | astrbot/core/computer/booters/bay_manager.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | astrbot/core/computer/booters/bay_manager.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | astrbot/core/computer/booters/bay_manager.py | 46 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | astrbot/core/computer/booters/bay_manager.py | 48 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | astrbot/core/computer/booters/bay_manager.py | 233 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | astrbot/core/computer/booters/bay_manager.py | 235 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/conftest.py | 29 | # ============================================================ | COMMENT |
| MEDIUM⚡ | tests/conftest.py | 31 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 102 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 104 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 161 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 163 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 233 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 235 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 268 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 270 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 287 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 289 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 344 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 346 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 363 | # ============================================================ | COMMENT |
| MEDIUM | tests/conftest.py | 365 | # ============================================================ | COMMENT |
| MEDIUM | tests/test_shipyard_neo_booter.py | 11 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_shipyard_neo_booter.py | 13 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_shipyard_neo_booter.py | 137 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_shipyard_neo_booter.py | 139 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_shipyard_neo_booter.py | 224 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_shipyard_neo_booter.py | 226 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_pip_installer.py | 1881 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_pip_installer.py | 1883 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 83 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 85 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 129 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 192 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 194 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 248 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 250 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 265 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 267 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 317 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_dashscope_embedding_source.py | 319 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_dashscope_embedding_source.py | 44 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_dashscope_embedding_source.py | 46 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_profile_aware_tools.py | 272 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | tests/test_profile_aware_tools.py | 274 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_profile_aware_tools.py | 10 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_profile_aware_tools.py | 12 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_profile_aware_tools.py | 55 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_profile_aware_tools.py | 57 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_profile_aware_tools.py | 159 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | astrbot/core/platform_message_history_mgr.py | 32 | CODE | |
| LOW | astrbot/core/astr_main_agent.py | 323 | CODE | |
| LOW | astrbot/core/astr_main_agent.py | 522 | CODE | |
| LOW | astrbot/core/astr_main_agent.py | 870 | CODE | |
| LOW | astrbot/core/astr_main_agent.py | 1256 | CODE | |
| LOW | astrbot/core/astr_main_agent.py | 1412 | CODE | |
| LOW | astrbot/core/astr_agent_tool_exec.py | 717 | CODE | |
| LOW | astrbot/core/astr_agent_tool_exec.py | 78 | CODE | |
| LOW | astrbot/core/astr_agent_tool_exec.py | 132 | CODE | |
| LOW | astrbot/core/astr_agent_tool_exec.py | 424 | CODE | |
| LOW | astrbot/core/astr_agent_tool_exec.py | 471 | CODE | |
| LOW | astrbot/core/astr_agent_tool_exec.py | 621 | CODE | |
| LOW | astrbot/core/astr_agent_run_util.py | 115 | CODE | |
| LOW | astrbot/core/astr_agent_run_util.py | 513 | CODE | |
| LOW | astrbot/core/astr_agent_run_util.py | 590 | CODE | |
| LOW | astrbot/core/conversation_mgr.py | 392 | CODE | |
| LOW | astrbot/core/workspace.py | 121 | CODE | |
| LOW | …line/process_stage/method/agent_sub_stages/internal.py | 162 | CODE | |
| LOW | …e/process_stage/method/agent_sub_stages/third_party.py | 62 | CODE | |
| LOW | …e/process_stage/method/agent_sub_stages/third_party.py | 289 | CODE | |
| LOW | astrbot/core/pipeline/result_decorate/stage.py | 104 | CODE | |
| LOW | astrbot/core/pipeline/result_decorate/stage.py | 126 | CODE | |
| LOW | astrbot/core/pipeline/waking_check/stage.py | 77 | CODE | |
| LOW | astrbot/core/pipeline/respond/stage.py | 169 | CODE | |
| LOW | astrbot/core/pipeline/preprocess_stage/stage.py | 50 | CODE | |
| LOW | astrbot/core/tools/registry.py | 33 | CODE | |
| LOW | astrbot/core/tools/cron_tools.py | 101 | CODE | |
| LOW | astrbot/core/tools/message_tools.py | 137 | CODE | |
| LOW | astrbot/core/tools/message_tools.py | 207 | CODE | |
| LOW | astrbot/core/tools/message_tools.py | 403 | CODE | |
| LOW | astrbot/core/tools/computer_tools/shell.py | 315 | CODE | |
| LOW | astrbot/core/tools/computer_tools/fs.py | 894 | CODE | |
| LOW | astrbot/core/config/astrbot_config.py | 166 | CODE | |
| LOW | astrbot/core/platform/astr_message_event.py | 144 | CODE | |
| LOW | astrbot/core/platform/manager.py | 319 | CODE | |
| LOW | …bot/core/platform/sources/dingtalk/dingtalk_adapter.py | 164 | CODE | |
| LOW | …bot/core/platform/sources/dingtalk/dingtalk_adapter.py | 562 | CODE | |
| LOW | …bot/core/platform/sources/dingtalk/dingtalk_adapter.py | 792 | CODE | |
| LOW | …bot/core/platform/sources/dingtalk/dingtalk_adapter.py | 798 | CODE | |
| LOW | astrbot/core/platform/sources/kook/kook_client.py | 186 | CODE | |
| LOW | astrbot/core/platform/sources/kook/kook_client.py | 297 | CODE | |
| LOW | astrbot/core/platform/sources/kook/kook_adapter.py | 128 | CODE | |
| LOW | astrbot/core/platform/sources/kook/kook_adapter.py | 208 | CODE | |
| LOW | astrbot/core/platform/sources/kook/kook_adapter.py | 356 | CODE | |
| LOW | …atform/sources/qqofficial_webhook/qo_webhook_server.py | 169 | CODE | |
| LOW | …t/core/platform/sources/weixin_oc/weixin_oc_adapter.py | 1157 | CODE | |
| LOW | …t/core/platform/sources/weixin_oc/weixin_oc_adapter.py | 1712 | CODE | |
| LOW | …ore/platform/sources/discord/discord_platform_event.py | 132 | CODE | |
| LOW | …e/platform/sources/discord/discord_platform_adapter.py | 192 | CODE | |
| LOW | …atform/sources/aiocqhttp/aiocqhttp_platform_adapter.py | 198 | CODE | |
| LOW | …/platform/sources/aiocqhttp/aiocqhttp_message_event.py | 35 | CODE | |
| LOW | …/platform/sources/aiocqhttp/aiocqhttp_message_event.py | 70 | CODE | |
| LOW | …/platform/sources/aiocqhttp/aiocqhttp_message_event.py | 126 | CODE | |
| LOW | …/platform/sources/aiocqhttp/aiocqhttp_message_event.py | 199 | CODE | |
| LOW | astrbot/core/platform/sources/lark/lark_event.py | 191 | CODE | |
| LOW | astrbot/core/platform/sources/lark/lark_event.py | 311 | CODE | |
| LOW | astrbot/core/platform/sources/lark/lark_event.py | 415 | CODE | |
| LOW | astrbot/core/platform/sources/lark/lark_event.py | 938 | CODE | |
| LOW | astrbot/core/platform/sources/lark/lark_adapter.py | 131 | CODE | |
| LOW | astrbot/core/platform/sources/lark/lark_adapter.py | 156 | CODE | |
| 240 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | astrbot/core/platform/sources/lark/lark_event.py | 756 | response = await self.bot.im.v1.message_reaction.acreate(request) | CODE |
| CRITICAL | astrbot/core/platform/sources/lark/lark_event.py | 804 | response = await self.bot.cardkit.v1.card.acreate(request) | CODE |
| CRITICAL | astrbot/core/platform/sources/lark/lark_event.py | 870 | response = await self.bot.cardkit.v1.card_element.acontent(request) | CODE |
| CRITICAL | astrbot/core/platform/sources/lark/lark_event.py | 910 | response = await self.bot.cardkit.v1.card.asettings(request) | CODE |
| CRITICAL | astrbot/core/platform/sources/lark/lark_adapter.py | 116 | response = await self.lark_api.im.v1.message_resource.aget(request) | CODE |
| CRITICAL | astrbot/core/platform/sources/lark/lark_adapter.py | 354 | response = await self.lark_api.im.v1.message.aget(request) | CODE |
| CRITICAL | astrbot/core/provider/sources/gemini_source.py | 18 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | astrbot/core/provider/sources/anthropic_source.py | 16 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | astrbot/core/provider/sources/openai_source.py | 29 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | astrbot/core/provider/sources/openai_tts_api_source.py | 51 | async with self.client.audio.speech.with_streaming_response.create( | CODE |
| CRITICAL | …trbot/core/provider/sources/openai_responses_source.py | 13 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | astrbot/core/agent/runners/tool_loop_agent_runner.py | 31 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | astrbot/core/db/vec_db/faiss_impl/vec_db.py | 7 | from astrbot.core.exceptions import KnowledgeBaseUploadError | CODE |
| CRITICAL | astrbot/core/knowledge_base/kb_helper.py | 13 | from astrbot.core.exceptions import KnowledgeBaseUploadError | CODE |
| CRITICAL | astrbot/dashboard/api/chat.py | 252 | return ok(request.app.state.services.config_profiles.list_profiles()) | CODE |
| CRITICAL | tests/test_openai_source.py | 14 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | tests/test_anthropic_kimi_code_provider.py | 10 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | tests/test_gemini_source.py | 8 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | tests/test_kb_import.py | 10 | from astrbot.core.exceptions import KnowledgeBaseUploadError | CODE |
| CRITICAL | tests/test_tool_loop_agent_runner.py | 22 | from astrbot.core.exceptions import EmptyModelOutputError | CODE |
| CRITICAL | tests/unit/test_kb_upload_atomicity.py | 26 | from astrbot.core.exceptions import KnowledgeBaseUploadError | CODE |
| CRITICAL | tests/unit/test_faiss_vec_db.py | 8 | from astrbot.core.exceptions import KnowledgeBaseUploadError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …bot/core/platform/sources/dingtalk/dingtalk_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | astrbot/core/platform/sources/kook/kook_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | astrbot/core/platform/sources/lark/lark_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | astrbot/core/platform/sources/wecom/wecom_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | …trbot/core/platform/sources/misskey/misskey_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | …/core/platform/sources/wecom_ai_bot/wecomai_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | astrbot/core/platform/sources/line/line_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | astrbot/core/platform/sources/telegram/tg_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | astrbot/core/platform/sources/slack/slack_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | …core/platform/sources/mattermost/mattermost_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | astrbot/core/platform/sources/satori/satori_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | …trbot/core/platform/sources/webchat/webchat_adapter.py | 0 | creates a wecom ai bot message event. args: message: astrbot message object to wrap. returns: created wecom ai bot messa | STRING |
| HIGH | astrbot/core/platform/sources/wecom/wecom_kf_message.py | 0 | mit license copyright (c) 2021 lxns-network permission is hereby granted, free of charge, to any person obtaining a copy | STRING |
| HIGH | astrbot/core/platform/sources/wecom/wecom_kf.py | 0 | mit license copyright (c) 2021 lxns-network permission is hereby granted, free of charge, to any person obtaining a copy | STRING |
| HIGH | astrbot/core/message/components.py | 0 | mit license copyright (c) 2021 lxns-network permission is hereby granted, free of charge, to any person obtaining a copy | STRING |
| HIGH | astrbot/core/db/po.py | 0 | persona is a set of instructions for llms to follow. it can be used to customize the behavior of llms. | STRING |
| HIGH | docs/zh/dev/star/plugin.md | 0 | persona is a set of instructions for llms to follow. it can be used to customize the behavior of llms. | STRING |
| HIGH | docs/zh/dev/star/guides/ai.md | 0 | persona is a set of instructions for llms to follow. it can be used to customize the behavior of llms. | STRING |
| HIGH | docs/en/dev/star/guides/ai.md | 0 | persona is a set of instructions for llms to follow. it can be used to customize the behavior of llms. | STRING |
| HIGH | astrbot/core/db/po.py | 0 | a list of strings, each representing a dialog to start with | STRING |
| HIGH | docs/zh/dev/star/plugin.md | 0 | a list of strings, each representing a dialog to start with | STRING |
| HIGH | docs/zh/dev/star/guides/ai.md | 0 | a list of strings, each representing a dialog to start with | STRING |
| HIGH | docs/en/dev/star/guides/ai.md | 0 | a list of strings, each representing a dialog to start with | STRING |
| HIGH | astrbot/core/db/po.py | 0 | none means use all tools for default, empty list means no tools, otherwise a list of tool names. | STRING |
| HIGH | docs/zh/dev/star/plugin.md | 0 | none means use all tools for default, empty list means no tools, otherwise a list of tool names. | STRING |
| HIGH | docs/zh/dev/star/guides/ai.md | 0 | none means use all tools for default, empty list means no tools, otherwise a list of tool names. | STRING |
| HIGH | docs/en/dev/star/guides/ai.md | 0 | none means use all tools for default, empty list means no tools, otherwise a list of tool names. | STRING |
| HIGH | astrbot/core/db/po.py | 0 | llm 人格类。 在 v4.0.0 版本及之后,推荐使用上面的 persona 类。并且, mood_imitation_dialogs 字段已被废弃。 | STRING |
| HIGH | docs/zh/dev/star/plugin.md | 0 | llm 人格类。 在 v4.0.0 版本及之后,推荐使用上面的 persona 类。并且, mood_imitation_dialogs 字段已被废弃。 | STRING |
| HIGH | docs/zh/dev/star/guides/ai.md | 0 | llm 人格类。 在 v4.0.0 版本及之后,推荐使用上面的 persona 类。并且, mood_imitation_dialogs 字段已被废弃。 | STRING |
| HIGH | docs/zh/dev/star/plugin.md | 0 | <div style="font-size: 32px;"> <h1 style="color: black">todo list</h1> <ul> {% for item in items %} <li>{{ item }}</li> | STRING |
| HIGH | docs/zh/dev/star/guides/html-to-pic.md | 0 | <div style="font-size: 32px;"> <h1 style="color: black">todo list</h1> <ul> {% for item in items %} <li>{{ item }}</li> | STRING |
| HIGH | docs/en/dev/star/guides/html-to-pic.md | 0 | <div style="font-size: 32px;"> <h1 style="color: black">todo list</h1> <ul> {% for item in items %} <li>{{ item }}</li> | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | runtime_bootstrap.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | astrbot/core/log.py | 221 | def _setup_loguru(cls) -> None: | CODE |
| LOW | astrbot/core/log.py | 240 | def _setup_root_bridge(cls) -> None: | CODE |
| LOW | astrbot/core/log.py | 324 | def set_plugin_log_level(cls, plugin_name: str, level: str | None) -> None: | CODE |
| LOW | astrbot/core/log.py | 404 | def set_queue_handler(cls, logger: logging.Logger, log_broker: LogBroker) -> None: | CODE |
| LOW | astrbot/core/dashboard_assets.py | 13 | __all__ = [ | CODE |
| LOW | astrbot/core/astr_main_agent.py | 226 | def _set_llm_error_message(event: AstrMessageEvent, message: str) -> None: | CODE |
| LOW | astrbot/core/umop_config_router.py | 63 | async def update_routing_data(self, new_routing: dict[str, str]) -> None: | CODE |
| LOW | astrbot/core/umop_config_router.py | 83 | async def update_route(self, umo: str, conf_id: str) -> None: | CODE |
| LOW | astrbot/core/updater.py | 31 | __all__ = ["AstrBotUpdater", "UpdateProgress", "UpdateProgressCallback"] | CODE |
| LOW | astrbot/core/zip_updater.py | 17 | __all__ = ["ReleaseInfo"] | CODE |
| LOW | astrbot/core/process_restart.py | 16 | __all__ = ["restart_process"] | CODE |
| LOW | astrbot/core/repository.py | 6 | __all__ = [ | CODE |
| LOW | astrbot/core/pipeline/bootstrap.py | 52 | __all__ = ["ensure_builtin_stages_registered"] | CODE |
| LOW | astrbot/core/pipeline/stage_order.py | 15 | __all__ = ["STAGES_ORDER"] | CODE |
| LOW | astrbot/core/pipeline/__init__.py | 82 | __all__ = [ | CODE |
| LOW | astrbot/core/tools/registry.py | 335 | __all__ = [ | CODE |
| LOW | astrbot/core/tools/knowledge_base_tools.py | 145 | __all__ = [ | CODE |
| LOW | astrbot/core/tools/web_search_tools.py | 1243 | __all__ = [ | CODE |
| LOW | astrbot/core/tools/cron_tools.py | 324 | __all__ = [ | CODE |
| LOW | astrbot/core/tools/message_tools.py | 562 | __all__ = [ | CODE |
| LOW | astrbot/core/tools/computer_tools/__init__.py | 34 | __all__ = [ | CODE |
| LOW | …bot/core/tools/computer_tools/shipyard_neo/__init__.py | 16 | __all__ = [ | CODE |
| LOW | astrbot/core/config/__init__.py | 4 | __all__ = [ | CODE |
| LOW | astrbot/core/platform/__init__.py | 6 | __all__ = [ | CODE |
| LOW | astrbot/core/platform/astr_message_event.py | 222 | def set_extra(self, key, value) -> None: | CODE |
| LOW | astrbot/core/platform/astr_message_event.py | 314 | def set_result(self, result: MessageEventResult | str) -> None: | CODE |
| LOW | …atform/sources/qqofficial_webhook/qo_webhook_server.py | 122 | def _setup_connection(self) -> None: | CODE |
| LOW | …tform/sources/qqofficial_webhook/qo_webhook_adapter.py | 30 | def set_platform(self, platform: "QQOfficialWebhookPlatformAdapter") -> None: | CODE |
| LOW | astrbot/core/platform/sources/lark/server.py | 200 | def set_callback(self, callback: Callable[[dict], Awaitable[None]]) -> None: | CODE |
| LOW | astrbot/core/platform/sources/wecom_ai_bot/__init__.py | 9 | __all__ = [ | CODE |
| LOW | …t/core/platform/sources/wecom_ai_bot/wecomai_server.py | 45 | def _setup_routes(self) -> None: | CODE |
| LOW | astrbot/core/platform/sources/slack/client.py | 43 | def _setup_routes(self) -> None: | CODE |
| LOW | …form/sources/qqofficial/qqofficial_platform_adapter.py | 40 | def _set_raw_message_fields(message: Any, data: dict[str, Any]) -> None: | CODE |
| LOW | …form/sources/qqofficial/qqofficial_platform_adapter.py | 187 | def set_platform(self, platform: QQOfficialPlatformAdapter) -> None: | CODE |
| LOW | astrbot/core/provider/provider.py | 35 | def set_model(self, model_name: str) -> None: | CODE |
| LOW | astrbot/core/provider/provider.py | 87 | def set_key(self, key: str) -> None: | CODE |
| LOW | astrbot/core/provider/entites.py | 11 | __all__ = [ | CODE |
| LOW | astrbot/core/provider/__init__.py | 4 | __all__ = ["Provider", "ProviderMetaData", "STTProvider"] | CODE |
| LOW | astrbot/core/provider/manager.py | 921 | async def update_provider(self, origin_provider_id: str, new_config: dict) -> None: | CODE |
| LOW | astrbot/core/provider/sources/gemini_source.py | 972 | def set_key(self, key) -> None: | CODE |
| LOW | astrbot/core/provider/sources/anthropic_source.py | 454 | def _update_usage(self, token_usage: TokenUsage, usage: MessageDeltaUsage) -> None: | CODE |
| LOW | astrbot/core/provider/sources/anthropic_source.py | 1014 | def set_key(self, key: str) -> None: | CODE |
| LOW | astrbot/core/provider/sources/openai_source.py | 1364 | def set_key(self, key) -> None: | CODE |
| LOW | astrbot/core/provider/sources/gsv_selfhosted_source.py | 88 | async def _set_model_weights(self) -> None: | CODE |
| LOW | astrbot/core/utils/totp.py | 116 | def set_pending_totp_secret(secret: str | None) -> None: | CODE |
| LOW | astrbot/core/utils/totp.py | 127 | def set_rotation_verified(value: bool) -> None: | CODE |
| LOW | astrbot/core/utils/quoted_message_parser.py | 8 | __all__ = [ | CODE |
| LOW | astrbot/core/utils/llm_metadata.py | 38 | async def update_llm_metadata() -> None: | CODE |
| LOW | astrbot/core/utils/t2i/template_manager.py | 174 | def update_template(self, name: str, content: str) -> None: | CODE |
| LOW | astrbot/core/utils/quoted_message/__init__.py | 5 | __all__ = [ | CODE |
| LOW | astrbot/core/agent/runners/__init__.py | 3 | __all__ = ["BaseAgentRunner"] | CODE |
| LOW | astrbot/core/star/session_llm_manager.py | 42 | async def set_llm_status_for_session(session_id: str, enabled: bool) -> None: | CODE |
| LOW | astrbot/core/star/session_llm_manager.py | 113 | async def set_tts_status_for_session(session_id: str, enabled: bool) -> None: | CODE |
| LOW | astrbot/core/star/config.py | 67 | def update_config(namespace: str, key: str, value) -> None: | CODE |
| LOW | astrbot/core/star/__init__.py | 10 | __all__ = [ | CODE |
| LOW | astrbot/core/star/updater.py | 31 | __all__ = ["PLUGIN_METADATA_FILENAMES"] | CODE |
| LOW | astrbot/core/star/register/__init__.py | 28 | __all__ = [ | CODE |
| LOW | astrbot/core/star/filter/__init__.py | 15 | __all__ = ["AstrBotConfig", "AstrMessageEvent", "HandlerFilter", "MessageType"] | CODE |
| LOW | astrbot/core/db/vec_db/faiss_impl/__init__.py | 9 | __all__ = ["FaissVecDB"] | CODE |
| 57 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | astrbot/core/utils/media_utils.py | 1044 | # Create an output path when the caller does not provide one. | COMMENT |
| MEDIUM | astrbot/core/agent/mcp_client.py | 559 | # Create a new client session | COMMENT |
| MEDIUM | astrbot/core/agent/mcp_client.py | 605 | # Create a new client session | COMMENT |
| MEDIUM | astrbot/core/agent/mcp_client.py | 648 | # Create a new client session | COMMENT |
| MEDIUM | astrbot/core/db/po.py | 20 | """This class represents the statistics of bot usage across different platforms. | STRING |
| MEDIUM | astrbot/core/db/po.py | 213 | """This class represents preferences for bots.""" | STRING |
| MEDIUM | astrbot/core/db/po.py | 240 | """This class represents the message history for a specific platform. | STRING |
| MEDIUM | astrbot/core/db/po.py | 363 | """This class represents attachments for messages in AstrBot. | STRING |
| MEDIUM | astrbot/core/db/po.py | 446 | """This class represents projects for organizing ChatUI conversations. | STRING |
| MEDIUM | astrbot/core/db/po.py | 486 | """This class represents the relationship between platform sessions and ChatUI projects.""" | STRING |
| MEDIUM | tests/test_security_fixes.py | 17 | # Create an instance and test that random string generation works | COMMENT |
| MEDIUM | tests/test_security_fixes.py | 62 | # Create a provider with test config | COMMENT |
| MEDIUM | tests/test_security_fixes.py | 103 | # Create a context similar to what's used in io.py | COMMENT |
| MEDIUM | tests/unit/test_event_bus.py | 77 | # Create a mock event | COMMENT |
| MEDIUM | tests/unit/test_computer.py | 164 | # Create a test file | COMMENT |
| MEDIUM | tests/unit/test_core_lifecycle.py | 672 | # Create a task that completes quickly for testing | COMMENT |
| MEDIUM | tests/unit/test_core_lifecycle.py | 722 | # Create a mock handler | COMMENT |
| MEDIUM | tests/unit/test_core_lifecycle.py | 841 | # Create a mock plugin that raises exception on termination | COMMENT |
| MEDIUM⚡ | tests/unit/test_star_base.py | 22 | # Create a mock context with get_config method | COMMENT |
| MEDIUM⚡ | tests/unit/test_star_base.py | 26 | # Create a concrete Star subclass for testing | COMMENT |
| MEDIUM⚡ | tests/unit/test_tool_conflict_resolution.py | 77 | # Create a mock object without 'active' attribute | COMMENT |
| MEDIUM | tests/unit/test_config.py | 179 | # Create a path that definitely doesn't exist | COMMENT |
| MEDIUM | tests/agent/test_context_manager.py | 509 | # Create a mock compressor | COMMENT |
| MEDIUM | tests/agent/test_context_manager.py | 917 | # Create a mock compressor | COMMENT |
| MEDIUM | tests/agent/test_context_manager.py | 940 | # Create a mock compressor | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | astrbot/core/platform/astr_message_event.py | 420 | CODE | |
| LOW | …atform/sources/qqofficial_webhook/qo_webhook_server.py | 159 | CODE | |
| LOW | astrbot/core/platform/sources/discord/components.py | 12 | CODE | |
| LOW | astrbot/core/platform/sources/misskey/misskey_api.py | 474 | CODE | |
| LOW | …latform/sources/qqofficial/qqofficial_message_event.py | 742 | CODE | |
| LOW | astrbot/core/provider/provider.py | 96 | CODE | |
| LOW | astrbot/core/provider/provider.py | 135 | CODE | |
| LOW | astrbot/core/provider/entities.py | 79 | CODE | |
| LOW | astrbot/core/provider/entities.py | 331 | CODE | |
| LOW | astrbot/core/provider/sources/gemini_source.py | 816 | CODE | |
| LOW | astrbot/core/provider/sources/gemini_source.py | 883 | CODE | |
| LOW | astrbot/core/provider/sources/anthropic_source.py | 756 | CODE | |
| LOW | astrbot/core/provider/sources/anthropic_source.py | 829 | CODE | |
| LOW | astrbot/core/provider/sources/openai_source.py | 1185 | CODE | |
| LOW | astrbot/core/provider/sources/openai_source.py | 1263 | CODE | |
| LOW | astrbot/core/utils/shared_preferences.py | 299 | CODE | |
| LOW | astrbot/core/agent/runners/tool_loop_agent_runner.py | 207 | CODE | |
| LOW | astrbot/core/star/context.py | 215 | CODE | |
| LOW | astrbot/core/star/command_management.py | 223 | CODE | |
| LOW | astrbot/core/star/filter/command.py | 64 | CODE | |
| LOW | astrbot/core/db/__init__.py | 617 | CODE | |
| LOW | astrbot/core/db/__init__.py | 710 | CODE | |
| LOW | astrbot/core/db/__init__.py | 729 | CODE | |
| LOW | astrbot/core/db/sqlite.py | 1632 | CODE | |
| LOW | astrbot/core/db/sqlite.py | 1703 | CODE | |
| LOW | astrbot/core/db/sqlite.py | 2394 | CODE | |
| LOW | astrbot/core/db/sqlite.py | 2431 | CODE | |
| LOW | astrbot/core/knowledge_base/kb_helper.py | 721 | CODE | |
| LOW | astrbot/core/knowledge_base/kb_mgr.py | 87 | CODE | |
| LOW | astrbot/core/knowledge_base/kb_mgr.py | 187 | CODE | |
| LOW | astrbot/dashboard/api/conversations.py | 124 | CODE | |
| LOW | astrbot/dashboard/api/conversations.py | 250 | CODE | |
| LOW | tests/test_qqofficial_group_message_create.py | 37 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_plugin_manager.py | 458 | zip_file_path.write_text("placeholder", encoding="utf-8") | CODE |
| LOW | tests/test_plugin_manager.py | 502 | zip_file_path.write_text("placeholder", encoding="utf-8") | CODE |
| LOW | tests/test_quoted_message_parser.py | 97 | id="placeholder", chain=[Plain(text="quoted content")], message_str="" | CODE |
| LOW | tests/test_quoted_message_parser.py | 347 | reply = Reply(id="placeholder", chain=[Image(file=file_uri)], message_str="") | CODE |
| LOW | tests/test_quoted_message_parser.py | 366 | id="placeholder", chain=[Image(file=str(non_image_file))], message_str="" | CODE |
| LOW | dashboard/src/i18n/locales/ru-RU/features/chat.json | 5 | "placeholder": "Спросите что угодно...", | CODE |
| LOW | dashboard/src/i18n/locales/ru-RU/features/chat.json | 74 | "placeholder": "Спросить об этом фрагменте..." | CODE |
| LOW | dashboard/src/i18n/locales/ru-RU/features/config.json | 74 | "placeholder": "Поиск по настройкам (поле/описание/подсказка)", | CODE |
| LOW | …rc/i18n/locales/ru-RU/features/session-management.json | 35 | "placeholder": "Поиск сессии..." | CODE |
| LOW | dashboard/src/i18n/locales/ru-RU/features/command.json | 79 | "placeholder": "Поиск команд..." | CODE |
| LOW | …shboard/src/i18n/locales/ru-RU/features/extension.json | 23 | "placeholder": "Поиск плагинов...", | CODE |
| LOW | dashboard/src/i18n/locales/zh-CN/features/chat.json | 5 | "placeholder": "想问什么都可以", | CODE |
| LOW | dashboard/src/i18n/locales/zh-CN/features/chat.json | 74 | "placeholder": "继续追问这段内容..." | CODE |
| LOW | dashboard/src/i18n/locales/zh-CN/features/config.json | 74 | "placeholder": "搜索配置项(字段名/描述/提示)", | CODE |
| LOW | …rc/i18n/locales/zh-CN/features/session-management.json | 35 | "placeholder": "搜索会话..." | CODE |
| LOW | dashboard/src/i18n/locales/zh-CN/features/command.json | 79 | "placeholder": "搜索指令..." | CODE |
| LOW | …shboard/src/i18n/locales/zh-CN/features/extension.json | 23 | "placeholder": "搜索插件...", | CODE |
| LOW | dashboard/src/i18n/locales/en-US/features/chat.json | 5 | "placeholder": "Ask anything...", | CODE |
| LOW | dashboard/src/i18n/locales/en-US/features/chat.json | 74 | "placeholder": "Ask about this excerpt..." | CODE |
| LOW | dashboard/src/i18n/locales/en-US/features/config.json | 74 | "placeholder": "Search config items (key/description/hint)", | CODE |
| LOW | …rc/i18n/locales/en-US/features/session-management.json | 35 | "placeholder": "Search sessions..." | CODE |
| LOW | dashboard/src/i18n/locales/en-US/features/command.json | 79 | "placeholder": "Search commands..." | CODE |
| LOW | …shboard/src/i18n/locales/en-US/features/extension.json | 23 | "placeholder": "Search extensions...", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | k8s/astrbot/04-service-loadbalancer.yaml | 21 | # targetPort: 6195 | COMMENT |
| LOW | k8s/astrbot/03-service-nodeport.yaml | 21 | # - name: wecom-wh | COMMENT |
| LOW | astrbot/core/config/default.py | 3821 | # "type": "object", | COMMENT |
| LOW | astrbot/core/platform/sources/kook/kook_config.py | 81 | COMMENT | |
| LOW | astrbot/core/platform/sources/kook/kook_config.py | 101 | # # 日志配置 | COMMENT |
| LOW | astrbot/core/platform/sources/kook/kook_config.py | 121 | # "enable_connection_pooling": True, # 是否启用连接池 | COMMENT |
| LOW | astrbot/core/platform/sources/webchat/webchat_event.py | 221 | payload["text"] = text | COMMENT |
| LOW | astrbot/core/utils/shared_preferences.py | 41 | # In-memory overlay of preferences written through this process. It gives | COMMENT |
| LOW | astrbot/core/db/__init__.py | 681 | # content: list, | COMMENT |
| LOW | changelogs/v4.2.0.md | 1 | # What's Changed | COMMENT |
| LOW | changelogs/v4.2.1.md | 1 | # What's Changed | COMMENT |
| LOW | dashboard/src/router/MainRoutes.ts | 261 | path: '/alkaid/knowledge-base', | COMMENT |
| LOW | .github/auto_assign.yml | 21 | COMMENT | |
| LOW | .github/workflows/codeql.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/codeql.yml | 61 | # Initializes the CodeQL tools for scanning. | COMMENT |
| LOW | openspec/config.yaml | 1 | schema: spec-driven | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | astrbot/core/utils/t2i/network_strategy.py | 34 | "T2I Shiki runtime not found at %s. Run `cd dashboard && pnpm run build:t2i-shiki-runtime` to regenerate it. | CODE |
| HIGH | astrbot/core/star/filter/command_group.py | 125 | if self.equals(event.message_str.strip()): | CODE |
| HIGH | tests/test_mimo_api_sources.py | 474 | text = '{"choices":[{"message":null}]}' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | astrbot/core/tools/computer_tools/fs.py | 841 | # Check if file exists | COMMENT |
| LOW | astrbot/core/provider/sources/openai_source.py | 769 | # Check if this looks like OpenAI content-part format | COMMENT |
| LOW | astrbot/core/provider/sources/openai_source.py | 788 | # Check if the string is a JSON-encoded list (e.g., "[{'type': 'text', ...}]") | COMMENT |
| LOW | astrbot/core/utils/trace.py | 53 | # Check if trace recording is enabled | COMMENT |
| LOW | astrbot/core/agent/mcp_client.py | 790 | # Set running_event to unblock any waiting tasks | COMMENT |
| LOW | astrbot/core/computer/booters/boxlite.py | 49 | # Read file content | COMMENT |
| LOW | astrbot/cli/utils/plugin.py | 316 | # Check if plugin exists | COMMENT |
| LOW | scripts/start-with-neo.sh | 198 | # Check if process is still alive | COMMENT |
| LOW | .github/auto_assign.yml | 19 | # Set 0 to add all the reviewers (default: 0) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …core/agent/runners/dashscope/dashscope_agent_runner.py | 184 | # RAG 引用脚标格式化 | COMMENT |
| MEDIUM | …core/agent/runners/dashscope/dashscope_agent_runner.py | 342 | # 添加 RAG 引用 | COMMENT |
| MEDIUM | docs/en/providers/agent-runners/dashscope.md | 7 | On the [Alibaba Cloud Bailian Application](https://bailian.console.aliyun.com/app-center#/app-center) website, click to | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | astrbot/core/knowledge_base/kb_helper.py | 89 | # More robust regex to handle potential LLM formatting errors (spaces, newlines in tags) | STRING |
| MEDIUM | dashboard/src/components/chat/LiveOrb.vue | 187 | // Repeat once to make it seamless | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | astrbot/core/platform/webhook_server.py | 107 | async def run_task( | CODE |
| LOW⚡ | tests/test_updater_socks.py | 1288 | def handle_request(request: httpx.Request) -> httpx.Response: # noqa: ARG001 | CODE |
| LOW | tests/test_updater_socks.py | 1233 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/codeql.yml | 55 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/start-with-neo.sh | 5 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_kb_upload_atomicity.py | 80 | CODE |