AI Agent Framework, the Pydantic way
This report presents the forensic synthetic code analysis of pydantic/pydantic-ai, a Python project with 18,505 GitHub stars. SynthScan v2.0 examined 854,891 lines of code across 1999 source files, recording 7907 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 10.2 places this repository in the Low 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 7907 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 | pydantic_ai_slim/pydantic_ai/_output.py | 107 | def _isinstance_maybe_generic(value: Any, type_: type[Any]) -> bool: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 132 | async def run_output_validate_hooks( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_thinking_part.py | 6 | def split_content_into_text_and_thinking(content: str, thinking_tags: tuple[str, str]) -> list[ThinkingPart | TextPart]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 146 | def get_parallel_execution_mode(self) -> ParallelExecutionMode: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 500 | async def validate_output_tool_call( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 825 | async def resolve_deferred_tool_calls( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 89 | def get_agent_run_baggage_attributes() -> dict[str, Any]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 147 | def model_request_parameters_attributes( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 153 | def annotate_tool_call_otel_metadata(response: ModelResponse, parameters: ModelRequestParameters) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 482 | def get_output_tool_span_name(self, tool_name: str) -> str: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_search.py | 373 | def _narrow_native_tool_search_call(part: NativeToolCallPart) -> NativeToolSearchCallPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_search.py | 380 | def _narrow_native_tool_search_return(part: NativeToolReturnPart) -> NativeToolSearchReturnPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_search.py | 394 | def _narrow_tool_search_return(part: ToolReturnPart) -> ToolSearchReturnPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_search.py | 442 | def synthesize_local_from_native_call(part: NativeToolSearchCallPart) -> ToolSearchCallPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_search.py | 454 | def synthesize_local_from_native_return(part: NativeToolSearchReturnPart) -> ToolSearchReturnPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_search.py | 471 | def synthesize_local_tool_search_messages(messages: list[ModelMessage]) -> list[ModelMessage]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_mcp.py | 129 | def map_from_sampling_content( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 349 | def _deferred_tool_call_result_discriminator(x: Any) -> str | None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 426 | def _named_required_fields_schema(self, named_required_fields: Sequence[tuple[str, bool, Any]]) -> JsonSchemaValue: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 116 | def _narrow_load_capability_call(part: ToolCallPart) -> LoadCapabilityCallPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 123 | def _narrow_load_capability_return(part: ToolReturnPart) -> LoadCapabilityReturnPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 141 | def parse_loaded_capabilities(messages: Sequence[ModelMessage]) -> set[str]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 345 | def get_conflicting_type_names(signatures: list[FunctionSignature]) -> frozenset[str]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 381 | def collect_unique_referenced_types(signatures: list[FunctionSignature]) -> list[TypeSignature]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 512 | def _build_params_from_schema( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_function_schema.py | 384 | def _extract_return_schema_type(return_annotation: Any, function: Callable[..., Any]) -> Any: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_spec.py | 37 | def serializes_as_string_keyed_dict(value: Any) -> bool: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_template.py | 90 | def __get_pydantic_core_schema__( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_template.py | 168 | def _hint_contains_template_str(hint: Any) -> bool: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_template.py | 178 | def _import_pydantic_handlebars() -> Any: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 308 | async def _stream_text_deltas_ungrouped() -> AsyncIterator[tuple[str, int]]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 953 | def _get_usage_checking_stream_response( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 970 | def _get_deferred_tool_requests( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1066 | def _invalidate_resources_cache(self) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1069 | def _invalidate_prompts_cache(self) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1471 | def _make_httpx_client_factory( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 146 | def _serialize_provider_details_delta( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 195 | def _multi_modal_content_identifier(identifier: str | bytes) -> str: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 984 | def _infer_modality_from_media_type(media_type: str) -> Literal['image', 'audio', 'video'] | None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 995 | def _convert_binary_to_otel_part( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1104 | def _tool_return_content_discriminator(value: Any) -> str: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1137 | def _validate_multimodal_or_passthrough(value: Any, handler: pydantic.ValidatorFunctionWrapHandler) -> Any: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1153 | def _serialize_multimodal_or_passthrough(value: Any, handler: pydantic.SerializerFunctionWrapHandler) -> Any: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1405 | def model_response_str_and_user_content(self) -> tuple[str, list[UserContent]]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 2140 | def _model_request_part_discriminator(v: Any) -> str | None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 2179 | def _model_response_part_discriminator(v: Any) -> str | None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 2654 | def _strip_dangling_tail_tool_calls( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 2796 | def _sanitize_tool_return_content( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/exceptions.py | 62 | def __get_pydantic_core_schema__(cls, _: Any, __: Any) -> core_schema.CoreSchema: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/direct.py | 34 | def _ensure_instruction_parts( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/direct.py | 227 | def model_request_stream_sync( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 495 | def _handle_embedded_thinking_start( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 504 | def _handle_embedded_thinking_content( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 521 | def _handle_embedded_thinking_end(self, vendor_part_id: VendorId) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 184 | def check_incomplete_tool_call(self) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 408 | async def _handle_deferred_tool_results( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 455 | async def _reevaluate_dynamic_prompts( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 512 | async def _prepare_request_parameters( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1597 | def _refresh_loaded_capability_ids(ctx: GraphRunContext[GraphAgentState, GraphAgentDeps[DepsT, Any]]) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1616 | def _refresh_discovered_tool_names(ctx: GraphRunContext[GraphAgentState, GraphAgentDeps[DepsT, Any]]) -> None: | CODE |
| 5347 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | pydantic_ai_slim/pydantic_ai/_json_schema.py | 198 | # they are both null, so just return one of them | COMMENT |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openai.py | 2054 | # Some OpenAI-compatible gateways (e.g. Bifrost) return text=null; | COMMENT |
| HIGH⚡ | tests/test_temporal.py | 462 | content='{"index": 0, "part": {"tool_name": "get_country", "args": " | CODE |
| HIGH⚡ | tests/test_temporal.py | 465 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 468 | content='{"index": 0, "part": {"tool_name": "get_country", "args": " | CODE |
| HIGH⚡ | tests/test_temporal.py | 471 | content='{"index": 1, "part": {"tool_name": "get_product_name", "arg | CODE |
| HIGH⚡ | tests/test_temporal.py | 474 | content='{"index": 1, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 477 | content='{"index": 1, "part": {"tool_name": "get_product_name", "arg | CODE |
| HIGH⚡ | tests/test_temporal.py | 567 | content='{"index": 0, "part": {"tool_name": "get_weather", "args": " | CODE |
| HIGH⚡ | tests/test_temporal.py | 570 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 573 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 576 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 579 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 582 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 585 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 588 | content='{"index": 0, "part": {"tool_name": "get_weather", "args": " | CODE |
| HIGH⚡ | tests/test_temporal.py | 648 | content='{"index": 0, "part": {"tool_name": "final_result", "args": | CODE |
| HIGH⚡ | tests/test_temporal.py | 651 | content='{"tool_name": "final_result", "tool_call_id": null, "event_ | CODE |
| HIGH⚡ | tests/test_temporal.py | 654 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 657 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 660 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 663 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 666 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 669 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 672 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 675 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 678 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 681 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 684 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 687 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 690 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 693 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 696 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 699 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 702 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 705 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 708 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 711 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 714 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 717 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 720 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 723 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 726 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 729 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 732 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 735 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 738 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 741 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 744 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 747 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 750 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 753 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 756 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 759 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 762 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 765 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 768 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 771 | content='{"index": 0, "delta": {"tool_name_delta": null, "args_delta | CODE |
| HIGH⚡ | tests/test_temporal.py | 774 | content='{"index": 0, "part": {"tool_name": "final_result", "args": | CODE |
| HIGH | tests/test_temporal.py | 493 | content='{"part": {"tool_name": "get_country", "args": "{}", "tool_call_id": | CODE |
| 152 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 33 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 35 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 90 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 92 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 432 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 434 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 780 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 782 | # ============================================================================= | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 126 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 128 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 242 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 244 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 281 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 283 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 411 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 413 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_temporal.py | 3637 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_temporal.py | 3639 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_temporal.py | 3139 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_temporal.py | 3142 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_temporal.py | 3185 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_temporal.py | 3188 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_temporal.py | 3548 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_temporal.py | 3550 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_function_signature.py | 577 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 579 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 679 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 681 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 1006 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 1008 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_streaming_errors.py | 211 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 213 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 330 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 332 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 439 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 441 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 527 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 529 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 625 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 627 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 721 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 723 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 931 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 933 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 757 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 759 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 846 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 848 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 111 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 161 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 163 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 952 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 954 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 1017 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 1019 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_thinking.py | 75 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_thinking.py | 77 | # --------------------------------------------------------------------------- | COMMENT |
| 137 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 1 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 14 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_thinking_part.py | 1 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_uuid.py | 9 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_enqueue.py | 7 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/run.py | 1 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 1 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/format_prompt.py | 1 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 1 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_search.py | 23 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_mcp.py | 1 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 1 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 3 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 8 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 8 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/concurrency.py | 3 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 3 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 4 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 15 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 16 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 16 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 17 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 17 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 17 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 17 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 23 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 23 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 23 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 23 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 29 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 47 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 48 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 48 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 48 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 48 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 48 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 48 | CODE | |
| 736 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README.md | 0 | the first known use of "hello, world" was in a 1974 textbook about the c programming language. | STRING |
| HIGH | …ai/.agents/skills/building-pydantic-ai-agents/SKILL.md | 0 | the first known use of "hello, world" was in a 1974 textbook about the c programming language. | STRING |
| HIGH | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 0 | the first known use of "hello, world" was in a 1974 textbook about the c programming language. | STRING |
| HIGH | docs/index.md | 0 | the first known use of "hello, world" was in a 1974 textbook about the c programming language. | STRING |
| HIGH | docs/gateway.md | 0 | the first known use of "hello, world" was in a 1974 textbook about the c programming language. | STRING |
| HIGH | docs/logfire.md | 0 | the first known use of "hello, world" was in a 1974 textbook about the c programming language. | STRING |
| HIGH | README.md | 0 | support_advice='hello john, your current account balance, including pending transactions, is $123.45.' block_card=false | STRING |
| HIGH | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 0 | support_advice='hello john, your current account balance, including pending transactions, is $123.45.' block_card=false | STRING |
| HIGH | docs/index.md | 0 | support_advice='hello john, your current account balance, including pending transactions, is $123.45.' block_card=false | STRING |
| HIGH | examples/pydantic_ai_examples/bank_support.py | 0 | support_advice='hello john, your current account balance, including pending transactions, is $123.45.' block_card=false | STRING |
| HIGH | README.md | 0 | support_advice="i'm sorry to hear that, john. we are temporarily blocking your card to prevent unauthorized transactions | STRING |
| HIGH | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 0 | support_advice="i'm sorry to hear that, john. we are temporarily blocking your card to prevent unauthorized transactions | STRING |
| HIGH | docs/index.md | 0 | support_advice="i'm sorry to hear that, john. we are temporarily blocking your card to prevent unauthorized transactions | STRING |
| HIGH | examples/pydantic_ai_examples/bank_support.py | 0 | support_advice="i'm sorry to hear that, john. we are temporarily blocking your card to prevent unauthorized transactions | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/run.py | 0 | metadata associated with this agent run, if configured. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/result.py | 0 | metadata associated with this agent run, if configured. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_run_context.py | 0 | metadata associated with this agent run, if configured. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 0 | run the agent with a user prompt in async mode. this method builds an internal agent graph (using system prompts, tools | STRING |
| HIGH | …ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py | 0 | run the agent with a user prompt in async mode. this method builds an internal agent graph (using system prompts, tools | STRING |
| HIGH | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py | 0 | run the agent with a user prompt in async mode. this method builds an internal agent graph (using system prompts, tools | STRING |
| HIGH | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py | 0 | run the agent with a user prompt in async mode. this method builds an internal agent graph (using system prompts, tools | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 0 | synchronously run the agent with a user prompt. this is a convenience method that wraps [`self.run`][pydantic_ai.agent.a | STRING |
| HIGH | …ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py | 0 | synchronously run the agent with a user prompt. this is a convenience method that wraps [`self.run`][pydantic_ai.agent.a | STRING |
| HIGH | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py | 0 | synchronously run the agent with a user prompt. this is a convenience method that wraps [`self.run`][pydantic_ai.agent.a | STRING |
| HIGH | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py | 0 | synchronously run the agent with a user prompt. this is a convenience method that wraps [`self.run`][pydantic_ai.agent.a | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 0 | print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue th | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 0 | print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue th | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 0 | print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue th | STRING |
| HIGH | …ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py | 0 | print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue th | STRING |
| HIGH | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py | 0 | print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue th | STRING |
| HIGH | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py | 0 | print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue th | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 0 | a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an i | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 0 | a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an i | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 0 | a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an i | STRING |
| HIGH | …ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py | 0 | a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an i | STRING |
| HIGH | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py | 0 | a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an i | STRING |
| HIGH | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py | 0 | a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an i | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 0 | context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an e | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 0 | context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an e | STRING |
| HIGH | …ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py | 0 | context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an e | STRING |
| HIGH | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py | 0 | context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an e | STRING |
| HIGH | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py | 0 | context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an e | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/mistral.py | 0 | process a non-streamed response, and prepare a message to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/groq.py | 0 | process a non-streamed response, and prepare a message to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openai.py | 0 | process a non-streamed response, and prepare a message to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/huggingface.py | 0 | process a non-streamed response, and prepare a message to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 0 | process a non-streamed response, and prepare a message to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/cohere.py | 0 | process a non-streamed response, and prepare a message to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/mistral.py | 0 | process a streamed response, and prepare a streaming response to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/google.py | 0 | process a streamed response, and prepare a streaming response to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/groq.py | 0 | process a streamed response, and prepare a streaming response to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openai.py | 0 | process a streamed response, and prepare a streaming response to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/huggingface.py | 0 | process a streamed response, and prepare a streaming response to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/xai.py | 0 | process a streamed response, and prepare a streaming response to return. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/groq.py | 0 | initialize a bedrock model. args: model_name: the name of the model to use. model_name: the name of the bedrock model to | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/cohere.py | 0 | initialize a bedrock model. args: model_name: the name of the model to use. model_name: the name of the bedrock model to | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/bedrock.py | 0 | initialize a bedrock model. args: model_name: the name of the model to use. model_name: the name of the bedrock model to | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/groq.py | 0 | the set of builtin tool types this model can handle. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openai.py | 0 | the set of builtin tool types this model can handle. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/xai.py | 0 | the set of builtin tool types this model can handle. | STRING |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pydantic_ai_slim/pydantic_ai/common_tools/exa.py | 427 | toolset = ExaToolset(api_key='your-api-key') | STRING |
| HIGH | clai/README.md | 22 | export OPENAI_API_KEY='your-api-key-here' | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 32 | provider = OVHcloudProvider(api_key='your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 36 | assert provider.client.api_key == 'your-api-key' | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 52 | openai_client = openai.AsyncOpenAI(api_key='your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 59 | provider = OVHcloudProvider(api_key='your-api-key', http_client=http_client) | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 61 | assert provider.client.api_key == 'your-api-key' | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 65 | provider = OVHcloudProvider(api_key='your-api-key') | CODE |
| HIGH | docs/cli.md | 38 | export OPENAI_API_KEY='your-api-key-here' | CODE |
| HIGH | docs/embeddings.md | 115 | export OPENAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/embeddings.md | 187 | api_key='your-api-key', | CODE |
| HIGH | docs/embeddings.md | 221 | export GOOGLE_API_KEY='your-api-key' | CODE |
| HIGH | docs/embeddings.md | 342 | export CO_API_KEY='your-api-key' | CODE |
| HIGH | docs/embeddings.md | 398 | export VOYAGE_API_KEY='your-api-key' | CODE |
| HIGH | docs/retries.md | 297 | api_key='your-api-key', # Replace with actual API key | CODE |
| HIGH | docs/models/xai.md | 22 | export XAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/xai.md | 54 | provider = XaiProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/xai.md | 68 | api_key='your-api-key', | CODE |
| HIGH | docs/models/xai.md | 88 | xai_client = AsyncClient(api_key='your-api-key') | CODE |
| HIGH | docs/models/anthropic.md | 22 | export ANTHROPIC_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/anthropic.md | 60 | 'claude-sonnet-4-5', provider=AnthropicProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/anthropic.md | 80 | provider=AnthropicProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/anthropic.md | 265 | api_key='your-api-key', | CODE |
| HIGH | docs/models/groq.md | 22 | export GROQ_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/groq.md | 55 | 'llama-3.3-70b-versatile', provider=GroqProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/groq.md | 73 | provider=GroqProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/openai.md | 20 | export OPENAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/openai.md | 57 | model = OpenAIResponsesModel('gpt-5.2', provider=OpenAIProvider(api_key='your-api-key')) | CODE |
| HIGH | docs/models/openai.md | 92 | api_key='your-api-key', | CODE |
| HIGH | docs/models/openai.md | 357 | base_url='https://<openai-compatible-api-endpoint>', api_key='your-api-key' | CODE |
| HIGH | docs/models/openai.md | 383 | base_url='https://<openai-compatible-api-endpoint>.com', api_key='your-api-key' | CODE |
| HIGH | docs/models/openai.md | 469 | provider=AlibabaProvider(api_key='your-api-key'), | CODE |
| HIGH | docs/models/openai.md | 485 | api_key='your-api-key', | CODE |
| HIGH | docs/models/openai.md | 522 | api_key='your-api-key', | CODE |
| HIGH | docs/models/openai.md | 547 | api_key='your-api-key', | CODE |
| HIGH | docs/models/openai.md | 584 | api_key='your-api-key', | CODE |
| HIGH | docs/models/openai.md | 878 | provider=OVHcloudProvider(api_key='your-api-key'), | CODE |
| HIGH | docs/models/openai.md | 912 | provider=SambaNovaProvider(api_key='your-api-key'), | CODE |
| HIGH | docs/models/openai.md | 932 | api_key='your-api-key', | CODE |
| HIGH | docs/models/bedrock.md | 22 | export AWS_BEARER_TOKEN_BEDROCK='your-api-key' | CODE |
| HIGH | docs/models/ollama.md | 25 | export OLLAMA_API_KEY='your-api-key' # required for Ollama Cloud | CODE |
| HIGH | docs/models/cohere.md | 22 | export CO_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/cohere.md | 54 | model = CohereModel('command-r7b-12-2024', provider=CohereProvider(api_key='your-api-key')) | CODE |
| HIGH | docs/models/cohere.md | 71 | provider=CohereProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/mistral.md | 22 | export MISTRAL_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/mistral.md | 55 | 'mistral-large-latest', provider=MistralProvider(api_key='your-api-key', base_url='https://<mistral-provider-endpoin | CODE |
| HIGH | docs/models/mistral.md | 73 | provider=MistralProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/cerebras.md | 22 | export CEREBRAS_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/cerebras.md | 55 | 'llama-3.3-70b', provider=CerebrasProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/cerebras.md | 73 | provider=CerebrasProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/google.md | 31 | export GOOGLE_API_KEY=your-api-key | CODE |
| HIGH | docs/models/google.md | 50 | provider = GoogleProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/google.md | 121 | export GOOGLE_API_KEY=your-api-key | CODE |
| HIGH | docs/models/google.md | 140 | provider = GoogleCloudProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/google.md | 253 | provider=GoogleProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/google.md | 281 | provider=GoogleProvider(api_key='your-api-key', retry_options=retry_options), | CODE |
| HIGH | docs/models/google.md | 466 | provider = GoogleProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/zai.md | 22 | export ZAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/zai.md | 96 | provider=ZaiProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/examples/setup.md | 30 | export OPENAI_API_KEY=your-api-key | CODE |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pydantic_ai_slim/pydantic_ai/_output.py | 373 | Execute an output function with error handling, converting `ModelRetry` to `ToolRetryError`. Tracing for output-fun | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/retries.py | 169 | Handle an HTTP request with retry logic. Args: request: The HTTP request to handle. Return | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/retries.py | 266 | Handle an async HTTP request with retry logic. Args: request: The HTTP request to handle. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/tool_manager.py | 468 | Execute a validated tool call via capability hooks. The Instrumentation capability (if present) creates trace s | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/tool_manager.py | 774 | Handle a tool call by validating the arguments, calling the tool, and handling retries. This is a convenience m | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_ssrf.py | 250 | Validate that the URL uses an allowed protocol (http or https). Args: url: The URL to validate. Return | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_ssrf.py | 333 | Validate URL and resolve hostname to IP addresses. Performs protocol validation, DNS resolution, and IP validation. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_ssrf.py | 443 | Download content from a URL with SSRF protection. This function: 1. Validates the URL protocol (only http/https | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/mcp.py | 1363 | Read the contents of a specific resource by URI. Args: uri: The URI of the resource to read, or a [ | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/mcp.py | 1603 | Recursively expand environment variables in a JSON structure. Environment variables can be referenced using `${VAR_ | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/mcp.py | 1647 | Load `MCPToolset`s from a configuration file. The configuration file uses the same `mcpServers` JSON shape as Claud | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/messages.py | 2935 | Apply this text delta to an existing `TextPart`. Args: part: The existing model response part, whic | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/messages.py | 3000 | Apply this thinking delta to an existing `ThinkingPart`. Args: part: The existing model response pa | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/messages.py | 3134 | Apply this delta to a part or delta, returning a new part or delta with the changes applied. Args: | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/direct.py | 63 | Make a non-streamed request to a model. ```py title="model_request_example.py" from pydantic_ai import ModelReq | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/direct.py | 116 | Make a Synchronous, non-streamed request to a model. This is a convenience method that wraps [`model_request`][pyda | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/direct.py | 172 | Make a streamed async request to a model. ```py {title="model_request_stream_example.py"} from pydantic_ai imp | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/direct.py | 235 | Make a streamed synchronous request to a model. This is the synchronous version of [`model_request_stream`][pydanti | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 132 | Handle incoming text content, creating or updating a TextPart in the manager as appropriate. When `vendor_part_ | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 219 | Handle incoming thinking content, creating or updating a ThinkingPart in the manager as appropriate. When `vend | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 302 | Handle or update a tool call, creating or updating a `ToolCallPart`, `NativeToolCallPart`, or `ToolCallPartDelta`. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py | 88 | Dump provider metadata from keyword arguments. Args: wrapper_key: The key to wrap the metadata in. Defaults | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/embeddings/__init__.py | 334 | Count the number of tokens in the given text. Args: text: The text to tokenize and count. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/embeddings/result.py | 86 | Get the embedding for an input by index or by the original input text. Args: item: Either an intege | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/embeddings/base.py | 104 | Count the number of tokens in the given text. Args: text: The text to tokenize and count. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/cerebras.py | 137 | Transforms a 'CerebrasModelSettings' object into an 'OpenAIChatModelSettings' object. Args: model_settings: | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openrouter.py | 637 | Transforms a 'OpenRouterModelSettings' object into an 'OpenAIChatModelSettings' object. Args: model_setting | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/zai.py | 147 | Transforms a 'ZaiModelSettings' object into an 'OpenAIChatModelSettings' object. Maps the unified `thinking` settin | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/bedrock.py | 321 | Insert a cache point before trailing document/video content. AWS rejects cache points that directly follow document | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/_tool_choice.py | 17 | Resolve user-facing tool_choice into a canonical form for providers. Pydantic AI distinguishes between function too | STRING |
| HIGH | pydantic_evals/pydantic_evals/generation.py | 42 | Use an LLM to generate a dataset of test cases, each consisting of input, expected output, and metadata. This funct | STRING |
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 564 | Load a dataset from a file. Args: path: Path to the file to load. fmt: Format of the fi | STRING |
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 607 | Load a dataset from a string. Args: contents: The string content to parse. fmt: Format | STRING |
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 645 | Load a dataset from a dictionary. Args: data: Dictionary representation of the dataset. | STRING |
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 879 | Infer the format to use for a file based on its extension. Args: path: The path to infer the format | STRING |
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 951 | Run a task on a case and return the context for evaluators. Args: task: The task to run. case: The | STRING |
| HIGH | pydantic_evals/pydantic_evals/_utils.py | 50 | Get the name of a function, unwrapping partials and decorators. Args: func: The function to get the name of | STRING |
| HIGH | …ntic_evals/pydantic_evals/evaluators/_run_evaluator.py | 40 | Run an evaluator and return the results. This function runs an evaluator on the given context and processes the res | STRING |
| HIGH | …ntic_evals/pydantic_evals/evaluators/llm_as_a_judge.py | 330 | Judge an output using a G-Eval style chain-of-thought prompt. This is a simplified implementation of G-Eval (Liu et | STRING |
| HIGH | pydantic_graph/pydantic_graph/join.py | 236 | Attempt to run the join node. Args: ctx: The graph execution context Returns: | STRING |
| HIGH | pydantic_graph/pydantic_graph/step.py | 185 | Attempt to run the step node. Args: ctx: The graph execution context Returns: | STRING |
| HIGH | pydantic_graph/pydantic_graph/step.py | 238 | Execute the wrapped node with the step context. Args: ctx: The step context containing the node ins | STRING |
| HIGH | pydantic_graph/pydantic_graph/node.py | 82 | Force type variance for proper generic typing. This method exists solely for type checking purposes and should | STRING |
| HIGH | pydantic_graph/pydantic_graph/graph_builder.py | 206 | Get the parent fork information for a join node. Args: join_id: The ID of the join node Re | STRING |
| HIGH | pydantic_graph/pydantic_graph/graph_builder.py | 521 | Get the trace parent for instrumentation. Args: required: Whether to raise an error if no tracepare | STRING |
| HIGH | pydantic_graph/pydantic_graph/graph_builder.py | 1590 | Create an edge path from a `BaseNode` class. This method integrates a `BaseNode` subclass into the builder grap | STRING |
| HIGH | pydantic_graph/pydantic_graph/graph_builder.py | 1644 | Create edges from a return type hint. This method analyzes return type hints from step functions or node method | STRING |
| HIGH | pydantic_graph/pydantic_graph/graph_builder.py | 1712 | Build the final executable graph from the accumulated nodes and edges. This method performs validation, normali | STRING |
| HIGH | pydantic_graph/pydantic_graph/graph_builder.py | 1945 | Find the dominating fork for each join node in the graph. This function analyzes the graph structure to find the pa | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pydantic_ai_slim/pydantic_ai/concurrency.py | 224 | # Create a span for observability while waiting | COMMENT |
| MEDIUM⚡ | pydantic_ai_slim/pydantic_ai/_json_schema.py | 191 | # Create a new schema based on the non-null part, mark as nullable | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 1 | """This module provides functionality to manage and update parts of a model's streamed response. | STRING |
| MEDIUM | pydantic_ai_slim/pydantic_ai/providers/gateway.py | 1 | """This module implements the Pydantic AI Gateway provider.""" | STRING |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/mistral.py | 140 | # This class is a placeholder for any future mistral-specific settings | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/__init__.py | 262 | # This method is not required, but you need to implement it if you want to support `UsageLimits.count_tokens_bef | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/__init__.py | 288 | # This method is not required, but you need to implement it if you want to support streamed responses | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/huggingface.py | 133 | # This class is a placeholder for any future huggingface-specific settings | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/cohere.py | 100 | # This class is a placeholder for any future cohere-specific settings | COMMENT |
| MEDIUM⚡ | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py | 160 | # Create a task to handle each event | COMMENT |
| MEDIUM | tests/test_toolsets.py | 725 | # Create a toolset with tools that can fail | COMMENT |
| MEDIUM⚡ | tests/test_ui_web.py | 729 | # Create a test HTML file | COMMENT |
| MEDIUM | tests/test_ui_web.py | 742 | # Create a test HTML file | COMMENT |
| MEDIUM⚡ | tests/test_temporal.py | 3649 | # Create a graph with parallel execution using the beta API | COMMENT |
| MEDIUM⚡ | tests/test_temporal.py | 4339 | # Create a minimal config without data_converter | COMMENT |
| MEDIUM | tests/test_temporal.py | 3682 | # Create a join to collect results | COMMENT |
| MEDIUM⚡ | tests/test_tenacity.py | 355 | # Create a retry state with no exception | COMMENT |
| MEDIUM⚡ | tests/test_tenacity.py | 369 | # Create a retry state with a non-HTTP exception | COMMENT |
| MEDIUM | tests/test_tenacity.py | 448 | # Create a future date (30 seconds from now) | COMMENT |
| MEDIUM | tests/test_tenacity.py | 474 | # Create a past date | COMMENT |
| MEDIUM | tests/test_tenacity.py | 499 | # Create a future date (120 seconds from now, > max_wait) | COMMENT |
| MEDIUM | tests/test_tenacity.py | 544 | # Create a retry state with no exception to trigger fallback | COMMENT |
| MEDIUM | tests/test_prefect.py | 1334 | # Create a tuple with timestamps | COMMENT |
| MEDIUM | tests/test_prefect.py | 1496 | # Create an agent with a simple tool | COMMENT |
| MEDIUM | tests/test_prefect.py | 1515 | # Create an agent with a tool | COMMENT |
| MEDIUM | tests/test_function_signature.py | 1030 | # Create a function with bare generic annotation (typing.List, not list) | STRING |
| MEDIUM | tests/test_usage_limits.py | 501 | # Create a usage with None in details (simulating model response with missing detail) | COMMENT |
| MEDIUM | tests/test_json_schema.py | 60 | # Create a schema with $defs that should not be modified | COMMENT |
| MEDIUM | tests/evals/test_evaluator_common.py | 262 | # Create a mock GradingOutput | COMMENT |
| MEDIUM | tests/evals/test_evaluator_common.py | 466 | # Create a span tree with a known structure | COMMENT |
| MEDIUM⚡ | tests/evals/test_evaluator_context.py | 22 | # Create a mock span tree | COMMENT |
| MEDIUM⚡ | tests/evals/test_evaluator_context.py | 25 | # Create a context with all fields populated | COMMENT |
| MEDIUM⚡ | tests/evals/test_evaluators.py | 563 | # Create a span tree with a known structure | COMMENT |
| MEDIUM⚡ | tests/evals/test_evaluators.py | 569 | # Create a context with this span tree | COMMENT |
| MEDIUM | tests/evals/test_evaluators.py | 103 | # Create a spec | COMMENT |
| MEDIUM | tests/evals/test_evaluators.py | 182 | # Create a context with the correct object typing for IsInstance | COMMENT |
| MEDIUM | tests/evals/test_evaluators.py | 205 | # Create a context with DifferentOutput | COMMENT |
| MEDIUM | tests/evals/test_reports.py | 111 | # Create a new case | COMMENT |
| MEDIUM | tests/evals/test_reports.py | 139 | # Create a case aggregate | COMMENT |
| MEDIUM | tests/evals/test_reports.py | 175 | # Create an evaluator output | COMMENT |
| MEDIUM | tests/evals/test_reports.py | 183 | # Create a case | COMMENT |
| MEDIUM | tests/evals/test_reports.py | 201 | # Create a report with the error case | COMMENT |
| MEDIUM⚡ | tests/evals/test_dataset.py | 1625 | # This function is tough to test in an interesting way outside an example... | COMMENT |
| MEDIUM | tests/evals/test_otel.py | 569 | # Create a simple tree for testing negation | COMMENT |
| MEDIUM | tests/evals/test_otel.py | 766 | # Create a test span tree | COMMENT |
| MEDIUM | tests/evals/test_otel.py | 801 | # Create a tree with varying numbers of children | COMMENT |
| MEDIUM | tests/providers/test_litellm.py | 123 | # Create a real AsyncClient for the mock | COMMENT |
| MEDIUM | tests/graph/builder/test_graph_builder.py | 397 | # Create a cycle that doesn't reach the end node | COMMENT |
| MEDIUM⚡ | tests/models/test_anthropic.py | 551 | # Create a mock model instance | COMMENT |
| MEDIUM⚡ | tests/models/test_anthropic.py | 557 | # Create a list with an unsupported param type (thinking) | COMMENT |
| MEDIUM | tests/models/test_anthropic.py | 531 | # Create a UserPromptPart with CachePoint | COMMENT |
| MEDIUM | tests/models/test_anthropic.py | 914 | # Create a mock client that looks like standard AsyncAnthropic | COMMENT |
| MEDIUM | tests/models/test_anthropic.py | 6906 | # Create a model instance | STRING |
| MEDIUM | tests/models/test_anthropic.py | 6977 | # Create a model instance | STRING |
| MEDIUM | tests/models/test_anthropic.py | 7018 | # Create a model instance | STRING |
| MEDIUM | tests/models/test_anthropic.py | 8696 | # Create the first mock response with server tool blocks | STRING |
| MEDIUM | tests/models/test_anthropic.py | 8728 | # Create the second mock response that references the history | STRING |
| MEDIUM | tests/models/test_anthropic.py | 8757 | # Create the first mock response with server tool blocks | STRING |
| MEDIUM | tests/models/test_anthropic.py | 8788 | # Create the second mock response that references the history | STRING |
| MEDIUM | tests/models/test_anthropic.py | 10972 | # Create a message history with a container_id in provider_details | STRING |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 351 | # Text output: no real validation, just pass through the text | COMMENT |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/_json_schema.py | 198 | # they are both null, so just return one of them | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 476 | # If we already have a buffered item, just return it. | COMMENT |
| MEDIUM | …_slim/pydantic_ai/capabilities/process_event_stream.py | 70 | # the observer form returns an awaitable. Introspecting the return is robust for | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/mistral.py | 758 | # It seems that mistral just sends full tool calls, so we just use them directly, rather than buildi | COMMENT |
| LOW | …ntic_ai_slim/pydantic_ai/durable_exec/temporal/_mcp.py | 61 | # so we just return the ToolDefinitions and wrap them in ToolsetTool outside of the activity. | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/durable_exec/dbos/_mcp.py | 47 | # so we just return the ToolDefinitions and wrap them in ToolsetTool outside of the activity. | COMMENT |
| LOW | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_model.py | 98 | # If not in a workflow (could be in a step), just call the wrapped request_stream method. | COMMENT |
| LOW | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_model.py | 121 | # If not in a flow, just call the wrapped request_stream method | COMMENT |
| LOW | tests/test_dbos.py | 258 | # DBOSAgent already wraps the `run` function as a DBOS workflow, so we can just call it directly. | COMMENT |
| LOW | tests/test_dbos.py | 723 | # DBOSAgent already wraps the `run` function as a DBOS workflow, so we can just call it directly. | COMMENT |
| MEDIUM⚡ | …/test_anthropic/test_anthropic_mcp_servers_stream.yaml | 129 | data: {"type":"content_block_start","index":2,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_ | CODE |
| MEDIUM⚡ | …l_mcp_list_tools_stream_backfills_missing_results.yaml | 397 | data: {"type":"response.completed","response":{"id":"resp_034c5e93e2fa45ad006a2c2b74c2e4819dafbd93fcd1b49697","o | CODE |
| MEDIUM⚡ | …l_mcp_list_tools_stream_backfills_missing_results.yaml | 397 | data: {"type":"response.completed","response":{"id":"resp_034c5e93e2fa45ad006a2c2b74c2e4819dafbd93fcd1b49697","o | CODE |
| MEDIUM⚡ | …l_mcp_list_tools_stream_backfills_missing_results.yaml | 397 | data: {"type":"response.completed","response":{"id":"resp_034c5e93e2fa45ad006a2c2b74c2e4819dafbd93fcd1b49697","o | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 79 | data: {"type":"response.output_item.done","sequence_number":13,"output_index":2,"item":{"id":"mcp_00b9cc7a23d047 | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 619 | data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481 | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 619 | data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481 | CODE |
| LOW | …antic_evals/pydantic_evals/reporting/render_numbers.py | 30 | # If it's an int, just return its string representation. | COMMENT |
| MEDIUM⚡ | .github/zizmor.yml | 45 | # `harness-compat.yml` calls a reusable workflow in `pydantic/pydantic-ai-harness`, an | COMMENT |
| MEDIUM⚡ | .github/zizmor.yml | 47 | # would force coordinated bumps on every harness change without meaningful security benefit | COMMENT |
| MEDIUM⚡ | .github/workflows/harness-compat.yml | 3 | # Verifies that pydantic-ai changes don't break the pydantic-ai-harness lint / | COMMENT |
| MEDIUM⚡ | .github/workflows/harness-compat.yml | 4 | # typecheck / test suite. Calls the harness's `compat-test.yml` reusable | COMMENT |
| MEDIUM⚡ | .github/workflows/harness-compat.yml | 11 | # - Push of `v*` tags: gates a release on harness compatibility. | COMMENT |
| MEDIUM | .github/workflows/harness-compat.yml | 35 | # on every harness change without security benefit. Ignore configured in `.github/zizmor.yml`. | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 38 | # which imports pydantic-ai-harness. The harness depends on pydantic-ai-slim, | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 52 | # re-sync the venv and drop the out-of-band harness install above. | COMMENT |
| MEDIUM | .github/scripts/prewarm-pydantic-ai-runner.sh | 2 | # Pre-warm the harness's uv script environment on the OPEN network. | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 238 | # The harness-backed Read/Write/Edit are contained to the workspace root. | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 248 | # The harness requires a unique match; a missing string comes back as an error. | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 257 | # Claude's 1-based offset=2 maps to the harness 0-based offset; limit=2. | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 264 | # The harness's truncation hint carries its own 0-based offset; this tool's | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 279 | # Passed straight to the harness, `limit=0` reads zero lines and emits a | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 305 | # The harness puts its continuation hint at the tail, but the shim's output cap | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 313 | # Zero-padded line ids (distinct from the harness's space-padded line numbers) | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 330 | # The offset bump must target only the harness's own continuation hint, not file | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 331 | # content -- even a line reproducing the *full* hint verbatim. The harness writes | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 343 | # `replace_all` has no harness equivalent, so it stays an in-place rewrite | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 353 | # `replace_all` does the rewrite by hand rather than through the harness, but | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 372 | # The harness *returns* a `[Command timed out ...]` sentinel rather than | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 389 | # grep runs ripgrep through the harness shell capability; the adapter keys off | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 392 | # exit-1 ("nothing matched") to the harness's own `No matches found.` sentinel. | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 471 | # The harness `list_directory`/`find_files` walkers hide every dot-prefixed | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 1297 | # The harness `write_file` requires an existing parent; the Write adapter | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 1308 | # harness does NOT convert to `ModelRetry`. It must come back as an `error:` | COMMENT |
| MEDIUM⚡ | .github/scripts/test_pydantic_ai_runner.py | 271 | assert 'Use offset=3 to continue reading.' in first # harness emits 2 (0-based); bumped to 3 | CODE |
| MEDIUM | .github/scripts/test_pydantic_ai_runner.py | 291 | # The harness converts only a fixed set of exceptions to `ModelRetry`; a bare | COMMENT |
| MEDIUM | .github/scripts/test_pydantic_ai_runner.py | 425 | # A match set larger than the harness output cap is tail-truncated, which | COMMENT |
| MEDIUM | .github/scripts/test_pydantic_ai_runner.py | 560 | # TodoWrite maps Claude's todo schema onto the harness `planning` capability | COMMENT |
| MEDIUM | .github/scripts/pydantic_ai_gh_aw_shim/list_dir.py | 21 | # the enumeration then keeps the dot-prefixed entries the harness drops. | COMMENT |
| MEDIUM | .github/scripts/pydantic_ai_gh_aw_shim/list_dir.py | 28 | # harness, so catch it here rather than let it abort the whole run. | COMMENT |
| MEDIUM | .github/scripts/pydantic_ai_gh_aw_shim/write.py | 26 | # The harness converts its own recoverable errors to `ModelRetry`, but | COMMENT |
| MEDIUM⚡ | .github/scripts/pydantic_ai_gh_aw_shim/bash.py | 24 | # ModelRetry: the harness blocked the command; the shim's tools have always | COMMENT |
| MEDIUM⚡ | .github/scripts/pydantic_ai_gh_aw_shim/bash.py | 27 | # workspace cwd does not exist) -- the harness doesn't convert it, so catch | COMMENT |
| MEDIUM⚡ | .github/scripts/pydantic_ai_gh_aw_shim/bash.py | 30 | # On timeout the harness *returns* a `[Command timed out after Ns]` sentinel | COMMENT |
| MEDIUM | .github/scripts/pydantic_ai_gh_aw_shim/__init__.py | 45 | # harness-backed tools (`Bash`, `Read`, `Write`, `Edit`, `Grep`, `Glob`, `LS` | COMMENT |
| MEDIUM | .github/scripts/pydantic_ai_gh_aw_shim/__init__.py | 56 | # `Task` is async like the harness-backed file/shell tools, but unlike them its | COMMENT |
| MEDIUM | .github/scripts/pydantic_ai_gh_aw_shim/edit.py | 25 | # The harness only converts a fixed set of errors to `ModelRetry`; a bare | COMMENT |
| MEDIUM | .github/scripts/pydantic_ai_gh_aw_shim/grep.py | 38 | # The harness tail-truncates an oversized body and prepends this marker, which | STRING |
| MEDIUM | .github/scripts/pydantic_ai_gh_aw_shim/grep.py | 42 | # `search_files` (the harness's own content search) returns this on no match; | STRING |
| 10 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 132 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 1571 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 458 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 312 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 356 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/format_prompt.py | 135 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/format_prompt.py | 187 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 153 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_search.py | 471 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_mcp.py | 20 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_mcp.py | 69 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 141 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 512 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 345 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_function_schema.py | 103 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_spec.py | 96 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 970 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 219 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1402 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1527 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1573 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1408 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 500 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 571 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 759 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 947 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_json_schema.py | 58 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 2454 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 2488 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 659 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 857 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1033 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1269 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1321 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 2372 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 2999 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 121 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 292 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 512 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1845 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 309 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 408 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 455 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 646 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1191 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1199 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 296 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 735 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 335 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 139 | CODE | |
| LOW | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 359 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 991 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 1112 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 295 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 615 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 641 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 900 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py | 171 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py | 215 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py | 305 | CODE | |
| 202 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .pre-commit-config.yaml | 9 | # gh-aw compiles *.md agentic workflows into *.lock.yml, and also | COMMENT |
| MEDIUM | README.md | 51 | Enables you to systematically test and [evaluate](https://ai.pydantic.dev/evals) the performance and accuracy of the age | CODE |
| MEDIUM | README.md | 164 | # Dynamic instructions can make use of dependency injection. | COMMENT |
| MEDIUM | CONTRIBUTING.md | 28 | Before writing code, ask whether the change needs to live in core at all. Most new agent behaviors belong in [**Pydantic | CODE |
| MEDIUM | pydantic_ai_slim/pydantic_ai/native_tools/__init__.py | 149 | * Groq, see <https://console.groq.com/docs/agentic-tooling#search-settings> | STRING |
| MEDIUM | pydantic_ai_slim/pydantic_ai/native_tools/__init__.py | 161 | * Groq, see <https://console.groq.com/docs/agentic-tooling#search-settings> | STRING |
| MEDIUM | pydantic_ai_slim/pydantic_ai/providers/deepseek.py | 58 | # Starting from DeepSeek v3.2, DeepSeek requires sending thinking parts for optimal agentic performance. | COMMENT |
| MEDIUM | …building-pydantic-ai-agents/references/ARCHITECTURE.md | 11 | - [Choosing a Multi-Agent Pattern](#choosing-a-multi-agent-pattern) | CODE |
| MEDIUM | …ai-agents/references/ORCHESTRATION-AND-INTEGRATIONS.md | 87 | ## Use Embeddings for RAG | COMMENT |
| MEDIUM | tests/test_capabilities.py | 8107 | # First turn: hallucinate a call to the filtered tool. Even though the model | COMMENT |
| MEDIUM⚡ | tests/evals/test_evaluator_common.py | 557 | # An empty steps list would produce a prompt with no chain-of-thought section, defeating the method. | COMMENT |
| MEDIUM | tests/models/test_anthropic.py | 6696 | dataclass is used to pass data, connections, and logic into the model that will be needed when running[instructions](age | CODE |
| MEDIUM | tests/models/test_anthropic.py | 6699 | [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency injection. Depen | CODE |
| MEDIUM | tests/models/test_anthropic.py | 6767 | dataclass is used to pass data, connections, and logic into the model that will be needed when running[instructions](age | CODE |
| MEDIUM | tests/models/test_anthropic.py | 6770 | [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency injection. Depen | CODE |
| MEDIUM⚡ | …/test_anthropic/test_anthropic_mcp_servers_stream.yaml | 129 | data: {"type":"content_block_start","index":2,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_ | CODE |
| MEDIUM⚡ | …/test_anthropic/test_anthropic_mcp_servers_stream.yaml | 129 | data: {"type":"content_block_start","index":2,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_ | CODE |
| MEDIUM | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 188 | dataclass is used to pass data, connections, and logic into the model that will be needed when running[i | CODE |
| MEDIUM | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 191 | [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency | CODE |
| MEDIUM | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 259 | dataclass is used to pass data, connections, and logic into the model that will be needed when running[i | CODE |
| MEDIUM | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 262 | [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency | CODE |
| MEDIUM | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 540 | dataclass is used to pass data, connections, and logic into the model that will be needed when running | CODE |
| MEDIUM | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 543 | [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependenc | CODE |
| MEDIUM | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 611 | dataclass is used to pass data, connections, and logic into the model that will be needed when running | CODE |
| MEDIUM | …ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml | 614 | [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependenc | CODE |
| MEDIUM⚡ | …st_anthropic/test_anthropic_web_fetch_tool_stream.yaml | 117 | data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srv | CODE |
| MEDIUM⚡ | …st_anthropic/test_anthropic_web_fetch_tool_stream.yaml | 117 | data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srv | CODE |
| MEDIUM⚡ | …st_anthropic/test_anthropic_web_fetch_tool_stream.yaml | 117 | data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srv | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 79 | data: {"type":"response.output_item.done","sequence_number":13,"output_index":2,"item":{"id":"mcp_00b9cc7a23d047 | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 79 | data: {"type":"response.output_item.done","sequence_number":13,"output_index":2,"item":{"id":"mcp_00b9cc7a23d047 | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 619 | data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481 | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 619 | data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481 | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 619 | data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481 | CODE |
| MEDIUM⚡ | …est_openai_responses_model_mcp_server_tool_stream.yaml | 619 | data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481 | CODE |
| MEDIUM | docs/coding-agent-skills.md | 5 | [Agent skills](https://agentskills.io) are packages of instructions and reference material that coding agents load on de | CODE |
| MEDIUM | docs/capabilities.md | 922 | [`ReinjectSystemPrompt`][pydantic_ai.capabilities.ReinjectSystemPrompt] ensures the agent's configured [`system_prompt`] | CODE |
| MEDIUM | docs/capabilities.md | 1808 | [**Pydantic AI Harness**](https://pydantic.dev/docs/ai/harness/) is the official capability library for Pydantic AI -- s | CODE |
| MEDIUM | docs/extensibility.md | 45 | [**Pydantic AI Harness**](https://pydantic.dev/docs/ai/harness/) is the official capability library for Pydantic AI -- s | CODE |
| MEDIUM | docs/multi-agent-applications.md | 368 | # Your multi-agent code here... | COMMENT |
| MEDIUM | docs/index.md | 15 | Pydantic AI ships the agent loop and a composable [capabilities](capabilities.md) system; [Pydantic AI Harness](https:// | CODE |
| MEDIUM | docs/index.md | 195 | 3. The `SupportDependencies` dataclass is used to pass data, connections, and logic into the model that will be needed w | CODE |
| MEDIUM | docs/index.md | 197 | 5. Dynamic [instructions](agent.md#instructions) can be registered with the [`@agent.instructions`][pydantic_ai.agent.Ag | CODE |
| MEDIUM | docs/contributing.md | 28 | Before writing code, ask whether the change needs to live in core at all. Most new agent behaviors belong in [**Pydantic | CODE |
| MEDIUM | docs/toolsets.md | 935 | [`pydantic-ai-ejentum`](https://pypi.org/project/pydantic-ai-ejentum/) wraps the [Ejentum Reasoning Harness](https://eje | CODE |
| MEDIUM | docs/evals/evaluators/llm-judge.md | 237 | ### RAG Evaluation | COMMENT |
| MEDIUM | docs/evals/evaluators/span-based.md | 487 | ### RAG System Verification | COMMENT |
| MEDIUM | docs/evals/evaluators/standard-quality-metrics.md | 64 | ## RAG metric rubrics | COMMENT |
| MEDIUM | docs/evals/evaluators/agentic.md | 180 | ### RAG agent | COMMENT |
| MEDIUM | docs/models/anthropic.md | 189 | Anthropic's [task budgets](https://platform.claude.com/docs/en/build-with-claude/task-budgets) let you give Claude an ad | CODE |
| MEDIUM | docs/models/bedrock.md | 52 | configurations](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) and [performance settings](https:/ | CODE |
| MEDIUM | docs/examples/rag.md | 1 | # RAG | COMMENT |
| MEDIUM | pydantic_evals/pydantic_evals/evaluators/__init__.py | 43 | # agentic | COMMENT |
| MEDIUM | .github/zizmor.yml | 28 | # gh-aw-generated agentic workflow lockfiles (see | COMMENT |
| MEDIUM⚡ | .github/zizmor.yml | 54 | # workflow-dispatch maintenance surface for the agentic workflow set). | COMMENT |
| MEDIUM | .github/scripts/pydantic-ai-runner-launch.sh | 7 | # It is gh-aw's `engine.command` for every Pydantic AI agentic workflow and | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/output.py | 377 | #> {'name': 'John Doe', 'age': 30} | STRING |
| LOW | tests/test_agent.py | 229 | {'name': 'John Doe'}, | CODE |
| LOW | tests/test_agent.py | 242 | Person(name='John Doe'), | CODE |
| LOW | tests/test_agent.py | 2290 | args_json = '{"name": "John Doe", "age": 30}' | STRING |
| LOW | tests/test_agent.py | 2300 | assert result.output == snapshot({'name': 'John Doe', 'age': 30}) | STRING |
| LOW | tests/import_examples.py | 14 | os.environ.update(OPENAI_API_KEY='fake-key', GEMINI_API_KEY='fake-key', GROQ_API_KEY='fake-key') | CODE |
| LOW | tests/test_examples.py | 586 | args={'name': 'John Doe', 'age': 30}, | CODE |
| LOW | tests/test_examples.py | 890 | tool_name='get_user_by_name', args={'name': 'John Doe'}, tool_call_id='pyd_ai_tool_call_id' | CODE |
| LOW⚡ | tests/models/test_anthropic.py | 2885 | 2. The use of "John Doe" as a reference to a typical male in various contexts | CODE |
| LOW⚡ | tests/models/test_anthropic.py | 2886 | 3. The use of variations like "Baby Doe" and numbered "John Doe"s in specific cases | CODE |
| LOW | tests/models/test_anthropic.py | 2868 | 'This document appears to be a sample PDF file that mainly contains Lorem ipsum text, which is placeholder text | CODE |
| LOW | tests/models/test_bedrock.py | 1035 | An example text describing the use of "John Doe" as a placeholder name in legal cases, hospitals, and other contexts whe | STRING |
| LOW | tests/models/test_bedrock.py | 1035 | An example text describing the use of "John Doe" as a placeholder name in legal cases, hospitals, and other contexts whe | STRING |
| LOW⚡ | tests/models/test_google.py | 852 | 'The main content of the TXT file is an explanation of the placeholder name "John Doe" (and related variations) | STRING |
| LOW⚡ | tests/models/test_openai_responses.py | 873 | 'The main content of this document is an example of a TXT file type, with an explanation of the use of placehold | STRING |
| LOW⚡ | tests/models/test_openai_responses.py | 873 | 'The main content of this document is an example of a TXT file type, with an explanation of the use of placehold | STRING |
| LOW⚡ | …_google/test_google_model_text_document_url_input.yaml | 25 | The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for childr | CODE |
| LOW⚡ | …_google/test_google_model_text_document_url_input.yaml | 25 | The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for childr | CODE |
| LOW⚡ | …_google/test_google_model_text_document_url_input.yaml | 29 | Similarly, a child or baby whose identity is unknown may be referred to as Baby Doe. A notorious murder case in | CODE |
| LOW | …_google/test_google_model_text_document_url_input.yaml | 115 | The main content of the TXT file is an explanation of the placeholder name "John Doe" (and related variati | CODE |
| LOW | …/cassettes/test_anthropic/test_document_url_input.yaml | 45 | - text: This document appears to be a sample PDF file that mainly contains Lorem ipsum text, which is placeholder | CODE |
| LOW | …/cassettes/test_anthropic/test_document_url_input.yaml | 47 | "This is a simple PDF file. Fun fun fun." The rest of the content consists of several paragraphs of Lorem ipsu | CODE |
| LOW⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 25 | The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for childr | CODE |
| LOW⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 25 | The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for childr | CODE |
| LOW⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 29 | Similarly, a child or baby whose identity is unknown may be referred to as Baby Doe. A notorious murder case in | CODE |
| LOW⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 92 | The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for | CODE |
| LOW⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 92 | The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for | CODE |
| LOW⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 96 | Similarly, a child or baby whose identity is unknown may be referred to as Baby Doe. A notorious murder ca | CODE |
| LOW | …ettes/test_anthropic/test_text_document_url_input.yaml | 131 | 2. The use of "John Doe" as a reference to a typical male in various contexts | CODE |
| LOW | …ettes/test_anthropic/test_text_document_url_input.yaml | 132 | 3. The use of variations like "Baby Doe" and numbered "John Doe"s in specific cases | CODE |
| LOW | …direct-url_force_download-document-google_vertex].yaml | 656 | The content of the document consists of several paragraphs of **Lorem Ipsum** placeholder text. The layout | CODE |
| LOW | …_matrix[tool_return_content-url-document-mistral].yaml | 164 | 3. **Placeholder Text**: The majority of the document consists of **Lorem Ipsum** text, which is commonly us | CODE |
| LOW | …ix[tool_return_content-url-document-bedrock_nova].yaml | 461 | of **multiple paragraphs** filled with **Lorem Ipsum placeholder text**. Lorem Ipsum is commonly used as d | CODE |
| LOW | …ix[tool_return_content-url-document-bedrock_nova].yaml | 463 | appears to be **standard Lorem Ipsum**, which is typically a scrambled version of sections from \"De Finib | CODE |
| LOW | …ix[tool_return_content-url-document-bedrock_nova].yaml | 475 | PDF\"**. It contains **Lorem Ipsum placeholder text** organized into multiple paragraphs. The document is | CODE |
| LOW | …ool_return_content-url-document-openai_responses].yaml | 226 | I retrieved a PDF file (labelled in the text as "Sample PDF"). Its extracted text contains a short header li | CODE |
| LOW | …ect-url_force_download-document-openai_responses].yaml | 600 | - Content: about a dozen paragraphs of placeholder-style text (a mix of typical "Lorem ipsum" filler and Eng | CODE |
| LOW | …ix[direct-url_force_download-document-google_2_5].yaml | 521 | simple PDF file. Fun fun fun." The content of the document is placeholder "Lorem Ipsum" text, divided into | CODE |
| LOW | …x[tool_return_content-url-document-google_vertex].yaml | 297 | * **Body Text:** The document contains four paragraphs of "Lorem ipsum" text, which is standard Latin pl | COMMENT |
| LOW | …ool_return_matrix[direct-url-document-google_2_5].yaml | 521 | document contains several paragraphs of "Lorem ipsum" placeholder text. | CODE |
| LOW | …_matrix[tool_return_content-url-document-xai].xai.yaml | 121 | followed by several paragraphs of standard Lorem Ipsum placeholder text | CODE |
| LOW⚡ | …atrix[tool_return_content-url-document-anthropic].yaml | 157 | The PDF contains several paragraphs of **Lorem Ipsum** placeholder text - the classic dummy text commonly used | CODE |
| LOW⚡ | …atrix[tool_return_content-url-document-anthropic].yaml | 159 | The document appears to be a simple test or sample PDF, likely used for demonstration purposes, testing PDF re | CODE |
| LOW⚡ | …tool_return_matrix[direct-url-document-anthropic].yaml | 154 | **Content:** The document is a single-page sample PDF that contains Lorem Ipsum placeholder text - the classic | CODE |
| LOW⚡ | …tool_return_matrix[direct-url-document-anthropic].yaml | 154 | **Content:** The document is a single-page sample PDF that contains Lorem Ipsum placeholder text - the classic | CODE |
| LOW⚡ | …tool_return_matrix[direct-url-document-anthropic].yaml | 156 | **Purpose:** This appears to be a test or sample PDF document, likely used for demonstration purposes, testing | CODE |
| LOW | …rix[tool_return_content-url-document-openai_chat].yaml | 552 | - Title/first lines (from page 1): "Sample PDF" followed by "This is a simple PDF file. Fun fun fun." and th | CODE |
| LOW | …rix[tool_return_content-url-document-openai_chat].yaml | 553 | - Content summary: the page is a sample/placeholder document made up of multiple paragraphs of lorem ipsum a | CODE |
| LOW⚡ | …rn_content-url_force_download-document-anthropic].yaml | 528 | This is a simple sample PDF document with the subtitle "This is a simple PDF file. Fun fun fun." The document | CODE |
| LOW⚡ | …rn_content-url_force_download-document-anthropic].yaml | 532 | - The main body consists of multiple paragraphs of Latin placeholder text (Lorem Ipsum) | CODE |
| LOW⚡ | …rn_content-url_force_download-document-anthropic].yaml | 533 | - The text discusses various topics in the traditional Lorem Ipsum style, mentioning things like "dolor sit am | CODE |
| LOW⚡ | …rn_content-url_force_download-document-anthropic].yaml | 533 | - The text discusses various topics in the traditional Lorem Ipsum style, mentioning things like "dolor sit am | CODE |
| LOW⚡ | …irect-url_force_download-document-google_gemini3].yaml | 652 | of **\"Lorem ipsum\"** placeholder text, commonly used in publishing and graphic design to demonstrate the | CODE |
| LOW⚡ | …irect-url_force_download-document-google_gemini3].yaml | 655 | *\"Lorem ipsum dolor sit amet...\"*\n* **Format:** A standard text document layout with clean margins an | COMMENT |
| LOW⚡ | …irect-url_force_download-document-google_gemini3].yaml | 655 | *\"Lorem ipsum dolor sit amet...\"*\n* **Format:** A standard text document layout with clean margins an | COMMENT |
| LOW | …ent-url_force_download-document-openai_responses].yaml | 599 | I retrieved a PDF file titled "Sample PDF." It contains only plain text (no images or special formatting) -- | CODE |
| LOW | …return_matrix[direct-url-document-google_gemini3].yaml | 662 | * **Body Text:** The document contains four paragraphs of "Lorem Ipsum" placeholder text. This is standa | COMMENT |
| LOW | …l_tool_return_matrix[direct-url-document-xai].xai.yaml | 159 | \ PDF file. Fun fun fun.\" followed by extensive Lorem ipsum dummy text\ | CODE |
| LOW | …l_tool_return_matrix[direct-url-document-xai].xai.yaml | 163 | \ not substantive or meaningful—purely sample/lorem ipsum filler spanning\ | CODE |
| LOW | …ontent-url_force_download-document-google_vertex].yaml | 657 | contains four paragraphs of \"Lorem ipsum\" placeholder text. \n* **Layout:** It features a clean, minim | CODE |
| 48 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 321 | "ignore:The 'default' attribute with value 'UTC' was provided.*:UserWarning", | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 621 | # (see `_check_max_retries` below), so when `ToolOutput(max_retries=N)` exceeds | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1021 | # Merge possible consecutive trailing `ModelRequest`s into one, with tool call parts before user parts, | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1281 | if part.content: | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1361 | # This will raise errors for any tool name conflicts | COMMENT |
| LOW | …antic_ai_slim/pydantic_ai/capabilities/_tool_search.py | 161 | COMMENT | |
| LOW | …antic_ai_slim/pydantic_ai/capabilities/_tool_search.py | 181 | # without native support can still honor the choice via the local path. | COMMENT |
| LOW | …ydantic_ai/capabilities/_deferred_capability_loader.py | 41 | # request, which keeps the provider's prompt-cache prefix warm across loads — the entire | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/bedrock.py | 41 | ) from _import_error | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 1261 | run_layers: list[AbstractCapability[AgentDepsT]] = [base_capability, *extra_capabilities] | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 1461 | ) | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/google.py | 1321 | # _after_ the text that was generated using it, so it would show up out of order in the stream, | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/groq.py | 861 | message: str | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 1381 | if file.provider_name == self.system | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 1581 | # in parallel with a client `tool_use` and ends the turn before | COMMENT |
| LOW | …_ai_slim/pydantic_ai/durable_exec/temporal/__init__.py | 81 | 'sniffio', | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/toolsets/_tool_search.py | 321 | # `_resolve_native_tool_swap`). | COMMENT |
| LOW | tests/test_tool_search.py | 5021 | # Dict with `paths` present but of a non-list type. | COMMENT |
| LOW | tests/test_tool_search.py | 5241 | # The `search_tools` exchange must NOT also surface as a regular function_call / | COMMENT |
| LOW | tests/test_temporal.py | 1741 | ('model_name', 'expected_model_class'), | COMMENT |
| LOW | docs/evals/evaluators/report-evaluators.md | 741 | #> confusion_matrix: Animal Classification | COMMENT |
| LOW | pydantic_evals/pydantic_evals/evaluators/agentic.py | 61 | # --------------------------------------------------------------------------- | COMMENT |
| LOW | scripts/gather-pydantic-ai-review-context.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .github/zizmor.yml | 41 | - pydantic-ai-stale-issues-finder.lock.yml | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 1 | # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"18d18811c742c3bc1c672f4b8929061a0ec4ee670c1889f253c9152beb5 | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 21 | # Not all edits will cause changes to this file. | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 41 | # - GH_AW_GITHUB_MCP_SERVER_TOKEN | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 61 | # - ghcr.io/github/gh-aw-firewall/agent:0.25.49 | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 821 | bash "${RUNNER_TEMP}/gh-aw/actions/start_cli_proxy.sh" | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 841 | # - TodoWrite | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 861 | # - mcp__github__get_pull_request_reviews | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 881 | # - mcp__github__list_releases | COMMENT |
| LOW | .github/workflows/pydantic-ai-pr-review.lock.yml | 1361 | continue-on-error: true | COMMENT |
| LOW | …kflows/pydantic-ai-streaming-resilience-sweep.lock.yml | 1 | # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"51a4657cc514e8339cbb727ae4b134d4795d80d8c59ce682464455be014 | COMMENT |
| LOW | …kflows/pydantic-ai-streaming-resilience-sweep.lock.yml | 21 | # Not all edits will cause changes to this file. | COMMENT |
| LOW | …kflows/pydantic-ai-streaming-resilience-sweep.lock.yml | 41 | # - GH_AW_GITHUB_MCP_SERVER_TOKEN | COMMENT |
| LOW | …kflows/pydantic-ai-streaming-resilience-sweep.lock.yml | 761 | id: agentic_execution | COMMENT |
| LOW | …kflows/pydantic-ai-streaming-resilience-sweep.lock.yml | 781 | # - Write(/tmp/*) | COMMENT |
| LOW | …kflows/pydantic-ai-streaming-resilience-sweep.lock.yml | 801 | # - mcp__github__get_release_by_tag | COMMENT |
| LOW | …kflows/pydantic-ai-streaming-resilience-sweep.lock.yml | 821 | # - mcp__github__list_starred_repositories | COMMENT |
| LOW | …kflows/pydantic-ai-streaming-resilience-sweep.lock.yml | 1301 | # Allowed tools (sorted): | COMMENT |
| LOW | .github/workflows/pydantic-ai-ui-security-review.md | 1 | --- | COMMENT |
| LOW | .github/workflows/pydantic-ai-ui-security-review.md | 21 | # Pause for a maintainer's approval of the `ui-security-review` Environment | COMMENT |
| LOW | …/workflows/pydantic-ai-provider-mapping-sweep.lock.yml | 1 | # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c370af35001ca7e23de70e6b1a8b8cad6d8f644396c583cddc88b2232b4 | COMMENT |
| LOW | …/workflows/pydantic-ai-provider-mapping-sweep.lock.yml | 21 | # Not all edits will cause changes to this file. | COMMENT |
| LOW | …/workflows/pydantic-ai-provider-mapping-sweep.lock.yml | 41 | # - GH_AW_GITHUB_MCP_SERVER_TOKEN | COMMENT |
| LOW | …/workflows/pydantic-ai-provider-mapping-sweep.lock.yml | 761 | id: agentic_execution | COMMENT |
| LOW | …/workflows/pydantic-ai-provider-mapping-sweep.lock.yml | 781 | # - Write(/tmp/*) | COMMENT |
| LOW | …/workflows/pydantic-ai-provider-mapping-sweep.lock.yml | 801 | # - mcp__github__get_release_by_tag | COMMENT |
| LOW | …/workflows/pydantic-ai-provider-mapping-sweep.lock.yml | 821 | # - mcp__github__list_starred_repositories | COMMENT |
| LOW | …/workflows/pydantic-ai-provider-mapping-sweep.lock.yml | 1301 | # Allowed tools (sorted): | COMMENT |
| LOW | .github/workflows/pydantic-ai-docs-drift.lock.yml | 1 | # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"573f1758123c4b7b1858938f0f275afb31c5e1060a8d969d37ee1c1c3af | COMMENT |
| LOW | .github/workflows/pydantic-ai-docs-drift.lock.yml | 21 | # Not all edits will cause changes to this file. | COMMENT |
| LOW | .github/workflows/pydantic-ai-docs-drift.lock.yml | 41 | # - GH_AW_GITHUB_TOKEN | COMMENT |
| LOW | .github/workflows/pydantic-ai-docs-drift.lock.yml | 761 | # - Bash | COMMENT |
| LOW | .github/workflows/pydantic-ai-docs-drift.lock.yml | 781 | # - mcp__github__get_code_scanning_alert | COMMENT |
| LOW | .github/workflows/pydantic-ai-docs-drift.lock.yml | 801 | # - mcp__github__get_tag | COMMENT |
| LOW | .github/workflows/pydantic-ai-docs-drift.lock.yml | 821 | # - mcp__github__list_workflow_jobs | COMMENT |
| LOW | .github/workflows/pydantic-ai-docs-drift.lock.yml | 1301 | # - BashOutput | COMMENT |
| LOW | .github/workflows/pydantic-ai-bug-hunter.lock.yml | 1 | # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3d73d2d0a31a4cabb59bd6ee86aa1dc3db92ed28bc51d06f77cf5a0179b | COMMENT |
| 64 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 475 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 811 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_adapter.py | 403 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_adapter.py | 498 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_adapter.py | 561 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 199 | CODE | |
| LOW | …c_ai_slim/pydantic_ai/capabilities/image_generation.py | 112 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 746 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/web_fetch.py | 43 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/capability.py | 136 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/capability.py | 157 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/capability.py | 206 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/capability.py | 227 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/mcp.py | 58 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/mcp.py | 190 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/web_search.py | 48 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/x_search.py | 75 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/providers/google_cloud.py | 28 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/providers/bedrock.py | 562 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/providers/bedrock.py | 575 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 366 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 390 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 413 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 556 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 580 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 603 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 699 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 723 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 747 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 997 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1020 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1042 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1153 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1176 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1200 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1321 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1344 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1368 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1487 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 113 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 136 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 159 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 292 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 281 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 305 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 328 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 533 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 559 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 585 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 700 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 727 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 754 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 898 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 921 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 944 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 1708 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 2097 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 2118 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 2233 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 2254 | CODE | |
| 73 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 211 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 192 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 289 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/run.py | 295 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 329 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 107 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 110 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 136 | except Exception: # pragma: no cover | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 298 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_spec.py | 234 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_template.py | 141 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 195 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 761 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 819 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 904 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1680 | except Exception: | STRING |
| LOW | pydantic_ai_slim/pydantic_ai/usage.py | 177 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 561 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 203 | except Exception as exc: # `exc` to avoid shadowing by `async for e in` below | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_utils.py | 101 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/embeddings/instrumented.py | 149 | except Exception as e: # pragma: no cover | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/embeddings/instrumented.py | 191 | except Exception: # pragma: no cover | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/embeddings/instrumented.py | 205 | except Exception: # pragma: no cover | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/embeddings/instrumented.py | 208 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 938 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 998 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 1120 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 1239 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 329 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 399 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 534 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 596 | except Exception: # pragma: no cover — defensive | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 656 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/fallback.py | 231 | except Exception as exc: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/fallback.py | 265 | except Exception as exc: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_cli/web.py | 92 | except Exception as e: # pragma: no cover | CODE |
| MEDIUM | pydantic_ai_slim/pydantic_ai/_cli/__init__.py | 296 | console.print(f'Error initializing [magenta]{args.model}[/magenta]:\n[red]{e}[/red]') | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_cli/__init__.py | 389 | except Exception as e: # pragma: no cover | CODE |
| LOW | tests/conftest.py | 854 | except Exception: # pragma: no cover | CODE |
| LOW⚡ | tests/test_agent.py | 7312 | except Exception as e: | STRING |
| LOW | tests/test_capabilities.py | 5683 | except Exception as e: | CODE |
| LOW | tests/_inline_snapshot.py | 119 | except Exception as e: | CODE |
| MEDIUM | docs/agent.md | 1229 | print('An error occurred:', e) | CODE |
| LOW | docs/toolsets.md | 616 | except Exception as e: | CODE |
| LOW | docs/evals/evaluators/overview.md | 107 | except Exception: | CODE |
| LOW | docs/evals/evaluators/custom.md | 119 | except Exception: | CODE |
| LOW | docs/evals/evaluators/custom.md | 294 | except Exception as e: | CODE |
| LOW | docs/evals/evaluators/custom.md | 524 | except Exception as e: | CODE |
| LOW | docs/evals/evaluators/custom.md | 619 | except Exception: | CODE |
| LOW | pydantic_evals/pydantic_evals/online.py | 690 | except Exception: # pragma: no cover - defensive | CODE |
| LOW | pydantic_evals/pydantic_evals/online.py | 692 | except Exception as e: | CODE |
| LOW | pydantic_evals/pydantic_evals/online.py | 764 | except Exception: # pragma: no cover - defensive | CODE |
| LOW | pydantic_evals/pydantic_evals/online.py | 766 | except Exception as e: | CODE |
| LOW | pydantic_evals/pydantic_evals/online.py | 818 | except Exception: # pragma: no cover | CODE |
| LOW | pydantic_evals/pydantic_evals/dataset.py | 1025 | except Exception as e: | CODE |
| LOW | pydantic_evals/pydantic_evals/dataset.py | 1186 | except Exception as exc: | CODE |
| LOW | pydantic_evals/pydantic_evals/_online.py | 184 | except Exception: # pragma: no cover | CODE |
| LOW | pydantic_evals/pydantic_evals/_online.py | 248 | except Exception as exc: | CODE |
| LOW | pydantic_evals/pydantic_evals/_online.py | 255 | except Exception: | CODE |
| LOW | pydantic_evals/pydantic_evals/_online.py | 291 | except Exception: | CODE |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 613 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 426 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 435 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 444 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 452 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 460 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 468 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 476 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 486 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 495 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 505 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 515 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 524 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 536 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 545 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 554 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 563 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 572 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 581 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 590 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 599 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 608 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 617 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 626 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 635 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 644 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 653 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 662 | CODE | |
| MEDIUM | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 161 | CODE | |
| MEDIUM | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 276 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py | 132 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1483 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1523 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/wrapper.py | 35 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/__init__.py | 292 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/__init__.py | 850 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/mcp_sampling.py | 86 | CODE | |
| MEDIUM | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py | 882 | CODE | |
| MEDIUM | tests/test_ag_ui.py | 348 | CODE | |
| MEDIUM | tests/models/test_fallback.py | 523 | CODE | |
| MEDIUM | pydantic_graph/pydantic_graph/step.py | 112 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 49 | __all__ = ['RetryConfig', 'TenacityTransport', 'AsyncTenacityTransport', 'wait_retry_after'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 20 | __all__ = ['safe_download'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1049 | def set_sampling_model(self, model: models.Model) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 678 | def _update_mapped_json_schema_refs(s: dict[str, Any], name_mapping: dict[str, str]) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_adapter.py | 47 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/__init__.py | 12 | __all__ = [ | CODE |
| LOW | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 72 | __all__ = ['VercelAIEventStream'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 106 | __all__ = ['VercelAIAdapter'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/__init__.py | 13 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py | 44 | __all__ = [] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_web/__init__.py | 6 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_interrupt.py | 57 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py | 73 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_adapter.py | 143 | __all__ = ['AGUIAdapter'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/__init__.py | 7 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/embeddings/__init__.py | 22 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/__init__.py | 92 | __all__ = [ | CODE |
| LOW | …antic_ai_slim/pydantic_ai/native_tools/_tool_search.py | 34 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/cerebras.py | 145 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/moonshotai.py | 119 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/vercel.py | 116 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/mistral.py | 87 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/sambanova.py | 27 | __all__ = ['SambaNovaProvider'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/sambanova.py | 118 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/openrouter.py | 260 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/azure.py | 175 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/__init__.py | 77 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/google.py | 79 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/zai.py | 105 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/litellm.py | 140 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/groq.py | 151 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/heroku.py | 133 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/openai.py | 90 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/fireworks.py | 105 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/deepseek.py | 104 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/anthropic.py | 118 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/together.py | 103 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/alibaba.py | 103 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/github.py | 118 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/cohere.py | 88 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/nebius.py | 108 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/ollama.py | 122 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/ovhcloud.py | 101 | def _set_http_client(self, http_client: httpx.AsyncClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 2659 | def set_mcp_sampling_model(self, model: models.Model | models.KnownModelName | str | None = None) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 2671 | def _set_sampling_model(toolset: AbstractToolset[AgentDepsT]) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/agent/spec.py | 25 | __all__ = ['CapabilitySpec'] # re-exported from _spec | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/xai.py | 955 | def _update_response_state(self, response: chat_types.Response) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/fallback.py | 294 | def _set_span_attributes(self, model: Model, model_request_parameters: ModelRequestParameters) -> None: | CODE |
| LOW | …_ai_slim/pydantic_ai/durable_exec/temporal/__init__.py | 22 | __all__ = [ | CODE |
| LOW | …ntic_ai_slim/pydantic_ai/durable_exec/dbos/__init__.py | 7 | __all__ = ['DBOSAgent', 'DBOSModel', 'DBOSParallelExecutionMode', 'StepConfig'] | CODE |
| LOW | …c_ai_slim/pydantic_ai/durable_exec/prefect/__init__.py | 8 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/profiles/__init__.py | 13 | __all__ = [ | CODE |
| LOW⚡ | tests/test_temporal.py | 2711 | def set_deferred_tool_results(self, results: DeferredToolResults) -> None: | CODE |
| LOW | tests/mcp_server.py | 371 | async def set_logging_level(level: str) -> None: | CODE |
| LOW | tests/graph/builder/test_graph_builder.py | 228 | async def set_counter(ctx: StepContext[SimpleState, None, None]) -> None: | CODE |
| LOW | tests/graph/builder/test_graph_builder.py | 232 | async def set_result(ctx: StepContext[SimpleState, None, None]) -> None: | CODE |
| LOW | tests/v2/test_google_history_replay.py | 33 | def _set_google_api_key(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | pydantic_evals/pydantic_evals/_otel_emit.py | 217 | def _set_score_attrs(attrs: dict[str, Any], value: Any) -> None: | CODE |
| LOW | pydantic_evals/pydantic_evals/dataset.py | 1261 | def set_eval_attribute(name: str, value: Any) -> None: | CODE |
| LOW | …ntic_evals/pydantic_evals/evaluators/llm_as_a_judge.py | 220 | def set_default_judge_model(model: models.Model | models.KnownModelName) -> None: | CODE |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 349 | # Check if hostname is already an IP address | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 394 | # Check if it's an absolute URL (has scheme) or protocol-relative URL (has netloc but no scheme) | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 509 | # Check if we need to follow a redirect | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 673 | # Check if this is object with properties + null | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1625 | # Check if variable exists in environment | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/litellm.py | 72 | # Check if model name contains a provider prefix (e.g., "anthropic/claude-3") | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 381 | # Check if output mode is supported | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/openai.py | 1334 | # Check if thinking came from a custom field from the same provider | COMMENT |
| LOW | …ic_ai_slim/pydantic_ai/durable_exec/temporal/_model.py | 229 | # Check if this model instance is already registered | COMMENT |
| LOW | …/pydantic_ai/durable_exec/prefect/_function_toolset.py | 47 | # Check if this specific tool has custom config or is disabled | COMMENT |
| LOW | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_model.py | 118 | # Check if we're in a flow context | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_cli/__init__.py | 147 | # Check if this is a web command - route to web parser if so | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/profiles/openai.py | 295 | # Check if the model supports web search (only specific search-preview models) | COMMENT |
| LOW | tests/test_capabilities.py | 5025 | # Check if there's already a tool return in messages (i.e., tool was called) | COMMENT |
| LOW | tests/test_capabilities.py | 12327 | # Check if we already got a tool return (second call succeeded) | COMMENT |
| LOW | tests/test_uuid.py | 48 | # Set counter to max so the next same-ms call overflows | COMMENT |
| LOW | tests/evals/test_evaluators.py | 229 | # Check if the answer is correct based on expected output | COMMENT |
| LOW | tests/evals/test_llm_as_a_judge.py | 210 | # Check if 'model' kwarg is passed, its value will be the default model or None | COMMENT |
| LOW | tests/evals/test_llm_as_a_judge.py | 331 | # Check if 'model' kwarg is passed, its value will be the default model or None | COMMENT |
| LOW | tests/evals/test_llm_as_a_judge.py | 441 | # Check if 'model' kwarg is passed, its value will be the default model or None | COMMENT |
| LOW | tests/evals/test_llm_as_a_judge.py | 477 | # Check if 'model' kwarg is passed, its value will be the default model or None | COMMENT |
| LOW | tests/evals/test_llm_as_a_judge.py | 599 | # Check if 'model' kwarg is passed, its value will be the default model or None | COMMENT |
| LOW | tests/evals/test_llm_as_a_judge.py | 630 | # Check if 'model' kwarg is passed, its value will be the default model or None | COMMENT |
| LOW | tests/graph/builder/test_graph_iteration.py | 455 | # Check if we're about to execute step2 | COMMENT |
| LOW | tests/models/test_openai.py | 5281 | # Set profile to use URI encoding | COMMENT |
| LOW | tests/models/test_openai.py | 5337 | # Set profile to use URI encoding | COMMENT |
| LOW | docs/.hooks/main.py | 169 | # Check if code contains Agent() with a model that should be transformed | COMMENT |
| LOW | docs/.hooks/main.py | 180 | # Check if model starts with one of the gateway-supported models | COMMENT |
| LOW | pydantic_evals/pydantic_evals/evaluators/evaluator.py | 93 | # Check if value matches any of the target types, handling bool as a special case | COMMENT |
| LOW | .github/workflows/pr-guard.yml | 319 | # Check if the existing PR has the Stale label | COMMENT |
| LOW⚡ | pydantic_graph/pydantic_graph/graph_builder.py | 771 | # Check if this join has any intermediate joins that are also active reducers | COMMENT |
| LOW⚡ | pydantic_graph/pydantic_graph/graph_builder.py | 779 | # Check if the intermediate join is also an active reducer with matching fork run | COMMENT |
| LOW⚡ | pydantic_graph/pydantic_graph/graph_builder.py | 782 | # Check if they share the same fork run for this join's parent fork | COMMENT |
| LOW | pydantic_graph/pydantic_graph/graph_builder.py | 234 | # Check if this join appears in any other join's intermediate_join_nodes | COMMENT |
| LOW | pydantic_graph/pydantic_graph/graph_builder.py | 1085 | # Check if any of the tasks in the graph have this fork_run_id in their fork_stack | COMMENT |
| LOW | pydantic_graph/pydantic_graph/graph_builder.py | 1817 | # Check if this node has any outgoing edges | COMMENT |
| LOW | pydantic_graph/pydantic_graph/graph_builder.py | 2052 | # Check if this intermediate node is also a join | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/typed_deps.py | 41 | # Ensure that you can use tools with deps that are supertypes of the agent's deps | COMMENT |
| MEDIUM | …test_tool_search/test_tool_search_eval[anthropic].yaml | 1462 | I apologize, but I don't have access to a flight booking tool. I'm unable to book flights from New York to Lon | CODE |
| MEDIUM | tests/models/test_groq.py | 890 | It's worth noting that the weather in San Francisco can be quite variable, and the temperature can drop significantly at | CODE |
| MEDIUM | tests/models/test_groq.py | 1133 | It's worth noting that the weather in San Francisco can be quite variable, and the temperature can drop significantly at | CODE |
| MEDIUM | …_matrix[tool_return_content-url-document-xai].xai.yaml | 125 | The content appears to be purely for demonstration purposes and lacks | CODE |
| MEDIUM⚡ | …atrix[tool_return_content-url-document-anthropic].yaml | 159 | The document appears to be a simple test or sample PDF, likely used for demonstration purposes, testing PDF re | CODE |
| MEDIUM⚡ | …tool_return_matrix[direct-url-document-anthropic].yaml | 156 | **Purpose:** This appears to be a test or sample PDF document, likely used for demonstration purposes, testing | CODE |
| MEDIUM⚡ | …rn_content-url_force_download-document-anthropic].yaml | 536 | This appears to be a test or sample PDF file, likely used for demonstration purposes, testing PDF readers, or | CODE |
| MEDIUM⚡ | …rix[direct-url_force_download-document-anthropic].yaml | 534 | **Purpose:** This appears to be a sample or test PDF file, likely used for demonstration purposes given its si | CODE |
| MEDIUM | …turn_content-url_force_download-document-mistral].yaml | 539 | This PDF appears to be a template or test file, likely used for demonstration purposes. | CODE |
| MEDIUM | …ssettes/test_groq/test_groq_model_web_search_tool.yaml | 52 | it is not expected to significantly impact San Francisco.\n\nIt's worth noting that the weather in San Franc | CODE |
| LOW | …s/test_deepseek/test_deepseek_model_thinking_part.yaml | 67 | Oh, and making eye contact with drivers if possible. That's a good point. Also, stay visible, maybe avoid di | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 592 | # Step 3: user override | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 603 | # Step 4: native tools intersection — profile's allowed tools & model's implemented tools | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 433 | # Step 1: Prefix each FunctionToolset individually | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 438 | # Step 2: Combine the prefixed toolsets | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 441 | # Step 3: Filter tools based on user role and advanced flag, now using prefixed names | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 453 | # Step 4: Apply prepared toolset to modify descriptions (add user role annotation) | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 461 | # Step 5: Test the fully composed toolset | COMMENT |
| LOW | .claude/skills/testing-skill/SKILL.md | 25 | ### Step 1: Record cassettes | COMMENT |
| LOW | .claude/skills/testing-skill/SKILL.md | 36 | ### Step 2: Verify recordings | COMMENT |
| LOW | .claude/skills/testing-skill/SKILL.md | 43 | ### Step 3: Review snapshots | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 592 | # Step 3: user override | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 603 | # Step 4: native tools intersection — profile's allowed tools & model's implemented tools | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 433 | # Step 1: Prefix each FunctionToolset individually | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 438 | # Step 2: Combine the prefixed toolsets | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 441 | # Step 3: Filter tools based on user role and advanced flag, now using prefixed names | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 453 | # Step 4: Apply prepared toolset to modify descriptions (add user role annotation) | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 461 | # Step 5: Test the fully composed toolset | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 168 | def handle_request(self, request: Request) -> Response: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 183 | def handle_request(req: Request) -> Response: | CODE |
| LOW | tests/test_ui.py | 1627 | def do_something(x: int) -> int: | CODE |
| LOW | tests/typed_agent.py | 268 | def my_method(self) -> bool: | CODE |
| LOW⚡ | tests/test_tools.py | 4164 | def do_stuff(x: int) -> None: | CODE |
| LOW⚡ | tests/test_tools.py | 4174 | def do_stuff(x: int): | CODE |
| LOW | tests/graph/builder/test_util.py | 35 | def my_function(): | CODE |
| LOW | tests/models/test_xai.py | 735 | async def process_data(data: str) -> str: | CODE |
| LOW | pydantic_evals/pydantic_evals/online.py | 22 | async def my_function(x: int) -> int: | STRING |
| LOW | pydantic_evals/pydantic_evals/online.py | 886 | async def my_function(x: int) -> int: | STRING |
| LOW | pydantic_evals/pydantic_evals/_task_run.py | 36 | def run_task() -> Generator[Callable[[], dict[str, Any]]]: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 1188 | # However, I've added this because it affects the details of the otel span, and passing `escaped=True` | COMMENT |