This report presents the forensic synthetic code analysis of langchain-ai/chat-langchain, a TypeScript project with 6,404 GitHub stars. SynthScan v2.0 examined 23,117 lines of code across 121 source files, recording 217 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 18.9 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
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 217 distinct pattern matches across 13 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 |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_broken_doc_urls.py | 21 | # ------------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/unit/test_broken_doc_urls.py | 23 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_broken_doc_urls.py | 43 | # ------------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/unit/test_broken_doc_urls.py | 45 | # ------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_broken_doc_urls.py | 131 | # ------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_broken_doc_urls.py | 133 | # ------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 58 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 60 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 74 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 76 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 97 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 99 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 117 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 119 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 136 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 138 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 157 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 159 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 174 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 176 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/unit/test_pylon_pagination.py | 13 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_pylon_pagination.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_pylon_pagination.py | 44 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_pylon_pagination.py | 46 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 59 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 61 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 71 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 75 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 128 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 132 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 178 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 180 | # =========================================================================== | COMMENT |
| MEDIUM | tests/unit/test_check_links_async.py | 16 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_check_links_async.py | 19 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 40 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 96 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 146 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 186 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 188 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 212 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 214 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/evals/test_guardrails_scope.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/evals/test_guardrails_scope.py | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/tools/pylon_tools.py | 38 | # ============================================================================= | COMMENT |
| MEDIUM | src/tools/pylon_tools.py | 40 | # ============================================================================= | COMMENT |
| MEDIUM | src/tools/pylon_tools.py | 125 | # ============================================================================= | COMMENT |
| MEDIUM | src/tools/pylon_tools.py | 127 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 23 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 25 | # ============================================================================= | COMMENT |
| MEDIUM | src/agent/config.py | 77 | # ============================================================================= | COMMENT |
| MEDIUM | src/agent/config.py | 79 | # ============================================================================= | COMMENT |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/app/auth/callback/route.ts | 47 | function getSupabaseAuthStorageKey(region: AuthRegion): string { | CODE |
| LOW | frontend/lib/auth/supabase.ts | 114 | export async function signOutAllSupabaseClients(): Promise<void> { | CODE |
| LOW | frontend/lib/hooks/auth/use-user-id.ts | 38 | export function getOrCreateGuestUserId(): string | null { | CODE |
| LOW | frontend/lib/hooks/threads/guest-thread-storage.ts | 34 | export function removeStoredGuestThreadId(threadId: string): string[] { | CODE |
| LOW | tests/unit/test_broken_doc_urls.py | 60 | def test_url_has_slash_separator(self, path): | CODE |
| LOW | tests/unit/test_broken_doc_urls.py | 71 | def test_url_does_not_merge_domain_and_path(self): | CODE |
| LOW | tests/unit/test_broken_doc_urls.py | 81 | def test_url_starts_with_base_url_slash(self): | CODE |
| LOW | tests/unit/test_broken_doc_urls.py | 116 | def test_leading_slash_path_normalised(self): | CODE |
| LOW⚡ | tests/unit/test_broken_doc_urls.py | 139 | def test_empty_path_returns_na(self): | CODE |
| LOW | tests/unit/test_broken_doc_urls.py | 155 | def test_multiple_results_all_valid_urls(self): | CODE |
| LOW | tests/unit/test_broken_doc_urls.py | 180 | def test_no_results_returns_no_results_message(self): | CODE |
| LOW | tests/unit/test_broken_doc_urls.py | 186 | def test_real_world_langgraph_streaming_url(self): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 104 | def test_three_pages_collected(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 124 | def test_meta_next_pagination(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 143 | def test_safety_limit_stops_at_max_pages(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 164 | def test_cache_prevents_duplicate_requests(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 181 | def test_empty_data_returns_empty_list(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW | tests/unit/test_ingress_guards_middleware.py | 19 | def test_before_agent_truncates_oversized_human_message(): | CODE |
| LOW | tests/unit/test_ingress_guards_middleware.py | 32 | def test_before_agent_noop_when_under_cap(): | CODE |
| LOW | tests/unit/test_ingress_guards_middleware.py | 39 | def test_build_docs_agent_trace_metadata_includes_provenance_and_version(monkeypatch): | CODE |
| LOW | tests/unit/test_ingress_guards_middleware.py | 58 | def test_build_docs_agent_trace_metadata_falls_back_to_host_revision(monkeypatch): | CODE |
| LOW | tests/unit/test_summarization_middleware_wiring.py | 8 | def test_summarization_middleware_uses_retrying_fallback_model(): | CODE |
| LOW | tests/unit/test_guardrails_fallback.py | 44 | def test_guardrails_falls_back_after_primary_retries(monkeypatch): | CODE |
| LOW | tests/unit/test_guardrails_fallback.py | 63 | def test_guardrails_raises_after_all_models_exhaust_retries(monkeypatch): | CODE |
| LOW | tests/unit/test_guardrails_fallback.py | 82 | def test_guardrails_all_failed_classification_allows_main_agent(monkeypatch): | CODE |
| LOW | tests/unit/test_guardrails_fallback.py | 86 | async def _raise_classification_error(messages): # noqa: ARG001 | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 78 | async def test_check_links_works_in_async_context(): | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 134 | def test_check_links_works_in_sync_context(): | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 182 | def test_check_links_empty_list(): | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 190 | async def test_check_links_async_empty_list(): | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 196 | def test_check_links_invalid_url_format(): | CODE |
| LOW | tests/unit/test_check_links_async.py | 105 | async def test_check_links_async_context_does_not_raise_runtime_error(): | CODE |
| LOW | tests/unit/test_check_links_async.py | 156 | def test_check_links_sync_deduplicates_urls(): | CODE |
| LOW | tests/unit/test_check_links_async.py | 217 | async def test_check_links_async_invalid_url_format(): | CODE |
| LOW | tests/unit/test_check_links_async.py | 248 | async def test_support_article_normal_content_is_valid(): | CODE |
| LOW | tests/unit/test_prompt_provenance.py | 13 | def test_get_prompt_provenance_local_mode(monkeypatch): | CODE |
| LOW | tests/unit/test_prompt_provenance.py | 24 | def test_resolve_hub_provenance_uses_prompt_workspace_and_api_key(monkeypatch): | CODE |
| LOW | tests/unit/test_prompt_provenance.py | 61 | def test_resolve_hub_provenance_without_overrides_uses_default_client(monkeypatch): | CODE |
| LOW | tests/evals/test_repeated_searches.py | 7 | def test_prompt_instructs_agent_to_avoid_repeat_searches(): | CODE |
| LOW | tests/evals/test_repeated_searches.py | 36 | def test_prompt_has_check_history_before_search_guidance(): | CODE |
| LOW | tests/evals/test_retry_middleware_wiring.py | 9 | def test_retry_middleware_is_in_agent_middleware_list(): | CODE |
| LOW | tests/evals/test_retry_middleware_wiring.py | 26 | def test_retry_middleware_config_is_exported(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 43 | def test_guardrails_prompt_mentions_data_science_restriction(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 69 | def test_guardrails_prompt_has_data_science_block_criterion(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 101 | def test_guardrails_prompt_clarifies_ds_libs_need_langchain_context(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 133 | def test_guardrails_prompt_still_allows_langchain_core_topics(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 149 | def test_guardrails_prompt_default_is_still_allow(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 171 | def test_guardrails_prompt_has_nsfw_block_rule(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 191 | def test_guardrails_nsfw_rule_is_zero_tolerance(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 219 | def test_agent_prompt_has_nsfw_refusal(): | CODE |
| LOW | src/middleware/guardrails_middleware.py | 168 | async def _generate_rejection_message(self, content) -> AIMessage: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 326 | def _build_guardrails_content(self, content, context_section: str) -> str | list: | CODE |
| LOW | src/tools/docs_tools.py | 185 | def _track_docs_for_langsmith(urls: list[str]) -> None: | CODE |
| LOW | src/tools/pylon_tools.py | 290 | def get_support_article_content(article_id: str) -> str: | CODE |
| LOW | src/utils/trace_root_metadata.py | 18 | def build_docs_agent_trace_metadata( | CODE |
| LOW⚡ | src/agent/config.py | 105 | def _raise_for_retryable_finish_reason(response: object) -> object: | CODE |
| LOW⚡ | src/agent/config.py | 119 | def init_retry_fallback_model(model: str) -> Runnable: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/middleware/guardrails_middleware.py | 91 | except Exception: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 149 | except Exception: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 165 | except Exception as e: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 183 | except Exception as e: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 438 | except Exception as e: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 478 | except Exception: | CODE |
| LOW | src/middleware/retry_middleware.py | 71 | except Exception as e: | CODE |
| LOW | src/middleware/summarization_middleware.py | 36 | except Exception as e: | CODE |
| LOW | src/middleware/summarization_middleware.py | 56 | except Exception as e: | CODE |
| LOW | src/middleware/tool_retry_middleware.py | 132 | except Exception as error: | CODE |
| LOW | src/tools/link_check_tools.py | 46 | except Exception: | CODE |
| LOW | src/tools/link_check_tools.py | 55 | except Exception: | CODE |
| LOW | src/tools/link_check_tools.py | 140 | except Exception as e: | CODE |
| LOW | src/tools/pricing_tools.py | 100 | except Exception as e: | CODE |
| LOW | src/tools/docs_tools.py | 57 | except Exception: | CODE |
| LOW | src/tools/docs_tools.py | 148 | except Exception: | CODE |
| LOW | src/tools/docs_tools.py | 172 | except Exception: | CODE |
| LOW | src/tools/docs_tools.py | 205 | except Exception: | CODE |
| LOW | src/tools/docs_tools.py | 302 | except Exception as e: | CODE |
| LOW | src/tools/pylon_tools.py | 207 | except Exception as e: | CODE |
| LOW | src/tools/pylon_tools.py | 284 | except Exception as e: | CODE |
| LOW | src/tools/pylon_tools.py | 315 | except Exception: | CODE |
| LOW | src/tools/pylon_tools.py | 355 | except Exception as e: | CODE |
| LOW | src/tools/mcp_tools.py | 26 | except Exception as e: | CODE |
| LOW | src/utils/prompt_provenance.py | 90 | except Exception as exc: | CODE |
| LOW | src/agent/docs_graph.py | 65 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/middleware/guardrails_middleware.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/middleware/guardrails_middleware.py | 482 | __all__ = ["GuardrailsMiddleware", "GuardrailsClassificationError"] | CODE |
| LOW | src/middleware/__init__.py | 8 | __all__ = [ | CODE |
| LOW | src/middleware/retry_middleware.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/middleware/retry_middleware.py | 97 | __all__ = ["ModelRetryMiddleware", "MalformedResponseError"] | CODE |
| LOW | src/middleware/summarization_middleware.py | 60 | __all__ = ["CustomSummarizationMiddleware"] | CODE |
| LOW | src/middleware/tool_retry_middleware.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/middleware/tool_retry_middleware.py | 175 | __all__ = ["ToolRetryMiddleware"] | CODE |
| LOW | src/middleware/ingress_guards_middleware.py | 75 | __all__ = ["IngressGuardsMiddleware", "MAX_MESSAGE_CHARS"] | CODE |
| LOW | src/tools/link_check_tools.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tools/pricing_tools.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tools/docs_tools.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tools/redis.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tools/pylon_tools.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tools/mcp_tools.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/utils/__init__.py | 4 | __all__ = ["build_trace_metadata"] | CODE |
| LOW | src/utils/prompt_provenance.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/utils/trace_root_metadata.py | 35 | __all__ = ["build_docs_agent_trace_metadata"] | CODE |
| LOW⚡ | src/agent/config.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/agent/config.py | 142 | __all__ = [ | CODE |
| LOW | src/agent/docs_graph.py | 32 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | identity.py | 17 | CODE | |
| LOW | tests/unit/test_pylon_pagination.py | 7 | CODE | |
| LOW | tests/unit/test_pylon_pagination.py | 8 | CODE | |
| LOW | tests/unit/test_pylon_pagination.py | 10 | CODE | |
| LOW | tests/unit/test_ingress_guards_middleware.py | 3 | CODE | |
| LOW | tests/unit/test_check_links_async.py | 12 | CODE | |
| LOW | tests/unit/test_check_links_async.py | 12 | CODE | |
| LOW | tests/unit/test_check_links_async.py | 21 | CODE | |
| LOW | tests/unit/test_check_links_async.py | 21 | CODE | |
| LOW | tests/unit/test_prompt_provenance.py | 3 | CODE | |
| LOW | src/middleware/__init__.py | 3 | CODE | |
| LOW | src/middleware/__init__.py | 4 | CODE | |
| LOW | src/middleware/__init__.py | 5 | CODE | |
| LOW | src/middleware/__init__.py | 6 | CODE | |
| LOW | src/middleware/ingress_guards_middleware.py | 15 | CODE | |
| LOW | src/utils/__init__.py | 2 | CODE | |
| LOW | src/utils/trace_root_metadata.py | 9 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | instructions.md | 247 | ### Step 0: Route Pricing Questions | COMMENT |
| LOW | instructions.md | 251 | ### Step 1: Research Documentation and Support KB | COMMENT |
| LOW | instructions.md | 289 | ### Step 2: Synthesize and Respond | COMMENT |
| LOW⚡ | src/prompts/docs_agent_prompt.py | 248 | ### Step 0: Route Pricing Questions | COMMENT |
| LOW⚡ | src/prompts/docs_agent_prompt.py | 252 | ### Step 1: Research Documentation and Support KB | COMMENT |
| LOW | src/prompts/docs_agent_prompt.py | 290 | ### Step 2: Synthesize and Respond | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/lib/hooks/auth/use-client-profile.ts | 62 | * updateClientProfile({ name: "John Doe" }) | COMMENT |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 62 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 78 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 101 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 121 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 140 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 161 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 178 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/middleware/guardrails_middleware.py | 260 | CODE | |
| LOW | src/middleware/guardrails_middleware.py | 370 | CODE | |
| LOW | src/middleware/retry_middleware.py | 44 | CODE | |
| LOW | src/tools/link_check_tools.py | 72 | CODE | |
| LOW | src/tools/redis.py | 91 | CODE | |
| LOW | src/tools/pylon_tools.py | 131 | CODE | |
| LOW | src/tools/pylon_tools.py | 290 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/middleware/guardrails_middleware.py | 29 | # Dataset configuration for guardrails evaluation | COMMENT |
| MEDIUM | src/prompts/guardrails_prompts.py | 1 | # Prompt templates for guardrails classification and rejection responses. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/prompts/docs_agent_prompt.py | 248 | ### Step 0: Route Pricing Questions | COMMENT |
| LOW⚡ | src/prompts/docs_agent_prompt.py | 252 | ### Step 1: Research Documentation and Support KB | COMMENT |
| LOW | src/prompts/docs_agent_prompt.py | 290 | ### Step 2: Synthesize and Respond | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/prompts/docs_agent_prompt.py | 2 | You are an expert LangChain customer service agent. ## Your Mission Answer customer questions about LangChain, LangGra | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/deploy-production.yml | 1 | # Manually deploy the Managed Deep Agent to a LangSmith production deployment. | COMMENT |
| LOW | src/agent/__init__.py | 1 | # Agent module exports (empty to avoid circular imports) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/utils/trace_metadata.py | 22 | CODE |