This report presents the forensic synthetic code analysis of NVIDIA-NeMo/Switchyard, a Rust project with 1,069 GitHub stars. SynthScan v2.0 examined 59,476 lines of code across 257 source files, recording 323 pattern matches distributed across 9 syntactic categories. The overall adjusted score of 6.6 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 323 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mkdocs_hooks.py | 66 | def _rewrite_link_destinations( | CODE |
| LOW | mkdocs_hooks.py | 94 | def _rewrite_outside_code_spans( | CODE |
| LOW | benchmark/run_manifest.py | 140 | def snapshot_dataset_manifest(source: Path | None, run_dir: Path) -> Path | None: | CODE |
| LOW | benchmark/prepare_harbor_dataset.py | 129 | def _exported_dataset_candidates(download_root: Path, source_dataset: str) -> list[Path]: | CODE |
| LOW | benchmark/prepare_harbor_dataset.py | 144 | def _proxy_allowlist_hosts_for_dataset(source_dataset: str) -> tuple[str, ...]: | CODE |
| LOW | benchmark/prepare_harbor_dataset.py | 151 | def _find_exported_dataset_root(download_root: Path, source_dataset: str) -> Path: | CODE |
| LOW | benchmark/prepare_harbor_dataset.py | 182 | def _remove_toml_key_from_table(text: str, table: str, key: str) -> str: | CODE |
| LOW | switchyard/cli/launchers/claude_code_launcher.py | 114 | def _run_claude_with_switchyard( | CODE |
| LOW | switchyard/cli/launchers/codex_cli_launcher.py | 142 | def _run_codex_with_switchyard( | CODE |
| LOW | switchyard/cli/launchers/openclaw_launcher.py | 73 | def _openclaw_model_display_name(model_id: str) -> str: | CODE |
| LOW | switchyard/cli/launchers/openclaw_launcher.py | 119 | def _write_openclaw_workspace( | CODE |
| LOW | switchyard/cli/launchers/openclaw_launcher.py | 137 | def _remove_openclaw_workspace(workspace: str | None) -> None: | CODE |
| LOW | switchyard/cli/launchers/openclaw_launcher.py | 181 | def _run_openclaw_with_switchyard( | CODE |
| LOW | switchyard/cli/launchers/launcher_runtime.py | 36 | def configure_debug_file_logging(*, display_model: str) -> Path: | CODE |
| LOW | switchyard/cli/launchers/launcher_runtime.py | 128 | def _format_strategy_indented( | CODE |
| LOW | switchyard/cli/launchers/codex_model_catalog.py | 31 | def _fallback_codex_model_template() -> dict[str, Any]: | CODE |
| LOW | switchyard/cli/launchers/codex_model_catalog.py | 76 | def _load_codex_model_template(codex_bin: str) -> dict[str, Any]: | CODE |
| LOW | switchyard/cli/launchers/codex_model_catalog.py | 106 | def _build_codex_model_catalog( | CODE |
| LOW | switchyard/cli/launchers/codex_model_catalog.py | 127 | def _write_codex_model_catalog( | CODE |
| LOW | switchyard/cli/launchers/codex_model_catalog.py | 148 | def _remove_codex_model_catalog(path: str | None) -> None: | CODE |
| LOW | switchyard/cli/launchers/codex_model_catalog.py | 158 | def _codex_model_display_name(model_id: str) -> str: | CODE |
| LOW | tests/test_run_baseline_script.py | 127 | def _write_fake_harbor_python(tmp_path: Path, *, patched: bool = True) -> Path: | CODE |
| LOW | tests/test_run_baseline_script.py | 237 | def _write_closed_book_dataset(path: Path) -> Path: | STRING |
| LOW | tests/test_run_baseline_script.py | 251 | def test_direct_mode_requires_model(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 258 | def test_direct_mode_defaults_to_openrouter_upstream_without_switchyard(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 285 | def test_direct_mode_uses_generic_upstream_key_when_set(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 304 | def test_direct_mode_requires_selected_api_key_env(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 317 | def test_direct_mode_rejects_server_only_options(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 341 | def test_legacy_routing_profiles_are_rejected(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 356 | def test_dry_run_claude_code_opus_defaults_high_reasoning(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 378 | def test_dry_run_codex_gpt_defaults_high_reasoning(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 404 | def test_dry_run_explicit_empty_reasoning_omits_kwarg(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 427 | def test_dry_run_explicit_reasoning_overrides_default(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 449 | def test_dry_run_explicit_claude_thinking_overrides_adaptive_default(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 475 | def test_harbor_path_is_required(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 492 | def test_closed_book_dataset_rejects_unpatched_harbor(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 518 | def test_dry_run_server_config_uses_rust_switchyard_server(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 542 | def test_foreground_server_run_collects_rust_stats_endpoint(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 568 | def test_dry_run_route_model_alias_uses_rust_switchyard_server(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 589 | def test_dry_run_server_config_honors_explicit_harbor_model(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 608 | def test_dry_run_harbor_extra(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 631 | def test_dry_run_harbor_path_uses_local_dataset_and_closed_book_artifact( | STRING |
| LOW | tests/test_run_baseline_script.py | 676 | def test_dry_run_open_book_uses_proxy_topology_without_tool_disables(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 708 | def test_dry_run_claude_closed_book_merges_disallowed_tools(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 736 | def test_dry_run_opencode_closed_book_disables_webfetch(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 761 | def test_task_list_file_expands_to_include_task_name(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_run_baseline_script.py | 782 | def test_dry_run_uses_harbor_bin_override(tmp_path: Path) -> None: | STRING |
| LOW | tests/test_dev_wheel_versioning.py | 27 | def test_parse_dev_wheel_version(raw_version: str, normalized: str) -> None: | CODE |
| LOW | tests/test_dev_wheel_versioning.py | 43 | def test_parse_dev_wheel_version_rejects_non_dev_versions(raw_version: str) -> None: | CODE |
| LOW | tests/test_dev_wheel_versioning.py | 48 | def test_metadata_file_updates(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 53 | def test_find_exported_dataset_root_uses_harbor_package_short_name(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 66 | def test_find_exported_dataset_root_keeps_legacy_dataset_name(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 76 | def test_find_exported_dataset_root_ignores_other_exported_datasets(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 142 | def test_swe_bench_pro_dataset_keeps_agent_proxy_allowlist_empty(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 163 | def test_legacy_dataset_keeps_proxy_allowlist_empty(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 176 | def test_prebuilt_docker_image_task_becomes_derived_dockerfile(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 195 | def test_dockerfile_only_task_gets_prebake_layer(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 213 | def test_generated_compose_contains_closed_book_proxy_topology(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 274 | def test_generated_dataset_manifest_records_pins_tasks_and_digests(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_prepare_harbor_dataset.py | 297 | def test_generated_compose_bakes_task_id_into_proxy_env(tmp_path: Path) -> None: | CODE |
| 105 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/libsy/src/algorithms/stage.rs | 328 | // ── routing integration tests ──────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/llm_class.rs | 440 | // ── Escalation classifier ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/llm_class.rs | 1736 | // ── with_escalation tests ────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/tool_signals.rs | 23 | // ─── severity constants ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/tool_signals.rs | 29 | // ─── pattern table ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/tool_signals.rs | 199 | // ─── output type ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/tool_signals.rs | 333 | // ─── extraction entry point ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/tool_signals.rs | 501 | // ─── pure helpers ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/tool_signals.rs | 600 | // ─── tests ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/tool_signals.rs | 963 | // ─── asymmetric-signal extensions ──────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/stage.rs | 669 | // ─── StageClassifier ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/libsy/src/algorithms/util/stage.rs | 820 | // ─── handoff notes ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/perf.yml | 57 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | .github/workflows/perf.yml | 62 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | .github/workflows/perf.yml | 129 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | .github/workflows/perf.yml | 131 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | .github/workflows/perf.yml | 168 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | .github/workflows/perf.yml | 173 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | .github/workflows/perf.yml | 184 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | .github/workflows/perf.yml | 186 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | .github/workflows/perf.yml | 219 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | .github/workflows/perf.yml | 221 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | .github/workflows/perf.yml | 228 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | .github/workflows/perf.yml | 230 | # ------------------------------------------------------------------ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .sir-merge-a-lot.yml | 1 | # .sir-merge-a-lot.yml — switchyard | COMMENT |
| LOW | .sir-merge-a-lot.yml | 21 | # bot was explicitly invited to groom (on_demand mode). Every LLM | COMMENT |
| LOW | benchmark/tb_lite_subset_20.txt | 1 | # Curated 20-task iteration subset for openthoughts-tblite@2.0. | COMMENT |
| LOW | benchmark/closed_book_proxy/proxy/allowlist-base.txt | 1 | # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | switchyard/cli/launchers/shell_tui.py | 121 | self._out_lock = threading.Lock() | COMMENT |
| LOW | switchyard/cli/launchers/shell_tui.py | 341 | fcntl.fcntl( | COMMENT |
| LOW | switchyard/cli/launchers/cost_estimator.py | 121 | ), | COMMENT |
| LOW | switchyard/cli/launchers/cost_estimator.py | 161 | input=1.50, output=9.00, cached=0.15, cache_write=1.50, | COMMENT |
| LOW | crates/libsy-llm-client/src/client.rs | 441 | metadata, | COMMENT |
| LOW | crates/libsy-llm-client/src/client.rs | 661 | // Drops fields accepted by OpenAI-like APIs but rejected by Anthropic Messages. | COMMENT |
| LOW | crates/libsy-llm-client/src/error.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy-llm-client/src/lib.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy-llm-client/src/raw.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy-llm-client/src/run.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy-llm-client/src/run.rs | 21 | COMMENT | |
| LOW | crates/protocol/src/llm.rs | 261 | pub response_format: Option<Value>, | COMMENT |
| LOW | crates/protocol/src/llm.rs | 281 | pub fields: Map<String, Value>, | COMMENT |
| LOW | crates/protocol/src/llm.rs | 321 | /// Provider fields without first-class normalized equivalents. | COMMENT |
| LOW | crates/protocol/src/llm.rs | 421 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] | COMMENT |
| LOW | crates/protocol/src/stream.rs | 301 | message: String, | COMMENT |
| LOW | crates/protocol/src/client.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/protocol/src/client.rs | 21 | /// Failures a routed LLM client can surface to its caller. | COMMENT |
| LOW | crates/protocol/src/client.rs | 161 | pub fn reasoning(&self) -> Option<&str> { | COMMENT |
| LOW | crates/protocol/src/client.rs | 181 | #[async_trait] | COMMENT |
| LOW | crates/protocol/src/metadata.rs | 161 | pub session_id: Option<String>, | COMMENT |
| LOW | crates/protocol/src/metadata.rs | 221 | /// | COMMENT |
| LOW | crates/protocol/src/model_id.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/protocol/src/envelope.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/switchyard-skill-distillation/src/lib.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/switchyard-skill-distillation/src/model.rs | 21 | #[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)] | COMMENT |
| LOW | crates/switchyard-skill-distillation/src/model.rs | 41 | /// Model used for the run, when known. | COMMENT |
| LOW | crates/switchyard-skill-distillation/src/model.rs | 61 | /// Optional source-local run or session ID kept when this record is created. | COMMENT |
| LOW | crates/switchyard-skill-distillation/src/model.rs | 101 | /// Additional event fields, including source-specific identifiers. | COMMENT |
| LOW | crates/switchyard-skill-distillation/src/model.rs | 121 | pub metrics: BTreeMap<String, f64>, | COMMENT |
| LOW | crates/switchyard-skill-distillation/src/model.rs | 261 | Ok(()) | COMMENT |
| LOW | crates/switchyard-skill-distillation/src/model.rs | 301 | /// Stable human-readable check name. | COMMENT |
| LOW | crates/libsy/src/observability.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy/src/observability.rs | 21 | //! tasks create there (see the `tracing` docs on spans in asynchronous code). | COMMENT |
| LOW | crates/libsy/src/core/processor.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy/src/core/classifier.rs | 81 | /// Stateless classifiers do not need to implement this hook. | COMMENT |
| LOW | crates/libsy/src/core/algorithm.rs | 41 | COMMENT | |
| LOW | crates/libsy/src/core/algorithm.rs | 81 | /// | COMMENT |
| LOW | crates/libsy/src/core/algorithm.rs | 221 | } | COMMENT |
| LOW | crates/libsy/src/core/algorithm.rs | 501 | decision = fallback_decision(&target, &next, reason); | COMMENT |
| LOW | crates/libsy/src/core/algorithm.rs | 521 | /// | COMMENT |
| LOW | crates/libsy/src/core/testing.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy/src/algorithms/stage.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy/src/algorithms/stage.rs | 81 | pub struct StageRouterConfig { | COMMENT |
| LOW | crates/libsy/src/algorithms/llm_class.rs | 101 | /// start therefore moves back to the nearest one that keeps every tool pair whole. | COMMENT |
| LOW | crates/libsy/src/algorithms/llm_class.rs | 221 | COMMENT | |
| LOW | crates/libsy/src/algorithms/fall_through.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy/src/algorithms/fall_through.rs | 41 | COMMENT | |
| LOW | crates/libsy/src/algorithms/util/affinity.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy/src/algorithms/util/affinity.rs | 41 | /// another request's selected model. | COMMENT |
| LOW | crates/libsy/src/algorithms/util/prompts.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy/src/algorithms/util/prompts.rs | 21 | //! request — so an addition that leaves exact replay in place never reaches the | COMMENT |
| LOW | crates/libsy/src/algorithms/util/prompts.rs | 61 | /// its normal path, which encodes from the request itself. | COMMENT |
| LOW | crates/libsy/src/algorithms/util/escalation.rs | 41 | COMMENT | |
| LOW | crates/libsy/src/algorithms/util/subagent.rs | 1 | // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | crates/libsy/src/algorithms/util/tool_signals.rs | 181 | // matched as-is. Patterns that pair with a count (e.g. "failed", "errors") | COMMENT |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmark/run_manifest.py | 11 | CODE | |
| LOW | benchmark/prepare_harbor_dataset.py | 6 | CODE | |
| LOW | benchmark/codex_model_catalog.py | 6 | CODE | |
| LOW | benchmark/closed_book_proxy/proxy/rewriter.py | 6 | CODE | |
| LOW | switchyard/cli/launchers/session_summary.py | 6 | CODE | |
| LOW | switchyard/cli/launchers/native_server.py | 6 | CODE | |
| LOW | switchyard/cli/launchers/stats_source.py | 6 | CODE | |
| LOW | switchyard/cli/launchers/codex_model_catalog.py | 12 | CODE | |
| LOW | switchyard/cli/launchers/shell_tui.py | 18 | CODE | |
| LOW | switchyard/cli/launchers/cost_estimator.py | 21 | CODE | |
| LOW | switchyard/cli/launchers/live_stats_footer.py | 10 | CODE | |
| LOW | switchyard/libsy/algorithms.py | 6 | CODE | |
| LOW | switchyard/libsy/algorithms.py | 7 | CODE | |
| LOW | switchyard/libsy/algorithms.py | 8 | CODE | |
| LOW | switchyard/libsy/algorithms.py | 9 | CODE | |
| LOW | switchyard/libsy/__init__.py | 6 | CODE | |
| LOW | switchyard/libsy/__init__.py | 6 | CODE | |
| LOW | switchyard/libsy/__init__.py | 6 | CODE | |
| LOW | switchyard/libsy/__init__.py | 6 | CODE | |
| LOW | switchyard/libsy/__init__.py | 6 | CODE | |
| LOW | switchyard/libsy/__init__.py | 6 | CODE | |
| LOW | switchyard/libsy/__init__.py | 15 | CODE | |
| LOW | tests/test_run_baseline_script.py | 4 | CODE | |
| LOW | tests/test_prepare_harbor_dataset.py | 4 | CODE | |
| LOW | tests/test_shell_tui.py | 28 | CODE | |
| LOW | tests/test_live_stats_footer.py | 10 | CODE | |
| LOW | tests/test_no_stale_module_paths.py | 6 | CODE | |
| LOW | tests/test_run_manifest.py | 4 | CODE | |
| LOW | tests/test_cost_estimator_gemini.py | 11 | CODE | |
| LOW | tests/e2e/test_closed_book_proxy_integration.py | 4 | CODE | |
| LOW | switchyard_rust/server.py | 6 | CODE | |
| LOW | switchyard_rust/_native.py | 6 | CODE | |
| LOW | switchyard_rust/libsy.py | 6 | CODE | |
| LOW | …/experimental/litellm/src/switchyard_litellm/client.py | 6 | CODE | |
| LOW | …xperimental/litellm/src/switchyard_litellm/__init__.py | 6 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | switchyard/__init__.py | 14 | __all__ = ["__version__"] | CODE |
| LOW | switchyard/cli/launch_command.py | 61 | __all__ = [ | CODE |
| LOW | switchyard/cli/command_utils.py | 16 | __all__ = ["strip_forwarded_args"] | CODE |
| LOW | switchyard/cli/launchers/claude_code_launcher.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | switchyard/cli/launchers/native_server.py | 56 | __all__ = ["HttpStatsSource", "NativeServer"] | CODE |
| LOW | switchyard/cli/launchers/codex_cli_launcher.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | switchyard/cli/launchers/openclaw_launcher.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | switchyard/cli/launchers/stats_source.py | 20 | __all__ = ["StatsSource"] | CODE |
| LOW | switchyard/cli/launchers/codex_model_catalog.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | switchyard/cli/launchers/shell_tui.py | 58 | def _set_winsize(fd: int, rows: int, cols: int) -> None: | CODE |
| LOW | switchyard/libsy/algorithms.py | 11 | __all__ = ["llm_task_classifier", "noop", "random", "stage_router"] | CODE |
| LOW | switchyard/libsy/__init__.py | 17 | __all__ = [ | CODE |
| LOW | switchyard_rust/server.py | 46 | __all__ = ["Server"] | CODE |
| LOW | switchyard_rust/libsy.py | 118 | __all__ = [*sorted(_EXPORTS), "LlmClient"] | CODE |
| LOW | …xperimental/litellm/src/switchyard_litellm/__init__.py | 8 | __all__ = ["LiteLLMSyClient"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | switchyard/cli/launchers/claude_code_launcher.py | 0 | start the native server; kept separate for supervision tests. | STRING |
| HIGH | switchyard/cli/launchers/codex_cli_launcher.py | 0 | start the native server; kept separate for supervision tests. | STRING |
| HIGH | switchyard/cli/launchers/openclaw_launcher.py | 0 | start the native server; kept separate for supervision tests. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | switchyard/cli/launchers/session_summary.py | 28 | except Exception: | CODE |
| LOW | switchyard/cli/launchers/native_server.py | 35 | except Exception: | CODE |
| LOW | switchyard/cli/launchers/proxy_health_monitor.py | 37 | except Exception: | CODE |
| LOW | switchyard/cli/launchers/launcher_runtime.py | 31 | except Exception: | CODE |
| LOW | switchyard/cli/launchers/launcher_runtime.py | 98 | except Exception: | CODE |
| MEDIUM | .hooks/add_spdx_headers.py | 67 | print(f"Error reading {filepath}: {e}", file=sys.stderr) | CODE |
| MEDIUM | .hooks/add_spdx_headers.py | 96 | print(f"Error writing {filepath}: {e}", file=sys.stderr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | switchyard/cli/launchers/cost_estimator.py | 74 | # context window. OpenAI wire format on NIH; no cache_write premium. | COMMENT |
| MEDIUM | crates/protocol/src/client.rs | 72 | #[error("context window exceeded for model {model}: {message}")] | COMMENT |
| MEDIUM | crates/libsy/src/error.rs | 54 | #[error("every target exceeded its context window")] | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | switchyard/cli/launchers/shell_tui.py | 316 | CODE | |
| LOW | …/experimental/litellm/src/switchyard_litellm/client.py | 112 | CODE |