AG2 (formerly AutoGen): The Open-Source AgentOS.Join us at: https://discord.gg/sNGSwQME3x
This report presents the forensic synthetic code analysis of ag2ai/ag2, a Python project with 4,765 GitHub stars. SynthScan v2.0 examined 153,877 lines of code across 1022 source files, recording 4414 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 32.6 places this repository in the Strong 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 4414 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 | test/test_watch_advanced.py | 17 | async def test_collects_events_in_window(self) -> None: | CODE |
| LOW | test/test_watch_advanced.py | 53 | async def test_ignores_non_matching(self) -> None: | CODE |
| LOW | test/test_watch_advanced.py | 69 | async def test_disarm_cancels_timer(self) -> None: | CODE |
| LOW | test/test_watch_advanced.py | 86 | def test_disarm_resets_armed_flag(self) -> None: | CODE |
| LOW | test/test_watch_advanced.py | 101 | async def test_cron_watch_arm_and_disarm() -> None: | CODE |
| LOW | test/test_task.py | 82 | async def test_clean_exit_auto_completes(self) -> None: | CODE |
| LOW | test/test_task.py | 96 | async def test_explicit_complete_records_result(self) -> None: | CODE |
| LOW | test/test_task.py | 112 | async def test_complete_is_idempotent(self) -> None: | CODE |
| LOW | test/test_task.py | 124 | async def test_exception_emits_task_failed_and_propagates(self) -> None: | CODE |
| LOW | test/test_task.py | 148 | async def test_explicit_fail_with_string(self) -> None: | CODE |
| LOW | test/test_task.py | 165 | async def test_progress_accumulates_into_metadata(self) -> None: | CODE |
| LOW | test/test_task.py | 183 | async def test_progress_after_terminal_is_noop(self) -> None: | CODE |
| LOW | test/test_task.py | 199 | async def test_expire_emits_task_expired(self) -> None: | CODE |
| LOW | test/test_task.py | 216 | async def test_events_fire_on_supplied_stream(self) -> None: | CODE |
| LOW | test/test_task.py | 232 | async def test_task_inject_stamped_during_block(self) -> None: | CODE |
| LOW | test/test_task.py | 244 | async def test_nested_tasks_restore_previous(self) -> None: | CODE |
| LOW⚡ | test/test_task.py | 260 | async def test_ttl_seconds_populates_expires_at(self) -> None: | CODE |
| LOW⚡ | test/test_task.py | 269 | async def test_no_ttl_leaves_expires_at_none(self) -> None: | CODE |
| LOW⚡ | test/test_task.py | 276 | def test_state_returns_created(self) -> None: | CODE |
| LOW⚡ | test/test_task.py | 281 | def test_task_id_raises_before_entry(self) -> None: | CODE |
| LOW⚡ | test/test_task.py | 287 | def test_metadata_raises_before_entry(self) -> None: | CODE |
| LOW | test/test_task.py | 306 | async def test_owner_id_is_agent_name(self) -> None: | CODE |
| LOW | test/test_task.py | 313 | async def test_payload_passed_through(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 104 | async def test_single_warning_injected(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 122 | async def test_multiple_severities_formatted(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 143 | async def test_fatal_emits_halt_event(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 170 | async def test_mixed_fatal_and_nonfatal(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 216 | async def test_new_alerts_delivered_after_dedup(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 235 | async def test_dedup_survives_history_replacement(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 255 | async def test_multiple_fatals_uses_first_for_halt(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 286 | async def test_no_halt_passes_through(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 298 | async def test_halt_short_circuits_second_llm_call(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 342 | async def test_halt_event_on_stream(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 378 | async def test_nonfatal_does_not_halt(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 411 | async def test_concurrent_fatal_from_two_observers(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 446 | def test_alert_before_reduction_no_warning(self) -> None: | CODE |
| LOW | test/test_alert_halt.py | 455 | def test_reduction_before_alert_warns(self) -> None: | CODE |
| LOW | test/test_compact.py | 43 | async def test_truncates_above_target(self) -> None: | CODE |
| LOW | test/test_compact.py | 52 | async def test_persists_dropped_to_store(self) -> None: | CODE |
| LOW | test/test_compact.py | 67 | async def test_no_persist_without_store(self) -> None: | CODE |
| LOW | test/test_compact.py | 88 | async def test_split_cycle_compacts_whole(self) -> None: | CODE |
| LOW⚡ | test/test_compact.py | 101 | async def test_clean_cycle_boundary_kept(self) -> None: | CODE |
| LOW⚡ | test/test_compact.py | 107 | async def test_split_second_of_chained_cycles(self) -> None: | CODE |
| LOW⚡ | test/test_compact.py | 115 | async def test_split_cycle_persisted_whole(self) -> None: | CODE |
| LOW | test/test_compact.py | 136 | async def test_usage_events_do_not_consume_window(self) -> None: | CODE |
| LOW | test/test_compact.py | 148 | async def test_telemetry_alone_is_no_op(self) -> None: | CODE |
| LOW | test/test_compact.py | 154 | async def test_summarizer_prompt_excludes_telemetry(self) -> None: | CODE |
| LOW | test/test_compact.py | 168 | async def test_usage_events_do_not_advance_trigger(self) -> None: | CODE |
| LOW | test/test_compact.py | 207 | def test_custom_chars_per_token(self) -> None: | CODE |
| LOW | test/test_compact.py | 217 | async def test_fires_when_threshold_crossed(self) -> None: | CODE |
| LOW | test/test_compact.py | 249 | async def test_does_not_fire_below_threshold(self) -> None: | CODE |
| LOW | test/test_compact.py | 269 | async def test_max_tokens_fires_on_large_content(self) -> None: | CODE |
| LOW | test/test_compact.py | 305 | async def test_started_event_fires_before_strategy_runs(self) -> None: | CODE |
| LOW | test/test_compact.py | 333 | async def test_failed_event_fires_when_strategy_raises(self) -> None: | CODE |
| LOW⚡ | test/test_watch.py | 203 | def test_requires_at_least_one_trigger(self) -> None: | CODE |
| LOW⚡ | test/test_watch.py | 207 | def test_rejects_non_positive_n(self) -> None: | CODE |
| LOW⚡ | test/test_watch.py | 211 | def test_rejects_non_positive_max_wait(self) -> None: | CODE |
| LOW⚡ | test/test_watch.py | 216 | async def test_count_trigger_cancels_pending_timer(self) -> None: | CODE |
| LOW⚡ | test/test_watch.py | 597 | def test_invalid_expression_raises(self) -> None: | CODE |
| LOW⚡ | test/test_watch.py | 602 | def test_numeric_dow_sunday_zero(self) -> None: | CODE |
| 2702 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/tools/test_local_shell.py | 8 | CODE | |
| LOW | website/process_notebooks.py | 9 | CODE | |
| LOW | website/mkdocs/_website/notebook_processor.py | 5 | CODE | |
| LOW | website/mkdocs/_website/process_notebooks.py | 9 | CODE | |
| LOW | ag2/hitl.py | 13 | CODE | |
| LOW | ag2/textual.py | 11 | CODE | |
| LOW | ag2/__init__.py | 5 | CODE | |
| LOW | ag2/__init__.py | 7 | CODE | |
| LOW | ag2/__init__.py | 7 | CODE | |
| LOW | ag2/__init__.py | 7 | CODE | |
| LOW | ag2/__init__.py | 7 | CODE | |
| LOW | ag2/__init__.py | 7 | CODE | |
| LOW | ag2/__init__.py | 8 | CODE | |
| LOW | ag2/__init__.py | 8 | CODE | |
| LOW | ag2/__init__.py | 8 | CODE | |
| LOW | ag2/__init__.py | 9 | CODE | |
| LOW | ag2/__init__.py | 9 | CODE | |
| LOW | ag2/__init__.py | 9 | CODE | |
| LOW | ag2/__init__.py | 9 | CODE | |
| LOW | ag2/__init__.py | 9 | CODE | |
| LOW | ag2/__init__.py | 9 | CODE | |
| LOW | ag2/__init__.py | 9 | CODE | |
| LOW | ag2/__init__.py | 18 | CODE | |
| LOW | ag2/__init__.py | 19 | CODE | |
| LOW | ag2/__init__.py | 20 | CODE | |
| LOW | ag2/__init__.py | 21 | CODE | |
| LOW | ag2/__init__.py | 22 | CODE | |
| LOW | ag2/__init__.py | 22 | CODE | |
| LOW | ag2/__init__.py | 22 | CODE | |
| LOW | ag2/__init__.py | 23 | CODE | |
| LOW | ag2/__init__.py | 24 | CODE | |
| LOW | ag2/__init__.py | 25 | CODE | |
| LOW | ag2/__init__.py | 25 | CODE | |
| LOW | ag2/__init__.py | 25 | CODE | |
| LOW | ag2/__init__.py | 26 | CODE | |
| LOW | ag2/__init__.py | 26 | CODE | |
| LOW | ag2/__init__.py | 26 | CODE | |
| LOW | ag2/__init__.py | 27 | CODE | |
| LOW | ag2/stream.py | 14 | CODE | |
| LOW | ag2/stream.py | 17 | CODE | |
| LOW | ag2/context.py | 13 | CODE | |
| LOW | ag2/context.py | 15 | CODE | |
| LOW | ag2/context.py | 17 | CODE | |
| LOW | ag2/agent.py | 78 | CODE | |
| LOW | ag2/testing.py | 16 | CODE | |
| LOW | ag2/history.py | 9 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 5 | CODE | |
| LOW | ag2/middleware/__init__.py | 16 | CODE | |
| LOW | ag2/middleware/__init__.py | 16 | CODE | |
| LOW | ag2/middleware/__init__.py | 16 | CODE | |
| LOW | ag2/middleware/__init__.py | 16 | CODE | |
| LOW | ag2/middleware/__init__.py | 16 | CODE | |
| 981 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | test/network/test_observation.py | 53 | # ── Skill render unit tests ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/network/test_observation.py | 122 | # ── Capability index integration tests ────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observation.py | 206 | # ── record_observation tests ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observation.py | 286 | # ── AgentClient mutation tests ────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observation.py | 330 | # ── TaskMirror end-to-end via Task lifecycle ──────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observability.py | 41 | # ── HubListener ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observability.py | 170 | # ── HubArbiter ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observability.py | 257 | # ── Audit subscribe ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observability.py | 279 | # ── Handler exception trap ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observability.py | 314 | # ── Hub.health() ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observability.py | 350 | # ── Hub logging ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_observability.py | 387 | # ── Coverage gap tests ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_sweeper_and_registry.py | 80 | # ── Real-clock expectation sweeper ────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_sweeper_and_registry.py | 137 | # ── TransitionRegistry isolation ──────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_sweeper_and_registry.py | 192 | # ── Cross-tool flow (no LLM — direct FunctionTool invocation) ─────────────── | COMMENT |
| MEDIUM | test/network/test_sweeper_and_registry.py | 279 | # ── Trust-boundary check ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_expectations.py | 139 | # ── Evaluator unit tests ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/network/test_expectations.py | 263 | # ── Handler integration tests ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_expectations.py | 427 | # ── Audit log tests for identity changes ──────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/network/test_hub_races.py | 426 | # ── Lifecycle ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_races.py | 48 | # ── Registration races ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_races.py | 124 | # ── Unregister mid-flight ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_races.py | 195 | # ── Endpoint binding ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_races.py | 230 | # ── Concurrent post_envelope ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_races.py | 297 | # ── Channel-state edges ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_races.py | 456 | # ── Outbound-access edge ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/network/test_workflow.py | 109 | # ── TransitionTarget unit tests ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/network/test_workflow.py | 167 | # ── TransitionGraph serialization ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/network/test_workflow.py | 271 | # ── WorkflowAdapter integration tests ─────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_human_client.py | 524 | # ── Helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_adapter_tools.py | 39 | # ── Plugin attaches identity-level tools only ───────────────────────────── | COMMENT |
| MEDIUM | test/network/test_adapter_tools.py | 56 | # ── Adapter tools_for ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_adapter_tools.py | 141 | # ── Layer-2 envelope helpers ────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_adapter_tools.py | 183 | # ── channels(open, message=...) seed ────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_invariants.py | 133 | # ── Fix #1: Hub.unregister disk cleanup ───────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_invariants.py | 181 | # ── Fix #4: Hub.register rejects duplicate name ────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_invariants.py | 217 | # ── Fix #2: concurrency caps + inbox limits ────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_invariants.py | 371 | # ── Fix #3 / #5: delegate inbox race + fail-fast on close ──────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_invariants.py | 481 | # ── Fix #6: expectation dedup keyed by identity ────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_invariants.py | 555 | # ── Fix #7: task_mirror idempotent observation ─────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_hub_invariants.py | 598 | # ── Edge cases the per-fix tests above don't reach ─────────────────────────── | COMMENT |
| MEDIUM | test/network/test_tools.py | 70 | # ── peers tool ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_tools.py | 154 | # ── channels tool ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_tools.py | 193 | # ── context tool ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_tools.py | 257 | # ── tasks tool ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_tools.py | 451 | # ── Plugin attaches all 6 tools ──────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_subclass_surface.py | 42 | # ── Subclass on_* hooks ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_subclass_surface.py | 121 | # ── Custom sweeper ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_subclass_surface.py | 179 | # ── Audit kinds open set ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_subclass_surface.py | 201 | # ── Inbox pressure ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_subclass_surface.py | 247 | # ── Task mirror error escalation ────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_audit_and_lifecycle.py | 52 | # ── delegation_depth ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_audit_and_lifecycle.py | 118 | # ── Hydrate with missing adapter ──────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_audit_and_lifecycle.py | 180 | # ── Sweeper auto_close cross-channel bleed ────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_audit_and_lifecycle.py | 245 | # ── Channel + task lifecycle audit ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/network/test_rule_enforcement.py | 81 | # ── Access: outbound_to + inbound_from ────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_rule_enforcement.py | 52 | # ── parse_duration ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_rule_enforcement.py | 231 | # ── delegation_depth ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_rule_enforcement.py | 274 | # ── max_concurrent_channels ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/network/test_rule_enforcement.py | 325 | # ── max_concurrent_tasks (via observe_task) ───────────────────────────────── | COMMENT |
| 90 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | test/events/test_tool_events.py | 37 | except Exception as e: | CODE |
| LOW⚡ | test/events/test_tool_events.py | 48 | except Exception as e: | CODE |
| LOW | website/mkdocs/_website/process_notebooks.py | 488 | except Exception: | CODE |
| LOW⚡ | website/mkdocs/_website/process_notebooks.py | 508 | except Exception: | CODE |
| MEDIUM⚡ | website/mkdocs/_website/process_notebooks.py | 509 | print(f"Error: {file_path}") | CODE |
| LOW⚡ | website/mkdocs/_website/utils.py | 280 | except Exception as e: | CODE |
| MEDIUM⚡ | website/mkdocs/_website/utils.py | 281 | print(f"Error processing {file_path}: {e}") | CODE |
| MEDIUM⚡ | website/mkdocs/_website/utils.py | 290 | print(f"Error reading authors file: {e}") | CODE |
| LOW | website/mkdocs/_website/utils.py | 415 | except Exception as e: | STRING |
| LOW | ag2/agent.py | 1483 | except Exception as exc: | CODE |
| LOW | ag2/agent.py | 1630 | except Exception as e: | CODE |
| LOW | ag2/agent.py | 1833 | except Exception as exc: | CODE |
| LOW | ag2/agent.py | 1969 | except Exception as exc: | CODE |
| LOW | ag2/watch.py | 220 | except Exception: | CODE |
| LOW | ag2/watch.py | 254 | except Exception: | CODE |
| LOW | ag2/watch.py | 470 | except Exception: | CODE |
| LOW | ag2/middleware/builtin/telemetry.py | 155 | except Exception as exc: | CODE |
| LOW | ag2/middleware/builtin/telemetry.py | 195 | except Exception as exc: | CODE |
| LOW | ag2/middleware/builtin/telemetry.py | 254 | except Exception as exc: | CODE |
| LOW | ag2/middleware/builtin/telemetry.py | 290 | except Exception as exc: | CODE |
| LOW | ag2/tools/subagents/run_task.py | 136 | except Exception as e: | CODE |
| LOW | ag2/tools/toolkits/mcp_server/toolkit.py | 153 | except Exception as e: | CODE |
| LOW | ag2/tools/sandbox/filter.py | 112 | except Exception: | CODE |
| LOW | ag2/tools/final/function_tool.py | 123 | except Exception as e: | CODE |
| LOW | ag2/tools/skills/skill_search/toolkit.py | 136 | except Exception as e: | CODE |
| LOW | ag2/tools/skills/skill_search/toolkit.py | 197 | except Exception as e: | CODE |
| LOW | ag2/tools/skills/skill_search/extractor.py | 55 | except Exception: | CODE |
| LOW | ag2/a2a/executor.py | 191 | except Exception: | CODE |
| LOW | ag2/network/task_mirror.py | 202 | except Exception as exc: | CODE |
| LOW | ag2/network/task_mirror.py | 213 | except Exception as exc: | CODE |
| LOW | ag2/network/task_mirror.py | 225 | except Exception as exc: | CODE |
| LOW | ag2/network/task_mirror.py | 238 | except Exception as exc: | CODE |
| LOW | ag2/network/task_mirror.py | 247 | except Exception as exc: | CODE |
| LOW | ag2/network/task_mirror.py | 260 | except Exception as exc: | CODE |
| LOW | ag2/network/task_mirror.py | 285 | except Exception: | CODE |
| LOW | ag2/network/task_mirror.py | 296 | except Exception: | CODE |
| LOW | ag2/network/transport/ws.py | 132 | except Exception: | CODE |
| LOW | ag2/network/transport/ws.py | 189 | except Exception: | CODE |
| LOW | ag2/network/client/human_client.py | 167 | except Exception: | CODE |
| LOW | ag2/network/client/handlers.py | 264 | except Exception: | CODE |
| LOW | ag2/network/client/handlers.py | 311 | except Exception as exc: | CODE |
| LOW | ag2/network/client/hub_client.py | 234 | except Exception: | CODE |
| LOW | ag2/network/client/hub_client.py | 248 | except Exception: | CODE |
| LOW | ag2/network/client/hub_client.py | 312 | except Exception as exc: | CODE |
| LOW | ag2/network/client/hub_client.py | 333 | except Exception: | CODE |
| LOW | ag2/network/client/tools/tasks.py | 103 | except Exception as exc: | CODE |
| LOW | ag2/network/client/tools/tasks.py | 112 | except Exception as exc: | CODE |
| LOW | ag2/network/client/tools/tasks.py | 134 | except Exception: | CODE |
| LOW | ag2/network/client/tools/tasks.py | 146 | except Exception: | CODE |
| LOW | ag2/network/client/tools/tasks.py | 158 | except Exception: | CODE |
| LOW | ag2/network/client/tools/tasks.py | 177 | except Exception as exc: | CODE |
| LOW | ag2/network/client/tools/say.py | 72 | except Exception as exc: | CODE |
| LOW | ag2/network/client/tools/say.py | 83 | except Exception: | CODE |
| LOW | ag2/network/client/tools/say.py | 95 | except Exception as exc: | CODE |
| LOW | ag2/network/client/tools/say.py | 106 | except Exception as exc: | CODE |
| LOW | ag2/network/client/tools/peers.py | 96 | except Exception: | CODE |
| LOW | ag2/network/client/tools/delegate.py | 72 | except Exception: | CODE |
| LOW | ag2/network/client/tools/delegate.py | 94 | except Exception as exc: | CODE |
| LOW | ag2/network/client/tools/delegate.py | 117 | except Exception as exc: | CODE |
| LOW | ag2/network/client/tools/delegate.py | 132 | except Exception as exc: | CODE |
| 58 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/network/test_at_least_once.py | 660 | CODE | |
| LOW | test/ag_ui/test_asgi.py | 42 | CODE | |
| LOW | website/mkdocs/docs.py | 118 | CODE | |
| LOW | website/mkdocs/_website/notebook_processor.py | 285 | CODE | |
| LOW | website/mkdocs/_website/notebook_processor.py | 413 | CODE | |
| LOW | website/mkdocs/_website/process_notebooks.py | 495 | CODE | |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 57 | CODE | |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 368 | CODE | |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 756 | CODE | |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 813 | CODE | |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 86 | CODE | |
| LOW | website/mkdocs/_website/utils.py | 297 | CODE | |
| LOW | ag2/textual.py | 56 | CODE | |
| LOW | ag2/compact.py | 75 | CODE | |
| LOW | ag2/_import_utils.py | 99 | CODE | |
| LOW | ag2/assembly.py | 93 | CODE | |
| LOW | ag2/agent.py | 1663 | CODE | |
| LOW | ag2/agent.py | 1671 | CODE | |
| LOW | ag2/agent.py | 1914 | CODE | |
| LOW | ag2/watch.py | 416 | CODE | |
| LOW | ag2/annotations.py | 34 | CODE | |
| LOW | ag2/annotations.py | 67 | CODE | |
| LOW | ag2/middleware/builtin/telemetry.py | 231 | CODE | |
| LOW | ag2/tools/executor.py | 55 | CODE | |
| LOW | ag2/tools/toolkits/mcp_server/toolkit.py | 241 | CODE | |
| LOW | ag2/tools/sandbox/filter.py | 84 | CODE | |
| LOW | ag2/tools/skills/runtime/local/loader.py | 146 | CODE | |
| LOW | ag2/tools/skills/skill_search/extractor.py | 18 | CODE | |
| LOW | ag2/tools/skills/skill_search/extractor.py | 62 | CODE | |
| LOW | ag2/config/gemini/events.py | 79 | CODE | |
| LOW | ag2/config/gemini/mappers.py | 93 | CODE | |
| LOW | ag2/config/gemini/mappers.py | 233 | CODE | |
| LOW | ag2/config/gemini/gemini_client.py | 159 | CODE | |
| LOW | ag2/config/gemini/gemini_client.py | 236 | CODE | |
| LOW | ag2/config/xai/mappers.py | 254 | CODE | |
| LOW | ag2/config/bedrock/bedrock_client.py | 211 | CODE | |
| LOW | ag2/config/bedrock/mappers.py | 158 | CODE | |
| LOW | ag2/config/bedrock/mappers.py | 212 | CODE | |
| LOW | ag2/config/anthropic/events.py | 91 | CODE | |
| LOW | ag2/config/anthropic/mappers.py | 104 | CODE | |
| LOW | ag2/config/anthropic/mappers.py | 243 | CODE | |
| LOW | ag2/config/anthropic/mappers.py | 259 | CODE | |
| LOW | ag2/config/anthropic/anthropic_client.py | 214 | CODE | |
| LOW | ag2/config/anthropic/anthropic_client.py | 224 | CODE | |
| LOW | ag2/config/anthropic/anthropic_client.py | 270 | CODE | |
| LOW | ag2/config/dashscope/dashscope_client.py | 94 | CODE | |
| LOW | ag2/config/dashscope/dashscope_client.py | 156 | CODE | |
| LOW | ag2/config/dashscope/mappers.py | 62 | CODE | |
| LOW | ag2/config/ollama/mappers.py | 63 | CODE | |
| LOW | ag2/config/zai/zai_client.py | 197 | CODE | |
| LOW | ag2/config/zai/mappers.py | 176 | CODE | |
| LOW | ag2/config/openai/openai_responses_client.py | 154 | CODE | |
| LOW | ag2/config/openai/openai_responses_client.py | 208 | CODE | |
| LOW | ag2/config/openai/events.py | 83 | CODE | |
| LOW | ag2/config/openai/mappers.py | 111 | CODE | |
| LOW | ag2/config/openai/mappers.py | 279 | CODE | |
| LOW | ag2/config/openai/mappers.py | 399 | CODE | |
| LOW | ag2/config/openai/mappers.py | 516 | CODE | |
| LOW | ag2/a2a/client.py | 526 | CODE | |
| LOW | ag2/network/client/handlers.py | 60 | CODE | |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/config/gemini/test_convert_messages.py | 0 | json.loads must not crash on empty or none tool call arguments. | STRING |
| HIGH | test/config/anthropic/test_convert_messages.py | 0 | json.loads must not crash on empty or none tool call arguments. | STRING |
| HIGH | test/config/ollama/test_convert_messages.py | 0 | json.loads must not crash on empty or none tool call arguments. | STRING |
| HIGH | test/config/gemini/test_response_schema_to_api.py | 0 | json schema for a primitive/union wrapped in ``{\"data\": ...}`` (default ``embed=true``). | STRING |
| HIGH | test/config/anthropic/test_response_schema_to_api.py | 0 | json schema for a primitive/union wrapped in ``{\"data\": ...}`` (default ``embed=true``). | STRING |
| HIGH | test/config/dashscope/test_response_schema_to_api.py | 0 | json schema for a primitive/union wrapped in ``{\"data\": ...}`` (default ``embed=true``). | STRING |
| HIGH | test/config/ollama/test_response_schema_to_api.py | 0 | json schema for a primitive/union wrapped in ``{\"data\": ...}`` (default ``embed=true``). | STRING |
| HIGH | test/config/openai/test_response_schema_to_api.py | 0 | json schema for a primitive/union wrapped in ``{\"data\": ...}`` (default ``embed=true``). | STRING |
| HIGH | …config/openai/test_response_schema_to_responses_api.py | 0 | json schema for a primitive/union wrapped in ``{\"data\": ...}`` (default ``embed=true``). | STRING |
| HIGH | test/providers/test_network_mixed_provider.py | 0 | transfer the conversation to the engineering specialist. | STRING |
| HIGH | test/providers/test_network_cross_process_smoke.py | 0 | transfer the conversation to the engineering specialist. | STRING |
| HIGH | test/providers/anthropic/test_workflow_smoke.py | 0 | transfer the conversation to the engineering specialist. | STRING |
| HIGH | test/providers/gemini/test_gemini_integration.py | 0 | a follow-up question after an empty-args tool call must not crash. | STRING |
| HIGH | test/providers/anthropic/test_anthropic_integration.py | 0 | a follow-up question after an empty-args tool call must not crash. | STRING |
| HIGH | test/providers/openai/test_openai_integration.py | 0 | a follow-up question after an empty-args tool call must not crash. | STRING |
| HIGH | test/providers/gemini/test_gemini_integration.py | 0 | discover available agents, optionally filtered by capability. | STRING |
| HIGH | test/providers/anthropic/test_anthropic_integration.py | 0 | discover available agents, optionally filtered by capability. | STRING |
| HIGH | test/providers/openai/test_openai_integration.py | 0 | discover available agents, optionally filtered by capability. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jog.yaml | 21 | # Note: The agent starts from the assumption that documentation is correct unless it finds clear evidence otherwise. | COMMENT |
| LOW | test/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/middleware/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/middleware/builtins/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/test_plugin/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/tools/search/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/tools/sandbox/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/tools/sandbox/adapter/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/tools/skills/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/dynamic/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/response/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/gemini/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/xai/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/bedrock/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/anthropic/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/anthropic/tools/test_shell.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/dashscope/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/ollama/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/zai/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/config/openai/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/providers/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/providers/agent/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/stream/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/network/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/spec/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/observer/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/a2ui/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/a2ui/a2a/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/a2ui/transports/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/agent/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/policies/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/extensions/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/extensions/tools/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/extensions/tools/search/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/knowledge/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/live/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/orchestration/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/files/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/eval/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/eval/dataset/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/eval/runtime/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/eval/scorers/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/eval/results/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/eval/sources/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | test/events/__init__.py | 1 | # Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | website/mkdocs/docs.py | 181 | return None | COMMENT |
| LOW | website/mkdocs/docs.py | 201 | # output_markdown_path=CONTRIBUTING_PATH, | COMMENT |
| LOW | website/mkdocs/_website/process_notebooks.py | 121 | # - Captures the content inside the callout. | COMMENT |
| LOW | website/mkdocs/_website/process_notebooks.py | 261 | repo_root = Path(__file__).resolve().parents[3] | COMMENT |
| LOW | website/mkdocs/_website/process_notebooks.py | 421 | COMMENT | |
| LOW | website/mkdocs/_website/__init__.py | 1 | # Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors | COMMENT |
| LOW | ag2/a2a/executor.py | 81 | return | COMMENT |
| LOW | ag2/network/envelope.py | 41 | # Fixed set; new names are added in code, not at runtime. User-defined event | COMMENT |
| LOW | ag2/network/client/human_client.py | 81 | # Push callbacks. Run in registration order; exceptions are | COMMENT |
| LOW | ag2/network/client/handlers.py | 361 | if event_type.startswith("ag2.channel.") or event_type.startswith("ag2.task."): | COMMENT |
| LOW | ag2/network/hub/core.py | 281 | # when the same task receives multiple terminal events (e.g. a | COMMENT |
| LOW | ag2/network/hub/core.py | 301 | # strictly above ``max(channel_cursor, since_envelope_id)``. | COMMENT |
| LOW | ag2/network/hub/core.py | 321 | # ship in the framework; tenants register their own. | COMMENT |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/mkdocs/_website/generate_mkdocs.py | 132 | CODE | |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 959 | CODE | |
| LOW | ag2/spec.py | 82 | CODE | |
| LOW | ag2/agent.py | 199 | CODE | |
| LOW | ag2/agent.py | 214 | CODE | |
| LOW | ag2/agent.py | 229 | CODE | |
| LOW | ag2/agent.py | 244 | CODE | |
| LOW | ag2/agent.py | 257 | CODE | |
| LOW | ag2/agent.py | 294 | CODE | |
| LOW | ag2/agent.py | 309 | CODE | |
| LOW | ag2/agent.py | 324 | CODE | |
| LOW | ag2/agent.py | 339 | CODE | |
| LOW | ag2/agent.py | 352 | CODE | |
| LOW | ag2/agent.py | 607 | CODE | |
| LOW | ag2/agent.py | 627 | CODE | |
| LOW | ag2/agent.py | 647 | CODE | |
| LOW | ag2/agent.py | 667 | CODE | |
| LOW | ag2/agent.py | 686 | CODE | |
| LOW | ag2/agent.py | 814 | CODE | |
| LOW | ag2/agent.py | 830 | CODE | |
| LOW | ag2/agent.py | 847 | CODE | |
| LOW | ag2/agent.py | 864 | CODE | |
| LOW | ag2/agent.py | 879 | CODE | |
| LOW | ag2/agent.py | 911 | CODE | |
| LOW | ag2/agent.py | 927 | CODE | |
| LOW | ag2/agent.py | 944 | CODE | |
| LOW | ag2/agent.py | 961 | CODE | |
| LOW | ag2/agent.py | 976 | CODE | |
| LOW | ag2/agent.py | 1080 | CODE | |
| LOW | ag2/tools/shell/tool.py | 67 | CODE | |
| LOW | ag2/tools/search/tavily.py | 47 | CODE | |
| LOW | ag2/tools/search/perplexity.py | 113 | CODE | |
| LOW | ag2/tools/search/perplexity.py | 177 | CODE | |
| LOW | ag2/config/gemini/gemini_client.py | 76 | CODE | |
| LOW | ag2/config/bedrock/bedrock_client.py | 55 | CODE | |
| LOW | ag2/config/anthropic/anthropic_client.py | 62 | CODE | |
| LOW | ag2/config/zai/zai_client.py | 82 | CODE | |
| LOW | ag2/config/openai/openai_responses_client.py | 73 | CODE | |
| LOW | ag2/config/openai/containers.py | 56 | CODE | |
| LOW | ag2/config/openai/openai_client.py | 70 | CODE | |
| LOW | ag2/a2a/tasks.py | 74 | CODE | |
| LOW | ag2/a2a/client.py | 153 | CODE | |
| LOW | ag2/a2a/card.py | 30 | CODE | |
| LOW | ag2/a2a/transports/rest.py | 27 | CODE | |
| LOW | ag2/a2a/transports/jsonrpc.py | 27 | CODE | |
| LOW | ag2/a2a/mappers/messages.py | 62 | CODE | |
| LOW | ag2/network/client/tools/tasks.py | 66 | CODE | |
| LOW | ag2/network/client/tools/context.py | 46 | CODE | |
| LOW | ag2/network/client/tools/channels.py | 62 | CODE | |
| LOW | ag2/a2ui/server.py | 51 | CODE | |
| LOW | ag2/a2ui/_runtime.py | 40 | CODE | |
| LOW | ag2/a2ui/a2a/executor.py | 83 | CODE | |
| LOW | ag2/mcp/server.py | 129 | CODE | |
| LOW | ag2/extensions/tools/search/exa.py | 124 | CODE | |
| LOW | ag2/extensions/tools/search/exa.py | 204 | CODE | |
| LOW | ag2/extensions/tools/search/tinyfish.py | 122 | CODE | |
| LOW | ag2/extensions/docker/sandbox.py | 39 | CODE | |
| LOW | ag2/extensions/docker/environment.py | 46 | CODE | |
| LOW | ag2/extensions/daytona/environment.py | 65 | CODE | |
| LOW | ag2/ag_ui/stream.py | 80 | CODE | |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/mkdocs/docs.py | 177 | def update_readme() -> None: | CODE |
| LOW | ag2/_import_utils.py | 20 | __all__ = [ | CODE |
| LOW | ag2/context.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/agent.py | 92 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/watch.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/history.py | 19 | async def set_history(self, stream_id: "StreamId", events: Iterable[BaseEvent]) -> None: ... | CODE |
| LOW | ag2/history.py | 34 | async def set_history(self, stream_id: "StreamId", events: Iterable["BaseEvent"]) -> None: | CODE |
| LOW | ag2/tools/skills/runtime/local/loader.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/config/xai/xai_client.py | 42 | __all__ = ["CreateOptions", "IncludeOption", "ReasoningEffort", "XAIClient"] | CODE |
| LOW | ag2/config/bedrock/mappers.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/config/anthropic/mappers.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2a/mappers/__init__.py | 32 | __all__ = [ | CODE |
| LOW | ag2/streams/redis/storage.py | 41 | async def set_history(self, stream_id: StreamId, events: Iterable[BaseEvent]) -> None: | CODE |
| LOW | ag2/network/task_mirror.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/network/workflow_helpers.py | 43 | async def set_context(channel: Channel, key: str, value: Any) -> None: | CODE |
| LOW | ag2/network/transport/ws.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | ag2/network/client/agent_client.py | 318 | async def set_resume(self, resume: Resume) -> None: | CODE |
| LOW | ag2/network/client/agent_client.py | 334 | async def set_skill(self, skill_md: str | None) -> None: | CODE |
| LOW | ag2/network/client/agent_client.py | 337 | async def set_rule(self, rule: Rule) -> None: | CODE |
| LOW | ag2/network/client/human_client.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/network/client/handlers.py | 53 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/network/client/hub_client.py | 73 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | ag2/network/client/hub_client.py | 742 | async def set_resume(self, agent_id: str, resume: Resume) -> None: | CODE |
| LOW⚡ | ag2/network/client/hub_client.py | 748 | async def set_skill(self, agent_id: str, skill_md: str | None) -> None: | CODE |
| LOW⚡ | ag2/network/client/hub_client.py | 754 | async def set_rule(self, agent_id: str, rule: Rule) -> None: | CODE |
| LOW | ag2/network/hub/audit.py | 56 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/network/hub/telemetry.py | 84 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/network/hub/core.py | 137 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/network/hub/core.py | 1258 | async def set_resume(self, agent_id: str, resume: Resume) -> None: | CODE |
| LOW | ag2/network/hub/core.py | 1299 | async def set_skill(self, agent_id: str, skill_md: str | None) -> None: | CODE |
| LOW | ag2/network/hub/core.py | 1315 | async def set_rule(self, agent_id: str, rule: Rule) -> None: | CODE |
| LOW | ag2/a2ui/server_action.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2ui/request.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2ui/parser.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2ui/capabilities.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2ui/incoming.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2ui/middleware.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2ui/a2a/executor.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2ui/transports/rest.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/a2ui/transports/ag_ui.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/extensions/docker/sandbox.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/extensions/daytona/sandbox.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/extensions/nlip/server.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/extensions/nlip/mappers.py | 344 | __all__ = [ | CODE |
| LOW | ag2/knowledge/__init__.py | 38 | __all__ = [ | CODE |
| LOW | ag2/eval/pairwise.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/eval/scorer.py | 58 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/eval/runtime/evaluate.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/eval/sources/_spans.py | 85 | logger = logging.getLogger(__name__) | CODE |
| LOW | ag2/acp/__init__.py | 13 | __all__ = ["ACPConfig", "ClaudeCodeConfig", "CodexConfig", "OpenCodeConfig"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | test/tools/test_local_shell.py | 206 | cmd = f"sleep 5 && echo ok > {output_file}" | CODE |
| HIGH⚡ | test/tools/sandbox/test_local_sandbox.py | 22 | result = await sandbox.exec(["sh", "-c", "echo hello && echo world"]) | CODE |
| HIGH⚡ | test/a2ui/test_actions.py | 57 | # Optional[str] (anyOf with null) resolves to the non-null branch; | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ag2/_import_utils.py | 100 | Parse a string to create a ModuleInfo object Args: module_info (str): A string containing the modul | STRING |
| HIGH | ag2/tools/skills/skill_search/client.py | 75 | Download a skill via the GitHub Tarball API and install it via *runtime*. Args: source: ``"owner/ | STRING |
| HIGH | ag2/a2ui/dispatch.py | 57 | Execute one turn and yield its prose then A2UI message frames. Server-side actions are handled first and never invo | STRING |
| HIGH | ag2/a2ui/request.py | 59 | Parse a raw request body into an :class:`A2UIServerRequest`. Args: body: The raw JSON request body (bytes/s | STRING |
| HIGH | ag2/eval/runtime/runner.py | 75 | Run an evaluation suite end-to-end. The given :class:`~ag2.Agent` is run once per task with a :class:`~ag2.midd | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/ag_ui/test_adapter.py | 304 | # Create a message with both backend and frontend tool calls | COMMENT |
| MEDIUM | website/mkdocs/_website/process_notebooks.py | 304 | # Create the front matter metadata js file for examples by notebook section | COMMENT |
| MEDIUM | website/mkdocs/_website/generate_mkdocs.py | 719 | # Create the target posts directory | COMMENT |
| MEDIUM | website/mkdocs/_website/generate_mkdocs.py | 722 | # Create the index file in the target blog directory | COMMENT |
| MEDIUM | website/mkdocs/_website/generate_mkdocs.py | 908 | # Create the MkDocs admonition | COMMENT |
| MEDIUM | website/mkdocs/_website/generate_mkdocs.py | 1052 | # Create the front matter metadata js file for examples by notebook section | COMMENT |
| MEDIUM | ag2/textual.py | 69 | # Create a buffer block for assistant streaming | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | announcements.md | 9 | 🎉 May 29, 2024: DeepLearning.ai launched a new short course [AI Agentic Design Patterns with AutoGen](https://www.deeple | CODE |
| MEDIUM | announcements.md | 17 | 🎉 Apr 17, 2024: Andrew Ng cited AutoGen in [The Batch newsletter](https://www.deeplearning.ai/the-batch/issue-245/) and | CODE |
| MEDIUM | README.md | 66 | - [Orchestrating Multiple Agents](#orchestrating-multiple-agents) | CODE |
| MEDIUM | README.md | 69 | - [Advanced agentic design patterns](#advanced-agentic-design-patterns) | CODE |
| MEDIUM | README.md | 382 | ### Advanced agentic design patterns | COMMENT |
| MEDIUM | README.md | 401 | 🎉 May 29, 2024: DeepLearning.ai launched a new short course [AI Agentic Design Patterns with AutoGen](https://www.deeple | CODE |
| MEDIUM | README.md | 405 | 🎉 Apr 17, 2024: Andrew Ng cited AutoGen in [The Batch newsletter](https://www.deeplearning.ai/the-batch/issue-245/) and | CODE |
| MEDIUM | .github/review/TRIAGE_AI_TASKS.md | 11 | ## Global guardrails | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | test/extensions/tools/search/test_tinyfish.py | 244 | assert set(route.calls.last.request.url.params.keys()) == {"query"} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/mkdocs/expand_markdown.py | 26 | # Check if lines_spec is empty (indicating all lines should be read) | COMMENT |
| LOW | website/mkdocs/expand_markdown.py | 72 | # Check if the line does not contain the "{!>" pattern | COMMENT |
| LOW | website/mkdocs/_website/notebook_processor.py | 340 | # Check if another file has to be copied too | COMMENT |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 237 | # Check if the path already has a file extension | COMMENT |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 692 | # Check if the path starts with /snippets/ | COMMENT |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 702 | # Read the file content | COMMENT |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 789 | # Open file in append mode | COMMENT |
| LOW | scripts/test-llm.sh | 17 | MARK="$2" # Set MARK to the provided value | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/a2ui/a2a/test_a2a_executor.py | 42 | "context": {"email": "user@example.com"}, | CODE |
| LOW | test/a2ui/a2a/test_a2a_executor.py | 154 | assert clicked == ["user@example.com"] | CODE |
| LOW | test/a2ui/a2a/test_a2a_executor.py | 172 | assert "user@example.com" not in synthesized | CODE |
| LOW | test/a2ui/a2a/test_a2a_executor.py | 202 | assert recorder.emails == ["user@example.com"] | CODE |
| LOW | test/a2ui/a2a/test_a2a_executor.py | 217 | assert "user@example.com" in synthesized | CODE |
| LOW | ag2/a2ui/v1_0/spec/basic_catalog.json | 644 | "placeholder": { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ag2/agent.py | 753 | # Assembly policies (empty by default; bare Agent has no harness). | COMMENT |
| LOW | ag2/network/adapters/workflow.py | 222 | # the same packet just set (atomic state-update + speaker- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/mkdocs/_website/generate_mkdocs.py | 469 | # Step 1: First copy mdx files to destination as md files | COMMENT |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 486 | # Step 2: Process the MD files we created | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/mkdocs/_website/generate_mkdocs.py | 469 | # Step 1: First copy mdx files to destination as md files | COMMENT |
| LOW | website/mkdocs/_website/generate_mkdocs.py | 486 | # Step 2: Process the MD files we created | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/a2a/test_reconnect.py | 177 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ag2/tools/subagents/run_task.py | 50 | async def run_task( | CODE |