Open source voice AI platform. Self-hosted alternative to Vapi and Retell. On Prem, BYOK across Speech to Speech or LLM/STT/TTS, with a visual workflow builder, MCP native and telephony support.
2084 matches across 17 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | ui/src/components/flow/renderer/PropertyInput.tsx | 127 | // ─── Layout helpers ────────────────────────────────────────────────────── |
| MEDIUM | ui/src/components/flow/renderer/PropertyInput.tsx | 143 | // ─── Widgets ───────────────────────────────────────────────────────────── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 22 | // ─── Static per-spec UI maps ────────────────────────────────────────────── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 67 | // ─── Helpers ────────────────────────────────────────────────────────────── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 168 | // ─── Canvas preview dispatch ────────────────────────────────────────────── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 454 | // ─── GenericNode ────────────────────────────────────────────────────────── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 479 | // ── Form state ───────────────────────────────────────────────────── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 500 | // ── Trigger auto-UUID + canvas copy state ────────────────────────── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 519 | // ── Stale tool/document cleanup (was duplicated in Start/Agent) ───── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 547 | // ── Dirty / save / open handlers ──────────────────────────────────── |
| MEDIUM | ui/src/components/flow/nodes/GenericNode.tsx | 583 | // ── Render ────────────────────────────────────────────────────────── |
| MEDIUM | sdk/python/src/dograh_sdk/client.py | 84 | # ── spec discovery overrides (generated methods + caching) ──────── |
| MEDIUM | sdk/python/src/dograh_sdk/client.py | 106 | # ── ergonomic workflow wrappers ─────────────────────────────────── |
| MEDIUM | sdk/python/src/dograh_sdk/client.py | 131 | # ── low-level ────────────────────────────────────────────────── |
| MEDIUM | sdk/python/src/dograh_sdk/workflow.py | 71 | # ── node construction ────────────────────────────────────────── |
| MEDIUM | sdk/python/src/dograh_sdk/workflow.py | 122 | # ── edge construction ────────────────────────────────────────── |
| MEDIUM | sdk/python/src/dograh_sdk/workflow.py | 163 | # ── serialization ────────────────────────────────────────────── |
| MEDIUM | sdk/python/src/dograh_sdk/codegen.py | 28 | # ── property type → Python type annotation ──────────────────────────────── |
| MEDIUM | sdk/python/src/dograh_sdk/codegen.py | 125 | # ── source rendering ───────────────────────────────────────────────────── |
| MEDIUM | sdk/python/src/dograh_sdk/codegen.py | 262 | # ── public entry points ────────────────────────────────────────────────── |
| MEDIUM | sdk/typescript/src/client.ts | 59 | // ── spec discovery overrides (generated methods + caching) ──────── |
| MEDIUM | sdk/typescript/src/client.ts | 85 | // ── ergonomic workflow wrappers ─────────────────────────────────── |
| MEDIUM | sdk/typescript/src/client.ts | 111 | // ── low-level (overrides `_GeneratedClient.request`) ────────────── |
| MEDIUM | sdk/codegen/client_codegen.py | 169 | # ── Python emitter ───────────────────────────────────────────────────── |
| MEDIUM | sdk/codegen/client_codegen.py | 245 | # ── TypeScript emitter ───────────────────────────────────────────────── |
| MEDIUM | sdk/codegen/client_codegen.py | 332 | # ── CLI ──────────────────────────────────────────────────────────────── |
| MEDIUM | scripts/generate_sdk.sh | 42 | # ── 1. Node-spec typed dataclasses ──────────────────────────────────── |
| MEDIUM | scripts/generate_sdk.sh | 57 | # ── 2. SDK-scoped OpenAPI spec ──────────────────────────────────────── |
| MEDIUM | scripts/generate_sdk.sh | 79 | # ── 3. Request/response models (off-the-shelf) ──────────────────────── |
| MEDIUM | scripts/generate_sdk.sh | 105 | # ── 4. Client method mixins ────────────────────────────────────────── |
| MEDIUM | scripts/generate_sdk.sh | 113 | # ── 5. Docs OpenAPI spec ───────────────────────────────────────────── |
| MEDIUM | api/tests/test_from_number_pool_isolation.py | 64 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_from_number_pool_isolation.py | 66 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_from_number_pool_isolation.py | 196 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_from_number_pool_isolation.py | 198 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_dograh_sdk.py | 42 | # ─── Builder + to_json round-trip ──────────────────────────────────────── |
| MEDIUM | api/tests/test_dograh_sdk.py | 99 | # ─── Validation errors at call site ────────────────────────────────────── |
| MEDIUM | api/tests/test_dograh_sdk.py | 184 | # ─── Round-trip from_json → edit → to_json ──────────────────────────────── |
| MEDIUM | api/tests/test_dograh_sdk.py | 223 | # ─── Sanity: all registered specs are reachable by name ─────────────────── |
| MEDIUM | api/tests/test_ts_bridge.py | 189 | # ─── generate_code ─────────────────────────────────────────────────────── |
| MEDIUM | api/tests/test_ts_bridge.py | 275 | # ─── parse_code ────────────────────────────────────────────────────────── |
| MEDIUM | api/tests/test_ts_bridge.py | 365 | # ─── Round-trip ────────────────────────────────────────────────────────── |
| MEDIUM | api/tests/test_workflow_qa_masking.py | 50 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_workflow_qa_masking.py | 52 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_workflow_qa_masking.py | 148 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_workflow_qa_masking.py | 150 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_workflow_qa_masking.py | 262 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_workflow_qa_masking.py | 264 | # --------------------------------------------------------------------------- |
| MEDIUM | api/tests/test_mcp_save_workflow.py | 28 | # ─── Fixtures & helpers ────────────────────────────────────────────────── |
| MEDIUM | api/tests/test_mcp_save_workflow.py | 100 | # ─── Happy path ────────────────────────────────────────────────────────── |
| MEDIUM | api/tests/test_mcp_save_workflow.py | 141 | # ─── Parse-stage rejections ────────────────────────────────────────────── |
| MEDIUM | api/tests/test_mcp_save_workflow.py | 170 | # ─── Validation-stage rejections ───────────────────────────────────────── |
| MEDIUM | api/tests/test_mcp_save_workflow.py | 228 | # ─── Graph-stage rejections ────────────────────────────────────────────── |
| MEDIUM | api/tests/test_mcp_save_workflow.py | 247 | # ─── Workflow not found / unauthorized ─────────────────────────────────── |
| MEDIUM | api/tests/test_mcp_tool_route.py | 27 | # ── Canonical valid MCP request body ───────────────────────────────────────── |
| MEDIUM | api/tests/test_mcp_tool_route.py | 41 | # ── Part A regression: CreateToolRequest / UpdateToolRequest validation ─────── |
| MEDIUM | api/tests/test_mcp_tool_route.py | 99 | # ── Invalid bodies are rejected ─────────────────────────────────────────────── |
| MEDIUM | api/tests/test_mcp_tool_route.py | 141 | # ── Round-trip compatibility: request schema ↔ validate_mcp_definition ─────── |
| MEDIUM | api/tests/test_mcp_tool_route.py | 203 | # ── Full HTTP round-trip via ASGI test client ───────────────────────────────── |
| MEDIUM | api/tests/test_mcp_tool_route.py | 280 | # ── Task 6: discovered_tools field and _populate_discovered_tools helper ────── |
| 211 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | ui/src/context/TelephonyConfigWarningsContext.tsx | 24 | export function TelephonyConfigWarningsProvider({ children }: { children: ReactNode }) { |
| LOW | ui/src/context/TelephonyConfigWarningsContext.tsx | 66 | export function useTelephonyConfigWarnings() { |
| LOW | ui/src/app/tools/config.tsx | 178 | export function createTransferCallDefinition(config: TransferCallConfig): TransferCallToolDefinition { |
| LOW | ui/src/app/tools/config.tsx | 197 | export function createCalculatorDefinition(): CalculatorToolDefinition { |
| LOW | ui/src/app/telephony-configurations/page.tsx | 51 | export default function TelephonyConfigurationsPage() { |
| LOW | ui/src/app/telephony-configurations/[configId]/page.tsx | 69 | export default function TelephonyConfigurationDetailPage() { |
| LOW | ui/src/components/workflow/TemplateCard.tsx | 19 | export function DuplicateWorkflowTemplate({ id, title, description, serverAccessToken }: DuplicateWorkflowTemplateProps) |
| LOW | ui/src/components/workflow/conversation/utils.ts | 17 | export function countConversationMessages(items: ConversationItem[]) { |
| LOW | …workflow/conversation/adapters/fromRealtimeFeedback.ts | 101 | export function conversationItemsFromLiveFeedback(messages: RealtimeFeedbackMessage[]) { |
| LOW | …workflow/conversation/adapters/fromRealtimeFeedback.ts | 128 | export function conversationItemsFromRealtimeFeedbackEvents(events: RealtimeFeedbackEvent[]) { |
| LOW | …ts/workflow/conversation/adapters/fromTextChatTurns.ts | 31 | function conversationItemsFromTextChatEvents( |
| LOW | …ts/workflow/conversation/adapters/fromTextChatTurns.ts | 131 | export function conversationItemsFromTextChatTurns(turns: TextChatTurnLike[]) { |
| LOW | ui/src/components/flow/nodes/GenericNode.tsx | 104 | function resolveIntegrationEnabled( |
| LOW | ui/src/components/flow/nodes/GenericNode.tsx | 116 | function resolveIntegrationSummary( |
| LOW | sdk/python/src/dograh_sdk/codegen.py | 143 | def _render_nested_row_dataclass( |
| LOW | api/conftest.py | 267 | def reopen_nested_transaction(session_sync, transaction: SessionTransaction): |
| LOW | api/tasks/s3_upload.py | 74 | async def process_workflow_completion( |
| LOW | api/tasks/run_integrations.py | 125 | async def _update_usage_info_with_qa_tokens( |
| LOW | api/tasks/run_integrations.py | 166 | async def run_integrations_post_workflow_run(_ctx, workflow_run_id: int): |
| LOW | api/tasks/knowledge_base_processing.py | 22 | async def process_knowledge_base_document( |
| LOW | api/tests/test_openai_realtime_initial_context.py | 22 | async def test_initial_context_triggers_response_when_context_was_prepopulated(): |
| LOW | api/tests/test_openai_realtime_initial_context.py | 36 | async def test_updated_context_uses_tool_result_path_after_initial_context(): |
| LOW | api/tests/test_openai_realtime_initial_context.py | 51 | async def test_tts_greeting_uses_initial_context_handler(): |
| LOW | api/tests/test_openai_realtime_initial_context.py | 66 | async def test_function_call_executes_immediately_when_bot_is_not_speaking(): |
| LOW | api/tests/test_openai_realtime_initial_context.py | 81 | async def test_function_call_is_deferred_until_bot_stops_speaking(): |
| LOW | api/tests/test_workflow_text_chat.py | 21 | async def _create_user_and_workflow( |
| LOW | api/tests/test_workflow_text_chat.py | 55 | async def test_text_chat_session_creation_executes_initial_assistant_turn( |
| LOW | api/tests/test_workflow_text_chat.py | 158 | async def test_text_chat_message_executes_assistant_turn( |
| LOW | api/tests/test_workflow_text_chat.py | 280 | async def test_text_chat_executes_deferred_tool_calls_after_text_response( |
| LOW | api/tests/test_workflow_text_chat.py | 410 | async def test_text_chat_chains_multiple_follow_up_completions_in_one_turn( |
| LOW | api/tests/test_workflow_text_chat.py | 550 | async def test_text_chat_greeting_only_plays_on_fresh_node_entry( |
| LOW | api/tests/test_workflow_text_chat.py | 666 | async def test_text_chat_rewind_reuses_checkpoint_snapshot( |
| LOW | api/tests/test_workflow_text_chat.py | 888 | async def test_text_chat_session_is_not_accessible_from_another_org( |
| LOW | api/tests/test_workflow_text_chat.py | 975 | async def test_text_chat_session_creation_requires_selected_org_scope( |
| LOW | api/tests/test_workflow_text_chat.py | 1052 | async def test_text_chat_session_creation_rejects_quota_before_creating_run( |
| LOW | api/tests/test_workflow_text_chat.py | 1107 | async def test_text_chat_append_rejects_quota_without_mutating_session( |
| LOW | api/tests/test_voicemail_detector.py | 84 | async def test_voicemail_detector_conversation_flow(self): |
| LOW | api/tests/test_masked_key_rejection.py | 45 | def test_rejects_masked_api_key_on_provider_change(self): |
| LOW | api/tests/test_masked_key_rejection.py | 76 | def test_rejects_masked_api_key_in_list(self): |
| LOW | api/tests/test_masked_key_rejection.py | 144 | def test_allows_same_provider_with_masked_key(self): |
| LOW | api/tests/test_masked_key_rejection.py | 173 | def test_allows_same_provider_with_masked_vertex_credentials(self): |
| LOW | api/tests/test_user_muting_during_bot_speech.py | 111 | def set_workflow_allow_interrupt_in_start_node( |
| LOW | api/tests/test_user_muting_during_bot_speech.py | 120 | async def create_engine_for_mute_test( |
| LOW | api/tests/test_user_muting_during_bot_speech.py | 205 | async def queue_user_speaking_and_transcript_frames(task): |
| LOW | api/tests/test_user_muting_during_bot_speech.py | 219 | async def test_muted_until_first_bot_stopped_speaking( |
| LOW | api/tests/test_user_muting_during_bot_speech.py | 307 | async def test_allow_interrupt_true_not_muted_after_second_bot_started( |
| LOW | api/tests/test_user_muting_during_bot_speech.py | 401 | async def test_allow_interrupt_false_muted_during_second_bot_speech( |
| LOW | api/tests/test_from_number_pool_isolation.py | 77 | async def test_acquire_only_returns_numbers_for_requested_config( |
| LOW | api/tests/test_from_number_pool_isolation.py | 116 | async def test_release_returns_number_to_owning_config_pool( |
| LOW | api/tests/test_from_number_pool_isolation.py | 167 | async def test_workflow_from_number_mapping_round_trips_config( |
| LOW | api/tests/test_from_number_pool_isolation.py | 237 | async def test_dispatch_call_acquires_from_number_for_campaign_config(self): |
| LOW | api/tests/test_from_number_pool_isolation.py | 324 | async def test_release_call_slot_uses_stored_telephony_config(self): |
| LOW | api/tests/test_grok_realtime_wrapper.py | 26 | async def test_initial_context_triggers_response_when_context_was_prepopulated(): |
| LOW | api/tests/test_grok_realtime_wrapper.py | 40 | async def test_tts_greeting_uses_initial_context_handler(): |
| LOW | api/tests/test_grok_realtime_wrapper.py | 54 | async def test_messages_append_frame_sends_conversation_item(): |
| LOW | api/tests/test_grok_realtime_wrapper.py | 79 | async def test_function_call_is_deferred_until_bot_stops_speaking(): |
| LOW | api/tests/test_grok_realtime_wrapper.py | 104 | async def test_completed_input_transcription_is_broadcast_as_finalized(): |
| LOW | api/tests/test_grok_realtime_wrapper.py | 122 | def test_factory_creates_dograh_grok_realtime_service(): |
| LOW | api/tests/test_is_private_ip_candidate.py | 49 | def test_cgnat_ip_upper_bound(self): |
| LOW | api/tests/test_is_private_ip_candidate.py | 89 | def test_srflx_candidate_type(self): |
| 886 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | evals/stt/benchmark.py | 66 | except Exception as e: |
| MEDIUM | evals/stt/benchmark.py | 67 | print(f"Error with {provider.name}: {e}") |
| MEDIUM | evals/stt/benchmark.py | 207 | print(f"Error: Audio file not found: {audio_path}") |
| LOW | evals/stt/benchmark.py | 232 | except Exception as e: |
| MEDIUM | evals/stt/event_capture.py | 239 | print(f"Error: Audio file not found: {audio_path}") |
| LOW | evals/stt/event_capture.py | 281 | except Exception as e: |
| LOW | evals/stt/providers/local_smart_turn_provider.py | 83 | except Exception: |
| LOW | evals/stt/providers/local_smart_turn_provider.py | 88 | except Exception: |
| LOW | evals/stt/providers/deepgram_provider.py | 189 | except Exception as e: |
| LOW | api/constants.py | 82 | except Exception: |
| LOW | api/tasks/s3_upload.py | 57 | except Exception as e: |
| LOW | api/tasks/s3_upload.py | 68 | except Exception as e: |
| LOW | api/tasks/s3_upload.py | 119 | except Exception as e: |
| LOW | api/tasks/s3_upload.py | 126 | except Exception as e: |
| LOW | api/tasks/s3_upload.py | 152 | except Exception as e: |
| LOW | api/tasks/s3_upload.py | 163 | except Exception as e: |
| LOW | api/tasks/s3_upload.py | 169 | except Exception as e: |
| LOW | api/tasks/s3_upload.py | 175 | except Exception as e: |
| LOW | api/tasks/run_integrations.py | 118 | except Exception as e: |
| LOW | api/tasks/run_integrations.py | 162 | except Exception as e: |
| LOW | api/tasks/run_integrations.py | 322 | except Exception as e: |
| LOW | api/tasks/run_integrations.py | 325 | except Exception as e: |
| LOW | api/tasks/run_integrations.py | 459 | except Exception as e: |
| LOW | api/tasks/campaign_tasks.py | 79 | except Exception as e: |
| LOW | api/tasks/campaign_tasks.py | 231 | except Exception as e: |
| LOW | api/tasks/knowledge_base_processing.py | 227 | except Exception as e: |
| LOW | api/tasks/knowledge_base_processing.py | 242 | except Exception as e: |
| LOW | …/tests/integrations/test_run_pipeline_text_greeting.py | 258 | except Exception: |
| LOW | api/tests/support/mcp_mock_server.py | 86 | except Exception: |
| LOW | api/utils/telephony_helper.py | 144 | except Exception: |
| LOW | api/utils/telephony_helper.py | 148 | except Exception as e: |
| MEDIUM | api/utils/audio_converter.py | 26 | print(f"Error: Input file '{input_path}' not found") |
| LOW | api/utils/tunnel.py | 31 | except Exception as e: |
| LOW | api/utils/tunnel.py | 93 | except Exception as e: |
| LOW | api/utils/common.py | 138 | except Exception as e: |
| LOW | api/utils/common.py | 160 | except Exception as e: |
| LOW | api/utils/template_renderer.py | 140 | except Exception: |
| LOW | api/utils/template_renderer.py | 152 | except Exception: |
| LOW | api/db/campaign_client.py | 56 | except Exception as e: |
| LOW | api/db/campaign_client.py | 132 | except Exception as e: |
| LOW | api/db/campaign_client.py | 315 | except Exception as e: |
| LOW | api/db/campaign_client.py | 421 | except Exception as e: |
| LOW | api/db/campaign_client.py | 465 | except Exception: |
| LOW | api/db/campaign_client.py | 497 | except Exception: |
| LOW | api/db/campaign_client.py | 522 | except Exception: |
| LOW | api/db/campaign_client.py | 534 | except Exception as e: |
| LOW | api/db/campaign_client.py | 555 | except Exception as e: |
| LOW | api/db/campaign_client.py | 585 | except Exception: |
| LOW | api/db/campaign_client.py | 722 | except Exception as e: |
| LOW | api/db/campaign_client.py | 850 | except Exception as e: |
| LOW | api/db/organization_usage_client.py | 463 | except Exception: |
| LOW | api/db/workflow_run_text_session_client.py | 54 | except Exception as e: |
| LOW | api/db/workflow_run_text_session_client.py | 120 | except Exception as e: |
| LOW | api/db/workflow_template_client.py | 49 | except Exception as e: |
| LOW | api/db/workflow_template_client.py | 79 | except Exception as e: |
| LOW | api/db/workflow_template_client.py | 97 | except Exception as e: |
| LOW | api/db/integration_client.py | 44 | except Exception as e: |
| LOW | api/db/integration_client.py | 65 | except Exception as e: |
| LOW | api/db/integration_client.py | 86 | except Exception as e: |
| LOW | api/db/organization_configuration_client.py | 63 | except Exception as e: |
| 297 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | evals/stt/event_capture.py | 16 | |
| LOW | evals/stt/providers/local_smart_turn_provider.py | 7 | |
| LOW | evals/stt/providers/__init__.py | 1 | |
| LOW | evals/stt/providers/__init__.py | 1 | |
| LOW | evals/stt/providers/__init__.py | 1 | |
| LOW | evals/stt/providers/__init__.py | 1 | |
| LOW | evals/stt/providers/__init__.py | 2 | |
| LOW | evals/stt/providers/__init__.py | 3 | |
| LOW | evals/stt/providers/__init__.py | 4 | |
| LOW | evals/stt/providers/__init__.py | 5 | |
| LOW | …skills/review-agents-md/scripts/inventory_agents_md.py | 12 | |
| LOW | sdk/python/src/dograh_sdk/_generated_models.py | 5 | |
| LOW | sdk/python/src/dograh_sdk/_generated_client.py | 10 | |
| LOW | sdk/python/src/dograh_sdk/client.py | 13 | |
| LOW | sdk/python/src/dograh_sdk/__init__.py | 21 | |
| LOW | sdk/python/src/dograh_sdk/__init__.py | 22 | |
| LOW | sdk/python/src/dograh_sdk/__init__.py | 22 | |
| LOW | sdk/python/src/dograh_sdk/__init__.py | 22 | |
| LOW | sdk/python/src/dograh_sdk/__init__.py | 22 | |
| LOW | sdk/python/src/dograh_sdk/__init__.py | 23 | |
| LOW | sdk/python/src/dograh_sdk/__init__.py | 24 | |
| LOW | sdk/python/src/dograh_sdk/__init__.py | 24 | |
| LOW | sdk/python/src/dograh_sdk/_validation.py | 10 | |
| LOW | sdk/python/src/dograh_sdk/workflow.py | 13 | |
| LOW | sdk/python/src/dograh_sdk/workflow.py | 15 | |
| LOW | sdk/python/src/dograh_sdk/workflow.py | 23 | |
| LOW | sdk/python/src/dograh_sdk/codegen.py | 18 | |
| LOW | sdk/python/src/dograh_sdk/typed/_base.py | 14 | |
| LOW | sdk/python/src/dograh_sdk/typed/agent_node.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/agent_node.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/global_node.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/global_node.py | 10 | |
| LOW | sdk/python/src/dograh_sdk/typed/global_node.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/global_node.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/global_node.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/end_call.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/end_call.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/webhook.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 7 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 9 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 10 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 12 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 13 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 14 | |
| LOW | sdk/python/src/dograh_sdk/typed/__init__.py | 15 | |
| LOW | sdk/python/src/dograh_sdk/typed/start_call.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/start_call.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/tuner.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/tuner.py | 10 | |
| LOW | sdk/python/src/dograh_sdk/typed/tuner.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/tuner.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/tuner.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/qa.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/qa.py | 10 | |
| LOW | sdk/python/src/dograh_sdk/typed/qa.py | 11 | |
| LOW | sdk/python/src/dograh_sdk/typed/trigger.py | 8 | |
| LOW | sdk/python/src/dograh_sdk/typed/trigger.py | 10 | |
| LOW | sdk/python/src/dograh_sdk/typed/trigger.py | 11 | |
| 159 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | scripts/rolling_update.sh | 239 | # Create a new timestamped log dir for this deploy |
| MEDIUM | api/conftest.py | 336 | # Create a custom user |
| MEDIUM | api/conftest.py | 339 | # Create a test client for this user |
| MEDIUM | api/tests/test_pipecat_engine_variable_extraction.py | 134 | # Create the pipeline |
| MEDIUM | api/tests/test_mcp_tool_route.py | 210 | # Create a user and an organization, then link them so the route's |
| MEDIUM | api/tests/test_custom_tools.py | 866 | # Create a mock engine |
| MEDIUM | api/tests/test_custom_tools.py | 937 | # Create a mock engine with a mock LLM |
| MEDIUM | api/tests/test_pipecat_engine_end_call.py | 212 | # Create the pipeline with transport input -> user aggregator -> LLM -> TTS -> transport output -> assistant aggrega |
| MEDIUM | api/tests/test_pipecat_engine_end_call.py | 622 | # Create a simple text response |
| MEDIUM | api/tests/test_pipecat_engine_end_call.py | 714 | # Create a simple text response |
| MEDIUM | api/tests/test_pipecat_engine_end_call.py | 913 | # Create a simple text response |
| MEDIUM | api/tests/test_pipecat_engine_end_call.py | 923 | # Create a custom extraction mock that signals when called |
| MEDIUM | api/tests/test_pipecat_engine_end_call.py | 999 | # Create a simple text response |
| MEDIUM | api/tests/test_pipecat_engine_end_call.py | 1005 | # Create a workflow where start node has NO extraction |
| MEDIUM | api/tests/test_pipecat_engine_context_update.py | 108 | # Create the pipeline |
| MEDIUM | api/tests/test_workflow_versioning.py | 446 | # Create a draft |
| MEDIUM | api/tests/test_workflow_versioning.py | 571 | # Create a draft (unpublished) |
| MEDIUM | api/tests/test_workflow_versioning.py | 577 | # Create a run (simulating campaign dispatch) |
| MEDIUM | api/tests/test_workflow_versioning.py | 599 | # Create a test run |
| MEDIUM | api/tests/test_pipecat_engine_tool_calls.py | 99 | # Create the pipeline with the mock LLM and TTS |
| MEDIUM | api/tests/test_pipecat_engine_tool_calls.py | 109 | # Create a real pipeline task |
| MEDIUM | api/tests/test_tts_endframe_with_audio_write_failure.py | 142 | # Create the pipeline |
| MEDIUM | …ts/test_pipecat_engine_node_switch_with_user_speech.py | 194 | # Create the pipeline: |
| MEDIUM | api/db/organization_client.py | 76 | # Create a default API key for the new organization |
| MEDIUM | api/db/workflow_client.py | 42 | # Create the first definition as V1 published |
| MEDIUM | …/b79f19f68157_add_call_type_column_to_workflow_runs.py | 23 | # Create the workflow_call_type enum |
| MEDIUM | …sions/49a8fe6841e6_add_state_field_to_workflow_runs.py | 21 | # Create the workflow_run_state enum type |
| MEDIUM | api/routes/webrtc_signaling.py | 548 | # Create a minimal user object for compatibility with signaling manager |
| MEDIUM | api/routes/workflow.py | 467 | # Create the workflow in our database |
| MEDIUM | api/routes/workflow.py | 1352 | # Create a new workflow from the template |
| MEDIUM | api/mcp_server/instructions.py | 39 | ### Creating a new workflow |
| MEDIUM | api/services/mps_service_key_client.py | 610 | # Create a singleton instance |
| MEDIUM | api/services/storage.py | 77 | # Create a single storage instance at module load time. |
| MEDIUM | api/services/filesystem/local.py | 70 | # Create a temporary directory for symlinks |
| MEDIUM | api/services/pipecat/run_pipeline.py | 670 | # Create a separate LLM instance for the voicemail sub-pipeline |
| MEDIUM | api/services/workflow/workflow_graph.py | 122 | # Create the edge with properties from dto |
| MEDIUM | api/services/workflow/qa/tracing.py | 112 | # Create a root span (new trace) for this node summary generation |
| MEDIUM | api/services/workflow/qa/node_summary.py | 168 | # Create a Langfuse trace for this summary generation |
| MEDIUM | api/services/campaign/campaign_orchestrator.py | 667 | # Create a shutdown event for clean coordination |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | sdk/python/src/dograh_sdk/typed/agent_node.py | 0 | generated — do not edit by hand. regenerate with `python -m dograh_sdk.codegen` against the target dograh backend. sourc |
| HIGH | sdk/python/src/dograh_sdk/typed/global_node.py | 0 | generated — do not edit by hand. regenerate with `python -m dograh_sdk.codegen` against the target dograh backend. sourc |
| HIGH | sdk/python/src/dograh_sdk/typed/end_call.py | 0 | generated — do not edit by hand. regenerate with `python -m dograh_sdk.codegen` against the target dograh backend. sourc |
| HIGH | sdk/python/src/dograh_sdk/typed/webhook.py | 0 | generated — do not edit by hand. regenerate with `python -m dograh_sdk.codegen` against the target dograh backend. sourc |
| HIGH | sdk/python/src/dograh_sdk/typed/start_call.py | 0 | generated — do not edit by hand. regenerate with `python -m dograh_sdk.codegen` against the target dograh backend. sourc |
| HIGH | sdk/python/src/dograh_sdk/typed/tuner.py | 0 | generated — do not edit by hand. regenerate with `python -m dograh_sdk.codegen` against the target dograh backend. sourc |
| HIGH | sdk/python/src/dograh_sdk/typed/qa.py | 0 | generated — do not edit by hand. regenerate with `python -m dograh_sdk.codegen` against the target dograh backend. sourc |
| HIGH | sdk/python/src/dograh_sdk/typed/trigger.py | 0 | generated — do not edit by hand. regenerate with `python -m dograh_sdk.codegen` against the target dograh backend. sourc |
| HIGH | sdk/python/src/dograh_sdk/typed/agent_node.py | 0 | each entry declares one variable to capture, with its name, data type, and extraction hint. |
| HIGH | sdk/python/src/dograh_sdk/typed/agent_node.py | 0 | each entry declares one variable to capture, with its name, data type, and extraction hint. |
| HIGH | sdk/python/src/dograh_sdk/typed/start_call.py | 0 | each entry declares one variable to capture, with its name, data type, and extraction hint. |
| HIGH | sdk/python/src/dograh_sdk/typed/start_call.py | 0 | each entry declares one variable to capture, with its name, data type, and extraction hint. |
| HIGH | sdk/python/src/dograh_sdk/typed/agent_node.py | 0 | when true and a global node exists, prepends the global prompt to this node's prompt at runtime. |
| HIGH | sdk/python/src/dograh_sdk/typed/end_call.py | 0 | when true and a global node exists, prepends the global prompt to this node's prompt at runtime. |
| HIGH | sdk/python/src/dograh_sdk/typed/start_call.py | 0 | when true and a global node exists, prepends the global prompt to this node's prompt at runtime. |
| HIGH | api/tests/test_pipecat_engine_tool_calls.py | 0 | test parallel function calls using pipecatengine's actual handlers. this test verifies that when the llm generates paral |
| HIGH | api/tests/test_pipecat_engine_tool_calls.py | 0 | test parallel function calls using pipecatengine's actual handlers. this test verifies that when the llm generates paral |
| HIGH | api/tests/test_pipecat_engine_tool_calls.py | 0 | test parallel function calls using pipecatengine's actual handlers. this test verifies that when the llm generates paral |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | evals/stt/providers/speechmatics_provider.py | 44 | |
| LOW | evals/stt/providers/speechmatics_provider.py | 204 | |
| LOW | evals/stt/providers/speechmatics_provider.py | 152 | |
| LOW | evals/stt/providers/deepgram_flux_provider.py | 53 | |
| LOW | evals/stt/providers/deepgram_flux_provider.py | 141 | |
| LOW | evals/stt/providers/local_smart_turn_provider.py | 68 | |
| LOW | evals/stt/providers/deepgram_provider.py | 48 | |
| LOW | evals/stt/providers/deepgram_provider.py | 142 | |
| LOW | sdk/codegen/client_codegen.py | 96 | |
| LOW | api/tasks/s3_upload.py | 74 | |
| LOW | api/tasks/run_integrations.py | 125 | |
| LOW | api/tasks/run_integrations.py | 166 | |
| LOW | api/tests/test_user_muting_during_bot_speech.py | 82 | |
| LOW | api/tests/test_dograh_sdk_typed.py | 58 | |
| LOW | api/tests/test_tts_endframe_with_audio_write_failure.py | 166 | |
| LOW | api/tests/test_tts_endframe_with_audio_write_failure.py | 284 | |
| LOW | …/tests/integrations/test_run_pipeline_text_greeting.py | 146 | |
| LOW | api/utils/credential_auth.py | 15 | |
| LOW | api/utils/credential_auth.py | 57 | |
| LOW | api/utils/common.py | 96 | |
| LOW | api/utils/telephony_address.py | 73 | |
| LOW | api/db/filters.py | 58 | |
| LOW | api/alembic/env.py | 64 | |
| LOW | api/routes/telephony.py | 921 | |
| LOW | api/routes/credentials.py | 51 | |
| LOW | api/routes/organization.py | 881 | |
| LOW | api/routes/campaign.py | 348 | |
| LOW | api/routes/workflow.py | 910 | |
| LOW | api/routes/public_embed.py | 59 | |
| LOW | api/routes/public_embed.py | 318 | |
| LOW | api/mcp_server/tools/docs_search.py | 405 | |
| LOW | api/mcp_server/tools/docs_search.py | 474 | |
| LOW | api/mcp_server/tools/docs_search.py | 496 | |
| LOW | api/services/quota_service.py | 27 | |
| LOW | api/services/configuration/resolve.py | 37 | |
| LOW | api/services/gen_ai/json_parser.py | 69 | |
| LOW | api/services/gen_ai/json_parser.py | 113 | |
| LOW | api/services/auth/depends.py | 19 | |
| LOW | api/services/gender/build_model.py | 34 | |
| LOW | api/services/filesystem/s3.py | 47 | |
| LOW | api/services/integrations/tuner/collector.py | 122 | |
| LOW | api/services/telephony/ari_manager.py | 261 | |
| LOW | api/services/telephony/factory.py | 74 | |
| LOW | api/services/telephony/call_transfer_manager.py | 128 | |
| LOW | api/services/telephony/call_transfer_manager.py | 188 | |
| LOW | api/services/telephony/providers/telnyx/strategies.py | 116 | |
| LOW | api/services/telephony/providers/telnyx/strategies.py | 161 | |
| LOW | api/services/telephony/providers/vonage/routes.py | 49 | |
| LOW | api/services/telephony/providers/twilio/strategies.py | 106 | |
| LOW | api/services/pipecat/pipeline_metrics_aggregator.py | 36 | |
| LOW | api/services/pipecat/recording_router_processor.py | 94 | |
| LOW | api/services/pipecat/event_handlers.py | 60 | |
| LOW | api/services/pipecat/event_handlers.py | 99 | |
| LOW | api/services/pipecat/event_handlers.py | 220 | |
| LOW | api/services/pipecat/realtime_feedback_observer.py | 147 | |
| LOW | api/services/pipecat/realtime_feedback_observer.py | 178 | |
| LOW | …ervices/pipecat/pipeline_engine_callbacks_processor.py | 39 | |
| LOW | …ervices/pipecat/pipeline_engine_callbacks_processor.py | 61 | |
| LOW | api/services/pipecat/pre_call_fetch.py | 18 | |
| LOW | api/services/pipecat/run_pipeline.py | 307 | |
| 29 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | api/utils/template_renderer.py | 18 | Get a nested value from a dictionary using dot notation. Args: obj: The object to traverse (dict or an |
| HIGH | api/db/workflow_client.py | 530 | Update an existing workflow in the database. Name changes are applied directly to the workflow. |
| HIGH | api/db/workflow_client.py | 641 | Update the status of a workflow. Args: workflow_id: The ID of the workflow to update |
| HIGH | api/routes/public_download.py | 29 | Download a workflow recording or transcript via public access token. This endpoint: 1. Validates the public acc |
| HIGH | api/routes/s3_signed_url.py | 78 | Validate the S3 key format and extract workflow_run_id if present. Args: key: S3 object key allow_s |
| HIGH | api/routes/s3_signed_url.py | 108 | Authorize access to workflow run and retrieve it. Args: run_id: Workflow run ID (can be None for special pa |
| HIGH | api/routes/workflow.py | 429 | Create a new workflow from a natural language template request. This endpoint: 1. Uses mps_service_key_cli |
| HIGH | api/routes/workflow.py | 915 | Update an existing workflow. Args: workflow_id: The ID of the workflow to update request: The |
| HIGH | api/routes/turn_credentials.py | 58 | Generate time-limited TURN credentials using HMAC-SHA1. Args: user_id: Unique identifier for the user (for |
| HIGH | api/services/mps_service_key_client.py | 249 | Check the usage and quota of a service key. Args: service_key: The service key to check us |
| HIGH | api/services/mps_service_key_client.py | 367 | Transcribe an audio file via MPS STT API. Args: audio_data: Raw audio bytes fi |
| HIGH | api/services/mps_service_key_client.py | 454 | Get available voices for a TTS provider from MPS. Args: provider: TTS provider name (eleve |
| HIGH | api/services/mps_service_key_client.py | 567 | Call the MPS workflow creation API using secret key authentication. For OSS mode: Pass created_by in h |
| HIGH | api/services/telephony/base.py | 385 | Initiate a call transfer to a destination number. Args: destination: The destination phone |
| HIGH | api/services/telephony/providers/cloudonix/provider.py | 957 | Initiate a call transfer via Cloudonix. Uses inline CXML to put the destination into a conference when |
| HIGH | api/services/telephony/providers/twilio/provider.py | 563 | Initiate a call transfer via Twilio. Uses inline TwiML to put the destination into a conference when t |
| HIGH | api/services/workflow/duplicate.py | 47 | Duplicate a workflow including its definition, config, and triggers. Recordings are org-scoped and shared, so they |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …/workflow/[workflowId]/components/RecordingsDialog.tsx | 273 | // Step 1: Get presigned URLs for all files |
| LOW | …/workflow/[workflowId]/components/RecordingsDialog.tsx | 291 | // Step 2: Upload all files to storage in parallel |
| LOW | …/workflow/[workflowId]/components/RecordingsDialog.tsx | 308 | // Step 3: Create all recording records |
| LOW | …low/[workflowId]/run/[runId]/hooks/useWebSocketRTC.tsx | 319 | // Step 1: Finalize the last bot message (user started speaking) |
| LOW | …low/[workflowId]/run/[runId]/hooks/useWebSocketRTC.tsx | 328 | // Step 2: Remove any previous interim transcription |
| LOW | …low/[workflowId]/run/[runId]/hooks/useWebSocketRTC.tsx | 333 | // Step 3: Add new transcription (interim or final) |
| LOW | ui/src/app/files/DocumentUpload.tsx | 181 | // Step 2: File selected — show retrieval mode choice |
| LOW | ui/src/app/campaigns/CsvUploadSelector.tsx | 43 | // Step 1: Request presigned upload URL |
| LOW | ui/src/app/campaigns/CsvUploadSelector.tsx | 59 | // Step 2: Upload file directly to S3/MinIO |
| LOW | ui/src/app/campaigns/CsvUploadSelector.tsx | 75 | // Step 3: Notify parent with file_key |
| LOW | api/tasks/s3_upload.py | 98 | # Step 1: Upload audio if provided |
| LOW | api/tasks/s3_upload.py | 129 | # Step 2: Upload transcript if provided |
| LOW | api/tasks/s3_upload.py | 166 | # Step 3: Run integrations including QA analysis (after uploads are complete) |
| LOW | api/tasks/s3_upload.py | 172 | # Step 4: Calculate cost after integrations (so QA token usage is included) |
| LOW | api/tasks/run_integrations.py | 180 | # Step 1: Get workflow run with full context |
| LOW | api/tasks/run_integrations.py | 209 | # Step 2: Get workflow definition from the run's pinned version |
| LOW | api/tasks/run_integrations.py | 217 | # Step 3: Extract integration nodes |
| LOW | api/tasks/run_integrations.py | 223 | # Step 4: Generate a public access token for any run that needs post-call work. |
| LOW | api/tasks/run_integrations.py | 236 | # Step 5: Run QA analysis before webhooks |
| LOW | api/tasks/run_integrations.py | 274 | # Step 6: Run registered third-party integrations after uploads are complete |
| LOW | api/tasks/run_integrations.py | 294 | # Step 7: Execute webhooks |
| LOW | api/tasks/run_integrations.py | 301 | # Step 8: Build render context (includes annotations from QA and integrations) |
| LOW | api/tasks/run_integrations.py | 304 | # Step 9: Execute each webhook node |
| LOW | api/tests/test_voicemail_detector.py | 122 | # Step 0: First response after CONVERSATION classification |
| LOW | api/tests/test_voicemail_detector.py | 123 | # Step 1: Response to second user turn |
| LOW | api/tests/test_voicemail_detector.py | 124 | # Step 2: end_call function call to end pipeline |
| LOW | api/tests/test_user_idle_handler.py | 228 | # Step 0: Short greeting on Start node |
| LOW | api/tests/test_user_idle_handler.py | 230 | # Step 1: Longer response (TTS 400ms > idle timeout 200ms) |
| LOW | api/tests/test_user_idle_handler.py | 235 | # Step 2: Transition from Start → Agent node |
| LOW | api/tests/test_user_idle_handler.py | 241 | # Step 3: Transition from Agent → End node (ends call) |
| LOW | api/tests/test_pipecat_engine_end_call.py | 437 | # Step 0: call end_call tool |
| LOW | api/tests/test_pipecat_engine_end_call.py | 526 | # Step 0: call end_call tool |
| LOW | api/tests/test_pipecat_engine_end_call.py | 804 | # Step 0: Text response |
| LOW | api/tests/test_pipecat_engine_end_call.py | 807 | # Step 1: call end_call tool |
| LOW | api/tests/test_pipecat_engine_context_update.py | 273 | # Step 0: Start node - should have start prompt |
| LOW | api/tests/test_pipecat_engine_context_update.py | 276 | # Step 1: Agent node - should have agent prompt |
| LOW | api/tests/test_pipecat_engine_context_update.py | 279 | # Step 2: End node - should have end prompt |
| LOW | …688d0da1123_backfill_workflow_definition_versioning.py | 30 | # Step 1: For each workflow's is_current=True definition, copy configs from |
| LOW | …688d0da1123_backfill_workflow_definition_versioning.py | 47 | # Step 2: Mark all pre-versioning non-current definitions as legacy. |
| LOW | …688d0da1123_backfill_workflow_definition_versioning.py | 56 | # Step 3: Set released_definition_id on workflows to their published definition. |
| LOW | api/services/gender/gender_service.py | 134 | # Step 1: Check local model |
| LOW | api/services/gender/gender_service.py | 152 | # Step 2: Check Redis cache for previous API responses |
| LOW | api/services/gender/gender_service.py | 167 | # Step 3: Fallback to GenderAPI |
| LOW | api/services/gender/gender_service.py | 189 | # Step 4: Return best guess from model or unknown |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | evals/stt/providers/deepgram_provider.py | 165 | # Check if final |
| LOW | scripts/migrate.sh | 5 | # Set PYTHONPATH to the parent directory of the script's location |
| LOW | scripts/migrate.sh | 14 | # Check if environment file exists |
| LOW | scripts/stop_services.sh | 71 | # Check if any PID files exist |
| LOW | scripts/stop_services.sh | 95 | # Check if parent or any descendants are still alive |
| LOW | scripts/makemigrate.sh | 5 | # Set PYTHONPATH to the parent directory of the script's location |
| LOW | scripts/makemigrate.sh | 14 | # Check if environment file exists |
| LOW | scripts/makemigrate.sh | 26 | # Check if the migration name is empty or less than 5 characters |
| LOW | .github/workflows/slack-announcements.yml | 14 | # Check if the discussion is in the announcements category |
| LOW | api/conftest.py | 133 | # Check if database exists |
| LOW | api/logging_config.py | 114 | # Set level to INFO to avoid debug logs from libraries |
| LOW | api/tasks/arq.py | 20 | # Check if we're using TLS (rediss://) |
| LOW | api/tests/test_campaign_call_dispatcher.py | 772 | # Set campaign to paused |
| LOW | api/utils/common.py | 86 | # Check if port is numeric |
| LOW | api/db/organization_client.py | 58 | # Check if we actually inserted (rowcount > 0) or if there was a conflict (rowcount == 0) |
| LOW | api/routes/auth.py | 20 | # Check if email is already taken |
| LOW | api/routes/workflow_embed.py | 76 | # Check if an embed token already exists for this workflow |
| LOW | api/routes/webrtc_signaling.py | 199 | # Check if TURN is configured |
| LOW | api/routes/webrtc_signaling.py | 537 | # Check if session is expired |
| LOW | api/routes/public_embed.py | 142 | # Check if token is active |
| LOW | api/routes/public_embed.py | 221 | # Check if token is active |
| LOW | api/routes/public_embed.py | 282 | # Check if session is expired |
| LOW | api/routes/public_embed.py | 298 | # Check if TURN is configured |
| LOW | api/routes/public_embed.py | 331 | # Check if origin is in allowed domains (empty means allow all) |
| LOW | api/routes/public_embed.py | 361 | # Check if origin is in allowed domains |
| LOW | api/services/quota_service.py | 63 | # Check if user is using any Dograh service |
| LOW | api/services/auth/depends.py | 24 | # Check if API key is provided (takes precedence) |
| LOW | api/services/auth/depends.py | 30 | # Check if we're using local (email/password) auth |
| LOW | api/services/auth/depends.py | 97 | # Check if user's selected organization differs from the current organization |
| LOW | api/services/gender/test_service.py | 96 | # Check if API key is available |
| LOW | api/services/telephony/ari_manager.py | 320 | # Check if this is a transfer destination channel (app_args starts with "transfer") |
| LOW | api/services/telephony/ari_manager.py | 384 | # Check if this is a transfer destination that failed |
| LOW | api/services/telephony/ari_manager.py | 768 | # Check if this is a call transfer scenario external channel. Skip full teardown if |
| LOW | api/services/telephony/call_transfer_manager.py | 160 | # Check if this is a completion event |
| LOW | api/services/telephony/providers/cloudonix/provider.py | 664 | # Check if AccountSid is a Cloudonix domain |
| LOW | api/services/pipecat/realtime_feedback_observer.py | 296 | # Check if this MetricsFrame contains TTFB data from an LLM processor |
| LOW | api/services/pipecat/pipeline_builder.py | 208 | # Check if turn logging is enabled |
| LOW | api/services/pipecat/run_pipeline.py | 512 | # Check if the workflow has any active recordings so the engine can |
| LOW | api/services/pipecat/service_factory.py | 89 | # Check if using Flux model (English-only, no language selection) |
| LOW | api/services/workflow/pipecat_engine.py | 590 | # Check if delayed start is enabled |
| LOW | api/services/workflow/pipecat_engine_custom_tools.py | 514 | # Check if this is a WebRTC call - transfers are not supported |
| LOW | api/services/campaign/campaign_orchestrator.py | 199 | # Check if this reason should be retried |
| LOW | api/services/campaign/campaign_orchestrator.py | 481 | # Check if batch is stuck (initiated > 5 minutes ago but no completion) |
| LOW | api/services/campaign/campaign_orchestrator.py | 495 | # Check if there's work to be done |
| LOW | api/services/campaign/campaign_orchestrator.py | 521 | # Check if campaign should be marked complete |
| LOW | api/services/campaign/rate_limiter.py | 208 | # Set expiry to match stale timeout |
| LOW | api/services/campaign/campaign_call_dispatcher.py | 79 | # Check if campaign is in running state |
| LOW | api/services/campaign/campaign_call_dispatcher.py | 509 | # Check if we've been waiting too long |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | ui/src/components/http/create-credential-dialog.tsx | 46 | { key: "api_key", label: "API Key", placeholder: "your-api-key", isSecret: true }, |
| HIGH | ui/src/components/flow/nodes/GenericNode.tsx | 329 | -H "X-API-Key: YOUR_API_KEY" \\ |
| HIGH | api/services/gender/README.md | 95 | gender_api_key="your-api-key", # Default: from GENDER_API_KEY env |
| HIGH | api/services/gender/README.md | 166 | export GENDERAPI_API_KEY=your-api-key-here |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | sdk/codegen/client_codegen.py | 42 | # optional string often shown as anyOf:[{type:string}, {type:null}] |
| HIGH | api/db/campaign_client.py | 453 | "SET logs = (logs::jsonb || CAST(:entry AS jsonb))::json, " |
| HIGH | api/routes/workflow.py | 867 | """Move a workflow into a folder, or to "Uncategorized" (folder_id=null). |
| HIGH | api/mcp_server/instructions.py | 59 | Data-position values must be plain literals (strings, numbers, booleans, null, arrays/objects of same). A single `new Wo |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | examples/typescript/fetch_workflow_and_call.ts | 1 | // Fetch a workflow by ID and place a test phone call using the TypeScript SDK. |
| LOW | examples/typescript/create_workflow.ts | 1 | // Create a new workflow using the TypeScript SDK. |
| LOW | scripts/generate_sdk.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/rolling_update.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/release_sdks.sh | 1 | #!/usr/bin/env bash |
| LOW | api/alembic.ini | 1 | # A generic, single database configuration. |
| LOW | api/alembic.ini | 21 | # The default rendered in new alembic.ini files is "os", which uses os.pathsep |
| LOW | api/alembic.ini | 41 | # a source .py file to be detected as revisions in the |
| LOW | api/alembic.ini | 61 | # Use os.pathsep. Default configuration used for new projects. |
| LOW | api/alembic.ini | 81 | # detail and examples |
| LOW | api/mcp_server/ts_validator/src/parse.ts | 1 | // TypeScript → workflow JSON. |
| LOW | api/services/auth/stack_auth.py | 61 | response = await response.json() |
| LOW | api/services/auth/stack_auth.py | 81 | # headers = { |
| LOW | api/services/auth/stack_auth.py | 101 | |
| LOW | api/services/pipecat/realtime/gemini_live.py | 201 | self._run_llm_when_session_ready = False |
| LOW | api/services/workflow/workflow_graph.py | 181 | variables |= extract_template_variables(edge.transition_speech) |
| LOW | api/services/workflow/mcp_tool_session.py | 121 | raise |
| LOW | .vscode/launch.json | 1 | // Debug configurations for Dograh contributors. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/setup_requirements.sh | 5 | # Usage: |
| LOW | scripts/rolling_update.sh | 4 | # Usage: |
| LOW | scripts/release_sdks.sh | 6 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | api/tests/conftest.py | 134 | engine._call_context_vars = {"customer_name": "John Doe"} |
| LOW | api/tests/test_pipecat_engine_variable_extraction.py | 169 | return_value={"user_name": "John Doe"}, |
| LOW | api/tests/test_custom_tools.py | 763 | arguments={"customer_name": "John Doe", "date": "2024-01-15"}, |
| LOW | api/tests/test_custom_tools.py | 807 | assert received_arguments == {"customer_name": "John Doe", "date": "2024-01-15"} |
| LOW | api/tests/test_workflow_versioning.py | 70 | TEMPLATE_VARS_V2 = {"company_name": "Acme Inc"} |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …/tests/integrations/test_run_pipeline_text_greeting.py | 90 | # pytest worker alive indefinitely (the harness has no pytest-timeout plugin). |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | api/tests/test_json_parser.py | 144 | Let me know if you need anything else!""" |