A lightweight, powerful framework for multi-agent workflows
This report presents the forensic synthetic code analysis of openai/openai-agents-python, a Python project with 29,043 GitHub stars. SynthScan v2.0 examined 488,488 lines of code across 1488 source files, recording 12573 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 25.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 12573 distinct pattern matches across 23 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 | integration_tests/conftest.py | 26 | def _external_providers_enabled() -> bool: | CODE |
| LOW | integration_tests/conftest.py | 34 | def _direct_providers_enabled() -> bool: | CODE |
| LOW | integration_tests/conftest.py | 101 | def pytest_collection_modifyitems(config: pytest.Config, items: list[pytest.Item]) -> None: | CODE |
| LOW | integration_tests/conftest.py | 141 | def _provider_model_credentials(model: str) -> tuple[str, ...]: | CODE |
| LOW | integration_tests/conftest.py | 221 | def integration_realtime_model() -> str: | CODE |
| LOW⚡ | integration_tests/_contract_support.py | 1433 | def _optional_dependency_is_available_for_contract( | CODE |
| LOW⚡ | integration_tests/_contract_support.py | 1442 | def _optional_dependency_is_unsupported_for_contract( | CODE |
| LOW⚡ | integration_tests/_contract_support.py | 1449 | def _optional_dependency_for_binding( | CODE |
| LOW | integration_tests/_contract_support.py | 42 | def is_supported_on_current_platform(self) -> bool: | CODE |
| LOW | integration_tests/_contract_support.py | 63 | def load_submodule_export_policy(path: Path) -> SubmoduleExportPolicy: | CODE |
| LOW | integration_tests/_contract_support.py | 273 | def _public_class_contract_policy(value: object) -> tuple[dict[str, Any], ...]: | CODE |
| LOW | integration_tests/_contract_support.py | 336 | def _public_typed_dict_policy(value: object) -> tuple[dict[str, Any], ...]: | CODE |
| LOW | integration_tests/_contract_support.py | 380 | def _public_type_alias_policy(value: object) -> tuple[dict[str, str], ...]: | CODE |
| LOW | integration_tests/_contract_support.py | 407 | def _add_legacy_literal_types(value: object) -> None: | CODE |
| LOW | integration_tests/_contract_support.py | 484 | def _deserialize_common_sandbox_session_state(payload: dict[str, object]) -> Any: | CODE |
| LOW | integration_tests/_contract_support.py | 600 | def _dataclass_field_contract(value: object) -> list[dict[str, object]]: | CODE |
| LOW | integration_tests/_contract_support.py | 625 | def _pydantic_model_field_contract(value: object) -> list[dict[str, object]] | None: | CODE |
| LOW | integration_tests/_contract_support.py | 729 | def _sdk_public_class_descriptor(value: type, name: str) -> object | None: | CODE |
| LOW | integration_tests/_contract_support.py | 744 | def _public_class_member_contract(value: object) -> dict[str, dict[str, object]]: | CODE |
| LOW | integration_tests/_contract_support.py | 847 | def _merge_public_class_contracts( | CODE |
| LOW | integration_tests/_contract_support.py | 872 | def _validate_voice_public_class_contract_policy( | CODE |
| LOW | integration_tests/_contract_support.py | 927 | def _public_property_identity(entry: Mapping[str, Any]) -> tuple[str, str, str]: | CODE |
| LOW | integration_tests/_contract_support.py | 948 | def _sorted_type_alias_members(members: Iterable[dict[str, object]]) -> list[dict[str, object]]: | CODE |
| LOW | integration_tests/_contract_support.py | 963 | def _is_type_alias_annotation(annotation: object, module: object) -> bool: | CODE |
| LOW | integration_tests/_contract_support.py | 980 | def _module_declares_type_alias(module: object, alias_name: str, value: object) -> bool: | CODE |
| LOW | integration_tests/_contract_support.py | 1028 | def _visit_function_definition(self, node: ast.FunctionDef | ast.AsyncFunctionDef) -> None: | CODE |
| LOW | integration_tests/_contract_support.py | 1163 | def _has_explicit_type_alias_declaration( | CODE |
| LOW | integration_tests/_contract_support.py | 1278 | def _public_type_alias_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 1303 | def _merge_public_type_aliases( | CODE |
| LOW | integration_tests/_contract_support.py | 1317 | def _typed_dict_field_is_required(typed_dict: type, name: str, annotation: object) -> bool: | CODE |
| LOW | integration_tests/_contract_support.py | 1342 | def _typed_dict_field_contract(typed_dict: type, name: str) -> dict[str, object] | None: | CODE |
| LOW | integration_tests/_contract_support.py | 1353 | def _public_typed_dict_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 1381 | def _merge_public_typed_dicts( | CODE |
| LOW | integration_tests/_contract_support.py | 1408 | def _optional_dependency_unsupported_platforms( | CODE |
| LOW | integration_tests/_contract_support.py | 1469 | def _optional_dependency_for_binding_in_modules( | CODE |
| LOW | integration_tests/_contract_support.py | 1480 | def _optional_dependency_for_module_import( | CODE |
| LOW | integration_tests/_contract_support.py | 1512 | def _preserve_released_callable_for_promotion( | CODE |
| LOW | integration_tests/_contract_support.py | 1532 | def _preserve_released_submodule_callables( | CODE |
| LOW | integration_tests/_contract_support.py | 1541 | def build_released_api_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 1862 | def _validate_parameter_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 1906 | def _validate_pydantic_model_field_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 1936 | def _validate_public_property_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 1990 | def _validate_public_class_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 2032 | def _validate_public_typed_dict_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 2068 | def _validate_public_type_alias_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 2110 | def _submodule_export_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 2157 | def _optional_dependency_modules(value: object, *, field_name: str) -> dict[str, str]: | CODE |
| LOW | integration_tests/_contract_support.py | 2172 | def _optional_dependency_is_available(module_name: str) -> bool: | CODE |
| LOW | integration_tests/_contract_support.py | 2178 | def _matches_platform_import_error( | CODE |
| LOW | integration_tests/_contract_support.py | 2194 | def validate_released_api_contract( | CODE |
| LOW | integration_tests/_contract_support.py | 2564 | def _normalized_durable_state(payload: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW | integration_tests/_contract_support.py | 2570 | def _normalize_legacy_mount_credentials(payload: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW | integration_tests/_contract_support.py | 2593 | def _legacy_driver_option_errors(payload: dict[str, Any]) -> list[str]: | CODE |
| LOW | integration_tests/_contract_support.py | 2658 | async def validate_historical_run_state_fixture(path: Path) -> list[str]: | CODE |
| LOW | integration_tests/_contract_support.py | 2692 | async def validate_historical_resume_behavior( | CODE |
| LOW | integration_tests/_contract_support.py | 2805 | async def validate_legacy_credential_run_state_fixture( | CODE |
| LOW | …egration_tests/packaging/test_distribution_contents.py | 18 | def test_wheel_excludes_integration_tests_and_contains_runtime_modules() -> None: | CODE |
| LOW | …egration_tests/packaging/test_distribution_contents.py | 32 | def test_source_distribution_excludes_repository_automation_and_local_caches() -> None: | CODE |
| LOW | …egration_tests/packaging/test_distribution_contents.py | 48 | def test_installed_distribution_advertises_expected_optional_extras() -> None: | CODE |
| LOW | …egration_tests/packaging/test_distribution_contents.py | 87 | def test_public_runtime_modules_import_from_the_distribution(module_name: str) -> None: | CODE |
| 9077 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration_tests/conftest.py | 1 | CODE | |
| LOW | integration_tests/packaging/test_mcp_compat.py | 1 | CODE | |
| LOW | …egration_tests/packaging/test_distribution_contents.py | 1 | CODE | |
| LOW | integration_tests/packaging/test_provider_selection.py | 1 | CODE | |
| LOW | integration_tests/packaging/test_optional_extras.py | 1 | CODE | |
| LOW | integration_tests/packaging/mcp_legacy_server.py | 1 | CODE | |
| LOW | …ration_tests/security/test_packaged_mount_redaction.py | 1 | CODE | |
| LOW | …gration_tests/security/test_local_sandbox_isolation.py | 1 | CODE | |
| LOW | integration_tests/providers/test_any_llm.py | 1 | CODE | |
| LOW | integration_tests/providers/test_litellm.py | 1 | CODE | |
| LOW | integration_tests/hosted/test_web_search.py | 1 | CODE | |
| LOW | integration_tests/hosted/test_multi_agent.py | 1 | CODE | |
| LOW | integration_tests/hosted/test_tool_search.py | 1 | CODE | |
| LOW | …gration_tests/hosted/test_programmatic_tool_calling.py | 1 | CODE | |
| LOW | integration_tests/hosted/test_local_tool_families.py | 1 | CODE | |
| LOW | integration_tests/hosted/test_mcp.py | 1 | CODE | |
| LOW | integration_tests/hosted/test_code_interpreter.py | 1 | CODE | |
| LOW | integration_tests/realtime/test_realtime.py | 1 | CODE | |
| LOW | integration_tests/voice/test_voice_pipeline.py | 1 | CODE | |
| LOW | integration_tests/containers/test_dapr_redis.py | 10 | CODE | |
| LOW | integration_tests/openai/test_retry.py | 1 | CODE | |
| LOW | integration_tests/openai/test_tracing.py | 1 | CODE | |
| LOW | integration_tests/openai/test_approval_resume.py | 1 | CODE | |
| LOW | integration_tests/openai/test_guardrails.py | 1 | CODE | |
| LOW | integration_tests/openai/test_websocket.py | 1 | CODE | |
| LOW | integration_tests/openai/test_sessions.py | 1 | CODE | |
| LOW | integration_tests/openai/test_chat_completions.py | 1 | CODE | |
| LOW | integration_tests/openai/test_handoffs.py | 1 | CODE | |
| LOW | integration_tests/openai/test_responses.py | 1 | CODE | |
| LOW | integration_tests/openai/test_model_settings.py | 1 | CODE | |
| LOW | integration_tests/openai/test_execution_controls.py | 1 | CODE | |
| LOW | tests/test_tool_approval_call_id_reuse.py | 1 | CODE | |
| LOW | tests/test_tool_use_tracker.py | 1 | CODE | |
| LOW | tests/test_tool_metadata.py | 1 | CODE | |
| LOW | tests/test_asyncio_progress.py | 1 | CODE | |
| LOW | tests/test_run_serial_tests.py | 1 | CODE | |
| LOW | tests/test_run_config.py | 1 | CODE | |
| LOW | tests/test_update_rclone_pin.py | 1 | CODE | |
| LOW | tests/model_test_helpers.py | 1 | CODE | |
| LOW | tests/test_shell_call_serialization.py | 1 | CODE | |
| LOW | tests/test_tracing_errors.py | 1 | CODE | |
| LOW | tests/testing_processor.py | 1 | CODE | |
| LOW | tests/conftest.py | 1 | CODE | |
| LOW | tests/test_tool_use_behavior.py | 3 | CODE | |
| LOW | tests/test_usaspending_setup_db.py | 1 | CODE | |
| LOW | tests/test_scripted_sandbox.py | 1 | CODE | |
| LOW | tests/test_agent_tool_state.py | 1 | CODE | |
| LOW | tests/test_tool_origin.py | 1 | CODE | |
| LOW | tests/test_code_change_verification_policy.py | 1 | CODE | |
| LOW | tests/test_prompt_cache_key.py | 1 | CODE | |
| LOW | tests/test_tracing.py | 1 | CODE | |
| LOW | tests/test_agent_memory_leak.py | 1 | CODE | |
| LOW | tests/test_call_model_input_filter.py | 1 | CODE | |
| LOW | tests/test_release_provenance.py | 1 | CODE | |
| LOW | tests/test_tool_name_collision_policy.py | 1 | CODE | |
| LOW | tests/test_test_environment.py | 1 | CODE | |
| LOW | tests/test_source_compat_constructors.py | 1 | CODE | |
| LOW | tests/test_error_logging_redaction.py | 9 | CODE | |
| LOW | tests/test_output_guardrail_cancellation.py | 1 | CODE | |
| LOW | tests/test_guardrails.py | 1 | CODE | |
| 1401 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/memory/test_session.py | 845 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/memory/test_session.py | 847 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/memory/test_openai_conversations_session.py | 738 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/memory/test_openai_conversations_session.py | 740 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/extensions/test_tool_output_trimmer.py | 85 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/test_tool_output_trimmer.py | 87 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/test_tool_output_trimmer.py | 116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/test_tool_output_trimmer.py | 118 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/test_tool_output_trimmer.py | 163 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/test_tool_output_trimmer.py | 165 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/test_tool_output_trimmer.py | 1103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/test_tool_output_trimmer.py | 1105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/test_tool_output_trimmer.py | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/test_tool_output_trimmer.py | 22 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/test_tool_output_trimmer.py | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/test_tool_output_trimmer.py | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/test_tool_output_trimmer.py | 1045 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/test_tool_output_trimmer.py | 1047 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_encrypt_session.py | 499 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_encrypt_session.py | 501 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_dapr_session.py | 915 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_dapr_session.py | 917 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_advanced_sqlite_session.py | 2615 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_advanced_sqlite_session.py | 2617 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 284 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 286 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 573 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 575 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 636 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 638 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 671 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 673 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 823 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 825 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 1116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_mongodb_session.py | 1118 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 317 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 319 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 344 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 346 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 885 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 887 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 1042 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/memory/test_mongodb_session.py | 1044 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_redis_session.py | 941 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/extensions/memory/test_redis_session.py | 943 | # ============================================================================ | COMMENT |
| MEDIUM | tests/extensions/sandbox/test_daytona.py | 1635 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/extensions/sandbox/test_daytona.py | 1637 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 41 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 762 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 764 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 881 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 883 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 1103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/extensions/sandbox/test_blaxel.py | 1105 | # --------------------------------------------------------------------------- | COMMENT |
| 176 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_function_tool_decorator.py | 0 | get the temperature for a given city. args: city: the city to get temperature for. returns: temperature information for | STRING |
| HIGH | examples/agent_patterns/human_in_the_loop.py | 0 | get the temperature for a given city. args: city: the city to get temperature for. returns: temperature information for | STRING |
| HIGH | examples/agent_patterns/human_in_the_loop_stream.py | 0 | get the temperature for a given city. args: city: the city to get temperature for. returns: temperature information for | STRING |
| HIGH | tests/memory/test_session.py | 0 | add_items([]) must not bypass the closed check through the empty-list fast path. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | add_items([]) must not bypass the closed check through the empty-list fast path. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | add_items([]) must not bypass the closed check through the empty-list fast path. | STRING |
| HIGH | tests/extensions/memory/test_advanced_sqlite_session.py | 0 | add_items([]) must not bypass the closed check through the empty-list fast path. | STRING |
| HIGH | tests/extensions/memory/test_mongodb_session.py | 0 | add_items([]) must not bypass the closed check through the empty-list fast path. | STRING |
| HIGH | tests/extensions/memory/test_redis_session.py | 0 | add_items([]) must not bypass the closed check through the empty-list fast path. | STRING |
| HIGH | tests/memory/test_session.py | 0 | pop_item skips corrupt newest rows and returns the next valid item. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | pop_item skips corrupt newest rows and returns the next valid item. | STRING |
| HIGH | tests/extensions/memory/test_sqlalchemy_session.py | 0 | pop_item skips corrupt newest rows and returns the next valid item. | STRING |
| HIGH | tests/memory/test_session.py | 0 | pop_item removes corrupt rows and returns none when no valid items remain. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | pop_item removes corrupt rows and returns none when no valid items remain. | STRING |
| HIGH | tests/extensions/memory/test_sqlalchemy_session.py | 0 | pop_item removes corrupt rows and returns none when no valid items remain. | STRING |
| HIGH | tests/memory/test_session.py | 0 | limit counts valid items, expanding past corrupt newest rows. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | limit counts valid items, expanding past corrupt newest rows. | STRING |
| HIGH | tests/extensions/memory/test_sqlalchemy_session.py | 0 | limit counts valid items, expanding past corrupt newest rows. | STRING |
| HIGH | tests/extensions/memory/test_advanced_sqlite_session.py | 0 | limit counts valid items, expanding past corrupt newest rows. | STRING |
| HIGH | tests/memory/test_session.py | 0 | test that session correctly stores and retrieves unicode/non-ascii content. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | test that session correctly stores and retrieves unicode/non-ascii content. | STRING |
| HIGH | tests/extensions/memory/test_redis_session.py | 0 | test that session correctly stores and retrieves unicode/non-ascii content. | STRING |
| HIGH | tests/memory/test_session.py | 0 | test concurrent access to the same session to verify data integrity. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | test concurrent access to the same session to verify data integrity. | STRING |
| HIGH | tests/extensions/memory/test_redis_session.py | 0 | test concurrent access to the same session to verify data integrity. | STRING |
| HIGH | tests/memory/test_session.py | 0 | test that session_settings defaults to empty sessionsettings. | STRING |
| HIGH | tests/memory/test_openai_conversations_session.py | 0 | test that session_settings defaults to empty sessionsettings. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | test that session_settings defaults to empty sessionsettings. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | test that session_settings defaults to empty sessionsettings. | STRING |
| HIGH | tests/extensions/memory/test_sqlalchemy_session.py | 0 | test that session_settings defaults to empty sessionsettings. | STRING |
| HIGH | tests/extensions/memory/test_advanced_sqlite_session.py | 0 | test that session_settings defaults to empty sessionsettings. | STRING |
| HIGH | tests/extensions/memory/test_redis_session.py | 0 | test that session_settings defaults to empty sessionsettings. | STRING |
| HIGH | tests/memory/test_session.py | 0 | test that get_items uses session_settings.limit as default. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | test that get_items uses session_settings.limit as default. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | test that get_items uses session_settings.limit as default. | STRING |
| HIGH | tests/extensions/memory/test_sqlalchemy_session.py | 0 | test that get_items uses session_settings.limit as default. | STRING |
| HIGH | tests/extensions/memory/test_advanced_sqlite_session.py | 0 | test that get_items uses session_settings.limit as default. | STRING |
| HIGH | tests/extensions/memory/test_redis_session.py | 0 | test that get_items uses session_settings.limit as default. | STRING |
| HIGH | tests/memory/test_session.py | 0 | test that explicit limit parameter overrides session_settings. | STRING |
| HIGH | tests/extensions/memory/test_encrypt_session.py | 0 | test that explicit limit parameter overrides session_settings. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | test that explicit limit parameter overrides session_settings. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | test that explicit limit parameter overrides session_settings. | STRING |
| HIGH | tests/extensions/memory/test_sqlalchemy_session.py | 0 | test that explicit limit parameter overrides session_settings. | STRING |
| HIGH | tests/extensions/memory/test_advanced_sqlite_session.py | 0 | test that explicit limit parameter overrides session_settings. | STRING |
| HIGH | tests/extensions/memory/test_redis_session.py | 0 | test that explicit limit parameter overrides session_settings. | STRING |
| HIGH | tests/memory/test_session.py | 0 | test that runconfig can override session's default settings. | STRING |
| HIGH | tests/extensions/memory/test_encrypt_session.py | 0 | test that runconfig can override session's default settings. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | test that runconfig can override session's default settings. | STRING |
| HIGH | tests/extensions/memory/test_sqlalchemy_session.py | 0 | test that runconfig can override session's default settings. | STRING |
| HIGH | tests/extensions/memory/test_advanced_sqlite_session.py | 0 | test that runconfig can override session's default settings. | STRING |
| HIGH | tests/extensions/memory/test_redis_session.py | 0 | test that runconfig can override session's default settings. | STRING |
| HIGH | tests/models/test_litellm_chatcompletions_stream.py | 0 | cancelling during the cleanup `aclose` continues that close instead of abandoning it. | STRING |
| HIGH | tests/models/test_openai_chatcompletions_stream.py | 0 | cancelling during the cleanup `aclose` continues that close instead of abandoning it. | STRING |
| HIGH | tests/models/test_openai_responses.py | 0 | cancelling during the cleanup `aclose` continues that close instead of abandoning it. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | test that different session ids result in isolated conversation histories. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | test that different session ids result in isolated conversation histories. | STRING |
| HIGH | tests/extensions/memory/test_sqlalchemy_session.py | 0 | test that different session ids result in isolated conversation histories. | STRING |
| HIGH | tests/extensions/memory/test_redis_session.py | 0 | test that different session ids result in isolated conversation histories. | STRING |
| HIGH | tests/extensions/memory/test_dapr_session.py | 0 | test that pop_item returns none on an empty session. | STRING |
| HIGH | tests/extensions/memory/test_async_sqlite_session.py | 0 | test that pop_item returns none on an empty session. | STRING |
| 92 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration_tests/_contract_support.py | 1207 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 1655 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 1672 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 1772 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 1954 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 2008 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 2050 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 2087 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 2250 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 2406 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 2413 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 2443 | except Exception as error: | CODE |
| LOW | integration_tests/_contract_support.py | 2461 | except Exception as error: | CODE |
| LOW | integration_tests/containers/test_dapr_redis.py | 116 | except Exception: | CODE |
| LOW | integration_tests/containers/test_dapr_redis.py | 139 | except Exception: | CODE |
| LOW | tests/memory/test_session.py | 80 | except Exception: | CODE |
| LOW | tests/mcp/test_mcp_util.py | 1227 | except Exception: | CODE |
| LOW⚡ | tests/extensions/memory/test_dapr_session.py | 715 | except Exception: | CODE |
| LOW | tests/extensions/memory/test_dapr_session.py | 297 | except Exception: | CODE |
| LOW | tests/extensions/memory/test_dapr_session.py | 650 | except Exception: | CODE |
| LOW | tests/extensions/memory/test_sqlalchemy_session.py | 780 | except Exception as exc: | CODE |
| LOW | tests/extensions/memory/test_sqlalchemy_session.py | 828 | except Exception as exc: | CODE |
| LOW | tests/extensions/memory/test_advanced_sqlite_session.py | 1151 | except Exception as exc: | CODE |
| LOW | tests/extensions/memory/test_advanced_sqlite_session.py | 1175 | except Exception as exc: | CODE |
| LOW | tests/extensions/memory/test_advanced_sqlite_session.py | 2155 | except Exception: | CODE |
| LOW⚡ | tests/extensions/memory/test_redis_session.py | 541 | except Exception: | CODE |
| LOW⚡ | tests/extensions/memory/test_redis_session.py | 665 | except Exception: | CODE |
| LOW | tests/extensions/memory/test_redis_session.py | 261 | except Exception: | CODE |
| LOW | tests/extensions/memory/test_redis_session.py | 488 | except Exception: | CODE |
| LOW | tests/extensions/memory/test_redis_session.py | 587 | except Exception: | CODE |
| LOW | tests/extensions/memory/test_redis_session.py | 714 | except Exception: | CODE |
| MEDIUM | tests/realtime/test_openai_realtime.py | 3308 | def handler(websocket): | CODE |
| LOW | tests/realtime/test_openai_realtime.py | 3337 | except Exception: | CODE |
| LOW | tests/realtime/test_session.py | 727 | except Exception: # noqa: S110 | CODE |
| MEDIUM | docs/ja/realtime/quickstart.md | 96 | print(f"Error: {event.error}") | CODE |
| MEDIUM | docs/realtime/quickstart.md | 92 | print(f"Error: {event.error}") | CODE |
| MEDIUM | docs/zh/realtime/quickstart.md | 96 | print(f"Error: {event.error}") | CODE |
| LOW | docs/scripts/translate_docs.py | 706 | except Exception: | CODE |
| MEDIUM | docs/scripts/translate_docs.py | 834 | print("Error: No valid files found to translate") | CODE |
| MEDIUM | docs/ko/realtime/quickstart.md | 96 | print(f"Error: {event.error}") | CODE |
| LOW⚡ | examples/memory/dapr_session_example.py | 223 | except Exception as e: | CODE |
| MEDIUM⚡ | examples/memory/dapr_session_example.py | 224 | print(f"Error: {e}") | CODE |
| LOW | examples/memory/dapr_session_example.py | 295 | except Exception as e: | CODE |
| LOW⚡ | examples/memory/dapr_session_example.py | 426 | except Exception as e: | CODE |
| LOW | examples/memory/dapr_session_example.py | 458 | except Exception: | CODE |
| LOW | examples/memory/file_hitl_example.py | 87 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | examples/memory/file_hitl_example.py | 147 | except Exception: | CODE |
| LOW⚡ | examples/memory/redis_session_example.py | 148 | except Exception as e: | CODE |
| MEDIUM⚡ | examples/memory/redis_session_example.py | 149 | print(f"Error: {e}") | CODE |
| LOW | examples/memory/redis_session_example.py | 175 | except Exception as e: | CODE |
| LOW | examples/memory/mongodb_session_example.py | 31 | except Exception: | CODE |
| LOW | examples/financial_research_agent/manager.py | 176 | except Exception: | CODE |
| MEDIUM | examples/basic/non_strict_output_type.py | 71 | print(f"Error (expected): {e}") | CODE |
| LOW | examples/research_bot/manager.py | 102 | except Exception: | CODE |
| LOW | …mples/mcp/streamablehttp_custom_client_example/main.py | 129 | except Exception as e: | CODE |
| MEDIUM | …mples/mcp/streamablehttp_custom_client_example/main.py | 130 | print(f"Error starting Streamable HTTP server: {e}") | CODE |
| LOW | examples/mcp/streamablehttp_example/server.py | 36 | except Exception: | CODE |
| LOW | examples/mcp/streamablehttp_example/main.py | 96 | except Exception as e: | CODE |
| MEDIUM | examples/mcp/streamablehttp_example/main.py | 97 | print(f"Error starting Streamable HTTP server: {e}") | CODE |
| LOW | examples/mcp/prompt_server/main.py | 44 | except Exception as e: | CODE |
| 577 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_responses_tracing.py | 296 | # Create an instance of the model | COMMENT |
| MEDIUM⚡ | tests/test_responses_tracing.py | 299 | # Define a dummy fetch function that returns an async stream with a dummy response | COMMENT |
| MEDIUM⚡ | tests/test_responses_tracing.py | 441 | # Create an instance of the model | COMMENT |
| MEDIUM⚡ | tests/test_responses_tracing.py | 447 | # Define a dummy fetch function that returns an async stream with a dummy response | COMMENT |
| MEDIUM⚡ | tests/test_responses_tracing.py | 649 | # Create an instance of the model | COMMENT |
| MEDIUM⚡ | tests/test_responses_tracing.py | 652 | # Define a dummy fetch function that returns an async stream with a dummy response | COMMENT |
| MEDIUM | tests/test_responses_tracing.py | 70 | # Create an instance of the model | COMMENT |
| MEDIUM | tests/test_responses_tracing.py | 134 | # Create an instance of the model | COMMENT |
| MEDIUM | tests/test_responses_tracing.py | 255 | # Create an instance of the model | COMMENT |
| MEDIUM⚡ | tests/test_items_helpers.py | 208 | # Create a non-message run item of a different type, e.g., a reasoning trace. | COMMENT |
| MEDIUM | tests/test_agent_runner_streamed.py | 2183 | # Create a tool that requires approval | COMMENT |
| MEDIUM | tests/test_hitl_error_scenarios.py | 651 | # Create the tool with needs_approval directly | COMMENT |
| MEDIUM | tests/test_usage.py | 300 | # Create a usage with request_usage_entries | COMMENT |
| MEDIUM | tests/test_agent_runner.py | 6831 | # Define a tool that will be called by the orchestrator agent | COMMENT |
| MEDIUM | tests/test_agent_runner.py | 6919 | # Create a computer tool (not a FunctionTool) | COMMENT |
| MEDIUM | tests/test_agent_runner.py | 6961 | # Create an approved tool call for the computer tool | COMMENT |
| MEDIUM | tests/test_agent_runner.py | 6993 | # Create a rejected tool call | COMMENT |
| MEDIUM | tests/test_agent_runner.py | 7175 | # Create a tool call with unclear status (neither approved nor rejected) | COMMENT |
| MEDIUM | tests/test_agent_runner.py | 7198 | # Create an approved tool call for a tool that doesn't exist | COMMENT |
| MEDIUM | tests/test_agent_as_tool.py | 225 | # Create a simple agent | COMMENT |
| MEDIUM | tests/test_agent_as_tool.py | 273 | # Create a simple agent | COMMENT |
| MEDIUM | tests/test_agent_as_tool.py | 321 | # Create a simple agent | COMMENT |
| MEDIUM | tests/test_agent_as_tool.py | 384 | # Create a simple agent | COMMENT |
| MEDIUM | tests/test_computer_action.py | 542 | # Create a dummy click action to trigger a click and screenshot. | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 6944 | # Create a tool call item | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 6954 | # Create a ProcessedResponse with the tool call item in new_items | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 7037 | # Create a tool call item | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 7047 | # Create a ProcessedResponse with the tool call item | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 10222 | # Create a tool call item | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 10232 | # Create a ProcessedResponse | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 10252 | # Create a tool call item | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 10262 | # Create a ProcessedResponse | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 10351 | # Create a mock MCP tool that will be recognized as HostedMCPTool | COMMENT |
| MEDIUM⚡ | tests/test_run_state.py | 10356 | # Create a minimal Mcp config | COMMENT |
| MEDIUM | tests/test_run_state.py | 1529 | # Create a mock item that has id and type directly on the item (not in raw_item) | COMMENT |
| MEDIUM | tests/test_run_state.py | 4148 | # Create a cycle A -> B -> A | COMMENT |
| MEDIUM | tests/test_run_state.py | 5167 | # Create a handoff output item | COMMENT |
| MEDIUM | tests/test_run_state.py | 6864 | # Create a RunState with context | COMMENT |
| MEDIUM | tests/test_run_state.py | 6884 | # Create a RunState with context | COMMENT |
| MEDIUM | tests/test_run_state.py | 6908 | # Create a run that will have interruptions | COMMENT |
| MEDIUM | tests/test_run_state.py | 6976 | # Create a message with nested content | COMMENT |
| MEDIUM | tests/test_run_state.py | 7253 | # Create a handoff with a name attribute but no tool_name | COMMENT |
| MEDIUM | tests/test_run_state.py | 7398 | # Create a shell tool with description | COMMENT |
| MEDIUM | tests/test_run_state.py | 7436 | # Create an apply patch tool with description | COMMENT |
| MEDIUM | tests/test_run_state.py | 7482 | # Create a mock MCP tool - HostedMCPTool doesn't have a simple constructor | COMMENT |
| MEDIUM | tests/test_run_state.py | 7521 | # Create a message item | COMMENT |
| MEDIUM | tests/test_run_state.py | 7812 | # Create a mock item with a raw_item that is neither dict nor has model_dump | COMMENT |
| MEDIUM | tests/test_run_state.py | 7832 | # Create an agent without get_all_tools method | COMMENT |
| MEDIUM | tests/test_run_state.py | 7861 | # Create a handoff with tool_name | COMMENT |
| MEDIUM | tests/test_run_state.py | 8516 | # Create a mock MCP tool | COMMENT |
| MEDIUM | tests/test_run_state.py | 10312 | # Create a handoff with name attribute but no tool_name | COMMENT |
| MEDIUM | tests/test_run_state.py | 10402 | # Create an agent without get_all_tools method | COMMENT |
| MEDIUM | tests/test_run_state.py | 10465 | # Create an item with missing type field to trigger the union adapter fallback | COMMENT |
| MEDIUM⚡ | tests/test_extension_filters.py | 789 | # Create a nested summary that will be parsed | COMMENT |
| MEDIUM⚡ | tests/test_extension_filters.py | 797 | # Create a second nested summary that includes the first | COMMENT |
| MEDIUM⚡ | tests/test_extension_filters.py | 896 | # Create an item with a circular reference or other unserializable content | COMMENT |
| MEDIUM⚡ | tests/test_extension_filters.py | 901 | # Create an item that will trigger TypeError in json.dumps | COMMENT |
| MEDIUM | tests/test_extension_filters.py | 631 | # Create an item that doesn't have a role (e.g., a function call) | COMMENT |
| MEDIUM | tests/test_extension_filters.py | 768 | # Create a summary message with non-string content (array) | COMMENT |
| MEDIUM | tests/test_extension_filters.py | 816 | # Create a summary that includes a role with name | COMMENT |
| 72 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_tool_approval_call_id_reuse.py | 169 | "arguments": '{"value": null}', | CODE |
| HIGH | tests/test_agent_tool_input.py | 93 | assert "- count (integer | null, optional) - Optional count." in info.summary | CODE |
| HIGH | tests/test_run_state.py | 4581 | "output": '{"temperature":20,"unit":"celsius","humidity":null}', | CODE |
| HIGH | tests/extensions/memory/test_dapr_session.py | 1428 | # still non-null, which is the situation the guard is actually for. | COMMENT |
| HIGH | tests/extensions/sandbox/test_modal.py | 2539 | "modal-snapshot-directory-ephemeral.tar -T - 2>/dev/null && test -f " | CODE |
| HIGH | tests/extensions/sandbox/test_modal.py | 2775 | "cd -- /workspace && (tar cf - -- tmp.txt 2>/dev/null || true)", | CODE |
| HIGH | tests/extensions/sandbox/test_modal.py | 2806 | ["sh", "-lc", "cd -- /workspace && (tar cf - -- tmp.txt 2>/dev/null || true)"], | CODE |
| HIGH | tests/extensions/sandbox/test_modal.py | 2858 | "cd -- /workspace && (tar cf - -- tmp.txt 2>/dev/null || true)", | CODE |
| HIGH | tests/extensions/sandbox/test_modal.py | 2886 | ["sh", "-lc", "cd -- /workspace && (tar cf - -- tmp.txt 2>/dev/null || true)"], | CODE |
| HIGH | tests/extensions/sandbox/test_e2b.py | 131 | "sh -lc test -c /dev/fuse && grep -qw fuse /proc/filesystems && " | CODE |
| HIGH | tests/extensions/sandbox/test_e2b.py | 132 | "(command -v fusermount3 >/dev/null 2>&1 || command -v fusermount >/dev/null 2>&1)" | CODE |
| HIGH | tests/extensions/sandbox/test_e2b.py | 160 | "sh -lc command -v rclone >/dev/null 2>&1 || test -x /usr/local/bin/rclone", | CODE |
| HIGH | tests/extensions/sandbox/test_e2b.py | 177 | "sh -lc command -v rclone >/dev/null 2>&1 || test -x /usr/local/bin/rclone" | CODE |
| HIGH | tests/extensions/sandbox/test_runloop_mounts.py | 155 | "sh -lc command -v rclone >/dev/null 2>&1 || test -x /usr/local/bin/rclone", | CODE |
| HIGH | tests/extensions/sandbox/test_runloop_mounts.py | 172 | "sh -lc command -v rclone >/dev/null 2>&1 || test -x /usr/local/bin/rclone" | CODE |
| HIGH | tests/extensions/sandbox/test_runloop_mounts.py | 198 | "sh -lc command -v fusermount3 >/dev/null 2>&1 || command -v fusermount >/dev/null 2>&1", | CODE |
| HIGH | tests/extensions/sandbox/test_runloop_mounts.py | 208 | "sh -lc command -v fusermount3 >/dev/null 2>&1 || command -v fusermount >/dev/null 2>&1", | CODE |
| HIGH | tests/extensions/sandbox/test_runloop.py | 2422 | await session.exec("pwd && echo hello", shell=True) | CODE |
| HIGH | tests/extensions/sandbox/test_runloop.py | 2638 | await session.exec("pwd && echo hello", shell=True) | CODE |
| HIGH | tests/realtime/test_session.py | 4549 | complex_args = '{"nested": {"data": [1, 2, 3]}, "bool": true, "null": null}' | CODE |
| HIGH | tests/sandbox/test_session_sinks.py | 699 | slow_result = await session.exec("sleep 1 && echo slow span") | CODE |
| HIGH | tests/sandbox/test_runtime.py | 5020 | result = await session.exec("echo hi > note.txt && cat note.txt") | CODE |
| HIGH⚡ | tests/sandbox/test_session_utils.py | 218 | await session.exec("echo hello && echo goodbye", shell=True) | CODE |
| HIGH⚡ | tests/sandbox/test_session_utils.py | 220 | assert session.last_command == ("sh", "-lc", "echo hello && echo goodbye") | CODE |
| HIGH⚡ | tests/sandbox/test_posix_tool_paths.py | 30 | assert command == "cd /workspace/src/project && pwd" | CODE |
| HIGH | tests/sandbox/test_posix_tool_paths.py | 58 | assert command == f"cd {workspace.as_posix()}/src/project && pwd" | CODE |
| HIGH | tests/sandbox/test_mounts.py | 1267 | ["sh", "-lc", "command -v rclone >/dev/null 2>&1 || test -x /usr/local/bin/rclone"], | CODE |
| HIGH⚡ | tests/sandbox/test_docker.py | 3634 | 'pid="$(cat "$1" 2>/dev/null || true)"; ' | CODE |
| HIGH⚡ | tests/sandbox/test_docker.py | 3635 | 'if [ -n "$pid" ]; then kill -KILL "$pid" >/dev/null 2>&1 || true; fi; ' | CODE |
| HIGH⚡ | tests/sandbox/test_docker.py | 3677 | "cmd": ["sh", "-lc", "pkill -f -- 'sleep 10' >/dev/null 2>&1 || true"], | CODE |
| HIGH⚡ | tests/sandbox/test_docker.py | 3682 | "cmd": ["sh", "-lc", "pkill -f -- 'sleep 20' >/dev/null 2>&1 || true"], | CODE |
| HIGH | tests/sandbox/test_docker.py | 3619 | 'mkdir -p "$1" && printf "%s" "$$" > "$2" && shift 2 && exec "$@"', | CODE |
| HIGH⚡ | tests/sandbox/capabilities/test_shell_capability.py | 356 | assert session.calls[0].args == ("cd /workspace/src/project && pwd",) | CODE |
| HIGH⚡ | tests/sandbox/capabilities/test_shell_capability.py | 364 | "stdout: cd /workspace/src/project && pwd\n" | CODE |
| HIGH⚡ | tests/sandbox/capabilities/test_shell_capability.py | 365 | "stderr: cd /workspace/src/project && pwd" | CODE |
| HIGH⚡ | tests/sandbox/capabilities/test_shell_capability.py | 457 | assert session.calls[0].args == ("cd /mnt/shared-data && pwd",) | CODE |
| HIGH⚡ | tests/sandbox/capabilities/test_shell_capability.py | 465 | "stdout: cd /mnt/shared-data && pwd\n" | CODE |
| HIGH⚡ | tests/sandbox/capabilities/test_shell_capability.py | 466 | "stderr: cd /mnt/shared-data && pwd" | CODE |
| HIGH⚡ | tests/sandbox/capabilities/test_shell_capability.py | 605 | assert session.calls[0].args == ("cd /workspace/tasks/a && pwd",) | CODE |
| HIGH⚡ | tests/sandbox/capabilities/test_shell_capability.py | 606 | assert session.calls[1].args == ("cd /workspace/tasks/a && pwd",) | CODE |
| HIGH | tests/sandbox/capabilities/test_shell_capability.py | 291 | assert session.calls[0].args == ("cd /workspace/tasks/a && pwd",) | CODE |
| HIGH | tests/sandbox/capabilities/test_shell_capability.py | 385 | assert session.calls[0].args == ("cd /workspace/tasks/a && pwd",) | CODE |
| HIGH | tests/sandbox/capabilities/test_shell_capability.py | 400 | assert session.calls[0].args == ("cd /workspace/tasks/a/src/project && pwd",) | CODE |
| HIGH | tests/sandbox/capabilities/test_shell_capability.py | 417 | assert session.calls[0].args == ("cd /workspace/tasks/a/src/project && pwd",) | CODE |
| HIGH | tests/sandbox/capabilities/test_shell_capability.py | 503 | assert session.calls[0].args == ("cd /workspace/tasks/a && pwd",) | CODE |
| HIGH | examples/sandbox/shared_session_workdirs.py | 94 | SHELL_COMMAND = "cp reference.png page.png && cat brief.md" | CODE |
| HIGH | examples/sandbox/healthcare_support/support_agents.py | 120 | "Use `exec_command` with `pwd`, `ls`, `cat`, and the documented `rg || grep` search " | STRING |
| HIGH | examples/sandbox/extensions/blaxel_runner.py | 307 | f"cat {mount_path}/{marker}.txt && ls {mount_path}" | CODE |
| HIGH | …ples/sandbox/tutorials/dataroom_metric_extract/main.py | 61 | Optional field: `segment` (segment/geography if explicitly stated, else null). | STRING |
| HIGH | src/agents/extensions/sandbox/_rclone.py | 8 | _RCLONE_CHECK = "command -v rclone >/dev/null 2>&1 || test -x /usr/local/bin/rclone" | CODE |
| HIGH | src/agents/extensions/sandbox/runloop/mounts.py | 53 | "command -v fusermount3 >/dev/null 2>&1 || command -v fusermount >/dev/null 2>&1", | CODE |
| HIGH | src/agents/extensions/sandbox/runloop/mounts.py | 81 | "command -v fusermount3 >/dev/null 2>&1 || command -v fusermount >/dev/null 2>&1", | CODE |
| HIGH | src/agents/extensions/sandbox/blaxel/mounts.py | 247 | "cd /tmp && ar x gcsfuse.deb && " | CODE |
| HIGH | src/agents/extensions/sandbox/blaxel/mounts.py | 271 | detect = await _exec(session, "which apk >/dev/null 2>&1 && echo apk || echo apt") | CODE |
| HIGH | src/agents/extensions/sandbox/blaxel/mounts.py | 271 | detect = await _exec(session, "which apk >/dev/null 2>&1 && echo apk || echo apt") | CODE |
| HIGH⚡ | src/agents/extensions/sandbox/daytona/mounts.py | 42 | f"command -v {cmd} >/dev/null 2>&1 || test -x /usr/local/bin/{cmd}", | CODE |
| HIGH | src/agents/extensions/sandbox/daytona/mounts.py | 62 | f"apt-get update -qq && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq {package}" | CODE |
| HIGH | src/agents/extensions/sandbox/modal/sandbox.py | 1354 | f"(tar cf - -- {rel_args} 2>/dev/null || true)" | CODE |
| HIGH | src/agents/extensions/sandbox/e2b/mounts.py | 34 | "test -c /dev/fuse && grep -qw fuse /proc/filesystems && " | CODE |
| HIGH | src/agents/extensions/sandbox/e2b/mounts.py | 35 | "(command -v fusermount3 >/dev/null 2>&1 || command -v fusermount >/dev/null 2>&1)", | CODE |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 12 | 1. [**Agents**](https://openai.github.io/openai-agents-python/agents): LLMs configured with instructions, tools, guardra | CODE |
| MEDIUM | README.md | 18 | 1. [**Guardrails**](https://openai.github.io/openai-agents-python/guardrails/): Configurable safety checks for input and | CODE |
| MEDIUM | tests/test_guardrails.py | 510 | # Trip only after the tool ran. If parallel guardrails gated the turn, this | COMMENT |
| MEDIUM | tests/test_guardrails.py | 869 | # Trip only after the tool ran. If parallel guardrails gated the turn, this | COMMENT |
| MEDIUM⚡ | tests/test_items_helpers.py | 208 | # Create a non-message run item of a different type, e.g., a reasoning trace. | COMMENT |
| MEDIUM | tests/realtime/test_session.py | 5650 | # Neither should trigger guardrails yet | COMMENT |
| MEDIUM | tests/realtime/test_session.py | 5793 | # Use a minimal agent (guardrails from run_config) | COMMENT |
| MEDIUM⚡ | docs/llms.txt | 8 | - [Overview](https://openai.github.io/openai-agents-python/): Learn the core primitives—agents, handoffs, guardrails, se | CODE |
| MEDIUM⚡ | docs/llms.txt | 10 | - [Example Gallery](https://openai.github.io/openai-agents-python/examples/): Task-oriented examples that demonstrate ag | CODE |
| MEDIUM⚡ | docs/llms.txt | 13 | - [Agents](https://openai.github.io/openai-agents-python/agents/): Configure agent instructions, tools, guardrails, memo | CODE |
| MEDIUM | docs/llms.txt | 25 | - [Guardrails](https://openai.github.io/openai-agents-python/guardrails/): Define validators that run alongside the agen | CODE |
| MEDIUM | docs/guardrails.md | 20 | ## Input guardrails | COMMENT |
| MEDIUM | docs/guardrails.md | 40 | ## Output guardrails | COMMENT |
| MEDIUM | docs/guardrails.md | 58 | ## Tool guardrails | COMMENT |
| MEDIUM | docs/context.md | 40 | Adapt the shared application policy to these callbacks instead of maintaining separate capability lists. The callbacks c | CODE |
| MEDIUM | docs/quickstart.md | 181 | ## Run the agent orchestration | COMMENT |
| MEDIUM | docs/llms-full.txt | 10 | - [Example Gallery](https://openai.github.io/openai-agents-python/examples/): Realistic Python samples that demonstrate | CODE |
| MEDIUM | docs/llms-full.txt | 29 | - [Guardrails](https://openai.github.io/openai-agents-python/guardrails/): Create synchronous or asynchronous checks, sh | CODE |
| MEDIUM | docs/llms-full.txt | 61 | - [guardrail APIs](https://openai.github.io/openai-agents-python/ref/guardrail/): Build custom guardrails, interpret val | CODE |
| MEDIUM | docs/release.md | 28 | - When an agent-level output guardrail blocks final output produced directly by a terminal function tool, the SDK reta | CODE |
| MEDIUM | docs/release.md | 61 | - Runtime reliability fixes align streamed and non-streamed [output-guardrail session persistence](guardrails.md#outpu | CODE |
| MEDIUM | docs/results.md | 214 | One redaction rule applies when an agent-level output guardrail blocks final output produced directly by a terminal func | CODE |
| MEDIUM | docs/index.md | 3 | The [OpenAI Agents SDK](https://github.com/openai/openai-agents-python) enables you to build agentic AI apps in a lightw | CODE |
| MEDIUM | docs/tools.md | 841 | For locally configured function tools, the runner also reevaluates `is_enabled` before invocation. However, `is_enabled` | CODE |
| MEDIUM | docs/multi_agent.md | 1 | # Agent orchestration | COMMENT |
| MEDIUM | docs/multi_agent.md | 57 | - [Tools](tools.md#agents-as-tools) for `Agent.as_tool()` and manager-style orchestration. | CODE |
| MEDIUM | docs/ja/guardrails.md | 24 | ## 入力ガードレール {#input-guardrails} | COMMENT |
| MEDIUM | docs/ja/guardrails.md | 44 | ## 出力ガードレール {#output-guardrails} | COMMENT |
| MEDIUM | docs/ja/guardrails.md | 62 | ## ツールガードレール {#tool-guardrails} | COMMENT |
| MEDIUM | docs/ja/context.md | 44 | 個別の機能リストを管理するのではなく、共有アプリケーションポリシーをこれらのコールバックに合わせて適用してください。これらのコールバックは、現在の実行に対して SDK が公開する機能を制御しますが、モデルが生成した引数やリソース選択を認可す | CODE |
| MEDIUM | docs/ja/quickstart.md | 185 | ## エージェントオーケストレーションの実行 {#run-the-agent-orchestration} | COMMENT |
| MEDIUM | docs/ja/running_agents.md | 144 | ##### ガードレール、ハンドオフ、モデル入力の整形 {#guardrails-handoffs-and-model-input-shaping} | COMMENT |
| MEDIUM | docs/ja/release.md | 32 | - エージェントレベルの出力ガードレールが、終端関数ツールによって直接生成された最終出力をブロックした場合、検証済みフィールドによって安全に再構築できる場合に限り、SDK は再実行可能な呼び出し/出力ペアを保持します。元の `funct | CODE |
| MEDIUM | docs/ja/release.md | 65 | - 実行時の信頼性修正により、ストリーミングと非ストリーミングの[出力ガードレールのセッション永続化](guardrails.md#output-guardrails)が統一され、コピーおよび名前空間化の際に `FunctionTool | CODE |
| MEDIUM | docs/ja/results.md | 218 | エージェントレベルの出力ガードレールが、終端となる関数ツールによって直接生成された最終出力をブロックした場合、1 つの秘匿化ルールが適用されます。ブロックされた現在のレスポンスでは、`output_guardrail_results` が拒 | CODE |
| MEDIUM | docs/ja/agents.md | 182 | ## マルチエージェントシステムの設計パターン {#multi-agent-system-design-patterns} | COMMENT |
| MEDIUM | docs/ja/agents.md | 305 | ## ガードレール {#guardrails} | COMMENT |
| MEDIUM | docs/ja/tools.md | 845 | ローカルで設定された関数ツールの場合、Runner は呼び出し前にも `is_enabled` を再評価します。ただし、`is_enabled` は可視性とディスパッチを制御するものであり、ツール引数やアクセス対象のリソースに依存する認可の | CODE |
| MEDIUM | docs/ja/multi_agent.md | 14 | ## LLM によるオーケストレーション {#orchestrating-via-llm} | COMMENT |
| MEDIUM | docs/ja/multi_agent.md | 47 | ## コードによるオーケストレーション {#orchestrating-via-code} | COMMENT |
| MEDIUM | docs/ja/models/index.md | 20 | | OpenAI がホストするサブエージェントを使用する | 実験的なホステッド・マルチエージェントモデルを使用する | [ホステッド・マルチエージェント](#hosted-multi-agent-experimental) | | CODE |
| MEDIUM | docs/ja/models/index.md | 242 | ### ホステッド・マルチエージェント(実験的) {#hosted-multi-agent-experimental} | COMMENT |
| MEDIUM | docs/ja/models/index.md | 294 | #### SDK オーケストレーションとの関係 {#relationship-to-sdk-orchestration} | COMMENT |
| MEDIUM | docs/ja/realtime/guide.md | 266 | ## ツール、承認、ハンドオフ、ガードレール {#tools-approvals-handoffs-and-guardrails} | COMMENT |
| MEDIUM | docs/ja/realtime/guide.md | 329 | ### ガードレール {#guardrails} | COMMENT |
| MEDIUM | docs/models/index.md | 16 | | Use OpenAI-hosted subagents | Use the experimental hosted multi-agent model | [Hosted multi-agent](#hosted-multi-agent | CODE |
| MEDIUM | docs/models/index.md | 238 | ### Hosted multi-agent (experimental) | COMMENT |
| MEDIUM | docs/models/index.md | 290 | #### Relationship to SDK orchestration | COMMENT |
| MEDIUM | docs/realtime/guide.md | 262 | ## Tools, approvals, handoffs, and guardrails | COMMENT |
| MEDIUM | docs/zh/guardrails.md | 24 | ## 输入安全防护措施 {#input-guardrails} | COMMENT |
| MEDIUM | docs/zh/guardrails.md | 44 | ## 输出安全防护措施 {#output-guardrails} | COMMENT |
| MEDIUM | docs/zh/guardrails.md | 62 | ## 工具安全防护措施 {#tool-guardrails} | COMMENT |
| MEDIUM | docs/zh/context.md | 44 | 请针对这些回调调整共享的应用策略,而不是维护单独的能力列表。这些回调用于控制 SDK 在当前运行中公开哪些能力;它们无法对模型生成的参数或资源选择进行授权。对于函数工具,请在工具实现内部实施这些决策,或在适当时使用[工具输入安全防护措施]( | CODE |
| MEDIUM | docs/zh/quickstart.md | 185 | ## 智能体编排的运行 {#run-the-agent-orchestration} | COMMENT |
| MEDIUM | docs/zh/running_agents.md | 144 | ##### 安全防护措施、任务转移与模型输入调整 {#guardrails-handoffs-and-model-input-shaping} | COMMENT |
| MEDIUM | docs/zh/release.md | 32 | - 当智能体级输出安全防护措施阻止由终止函数工具直接生成的最终输出时,仅当经过验证的字段允许安全重建时,SDK 才会保留可用于重放的调用/输出对。原始 `function_call_output` 载荷会在会话历史记录、`RunStat | CODE |
| MEDIUM | docs/zh/release.md | 65 | - 运行时可靠性修复统一了流式和非流式的[输出安全防护措施会话持久化](guardrails.md#output-guardrails),在复制和命名空间处理期间保留 `FunctionTool` 子类,并针对[不受支持的 Chat C | CODE |
| MEDIUM | docs/zh/results.md | 218 | 当智能体级输出安全防护措施阻止由终止函数工具直接生成的最终输出时,会应用一条脱敏规则。对于当前被阻止的响应,`output_guardrail_results` 会替换被拒绝的智能体输出,并清除包含载荷的输出元数据,而 `tool_outp | CODE |
| MEDIUM | docs/zh/agents.md | 182 | ## 多智能体系统设计模式 {#multi-agent-system-design-patterns} | COMMENT |
| MEDIUM | docs/zh/agents.md | 305 | ## 安全防护措施 {#guardrails} | COMMENT |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration_tests/conftest.py | 159 | CODE | |
| LOW | integration_tests/_contract_support.py | 419 | CODE | |
| LOW | integration_tests/_contract_support.py | 1541 | CODE | |
| LOW | integration_tests/_contract_support.py | 2194 | CODE | |
| LOW | integration_tests/_contract_support.py | 2692 | CODE | |
| LOW | integration_tests/_contract_support.py | 426 | CODE | |
| LOW | integration_tests/packaging/mcp_legacy_server.py | 12 | CODE | |
| LOW | …gration_tests/security/test_local_sandbox_isolation.py | 115 | CODE | |
| LOW | integration_tests/containers/test_dapr_redis.py | 95 | CODE | |
| LOW | integration_tests/containers/test_dapr_redis.py | 125 | CODE | |
| LOW | tests/test_tracing.py | 306 | CODE | |
| LOW | tests/test_error_logging_redaction.py | 1795 | CODE | |
| LOW | tests/test_error_logging_redaction.py | 1831 | CODE | |
| LOW | tests/test_error_logging_redaction.py | 2220 | CODE | |
| LOW | tests/test_agent_llm_hooks.py | 104 | CODE | |
| LOW | tests/test_hitl_session_scenario.py | 321 | CODE | |
| LOW | tests/test_hitl_session_scenario.py | 342 | CODE | |
| LOW | tests/test_run_hooks.py | 125 | CODE | |
| LOW | tests/test_agent_runner_streamed.py | 2716 | CODE | |
| LOW | tests/test_agent_runner_streamed.py | 2918 | CODE | |
| LOW | tests/test_repository_workflow_interfaces.py | 17 | CODE | |
| LOW | tests/test_max_turns.py | 929 | CODE | |
| LOW | tests/test_provider_span_errors.py | 259 | CODE | |
| LOW | tests/test_provider_span_errors.py | 282 | CODE | |
| LOW | tests/test_provider_span_errors.py | 304 | CODE | |
| LOW | tests/test_provider_span_errors.py | 324 | CODE | |
| LOW | tests/test_function_tool_decorator.py | 710 | CODE | |
| LOW | tests/test_scripted_model.py | 1818 | CODE | |
| LOW | tests/memory/test_session.py | 62 | CODE | |
| LOW | tests/mcp/test_server_errors.py | 63 | CODE | |
| LOW | tests/mcp/test_server_errors.py | 132 | CODE | |
| LOW | tests/mcp/test_mcp_v2_http.py | 161 | CODE | |
| LOW | tests/mcp/servers/legacy.py | 12 | CODE | |
| LOW | …xtensions/experimental/hosted_multi_agent/test_live.py | 37 | CODE | |
| LOW | tests/extensions/memory/test_dapr_session.py | 1265 | CODE | |
| LOW | tests/extensions/memory/test_advanced_sqlite_session.py | 675 | CODE | |
| LOW | tests/extensions/memory/test_advanced_sqlite_session.py | 1344 | CODE | |
| LOW | tests/extensions/memory/test_advanced_sqlite_session.py | 3550 | CODE | |
| LOW | tests/extensions/memory/test_redis_session.py | 3042 | CODE | |
| LOW | tests/extensions/sandbox/test_modal.py | 3315 | CODE | |
| LOW | tests/extensions/sandbox/test_e2b.py | 310 | CODE | |
| LOW | tests/extensions/sandbox/test_vercel.py | 339 | CODE | |
| LOW | tests/extensions/sandbox/test_runloop.py | 274 | CODE | |
| LOW | tests/realtime/test_session.py | 1303 | CODE | |
| LOW | tests/sandbox/test_runtime.py | 6296 | CODE | |
| LOW | tests/sandbox/test_runtime.py | 6319 | CODE | |
| LOW | tests/sandbox/_filesystem_test_session.py | 94 | CODE | |
| LOW | tests/sandbox/test_mount_security.py | 689 | CODE | |
| LOW | …gents/skills/release-candidate-prep/scripts/prepare.py | 280 | CODE | |
| LOW | …lls/implementation-kickoff/scripts/validate_handoff.py | 104 | CODE | |
| LOW | …implementation-final-review/scripts/review_protocol.py | 526 | CODE | |
| LOW | …implementation-final-review/scripts/review_protocol.py | 1030 | CODE | |
| LOW | …ls/implementation-final-review/scripts/review_state.py | 68 | CODE | |
| LOW | …s/sensitive-logging-audit/scripts/inventory_logging.py | 115 | CODE | |
| LOW | docs/scripts/translate_docs.py | 795 | CODE | |
| LOW | examples/web_search_utils.py | 20 | CODE | |
| LOW | examples/run_examples.py | 577 | CODE | |
| LOW | examples/run_examples.py | 629 | CODE | |
| LOW | examples/tools/tool_search.py | 121 | CODE | |
| LOW | examples/tools/code_interpreter.py | 14 | CODE | |
| 281 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_tracing_errors.py | 711 | def set_error(self, error: Any) -> None: | CODE |
| LOW | tests/test_tracing_errors.py | 727 | def set_error(self, error: Any) -> None: | CODE |
| LOW | tests/test_agent_runner_sync.py | 14 | def set_event_loop(self, loop: asyncio.AbstractEventLoop | None) -> None: ... | CODE |
| LOW⚡ | tests/test_trace_processor.py | 379 | def set_processors(self, processors: list[TracingProcessor]) -> None: | CODE |
| LOW⚡ | tests/test_trace_processor.py | 388 | def set_disabled(self, disabled: bool) -> None: | CODE |
| LOW | tests/test_model_error_logging_redaction.py | 14 | def set_error(self, _error: Any) -> None: | CODE |
| LOW⚡ | tests/test_scripted_model.py | 1362 | def set_error(self, _error: SpanError) -> None: | CODE |
| LOW⚡ | tests/test_scripted_model.py | 1377 | def set_error(self, error: SpanError) -> None: | CODE |
| LOW | tests/test_scripted_model.py | 1405 | def set_error(self, error: SpanError) -> None: | CODE |
| LOW | tests/extensions/memory/test_encrypt_session.py | 53 | def _set_time(value: int) -> None: | CODE |
| LOW | tests/extensions/sandbox/test_modal.py | 62 | def _set_aio_attr(obj: object, name: str, fn: Callable[..., object]) -> None: | CODE |
| LOW | tests/sandbox/test_runtime.py | 165 | def _set_concurrency_limits(self, limits: SandboxConcurrencyLimits) -> None: | CODE |
| LOW | tests/sandbox/test_runtime.py | 169 | def _set_archive_limits(self, limits: SandboxArchiveLimits | None) -> None: | CODE |
| LOW | examples/realtime/app/server.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | examples/realtime/cli/demo.py | 385 | def _update_playback_rms(self, samples: np.ndarray[Any, np.dtype[Any]]) -> None: | CODE |
| LOW | …andbox/extensions/temporal/temporal_session_manager.py | 395 | async def update_snapshot_id(self, request: RenameRequest) -> None: | CODE |
| LOW⚡ | …es/sandbox/extensions/temporal/temporal_sandbox_tui.py | 328 | def _set_activity(self, text: str | Text = "") -> None: | CODE |
| LOW | …es/sandbox/extensions/temporal/temporal_sandbox_tui.py | 722 | def _set_session_title(self, title: str) -> None: | CODE |
| LOW⚡ | …es/sandbox/extensions/temporal/temporal_sandbox_tui.py | 324 | def _set_liveness(self, text: str | Text) -> None: | STRING |
| LOW | src/agents/run.py | 168 | __all__ = [ | CODE |
| LOW | src/agents/run.py | 192 | def set_default_agent_runner(runner: AgentRunner | None) -> None: | CODE |
| LOW⚡ | src/agents/run_state.py | 2146 | def set_trace(self, trace: Trace | None) -> None: | CODE |
| LOW⚡ | src/agents/run_state.py | 2155 | def set_tool_use_tracker_snapshot(self, snapshot: Mapping[str, Sequence[str]] | None) -> None: | CODE |
| LOW⚡ | src/agents/run_state.py | 2168 | def set_reasoning_item_id_policy(self, policy: Literal["preserve", "omit"] | None) -> None: | CODE |
| LOW | src/agents/run_error_handlers.py | 58 | __all__ = [ | CODE |
| LOW | src/agents/responses_websocket_session.py | 142 | __all__ = ["ResponsesWebSocketSession", "responses_websocket_session"] | CODE |
| LOW⚡ | src/agents/__init__.py | 306 | def set_default_openai_api(api: Literal["chat_completions", "responses"]) -> None: | CODE |
| LOW⚡ | src/agents/__init__.py | 313 | def set_default_openai_responses_transport(transport: Literal["http", "websocket"]) -> None: | CODE |
| LOW | src/agents/__init__.py | 278 | def set_default_openai_key(key: str, use_for_tracing: bool = True) -> None: | CODE |
| LOW | src/agents/__init__.py | 293 | def set_default_openai_client(client: AsyncOpenAI, use_for_tracing: bool = True) -> None: | CODE |
| LOW | src/agents/__init__.py | 333 | def set_default_openai_harness(harness_id: str | None) -> None: | CODE |
| LOW | src/agents/__init__.py | 366 | __all__ = [ | CODE |
| LOW | src/agents/apply_diff.py | 411 | __all__ = ["apply_diff"] | CODE |
| LOW⚡ | src/agents/_config.py | 13 | def set_default_openai_key(key: str, use_for_tracing: bool) -> None: | CODE |
| LOW⚡ | src/agents/_config.py | 20 | def set_default_openai_client(client: AsyncOpenAI, use_for_tracing: bool) -> None: | CODE |
| LOW⚡ | src/agents/_config.py | 27 | def set_default_openai_api(api: Literal["chat_completions", "responses"]) -> None: | CODE |
| LOW⚡ | src/agents/_config.py | 34 | def set_default_openai_responses_transport(transport: Literal["http", "websocket"]) -> None: | CODE |
| LOW⚡ | src/agents/_config.py | 48 | def set_default_openai_harness(harness_id: str | None) -> None: | CODE |
| LOW | src/agents/run_config.py | 611 | __all__ = [ | CODE |
| LOW⚡ | src/agents/agent_tool_state.py | 57 | def set_agent_tool_state_scope(context: Any, scope_id: str | None) -> None: | CODE |
| LOW | src/agents/decorators.py | 12 | __all__ = [ | CODE |
| LOW | src/agents/tracing/provider.py | 230 | def set_processors(self, processors: list[TracingProcessor]) -> None: | CODE |
| LOW | src/agents/tracing/provider.py | 242 | def set_disabled(self, disabled: bool) -> None: | CODE |
| LOW | src/agents/tracing/provider.py | 332 | def set_disabled(self, disabled: bool) -> None: | CODE |
| LOW⚡ | src/agents/tracing/__init__.py | 101 | def set_trace_processors(processors: list[TracingProcessor]) -> None: | CODE |
| LOW⚡ | src/agents/tracing/__init__.py | 108 | def set_tracing_disabled(disabled: bool) -> None: | CODE |
| LOW⚡ | src/agents/tracing/__init__.py | 115 | def set_tracing_export_api_key(api_key: str) -> None: | CODE |
| LOW | src/agents/tracing/__init__.py | 45 | __all__ = [ | CODE |
| LOW | src/agents/tracing/spans.py | 167 | def set_error(self, error: SpanError) -> None: | CODE |
| LOW | src/agents/tracing/spans.py | 266 | def set_error(self, error: SpanError) -> None: | CODE |
| LOW | src/agents/tracing/spans.py | 373 | def set_error(self, error: SpanError) -> None: | CODE |
| LOW | src/agents/tracing/setup.py | 27 | def set_trace_provider(provider: TraceProvider) -> None: | CODE |
| LOW | src/agents/memory/__init__.py | 20 | __all__ = [ | CODE |
| LOW | src/agents/mcp/__init__.py | 44 | __all__ = [ | CODE |
| LOW | src/agents/models/reasoning_content_replay.py | 61 | __all__ = [ | CODE |
| LOW | src/agents/models/__init__.py | 9 | __all__ = [ | CODE |
| LOW | src/agents/models/_openai_websocket.py | 52 | def _set_header(headers: dict[str, str], key: object, value: object) -> None: | CODE |
| LOW⚡ | src/agents/models/_openai_shared.py | 18 | def set_default_openai_key(key: str) -> None: | CODE |
| LOW⚡ | src/agents/models/_openai_shared.py | 27 | def set_default_openai_client(client: AsyncOpenAI) -> None: | CODE |
| LOW⚡ | src/agents/models/_openai_shared.py | 36 | def set_use_responses_by_default(use_responses: bool) -> None: | CODE |
| 95 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/tracing.md | 175 | api_key="your-api-key", | CODE |
| HIGH | docs/ja/tracing.md | 179 | api_key="your-api-key", | CODE |
| HIGH | docs/ja/realtime/quickstart.md | 134 | export OPENAI_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/ja/realtime/quickstart.md | 140 | session = await runner.run(model_config={"api_key": "your-api-key"}) | CODE |
| HIGH | docs/realtime/quickstart.md | 130 | export OPENAI_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/realtime/quickstart.md | 136 | session = await runner.run(model_config={"api_key": "your-api-key"}) | CODE |
| HIGH | docs/zh/tracing.md | 179 | api_key="your-api-key", | CODE |
| HIGH | docs/zh/realtime/quickstart.md | 134 | export OPENAI_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/zh/realtime/quickstart.md | 140 | session = await runner.run(model_config={"api_key": "your-api-key"}) | CODE |
| HIGH | docs/ko/tracing.md | 179 | api_key="your-api-key", | CODE |
| HIGH | docs/ko/realtime/quickstart.md | 134 | export OPENAI_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/ko/realtime/quickstart.md | 140 | session = await runner.run(model_config={"api_key": "your-api-key"}) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_run_state.py | 176 | CODE | |
| LOW | tests/test_run_step_execution.py | 3052 | CODE | |
| LOW | tests/mcp/helpers.py | 72 | CODE | |
| LOW | tests/extensions/sandbox/test_e2b.py | 310 | CODE | |
| LOW | tests/extensions/sandbox/test_e2b.py | 1101 | CODE | |
| LOW | tests/extensions/sandbox/test_e2b.py | 1168 | CODE | |
| LOW | tests/extensions/sandbox/test_e2b.py | 1220 | CODE | |
| LOW | tests/extensions/sandbox/test_e2b.py | 1438 | CODE | |
| LOW | tests/sandbox/capabilities/test_apply_patch_tool.py | 664 | CODE | |
| LOW | …ndbox/extensions/daytona/usaspending_text2sql/agent.py | 203 | CODE | |
| LOW | src/agents/model_settings.py | 225 | CODE | |
| LOW | src/agents/run.py | 257 | CODE | |
| LOW | src/agents/run.py | 362 | CODE | |
| LOW | src/agents/run.py | 465 | CODE | |
| LOW | src/agents/responses_websocket_session.py | 90 | CODE | |
| LOW | src/agents/tool_context.py | 66 | CODE | |
| LOW | src/agents/retry.py | 62 | CODE | |
| LOW | src/agents/agent.py | 583 | CODE | |
| LOW | src/agents/agent.py | 401 | CODE | |
| LOW | src/agents/run_config.py | 265 | CODE | |
| LOW | src/agents/run_config.py | 500 | CODE | |
| LOW | src/agents/tool.py | 698 | CODE | |
| LOW | src/agents/tool.py | 2458 | CODE | |
| LOW | src/agents/tool.py | 2486 | CODE | |
| LOW | src/agents/tool.py | 2512 | CODE | |
| LOW | src/agents/tracing/create.py | 188 | CODE | |
| LOW | src/agents/tracing/create.py | 353 | CODE | |
| LOW | src/agents/tracing/create.py | 397 | CODE | |
| LOW | src/agents/mcp/server.py | 878 | CODE | |
| LOW | src/agents/mcp/server.py | 1894 | CODE | |
| LOW | src/agents/mcp/server.py | 2036 | CODE | |
| LOW | src/agents/mcp/server.py | 2206 | CODE | |
| LOW | src/agents/models/multi_provider.py | 76 | CODE | |
| LOW | src/agents/models/openai_provider.py | 46 | CODE | |
| LOW | src/agents/extensions/experimental/codex/codex_tool.py | 237 | CODE | |
| LOW | src/agents/extensions/sandbox/vercel/sandbox.py | 424 | CODE | |
| LOW | src/agents/extensions/sandbox/runloop/sandbox.py | 490 | CODE | |
| LOW | src/agents/extensions/sandbox/blaxel/mounts.py | 231 | CODE | |
| LOW | src/agents/extensions/sandbox/blaxel/sandbox.py | 1198 | CODE | |
| LOW | src/agents/extensions/sandbox/daytona/sandbox.py | 329 | CODE | |
| LOW | src/agents/extensions/sandbox/modal/sandbox.py | 302 | CODE | |
| LOW | src/agents/extensions/sandbox/e2b/sandbox.py | 445 | CODE | |
| LOW | src/agents/extensions/sandbox/e2b/sandbox.py | 212 | CODE | |
| LOW | src/agents/extensions/sandbox/e2b/sandbox.py | 273 | CODE | |
| LOW | src/agents/extensions/sandbox/e2b/sandbox.py | 627 | CODE | |
| LOW | src/agents/run_internal/run_loop.py | 2054 | CODE | |
| LOW | src/agents/run_internal/run_loop.py | 2402 | CODE | |
| LOW | src/agents/voice/pipeline_config.py | 55 | CODE | |
| LOW | src/agents/sandbox/sandbox_agent.py | 59 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_cancel_streaming.py | 260 | CODE | |
| MEDIUM | tests/test_cancel_streaming.py | 284 | CODE | |
| MEDIUM | tests/test_run_step_execution.py | 2710 | CODE | |
| MEDIUM | tests/models/test_model_retry.py | 3300 | CODE | |
| MEDIUM | tests/models/test_model_retry.py | 2344 | CODE | |
| MEDIUM | tests/models/test_model_retry.py | 2474 | CODE | |
| MEDIUM | tests/models/test_model_retry.py | 2518 | CODE | |
| MEDIUM | tests/models/test_model_retry.py | 2840 | CODE | |
| MEDIUM | tests/models/test_model_retry.py | 2884 | CODE | |
| MEDIUM | tests/realtime/test_testing.py | 327 | CODE | |
| MEDIUM | tests/voice/test_pipeline.py | 1379 | CODE | |
| MEDIUM | tests/voice/test_pipeline.py | 567 | CODE | |
| MEDIUM | tests/voice/test_pipeline.py | 638 | CODE | |
| MEDIUM | tests/voice/test_pipeline.py | 1153 | CODE | |
| MEDIUM | src/agents/voice/workflow.py | 41 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/agents/run_state.py | 1781 | Serializes the run state to a JSON-compatible dictionary. This method is used to serialize the run state to a d | STRING |
| HIGH | src/agents/run_state.py | 2188 | Deserializes a run state from a JSON string. This method is used to deserialize a run state from a string that | STRING |
| HIGH | src/agents/run_state.py | 2262 | Deserializes a run state from a JSON dictionary. This method is used to deserialize a run state from a dict tha | STRING |
| HIGH | src/agents/extensions/memory/advanced_sqlite_session.py | 1000 | Create a new branch starting from a specific user message turn. Args: turn_number: The branch turn | STRING |
| HIGH | src/agents/extensions/memory/advanced_sqlite_session.py | 1055 | Create branch from the first user turn matching the search term. Args: search_term: Text to search | STRING |
| HIGH | src/agents/extensions/memory/advanced_sqlite_session.py | 1395 | Copy messages before the branch point to the new branch. Args: new_branch_id: The ID of the new bra | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/voice/test_input.py | 207 | # Add audio to the queue | COMMENT |
| LOW | examples/memory/memory_session_hitl_example.py | 41 | # Check if any city name is in the provided location string | COMMENT |
| LOW | examples/memory/openai_session_hitl_example.py | 41 | # Check if any city name is in the provided location string | COMMENT |
| LOW | examples/realtime/cli/demo.py | 298 | # Check if there's enough data to read | COMMENT |
| LOW | examples/agent_patterns/agents_as_tools_structured.py | 41 | # Set include_input_schema to true to include the full JSON Schema: | COMMENT |
| LOW | examples/agent_patterns/streaming_guardrails.py | 68 | # Check if it's time to run the guardrail check | COMMENT |
| LOW | src/agents/models/chatcmpl_converter.py | 140 | # Check if message is agents.extensions.models.litellm_model.InternalChatCompletionMessage. | COMMENT |
| LOW | src/agents/extensions/memory/advanced_sqlite_session.py | 1149 | # Check if trying to delete current branch | COMMENT |
| LOW | src/agents/extensions/models/litellm_model.py | 731 | # Check if this is an assistant message with tool calls | COMMENT |
| LOW | src/agents/realtime/session.py | 318 | # Check if there's a stored exception to raise | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_responses_tracing.py | 54 | self.id = "dummy-id" | CODE |
| LOW | tests/test_responses_tracing.py | 110 | "response_id": "dummy-id", | CODE |
| LOW | tests/test_responses_tracing.py | 177 | "response_id": "dummy-id", | CODE |
| LOW | tests/test_responses_tracing.py | 316 | response=model_test_helpers.get_response_obj([], "dummy-id-123"), | CODE |
| LOW | tests/test_responses_tracing.py | 345 | "response_id": "dummy-id-123", | CODE |
| LOW | tests/test_responses_tracing.py | 389 | self.response = model_test_helpers.get_response_obj([], "dummy-id-terminal") | CODE |
| LOW | tests/test_responses_tracing.py | 464 | response=model_test_helpers.get_response_obj([], "dummy-id-123"), | CODE |
| LOW | tests/test_responses_tracing.py | 499 | "response_id": "dummy-id-123", | CODE |
| LOW | tests/test_responses_tracing.py | 669 | response=model_test_helpers.get_response_obj([], "dummy-id-123"), | CODE |
| LOW | tests/test_run_state.py | 4826 | state = make_state(agent, context=context, original_input="placeholder", max_turns=5) | CODE |
| LOW | tests/models/test_model_payload_iterators.py | 87 | id="dummy-id", | CODE |
| LOW | tests/extensions/sandbox/test_blaxel.py | 164 | def __init__(self, value: str = "fake-token-abc123") -> None: | CODE |
| LOW | examples/basic/tool_guardrails.py | 31 | "name": "John Doe", | CODE |
| LOW | examples/basic/tool_guardrails.py | 34 | "phone": "555-1234", | CODE |
| LOW | examples/basic/tool_guardrails.py | 45 | "phone": "555-1234", | CODE |
| LOW | examples/basic/tool_guardrails.py | 97 | if "555-1234" in output_str: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration_tests/openai/test_approval_resume.py | 37 | def perform_action(action: str) -> str: | CODE |
| LOW⚡ | tests/test_apply_diff.py | 187 | " def helper():", | CODE |
| LOW | tests/test_apply_diff.py | 136 | " def helper():", | CODE |
| LOW | tests/test_apply_diff.py | 163 | " def helper():", | CODE |
| LOW | tests/test_released_api_contract.py | 1595 | def helper(value: str = "default") -> None: | CODE |
| LOW | tests/mcp/test_mcp_v2_http.py | 71 | def handle_request(request): | CODE |
| LOW | tests/realtime/test_realtime_model_settings.py | 167 | def helper() -> str: | CODE |
| LOW⚡ | tests/sandbox/test_apply_patch.py | 83 | b" def helper():\n" | CODE |
| LOW⚡ | tests/sandbox/test_apply_patch.py | 96 | b"class Target\n def helper():\n pass\n\n def desired():\n return 1\n" | CODE |
| LOW | tests/sandbox/test_apply_patch.py | 62 | b" def helper():\n" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src/agents/voice/models/openai_tts.py | 42 | response = self._client.audio.speech.with_streaming_response.create( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/models/test_anthropic_thinking_blocks.py | 246 | # Step 1: Convert message to output items | COMMENT |
| LOW | tests/models/test_anthropic_thinking_blocks.py | 279 | # Step 2: Convert output items back to messages | COMMENT |
| LOW | tests/models/test_anthropic_thinking_blocks.py | 419 | # Step 1: Convert message to output items | COMMENT |
| LOW | tests/models/test_anthropic_thinking_blocks.py | 455 | # Step 2: Convert output items back to messages with preserve_thinking_blocks=True | COMMENT |
| LOW | tests/models/test_gemini_thought_signatures.py | 38 | # Step 1: Convert to items | COMMENT |
| LOW | tests/models/test_gemini_thought_signatures.py | 53 | # Step 2: Convert back to messages | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/models/test_anthropic_thinking_blocks.py | 246 | # Step 1: Convert message to output items | COMMENT |
| LOW | tests/models/test_anthropic_thinking_blocks.py | 279 | # Step 2: Convert output items back to messages | COMMENT |
| LOW | tests/models/test_anthropic_thinking_blocks.py | 419 | # Step 1: Convert message to output items | COMMENT |
| LOW | tests/models/test_anthropic_thinking_blocks.py | 455 | # Step 2: Convert output items back to messages with preserve_thinking_blocks=True | COMMENT |
| LOW | tests/models/test_gemini_thought_signatures.py | 38 | # Step 1: Convert to items | COMMENT |
| LOW | tests/models/test_gemini_thought_signatures.py | 53 | # Step 2: Convert back to messages | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_run_state.py | 10418 | # This should not raise an error, just return empty tools | COMMENT |
| MEDIUM | tests/mcp/test_tool_filtering.py | 239 | # Role-based filter for comprehensive testing | COMMENT |
| LOW | examples/customer_service/main.py | 156 | # Here, we'll just use a random UUID for the conversation ID | COMMENT |
| MEDIUM | examples/mcp/prompt_server/server.py | 20 | return f"""You are a senior {language} code review specialist. Your role is to provide comprehensive code analysis w | CODE |
| LOW | src/agents/result.py | 862 | # Soft cancel - just set the flag | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/scripts/translate_docs.py | 261 | ## DO NOT TRANSLATE ## | COMMENT |
| LOW | examples/__init__.py | 1 | # Make the examples directory into a package to avoid top-level module name collisions. | COMMENT |
| LOW | examples/basic/lifecycle_example.py | 181 | ### 11: LLM ended. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens | COMMENT |
| LOW | examples/basic/stream_items.py | 61 | # They don't have the guts! | COMMENT |
| LOW | examples/sandbox/memory.py | 81 | "access, report that validation was blocked and finish instead of retrying repeatedly. " | COMMENT |
| LOW | examples/sandbox/memory.py | 101 | # considered during consolidation. Older conversation-specific guidance may be removed from | COMMENT |
| LOW | src/agents/extensions/sandbox/modal/sandbox.py | 441 | COMMENT | |
| LOW | src/agents/run_internal/model_retry.py | 441 | COMMENT | |
| LOW | src/agents/sandbox/sandboxes/docker.py | 141 | spool.close() | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/basic/tool_guardrails.py | 169 | ❌ Guardrail rejected function tool call: I'm unable to send the email as mentioning ACME Corp. is restricted. | STRING |
| MEDIUM | examples/basic/tool_guardrails.py | 176 | ❌ Guardrail rejected function tool output: I'm unable to retrieve the contact info for user456 because it contains restr | STRING |
| MEDIUM | examples/handoffs/message_filter_streaming.py | 44 | # or, you can use the HandoffInputData.clone(kwargs) method | COMMENT |
| MEDIUM | examples/handoffs/message_filter.py | 44 | # or, you can use the HandoffInputData.clone(kwargs) method | COMMENT |