How Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.
This report summarizes scanner evidence for pydantic/pydantic-ai, a Python project with 20,535 GitHub stars. SynthScan examined 1,767,650 lines of code across 4100 source files, recording 25495 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 15.0 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 21154 finding(s).
Are imports declared and package/API names verified? 2935 finding(s).
Are wrappers, guards, and repeated structures necessary? 21218 finding(s).
Which changes need focused human review? 25495 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 25495 distinct pattern matches across 25 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 110 | def _isinstance_maybe_generic(value: Any, type_: type[Any]) -> bool: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 130 | 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/run.py | 471 | async def _wrap_and_advance_streaming( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/run.py | 845 | def __get_pydantic_json_schema__(cls, core_schema: CoreSchema, handler: GetJsonSchemaHandler) -> JsonSchemaValue: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 132 | def _validate_hook_deferral_error(hook_name: str, error: CallDeferred | ApprovalRequired) -> UserError: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 276 | def get_parallel_execution_mode(self) -> ParallelExecutionMode: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 787 | async def validate_output_tool_call( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 1184 | async def resolve_deferred_tool_calls( | CODE |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 505 | def _model_request_parameters_adapter() -> TypeAdapter[ModelRequestParameters]: | CODE |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 511 | def model_settings_attributes(model_settings: ModelSettings | None) -> dict[str, AttributeValue]: | CODE |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 521 | def annotate_tool_call_otel_metadata(response: ModelResponse, parameters: ModelRequestParameters) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 169 | def capture_model_request_span_context(request_context: ModelRequestContext) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 176 | def capture_model_response_span_context( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 188 | def model_response_span_capture( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 232 | def get_agent_run_baggage_attributes() -> dict[str, Any]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 450 | def model_request_parameters_attributes( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 461 | def _redact_model_request_parameters(serialized_parameters: Any) -> dict[str, Any] | None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 488 | def _serialize_model_request_parameters(model_request_parameters: ModelRequestParameters) -> Any: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 598 | def response_price_calculation(response: ModelResponse) -> PriceCalculation | None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 637 | def _prepare_model_request_span_context( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 1083 | 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( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_event_registry.py | 103 | def set_replay_isolation_guard(guard: Callable[[], bool]) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_event_registry.py | 121 | def keeps_canonical_registration() -> bool: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_http.py | 168 | def warn_if_legacy_httpx_client(http_client: object, *, consumer: str, stacklevel: int) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_mcp.py | 72 | def _map_sampling_response_part( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_mcp.py | 86 | def _map_sampling_tool_result( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_mcp.py | 229 | def map_from_sampling_content( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 311 | 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 | 113 | def _narrow_load_capability_call(part: ToolCallPart) -> LoadCapabilityCallPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 120 | def _narrow_load_capability_return(part: ToolReturnPart) -> LoadCapabilityReturnPart: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 138 | def parse_loaded_capabilities(messages: Sequence[ModelMessage]) -> set[str]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 159 | def registered_loaded_capability_ids(messages: Sequence[ModelMessage], capability_ids: Collection[str]) -> set[str]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 175 | def _parse_loaded_capabilities(messages: Sequence[ModelMessage]) -> set[str]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 136 | def _compatible_request_error_init(self: Exception, message: str, *, request: httpx2.Request | None = None) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 141 | def _compatible_http_status_error_init( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 173 | def _compatible_request_error(error: httpx2.RequestError) -> Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 800 | def _response_with_decoded_content(response: httpx2.Response, content: bytes) -> httpx2.Response: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 371 | def get_conflicting_type_names(signatures: list[FunctionSignature]) -> frozenset[str]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 407 | def collect_unique_referenced_types(signatures: list[FunctionSignature]) -> list[TypeSignature]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 545 | def _build_params_from_schema( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_genai_prices.py | 86 | def calculate_price_for_usage( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_display.py | 21 | def _replace_lock_inherited_from_fork() -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_function_schema.py | 398 | def extract_return_schema_type(return_annotation: Any, function: Callable[..., Any]) -> Any: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_function_schema.py | 456 | def validate_schema_signature( | 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 | 57 | def _hint_contains_template_str(hint: Any) -> bool: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 83 | def _refresh_initial_run_ctx_usage(self) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 375 | async def _stream_text_deltas_ungrouped() -> AsyncIterator[tuple[str, int]]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 1215 | def _get_usage_checking_stream_response( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 1234 | def _get_deferred_tool_requests( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_run_context.py | 592 | def _dispatch_active_capability_ids(self) -> set[str]: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_run_context.py | 929 | def _run_context_init_with_capability_loaded( | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1176 | def _invalidate_resources_cache(self) -> None: | CODE |
| 19559 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | pydantic_ai_slim/pydantic_ai/_json_schema.py | 278 | # they are both null, so just return one of them | COMMENT |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openrouter.py | 1314 | # arrive mid-stream. `_OpenRouterChatCompletionChunk.choices` is required and non-null, | COMMENT |
| HIGH⚡ | pydantic_ai_slim/pydantic_ai/workspaces/conformance.py | 99 | result = await _commands(backend).run(['sh', '-c', 'read value || printf eof'], timeout=30) | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/workspaces/workspace.py | 145 | f'for tool in {tools}; do command -v "$tool" >/dev/null 2>&1 || printf "%s " "$tool"; done', shell=True | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/workspaces/workspace.py | 261 | mark = ' -exec sh -c \'for f do test -d "$f" && d=d || d=-; printf "%s%s\\000" "$d" "$f"; done\' sh {} +' | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/realtime/openai_live.py | 274 | # OpenAI's guide says to expect `error` frames whose `code` is null, but the SDK's `Error.code` is a | COMMENT |
| HIGH | pydantic_ai_slim/pydantic_ai/realtime/openai_live.py | 1162 | OpenAI's guide says to expect `error` frames whose `code` is null, which the SDK's `Error.code` | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/realtime/openai.py | 1386 | # `turn_detection` is always set: a dict enables VAD, `None` (explicit null) disables it. | COMMENT |
| HIGH | pydantic_ai_slim/pydantic_ai/profiles/google.py | 488 | # `$defs`/`$ref` and `anyOf [X, null]` have no OpenAPI-subset equivalent, so definitions are | COMMENT |
| HIGH | tests/test_streaming.py | 5798 | content_delta='force_download":false,"vendor_metadata":null,"kind":"image-url","media_type":"image/j | CODE |
| HIGH | tests/test_streaming.py | 5804 | content='{"get_image":{"url":"https://t3.ftcdn.net/jpg/00/85/79/92/360_F_85799278_0BBGV9OAdQDTLnKwAP | CODE |
| HIGH | tests/test_workspace.py | 622 | command = command.replace('mv -f', 'false && mv -f', 1) | CODE |
| HIGH | tests/test_workspace.py | 723 | await status.write_text('{"exit_code": null}') | CODE |
| HIGH⚡ | tests/test_mcp.py | 2342 | """Non-string/dict/list values (ints, bools, null) in the config flow through | STRING |
| HIGH⚡ | tests/test_ag_ui.py | 6168 | 'content': '["Image analysis result",{"data":"aW1n","media_type":"image/png","vendor_metadata":null,"kin | CODE |
| HIGH⚡ | tests/test_ag_ui.py | 6176 | 'content': '{"url":"https://example.com/image.jpg","force_download":false,"vendor_metadata":null,"kind": | CODE |
| HIGH | tests/test_ag_ui.py | 8613 | Anything that fails validation (missing, null, non-bool, non-dict payload, non-dict | STRING |
| HIGH | tests/test_messages.py | 1872 | '{"files":[{"media_type":"image/png"},{"media_type":null}]}' | CODE |
| HIGH⚡ | tests/test_messages.py | 1785 | '{"url":"https://example.com/image.png","force_download":false,"vendor_metadata":null,"kind":"image-url" | STRING |
| HIGH⚡ | tests/test_messages.py | 1788 | '{"url":"https://example.com/image","force_download":false,"vendor_metadata":null,"kind":"image-url","me | STRING |
| HIGH⚡ | tests/test_messages.py | 1795 | '{"url":"https://example.com/image.png","force_download":false,"vendor_metadata":null,"kind":"image-url" | STRING |
| HIGH⚡ | tests/test_messages.py | 1798 | '{"url":"https://example.com/image","force_download":false,"vendor_metadata":null,"kind":"image-url","me | STRING |
| HIGH⚡ | tests/test_messages.py | 1805 | '{"url":"https://example.com/image.png","force_download":false,"vendor_metadata":null,"kind":"image-url" | STRING |
| HIGH⚡ | tests/test_messages.py | 1808 | '{"url":"https://example.com/image","force_download":false,"vendor_metadata":null,"kind":"image-url"}' | STRING |
| HIGH⚡ | tests/test_messages.py | 1815 | '{"url":"https://example.com/image.png","force_download":false,"vendor_metadata":null,"kind":"image-url" | STRING |
| HIGH⚡ | tests/test_messages.py | 1818 | '{"url":"https://example.com/image","force_download":false,"vendor_metadata":null,"kind":"image-url"}' | STRING |
| HIGH⚡ | tests/test_messages.py | 1835 | snapshot('{"url":"https://example.com/image","media_type":null}'), | STRING |
| HIGH⚡ | tests/test_messages.py | 1841 | '{"url":"https://example.com/image.png","force_download":false,"vendor_metadata":null,"kind":"image-url" | STRING |
| HIGH⚡ | tests/test_messages.py | 1844 | '{"url":"https://example.com/image","force_download":false,"vendor_metadata":null,"kind":"image-url","id | STRING |
| HIGH | tests/models/test_anthropic.py | 16110 | '"role": "assistant", "model": "claude-sonnet-4-5", "content": [], "stop_reason": null, "stop_sequence": null, ' | STRING |
| HIGH | tests/models/test_openai.py | 2189 | b'"choices":[{"index":0,"delta":{"role":"assistant","content":"Hello"},"finish_reason":null}]}\n\n' | CODE |
| HIGH | tests/models/test_openai.py | 6860 | b'"choices":[{"index":0,"delta":{"role":"assistant","content":"hi"},"finish_reason":null}]}\n\n' | CODE |
| HIGH | tests/models/test_openrouter.py | 161 | # final usage chunk (which has native_finish_reason: null, see cassette for details) | COMMENT |
| HIGH | tests/models/test_openrouter.py | 1316 | # (not null) when `max_tokens` is unset. | COMMENT |
| HIGH | tests/models/test_openrouter.py | 2193 | b'"choices":[{"index":0,"delta":{"role":"assistant","content":"Hello"},"finish_reason":null}]}\n\n' | CODE |
| HIGH | tests/models/test_openrouter.py | 2079 | OpenRouter intermittently returns `{"choices": null, ...}` with no error field at all (a provider | STRING |
| HIGH | tests/models/test_openrouter.py | 2130 | `_OpenRouterChatCompletionChunk.choices` is required and non-null, so this chunk is rejected in | STRING |
| HIGH | tests/models/test_groq.py | 765 | b'"choices":[{"index":0,"delta":{"role":"assistant","content":"Hello"},"finish_reason":null}]}\n\n' | CODE |
| HIGH | tests/models/test_groq.py | 6036 | b'"choices":[{"index":0,"delta":{"role":"assistant","content":"Hello"},"finish_reason":null}]}\n\n' | CODE |
| HIGH | tests/models/test_openai_chat_stream_parity.py | 119 | # that one's is null), where a complete response has the value the stream ended on, e.g. OpenRouter's | COMMENT |
| HIGH | tests/models/anthropic/test_implicit_stream.py | 30 | b'"claude-sonnet-4-5","content":[],"stop_reason":null,"stop_sequence":null,' | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 656 | content='{"index":0,"part":{"tool_name":"get_country","args":"","too | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 659 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"{} | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 662 | content='{"index":0,"part":{"tool_name":"get_country","args":"{}","t | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 700 | content='{"index":0,"part":{"tool_name":"get_weather","args":"","too | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 703 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"{\ | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 706 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"ty | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 709 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"\\ | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 712 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"o | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 715 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"ty | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 718 | content='{"index":0,"part":{"tool_name":"get_weather","args":"{\\"ci | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 721 | content='{"index":1,"part":{"tool_name":"get_product_name","args":"" | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 724 | content='{"index":1,"delta":{"tool_name_delta":null,"args_delta":"{} | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 727 | content='{"index":1,"part":{"tool_name":"get_product_name","args":"{ | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 799 | content='{"index":0,"part":{"tool_name":"final_result","args":"","to | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 805 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"{\ | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 808 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"an | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 811 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"\\ | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 814 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"{\ | CODE |
| HIGH⚡ | tests/durable_exec/test_prefect.py | 817 | content='{"index":0,"delta":{"tool_name_delta":null,"args_delta":"la | CODE |
| 354 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/_event_registry.py | 13 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_usage_attribution.py | 26 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/conversation.py | 3 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_http.py | 3 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_http.py | 10 | 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/tools.py | 16 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 16 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 16 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 16 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 16 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 16 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 16 | 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/_genai_prices.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 | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 5 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 17 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 18 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 18 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 18 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 19 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 19 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 19 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 19 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 25 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 25 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 26 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 26 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 26 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 26 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 32 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 32 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 32 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 32 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/__init__.py | 32 | CODE | |
| 2266 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 34 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 36 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 91 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 93 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 458 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 460 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 837 | # ============================================================================= | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/function_signature.py | 839 | # ============================================================================= | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 237 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 239 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 389 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 391 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 512 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 514 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 708 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 710 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_function_signature.py | 632 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 634 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 734 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 736 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 1166 | # ============================================================================= | STRING |
| MEDIUM⚡ | tests/test_function_signature.py | 1168 | # ============================================================================= | STRING |
| MEDIUM | tests/test_usage_limits.py | 1181 | # ── per_request_input_tokens_limit ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 225 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 227 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 345 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 347 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 454 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 456 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 542 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 544 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 640 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 642 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 930 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 932 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 1140 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_streaming_errors.py | 1142 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 176 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 178 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 966 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 968 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 1055 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_streaming_errors.py | 1057 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 167 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 169 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 1360 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 1362 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 1425 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_thinking.py | 1427 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_thinking.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_thinking.py | 83 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_agentic_evaluators.py | 365 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_agentic_evaluators.py | 367 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_agentic_evaluators.py | 451 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_agentic_evaluators.py | 453 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_agentic_evaluators.py | 671 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_agentic_evaluators.py | 673 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_agentic_evaluators.py | 906 | # --------------------------------------------------------------------------- | COMMENT |
| 395 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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/exceptions.py | 0 | metadata associated with this agent run, if configured. | STRING |
| HIGH | …c_ai_slim/pydantic_ai/capabilities/image_generation.py | 0 | one-off: an agent searches, fetches or generates one way, so the id is fixed. declared here rather than only as an `__in | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/capabilities/web_fetch.py | 0 | one-off: an agent searches, fetches or generates one way, so the id is fixed. declared here rather than only as an `__in | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/capabilities/web_search.py | 0 | one-off: an agent searches, fetches or generates one way, so the id is fixed. declared here rather than only as an `__in | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/capabilities/x_search.py | 0 | one-off: an agent searches, fetches or generates one way, so the id is fixed. declared here rather than only as an `__in | STRING |
| HIGH | …ic_ai_slim/pydantic_ai/capabilities/instrumentation.py | 0 | one-off: an agent has a single caching configuration, so the id is fixed by default. two of them resolve to one via [`co | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/capabilities/thinking.py | 0 | one-off: an agent has a single caching configuration, so the id is fixed by default. two of them resolve to one via [`co | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/capabilities/caching.py | 0 | one-off: an agent has a single caching configuration, so the id is fixed by default. two of them resolve to one via [`co | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/providers/cerebras.py | 0 | create a new z.ai provider. args: api_key: the api key to use for authentication, if not provided, the `zai_api_key` env | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/providers/crusoe.py | 0 | create a new z.ai provider. args: api_key: the api key to use for authentication, if not provided, the `zai_api_key` env | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/providers/zai.py | 0 | create a new z.ai provider. args: api_key: the api key to use for authentication, if not provided, the `zai_api_key` env | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/providers/openrouter.py | 0 | deprecated: use [`thinking_enabled_by_default`][pydantic_ai.profiles.modelprofile.thinking_enabled_by_default] instead. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/profiles/openai.py | 0 | deprecated: use [`thinking_enabled_by_default`][pydantic_ai.profiles.modelprofile.thinking_enabled_by_default] instead. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/profiles/grok.py | 0 | deprecated: use [`thinking_enabled_by_default`][pydantic_ai.profiles.modelprofile.thinking_enabled_by_default] instead. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/profiles/anthropic.py | 0 | deprecated: use [`thinking_enabled_by_default`][pydantic_ai.profiles.modelprofile.thinking_enabled_by_default] instead. | 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/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 | 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 | pydantic_ai_slim/pydantic_ai/agent/__init__.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/wrapper.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 | 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/cerebras.py | 0 | possible z.ai model names. since z.ai supports a variety of models and the list changes frequently, we explicitly list k | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/crusoe.py | 0 | possible z.ai model names. since z.ai supports a variety of models and the list changes frequently, we explicitly list k | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/zai.py | 0 | possible z.ai model names. since z.ai supports a variety of models and the list changes frequently, we explicitly list k | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/cerebras.py | 0 | initialize a snowflake cortex model. args: model_name: the name of the snowflake cortex model to use. provider: the prov | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/zai.py | 0 | initialize a snowflake cortex model. args: model_name: the name of the snowflake cortex model to use. provider: the prov | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/snowflake.py | 0 | initialize a snowflake cortex model. args: model_name: the name of the snowflake cortex model to use. provider: the prov | 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 |
| 241 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pydantic_ai_slim/pydantic_ai/retries.py | 586 | except (ValueError, TypeError, AssertionError, OverflowError): | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/run.py | 467 | except StopAsyncIteration: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 406 | except ValueError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_ssrf.py | 732 | except ValueError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/concurrency.py | 214 | except anyio.WouldBlock: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_genai_prices.py | 107 | except LookupError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_display.py | 340 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_display.py | 359 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_display.py | 455 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/result.py | 106 | except (ValidationError, exceptions.ModelRetry): | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/result.py | 505 | except StopAsyncIteration: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/mcp.py | 1861 | except ValueError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/messages.py | 2544 | except ValueError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/messages.py | 327 | except ValueError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/messages.py | 1210 | except ValueError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/exceptions.py | 605 | except (ValueError, OverflowError): | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 238 | except BaseException: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_sync_stream.py | 208 | except RuntimeError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 314 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 1222 | except ValueError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 481 | except json.JSONDecodeError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/embeddings/instrumented.py | 151 | except LookupError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/providers/openai_codex.py | 627 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/providers/xai.py | 43 | except RuntimeError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 404 | except (asyncio.CancelledError, BaseException): | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/agent/spec.py | 350 | except (NameError, TypeError, AttributeError): | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openrouter.py | 1120 | except ValidationError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/models/decision.py | 1063 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openai.py | 503 | except ValidationError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/models/_continuation.py | 241 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/workspaces/local.py | 486 | except ProcessLookupError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/workspaces/conformance.py | 450 | except OSError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/workspaces/workspace.py | 137 | except _DamagedOutputError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/workspaces/workspace.py | 292 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/workspaces/workspace.py | 224 | except Exception: | CODE |
| HIGH | …_ai_slim/pydantic_ai/durable_exec/_runtime_toolsets.py | 59 | except ImportError: # pragma: no cover | CODE |
| HIGH | …lim/pydantic_ai/durable_exec/temporal/_event_stream.py | 205 | except TimeoutError: | CODE |
| HIGH | …_ai_slim/pydantic_ai/durable_exec/temporal/__init__.py | 73 | except ImportError: | CODE |
| HIGH | …_ai_slim/pydantic_ai/durable_exec/temporal/_toolset.py | 403 | except ImportError: | CODE |
| HIGH | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py | 164 | except ImportError: | CODE |
| HIGH | …c_ai_slim/pydantic_ai/durable_exec/prefect/_toolset.py | 134 | except ImportError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/realtime/_session.py | 1341 | except self._connection.transport_errors: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/realtime/_session.py | 3865 | except RuntimeError: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_cli/__init__.py | 191 | except Exception: | CODE |
| HIGH | pydantic_ai_slim/pydantic_ai/_cli/__init__.py | 425 | except KeyboardInterrupt: | CODE |
| HIGH | tests/conftest.py | 720 | except ImportError: | CODE |
| HIGH | tests/conftest.py | 598 | except ImportError: | CODE |
| HIGH | tests/test_agent.py | 10406 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_agent.py | 10518 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_agent.py | 10467 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_agent.py | 10503 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_agent.py | 10395 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_agent.py | 10443 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_streaming.py | 4747 | except UnexpectedModelBehavior: | CODE |
| HIGH | tests/test_streaming.py | 6249 | except UnexpectedModelBehavior: | CODE |
| HIGH | tests/test_streaming.py | 5545 | except RuntimeError: | CODE |
| HIGH | tests/test_run_cancellation.py | 201 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_run_cancellation.py | 761 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_run_cancellation.py | 939 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_run_cancellation.py | 228 | except asyncio.CancelledError: | CODE |
| 71 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pydantic_ai_slim/pydantic_ai/images/google.py | 129 | provider=GoogleProvider(api_key='your-api-key'), | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/images/xai.py | 115 | provider=XaiProvider(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 | 31 | provider = OVHcloudProvider(api_key='your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 35 | assert provider.client.api_key == 'your-api-key' | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 51 | openai_client = openai.AsyncOpenAI(api_key='your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 58 | provider = OVHcloudProvider(api_key='your-api-key', http_client=http_client) | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 60 | assert provider.client.api_key == 'your-api-key' | CODE |
| HIGH⚡ | tests/providers/test_ovhcloud.py | 64 | provider = OVHcloudProvider(api_key='your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_google.py | 77 | env.set(api_key_env_var, 'your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_google.py | 80 | assert provider.client._api_client.api_key == 'your-api-key' # pyright: ignore[reportPrivateUsage] | CODE |
| HIGH⚡ | tests/providers/test_google.py | 250 | env.set(api_key_env_var, 'your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_google.py | 253 | assert provider.client._api_client.api_key == 'your-api-key' # pyright: ignore[reportPrivateUsage] | CODE |
| HIGH⚡ | tests/providers/test_google.py | 285 | env.set('GOOGLE_API_KEY', 'your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_google.py | 290 | assert provider.client._api_client.api_key == 'your-api-key' # pyright: ignore[reportPrivateUsage] | CODE |
| HIGH⚡ | tests/providers/test_google.py | 301 | provider = GoogleCloudProvider(api_key='your-api-key') | CODE |
| HIGH⚡ | tests/providers/test_google.py | 302 | assert provider.client._api_client.api_key == 'your-api-key' # pyright: ignore[reportPrivateUsage] | CODE |
| HIGH⚡ | tests/providers/test_google.py | 312 | api_key='your-api-key', credentials=credentials, project='pydantic-ai', location='us-central1' | CODE |
| HIGH | docs/cli.md | 42 | export OPENAI_API_KEY='your-api-key-here' | CODE |
| HIGH | docs/embeddings.md | 175 | export OPENAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/embeddings.md | 247 | api_key='your-api-key', | CODE |
| HIGH | docs/embeddings.md | 284 | export GOOGLE_API_KEY='your-api-key' | CODE |
| HIGH | docs/embeddings.md | 405 | export CO_API_KEY='your-api-key' | CODE |
| HIGH | docs/embeddings.md | 461 | export VOYAGE_API_KEY='your-api-key' | CODE |
| HIGH | docs/image-generation.md | 23 | export OPENAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/image-generation.md | 140 | export OPENAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/image-generation.md | 165 | export GOOGLE_API_KEY='your-api-key' | CODE |
| HIGH | docs/image-generation.md | 192 | export XAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/image-generation.md | 211 | provider=OpenAIProvider(base_url='https://my-provider.com/v1', api_key='your-api-key'), | CODE |
| HIGH | docs/retries.md | 335 | api_key='your-api-key', # Replace with actual API key | CODE |
| HIGH | docs/models/xai.md | 26 | export XAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/xai.md | 61 | provider = XaiProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/xai.md | 75 | api_key='your-api-key', | CODE |
| HIGH | docs/models/xai.md | 97 | async with AsyncClient(api_key='your-api-key') as xai_client: | CODE |
| HIGH | docs/models/xai.md | 117 | api_key='your-api-key', | CODE |
| HIGH | docs/models/xai.md | 140 | async with AsyncClient(api_key='your-api-key', channel_options=[('grpc.enable_retries', 0)]) as xai_client: | CODE |
| HIGH | docs/models/anthropic.md | 26 | export ANTHROPIC_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/anthropic.md | 64 | 'claude-sonnet-4-5', provider=AnthropicProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/anthropic.md | 84 | provider=AnthropicProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/anthropic.md | 293 | api_key='your-api-key', | CODE |
| HIGH | docs/models/groq.md | 26 | export GROQ_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/groq.md | 59 | 'llama-3.3-70b-versatile', provider=GroqProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/groq.md | 77 | provider=GroqProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/typesafe.md | 29 | export TYPESAFE_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/typesafe.md | 189 | model = TypeSafeModel('jev-latest', provider=TypeSafeProvider(api_key='your-api-key')) | CODE |
| HIGH | docs/models/typesafe.md | 208 | provider=TypeSafeProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| HIGH | docs/models/typesafe.md | 227 | client = AsyncTypeSafeClient(api_key='your-api-key', retry=RetryPolicy(max_retries=0)) | CODE |
| HIGH | docs/models/google-cloud.md | 92 | export GOOGLE_API_KEY=your-api-key | CODE |
| HIGH | docs/models/google-cloud.md | 111 | provider = GoogleCloudProvider(api_key='your-api-key') | CODE |
| HIGH | docs/models/openai.md | 27 | export OPENAI_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/openai.md | 68 | model = OpenAIResponsesModel('gpt-5.2', provider=OpenAIProvider(api_key='your-api-key')) | CODE |
| HIGH | docs/models/openai.md | 105 | api_key='your-api-key', | CODE |
| HIGH | docs/models/openai.md | 580 | model = OpenAIDecisionsModel('gpt-6-luna', provider=OpenAIDecisionsProvider(api_key='your-api-key')) | CODE |
| HIGH | docs/models/bedrock.md | 54 | export AWS_BEARER_TOKEN_BEDROCK='your-api-key' | CODE |
| HIGH | docs/models/ollama.md | 34 | export OLLAMA_API_KEY='your-api-key' # required for Ollama Cloud | CODE |
| HIGH | docs/models/system-one.md | 65 | export SYSTEM_ONE_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/system-one.md | 92 | provider=SystemOneProvider(base_url='https://decisions.example.com', api_key='your-api-key'), | CODE |
| HIGH | docs/models/cohere.md | 26 | export CO_API_KEY='your-api-key' | CODE |
| HIGH | docs/models/cohere.md | 58 | model = CohereModel('command-r7b-12-2024', provider=CohereProvider(api_key='your-api-key')) | CODE |
| HIGH | docs/models/cohere.md | 75 | provider=CohereProvider(api_key='your-api-key', http_client=custom_http_client), | CODE |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 1674 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 461 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 1217 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 514 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 562 | 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 | 521 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 735 | 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 | 104 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_mcp.py | 180 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred_capabilities.py | 175 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 637 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 884 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 545 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 599 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 371 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_function_schema.py | 110 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_spec.py | 96 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 1234 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 281 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/result.py | 522 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1851 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1911 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1182 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 257 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 716 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 798 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 1008 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 1208 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_json_schema.py | 101 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_json_schema.py | 133 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred.py | 125 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_deferred.py | 182 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 3127 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 3201 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 3247 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 3313 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 3426 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 3508 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 3630 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 738 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 968 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1191 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1503 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 1557 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 3055 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/messages.py | 4183 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_cancel.py | 235 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 152 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 358 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 990 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1157 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 662 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 778 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 832 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1414 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1900 | CODE | |
| 493 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 138 | # `pydantic-ai-harness[stackone]` needs FastMCP 3. | COMMENT |
| MEDIUM | pyproject.toml | 180 | # so resolving `pydantic-ai-harness[browser-use]` here would hold the whole workspace to those versions. | COMMENT |
| MEDIUM | pyproject.toml | 181 | # The extra stays in the published metadata; this lock leaves it out, and the `harness browser-use` | COMMENT |
| MEDIUM | pyproject.toml | 285 | # Storage backends `pydantic-ai-harness` supports, faked or run against a live server. | COMMENT |
| MEDIUM | pyproject.toml | 487 | # Need `browser-use`, which the workspace lock excludes; the `harness browser-use` CI job checks them. | COMMENT |
| MEDIUM | pyproject.toml | 516 | # TODO: Replace native cancellation in harness code (e.g. `asyncio.wait_for` in `SubAgents`) with | COMMENT |
| MEDIUM | pyproject.toml | 519 | # Experimental harness capabilities warn on import by design; tests assert it where it matters. | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 344 | # Text output: no real validation, just pass through the text | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/_display.py | 456 | # Best-effort enrichment: the harness is named only when it can be found and named without | COMMENT |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/_json_schema.py | 278 | # they are both null, so just return one of them | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 641 | # If we already have a buffered item, just return it. | COMMENT |
| MEDIUM | …_slim/pydantic_ai/capabilities/process_event_stream.py | 97 | # the observer form returns an awaitable. Introspecting the return is robust for | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/mistral.py | 852 | # It seems that mistral just sends full tool calls, so we just use them directly, rather than buildi | COMMENT |
| MEDIUM | …_ai_slim/pydantic_ai/durable_exec/temporal/__init__.py | 121 | # harness through alone leaves that dependency sandbox-local and triggers a late-import error. | COMMENT |
| LOW | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_model.py | 113 | # 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 | 137 | # If not in a flow, just call the wrapped request_stream method | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/realtime/model.py | 451 | # can drop a claim the provider made and not just add to it. | COMMENT |
| MEDIUM | tests/conftest.py | 379 | # example printing from inside a running event loop trips the detector on the harness's own | COMMENT |
| MEDIUM | tests/conftest.py | 383 | # The first-run banner asks whether the harness is installed and what version it is, to name it | COMMENT |
| MEDIUM | tests/conftest.py | 453 | # The harness isn't installed in every CI lane (the `pydantic-evals` one, say). | COMMENT |
| MEDIUM | tests/test_display.py | 400 | # enough — as a dev install with the harness already is. | COMMENT |
| MEDIUM | tests/test_examples.py | 128 | # Written for the harness repository, which never ran them; not yet made runnable here. | COMMENT |
| MEDIUM | tests/test_examples.py | 134 | # (harness imports, the Coder blocks-equivalence fragment, interactive realtime | COMMENT |
| MEDIUM | tests/models/test_model_settings_support.py | 673 | # that as "not forwarded" would let a harness failure quietly agree with a stale list. | 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 |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 150 | data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srv | CODE |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 156 | data: {"type":"content_block_start","index":3,"content_block":{"type":"code_execution_tool_result","tool_use_id" | CODE |
| MEDIUM⚡ | …calls/test_in_flight_mcp_call_history_is_accepted.yaml | 99 | data: {"type":"content_block_start","index":0,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_ | CODE |
| LOW | tests/durable_exec/test_dbos.py | 355 | # DBOSAgent already wraps the `run` function as a DBOS workflow, so we can just call it directly. | COMMENT |
| LOW | tests/durable_exec/test_dbos.py | 853 | # DBOSAgent already wraps the `run` function as a DBOS workflow, so we can just call it directly. | COMMENT |
| MEDIUM | tests/realtime/test_session.py | 6969 | # `state_restored=True` stands, so an app is not told a seamless renewal was a disruption. | COMMENT |
| MEDIUM | tests/harness/conftest.py | 23 | # `from tests.harness.conftest import IsStr, IsDatetime, ...` instead of importing | COMMENT |
| MEDIUM | tests/harness/conftest.py | 45 | # Temporal markers live in `tests/harness/_temporal.py`: modules defining workflows must not import | COMMENT |
| MEDIUM | tests/harness/test_doc_snippets.py | 145 | continue # missing optional extra in this environment; the harness module exists | CODE |
| MEDIUM⚡ | tests/harness/test_doc_snippets.py | 287 | # Valid: harness imports that resolve, star imports, plain imports, and non-harness imports. | COMMENT |
| MEDIUM⚡ | tests/harness/test_doc_snippets.py | 300 | assert _is_missing_harness_module('acp') is False # a missing extra, not a harness module | CODE |
| MEDIUM⚡ | tests/harness/test_doc_snippets.py | 305 | # Simulate the `slim` environment: the harness module exists, but importing it | COMMENT |
| MEDIUM | tests/harness/_docs_examples.py | 53 | _ROOT = Path(__file__).parents[2] # the repository root, above `tests/harness` | CODE |
| MEDIUM | tests/harness/test_docs_parity.py | 37 | # as a capability (https://github.com/pydantic/pydantic-ai-harness/issues/625). | COMMENT |
| MEDIUM | tests/harness/test_docs_parity.py | 89 | # --- Unified-docs page checks (docs/harness/*.md) --------------------------- | COMMENT |
| MEDIUM | tests/harness/test_docs_parity.py | 91 | # The flat pages under `docs/harness/` render on the unified site. These mechanical | COMMENT |
| MEDIUM | tests/harness/test_workspace_provider.py | 153 | # Nothing the harness declares installs `sniffio`, so a clean install has none. Every sandbox backend imports this m | COMMENT |
| MEDIUM⚡ | tests/harness/test_coder.py | 82 | # Forget the whole harness package (restored after the test), so neither `pydantic_ai_harness` | COMMENT |
| LOW | tests/harness/test_skill_examples.py | 39 | # `find_examples` yields paths relative to the cwd we just set, so use them as-is. | COMMENT |
| MEDIUM | tests/harness/test_skill_examples.py | 141 | # `Task-Family References` table of the `pydantic-ai-harness` skill, and each class needs its own section in | COMMENT |
| MEDIUM | …arness/conversation_search/test_conversation_search.py | 231 | # pydantic-ai-harness#810: pydantic-ai stamps `timestamp`, `run_id`, and | COMMENT |
| MEDIUM | …arness/conversation_search/test_conversation_search.py | 247 | # pydantic-ai-harness#810: `StepPersistence.after_node_run` saves the | COMMENT |
| MEDIUM | …arness/conversation_search/test_conversation_search.py | 308 | # example `MongoStepStore`, pydantic-ai-harness#446) fails at construction | COMMENT |
| MEDIUM | …arness/conversation_search/test_conversation_search.py | 323 | # Bounded snapshot retention (pydantic-ai-harness#442) can prune the early, | COMMENT |
| MEDIUM⚡ | tests/harness/filesystem/test_filesystem.py | 540 | # A provider the harness does not ship names no example capability. | COMMENT |
| MEDIUM | tests/harness/gh_aw/test_engine_definition.py | 49 | # Stands in for gh-aw's own helper module, which the harness script requires next to | COMMENT |
| MEDIUM | tests/harness/gh_aw/test_engine_definition.py | 292 | # `os.tmpdir()`, where the harness script puts the generated module. Pointing it | COMMENT |
| MEDIUM | tests/harness/code_mode/test_websocket.py | 147 | # One statement: the harness cancels this while the close is in flight, so a separate | COMMENT |
| MEDIUM⚡ | tests/clai2/test_ordinal.py | 243 | # With `auto`, a chosen key wins over the environment, as an explicit `auth` does in harness `Ordinal`. | COMMENT |
| 78 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pydantic_ai_slim/pydantic_ai/_output.py | 366 | Execute an output function with error handling, converting `ModelRetry` to `ToolRetryError`. Tracing for output-fun | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/retries.py | 196 | Handle an HTTP request with retry logic. Args: request: The HTTP request to handle. Return | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/retries.py | 299 | Handle an async HTTP request with retry logic. Args: request: The HTTP request to handle. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/retries.py | 382 | Handle an HTTP request with retry logic. Args: request: The HTTP request to handle. Return | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/retries.py | 468 | Handle an async HTTP request with retry logic. Args: request: The HTTP request to handle. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/run.py | 701 | Emit a [`CustomEvent`][pydantic_ai.messages.CustomEvent] into this run's event stream. Lets code driving [`Agen | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/run.py | 741 | Enqueue content to be injected into the conversation. Safe to call directly from synchronous or asynchronous co | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/tool_manager.py | 749 | 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 | 1089 | 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 | 338 | 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 | 438 | 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 | 647 | 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/_run_context.py | 738 | Emit a custom or capability event into the current run's event stream. Application code emits an instance of an | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_run_context.py | 842 | Enqueue content to be injected into the conversation. Safe to call directly from async tools, sync tools runnin | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/mcp.py | 1617 | 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 | 1941 | Recursively expand environment variables in a JSON structure. Environment variables can be referenced using `${VAR_ | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/mcp.py | 2011 | 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 | 4119 | 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 | 4184 | Apply this thinking delta to an existing `ThinkingPart`. Args: part: The existing model response pa | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/messages.py | 4318 | 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/messages.py | 4466 | Apply this delta to an existing `SpeechPart`. `transcript` replaces the part's transcript when set, which is ho | 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 | 163 | 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 | 261 | 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 | 368 | Handle or update a tool call, creating or updating a `ToolCallPart`, `NativeToolCallPart`, or `ToolCallPartDelta`. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_utils.py | 842 | Check if a callable takes a `RunContext` as its first argument. Args: callable_obj: The callable to check. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/_utils.py | 862 | Get the type annotation of the first parameter of a callable. Handles regular functions, methods, and callable clas | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py | 95 | Dump provider metadata from keyword arguments. Args: wrapper_key: The key to wrap the metadata in. Defaults | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/ui/_web/app.py | 176 | Create a Starlette app that serves a web chat UI for the given agent. By default, the UI is fetched from a CDN and | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/embeddings/__init__.py | 337 | 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/images/__init__.py | 254 | Generate images from a prompt and optional reference images. Args: prompt: The text prompt describi | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/images/__init__.py | 288 | Synchronous version of [`generate()`][pydantic_ai.images.ImageGenerator.generate]. Args: prompt: Th | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/cerebras.py | 134 | Transforms a 'CerebrasModelSettings' object into an 'OpenAIChatModelSettings' object. Args: model_settings: | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/instrumented.py | 94 | Create instrumentation options. Args: tracer_provider: The OpenTelemetry tracer provider to use. | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/openrouter.py | 645 | Transforms a 'OpenRouterModelSettings' object into an 'OpenAIChatModelSettings' object. Args: model_setting | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/zai.py | 226 | Transforms a 'ZaiModelSettings' object into an 'OpenAIChatModelSettings' object. Maps the unified `thinking` settin | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/snowflake.py | 331 | Transforms a `SnowflakeModelSettings` object into an `OpenAIChatModelSettings` object. Args: model_settings | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/models/bedrock.py | 500 | 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 | 16 | Resolve user-facing tool_choice into a canonical form for providers. Pydantic AI distinguishes between function too | STRING |
| HIGH | …slim/pydantic_ai/durable_exec/_capability_operation.py | 198 | Declare an async capability method as a durable operation. The method keeps its original signature. During a run wi | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/realtime/_session.py | 1888 | Enqueue content to be delivered to the model when the session is ready for it. Use this from code driving the s | STRING |
| HIGH | pydantic_ai_slim/pydantic_ai/realtime/model.py | 283 | Open a connection to the realtime model. Args: messages: Prior conversation and the current request | 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 | 559 | 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 | 602 | Load a dataset from a string. Args: contents: The string content to parse. fmt: Format | STRING |
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 640 | Load a dataset from a dictionary. Args: data: Dictionary representation of the dataset. | STRING |
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 874 | 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 | 946 | 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 | 56 | 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 | 581 | 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 |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pydantic_ai_slim/pydantic_ai/concurrency.py | 234 | # Create a span for observability while waiting | COMMENT |
| MEDIUM⚡ | pydantic_ai_slim/pydantic_ai/_json_schema.py | 271 | # 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/__init__.py | 746 | # 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 | 772 | # 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/system_one.py | 50 | # This class is a placeholder for any future System One-specific settings. | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/openai_decisions.py | 78 | # This class is a placeholder for any future Decisions API-specific settings. | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/huggingface.py | 149 | # This class is a placeholder for any future huggingface-specific settings | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/cohere.py | 115 | # This class is a placeholder for any future cohere-specific settings | COMMENT |
| MEDIUM⚡ | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py | 204 | # Create a task to handle each event | COMMENT |
| MEDIUM | tests/test_toolsets.py | 951 | # Create a toolset with tools that can fail | COMMENT |
| MEDIUM⚡ | tests/test_ui_web.py | 1141 | # Create a test HTML file | COMMENT |
| MEDIUM⚡ | tests/test_ui_web.py | 1153 | # Create a test HTML file | COMMENT |
| MEDIUM⚡ | tests/test_tenacity.py | 487 | # Create a retry state with no exception | COMMENT |
| MEDIUM⚡ | tests/test_tenacity.py | 501 | # Create a retry state with a non-HTTP exception | COMMENT |
| MEDIUM | tests/test_tenacity.py | 597 | # Create a future date (30 seconds from now) | COMMENT |
| MEDIUM | tests/test_tenacity.py | 645 | # Create a past date | COMMENT |
| MEDIUM | tests/test_tenacity.py | 670 | # Create a future date (120 seconds from now, > max_wait) | COMMENT |
| MEDIUM | tests/test_tenacity.py | 715 | # Create a retry state with no exception to trigger fallback | COMMENT |
| MEDIUM | tests/test_function_signature.py | 1190 | # Create a function with bare generic annotation (typing.List, not list) | STRING |
| MEDIUM | tests/test_usage_limits.py | 669 | # Create a usage with None in details (simulating model response with missing detail) | COMMENT |
| MEDIUM | tests/test_json_schema.py | 67 | # Create a schema with $defs that should not be modified | COMMENT |
| MEDIUM | tests/evals/test_evaluator_common.py | 264 | # Create a mock GradingOutput | COMMENT |
| MEDIUM | tests/evals/test_evaluator_common.py | 502 | # 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 | 1758 | # This function is tough to test in an interesting way outside an example... | COMMENT |
| MEDIUM | tests/evals/test_otel.py | 789 | # Create a simple tree for testing negation | COMMENT |
| MEDIUM | tests/evals/test_otel.py | 986 | # Create a test span tree | COMMENT |
| MEDIUM | tests/evals/test_otel.py | 1021 | # Create a tree with varying numbers of children | COMMENT |
| MEDIUM | tests/providers/test_litellm.py | 122 | # Create a real AsyncClient for the mock | COMMENT |
| MEDIUM | tests/graph/builder/test_graph_builder.py | 395 | # Create a cycle that doesn't reach the end node | COMMENT |
| MEDIUM⚡ | tests/models/test_anthropic.py | 647 | # Create a mock model instance | COMMENT |
| MEDIUM⚡ | tests/models/test_anthropic.py | 654 | # Create a list with an unsupported param type (thinking) | COMMENT |
| MEDIUM | tests/models/test_anthropic.py | 627 | # Create a UserPromptPart with CachePoint | COMMENT |
| MEDIUM | tests/models/test_anthropic.py | 1013 | # Create a mock client that looks like standard AsyncAnthropic | COMMENT |
| MEDIUM | tests/models/test_anthropic.py | 8295 | # Create a model instance | STRING |
| MEDIUM | tests/models/test_anthropic.py | 8366 | # Create a model instance | STRING |
| MEDIUM | tests/models/test_anthropic.py | 8407 | # Create a model instance | STRING |
| MEDIUM | tests/models/test_anthropic.py | 10680 | # Create the first mock response with server tool blocks | STRING |
| MEDIUM | tests/models/test_anthropic.py | 10712 | # Create the second mock response that references the history | STRING |
| MEDIUM | tests/models/test_anthropic.py | 10741 | # Create the first mock response with server tool blocks | STRING |
| MEDIUM | tests/models/test_anthropic.py | 10772 | # Create the second mock response that references the history | STRING |
| MEDIUM | tests/models/test_anthropic.py | 14455 | # Create a message history with a container_id in provider_details | STRING |
| MEDIUM | tests/models/test_anthropic.py | 14479 | # Create a message history with a container_id | STRING |
| MEDIUM | tests/models/test_openai.py | 3642 | # Create a mock completion for testing | COMMENT |
| MEDIUM | tests/models/test_openai.py | 4039 | # Create a mock response with logprobs | COMMENT |
| MEDIUM | tests/models/mock_xai.py | 322 | # Create the chunk tool call (delta) | COMMENT |
| MEDIUM | tests/models/test_model_settings.py | 49 | # Create a base model with settings | COMMENT |
| 35 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 | 28 | **[Pydantic AI Harness](https://pydantic.dev/docs/ai/harness/)** has everything an agent needs for complex, long-running | CODE |
| MEDIUM | pydantic_ai_slim/pydantic_ai/native_tools/__init__.py | 189 | * Groq, see <https://console.groq.com/docs/agentic-tooling#search-settings> | STRING |
| MEDIUM | pydantic_ai_slim/pydantic_ai/native_tools/__init__.py | 203 | * Groq, see <https://console.groq.com/docs/agentic-tooling#search-settings> | STRING |
| MEDIUM | …stra-to-pydantic-ai/references/RESEARCH-AND-MAPPING.md | 11 | - Pydantic AI Harness: [overview](https://pydantic.dev/docs/ai/harness/), [memory](https://pydantic.dev/docs/ai/harness/ | CODE |
| 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 | 109 | ## Use Embeddings for RAG | COMMENT |
| MEDIUM | …g-pi-to-pydantic-ai/references/RESEARCH-AND-MAPPING.md | 11 | - Pydantic AI Harness: [overview](https://pydantic.dev/docs/ai/harness/), [Coder](https://pydantic.dev/docs/ai/harness/c | CODE |
| MEDIUM | …gents-sdk-to-pydantic-ai/references/CONCEPT-MAPPING.md | 49 | Harness provides [`InputGuardrail`, `OutputGuardrail`, and `ToolGuardrail`](https://pydantic.dev/docs/ai/harness/guardra | CODE |
| MEDIUM | …gents-sdk-to-pydantic-ai/references/CONCEPT-MAPPING.md | 94 | Primary references: [OpenAI Agents SDK](https://openai.github.io/openai-agents-python/), [agents](https://openai.github. | CODE |
| MEDIUM | …agno-to-pydantic-ai/references/RESEARCH-AND-MAPPING.md | 11 | - Pydantic AI Harness: [overview](https://pydantic.dev/docs/ai/harness/), [memory](https://pydantic.dev/docs/ai/harness/ | CODE |
| MEDIUM | …chain-to-pydantic-ai/references/DEEP-AGENTS-MAPPING.md | 10 | - [Orchestration and recovery](#orchestration-and-recovery) | CODE |
| MEDIUM | …langchain-to-pydantic-ai/references/CONCEPT-MAPPING.md | 13 | - [Graphs and multi-agent systems](#graphs-and-multi-agent-systems) | CODE |
| MEDIUM | …langchain-to-pydantic-ai/references/CONCEPT-MAPPING.md | 174 | ## Graphs and multi-agent systems | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/wrapper.py | 144 | # have a context window (the smallest among its candidates). | COMMENT |
| MEDIUM | …_ai_slim/pydantic_ai/durable_exec/temporal/__init__.py | 118 | # Harness file-tool orchestration runs workflow-side for pre-write vetoes; importing it | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/profiles/grok.py | 135 | # whole conversation, so it can't measure how full the context window is. | COMMENT |
| MEDIUM | pydantic_ai_slim/pydantic_ai/profiles/anthropic.py | 335 | # Before Claude Sonnet 4.5, Anthropic rejects a request whose input plus `max_tokens` exceeds the context window: | COMMENT |
| MEDIUM | tests/test_capability_native_or_local.py | 954 | # First turn: hallucinate a call to the filtered tool. Even though the model | COMMENT |
| MEDIUM⚡ | tests/evals/test_evaluator_common.py | 606 | # An empty steps list would produce a prompt with no chain-of-thought section, defeating the method. | COMMENT |
| MEDIUM | tests/models/test_anthropic.py | 8085 | 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 | 8088 | [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency injection. Depen | CODE |
| MEDIUM | tests/models/test_anthropic.py | 8156 | 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 | 8159 | [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⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 150 | data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srv | CODE |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 150 | data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srv | CODE |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 150 | data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srv | CODE |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 150 | data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srv | CODE |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 156 | data: {"type":"content_block_start","index":3,"content_block":{"type":"code_execution_tool_result","tool_use_id" | CODE |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 156 | data: {"type":"content_block_start","index":3,"content_block":{"type":"code_execution_tool_result","tool_use_id" | CODE |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 156 | data: {"type":"content_block_start","index":3,"content_block":{"type":"code_execution_tool_result","tool_use_id" | CODE |
| MEDIUM⚡ | …anthropic_supported_model_uses_20260209_web_tools.yaml | 156 | data: {"type":"content_block_start","index":3,"content_block":{"type":"code_execution_tool_result","tool_use_id" | CODE |
| MEDIUM⚡ | …calls/test_in_flight_mcp_call_history_is_accepted.yaml | 99 | data: {"type":"content_block_start","index":0,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_ | CODE |
| MEDIUM⚡ | …calls/test_in_flight_mcp_call_history_is_accepted.yaml | 99 | data: {"type":"content_block_start","index":0,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_ | CODE |
| MEDIUM | tests/realtime/test_session.py | 11834 | # --- context window ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/harness/test_readme_quick_start.py | 95 | 'url': 'https://simonwillison.net/2026/May/6/vibe-coding-and-agentic-engineering/', | CODE |
| MEDIUM | tests/harness/test_readme_quick_start.py | 126 | 'url': 'https://simonwillison.net/2026/May/6/vibe-coding-and-agentic-engineering/', | CODE |
| MEDIUM | tests/harness/test_readme_quick_start.py | 377 | 'url': 'https://simonwillison.net/2026/May/6/vibe-coding-and-agentic-engineering/', | STRING |
| MEDIUM | tests/harness/test_readme_quick_start.py | 458 | 'url': 'https://simonwillison.net/2026/May/6/vibe-coding-and-agentic-engineering/', | STRING |
| MEDIUM | tests/harness/dynamic_workflow/test_dynamic_workflow.py | 523 | # Model is shown only the orchestration tool, not the sub-agents directly. | COMMENT |
| MEDIUM | docs/coding-agent-skills.md | 9 | [Agent skills](https://agentskills.io) are packages of instructions and reference material that coding agents load on de | CODE |
| 52 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_output.py | 201 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 216 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 319 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 405 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 491 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/run.py | 493 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/run.py | 552 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 517 | except Exception as e: | CODE |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 499 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 271 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 335 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 338 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 727 | except Exception as error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_genai_prices.py | 150 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_display.py | 340 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_display.py | 359 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_display.py | 382 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_display.py | 455 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_spec.py | 234 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_template.py | 30 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_model_request_attempts.py | 133 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_parts_manager.py | 449 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 442 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1735 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 2969 | except Exception: | STRING |
| LOW | pydantic_ai_slim/pydantic_ai/usage.py | 351 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/usage.py | 358 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 743 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 296 | except Exception as exc: # `exc` to avoid shadowing by `async for e in` below | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 314 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_utils.py | 125 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/embeddings/instrumented.py | 154 | except Exception as e: # pragma: no cover | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/embeddings/instrumented.py | 199 | except Exception: # pragma: no cover | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/embeddings/instrumented.py | 202 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 1022 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 1112 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 1234 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 1353 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/_merge.py | 227 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 619 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 710 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 776 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 843 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 905 | except Exception: # pragma: no cover | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/combined.py | 966 | except Exception as new_error: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/openai_codex.py | 627 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/openai_codex.py | 651 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/openai_codex.py | 672 | except Exception as e: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/decision.py | 1063 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/_continuation.py | 241 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/fallback.py | 262 | except Exception as exc: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/fallback.py | 292 | except Exception as exc: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/fallback.py | 354 | except Exception as exc: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/fallback.py | 389 | except Exception as exc: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/workspaces/workspace.py | 224 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/workspaces/workspace.py | 292 | except Exception: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/durable_exec/_workspace.py | 246 | except Exception as error: | CODE |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/durable_exec/_toolset.py | 65 | except Exception: | CODE |
| LOW | …lim/pydantic_ai/durable_exec/temporal/_model_errors.py | 80 | except Exception: | CODE |
| LOW | …lim/pydantic_ai/durable_exec/temporal/_model_errors.py | 100 | except Exception: | CODE |
| 179 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 261 | "genai-prices>=0.1.0", | COMMENT |
| LOW | pyproject.toml | 541 | "ignore: '_UnionGenericAlias' is deprecated and slated for removal:DeprecationWarning:google.genai", | COMMENT |
| LOW | pyproject.toml | 561 | "ignore:The `local_dir_use_symlinks` argument is deprecated and ignored:UserWarning", | COMMENT |
| LOW | pydantic_ai_slim/pyproject.toml | 121 | # `websockets` is intentionally a direct dependency here (via `realtime`) even where a provider | COMMENT |
| LOW | pydantic_ai_slim/pyproject.toml | 141 | # Evals | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/run.py | 361 | COMMENT | |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 901 | else: | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/tool_manager.py | 1141 | ) | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 281 | # `use_attribute_docstrings` config: that config is pushed while the *core* schema is built and nothing | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1181 | COMMENT | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1441 | # A bare protocol-level `McpError` — e.g. a JSON-RPC validation rejection returned | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_tool_execution.py | 441 | self.tool_calls_by_kind = tool_calls_by_kind | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_json_schema.py | 141 | # Only a `$defs` name can stay a `$ref` once the schema around it is inlined. | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1521 | except exceptions.ModelRetry: | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 1961 | # two ways so `_first_new_message_index` can exclude it however capabilities/processors | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 2421 | if not tool_calls: | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_agent_graph.py | 2521 | COMMENT | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 321 | # Close any pending tool calls before emitting the error, | COMMENT |
| LOW | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 341 | part = event.part | COMMENT |
| LOW | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 441 | # `UnexpectedModelBehavior` with no prior `final_result`). The base class then | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_web/api.py | 21 | COMMENT | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/abstract.py | 1541 | # Stable, so duplicates the application order does not distinguish keep their tree order. | COMMENT |
| LOW | …c_ai_slim/pydantic_ai/capabilities/image_generation.py | 441 | if isinstance(self.fallback_image_model, str) and ':' not in self.fallback_image_model: | COMMENT |
| LOW | …antic_ai_slim/pydantic_ai/capabilities/_tool_search.py | 161 | def get_ordering(self) -> CapabilityOrdering: | COMMENT |
| LOW | …antic_ai_slim/pydantic_ai/capabilities/_tool_search.py | 181 | # Assumes no local implementation of bm25/regex exists — if we ever port either | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/mcp.py | 81 | self.url = url | COMMENT |
| LOW | …_slim/pydantic_ai/capabilities/process_event_stream.py | 121 | # it can legitimately be resumed elsewhere (a `StreamedRunResult` consumed in another task, | COMMENT |
| LOW | …ydantic_ai/capabilities/_deferred_capability_loader.py | 41 | # Deliberately lists EVERY deferred capability on every turn, including ones the model | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/moonshotai.py | 61 | return self._client | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/mistral.py | 21 | # Models with adjustable reasoning via `reasoning_effort` (opt-in, unlike always-on `magistral`): | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/vllm.py | 101 | ) | COMMENT |
| LOW | …dantic_ai_slim/pydantic_ai/providers/github_copilot.py | 81 | overlay = OpenAIModelProfile( | COMMENT |
| LOW | …dantic_ai_slim/pydantic_ai/providers/github_copilot.py | 101 | # probes found they emit none: `gpt-5.4` and `kimi-k3` answer with `content`/`padding`/`role` | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/openai.py | 61 | # OpenAI-compatible endpoints (Azure, OpenRouter, vLLM, ...) that speak the Responses API without | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/openai.py | 81 | if profile.get('openai_supports_prompt_cache_breakpoints') | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/deepseek.py | 61 | # passed back in every subsequent request. See https://api-docs.deepseek.com/guides/thinking_mode. | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/anthropic.py | 101 | def model_profile(model_name: str) -> ModelProfile | None: | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/providers/bedrock.py | 41 | 'Please install the `boto3` package to use the Bedrock provider, ' | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 721 | self._root_capability = CombinedCapability(capabilities) | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 1821 | _set_run_context_instrumentation( | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 3261 | # Prepend `Instrumentation` (outermost, so its spans wrap everything) unless the user already | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 3281 | # there to count before binding. It was never bound either, since `for_run` is all it gets. | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 3641 | # `RealtimeSession`; run-lifecycle hooks have no per-exchange boundary on which to build them. | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 3881 | # local tool when the native tool IS supported, and raise the shared `UserError` (suggesting | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 4401 | # unchanged would make `RunCancelled.all_messages()` (and a resume from it) silently | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1021 | # `None` means "no definitions to validate against, render as recorded": the bare | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1041 | # | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1361 | except ModelAPIError as e: | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/__init__.py | 2821 | transformed: list[ModelMessage] = [] | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/openai.py | 2981 | model_request_parameters: ModelRequestParameters, | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/openai.py | 3621 | ) -> tuple[str | None, list[ModelMessage]]: | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/openai.py | 5121 | if maybe_event is not None: # pragma: no branch | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 321 | ) | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 1681 | # real tokens. This undercounts the prompt by the server tools' definitions, but it's the | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 2241 | # Reading the deferred tools rather than the presence of a `ToolSearchTool` is deliberate: | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 2261 | # name still lives in history; it just isn't worth replaying as a tool reference. | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 2301 | # response. Rendering an interleaved entry after sibling user content is | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/anthropic.py | 2321 | self._add_cache_control_to_last_param( | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/_continuation.py | 421 | f'{self.max_generation_continuations} times' | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/_continuation.py | 641 | connection) open until garbage collection. | COMMENT |
| 207 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 62 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_instrumentation.py | 696 | def set_error_status(span: Span, error: BaseException, *, include_content: bool) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_event_registry.py | 103 | def set_replay_isolation_guard(guard: Callable[[], bool]) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 22 | __all__ = ['safe_download'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1150 | def set_sampling_model(self, model: models.Model) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/template.py | 13 | __all__ = ['TemplateStr'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/_utils.py | 926 | 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 | 53 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/__init__.py | 12 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_utils.py | 13 | def set_ui_message_id(message: ModelMessage, ui_message_id: str) -> None: | CODE |
| LOW | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 87 | __all__ = ['VercelAIEventStream'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 118 | __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 | 45 | __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 | 63 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py | 85 | __all__ = [ | CODE |
| LOW | …dantic_ai_slim/pydantic_ai/ui/ag_ui/_forward_compat.py | 29 | __all__ = ['skip_unknown_tagged_items'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_adapter.py | 157 | __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 | 106 | __all__ = [ | CODE |
| LOW | …antic_ai_slim/pydantic_ai/native_tools/_tool_search.py | 34 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/images/__init__.py | 26 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/gateway.py | 296 | def _set_google_ws_gateway_auth(client: GoogleClient, api_key: str) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/mistral.py | 123 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/openai_codex.py | 578 | def _set_http_client(self, http_client: _OpenAIHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/sambanova.py | 27 | __all__ = ['SambaNovaProvider'] | CODE |
| LOW | …dantic_ai_slim/pydantic_ai/providers/bedrock_mantle.py | 222 | def _set_http_client(self, http_client: _OpenAIHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/__init__.py | 107 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/google.py | 94 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/system_one.py | 74 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | …ic_ai_slim/pydantic_ai/providers/_openai_compatible.py | 54 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/typesafe.py | 92 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/groq.py | 154 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/anthropic.py | 198 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/github.py | 144 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/providers/cohere.py | 91 | def _set_http_client(self, http_client: AsyncHTTPClient) -> None: | CODE |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 4657 | def _set_run_context_instrumentation(ctx: RunContext[Any], settings: InstrumentationSettings | None) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 4215 | 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 | 4233 | 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/wrapper.py | 27 | __all__ = ['WrapperModel'] | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/openai.py | 4756 | def _set_state(self, status: ResponseStatus | None) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/xai.py | 1013 | def _update_response_state(self, response: chat_types.Response) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/_continuation.py | 51 | __all__ = [ | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/models/fallback.py | 517 | def _set_span_attributes(self, model: Model, model_request_parameters: ModelRequestParameters) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/durable_exec/__init__.py | 43 | __all__ = [ | CODE |
| LOW⚡ | …slim/pydantic_ai/durable_exec/_capability_operation.py | 184 | def set_durable_operation_marker(obj: object, marker: Marker) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/durable_exec/_utils.py | 28 | __all__ = [ | CODE |
| LOW | …lim/pydantic_ai/durable_exec/temporal/_event_stream.py | 31 | __all__ = [ | CODE |
| LOW | …_ai_slim/pydantic_ai/durable_exec/temporal/__init__.py | 47 | __all__ = [ | CODE |
| LOW | …ic_ai_slim/pydantic_ai/durable_exec/temporal/_model.py | 45 | __all__ = [ | CODE |
| LOW | …ntic_ai_slim/pydantic_ai/durable_exec/dbos/__init__.py | 17 | __all__ = ['DBOSAgent', 'DBOSDurability', 'DBOSModel', 'DBOSOperationNamer', 'DBOSParallelExecutionMode', 'StepConfig'] | CODE |
| LOW | …c_ai_slim/pydantic_ai/durable_exec/prefect/__init__.py | 18 | __all__ = [ | CODE |
| LOW | …antic_ai_slim/pydantic_ai/realtime/_instrumentation.py | 359 | def set_output_type(self, output_type: Literal['speech', 'text']) -> None: | CODE |
| LOW | …antic_ai_slim/pydantic_ai/realtime/_instrumentation.py | 369 | def set_conversation_id(self, conversation_id: str) -> None: | CODE |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/realtime/openai_live.py | 708 | def set_message_history(self, message_history: Callable[[], Sequence[ModelMessage]]) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/realtime/openai_live.py | 1439 | def _settle_delegation(self, delegation: _Delegation, *, gave_up: bool) -> None: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/realtime/_session.py | 4218 | def _settle_deferred_response(self) -> None: | CODE |
| 134 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/tools.py | 360 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 881 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_adapter.py | 591 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_adapter.py | 704 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_adapter.py | 780 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 189 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py | 223 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/ui/_web/app.py | 165 | CODE | |
| LOW | …c_ai_slim/pydantic_ai/capabilities/image_generation.py | 328 | CODE | |
| LOW | …c_ai_slim/pydantic_ai/capabilities/image_generation.py | 612 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/hooks.py | 795 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/web_fetch.py | 50 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/capability.py | 177 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/capability.py | 198 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/capability.py | 247 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/capability.py | 268 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/mcp.py | 54 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/mcp.py | 226 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/web_search.py | 58 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/capabilities/x_search.py | 92 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/providers/google_cloud.py | 29 | CODE | |
| LOW | …dantic_ai_slim/pydantic_ai/providers/bedrock_mantle.py | 130 | CODE | |
| LOW | …dantic_ai_slim/pydantic_ai/providers/bedrock_mantle.py | 143 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/providers/azure.py | 228 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/providers/bedrock.py | 632 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/providers/bedrock.py | 645 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 477 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 505 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 532 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 684 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 712 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 739 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 855 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 883 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 911 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1185 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1212 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1238 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1369 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1396 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1422 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1558 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1585 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1613 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1744 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1787 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1904 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1940 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 2241 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 145 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 172 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 199 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 350 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 393 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/wrapper.py | 444 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 569 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 593 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 616 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 886 | CODE | |
| LOW | pydantic_ai_slim/pydantic_ai/agent/__init__.py | 912 | CODE | |
| 133 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 646 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 655 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 664 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 677 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 685 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 693 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 701 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 711 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 720 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 730 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 740 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 749 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 761 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 770 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 779 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 788 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 797 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 806 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 815 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 824 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 833 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 842 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 854 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 863 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 872 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 884 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 893 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 902 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 914 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 927 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 942 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 954 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/_event_stream.py | 963 | CODE | |
| MEDIUM | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 177 | CODE | |
| MEDIUM | …ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py | 316 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py | 211 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py | 270 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1740 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1785 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1929 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/agent/abstract.py | 1968 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/__init__.py | 776 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1443 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/models/mcp_sampling.py | 86 | CODE | |
| MEDIUM | …dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py | 1037 | CODE | |
| MEDIUM | pydantic_ai_slim/pydantic_ai/realtime/codec.py | 532 | CODE | |
| MEDIUM | tests/test_ui.py | 989 | CODE | |
| MEDIUM | tests/test_ui.py | 993 | CODE | |
| MEDIUM | tests/test_ui.py | 997 | CODE | |
| MEDIUM | tests/test_ui.py | 1001 | CODE | |
| MEDIUM | tests/test_ui.py | 1005 | CODE | |
| MEDIUM | tests/test_ui.py | 1012 | CODE | |
| MEDIUM | tests/test_ui.py | 1016 | CODE | |
| MEDIUM | tests/test_ui.py | 1180 | CODE | |
| MEDIUM | tests/test_capability_hooks.py | 460 | CODE | |
| MEDIUM | tests/test_ag_ui.py | 554 | CODE | |
| MEDIUM | tests/graph/builder/test_graph_execution.py | 709 | CODE | |
| MEDIUM | tests/graph/builder/test_graph_iteration.py | 638 | CODE | |
| MEDIUM | tests/models/test_continuation_stream.py | 664 | CODE | |
| MEDIUM | tests/models/test_continuation_stream.py | 1089 | CODE | |
| 26 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/output.py | 408 | #> {'name': 'John Doe', 'age': 30} | STRING |
| LOW | tests/test_agent.py | 289 | {'name': 'John Doe'}, | CODE |
| LOW | tests/test_agent.py | 302 | Person(name='John Doe'), | CODE |
| LOW | tests/test_agent.py | 2420 | args_json = '{"name": "John Doe", "age": 30}' | STRING |
| LOW | tests/test_agent.py | 2430 | assert result.output == snapshot({'name': 'John Doe', 'age': 30}) | STRING |
| LOW | tests/import_examples.py | 10 | os.environ.update(OPENAI_API_KEY='fake-key', GEMINI_API_KEY='fake-key', GROQ_API_KEY='fake-key') | CODE |
| LOW | tests/test_examples.py | 881 | args={'response': ['Matching client:', {'id': 1234, 'name': 'Jane Doe'}]}, | CODE |
| LOW | tests/test_examples.py | 991 | args={'name': 'John Doe', 'age': 30}, | CODE |
| LOW | tests/test_examples.py | 1607 | 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 | 3487 | - Content source: Wikipedia article on "John Doe" | CODE |
| LOW | tests/models/test_anthropic.py | 3467 | The document explains the use of **placeholder names like "John Doe" and "Jane Doe"** in legal and everyday contexts. | CODE |
| LOW | tests/models/test_anthropic.py | 3467 | The document explains the use of **placeholder names like "John Doe" and "Jane Doe"** in legal and everyday contexts. | CODE |
| LOW⚡ | tests/models/test_anthropic.py | 3440 | 2. **Body text**: Multiple paragraphs of **Lorem Ipsum** placeholder text - this is dummy text commonly used in design a | STRING |
| LOW⚡ | tests/models/test_anthropic.py | 3447 | The Lorem Ipsum text itself has no actual meaning - it's derived from Latin but is intentionally scrambled to serve as n | STRING |
| LOW | tests/models/test_bedrock.py | 1771 | 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 | 1771 | 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 | 892 | '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 | 1279 | '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 | 1279 | '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⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 49 | 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 | 49 | 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 | 53 | 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 | 98 | The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" fo | CODE |
| LOW⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 98 | The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" fo | CODE |
| LOW⚡ | …ettes/test_anthropic/test_text_document_url_input.yaml | 102 | Similarly, a child or baby whose identity is unknown may be referred to as Baby Doe. A notorious murder | CODE |
| LOW | …ettes/test_anthropic/test_text_document_url_input.yaml | 206 | data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"placeholder"} } | 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 | 319 | data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Lorem Ipsum) that discuss"} | CODE |
| LOW | …atrix[tool_return_content-url-document-anthropic].yaml | 343 | data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" ipsum dolor sit amet, consec | CODE |
| LOW | …atrix[tool_return_content-url-document-anthropic].yaml | 424 | data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" of Lorem Ipsum text"} | 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 | 413 | data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" ipsum dolor sit amet, consec | 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 |
| LOW⚡ | …atrix[direct-url_force_download-document-xai].xai.yaml | 181 | \ consists of standard **Lorem Ipsum** placeholder text (dummy Latin-like\ | CODE |
| LOW⚡ | …atrix[direct-url_force_download-document-xai].xai.yaml | 185 | \ phrases like:\n - \"Lorem ipsum dolor sit amet, consectetuer adipiscing\ | CODE |
| LOW⚡ | …atrix[direct-url_force_download-document-xai].xai.yaml | 185 | \ phrases like:\n - \"Lorem ipsum dolor sit amet, consectetuer adipiscing\ | CODE |
| LOW⚡ | …ntent-url_force_download-document-bedrock_claude].yaml | 473 | - The main body consists of Lorem Ipsum text, which is commonly used placeholder text in publishing and de | CODE |
| LOW⚡ | …ntent-url_force_download-document-bedrock_claude].yaml | 475 | - The text is formatted in multiple paragraphs containing standard Lorem Ipsum passages | CODE |
| 46 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 454 | # Check if hostname is already an IP address | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_ssrf.py | 499 | # 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 | 754 | # Check if we need to follow a redirect | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/function_signature.py | 730 | # Check if this is object with properties + null | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/mcp.py | 1963 | # 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 | 936 | # Check if output mode is supported | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/models/openai.py | 1879 | # Check if thinking came from a custom field from the same provider | COMMENT |
| LOW | …ic_ai_slim/pydantic_ai/durable_exec/temporal/_model.py | 314 | # Check if this model instance is already registered | COMMENT |
| LOW | …tic_ai_slim/pydantic_ai/durable_exec/prefect/_model.py | 134 | # Check if we're in a flow context | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/_cli/__init__.py | 206 | # Check if this is a web command - route to web parser if so | COMMENT |
| LOW | pydantic_ai_slim/pydantic_ai/profiles/openai.py | 443 | # Check if the model supports web search (only specific search-preview models) | COMMENT |
| LOW | tests/capability_models.py | 68 | # Check if there's already a tool return in messages (i.e., tool was called) | COMMENT |
| LOW | tests/test_capability_hooks.py | 3990 | # 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 | 479 | # 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 | 598 | # 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 | 706 | # 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 | 742 | # 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 | 862 | # 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 | 893 | # Check if 'model' kwarg is passed, its value will be the default model or None | COMMENT |
| LOW | tests/graph/builder/test_graph_iteration.py | 453 | # Check if we're about to execute step2 | COMMENT |
| LOW | tests/models/test_openai.py | 6306 | # Set profile to use URI encoding | COMMENT |
| LOW | tests/models/test_openai.py | 6362 | # Set profile to use URI encoding | COMMENT |
| LOW | tests/durable_exec/temporal/test_durability.py | 451 | # Check if we already have a tool result | 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 | 383 | # Check if the existing PR has the Stale label | COMMENT |
| LOW⚡ | pydantic_graph/pydantic_graph/graph_builder.py | 770 | # Check if this join has any intermediate joins that are also active reducers | COMMENT |
| LOW⚡ | pydantic_graph/pydantic_graph/graph_builder.py | 778 | # Check if the intermediate join is also an active reducer with matching fork run | COMMENT |
| LOW⚡ | pydantic_graph/pydantic_graph/graph_builder.py | 781 | # Check if they share the same fork run for this join's parent fork | COMMENT |
| LOW | pydantic_graph/pydantic_graph/graph_builder.py | 229 | # Check if this join appears in any other join's intermediate_join_nodes | COMMENT |
| LOW | pydantic_graph/pydantic_graph/graph_builder.py | 1089 | # 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 | 1819 | # Check if this node has any outgoing edges | COMMENT |
| LOW | pydantic_graph/pydantic_graph/graph_builder.py | 2054 | # Check if this intermediate node is also a join | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 195 | def handle_request(self, request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 210 | def handle_request(req: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 381 | def handle_request(self, request: Request) -> Response: | CODE |
| LOW | pydantic_ai_slim/pydantic_ai/retries.py | 396 | def handle_request(req: Request) -> Response: | CODE |
| LOW | tests/test_images.py | 797 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 987 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1046 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1080 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1112 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1162 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1209 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1264 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1360 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1454 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1602 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1642 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1679 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1709 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1750 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1779 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1809 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 1901 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 2023 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 3932 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 4036 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 4247 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_images.py | 4315 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_ui.py | 2456 | def do_something(x: int) -> int: | CODE |
| LOW⚡ | tests/test_ssrf.py | 1138 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW⚡ | tests/test_ssrf.py | 1156 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_ssrf.py | 745 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_ssrf.py | 833 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_ssrf.py | 995 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/test_ssrf.py | 1194 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/typed_agent.py | 354 | def my_method(self) -> bool: | CODE |
| LOW⚡ | tests/test_tools.py | 4976 | def do_stuff(x: int) -> None: | CODE |
| LOW⚡ | tests/test_tools.py | 4986 | def do_stuff(x: int): | CODE |
| LOW | tests/test_mcp.py | 339 | async def handle_request(request: Any) -> Any: | CODE |
| LOW | tests/test_mcp.py | 362 | async def handle_request(request: Any) -> Any: | CODE |
| LOW | tests/graph/builder/test_util.py | 35 | def my_function(): | CODE |
| LOW | tests/models/test_download_item.py | 64 | def handle_request(request: httpx2.Request) -> httpx2.Response: | CODE |
| LOW | tests/models/test_xai.py | 1028 | async def process_data(data: str) -> str: | CODE |
| LOW | tests/harness/dynamic_workflow/test_dynamic_workflow.py | 870 | def helper() -> str: | CODE |
| LOW | tests/harness/dynamic_workflow/test_dynamic_workflow.py | 892 | def helper() -> str: | CODE |
| LOW | tests/harness/code_mode/test_speculation.py | 620 | skip_shapes = 'def helper():\n return search(query="never")\nfn = lambda: search(query="never")\n' | CODE |
| LOW | tests/harness/code_mode/test_speculation.py | 737 | 'def helper():\n return search(query="inner")\n' | CODE |
| LOW | pydantic_evals/pydantic_evals/online.py | 22 | async def my_function(x: int) -> int: | STRING |
| LOW | pydantic_evals/pydantic_evals/online.py | 890 | async def my_function(x: int) -> int: | STRING |
| LOW | pydantic_evals/pydantic_evals/_task_run.py | 37 | def run_task() -> Generator[Callable[[], dict[str, Any]]]: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1174 | # Step 3: fill `context_window` from genai-prices when no provider or partial user layer set it. | COMMENT |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1184 | # Step 4: user override | COMMENT |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1197 | # Step 5: native tools intersection — profile's allowed tools & model's implemented tools | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 525 | # Step 1: Prefix each FunctionToolset individually | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 530 | # Step 2: Combine the prefixed toolsets | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 533 | # Step 3: Filter tools based on user role and advanced flag, now using prefixed names | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 545 | # Step 4: Apply prepared toolset to modify descriptions (add user role annotation) | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 553 | # 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 | 1174 | # Step 3: fill `context_window` from genai-prices when no provider or partial user layer set it. | COMMENT |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1184 | # Step 4: user override | COMMENT |
| LOW⚡ | pydantic_ai_slim/pydantic_ai/models/__init__.py | 1197 | # Step 5: native tools intersection — profile's allowed tools & model's implemented tools | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 525 | # Step 1: Prefix each FunctionToolset individually | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 530 | # Step 2: Combine the prefixed toolsets | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 533 | # Step 3: Filter tools based on user role and advanced flag, now using prefixed names | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 545 | # Step 4: Apply prepared toolset to modify descriptions (add user role annotation) | COMMENT |
| LOW⚡ | tests/test_toolsets.py | 553 | # Step 5: Test the fully composed toolset | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/typed_deps.py | 39 | # Ensure that you can use tools with deps that are supertypes of the agent's deps | COMMENT |
| MEDIUM | tests/models/test_groq.py | 861 | 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 | 1104 | 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 | …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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pydantic_evals/pydantic_evals/dataset.py | 1185 | # However, I've added this because it affects the details of the otel span, and passing `escaped=True` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pydantic_ai_harness/scripts/run-mutmut.sh | 11 | # Usage: | COMMENT |