Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud.
This report summarizes scanner evidence for strands-agents/harness-sdk, a Python project with 8,768 GitHub stars. SynthScan examined 593,175 lines of code across 2579 source files, recording 9784 pattern matches distributed across 28 syntactic categories. The legacy adjusted pattern signal is 20.3 (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? 7947 finding(s).
Are imports declared and package/API names verified? 881 finding(s).
Are wrappers, guards, and repeated structures necessary? 8005 finding(s).
Which changes need focused human review? 9784 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 9784 distinct pattern matches across 28 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 | harness-py/tests_integ/test_web_search.py | 16 | async def test_exa_backend_returns_parsed_results(): | CODE |
| LOW | harness-py/tests_integ/test_caching.py | 48 | async def test_caching_reads_grow_across_turns(work_dir: Path, build_agent: Build) -> None: | CODE |
| LOW | harness-py/tests_integ/test_e2e.py | 45 | async def test_builtin_tools_all_work( | CODE |
| LOW | harness-py/tests_integ/test_e2e.py | 89 | async def test_subagent_result_is_delivered( | CODE |
| LOW | harness-py/tests_integ/test_e2e.py | 112 | async def test_environment_context_is_injected(work_dir: Path, build_agent: Build) -> None: | CODE |
| LOW | harness-py/tests_integ/test_e2e.py | 121 | async def test_interventions_deny_blocks_the_tool( | CODE |
| LOW⚡ | harness-py/tests_integ/test_e2e.py | 135 | async def test_interventions_approve_allows_the_tool(work_dir: Path, build_agent: Build, tool_succeeded: Check) -> None: | CODE |
| LOW⚡ | harness-py/tests_integ/test_e2e.py | 145 | async def test_sessions_persist_across_agents(work_dir: Path, build_agent: Build) -> None: | CODE |
| LOW⚡ | harness-py/tests_integ/test_e2e.py | 155 | async def test_session_persists_with_minted_id(work_dir: Path, build_agent: Build) -> None: | CODE |
| LOW | harness-py/tests_integ/test_e2e.py | 167 | async def test_memory_persists_across_agents(work_dir: Path, build_agent: Build) -> None: | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 157 | def test_background_tasks_can_be_disabled(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 162 | def test_model_router_is_attached_through_the_model_parameter(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 172 | def test_instructions_appended(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 178 | def test_explicit_system_prompt_wins_over_instructions(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 183 | def test_consumer_tools_added_alongside_builtins(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 188 | def test_subagent_enabled_by_default(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 193 | def test_subagent_disabled_via_builtin_tools(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 199 | def test_subagent_offers_the_generalist_preset(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 206 | def test_subagent_selectable_set_keeps_subagent_and_drops_web_search(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 264 | def test_sandbox_vended_tools_are_dropped(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 273 | def test_unknown_builtin_tool_raises(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 281 | def test_none_is_every_default_on(self): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 286 | def test_list_pins_exactly_the_names_given(self): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 291 | def test_mapping_edits_the_default_set(self): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 298 | def test_star_false_starts_from_nothing(self): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 304 | def test_empty_config_mapping_enables_the_tool(self): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 308 | def test_mapping_removes_a_default_tool(self): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 313 | def test_web_fetch_model_config_reaches_the_summarizer(self, monkeypatch): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 510 | def test_web_search_is_not_a_tool(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 515 | def test_web_search_enabled_on_supported_provider_from_default(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 520 | def test_web_search_default_on_bedrock_logs_info_not_warning_and_builds(caplog): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 531 | def test_web_search_explicit_on_unsupported_provider_raises(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 538 | def test_web_search_exa_fallback_builds_the_tool_and_warns_about_the_third_party(caplog): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 548 | def test_web_search_exa_wins_over_native_search(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 555 | def test_web_search_exa_fallback_works_on_a_model_instance(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 560 | def test_web_search_setting_is_a_bool_or_exa(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 567 | def test_web_search_native_on_anthropic_and_mantle_gpt(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 580 | def test_web_search_explicit_on_supported_provider_enabled(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 586 | def test_caching_enabled_by_default_on_bedrock(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 591 | def test_caching_enabled_by_default_on_anthropic_direct(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 596 | def test_caching_default_on_model_instance_warns_and_builds(caplog): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 608 | def test_caching_explicit_on_model_instance_warns_and_builds(caplog): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 618 | def test_caching_disabled_leaves_no_cache_config(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 623 | def test_caching_none_leaves_no_cache_config(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 628 | def test_caching_auto_enables_cache_config(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 634 | def test_caching_rejects_values_outside_auto_bool_none(value): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 640 | def test_context_manager_disabled(value): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 645 | def test_context_manager_default_uses_default_strategy(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 650 | def test_context_manager_true_is_rejected_by_the_sdk(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 655 | def test_context_manager_config_builds_an_sdk_context_manager(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 661 | def test_effort_auto_uses_recommended_level(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 666 | def test_effort_off_drops_reasoning(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 671 | def test_effort_level_is_validated_against_the_model(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 676 | def test_explicit_context_manager_wins(): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 683 | def test_session_manager_on_by_default(tmp_path): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 689 | def test_session_true_and_empty_config_use_the_default_dir(monkeypatch, tmp_path): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 698 | def test_default_agents_mint_distinct_ids(tmp_path): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 706 | def test_session_disabled_builds_no_manager(session): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 711 | def test_session_manager_instance_is_used_verbatim(tmp_path): | CODE |
| LOW⚡ | harness-py/tests/test_agent.py | 717 | def test_session_manager_kwarg_passthrough_wins(tmp_path): | CODE |
| 6975 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | strands-py/AGENTS.md | 122 | Brief description of function. Longer description if needed. This docstring is used by LLMs to understand the f | STRING |
| HIGH | strands-py/tests/strands/tools/test_decorator.py | 317 | This is the main description. This is more description text. Args: param1: First parameter | STRING |
| HIGH | strands-py/tests/strands/tools/test_decorator.py | 444 | Main description here. Args: param: This should be excluded Returns: This shou | STRING |
| HIGH | strands-py/tests/strands/tools/test_decorator.py | 1161 | This is the summary line. This is a more detailed description that spans multiple lines and provides ad | STRING |
| HIGH | strands-py/src/strands/_identifier.py | 19 | Validate strands id. Args: id_: Id to validate. type_: Type of the identifier (e.g., session id, ag | STRING |
| HIGH | strands-py/src/strands/experimental/agent_config.py | 55 | Create an Agent from a configuration file or dictionary. This function supports tools that can be loaded declarativ | STRING |
| HIGH | strands-py/src/strands/experimental/tools/stop/stop.py | 49 | Validate an optional stop message and return the effective value. Args: message: The model-supplied message | STRING |
| HIGH | strands-py/src/strands/experimental/tools/stop/stop.py | 77 | Create a stop tool that gracefully ends the agent loop. The tool sets ``invocation_state["request_state"]["stop_eve | STRING |
| HIGH | strands-py/src/strands/_middleware/stages.py | 74 | Resolve a middleware-initiated interrupt without mutating interrupt state. Shared by every ``MiddlewareInterruptibl | STRING |
| HIGH | strands-py/src/strands/_middleware/stages.py | 138 | Request a human-in-the-loop interrupt. On first execution (no prior response) this raises ``InterruptException` | STRING |
| HIGH | strands-py/src/strands/_middleware/stages.py | 217 | Request a human-in-the-loop interrupt. On first execution (no prior response) this raises ``InterruptException` | STRING |
| HIGH | strands-py/src/strands/tools/decorator.py | 372 | Validate input data using the Pydantic model. This method ensures that the input data meets the expected schema | STRING |
| HIGH | strands-py/src/strands/tools/decorator.py | 435 | Check if a parameter should be automatically injected by the framework or is a standard Python method param. Sp | STRING |
| HIGH | strands-py/src/strands/tools/decorator.py | 759 | Decorator that transforms a Python function into a Strands tool. This decorator seamlessly enables a function to be | STRING |
| HIGH | strands-py/src/strands/tools/tools.py | 83 | Normalize a single property definition. Args: prop_name: The name of the property. prop_def: The pr | STRING |
| HIGH | strands-py/src/strands/tools/tools.py | 117 | Normalize a JSON schema to match expectations. This function recursively processes nested objects to preserve the c | STRING |
| HIGH | strands-py/src/strands/tools/tools.py | 156 | Normalize a complete tool specification by transforming its inputSchema. Args: tool_spec: The tool specific | STRING |
| HIGH | strands-py/src/strands/tools/loader.py | 23 | Load a tool's Python module from a file path with sys.modules and sys.path discipline. The module's ``__name__`` is | STRING |
| HIGH | strands-py/src/strands/tools/loader.py | 318 | DEPRECATED: Load tools from a file based on its file extension. Args: tool_path: Path to the tool f | STRING |
| HIGH | strands-py/src/strands/tools/_caller.py | 50 | Call tool as a function. This method enables the method-style interface (e.g., `agent.tool.tool_name(param="val | STRING |
| HIGH | strands-py/src/strands/tools/_caller.py | 70 | Call a tool directly by name. Args: user_message_override: Optional custom message to recor | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 236 | Create MCPClient instances from an ``mcpServers`` JSON config (file path or mapping). Returns one client per en | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1148 | Submit a tool call once and return its direct result or SEP-2663 task handle. This protocol-level operation nev | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1189 | Asynchronously submit a tool call once without polling a returned task. Args: name: Name of the too | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1222 | Synchronously retrieve the current state of a SEP-2663 task. Args: task_id: Server-issued task iden | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1243 | Asynchronously retrieve the current state of a SEP-2663 task. Args: task_id: Server-issued task ide | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1271 | Synchronously supply responses to a task's outstanding input requests. Args: task_id: Server-issued | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1303 | Asynchronously supply responses to a task's outstanding input requests. Args: task_id: Server-issue | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1330 | Synchronously request cooperative cancellation of a SEP-2663 task. Args: task_id: Server-issued tas | STRING |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1353 | Asynchronously request cooperative cancellation of a SEP-2663 task. Args: task_id: Server-issued ta | STRING |
| HIGH | strands-py/src/strands/tools/mcp/_compat.py | 76 | Retry a 2.x request until it stops returning `InputRequiredResult`. The 2026-07-28 spec (SEP-2322) replaced server- | STRING |
| HIGH | strands-py/src/strands/tools/mcp/_compat.py | 134 | Call a tool on an active session, on either `mcp` major line. On the 2.x branch the server may answer with an `Inpu | STRING |
| HIGH | strands-py/src/strands/tools/mcp/_compat.py | 222 | Get a prompt on an active session, on either `mcp` major line. On the 2.x branch the server may answer with an `Inp | STRING |
| HIGH | strands-py/src/strands/tools/mcp/_compat.py | 255 | Read a resource on an active session, on either `mcp` major line. On the 2.x branch the server may answer with an ` | STRING |
| HIGH | strands-py/src/strands/tools/executors/_executor.py | 72 | Execute one admitted background tool call through middleware and after-call hooks. BeforeToolCallEvent already | STRING |
| HIGH | strands-py/src/strands/types/interrupt.py | 83 | Trigger the interrupt with a reason. Args: name: User defined name for the interrupt. Must be u | STRING |
| HIGH | strands-py/src/strands/multiagent/swarm.py | 486 | Wrap an async generator with timeout for total execution time. Tracks elapsed time from start and enforces time | STRING |
| HIGH | strands-py/src/strands/multiagent/spec.py | 203 | Combine the model's arguments, the selected preset, and the fixed axes into a spec. Precedence per axis: a model-su | STRING |
| HIGH | strands-py/src/strands/multiagent/a2a/_converters.py | 28 | Convert AgentInput to A2A Message. Args: prompt: Input in various formats (string, message list, or content | STRING |
| HIGH | strands-py/src/strands/multiagent/a2a/executor.py | 664 | Extract Strands interrupt responses from inbound A2A message parts. A client resumes a task parked in ``input_r | STRING |
| HIGH | …trands/vended_memory_stores/test_memory_store/store.py | 151 | Search stored entries for those whose content overlaps the query. Results are ranked by query-token overlap, wi | STRING |
| HIGH | …trands/vended_memory_stores/test_memory_store/store.py | 195 | Add ``content`` (with optional ``metadata``) to the store. Identical content is deduplicated: a repeat write re | STRING |
| HIGH | …s/vended_memory_stores/bedrock_knowledge_base/store.py | 214 | Search the knowledge base for entries matching the query. Args: query: The search query text. | STRING |
| HIGH | …s/vended_memory_stores/bedrock_knowledge_base/store.py | 297 | Ingest ``content`` (with optional ``metadata``) into the knowledge base. Only ``CUSTOM`` and ``S3`` data source | STRING |
| HIGH | strands-py/src/strands/plugins/decorator.py | 42 | Mark a method as a hook callback for automatic registration. Infers event type from the callback's type hint. Suppo | STRING |
| HIGH | strands-py/src/strands/bidi/agent/agent.py | 473 | Capture current agent state as an in-memory snapshot. Captures committed conversation history and application s | STRING |
| HIGH | strands-py/src/strands/bidi/agent/agent.py | 546 | Async context manager entry point. Automatically starts the bidirectional connection when entering the context. | STRING |
| HIGH | strands-py/src/strands/bidi/models/google.py | 305 | Convert Gemini Live API events to provider-agnostic format. Handles different types of content: - inpu | STRING |
| HIGH | strands-py/src/strands/event_loop/event_loop.py | 195 | Execute a single cycle of the event loop. This core function processes a single conversation turn, handling model i | STRING |
| HIGH | strands-py/src/strands/event_loop/event_loop.py | 478 | Handle model execution with retry logic for throttling exceptions. Executes the model inference with automatic retr | STRING |
| HIGH | strands-py/src/strands/agent/a2a_agent.py | 100 | Synchronously invoke the remote A2A agent. Args: prompt: Input to the agent (string, message list, | STRING |
| HIGH | strands-py/src/strands/agent/a2a_agent.py | 120 | Asynchronously invoke the remote A2A agent. Args: prompt: Input to the agent (string, message list, | STRING |
| HIGH | strands-py/src/strands/agent/a2a_agent.py | 148 | Stream remote agent execution asynchronously. This method provides an asynchronous interface for streaming A2A | STRING |
| HIGH | strands-py/src/strands/agent/a2a_agent.py | 255 | Send message to A2A agent. Args: prompt: Input to send to the agent. Yields: A | STRING |
| HIGH | strands-py/src/strands/agent/agent.py | 233 | Initialize the Agent with the specified configuration. Args: model: Provider for running inference | STRING |
| HIGH | strands-py/src/strands/agent/agent.py | 858 | Process a natural language prompt through the agent's event loop. This method implements the conversational int | STRING |
| HIGH | strands-py/src/strands/agent/agent.py | 952 | Process a natural language prompt through the agent's event loop. This method implements the conversational int | STRING |
| HIGH | strands-py/src/strands/agent/agent.py | 1298 | Process a natural language prompt and yield events as an async iterator. This method provides an asynchronous i | STRING |
| HIGH | strands-py/src/strands/agent/agent.py | 2009 | Capture current agent state as an in-memory snapshot. Args: preset: Named preset of fields to captu | STRING |
| HIGH | strands-py/src/strands/agent/agent_result.py | 98 | Rehydrate an AgentResult from persisted JSON. Args: data: Dictionary containing the serialized Agen | STRING |
| 129 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | harness-py/tests_integ/test_web_search.py | 8 | CODE | |
| LOW | harness-py/tests_integ/conftest.py | 11 | CODE | |
| LOW | harness-py/tests_integ/test_caching.py | 17 | CODE | |
| LOW | harness-py/tests_integ/test_e2e.py | 10 | CODE | |
| LOW | harness-py/tests/test_memory.py | 9 | CODE | |
| LOW | harness-py/src/strands_harness/options.py | 4 | CODE | |
| LOW | harness-py/src/strands_harness/config.py | 3 | CODE | |
| LOW | harness-py/src/strands_harness/models.py | 15 | CODE | |
| LOW | harness-py/src/strands_harness/memory.py | 17 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 3 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 4 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 4 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 4 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 4 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 10 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 10 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 11 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 11 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 11 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 11 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 17 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 18 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 18 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 19 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 19 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/__init__.py | 20 | CODE | |
| LOW | harness-py/src/strands_harness/telemetry.py | 16 | CODE | |
| LOW | harness-py/src/strands_harness/interventions.py | 19 | CODE | |
| LOW | harness-py/src/strands_harness/agent.py | 3 | CODE | |
| LOW | harness-py/src/strands_harness/prompt.py | 9 | CODE | |
| LOW | harness-py/src/strands_harness/tools/subagent.py | 17 | CODE | |
| LOW | harness-py/src/strands_harness/tools/web_fetch.py | 14 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 7 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 7 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 7 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 7 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 8 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 8 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 8 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 13 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 13 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 13 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 13 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 13 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 13 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 13 | CODE | |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 13 | CODE | |
| 777 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | strands-py/tests_integ/sandbox/conftest.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/conftest.py | 41 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | strands-py/tests_integ/sandbox/conftest.py | 127 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | strands-py/tests_integ/sandbox/conftest.py | 129 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | strands-py/tests_integ/sandbox/conftest.py | 149 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | strands-py/tests_integ/sandbox/conftest.py | 151 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 19 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 45 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 73 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 75 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 91 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 93 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 122 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 124 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 137 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 139 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 154 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 156 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 164 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 175 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 177 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 194 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 196 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/test_interrupt.py | 254 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/test_interrupt.py | 256 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/types/test__events.py | 508 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/types/test__events.py | 510 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/types/test_json_dict.py | 117 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/types/test_json_dict.py | 119 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/multiagent/test_graph.py | 2691 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/multiagent/test_graph.py | 2693 | # ============================================================================= | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_graph.py | 3098 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_graph.py | 3100 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …nds-py/tests/strands/multiagent/a2a/test_converters.py | 288 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …nds-py/tests/strands/multiagent/a2a/test_converters.py | 290 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …nds-py/tests/strands/multiagent/a2a/test_converters.py | 447 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …nds-py/tests/strands/multiagent/a2a/test_converters.py | 449 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 1343 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 1345 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 1708 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 1710 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 2116 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 2118 | # ========================================================================= | COMMENT |
| MEDIUM | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 1946 | # ========================================================================= | COMMENT |
| MEDIUM | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 1953 | # ========================================================================= | COMMENT |
| MEDIUM | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 2273 | # ── Inbound interrupt responses ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 2598 | # ── Outbound interrupt advertisement ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/bidi/io/test_audio.py | 286 | # =========================================================================== | STRING |
| MEDIUM⚡ | strands-py/tests/strands/bidi/io/test_audio.py | 288 | # =========================================================================== | STRING |
| MEDIUM⚡ | strands-py/tests/strands/bidi/io/test_audio.py | 290 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | strands-py/tests/strands/bidi/io/test_audio.py | 292 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | strands-py/tests/strands/bidi/io/test_audio.py | 333 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | strands-py/tests/strands/bidi/io/test_audio.py | 335 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | strands-py/tests/strands/bidi/io/test_audio.py | 395 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | strands-py/tests/strands/bidi/io/test_audio.py | 397 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | strands-py/tests/strands/bidi/_audio/test_processor.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/bidi/_audio/test_processor.py | 32 | # --------------------------------------------------------------------------- | COMMENT |
| 160 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | strands-py/tests_integ/models/test_model_ollama.py | 0 | extracts the time and weather from the user's message with the exact strings. | STRING |
| HIGH | strands-py/tests_integ/models/test_model_litellm.py | 0 | extracts the time and weather from the user's message with the exact strings. | STRING |
| HIGH | strands-py/tests_integ/models/test_model_mistral.py | 0 | extracts the time and weather from the user's message with the exact strings. | STRING |
| HIGH | strands-py/tests_integ/models/test_model_anthropic.py | 0 | extracts the time and weather from the user's message with the exact strings. | STRING |
| HIGH | strands-py/tests_integ/models/test_model_gemini.py | 0 | extracts the time and weather from the user's message with the exact strings. | STRING |
| HIGH | strands-py/tests/strands/memory/test_memory_manager.py | 0 | fire every recorded hook registered for ``event``'s type. | STRING |
| HIGH | …s/vended_memory_stores/test_memory_store/test_store.py | 0 | fire every recorded hook registered for ``event``'s type. | STRING |
| HIGH | …ded_memory_stores/bedrock_knowledge_base/test_store.py | 0 | fire every recorded hook registered for ``event``'s type. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_openai.py | 0 | test complete connection lifecycle with various configurations. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_bedrock.py | 0 | test complete connection lifecycle with various configurations. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_google.py | 0 | test complete connection lifecycle with various configurations. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_openai.py | 0 | test sending all content types through unified send() method. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_bedrock.py | 0 | test sending all content types through unified send() method. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_google.py | 0 | test sending all content types through unified send() method. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_openai.py | 0 | restart opens a new connection using the updated model id and params. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_bedrock.py | 0 | restart opens a new connection using the updated model id and params. | STRING |
| HIGH | strands-py/tests/strands/bidi/models/test_google.py | 0 | restart opens a new connection using the updated model id and params. | STRING |
| HIGH | strands-py/tests/strands/models/test_anthropic.py | 0 | test that toolchoice doesn't emit warning for supported providers. | STRING |
| HIGH | strands-py/tests/strands/models/test_openai.py | 0 | test that toolchoice doesn't emit warning for supported providers. | STRING |
| HIGH | strands-py/tests/strands/models/test_litellm.py | 0 | test that toolchoice doesn't emit warning for supported providers. | STRING |
| HIGH | strands-py/tests/strands/models/test_bedrock.py | 0 | test that toolchoice doesn't emit warning for supported providers. | STRING |
| HIGH | strands-py/tests/strands/models/test_anthropic.py | 0 | test that images with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_mistral.py | 0 | test that images with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_openai.py | 0 | test that images with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_writer.py | 0 | test that images with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_llamaapi.py | 0 | test that images with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_ollama.py | 0 | test that images with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_llamacpp.py | 0 | test that images with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_gemini.py | 0 | test that images with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_anthropic.py | 0 | test that documents with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_mistral.py | 0 | test that documents with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_openai.py | 0 | test that documents with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_writer.py | 0 | test that documents with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_llamaapi.py | 0 | test that documents with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_ollama.py | 0 | test that documents with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_llamacpp.py | 0 | test that documents with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_gemini.py | 0 | test that documents with location sources are filtered out with warning. | STRING |
| HIGH | strands-py/tests/strands/models/test_mistral.py | 0 | cache_config is a valid config field and survives get_config/update_config unchanged. | STRING |
| HIGH | strands-py/tests/strands/models/test_writer.py | 0 | cache_config is a valid config field and survives get_config/update_config unchanged. | STRING |
| HIGH | strands-py/tests/strands/models/test_ollama.py | 0 | cache_config is a valid config field and survives get_config/update_config unchanged. | STRING |
| HIGH | strands-py/tests/strands/models/test_llamacpp.py | 0 | cache_config is a valid config field and survives get_config/update_config unchanged. | STRING |
| HIGH | strands-py/tests/strands/models/test_mistral.py | 0 | stream threads agent_metadata so the outbound request carries the derived routing key. | STRING |
| HIGH | strands-py/tests/strands/models/test_openai.py | 0 | stream threads agent_metadata so the outbound request carries the derived routing key. | STRING |
| HIGH | strands-py/tests/strands/models/test_litellm.py | 0 | stream threads agent_metadata so the outbound request carries the derived routing key. | STRING |
| HIGH | …rands-py/tests/strands/models/test_openai_responses.py | 0 | stream threads agent_metadata so the outbound request carries the derived routing key. | STRING |
| HIGH | strands-py/tests/strands/models/test_sagemaker.py | 0 | test that non-none toolchoice emits warning for unsupported providers. | STRING |
| HIGH | strands-py/tests/strands/models/test_llamaapi.py | 0 | test that non-none toolchoice emits warning for unsupported providers. | STRING |
| HIGH | strands-py/tests/strands/models/test_ollama.py | 0 | test that non-none toolchoice emits warning for unsupported providers. | STRING |
| HIGH | strands-py/tests/strands/models/test_sagemaker.py | 0 | a cacheconfig whose fields are all default warns about nothing and never reaches the request. | STRING |
| HIGH | strands-py/tests/strands/models/test_writer.py | 0 | a cacheconfig whose fields are all default warns about nothing and never reaches the request. | STRING |
| HIGH | strands-py/tests/strands/models/test_ollama.py | 0 | a cacheconfig whose fields are all default warns about nothing and never reaches the request. | STRING |
| HIGH | strands-py/tests/strands/models/test_sagemaker.py | 0 | ollama honors no cache field: a non-default field warns (naming the provider) and never reaches the request. | STRING |
| HIGH | strands-py/tests/strands/models/test_writer.py | 0 | ollama honors no cache field: a non-default field warns (naming the provider) and never reaches the request. | STRING |
| HIGH | strands-py/tests/strands/models/test_ollama.py | 0 | ollama honors no cache field: a non-default field warns (naming the provider) and never reaches the request. | STRING |
| HIGH | strands-py/src/strands/types/media.py | 0 | streaming-related type definitions for the sdk. these types are modeled after the bedrock api. - bedrock docs: https://d | STRING |
| HIGH | strands-py/src/strands/types/tools.py | 0 | streaming-related type definitions for the sdk. these types are modeled after the bedrock api. - bedrock docs: https://d | STRING |
| HIGH | strands-py/src/strands/types/guardrails.py | 0 | streaming-related type definitions for the sdk. these types are modeled after the bedrock api. - bedrock docs: https://d | STRING |
| HIGH | strands-py/src/strands/types/streaming.py | 0 | streaming-related type definitions for the sdk. these types are modeled after the bedrock api. - bedrock docs: https://d | STRING |
| HIGH | strands-py/src/strands/bidi/models/google.py | 0 | update the model configuration with the provided arguments. args: **model_config: configuration overrides. raises: value | STRING |
| HIGH | strands-py/src/strands/bidi/models/bedrock.py | 0 | update the model configuration with the provided arguments. args: **model_config: configuration overrides. raises: value | STRING |
| 60 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …rands-py/tests_integ/test_hot_tool_reload_decorator.py | 32 | # Create an Agent instance without any tools | COMMENT |
| MEDIUM | …rands-py/tests_integ/test_hot_tool_reload_decorator.py | 35 | # Create a test tool using @tool decorator | COMMENT |
| MEDIUM | …rands-py/tests_integ/test_hot_tool_reload_decorator.py | 84 | # Create an Agent instance | STRING |
| MEDIUM | …rands-py/tests_integ/test_hot_tool_reload_decorator.py | 87 | # Create the initial version of the tool | STRING |
| MEDIUM | strands-py/tests_integ/test_multiagent_graph.py | 326 | # Create a custom node | COMMENT |
| MEDIUM | strands-py/tests_integ/test_session.py | 43 | # Create a session | COMMENT |
| MEDIUM | strands-py/tests_integ/test_session.py | 106 | # Create a session | COMMENT |
| MEDIUM⚡ | …g/test_summarizing_conversation_manager_integration.py | 302 | # Create a dedicated summarization agent | COMMENT |
| MEDIUM⚡ | …g/test_summarizing_conversation_manager_integration.py | 309 | # Create main agent with dedicated summarization agent | COMMENT |
| MEDIUM | …g/test_summarizing_conversation_manager_integration.py | 427 | # Create a summarization agent with structured_output_model configured | STRING |
| MEDIUM | strands-py/tests_integ/test_bedrock_s3_location.py | 39 | # Create the bucket if it doesn't exist | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/test_multiagent_swarm.py | 119 | # Create the swarm | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/test_multiagent_swarm.py | 122 | # Define a task that requires collaboration | COMMENT |
| MEDIUM | strands-py/tests_integ/test_multiagent_swarm.py | 155 | # Create the swarm | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/test_skills_plugin.py | 64 | # Create a skill directory with SKILL.md | COMMENT |
| MEDIUM | strands-py/tests_integ/a2a/a2a_server.py | 4 | # Create an agent and serve it over A2A | COMMENT |
| MEDIUM | strands-py/tests_integ/a2a/test_multiagent_a2a.py | 83 | # Create a regular Agent | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/models/test_model_openai.py | 256 | # Create a very long text that should exceed context window | COMMENT |
| MEDIUM | strands-py/tests_integ/models/test_model_llamacpp.py | 521 | # Create a very long message that might exceed context | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_registry.py | 332 | # Create a mock MCP client that simulates a real tool provider | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_registry.py | 399 | # Create a mock tool provider that fails during load_tools | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_registry.py | 428 | # Create a mock tool provider that tracks call order | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/tools/test_caller.py | 193 | # Create a non-serializable object (Agent instance) | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_watcher.py | 68 | # Create a mock event with the specified properties | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_watcher.py | 90 | # Create a mock event with a Python file path | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_decorator.py | 1246 | # Define a tool with a complex anyOf type that could trigger edge case handling | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_decorator.py | 1287 | # Define a class with a decorated method to test exception handling in method detection | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_decorator.py | 1298 | # Create a mock instance where attribute access will raise exceptions | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/test_decorator.py | 1331 | # Create a standalone function to test regular function calls | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/mcp/conftest.py | 80 | # Create a mock context manager for ClientSession | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 938 | # Create a client.with a mock transport | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 942 | # Create a mock future that is not running | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 947 | # Create a mock event loop | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 728 | # Create a mock future that returns the mock result | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 732 | # Create an async mock that resolves to the mock result | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 800 | # Create an async mock that resolves to the mock result | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 849 | # Create an async mock that raises an exception | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 1344 | # Create a mock embedded resource with unknown resource type | COMMENT |
| MEDIUM | …py/tests/strands/tools/mcp/test_mcp_instrumentation.py | 173 | # Create a mock params object that doesn't have 'get' method but has '_meta' attribute | COMMENT |
| MEDIUM | …sts/strands/tools/mcp/test_mcp_client_tool_provider.py | 333 | # Create a mock MCP tool (not MCPAgentTool) | COMMENT |
| MEDIUM | …sts/strands/tools/mcp/test_mcp_client_tool_provider.py | 512 | # Create a mock MCP tool | COMMENT |
| MEDIUM | …sts/strands/tools/mcp/test_mcp_client_tool_provider.py | 555 | # Create a mock MCP tool | COMMENT |
| MEDIUM | …sts/strands/tools/mcp/test_mcp_client_tool_provider.py | 598 | # Create a mock MCP tool | COMMENT |
| MEDIUM | strands-py/tests/strands/tools/mcp/test__compat.py | 870 | # Creating the context manager defers the body, so no session traffic happens here. | COMMENT |
| MEDIUM | …ands-py/tests/strands/tools/executors/test_executor.py | 552 | # Create a tool that yields a ToolInterruptEvent with an interrupt NOT pre-registered on the agent | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/types/test_session.py | 80 | # Create a message with bytes content | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/types/test_session.py | 86 | # Create a SessionMessage | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/multiagent/test_swarm.py | 528 | # Create a simple agent that doesn't hand off | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/multiagent/test_swarm.py | 531 | # Create a swarm with just this agent | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/multiagent/test_swarm.py | 615 | # Create a different agent with same name as agent1 | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 339 | # Create an agent that will hand off to another agent | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 390 | # Create a swarm with reasonable limits | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 827 | # Create a failing agent (don't fail during creation, fail during execution) | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 873 | # Create a slow agent | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 1023 | # Create a slow agent | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 1054 | # Create an agent that will timeout during streaming | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 1094 | # Create an agent | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 1134 | # Create a mock swarm that produces events but no final result | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_swarm.py | 1155 | # Create an agent | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/multiagent/test_base.py | 302 | # Create an AgentResult with empty content to produce empty string | COMMENT |
| 114 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 7 | # Linter/formatter. Range matches strands-py and harness-py so the whole monorepo | COMMENT |
| MEDIUM | .husky/lint-python.sh | 3 | # harness-py/ each carry their own [tool.ruff]; ruff resolves the nearest config per file, | COMMENT |
| MEDIUM⚡ | harness-py/tests/test_agent.py | 549 | # https://github.com/strands-agents/harness-sdk/issues/4480 | COMMENT |
| MEDIUM⚡ | harness-py/tests/test_agent.py | 832 | # https://github.com/strands-agents/harness-sdk/issues/4685 | COMMENT |
| MEDIUM⚡ | harness-py/tests/test_interventions.py | 30 | # No allow-list: the classifier judges every call (the harness makes no read/write assumptions). | COMMENT |
| MEDIUM | harness-py/tests/test_config.py | 602 | # Aligns with harness-ts: a non-string ``export`` fails at validation instead of later in ``_load_reference``. | COMMENT |
| MEDIUM | harness-py/tests/test_config.py | 615 | # Aligns with harness-ts: a blank string is not "no interventions"; use null for that. | COMMENT |
| MEDIUM⚡ | harness-py/tests/test_models.py | 171 | # https://github.com/strands-agents/harness-sdk/issues/4472 | COMMENT |
| MEDIUM⚡ | harness-py/tests/test_models.py | 265 | # https://github.com/strands-agents/harness-sdk/issues/4852 | COMMENT |
| MEDIUM⚡ | harness-py/tests/plugins/test_environment.py | 73 | # Depth 2 reaches harness-py/src (level 2) but the plugin still only lists to that depth. | COMMENT |
| MEDIUM | harness-py/src/strands_harness/options.py | 33 | # (the harness's tools read the agent-level ``sandbox=`` at call time); neither is exposed. | COMMENT |
| MEDIUM | harness-py/src/strands_harness/config.py | 169 | # via ``Agent.as_tool()`` and appended to ``tools`` (the harness has no separate subagents param). | COMMENT |
| MEDIUM | harness-py/src/strands_harness/models.py | 89 | # Reasoning levels each provider's API accepts. The harness validates against the resolved | COMMENT |
| MEDIUM | harness-py/src/strands_harness/memory.py | 87 | # Inject on every model call, not only on a fresh user ask: the harness runs multi-step tool loops, so an | COMMENT |
| MEDIUM⚡ | harness-py/src/strands_harness/agent.py | 421 | # Hooks and the sandbox stay in agent_kwargs (the harness adds none) but are forwarded so subagent children | COMMENT |
| MEDIUM⚡ | harness-py/src/strands_harness/agent.py | 429 | # An explicit ``memory_manager`` (or a ``MemoryManager`` passed as ``memory``) wins over the harness's memory | COMMENT |
| MEDIUM⚡ | harness-py/src/strands_harness/agent.py | 430 | # wiring and is not forwarded: a delegate shares harness-built stores read-only or gets none. | COMMENT |
| MEDIUM⚡ | harness-py/src/strands_harness/agent.py | 434 | # ``{}`` is on (the harness's defaults) even though it is falsy; ``_memory_config`` maps off to ``None``. | COMMENT |
| MEDIUM | harness-py/src/strands_harness/agent.py | 483 | # plugins stay first so the tail is the harness's own. | COMMENT |
| MEDIUM | strands-py/tests_integ/test_invalid_tool_names.py | 17 | # Per https://github.com/strands-agents/harness-sdk/issues/1069 we want to ensure that invalid tool don't poison | COMMENT |
| MEDIUM | strands-py/tests_integ/mcp/test_mcp_client.py | 75 | # Start comprehensive server with tools, prompts, and resources | COMMENT |
| MEDIUM | strands-py/tests_integ/mcp/test_mcp_client.py | 314 | """Test comprehensive MCP client with streamable HTTP transport.""" | STRING |
| MEDIUM | strands-py/tests_integ/models/test_model_openai.py | 228 | # See https://github.com/strands-agents/harness-sdk/issues/320 for additional details | COMMENT |
| LOW | strands-py/tests/strands/tools/test_decorator.py | 1020 | # The wrapper should preserve our format and just add the toolUseId | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_graph.py | 2211 | # Monotonic fake clock advanced explicitly; robust to how many times time.time() is called. | COMMENT |
| MEDIUM | strands-py/tests/strands/multiagent/test_graph.py | 207 | """Test comprehensive graph execution with diverse nodes and conditional edges.""" | STRING |
| MEDIUM | strands-py/tests/strands/multiagent/test_graph.py | 1271 | """Test comprehensive self-loop functionality including conditions and reset behavior.""" | STRING |
| MEDIUM | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 2275 | # Regression coverage for https://github.com/strands-agents/harness-sdk/issues/2948: a client | COMMENT |
| MEDIUM | strands-py/tests/strands/agent/test_agent_hooks.py | 410 | # https://github.com/strands-agents/harness-sdk/issues/3623: retried calls still incur billable usage. | COMMENT |
| MEDIUM | strands-py/tests/strands/models/test_anthropic.py | 255 | # Guards against https://github.com/strands-agents/harness-sdk/issues/3789: formats Anthropic cannot | COMMENT |
| MEDIUM | strands-py/tests/strands/models/test_anthropic.py | 343 | # Guards against https://github.com/strands-agents/harness-sdk/issues/3789: formats Anthropic cannot | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/models/test_bedrock.py | 893 | # We used to hang on None, so ensure we don't regress: https://github.com/strands-agents/harness-sdk/issues/642 | COMMENT |
| MEDIUM | strands-py/tests/strands/models/test_bedrock.py | 3038 | # https://github.com/strands-agents/harness-sdk/issues/3759 | COMMENT |
| MEDIUM | …trands/vended_plugins/context_offloader/test_plugin.py | 452 | # See https://github.com/strands-agents/harness-sdk/issues/4017 | COMMENT |
| LOW | …s/strands/vended_plugins/steering/core/test_handler.py | 278 | # The context callback is wrapped in a lambda, so we just call all callbacks | COMMENT |
| LOW | …s/strands/vended_plugins/steering/core/test_handler.py | 470 | # Should not raise, just return early | COMMENT |
| LOW | …s/strands/vended_plugins/steering/core/test_handler.py | 490 | # Should not raise, just return early | COMMENT |
| MEDIUM | …nds-py/tests/strands/vended_interventions/test_hitl.py | 640 | without a per-file ``# type: ignore`` is tracked in harness-sdk#2800. | STRING |
| MEDIUM | strands-py/src/strands/_exception_notes.py | 3 | # add_note was added in 3.11 - we hoist to a constant to facilitate testing | COMMENT |
| MEDIUM | strands-py/src/strands/tools/decorator.py | 154 | # Deferring this complexity until there is clear demand and a robust | COMMENT |
| LOW | strands-py/src/strands/tools/decorator.py | 690 | # Result is already in the expected format, just add toolUseId | COMMENT |
| MEDIUM | strands-py/src/strands/tools/_tool_helpers.py | 7 | # https://github.com/strands-agents/harness-sdk/issues/998 | COMMENT |
| MEDIUM | strands-py/src/strands/tools/_caller.py | 141 | # TODO: https://github.com/strands-agents/harness-sdk/issues/1311 | COMMENT |
| MEDIUM | strands-py/src/strands/tools/mcp/mcp_client.py | 455 | # See: https://github.com/strands-agents/harness-sdk/issues/1440 | COMMENT |
| MEDIUM | strands-py/src/strands/event_loop/streaming.py | 78 | # https://github.com/strands-agents/harness-sdk/issues/1069 | COMMENT |
| MEDIUM | strands-py/src/strands/models/openai_responses.py | 35 | # A major version bump is proposed in https://github.com/strands-agents/harness-sdk/pull/1370 | COMMENT |
| MEDIUM | strands-py/src/strands/models/openai_responses.py | 692 | # tracked in https://github.com/strands-agents/harness-sdk/issues/3389. | COMMENT |
| MEDIUM | strands-py/src/strands/models/openai.py | 249 | # See https://github.com/strands-agents/harness-sdk/issues/1696 | COMMENT |
| MEDIUM | strands-py/src/strands/models/openai.py | 387 | # TODO: Handle caching blocks https://github.com/strands-agents/harness-sdk/issues/1140 | COMMENT |
| MEDIUM | strands-py/src/strands/models/bedrock.py | 855 | # TODO: Replace with systematic model configuration registry (https://github.com/strands-agents/harness- | COMMENT |
| MEDIUM | …_plugins/steering/context_providers/ledger_provider.py | 1 | """Ledger context provider for comprehensive agent activity tracking. | STRING |
| MEDIUM | strands-py/src/strands/hooks/registry.py | 260 | # Related issue: https://github.com/strands-agents/harness-sdk/issues/330 | COMMENT |
| MEDIUM | strands-py/src/strands/telemetry/metrics.py | 423 | """Generate a comprehensive summary of all collected metrics. | STRING |
| MEDIUM | …s-py/src/strands/session/repository_session_manager.py | 294 | # Fix broken session histories: https://github.com/strands-agents/harness-sdk/issues/859 | COMMENT |
| MEDIUM | .github/workflows/harness-cli-security-audit.yml | 4 | # tree. Reusable; called by release-harness-cli.yml. Does not block the release: | COMMENT |
| MEDIUM | .github/workflows/harness-cli-integration-test.yml | 10 | # Reusable too: release-harness-cli.yml calls it with an explicit `ref`; the | COMMENT |
| MEDIUM | .github/workflows/harness-py-security-audit.yml | 3 | # Informational pip-audit of the harness-py (`strands-harness`) dependency | COMMENT |
| MEDIUM | .github/workflows/harness-py-security-audit.yml | 4 | # closure. Reusable; called by release-harness-py.yml. Mirrors the SDK's | COMMENT |
| MEDIUM | .github/workflows/harness-py-integration-test.yml | 3 | # Live-model integration tests for harness-py (`strands-harness`), against | COMMENT |
| MEDIUM | .github/workflows/harness-py-integration-test.yml | 9 | # Reusable too: release-harness-py.yml calls it with an explicit `ref`; the | COMMENT |
| 54 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | harness-py/src/strands_harness/tools/subagent.py | 569 | except Exception as exc: | CODE |
| LOW | harness-py/src/strands_harness/tools/web_fetch.py | 193 | except Exception as exc: | CODE |
| LOW | …/src/strands_harness/tools/programmatic_tool_caller.py | 184 | except Exception as error: | CODE |
| LOW | harness-py/src/strands_harness/tools/web_search.py | 67 | except Exception as exc: | CODE |
| LOW | harness-py/src/strands_harness/tools/web_search.py | 92 | except Exception as exc: | CODE |
| LOW | harness-py/src/strands_harness/tools/web_search.py | 119 | except Exception as exc: # any backend failure becomes text the model can act on | CODE |
| LOW | harness-py/src/strands_harness/plugins/environment.py | 102 | except Exception: | CODE |
| LOW | harness-py/src/strands_harness/plugins/environment.py | 119 | except Exception: | CODE |
| LOW | harness-py/src/strands_harness/plugins/environment.py | 129 | except Exception: | CODE |
| LOW | harness-py/src/strands_harness/plugins/environment.py | 144 | except Exception: | CODE |
| LOW | strands-py/tests_integ/conftest.py | 211 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/_ssm.py | 63 | except Exception as error: # noqa: BLE001 - any failure means "unavailable", not "error". | CODE |
| LOW | strands-py/tests_integ/_ssm.py | 98 | except Exception as error: # noqa: BLE001 - any failure means "skip", not "error". | CODE |
| LOW | strands-py/tests_integ/test_multiagent_graph.py | 501 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/test_multiagent_graph.py | 578 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/test_multiagent_graph.py | 833 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/test_multiagent_swarm.py | 34 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/test_a2a_executor.py | 82 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/memory/conftest.py | 83 | except Exception: # noqa: BLE001 - best-effort cleanup. | CODE |
| LOW | …ands-py/tests_integ/memory/_bedrock_kb_test_helpers.py | 130 | except Exception: # noqa: BLE001 - best-effort; don't mask test failures. | CODE |
| LOW | …ands-py/tests_integ/memory/_bedrock_kb_test_helpers.py | 154 | except Exception: # noqa: BLE001 - best-effort. | CODE |
| LOW | …ands-py/tests_integ/memory/_bedrock_kb_test_helpers.py | 164 | except Exception: # noqa: BLE001 - best-effort. | CODE |
| MEDIUM | …ands-py/tests_integ/memory/_bedrock_kb_test_helpers.py | 123 | def _cleanup() -> None: | CODE |
| LOW | …g/memory/test_bedrock_knowledge_base_memory_manager.py | 151 | except Exception: # noqa: BLE001 - best-effort; don't mask test failures. | CODE |
| LOW | strands-py/tests_integ/bidi/context.py | 318 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/bidi/context.py | 339 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/bidi/generators/audio.py | 101 | except Exception as e: | CODE |
| MEDIUM | strands-py/tests_integ/mcp/test_mcp_client.py | 50 | print(f"Error while generating custom image: {e}") | CODE |
| MEDIUM | strands-py/tests_integ/mcp/test_mcp_client.py | 44 | def generate_custom_image() -> MCPImageContent: | CODE |
| LOW | strands-py/tests_integ/mcp/test_mcp_client.py | 49 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/mcp/test_mcp_client.py | 557 | except Exception: | CODE |
| LOW | strands-py/tests_integ/models/test_model_llamacpp.py | 537 | except Exception as e: | CODE |
| LOW | strands-py/tests_integ/models/test_mantle_routing.py | 60 | except Exception as e: # noqa: BLE001 - any credential/import failure means "can't run here" | CODE |
| LOW | strands-py/tests_integ/models/test_mantle_routing.py | 89 | except Exception: # noqa: BLE001 - transport failure is undetermined, not "not served" | CODE |
| LOW | strands-py/tests_integ/sandbox/conftest.py | 108 | except Exception: # noqa: BLE001 - best-effort cleanup | CODE |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 603 | def transformer(context, next_fn): | CODE |
| LOW | strands-py/tests/strands/middleware/test_registry.py | 706 | except Exception: # noqa: BLE001 — deliberately broad; must NOT catch CancelledError | CODE |
| LOW | …sts/strands/middleware/test_execute_tool_middleware.py | 253 | except Exception: | CODE |
| LOW | strands-py/tests/strands/tools/test_decorator_pep563.py | 139 | except Exception as e: | CODE |
| LOW⚡ | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 956 | except Exception: | CODE |
| LOW | strands-py/tests/strands/types/test_exceptions.py | 331 | except Exception as e: | CODE |
| LOW | strands-py/tests/strands/multiagent/test_swarm.py | 855 | except Exception: | CODE |
| LOW | strands-py/tests/strands/multiagent/test_swarm.py | 898 | except Exception: | CODE |
| LOW | …ts/strands/background_tasks/in_process/test_manager.py | 55 | except Exception as error: | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 2640 | def invoke(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3400 | def invoke(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3438 | def invoke_abc(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3447 | def invoke_def(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3487 | def invoke_with_token(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3496 | def invoke_without_token(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3536 | def invoke(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3593 | def invoke(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3637 | def invoke_abc(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3646 | def invoke_def(): | CODE |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 3700 | def invoke(): | CODE |
| LOW | strands-py/tests/strands/agent/test_agent.py | 3368 | except Exception as e: | CODE |
| LOW | strands-py/tests/strands/agent/test_agent.py | 3403 | except Exception as e: | CODE |
| LOW | strands-py/tests/strands/agent/test_agent.py | 3443 | except Exception as e: | CODE |
| LOW | strands-py/tests/strands/agent/test_agent.py | 3452 | except Exception as e: | CODE |
| LOW | strands-py/tests/strands/agent/test_agent.py | 3492 | except Exception as e: | CODE |
| 225 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | harness-py/src/strands_harness/config.py | 39 | __all__ = [ | CODE |
| LOW | harness-py/src/strands_harness/config.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | harness-py/src/strands_harness/models.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | harness-py/src/strands_harness/__init__.py | 37 | __all__ = [ | CODE |
| LOW | harness-py/src/strands_harness/telemetry.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | harness-py/src/strands_harness/agent.py | 62 | logger = logging.getLogger(__name__) | CODE |
| LOW | harness-py/src/strands_harness/tools/subagent.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | harness-py/src/strands_harness/tools/__init__.py | 26 | __all__ = [ | CODE |
| LOW | …/src/strands_harness/tools/programmatic_tool_caller.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | harness-py/src/strands_harness/types/agent.py | 185 | __all__ = [ | STRING |
| LOW | harness-py/src/strands_harness/plugins/__init__.py | 10 | __all__ = ["EnvironmentContext", "TodoItem", "Todos"] | CODE |
| LOW | strands-py/tests_integ/conftest.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/tests_integ/test_max_tokens_reached.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/tests_integ/_ssm.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/tests_integ/memory/conftest.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/tests_integ/bidi/conftest.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/tests_integ/bidi/context.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/tests_integ/bidi/test_bidirectional_agent.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/tests_integ/bidi/generators/audio.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/tests_integ/mcp/test_mcp_tool_provider.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | strands-py/tests_integ/sandbox/conftest.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ds-py/tests/strands/tools/mcp/test_mcp_client_tasks.py | 85 | def _setup_task_tool(self, mock_session, tool_name: str) -> None: | CODE |
| LOW | strands-py/tests/strands/bidi/models/test_model.py | 24 | def update_config(self, **model_config: Any) -> None: | CODE |
| LOW | …sts/strands/vended_plugins/skills/test_agent_skills.py | 84 | def _set_system_prompt(agent: MagicMock, value: str | list | None) -> None: | CODE |
| LOW | strands-py/src/strands/interrupt.py | 157 | def set_pending_tool_results(self, completed_tool_results: list["ToolResult"]) -> None: | CODE |
| LOW | strands-py/src/strands/__init__.py | 21 | __all__ = [ | CODE |
| LOW | strands-py/src/strands/experimental/__init__.py | 9 | __all__ = ["checkpoint", "config_to_agent", "context_manager", "tools", "steering"] | CODE |
| LOW | strands-py/src/strands/experimental/tools/__init__.py | 24 | __all__ = [ | CODE |
| LOW | …nds-py/src/strands/experimental/tools/stop/__init__.py | 16 | __all__ = [ | CODE |
| LOW | …s-py/src/strands/experimental/checkpoint/checkpoint.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | …nds-py/src/strands/experimental/checkpoint/__init__.py | 12 | __all__ = ["CHECKPOINT_SCHEMA_VERSION", "Checkpoint", "CheckpointPosition"] | CODE |
| LOW | …y/src/strands/experimental/context_manager/__init__.py | 18 | __all__ = [ | CODE |
| LOW | strands-py/src/strands/experimental/bidi/__init__.py | 16 | __all__ = ["agent", "hooks", "io", "models", "types"] | CODE |
| LOW | …nds-py/src/strands/experimental/bidi/types/__init__.py | 50 | __all__ = [ | CODE |
| LOW | strands-py/src/strands/experimental/bidi/io/__init__.py | 11 | __all__ = ["AudioIO", "AudioIOConfig", "AudioProcessorConfig", "ConsoleIO", "ConsoleIOConfig"] | CODE |
| LOW | …nds-py/src/strands/experimental/bidi/agent/__init__.py | 8 | __all__ = ["BidiAgent"] | CODE |
| LOW | …ds-py/src/strands/experimental/bidi/models/__init__.py | 27 | __all__ = [ | CODE |
| LOW | …nds-py/src/strands/experimental/bidi/hooks/__init__.py | 14 | __all__ = [ | CODE |
| LOW | strands-py/src/strands/experimental/hooks/__init__.py | 14 | __all__ = [ | CODE |
| LOW | …py/src/strands/experimental/hooks/multiagent/events.py | 22 | __all__ = [ | CODE |
| LOW | …/src/strands/experimental/hooks/multiagent/__init__.py | 14 | __all__ = [ | CODE |
| LOW | strands-py/src/strands/tools/registry.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/src/strands/tools/registry.py | 635 | def _update_tool_config(self, tool_config: dict[str, Any], new_tool: NewToolDict) -> None: | CODE |
| LOW | strands-py/src/strands/tools/decorator.py | 73 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/src/strands/tools/tools.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/src/strands/tools/__init__.py | 11 | __all__ = [ | CODE |
| LOW | strands-py/src/strands/tools/loader.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/src/strands/tools/watcher.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ands/tools/structured_output/structured_output_tool.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …nds-py/src/strands/tools/structured_output/__init__.py | 6 | __all__ = ["convert_pydantic_to_tool_spec", "DEFAULT_STRUCTURED_OUTPUT_PROMPT"] | CODE |
| LOW | …/tools/structured_output/_structured_output_context.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …/tools/structured_output/_structured_output_context.py | 77 | def set_forced_mode(self, tool_choice: dict | None = None) -> None: | CODE |
| LOW | strands-py/src/strands/tools/mcp/mcp_instrumentation.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/src/strands/tools/mcp/__init__.py | 28 | __all__ = [ | CODE |
| LOW | strands-py/src/strands/tools/mcp/mcp_tasks.py | 238 | __all__ = [ | CODE |
| LOW | strands-py/src/strands/tools/mcp/mcp_agent_tool.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | strands-py/src/strands/tools/mcp/mcp_client.py | 2497 | async def set_tokens(self, tokens: OAuthToken) -> None: | CODE |
| LOW⚡ | strands-py/src/strands/tools/mcp/mcp_client.py | 2503 | async def set_client_info(self, client_info: OAuthClientInformationFull) -> None: | CODE |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 114 | logger = logging.getLogger(__name__) | CODE |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 678 | async def _set_close_event() -> None: | CODE |
| 191 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 39 | Strands Agents is an open-source SDK for building and running AI agents in Python and TypeScript. Choose Strands when yo | CODE |
| MEDIUM | harness-py/README.md | 71 | context_manager="auto", # "auto" | "agentic" | a ContextManager config/instance | False | CODE |
| MEDIUM | …/src/strands_harness/tools/programmatic_tool_caller.py | 58 | # Cap on the text returned to the model; a runaway ``print`` should not blow up the context window. | COMMENT |
| MEDIUM | .agents/references/voice-guide.md | 27 | - [Multi-agent patterns](#multi-agent-patterns) | CODE |
| MEDIUM | .agents/skills/strands/references/scaffold-agent.md | 106 | ## Finish the scaffold | COMMENT |
| MEDIUM | test-infra/scripts/run-selective-ts.sh | 91 | '^test-infra/scripts/run-selective-ts\.sh$' # this orchestration script | CODE |
| MEDIUM | strands-py/AGENTS.md | 30 | │ ├── multiagent/ # Multi-agent orchestration (A2A, graphs, swarm) | CODE |
| MEDIUM⚡ | strands-py/tests_integ/models/test_model_openai.py | 246 | # Use gpt-4o-mini which has a smaller context window to make this test more reliable | COMMENT |
| MEDIUM⚡ | strands-py/tests_integ/models/test_model_openai.py | 256 | # Create a very long text that should exceed context window | COMMENT |
| MEDIUM | strands-py/tests_integ/models/test_model_llamacpp.py | 230 | "penalty_last_n": 64, # Penalty context window | CODE |
| MEDIUM | …py/tests/strands/test_tracking_id_history_invariant.py | 130 | # The agentic ``summarize_context`` tool generates a summary and splices it straight into | COMMENT |
| MEDIUM⚡ | strands-py/tests/strands/multiagent/test_graph.py | 1987 | # Create a multi-agent that streams events but never yields a result | COMMENT |
| MEDIUM | strands-py/tests/strands/vended_tools/test_web_fetch.py | 264 | # No factory model and no host agent — agentic mode has nowhere to go. | COMMENT |
| MEDIUM⚡ | …sts/strands/session/test_repository_session_manager.py | 212 | # Create multi-agent first | COMMENT |
| MEDIUM⚡ | …sts/strands/session/test_repository_session_manager.py | 215 | # Sync multi-agent | COMMENT |
| MEDIUM⚡ | …sts/strands/session/test_repository_session_manager.py | 228 | # Verify multi-agent was created | COMMENT |
| MEDIUM⚡ | …sts/strands/session/test_repository_session_manager.py | 246 | # Initialize multi-agent | COMMENT |
| MEDIUM⚡ | …sts/strands/session/test_repository_session_manager.py | 1191 | # Create mock multi-agent | COMMENT |
| MEDIUM⚡ | …sts/strands/session/test_repository_session_manager.py | 1196 | # Initialize multi-agent | COMMENT |
| MEDIUM⚡ | …sts/strands/session/test_repository_session_manager.py | 1223 | # Create mock multi-agent | COMMENT |
| MEDIUM⚡ | …sts/strands/session/test_repository_session_manager.py | 1228 | # Initialize multi-agent | COMMENT |
| MEDIUM⚡ | …-py/tests/strands/session/test_file_session_manager.py | 470 | # Create session and multi-agent | COMMENT |
| MEDIUM⚡ | …-py/tests/strands/session/test_file_session_manager.py | 474 | # Read multi-agent | COMMENT |
| MEDIUM⚡ | …-py/tests/strands/session/test_file_session_manager.py | 489 | # Create session and multi-agent | COMMENT |
| MEDIUM⚡ | …ds-py/tests/strands/session/test_s3_session_manager.py | 477 | # Create session and multi-agent | COMMENT |
| MEDIUM⚡ | …ds-py/tests/strands/session/test_s3_session_manager.py | 481 | # Read multi-agent | COMMENT |
| MEDIUM⚡ | …ds-py/tests/strands/session/test_s3_session_manager.py | 497 | # Create session and multi-agent | COMMENT |
| MEDIUM | strands-py/src/strands/multiagent/graph.py | 1022 | # For nested multi-agent systems, stream their events and collect result | COMMENT |
| MEDIUM | strands-py/src/strands/multiagent/graph.py | 1025 | # Forward nested multi-agent events with node context | COMMENT |
| MEDIUM | strands-py/src/strands/agent/agent.py | 446 | # Inject the model-driven context-management tools when running in agentic mode. | COMMENT |
| MEDIUM | strands-py/src/strands/agent/agent.py | 500 | # In agentic mode, surface live token usage to the model so it can decide when to compress. | COMMENT |
| MEDIUM | strands-py/src/strands/models/openai_responses.py | 359 | # - reasoning_text: full chain-of-thought (gpt-oss models) | COMMENT |
| MEDIUM | strands-py/src/strands/models/_defaults.py | 22 | # Default context window limit (in tokens) when the model does not report one. | COMMENT |
| MEDIUM | strands-py/src/strands/models/bedrock.py | 70 | # Models that hallucinate when receiving JSON content blocks in tool results | COMMENT |
| MEDIUM | strands-ts/AGENTS.md | 30 | │ ├── multiagent/ # Multi-agent orchestration (A2A, graphs, swarm) | CODE |
| MEDIUM | strands-ts/src/__fixtures__/mock-message-model.ts | 272 | // GuardContentBlock is handled by guardrails and doesn't generate model events | COMMENT |
| MEDIUM | strands-ts/src/models/bedrock.ts | 177 | * @see https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html | COMMENT |
| MEDIUM | strands-ts/src/models/bedrock.ts | 307 | * @see https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html | COMMENT |
| MEDIUM | strands-ts/src/models/bedrock.ts | 1210 | // Bedrock guardrails only support png/jpeg formats | COMMENT |
| MEDIUM | strands-ts/src/models/bedrock.ts | 1218 | // Bedrock guardrails only support bytes source (not S3 or URL) | COMMENT |
| MEDIUM | strands-ts/src/models/model.ts | 588 | // Handle content redaction from guardrails | COMMENT |
| MEDIUM | strands-ts/src/vended-tools/web-fetch/README.md | 91 | ### Input — agentic mode | COMMENT |
| MEDIUM | team/designs/0006-cedar-authorization.md | 55 | Most agents today are single-user, but even in the single-user case, you don't want the agent to have the full permissio | CODE |
| MEDIUM | team/designs/0006-cedar-authorization.md | 125 | See [Appendix E](#appendix-e-tool-set-swapping-vs-cedar) for a side-by-side comparison table. **The rule of thumb**: If | CODE |
| MEDIUM⚡ | team/designs/0006-cedar-authorization.md | 243 | Cedar is purpose-built for authorization — `principal`, `action`, `resource`, and `context` are language primitives, not | CODE |
| MEDIUM⚡ | team/designs/0006-cedar-authorization.md | 243 | Cedar is purpose-built for authorization — `principal`, `action`, `resource`, and `context` are language primitives, not | CODE |
| MEDIUM⚡ | team/designs/0006-cedar-authorization.md | 247 | Building this plugin also led to a broader investigation into Cedar as an [intervention handler](#future-cedar-as-an-int | CODE |
| MEDIUM | team/designs/0006-cedar-authorization.md | 928 | | 3 | [Can your governance keep pace with your AI ambitions? AI risk intelligence in the agentic era](https://aws.amazon | CODE |
| MEDIUM | team/designs/0006-cedar-authorization.md | 929 | | 4 | [Agentic AI in the Enterprise Part 2: Guidance by Persona](https://aws.amazon.com/blogs/machine-learning/operation | CODE |
| MEDIUM | team/designs/0007-intervention-primitive.md | 51 | Several independent tools already control agent behavior at runtime — [steering](https://strandsagents.com/docs/user-gui | CODE |
| MEDIUM | team/designs/0003-context-management.md | 60 | [Recursive Language Models](https://arxiv.org/abs/2512.24601) train models to recursively process long prompts by chunki | CODE |
| MEDIUM | team/designs/0010-multimodal-i2t-evaluation.md | 22 | # The judge never sees the image — it cannot detect visual hallucinations | COMMENT |
| MEDIUM | team/designs/0008-proactive-context-compression.md | 143 | **Context window limit on Model ([#1295](https://github.com/strands-agents/harness-sdk/issues/1295)).** The threshold ch | CODE |
| MEDIUM | team/designs/0011-context-strategy.md | 90 | ### `"agentic"` — The agent decides | COMMENT |
| MEDIUM | team/designs/0011-context-strategy.md | 491 | // ContextNavigation plugin config (agentic only) | COMMENT |
| MEDIUM | team/designs/0011-context-strategy.md | 496 | // ContextDelegation plugin config (agentic only) | COMMENT |
| MEDIUM | team/designs/0012-strandslator-design.md | 108 | - **[Adversarial and cross-language differential testing](https://gist.github.com/agent-of-mkmeral/5a4d0ce16a1242a711d77 | CODE |
| MEDIUM | team/designs/0012-strandslator-design.md | 108 | - **[Adversarial and cross-language differential testing](https://gist.github.com/agent-of-mkmeral/5a4d0ce16a1242a711d77 | CODE |
| MEDIUM | team/designs/0018-shared-agent-model-types.md | 63 | [`BidiModel`](https://github.com/strands-agents/harness-sdk/blob/3e3859e9c68fffc31c23e2f67b10037bc95493e2/strands-py/src | CODE |
| MEDIUM | team/designs/0011-memory-manager.md | 263 | ### 2. Single store (no multi-store orchestration) | COMMENT |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | strands-py/tests_integ/memory/conftest.py | 83 | except Exception: # noqa: BLE001 - best-effort cleanup. | CODE |
| HIGH | …ands-py/tests_integ/memory/_bedrock_kb_test_helpers.py | 130 | except Exception: # noqa: BLE001 - best-effort; don't mask test failures. | CODE |
| HIGH | …ands-py/tests_integ/memory/_bedrock_kb_test_helpers.py | 164 | except Exception: # noqa: BLE001 - best-effort. | CODE |
| HIGH | …ands-py/tests_integ/memory/_bedrock_kb_test_helpers.py | 154 | except Exception: # noqa: BLE001 - best-effort. | CODE |
| HIGH | …g/memory/test_bedrock_knowledge_base_memory_manager.py | 151 | except Exception: # noqa: BLE001 - best-effort; don't mask test failures. | CODE |
| HIGH | strands-py/tests_integ/mcp/test_mcp_client.py | 557 | except Exception: | CODE |
| HIGH | strands-py/tests_integ/models/providers.py | 60 | except requests.exceptions.ConnectionError: | CODE |
| HIGH | strands-py/tests_integ/sandbox/conftest.py | 108 | except Exception: # noqa: BLE001 - best-effort cleanup | CODE |
| HIGH | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 956 | except Exception: | CODE |
| HIGH | strands-py/tests/strands/multiagent/test_swarm.py | 855 | except Exception: | CODE |
| HIGH | strands-py/tests/strands/multiagent/test_swarm.py | 898 | except Exception: | CODE |
| HIGH | strands-py/tests/strands/models/conftest.py | 15 | except ImportError: | CODE |
| HIGH | …s/strands/vended_plugins/steering/core/test_handler.py | 289 | except Exception: | CODE |
| HIGH | …nds-py/tests/strands/vended_tools/test_http_request.py | 203 | except HttpRequestError: | CODE |
| HIGH | …rands-py/tests/strands/vended_tools/test_mcp_router.py | 84 | except Exception: | CODE |
| HIGH | …rands-py/tests/strands/vended_tools/test_mcp_router.py | 154 | except Exception: | CODE |
| HIGH | …rands-py/tests/strands/vended_tools/test_mcp_router.py | 409 | except Exception: | CODE |
| HIGH | …rands-py/tests/strands/vended_tools/test_mcp_router.py | 202 | except Exception: | CODE |
| HIGH | strands-py/src/strands/tools/mcp/mcp_client.py | 1706 | except Exception: | CODE |
| HIGH | strands-py/src/strands/memory/memory_manager.py | 576 | except Exception: # noqa: BLE001 - failures are logged in ``add``; swallow here. | CODE |
| HIGH | …-py/src/strands/background_tasks/in_process/_engine.py | 254 | except asyncio.CancelledError: | CODE |
| HIGH | …-py/src/strands/background_tasks/in_process/_engine.py | 306 | except Exception: | CODE |
| HIGH | …-py/src/strands/background_tasks/in_process/_engine.py | 142 | except RuntimeError: | CODE |
| HIGH | …py/src/strands/background_tasks/in_process/_manager.py | 342 | except RuntimeError: | CODE |
| HIGH | …py/src/strands/background_tasks/in_process/_manager.py | 213 | except asyncio.TimeoutError: | CODE |
| HIGH | strands-py/src/strands/bidi/_async/_task_pool.py | 46 | except asyncio.CancelledError: | CODE |
| HIGH | strands-py/src/strands/bidi/_audio/processor.py | 109 | except queue.Empty: | CODE |
| HIGH | strands-py/src/strands/bidi/_audio/buffer.py | 38 | except queue.Full: | CODE |
| HIGH | strands-py/src/strands/models/bedrock.py | 118 | except asyncio.QueueEmpty: | CODE |
| HIGH | strands-py/src/strands/storage/local_file_storage.py | 209 | except (FileNotFoundError, NotADirectoryError): | CODE |
| HIGH | strands-py/src/strands/storage/local_file_storage.py | 203 | except (FileNotFoundError, NotADirectoryError): | CODE |
| HIGH | strands-py/src/strands/storage/local_file_storage.py | 145 | except OSError: | CODE |
| HIGH | …rands-py/src/strands/vended_tools/subagent/subagent.py | 245 | except (TypeError, ValueError): | CODE |
| HIGH | strands-py/src/strands/session/file_session_manager.py | 155 | except OSError: | CODE |
| HIGH | strands-mcp/tests/test_indexer_concurrency.py | 570 | except RuntimeError: | CODE |
| HIGH | strands-mcp/tests/test_indexer_concurrency.py | 66 | except threading.BrokenBarrierError: | CODE |
| HIGH | strands-mcp/tests/test_indexer_concurrency.py | 97 | except threading.BrokenBarrierError: | CODE |
| HIGH | strands-mcp/tests/test_indexer_concurrency.py | 105 | except threading.BrokenBarrierError: | CODE |
| HIGH | strands-mcp/tests/test_indexer_concurrency.py | 145 | except threading.BrokenBarrierError: | CODE |
| HIGH | strands-mcp/tests/test_indexer_concurrency.py | 173 | except threading.BrokenBarrierError: | CODE |
| HIGH | strands-mcp/src/strands_mcp_server/utils/indexer.py | 164 | except ValueError: | CODE |
| HIGH | strands-cli/src/tui/project/worker.py | 88 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | harness-py/tests_integ/conftest.py | 81 | CODE | |
| LOW | harness-py/tests_integ/conftest.py | 99 | CODE | |
| LOW | harness-py/tests_integ/conftest.py | 86 | CODE | |
| LOW | harness-py/tests_integ/conftest.py | 104 | CODE | |
| LOW | harness-py/src/strands_harness/options.py | 80 | CODE | |
| LOW | harness-py/src/strands_harness/config.py | 103 | CODE | |
| LOW | harness-py/src/strands_harness/agent.py | 175 | CODE | |
| LOW | harness-py/src/strands_harness/agent.py | 238 | CODE | |
| LOW | harness-py/src/strands_harness/tools/subagent.py | 252 | CODE | |
| LOW | harness-py/src/strands_harness/tools/subagent.py | 497 | CODE | |
| LOW | …/src/strands_harness/tools/programmatic_tool_caller.py | 75 | CODE | |
| LOW | strands-py/tests_integ/conftest.py | 28 | CODE | |
| LOW | strands-py/tests_integ/conftest.py | 197 | CODE | |
| LOW | …ds-py/tests_integ/test_structured_output_agent_loop.py | 132 | CODE | |
| LOW | strands-py/tests_integ/bidi/context.py | 202 | CODE | |
| LOW | strands-py/tests_integ/bidi/context.py | 232 | CODE | |
| LOW | strands-py/tests_integ/bidi/context.py | 279 | CODE | |
| LOW | strands-py/tests_integ/bidi/test_bidirectional_agent.py | 39 | CODE | |
| LOW | strands-py/tests_integ/bidi/test_bidirectional_agent.py | 174 | CODE | |
| LOW | strands-py/tests_integ/mcp/test_mcp_client.py | 536 | CODE | |
| LOW | strands-py/tests_integ/mcp/echo_server.py | 37 | CODE | |
| LOW | strands-py/tests_integ/mcp/echo_server.py | 75 | CODE | |
| LOW | strands-py/tests_integ/sandbox/conftest.py | 58 | CODE | |
| LOW | strands-py/tests/strands/tools/test_decorator.py | 1355 | CODE | |
| LOW | strands-py/tests/strands/tools/test_decorator.py | 1359 | CODE | |
| LOW | strands-py/tests/strands/tools/mcp/test_mcp_client.py | 631 | CODE | |
| LOW | …rands-py/tests/strands/multiagent/a2a/test_executor.py | 2031 | CODE | |
| LOW | strands-py/tests/strands/memory/test_extraction.py | 165 | CODE | |
| LOW | strands-py/tests/strands/bidi/models/test_bedrock.py | 696 | CODE | |
| LOW | …ds-py/tests/strands/agent/test_conversation_manager.py | 315 | CODE | |
| LOW | strands-py/tests/strands/agent/test_snapshot.py | 188 | CODE | |
| LOW | strands-py/tests/strands/agent/test_agent_hooks.py | 657 | CODE | |
| LOW | strands-py/tests/strands/agent/test_agent_hooks.py | 670 | CODE | |
| LOW | …trands/vended_plugins/context_offloader/test_plugin.py | 46 | CODE | |
| LOW | strands-py/tests/strands/sandbox/test_posix_shell.py | 40 | CODE | |
| LOW | strands-py/src/strands/tools/registry.py | 44 | CODE | |
| LOW | strands-py/src/strands/tools/registry.py | 335 | CODE | |
| LOW | strands-py/src/strands/tools/registry.py | 360 | CODE | |
| LOW | strands-py/src/strands/tools/registry.py | 444 | CODE | |
| LOW | strands-py/src/strands/tools/registry.py | 72 | CODE | |
| LOW | strands-py/src/strands/tools/decorator.py | 119 | CODE | |
| LOW | strands-py/src/strands/tools/decorator.py | 235 | CODE | |
| LOW | strands-py/src/strands/tools/decorator.py | 316 | CODE | |
| LOW | strands-py/src/strands/tools/decorator.py | 687 | CODE | |
| LOW | strands-py/src/strands/tools/watcher.py | 80 | CODE | |
| LOW | …nds/tools/structured_output/structured_output_utils.py | 10 | CODE | |
| LOW | …nds/tools/structured_output/structured_output_utils.py | 82 | CODE | |
| LOW | …nds/tools/structured_output/structured_output_utils.py | 230 | CODE | |
| LOW | …nds/tools/structured_output/structured_output_utils.py | 364 | CODE | |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 905 | CODE | |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 1459 | CODE | |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 1639 | CODE | |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 1922 | CODE | |
| LOW | strands-py/src/strands/tools/executors/_executor.py | 64 | CODE | |
| LOW | strands-py/src/strands/tools/executors/_executor.py | 153 | CODE | |
| LOW | strands-py/src/strands/multiagent/swarm.py | 782 | CODE | |
| LOW | strands-py/src/strands/multiagent/graph.py | 629 | CODE | |
| LOW | strands-py/src/strands/multiagent/graph.py | 826 | CODE | |
| LOW | strands-py/src/strands/multiagent/graph.py | 983 | CODE | |
| LOW | strands-py/src/strands/multiagent/graph.py | 1161 | CODE | |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | .agents/skills/docs-audit/SKILL.md | 27 | ### Step 1: Fetch and classify | COMMENT |
| LOW⚡ | .agents/skills/docs-audit/SKILL.md | 33 | ### Step 2: Voice stack review | COMMENT |
| LOW⚡ | .agents/skills/docs-audit/SKILL.md | 43 | ### Step 3: Accuracy check | COMMENT |
| LOW | .agents/skills/docs-audit/SKILL.md | 57 | ### Step 4: AI-readability check | COMMENT |
| LOW | .agents/skills/docs-audit/SKILL.md | 65 | ### Step 5: Competitive comparison (optional) | COMMENT |
| LOW | .agents/skills/docs-writer/SKILL.md | 20 | ### Step 1: Load voice context | COMMENT |
| LOW | .agents/skills/docs-writer/SKILL.md | 28 | ### Step 2: Outline | COMMENT |
| LOW | .agents/skills/docs-writer/SKILL.md | 39 | ### Step 3: Draft | COMMENT |
| LOW | .agents/skills/docs-writer/SKILL.md | 71 | ### Step 4: Constrain | COMMENT |
| LOW | .agents/skills/docs-writer/SKILL.md | 94 | ### Step 5: Authenticate | COMMENT |
| LOW | .agents/skills/docs-writer/SKILL.md | 102 | ### Step 6: Metadata | COMMENT |
| LOW | .agents/skills/docs-writer/SKILL.md | 115 | ### Step 7: Run docs-reviewer | COMMENT |
| LOW⚡ | .agents/skills/docs-planner/SKILL.md | 18 | ### Step 1: Inventory current docs | COMMENT |
| LOW⚡ | .agents/skills/docs-planner/SKILL.md | 22 | ### Step 2: Identify gaps | COMMENT |
| LOW⚡ | .agents/skills/docs-planner/SKILL.md | 31 | ### Step 3: Prioritize | COMMENT |
| LOW⚡ | .agents/skills/docs-planner/SKILL.md | 40 | ### Step 4: Produce the backlog | COMMENT |
| LOW⚡ | strands-py/src/strands/tools/mcp/mcp_client.py | 2457 | # Step 4: Get the actual result for completed tasks (with error handling for race conditions) | COMMENT |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 2372 | # Step 1: Create the task | COMMENT |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 2415 | # Step 2: Poll until terminal status (with timeout protection) | COMMENT |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 2443 | # Step 3: Handle terminal status | COMMENT |
| LOW⚡ | strands-py/src/strands/types/_snapshot.py | 126 | # Step 1: start with preset | COMMENT |
| LOW⚡ | strands-py/src/strands/types/_snapshot.py | 132 | # Step 2: union with include | COMMENT |
| LOW⚡ | strands-py/src/strands/types/_snapshot.py | 136 | # Step 3: subtract exclude | COMMENT |
| LOW | strands-ts/test/integ/tools/notebook.test.ts | 21 | // Step 1: Create a notebook | COMMENT |
| LOW⚡ | strands-ts/test/integ/tools/notebook.test.ts | 32 | // Step 2: Add content to the notebook | COMMENT |
| LOW⚡ | strands-ts/test/integ/tools/notebook.test.ts | 39 | // Step 3: Read the notebook | COMMENT |
| LOW | site/docs/examples/python/agents_workflow.py | 46 | # Step 1: Researcher Agent with enhanced web capabilities | COMMENT |
| LOW | site/docs/examples/python/agents_workflow.py | 71 | # Step 2: Analyst Agent to verify facts | COMMENT |
| LOW | site/docs/examples/python/agents_workflow.py | 94 | # Step 3: Writer Agent to create report | COMMENT |
| LOW | …mples/typescript/deploy_to_bedrock_agentcore/README.md | 93 | ### Step 1: Create IAM Role | COMMENT |
| LOW | …mples/typescript/deploy_to_bedrock_agentcore/README.md | 110 | ### Step 2: Set Environment Variables | COMMENT |
| LOW | …mples/typescript/deploy_to_bedrock_agentcore/README.md | 129 | ### Step 3: Create ECR Repository | COMMENT |
| LOW | …mples/typescript/deploy_to_bedrock_agentcore/README.md | 137 | ### Step 4: Build and Push Docker Image | COMMENT |
| LOW | …mples/typescript/deploy_to_bedrock_agentcore/README.md | 158 | ### Step 5: Create AgentCore Runtime | COMMENT |
| LOW | …mples/typescript/deploy_to_bedrock_agentcore/README.md | 170 | ### Step 6: Verify Deployment | COMMENT |
| LOW | …mples/typescript/deploy_to_bedrock_agentcore/README.md | 184 | ### Step 7: Test Your Deployment | COMMENT |
| LOW | site/docs/examples/evals-sdk/evaluate_async.py | 28 | ### Step 1: Define task ### | COMMENT |
| LOW | site/docs/examples/evals-sdk/evaluate_async.py | 43 | ### Step 2: Create test cases ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 27 | ### Step 1: Define task ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 53 | ### Step 2: Create test cases ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 59 | ### Step 3: Create evaluator ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 68 | ### Step 4: Create dataset ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 72 | ### Step 5: Run evaluation ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_graph.py | 27 | ### Step 1: Define task ### | COMMENT |
| LOW | site/docs/examples/evals-sdk/evaluate_graph.py | 60 | ### Step 2: Create test cases ### | COMMENT |
| LOW | site/docs/examples/evals-sdk/evaluate_graph.py | 72 | ### Step 2: Create evaluator ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_graph.py | 88 | ### Step 4: Create dataset ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_graph.py | 92 | ### Step 5: Run evaluation ### | COMMENT |
| LOW⚡ | …mples/evals-sdk/experiment_generator/simple_dataset.py | 24 | ### Step 1: Define task ### | COMMENT |
| LOW⚡ | …mples/evals-sdk/experiment_generator/simple_dataset.py | 33 | # Step 2: Initialize the experiment generator for string types | COMMENT |
| LOW⚡ | …mples/evals-sdk/experiment_generator/simple_dataset.py | 36 | # Step 3: Generate experiment from scratch with specified topics | COMMENT |
| LOW | …mples/evals-sdk/experiment_generator/simple_dataset.py | 48 | # Step 4: Run evaluations on the generated test cases | COMMENT |
| LOW | …s/evals-sdk/experiment_generator/trajectory_dataset.py | 51 | ### Step 1: Define task ### | COMMENT |
| LOW⚡ | …s/evals-sdk/experiment_generator/trajectory_dataset.py | 68 | ### Step 2: Initialize the experiment generator ### | COMMENT |
| LOW⚡ | …s/evals-sdk/experiment_generator/trajectory_dataset.py | 71 | ### Step 3: Generate experiment with tool context ### | COMMENT |
| LOW | …s/evals-sdk/experiment_generator/trajectory_dataset.py | 94 | ### Step 4: Run evaluations on the generated test cases ### | STRING |
| LOW⚡ | …als-sdk/experiment_generator/topic_planning_dataset.py | 21 | ### Step 1: Define task ### | COMMENT |
| LOW⚡ | …als-sdk/experiment_generator/topic_planning_dataset.py | 28 | # Step 2: Initialize the experiment generator for string types | COMMENT |
| LOW⚡ | …als-sdk/experiment_generator/topic_planning_dataset.py | 31 | # Step 3: Generate experiment with topic planning for better coverage | COMMENT |
| LOW | …als-sdk/experiment_generator/topic_planning_dataset.py | 48 | # Step 4: Run evaluations on the generated test cases | COMMENT |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | harness-py/tests/tools/test_web_fetch.py | 208 | assert f"&& head -c {web_fetch_module._MAX_BYTES} /tmp/f > /tmp/f.part && mv -f /tmp/f.part /tmp/f" in command | CODE |
| HIGH | harness-py/src/strands_harness/config.py | 266 | """Unset marker for optional keys that must not be explicit null; dumps use ``exclude_unset``.""" | STRING |
| HIGH⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 25 | result = await ssh_sandbox.execute("echo hello && echo err >&2") | CODE |
| HIGH⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 50 | async for item in ssh_sandbox.execute_streaming("echo line1 && echo line2"): | CODE |
| HIGH⚡ | strands-py/tests_integ/sandbox/test_ssh.py | 63 | async for item in ssh_sandbox.execute_streaming("echo OUT && echo ERR >&2"): | CODE |
| HIGH⚡ | strands-py/tests_integ/sandbox/test_docker.py | 58 | result = await sandbox.execute("echo hello && echo err >&2") | CODE |
| HIGH | …sts/strands/middleware/test_execute_tool_middleware.py | 80 | TS runs the middleware chain for unknown tools too (context.tool === undefined), letting | STRING |
| HIGH⚡ | strands-py/tests/strands/sandbox/test_ssh.py | 88 | assert _args(mock_stream_process) == BASE + ["--", "user@server.com", "cd /remote/path && echo hi"] | CODE |
| HIGH⚡ | strands-py/tests/strands/sandbox/test_ssh.py | 103 | "cd /w && ls", | CODE |
| HIGH⚡ | strands-py/tests/strands/sandbox/test_ssh.py | 110 | assert _args(mock_stream_process) == BASE + ["-i", "/home/user/.ssh/key", "--", "h", "cd /w && ls"] | CODE |
| HIGH⚡ | strands-py/tests/strands/sandbox/test_ssh.py | 125 | "cd /w && ls", | CODE |
| HIGH⚡ | strands-py/tests/strands/sandbox/test_ssh.py | 139 | "cd /w && ls", | CODE |
| HIGH⚡ | strands-py/tests/strands/sandbox/test_ssh.py | 158 | assert _args(mock_stream_process) == BASE + ["--", "h", "cd /override && ls"] | CODE |
| HIGH⚡ | strands-py/tests/strands/sandbox/test_ssh.py | 164 | assert _args(mock_stream_process) == BASE + ["--", "h", "cd /w && export FOO=bar BAZ=qux && echo $FOO"] | CODE |
| HIGH⚡ | strands-py/tests/strands/sandbox/test_ssh.py | 172 | assert _args(mock_stream_process) == BASE + ["--", "h", "cd /w && export FOO='$(whoami)' && echo $FOO"] | CODE |
| HIGH | strands-py/src/strands/tools/decorator.py | 344 | # Handle Optional[Type] case (represented as anyOf[Type, null]) | COMMENT |
| HIGH | …nds/tools/structured_output/structured_output_utils.py | 104 | # Check if this is an Optional[...] case (one null, one type) | COMMENT |
| HIGH | site/scripts/api-generation-python.py | 13 | pip install pydoc-markdown && python scripts/api-generation-python.py # fallback | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | strands-py/src/strands/tools/mcp/mcp_client.py | 2457 | # Step 4: Get the actual result for completed tasks (with error handling for race conditions) | COMMENT |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 2372 | # Step 1: Create the task | COMMENT |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 2415 | # Step 2: Poll until terminal status (with timeout protection) | COMMENT |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 2443 | # Step 3: Handle terminal status | COMMENT |
| LOW⚡ | strands-py/src/strands/types/_snapshot.py | 126 | # Step 1: start with preset | COMMENT |
| LOW⚡ | strands-py/src/strands/types/_snapshot.py | 132 | # Step 2: union with include | COMMENT |
| LOW⚡ | strands-py/src/strands/types/_snapshot.py | 136 | # Step 3: subtract exclude | COMMENT |
| LOW | strands-ts/test/integ/tools/notebook.test.ts | 21 | // Step 1: Create a notebook | COMMENT |
| LOW⚡ | strands-ts/test/integ/tools/notebook.test.ts | 32 | // Step 2: Add content to the notebook | COMMENT |
| LOW⚡ | strands-ts/test/integ/tools/notebook.test.ts | 39 | // Step 3: Read the notebook | COMMENT |
| LOW | site/docs/examples/python/agents_workflow.py | 46 | # Step 1: Researcher Agent with enhanced web capabilities | COMMENT |
| LOW | site/docs/examples/python/agents_workflow.py | 71 | # Step 2: Analyst Agent to verify facts | COMMENT |
| LOW | site/docs/examples/python/agents_workflow.py | 94 | # Step 3: Writer Agent to create report | COMMENT |
| LOW | site/docs/examples/evals-sdk/evaluate_async.py | 28 | ### Step 1: Define task ### | COMMENT |
| LOW | site/docs/examples/evals-sdk/evaluate_async.py | 43 | ### Step 2: Create test cases ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 27 | ### Step 1: Define task ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 53 | ### Step 2: Create test cases ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 59 | ### Step 3: Create evaluator ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 68 | ### Step 4: Create dataset ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_swarm.py | 72 | ### Step 5: Run evaluation ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_graph.py | 27 | ### Step 1: Define task ### | COMMENT |
| LOW | site/docs/examples/evals-sdk/evaluate_graph.py | 60 | ### Step 2: Create test cases ### | COMMENT |
| LOW | site/docs/examples/evals-sdk/evaluate_graph.py | 72 | ### Step 2: Create evaluator ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_graph.py | 88 | ### Step 4: Create dataset ### | COMMENT |
| LOW⚡ | site/docs/examples/evals-sdk/evaluate_graph.py | 92 | ### Step 5: Run evaluation ### | COMMENT |
| LOW⚡ | …mples/evals-sdk/experiment_generator/simple_dataset.py | 24 | ### Step 1: Define task ### | COMMENT |
| LOW⚡ | …mples/evals-sdk/experiment_generator/simple_dataset.py | 33 | # Step 2: Initialize the experiment generator for string types | COMMENT |
| LOW⚡ | …mples/evals-sdk/experiment_generator/simple_dataset.py | 36 | # Step 3: Generate experiment from scratch with specified topics | COMMENT |
| LOW | …mples/evals-sdk/experiment_generator/simple_dataset.py | 48 | # Step 4: Run evaluations on the generated test cases | COMMENT |
| LOW | …s/evals-sdk/experiment_generator/trajectory_dataset.py | 51 | ### Step 1: Define task ### | COMMENT |
| LOW⚡ | …s/evals-sdk/experiment_generator/trajectory_dataset.py | 68 | ### Step 2: Initialize the experiment generator ### | COMMENT |
| LOW⚡ | …s/evals-sdk/experiment_generator/trajectory_dataset.py | 71 | ### Step 3: Generate experiment with tool context ### | COMMENT |
| LOW | …s/evals-sdk/experiment_generator/trajectory_dataset.py | 94 | ### Step 4: Run evaluations on the generated test cases ### | STRING |
| LOW⚡ | …als-sdk/experiment_generator/topic_planning_dataset.py | 21 | ### Step 1: Define task ### | COMMENT |
| LOW⚡ | …als-sdk/experiment_generator/topic_planning_dataset.py | 28 | # Step 2: Initialize the experiment generator for string types | COMMENT |
| LOW⚡ | …als-sdk/experiment_generator/topic_planning_dataset.py | 31 | # Step 3: Generate experiment with topic planning for better coverage | COMMENT |
| LOW | …als-sdk/experiment_generator/topic_planning_dataset.py | 48 | # Step 4: Run evaluations on the generated test cases | COMMENT |
| LOW⚡ | site/scripts/api-generation-typescript.ts | 211 | // Step 1: Clean output directory | COMMENT |
| LOW⚡ | site/scripts/api-generation-typescript.ts | 217 | // Step 2: Run typedoc | COMMENT |
| LOW⚡ | site/scripts/api-generation-typescript.ts | 228 | // Step 3: Get all generated files | COMMENT |
| LOW⚡ | site/scripts/api-generation-typescript.ts | 232 | // Step 4: Process each file (skip the index file - we have our own) | COMMENT |
| LOW⚡ | …te/src/content/docs/user-guide/sdk/agents/snapshots.ts | 102 | // Step 1: Gather information | COMMENT |
| LOW⚡ | …te/src/content/docs/user-guide/sdk/agents/snapshots.ts | 106 | // Step 2: Analyze (might fail or produce poor results) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | harness-py/tests/test_agent.py | 91 | CODE | |
| MEDIUM | harness-py/tests/test_subagent.py | 585 | CODE | |
| MEDIUM | strands-py/tests_integ/test_multiagent_graph.py | 495 | CODE | |
| MEDIUM | strands-py/tests_integ/test_multiagent_graph.py | 827 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 414 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 504 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 519 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 533 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 601 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 621 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 639 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 700 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 720 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 738 | CODE | |
| MEDIUM | strands-py/tests/strands/middleware/test_registry.py | 764 | CODE | |
| MEDIUM | …s-py/tests/strands/middleware/test_agent_middleware.py | 271 | CODE | |
| MEDIUM | …sts/strands/middleware/test_agent_stream_middleware.py | 1375 | CODE | |
| MEDIUM | …sts/strands/middleware/test_execute_tool_middleware.py | 234 | CODE | |
| MEDIUM | …sts/strands/middleware/test_execute_tool_middleware.py | 891 | CODE | |
| MEDIUM | …ds-py/tests/strands/tools/mcp/test_mcp_client_tasks.py | 192 | CODE | |
| MEDIUM | strands-py/tests/strands/tools/mcp/test__compat.py | 923 | CODE | |
| MEDIUM | strands-py/tests/strands/tools/executors/conftest.py | 69 | CODE | |
| MEDIUM | strands-py/tests/strands/memory/test_model_extractor.py | 189 | CODE | |
| MEDIUM | strands-py/tests/strands/memory/test_model_extractor.py | 169 | CODE | |
| MEDIUM | …ests/strands/background_tasks/test_background_tasks.py | 298 | CODE | |
| MEDIUM | strands-py/tests/strands/agent/test_agent_delegation.py | 122 | CODE | |
| MEDIUM | strands-py/tests/strands/agent/test_agent_delegation.py | 453 | CODE | |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 251 | CODE | |
| MEDIUM | strands-py/tests/strands/agent/test_agent.py | 2830 | CODE | |
| MEDIUM | …strands/agent/test_summarizing_conversation_manager.py | 35 | CODE | |
| MEDIUM | strands-py/tests/strands/agent/test_agent_as_tool.py | 264 | CODE | |
| MEDIUM | strands-py/tests/strands/agent/test_a2a_agent.py | 526 | CODE | |
| MEDIUM | …nds/agent/conversation_manager/test_agentic_context.py | 45 | CODE | |
| MEDIUM | …agent/conversation_manager/test_context_compression.py | 58 | CODE | |
| MEDIUM | strands-py/tests/strands/models/test_ollama.py | 768 | CODE | |
| MEDIUM | strands-py/tests/strands/models/routing/test_router.py | 709 | CODE | |
| MEDIUM | strands-py/tests/strands/models/routing/test_router.py | 1092 | CODE | |
| MEDIUM | …sts/strands/models/routing/test_classifier_strategy.py | 404 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | strands-py/tests_integ/bidi/test_bidirectional_agent.py | 138 | # Check if provider is available | COMMENT |
| LOW | strands-py/tests_integ/steering/test_model_steering.py | 170 | # Check if the required tool was used in this message | COMMENT |
| LOW | strands-py/tests/strands/event_loop/test_event_loop.py | 447 | # Set tool_handler to None for this test | COMMENT |
| LOW⚡ | strands-py/tests/strands/models/test_litellm.py | 625 | # Check if stream parameter is being set | COMMENT |
| LOW | strands-py/src/strands/tools/decorator.py | 257 | # Check if we're starting the Args section | COMMENT |
| LOW | strands-py/src/strands/tools/decorator.py | 262 | # Check if we're starting a new section (not Args) | COMMENT |
| LOW | strands-py/src/strands/tools/loader.py | 166 | # Check if the module attribute is a DecoratedFunctiontool | COMMENT |
| LOW | …nds/tools/structured_output/structured_output_utils.py | 75 | # Check if required props are empty, if so, raise an error because it means there is a circular reference | COMMENT |
| LOW | …nds/tools/structured_output/structured_output_utils.py | 104 | # Check if this is an Optional[...] case (one null, one type) | COMMENT |
| LOW | …nds/tools/structured_output/structured_output_utils.py | 389 | # Check if this is a BaseModel subclass | COMMENT |
| LOW | strands-py/src/strands/multiagent/swarm.py | 890 | # Check if handoff requested during execution | COMMENT |
| LOW | strands-py/src/strands/multiagent/graph.py | 856 | # Check if it's an exception - fail fast | COMMENT |
| LOW | strands-py/src/strands/multiagent/graph.py | 969 | # Check if at least one incoming edge condition is satisfied | COMMENT |
| LOW | strands-py/src/strands/multiagent/a2a/executor.py | 304 | # Check if agent returned with interrupts (input_required) | COMMENT |
| LOW | strands-py/src/strands/event_loop/event_loop.py | 649 | # Check if hooks want to retry the model call | COMMENT |
| LOW | strands-py/src/strands/event_loop/event_loop.py | 680 | # Check if hooks want to retry the model call | COMMENT |
| LOW | strands-py/src/strands/event_loop/_retry.py | 135 | # Check if we have an exception and reset state if no exception | COMMENT |
| LOW | strands-py/src/strands/event_loop/_retry.py | 146 | # Check if we've exceeded max attempts | COMMENT |
| LOW⚡ | strands-py/src/strands/agent/agent.py | 1861 | # Check if all item in input list are dictionaries | COMMENT |
| LOW⚡ | strands-py/src/strands/agent/agent.py | 1863 | # Check if all items are messages | COMMENT |
| LOW⚡ | strands-py/src/strands/agent/agent.py | 1868 | # Check if all items are content blocks | COMMENT |
| LOW⚡ | strands-py/src/strands/agent/agent.py | 1874 | # Check if all items are interrupt responses | COMMENT |
| LOW | strands-py/src/strands/agent/agent.py | 1839 | # Check if the latest message is toolUse | COMMENT |
| LOW | …rsation_manager/sliding_window_conversation_manager.py | 106 | # Check if per_turn is enabled | COMMENT |
| LOW | …/agent/conversation_manager/compression/pin_message.py | 44 | # Check if adjacent partner shares a toolUseId and is pinned | COMMENT |
| LOW | strands-py/src/strands/models/openai_responses.py | 446 | # Check if stopped due to max_output_tokens | COMMENT |
| LOW | strands-py/src/strands/models/gemini.py | 764 | # Check if the tool has function_declarations attribute and it's not empty | COMMENT |
| LOW⚡ | strands-py/src/strands/models/bedrock.py | 1685 | # Check if input is a dictionary | COMMENT |
| LOW⚡ | strands-py/src/strands/models/bedrock.py | 1687 | # Check if current dictionary has action: BLOCKED and detected: true | COMMENT |
| LOW | strands-py/src/strands/models/bedrock.py | 482 | # Check if tool_choice is forcing tool use ("any" or specific "tool") | COMMENT |
| LOW | strands-py/src/strands/hooks/_type_inference.py | 67 | # Check if it's a Union type (Union[A, B] or A | B) | COMMENT |
| LOW | strands-py/src/strands/telemetry/metrics.py | 546 | # Check if this trace contains tool info with toolUseId | COMMENT |
| LOW | strands-py/src/strands/telemetry/tracer.py | 401 | # Check if the message contains a tool result | COMMENT |
| LOW | …s-py/src/strands/vended_tools/a2a_client/a2a_client.py | 107 | # Check if the endpoint is allowed via exact-match. | COMMENT |
| LOW | strands-py/src/strands/session/s3_session_manager.py | 170 | # Check if session already exists | COMMENT |
| LOW | …s-py/src/strands/session/repository_session_manager.py | 144 | # Check if we have a previous state to compare against | COMMENT |
| LOW | site/docs/examples/python/mcp_calculator.py | 142 | # Check if the user wants to exit | STRING |
| LOW | …escript/deploy_to_bedrock_agentcore/create-iam-role.sh | 123 | # Check if role already exists | COMMENT |
| LOW | site/scripts/api-generation-python.py | 237 | # Check if any part of the module path starts with underscore | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | strands-ts/src/models/google/model.ts | 38 | * apiKey: 'your-api-key', | COMMENT |
| HIGH | strands-ts/src/models/google/model.ts | 67 | * apiKey: 'your-api-key' | COMMENT |
| HIGH | strands-ts/src/models/google/model.ts | 72 | * apiKey: 'your-api-key', | COMMENT |
| HIGH | strands-ts/src/models/google/model.ts | 83 | * const client = new GoogleGenAI({ apiKey: 'your-api-key' }) | COMMENT |
| HIGH | strands-ts/src/models/google/model.ts | 211 | * const provider = new GoogleModel({ apiKey: 'your-api-key' }) | COMMENT |
| HIGH | strands-ts/src/models/google/index.ts | 9 | * apiKey: 'your-api-key', | COMMENT |
| HIGH | site/src/content/changelog/sdk/typescript-v0.2.1.md | 30 | apiKey: 'your-api-key', | CODE |
| HIGH | site/src/content/changelog/sdk/typescript-v0.2.1.md | 40 | const client = new GoogleGenAI({ apiKey: 'your-api-key' }) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/pre-push/run-checks.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .agents/skills/pre-push/run-checks.sh | 21 | # --all Fix + check every area regardless of what changed. | COMMENT |
| LOW | .agents/skills/pre-push/run-checks.sh | 61 | --all) FORCE_ALL=1; shift ;; | COMMENT |
| LOW | test-infra/scripts/run-selective-ts.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | test-infra/scripts/run-selective-ts.sh | 101 | if [[ -z "$TS_SOURCE" ]]; then | COMMENT |
| LOW | strands-py/tests/strands/memory/test_memory_manager.py | 1241 | flushed = asyncio.ensure_future(mm.flush()) | COMMENT |
| LOW | strands-py/tests/strands/models/test_sagemaker.py | 301 | COMMENT | |
| LOW | strands-py/tests/strands/models/test_sagemaker.py | 321 | # assert len(formatted_messages) == 2 | COMMENT |
| LOW | strands-py/tests/strands/models/test_sagemaker.py | 341 | # assert payload["tools"][0]["type"] == "function" | COMMENT |
| LOW | strands-py/src/strands/tools/decorator.py | 141 | # We are explicitly blocking the use of `pydantic.Field` within `Annotated` | COMMENT |
| LOW | strands-py/src/strands/tools/executors/_executor.py | 321 | ): | COMMENT |
| LOW | strands-py/src/strands/models/llamaapi.py | 461 | Yields: | COMMENT |
| LOW | strands-py/src/strands/sandbox/constants.py | 21 | #: Pattern for validating environment variable names: a leading letter or | COMMENT |
| LOW | strands-ts/src/vended-plugins/goal/plugin.ts | 301 | // attach to it without each having to lazy-create. | COMMENT |
| LOW | strands-ts/src/agent/agent.ts | 621 | ? config.retryStrategy | COMMENT |
| LOW | .github/dependabot.yml | 1 | # Dependabot configuration. | COMMENT |
| LOW | .github/workflows/typescript-test-package-pack.yml | 1 | # End-to-end package install smoke test. | COMMENT |
| LOW | .github/workflows/pr-metrics-analyze.yml | 1 | name: PR Metrics (Analyze) | COMMENT |
| LOW | .github/workflows/catalog-editorial-review.yml | 41 | EDITORIAL_LABEL: 'catalog: editorial-review' | COMMENT |
| LOW | .github/workflows/catalog-editorial-review.yml | 61 | // head and at the base (contents API, data-only) with js-yaml and | COMMENT |
| LOW | .github/workflows/catalog-editorial-review.yml | 281 | // --- Package provenance: cross-check registry metadata --------- | COMMENT |
| LOW | .github/workflows/pr-metrics-label.yml | 1 | name: PR Metrics (Label) | COMMENT |
| LOW | .github/workflows/release-harness-py.yml | 1 | name: "Harness Python: Release" | COMMENT |
| LOW | .github/workflows/release-harness-cli.yml | 1 | name: "Harness CLI: Release" | COMMENT |
| LOW | .github/workflows/python-test-package-build.yml | 1 | # End-to-end wheel install smoke test. | COMMENT |
| LOW | .github/workflows/release-typescript.yml | 401 | # Push the tag over git rather than letting `gh release create | COMMENT |
| LOW | .github/workflows/release-harness-ts.yml | 1 | name: "Harness TypeScript: Release" | COMMENT |
| LOW | site/docs/examples/deploy_to_eks/chart/values.yaml | 61 | # cpu: 100m | COMMENT |
| LOW | site/docs/examples/deploy_to_eks/chart/values.yaml | 81 | # labelSelector: | COMMENT |
| LOW | site/scripts/changelog/enrich.ts | 1 | // Enrich a parsed line from its linked PR: area-* labels, breaking flag, | COMMENT |
| LOW | site/scripts/changelog/parse-release-body.ts | 1 | // Parse the "New Contributors" section of a GitHub release body, and classify | COMMENT |
| LOW | site/src/content.config.ts | 141 | .strict(), | COMMENT |
| LOW | site/src/config/navigation.yml | 1 | # Navigation configuration for Strands Agents SDK documentation | COMMENT |
| LOW | site/src/config/tags.yml | 1 | # Allowed tag vocabulary for user-guide pages. Drives the headless | COMMENT |
| LOW | site/src/config/tags.yml | 21 | # | COMMENT |
| LOW | site/src/config/models.ts | 1 | // Default model shown in the homepage code samples. Bump it here (or set | COMMENT |
| LOW | …/docs/user-guide/sdk/interrupts-multi-agent_imports.ts | 1 | // @ts-nocheck | COMMENT |
| LOW | …tent/docs/user-guide/sdk/tools/vended-tools-imports.ts | 1 | // @ts-nocheck | COMMENT |
| LOW | …content/docs/user-guide/sdk/tools/executors_imports.ts | 1 | // @ts-nocheck | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | strands-py/tests/strands/models/test_openai.py | 1384 | openai_client.beta.chat.completions.parse.assert_called_once_with( | CODE |
| CRITICAL | strands-py/tests/strands/models/test_openai.py | 1905 | mock_injected_client.beta.chat.completions.parse.assert_called_once() | CODE |
| CRITICAL | strands-py/tests/strands/models/test_bedrock.py | 3500 | model.client.meta.service_model.shape_for.assert_called_once_with("GuardrailConverseImageFormat") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …ds-py/tests_integ/test_structured_output_agent_loop.py | 179 | assert result.structured_output.name == "John Doe" | CODE |
| LOW | …ds-py/tests_integ/test_structured_output_agent_loop.py | 290 | assert person_result.structured_output.name == "John Doe" | CODE |
| LOW⚡ | …ds-py/tests_integ/test_structured_output_agent_loop.py | 317 | assert result.structured_output.name == "John Doe" | CODE |
| LOW | …ls/structured_output/test_structured_output_context.py | 95 | test_result = SampleModel(name="John Doe", age=30, email="john@example.com") | CODE |
| LOW | strands-py/tests/strands/agent/test_agent.py | 2455 | {"image": {"format": "png", "source": {"bytes": b"fake_data"}}}, | CODE |
| LOW | strands-py/tests/strands/agent/test_agent.py | 209 | return User(name="Jane Doe", age=30, email="jane@doe.com") | STRING |
| LOW | strands-py/tests/strands/agent/test_agent_hooks.py | 103 | return User(name="Jane Doe", age=30) | CODE |
| LOW | strands-py/tests/strands/models/test_model.py | 325 | obj = {"x": "lorem ipsum " * 1000} | CODE |
| LOW | strands-py/src/strands/bidi/io/console/_io.py | 53 | "placeholder": "", | CODE |
| LOW | strands-py/src/strands/bidi/io/console/_io.py | 60 | self._display = Display(self._config["placeholder"]) | CODE |
| LOW | strands-ts/docs/TESTING.md | 228 | name: 'John Doe', | CODE |
| LOW | strands-ts/docs/TESTING.md | 249 | expect(user.name).toBe('John Doe') | CODE |
| LOW | strands-ts/src/a2a/__tests__/adapters.test.ts | 34 | const parts: Part[] = [{ kind: 'file', file: { bytes: encodeBase64('fake-data'), mimeType, name: 'test' } }] | CODE |
| LOW | strands-cli/test/tui-agent-project.test.ts | 284 | vi.stubEnv('MCP_TOKEN', 'placeholder') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | harness-py/src/strands_harness/agent.py | 238 | CODE | |
| LOW | harness-py/src/strands_harness/tools/subagent.py | 576 | CODE | |
| LOW | …s-py/tests_integ/interrupts/multiagent/test_session.py | 19 | CODE | |
| LOW | …ands-py/tests_integ/interrupts/multiagent/test_node.py | 18 | CODE | |
| LOW | …ands-py/tests_integ/interrupts/multiagent/test_node.py | 37 | CODE | |
| LOW | strands-py/tests/strands/multiagent/test_swarm.py | 1411 | CODE | |
| LOW | strands-py/tests/strands/memory/test_memory_manager.py | 70 | CODE | |
| LOW | strands-py/src/strands/tools/mcp/mcp_client.py | 304 | CODE | |
| LOW | strands-py/src/strands/multiagent/swarm.py | 269 | CODE | |
| LOW | strands-py/src/strands/multiagent/graph.py | 508 | CODE | |
| LOW | strands-py/src/strands/multiagent/a2a/server.py | 32 | CODE | |
| LOW | strands-py/src/strands/bidi/agent/agent.py | 95 | CODE | |
| LOW | strands-py/src/strands/agent/agent.py | 198 | CODE | |
| LOW | …rands-py/src/strands/vended_tools/subagent/subagent.py | 366 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | AGENTS.md | 85 | - **Self-review the diff** end to end as if you were the reviewer, and confirm you can truthfully check every box in the | CODE |
| HIGH | .github/PULL_REQUEST_TEMPLATE.md | 47 | - [ ] I have reviewed and understand every line of code in this PR, including any generated by AI tools, and I can expla | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | site/test/html-to-markdown.test.ts | 103 | print("Hello")</code></pre> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/pre-push/run-checks.sh | 14 | # Usage: | COMMENT |
| LOW | site/docs/examples/python/weather_forecaster.py | 95 | # Example usage | STRING |
| LOW⚡ | site/docs/examples/python/file_operations.py | 90 | # Example usage | STRING |
| LOW | …mples/python/multi_agent_example/teachers_assistant.py | 56 | # Example usage | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | strands-py/src/strands/models/openai.py | 387 | # TODO: Handle caching blocks https://github.com/strands-agents/harness-sdk/issues/1140 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | site/docs/examples/python/weather_forecaster.py | 120 | # This is just for demonstration purposes | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ntent/docs/user-guide/sdk/agents/lifecycle-controls.ts | 86 | async function handleRequest(prompt: string, deadlineMs = 20_000) { | CODE |