Build reliable customer-facing AI agents with Parlant: an interaction control harness optimized for controlled, consistent, and predictable LLM interactions.
2520 matches across 17 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/tool_utilities.py | 74 | def get_available_product_by_type(product_type: ProductType = ProductType.DRINKS) -> ToolResult: |
| LOW | tests/tool_utilities.py | 138 | def available_products_by_category(category: ProductCategory) -> ToolResult: |
| LOW | tests/tool_utilities.py | 147 | def available_products_by_categories(categories: list[ProductCategory]) -> ToolResult: |
| LOW | tests/tool_utilities.py | 241 | def calculate_expected_salary( |
| LOW | tests/tool_utilities.py | 252 | async def get_electronic_products_by_type( |
| LOW | tests/tool_utilities.py | 297 | async def search_electronic_products( |
| LOW | tests/tool_utilities.py | 553 | def _mock_lookup_credit_limit(username: str) -> Optional[float]: |
| LOW | tests/test_utilities.py | 290 | async def set_context_variable_value( |
| LOW | tests/test_utilities.py | 404 | async def get_when_async_done_or_timeout( |
| LOW | tests/test_utilities.py | 458 | def _ensure_cache_file_exists(self) -> None: |
| LOW | tests/test_utilities.py | 476 | def serialize_generation_info(generation: GenerationInfo) -> _GenerationInfoDocument: |
| LOW | tests/test_utilities.py | 501 | def deserialize_generation_info( |
| LOW | tests/test_utilities.py | 567 | async def create_schematic_generation_result_collection( |
| LOW | tests/test_utilities.py | 608 | async def two_required_query_params( |
| LOW | tests/test_utilities.py | 636 | async def one_required_query_param_one_required_body_param( |
| LOW | tests/core/test_cancellation_suppression_latch.py | 25 | async def test_latch_behavior_with_no_cancellation() -> None: |
| LOW | tests/core/test_cancellation_suppression_latch.py | 46 | async def test_latch_behavior_with_cancellation_after_suppression() -> None: |
| LOW | tests/core/test_cancellation_suppression_latch.py | 78 | async def test_latch_behavior_with_cancellation_before_suppression() -> None: |
| LOW | tests/core/test_id_generator.py | 18 | async def test_that_id_generator_generates_different_ids_for_objects_with_similar_small_content() -> ( |
| LOW | tests/core/test_id_generator.py | 34 | async def test_that_id_generator_generates_different_ids_for_objects_with_similar_big_content() -> ( |
| LOW | tests/core/stable/test_capability_vector_store.py | 26 | async def test_that_updating_a_capability_replaces_its_vector_documents( |
| LOW | tests/core/stable/test_capability_vector_store.py | 66 | async def test_that_deleting_a_capability_removes_its_vector_documents( |
| LOW | tests/core/stable/test_journey_guideline_projection.py | 10 | async def test_that_projection_yields_followup_for_existing_guideline(container: Container) -> None: |
| LOW | tests/core/stable/test_relationships.py | 55 | async def test_that_direct_guideline_relationships_can_be_listed( |
| LOW | tests/core/stable/test_relationships.py | 93 | async def test_that_indirect_guideline_relationships_can_be_listed( |
| LOW | tests/core/stable/test_relationships.py | 127 | async def test_that_db_data_is_loaded_correctly( |
| LOW | tests/core/stable/test_relationships.py | 165 | async def test_that_relationships_are_returned_for_source_without_indirect_relationships( |
| LOW | tests/core/stable/test_relationships.py | 206 | async def test_that_connections_are_returned_for_source_with_indirect_connections( |
| LOW | tests/core/stable/test_relationships.py | 248 | async def test_that_relationships_are_returned_for_target_without_indirect_connections( |
| LOW | tests/core/stable/test_relationships.py | 289 | async def test_that_relationships_are_returned_for_target_with_indirect_connections( |
| LOW | tests/core/stable/test_relationships.py | 331 | async def test_that_all_relationships_can_be_listed( |
| LOW | tests/core/stable/test_relationships.py | 360 | async def test_that_relationships_can_be_listed_by_kind_without_entity_filters( |
| LOW | tests/core/stable/test_relationships.py | 401 | async def test_that_relationships_can_be_listed_by_source_id_without_kind_filter( |
| LOW | tests/core/stable/test_relationships.py | 427 | async def test_that_relationships_can_be_listed_by_target_id_without_kind_filter( |
| LOW | tests/core/stable/test_relationships.py | 453 | async def test_that_relationships_can_be_listed_with_both_source_and_target_filters( |
| LOW | tests/core/stable/test_relationships.py | 483 | async def test_that_creating_a_direct_circular_dependency_raises_an_error( |
| LOW | tests/core/stable/test_relationships.py | 504 | async def test_that_creating_an_indirect_circular_dependency_raises_an_error( |
| LOW | tests/core/stable/test_relationships.py | 532 | async def test_that_creating_a_self_dependency_is_allowed( |
| LOW | tests/core/stable/test_relationships.py | 545 | async def test_that_creating_a_cycle_across_dependency_and_dependency_any_raises_an_error( |
| LOW | tests/core/stable/test_application.py | 102 | async def test_that_a_new_customer_session_can_be_created( |
| LOW | tests/core/stable/test_application.py | 118 | async def test_that_a_new_customer_session_with_a_proactive_agent_contains_a_message( |
| LOW | tests/core/stable/test_application.py | 140 | async def test_that_when_a_client_event_is_posted_then_new_server_events_are_emitted( |
| LOW | tests/core/stable/test_application.py | 168 | async def test_that_a_session_update_is_detected_as_soon_as_a_client_event_is_posted( |
| LOW | tests/core/stable/test_application.py | 192 | async def test_that_when_a_customer_quickly_posts_more_than_one_message_then_only_one_message_is_emitted_as_a_reply_to_t |
| LOW | tests/core/stable/test_application.py | 226 | def hand_off_to_human_operator() -> ToolResult: |
| LOW | tests/core/stable/test_application.py | 230 | async def test_that_a_response_is_not_generated_automatically_after_a_tool_switches_the_session_to_manual_mode( |
| LOW | tests/core/stable/test_entity_cq.py | 37 | async def test_that_list_guidelines_with_mutual_agent_tag_are_returned( |
| LOW | tests/core/stable/test_entity_cq.py | 76 | async def test_that_list_guidelines_global_guideline_is_returned( |
| LOW | tests/core/stable/test_entity_cq.py | 94 | async def test_that_guideline_with_not_hierarchy_tag_is_not_returned( |
| LOW | tests/core/stable/test_entity_cq.py | 127 | async def test_that_guideline_matches_are_not_filtered_by_enabled_journeys( |
| LOW | tests/core/stable/test_entity_cq.py | 169 | async def test_that_guideline_tagged_with_disabled_journey_is_filtered_out_when_matched( |
| LOW | tests/core/stable/test_entity_cq.py | 209 | async def test_that_find_canned_responses_for_agent_returns_global_canned_responses( |
| LOW | tests/core/stable/test_entity_cq.py | 230 | async def test_that_find_canned_responses_for_agent_returns_none_for_non_matching_tag( |
| LOW | tests/core/stable/test_entity_cq.py | 253 | async def test_that_find_canned_responses_for_agent_and_journey_returns_journey_canned_responses( |
| LOW | tests/core/stable/test_entity_cq.py | 282 | async def test_that_find_glossary_terms_for_agent_returns_all_when_no_tags( |
| LOW | tests/core/stable/test_entity_cq.py | 307 | async def test_that_find_glossary_terms_for_agent_returns_none_for_non_matching_tag( |
| LOW | tests/core/stable/test_entity_cq.py | 329 | async def test_that_find_capabilities_for_agent_returns_unique_capabilities( |
| LOW | tests/core/stable/test_entity_cq.py | 362 | async def test_find_relevant_journeys_for_agent_returns_most_relevant( |
| LOW | tests/core/stable/test_entity_cq.py | 400 | async def test_list_guidelines_dependent_directly_on_journey( |
| LOW | tests/core/stable/test_entity_cq.py | 438 | async def test_list_guidelines_dependent_indirectly_on_journey( |
| 1457 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/core/test_cancellation_suppression_latch.py | 0 | test latch behavior when task is cancelled but latch suppresses it. |
| HIGH | tests/core/test_cancellation_suppression_latch.py | 0 | test latch behavior when task is cancelled but latch suppresses it. |
| HIGH | tests/core/test_cancellation_suppression_latch.py | 0 | test latch behavior when task is cancelled but latch suppresses it. |
| HIGH | docs/advanced/custom-llms.md | 0 | return a tokenizer that approximates that of the underlying model. |
| HIGH | src/parlant/core/nlp/generation.py | 0 | return a tokenizer that approximates that of the underlying model. |
| HIGH | src/parlant/core/nlp/generation.py | 0 | return a tokenizer that approximates that of the underlying model. |
| HIGH | src/parlant/sdk.py | 0 | creates priority relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | creates priority relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | creates priority relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | alias for prioritize_over. creates priority relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | alias for prioritize_over. creates priority relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | alias for prioritize_over. creates priority relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | creates dependency relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | creates dependency relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | creates dependency relationships with other guidelines, journeys, or tags. |
| HIGH | src/parlant/sdk.py | 0 | creates or dependency relationships. at least one target must be active. |
| HIGH | src/parlant/sdk.py | 0 | creates or dependency relationships. at least one target must be active. |
| HIGH | src/parlant/sdk.py | 0 | creates or dependency relationships. at least one target must be active. |
| HIGH | src/parlant/core/engines/alpha/message_generator.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …arlant/core/engines/alpha/canned_response_generator.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …arlant/core/engines/alpha/canned_response_generator.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …viously_applied_actionable_customer_dependent_batch.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …lpha/guideline_matching/generic/observational_batch.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …pha/guideline_matching/generic/disambiguation_batch.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …/guideline_matching/generic/response_analysis_batch.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …ideline_matching/generic/guideline_actionable_batch.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …neric/guideline_previously_applied_actionable_batch.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …ne_matching/generic/guideline_low_criticality_batch.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …atching/generic/journey/journey_next_step_selection.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …ne_matching/generic/journey/journey_backtrack_check.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …ng/generic/journey/journey_backtrack_node_selection.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …ant/core/services/indexing/relative_action_proposer.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …ervices/indexing/journey_reachable_nodes_evaluation.py | 0 | - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json", exclude_unset=true), indent=2)} |
| HIGH | …/engines/alpha/tool_calling/overlapping_tools_batch.py | 0 | - **context**: {shot.description} - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json" |
| HIGH | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 0 | - **context**: {shot.description} - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json" |
| HIGH | …core/services/indexing/tool_running_action_detector.py | 0 | - **context**: {shot.description} - **expected result**: ```json {json.dumps(shot.expected_result.model_dump(mode="json" |
| HIGH | …viously_applied_actionable_customer_dependent_batch.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …lpha/guideline_matching/generic/observational_batch.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …pha/guideline_matching/generic/disambiguation_batch.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …/guideline_matching/generic/response_analysis_batch.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …ideline_matching/generic/guideline_actionable_batch.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …neric/guideline_previously_applied_actionable_batch.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …ne_matching/generic/guideline_low_criticality_batch.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …atching/generic/journey/journey_next_step_selection.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …ne_matching/generic/journey/journey_backtrack_check.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …ng/generic/journey/journey_backtrack_node_selection.py | 0 | - **interaction events**: {json.dumps([adapt_event(e) for e in shot.interaction_events], indent=2)} |
| HIGH | …viously_applied_actionable_customer_dependent_batch.py | 0 | examples of guideline match evaluations: ------------------- {formatted_shots} |
| HIGH | …ideline_matching/generic/guideline_actionable_batch.py | 0 | examples of guideline match evaluations: ------------------- {formatted_shots} |
| HIGH | …neric/guideline_previously_applied_actionable_batch.py | 0 | examples of guideline match evaluations: ------------------- {formatted_shots} |
| HIGH | …ne_matching/generic/guideline_low_criticality_batch.py | 0 | examples of guideline match evaluations: ------------------- {formatted_shots} |
| HIGH | …viously_applied_actionable_customer_dependent_batch.py | 0 | important: please note there are exactly {guidelines_len} guidelines in the list for you to check. output format ------- |
| HIGH | …ideline_matching/generic/guideline_actionable_batch.py | 0 | important: please note there are exactly {guidelines_len} guidelines in the list for you to check. output format ------- |
| HIGH | …neric/guideline_previously_applied_actionable_batch.py | 0 | important: please note there are exactly {guidelines_len} guidelines in the list for you to check. output format ------- |
| HIGH | …ne_matching/generic/guideline_low_criticality_batch.py | 0 | important: please note there are exactly {guidelines_len} guidelines in the list for you to check. output format ------- |
| HIGH | …atching/generic/journey/journey_next_step_selection.py | 0 | examples of journey step selections: ------------------- {formatted_shots} ### example section is over. the following is |
| HIGH | …ne_matching/generic/journey/journey_backtrack_check.py | 0 | examples of journey step selections: ------------------- {formatted_shots} ### example section is over. the following is |
| HIGH | …ng/generic/journey/journey_backtrack_node_selection.py | 0 | examples of journey step selections: ------------------- {formatted_shots} ### example section is over. the following is |
| HIGH | src/parlant/core/services/tools/plugins.py | 0 | decorator for defining a tool function with metadata and options. |
| HIGH | src/parlant/core/services/tools/plugins.py | 0 | decorator for defining a tool function with metadata and options. |
| HIGH | src/parlant/core/services/tools/plugins.py | 0 | decorator for defining a tool function with metadata and options. |
| 25 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/conftest.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/tool_utilities.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/test_utilities.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/__init__.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/test_cancellation_suppression_latch.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/conftest.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/test_id_generator.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/test_relationships.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/test_application.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/test_entity_cq.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/test_health_reporter.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …core/stable/engines/alpha/test_user_story_scenarios.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …viously_applied_actionable_customer_dependent_batch.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …table/engines/alpha/test_guideline_actionable_batch.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …ines/alpha/test_previously_applied_actionable_batch.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …/core/stable/engines/alpha/test_relational_resolver.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …/stable/engines/alpha/test_context_variable_loading.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …/engines/alpha/test_guideline_low_criticality_batch.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …ts/core/stable/engines/alpha/test_guideline_matcher.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/engines/alpha/test_mcp.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …s/core/stable/engines/alpha/test_baseline_scenarios.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …core/stable/engines/alpha/test_disambiguation_batch.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …stable/engines/alpha/test_generic_response_analysis.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/engines/alpha/test_tool_caller.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/persistence/test_matches_filters.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/nlp/test_embedding.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/nlp/test_generation.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/services/tools/test_openapi.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/services/tools/test_plugin_client.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …ble/services/indexing/test_agent_intention_proposer.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …ervices/indexing/test_continuous_guideline_proposer.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/stable/services/indexing/test_indexer.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …es/indexing/test_customer_dependent_action_detector.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …le/services/indexing/test_guideline_action_proposer.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/utils.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/utils.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/terms.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/tags.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/sessions.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …s/core/common/engines/alpha/steps/context_variables.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/engines.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/events.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …ts/core/common/engines/alpha/steps/canned_responses.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/tools.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/journeys.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/agents.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/capabilities.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/customers.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/core/common/engines/alpha/steps/guidelines.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …re/unstable/engines/alpha/test_user_story_scenarios.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …nstable/engines/alpha/test_agent_intention_proposer.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …ines/alpha/test_previously_applied_actionable_batch.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …/core/unstable/engines/alpha/test_guideline_matcher.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …core/unstable/engines/alpha/test_baseline_scenarios.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | …re/unstable/engines/alpha/test_disambiguation_batch.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/adapters/vector_db/test_mongo_vector.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/adapters/vector_db/test_qdrant.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/adapters/nlp/test_zhipu_service.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/adapters/nlp/test_azure_service.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| LOW | tests/adapters/nlp/test_openrouter_service.py | 1 | # Copyright 2026 Emcie Co Ltd. |
| 206 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 232 | # Create a standalone guideline |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 238 | # Create a journey with a condition |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 315 | # Create a journey with a condition |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 351 | # Create a standalone guideline |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 405 | # Create a journey |
| MEDIUM | tests/core/stable/engines/alpha/test_tool_caller.py | 1343 | # Create a tool with no parameters and consequential=False (default) |
| MEDIUM | tests/core/stable/engines/alpha/test_tool_caller.py | 1397 | # Create a tool with no parameters and consequential=False (default) |
| MEDIUM | tests/core/stable/engines/alpha/test_tool_caller.py | 1408 | # Create a staged event representing this tool already being staged |
| MEDIUM | tests/adapters/vector_db/test_mongo_vector.py | 390 | # Create a new database instance pointing to the same database |
| MEDIUM | tests/adapters/db/test_mongodb.py | 527 | # Create a simple collection |
| MEDIUM | tests/adapters/db/test_json_file.py | 198 | # Create a document first |
| MEDIUM | tests/adapters/db/test_json_file.py | 221 | # Create a document first |
| MEDIUM | tests/adapters/db/test_json_file.py | 249 | # Create a document first |
| MEDIUM | tests/adapters/db/test_json_file.py | 542 | # Create an empty file |
| MEDIUM | tests/sdk/test_journeys.py | 1061 | # Create the first journey |
| MEDIUM | tests/sdk/test_journeys.py | 1107 | # Create a chat state for order confirmation |
| MEDIUM | tests/sdk/test_journeys.py | 1398 | # Create the user validation journey |
| MEDIUM | tests/sdk/test_journeys.py | 1417 | # Create the hotel booking journey |
| MEDIUM | tests/sdk/test_journeys.py | 1552 | # Create main customer service journey |
| MEDIUM | tests/sdk/test_journeys.py | 1767 | # Create a guideline |
| MEDIUM | tests/sdk/test_journeys.py | 1773 | # Create a journey with a custom state ID |
| MEDIUM | tests/sdk/test_journeys.py | 1780 | # Create a state with a custom ID |
| MEDIUM | tests/sdk/test_journeys.py | 1788 | # Create a session and send a message |
| MEDIUM | tests/sdk/test_journeys.py | 1878 | # Create a state with a custom ID |
| MEDIUM | tests/sdk/test_journeys.py | 2063 | # Create a linked journey (will be activated via link, not via conditions) |
| MEDIUM | tests/sdk/test_journeys.py | 2077 | # Create the parent journey that links to the validation journey |
| MEDIUM | tests/sdk/test_journeys.py | 2141 | # Create a state transition and attach retriever to the target state |
| MEDIUM | tests/sdk/test_journeys.py | 2178 | # Create a state transition and attach retriever to the target state |
| MEDIUM | tests/sdk/test_guidelines.py | 722 | # Create the first guideline |
| MEDIUM | tests/sdk/test_guidelines.py | 951 | # Create a canned response with a template that uses a field |
| MEDIUM | tests/sdk/test_guidelines.py | 985 | # Create a canned response that uses fields from multiple providers |
| MEDIUM | tests/sdk/test_sdk_validation.py | 183 | # Create a fork state |
| MEDIUM | tests/sdk/test_sdk_validation.py | 257 | # Create a tool state |
| MEDIUM | tests/sdk/test_sdk_validation.py | 288 | # Create a chat state |
| MEDIUM | tests/sdk/test_sdk_validation.py | 601 | # Create a fork state to test with |
| MEDIUM | tests/sdk/test_labels.py | 101 | # Create a journey with labels that will be propagated when the journey matches |
| MEDIUM | tests/sdk/test_canned_responses.py | 47 | # Create a canned response that depends on "order" field |
| MEDIUM | tests/api/test_guidelines.py | 973 | # Create a guideline with LOW criticality |
| MEDIUM | tests/api/test_sessions.py | 1911 | # Create an event with initial metadata |
| MEDIUM | tests/api/test_sessions.py | 1967 | # Create an event with initial metadata |
| MEDIUM | tests/api/test_sessions.py | 2021 | # Create a customer message with custom participant info |
| MEDIUM | tests/api/test_sessions.py | 2052 | # Create a customer message WITHOUT custom participant |
| MEDIUM | tests/api/test_relationships.py | 15 | # Import necessary modules and classes |
| MEDIUM | examples/travel_voice_agent.py | 100 | # Create the journey |
| MEDIUM | examples/travel_voice_agent.py | 168 | # Create the journey |
| MEDIUM | examples/healthcare.py | 70 | # Create the journey |
| MEDIUM | examples/healthcare.py | 130 | # Create the journey |
| MEDIUM | src/parlant/sdk.py | 1620 | # Create the new state |
| MEDIUM | src/parlant/sdk.py | 1692 | # Create a fork state for the condition |
| MEDIUM | src/parlant/sdk.py | 1734 | # Create the target state and add it to processing queue |
| MEDIUM | src/parlant/sdk.py | 1813 | # Create the transition only if target state is in mapping |
| MEDIUM | src/parlant/sdk.py | 4513 | # Create a shim that translates between SDK and core types |
| MEDIUM | src/parlant/core/engines/alpha/engine.py | 1602 | # Create a convenient accessor dict for tool-enabled guidelines (and their tools). |
| MEDIUM | src/parlant/core/services/tools/plugins.py | 259 | """This function is specifically used to refresh some of the tool's |
| MEDIUM | src/parlant/core/services/tools/mcp_service.py | 65 | """This class is a wrapper around the FastMCP server, mainly to be used in testing the MCP client""" |
| MEDIUM | …core/services/indexing/behavioral_change_evaluation.py | 563 | # Create a mapping from guideline payloads to evaluations |
| MEDIUM | src/parlant/adapters/nlp/openrouter_service.py | 606 | # Create a dynamic generator for any OpenRouter model |
| MEDIUM | src/parlant/adapters/nlp/gemini_service.py | 231 | # Create a signature from parameters |
| MEDIUM | src/parlant/adapters/nlp/gemini_service.py | 243 | # Create a fake callable |
| MEDIUM | src/parlant/adapters/nlp/gemini_service.py | 596 | # Create the new class |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_utilities.py | 775 | except Exception: |
| LOW | tests/core/stable/test_health_reporter.py | 260 | except Exception as e: # noqa: BLE001 |
| LOW | tests/core/stable/test_health_reporter.py | 332 | except Exception as e: # noqa: BLE001 |
| LOW | tests/core/stable/services/tools/test_plugin_client.py | 201 | except Exception as exc: |
| LOW | tests/adapters/db/test_mongodb.py | 730 | except Exception: |
| LOW | tests/e2e/test_server_cli.py | 239 | except Exception as exc: |
| LOW | tests/e2e/test_utilities.py | 125 | except Exception as exc: |
| LOW | tests/e2e/test_utilities.py | 157 | except Exception as e: |
| LOW | tests/e2e/test_utilities.py | 164 | except Exception: |
| LOW | docs/advanced/custom-llms.md | 289 | except Exception as e: |
| LOW | docs/adapters/nlp/vertex.md | 344 | except Exception as e: |
| LOW | docs/production/human-handoff.md | 195 | except Exception as e: |
| LOW | src/parlant/core/background_tasks.py | 133 | except Exception as exc: |
| LOW | src/parlant/core/async_utils.py | 226 | except Exception as e: |
| LOW | src/parlant/core/tools.py | 478 | except Exception as e: |
| LOW | src/parlant/core/tools.py | 492 | except Exception as e: |
| LOW | src/parlant/core/tools.py | 569 | except Exception as exc: |
| LOW | src/parlant/core/app_modules/sessions.py | 347 | except Exception: |
| LOW | src/parlant/core/app_modules/common.py | 18 | except Exception: |
| LOW | src/parlant/core/engines/alpha/prompt_builder.py | 156 | except Exception as e: |
| LOW | src/parlant/core/engines/alpha/message_generator.py | 302 | except Exception as exc: |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 2048 | except Exception as e: |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 1237 | except Exception as exc: |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 1290 | except Exception as exc: |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 2480 | except Exception as exc: |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 2823 | except Exception as e: |
| LOW | src/parlant/core/engines/alpha/engine.py | 213 | except Exception as exc: |
| LOW | src/parlant/core/engines/alpha/engine.py | 273 | except Exception as exc: |
| LOW | src/parlant/core/engines/alpha/engine.py | 412 | except Exception: |
| LOW | …/engines/alpha/tool_calling/overlapping_tools_batch.py | 203 | except Exception as exc: |
| LOW | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 346 | except Exception as exc: |
| LOW | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 1027 | except Exception as exc: |
| LOW | …parlant/core/engines/alpha/tool_calling/tool_caller.py | 290 | except Exception as exc: |
| LOW | …parlant/core/engines/alpha/tool_calling/tool_caller.py | 308 | except Exception as e: |
| LOW | …ideline_matching/custom_guideline_matching_strategy.py | 57 | except Exception as e: |
| LOW | …viously_applied_actionable_customer_dependent_batch.py | 156 | except Exception as exc: |
| LOW | …lpha/guideline_matching/generic/observational_batch.py | 151 | except Exception as exc: |
| LOW | …pha/guideline_matching/generic/disambiguation_batch.py | 217 | except Exception as exc: |
| LOW | …/guideline_matching/generic/response_analysis_batch.py | 206 | except Exception as exc: |
| LOW | …ideline_matching/generic/guideline_actionable_batch.py | 146 | except Exception as exc: |
| LOW | …neric/guideline_previously_applied_actionable_batch.py | 149 | except Exception as exc: |
| LOW | …ne_matching/generic/guideline_low_criticality_batch.py | 123 | except Exception as exc: |
| LOW | …atching/generic/journey/journey_next_step_selection.py | 377 | except Exception as exc: |
| LOW | …ne_matching/generic/journey/journey_backtrack_check.py | 187 | except Exception: |
| LOW | …ne_matching/generic/journey/journey_backtrack_check.py | 363 | except Exception as exc: |
| LOW | …ng/generic/journey/journey_backtrack_node_selection.py | 254 | except Exception: |
| LOW | …ng/generic/journey/journey_backtrack_node_selection.py | 514 | except Exception as exc: |
| LOW | src/parlant/core/nlp/generation.py | 195 | except Exception: |
| LOW | src/parlant/core/nlp/generation.py | 206 | except Exception as exc: |
| LOW | src/parlant/core/nlp/generation.py | 362 | except Exception as exc: |
| LOW | src/parlant/core/nlp/generation.py | 438 | except Exception as e: |
| LOW | src/parlant/core/nlp/embedding.py | 234 | except Exception as exc: |
| LOW | src/parlant/core/services/tools/plugins.py | 235 | except Exception: |
| LOW | src/parlant/core/services/tools/plugins.py | 709 | except Exception as exc: |
| LOW | src/parlant/core/services/tools/plugins.py | 941 | except Exception: |
| LOW | src/parlant/core/services/tools/plugins.py | 999 | except Exception as exc: |
| LOW | src/parlant/core/services/tools/mcp_service.py | 218 | except Exception as exc: |
| LOW | src/parlant/core/services/tools/mcp_service.py | 257 | except Exception as exc: |
| LOW | src/parlant/core/services/tools/mcp_service.py | 282 | except Exception as exc: |
| LOW | src/parlant/core/services/tools/mcp_service.py | 297 | except Exception as e: |
| 138 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 2012 | # ── Tag-level dependency tests ────────────────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 2252 | # ── ANY-semantics tag dependency tests ───────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 2608 | # ── Dependency hierarchy tests ───────────────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 3199 | # ── Edge-case tests ───────────────────────────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 3421 | # ── Custom journey tag propagation tests ─────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 3818 | # ── Dependency edge-case tests ───────────────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 4296 | # ── Numerical priority + dependency interaction tests ────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 4489 | # ── TAG_ALL vs TAG_ANY explicit tests ────────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 4771 | # ── DEPENDENCY_ANY (OR group) tests ──────────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 5030 | # ── DEPENDENCY_ANY edge case tests ───────────────────────────────────────── |
| MEDIUM | …/core/stable/engines/alpha/test_relational_resolver.py | 5741 | # ── Resolution attribution edge-case tests ──────────────────────────────── |
| MEDIUM | tests/core/stable/nlp/test_generation.py | 417 | # ============================================================================ |
| MEDIUM | tests/core/stable/nlp/test_generation.py | 419 | # ============================================================================ |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 60 | # --------------------------------------------------------------------------- |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 62 | # --------------------------------------------------------------------------- |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 68 | # --------------------------------------------------------------------------- |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 70 | # --------------------------------------------------------------------------- |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 180 | # --------------------------------------------------------------------------- |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 182 | # --------------------------------------------------------------------------- |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 221 | # --------------------------------------------------------------------------- |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 223 | # --------------------------------------------------------------------------- |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 593 | # ── Phase 1: Resolve dependency targets ────────────────────────── |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 630 | # ── Phase 2: Topological sort (Kahn's algorithm) ───────────────── |
| MEDIUM | src/parlant/core/engines/alpha/relational_resolver.py | 634 | # ── Phase 3: Evaluate in topological order ─────────────────────── |
| MEDIUM | src/parlant/core/nlp/generation.py | 40 | # ============================================================================ |
| MEDIUM | src/parlant/core/nlp/generation.py | 42 | # ============================================================================ |
| MEDIUM | src/parlant/core/nlp/generation.py | 259 | # ============================================================================ |
| MEDIUM | src/parlant/core/nlp/generation.py | 261 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/parlant_cloud_service.py | 361 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/parlant_cloud_service.py | 363 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/parlant_cloud_service.py | 580 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/parlant_cloud_service.py | 582 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/openai_service.py | 414 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/openai_service.py | 416 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/openai_service.py | 561 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/openai_service.py | 563 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/novita_service.py | 272 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/novita_service.py | 274 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/emcie_service.py | 335 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/emcie_service.py | 337 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/emcie_service.py | 534 | # ============================================================================ |
| MEDIUM | src/parlant/adapters/nlp/emcie_service.py | 536 | # ============================================================================ |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …re/stable/engines/alpha/test_journey_node_selection.py | 1098 | |
| LOW | …core/stable/engines/alpha/test_disambiguation_batch.py | 269 | |
| LOW | …re/unstable/engines/alpha/test_disambiguation_batch.py | 263 | |
| LOW | tests/adapters/db/test_mongodb.py | 1078 | |
| LOW | tests/adapters/db/test_mongodb.py | 1116 | |
| LOW | tests/adapters/db/test_mongodb.py | 1181 | |
| LOW | tests/sdk/utils.py | 125 | |
| LOW | tests/sdk/test_agents.py | 366 | |
| LOW | tests/e2e/test_utilities.py | 95 | |
| LOW | scripts/generate_client_sdk.py | 38 | |
| LOW | src/parlant/sdk.py | 1902 | |
| LOW | src/parlant/sdk.py | 727 | |
| LOW | src/parlant/sdk.py | 819 | |
| LOW | src/parlant/sdk.py | 953 | |
| LOW | src/parlant/sdk.py | 1386 | |
| LOW | src/parlant/sdk.py | 1472 | |
| LOW | src/parlant/sdk.py | 1586 | |
| LOW | src/parlant/sdk.py | 2944 | |
| LOW | src/parlant/sdk.py | 4684 | |
| LOW | src/parlant/sdk.py | 4878 | |
| LOW | src/parlant/core/journeys.py | 1023 | |
| LOW | src/parlant/core/entity_cq.py | 389 | |
| LOW | src/parlant/core/capabilities.py | 414 | |
| LOW | src/parlant/core/relationships.py | 339 | |
| LOW | src/parlant/core/glossary.py | 396 | |
| LOW | src/parlant/core/app_modules/context_variables.py | 84 | |
| LOW | src/parlant/core/app_modules/journeys.py | 116 | |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 264 | |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 553 | |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 725 | |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 756 | |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 930 | |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 1204 | |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 1353 | |
| LOW | src/parlant/core/engines/alpha/prompt_builder.py | 109 | |
| LOW | src/parlant/core/engines/alpha/message_generator.py | 197 | |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 610 | |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 1020 | |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 1062 | |
| LOW | src/parlant/core/engines/alpha/engine.py | 1043 | |
| LOW | src/parlant/core/engines/alpha/engine.py | 1646 | |
| LOW | src/parlant/core/engines/alpha/engine.py | 2143 | |
| LOW | …/engines/alpha/tool_calling/overlapping_tools_batch.py | 236 | |
| LOW | …/engines/alpha/tool_calling/overlapping_tools_batch.py | 661 | |
| LOW | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 172 | |
| LOW | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 182 | |
| LOW | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 355 | |
| LOW | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 1254 | |
| LOW | …ngines/alpha/tool_calling/default_tool_call_batcher.py | 64 | |
| LOW | …ngines/alpha/tool_calling/default_tool_call_batcher.py | 77 | |
| LOW | …viously_applied_actionable_customer_dependent_batch.py | 107 | |
| LOW | …lpha/guideline_matching/generic/observational_batch.py | 102 | |
| LOW | …pha/guideline_matching/generic/disambiguation_batch.py | 148 | |
| LOW | …/guideline_matching/generic/response_analysis_batch.py | 148 | |
| LOW | …ideline_matching/generic/guideline_actionable_batch.py | 97 | |
| LOW | …neric/guideline_previously_applied_actionable_batch.py | 100 | |
| LOW | …atching/generic/generic_guideline_matching_strategy.py | 161 | |
| LOW | …ne_matching/generic/guideline_low_criticality_batch.py | 73 | |
| LOW | …tching/generic/journey/journey_node_selection_batch.py | 159 | |
| LOW | …tching/generic/journey/journey_node_selection_batch.py | 264 | |
| 66 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/core/test_cancellation_suppression_latch.py | 15 | |
| LOW | …/core/stable/engines/alpha/test_relational_resolver.py | 18 | |
| LOW | tests/adapters/db/test_snowflake_db.py | 15 | |
| LOW | tests/e2e/test_utilities.py | 15 | |
| LOW | src/parlant/sdk.py | 15 | |
| LOW | src/parlant/sdk.py | 76 | |
| LOW | src/parlant/sdk.py | 76 | |
| LOW | src/parlant/sdk.py | 76 | |
| LOW | src/parlant/sdk.py | 76 | |
| LOW | src/parlant/sdk.py | 76 | |
| LOW | src/parlant/sdk.py | 76 | |
| LOW | src/parlant/sdk.py | 76 | |
| LOW | src/parlant/sdk.py | 76 | |
| LOW | src/parlant/sdk.py | 99 | |
| LOW | src/parlant/sdk.py | 132 | |
| LOW | src/parlant/sdk.py | 132 | |
| LOW | src/parlant/sdk.py | 133 | |
| LOW | src/parlant/sdk.py | 134 | |
| LOW | src/parlant/sdk.py | 157 | |
| LOW | src/parlant/sdk.py | 163 | |
| LOW | src/parlant/sdk.py | 163 | |
| LOW | src/parlant/sdk.py | 163 | |
| LOW | src/parlant/sdk.py | 168 | |
| LOW | src/parlant/sdk.py | 183 | |
| LOW | src/parlant/sdk.py | 183 | |
| LOW | src/parlant/sdk.py | 183 | |
| LOW | src/parlant/sdk.py | 230 | |
| LOW | src/parlant/sdk.py | 230 | |
| LOW | src/parlant/sdk.py | 230 | |
| LOW | src/parlant/sdk.py | 230 | |
| LOW | src/parlant/sdk.py | 230 | |
| LOW | src/parlant/sdk.py | 239 | |
| LOW | src/parlant/sdk.py | 239 | |
| LOW | src/parlant/sdk.py | 239 | |
| LOW | src/parlant/sdk.py | 239 | |
| LOW | src/parlant/sdk.py | 239 | |
| LOW | src/parlant/sdk.py | 246 | |
| LOW | src/parlant/sdk.py | 246 | |
| LOW | src/parlant/sdk.py | 252 | |
| LOW | src/parlant/sdk.py | 252 | |
| LOW | src/parlant/sdk.py | 256 | |
| LOW | src/parlant/sdk.py | 256 | |
| LOW | src/parlant/sdk.py | 256 | |
| LOW | src/parlant/sdk.py | 263 | |
| LOW | src/parlant/sdk.py | 263 | |
| LOW | src/parlant/sdk.py | 263 | |
| LOW | src/parlant/sdk.py | 263 | |
| LOW | src/parlant/sdk.py | 274 | |
| LOW | src/parlant/sdk.py | 274 | |
| LOW | src/parlant/sdk.py | 274 | |
| LOW | src/parlant/sdk.py | 274 | |
| LOW | src/parlant/sdk.py | 274 | |
| LOW | src/parlant/sdk.py | 274 | |
| LOW | src/parlant/sdk.py | 274 | |
| LOW | src/parlant/core/tags.py | 15 | |
| LOW | src/parlant/core/sessions.py | 15 | |
| LOW | src/parlant/core/context_variables.py | 15 | |
| LOW | src/parlant/core/async_utils.py | 15 | |
| LOW | src/parlant/core/loggers.py | 15 | |
| LOW | src/parlant/core/canned_responses.py | 15 | |
| 58 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/core/common/engines/alpha/steps/journeys.py | 2076 | # Step 1: Ask for account name |
| LOW | tests/core/common/engines/alpha/steps/journeys.py | 2104 | # Step 2: Ask for desired credit limit |
| LOW | tests/core/common/engines/alpha/steps/journeys.py | 2132 | # Step 3: Confirm information and move forward politely |
| LOW | tests/core/common/engines/alpha/steps/journeys.py | 2161 | # Step 4: Use tool to get the current limit |
| LOW | tests/core/common/engines/alpha/steps/journeys.py | 2211 | # Step 5: Use tool to change the limit |
| LOW | tests/core/common/engines/alpha/steps/journeys.py | 2261 | # Step 6: Report to customer |
| LOW | tests/core/common/engines/alpha/steps/journeys.py | 2278 | # Step 7: Report failure |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 341 | # Step 1: Dependencies |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 353 | # Step 2: Relational prioritization (includes transitive dep filtering) |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 371 | # Step 3: Numerical priority filtering. |
| LOW | src/parlant/core/engines/alpha/relational_resolver.py | 393 | # Step 4: Entailment. |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 2176 | # Step 1: Generate the draft message |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 2266 | # Step 2: Select the most relevant canned response templates based on the draft message |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 2306 | # Step 3: Pre-render these templates so that matching works better |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 2351 | # Step 5: Respond based on the match quality |
| LOW | src/parlant/core/engines/alpha/engine.py | 1243 | # Step 1: Retrieve the journeys likely to be activated for this agent |
| LOW | src/parlant/core/engines/alpha/engine.py | 1248 | # Step 2 : Retrieve all the guidelines for the context. |
| LOW | src/parlant/core/engines/alpha/engine.py | 1277 | # Step 4: Filter the best matches out of those. |
| LOW | src/parlant/core/engines/alpha/engine.py | 1287 | # Step 5: Filter the journeys that are activated by the matched guidelines. |
| LOW | src/parlant/core/engines/alpha/engine.py | 1292 | # Step 6: If any of the lower-probability journeys (those originally filtered out) |
| LOW | src/parlant/core/engines/alpha/engine.py | 1319 | # Step 7: Build the set of matched guidelines: |
| LOW | src/parlant/core/engines/alpha/engine.py | 1329 | # Step 8: Let the plan potentially intervene |
| LOW | src/parlant/core/engines/alpha/engine.py | 1332 | # Step 9: Resolve guideline matches by considering relationships |
| LOW | src/parlant/core/engines/alpha/engine.py | 1351 | # Step 1: Retrieve all the possible journeys for this agent |
| LOW | src/parlant/core/engines/alpha/engine.py | 1356 | # Step 2: Reuse the usable guidelines cached during the initial iteration. |
| LOW | src/parlant/core/engines/alpha/engine.py | 1360 | # Step 3: Retrieve guidelines that need reevaluation based on tool calls made |
| LOW | src/parlant/core/engines/alpha/engine.py | 1370 | # Step 4: Reevaluate those guidelines using the latest context. |
| LOW | src/parlant/core/engines/alpha/engine.py | 1380 | # Step 5: Filter out the journeys activated by the matched guidelines. |
| LOW | src/parlant/core/engines/alpha/engine.py | 1388 | # Step 6: If any of the journeys have been activated, |
| LOW | src/parlant/core/engines/alpha/engine.py | 1262 | # Step 3: Exclude guidelines whose prerequisite journeys are less likely to be activated |
| LOW | src/parlant/core/engines/alpha/engine.py | 1414 | # Step 7: Build the final set of matched guidelines: |
| LOW | src/parlant/core/engines/alpha/engine.py | 1426 | # Step 8: Let the plan potentially intervene |
| LOW | src/parlant/core/engines/alpha/engine.py | 1429 | # Step 9: Resolve guideline matches by considering relationships |
| LOW | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 1773 | "The customer wants to purchase a laptop and a mouse and we need to check if those products are available" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/adapters/vector_db/test_qdrant.py | 508 | # Check if any documents were successfully migrated to new format |
| LOW | tests/adapters/db/test_mongodb.py | 1106 | # Check if this index includes creation_utc field |
| LOW | tests/adapters/db/test_mongodb.py | 1169 | # Check if this index includes creation_utc field |
| LOW | tests/adapters/db/test_mongodb.py | 1210 | # Check if this index includes creation_utc field |
| LOW | src/parlant/sdk.py | 1768 | # Check if this state has no outgoing transitions (leaf state) |
| LOW | src/parlant/sdk.py | 1827 | # Add target to queue for further processing |
| LOW | src/parlant/sdk.py | 1873 | # Check if this is a journey node guideline |
| LOW | src/parlant/sdk.py | 5021 | # Check if the result is a deferred callable |
| LOW | src/parlant/core/sessions.py | 1551 | # Check if the event has chunks property |
| LOW | src/parlant/core/sessions.py | 1555 | # Check if the last chunk is None (completion signal) |
| LOW | src/parlant/core/journeys.py | 890 | # Check if journey with this ID already exists |
| LOW | src/parlant/core/agents.py | 354 | # Check if agent with this ID already exists |
| LOW | src/parlant/core/customers.py | 277 | # Check if customer with this ID already exists |
| LOW | src/parlant/core/guidelines.py | 656 | # Check if guideline with this ID already exists |
| LOW | src/parlant/core/glossary.py | 301 | # Check if term with this ID already exists |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 709 | # Check if this is the first agent message (greeting scenario) |
| LOW | …arlant/core/engines/alpha/canned_response_generator.py | 2016 | # Add chunk to the list and update the message |
| LOW | …t/core/engines/alpha/tool_calling/single_tool_batch.py | 1284 | # Check if all required parameters are present |
| LOW | src/parlant/core/services/tools/plugins.py | 339 | # Check if it's a list[Enum] type |
| LOW | src/parlant/adapters/vector_db/qdrant.py | 84 | # Check if it's a timeout error |
| LOW | src/parlant/adapters/vector_db/qdrant.py | 331 | # Check if index exists |
| LOW | src/parlant/adapters/vector_db/qdrant.py | 637 | # Check if collections exist |
| LOW | src/parlant/adapters/vector_db/qdrant.py | 780 | # Check if metadata collection exists |
| LOW | src/parlant/adapters/vector_db/mongo.py | 113 | # Check if the index already exists |
| LOW | src/parlant/adapters/vector_db/mongo.py | 225 | # Check if the collection exists in MongoDB |
| LOW | src/parlant/adapters/vector_db/chroma.py | 246 | # Check if we have a corresponding embedded collection for the embedder type. |
| LOW | src/parlant/adapters/nlp/vertex_service.py | 776 | # Check if it's a short name we recognize |
| LOW | src/parlant/adapters/nlp/mistral_service.py | 350 | # Check if any score indicates flagged content (threshold can be adjusted) |
| LOW | src/parlant/adapters/nlp/azure_service.py | 280 | # Check if API key is provided (backward compatibility) |
| LOW | src/parlant/adapters/nlp/openrouter_service.py | 178 | # Check if it's a JSON mode error |
| LOW | src/parlant/adapters/nlp/openrouter_service.py | 234 | # Check if we got empty response |
| LOW | src/parlant/adapters/nlp/openrouter_service.py | 247 | # Check if parsed JSON is empty |
| LOW | src/parlant/adapters/nlp/openrouter_service.py | 602 | # Check if we have a predefined generator for this model |
| LOW | src/parlant/adapters/nlp/gemini_service.py | 529 | # Check if origin is Mapping or Sequence |
| LOW | src/parlant/api/sessions.py | 2129 | # Check if event is complete (for streaming events) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | docs/quickstart/installation.md | 70 | export OPENAI_API_KEY="<YOUR_API_KEY>" |
| HIGH | docs/quickstart/installation.md | 70 | export OPENAI_API_KEY="<YOUR_API_KEY>" |
| HIGH | docs/adapters/vector_db/qdrant.md | 51 | # api_key="your-api-key-here", |
| HIGH | docs/adapters/nlp/openrouter.md | 17 | export OPENROUTER_API_KEY="your-api-key-here" |
| HIGH | docs/adapters/nlp/openrouter.md | 44 | export OPENROUTER_API_KEY="your-api-key-here" |
| HIGH | docs/adapters/nlp/openrouter.md | 514 | export OPENROUTER_API_KEY="your-api-key-here" |
| HIGH | docs/adapters/nlp/azure.md | 168 | export AZURE_API_KEY="your-api-key" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/sdk/utils.py | 113 | """Check if the event is still streaming (chunks property exists and not yet terminated with null).""" |
| HIGH | scripts/version.py | 136 | "git diff --quiet && git diff --cached --quiet && git ls-files --others --exclude-standard" |
| HIGH | …arlant/core/engines/alpha/canned_response_generator.py | 1467 | If told so by a guideline or some other contextual condition, send the first message. Otherwise, do not produce a reply |
| HIGH | …arlant/core/engines/alpha/canned_response_generator.py | 1473 | "response_preamble_that_was_already_sent": null, |
| HIGH | …arlant/core/engines/alpha/canned_response_generator.py | 1486 | The only exception where you may not produce a reply (i.e., setting message = null) is if the user, or a provided guidel |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/sdk/test_customers.py | 23 | name="John Doe", metadata={"email": "john.doe@example.com"} |
| LOW | tests/sdk/test_customers.py | 31 | assert customer.name == "John Doe" |
| LOW | tests/sdk/test_customers.py | 39 | name="John Doe", |
| LOW | tests/sdk/test_customers.py | 58 | name="John Doe", |
| LOW | tests/sdk/test_customers.py | 65 | self.customer = await server.find_customer(name="John Doe") |
| LOW | tests/sdk/test_customers.py | 75 | name="John Doe", |
| LOW | tests/sdk/test_variables.py | 78 | self.customer = await server.create_customer("John Doe") |
| LOW | tests/sdk/test_variables.py | 187 | self.customer = await server.create_customer("Jane Doe") |
| LOW | tests/sdk/test_variables.py | 244 | self.customer = await server.create_customer("Jane Doe") |
| LOW | tests/sdk/test_variables.py | 286 | "Jane Doe", |
| LOW | tests/api/test_sessions.py | 1812 | "participant": {"id": "agent_007", "display_name": "John Doe"}, |
| LOW | tests/api/test_sessions.py | 1823 | assert event["data"]["participant"]["display_name"] == "John Doe" |
| LOW | tests/api/test_customers.py | 29 | name = "John Doe" |
| LOW | tests/api/test_customers.py | 60 | "name": "John Doe", |
| LOW | tests/modules/bank.py | 33 | return ToolResult({"name": "John Doe", "account_number": "1234567890"}) |
| LOW | …ng/generic/journey/journey_backtrack_node_selection.py | 1428 | _make_event("3", EventSource.CUSTOMER, "Jane Doe"), |
| LOW | src/parlant/api/sessions.py | 321 | examples=["John Doe", "Alice"], |
| LOW | src/parlant/api/sessions.py | 328 | "display_name": "John Doe", |
| LOW | src/parlant/api/sessions.py | 415 | "participant": {"id": "cust_123xy", "display_name": "John Doe"}, |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | src/parlant/adapters/nlp/azure_service.py | 144 | response = await self._client.beta.chat.completions.parse( |
| CRITICAL | src/parlant/adapters/nlp/openai_service.py | 200 | response = await self._client.beta.chat.completions.parse( |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tests/sdk/test_sdk_validation.py | 581 | """Test comprehensive condition validation for ForkJourneyState""" |
| LOW | src/parlant/core/journeys.py | 1323 | # Journey not found, just return node as-is |
| MEDIUM | …arlant/core/engines/alpha/canned_response_generator.py | 1889 | # Build recap section to leverage LLM recency bias |
| LOW | src/parlant/api/sessions.py | 2137 | # Non-streaming event, just return it once |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | src/parlant/adapters/vector_db/qdrant.py | 63 | Retry an async operation on timeout errors with exponential backoff. Args: operation: The async operat |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | src/parlant/core/engines/alpha/prompt_builder.py | 326 | return f"\nIMPORTANT: Please note that the last message was sent by you, the AI agent (likely as a preamble). Yo |