AI Slop Code RIsk Monitor

pipecat-ai/pipecat

Open Source framework for voice agents, multimodal apps, and realtime AI. Maintained by Daily and the community.

36.3 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for pipecat-ai/pipecat, a Python project with 16,344 GitHub stars. SynthScan examined 484,958 lines of code across 1906 source files, recording 10953 pattern matches distributed across 27 syntactic categories. The legacy adjusted pattern signal is 36.3 (High 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.

36.3
Adjusted Signal
36.3
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
16.3K
Stars
Python
Language
485.0K
Lines of Code
1.9K
Files
11.0K
Pattern Hits
2026-10-12
Scan Date
0.73
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 57.8/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 8126 finding(s).

Hallucinated Dependency & Supply Chain Risk 4.5/100 · LOW

Are imports declared and package/API names verified? 306 finding(s).

Agent Over-Engineering Ratio 79.5/100 · CRITICAL

Are wrappers, guards, and repeated structures necessary? 9741 finding(s).

PR Review Velocity Impact 86.5/100 · CRITICAL

Which changes need focused human review? 10953 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 14HIGH 1377MEDIUM 723LOW 8839

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 10953 distinct pattern matches across 27 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.

Hyper-Verbose Identifiers7138 hits · 6552 pts
SeverityFileLineSnippetContext
LOWCHANGELOG.md1850 async def on_user_turn_inference_triggered(controller, strategy,CODE
LOWCHANGELOG.md15905 async def on_conversation_item_created(llm, item_id, item):CODE
LOWCHANGELOG.md15909 async def on_conversation_item_updated(llm, item_id, item):CODE
LOW⚡tests/test_async_tool_messages.py61 def test_parses_completed_sentinel_result(self):CODE
LOW⚡tests/test_async_tool_messages.py70 def test_returns_none_for_regular_user_message(self):CODE
LOW⚡tests/test_async_tool_messages.py73 def test_returns_none_for_regular_assistant_message(self):CODE
LOW⚡tests/test_async_tool_messages.py76 def test_returns_none_for_regular_tool_message(self):CODE
LOW⚡tests/test_async_tool_messages.py91 def test_returns_none_for_developer_message_without_payload(self):CODE
LOW⚡tests/test_async_tool_messages.py100 def test_returns_none_for_invalid_json_content(self):CODE
LOW⚡tests/test_async_tool_messages.py103 def test_returns_none_for_non_dict_json(self):CODE
LOW⚡tests/test_async_tool_messages.py106 def test_returns_none_for_wrong_payload_type(self):CODE
LOWtests/test_async_tool_messages.py117 def test_returns_none_when_tool_call_id_missing(self):CODE
LOWtests/test_async_tool_messages.py128 def test_returns_none_when_status_invalid(self):CODE
LOW⚡tests/test_async_tool_messages.py141 def test_returns_none_for_non_string_content(self):CODE
LOW⚡tests/test_async_tool_messages.py150 def test_returns_none_for_missing_role(self):CODE
LOW⚡tests/test_async_tool_messages.py157 def test_started_message_shape(self):CODE
LOWtests/test_async_tool_messages.py170 def test_intermediate_message_shape(self):CODE
LOWtests/test_async_tool_messages.py194 def test_final_message_with_completed_sentinel(self):CODE
LOWtests/test_async_tool_messages.py207 def test_cancelled_message_shape(self):CODE
LOWtests/test_async_tool_messages.py218 def test_cancelled_round_trip(self):CODE
LOWtests/test_async_tool_messages.py238 def test_intermediate_round_trip(self):CODE
LOWtests/test_async_tool_messages.py256 def test_non_ascii_result_is_not_escaped(self):CODE
LOWtests/test_ttfb_metrics.py36 async def test_reports_a_normal_interval(self):CODE
LOWtests/test_ttfb_metrics.py50 async def test_does_not_report_output_that_predates_the_request(self):CODE
LOWtests/test_ttfb_metrics.py59 async def test_a_refused_measurement_does_not_linger(self):CODE
LOWtests/test_ttfb_metrics.py74 async def test_reports_nothing_when_no_measurement_is_running(self):CODE
LOWtests/test_ttfb_metrics.py105 async def test_measures_to_the_last_transcript(self, service):CODE
LOWtests/test_ttfb_metrics.py114 async def test_a_transcript_from_before_speech_ended_reports_nothing(self, service):CODE
LOWtests/test_ttfb_metrics.py134 async def test_an_utterance_with_no_transcript_at_all_reports_nothing(self, service):CODE
LOWtests/test_ttfb_metrics.py143 async def test_an_utterance_with_no_transcript_closes_the_measurement(self, service):CODE
LOWtests/test_nova_sonic_usage_metrics.py36 def test_can_generate_metrics(self):CODE
LOWtests/test_nova_sonic_usage_metrics.py41 async def test_usage_event_reports_collapsed_delta(self):CODE
LOWtests/test_nova_sonic_usage_metrics.py71 async def test_usage_event_with_no_tokens_is_skipped(self):CODE
LOWtests/test_nova_sonic_usage_metrics.py92 async def test_usage_event_with_missing_details_is_safe(self):CODE
LOW⚡tests/test_openai_realtime_reasoning.py32def test_session_properties_accepts_reasoning_object():CODE
LOW⚡tests/test_openai_realtime_reasoning.py38def test_session_properties_coerces_reasoning_dict():CODE
LOW⚡tests/test_openai_realtime_reasoning.py45def test_reasoning_accepts_future_effort_strings():CODE
LOW⚡tests/test_openai_realtime_reasoning.py51def test_reasoning_serializes_into_session_update():CODE
LOWtests/test_openai_realtime_reasoning.py89async def test_outgoing_session_update_strips_reasoning_on_unsupported_model():CODE
LOWtests/test_openai_realtime_reasoning.py119async def test_outgoing_session_update_keeps_reasoning_on_supported_model():CODE
LOWtests/test_openai_realtime_reasoning.py143async def test_supported_model_variant_keeps_reasoning():CODE
LOWtests/test_openai_realtime_reasoning.py168async def test_no_warning_when_reasoning_is_unset_on_unsupported_model():CODE
LOW⚡tests/test_openai_realtime_reasoning.py193async def test_runtime_settings_update_with_reasoning_triggers_session_update():CODE
LOWtests/test_openai_realtime_reasoning.py224async def test_runtime_settings_update_strips_reasoning_on_unsupported_model():CODE
LOWtests/test_xtts_tts_voice.py29def test_missing_or_blank_voice_is_rejected(voice):CODE
LOWtests/test_evals_judge_jev.py126 async def test_a_reply_is_asked_as_a_choice_over_the_conversation(self):CODE
LOWtests/test_evals_judge_jev.py149 async def test_a_call_is_asked_as_a_yes_or_no(self):CODE
LOWtests/test_evals_judge_jev.py159 async def test_a_run_asks_the_goal_and_every_turn_at_once(self):CODE
LOW⚡tests/test_evals_judge_jev.py191 async def test_a_timeout_is_asked_again(self):CODE
LOW⚡tests/test_evals_judge_jev.py196 async def test_a_rejected_question_is_asked_again(self):CODE
LOW⚡tests/test_evals_judge_jev.py201 async def test_a_second_failure_fails_the_question(self):CODE
LOW⚡tests/test_evals_judge_jev.py207 async def test_the_connection_is_opened_when_the_judge_is_created(self):CODE
LOW⚡tests/test_evals_judge_jev.py215 async def test_close_releases_a_connection_the_judge_opened(self):CODE
LOW⚡tests/test_evals_judge_jev.py221 async def test_close_leaves_a_connection_the_judge_was_given_open(self):CODE
LOW⚡tests/test_evals_judge_jev.py229 async def test_service_typesafe_judges_with_jev_and_explains_with_an_llm(self):CODE
LOW⚡tests/test_evals_judge_jev.py236 async def test_explainer_false_builds_no_explainer(self):CODE
LOW⚡tests/test_evals_judge_jev.py241 async def test_the_explainer_follows_allow_continue(self):CODE
LOW⚡tests/test_evals_judge_jev.py247 def test_a_missing_api_key_is_an_error(self):CODE
LOWtests/test_markdown_text_filter.py17 async def test_basic_markdown_removal(self):CODE
LOWtests/test_markdown_text_filter.py59 async def test_repeated_character_removal(self):STRING
7078 more matches not shown…
Cross-File Repetition1168 hits · 5840 pts
SeverityFileLineSnippetContext
HIGHCHANGELOG.md0write a long research report on a topic. args: topic: what the report should cover.STRING
HIGH…ion-calling/function-calling-openai-responses-async.py0write a long research report on a topic. args: topic: what the report should cover.STRING
HIGH…ples/function-calling/function-calling-google-async.py0write a long research report on a topic. args: topic: what the report should cover.STRING
HIGH…ples/function-calling/function-calling-openai-async.py0write a long research report on a topic. args: topic: what the report should cover.STRING
HIGH…s/function-calling/function-calling-anthropic-async.py0write a long research report on a topic. args: topic: what the report should cover.STRING
HIGHCONTRIBUTING.md0get the output audio sample rate. returns: the output sample rate in hz.STRING
HIGHsrc/pipecat/transports/base_input.py0get the output audio sample rate. returns: the output sample rate in hz.STRING
HIGHsrc/pipecat/transports/base_output.py0get the output audio sample rate. returns: the output sample rate in hz.STRING
HIGHsrc/pipecat/transports/lemonslice/transport.py0get the output audio sample rate. returns: the output sample rate in hz.STRING
HIGHsrc/pipecat/transports/tavus/transport.py0get the output audio sample rate. returns: the output sample rate in hz.STRING
HIGHsrc/pipecat/services/heygen/client.py0get the output audio sample rate. returns: the output sample rate in hz.STRING
HIGHsrc/pipecat/transports/daily/transport.py0get the output audio sample rate. returns: the output sample rate in hz.STRING
HIGHsrc/pipecat/audio/vad/vad_analyzer.py0get the output audio sample rate. returns: the output sample rate in hz.STRING
HIGHCOMMUNITY_INTEGRATIONS.md0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/cartesia/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/cartesia/turns/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/inworld/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/asyncai/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/speechmatics/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/azure/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/rime/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/google/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/google/gemini_live/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/speechify/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/soniox/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/soniox/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/deepgram/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/deepgram/flux/stt_base.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/deepgram/sagemaker/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/deepgram/sagemaker/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/camb/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/groq/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/tavus/video.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/smallest/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/minimax/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/elevenlabs/tts_base.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/elevenlabs/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/neuphonic/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/gradium/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/piper/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/nvidia/sagemaker/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/nvidia/sagemaker/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/bland/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/resembleai/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/sarvam/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/sarvam/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/xtts/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/aws/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/fish/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/mistral/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/openai/tts.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/openai/base_llm.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHsrc/pipecat/services/openai/stt.py0check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation.STRING
HIGHtests/test_deepgram_tts.py0build the exception `websockets` raises when a handshake is rejected.STRING
HIGHtests/test_websocket_service_usable.py0build the exception `websockets` raises when a handshake is rejected.STRING
HIGHtests/test_processor_usable.py0build the exception `websockets` raises when a handshake is rejected.STRING
HIGHtests/test_cartesia_stt.py0build the exception `websockets` raises when a handshake is rejected.STRING
HIGHtests/test_openai_realtime_audio_frames.py0async-iterable websocket that yields scripted json strings.STRING
HIGHtests/test_openai_live_service.py0async-iterable websocket that yields scripted json strings.STRING
HIGHtests/test_azure_voice_live_frames.py0async-iterable websocket that yields scripted json strings.STRING
1108 more matches not shown…
Decorative Section Separators480 hits · 1678 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_openai_realtime_reasoning.py27# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_reasoning.py29# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_reasoning.py58# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_reasoning.py60# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_reasoning.py187# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_reasoning.py189# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py554# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py556# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py822# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py824# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py909# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py911# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py1017# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py1019# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py1051# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py1053# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py1101# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py1103# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py2133# ----------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_moq_transport.py2135# ----------------------------------------------------------------------COMMENT
MEDIUMtests/test_moq_transport.py82# ----------------------------------------------------------------------COMMENT
MEDIUMtests/test_moq_transport.py84# ----------------------------------------------------------------------COMMENT
MEDIUMtests/test_moq_transport.py179# ----------------------------------------------------------------------COMMENT
MEDIUMtests/test_moq_transport.py181# ----------------------------------------------------------------------COMMENT
MEDIUMtests/test_moq_transport.py457# ----------------------------------------------------------------------COMMENT
MEDIUMtests/test_moq_transport.py459# ----------------------------------------------------------------------COMMENT
MEDIUMtests/test_service_init.py59# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_service_init.py61# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_service_init.py90# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_service_init.py92# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_service_init.py138# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_service_init.py140# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_service_init.py161# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_service_init.py163# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_openai_realtime_audio_frames.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_openai_realtime_audio_frames.py33# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py152# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py154# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py193# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py195# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py225# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py227# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py279# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py281# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py322# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_realtime_audio_frames.py324# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_live_service.py178# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_live_service.py180# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_live_service.py517# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_live_service.py519# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_live_service.py663# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_live_service.py665# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_live_service.py895# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_openai_live_service.py897# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_openai_live_service.py55# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_openai_live_service.py57# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_openai_live_service.py463# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_openai_live_service.py465# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_openai_live_service.py1071# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_openai_live_service.py1073# ---------------------------------------------------------------------------COMMENT
420 more matches not shown…
Excessive Try-Catch Wrapping720 hits · 746 pts
SeverityFileLineSnippetContext
LOWCOMMUNITY_INTEGRATIONS.md627except Exception as e:CODE
LOW⚡tests/test_service_init.py80 except Exception:CODE
LOW⚡tests/test_service_init.py175 except Exception:CODE
LOWtests/test_pgmq_bus.py30except Exception:CODE
LOWtests/test_fastapi_websocket.py178 except Exception:CODE
MEDIUMtests/test_fastapi_websocket.py174def receive_loop():CODE
MEDIUMtests/test_video_in_sources.py231def setUp(self):CODE
MEDIUMtests/test_video_in_sources.py289def setUp(self):CODE
MEDIUMtests/test_video_in_sources.py359def setUp(self):CODE
MEDIUMtests/test_video_in_sources.py447def setUp(self):CODE
MEDIUMtests/test_video_in_sources.py521def _daily_input(self, camera_state="playable"):CODE
MEDIUMtests/test_video_in_sources.py562def test_daily_waiting_requests_when_the_bot_leaves(self):CODE
MEDIUMtests/test_video_in_sources.py575def _smallwebrtc_input(self, enabled=True):CODE
MEDIUMtests/test_video_in_sources.py605def test_smallwebrtc_transport_answers_only_when_video_turns_off(self):CODE
MEDIUMtests/test_video_in_sources.py631def setUp(self):CODE
MEDIUMtests/test_video_in_sources.py728def _transport_cls(self, module, name):CODE
LOW⚡tests/test_video_in_sources.py565 except Exception as e:CODE
LOW⚡tests/test_video_in_sources.py578 except Exception as e:CODE
LOW⚡tests/test_video_in_sources.py608 except Exception as e:CODE
LOW⚡tests/test_video_in_sources.py731 except Exception as e:CODE
LOWtests/test_video_in_sources.py234 except Exception as e:CODE
LOWtests/test_video_in_sources.py292 except Exception as e:CODE
LOWtests/test_video_in_sources.py362 except Exception as e:CODE
LOWtests/test_video_in_sources.py450 except Exception as e:CODE
LOWtests/test_video_in_sources.py524 except Exception as e:CODE
LOWtests/test_video_in_sources.py634 except Exception as e:CODE
LOWtests/test_video_in_sources.py695 except Exception as e:CODE
LOW⚡tests/test_pgmq_backends.py35except Exception:CODE
LOWtests/openclaw_fake_gateway.py143 except Exception:CODE
LOW⚡tests/test_speechmatics_stt.py601 except Exception as inner:CODE
LOW⚡tests/test_speechmatics_stt.py646 except Exception as inner:CODE
LOWtests/test_redis_bus.py27except Exception:CODE
LOWdocs/api/conf.py355 except Exception as e:CODE
LOWexamples/transcription/transcription-google-llm.py188 except Exception as e:STRING
LOWexamples/features/features-gpu-container-local-bot.py158 except Exception as e:CODE
MEDIUMexamples/features/features-gpu-container-local-bot.py140def on_app_message(transport, message, sender):CODE
LOWexamples/multi-worker/code-assistant/code_worker.py84 except Exception as e:CODE
LOWexamples/multi-worker/code-assistant/code_worker.py106 except Exception as e:CODE
LOWexamples/rag/rag-mem0.py100 except Exception as e:CODE
LOWexamples/realtime/realtime-gemini-live-files-api.py161 except Exception as e:STRING
LOWexamples/realtime/realtime-gemini-live-files-api.py234 except Exception as e:STRING
LOWexamples/realtime/realtime-gemini-live-files-api.py241 except Exception as e:STRING
LOWexamples/voice/voice-aws-strands.py115 except Exception as e:CODE
LOW…les/persistent-context/persistent-context-anthropic.py87 except Exception as e:CODE
LOW…les/persistent-context/persistent-context-anthropic.py105 except Exception as e:CODE
LOW…sistent-context/persistent-context-openai-responses.py87 except Exception as e:CODE
LOW…sistent-context/persistent-context-openai-responses.py106 except Exception as e:CODE
LOW…amples/persistent-context/persistent-context-gemini.py114 except Exception as e:CODE
LOW…amples/persistent-context/persistent-context-gemini.py135 except Exception as e:CODE
LOW…rsistent-context/persistent-context-openai-realtime.py91 except Exception as e:CODE
LOW…rsistent-context/persistent-context-openai-realtime.py114 except Exception as e:CODE
LOW…amples/persistent-context/persistent-context-openai.py87 except Exception as e:CODE
LOW…amples/persistent-context/persistent-context-openai.py106 except Exception as e:CODE
LOW…nt-context/persistent-context-openai-responses-http.py87 except Exception as e:CODE
LOW…nt-context/persistent-context-openai-responses-http.py106 except Exception as e:CODE
LOW…ersistent-context/persistent-context-aws-nova-sonic.py107 except Exception as e:CODE
LOW…ersistent-context/persistent-context-aws-nova-sonic.py135 except Exception as e:CODE
LOW…persistent-context-openai-live-responses-delegation.py104 except Exception as e:CODE
LOW…persistent-context-openai-live-responses-delegation.py132 except Exception as e:CODE
LOW…persistent-context/persistent-context-grok-realtime.py91 except Exception as e:CODE
660 more matches not shown…
Docstring Block Structure106 hits · 530 pts
SeverityFileLineSnippetContext
HIGHevals/judges.py36TypeSafe's Jev, a hosted classifier that answers in a few hundred milliseconds. Args: config: The ``judge.eSTRING
HIGHevals/judges.py61Cloudflare's Clef, a classifier on Workers AI that answers in a few hundred milliseconds. Args: config: TheSTRING
HIGHevals/judges.py92OpenAI's Decisions API, a classifier that answers in a few hundred milliseconds. Args: config: The ``judge.STRING
HIGH.claude/skills/docstring/SKILL.md136One-line summary of what method does. [Longer description if behavior isn't obvious.] Args: param1: DeSTRING
HIGH.claude/skills/cleanup/SKILL.md104Process incoming data with optional configuration. Args: data: The input data to process. options: STRING
HIGHexamples/flows/python/utils.py18Create an LLM service instance based on environment configuration. Args: provider: LLM provider name. If NoSTRING
HIGHscripts/krisp/audio_file_utils.py14Read an audio file and convert to int16 mono format. This function: - Detects the audio format from the file heSTRING
HIGHsrc/pipecat/pipeline/job_context.py73Fold the deprecated per-argument job spelling into a params object. Dispatch methods accept a params object and, unSTRING
HIGHsrc/pipecat/evals/simulation.py235Parse a simulation's mapping, as read from ``path``. Args: data: The simulation's top-level mapping. STRING
HIGHsrc/pipecat/evals/services.py59A config's optional ``language`` as a :class:`Language`; a code string is accepted too. Args: cfg: A ``userSTRING
HIGHsrc/pipecat/evals/services.py358Build the classifier a ``judge.eval:`` block names. A ``factory`` (a dotted path to a callable taking the config) bSTRING
HIGHsrc/pipecat/evals/services.py399Build an LLM service from a ``service:`` block, the judge's or a persona's. A ``factory`` (a dotted path to a callaSTRING
HIGHsrc/pipecat/evals/matcher.py75Wait for the expected event and verify it. Stale bot output is not filtered here: the stream drops it on an STRING
HIGHsrc/pipecat/evals/events.py241Pop the next queued event, whatever its type. Args: deadline: Monotonic time to give up at. STRING
HIGHsrc/pipecat/evals/events.py259Pop events until one of ``event_type`` arrives. Events of other types are dropped from the queue, so a scenarioSTRING
HIGHsrc/pipecat/evals/session.py255Build a ready-to-run session for a scenario of either kind. A scripted scenario gets an :class:`~pipecaSTRING
HIGHsrc/pipecat/evals/scenario.py219Read a scenario file, parsing each scenario as whichever kind it is. A file in the deprecated shape, a scenarioSTRING
HIGHsrc/pipecat/evals/scenario.py302Load a file holding one scenario, as whichever kind it is. .. deprecated:: 1.11.0 Use :meth:`EvalScenarioFiSTRING
HIGHsrc/pipecat/evals/judge.py495Build a judge from a scenario's ``judge.eval:`` block. The block names an LLM, ``ollama`` by default, and the jSTRING
HIGHsrc/pipecat/evals/audio.py22Read an audio file as the PCM a user turn is sent as. The file keeps its own sample rate; the bot resamples on its STRING
HIGHsrc/pipecat/evals/script.py645Parse a scripted scenario's mapping, as read from ``path``. Args: data: The scenario's top-level mapping. STRING
HIGHsrc/pipecat/runner/run.py1772Parse ICE server configuration into a list of plain dictionaries. Accepts either the raw ``PIPECAT_ICE_SERVERS`` enSTRING
HIGHsrc/pipecat/runner/utils.py115Parse telephony WebSocket messages and return transport type and call data. Args: websocket: FastAPI WebSocSTRING
HIGHsrc/pipecat/runner/utils.py494Get transport parameters from factory function. Args: transport_key: The transport key to look up tSTRING
HIGHsrc/pipecat/runner/utils.py632Create a transport from runner arguments using factory functions. This function uses the clean transport_params facSTRING
HIGHsrc/pipecat/runner/daily.py93Configure Daily room URL and token with optional SIP capabilities. This function will either: 1. Use an existinSTRING
HIGHsrc/pipecat/runner/livekit.py144Configure LiveKit room with command-line argument parsing. Args: parser: Optional argument parser. If None,STRING
HIGHsrc/pipecat/transports/lemonslice/api.py55Create a new session with the specified agent_id, agent_image_url, or agent_image. Args: agent_imagSTRING
HIGHsrc/pipecat/transports/smallwebrtc/transport.py125Add audio bytes to the buffer for transmission. Args: audio_bytes: Raw audio data to queue for tranSTRING
HIGHsrc/pipecat/transports/smallwebrtc/transport.py296Convert a video frame to RGB format based on the input format. Args: frame_array: The input frame aSTRING
HIGHsrc/pipecat/transports/smallwebrtc/request_handler.py165Handle a SmallWebRTC request and resolve the pending answer. This method will: - Reuse an existing WeSTRING
HIGHsrc/pipecat/transports/daily/utils.py272Create a new Daily room. Args: params: Room configuration parameters. Returns: STRING
HIGHsrc/pipecat/transports/daily/utils.py309Generate a meeting token for user to join a Daily room. Args: room_url: Daily room URL. STRING
HIGHsrc/pipecat/transports/daily/utils.py378Delete a room using its name. Args: room_name: Name of the room to delete. Returns: STRING
HIGHsrc/pipecat/transports/livekit/utils.py68Delete a LiveKit room by name. This will forcibly disconnect all participants currently in the room. ASTRING
HIGHsrc/pipecat/transports/whatsapp/client.py132Handle a verify webhook request from WhatsApp. Args: params: Dictionary containing webhook parameteSTRING
HIGHsrc/pipecat/transports/whatsapp/client.py193Handle a webhook request from WhatsApp. This method processes incoming webhook requests and handles both STRING
HIGHsrc/pipecat/transports/whatsapp/client.py319Handle a CONNECT event by establishing WebRTC connection and accepting the call. This method: 1. CreateSTRING
HIGHsrc/pipecat/tests/utils.py137Run a test pipeline with the specified processor and validate frame flow. This function creates a test pipeline witSTRING
HIGHsrc/pipecat/utils/types.py78Extract a value that must have been provided. Intended for reads where ``NOT_GIVEN`` should never appear, such as aSTRING
HIGHsrc/pipecat/utils/types.py102Extract a value that must have been provided and must not be empty. Like :func:`assert_given`, but also rejects ``NSTRING
HIGHsrc/pipecat/utils/asyncio/task_manager.py173Creates and schedules a new asyncio Task that runs the given coroutine. The task is added to a global set of crSTRING
HIGHsrc/pipecat/cli/registry/service_loader.py18Extract the extra names from a package string. Args: package: Package string like "pipecat-ai[deepgram]", "STRING
HIGHsrc/pipecat/cli/generators/project.py77Generate the complete project structure. Args: output_dir: Optional directory to create project in STRING
HIGHsrc/pipecat/adapters/base_llm_adapter.py275Return the content to inline for a ``file_url`` item, or None when the URL passes through. Args: fiSTRING
HIGHsrc/pipecat/adapters/services/gemini_adapter.py114Recursively adapt a JSON schema to the subset Gemini accepts. Tool schemas are JSON Schema, but Gemini takeSTRING
HIGHsrc/pipecat/adapters/services/gemini_adapter.py442Convert standard universal context message to Google Content object. Handles conversion of text, images, and fuSTRING
HIGHsrc/pipecat/adapters/services/bedrock_adapter.py333Convert standard format message to AWS Bedrock format. Handles conversion of text content, tool calls, and toolSTRING
HIGHsrc/pipecat/adapters/services/anthropic_adapter.py321Convert standard universal context message to Anthropic format. Handles conversion of text content, tool calls,STRING
HIGHsrc/pipecat/serializers/telnyx.py130Serializes a Pipecat frame to Telnyx WebSocket format. Handles conversion of various frame types to Telnyx WebSSTRING
HIGHsrc/pipecat/serializers/telnyx.py243Deserializes Telnyx WebSocket data to Pipecat frames. Handles conversion of Telnyx media events to appropriate STRING
HIGHsrc/pipecat/serializers/genesys.py315Create a protocol message with common fields. Based on the Genesys AudioHook protocol, responses include: STRING
HIGHsrc/pipecat/audio/utils.py182Calculate the loudness level of audio data using ITU-R BS.1770. Args: audio: Audio data as raw bytes (16-biSTRING
HIGHsrc/pipecat/audio/krisp_instance.py44Convert integer sample rate to Krisp SDK enum value. Args: sample_rate: Sample rate in Hz (e.g., 16000, 240STRING
HIGHsrc/pipecat/audio/krisp_instance.py64Convert integer frame duration to Krisp SDK enum value. Args: frame_duration_ms: Frame duration in millisecSTRING
HIGHsrc/pipecat/audio/filters/aic_filter.py131Get or load a Model and increment its reference count. Call this when starting a filter. Store the returned keySTRING
HIGHsrc/pipecat/audio/turn/krisp_viva_turn.py162Create a turn detection session with the specified sample rate. Args: sample_rate: Sample rate for STRING
HIGHsrc/pipecat/audio/vad/krisp_viva_vad.py95Create a Krisp VAD session with a specific sample rate. Args: sample_rate: Sample rate for the sessSTRING
HIGHsrc/pipecat/transcriptions/language.py623Resolve a Language enum to a service-specific language code. Checks the language map first, then falls back to extrSTRING
HIGHsrc/pipecat/workers/base_worker.py1050Wait for workers to be ready, create a job group, and send requests. Waits for all workers to be registered as STRING
46 more matches not shown…
Empty Error Handlers86 hits · 430 pts
SeverityFileLineSnippetContext
HIGHtests/test_xai_tts.py139except websockets.ConnectionClosed:CODE
HIGHtests/test_xai_tts.py217except websockets.ConnectionClosed:CODE
HIGHtests/test_xai_tts.py316except websockets.ConnectionClosed:CODE
HIGHtests/test_xai_tts.py388except websockets.ConnectionClosed:CODE
HIGHtests/test_xai_tts.py445except websockets.ConnectionClosed:CODE
HIGHtests/test_smallwebrtc_transport.py225except BaseException:CODE
HIGHtests/test_smallwebrtc_transport.py282except BaseException:CODE
HIGHtests/test_smallwebrtc_transport.py303except BaseException:CODE
HIGHtests/test_fastapi_websocket.py178except Exception:CODE
HIGHtests/test_base_worker.py755except asyncio.CancelledError:CODE
HIGHtests/test_websocket_proxy.py174except asyncio.CancelledError:CODE
HIGHtests/test_websocket_proxy.py203except asyncio.CancelledError:CODE
HIGHtests/test_websocket_proxy.py285except asyncio.CancelledError:CODE
HIGHtests/test_websocket_proxy.py313except asyncio.CancelledError:CODE
HIGHtests/test_websocket_server_transport.py124except websockets.ConnectionClosed:CODE
HIGHtests/test_deepgram_flux_tts.py115except websockets.ConnectionClosed:CODE
HIGHtests/test_bland_tts.py135except websockets.ConnectionClosed:CODE
HIGHtests/test_bland_tts.py924except websockets.ConnectionClosed:CODE
HIGHtests/test_bland_tts.py993except websockets.ConnectionClosed:CODE
HIGHtests/test_bland_tts.py1076except websockets.ConnectionClosed:CODE
HIGHtests/test_runner.py102except asyncio.CancelledError:CODE
HIGHtests/test_runner.py196except asyncio.CancelledError:CODE
HIGHtests/openclaw_fake_gateway.py143except Exception:CODE
HIGHtests/test_evals_client_transport.py51except asyncio.CancelledError:CODE
HIGHtests/test_pipeline.py418except TimeoutError:CODE
HIGHtests/test_pipeline.py446except TimeoutError:CODE
HIGHtests/test_pipeline.py475except TimeoutError:CODE
HIGHtests/test_pipeline.py517except TimeoutError:CODE
HIGHexamples/flows/python/warm_transfer.py705except:CODE
HIGHexamples/flows/python/assets/hold_music/hold_music.py114except asyncio.CancelledError:CODE
HIGHscripts/daily/mock_tavus_server.py27except asyncio.InvalidStateError:CODE
HIGHscripts/daily/mock_tavus_server.py101except asyncio.CancelledError:CODE
HIGHscripts/provider-watch/probe.py185except ValueError:CODE
HIGHsrc/pipecat/evals/client.py902except Exception:CODE
HIGHsrc/pipecat/evals/client.py532except OSError:CODE
HIGHsrc/pipecat/evals/client.py619except (asyncio.CancelledError, Exception):CODE
HIGHsrc/pipecat/evals/judge.py1163except (json.JSONDecodeError, AttributeError):CODE
HIGHsrc/pipecat/evals/judge.py1256except (json.JSONDecodeError, AttributeError):CODE
HIGHsrc/pipecat/runner/run.py549except ImportError:CODE
HIGHsrc/pipecat/runner/utils.py196except json.JSONDecodeError:CODE
HIGHsrc/pipecat/runner/utils.py206except json.JSONDecodeError:CODE
HIGHsrc/pipecat/transports/websocket/fastapi.py222except asyncio.CancelledError:CODE
HIGHsrc/pipecat/transports/daily/transport.py1772except FuturesCancelledError:CODE
HIGHsrc/pipecat/transports/daily/transport.py447except asyncio.InvalidStateError:CODE
HIGHsrc/pipecat/transports/vonage/client.py918except asyncio.QueueEmpty:CODE
HIGHsrc/pipecat/transports/vonage/video_connector.py185except Exception:CODE
HIGHsrc/pipecat/transports/vonage/video_connector.py323except Exception:CODE
HIGHsrc/pipecat/transports/moq/transport.py1630except asyncio.CancelledError:CODE
HIGHsrc/pipecat/transports/moq/transport.py1678except asyncio.CancelledError:CODE
HIGHsrc/pipecat/transports/moq/transport.py821except Exception:CODE
HIGHsrc/pipecat/utils/base_object.py223except ValueError:CODE
HIGHsrc/pipecat/utils/context/llm_context_summarization.py416except (json.JSONDecodeError, ValueError):CODE
HIGHsrc/pipecat/utils/context/llm_context_summarization.py500except (json.JSONDecodeError, ValueError):CODE
HIGH…pecat/processors/aggregators/llm_response_universal.py983except AttributeError:CODE
HIGHsrc/pipecat/serializers/telnyx.py222except Exception:CODE
HIGHsrc/pipecat/serializers/genesys.py300except ValueError:CODE
HIGHsrc/pipecat/serializers/twilio.py256except Exception:CODE
HIGHsrc/pipecat/transcriptions/language.py675except ValueError:CODE
HIGHsrc/pipecat/workers/base_worker.py409except asyncio.CancelledError:CODE
HIGHsrc/pipecat/workers/base_worker.py1418except asyncio.CancelledError:CODE
26 more matches not shown…
Deep Nesting352 hits · 309 pts
SeverityFileLineSnippetContext
LOWtests/test_user_bot_latency_observer.py1233CODE
LOWtests/test_deepgram_flux_sagemaker_tts.py77CODE
LOWtests/test_deepgram_flux_tts.py41CODE
LOWtests/test_deepgram_flux_tts.py55CODE
LOWtests/test_bland_tts.py58CODE
LOWtests/test_bland_tts.py884CODE
LOWtests/test_bland_tts.py964CODE
LOWtests/test_bland_tts.py1026CODE
LOWtests/test_bland_tts.py70CODE
LOWtests/test_bland_tts.py890CODE
LOWtests/test_bland_tts.py968CODE
LOWtests/test_bland_tts.py1029CODE
LOWtests/test_get_llm_invocation_params.py609CODE
LOWtests/test_get_llm_invocation_params.py4171CODE
LOWtests/test_gemini_live_user_audio.py53CODE
LOWtests/test_xai_realtime_events.py104CODE
LOWtests/test_backend_llm_worker.py89CODE
LOWtests/cli/test_client_generation.py340CODE
LOWtests/cli/test_project_generation.py59CODE
LOWtests/cli/test_project_generation.py414CODE
LOWexamples/transcription/transcription-google-llm.py95CODE
LOWexamples/transcription/transcription-google-llm.py132CODE
LOWexamples/features/features-custom-frame-processor.py40CODE
LOWexamples/multi-worker/code-assistant/code_worker.py80CODE
LOWexamples/multi-worker/openclaw-agent/openclaw_worker.py103CODE
LOW…es/realtime/realtime-gemini-live-grounding-metadata.py85CODE
LOWexamples/voice/voice-google-audio-in.py87CODE
LOWexamples/voice/voice-google-audio-in.py129CODE
LOWexamples/voice/voice-aicoustics-vad-only.py121CODE
LOWexamples/flows/python/llm_switching.py100CODE
LOWscripts/cli/imports/import_generator.py19CODE
LOWscripts/cli/imports/import_generator.py56CODE
LOWscripts/cli/imports/import_generator.py138CODE
LOWscripts/cli/imports/import_generator.py285CODE
LOWscripts/cli/imports/import_generator.py381CODE
LOWscripts/cli/configs/config_generator.py257CODE
LOWscripts/cli/configs/config_generator.py376CODE
LOWscripts/provider-watch/probe.py284CODE
LOWscripts/provider-watch/probe.py332CODE
LOWscripts/provider-watch/inventory.py138CODE
LOWscripts/provider-watch/inventory.py171CODE
LOWscripts/provider-watch/inventory.py199CODE
LOWscripts/provider-watch/inventory.py369CODE
LOWscripts/krisp/test_krisp_viva_filter_audiofile.py88CODE
LOWscripts/krisp/test_krisp_viva_turn_audiofile.py68CODE
LOWscripts/deprecations/scan.py135CODE
LOWscripts/deprecations/scan.py333CODE
LOWscripts/deprecations/scan.py407CODE
LOWscripts/deprecations/scan.py349CODE
LOWsrc/pipecat/pipeline/worker.py276CODE
LOWsrc/pipecat/pipeline/worker.py946CODE
LOWsrc/pipecat/pipeline/worker.py1007CODE
LOWsrc/pipecat/pipeline/worker.py1056CODE
LOWsrc/pipecat/pipeline/worker.py1481CODE
LOWsrc/pipecat/pipeline/worker.py1546CODE
LOWsrc/pipecat/pipeline/job_decorator.py51CODE
LOWsrc/pipecat/pipeline/sync_parallel_pipeline.py252CODE
LOWsrc/pipecat/pipeline/sync_parallel_pipeline.py291CODE
LOWsrc/pipecat/pipeline/worker_observer.py245CODE
LOWsrc/pipecat/pipeline/llm_with_backend.py586CODE
292 more matches not shown…
Self-Referential Comments86 hits · 260 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_markdown_text_filter.py216 # Create a filter with all features disabledCOMMENT
MEDIUMtests/test_frame_processor.py329 # Create a frame with mutable fields to test shallow copyingCOMMENT
MEDIUMtests/test_ivr_navigation.py28 # Create a mock LLM serviceCOMMENT
MEDIUMtests/test_krisp_viva_filter.py56 # Create a temporary .kef model file for testingCOMMENT
MEDIUMtests/test_piper_tts.py63 # Create an aiohttp test serverCOMMENT
MEDIUMtests/test_krisp_viva_vad.py55 # Create a temporary .kef model file for testingCOMMENT
MEDIUM⚡tests/test_vonage_video_connector.py1009 # Create an event that will block but can be interruptedCOMMENT
MEDIUM⚡tests/test_vonage_video_connector.py2969 # Create a simple RGB image with distinct colorsCOMMENT
MEDIUMtests/test_vonage_video_connector.py799 # Create an event that will block but can be interruptedCOMMENT
MEDIUMtests/test_vonage_video_connector.py1088 # Create a mock coroutine to queueCOMMENT
MEDIUMtests/test_vonage_video_connector.py1225 # Create a test RGB image (640x480, 3 channels)COMMENT
MEDIUMtests/test_vonage_video_connector.py1875 # Create a test RGB video frame (4x4, 3 channels)COMMENT
MEDIUMtests/test_vonage_video_connector.py2206 # Create a mock audio frameCOMMENT
MEDIUMtests/test_vonage_video_connector.py2224 # Create a test video frameCOMMENT
MEDIUMtests/test_vonage_video_connector.py2256 # Create a test video frameCOMMENT
MEDIUMtests/test_vonage_video_connector.py2287 # Create a video frame with incorrect sizeCOMMENT
MEDIUMtests/test_vonage_video_connector.py2313 # Create a video frame with incorrect sizeCOMMENT
MEDIUMtests/test_service_switcher.py500 # Create a pipeline with both switchers: switcher1 -> switcher2COMMENT
MEDIUMtests/test_openai_llm_timeout.py84 # Create a context frame to processCOMMENT
MEDIUMtests/test_context_summarization.py650 # Create a minimal LLM service - base class raises NotImplementedErrorCOMMENT
MEDIUMtests/test_get_llm_invocation_params.py293 # Create a message with complex content structure (text + image)COMMENT
MEDIUMtests/test_get_llm_invocation_params.py305 # Create a message with multiple text blocksCOMMENT
MEDIUMtests/test_get_llm_invocation_params.py614 # Create a message with complex content structure (text + image)COMMENT
MEDIUMtests/test_get_llm_invocation_params.py629 # Create a message with multiple text blocksCOMMENT
MEDIUMtests/test_get_llm_invocation_params.py639 # Create a message with audio input (text + audio)COMMENT
MEDIUMtests/test_get_llm_invocation_params.py1588 # Create a complex message with both text and image contentCOMMENT
MEDIUMtests/test_get_llm_invocation_params.py2351 # Create a complex message with both text and image contentCOMMENT
MEDIUM…ideo-processing/video-processing-custom-video-track.py157 # Create a blue-tinted copy for the custom destination.COMMENT
MEDIUMexamples/transports/transports-small-webrtc.py102 # Create a transport using the WebRTC connectionCOMMENT
MEDIUMexamples/rag/rag-mem0.py85 # Create a personalized greeting based on memoriesCOMMENT
MEDIUMexamples/realtime/realtime-azure-voice-live.py145 # Create a standard LLM context object using the normal messages format. TheCOMMENT
MEDIUMexamples/realtime/realtime-openai.py153 # Create a standard OpenAI LLM context object using the normal messages format. TheCOMMENT
MEDIUMexamples/realtime/realtime-openai-text.py150 # Create a standard OpenAI LLM context object using the normal messages format. TheCOMMENT
MEDIUMexamples/realtime/realtime-inworld.py114 # Create the Inworld Realtime LLM service.COMMENT
MEDIUMexamples/realtime/realtime-openai-video.py117 # Create a standard OpenAI LLM context object using the normal messages format. TheCOMMENT
MEDIUMexamples/realtime/realtime-grok.py155 # Create the Grok Realtime LLM serviceCOMMENT
MEDIUM…es/realtime/realtime-gemini-live-grounding-metadata.py126 # Create a processor to capture grounding metadataCOMMENT
MEDIUMexamples/realtime/realtime-azure.py140 # Create a standard LLM context object using the normal messages format. TheCOMMENT
MEDIUMexamples/realtime/realtime-aws-nova-sonic.py95 # Create the AWS Nova Sonic LLM serviceCOMMENT
MEDIUMexamples/realtime/realtime-gemini-live-files-api.py92 # Create a temporary fileSTRING
MEDIUMexamples/realtime/realtime-gemini-live-files-api.py101 # Create a sample file to uploadSTRING
MEDIUMexamples/update-settings/stt/stt-whisper-api.py64 # This file is meant to exercise Whisper API-based STT services, so we useCOMMENT
MEDIUMexamples/getting-started/04-sync-speech-and-image.py121 # Create an HTTP session for API callsCOMMENT
MEDIUMexamples/voice/voice-neuphonic-http.py67 # Create an HTTP sessionCOMMENT
MEDIUMexamples/voice/voice-elevenlabs-http.py67 # Create an HTTP sessionCOMMENT
MEDIUMexamples/voice/voice-bland-http.py67 # Create an HTTP sessionCOMMENT
MEDIUMexamples/voice/voice-aicoustics.py161 # Create the WAV fileCOMMENT
MEDIUMexamples/voice/voice-xtts.py66 # Create an HTTP sessionCOMMENT
MEDIUMexamples/voice/voice-asyncai-http.py67 # Create an HTTP sessionCOMMENT
MEDIUMexamples/voice/voice-sarvam-vad-http.py68 # Create an HTTP sessionCOMMENT
MEDIUMexamples/voice/voice-minimax.py68 # Create an HTTP sessionCOMMENT
MEDIUMexamples/voice/voice-rime-http.py67 # Create an HTTP sessionCOMMENT
MEDIUM…persistent-context/persistent-context-grok-realtime.py116# Define the tools schemaCOMMENT
MEDIUMscripts/cli/imports/update_imports.py173 # Create the complete file contentSTRING
MEDIUM.github/workflows/update-docs.yml152 ### Creating the docs PRCOMMENT
MEDIUMsrc/pipecat/pipeline/worker.py879 # Create the worker's tasks and wait for the push task, whichCOMMENT
MEDIUMsrc/pipecat/runner/daily.py208 # Create a new roomCOMMENT
MEDIUMsrc/pipecat/transports/websocket/server.py263 # Create a task to monitor the websocket connectionCOMMENT
MEDIUMsrc/pipecat/utils/base_object.py258 # Create the task. Note that this is a task per each functionCOMMENT
MEDIUMsrc/pipecat/utils/tracing/turn_trace_observer.py136 # Create a new span for this conversationCOMMENT
26 more matches not shown…
Unused Imports267 hits · 248 pts
SeverityFileLineSnippetContext
LOWtests/test_stt_usage_metrics.py167CODE
LOWtests/test_eager_user_turn_strategies.py10CODE
LOWtests/test_eager_user_turn_strategies.py10CODE
LOWtests/test_speculation_gate.py7CODE
LOWtests/test_speculation_gate.py9CODE
LOWtests/test_speculation_gate.py11CODE
LOWtests/test_runner_run.py41CODE
LOWtests/test_runner_run.py42CODE
LOWtests/test_runner_utils.py27CODE
LOWtests/test_bus_network.py14CODE
LOWtests/test_bus_network.py21CODE
LOWscripts/release-changelog.py29CODE
LOWscripts/provider-watch/digest.py20CODE
LOWscripts/provider-watch/plan.py19CODE
LOWscripts/provider-watch/probe.py46CODE
LOWscripts/provider-watch/publish.py40CODE
LOWscripts/provider-watch/inventory.py26CODE
LOWscripts/krisp/test_krisp_viva_filter_audiofile.py28CODE
LOWscripts/krisp/test_krisp_viva_turn_audiofile.py26CODE
LOWscripts/deprecations/generate.py23CODE
LOWscripts/deprecations/scan.py20CODE
LOWscripts/deprecations/generate_removals.py30CODE
LOWsrc/pipecat/pipeline/job_context.py9CODE
LOWsrc/pipecat/pipeline/task.py15CODE
LOWsrc/pipecat/pipeline/task.py15CODE
LOWsrc/pipecat/pipeline/task.py15CODE
LOWsrc/pipecat/pipeline/task.py15CODE
LOWsrc/pipecat/pipeline/task.py15CODE
LOWsrc/pipecat/evals/harness.py17CODE
LOWsrc/pipecat/evals/harness.py18CODE
LOWsrc/pipecat/evals/harness.py18CODE
LOWsrc/pipecat/evals/harness.py18CODE
LOWsrc/pipecat/evals/harness.py18CODE
LOWsrc/pipecat/evals/harness.py18CODE
LOWsrc/pipecat/evals/harness.py18CODE
LOWsrc/pipecat/evals/harness.py26CODE
LOWsrc/pipecat/evals/harness.py26CODE
LOWsrc/pipecat/evals/harness.py27CODE
LOWsrc/pipecat/evals/harness.py27CODE
LOWsrc/pipecat/evals/harness.py28CODE
LOWsrc/pipecat/evals/harness.py29CODE
LOWsrc/pipecat/evals/harness.py29CODE
LOWsrc/pipecat/evals/session.py28CODE
LOWsrc/pipecat/evals/session.py34CODE
LOWsrc/pipecat/evals/session.py48CODE
LOWsrc/pipecat/evals/session.py51CODE
LOWsrc/pipecat/evals/session.py52CODE
LOWsrc/pipecat/evals/session.py53CODE
LOWsrc/pipecat/evals/scenario.py120CODE
LOWsrc/pipecat/evals/scenario.py120CODE
LOWsrc/pipecat/evals/scenario.py121CODE
LOWsrc/pipecat/evals/scenario.py121CODE
LOWsrc/pipecat/evals/scenario.py121CODE
LOWsrc/pipecat/evals/scenario.py121CODE
LOWsrc/pipecat/evals/scenario.py121CODE
LOWsrc/pipecat/evals/scenario.py121CODE
LOWsrc/pipecat/evals/scenario.py121CODE
LOWsrc/pipecat/evals/scenario.py121CODE
LOWsrc/pipecat/evals/scenario.py133CODE
LOWsrc/pipecat/evals/scenario.py133CODE
207 more matches not shown…
AI Slop Vocabulary65 hits · 218 pts
SeverityFileLineSnippetContext
MEDIUMevals/release/manifest.yaml352 # harness connects; the scenario waits for the image.COMMENT
MEDIUMevals/release/manifest.yaml392 # LLM responds to, so the harness can assert on the resulting transcription andCOMMENT
MEDIUM…ls/release/scenarios/scripted/food_ordering_sushi.yaml30 # pipeline down before the farewell llm_response reaches the harness.COMMENT
MEDIUMevals/release/scenarios/scripted/hello_world.yaml13 # pipeline down before the farewell llm_response reaches the harness.COMMENT
MEDIUM…ls/release/scenarios/scripted/food_ordering_pizza.yaml38 # pipeline down before the farewell llm_response reaches the harness.COMMENT
MEDIUM…ls/release/scenarios/scripted/acme_handoff_voices.yaml55 # reaches the harness, so assert the call alone.COMMENT
MEDIUM…release/scenarios/scripted/restaurant_reservation.yaml8# farewell llm_response reaches the harness.COMMENT
MEDIUMevals/release/scenarios/scripted/generate_image.yaml3# The bot generates an image from a fixed prompt when the harness connects. TheCOMMENT
MEDIUMevals/release/scenarios/scripted/insurance_quote.yaml44 # pipeline down before the farewell llm_response reaches the harness.COMMENT
MEDIUMevals/release/scenarios/scripted/acme_handoff.yaml34 # reaches the harness, so assert the call alone.COMMENT
MEDIUMevals/release/scenarios/scripted/language_switch.yaml6# survives the bot's TTS and the harness's STT.COMMENT
MEDIUM…ase/scenarios/scripted/capital_question_recording.yaml5# than the harness's TTS voice. The clip is 24 kHz where bots take 16 kHz input,COMMENT
MEDIUMevals/release/scenarios/scripted/keenable.yaml26 # the judged answer is robust over time.COMMENT
MEDIUM…s/release/scenarios/scripted/multi_worker_handoff.yaml10 # reaches the harness.COMMENT
MEDIUMevals/release/scenarios/scripted/capital_question.yaml8# robust to transcription than arithmetic: numbers are homophone-prone on bothCOMMENT
MEDIUM⚡tests/test_evals_session.py233 # The bot's reports about the harness (its raw VAD and turn-level speaking)COMMENT
MEDIUM⚡tests/test_evals_session.py1495 # The harness streams user audio only when audio output is enabled, soCOMMENT
MEDIUMtests/test_evals_session.py1590 # The harness streams the user's side continuously (silenceCOMMENT
MEDIUMtests/test_tts_frame_ordering.py1697 # — an ordering quirk of the test harness sending everything nearlyCOMMENT
MEDIUM⚡tests/test_word_completion_tracker.py3102 text = "---\n\n### **Summary**\nThe provided images are comprehensive."CODE
MEDIUM⚡tests/test_word_completion_tracker.py3105 ["---.", "###", "**Summary**.", "The", "provided", "images", "are", "comprehensive."],CODE
MEDIUMtests/test_pipeline.py534 # is a guaranteed lower bound, so this is robust to scheduling jitter whileCOMMENT
MEDIUMtests/test_evals_serializer.py206 # Already at the harness STT rate (16 kHz): passes through unchanged.COMMENT
MEDIUMtests/test_evals_serializer.py220 # A different rate is resampled to the harness STT rate for the pipeline VAD/STT.COMMENT
MEDIUMtests/cli/test_project_generation.py865 # schema (EvalScenarioFile.load is the loader the harness itself uses).COMMENT
MEDIUMtests/cli/test_project_generation.py875 # The project env carries what the harness needs via the `evals` extra: theCOMMENT
LOW…s/function-calling/function-calling-moondream-video.py97 # For all other frames, just pass them throughCOMMENT
LOWexamples/transcription/transcription-google-llm.py156 # keep the token count down, but for now, we'll just use the whole thing.STRING
MEDIUMexamples/features/features-add-tool-change-messages.py123 # what we want for this validation harness. Pull it withCOMMENT
MEDIUMexamples/realtime/realtime-aws-nova-sonic.py107 # Session continuation is enabled by default, allowing seamlessCOMMENT
MEDIUMscripts/provider-watch/probe.py281# ---------------------------------------------------------------------- harnessCOMMENT
MEDIUMsrc/pipecat/evals/simulation.py131# What a measured metric can measure, computed by the harness from the run.COMMENT
MEDIUM⚡src/pipecat/evals/suite.py131# How long to wait for a freshly spawned bot to start listening (the harnessCOMMENT
MEDIUM⚡src/pipecat/evals/suite.py134# How long to wait for a bot subprocess to exit after the harness asks it toCOMMENT
MEDIUM⚡src/pipecat/evals/suite.py137# Safety net for a hung harness worker. The harness's own per-expectation timeoutsCOMMENT
MEDIUM⚡src/pipecat/evals/suite.py146# The harness runs three sub-pipelines in-process and tags each one's logs with anCOMMENT
MEDIUM⚡src/pipecat/evals/suite.py147# ``eval_pipeline`` context value via logger.contextualize (see harness.py),COMMENT
MEDIUM⚡src/pipecat/evals/suite.py149# connection, harness internals) falls through to "harness". The label is theCOMMENT
MEDIUMsrc/pipecat/evals/suite.py1167 # The worker crashed before writing a result; its traceback is in the harness log.COMMENT
MEDIUMsrc/pipecat/evals/results.py37 "error", # the harness itself raised (a sub-pipeline, the judge, ...), not the botCODE
MEDIUMsrc/pipecat/evals/transport.py97 # The harness sends the image encoded over the wire, but a real cameraCOMMENT
MEDIUMsrc/pipecat/evals/client.py316# The harness's own pipeline reported an error: a service in it (the personaCOMMENT
MEDIUMsrc/pipecat/evals/client.py599 # Write the recording first: the recorder is harness-owned and fed rawCOMMENT
MEDIUMsrc/pipecat/evals/session.py162 # Timestamped trace of the harness's own decisions, for diagnosing flakes.COMMENT
MEDIUMsrc/pipecat/evals/_session_subprocess.py48 # harness's per-pipeline loguru output -- now in this worker process.COMMENT
MEDIUMsrc/pipecat/evals/client_transport.py269 # the harness recorder aligns tracks by wall-clock, so a continuousCOMMENT
MEDIUMsrc/pipecat/evals/judge.py484 # The conversation the judge evaluates against, grown by the harness overCOMMENT
MEDIUM⚡src/pipecat/evals/serializer.py54# ``CancelWorkerFrame``, so the harness can end a scenario by gracefully tearing down theCOMMENT
MEDIUM⚡src/pipecat/evals/serializer.py63# without a real camera. The harness sends the image encoded over the wire; theCOMMENT
MEDIUM⚡src/pipecat/evals/serializer.py70# so the harness reader sees it; the harness transcribes the audio locally.COMMENT
MEDIUM⚡src/pipecat/evals/serializer.py77# Rate the harness resamples the bot's audio to before its pipeline VAD/STT seeCOMMENT
MEDIUM⚡src/pipecat/evals/serializer.py79# the harness configures its input transport at this rate to match.COMMENT
MEDIUM⚡src/pipecat/evals/serializer.py98 # wire so the harness can observe semantic events.COMMENT
MEDIUM⚡src/pipecat/evals/serializer.py107 # flood the harness.COMMENT
MEDIUM⚡src/pipecat/evals/serializer.py109 # The most recent image the harness registered (still-encoded bytes, MIMECOMMENT
MEDIUM⚡src/pipecat/evals/serializer.py259# The bot's reports about *the user it is talking to* (i.e. about the harness):COMMENT
MEDIUM⚡src/pipecat/evals/serializer.py261# harness surfaces these as scenario events, but does not let them drive its ownCOMMENT
MEDIUM⚡src/pipecat/evals/serializer.py265# computed locally by the harness's own user aggregator from the bot's audio (aCOMMENT
MEDIUM⚡src/pipecat/evals/serializer.py266# different signal than the bot's VAD on the harness's audio). Routing the reportsCOMMENT
MEDIUM⚡src/pipecat/evals/serializer.py276 # doesn't become an InterruptionFrame, which the harness's own userCOMMENT
5 more matches not shown…
Hallucination Indicators14 hits · 140 pts
SeverityFileLineSnippetContext
CRITICALtests/test_livekit_transport.py799 transport._client.room.remote_participants.get.assert_not_called()CODE
CRITICALtests/test_livekit_transport.py817 transport._client.room.remote_participants.get.assert_not_called()CODE
CRITICALtests/test_sarvam_llm.py344 service._client.chat.completions.create.assert_not_called()CODE
CRITICALtests/test_sarvam_llm.py417 service._client.chat.completions.create.assert_not_called()CODE
CRITICALtests/test_sarvam_llm.py474 service._client.chat.completions.create.assert_not_called()CODE
CRITICALtests/test_sarvam_llm.py501 service._client.chat.completions.create.assert_not_called()CODE
CRITICALtests/test_sarvam_llm.py541 service._client.chat.completions.create.assert_not_called()CODE
CRITICALtests/test_sarvam_llm.py617 service._client.chat.completions.create.assert_not_called()CODE
CRITICALtests/test_sarvam_llm.py657 service._client.chat.completions.create.assert_not_called()CODE
CRITICALtests/test_anthropic_thinking_defaults.py38 return service._client.beta.messages.create.call_args.kwargs.get("thinking")CODE
CRITICALtests/test_run_inference.py81 service._client.chat.completions.create.assert_called_once_with(CODE
CRITICALtests/test_run_inference.py193 service._client.beta.messages.create.assert_called_once_with(CODE
CRITICALtests/test_run_inference.py263 service._client.aio.models.generate_content.assert_called_once()CODE
CRITICALsrc/pipecat/services/openai/tts.py282 async with self._client.audio.speech.with_streaming_response.create(CODE
Over-Commented Block133 hits · 122 pts
SeverityFileLineSnippetContext
LOWpyproject.toml261 # prescribes trio.Path or anyio.path for filesystem work; pipecat runs onCOMMENT
LOWevals/release/run.sh1#!/usr/bin/env shCOMMENT
LOWevals/release/manifest.yaml1# Release evals manifest: which scenarios each bot runs.COMMENT
LOWevals/release/manifest.yaml381 #COMMENT
LOWevals/release/manifest.yaml401 #COMMENT
LOWevals/release/manifest.yaml441 # Web search: the bot answers a current-events question by calling Keenable'sCOMMENT
LOW…ls/release/scenarios/scripted/acme_handoff_voices.yaml1# Each worker brings its own TTS and its own voice, so a hand-off is twoCOMMENT
LOWevals/release/scenarios/scripted/empty_user_turn.yaml1name: empty_user_turnCOMMENT
LOW…s/release/scenarios/scripted/multi_worker_handoff.yaml41 eval: "the bot confirms a reservation is available at the requested time"COMMENT
LOW…elease/scenarios/scripted/async_tool_cancellation.yaml41 # rounds the turn off — confirming the cancellation, or asking what else it canCOMMENT
LOWevals/turn-completion/run.sh1#!/usr/bin/env shCOMMENT
LOWtests/test_aggregated_frame_sequencer.py1321 tts_frames[0].includes_inter_frame_spaces,COMMENT
LOWtests/test_word_completion_tracker.py1981COMMENT
LOWtests/test_rtvi_processor.py61 # TODO: enable this once RTVI 2.0.0 is supported by all our client SDKs, and we start to emit the warnings again.COMMENT
LOWtests/test_websocket_transport.py1#COMMENT
LOWtests/test_websocket_transport.py21# self.serialized_sample_frame = self.transport._serializer.serialize(COMMENT
LOWtests/test_websocket_transport.py41# mock_websocket.send.call_args[0][0], self.serialized_sample_frame)COMMENT
LOWtests/test_websocket_transport.py61# TTSStartFrame(),COMMENT
LOWtests/test_websocket_transport.py81# async def test_serializer_parameter(self):COMMENT
LOWtests/test_websocket_transport.py101# self.transport = WebsocketTransport(COMMENT
LOW…/multi-worker/ui-worker/document-review/client/main.js41// In-flight review groups, keyed by job_id. Rendered as cards aboveCOMMENT
LOWexamples/rag/rag-mem0.py181COMMENT
LOWexamples/realtime/realtime-openai.py201 logger.info("Adding tools")COMMENT
LOWexamples/realtime/realtime-openai.py221 # )COMMENT
LOWexamples/realtime/realtime-gemini-live.py141 context = LLMContext()COMMENT
LOWexamples/realtime/realtime-grok.py181 # Create context with initial message and toolsCOMMENT
LOWexamples/realtime/realtime-grok.py201 context,COMMENT
LOWexamples/realtime/realtime-ultravox.py181 )COMMENT
LOWexamples/realtime/realtime-grok-async-tool.py121 # of a user's turn; uncomment the below imports and user_params toCOMMENT
LOW…es/realtime/realtime-gemini-live-grounding-metadata.py121 voice="Charon", # Aoede, Charon, Fenrir, Kore, PuckCOMMENT
LOWexamples/realtime/realtime-azure.py141 # OpenAIRealtimeBetaLLMService will convert this internally to messages that theCOMMENT
LOWexamples/realtime/realtime-aws-nova-sonic.py121 # AWS Nova Sonic drives the conversation server-side.COMMENT
LOWexamples/realtime/realtime-gemini-live-video.py81 {COMMENT
LOWexamples/update-settings/llm/llm-gemini-live.py61 settings=GeminiLiveLLMService.Settings(COMMENT
LOWexamples/thinking/thinking-google.py121 # Kick off the conversation.COMMENT
LOWexamples/thinking/thinking-google-vertex.py121 logger.info("Client connected")COMMENT
LOWexamples/getting-started/04-sync-speech-and-image.py141 key=os.getenv("FAL_KEY"),COMMENT
LOW…t/turn-management-filter-incomplete-turns-user-idle.py101 context = LLMContext()COMMENT
LOW…-management/turn-management-filter-incomplete-turns.py101 # with one of:COMMENT
LOW…management-filter-incomplete-turns-function-calling.py121COMMENT
LOW…-management/turn-management-smart-turn-local-coreml.py41#COMMENT
LOWexamples/flows/python/warm_transfer.py81COMMENT
LOWexamples/flows/python/warm_transfer.py101# - continued_customer_interactionCOMMENT
LOWscripts/deprecations/scan.py41# The first reference in a directive body (role or backtick) — the replacement,COMMENT
LOW.github/PULL_REQUEST_TEMPLATE.md1#### Please describe the changes in your PR. If it is addressing an issue, please reference that as well.COMMENT
LOWsrc/pipecat/pipeline/worker.py581 self._sink = PipelineSink(self._sink_push_frame, name=f"{self}::Sink")COMMENT
LOWsrc/pipecat/pipeline/parallel_pipeline.py141COMMENT
LOWsrc/pipecat/pipeline/llm_with_backend.py81RELAY_NOTE = (COMMENT
LOWsrc/pipecat/evals/events.py101 # arrival of its first token (``started_at``), for the timing measures.COMMENT
LOWsrc/pipecat/evals/serializer.py41COMMENT
LOWsrc/pipecat/evals/serializer.py61# transport hands it back as a ``UserImageRawFrame`` when the bot asks for a userCOMMENT
LOWsrc/pipecat/evals/script.py301COMMENT
LOWsrc/pipecat/transports/base_output.py461 # came from frames with the same ``interruptible`` flag, so a chunkCOMMENT
LOWsrc/pipecat/transports/smallwebrtc/connection.py41 raise ImportError(f"Missing module: {e}") from eCOMMENT
LOWsrc/pipecat/transports/smallwebrtc/connection.py61# SCTP retransmits at the same size, and the data channel silently stalls.COMMENT
LOWsrc/pipecat/transports/moq/transport.py61# checkers resolve it as a non-Exception type even though the ExceptionCOMMENT
LOWsrc/pipecat/transports/moq/transport.py261# Transport-level fields on every transcript record. The transcript is aCOMMENT
LOWsrc/pipecat/transports/moq/transport.py281# A dropped connection ends the peer's subscriptions a beat before theCOMMENT
LOWsrc/pipecat/transports/moq/transport.py301# absorbed as that much measured jitter in the player's delay floor —COMMENT
LOWsrc/pipecat/transports/moq/transport.py641 # snapshot helper (publish_json_snapshot) would collapse to theCOMMENT
73 more matches not shown…
Redundant / Tautological Comments74 hits · 112 pts
SeverityFileLineSnippetContext
LOWtests/test_markdown_text_filter.py52 # Check if spaces are in the same positionsSTRING
LOWtests/test_flows_context_strategies.py325 # Set nodes to trigger summary generationCOMMENT
LOWtests/test_flows_context_strategies.py361 # Set nodes to trigger summary generationCOMMENT
LOWtests/test_get_llm_invocation_params.py688 # Check if it's image or audio based on the text contentCOMMENT
LOWtests/test_aic_filter.py16# Check if aic_sdk is availableCOMMENT
LOWtests/test_aic_quail_vad.py12# Check if aic_sdk is availableCOMMENT
LOWdocs/api/build-docs.sh15# Check if sphinx-build is availableCOMMENT
LOWscripts/cli/imports/import_generator.py89 # Check if this file contains the classCOMMENT
LOWscripts/cli/imports/import_generator.py336 # Check if this is a standard library module that should be imported directlyCOMMENT
LOWscripts/cli/configs/config_generator.py182 # Check if parameter has a default valueCOMMENT
LOWscripts/cli/configs/config_generator.py259 # Check if this service has manual_config flag in metadataCOMMENT
LOWscripts/cli/configs/config_generator.py263 # Check if this is a special case that needs manual handlingCOMMENT
LOWscripts/cli/configs/config_generator.py285 # Check if this service uses the Settings patternCOMMENT
LOWscripts/cli/configs/config_generator.py359 # Check if this service has a manual configCOMMENT
LOWscripts/cli/configs/config_generator.py397 # Check if multi-lineCOMMENT
LOWscripts/krisp/test_krisp_viva_filter_audiofile.py119 # Check if sample rate is supportedCOMMENT
LOWscripts/krisp/test_krisp_viva_turn_audiofile.py92 # Check if sample rate is supportedCOMMENT
LOWscripts/krisp/test_krisp_viva_turn_audiofile.py214 # Print resultsCOMMENT
LOW.github/workflows/generate-changelog.yml103 # Check if type is validCOMMENT
LOWsrc/pipecat/pipeline/worker_observer.py102 # Add the observer to the list.COMMENT
LOWsrc/pipecat/runner/run.py540 # Check if it has a bot functionCOMMENT
LOWsrc/pipecat/transports/base_output.py542 # Check if we have an audio mixer for our destination.COMMENT
LOWsrc/pipecat/utils/string.py228 # Check if any start tag appears in the textCOMMENT
LOWsrc/pipecat/utils/tracing/setup.py16# Check if OpenTelemetry is availableCOMMENT
LOWsrc/pipecat/utils/tracing/service_decorators.py1013 # Check if tools is not None and not NOT_GIVENCOMMENT
LOWsrc/pipecat/utils/context/llm_context_summarization.py533 # Check if the first message is a system message (initial system prompt).COMMENT
LOWsrc/pipecat/utils/text/pattern_pair_aggregator.py227 # Check if this pattern was already processedCOMMENT
LOWsrc/pipecat/utils/text/pattern_pair_aggregator.py328 # Check if we have incomplete patternsCOMMENT
LOWsrc/pipecat/cli/registry/service_loader.py169 # Check if it's in SERVICE_CONFIGSCOMMENT
LOWsrc/pipecat/cli/registry/service_loader.py173 # Check if it's a transportCOMMENT
LOWsrc/pipecat/cli/registry/service_loader.py296 # Check if config existsCOMMENT
LOWsrc/pipecat/cli/registry/service_loader.py300 # Check if imports existCOMMENT
LOWsrc/pipecat/cli/generators/project.py64 # Check if the new name is availableCOMMENT
LOWsrc/pipecat/cli/generators/project.py118 # Check if project already existsCOMMENT
LOWsrc/pipecat/cli/generators/project.py248 # Check if any service config contains "session=" parameterCOMMENT
LOWsrc/pipecat/cli/generators/project.py252 # Check if the config contains session= or aiohttp_session=COMMENT
LOWsrc/pipecat/cli/generators/project.py299 # Check if we need aiohttp session and add import if neededCOMMENT
LOWsrc/pipecat/cli/generators/project.py538 # Check if this is Daily PSTN or Twilio + Daily SIP (special handling)COMMENT
LOWsrc/pipecat/adapters/services/gemini_adapter.py416 # Check if we only have function-related messages (no regular text)COMMENT
LOW…pecat/processors/aggregators/llm_response_universal.py2210 # Check if this image is a result of a function call.COMMENT
LOW…pecat/processors/aggregators/llm_context_summarizer.py281 # Check if we've reached the token limitCOMMENT
LOW…pecat/processors/aggregators/llm_context_summarizer.py285 # Check if we've exceeded max unsummarized messagesCOMMENT
LOW…pecat/processors/aggregators/llm_context_summarizer.py414 # Check if this is the result we're waiting for. Both auto and manualCOMMENT
LOW…pecat/processors/aggregators/llm_context_summarizer.py449 # Check if we still have enough messagesCOMMENT
LOWsrc/pipecat/serializers/vonage.py128 # Check if this is binary audio dataCOMMENT
LOWsrc/pipecat/audio/filters/rnnoise_filter.py134 # Check if output is float (needs scaling) or int16 (ready)COMMENT
LOWsrc/pipecat/audio/turn/krisp_viva_turn.py319 # Check if turn is complete based on probability thresholdCOMMENT
LOWsrc/pipecat/audio/turn/smart_turn/http_smart_turn.py75 # Check if successfulCOMMENT
LOWsrc/pipecat/transcriptions/language.py660 # Check if language is in the verified mapCOMMENT
LOWsrc/pipecat/observers/loggers/metrics_log_observer.py108 # Check if this metrics type should be loggedCOMMENT
LOWsrc/pipecat/observers/loggers/debug_log_observer.py151 # Check if this frame type is in our filtersCOMMENT
LOWsrc/pipecat/observers/loggers/debug_log_observer.py182 # Check if we should log this frameCOMMENT
LOW⚡src/pipecat/flows/manager.py550 # Check if all function calls are complete using Pipecat's stateCOMMENT
LOWsrc/pipecat/services/websocket_service.py300 # Check if the connection died too quickly after being established. ThisCOMMENT
LOWsrc/pipecat/services/asyncai/tts.py380 # Check if this message belongs to the current context.COMMENT
LOWsrc/pipecat/services/speechmatics/tts.py219 # Increment attemptCOMMENT
LOWsrc/pipecat/services/speechmatics/tts.py222 # Check if we've exceeded the maximum number of attemptsCOMMENT
LOWsrc/pipecat/services/azure/tts.py518 # Check if language starts with CJK language codesCOMMENT
LOWsrc/pipecat/services/google/tts.py837 # Check if the voice is a Chirp voice (including Chirp 3) or Journey voiceCOMMENT
LOWsrc/pipecat/services/google/vertex/llm.py117 # Check if user incorrectly passed api_key, which is used by parentCOMMENT
14 more matches not shown…
Modern AI Meta-Vocabulary31 hits · 93 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml220# CLI project-scaffolding templates (jinja + client TS/JS/JSON/CSS trees). TheCOMMENT
MEDIUMREADME.md50The [Pipecat CLI](https://docs.pipecat.ai/api-reference/cli/overview) ships with `pipecat-ai` — install it with `uv toolCODE
MEDIUMREADME.md62Use [Pipecat Skills](https://github.com/pipecat-ai/skills) with [Claude Code](https://claude.ai/code) to scaffold projecCODE
MEDIUMtests/test_llm_service.py142 # The tool was not advertised, so this is treated as a hallucinationCOMMENT
MEDIUM⚡tests/cli/test_quickstart.py49 # quickstart is a fixed preset; combining it with scaffold flags should warn ratherCOMMENT
MEDIUM⚡tests/cli/test_quickstart.py50 # than silently ignore them — but still scaffold the canned (web) bot.COMMENT
MEDIUMtests/cli/test_init_interactive.py53 # The build-method prompt returns "scaffold", so init runs the wizard in-place,COMMENT
MEDIUMtests/cli/test_init_interactive.py70 # init initializes for agent-led dev before scaffolding.COMMENT
MEDIUMtests/cli/test_project_generation.py684 # Mirror the scaffold_quickstart config from cli/scaffold.py.COMMENT
MEDIUM⚡tests/cli/test_init_agent_ready.py230 # Its one still-useful piece (Context Hub setup) lives in the scaffold's README.COMMENT
MEDIUM⚡tests/cli/test_init_agent_ready.py274 # The scaffold lands in init's target dir, in-place, named after it.COMMENT
MEDIUM⚡tests/cli/test_init_agent_ready.py277 # skipped — its place is taken by the scaffold's README (see test_quickstart_*).COMMENT
MEDIUMtests/cli/test_init_agent_ready.py171 # The scaffold path skips the from-scratch developer guide.COMMENT
MEDIUMtests/cli/test_init_agent_ready.py298 # Re-running init to refresh the guide in a scaffolded project must not offer to scaffold.COMMENT
MEDIUM⚡tests/cli/test_init_in_place.py51 # The scaffold path skips GETTING_STARTED.md — the README is the start-here.COMMENT
MEDIUMexamples/features/features-add-tool-change-messages.py122 # hallucination-prone of the easily accessible models — exactlyCOMMENT
MEDIUMsrc/pipecat/cli/main.py87 # coding-agent guide and can scaffold a runnable bot (interactively or from flags/aCOMMENT
MEDIUMsrc/pipecat/cli/commands/init.py70# `--help` panels grouping the scaffold flags, so `pipecat init --help` reads asCOMMENT
MEDIUMsrc/pipecat/cli/commands/init.py505 # Scaffold now: run the wizard in-place. The scaffold lands in the same directory thatCOMMENT
MEDIUMsrc/pipecat/cli/commands/init.py554# Scaffold options that, when present, switch `init` to non-interactive scaffolding.COMMENT
MEDIUMsrc/pipecat/cli/commands/init.py565# Every scaffold/feature option, by parameter name — used to detect flags the userCOMMENT
MEDIUM⚡src/pipecat/cli/commands/init.py757 pipecat init my-bot --config project-config.json # scaffold from a config fileCODE
MEDIUM⚡src/pipecat/cli/commands/init.py761 # `pipecat init quickstart`: scaffold the canned bot in-place, with the coding-agent guide.STRING
MEDIUM⚡src/pipecat/cli/commands/init.py763 # quickstart is a fixed preset — scaffold flags don't apply. Say so instead ofSTRING
MEDIUMsrc/pipecat/cli/commands/init.py815 # No scaffold options: write the guide and route to a build method.STRING
MEDIUMsrc/pipecat/cli/agent_templates/AGENTS.md19## 1. Start by scaffoldingCOMMENT
MEDIUMsrc/pipecat/cli/agent_templates/AGENTS.md31# Headless: any scaffold flag (--bot-type, a service, or --config) switches off the wizard.COMMENT
MEDIUMsrc/pipecat/cli/agent_templates/AGENTS.md292[Pipecat Cloud](https://www.daily.co/products/pipecat-cloud/) is a **hosted** option — deploying there is optional (run CODE
MEDIUMsrc/pipecat/services/google/gemini_live/llm.py1453 # Add context window compression to configuration, if enabled.COMMENT
MEDIUMsrc/pipecat/services/google/gemini_live/llm.py319 trigger_tokens: int | None = Field(default=None) # None = use default (80% of context window)CODE
MEDIUMsrc/pipecat/services/whisper/stt.py609 # Drop likely hallucinationsCOMMENT
AI Structural Patterns82 hits · 77 pts
SeverityFileLineSnippetContext
LOWsrc/pipecat/pipeline/worker.py276CODE
LOWsrc/pipecat/evals/suite.py525CODE
LOWsrc/pipecat/evals/session.py173CODE
LOWsrc/pipecat/evals/session.py194CODE
LOWsrc/pipecat/evals/session.py215CODE
LOWsrc/pipecat/evals/session.py236CODE
LOWsrc/pipecat/evals/script_session.py131CODE
LOWsrc/pipecat/runner/daily.py77CODE
LOWsrc/pipecat/transports/lemonslice/api.py41CODE
LOWsrc/pipecat/tests/utils.py123CODE
LOWsrc/pipecat/bus/network/pgmq.py80CODE
LOWsrc/pipecat/utils/string.py348CODE
LOWsrc/pipecat/utils/tracing/service_attributes.py122CODE
LOWsrc/pipecat/utils/tracing/service_attributes.py186CODE
LOWsrc/pipecat/utils/tracing/service_attributes.py279CODE
LOWsrc/pipecat/utils/tracing/service_attributes.py384CODE
LOWsrc/pipecat/utils/text/transforms/voice_formatter.py32CODE
LOWsrc/pipecat/cli/config_validator.py38CODE
LOWsrc/pipecat/cli/commands/eval.py385CODE
LOWsrc/pipecat/cli/commands/eval.py1142CODE
LOWsrc/pipecat/cli/commands/init.py587CODE
LOWsrc/pipecat/audio/resamplers/resampy_resampler.py64CODE
LOWsrc/pipecat/audio/resamplers/soxr_stream_resampler.py119CODE
LOWsrc/pipecat/audio/resamplers/soxr_resampler.py59CODE
LOWsrc/pipecat/audio/vad/aic_quail_vad.py75CODE
LOWsrc/pipecat/workers/runner.py109CODE
LOWsrc/pipecat/services/tts_service.py159CODE
LOWsrc/pipecat/services/cartesia/tts.py268CODE
LOWsrc/pipecat/services/cartesia/tts.py829CODE
LOWsrc/pipecat/services/inworld/tts.py174CODE
LOWsrc/pipecat/services/inworld/tts.py633CODE
LOWsrc/pipecat/services/inworld/realtime/llm.py258CODE
LOWsrc/pipecat/services/asyncai/tts.py106CODE
LOWsrc/pipecat/services/asyncai/tts.py508CODE
LOWsrc/pipecat/services/openclaw/gateway.py67CODE
LOWsrc/pipecat/services/openclaw/client.py227CODE
LOWsrc/pipecat/services/speechmatics/stt.py394CODE
LOWsrc/pipecat/services/azure/tts.py299CODE
LOWsrc/pipecat/services/rime/tts.py175CODE
LOWsrc/pipecat/services/rime/tts.py915CODE
LOWsrc/pipecat/services/gladia/stt.py215CODE
LOWsrc/pipecat/services/google/tts.py1074CODE
LOWsrc/pipecat/services/google/tts.py1314CODE
LOWsrc/pipecat/services/google/llm.py211CODE
LOWsrc/pipecat/services/google/stt.py888CODE
LOWsrc/pipecat/services/google/vertex/llm.py66CODE
LOWsrc/pipecat/services/google/gemini_live/llm.py620CODE
LOWsrc/pipecat/services/google/gemini_live/vertex/llm.py60CODE
LOWsrc/pipecat/services/soniox/stt.py281CODE
LOWsrc/pipecat/services/fal/stt.py188CODE
LOWsrc/pipecat/services/deepgram/stt.py69CODE
LOWsrc/pipecat/services/deepgram/stt.py302CODE
LOWsrc/pipecat/services/deepgram/flux/stt.py109CODE
LOWsrc/pipecat/services/deepgram/flux/sagemaker/stt.py99CODE
LOWsrc/pipecat/services/deepgram/sagemaker/stt.py98CODE
LOWsrc/pipecat/services/groq/stt.py40CODE
LOWsrc/pipecat/services/elevenlabs/tts.py280CODE
LOWsrc/pipecat/services/elevenlabs/tts.py739CODE
LOWsrc/pipecat/services/elevenlabs/stt.py514CODE
LOWsrc/pipecat/services/neuphonic/tts.py112CODE
22 more matches not shown…
Modern Structural Boilerplate61 hits · 59 pts
SeverityFileLineSnippetContext
LOWtests/test_ui_worker.py81async def _settle() -> None:CODE
LOWtests/test_vonage_video_connector.py356 def _setup_audio_ready_callback(self, client: VonageClient, call_ready_for_audio: bool) -> None:CODE
LOWtests/test_vonage_video_connector.py378 def _setup_subscriber_callbacks(self, client: VonageClient) -> None:CODE
LOWtests/test_vonage_video_connector.py440 async def set_event_when_drained() -> None:CODE
LOWtests/test_xai_stt.py23def _setup_service(service: XAISTTService, monkeypatch, sample_rate: int) -> None:CODE
LOWtests/test_gemini_live_interaction_status.py99async def _setup_service(service: GeminiLiveLLMService) -> None:CODE
LOWtests/test_assemblyai_stt.py32def _setup_service(service: AssemblyAISTTService, monkeypatch, sample_rate: int) -> None:CODE
LOWtests/aic_mocks.py51 def set_parameter(self, param: Any, value: float) -> None:CODE
LOWtests/aic_mocks.py74 def set_parameter(self, param: Any, value: float) -> None:CODE
LOWexamples/multi-worker/sensor-controller/sensor.py98 def set_target(self, value: float) -> None:CODE
LOWexamples/multi-worker/sensor-controller/sensor.py102 def set_response_rate(self, rate: float) -> None:CODE
LOWsrc/pipecat/pipeline/task.py23__all__ = [CODE
LOWsrc/pipecat/pipeline/runner.py20__all__ = ["PipelineRunner", "WorkerRunner"]CODE
LOWsrc/pipecat/evals/events.py199 def _update_bot_transcribed(self) -> None:CODE
LOWsrc/pipecat/evals/scenario.py142__all__ = [CODE
LOWsrc/pipecat/evals/judge.py745 async def _setup(self) -> None:CODE
LOW⚡src/pipecat/evals/serializer.py113 def set_capture_audio(self, capture: bool) -> None:CODE
LOW⚡src/pipecat/evals/serializer.py117 def set_capture_images(self, capture: bool) -> None:CODE
LOWsrc/pipecat/evals/audio.py18__all__ = ["load_user_audio"]CODE
LOWsrc/pipecat/transports/smallwebrtc/connection.py168 def set_enabled(self, enabled: bool) -> None:CODE
LOWsrc/pipecat/bus/__init__.py58__all__ = [CODE
LOWsrc/pipecat/bus/ui/__init__.py21__all__ = [CODE
LOWsrc/pipecat/bus/network/pgmq_backends.py342__all__ = [CODE
LOWsrc/pipecat/bus/network/__init__.py20__all__ = ["PgmqBus", "RedisBus"]CODE
LOWsrc/pipecat/bus/local/__init__.py11__all__ = ["AsyncQueueBus"]CODE
LOWsrc/pipecat/bus/adapters/__init__.py17__all__ = [CODE
LOWsrc/pipecat/bus/serializers/__init__.py16__all__ = [CODE
LOWsrc/pipecat/utils/deprecation.py73__all__ = [CODE
LOWsrc/pipecat/utils/http.py18__all__ = ["AsyncHTTPClient", "TIMEOUT_EXCEPTIONS", "connection_limits"]CODE
LOWsrc/pipecat/utils/errors.py17__all__ = [CODE
LOWsrc/pipecat/utils/context/aggregated_frame_sequencer.py84 def set_language(self, language: str | None) -> None:CODE
LOWsrc/pipecat/utils/text/base_text_aggregator.py106 def set_language(self, language: str | None) -> None:CODE
LOWsrc/pipecat/utils/text/transforms/__init__.py38__all__ = [CODE
LOWsrc/pipecat/cli/registry/__init__.py19__all__ = [CODE
LOWsrc/pipecat/cli/prompts/__init__.py11__all__ = ["ProjectConfig", "ask_project_questions"]CODE
LOWsrc/pipecat/cli/commands/__init__.py11__all__ = ["init"]CODE
LOWsrc/pipecat/cli/commands/init.py418def _setup_context_hub() -> None:CODE
LOWsrc/pipecat/cli/generators/__init__.py11__all__ = ["ProjectGenerator"]CODE
LOWsrc/pipecat/extensions/ivr/ivr_navigator.py101 def update_saved_messages(self, messages: list[LLMContextMessage]) -> None:CODE
LOWsrc/pipecat/processors/frameworks/rtvi/__init__.py27__all__ = [CODE
LOWsrc/pipecat/serializers/genesys.py243 def set_output_variables(self, variables: dict[str, Any]) -> None:CODE
LOWsrc/pipecat/audio/vad/aic_quail_vad.py247 def set_sample_rate(self, sample_rate: int) -> None:CODE
LOWsrc/pipecat/registry/__init__.py11__all__ = [CODE
LOWsrc/pipecat/workers/runner.py373 async def _setup_session(self) -> None:CODE
LOWsrc/pipecat/workers/runner.py538 def _setup_sigint(self) -> None:CODE
LOWsrc/pipecat/workers/runner.py547 def _setup_sigterm(self) -> None:CODE
LOWsrc/pipecat/workers/ui/__init__.py35__all__ = [CODE
LOWsrc/pipecat/workers/llm/__init__.py14__all__ = [CODE
LOWsrc/pipecat/workers/proxy/__init__.py14__all__ = [CODE
LOWsrc/pipecat/workers/proxy/websocket/__init__.py12__all__ = [CODE
LOWsrc/pipecat/turns/user_start/__init__.py19__all__ = [CODE
LOWsrc/pipecat/turns/user_stop/__init__.py17__all__ = [CODE
LOWsrc/pipecat/turns/user_mute/__init__.py15__all__ = [CODE
LOWsrc/pipecat/flows/__init__.py53__all__ = [CODE
LOWsrc/pipecat/flows/manager.py608 async def set_node_from_config(self, node_config: NodeConfig) -> None:CODE
LOWsrc/pipecat/flows/manager.py673 async def _set_node(self, node_id: str, node_config: NodeConfig) -> None:STRING
LOWsrc/pipecat/services/deepgram/flux/tts.py29__all__ = [CODE
LOWsrc/pipecat/services/deepgram/flux/stt.py31__all__ = [CODE
LOWsrc/pipecat/services/elevenlabs/tts.py63__all__ = [CODE
LOWsrc/pipecat/services/hume/tts.py266 async def update_setting(self, key: str, value: Any) -> None:CODE
1 more matches not shown…
Structural Annotation Overuse30 hits · 51 pts
SeverityFileLineSnippetContext
LOWCOMMUNITY_INTEGRATIONS.md17### Step 1: Build Your IntegrationCOMMENT
LOWCOMMUNITY_INTEGRATIONS.md21### Step 2: Set Up Your RepositoryCOMMENT
LOWCOMMUNITY_INTEGRATIONS.md39### Step 3: Join DiscordCOMMENT
LOWCOMMUNITY_INTEGRATIONS.md43### Step 4: Submit Your DocumentationCOMMENT
LOW.claude/skills/update-docs/SKILL.md33### Step 1: Resolve docs path and profileCOMMENT
LOW.claude/skills/update-docs/SKILL.md45### Step 2: Create docs branchCOMMENT
LOW.claude/skills/update-docs/SKILL.md63### Step 3: Detect changed source filesCOMMENT
LOW.claude/skills/update-docs/SKILL.md90### Step 4: Map source files to doc pagesCOMMENT
LOW.claude/skills/update-docs/SKILL.md109### Step 5: Analyze each source-doc pairCOMMENT
LOW.claude/skills/update-docs/SKILL.md128### Step 6: Make targeted editsCOMMENT
LOW.claude/skills/update-docs/SKILL.md214### Step 7: Update guidesCOMMENT
LOW.claude/skills/update-docs/SKILL.md234### Step 8: Identify doc gapsCOMMENT
LOW.claude/skills/update-docs/SKILL.md266### Step 9: Format and regenerate llms.txtCOMMENT
LOW.claude/skills/update-docs/SKILL.md290### Step 10: Output summaryCOMMENT
LOW⚡.claude/skills/provider-research-digest/SKILL.md20### Step 1: Sync the reports checkoutCOMMENT
LOW⚡.claude/skills/provider-research-digest/SKILL.md24### Step 2: Render a draftCOMMENT
LOW⚡.claude/skills/provider-research-digest/SKILL.md32### Step 3: Author the highlightsCOMMENT
LOW⚡.claude/skills/provider-research-digest/SKILL.md36### Step 4: Render the final digest and hand offCOMMENT
LOW.claude/skills/provider-research/SKILL.md28### Step 1: Resolve paths and prerequisitesCOMMENT
LOW.claude/skills/provider-research/SKILL.md44### Step 2: Build the unit listCOMMENT
LOW.claude/skills/provider-research/SKILL.md52### Step 3: Research in batchesCOMMENT
LOW.claude/skills/provider-research/SKILL.md81### Step 4: Clean up and summarizeCOMMENT
LOWsrc/pipecat/adapters/services/perplexity_adapter.py129 # Step 1: Convert non-initial system messages to "user".COMMENT
LOWsrc/pipecat/adapters/services/perplexity_adapter.py140 # Step 2: Merge consecutive same-role messages.COMMENT
LOWsrc/pipecat/adapters/services/perplexity_adapter.py166 # Step 3: Remove trailing assistant messages.COMMENT
LOW⚡src/pipecat/adapters/services/mistral_adapter.py109 # Step 1: ensure every "tool" message is followed by an "assistant".COMMENT
LOW⚡src/pipecat/adapters/services/mistral_adapter.py119 # Step 2: convert non-initial system messages to "user".COMMENT
LOW⚡src/pipecat/adapters/services/mistral_adapter.py129 # Step 3: set prefix on a trailing assistant message so Mistral willCOMMENT
LOW⚡src/pipecat/services/google/gemini_live/file_api.py74 # Step 1: Initial resumable request to get upload URLCOMMENT
LOWsrc/pipecat/services/google/gemini_live/file_api.py100 # Step 2: Upload the actual file dataCOMMENT
Magic Placeholder Names11 hits · 28 pts
SeverityFileLineSnippetContext
HIGHsrc/pipecat/services/together/tts.py94 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/together/stt.py57 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/deepgram/flux/stt.py173 stt = DeepgramFluxSTTService(api_key="your-api-key")STRING
HIGHsrc/pipecat/services/deepgram/flux/stt.py178 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/deepgram/flux/stt.py191 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/camb/tts.py171 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/camb/tts.py179 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/smallest/tts.py133 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/smallest/stt.py144 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/sarvam/tts.py347 api_key="your-api-key",STRING
HIGHsrc/pipecat/services/sarvam/tts.py721 api_key="your-api-key",STRING
Cross-Language Confusion5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHtests/test_azure_voice_live_events.py23 """The service sends an empty string, not null, for the first item."""STRING
HIGH⚡tests/test_runner_run.py1174 _parse_ice_servers('{"urls": "stun:stun.example.com:3478", "username": null}'),CODE
HIGHsrc/pipecat/services/azure/voice_live/llm.py1140 # `.get` returns None when the key is present and null, so the defaultCOMMENT
HIGH⚡src/pipecat/services/openai/realtime/llm.py1234 - return trueSTRING
HIGH⚡src/pipecat/services/openai/realtime/llm.py1236 - return falseSTRING
Overly Generic Function Names15 hits · 16 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_flows_direct_functions.py27 async def my_function(flow_manager: FlowManager):CODE
LOW⚡tests/test_flows_direct_functions.py249 async def my_function(flow_manager: DummyFlowManager, name: str, age: int):CODE
LOW⚡tests/test_flows_direct_functions.py270 async def my_function(flow_manager: FlowManager):CODE
LOW⚡tests/test_flows_direct_functions.py280 async def my_function(flow_manager: FlowManager):CODE
LOW⚡tests/test_flows_direct_functions.py290 async def my_function(flow_manager: FlowManager):CODE
LOW⚡tests/test_flows_direct_functions.py320 async def my_function(flow_manager: FlowManager):CODE
LOW⚡tests/test_flows_direct_functions.py330 async def my_function(flow_manager: FlowManager):CODE
LOW⚡tests/test_flows_direct_functions.py366 async def my_function(flow_manager: FlowManager):CODE
LOW⚡tests/test_flows_direct_functions.py381 async def my_function(flow_manager: FlowManager):CODE
LOWtests/test_flows_direct_functions.py190 async def my_function(flow_manager: FlowManager, name: str, age: int, height: float | None):CODE
LOW⚡tests/test_direct_functions.py17 async def my_function(params: FunctionCallParams):CODE
LOWtests/test_direct_functions.py156 async def my_function(CODE
LOW⚡tests/test_direct_functions.py212 async def my_function(params: DummyParams, name: str, age: int):CODE
LOW…js/src/app/api/sessions/[sessionId]/[...path]/route.ts3async function handleRequest(CODE
LOWsrc/pipecat/workers/llm/llm_worker.py77 async def my_function(self, params, arg: str):STRING
Verbosity Indicators8 hits · 15 pts
SeverityFileLineSnippetContext
LOWsrc/pipecat/adapters/services/perplexity_adapter.py129 # Step 1: Convert non-initial system messages to "user".COMMENT
LOWsrc/pipecat/adapters/services/perplexity_adapter.py140 # Step 2: Merge consecutive same-role messages.COMMENT
LOWsrc/pipecat/adapters/services/perplexity_adapter.py166 # Step 3: Remove trailing assistant messages.COMMENT
LOW⚡src/pipecat/adapters/services/mistral_adapter.py109 # Step 1: ensure every "tool" message is followed by an "assistant".COMMENT
LOW⚡src/pipecat/adapters/services/mistral_adapter.py119 # Step 2: convert non-initial system messages to "user".COMMENT
LOW⚡src/pipecat/adapters/services/mistral_adapter.py129 # Step 3: set prefix on a trailing assistant message so Mistral willCOMMENT
LOW⚡src/pipecat/services/google/gemini_live/file_api.py74 # Step 1: Initial resumable request to get upload URLCOMMENT
LOWsrc/pipecat/services/google/gemini_live/file_api.py100 # Step 2: Upload the actual file dataCOMMENT
Dead Code6 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_stt_service.py43CODE
MEDIUMtests/test_anthropic_thinking_defaults.py134CODE
MEDIUMsrc/pipecat/services/stt_service.py348CODE
MEDIUMsrc/pipecat/services/vision_service.py63CODE
MEDIUMsrc/pipecat/services/tts_service.py591CODE
MEDIUMsrc/pipecat/services/image_service.py61CODE
Fake / Example Data9 hits · 10 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_voice_formatting.py299 result = await email_to_speech("user@example.com", "*")CODE
LOW⚡tests/test_voice_formatting.py304 result = await email_to_speech("user@example.com", "*")CODE
LOWtests/test_deepgram_stt.py381 service = DeepgramSTTService(api_key="fake-key-offline-test")CODE
LOWtests/test_get_llm_invocation_params.py1474 "source": {"type": "base64", "media_type": "image/jpeg", "data": "fake_data"},CODE
LOWtests/genesys/conftest.py129 "name": "John Doe",CODE
LOW⚡tests/genesys/test_genesys_serializer.py304 assert serializer.participant["name"] == "John Doe"CODE
LOWexamples/features/features-text-transforms.py24 - email_to_speech "user@example.com" → "user at example dot com"STRING
LOW…ipecat/cli/templates/client/vanilla-js-vite/src/app.js58 'placeholder',CODE
LOW…ipecat/cli/templates/client/vanilla-js-vite/src/app.js197 if (role === 'placeholder') {CODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHexamples/realtime/realtime-openai-video.py110 # In this example we provide tools through the context, but you couldCOMMENT
Slop Phrases3 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMexamples/realtime/realtime-gemini-live.py146 # frames, but you can add supplemental local turn frames for consumptionSTRING
MEDIUMexamples/realtime/realtime-ultravox.py189 # frames, but you can add supplemental local turn frames for consumptionSTRING
MEDIUMexamples/realtime/realtime-aws-nova-sonic.py125 # frames, but you can add supplemental local turn frames for consumptionCOMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWsrc/pipecat/services/google/gemini_live/llm.py1119 # TODO: implement runtime tool updates for Gemini Live.COMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWsrc/pipecat/services/piper/tts.py198# Usage:COMMENT