SYMBOL INDEX (20484 symbols across 3048 files) FILE: backend/alembic/env.py function include_object (line 59) | def include_object( function filter_tenants_by_range (line 78) | def filter_tenants_by_range( function get_schema_options (line 127) | def get_schema_options() -> ( function do_run_migrations (line 223) | def do_run_migrations( function provide_iam_token_for_alembic (line 246) | def provide_iam_token_for_alembic( function run_async_migrations (line 267) | async def run_async_migrations() -> None: function run_migrations_offline (line 372) | def run_migrations_offline() -> None: function run_migrations_online (line 466) | def run_migrations_online() -> None: FILE: backend/alembic/run_multitenant_migrations.py class Args (line 41) | class Args(NamedTuple): class BatchResult (line 46) | class BatchResult(NamedTuple): function run_alembic_for_batch (line 58) | def run_alembic_for_batch(schemas: list[str]) -> BatchResult: function get_head_revision (line 101) | def get_head_revision() -> str | None: function run_migrations_parallel (line 108) | def run_migrations_parallel( function parse_args (line 219) | def parse_args() -> Args: function main (line 247) | def main() -> int: FILE: backend/alembic/versions/01f8e6d95a33_populate_flow_mapping_data.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 61) | def downgrade() -> None: FILE: backend/alembic/versions/027381bce97c_add_shortcut_option_for_users.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/03bf8be6b53a_rework_kg_config.py function upgrade (line 27) | def upgrade() -> None: function downgrade (line 74) | def downgrade() -> None: FILE: backend/alembic/versions/03d085c5c38d_backfill_account_type.py function upgrade (line 41) | def upgrade() -> None: function downgrade (line 106) | def downgrade() -> None: FILE: backend/alembic/versions/03d710ccf29c_add_permission_sync_attempt_tables.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 124) | def downgrade() -> None: FILE: backend/alembic/versions/0568ccf46a6b_add_thread_specific_model_selection.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/05c07bf07c00_add_search_doc_relevance_details.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/07b98176f1de_code_interpreter_seed.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/0816326d83aa_add_federated_connector_tables.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 68) | def downgrade() -> None: FILE: backend/alembic/versions/08a1eda20fe1_add_earliest_indexing_to_connector.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/09995b8811eb_add_theme_preference_to_user.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/0a2b51deb0b8_add_starter_prompts.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/0a98909f2757_enable_encrypted_fields.py function upgrade (line 24) | def upgrade() -> None: function downgrade (line 101) | def downgrade() -> None: FILE: backend/alembic/versions/0bb4558f35df_add_scim_username_to_scim_user_mapping.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/0cd424f32b1d_user_file_data_preparation_and_backfill.py function upgrade (line 25) | def upgrade() -> None: function downgrade (line 346) | def downgrade() -> None: FILE: backend/alembic/versions/0ebb1d516877_add_ccpair_deletion_failure_message.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/0f7ff6d75b57_add_index_to_index_attempt_time_created.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 34) | def downgrade() -> None: FILE: backend/alembic/versions/114a638452db_add_default_app_mode_to_user.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/12635f6655b7_drive_canonical_ids.py function active_search_settings (line 34) | def active_search_settings() -> tuple[SearchSettings, SearchSettings | N... function normalize_google_drive_url (line 78) | def normalize_google_drive_url(url: str) -> str: function get_google_drive_documents_from_database (line 92) | def get_google_drive_documents_from_database() -> list[dict]: function update_document_id_in_database (line 116) | def update_document_id_in_database( function _visit_chunks (line 285) | def _visit_chunks( function delete_document_chunks_from_vespa (line 313) | def delete_document_chunks_from_vespa(index_name: str, doc_id: str) -> N... function update_document_id_in_vespa (line 352) | def update_document_id_in_vespa( function delete_document_from_db (line 399) | def delete_document_from_db(current_doc_id: str, index_name: str) -> None: function upgrade (line 518) | def upgrade() -> None: function downgrade (line 587) | def downgrade() -> None: FILE: backend/alembic/versions/15326fcec57e_introduce_onyx_apis.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 36) | def downgrade() -> None: FILE: backend/alembic/versions/16c37a30adf2_user_file_relationship_migration.py function upgrade (line 25) | def upgrade() -> None: function downgrade (line 198) | def downgrade() -> None: FILE: backend/alembic/versions/173cae5bba26_port_config_store.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/175ea04c7087_add_user_preferences.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/177de57c21c9_display_custom_llm_models.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 59) | def downgrade() -> None: FILE: backend/alembic/versions/18b5b2524446_add_is_clarification_to_chat_message.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/19c0ccb01687_migrate_to_contextual_rag_model.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 57) | def downgrade() -> None: FILE: backend/alembic/versions/1a03d2c2856b_add_indexes_to_document__tag.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/1b10e1fda030_add_additional_data_to_notifications.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/1b8206b29c5d_add_user_delete_cascades.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 76) | def downgrade() -> None: FILE: backend/alembic/versions/1d78c0ca7853_remove_voice_provider_deleted_column.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/1f2a3b4c5d6e_add_internet_search_and_content_providers.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 81) | def downgrade() -> None: FILE: backend/alembic/versions/1f60f60c3401_embedding_model_search_settings.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 95) | def downgrade() -> None: FILE: backend/alembic/versions/2020d417ec84_single_onyx_craft_migration.py function upgrade (line 33) | def upgrade() -> None: function downgrade (line 305) | def downgrade() -> None: FILE: backend/alembic/versions/213fd978c6d8_notifications.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 44) | def downgrade() -> None: FILE: backend/alembic/versions/238b84885828_add_foreign_key_to_user__external_user_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 39) | def downgrade() -> None: FILE: backend/alembic/versions/23957775e5f5_remove_feedback_foreignkey_constraint.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 55) | def downgrade() -> None: FILE: backend/alembic/versions/25a5501dc766_group_permissions_phase1.py function upgrade (line 25) | def upgrade() -> None: function downgrade (line 105) | def downgrade() -> None: FILE: backend/alembic/versions/2664261bfaab_add_cache_store_table.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic/versions/2666d766cb9b_google_oauth2.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 53) | def downgrade() -> None: FILE: backend/alembic/versions/26b931506ecb_default_chosen_assistants_to_none.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 43) | def downgrade() -> None: FILE: backend/alembic/versions/27c6ecc08586_permission_framework.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 145) | def downgrade() -> None: FILE: backend/alembic/versions/27fb147a843f_add_timestamps_to_user_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 41) | def downgrade() -> None: FILE: backend/alembic/versions/2955778aa44c_add_chunk_count_to_document.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 24) | def downgrade() -> None: FILE: backend/alembic/versions/2a391f840e85_add_last_refreshed_at_mcp_server.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/2acdef638fc2_add_switchover_type_field.py function upgrade (line 22) | def upgrade() -> None: function downgrade (line 50) | def downgrade() -> None: FILE: backend/alembic/versions/2b75d0a8ffcb_user_file_schema_cleanup.py function upgrade (line 26) | def upgrade() -> None: function downgrade (line 156) | def downgrade() -> None: FILE: backend/alembic/versions/2b90f3af54b8_usage_limits.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 44) | def downgrade() -> None: FILE: backend/alembic/versions/2c2430828bdf_add_unique_constraint_to_inputprompt_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 40) | def downgrade() -> None: FILE: backend/alembic/versions/2cdeff6d8c93_set_built_in_to_default.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/2d2304e27d8c_add_above_below_to_persona.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/2daa494a0851_add_group_sync_time.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/2f80c6a2550f_add_chat_session_specific_temperature_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic/versions/2f95e36923e6_add_indexing_coordination.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 100) | def downgrade() -> None: FILE: backend/alembic/versions/30c1d5744104_persona_datetime_aware.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/325975216eb3_add_icon_color_and_icon_shape_to_persona.py function generate_random_shape (line 33) | def generate_random_shape() -> int: function upgrade (line 43) | def upgrade() -> None: function downgrade (line 68) | def downgrade() -> None: FILE: backend/alembic/versions/33cb72ea4d80_single_tool_call_per_message.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 45) | def downgrade() -> None: FILE: backend/alembic/versions/33ea50e88f24_foreign_key_input_prompts.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 54) | def downgrade() -> None: FILE: backend/alembic/versions/351faebd379d_add_curator_fields.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 64) | def downgrade() -> None: FILE: backend/alembic/versions/35e518e0ddf4_properly_cascade.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 74) | def downgrade() -> None: FILE: backend/alembic/versions/35e6853a51d5_server_default_chosen_assistants.py function upgrade (line 22) | def upgrade() -> None: function downgrade (line 58) | def downgrade() -> None: FILE: backend/alembic/versions/369644546676_add_composite_index_for_index_attempt_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/36e9220ab794_update_kg_trigger_functions.py function _get_tenant_contextvar (line 21) | def _get_tenant_contextvar(session: Session) -> str: function upgrade (line 30) | def upgrade() -> None: function downgrade (line 135) | def downgrade() -> None: FILE: backend/alembic/versions/3781a5eb12cb_add_chunk_stats_table.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 50) | def downgrade() -> None: FILE: backend/alembic/versions/3879338f8ba1_add_tool_table.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 44) | def downgrade() -> None: FILE: backend/alembic/versions/38eda64af7fe_add_chat_session_sharing.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 41) | def downgrade() -> None: FILE: backend/alembic/versions/3934b1bc7b62_update_github_connector_repo_name_to_.py function upgrade (line 23) | def upgrade() -> None: function downgrade (line 74) | def downgrade() -> None: FILE: backend/alembic/versions/3a7802814195_add_alternate_assistant_to_chat_message.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 33) | def downgrade() -> None: FILE: backend/alembic/versions/3a78dba1080a_user_file_legacy_data_cleanup.py function batch_delete (line 28) | def batch_delete( function upgrade (line 90) | def upgrade() -> None: function downgrade (line 288) | def downgrade() -> None: FILE: backend/alembic/versions/3b25685ff73c_move_is_public_to_cc_pair.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 40) | def downgrade() -> None: FILE: backend/alembic/versions/3bd4c84fe72f_improved_index.py function upgrade (line 28) | def upgrade() -> None: function downgrade (line 73) | def downgrade() -> None: FILE: backend/alembic/versions/3c5e35aa9af0_polling_document_count.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 50) | def downgrade() -> None: FILE: backend/alembic/versions/3c6531f32351_add_back_input_prompts.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 58) | def downgrade() -> None: FILE: backend/alembic/versions/3c9a65f1207f_seed_exa_provider_from_env.py function _get_internet_search_table (line 29) | def _get_internet_search_table(metadata: sa.MetaData) -> sa.Table: function upgrade (line 54) | def upgrade() -> None: function downgrade (line 88) | def downgrade() -> None: FILE: backend/alembic/versions/3d1cca026fe8_add_oauth_config_and_user_tokens.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 107) | def downgrade() -> None: FILE: backend/alembic/versions/3fc5d75723b3_add_doc_metadata_field_in_document_model.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/401c1ac29467_add_tables_for_ui_based_llm_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 47) | def downgrade() -> None: FILE: backend/alembic/versions/40926a4dab77_reset_userfile_document_id_migrated_.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/41fa44bef321_remove_default_prompt_shortcuts.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/43cbbb3f5e6a_rename_index_origin_to_index_recursively.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/44f856ae2a4a_add_cloud_embedding_model.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 53) | def downgrade() -> None: FILE: backend/alembic/versions/4505fd7302e1_added_is_internet_to_dbdoc.py function upgrade (line 17) | def upgrade() -> None: function downgrade (line 22) | def downgrade() -> None: FILE: backend/alembic/versions/465f78d9b7f9_larger_access_tokens_for_oauth.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 24) | def downgrade() -> None: FILE: backend/alembic/versions/46625e4745d4_remove_native_enum.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/46b7a812670f_fix_user__external_user_group_id_fk.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 34) | def downgrade() -> None: FILE: backend/alembic/versions/4738e4b3bae1_pg_file_store.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/473a1a7ca408_add_display_model_names_to_llm_provider.py function upgrade (line 32) | def upgrade() -> None: function downgrade (line 48) | def downgrade() -> None: FILE: backend/alembic/versions/47433d30de82_create_indexattempt_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 73) | def downgrade() -> None: FILE: backend/alembic/versions/475fcefe8826_add_name_to_api_key.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/4794bc13e484_update_prompt_length.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 37) | def downgrade() -> None: FILE: backend/alembic/versions/47a07e1a38f1_fix_invalid_model_configurations_state.py class _SimpleModelConfiguration (line 27) | class _SimpleModelConfiguration(BaseModel): function upgrade (line 38) | def upgrade() -> None: function downgrade (line 149) | def downgrade() -> None: FILE: backend/alembic/versions/47e5bef3a1d7_add_persona_categories.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 43) | def downgrade() -> None: FILE: backend/alembic/versions/48d14957fe80_add_support_for_custom_tools.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 57) | def downgrade() -> None: FILE: backend/alembic/versions/495cb26ce93e_create_knowlege_graph_tables.py function upgrade (line 28) | def upgrade() -> None: function downgrade (line 585) | def downgrade() -> None: FILE: backend/alembic/versions/4a1e4b1c89d2_add_indexing_to_userfilestatus.py function _drop_status_check_constraint (line 25) | def _drop_status_check_constraint() -> None: function upgrade (line 39) | def upgrade() -> None: function downgrade (line 45) | def downgrade() -> None: FILE: backend/alembic/versions/4a951134c801_moved_status_to_connector_credential_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 56) | def downgrade() -> None: FILE: backend/alembic/versions/4b08d97e175a_change_default_prune_freq.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/4cebcbc9b2ae_add_tab_index_to_tool_call.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/4d58345da04a_lowercase_user_emails.py function upgrade (line 25) | def upgrade() -> None: function downgrade (line 60) | def downgrade() -> None: FILE: backend/alembic/versions/4ea2c93919c1_add_type_to_credentials.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 75) | def downgrade() -> None: FILE: backend/alembic/versions/4ee1287bd26a_add_multiple_slack_bot_support.py function upgrade (line 24) | def upgrade() -> None: function downgrade (line 184) | def downgrade() -> None: FILE: backend/alembic/versions/4f8a2b3c1d9e_add_open_url_tool.py function upgrade (line 31) | def upgrade() -> None: function downgrade (line 101) | def downgrade() -> None: FILE: backend/alembic/versions/503883791c39_add_effective_permissions.py function upgrade (line 50) | def upgrade() -> None: function downgrade (line 103) | def downgrade() -> None: FILE: backend/alembic/versions/505c488f6662_merge_default_assistants_into_unified.py class UserRow (line 75) | class UserRow(NamedTuple): function upgrade (line 85) | def upgrade() -> None: function downgrade (line 307) | def downgrade() -> None: FILE: backend/alembic/versions/50b683a8295c_add_additional_retrieval_controls_to_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/52a219fb5233_add_last_synced_and_last_modified_to_document_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 63) | def downgrade() -> None: FILE: backend/alembic/versions/54a74a0417fc_danswerbot_onyxbot.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/55546a7967ee_assistant_rework.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 63) | def downgrade() -> None: FILE: backend/alembic/versions/570282d33c49_track_onyxbot_explicitly.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/57122d037335_add_python_tool_on_default.py function upgrade (line 23) | def upgrade() -> None: function downgrade (line 50) | def downgrade() -> None: FILE: backend/alembic/versions/57b53544726e_add_document_set_tables.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 58) | def downgrade() -> None: FILE: backend/alembic/versions/5809c0787398_add_chat_sessions.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 84) | def downgrade() -> None: FILE: backend/alembic/versions/58c50ef19f08_add_stale_column_to_user__external_user_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 66) | def downgrade() -> None: FILE: backend/alembic/versions/5ae8240accb3_add_research_agent_database_tables_and_.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 108) | def downgrade() -> None: FILE: backend/alembic/versions/5b29123cd710_nullable_search_settings_for_historic_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 42) | def downgrade() -> None: FILE: backend/alembic/versions/5c3dca366b35_backend_driven_notification_details.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 33) | def downgrade() -> None: FILE: backend/alembic/versions/5c448911b12f_add_content_type_to_userfile.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/5c7fdadae813_match_any_keywords_flag_for_standard_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 33) | def downgrade() -> None: FILE: backend/alembic/versions/5d12a446f5c0_add_api_version_and_deployment_name_to_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/5e1c073d48a3_add_personal_access_token_table.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 80) | def downgrade() -> None: FILE: backend/alembic/versions/5e6f7a8b9c0d_update_default_persona_prompt.py function upgrade (line 38) | def upgrade() -> None: function downgrade (line 52) | def downgrade() -> None: FILE: backend/alembic/versions/5e84129c8be3_add_docs_indexed_column_to_index_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic/versions/5f4b8568a221_add_removed_documents_to_index_attempt.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/5fc1f54cc252_hybrid_enum.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/61ff3651add4_add_permission_syncing.py function upgrade (line 22) | def upgrade() -> None: function downgrade (line 87) | def downgrade() -> None: FILE: backend/alembic/versions/62c3a055a141_add_file_names_to_file_connector_config.py function upgrade (line 29) | def upgrade() -> None: function downgrade (line 94) | def downgrade() -> None: FILE: backend/alembic/versions/631fd2504136_add_approx_chunk_count_in_vespa_to_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/6436661d5b65_add_created_at_in_project_userfile.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 38) | def downgrade() -> None: FILE: backend/alembic/versions/643a84a42a33_add_user_configured_names_to_llmprovider.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 44) | def downgrade() -> None: FILE: backend/alembic/versions/64bd5677aeb6_add_image_input_support_to_model_config.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 36) | def downgrade() -> None: FILE: backend/alembic/versions/65bc6e0f8500_remove_kg_subtype_from_db.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/6756efa39ada_id_uuid_for_chat_session.py function upgrade (line 28) | def upgrade() -> None: function downgrade (line 82) | def downgrade() -> None: FILE: backend/alembic/versions/689433b0d8de_add_hook_and_hook_execution_log_tables.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 97) | def downgrade() -> None: FILE: backend/alembic/versions/699221885109_nullify_default_task_prompt.py function upgrade (line 22) | def upgrade() -> None: function downgrade (line 45) | def downgrade() -> None: FILE: backend/alembic/versions/6a804aeb4830_duplicated_no_harm_user_file_migration.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 22) | def downgrade() -> None: FILE: backend/alembic/versions/6b3b4083c5aa_persona_cleanup_and_featured.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 48) | def downgrade() -> None: FILE: backend/alembic/versions/6d387b3196c2_basic_auth.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 76) | def downgrade() -> None: FILE: backend/alembic/versions/6d562f86c78b_remove_default_bot.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 36) | def downgrade() -> None: FILE: backend/alembic/versions/6f4f86aef280_add_queries_and_is_web_fetch_to_.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic/versions/6fc7886d665d_make_categories_labels_and_many_to_many.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 53) | def downgrade() -> None: FILE: backend/alembic/versions/703313b75876_add_tokenratelimit_tables.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 60) | def downgrade() -> None: FILE: backend/alembic/versions/70f00c45c0f2_more_descriptive_filestore.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 65) | def downgrade() -> None: FILE: backend/alembic/versions/7206234e012a_add_image_generation_config_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 46) | def downgrade() -> None: FILE: backend/alembic/versions/72aa7de2e5cf_make_processing_mode_default_all_caps.py function upgrade (line 24) | def upgrade() -> None: function downgrade (line 41) | def downgrade() -> None: FILE: backend/alembic/versions/72bdc9929a46_permission_auto_sync_framework.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 79) | def downgrade() -> None: FILE: backend/alembic/versions/73e9983e5091_add_search_query_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 44) | def downgrade() -> None: FILE: backend/alembic/versions/7477a5f5d728_added_model_defaults_for_users.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/7547d982db8f_chat_folders.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 47) | def downgrade() -> None: FILE: backend/alembic/versions/7616121f6e97_add_enterprise_fields_to_scim_user_mapping.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 43) | def downgrade() -> None: FILE: backend/alembic/versions/767f1c2a00eb_count_chat_tokens.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/76b60d407dfb_cc_pair_name_not_unique.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/776b3bbe9092_remove_remaining_enums.py function upgrade (line 22) | def upgrade() -> None: function downgrade (line 50) | def downgrade() -> None: FILE: backend/alembic/versions/77d07dffae64_forcibly_remove_more_enum_types_from_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 34) | def downgrade() -> None: FILE: backend/alembic/versions/78dbe7e38469_task_tracking.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 48) | def downgrade() -> None: FILE: backend/alembic/versions/78ebc66946a0_remove_reranking_from_search_settings.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/795b20b85b4b_add_llm_group_permissions_control.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 40) | def downgrade() -> None: FILE: backend/alembic/versions/797089dfb4d2_persona_start_date.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/79acd316403a_add_api_key_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 48) | def downgrade() -> None: FILE: backend/alembic/versions/7a70b7664e37_add_model_configuration_table.py function _resolve (line 25) | def _resolve( function upgrade (line 106) | def upgrade() -> None: function downgrade (line 181) | def downgrade() -> None: FILE: backend/alembic/versions/7aea705850d5_added_slack_auto_filter.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic/versions/7b9b952abdf6_update_entities.py function upgrade (line 22) | def upgrade() -> None: function downgrade (line 297) | def downgrade() -> None: FILE: backend/alembic/versions/7bd55f264e1b_add_display_name_to_model_configuration.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/7cb492013621_code_interpreter_server_model.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/7cc3fcc116c1_user_file_uuid_primary_key_swap.py function upgrade (line 25) | def upgrade() -> None: function downgrade (line 174) | def downgrade() -> None: FILE: backend/alembic/versions/7ccea01261f6_store_chat_retrieval_docs.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/7da0ae5ad583_add_description_to_persona.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/7da543f5672f_add_slackbotconfig_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 38) | def downgrade() -> None: FILE: backend/alembic/versions/7e490836d179_nullify_default_system_prompt.py function upgrade (line 37) | def upgrade() -> None: function downgrade (line 59) | def downgrade() -> None: FILE: backend/alembic/versions/7ed603b64d5a_add_mcp_server_and_connection_config_.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 187) | def downgrade() -> None: FILE: backend/alembic/versions/7f726bad5367_slack_followup.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/7f99be1cb9f5_add_index_for_getting_documents_just_by_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/800f48024ae9_add_id_to_connectorcredentialpair.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 48) | def downgrade() -> None: FILE: backend/alembic/versions/80696cf850ae_add_chat_session_to_query_event.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 33) | def downgrade() -> None: FILE: backend/alembic/versions/8188861f4e92_csv_to_tabular_chat_file_type.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 38) | def downgrade() -> None: FILE: backend/alembic/versions/81c22b1e2e78_hierarchy_nodes_v1.py function upgrade (line 83) | def upgrade() -> None: function downgrade (line 311) | def downgrade() -> None: FILE: backend/alembic/versions/8405ca81cc83_notifications_constraint.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 47) | def downgrade() -> None: FILE: backend/alembic/versions/849b21c732f8_add_demo_data_enabled_to_build_session.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/87c52ec39f84_update_default_system_prompt.py function upgrade (line 38) | def upgrade() -> None: function downgrade (line 52) | def downgrade() -> None: FILE: backend/alembic/versions/8818cf73fa1a_drop_include_citations.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/891cd83c87a8_add_is_visible_to_persona.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 33) | def downgrade() -> None: FILE: backend/alembic/versions/8987770549c0_add_full_exception_stack_trace.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/8a87bd6ec550_associate_index_attempts_with_ccpair.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 73) | def downgrade() -> None: FILE: backend/alembic/versions/8aabb57f3b49_restructure_document_indices.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/8b5ce697290e_add_discord_bot_tables.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 113) | def downgrade() -> None: FILE: backend/alembic/versions/8e1ac4f39a9f_enable_contextual_retrieval.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 48) | def downgrade() -> None: FILE: backend/alembic/versions/8e26726b7683_chat_context_addition.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 38) | def downgrade() -> None: FILE: backend/alembic/versions/8f43500ee275_add_index.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/8ffcc2bcfc11_add_needs_persona_sync_to_user_file.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/904451035c9b_store_tool_details.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/904e5138fffb_tags.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 59) | def downgrade() -> None: FILE: backend/alembic/versions/9087b548dd69_seed_default_image_gen_config.py function upgrade (line 26) | def upgrade() -> None: function downgrade (line 133) | def downgrade() -> None: FILE: backend/alembic/versions/90b409d06e50_add_chat_compression_fields.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic/versions/90e3b9af7da4_tag_fix.py function set_is_list_for_known_tags (line 41) | def set_is_list_for_known_tags() -> None: function set_is_list_for_list_tags (line 78) | def set_is_list_for_list_tags() -> None: function log_list_tags (line 104) | def log_list_tags() -> None: function remove_old_tags (line 121) | def remove_old_tags() -> None: function active_search_settings (line 171) | def active_search_settings() -> tuple[SearchSettings, SearchSettings | N... function _get_batch_documents_with_multiple_tags (line 215) | def _get_batch_documents_with_multiple_tags( function _get_vespa_metadata (line 247) | def _get_vespa_metadata( function _get_document_tags (line 276) | def _get_document_tags(document_id: str) -> list[tuple[int, str, str]]: function upgrade (line 291) | def upgrade() -> None: function downgrade (line 324) | def downgrade() -> None: FILE: backend/alembic/versions/91a0a4d62b14_milestone.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 45) | def downgrade() -> None: FILE: backend/alembic/versions/91fd3b470d1a_remove_documentsource_from_tag.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/91ffac7e65b3_add_expiry_time.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/93560ba1b118_add_web_ui_option_to_slack_config.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/93a2e195e25c_add_voice_provider_and_user_voice_prefs.py function upgrade (line 23) | def upgrade() -> None: function downgrade (line 107) | def downgrade() -> None: FILE: backend/alembic/versions/93c15d6a6fbb_add_chunk_error_and_vespa_count_columns_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 41) | def downgrade() -> None: FILE: backend/alembic/versions/949b4a92a401_remove_rt.py function upgrade (line 29) | def upgrade() -> None: function downgrade (line 71) | def downgrade() -> None: FILE: backend/alembic/versions/94dc3d0236f8_make_document_set_description_optional.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/96a5702df6aa_mcp_tool_enabled.py function upgrade (line 23) | def upgrade() -> None: function downgrade (line 42) | def downgrade() -> None: FILE: backend/alembic/versions/977e834c1427_seed_default_groups.py function _find_available_name (line 56) | def _find_available_name(conn: sa.engine.Connection, base: str) -> str: function upgrade (line 77) | def upgrade() -> None: function downgrade (line 122) | def downgrade() -> None: FILE: backend/alembic/versions/97dbb53fa8c8_add_syncrecord.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 70) | def downgrade() -> None: FILE: backend/alembic/versions/98a5008d8711_agent_tracking.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 103) | def downgrade() -> None: FILE: backend/alembic/versions/9a0296d7421e_add_is_auto_mode_to_llm_provider.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/9aadf32dfeb4_add_user_files.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 105) | def downgrade() -> None: FILE: backend/alembic/versions/9b66d3156fc6_user_file_schema_additions.py function upgrade (line 24) | def upgrade() -> None: function downgrade (line 203) | def downgrade() -> None: FILE: backend/alembic/versions/9c00a2bccb83_chat_message_agentic.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 43) | def downgrade() -> None: FILE: backend/alembic/versions/9c54986124c6_add_scim_tables.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 113) | def downgrade() -> None: FILE: backend/alembic/versions/9cf5c00f72fe_add_creator_to_cc_pair.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/9d1543a37106_add_processing_duration_seconds_to_chat_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/9d97fecfab7f_added_retrieved_docs_to_query_event.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/9drpiiw74ljy_add_config_to_federated_connector.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 96) | def downgrade() -> None: FILE: backend/alembic/versions/9f696734098f_combine_search_and_chat.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/a01bf2971c5d_update_default_tool_descriptions.py function upgrade (line 42) | def upgrade() -> None: function downgrade (line 53) | def downgrade() -> None: FILE: backend/alembic/versions/a1b2c3d4e5f6_add_license_table.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 47) | def downgrade() -> None: FILE: backend/alembic/versions/a1b2c3d4e5f7_drop_agent_search_metrics_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 24) | def downgrade() -> None: FILE: backend/alembic/versions/a2b3c4d5e6f7_remove_fast_default_model_name.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/a3795dce87be_migration_confluence_to_be_explicit.py function extract_confluence_keys_from_url (line 20) | def extract_confluence_keys_from_url(wiki_url: str) -> tuple[str, str, s... function reconstruct_confluence_url (line 59) | def reconstruct_confluence_url( function upgrade (line 73) | def upgrade() -> None: function downgrade (line 117) | def downgrade() -> None: FILE: backend/alembic/versions/a3b8d9e2f1c4_make_scim_external_id_nullable.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/a3bfd0d64902_add_chosen_assistants_to_user_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/a3c1a7904cd0_remove_userfile_related_deprecated_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/a3f8b2c1d4e5_add_preferred_response_id_to_chat_message.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 34) | def downgrade() -> None: FILE: backend/alembic/versions/a4f23d6b71c8_add_llm_provider_persona_restrictions.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 48) | def downgrade() -> None: FILE: backend/alembic/versions/a570b80a5f20_usergroup_tables.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 65) | def downgrade() -> None: FILE: backend/alembic/versions/a6df6b88ef81_remove_recent_assistants.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 24) | def downgrade() -> None: FILE: backend/alembic/versions/a7688ab35c45_add_public_external_user_group_table.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/a852cbe15577_new_chat_history.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 195) | def downgrade() -> None: FILE: backend/alembic/versions/a8c2065484e6_add_auto_scroll_to_user_model.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/abbfec3a5ac5_merge_prompt_into_persona.py function upgrade (line 23) | def upgrade() -> None: function downgrade (line 136) | def downgrade() -> None: FILE: backend/alembic/versions/abe7378b8217_add_indexing_trigger_to_cc_pair.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/ac5eaac849f9_add_last_pruned_to_connector_table.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/acaab4ef4507_remove_inactive_ccpair_status_on_.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/ae62505e3acc_add_saml_accounts.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 47) | def downgrade() -> None: FILE: backend/alembic/versions/aeda5f2df4f6_add_pinned_assistants.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/b082fec533f0_make_last_attempt_status_nullable.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 34) | def downgrade() -> None: FILE: backend/alembic/versions/b156fa702355_chat_reworked.py function upgrade (line 36) | def upgrade() -> None: function downgrade (line 291) | def downgrade() -> None: FILE: backend/alembic/versions/b30353be4eec_add_mcp_auth_performer.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 120) | def downgrade() -> None: FILE: backend/alembic/versions/b329d00a9ea6_adding_assistant_specific_user_.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 37) | def downgrade() -> None: FILE: backend/alembic/versions/b388730a2899_nullable_preferences.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 24) | def downgrade() -> None: FILE: backend/alembic/versions/b4b7e1028dfd_grant_basic_to_existing_groups.py function upgrade (line 40) | def upgrade() -> None: function downgrade (line 71) | def downgrade() -> None: FILE: backend/alembic/versions/b4ef3ae0bf6e_add_user_oauth_token_to_slack_bot.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/b51c6844d1df_seed_memory_tool.py function upgrade (line 29) | def upgrade() -> None: function downgrade (line 74) | def downgrade() -> None: FILE: backend/alembic/versions/b558f51620b4_pause_finished_user_file_connectors.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/b5c4d7e8f9a1_add_hierarchy_node_cc_pair_table.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 46) | def downgrade() -> None: FILE: backend/alembic/versions/b728689f45b1_rename_persona_is_visible_to_is_listed_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 24) | def downgrade() -> None: FILE: backend/alembic/versions/b72ed7a5db0e_remove_description_from_starter_messages.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 36) | def downgrade() -> None: FILE: backend/alembic/versions/b7a7eee5aa15_add_checkpointing_failure_handling.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 79) | def downgrade() -> None: FILE: backend/alembic/versions/b7bcc991d722_assign_users_to_default_groups.py function upgrade (line 49) | def upgrade() -> None: function downgrade (line 122) | def downgrade() -> None: FILE: backend/alembic/versions/b7c2b63c4a03_add_background_reindex_enabled_field.py function upgrade (line 22) | def upgrade() -> None: function downgrade (line 52) | def downgrade() -> None: FILE: backend/alembic/versions/b7ec9b5b505f_adjust_prompt_length.py function upgrade (line 23) | def upgrade() -> None: function downgrade (line 41) | def downgrade() -> None: FILE: backend/alembic/versions/b85f02ec1308_fix_file_type_migration.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/b896bbd0d5a7_backfill_is_internet_data_to_false.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/b8c9d0e1f2a3_drop_milestone_table.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/ba98eba0f66a_add_support_for_litellm_proxy_in_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/baf71f781b9e_add_llm_model_version_override_to_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/bc9771dccadf_create_usage_reports_table.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 51) | def downgrade() -> None: FILE: backend/alembic/versions/bceb1e139447_add_base_url_to_cloudembeddingprovider.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/bd2921608c3a_non_nullable_default_persona.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 36) | def downgrade() -> None: FILE: backend/alembic/versions/bd7c3bf8beba_migrate_agent_responses_to_research_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 103) | def downgrade() -> None: FILE: backend/alembic/versions/be2ab2aa50ee_fix_capitalization.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 36) | def downgrade() -> None: FILE: backend/alembic/versions/be87a654d5af_persona_new_default_model_configuration_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic/versions/bf7a81109301_delete_input_prompts.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/c0aab6edb6dd_delete_workspace.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/c0c937d5c9e5_llm_provider_deprecate_fields.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 45) | def downgrade() -> None: FILE: backend/alembic/versions/c0fd6e4da83a_add_recent_assistants.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/c18cdf4b497e_add_standard_answer_tables.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 70) | def downgrade() -> None: FILE: backend/alembic/versions/c1d2e3f4a5b6_add_deep_research_tool.py function upgrade (line 28) | def upgrade() -> None: function downgrade (line 41) | def downgrade() -> None: FILE: backend/alembic/versions/c5b692fa265c_add_index_attempt_errors_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 54) | def downgrade() -> None: FILE: backend/alembic/versions/c5eae4a75a1b_add_chat_message__standard_answer_table.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 36) | def downgrade() -> None: FILE: backend/alembic/versions/c7bf5721733e_add_has_been_indexed_to_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 43) | def downgrade() -> None: FILE: backend/alembic/versions/c7e9f4a3b2d1_add_python_tool.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 57) | def downgrade() -> None: FILE: backend/alembic/versions/c7f2e1b4a9d3_add_sharing_scope_to_build_session.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/c8a93a2af083_personalization_user_info.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 66) | def downgrade() -> None: FILE: backend/alembic/versions/c99d76fcd298_add_nullable_to_persona_id_in_chat_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/c9e2cd766c29_add_s3_file_store_table.py function upgrade (line 28) | def upgrade() -> None: function downgrade (line 87) | def downgrade() -> None: function _migrate_files_to_postgres (line 130) | def _migrate_files_to_postgres() -> None: function _migrate_files_to_external_storage (line 215) | def _migrate_files_to_external_storage() -> None: function _set_tenant_contextvar (line 308) | def _set_tenant_contextvar(session: Session) -> None: FILE: backend/alembic/versions/ca04500b9ee8_add_cascade_deletes_to_agent_tables.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 77) | def downgrade() -> None: FILE: backend/alembic/versions/cbc03e08d0f3_add_opensearch_migration_tables.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 107) | def downgrade() -> None: FILE: backend/alembic/versions/cec7ec36c505_kgentity_parent.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/cf90764725d8_larger_refresh_tokens.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 24) | def downgrade() -> None: FILE: backend/alembic/versions/d09fc20a3c66_seed_builtin_tools.py function upgrade (line 69) | def upgrade() -> None: function downgrade (line 134) | def downgrade() -> None: FILE: backend/alembic/versions/d1b637d7050a_sync_exa_api_key_to_content_provider.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 54) | def downgrade() -> None: FILE: backend/alembic/versions/d25168c2beee_tool_name_consistency.py function upgrade (line 44) | def upgrade() -> None: function downgrade (line 68) | def downgrade() -> None: FILE: backend/alembic/versions/d3fd499c829c_add_file_reader_tool.py function upgrade (line 31) | def upgrade() -> None: function downgrade (line 82) | def downgrade() -> None: FILE: backend/alembic/versions/d5645c915d0e_remove_deletion_attempt_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/d56ffa94ca32_add_file_content.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 34) | def downgrade() -> None: FILE: backend/alembic/versions/d5c86e2c6dc6_add_cascade_delete_to_search_query_user_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/d61e513bef0a_add_total_docs_for_index_attempt.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/d7111c1238cd_remove_document_ids.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 24) | def downgrade() -> None: FILE: backend/alembic/versions/d716b0791ddd_combined_slack_id_fields.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/d8cdfee5df80_add_skipped_to_userfilestatus.py function _drop_status_check_constraint (line 36) | def _drop_status_check_constraint() -> None: function upgrade (line 45) | def upgrade() -> None: function downgrade (line 51) | def downgrade() -> None: FILE: backend/alembic/versions/d929f0c1c6af_feedback_feature.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 89) | def downgrade() -> None: FILE: backend/alembic/versions/d961aca62eb3_update_status_length.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 55) | def downgrade() -> None: FILE: backend/alembic/versions/d9ec13955951_remove__dim_suffix_from_model_name.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/da42808081e3_migrate_jira_connectors_to_new_format.py function upgrade (line 27) | def upgrade() -> None: function downgrade (line 85) | def downgrade() -> None: FILE: backend/alembic/versions/da4c21c69164_chosen_assistants_changed_to_jsonb.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 47) | def downgrade() -> None: FILE: backend/alembic/versions/dab04867cd88_add_composite_index_to_document_by_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/dba7f71618f5_onyx_custom_tool_flow.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 29) | def downgrade() -> None: FILE: backend/alembic/versions/dbaa756c2ccf_embedding_models.py function _get_old_default_embedding_model (line 34) | def _get_old_default_embedding_model() -> IndexingSetting: function _get_new_default_embedding_model (line 60) | def _get_new_default_embedding_model() -> IndexingSetting: function upgrade (line 75) | def upgrade() -> None: function downgrade (line 182) | def downgrade() -> None: FILE: backend/alembic/versions/df0c7ad8a076_added_deletion_attempt_table.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 112) | def downgrade() -> None: FILE: backend/alembic/versions/df46c75b714e_add_default_vision_provider_to_llm_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic/versions/dfbe9e93d3c7_extended_role_for_non_web.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/e0a68a81d434_add_chat_feedback.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 44) | def downgrade() -> None: FILE: backend/alembic/versions/e1392f05e840_added_input_prompts.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 56) | def downgrade() -> None: FILE: backend/alembic/versions/e209dc5a8156_added_prune_frequency.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 22) | def downgrade() -> None: FILE: backend/alembic/versions/e4334d5b33ba_add_deployment_name_to_llmprovider.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/e50154680a5c_no_source_enum.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/e6a4bbc13fe4_add_index_for_retrieving_latest_index_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/e7f8a9b0c1d2_create_anonymous_user.py function _dedupe_null_notifications (line 39) | def _dedupe_null_notifications(connection: sa.Connection) -> None: function upgrade (line 89) | def upgrade() -> None: function downgrade (line 153) | def downgrade() -> None: FILE: backend/alembic/versions/e86866a9c78a_add_persona_to_chat_session.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/e8f0d2a38171_add_status_to_mcp_server_and_make_auth_.py function upgrade (line 25) | def upgrade() -> None: function downgrade (line 79) | def downgrade() -> None: FILE: backend/alembic/versions/e91df4e935ef_private_personas_documentsets.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 111) | def downgrade() -> None: FILE: backend/alembic/versions/eaa3b5593925_add_default_slack_channel_config.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 69) | def downgrade() -> None: FILE: backend/alembic/versions/ec3ec2eabf7b_index_from_beginning.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/ec85f2b3c544_remove_last_attempt_status_from_cc_pair.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/ecab2b3f1a3b_add_overrides_to_the_chat_session.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 39) | def downgrade() -> None: FILE: backend/alembic/versions/ed9e44312505_add_icon_name_field.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/ee3f4b47fad5_added_alternate_model_to_chat_message.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/ef7da92f7213_add_files_to_chatmessage.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/efb35676026c_standard_answer_match_regex_flag.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/f11b408e39d3_force_lowercase_all_users.py function upgrade (line 16) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic/versions/f13db29f3101_add_composite_index_for_last_modified_.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 27) | def downgrade() -> None: FILE: backend/alembic/versions/f17bf3b0d9f1_embedding_provider_by_provider_type.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 86) | def downgrade() -> None: FILE: backend/alembic/versions/f1c6478c3fd8_add_pre_defined_feedback.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 25) | def downgrade() -> None: FILE: backend/alembic/versions/f1ca58b2f2ec_add_passthrough_auth_to_tool.py function upgrade (line 22) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic/versions/f220515df7b4_add_flow_mapping_table.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 55) | def downgrade() -> None: FILE: backend/alembic/versions/f32615f71aeb_add_custom_headers_to_tools.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/f39c5794c10a_add_background_errors_table.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 40) | def downgrade() -> None: FILE: backend/alembic/versions/f5437cc136c5_delete_non_search_assistants.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic/versions/f71470ba9274_add_prompt_length_limit.py function upgrade (line 16) | def upgrade() -> None: function downgrade (line 34) | def downgrade() -> None: FILE: backend/alembic/versions/f7505c5b0284_updated_constraints_for_ccpairs.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 51) | def downgrade() -> None: FILE: backend/alembic/versions/f7a894b06d02_non_nullbale_slack_bot_id_in_channel_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 33) | def downgrade() -> None: FILE: backend/alembic/versions/f7ca3e2f45d9_migrate_no_auth_data_to_placeholder.py function upgrade (line 130) | def upgrade() -> None: function downgrade (line 236) | def downgrade() -> None: FILE: backend/alembic/versions/f7e58d357687_add_has_web_column_to_user.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 26) | def downgrade() -> None: FILE: backend/alembic/versions/f8a9b2c3d4e5_add_research_answer_purpose_to_chat_message.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 28) | def downgrade() -> None: FILE: backend/alembic/versions/f9b8c7d6e5a4_update_parent_question_id_foreign_key_to_research_agent_iteration.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 40) | def downgrade() -> None: FILE: backend/alembic/versions/fad14119fb92_delete_tags_with_wrong_enum.py function upgrade (line 18) | def upgrade() -> None: function downgrade (line 39) | def downgrade() -> None: FILE: backend/alembic/versions/fb80bdd256de_add_chat_background_to_user.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 30) | def downgrade() -> None: FILE: backend/alembic/versions/fcd135795f21_add_slack_bot_display_type.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 39) | def downgrade() -> None: FILE: backend/alembic/versions/febe9eaa0644_add_document_set_persona_relationship_.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 37) | def downgrade() -> None: FILE: backend/alembic/versions/fec3db967bf7_add_time_updated_to_usergroup_and_.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 40) | def downgrade() -> None: FILE: backend/alembic/versions/feead2911109_add_opensearch_tenant_migration_columns.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 62) | def downgrade() -> None: FILE: backend/alembic/versions/ffc707a226b4_basic_document_metadata.py function upgrade (line 20) | def upgrade() -> None: function downgrade (line 35) | def downgrade() -> None: FILE: backend/alembic_tenants/env.py function include_object (line 41) | def include_object( function run_migrations_offline (line 60) | def run_migrations_offline() -> None: function do_run_migrations (line 84) | def do_run_migrations(connection: Connection) -> None: function run_async_migrations (line 95) | async def run_async_migrations() -> None: function run_migrations_online (line 112) | def run_migrations_online() -> None: FILE: backend/alembic_tenants/versions/14a83a331951_create_usertenantmapping_table.py function upgrade (line 12) | def upgrade() -> None: function downgrade (line 23) | def downgrade() -> None: FILE: backend/alembic_tenants/versions/34e3630c7f32_lowercase_multi_tenant_user_auth.py function upgrade (line 19) | def upgrade() -> None: function downgrade (line 36) | def downgrade() -> None: FILE: backend/alembic_tenants/versions/3b45e0018bf1_add_new_available_tenant_table.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 32) | def downgrade() -> None: FILE: backend/alembic_tenants/versions/3b9f09038764_add_read_only_kg_user.py function upgrade (line 23) | def upgrade() -> None: function downgrade (line 53) | def downgrade() -> None: FILE: backend/alembic_tenants/versions/a4f6ee863c47_mapping_for_anonymous_user_path.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 31) | def downgrade() -> None: FILE: backend/alembic_tenants/versions/ac842f85f932_new_column_user_tenant_mapping.py function upgrade (line 21) | def upgrade() -> None: function downgrade (line 43) | def downgrade() -> None: FILE: backend/ee/onyx/access/access.py function _get_access_for_document (line 27) | def _get_access_for_document( function _get_access_for_documents (line 44) | def _get_access_for_documents( function _collect_user_file_group_names (line 122) | def _collect_user_file_group_names(user_file: UserFile) -> set[str]: function get_access_for_user_files_impl (line 134) | def get_access_for_user_files_impl( function build_access_for_user_files_impl (line 152) | def build_access_for_user_files_impl( function _get_acl_for_user (line 184) | def _get_acl_for_user(user: User, db_session: Session) -> set[str]: FILE: backend/ee/onyx/access/hierarchy_access.py function _get_user_external_group_ids (line 7) | def _get_user_external_group_ids(db_session: Session, user: User) -> lis... FILE: backend/ee/onyx/auth/users.py function verify_auth_setting (line 23) | def verify_auth_setting() -> None: function get_default_admin_user_emails_ (line 33) | def get_default_admin_user_emails_() -> list[str]: function current_cloud_superuser (line 40) | async def current_cloud_superuser( function generate_anonymous_user_jwt_token (line 56) | def generate_anonymous_user_jwt_token(tenant_id: str) -> str: function decode_anonymous_user_jwt_token (line 66) | def decode_anonymous_user_jwt_token(token: str) -> dict: FILE: backend/ee/onyx/background/celery/tasks/beat_schedule.py function get_cloud_tasks_to_schedule (line 98) | def get_cloud_tasks_to_schedule(beat_multiplier: float) -> list[dict[str... function get_tasks_to_schedule (line 107) | def get_tasks_to_schedule() -> list[dict[str, Any]]: FILE: backend/ee/onyx/background/celery/tasks/cleanup/tasks.py function export_query_history_cleanup_task (line 23) | def export_query_history_cleanup_task(*, tenant_id: str) -> None: FILE: backend/ee/onyx/background/celery/tasks/cloud/tasks.py function cloud_beat_task_generator (line 27) | def cloud_beat_task_generator( FILE: backend/ee/onyx/background/celery/tasks/doc_permission_syncing/tasks.py function _get_fence_validation_block_expiration (line 106) | def _get_fence_validation_block_expiration() -> int: function _fail_doc_permission_sync_attempt (line 127) | def _fail_doc_permission_sync_attempt(attempt_id: int, error_msg: str) -... function _is_external_doc_permissions_sync_due (line 135) | def _is_external_doc_permissions_sync_due(cc_pair: ConnectorCredentialPa... function check_for_doc_permissions_sync (line 184) | def check_for_doc_permissions_sync(self: Task, *, tenant_id: str) -> boo... function try_creating_permissions_sync_task (line 282) | def try_creating_permissions_sync_task( function connector_permission_sync_generator_task (line 382) | def connector_permission_sync_generator_task( function element_update_permissions (line 651) | def element_update_permissions( function validate_permission_sync_fences (line 732) | def validate_permission_sync_fences( function validate_permission_sync_fence (line 779) | def validate_permission_sync_fence( class PermissionSyncCallback (line 931) | class PermissionSyncCallback(IndexingHeartbeatInterface): method __init__ (line 934) | def __init__( method should_stop (line 955) | def should_stop(self) -> bool: method progress (line 974) | def progress(self, tag: str, amount: int) -> None: # noqa: ARG002 function monitor_ccpair_permissions_taskset (line 1004) | def monitor_ccpair_permissions_taskset( FILE: backend/ee/onyx/background/celery/tasks/external_group_syncing/group_sync_utils.py function _get_all_cc_pair_ids_to_mark_as_group_synced (line 11) | def _get_all_cc_pair_ids_to_mark_as_group_synced( function mark_all_relevant_cc_pairs_as_external_group_synced (line 23) | def mark_all_relevant_cc_pairs_as_external_group_synced( FILE: backend/ee/onyx/background/celery/tasks/external_group_syncing/tasks.py function _fail_external_group_sync_attempt (line 84) | def _fail_external_group_sync_attempt(attempt_id: int, error_msg: str) -... function _get_fence_validation_block_expiration (line 92) | def _get_fence_validation_block_expiration() -> int: function _is_external_group_sync_due (line 110) | def _is_external_group_sync_due(cc_pair: ConnectorCredentialPair) -> bool: function check_for_external_group_sync (line 161) | def check_for_external_group_sync(self: Task, *, tenant_id: str) -> bool... function try_creating_external_group_sync_task (line 256) | def try_creating_external_group_sync_task( function connector_external_group_sync_generator_task (line 343) | def connector_external_group_sync_generator_task( function _perform_external_group_sync (line 463) | def _perform_external_group_sync( function validate_external_group_sync_fences (line 603) | def validate_external_group_sync_fences( function validate_external_group_sync_fence (line 635) | def validate_external_group_sync_fence( FILE: backend/ee/onyx/background/celery/tasks/hooks/tasks.py function hook_execution_log_cleanup_task (line 20) | def hook_execution_log_cleanup_task(*, tenant_id: str) -> None: # noqa:... FILE: backend/ee/onyx/background/celery/tasks/query_history/tasks.py function export_query_history_task (line 36) | def export_query_history_task( FILE: backend/ee/onyx/background/celery/tasks/tenant_provisioning/tasks.py function check_available_tenants (line 48) | def check_available_tenants(self: Task) -> None: # noqa: ARG001 function _migrate_stale_pool_tenants (line 127) | def _migrate_stale_pool_tenants() -> None: function pre_provision_tenant (line 167) | def pre_provision_tenant() -> bool: FILE: backend/ee/onyx/background/celery/tasks/ttl_management/tasks.py function perform_ttl_management_task (line 25) | def perform_ttl_management_task( function check_ttl_management_task (line 64) | def check_ttl_management_task(*, tenant_id: str) -> None: FILE: backend/ee/onyx/background/celery/tasks/usage_reporting/tasks.py function generate_usage_report_task (line 23) | def generate_usage_report_task( FILE: backend/ee/onyx/background/celery/tasks/vespa/tasks.py function monitor_usergroup_taskset (line 20) | def monitor_usergroup_taskset( FILE: backend/ee/onyx/background/celery_utils.py function should_perform_chat_ttl_check (line 11) | def should_perform_chat_ttl_check( FILE: backend/ee/onyx/background/task_name_builders.py function name_chat_ttl_task (line 9) | def name_chat_ttl_task( function query_history_task_name (line 16) | def query_history_task_name(start: datetime, end: datetime) -> str: FILE: backend/ee/onyx/connectors/perm_sync_valid.py function validate_confluence_perm_sync (line 6) | def validate_confluence_perm_sync(connector: ConfluenceConnector) -> None: function validate_drive_perm_sync (line 12) | def validate_drive_perm_sync(connector: GoogleDriveConnector) -> None: function validate_perm_sync (line 18) | def validate_perm_sync(connector: BaseConnector) -> None: FILE: backend/ee/onyx/db/analytics.py function fetch_query_analytics (line 23) | def fetch_query_analytics( function fetch_per_user_query_analytics (line 59) | def fetch_per_user_query_analytics( function fetch_onyxbot_analytics (line 98) | def fetch_onyxbot_analytics( function fetch_persona_message_analytics (line 187) | def fetch_persona_message_analytics( function fetch_persona_unique_users (line 216) | def fetch_persona_unique_users( function fetch_assistant_message_analytics (line 245) | def fetch_assistant_message_analytics( function fetch_assistant_unique_users (line 276) | def fetch_assistant_unique_users( function fetch_assistant_unique_users_total (line 307) | def fetch_assistant_unique_users_total( function user_can_view_assistant_stats (line 338) | def user_can_view_assistant_stats( FILE: backend/ee/onyx/db/connector.py function fetch_sources_with_connectors (line 11) | def fetch_sources_with_connectors(db_session: Session) -> list[DocumentS... FILE: backend/ee/onyx/db/connector_credential_pair.py function _delete_connector_credential_pair_user_groups_relationship__no_commit (line 16) | def _delete_connector_credential_pair_user_groups_relationship__no_commit( function get_cc_pairs_by_source (line 35) | def get_cc_pairs_by_source( function get_all_auto_sync_cc_pairs (line 62) | def get_all_auto_sync_cc_pairs( FILE: backend/ee/onyx/db/document.py function upsert_document_external_perms__no_commit (line 13) | def upsert_document_external_perms__no_commit( function upsert_document_external_perms (line 53) | def upsert_document_external_perms( FILE: backend/ee/onyx/db/document_set.py function make_doc_set_private (line 14) | def make_doc_set_private( function delete_document_set_privacy__no_commit (line 42) | def delete_document_set_privacy__no_commit( function fetch_document_sets (line 54) | def fetch_document_sets( FILE: backend/ee/onyx/db/external_perm.py class ExternalUserGroup (line 22) | class ExternalUserGroup(BaseModel): function delete_user__ext_group_for_user__no_commit (line 33) | def delete_user__ext_group_for_user__no_commit( function delete_user__ext_group_for_cc_pair__no_commit (line 44) | def delete_user__ext_group_for_cc_pair__no_commit( function delete_public_external_group_for_cc_pair__no_commit (line 55) | def delete_public_external_group_for_cc_pair__no_commit( function mark_old_external_groups_as_stale (line 66) | def mark_old_external_groups_as_stale( function upsert_external_groups (line 82) | def upsert_external_groups( function remove_stale_external_groups (line 178) | def remove_stale_external_groups( function fetch_external_groups_for_user (line 197) | def fetch_external_groups_for_user( function fetch_external_groups_for_user_email_and_group_ids (line 208) | def fetch_external_groups_for_user_email_and_group_ids( function fetch_public_external_group_ids (line 226) | def fetch_public_external_group_ids( FILE: backend/ee/onyx/db/hierarchy.py function _build_hierarchy_access_filter (line 20) | def _build_hierarchy_access_filter( function _get_accessible_hierarchy_nodes_for_source (line 43) | def _get_accessible_hierarchy_nodes_for_source( FILE: backend/ee/onyx/db/license.py class SeatAvailabilityResult (line 28) | class SeatAvailabilityResult(NamedTuple): function get_license (line 40) | def get_license(db_session: Session) -> License | None: function upsert_license (line 53) | def upsert_license(db_session: Session, license_data: str) -> License: function delete_license (line 81) | def delete_license(db_session: Session) -> bool: function get_used_seats (line 105) | def get_used_seats(tenant_id: str | None = None) -> int: function get_cached_license_metadata (line 142) | def get_cached_license_metadata(tenant_id: str | None = None) -> License... function invalidate_license_cache (line 167) | def invalidate_license_cache(tenant_id: str | None = None) -> None: function update_license_cache (line 183) | def update_license_cache( function refresh_license_cache (line 238) | def refresh_license_cache( function get_license_metadata (line 278) | def get_license_metadata( function check_seat_availability (line 301) | def check_seat_availability( FILE: backend/ee/onyx/db/persona.py function update_persona_access (line 14) | def update_persona_access( FILE: backend/ee/onyx/db/query_history.py function _build_filter_conditions (line 27) | def _build_filter_conditions( function get_total_filtered_chat_sessions_count (line 78) | def get_total_filtered_chat_sessions_count( function get_page_of_chat_sessions (line 93) | def get_page_of_chat_sessions( function fetch_chat_sessions_eagerly_by_time (line 133) | def fetch_chat_sessions_eagerly_by_time( function get_all_query_history_export_tasks (line 179) | def get_all_query_history_export_tasks( FILE: backend/ee/onyx/db/saml.py function upsert_saml_account (line 16) | def upsert_saml_account( function get_saml_account (line 48) | async def get_saml_account( function expire_saml_account (line 68) | async def expire_saml_account( FILE: backend/ee/onyx/db/scim.py class ScimDAL (line 54) | class ScimDAL(DAL): method create_token (line 66) | def create_token( method get_active_token (line 97) | def get_active_token(self) -> ScimToken | None: method get_token_by_hash (line 103) | def get_token_by_hash(self, hashed_token: str) -> ScimToken | None: method revoke_token (line 109) | def revoke_token(self, token_id: int) -> None: method update_token_last_used (line 120) | def update_token_last_used(self, token_id: int) -> None: method create_user_mapping (line 130) | def create_user_mapping( method get_user_mapping_by_external_id (line 157) | def get_user_mapping_by_external_id( method get_user_mapping_by_user_id (line 165) | def get_user_mapping_by_user_id(self, user_id: UUID) -> ScimUserMappin... method list_user_mappings (line 171) | def list_user_mappings( method update_user_mapping_external_id (line 201) | def update_user_mapping_external_id( method delete_user_mapping (line 217) | def delete_user_mapping(self, mapping_id: int) -> None: method get_user (line 229) | def get_user(self, user_id: UUID) -> User | None: method get_user_by_email (line 235) | def get_user_by_email(self, email: str) -> User | None: method add_user (line 241) | def add_user(self, user: User) -> None: method update_user (line 246) | def update_user( method deactivate_user (line 262) | def deactivate_user(self, user: User) -> None: method list_users (line 266) | def list_users( method sync_user_external_id (line 331) | def sync_user_external_id( method _get_user_mappings_batch (line 370) | def _get_user_mappings_batch( method get_user_groups (line 381) | def get_user_groups(self, user_id: UUID) -> list[tuple[int, str]]: method get_users_groups_batch (line 402) | def get_users_groups_batch( method create_group_mapping (line 441) | def create_group_mapping( method get_group_mapping_by_external_id (line 452) | def get_group_mapping_by_external_id( method get_group_mapping_by_group_id (line 460) | def get_group_mapping_by_group_id( method list_group_mappings (line 470) | def list_group_mappings( method delete_group_mapping (line 501) | def delete_group_mapping(self, mapping_id: int) -> None: method get_group (line 513) | def get_group(self, group_id: int) -> UserGroup | None: method get_group_by_name (line 520) | def get_group_by_name(self, name: str) -> UserGroup | None: method add_group (line 524) | def add_group(self, group: UserGroup) -> None: method add_permission_grant_to_group (line 529) | def add_permission_grant_to_group( method update_group (line 545) | def update_group( method delete_group (line 556) | def delete_group(self, group: UserGroup) -> None: method list_groups (line 560) | def list_groups( method get_group_members (line 606) | def get_group_members(self, group_id: int) -> list[tuple[UUID, str | N... method validate_member_ids (line 634) | def validate_member_ids(self, uuids: list[UUID]) -> list[UUID]: method upsert_group_members (line 651) | def upsert_group_members(self, group_id: int, user_ids: list[UUID]) ->... method replace_group_members (line 666) | def replace_group_members(self, group_id: int, user_ids: list[UUID]) -... method remove_group_members (line 673) | def remove_group_members(self, group_id: int, user_ids: list[UUID]) ->... method delete_group_with_members (line 684) | def delete_group_with_members(self, group: UserGroup) -> None: method sync_group_external_id (line 691) | def sync_group_external_id( method _get_group_external_ids (line 707) | def _get_group_external_ids(self, group_ids: list[int]) -> dict[int, s... function _apply_scim_string_op (line 724) | def _apply_scim_string_op( FILE: backend/ee/onyx/db/search.py function create_search_query (line 12) | def create_search_query( function fetch_search_queries_for_user (line 36) | def fetch_search_queries_for_user( FILE: backend/ee/onyx/db/standard_answer.py function check_category_validity (line 15) | def check_category_validity(category_name: str) -> bool: function insert_standard_answer_category (line 29) | def insert_standard_answer_category( function insert_standard_answer (line 41) | def insert_standard_answer( function update_standard_answer (line 69) | def update_standard_answer( function remove_standard_answer (line 102) | def remove_standard_answer( function update_standard_answer_category (line 116) | def update_standard_answer_category( function fetch_standard_answer_category (line 141) | def fetch_standard_answer_category( function fetch_standard_answer_categories_by_ids (line 152) | def fetch_standard_answer_categories_by_ids( function fetch_standard_answer_categories (line 163) | def fetch_standard_answer_categories( function fetch_standard_answer (line 169) | def fetch_standard_answer( function fetch_standard_answers (line 178) | def fetch_standard_answers(db_session: Session) -> Sequence[StandardAnsw... function create_initial_default_standard_answer_category (line 184) | def create_initial_default_standard_answer_category(db_session: Session)... function fetch_standard_answer_categories_by_names (line 206) | def fetch_standard_answer_categories_by_names( function find_matching_standard_answers (line 217) | def find_matching_standard_answers( FILE: backend/ee/onyx/db/token_limit.py function _add_user_filters (line 20) | def _add_user_filters(stmt: Select, user: User, get_editable: bool = Tru... function fetch_all_user_group_token_rate_limits_by_group (line 72) | def fetch_all_user_group_token_rate_limits_by_group( function insert_user_group_token_rate_limit (line 87) | def insert_user_group_token_rate_limit( function fetch_user_group_token_rate_limits_for_user (line 110) | def fetch_user_group_token_rate_limits_for_user( FILE: backend/ee/onyx/db/usage_export.py function get_empty_chat_messages_entries__paginated (line 23) | def get_empty_chat_messages_entries__paginated( function get_all_empty_chat_message_entries (line 79) | def get_all_empty_chat_message_entries( function get_all_usage_reports (line 102) | def get_all_usage_reports(db_session: Session) -> list[UsageReportMetada... function get_usage_report_data (line 127) | def get_usage_report_data( function write_usage_report (line 148) | def write_usage_report( FILE: backend/ee/onyx/db/user_group.py function _cleanup_user__user_group_relationships__no_commit (line 49) | def _cleanup_user__user_group_relationships__no_commit( function _cleanup_credential__user_group_relationships__no_commit (line 66) | def _cleanup_credential__user_group_relationships__no_commit( function _cleanup_llm_provider__user_group_relationships__no_commit (line 76) | def _cleanup_llm_provider__user_group_relationships__no_commit( function _cleanup_persona__user_group_relationships__no_commit (line 85) | def _cleanup_persona__user_group_relationships__no_commit( function _cleanup_token_rate_limit__user_group_relationships__no_commit (line 94) | def _cleanup_token_rate_limit__user_group_relationships__no_commit( function _cleanup_user_group__cc_pair_relationships__no_commit (line 109) | def _cleanup_user_group__cc_pair_relationships__no_commit( function _cleanup_document_set__user_group_relationships__no_commit (line 125) | def _cleanup_document_set__user_group_relationships__no_commit( function validate_object_creation_for_user (line 136) | def validate_object_creation_for_user( function fetch_user_group (line 203) | def fetch_user_group(db_session: Session, user_group_id: int) -> UserGro... function _add_user_group_snapshot_eager_loads (line 208) | def _add_user_group_snapshot_eager_loads( function fetch_user_groups (line 258) | def fetch_user_groups( function fetch_user_groups_for_user (line 292) | def fetch_user_groups_for_user( function construct_document_id_select_by_usergroup (line 314) | def construct_document_id_select_by_usergroup( function fetch_documents_for_user_group_paginated (line 350) | def fetch_documents_for_user_group_paginated( function fetch_user_groups_for_documents (line 391) | def fetch_user_groups_for_documents( function _check_user_group_is_modifiable (line 435) | def _check_user_group_is_modifiable(user_group: UserGroup) -> None: function _add_user__user_group_relationships__no_commit (line 442) | def _add_user__user_group_relationships__no_commit( function _add_user_group__cc_pair_relationships__no_commit (line 469) | def _add_user_group__cc_pair_relationships__no_commit( function insert_user_group (line 483) | def insert_user_group(db_session: Session, user_group: UserGroupCreate) ... function _mark_user_group__cc_pair_relationships_outdated__no_commit (line 519) | def _mark_user_group__cc_pair_relationships_outdated__no_commit( function _validate_curator_status__no_commit (line 532) | def _validate_curator_status__no_commit( function remove_curator_status__no_commit (line 556) | def remove_curator_status__no_commit(db_session: Session, user: User) ->... function _validate_curator_relationship_update_requester (line 566) | def _validate_curator_relationship_update_requester( function _validate_curator_relationship_update_request (line 599) | def _validate_curator_relationship_update_request( function update_user_curator_relationship (line 642) | def update_user_curator_relationship( function add_users_to_user_group (line 693) | def add_users_to_user_group( function update_user_group (line 735) | def update_user_group( function rename_user_group (line 830) | def rename_user_group( function prepare_user_group_for_deletion (line 857) | def prepare_user_group_for_deletion(db_session: Session, user_group_id: ... function delete_user_group (line 915) | def delete_user_group(db_session: Session, user_group: UserGroup) -> None: function mark_user_group_as_synced (line 923) | def mark_user_group_as_synced(db_session: Session, user_group: UserGroup... function delete_user_group_cc_pair_relationship__no_commit (line 932) | def delete_user_group_cc_pair_relationship__no_commit( FILE: backend/ee/onyx/external_permissions/confluence/doc_sync.py function confluence_doc_sync (line 26) | def confluence_doc_sync( FILE: backend/ee/onyx/external_permissions/confluence/group_sync.py function _build_group_member_email_map (line 20) | def _build_group_member_email_map( function _build_group_member_email_map_from_onyx_users (line 72) | def _build_group_member_email_map_from_onyx_users( function _build_final_group_to_member_email_map (line 123) | def _build_final_group_to_member_email_map( function confluence_group_sync (line 158) | def confluence_group_sync( FILE: backend/ee/onyx/external_permissions/confluence/page_access.py function _extract_read_access_restrictions (line 15) | def _extract_read_access_restrictions( function get_page_restrictions (line 72) | def get_page_restrictions( FILE: backend/ee/onyx/external_permissions/confluence/space_access.py function _get_server_space_permissions (line 18) | def _get_server_space_permissions( function _get_cloud_space_permissions (line 78) | def _get_cloud_space_permissions( function get_space_permission (line 113) | def get_space_permission( function get_all_space_permissions (line 151) | def get_all_space_permissions( FILE: backend/ee/onyx/external_permissions/github/doc_sync.py function github_doc_sync (line 34) | def github_doc_sync( function _check_repository_for_changes (line 145) | def _check_repository_for_changes( function _is_repo_visibility_changed_from_groups (line 178) | def _is_repo_visibility_changed_from_groups( function _teams_updated_from_groups (line 231) | def _teams_updated_from_groups( FILE: backend/ee/onyx/external_permissions/github/group_sync.py function github_group_sync (line 14) | def github_group_sync( FILE: backend/ee/onyx/external_permissions/github/utils.py class GitHubVisibility (line 28) | class GitHubVisibility(Enum): function _run_with_retry (line 43) | def _run_with_retry( class UserInfo (line 76) | class UserInfo(BaseModel): class TeamInfo (line 84) | class TeamInfo(BaseModel): function _fetch_organization_members (line 92) | def _fetch_organization_members( function _fetch_repository_teams_detailed (line 127) | def _fetch_repository_teams_detailed( function fetch_repository_team_slugs (line 172) | def fetch_repository_team_slugs( function _get_collaborators_and_outside_collaborators (line 197) | def _get_collaborators_and_outside_collaborators( function form_collaborators_group_id (line 249) | def form_collaborators_group_id(repository_id: int) -> str: function form_organization_group_id (line 258) | def form_organization_group_id(organization_id: int) -> str: function form_outside_collaborators_group_id (line 269) | def form_outside_collaborators_group_id(repository_id: int) -> str: function get_repository_visibility (line 280) | def get_repository_visibility(repo: Repository) -> GitHubVisibility: function get_external_access_permission (line 302) | def get_external_access_permission( function get_external_user_group (line 390) | def get_external_user_group( FILE: backend/ee/onyx/external_permissions/gmail/doc_sync.py function _get_slim_doc_generator (line 21) | def _get_slim_doc_generator( function gmail_doc_sync (line 40) | def gmail_doc_sync( FILE: backend/ee/onyx/external_permissions/google_drive/doc_sync.py function _get_slim_doc_generator (line 30) | def _get_slim_doc_generator( function _merge_permissions_lists (line 49) | def _merge_permissions_lists( function get_external_access_for_raw_gdrive_file (line 66) | def get_external_access_for_raw_gdrive_file( function get_external_access_for_folder (line 208) | def get_external_access_for_folder( function gdrive_doc_sync (line 303) | def gdrive_doc_sync( FILE: backend/ee/onyx/external_permissions/google_drive/folder_retrieval.py function get_folder_permissions_by_ids (line 24) | def get_folder_permissions_by_ids( function get_modified_folders (line 47) | def get_modified_folders( FILE: backend/ee/onyx/external_permissions/google_drive/group_sync.py class FolderInfo (line 34) | class FolderInfo(BaseModel): function _get_all_folders (line 39) | def _get_all_folders( function _drive_folder_to_onyx_group (line 124) | def _drive_folder_to_onyx_group( function _get_drive_members (line 164) | def _get_drive_members( function _drive_member_map_to_onyx_groups (line 229) | def _drive_member_map_to_onyx_groups( function _get_all_google_groups (line 250) | def _get_all_google_groups( function _google_group_to_onyx_group (line 268) | def _google_group_to_onyx_group( function _map_group_email_to_member_emails (line 290) | def _map_group_email_to_member_emails( function _build_onyx_groups (line 312) | def _build_onyx_groups( function gdrive_group_sync (line 383) | def gdrive_group_sync( FILE: backend/ee/onyx/external_permissions/google_drive/models.py class PermissionType (line 7) | class PermissionType(str, Enum): class GoogleDrivePermissionDetails (line 14) | class GoogleDrivePermissionDetails(BaseModel): class GoogleDrivePermission (line 25) | class GoogleDrivePermission(BaseModel): method from_drive_permission (line 39) | def from_drive_permission( method inherited_from (line 66) | def inherited_from(self) -> str | None: FILE: backend/ee/onyx/external_permissions/google_drive/permission_retrieval.py function get_permissions_by_ids (line 12) | def get_permissions_by_ids( FILE: backend/ee/onyx/external_permissions/jira/doc_sync.py function jira_doc_sync (line 18) | def jira_doc_sync( FILE: backend/ee/onyx/external_permissions/jira/group_sync.py function _fetch_group_member_page (line 22) | def _fetch_group_member_page( function _get_group_member_emails (line 59) | def _get_group_member_emails( function jira_group_sync (line 102) | def jira_group_sync( FILE: backend/ee/onyx/external_permissions/jira/models.py class Permission (line 11) | class Permission(BaseModel): class User (line 17) | class User(BaseModel): FILE: backend/ee/onyx/external_permissions/jira/page_access.py function _get_role_id (line 21) | def _get_role_id(holder: Holder) -> str | None: function _build_holder_map (line 25) | def _build_holder_map(permissions: list[dict]) -> dict[str, list[Holder]]: function _get_user_emails (line 97) | def _get_user_emails(user_holders: list[Holder]) -> list[str]: function _get_user_emails_and_groups_from_project_roles (line 119) | def _get_user_emails_and_groups_from_project_roles( function _build_external_access_from_holder_map (line 189) | def _build_external_access_from_holder_map( function get_project_permissions (line 254) | def get_project_permissions( FILE: backend/ee/onyx/external_permissions/perm_sync_types.py class FetchAllDocumentsFunction (line 17) | class FetchAllDocumentsFunction(Protocol): method __call__ (line 24) | def __call__( class FetchAllDocumentsIdsFunction (line 34) | class FetchAllDocumentsIdsFunction(Protocol): method __call__ (line 41) | def __call__( FILE: backend/ee/onyx/external_permissions/post_query_censoring.py function _get_all_censoring_enabled_sources (line 13) | def _get_all_censoring_enabled_sources() -> set[DocumentSource]: function _post_query_chunk_censoring (line 35) | def _post_query_chunk_censoring( FILE: backend/ee/onyx/external_permissions/salesforce/postprocessing.py function _get_dummy_object_access_map (line 25) | def _get_dummy_object_access_map( function _get_objects_access_for_user_email_from_salesforce (line 37) | def _get_objects_access_for_user_email_from_salesforce( function _extract_salesforce_object_id_from_url (line 75) | def _extract_salesforce_object_id_from_url(url: str) -> str: function _get_object_ranges_for_chunk (line 79) | def _get_object_ranges_for_chunk( function _create_empty_censored_chunk (line 103) | def _create_empty_censored_chunk(uncensored_chunk: InferenceChunk) -> In... function _update_censored_chunk (line 117) | def _update_censored_chunk( function censor_salesforce_chunks (line 146) | def censor_salesforce_chunks( function _get_objects_access_for_user_email (line 219) | def _get_objects_access_for_user_email( FILE: backend/ee/onyx/external_permissions/salesforce/utils.py function get_any_salesforce_client_for_doc_id (line 13) | def get_any_salesforce_client_for_doc_id( function _query_salesforce_user_id (line 46) | def _query_salesforce_user_id(sf_client: Salesforce, user_email: str) ->... function get_salesforce_user_id_from_email (line 66) | def get_salesforce_user_id_from_email( function get_objects_access_for_user_id (line 112) | def get_objects_access_for_user_id( function _get_salesforce_client_for_doc_id (line 142) | def _get_salesforce_client_for_doc_id(db_session: Session, doc_id: str) ... FILE: backend/ee/onyx/external_permissions/sharepoint/doc_sync.py function sharepoint_doc_sync (line 18) | def sharepoint_doc_sync( FILE: backend/ee/onyx/external_permissions/sharepoint/group_sync.py function sharepoint_group_sync (line 18) | def sharepoint_group_sync( FILE: backend/ee/onyx/external_permissions/sharepoint/permission_utils.py function _graph_api_get (line 45) | def _graph_api_get( function _iter_graph_collection (line 84) | def _iter_graph_collection( function _normalize_email (line 98) | def _normalize_email(email: str) -> str: class SharepointGroup (line 104) | class SharepointGroup(BaseModel): class GroupsResult (line 112) | class GroupsResult(BaseModel): function _get_azuread_group_guid_by_name (line 117) | def _get_azuread_group_guid_by_name( function _extract_guid_from_claims_token (line 137) | def _extract_guid_from_claims_token(claims_token: str) -> str | None: function _get_group_guid_from_identifier (line 155) | def _get_group_guid_from_identifier( function _get_security_group_owners (line 179) | def _get_security_group_owners(graph_client: GraphClient, group_id: str)... function _get_sharepoint_list_item_id (line 220) | def _get_sharepoint_list_item_id(drive_item: DriveItem) -> str | None: function _is_public_item (line 253) | def _is_public_item( function _is_public_login_name (line 276) | def _is_public_login_name(login_name: str) -> bool: function _get_group_name_with_suffix (line 292) | def _get_group_name_with_suffix( function _get_sharepoint_groups (line 299) | def _get_sharepoint_groups( function _get_azuread_groups (line 348) | def _get_azuread_groups( function _get_groups_and_members_recursively (line 442) | def _get_groups_and_members_recursively( function get_external_access_from_sharepoint (line 504) | def get_external_access_from_sharepoint( function _enumerate_ad_groups_paginated (line 651) | def _enumerate_ad_groups_paginated( function get_sharepoint_external_groups (line 704) | def get_sharepoint_external_groups( FILE: backend/ee/onyx/external_permissions/slack/channel_access.py function get_channel_access (line 10) | def get_channel_access( FILE: backend/ee/onyx/external_permissions/slack/doc_sync.py function _fetch_workspace_permissions (line 26) | def _fetch_workspace_permissions( function _fetch_channel_permissions (line 41) | def _fetch_channel_permissions( function _get_slack_document_access (line 105) | def _get_slack_document_access( function slack_doc_sync (line 140) | def slack_doc_sync( FILE: backend/ee/onyx/external_permissions/slack/group_sync.py function _get_slack_group_ids (line 22) | def _get_slack_group_ids( function _get_slack_group_members_email (line 32) | def _get_slack_group_members_email( function slack_group_sync (line 57) | def slack_group_sync( FILE: backend/ee/onyx/external_permissions/slack/utils.py function fetch_user_id_to_email_map (line 6) | def fetch_user_id_to_email_map( FILE: backend/ee/onyx/external_permissions/sync_params.py class DocSyncConfig (line 48) | class DocSyncConfig(BaseModel): class GroupSyncConfig (line 54) | class GroupSyncConfig(BaseModel): class CensoringConfig (line 60) | class CensoringConfig(BaseModel): class SyncConfig (line 64) | class SyncConfig(BaseModel): function mock_doc_sync (line 74) | def mock_doc_sync( function source_requires_doc_sync (line 185) | def source_requires_doc_sync(source: DocumentSource) -> bool: function source_requires_external_group_sync (line 192) | def source_requires_external_group_sync(source: DocumentSource) -> bool: function get_source_perm_sync_config (line 199) | def get_source_perm_sync_config(source: DocumentSource) -> SyncConfig | ... function source_group_sync_is_cc_pair_agnostic (line 204) | def source_group_sync_is_cc_pair_agnostic(source: DocumentSource) -> bool: function get_all_cc_pair_agnostic_group_sync_sources (line 216) | def get_all_cc_pair_agnostic_group_sync_sources() -> set[DocumentSource]: function check_if_valid_sync_source (line 226) | def check_if_valid_sync_source(source_type: DocumentSource) -> bool: function get_all_censoring_enabled_sources (line 230) | def get_all_censoring_enabled_sources() -> set[DocumentSource]: function source_should_fetch_permissions_during_indexing (line 239) | def source_should_fetch_permissions_during_indexing(source: DocumentSour... FILE: backend/ee/onyx/external_permissions/teams/doc_sync.py function teams_doc_sync (line 19) | def teams_doc_sync( FILE: backend/ee/onyx/external_permissions/utils.py function generic_doc_sync (line 19) | def generic_doc_sync( FILE: backend/ee/onyx/feature_flags/factory.py function get_posthog_feature_flag_provider (line 5) | def get_posthog_feature_flag_provider() -> FeatureFlagProvider: FILE: backend/ee/onyx/feature_flags/posthog_provider.py class PostHogFeatureFlagProvider (line 11) | class PostHogFeatureFlagProvider(FeatureFlagProvider): method feature_enabled (line 19) | def feature_enabled( FILE: backend/ee/onyx/hooks/executor.py class _HttpOutcome (line 89) | class _HttpOutcome(BaseModel): function _lookup_hook (line 101) | def _lookup_hook( function _process_response (line 122) | def _process_response( function _persist_result (line 221) | def _persist_result( function _execute_hook_inner (line 271) | def _execute_hook_inner( function _execute_hook_impl (line 357) | def _execute_hook_impl( FILE: backend/ee/onyx/main.py function lifespan (line 68) | async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]: function get_application (line 81) | def get_application() -> FastAPI: FILE: backend/ee/onyx/onyxbot/slack/handlers/handle_standard_answers.py function build_standard_answer_blocks (line 32) | def build_standard_answer_blocks( function oneoff_standard_answers (line 48) | def oneoff_standard_answers( function _handle_standard_answers (line 79) | def _handle_standard_answers( FILE: backend/ee/onyx/search/process_search_query.py function _run_single_search (line 40) | def _run_single_search( function stream_search_query (line 66) | def stream_search_query( function gather_search_stream (line 255) | def gather_search_stream( FILE: backend/ee/onyx/secondary_llm_flows/query_expansion.py function _clean_keyword_line (line 17) | def _clean_keyword_line(line: str) -> str: function expand_keywords (line 30) | def expand_keywords( FILE: backend/ee/onyx/secondary_llm_flows/search_flow_classification.py function classify_is_search_flow (line 16) | def classify_is_search_flow( FILE: backend/ee/onyx/server/analytics/api.py class QueryAnalyticsResponse (line 32) | class QueryAnalyticsResponse(BaseModel): function get_query_analytics (line 40) | def get_query_analytics( class UserAnalyticsResponse (line 65) | class UserAnalyticsResponse(BaseModel): function get_user_analytics (line 71) | def get_user_analytics( class OnyxbotAnalyticsResponse (line 98) | class OnyxbotAnalyticsResponse(BaseModel): function get_onyxbot_analytics (line 105) | def get_onyxbot_analytics( class PersonaMessageAnalyticsResponse (line 133) | class PersonaMessageAnalyticsResponse(BaseModel): function get_persona_messages (line 140) | def get_persona_messages( class PersonaUniqueUsersResponse (line 171) | class PersonaUniqueUsersResponse(BaseModel): function get_persona_unique_users (line 178) | def get_persona_unique_users( class AssistantDailyUsageResponse (line 204) | class AssistantDailyUsageResponse(BaseModel): class AssistantStatsResponse (line 210) | class AssistantStatsResponse(BaseModel): function get_assistant_stats (line 217) | def get_assistant_stats( FILE: backend/ee/onyx/server/auth_check.py function check_ee_router_auth (line 31) | def check_ee_router_auth( FILE: backend/ee/onyx/server/billing/api.py function _is_billing_circuit_open (line 81) | def _is_billing_circuit_open() -> bool: function _open_billing_circuit (line 97) | def _open_billing_circuit() -> None: function _close_billing_circuit (line 118) | def _close_billing_circuit() -> None: function _get_license_data (line 132) | def _get_license_data(db_session: Session) -> str | None: function _get_tenant_id (line 140) | def _get_tenant_id() -> str | None: function create_checkout_session (line 148) | async def create_checkout_session( function create_customer_portal_session (line 192) | async def create_customer_portal_session( function get_billing_information (line 218) | async def get_billing_information( function update_seats (line 259) | async def update_seats( function get_stripe_publishable_key (line 297) | async def get_stripe_publishable_key() -> StripePublishableKeyResponse: class ResetConnectionResponse (line 360) | class ResetConnectionResponse(BaseModel): function reset_stripe_connection (line 366) | async def reset_stripe_connection( FILE: backend/ee/onyx/server/billing/models.py class CreateCheckoutSessionRequest (line 9) | class CreateCheckoutSessionRequest(BaseModel): class CreateCheckoutSessionResponse (line 17) | class CreateCheckoutSessionResponse(BaseModel): class CreateCustomerPortalSessionRequest (line 23) | class CreateCustomerPortalSessionRequest(BaseModel): class CreateCustomerPortalSessionResponse (line 29) | class CreateCustomerPortalSessionResponse(BaseModel): class BillingInformationResponse (line 35) | class BillingInformationResponse(BaseModel): class SubscriptionStatusResponse (line 52) | class SubscriptionStatusResponse(BaseModel): class SeatUpdateRequest (line 58) | class SeatUpdateRequest(BaseModel): class SeatUpdateResponse (line 64) | class SeatUpdateResponse(BaseModel): class StripePublishableKeyResponse (line 74) | class StripePublishableKeyResponse(BaseModel): FILE: backend/ee/onyx/server/billing/service.py function _get_proxy_headers (line 36) | def _get_proxy_headers(license_data: str | None) -> dict[str, str]: function _get_direct_headers (line 47) | def _get_direct_headers() -> dict[str, str]: function _get_base_url (line 59) | def _get_base_url() -> str: function _get_headers (line 66) | def _get_headers(license_data: str | None) -> dict[str, str]: function _make_billing_request (line 73) | async def _make_billing_request( function create_checkout_session (line 137) | async def create_checkout_session( function create_customer_portal_session (line 178) | async def create_customer_portal_session( function get_billing_information (line 209) | async def get_billing_information( function update_seat_count (line 241) | async def update_seat_count( FILE: backend/ee/onyx/server/documents/cc_pair.py function get_cc_pair_latest_sync (line 33) | def get_cc_pair_latest_sync( function sync_cc_pair (line 54) | def sync_cc_pair( function get_cc_pair_latest_group_sync (line 107) | def get_cc_pair_latest_group_sync( function sync_cc_pair_groups (line 128) | def sync_cc_pair_groups( FILE: backend/ee/onyx/server/enterprise_settings/api.py class RefreshTokenData (line 49) | class RefreshTokenData(BaseModel): method __init__ (line 55) | def __init__(self, **data: Any) -> None: function refresh_access_token (line 66) | async def refresh_access_token( function admin_ee_put_settings (line 122) | def admin_ee_put_settings( function ee_fetch_settings (line 129) | def ee_fetch_settings() -> EnterpriseSettings: function put_logo (line 139) | def put_logo( function fetch_logo_helper (line 147) | def fetch_logo_helper(db_session: Session) -> Response: # noqa: ARG001 function fetch_logotype_helper (line 167) | def fetch_logotype_helper(db_session: Session) -> Response: # noqa: ARG001 function fetch_logotype (line 183) | def fetch_logotype(db_session: Session = Depends(get_session)) -> Response: function fetch_logo (line 188) | def fetch_logo( function upload_custom_analytics_script (line 198) | def upload_custom_analytics_script( function fetch_custom_analytics_script (line 208) | def fetch_custom_analytics_script() -> str | None: function _get_scim_dal (line 217) | def _get_scim_dal(db_session: Session = Depends(get_session)) -> ScimDAL: function get_active_scim_token (line 222) | def get_active_scim_token( function create_scim_token (line 251) | def create_scim_token( FILE: backend/ee/onyx/server/enterprise_settings/models.py class NavigationItem (line 9) | class NavigationItem(BaseModel): method model_validate (line 20) | def model_validate(cls, *args: Any, **kwargs: Any) -> "NavigationItem": class LogoDisplayStyle (line 27) | class LogoDisplayStyle(str, Enum): class EnterpriseSettings (line 33) | class EnterpriseSettings(BaseModel): method check_validity (line 57) | def check_validity(self) -> None: class AnalyticsScriptUpload (line 61) | class AnalyticsScriptUpload(BaseModel): FILE: backend/ee/onyx/server/enterprise_settings/store.py function load_settings (line 28) | def load_settings() -> EnterpriseSettings: function store_settings (line 48) | def store_settings(settings: EnterpriseSettings) -> None: function load_runtime_settings (line 54) | def load_runtime_settings() -> EnterpriseSettings: function load_analytics_script (line 70) | def load_analytics_script() -> str | None: function store_analytics_script (line 78) | def store_analytics_script(analytics_script_upload: AnalyticsScriptUploa... function is_valid_file_type (line 88) | def is_valid_file_type(filename: str) -> bool: function guess_file_type (line 93) | def guess_file_type(filename: str) -> str: function upload_logo (line 101) | def upload_logo(file: UploadFile | str, is_logotype: bool = False) -> bool: function get_logo_filename (line 140) | def get_logo_filename() -> str: function get_logotype_filename (line 144) | def get_logotype_filename() -> str: FILE: backend/ee/onyx/server/evals/api.py function eval_run (line 18) | def eval_run( FILE: backend/ee/onyx/server/features/hooks/api.py function _check_ssrf_safety (line 43) | def _check_ssrf_safety(endpoint_url: str) -> None: function _hook_to_response (line 60) | def _hook_to_response(hook: Hook, creator_email: str | None = None) -> H... function _get_hook_or_404 (line 83) | def _get_hook_or_404( function _raise_for_validation_failure (line 98) | def _raise_for_validation_failure(validation: HookValidateResponse) -> N... function _validate_endpoint (line 113) | def _validate_endpoint( function get_hook_point_specs (line 180) | def get_hook_point_specs( function list_hooks (line 201) | def list_hooks( function create_hook (line 211) | def create_hook( function get_hook (line 247) | def get_hook( function update_hook (line 258) | def update_hook( function delete_hook (line 329) | def delete_hook( function activate_hook (line 340) | def activate_hook( function validate_hook (line 382) | def validate_hook( function deactivate_hook (line 410) | def deactivate_hook( function list_hook_execution_logs (line 432) | def list_hook_execution_logs( FILE: backend/ee/onyx/server/license/api.py function _strip_pem_delimiters (line 51) | def _strip_pem_delimiters(content: str) -> str: function get_license_status (line 62) | async def get_license_status( function get_seat_usage (line 86) | async def get_seat_usage( function claim_license (line 108) | async def claim_license( function upload_license (line 216) | async def upload_license( function refresh_license_cache_endpoint (line 265) | async def refresh_license_cache_endpoint( function delete_license (line 294) | async def delete_license( FILE: backend/ee/onyx/server/license/models.py class PlanType (line 9) | class PlanType(str, Enum): class LicenseSource (line 14) | class LicenseSource(str, Enum): class LicensePayload (line 19) | class LicensePayload(BaseModel): class LicenseData (line 35) | class LicenseData(BaseModel): class LicenseMetadata (line 42) | class LicenseMetadata(BaseModel): class LicenseStatusResponse (line 58) | class LicenseStatusResponse(BaseModel): class LicenseResponse (line 72) | class LicenseResponse(BaseModel): class LicenseUploadResponse (line 80) | class LicenseUploadResponse(BaseModel): class SeatUsageResponse (line 87) | class SeatUsageResponse(BaseModel): FILE: backend/ee/onyx/server/manage/standard_answer.py function create_standard_answer (line 27) | def create_standard_answer( function list_standard_answers (line 44) | def list_standard_answers( function patch_standard_answer (line 56) | def patch_standard_answer( function delete_standard_answer (line 83) | def delete_standard_answer( function create_standard_answer_category (line 95) | def create_standard_answer_category( function list_standard_answer_categories (line 108) | def list_standard_answer_categories( function patch_standard_answer_category (line 122) | def patch_standard_answer_category( FILE: backend/ee/onyx/server/middleware/license_enforcement.py function _is_path_allowed (line 64) | def _is_path_allowed(path: str) -> bool: function _is_ee_only_path (line 71) | def _is_ee_only_path(path: str) -> bool: function add_license_enforcement_middleware (line 76) | def add_license_enforcement_middleware( FILE: backend/ee/onyx/server/middleware/tenant_tracking.py function add_api_server_tenant_id_middleware (line 21) | def add_api_server_tenant_id_middleware( function _get_tenant_id_from_request (line 47) | async def _get_tenant_id_from_request( FILE: backend/ee/onyx/server/oauth/api.py function prepare_authorization_request (line 24) | def prepare_authorization_request( FILE: backend/ee/onyx/server/oauth/confluence_cloud.py class ConfluenceCloudOAuth (line 38) | class ConfluenceCloudOAuth: class OAuthSession (line 41) | class OAuthSession(BaseModel): class TokenResponse (line 47) | class TokenResponse(BaseModel): class AccessibleResources (line 54) | class AccessibleResources(BaseModel): method generate_oauth_url (line 99) | def generate_oauth_url(cls, state: str) -> str: method generate_dev_oauth_url (line 103) | def generate_dev_oauth_url(cls, state: str) -> str: method _generate_oauth_url_helper (line 110) | def _generate_oauth_url_helper(cls, redirect_uri: str, state: str) -> ... method session_dump_json (line 126) | def session_dump_json(cls, email: str, redirect_on_success: str | None... method parse_session (line 136) | def parse_session(cls, session_json: str) -> OAuthSession: method generate_finalize_url (line 141) | def generate_finalize_url(cls, credential_id: int) -> str: function confluence_oauth_callback (line 146) | def confluence_oauth_callback( function confluence_oauth_accessible_resources (line 259) | def confluence_oauth_accessible_resources( function confluence_oauth_finalize (line 323) | def confluence_oauth_finalize( FILE: backend/ee/onyx/server/oauth/google_drive.py class GoogleDriveOAuth (line 43) | class GoogleDriveOAuth: class OAuthSession (line 47) | class OAuthSession(BaseModel): method generate_oauth_url (line 71) | def generate_oauth_url(cls, state: str) -> str: method generate_dev_oauth_url (line 75) | def generate_dev_oauth_url(cls, state: str) -> str: method _generate_oauth_url_helper (line 83) | def _generate_oauth_url_helper(cls, redirect_uri: str, state: str) -> ... method session_dump_json (line 98) | def session_dump_json(cls, email: str, redirect_on_success: str | None... method parse_session (line 108) | def parse_session(cls, session_json: str) -> OAuthSession: function handle_google_drive_oauth_callback (line 114) | def handle_google_drive_oauth_callback( FILE: backend/ee/onyx/server/oauth/slack.py class SlackOAuth (line 27) | class SlackOAuth: class OAuthSession (line 31) | class OAuthSession(BaseModel): method generate_oauth_url (line 59) | def generate_oauth_url(cls, state: str) -> str: method generate_dev_oauth_url (line 63) | def generate_dev_oauth_url(cls, state: str) -> str: method _generate_oauth_url_helper (line 71) | def _generate_oauth_url_helper(cls, redirect_uri: str, state: str) -> ... method session_dump_json (line 82) | def session_dump_json(cls, email: str, redirect_on_success: str | None... method parse_session (line 92) | def parse_session(cls, session_json: str) -> OAuthSession: function handle_slack_oauth_callback (line 98) | def handle_slack_oauth_callback( FILE: backend/ee/onyx/server/query_and_chat/models.py class StandardAnswerRequest (line 13) | class StandardAnswerRequest(BaseModel): class StandardAnswerResponse (line 18) | class StandardAnswerResponse(BaseModel): class SearchFlowClassificationRequest (line 22) | class SearchFlowClassificationRequest(BaseModel): class SearchFlowClassificationResponse (line 26) | class SearchFlowClassificationResponse(BaseModel): class SendSearchQueryRequest (line 34) | class SendSearchQueryRequest(BaseModel): class SearchDocWithContent (line 45) | class SearchDocWithContent(SearchDoc): method from_inference_sections (line 51) | def from_inference_sections( class SearchFullResponse (line 93) | class SearchFullResponse(BaseModel): class SearchQueryResponse (line 104) | class SearchQueryResponse(BaseModel): class SearchHistoryResponse (line 110) | class SearchHistoryResponse(BaseModel): FILE: backend/ee/onyx/server/query_and_chat/query_backend.py function get_standard_answer (line 22) | def get_standard_answer( FILE: backend/ee/onyx/server/query_and_chat/search_backend.py function search_flow_classification (line 40) | def search_flow_classification( function handle_send_search_message (line 80) | def handle_send_search_message( function get_search_history (line 129) | def get_search_history( FILE: backend/ee/onyx/server/query_and_chat/streaming_models.py class SearchQueriesPacket (line 9) | class SearchQueriesPacket(BaseModel): class SearchDocsPacket (line 16) | class SearchDocsPacket(BaseModel): class SearchErrorPacket (line 23) | class SearchErrorPacket(BaseModel): class LLMSelectedDocsPacket (line 30) | class LLMSelectedDocsPacket(BaseModel): FILE: backend/ee/onyx/server/query_and_chat/token_limit.py function _check_token_rate_limits (line 31) | def _check_token_rate_limits(user: User) -> None: function _user_is_rate_limited (line 55) | def _user_is_rate_limited(user_id: UUID) -> None: function _fetch_user_usage (line 72) | def _fetch_user_usage( function _user_is_rate_limited_by_group (line 96) | def _user_is_rate_limited_by_group(user_id: UUID) -> None: function _fetch_all_user_group_rate_limits (line 128) | def _fetch_all_user_group_rate_limits( function _fetch_user_group_usage (line 160) | def _fetch_user_group_usage( FILE: backend/ee/onyx/server/query_history/api.py function ensure_query_history_is_enabled (line 60) | def ensure_query_history_is_enabled( function yield_snapshot_from_chat_session (line 70) | def yield_snapshot_from_chat_session( function fetch_and_process_chat_session_history (line 77) | def fetch_and_process_chat_session_history( function snapshot_from_chat_session (line 121) | def snapshot_from_chat_session( function admin_get_chat_sessions (line 154) | def admin_get_chat_sessions( function get_chat_session_history (line 193) | def get_chat_session_history( function get_chat_session_admin (line 235) | def get_chat_session_admin( function list_all_query_history_exports (line 271) | def list_all_query_history_exports( function start_query_history_export (line 299) | def start_query_history_export( function get_query_history_export_status (line 345) | def get_query_history_export_status( function download_query_history_csv (line 379) | def download_query_history_csv( FILE: backend/ee/onyx/server/query_history/models.py class AbridgedSearchDoc (line 19) | class AbridgedSearchDoc(BaseModel): class MessageSnapshot (line 27) | class MessageSnapshot(BaseModel): method build (line 37) | def build(cls, message: ChatMessage) -> "MessageSnapshot": class ChatSessionMinimal (line 75) | class ChatSessionMinimal(BaseModel): method from_chat_session (line 89) | def from_chat_session(cls, chat_session: ChatSession) -> "ChatSessionM... class ChatSessionSnapshot (line 148) | class ChatSessionSnapshot(BaseModel): class QuestionAnswerPairSnapshot (line 159) | class QuestionAnswerPairSnapshot(BaseModel): method from_chat_session_snapshot (line 175) | def from_chat_session_snapshot( method to_json (line 205) | def to_json(self) -> dict[str, str | None]: class QueryHistoryExport (line 226) | class QueryHistoryExport(BaseModel): method from_task (line 234) | def from_task( method from_file (line 255) | def from_file( class QueryHistoryFileMetadata (line 276) | class QueryHistoryFileMetadata(BaseModel): FILE: backend/ee/onyx/server/reporting/usage_export_api.py class GenerateUsageReportParams (line 26) | class GenerateUsageReportParams(BaseModel): function generate_report (line 32) | def generate_report( function read_usage_report (line 59) | def read_usage_report( function fetch_usage_reports (line 84) | def fetch_usage_reports( FILE: backend/ee/onyx/server/reporting/usage_export_generation.py function generate_chat_messages_report (line 26) | def generate_chat_messages_report( function generate_user_report (line 90) | def generate_user_report( function create_new_usage_report (line 122) | def create_new_usage_report( FILE: backend/ee/onyx/server/reporting/usage_export_models.py class FlowType (line 8) | class FlowType(str, Enum): class ChatMessageSkeleton (line 13) | class ChatMessageSkeleton(BaseModel): class UserSkeleton (line 24) | class UserSkeleton(BaseModel): class UsageReportMetadata (line 29) | class UsageReportMetadata(BaseModel): FILE: backend/ee/onyx/server/scim/api.py class ScimJSONResponse (line 75) | class ScimJSONResponse(JSONResponse): function register_scim_exception_handlers (line 92) | def register_scim_exception_handlers(app: FastAPI) -> None: function _get_provider (line 108) | def _get_provider( function get_service_provider_config (line 126) | def get_service_provider_config() -> ScimServiceProviderConfig: function get_resource_types (line 132) | def get_resource_types() -> ScimJSONResponse: function get_schemas (line 151) | def get_schemas() -> ScimJSONResponse: function _scim_error_response (line 172) | def _scim_error_response(status: int, detail: str) -> ScimJSONResponse: function _parse_excluded_attributes (line 182) | def _parse_excluded_attributes(raw: str | None) -> set[str]: function _apply_exclusions (line 192) | def _apply_exclusions( function _check_seat_availability (line 211) | def _check_seat_availability(dal: ScimDAL) -> str | None: function _fetch_user_or_404 (line 224) | def _fetch_user_or_404(user_id: str, dal: ScimDAL) -> User | ScimJSONRes... function _scim_name_to_str (line 236) | def _scim_name_to_str(name: ScimName | None) -> str | None: function _scim_resource_response (line 252) | def _scim_resource_response( function _build_list_response (line 264) | def _build_list_response( function _extract_enterprise_fields (line 296) | def _extract_enterprise_fields( function _mapping_to_fields (line 308) | def _mapping_to_fields( function _fields_from_resource (line 323) | def _fields_from_resource(resource: ScimUserResource) -> ScimMappingFields: function list_users (line 341) | def list_users( function get_user (line 387) | def get_user( function create_user (line 423) | def create_user( function replace_user (line 550) | def replace_user( function patch_user (line 612) | def patch_user( function delete_user (line 723) | def delete_user( function _fetch_group_or_404 (line 761) | def _fetch_group_or_404(group_id: str, dal: ScimDAL) -> UserGroup | Scim... function _parse_member_uuids (line 773) | def _parse_member_uuids( function _validate_and_parse_members (line 789) | def _validate_and_parse_members( function list_groups (line 814) | def list_groups( function get_group (line 853) | def get_group( function create_group (line 886) | def create_group( function replace_group (line 949) | def replace_group( function patch_group (line 1004) | def patch_group( function delete_group (line 1080) | def delete_group( function _is_valid_uuid (line 1114) | def _is_valid_uuid(value: str) -> bool: FILE: backend/ee/onyx/server/scim/auth.py class ScimAuthError (line 31) | class ScimAuthError(Exception): method __init__ (line 39) | def __init__(self, status_code: int, detail: str) -> None: function _hash_scim_token (line 49) | def _hash_scim_token(token: str) -> str: function generate_scim_token (line 54) | def generate_scim_token() -> tuple[str, str, str]: function _get_hashed_scim_token_from_request (line 67) | def _get_hashed_scim_token_from_request(request: Request) -> str | None: function _get_scim_dal (line 76) | def _get_scim_dal(db_session: Session = Depends(get_session)) -> ScimDAL: function verify_scim_token (line 80) | def verify_scim_token( FILE: backend/ee/onyx/server/scim/filtering.py class ScimFilterOperator (line 31) | class ScimFilterOperator(str, Enum): class ScimFilter (line 40) | class ScimFilter: function parse_scim_filter (line 59) | def parse_scim_filter(filter_string: str | None) -> ScimFilter | None: function _build_filter (line 84) | def _build_filter(match: re.Match[str], raw: str) -> ScimFilter: FILE: backend/ee/onyx/server/scim/models.py class ScimName (line 46) | class ScimName(BaseModel): class ScimEmail (line 54) | class ScimEmail(BaseModel): class ScimMeta (line 62) | class ScimMeta(BaseModel): class ScimUserGroupRef (line 71) | class ScimUserGroupRef(BaseModel): class ScimManagerRef (line 78) | class ScimManagerRef(BaseModel): class ScimEnterpriseExtension (line 84) | class ScimEnterpriseExtension(BaseModel): class ScimMappingFields (line 92) | class ScimMappingFields: class ScimUserResource (line 108) | class ScimUserResource(BaseModel): class ScimGroupMember (line 134) | class ScimGroupMember(BaseModel): class ScimGroupResource (line 145) | class ScimGroupResource(BaseModel): class ScimListResponse (line 156) | class ScimListResponse(BaseModel): class ScimPatchOperationType (line 166) | class ScimPatchOperationType(str, Enum): class ScimPatchResourceValue (line 174) | class ScimPatchResourceValue(BaseModel): class ScimPatchOperation (line 202) | class ScimPatchOperation(BaseModel): method normalize_operation (line 211) | def normalize_operation(cls, v: object) -> object: class ScimPatchRequest (line 223) | class ScimPatchRequest(BaseModel): class ScimError (line 235) | class ScimError(BaseModel): class ScimSupported (line 249) | class ScimSupported(BaseModel): class ScimFilterConfig (line 255) | class ScimFilterConfig(BaseModel): class ScimServiceProviderConfig (line 262) | class ScimServiceProviderConfig(BaseModel): class ScimSchemaAttribute (line 290) | class ScimSchemaAttribute(BaseModel): class ScimSchemaDefinition (line 305) | class ScimSchemaDefinition(BaseModel): class ScimSchemaExtension (line 319) | class ScimSchemaExtension(BaseModel): class ScimResourceType (line 328) | class ScimResourceType(BaseModel): class ScimTokenCreate (line 353) | class ScimTokenCreate(BaseModel): class ScimTokenResponse (line 359) | class ScimTokenResponse(BaseModel): class ScimTokenCreatedResponse (line 371) | class ScimTokenCreatedResponse(ScimTokenResponse): FILE: backend/ee/onyx/server/scim/patch.py class ScimPatchError (line 82) | class ScimPatchError(Exception): method __init__ (line 85) | def __init__(self, detail: str, status: int = 400) -> None: class _UserPatchCtx (line 92) | class _UserPatchCtx: function apply_user_patch (line 105) | def apply_user_patch( function _apply_user_replace (line 142) | def _apply_user_replace( function _apply_user_remove (line 162) | def _apply_user_remove( function _set_user_field (line 185) | def _set_user_field( function _update_primary_email (line 231) | def _update_primary_email(data: dict[str, Any], value: ScimPatchValue) -... function _to_dict (line 243) | def _to_dict(value: ScimPatchValue) -> dict | None: function _set_enterprise_field (line 256) | def _set_enterprise_field( function apply_group_patch (line 296) | def apply_group_patch( function _apply_group_replace (line 339) | def _apply_group_replace( function _members_to_dicts (line 371) | def _members_to_dicts( function _replace_members (line 380) | def _replace_members( function _set_group_field (line 396) | def _set_group_field( function _apply_group_add (line 415) | def _apply_group_add( function _apply_group_remove (line 440) | def _apply_group_remove( FILE: backend/ee/onyx/server/scim/providers/base.py class ScimProvider (line 40) | class ScimProvider(ABC): method name (line 49) | def name(self) -> str: method ignored_patch_paths (line 55) | def ignored_patch_paths(self) -> frozenset[str]: method user_schemas (line 65) | def user_schemas(self) -> list[str]: method build_user_resource (line 73) | def build_user_resource( method build_group_resource (line 134) | def build_group_resource( method build_scim_name (line 152) | def build_scim_name( function _deserialize_emails (line 185) | def _deserialize_emails(stored_json: str | None, username: str) -> list[... function serialize_emails (line 199) | def serialize_emails(emails: list[ScimEmail]) -> str | None: function get_default_provider (line 206) | def get_default_provider() -> ScimProvider: FILE: backend/ee/onyx/server/scim/providers/entra.py class EntraProvider (line 13) | class EntraProvider(ScimProvider): method name (line 27) | def name(self) -> str: method ignored_patch_paths (line 31) | def ignored_patch_paths(self) -> frozenset[str]: method user_schemas (line 35) | def user_schemas(self) -> list[str]: FILE: backend/ee/onyx/server/scim/providers/okta.py class OktaProvider (line 9) | class OktaProvider(ScimProvider): method name (line 21) | def name(self) -> str: method ignored_patch_paths (line 25) | def ignored_patch_paths(self) -> frozenset[str]: FILE: backend/ee/onyx/server/seeding.py class CustomToolSeed (line 35) | class CustomToolSeed(BaseModel): class NavigationItemSeed (line 50) | class NavigationItemSeed(BaseModel): class SeedConfiguration (line 57) | class SeedConfiguration(BaseModel): function _parse_env (line 73) | def _parse_env() -> SeedConfiguration | None: function _seed_custom_tools (line 81) | def _seed_custom_tools(db_session: Session, tools: List[CustomToolSeed])... function _seed_llms (line 118) | def _seed_llms( function _seed_personas (line 161) | def _seed_personas(db_session: Session, personas: list[PersonaUpsertRequ... function _seed_settings (line 190) | def _seed_settings(settings: Settings) -> None: function _seed_enterprise_settings (line 199) | def _seed_enterprise_settings(seed_config: SeedConfiguration) -> None: function _seed_logo (line 231) | def _seed_logo(logo_path: str | None) -> None: function _seed_analytics_script (line 237) | def _seed_analytics_script(seed_config: SeedConfiguration) -> None: function get_seed_config (line 256) | def get_seed_config() -> SeedConfiguration | None: function seed_db (line 260) | def seed_db() -> None: FILE: backend/ee/onyx/server/settings/api.py function check_ee_features_enabled (line 24) | def check_ee_features_enabled() -> bool: function apply_license_status_to_settings (line 68) | def apply_license_status_to_settings(settings: Settings) -> Settings: FILE: backend/ee/onyx/server/tenant_usage_limits.py function fetch_usage_limit_overrides (line 24) | def fetch_usage_limit_overrides() -> dict[str, TenantUsageLimitOverrides... function load_usage_limit_overrides (line 67) | def load_usage_limit_overrides() -> None: function unlimited (line 89) | def unlimited(tenant_id: str) -> TenantUsageLimitOverrides: function get_tenant_usage_limit_overrides (line 103) | def get_tenant_usage_limit_overrides( FILE: backend/ee/onyx/server/tenants/access.py function generate_data_plane_token (line 16) | def generate_data_plane_token() -> str: function control_plane_dep (line 31) | async def control_plane_dep(request: Request) -> None: FILE: backend/ee/onyx/server/tenants/admin_api.py function impersonate_user (line 23) | async def impersonate_user( FILE: backend/ee/onyx/server/tenants/anonymous_user_path.py function get_anonymous_user_path (line 7) | def get_anonymous_user_path(tenant_id: str, db_session: Session) -> str ... function modify_anonymous_user_path (line 20) | def modify_anonymous_user_path( function get_tenant_id_for_anonymous_user_path (line 42) | def get_tenant_id_for_anonymous_user_path( function validate_anonymous_user_path (line 57) | def validate_anonymous_user_path(path: str) -> None: FILE: backend/ee/onyx/server/tenants/anonymous_users_api.py function get_anonymous_user_path_api (line 30) | async def get_anonymous_user_path_api( function set_anonymous_user_path_api (line 45) | async def set_anonymous_user_path_api( function login_as_anonymous_user (line 72) | async def login_as_anonymous_user( FILE: backend/ee/onyx/server/tenants/billing.py function fetch_stripe_checkout_session (line 19) | def fetch_stripe_checkout_session( function fetch_tenant_stripe_information (line 52) | def fetch_tenant_stripe_information(tenant_id: str) -> dict: function fetch_billing_information (line 65) | def fetch_billing_information( function fetch_customer_portal_session (line 92) | def fetch_customer_portal_session(tenant_id: str, return_url: str | None... function register_tenant_users (line 112) | def register_tenant_users(tenant_id: str, number_of_users: int) -> strip... FILE: backend/ee/onyx/server/tenants/billing_api.py function gate_product (line 61) | def gate_product( function gate_product_full_sync (line 81) | def gate_product_full_sync( function billing_information (line 101) | async def billing_information( function create_customer_portal_session (line 110) | async def create_customer_portal_session( function create_checkout_session (line 131) | async def create_checkout_session( function create_subscription_session (line 154) | async def create_subscription_session( function get_stripe_publishable_key (line 178) | async def get_stripe_publishable_key() -> StripePublishableKeyResponse: FILE: backend/ee/onyx/server/tenants/models.py class CheckoutSessionCreationRequest (line 9) | class CheckoutSessionCreationRequest(BaseModel): class CreateTenantRequest (line 13) | class CreateTenantRequest(BaseModel): class ProductGatingRequest (line 18) | class ProductGatingRequest(BaseModel): class ProductGatingFullSyncRequest (line 23) | class ProductGatingFullSyncRequest(BaseModel): class SubscriptionStatusResponse (line 27) | class SubscriptionStatusResponse(BaseModel): class BillingInformation (line 31) | class BillingInformation(BaseModel): class CreateCheckoutSessionRequest (line 45) | class CreateCheckoutSessionRequest(BaseModel): class CheckoutSessionCreationResponse (line 51) | class CheckoutSessionCreationResponse(BaseModel): class ImpersonateRequest (line 55) | class ImpersonateRequest(BaseModel): class TenantCreationPayload (line 59) | class TenantCreationPayload(BaseModel): class TenantDeletionPayload (line 65) | class TenantDeletionPayload(BaseModel): class AnonymousUserPath (line 70) | class AnonymousUserPath(BaseModel): class ProductGatingResponse (line 74) | class ProductGatingResponse(BaseModel): class SubscriptionSessionResponse (line 79) | class SubscriptionSessionResponse(BaseModel): class CreateSubscriptionSessionRequest (line 83) | class CreateSubscriptionSessionRequest(BaseModel): class TenantByDomainResponse (line 89) | class TenantByDomainResponse(BaseModel): class TenantByDomainRequest (line 95) | class TenantByDomainRequest(BaseModel): class RequestInviteRequest (line 99) | class RequestInviteRequest(BaseModel): class RequestInviteResponse (line 103) | class RequestInviteResponse(BaseModel): class PendingUserSnapshot (line 108) | class PendingUserSnapshot(BaseModel): class ApproveUserRequest (line 112) | class ApproveUserRequest(BaseModel): class StripePublishableKeyResponse (line 116) | class StripePublishableKeyResponse(BaseModel): FILE: backend/ee/onyx/server/tenants/product_gating.py function update_tenant_gating (line 16) | def update_tenant_gating(tenant_id: str, status: ApplicationStatus) -> N... function store_product_gating (line 26) | def store_product_gating(tenant_id: str, application_status: Application... function overwrite_full_gated_set (line 45) | def overwrite_full_gated_set(tenant_ids: list[str]) -> None: function get_gated_tenants (line 64) | def get_gated_tenants() -> set[str]: function is_tenant_gated (line 70) | def is_tenant_gated(tenant_id: str) -> bool: FILE: backend/ee/onyx/server/tenants/provisioning.py function get_or_provision_tenant (line 71) | async def get_or_provision_tenant( function create_tenant (line 145) | async def create_tenant( function provision_tenant (line 173) | async def provision_tenant(tenant_id: str, email: str) -> None: function notify_control_plane (line 204) | async def notify_control_plane( function rollback_tenant_provisioning (line 231) | async def rollback_tenant_provisioning(tenant_id: str) -> None: function _build_model_configuration_upsert_requests (line 302) | def _build_model_configuration_upsert_requests( function configure_default_api_keys (line 320) | def configure_default_api_keys(db_session: Session) -> None: function submit_to_hubspot (line 525) | async def submit_to_hubspot( function delete_user_from_control_plane (line 558) | async def delete_user_from_control_plane(tenant_id: str, email: str) -> ... function get_tenant_by_domain_from_control_plane (line 580) | def get_tenant_by_domain_from_control_plane( function get_available_tenant (line 624) | async def get_available_tenant() -> str | None: function setup_tenant (line 662) | async def setup_tenant(tenant_id: str) -> None: function assign_tenant_to_user (line 702) | async def assign_tenant_to_user( FILE: backend/ee/onyx/server/tenants/proxy.py function _check_license_enforcement_enabled (line 46) | def _check_license_enforcement_enabled() -> None: function _extract_license_from_header (line 55) | def _extract_license_from_header( function verify_license_auth (line 92) | def verify_license_auth( function get_license_payload (line 121) | async def get_license_payload( function get_license_payload_allow_expired (line 134) | async def get_license_payload_allow_expired( function get_optional_license_payload (line 147) | async def get_optional_license_payload( function forward_to_control_plane (line 164) | async def forward_to_control_plane( class CreateCheckoutSessionRequest (line 213) | class CreateCheckoutSessionRequest(BaseModel): class CreateCheckoutSessionResponse (line 223) | class CreateCheckoutSessionResponse(BaseModel): function proxy_create_checkout_session (line 228) | async def proxy_create_checkout_session( class ClaimLicenseRequest (line 262) | class ClaimLicenseRequest(BaseModel): class ClaimLicenseResponse (line 266) | class ClaimLicenseResponse(BaseModel): function proxy_claim_license (line 273) | async def proxy_claim_license( class CreateCustomerPortalSessionRequest (line 309) | class CreateCustomerPortalSessionRequest(BaseModel): class CreateCustomerPortalSessionResponse (line 313) | class CreateCustomerPortalSessionResponse(BaseModel): function proxy_create_customer_portal_session (line 318) | async def proxy_create_customer_portal_session( class BillingInformationResponse (line 343) | class BillingInformationResponse(BaseModel): function proxy_billing_information (line 360) | async def proxy_billing_information( class LicenseFetchResponse (line 383) | class LicenseFetchResponse(BaseModel): function proxy_license_fetch (line 389) | async def proxy_license_fetch( function proxy_seat_update (line 424) | async def proxy_seat_update( FILE: backend/ee/onyx/server/tenants/schema_management.py function validate_tenant_id (line 30) | def validate_tenant_id(tenant_id: str) -> bool: function run_alembic_migrations (line 39) | def run_alembic_migrations(schema_name: str) -> None: function create_schema_if_not_exists (line 74) | def create_schema_if_not_exists(tenant_id: str) -> bool: function drop_schema (line 91) | def drop_schema(tenant_id: str) -> None: function get_current_alembic_version (line 106) | def get_current_alembic_version(tenant_id: str) -> str: FILE: backend/ee/onyx/server/tenants/team_membership_api.py function leave_organization (line 25) | async def leave_organization( FILE: backend/ee/onyx/server/tenants/tenant_management_api.py function get_existing_tenant_by_domain (line 28) | def get_existing_tenant_by_domain( FILE: backend/ee/onyx/server/tenants/user_invitations_api.py function request_invite (line 25) | async def request_invite( function list_pending_users (line 39) | def list_pending_users( function approve_user (line 47) | async def approve_user( function accept_invite (line 56) | async def accept_invite( function deny_invite (line 71) | async def deny_invite( FILE: backend/ee/onyx/server/tenants/user_mapping.py function get_tenant_id_for_email (line 20) | def get_tenant_id_for_email(email: str) -> str: function user_owns_a_tenant (line 59) | def user_owns_a_tenant(email: str) -> bool: function add_users_to_tenant (line 69) | def add_users_to_tenant(emails: list[str], tenant_id: str) -> None: function remove_users_from_tenant (line 137) | def remove_users_from_tenant(emails: list[str], tenant_id: str) -> None: function remove_all_users_from_tenant (line 160) | def remove_all_users_from_tenant(tenant_id: str) -> None: function invite_self_to_tenant (line 168) | def invite_self_to_tenant(email: str, tenant_id: str) -> None: function approve_user_invite (line 179) | def approve_user_invite(email: str, tenant_id: str) -> None: function accept_user_invite (line 209) | def accept_user_invite(email: str, tenant_id: str) -> None: function deny_user_invite (line 281) | def deny_user_invite(email: str, tenant_id: str) -> None: function get_tenant_count (line 315) | def get_tenant_count(tenant_id: str) -> int: function get_tenant_invitation (line 361) | def get_tenant_invitation(email: str) -> TenantSnapshot | None: FILE: backend/ee/onyx/server/token_rate_limits/api.py function get_all_group_token_limit_settings (line 30) | def get_all_group_token_limit_settings( function get_group_token_limit_settings (line 48) | def get_group_token_limit_settings( function create_group_token_limit_settings (line 64) | def create_group_token_limit_settings( function get_user_token_limit_settings (line 88) | def get_user_token_limit_settings( function create_user_token_limit_settings (line 99) | def create_user_token_limit_settings( FILE: backend/ee/onyx/server/usage_limits.py function is_tenant_on_trial (line 12) | def is_tenant_on_trial(tenant_id: str) -> bool: FILE: backend/ee/onyx/server/user_group/api.py function list_user_groups (line 45) | def list_user_groups( function list_minimal_user_groups (line 69) | def list_minimal_user_groups( function get_user_group_permissions (line 92) | def get_user_group_permissions( function create_user_group (line 108) | def create_user_group( function rename_user_group_endpoint (line 125) | def rename_user_group_endpoint( function patch_user_group (line 154) | def patch_user_group( function add_users (line 174) | def add_users( function set_user_curator (line 194) | def set_user_curator( function delete_user_group (line 213) | def delete_user_group( function update_group_agents (line 233) | def update_group_agents( FILE: backend/ee/onyx/server/user_group/models.py class UserGroup (line 15) | class UserGroup(BaseModel): method from_model (line 28) | def from_model(cls, user_group_model: UserGroupModel) -> "UserGroup": class MinimalUserGroupSnapshot (line 82) | class MinimalUserGroupSnapshot(BaseModel): method from_model (line 88) | def from_model(cls, user_group_model: UserGroupModel) -> "MinimalUserG... class UserGroupCreate (line 96) | class UserGroupCreate(BaseModel): class UserGroupUpdate (line 102) | class UserGroupUpdate(BaseModel): class AddUsersToUserGroupRequest (line 107) | class AddUsersToUserGroupRequest(BaseModel): class UserGroupRename (line 111) | class UserGroupRename(BaseModel): class SetCuratorRequest (line 116) | class SetCuratorRequest(BaseModel): class UpdateGroupAgentsRequest (line 121) | class UpdateGroupAgentsRequest(BaseModel): FILE: backend/ee/onyx/utils/encryption.py function _get_trimmed_key (line 18) | def _get_trimmed_key(key: str) -> bytes: function _encrypt_string (line 33) | def _encrypt_string(input_str: str, key: str | None = None) -> bytes: function _decrypt_bytes (line 50) | def _decrypt_bytes(input_bytes: bytes, key: str | None = None) -> str: function encrypt_string_to_bytes (line 89) | def encrypt_string_to_bytes(input_str: str, key: str | None = None) -> b... function decrypt_bytes_to_string (line 96) | def decrypt_bytes_to_string(input_bytes: bytes, key: str | None = None) ... function test_encryption (line 103) | def test_encryption() -> None: FILE: backend/ee/onyx/utils/license.py function _get_public_key (line 29) | def _get_public_key() -> RSAPublicKey: function verify_license_signature (line 49) | def verify_license_signature(license_data: str) -> LicensePayload: function get_license_status (line 106) | def get_license_status( function is_license_valid (line 136) | def is_license_valid(payload: LicensePayload) -> bool: FILE: backend/ee/onyx/utils/posthog_client.py function posthog_on_error (line 17) | def posthog_on_error(error: Any, items: Any) -> None: function capture_and_sync_with_alternate_posthog (line 50) | def capture_and_sync_with_alternate_posthog( function alias_user (line 83) | def alias_user(distinct_id: str, anonymous_id: str) -> None: function get_anon_id_from_request (line 99) | def get_anon_id_from_request(request: Any) -> str | None: function get_marketing_posthog_cookie_name (line 113) | def get_marketing_posthog_cookie_name() -> str | None: function parse_posthog_cookie (line 119) | def parse_posthog_cookie(cookie_value: str) -> dict[str, Any] | None: FILE: backend/ee/onyx/utils/telemetry.py function event_telemetry (line 9) | def event_telemetry( function identify_user (line 24) | def identify_user(distinct_id: str, properties: dict[str, Any] | None = ... FILE: backend/model_server/constants.py class GPUStatus (line 4) | class GPUStatus: FILE: backend/model_server/encoders.py function get_embedding_model (line 28) | def get_embedding_model( function _concurrent_embedding (line 85) | def _concurrent_embedding( function embed_text (line 103) | async def embed_text( function route_bi_encoder_embed (line 171) | async def route_bi_encoder_embed( function process_embed_request (line 178) | async def process_embed_request( FILE: backend/model_server/main.py function _move_files_recursively (line 48) | def _move_files_recursively(source: Path, dest: Path, overwrite: bool = ... function lifespan (line 70) | async def lifespan(app: FastAPI) -> AsyncGenerator: function get_model_app (line 94) | def get_model_app() -> FastAPI: FILE: backend/model_server/management_endpoints.py function healthcheck (line 11) | async def healthcheck() -> Response: function route_gpu_status (line 16) | async def route_gpu_status() -> dict[str, bool | str]: FILE: backend/model_server/utils.py function simple_log_function_time (line 22) | def simple_log_function_time( function get_gpu_type (line 66) | def get_gpu_type() -> str: FILE: backend/onyx/access/access.py function _get_access_for_document (line 19) | def _get_access_for_document( function get_access_for_document (line 39) | def get_access_for_document( function get_null_document_access (line 49) | def get_null_document_access() -> DocumentAccess: function _get_access_for_documents (line 59) | def _get_access_for_documents( function get_access_for_documents (line 88) | def get_access_for_documents( function _get_acl_for_user (line 99) | def _get_acl_for_user( function get_acl_for_user (line 114) | def get_acl_for_user(user: User, db_session: Session | None = None) -> s... function source_should_fetch_permissions_during_indexing (line 121) | def source_should_fetch_permissions_during_indexing(source: DocumentSour... function get_access_for_user_files (line 133) | def get_access_for_user_files( function get_access_for_user_files_impl (line 143) | def get_access_for_user_files_impl( function build_access_for_user_files (line 151) | def build_access_for_user_files( function build_access_for_user_files_impl (line 163) | def build_access_for_user_files_impl( function collect_user_file_access (line 179) | def collect_user_file_access(user_file: UserFile) -> tuple[set[str], bool]: FILE: backend/onyx/access/hierarchy_access.py function _get_user_external_group_ids (line 7) | def _get_user_external_group_ids( function get_user_external_group_ids (line 14) | def get_user_external_group_ids(db_session: Session, user: User) -> list... FILE: backend/onyx/access/models.py class ExternalAccess (line 10) | class ExternalAccess: method __str__ (line 22) | def __str__(self) -> str: method num_entries (line 39) | def num_entries(self) -> int: method public (line 43) | def public(cls) -> "ExternalAccess": method empty (line 51) | def empty(cls) -> "ExternalAccess": class DocExternalAccess (line 68) | class DocExternalAccess: method to_dict (line 78) | def to_dict(self) -> dict: method from_dict (line 91) | def from_dict(cls, data: dict) -> "DocExternalAccess": class NodeExternalAccess (line 108) | class NodeExternalAccess: method to_dict (line 120) | def to_dict(self) -> dict: method from_dict (line 134) | def from_dict(cls, data: dict) -> "NodeExternalAccess": class DocumentAccess (line 158) | class DocumentAccess(ExternalAccess): method __init__ (line 169) | def __init__(self) -> None: method to_acl (line 174) | def to_acl(self) -> set[str]: method build (line 200) | def build( FILE: backend/onyx/access/utils.py function prefix_user_email (line 4) | def prefix_user_email(user_email: str) -> str: function prefix_user_group (line 11) | def prefix_user_group(user_group_name: str) -> str: function prefix_external_group (line 17) | def prefix_external_group(ext_group_name: str) -> str: function build_ext_group_name_for_onyx (line 22) | def build_ext_group_name_for_onyx(ext_group_name: str, source: DocumentS... FILE: backend/onyx/auth/anonymous_user.py function set_anonymous_user_preferences (line 17) | def set_anonymous_user_preferences( function set_anonymous_user_personalization (line 23) | def set_anonymous_user_personalization( function load_anonymous_user_preferences (line 29) | def load_anonymous_user_preferences(store: KeyValueStore) -> UserPrefere... function fetch_anonymous_user_info (line 41) | def fetch_anonymous_user_info(store: KeyValueStore) -> UserInfo: FILE: backend/onyx/auth/api_key.py class ApiKeyDescriptor (line 19) | class ApiKeyDescriptor(BaseModel): function generate_api_key (line 29) | def generate_api_key(tenant_id: str | None = None) -> str: function _deprecated_hash_api_key (line 37) | def _deprecated_hash_api_key(api_key: str) -> str: function hash_api_key (line 41) | def hash_api_key(api_key: str) -> str: function build_displayable_api_key (line 53) | def build_displayable_api_key(api_key: str) -> str: function get_hashed_api_key_from_request (line 60) | def get_hashed_api_key_from_request(request: Request) -> str | None: FILE: backend/onyx/auth/captcha.py class CaptchaVerificationError (line 17) | class CaptchaVerificationError(Exception): class RecaptchaResponse (line 21) | class RecaptchaResponse(BaseModel): function is_captcha_enabled (line 32) | def is_captcha_enabled() -> bool: function verify_captcha_token (line 37) | async def verify_captcha_token( FILE: backend/onyx/auth/disposable_email_validator.py class DisposableEmailValidator (line 21) | class DisposableEmailValidator: method __new__ (line 31) | def __new__(cls) -> "DisposableEmailValidator": method __init__ (line 38) | def __init__(self) -> None: method _should_refresh (line 69) | def _should_refresh(self) -> bool: method _fetch_domains (line 73) | def _fetch_domains(self) -> Set[str]: method get_domains (line 119) | def get_domains(self) -> Set[str]: method is_disposable (line 141) | def is_disposable(self, email: str) -> bool: function is_disposable_email (line 170) | def is_disposable_email(email: str) -> bool: function refresh_disposable_domains (line 185) | def refresh_disposable_domains() -> None: FILE: backend/onyx/auth/email_utils.py function build_html_email (line 157) | def build_html_email( function send_email (line 183) | def send_email( function send_email_with_sendgrid (line 205) | def send_email_with_sendgrid( function send_email_with_smtplib (line 249) | def send_email_with_smtplib( function send_subscription_cancellation_email (line 298) | def send_subscription_cancellation_email(user_email: str) -> None: function build_user_email_invite (line 343) | def build_user_email_invite( function send_user_email_invite (line 388) | def send_user_email_invite( function send_forgot_password_email (line 417) | def send_forgot_password_email( function send_user_verification_email (line 462) | def send_user_verification_email( FILE: backend/onyx/auth/invited_users.py function remove_user_from_invited_users (line 10) | def remove_user_from_invited_users(email: str) -> int: function get_invited_users (line 21) | def get_invited_users() -> list[str]: function write_invited_users (line 29) | def write_invited_users(emails: list[str]) -> int: function get_pending_users (line 35) | def get_pending_users() -> list[str]: function write_pending_users (line 43) | def write_pending_users(emails: list[str]) -> int: FILE: backend/onyx/auth/jwt.py class PublicKeyFormat (line 25) | class PublicKeyFormat(Enum): function _fetch_public_key_payload (line 31) | def _fetch_public_key_payload() -> tuple[str | dict[str, Any], PublicKey... function get_public_key (line 70) | def get_public_key(token: str) -> RSAPublicKey | str | None: function _resolve_public_key_from_jwks (line 86) | def _resolve_public_key_from_jwks( function verify_jwt_token (line 131) | async def verify_jwt_token(token: str) -> dict[str, Any] | None: FILE: backend/onyx/auth/oauth_refresher.py function _test_expire_oauth_token (line 30) | async def _test_expire_oauth_token( function refresh_oauth_token (line 59) | async def refresh_oauth_token( function check_and_refresh_oauth_tokens (line 147) | async def check_and_refresh_oauth_tokens( function check_oauth_account_has_refresh_token (line 184) | async def check_oauth_account_has_refresh_token( function get_oauth_accounts_requiring_refresh_token (line 195) | async def get_oauth_accounts_requiring_refresh_token(user: User) -> List... FILE: backend/onyx/auth/oauth_token_manager.py class OAuthTokenManager (line 20) | class OAuthTokenManager: method __init__ (line 23) | def __init__(self, oauth_config: OAuthConfig, user_id: UUID, db_sessio... method get_valid_access_token (line 28) | def get_valid_access_token(self) -> str | None: method refresh_token (line 56) | def refresh_token(self, user_token: OAuthUserToken) -> str: method token_expiration_time (line 109) | def token_expiration_time(cls, token_data: dict[str, Any]) -> int | None: method is_token_expired (line 118) | def is_token_expired(cls, token_data: dict[str, Any]) -> bool: method exchange_code_for_token (line 127) | def exchange_code_for_token(self, code: str, redirect_uri: str) -> dic... method build_authorization_url (line 162) | def build_authorization_url( method _unwrap_sensitive_str (line 192) | def _unwrap_sensitive_str(value: SensitiveValue[str] | str) -> str: method _unwrap_token_data (line 198) | def _unwrap_token_data( FILE: backend/onyx/auth/pat.py function generate_pat (line 18) | def generate_pat(tenant_id: str | None = None) -> str: function hash_pat (line 26) | def hash_pat(token: str) -> str: function build_displayable_pat (line 31) | def build_displayable_pat(token: str) -> str: function get_hashed_pat_from_request (line 40) | def get_hashed_pat_from_request(request: Request) -> str | None: function calculate_expiration (line 53) | def calculate_expiration(days: int | None) -> datetime | None: FILE: backend/onyx/auth/permissions.py function resolve_effective_permissions (line 51) | def resolve_effective_permissions(granted: set[str]) -> set[str]: function get_effective_permissions (line 71) | def get_effective_permissions(user: User) -> set[Permission]: function require_permission (line 85) | def require_permission( FILE: backend/onyx/auth/schemas.py class UserRole (line 11) | class UserRole(str, Enum): method is_web_login (line 33) | def is_web_login(self) -> bool: class UserRead (line 40) | class UserRead(schemas.BaseUser[uuid.UUID]): class UserCreate (line 44) | class UserCreate(schemas.BaseUserCreate): method create_update_dict (line 53) | def create_update_dict(self) -> dict[str, Any]: method create_update_dict_superuser (line 62) | def create_update_dict_superuser(self) -> dict[str, Any]: class UserUpdate (line 69) | class UserUpdate(schemas.BaseUserUpdate): class AuthBackend (line 76) | class AuthBackend(str, Enum): FILE: backend/onyx/auth/users.py function is_user_admin (line 159) | def is_user_admin(user: User) -> bool: function verify_auth_setting (line 163) | def verify_auth_setting() -> None: function get_display_email (line 182) | def get_display_email(email: str | None, space_less: bool = False) -> str: function generate_password (line 196) | def generate_password() -> str: function user_needs_to_be_verified (line 220) | def user_needs_to_be_verified() -> bool: function anonymous_user_enabled (line 229) | def anonymous_user_enabled(*, tenant_id: str | None = None) -> bool: function workspace_invite_only_enabled (line 241) | def workspace_invite_only_enabled() -> bool: function verify_email_is_invited (line 246) | def verify_email_is_invited(email: str) -> None: function verify_email_in_whitelist (line 285) | def verify_email_in_whitelist(email: str, tenant_id: str) -> None: function verify_email_domain (line 291) | def verify_email_domain(email: str, *, is_registration: bool = False) ->... function enforce_seat_limit (line 334) | def enforce_seat_limit(db_session: Session, seats_needed: int = 1) -> None: class UserManager (line 350) | class UserManager(UUIDIDMixin, BaseUserManager[User, uuid.UUID]): method get_by_email (line 356) | async def get_by_email(self, user_email: str) -> User: method create (line 374) | async def create( method _assign_default_pinned_assistants (line 554) | async def _assign_default_pinned_assistants( method _upgrade_user_to_standard__sync (line 583) | def _upgrade_user_to_standard__sync( method validate_password (line 615) | async def validate_password(self, password: str, _: schemas.UC | model... method oauth_callback (line 646) | async def oauth_callback( method on_after_login (line 817) | async def on_after_login( method on_after_register (line 848) | async def on_after_register( method on_after_forgot_password (line 961) | async def on_after_forgot_password( method on_after_request_verify (line 983) | async def on_after_request_verify( method authenticate (line 1000) | async def authenticate( method reset_password_as_admin (line 1057) | async def reset_password_as_admin(self, user_id: uuid.UUID) -> str: method change_password_if_old_matches (line 1064) | async def change_password_if_old_matches( function get_user_manager (line 1091) | async def get_user_manager( class RefreshableStrategy (line 1109) | class RefreshableStrategy(Protocol): method refresh_token (line 1112) | async def refresh_token(self, token: Optional[str], user: Any) -> str: class TenantAwareRedisStrategy (line 1120) | class TenantAwareRedisStrategy(RedisStrategy[User, uuid.UUID]): method __init__ (line 1126) | def __init__( method write_token (line 1134) | async def write_token(self, user: User) -> str: method read_token (line 1155) | async def read_token( method destroy_token (line 1171) | async def destroy_token(self, token: str, user: User) -> None: # noqa... method refresh_token (line 1176) | async def refresh_token(self, token: Optional[str], user: User) -> str: class RefreshableDatabaseStrategy (line 1202) | class RefreshableDatabaseStrategy(DatabaseStrategy[User, uuid.UUID, Acce... method __init__ (line 1205) | def __init__( method refresh_token (line 1213) | async def refresh_token(self, token: Optional[str], user: User) -> str: class SingleTenantJWTStrategy (line 1234) | class SingleTenantJWTStrategy(JWTStrategy[User, uuid.UUID]): method __init__ (line 1247) | def __init__( method write_token (line 1263) | async def write_token(self, user: User) -> str: method destroy_token (line 1273) | async def destroy_token(self, token: str, user: User) -> None: # noqa... method refresh_token (line 1282) | async def refresh_token( function get_redis_strategy (line 1291) | def get_redis_strategy() -> TenantAwareRedisStrategy: function get_database_strategy (line 1295) | def get_database_strategy( function get_jwt_strategy (line 1303) | def get_jwt_strategy() -> SingleTenantJWTStrategy: class FastAPIUserWithLogoutRouter (line 1334) | class FastAPIUserWithLogoutRouter(FastAPIUsers[models.UP, models.ID]): method get_logout_router (line 1335) | def get_logout_router( method get_refresh_router (line 1371) | def get_refresh_router( function _extract_email_from_jwt (line 1469) | def _extract_email_from_jwt(payload: dict[str, Any]) -> str | None: function _sync_jwt_oidc_expiry (line 1483) | async def _sync_jwt_oidc_expiry( function _get_or_create_user_from_jwt (line 1509) | async def _get_or_create_user_from_jwt( function _check_for_saml_and_jwt (line 1567) | async def _check_for_saml_and_jwt( function optional_user (line 1586) | async def optional_user( function get_anonymous_user (line 1608) | def get_anonymous_user() -> User: function double_check_user (line 1625) | async def double_check_user( function current_user_with_expired_token (line 1657) | async def current_user_with_expired_token( function current_limited_user (line 1663) | async def current_limited_user( function current_chat_accessible_user (line 1669) | async def current_chat_accessible_user( function current_user (line 1679) | async def current_user( function current_curator_or_admin_user (line 1691) | async def current_curator_or_admin_user( function current_admin_user (line 1703) | async def current_admin_user(user: User = Depends(current_user)) -> User: function _get_user_from_token_data (line 1712) | async def _get_user_from_token_data(token_data: dict) -> User | None: function _is_same_origin (line 1740) | def _is_same_origin(actual: str, expected: str) -> bool: function current_user_from_websocket (line 1764) | async def current_user_from_websocket( function get_default_admin_user_emails_ (line 1831) | def get_default_admin_user_emails_() -> list[str]: class OAuth2AuthorizeResponse (line 1843) | class OAuth2AuthorizeResponse(BaseModel): function generate_state_token (line 1847) | def generate_state_token( function generate_csrf_token (line 1857) | def generate_csrf_token() -> str: function _base64url_encode (line 1861) | def _base64url_encode(data: bytes) -> str: function generate_pkce_pair (line 1865) | def generate_pkce_pair() -> tuple[str, str]: function get_pkce_cookie_name (line 1871) | def get_pkce_cookie_name(state: str) -> str: function create_onyx_oauth_router (line 1877) | def create_onyx_oauth_router( function get_oauth_router (line 1898) | def get_oauth_router( FILE: backend/onyx/auth/utils.py function get_hashed_bearer_token_from_request (line 16) | def get_hashed_bearer_token_from_request( function _extract_tenant_from_bearer_token (line 57) | def _extract_tenant_from_bearer_token( function extract_tenant_from_auth_header (line 97) | def extract_tenant_from_auth_header(request: Request) -> str | None: FILE: backend/onyx/background/celery/apps/app_base.py class TenantAwareTask (line 76) | class TenantAwareTask(Task): method __call__ (line 81) | def __call__(self, *args: Any, **kwargs: Any) -> Any: function on_task_prerun (line 98) | def on_task_prerun( function on_task_postrun (line 115) | def on_task_postrun( function on_celeryd_init (line 214) | def on_celeryd_init( function wait_for_redis (line 251) | def wait_for_redis(sender: Any, **kwargs: Any) -> None: # noqa: ARG001 function wait_for_db (line 291) | def wait_for_db(sender: Any, **kwargs: Any) -> None: # noqa: ARG001 function on_secondary_worker_init (line 330) | def on_secondary_worker_init(sender: Any, **kwargs: Any) -> None: # noq... function on_worker_ready (line 359) | def on_worker_ready(sender: Any, **kwargs: Any) -> None: # noqa: ARG001 function on_worker_shutdown (line 372) | def on_worker_shutdown(sender: Any, **kwargs: Any) -> None: # noqa: ARG001 function on_setup_logging (line 402) | def on_setup_logging( function set_task_finished_log_level (line 482) | def set_task_finished_log_level(logLevel: int) -> None: class TenantContextFilter (line 488) | class TenantContextFilter(logging.Filter): method filter (line 491) | def filter(self, record: logging.LogRecord) -> bool: function reset_tenant_id (line 507) | def reset_tenant_id( function wait_for_vespa_or_shutdown (line 519) | def wait_for_vespa_or_shutdown( class LivenessProbe (line 545) | class LivenessProbe(bootsteps.StartStopStep): method __init__ (line 548) | def __init__(self, worker: Any, **kwargs: Any) -> None: method start (line 554) | def start(self, worker: Any) -> None: method stop (line 562) | def stop(self, worker: Any) -> None: # noqa: ARG002 method update_liveness_file (line 567) | def update_liveness_file(self, worker: Any) -> None: # noqa: ARG002 function get_bootsteps (line 571) | def get_bootsteps() -> list[type]: function filter_task_modules (line 596) | def filter_task_modules(modules: list[str]) -> list[str]: FILE: backend/onyx/background/celery/apps/beat.py class DynamicTenantScheduler (line 27) | class DynamicTenantScheduler(PersistentScheduler): method __init__ (line 33) | def __init__(self, *args: Any, **kwargs: Any) -> None: method setup_schedule (line 57) | def setup_schedule(self) -> None: method tick (line 60) | def tick(self) -> float: method _generate_schedule (line 81) | def _generate_schedule( method _try_updating_schedule (line 147) | def _try_updating_schedule(self) -> None: method _compare_schedules (line 227) | def _compare_schedules(schedule1: dict, schedule2: dict) -> bool: function on_beat_init (line 236) | def on_beat_init(sender: Any, **kwargs: Any) -> None: function on_setup_logging (line 254) | def on_setup_logging( FILE: backend/onyx/background/celery/apps/docfetching.py function on_task_prerun (line 36) | def on_task_prerun( function on_task_postrun (line 50) | def on_task_postrun( function on_task_retry (line 66) | def on_task_retry(sender: Any | None = None, **kwargs: Any) -> None: # ... function on_task_revoked (line 74) | def on_task_revoked(sender: Any | None = None, **kwargs: Any) -> None: function on_task_rejected (line 80) | def on_task_rejected(sender: Any | None = None, **kwargs: Any) -> None: ... function on_celeryd_init (line 94) | def on_celeryd_init(sender: str, conf: Any = None, **kwargs: Any) -> None: function on_worker_init (line 99) | def on_worker_init(sender: Worker, **kwargs: Any) -> None: function on_worker_ready (line 118) | def on_worker_ready(sender: Any, **kwargs: Any) -> None: function on_worker_shutdown (line 124) | def on_worker_shutdown(sender: Any, **kwargs: Any) -> None: function on_setup_logging (line 129) | def on_setup_logging( FILE: backend/onyx/background/celery/apps/docprocessing.py function on_task_prerun (line 37) | def on_task_prerun( function on_task_postrun (line 51) | def on_task_postrun( function on_task_retry (line 67) | def on_task_retry(sender: Any | None = None, **kwargs: Any) -> None: # ... function on_task_revoked (line 75) | def on_task_revoked(sender: Any | None = None, **kwargs: Any) -> None: function on_task_rejected (line 81) | def on_task_rejected(sender: Any | None = None, **kwargs: Any) -> None: ... function on_celeryd_init (line 95) | def on_celeryd_init(sender: str, conf: Any = None, **kwargs: Any) -> None: function on_worker_init (line 100) | def on_worker_init(sender: Worker, **kwargs: Any) -> None: function on_worker_ready (line 124) | def on_worker_ready(sender: Any, **kwargs: Any) -> None: function on_worker_shutdown (line 130) | def on_worker_shutdown(sender: Any, **kwargs: Any) -> None: function init_worker (line 141) | def init_worker(**kwargs: Any) -> None: # noqa: ARG001 function on_setup_logging (line 146) | def on_setup_logging( FILE: backend/onyx/background/celery/apps/heavy.py function on_task_prerun (line 28) | def on_task_prerun( function on_task_postrun (line 40) | def on_task_postrun( function on_celeryd_init (line 54) | def on_celeryd_init(sender: str, conf: Any = None, **kwargs: Any) -> None: function on_worker_init (line 59) | def on_worker_init(sender: Worker, **kwargs: Any) -> None: function on_worker_ready (line 78) | def on_worker_ready(sender: Any, **kwargs: Any) -> None: function on_worker_shutdown (line 83) | def on_worker_shutdown(sender: Any, **kwargs: Any) -> None: function on_setup_logging (line 88) | def on_setup_logging( FILE: backend/onyx/background/celery/apps/light.py function on_task_prerun (line 30) | def on_task_prerun( function on_task_postrun (line 42) | def on_task_postrun( function on_celeryd_init (line 56) | def on_celeryd_init(sender: str, conf: Any = None, **kwargs: Any) -> None: function on_worker_init (line 61) | def on_worker_init(sender: Worker, **kwargs: Any) -> None: function on_worker_ready (line 92) | def on_worker_ready(sender: Any, **kwargs: Any) -> None: function on_worker_shutdown (line 97) | def on_worker_shutdown(sender: Any, **kwargs: Any) -> None: function on_setup_logging (line 102) | def on_setup_logging( FILE: backend/onyx/background/celery/apps/monitoring.py function on_task_prerun (line 27) | def on_task_prerun( function on_task_postrun (line 39) | def on_task_postrun( function on_celeryd_init (line 53) | def on_celeryd_init(sender: Any = None, conf: Any = None, **kwargs: Any)... function on_worker_init (line 62) | def on_worker_init(sender: Any, **kwargs: Any) -> None: function _setup_prometheus_collectors (line 83) | def _setup_prometheus_collectors(sender: Any) -> bool: function on_worker_ready (line 105) | def on_worker_ready(sender: Any, **kwargs: Any) -> None: function on_worker_shutdown (line 118) | def on_worker_shutdown(sender: Any, **kwargs: Any) -> None: function on_setup_logging (line 123) | def on_setup_logging( FILE: backend/onyx/background/celery/apps/primary.py function on_task_prerun (line 53) | def on_task_prerun( function on_task_postrun (line 65) | def on_task_postrun( function on_celeryd_init (line 79) | def on_celeryd_init(sender: str, conf: Any = None, **kwargs: Any) -> None: function on_worker_init (line 84) | def on_worker_init(sender: Worker, **kwargs: Any) -> None: function on_worker_ready (line 214) | def on_worker_ready(sender: Any, **kwargs: Any) -> None: function on_worker_shutdown (line 219) | def on_worker_shutdown(sender: Any, **kwargs: Any) -> None: function on_setup_logging (line 224) | def on_setup_logging( class HubPeriodicTask (line 234) | class HubPeriodicTask(bootsteps.StartStopStep): method __init__ (line 245) | def __init__(self, worker: Any, **kwargs: Any) -> None: # noqa: ARG002 method start (line 249) | def start(self, worker: Any) -> None: method run_periodic_task (line 262) | def run_periodic_task(self, worker: Any) -> None: method stop (line 300) | def stop(self, worker: Any) -> None: # noqa: ARG002 FILE: backend/onyx/background/celery/apps/task_formatters.py class CeleryTaskPlainFormatter (line 9) | class CeleryTaskPlainFormatter(PlainFormatter): method format (line 10) | def format(self, record: logging.LogRecord) -> str: class CeleryTaskColoredFormatter (line 19) | class CeleryTaskColoredFormatter(ColoredFormatter): method format (line 20) | def format(self, record: logging.LogRecord) -> str: FILE: backend/onyx/background/celery/apps/user_file_processing.py function on_task_prerun (line 29) | def on_task_prerun( function on_task_postrun (line 41) | def on_task_postrun( function on_celeryd_init (line 55) | def on_celeryd_init(sender: str, conf: Any = None, **kwargs: Any) -> None: function on_worker_init (line 60) | def on_worker_init(sender: Worker, **kwargs: Any) -> None: function on_worker_ready (line 84) | def on_worker_ready(sender: Any, **kwargs: Any) -> None: function on_worker_shutdown (line 89) | def on_worker_shutdown(sender: Any, **kwargs: Any) -> None: function init_worker (line 94) | def init_worker(**kwargs: Any) -> None: # noqa: ARG001 function on_setup_logging (line 99) | def on_setup_logging( FILE: backend/onyx/background/celery/celery_k8s_probe.py function main_readiness (line 9) | def main_readiness(filename: str) -> int: function main_liveness (line 18) | def main_liveness(filename: str) -> int: FILE: backend/onyx/background/celery/celery_redis.py function celery_get_broker_client (line 21) | def celery_get_broker_client(app: Celery) -> Redis: function celery_get_unacked_length (line 66) | def celery_get_unacked_length(r: Redis) -> int: function celery_get_unacked_task_ids (line 79) | def celery_get_unacked_task_ids(queue: str, r: Redis) -> set[str]: function celery_get_queue_length (line 107) | def celery_get_queue_length(queue: str, r: Redis) -> int: function celery_find_task (line 125) | def celery_find_task(task_id: str, queue: str, r: Redis) -> int: function celery_get_queued_task_ids (line 147) | def celery_get_queued_task_ids(queue: str, r: Redis) -> set[str]: function celery_inspect_get_workers (line 170) | def celery_inspect_get_workers(name_filter: str | None, app: Celery) -> ... function celery_inspect_get_reserved (line 199) | def celery_inspect_get_reserved(worker_names: list[str], app: Celery) ->... function celery_inspect_get_active (line 220) | def celery_inspect_get_active(worker_names: list[str], app: Celery) -> s... FILE: backend/onyx/background/celery/celery_utils.py class SlimConnectorExtractionResult (line 41) | class SlimConnectorExtractionResult(BaseModel): function _checkpointed_batched_items (line 52) | def _checkpointed_batched_items( function _get_failure_id (line 91) | def _get_failure_id(failure: ConnectorFailure) -> str | None: class BatchResult (line 100) | class BatchResult(BaseModel): function _extract_from_batch (line 105) | def _extract_from_batch( function extract_ids_from_runnable_connector (line 130) | def extract_ids_from_runnable_connector( function celery_is_listening_to_queue (line 204) | def celery_is_listening_to_queue(worker: Any, name: str) -> bool: function celery_is_worker_primary (line 217) | def celery_is_worker_primary(worker: Any) -> bool: function httpx_init_vespa_pool (line 229) | def httpx_init_vespa_pool( function make_probe_path (line 251) | def make_probe_path(probe: str, hostname: str) -> Path: FILE: backend/onyx/background/celery/memory_monitoring.py function emit_process_memory (line 48) | def emit_process_memory( FILE: backend/onyx/background/celery/tasks/beat_schedule.py function make_cloud_generator_task (line 253) | def make_cloud_generator_task(task: dict[str, Any]) -> dict[str, Any]: function generate_cloud_tasks (line 365) | def generate_cloud_tasks( function get_cloud_tasks_to_schedule (line 398) | def get_cloud_tasks_to_schedule(beat_multiplier: float) -> list[dict[str... function get_tasks_to_schedule (line 402) | def get_tasks_to_schedule() -> list[dict[str, Any]]: FILE: backend/onyx/background/celery/tasks/connector_deletion/tasks.py class TaskDependencyError (line 68) | class TaskDependencyError(RuntimeError): function revoke_tasks_blocking_deletion (line 73) | def revoke_tasks_blocking_deletion( function check_for_connector_deletion_task (line 133) | def check_for_connector_deletion_task(self: Task, *, tenant_id: str) -> ... function try_generate_document_cc_pair_cleanup_tasks (line 236) | def try_generate_document_cc_pair_cleanup_tasks( function monitor_connector_deletion_taskset (line 366) | def monitor_connector_deletion_taskset( function validate_connector_deletion_fences (line 557) | def validate_connector_deletion_fences( function validate_connector_deletion_fence (line 597) | def validate_connector_deletion_fence( FILE: backend/onyx/background/celery/tasks/docfetching/task_creation_utils.py function try_creating_docfetching_task (line 20) | def try_creating_docfetching_task( FILE: backend/onyx/background/celery/tasks/docfetching/tasks.py function _verify_indexing_attempt (line 44) | def _verify_indexing_attempt( function docfetching_task (line 100) | def docfetching_task( function _docfetching_task (line 127) | def _docfetching_task( function process_job_result (line 255) | def process_job_result( function docfetching_proxy_task (line 306) | def docfetching_proxy_task( FILE: backend/onyx/background/celery/tasks/docprocessing/heartbeat.py function start_heartbeat (line 14) | def start_heartbeat(index_attempt_id: int) -> tuple[threading.Thread, th... function stop_heartbeat (line 41) | def stop_heartbeat(thread: threading.Thread, stop_event: threading.Event... FILE: backend/onyx/background/celery/tasks/docprocessing/tasks.py function _get_fence_validation_block_expiration (line 131) | def _get_fence_validation_block_expiration() -> int: function validate_active_indexing_attempts (line 149) | def validate_active_indexing_attempts( class ConnectorIndexingLogBuilder (line 265) | class ConnectorIndexingLogBuilder: method __init__ (line 266) | def __init__(self, ctx: DocProcessingContext): method build (line 269) | def build(self, msg: str, **kwargs: Any) -> str: function monitor_indexing_attempt_progress (line 286) | def monitor_indexing_attempt_progress( function _resolve_indexing_entity_errors (line 380) | def _resolve_indexing_entity_errors( function check_indexing_completion (line 396) | def check_indexing_completion( function active_indexing_attempt (line 575) | def active_indexing_attempt( function _kickoff_indexing_tasks (line 611) | def _kickoff_indexing_tasks( function check_for_indexing (line 713) | def check_for_indexing(self: Task, *, tenant_id: str) -> int | None: function check_for_checkpoint_cleanup (line 1015) | def check_for_checkpoint_cleanup(self: Task, *, tenant_id: str) -> None: function cleanup_checkpoint_task (line 1063) | def cleanup_checkpoint_task( function check_for_index_attempt_cleanup (line 1090) | def check_for_index_attempt_cleanup(self: Task, *, tenant_id: str) -> None: function cleanup_index_attempt_task (line 1152) | def cleanup_index_attempt_task( class DocumentProcessingBatch (line 1175) | class DocumentProcessingBatch(BaseModel): function _check_failure_threshold (line 1185) | def _check_failure_threshold( function _resolve_indexing_document_errors (line 1213) | def _resolve_indexing_document_errors( function docprocessing_task (line 1259) | def docprocessing_task( function _check_chunk_usage_limit (line 1282) | def _check_chunk_usage_limit(tenant_id: str) -> None: function _docprocessing_task (line 1302) | def _docprocessing_task( FILE: backend/onyx/background/celery/tasks/docprocessing/utils.py class IndexingCallbackBase (line 31) | class IndexingCallbackBase(IndexingHeartbeatInterface): method __init__ (line 34) | def __init__( method should_stop (line 58) | def should_stop(self) -> bool: method progress (line 79) | def progress(self, tag: str, amount: int) -> None: # noqa: ARG002 class IndexingCallback (line 124) | class IndexingCallback(IndexingHeartbeatInterface): method __init__ (line 125) | def __init__( method should_stop (line 131) | def should_stop(self) -> bool: method progress (line 137) | def progress(self, tag: str, amount: int) -> None: function is_in_repeated_error_state (line 146) | def is_in_repeated_error_state( function should_index (line 171) | def should_index( FILE: backend/onyx/background/celery/tasks/evals/tasks.py function eval_run_task (line 28) | def eval_run_task( function scheduled_eval_task (line 51) | def scheduled_eval_task(self: Task, **kwargs: Any) -> None: # noqa: ARG001 FILE: backend/onyx/background/celery/tasks/hierarchyfetching/tasks.py function _connector_supports_hierarchy_fetching (line 60) | def _connector_supports_hierarchy_fetching( function _is_hierarchy_fetching_due (line 80) | def _is_hierarchy_fetching_due(cc_pair: ConnectorCredentialPair) -> bool: function _try_creating_hierarchy_fetching_task (line 104) | def _try_creating_hierarchy_fetching_task( function check_for_hierarchy_fetching (line 172) | def check_for_hierarchy_fetching(self: Task, *, tenant_id: str) -> int |... function _run_hierarchy_extraction (line 250) | def _run_hierarchy_extraction( function connector_hierarchy_fetching_task (line 355) | def connector_hierarchy_fetching_task( FILE: backend/onyx/background/celery/tasks/llm_model_update/tasks.py function check_for_auto_llm_updates (line 20) | def check_for_auto_llm_updates( FILE: backend/onyx/background/celery/tasks/models.py class DocProcessingContext (line 6) | class DocProcessingContext(BaseModel): class IndexingWatchdogTerminalStatus (line 13) | class IndexingWatchdogTerminalStatus(str, Enum): method code (line 59) | def code(self) -> int: method from_code (line 77) | def from_code(cls, code: int) -> "IndexingWatchdogTerminalStatus": class SimpleJobResult (line 98) | class SimpleJobResult: method __init__ (line 101) | def __init__(self) -> None: FILE: backend/onyx/background/celery/tasks/monitoring/tasks.py function _mark_metric_as_emitted (line 74) | def _mark_metric_as_emitted(redis_std: Redis, key: str) -> None: function _has_metric_been_emitted (line 79) | def _has_metric_been_emitted(redis_std: Redis, key: str) -> bool: class Metric (line 84) | class Metric(BaseModel): method log (line 92) | def log(self) -> None: method emit (line 101) | def emit(self, tenant_id: str) -> None: function _collect_queue_metrics (line 144) | def _collect_queue_metrics(redis_celery: Redis) -> list[Metric]: function _build_connector_start_latency_metric (line 183) | def _build_connector_start_latency_metric( function _build_connector_final_metrics (line 242) | def _build_connector_final_metrics( function _collect_connector_metrics (line 333) | def _collect_connector_metrics(db_session: Session, redis_std: Redis) ->... function _collect_sync_metrics (line 432) | def _collect_sync_metrics(db_session: Session, redis_std: Redis) -> list... function build_job_id (line 653) | def build_job_id( function monitor_background_processes (line 676) | def monitor_background_processes(self: Task, *, tenant_id: str) -> None: function cloud_check_alembic (line 741) | def cloud_check_alembic() -> bool | None: function cloud_monitor_celery_queues (line 873) | def cloud_monitor_celery_queues( function monitor_celery_queues (line 880) | def monitor_celery_queues(self: Task, *, tenant_id: str) -> None: # noq... function monitor_celery_queues_helper (line 884) | def monitor_celery_queues_helper( function _get_cmdline_for_process (line 974) | def _get_cmdline_for_process(process: psutil.Process) -> str | None: function monitor_process_memory (line 989) | def monitor_process_memory(self: Task, *, tenant_id: str) -> None: # no... function cloud_monitor_celery_pidbox (line 1062) | def cloud_monitor_celery_pidbox( FILE: backend/onyx/background/celery/tasks/opensearch_migration/tasks.py function is_continuation_token_done_for_all_slices (line 60) | def is_continuation_token_done_for_all_slices( function migrate_chunks_from_vespa_to_opensearch_task (line 85) | def migrate_chunks_from_vespa_to_opensearch_task( FILE: backend/onyx/background/celery/tasks/opensearch_migration/transformer.py function _extract_content_vector (line 71) | def _extract_content_vector(embeddings: Any) -> list[float]: function _extract_title_vector (line 116) | def _extract_title_vector(title_embedding: Any | None) -> list[float] | ... function _transform_vespa_document_sets_to_opensearch_document_sets (line 163) | def _transform_vespa_document_sets_to_opensearch_document_sets( function _transform_vespa_acl_to_opensearch_acl (line 171) | def _transform_vespa_acl_to_opensearch_acl( function transform_vespa_chunks_to_opensearch_chunks (line 183) | def transform_vespa_chunks_to_opensearch_chunks( FILE: backend/onyx/background/celery/tasks/periodic/tasks.py function kombu_message_cleanup_task (line 27) | def kombu_message_cleanup_task(self: Any, tenant_id: str) -> int: # noq... function kombu_message_cleanup_task_helper (line 66) | def kombu_message_cleanup_task_helper(ctx: dict, db_session: Session) ->... FILE: backend/onyx/background/celery/tasks/pruning/tasks.py function _get_pruning_block_expiration (line 86) | def _get_pruning_block_expiration() -> int: function _get_fence_validation_block_expiration (line 104) | def _get_fence_validation_block_expiration() -> int: class PruneCallback (line 122) | class PruneCallback(IndexingCallbackBase): method progress (line 123) | def progress(self, tag: str, amount: int) -> None: function _resolve_and_update_document_parents (line 128) | def _resolve_and_update_document_parents( function _is_pruning_due (line 162) | def _is_pruning_due(cc_pair: ConnectorCredentialPair) -> bool: function check_for_pruning (line 204) | def check_for_pruning(self: Task, *, tenant_id: str) -> bool | None: function try_creating_prune_generator_task (line 305) | def try_creating_prune_generator_task( function connector_pruning_generator_task (line 447) | def connector_pruning_generator_task( function monitor_ccpair_pruning_taskset (line 731) | def monitor_ccpair_pruning_taskset( function validate_pruning_fences (line 782) | def validate_pruning_fences( function validate_pruning_fence (line 830) | def validate_pruning_fence( FILE: backend/onyx/background/celery/tasks/shared/RetryDocumentIndex.py class RetryDocumentIndex (line 12) | class RetryDocumentIndex: method __init__ (line 24) | def __init__(self, index: DocumentIndex): method delete_single (line 32) | def delete_single( method update_single (line 50) | def update_single( FILE: backend/onyx/background/celery/tasks/shared/tasks.py class OnyxCeleryTaskCompletionStatus (line 42) | class OnyxCeleryTaskCompletionStatus(str, Enum): function document_by_cc_pair_cleanup_task (line 67) | def document_by_cc_pair_cleanup_task( function celery_beat_heartbeat (line 273) | def celery_beat_heartbeat(self: Task, *, tenant_id: str) -> None: # noq... FILE: backend/onyx/background/celery/tasks/user_file_processing/tasks.py function _as_uuid (line 65) | def _as_uuid(value: str | UUID) -> UUID: function _user_file_lock_key (line 70) | def _user_file_lock_key(user_file_id: str | UUID) -> str: function _user_file_queued_key (line 74) | def _user_file_queued_key(user_file_id: str | UUID) -> str: function user_file_project_sync_lock_key (line 85) | def user_file_project_sync_lock_key(user_file_id: str | UUID) -> str: function _user_file_project_sync_queued_key (line 89) | def _user_file_project_sync_queued_key(user_file_id: str | UUID) -> str: function _user_file_delete_lock_key (line 93) | def _user_file_delete_lock_key(user_file_id: str | UUID) -> str: function _user_file_delete_queued_key (line 97) | def _user_file_delete_queued_key(user_file_id: str | UUID) -> str: function get_user_file_project_sync_queue_depth (line 108) | def get_user_file_project_sync_queue_depth(celery_app: Celery) -> int: function enqueue_user_file_project_sync_task (line 115) | def enqueue_user_file_project_sync_task( function _visit_chunks (line 153) | def _visit_chunks( function _get_document_chunk_count (line 176) | def _get_document_chunk_count( function check_user_file_processing (line 204) | def check_user_file_processing(self: Task, *, tenant_id: str) -> None: function _process_user_file_without_vector_db (line 307) | def _process_user_file_without_vector_db( function _process_user_file_with_indexing (line 357) | def _process_user_file_with_indexing( function process_user_file_impl (line 428) | def process_user_file_impl( function process_single_user_file (line 545) | def process_single_user_file( function check_for_user_file_delete (line 562) | def check_for_user_file_delete(self: Task, *, tenant_id: str) -> None: function delete_user_file_impl (line 654) | def delete_user_file_impl( function process_single_user_file_delete (line 755) | def process_single_user_file_delete( function check_for_user_file_project_sync (line 772) | def check_for_user_file_project_sync(self: Task, *, tenant_id: str) -> N... function project_sync_user_file_impl (line 834) | def project_sync_user_file_impl( function process_single_user_file_project_sync (line 942) | def process_single_user_file_project_sync( FILE: backend/onyx/background/celery/tasks/vespa/document_sync.py function is_document_sync_fenced (line 30) | def is_document_sync_fenced(r: Redis) -> bool: function get_document_sync_payload (line 35) | def get_document_sync_payload(r: Redis) -> int | None: function get_document_sync_remaining (line 43) | def get_document_sync_remaining(r: Redis) -> int: function set_document_sync_fence (line 48) | def set_document_sync_fence(r: Redis, payload: int | None) -> None: function delete_document_sync_taskset (line 59) | def delete_document_sync_taskset(r: Redis) -> None: function reset_document_sync (line 64) | def reset_document_sync(r: Redis) -> None: function generate_document_sync_tasks (line 71) | def generate_document_sync_tasks( function try_generate_stale_document_sync_tasks (line 135) | def try_generate_stale_document_sync_tasks( FILE: backend/onyx/background/celery/tasks/vespa/tasks.py function check_for_vespa_sync_task (line 82) | def check_for_vespa_sync_task(self: Task, *, tenant_id: str) -> bool | N... function try_generate_document_set_sync_tasks (line 211) | def try_generate_document_set_sync_tasks( function try_generate_user_group_sync_tasks (line 287) | def try_generate_user_group_sync_tasks( function monitor_document_sync_taskset (line 363) | def monitor_document_sync_taskset(r: Redis) -> None: function monitor_document_set_taskset (line 377) | def monitor_document_set_taskset( function vespa_metadata_sync_task (line 456) | def vespa_metadata_sync_task(self: Task, document_id: str, *, tenant_id:... FILE: backend/onyx/background/celery/versioned_apps/client.py function get_app (line 15) | def get_app() -> Celery: FILE: backend/onyx/background/celery/versioned_apps/docfetching.py function get_app (line 12) | def get_app() -> Celery: FILE: backend/onyx/background/celery/versioned_apps/docprocessing.py function get_app (line 12) | def get_app() -> Celery: FILE: backend/onyx/background/celery/versioned_apps/user_file_processing.py function get_app (line 10) | def get_app() -> Celery: FILE: backend/onyx/background/error_logging.py function emit_background_error (line 7) | def emit_background_error( FILE: backend/onyx/background/indexing/checkpointing_utils.py function _build_checkpoint_pointer (line 27) | def _build_checkpoint_pointer(index_attempt_id: int) -> str: function save_checkpoint (line 31) | def save_checkpoint( function load_checkpoint (line 55) | def load_checkpoint( function get_latest_valid_checkpoint (line 68) | def get_latest_valid_checkpoint( function get_index_attempts_with_old_checkpoints (line 166) | def get_index_attempts_with_old_checkpoints( function cleanup_checkpoint (line 195) | def cleanup_checkpoint(db_session: Session, index_attempt_id: int) -> None: function check_checkpoint_size (line 214) | def check_checkpoint_size(checkpoint: ConnectorCheckpoint) -> None: FILE: backend/onyx/background/indexing/dask_utils.py class ResourceLogger (line 12) | class ResourceLogger(WorkerPlugin): method __init__ (line 13) | def __init__(self, log_interval: int = 60 * 5): method setup (line 16) | def setup(self, worker: Worker) -> None: method log_resources (line 21) | async def log_resources(self) -> None: FILE: backend/onyx/background/indexing/index_attempt_utils.py function get_old_index_attempts (line 16) | def get_old_index_attempts( function cleanup_index_attempts (line 54) | def cleanup_index_attempts(db_session: Session, index_attempt_ids: list[... FILE: backend/onyx/background/indexing/job_client.py class SimpleJobException (line 28) | class SimpleJobException(Exception): method __init__ (line 31) | def __init__(self, *args: Any, **kwargs: Any) -> None: function _initializer (line 46) | def _initializer( function _run_in_process (line 101) | def _run_in_process( class SimpleJob (line 111) | class SimpleJob: method cancel (line 119) | def cancel(self) -> bool: method release (line 122) | def release(self) -> bool: method status (line 129) | def status(self) -> JobStatusType: method done (line 141) | def done(self) -> bool: method exception (line 148) | def exception(self) -> str: class SimpleJobClient (line 161) | class SimpleJobClient: method __init__ (line 164) | def __init__(self, n_workers: int = 1) -> None: method _cleanup_completed_jobs (line 169) | def _cleanup_completed_jobs(self) -> None: method submit (line 177) | def submit( FILE: backend/onyx/background/indexing/memory_tracer.py class MemoryTracer (line 10) | class MemoryTracer: method __init__ (line 11) | def __init__(self, interval: int = 0, num_print_entries: int = 5): method start (line 19) | def start(self) -> None: method stop (line 26) | def stop(self) -> None: method _take_snapshot (line 33) | def _take_snapshot(self) -> None: method _log_diff (line 53) | def _log_diff( method increment_and_maybe_trace (line 63) | def increment_and_maybe_trace(self) -> None: method log_final_diff (line 77) | def log_final_diff(self) -> None: FILE: backend/onyx/background/indexing/models.py class IndexAttemptErrorPydantic (line 8) | class IndexAttemptErrorPydantic(BaseModel): method from_model (line 27) | def from_model(cls, model: IndexAttemptError) -> "IndexAttemptErrorPyd... FILE: backend/onyx/background/indexing/run_docfetching.py function _get_connector_runner (line 84) | def _get_connector_runner( function strip_null_characters (line 155) | def strip_null_characters(doc_batch: list[Document]) -> list[Document]: function _check_connector_and_attempt_status (line 167) | def _check_connector_and_attempt_status( function _check_failure_threshold (line 211) | def _check_failure_threshold( function run_docfetching_entrypoint (line 239) | def run_docfetching_entrypoint( function connector_document_extraction (line 296) | def connector_document_extraction( function reissue_old_batches (line 910) | def reissue_old_batches( FILE: backend/onyx/background/periodic_poller.py class _PeriodicTaskDef (line 39) | class _PeriodicTaskDef: function _run_auto_llm_update (line 47) | def _run_auto_llm_update() -> None: function _run_cache_cleanup (line 62) | def _run_cache_cleanup() -> None: function _run_scheduled_eval (line 68) | def _run_scheduled_eval() -> None: function _build_periodic_tasks (line 112) | def _build_periodic_tasks() -> list[_PeriodicTaskDef]: function _try_claim_task (line 155) | def _try_claim_task(task_def: _PeriodicTaskDef) -> bool: function _try_run_periodic_task (line 197) | def _try_run_periodic_task(task_def: _PeriodicTaskDef) -> None: function _run_drain_loops (line 220) | def _run_drain_loops(tenant_id: str) -> None: function recover_stuck_user_files (line 235) | def recover_stuck_user_files(tenant_id: str) -> None: function _poller_loop (line 255) | def _poller_loop(tenant_id: str) -> None: function start_periodic_poller (line 282) | def start_periodic_poller(tenant_id: str) -> None: function stop_periodic_poller (line 296) | def stop_periodic_poller() -> None: FILE: backend/onyx/background/task_utils.py function construct_query_history_report_name (line 34) | def construct_query_history_report_name( function extract_task_id_from_query_history_report_name (line 40) | def extract_task_id_from_query_history_report_name(name: str) -> str: function _claim_next_processing_file (line 54) | def _claim_next_processing_file(db_session: Session) -> UUID | None: function _claim_next_deleting_file (line 78) | def _claim_next_deleting_file( function _claim_next_sync_file (line 102) | def _claim_next_sync_file( function drain_processing_loop (line 139) | def drain_processing_loop(tenant_id: str) -> None: function drain_delete_loop (line 161) | def drain_delete_loop(tenant_id: str) -> None: function drain_project_sync_loop (line 185) | def drain_project_sync_loop(tenant_id: str) -> None: FILE: backend/onyx/cache/factory.py function _build_redis_backend (line 8) | def _build_redis_backend(tenant_id: str) -> CacheBackend: function _build_postgres_backend (line 15) | def _build_postgres_backend(tenant_id: str) -> CacheBackend: function get_cache_backend (line 27) | def get_cache_backend(*, tenant_id: str | None = None) -> CacheBackend: function get_shared_cache_backend (line 46) | def get_shared_cache_backend() -> CacheBackend: FILE: backend/onyx/cache/interface.py class CacheBackendType (line 19) | class CacheBackendType(str, Enum): class CacheLock (line 24) | class CacheLock(abc.ABC): method acquire (line 28) | def acquire( method release (line 36) | def release(self) -> None: method owned (line 40) | def owned(self) -> bool: method __enter__ (line 43) | def __enter__(self) -> "CacheLock": method __exit__ (line 48) | def __exit__(self, *args: object) -> None: class CacheBackend (line 52) | class CacheBackend(abc.ABC): method get (line 62) | def get(self, key: str) -> bytes | None: method set (line 66) | def set( method delete (line 75) | def delete(self, key: str) -> None: method exists (line 79) | def exists(self, key: str) -> bool: method expire (line 85) | def expire(self, key: str, seconds: int) -> None: method ttl (line 89) | def ttl(self, key: str) -> int: method lock (line 100) | def lock(self, name: str, timeout: float | None = None) -> CacheLock: method rpush (line 106) | def rpush(self, key: str, value: str | bytes) -> None: method blpop (line 110) | def blpop(self, keys: list[str], timeout: int = 0) -> tuple[bytes, byt... FILE: backend/onyx/cache/postgres_backend.py function _list_item_key (line 40) | def _list_item_key(key: str) -> str: function _to_bytes (line 47) | def _to_bytes(value: str | bytes | int | float) -> bytes: class PostgresCacheLock (line 58) | class PostgresCacheLock(CacheLock): method __init__ (line 69) | def __init__(self, lock_id: int, timeout: float | None, tenant_id: str... method acquire (line 77) | def acquire( method release (line 104) | def release(self) -> None: method owned (line 113) | def owned(self) -> bool: method _close_session (line 116) | def _close_session(self) -> None: method _try_lock (line 124) | def _try_lock(self) -> bool: class PostgresCacheBackend (line 140) | class PostgresCacheBackend(CacheBackend): method __init__ (line 148) | def __init__(self, tenant_id: str) -> None: method get (line 153) | def get(self, key: str) -> bytes | None: method set (line 166) | def set( method delete (line 192) | def delete(self, key: str) -> None: method exists (line 199) | def exists(self, key: str) -> bool: method expire (line 218) | def expire(self, key: str, seconds: int) -> None: method ttl (line 229) | def ttl(self, key: str) -> int: method lock (line 247) | def lock(self, name: str, timeout: float | None = None) -> CacheLock: method rpush (line 254) | def rpush(self, key: str, value: str | bytes) -> None: method blpop (line 257) | def blpop(self, keys: list[str], timeout: int = 0) -> tuple[bytes, byt... method _lock_id_for (line 298) | def _lock_id_for(self, name: str) -> int: function cleanup_expired_cache_entries (line 311) | def cleanup_expired_cache_entries() -> None: FILE: backend/onyx/cache/redis_backend.py class RedisCacheLock (line 10) | class RedisCacheLock(CacheLock): method __init__ (line 13) | def __init__(self, lock: RedisLock) -> None: method acquire (line 16) | def acquire( method release (line 28) | def release(self) -> None: method owned (line 31) | def owned(self) -> bool: class RedisCacheBackend (line 35) | class RedisCacheBackend(CacheBackend): method __init__ (line 43) | def __init__(self, redis_client: Redis) -> None: method get (line 48) | def get(self, key: str) -> bytes | None: method set (line 56) | def set( method delete (line 64) | def delete(self, key: str) -> None: method exists (line 67) | def exists(self, key: str) -> bool: method expire (line 72) | def expire(self, key: str, seconds: int) -> None: method ttl (line 75) | def ttl(self, key: str) -> int: method lock (line 80) | def lock(self, name: str, timeout: float | None = None) -> CacheLock: method rpush (line 85) | def rpush(self, key: str, value: str | bytes) -> None: method blpop (line 88) | def blpop(self, keys: list[str], timeout: int = 0) -> tuple[bytes, byt... FILE: backend/onyx/chat/chat_processing_checker.py function _get_fence_key (line 10) | def _get_fence_key(chat_session_id: UUID) -> str: function set_processing_status (line 23) | def set_processing_status( function is_chat_session_processing (line 42) | def is_chat_session_processing(chat_session_id: UUID, cache: CacheBacken... FILE: backend/onyx/chat/chat_state.py class ChatStateContainer (line 33) | class ChatStateContainer: method __init__ (line 44) | def __init__(self) -> None: method add_tool_call (line 64) | def add_tool_call(self, tool_call: ToolCallInfo) -> None: method set_reasoning_tokens (line 69) | def set_reasoning_tokens(self, reasoning: str | None) -> None: method set_answer_tokens (line 74) | def set_answer_tokens(self, answer: str | None) -> None: method set_citation_mapping (line 79) | def set_citation_mapping(self, citation_to_doc: CitationMapping) -> None: method set_is_clarification (line 84) | def set_is_clarification(self, is_clarification: bool) -> None: method get_answer_tokens (line 89) | def get_answer_tokens(self) -> str | None: method get_reasoning_tokens (line 94) | def get_reasoning_tokens(self) -> str | None: method get_tool_calls (line 99) | def get_tool_calls(self) -> list[ToolCallInfo]: method get_citation_to_doc (line 104) | def get_citation_to_doc(self) -> CitationMapping: method get_is_clarification (line 109) | def get_is_clarification(self) -> bool: method set_pre_answer_processing_time (line 114) | def set_pre_answer_processing_time(self, duration: float | None) -> None: method get_pre_answer_processing_time (line 119) | def get_pre_answer_processing_time(self) -> float | None: method create_search_doc_key (line 125) | def create_search_doc_key( method add_search_docs (line 141) | def add_search_docs( method get_all_search_docs (line 157) | def get_all_search_docs(self) -> dict[SearchDocKey, SearchDoc]: method add_emitted_citation (line 162) | def add_emitted_citation(self, citation_num: int) -> None: method get_emitted_citations (line 167) | def get_emitted_citations(self) -> set[int]: class AvailableFiles (line 173) | class AvailableFiles(BaseModel): class ChatTurnSetup (line 183) | class ChatTurnSetup: FILE: backend/onyx/chat/chat_utils.py class FileContextResult (line 55) | class FileContextResult(BaseModel): function build_file_context (line 62) | def build_file_context( function create_chat_session_from_request (line 109) | def create_chat_session_from_request( function create_chat_history_chain (line 144) | def create_chat_history_chain( function reorganize_citations (line 205) | def reorganize_citations( function build_citation_map_from_infos (line 262) | def build_citation_map_from_infos( function build_citation_map_from_numbers (line 286) | def build_citation_map_from_numbers( function extract_headers (line 301) | def extract_headers( function process_kg_commands (line 329) | def process_kg_commands( function _get_or_extract_plaintext (line 349) | def _get_or_extract_plaintext( function load_chat_file (line 377) | def load_chat_file( function load_all_chat_files (line 438) | def load_all_chat_files( function convert_chat_history_basic (line 460) | def convert_chat_history_basic( function _build_tool_call_response_history_message (line 525) | def _build_tool_call_response_history_message( function convert_chat_history (line 559) | def convert_chat_history( function get_custom_agent_prompt (line 755) | def get_custom_agent_prompt(persona: Persona, chat_session: ChatSession)... function is_last_assistant_message_clarification (line 786) | def is_last_assistant_message_clarification(chat_history: list[ChatMessa... function create_tool_call_failure_messages (line 804) | def create_tool_call_failure_messages( FILE: backend/onyx/chat/citation_processor.py class CitationMode (line 27) | class CitationMode(Enum): function in_code_block (line 58) | def in_code_block(llm_text: str) -> bool: class DynamicCitationProcessor (line 69) | class DynamicCitationProcessor: method __init__ (line 148) | def __init__( method update_citation_mapping (line 203) | def update_citation_mapping( method process_token (line 236) | def process_token( method _process_citation (line 414) | def _process_citation( method get_cited_documents (line 519) | def get_cited_documents(self) -> list[SearchDoc]: method get_cited_document_ids (line 534) | def get_cited_document_ids(self) -> list[str]: method get_seen_citations (line 549) | def get_seen_citations(self) -> CitationMapping: method num_cited_documents (line 570) | def num_cited_documents(self) -> int: method reset_recent_citations (line 584) | def reset_recent_citations(self) -> None: method get_next_citation_number (line 601) | def get_next_citation_number(self) -> int: FILE: backend/onyx/chat/citation_utils.py function update_citation_processor_from_tool_response (line 10) | def update_citation_processor_from_tool_response( function extract_citation_order_from_text (line 56) | def extract_citation_order_from_text(text: str) -> list[int]: function collapse_citations (line 100) | def collapse_citations( FILE: backend/onyx/chat/compression.py class CompressionResult (line 42) | class CompressionResult(BaseModel): class CompressionParams (line 50) | class CompressionParams(BaseModel): class SummaryContent (line 57) | class SummaryContent(NamedTuple): function calculate_total_history_tokens (line 64) | def calculate_total_history_tokens(chat_history: list[ChatMessage]) -> int: function get_compression_params (line 77) | def get_compression_params( function find_summary_for_branch (line 111) | def find_summary_for_branch( function get_messages_to_summarize (line 153) | def get_messages_to_summarize( function _build_llm_messages_for_summarization (line 210) | def _build_llm_messages_for_summarization( function generate_summary (line 253) | def generate_summary( function compress_chat_history (line 329) | def compress_chat_history( FILE: backend/onyx/chat/emitter.py class Emitter (line 8) | class Emitter: method __init__ (line 22) | def __init__( method emit (line 32) | def emit(self, packet: Packet) -> None: FILE: backend/onyx/chat/llm_loop.py class EmptyLLMResponseError (line 77) | class EmptyLLMResponseError(RuntimeError): method __init__ (line 80) | def __init__( function _build_empty_llm_response_error (line 99) | def _build_empty_llm_response_error( function _looks_like_xml_tool_call_payload (line 141) | def _looks_like_xml_tool_call_payload(text: str | None) -> bool: function _try_fallback_tool_extraction (line 153) | def _try_fallback_tool_extraction( function _build_context_file_citation_mapping (line 251) | def _build_context_file_citation_mapping( function _build_project_message (line 288) | def _build_project_message( function construct_message_history (line 316) | def construct_message_history( function _drop_orphaned_tool_call_responses (line 531) | def _drop_orphaned_tool_call_responses( function _create_file_tool_metadata_message (line 565) | def _create_file_tool_metadata_message( function _create_context_files_message (line 592) | def _create_context_files_message( function run_llm_loop (line 627) | def run_llm_loop( FILE: backend/onyx/chat/llm_step.py class _XmlToolCallContentFilter (line 77) | class _XmlToolCallContentFilter: method __init__ (line 80) | def __init__(self) -> None: method process (line 84) | def process(self, content: str) -> str: method flush (line 127) | def flush(self) -> str: function _matching_open_marker_prefix_len (line 139) | def _matching_open_marker_prefix_len(text: str) -> int: function _is_valid_function_calls_open_follower (line 152) | def _is_valid_function_calls_open_follower(char: str | None) -> bool: function _find_function_calls_open_marker (line 156) | def _find_function_calls_open_marker(text_lower: str) -> int: function _try_parse_json_string (line 172) | def _try_parse_json_string(value: Any) -> Any: function _parse_tool_args_to_dict (line 198) | def _parse_tool_args_to_dict(raw_args: Any) -> dict[str, Any]: function _format_message_history_for_logging (line 251) | def _format_message_history_for_logging( function _update_tool_call_with_delta (line 328) | def _update_tool_call_with_delta( function _extract_tool_call_kickoffs (line 355) | def _extract_tool_call_kickoffs( function extract_tool_calls_from_response_text (line 396) | def extract_tool_calls_from_response_text( function _extract_xml_tool_calls_from_response_text (line 491) | def _extract_xml_tool_calls_from_response_text( function _extract_xml_attribute (line 531) | def _extract_xml_attribute(attrs: str, attr_name: str) -> str | None: function _parse_xml_parameter_value (line 543) | def _parse_xml_parameter_value(raw_value: str, string_attr: str | None) ... function _resolve_tool_arguments (line 556) | def _resolve_tool_arguments(obj: dict[str, Any]) -> dict[str, Any] | None: function _try_match_json_to_tool (line 574) | def _try_match_json_to_tool( function _is_nested_arguments_duplicate (line 637) | def _is_nested_arguments_duplicate( function _extract_nested_arguments_obj (line 647) | def _extract_nested_arguments_obj( function _build_structured_assistant_message (line 673) | def _build_structured_assistant_message(msg: ChatMessageSimple) -> Assis... function _build_structured_tool_response_message (line 695) | def _build_structured_tool_response_message(msg: ChatMessageSimple) -> T... class _HistoryMessageFormatter (line 708) | class _HistoryMessageFormatter: method format_assistant_message (line 709) | def format_assistant_message(self, msg: ChatMessageSimple) -> Assistan... method format_tool_response_message (line 712) | def format_tool_response_message( class _DefaultHistoryMessageFormatter (line 718) | class _DefaultHistoryMessageFormatter(_HistoryMessageFormatter): method format_assistant_message (line 719) | def format_assistant_message(self, msg: ChatMessageSimple) -> Assistan... method format_tool_response_message (line 722) | def format_tool_response_message(self, msg: ChatMessageSimple) -> Tool... class _OllamaHistoryMessageFormatter (line 726) | class _OllamaHistoryMessageFormatter(_HistoryMessageFormatter): method format_assistant_message (line 727) | def format_assistant_message(self, msg: ChatMessageSimple) -> Assistan... method format_tool_response_message (line 748) | def format_tool_response_message(self, msg: ChatMessageSimple) -> User... function _get_history_message_formatter (line 764) | def _get_history_message_formatter(llm_config: LLMConfig) -> _HistoryMes... function translate_history_to_llm_format (line 771) | def translate_history_to_llm_format( function _increment_turns (line 901) | def _increment_turns( function _delta_has_action (line 910) | def _delta_has_action(delta: Delta) -> bool: function run_llm_step_pkt_generator (line 914) | def run_llm_step_pkt_generator( function run_llm_step (line 1342) | def run_llm_step( FILE: backend/onyx/chat/models.py class StreamingError (line 20) | class StreamingError(BaseModel): class CustomToolResponse (line 30) | class CustomToolResponse(BaseModel): class CreateChatSessionID (line 35) | class CreateChatSessionID(BaseModel): class ToolCallResponse (line 50) | class ToolCallResponse(BaseModel): class ChatBasicResponse (line 62) | class ChatBasicResponse(BaseModel): class ChatFullResponse (line 74) | class ChatFullResponse(BaseModel): class ChatLoadedFile (line 96) | class ChatLoadedFile(InMemoryChatFile): class ToolCallSimple (line 101) | class ToolCallSimple(BaseModel): class ChatMessageSimple (line 114) | class ChatMessageSimple(BaseModel): class ContextFileMetadata (line 135) | class ContextFileMetadata(BaseModel): class FileToolMetadata (line 143) | class FileToolMetadata(BaseModel): class ChatHistoryResult (line 156) | class ChatHistoryResult(BaseModel): class ExtractedContextFiles (line 170) | class ExtractedContextFiles(BaseModel): class SearchParams (line 184) | class SearchParams(BaseModel): class LlmStepResult (line 192) | class LlmStepResult(BaseModel): FILE: backend/onyx/chat/process_message.py function _collect_available_file_ids (line 133) | def _collect_available_file_ids( function _should_enable_slack_search (line 171) | def _should_enable_slack_search( function _convert_loaded_files_to_chat_files (line 187) | def _convert_loaded_files_to_chat_files( function resolve_context_user_files (line 210) | def resolve_context_user_files( function _empty_extracted_context_files (line 237) | def _empty_extracted_context_files() -> ExtractedContextFiles: function _extract_text_from_in_memory_file (line 248) | def _extract_text_from_in_memory_file(f: InMemoryChatFile) -> str | None: function extract_context_files (line 269) | def extract_context_files( function _build_tool_metadata (line 406) | def _build_tool_metadata(user_file: UserFile) -> FileToolMetadata: function determine_search_params (line 420) | def determine_search_params( function _resolve_query_processing_hook_result (line 463) | def _resolve_query_processing_hook_result( function build_chat_turn (line 485) | def build_chat_turn( function _run_models (line 943) | def _run_models( function _stream_chat_turn (line 1276) | def _stream_chat_turn( function handle_stream_message_objects (line 1443) | def handle_stream_message_objects( function _build_model_display_name (line 1471) | def _build_model_display_name(override: LLMOverride | None) -> str: function handle_multi_model_stream (line 1478) | def handle_multi_model_stream( function llm_loop_completion_handle (line 1531) | def llm_loop_completion_handle( function _find_markdown_link_end (line 1612) | def _find_markdown_link_end(text: str, destination_start: int) -> int | ... function remove_answer_citations (line 1634) | def remove_answer_citations(answer: str) -> str: function gather_stream (line 1652) | def gather_stream( function gather_stream_full (line 1703) | def gather_stream_full( FILE: backend/onyx/chat/prompt_utils.py function get_default_base_system_prompt (line 47) | def get_default_base_system_prompt(db_session: Session) -> str: function calculate_reserved_tokens (line 57) | def calculate_reserved_tokens( function build_reminder_message (line 126) | def build_reminder_message( function _build_user_information_section (line 143) | def _build_user_information_section( function build_system_prompt (line 196) | def build_system_prompt( FILE: backend/onyx/chat/save_chat.py function _extract_referenced_file_descriptors (line 27) | def _extract_referenced_file_descriptors( function _create_and_link_tool_calls (line 52) | def _create_and_link_tool_calls( function save_chat_turn (line 166) | def save_chat_turn( FILE: backend/onyx/chat/stop_signal_checker.py function _get_fence_key (line 10) | def _get_fence_key(chat_session_id: UUID) -> str: function set_fence (line 23) | def set_fence(chat_session_id: UUID, cache: CacheBackend, value: bool) -... function is_connected (line 38) | def is_connected(chat_session_id: UUID, cache: CacheBackend) -> bool: function reset_cancel_status (line 51) | def reset_cancel_status(chat_session_id: UUID, cache: CacheBackend) -> N... FILE: backend/onyx/chat/tool_call_args_streaming.py function _get_tool_class (line 15) | def _get_tool_class( function maybe_emit_argument_delta (line 26) | def maybe_emit_argument_delta( FILE: backend/onyx/configs/app_configs.py function get_current_tz_offset (line 657) | def get_current_tz_offset() -> int: FILE: backend/onyx/configs/constants.py class DocumentSource (line 195) | class DocumentSource(str, Enum): class FederatedConnectorSource (line 262) | class FederatedConnectorSource(str, Enum): method to_non_federated_source (line 265) | def to_non_federated_source(self) -> DocumentSource | None: class NotificationType (line 274) | class NotificationType(str, Enum): class BlobType (line 283) | class BlobType(str, Enum): class DocumentIndexType (line 290) | class DocumentIndexType(str, Enum): class AuthType (line 295) | class AuthType(str, Enum): class QueryHistoryType (line 305) | class QueryHistoryType(str, Enum): class SessionType (line 315) | class SessionType(str, Enum): class QAFeedbackType (line 321) | class QAFeedbackType(str, Enum): class SearchFeedbackType (line 327) | class SearchFeedbackType(str, Enum): class MessageType (line 334) | class MessageType(str, Enum): class ChatMessageSimpleType (line 344) | class ChatMessageSimpleType(str, Enum): class TokenRateLimitScope (line 351) | class TokenRateLimitScope(str, Enum): class FileStoreType (line 357) | class FileStoreType(str, Enum): class FileOrigin (line 362) | class FileOrigin(str, Enum): class FileType (line 376) | class FileType(str, Enum): class MilestoneRecordType (line 380) | class MilestoneRecordType(str, Enum): class PostgresAdvisoryLocks (line 394) | class PostgresAdvisoryLocks(Enum): class OnyxCeleryQueues (line 398) | class OnyxCeleryQueues: class OnyxRedisLocks (line 435) | class OnyxRedisLocks: class OnyxRedisSignals (line 496) | class OnyxRedisSignals: class OnyxRedisConstants (line 512) | class OnyxRedisConstants: class OnyxCeleryPriority (line 516) | class OnyxCeleryPriority(int, Enum): class OnyxCeleryTask (line 535) | class OnyxCeleryTask: class OnyxCallTypes (line 646) | class OnyxCallTypes(str, Enum): FILE: backend/onyx/configs/embedding_configs.py class _BaseEmbeddingModel (line 6) | class _BaseEmbeddingModel(BaseModel): class SupportedEmbeddingModel (line 14) | class SupportedEmbeddingModel(BaseModel): FILE: backend/onyx/configs/llm_configs.py function get_image_extraction_and_analysis_enabled (line 5) | def get_image_extraction_and_analysis_enabled() -> bool: function get_search_time_image_analysis_enabled (line 17) | def get_search_time_image_analysis_enabled() -> bool: function get_image_analysis_max_size_mb (line 29) | def get_image_analysis_max_size_mb() -> int: FILE: backend/onyx/connectors/airtable/airtable_connector.py class AirtableClientNotSetUpError (line 62) | class AirtableClientNotSetUpError(PermissionError): method __init__ (line 63) | def __init__(self) -> None: function parse_airtable_url (line 74) | def parse_airtable_url( class AirtableConnector (line 98) | class AirtableConnector(LoadConnector): method __init__ (line 99) | def __init__( method load_credentials (line 147) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method airtable_client (line 152) | def airtable_client(self) -> AirtableApi: method validate_connector_settings (line 157) | def validate_connector_settings(self) -> None: method _get_record_url (line 183) | def _get_record_url( method _extract_field_values (line 215) | def _extract_field_values( method _should_be_metadata (line 330) | def _should_be_metadata(self, field_type: str) -> bool: method _process_field (line 340) | def _process_field( method _process_record (line 398) | def _process_record( method _resolve_base_name (line 496) | def _resolve_base_name(self, base_id: str) -> str | None: method _index_table (line 506) | def _index_table( method load_from_state (line 576) | def load_from_state(self) -> GenerateDocumentsOutput: method _load_all (line 594) | def _load_all(self) -> GenerateDocumentsOutput: FILE: backend/onyx/connectors/asana/asana_api.py class AsanaTask (line 14) | class AsanaTask: method __init__ (line 15) | def __init__( method __str__ (line 33) | def __str__(self) -> str: class AsanaAPI (line 37) | class AsanaAPI: method __init__ (line 38) | def __init__( method get_tasks (line 57) | def get_tasks( method _get_tasks_for_project (line 96) | def _get_tasks_for_project( method _construct_task_text (line 173) | def _construct_task_text(self, data: Dict) -> str: method _fetch_and_add_comments (line 195) | def _fetch_and_add_comments(self, task_gid: str) -> str: method get_user (line 221) | def get_user(self, user_gid: str) -> Dict: method format_date (line 231) | def format_date(self, date_str: str) -> str: method get_time (line 235) | def get_time(self) -> str: FILE: backend/onyx/connectors/asana/connector.py class AsanaConnector (line 20) | class AsanaConnector(LoadConnector, PollConnector): method __init__ (line 21) | def __init__( method load_credentials (line 46) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method poll_source (line 56) | def poll_source( method load_from_state (line 86) | def load_from_state(self) -> GenerateDocumentsOutput: method _message_to_doc (line 90) | def _message_to_doc(self, task: asana_api.AsanaTask) -> Document: FILE: backend/onyx/connectors/axero/connector.py function _get_auth_header (line 35) | def _get_auth_header(api_key: str) -> dict[str, str]: function _rate_limited_request (line 41) | def _rate_limited_request( function _get_entities (line 49) | def _get_entities( function _get_obj_by_id (line 114) | def _get_obj_by_id(obj_id: int, api_key: str, axero_base_url: str) -> dict: class AxeroForum (line 122) | class AxeroForum(BaseModel): function _map_post_to_parent (line 131) | def _map_post_to_parent( function _get_forums (line 174) | def _get_forums( function _translate_forum_to_doc (line 221) | def _translate_forum_to_doc(af: AxeroForum) -> Document: function _translate_content_to_doc (line 234) | def _translate_content_to_doc(content: dict) -> Document: class AxeroConnector (line 257) | class AxeroConnector(PollConnector): method __init__ (line 258) | def __init__( method load_credentials (line 277) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method poll_source (line 287) | def poll_source( FILE: backend/onyx/connectors/bitbucket/connector.py class BitbucketConnectorCheckpoint (line 44) | class BitbucketConnectorCheckpoint(ConnectorCheckpoint): class BitbucketConnector (line 58) | class BitbucketConnector( method __init__ (line 71) | def __init__( method load_credentials (line 91) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _client (line 102) | def _client(self) -> httpx.Client: method _iter_pull_requests_for_repo (line 108) | def _iter_pull_requests_for_repo( method _build_params (line 125) | def _build_params( method _iter_target_repositories (line 158) | def _iter_target_repositories(self, client: httpx.Client) -> Iterator[... method load_from_checkpoint (line 183) | def load_from_checkpoint( method build_dummy_checkpoint (line 259) | def build_dummy_checkpoint(self) -> BitbucketConnectorCheckpoint: method validate_checkpoint_json (line 264) | def validate_checkpoint_json( method retrieve_all_slim_docs_perm_sync (line 270) | def retrieve_all_slim_docs_perm_sync( method validate_connector_settings (line 304) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/bitbucket/utils.py class BitbucketRetriableError (line 81) | class BitbucketRetriableError(Exception): class BitbucketNonRetriableError (line 85) | class BitbucketNonRetriableError(Exception): function bitbucket_get (line 97) | def bitbucket_get( function build_auth_client (line 133) | def build_auth_client(email: str, api_token: str) -> httpx.Client: function paginate (line 138) | def paginate( function list_repositories (line 171) | def list_repositories( function map_pr_to_document (line 187) | def map_pr_to_document(pr: dict[str, Any], workspace: str, repo_slug: st... function _get_user_name (line 293) | def _get_user_name(user: dict[str, Any]) -> str: FILE: backend/onyx/connectors/blob/connector.py class BlobStorageConnector (line 55) | class BlobStorageConnector(LoadConnector, PollConnector): method __init__ (line 56) | def __init__( method set_allow_images (line 74) | def set_allow_images(self, allow_images: bool) -> None: method _detect_bucket_region (line 79) | def _detect_bucket_region(self) -> None: method load_credentials (line 101) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _download_object (line 241) | def _download_object(self, key: str) -> bytes | None: method _read_stream_with_limit (line 255) | def _read_stream_with_limit(self, body: Any, key: str) -> bytes | None: method _get_blob_link (line 291) | def _get_blob_link(self, key: str) -> str: method _extract_size_bytes (line 326) | def _extract_size_bytes(obj: Mapping[str, Any]) -> int | None: method _yield_blob_objects (line 370) | def _yield_blob_objects( method load_from_state (line 512) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 519) | def poll_source( method validate_connector_settings (line 533) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/bookstack/client.py class BookStackClientRequestFailedError (line 6) | class BookStackClientRequestFailedError(ConnectionError): method __init__ (line 7) | def __init__(self, status: int, error: str) -> None: class BookStackApiClient (line 17) | class BookStackApiClient: method __init__ (line 18) | def __init__( method get (line 28) | def get(self, endpoint: str, params: dict[str, str]) -> dict[str, Any]: method _build_headers (line 47) | def _build_headers(self) -> dict[str, str]: method _build_url (line 54) | def _build_url(self, endpoint: str) -> str: method build_app_url (line 57) | def build_app_url(self, endpoint: str) -> str: FILE: backend/onyx/connectors/bookstack/connector.py class BookstackConnector (line 26) | class BookstackConnector(LoadConnector, PollConnector): method __init__ (line 27) | def __init__( method load_credentials (line 34) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _get_doc_batch (line 43) | def _get_doc_batch( method _book_to_document (line 76) | def _book_to_document( method _chapter_to_document (line 98) | def _chapter_to_document( method _shelf_to_document (line 127) | def _shelf_to_document( method _page_to_document (line 151) | def _page_to_document( method load_from_state (line 183) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 189) | def poll_source( method validate_connector_settings (line 225) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/canvas/access.py function get_course_permissions (line 17) | def get_course_permissions( FILE: backend/onyx/connectors/canvas/client.py function _error_code_for_status (line 34) | def _error_code_for_status(status_code: int) -> OnyxErrorCode: class CanvasApiClient (line 46) | class CanvasApiClient: method __init__ (line 47) | def __init__( method get (line 67) | def get( method _parse_next_link (line 147) | def _parse_next_link(self, link_header: str) -> str | None: method _build_headers (line 176) | def _build_headers(self) -> dict[str, str]: method _build_url (line 180) | def _build_url(self, endpoint: str) -> str: method paginate (line 195) | def paginate( FILE: backend/onyx/connectors/canvas/connector.py function _handle_canvas_api_error (line 40) | def _handle_canvas_api_error(e: OnyxError) -> NoReturn: class CanvasCourse (line 64) | class CanvasCourse(BaseModel): method from_api (line 72) | def from_api(cls, payload: dict[str, Any]) -> "CanvasCourse": class CanvasPage (line 82) | class CanvasPage(BaseModel): method from_api (line 92) | def from_api(cls, payload: dict[str, Any], course_id: int) -> "CanvasP... class CanvasAssignment (line 104) | class CanvasAssignment(BaseModel): method from_api (line 115) | def from_api(cls, payload: dict[str, Any], course_id: int) -> "CanvasA... class CanvasAnnouncement (line 128) | class CanvasAnnouncement(BaseModel): method from_api (line 137) | def from_api(cls, payload: dict[str, Any], course_id: int) -> "CanvasA... class CanvasConnectorCheckpoint (line 151) | class CanvasConnectorCheckpoint(ConnectorCheckpoint): method advance_course (line 171) | def advance_course(self) -> None: class CanvasConnector (line 178) | class CanvasConnector( method __init__ (line 182) | def __init__( method canvas_client (line 193) | def canvas_client(self) -> CanvasApiClient: method _get_course_permissions (line 198) | def _get_course_permissions(self, course_id: int) -> ExternalAccess | ... method _list_courses (line 208) | def _list_courses(self) -> list[CanvasCourse]: method _list_pages (line 220) | def _list_pages(self, course_id: int) -> list[CanvasPage]: method _list_assignments (line 233) | def _list_assignments(self, course_id: int) -> list[CanvasAssignment]: method _list_announcements (line 248) | def _list_announcements(self, course_id: int) -> list[CanvasAnnounceme... method _build_document (line 266) | def _build_document( method _convert_page_to_document (line 289) | def _convert_page_to_document(self, page: CanvasPage) -> Document: method _convert_assignment_to_document (line 317) | def _convert_assignment_to_document(self, assignment: CanvasAssignment... method _convert_announcement_to_document (line 352) | def _convert_announcement_to_document( method load_credentials (line 383) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method validate_connector_settings (line 404) | def validate_connector_settings(self) -> None: method load_from_checkpoint (line 419) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 429) | def load_from_checkpoint_with_perm_sync( method build_dummy_checkpoint (line 439) | def build_dummy_checkpoint(self) -> CanvasConnectorCheckpoint: method validate_checkpoint_json (line 444) | def validate_checkpoint_json( method retrieve_all_slim_docs_perm_sync (line 451) | def retrieve_all_slim_docs_perm_sync( FILE: backend/onyx/connectors/clickup/connector.py class ClickupConnector (line 28) | class ClickupConnector(LoadConnector, PollConnector): method __init__ (line 29) | def __init__( method load_credentials (line 45) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _make_request (line 52) | def _make_request(self, endpoint: str, params: Optional[dict] = None) ... method _get_task_comments (line 66) | def _get_task_comments(self, task_id: str) -> list[TextSection]: method _get_all_tasks_filtered (line 79) | def _get_all_tasks_filtered( method load_from_state (line 188) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 194) | def poll_source( FILE: backend/onyx/connectors/coda/connector.py class CodaClientRequestFailedError (line 39) | class CodaClientRequestFailedError(ConnectionError): method __init__ (line 40) | def __init__(self, message: str, status_code: int): class CodaDoc (line 47) | class CodaDoc(BaseModel): class CodaPage (line 59) | class CodaPage(BaseModel): class CodaTable (line 69) | class CodaTable(BaseModel): class CodaRow (line 78) | class CodaRow(BaseModel): class CodaApiClient (line 90) | class CodaApiClient: method __init__ (line 91) | def __init__( method get (line 98) | def get( method _build_headers (line 122) | def _build_headers(self) -> Dict[str, str]: method _build_url (line 125) | def _build_url(self, endpoint: str) -> str: class CodaConnector (line 129) | class CodaConnector(LoadConnector, PollConnector): method __init__ (line 130) | def __init__( method coda_client (line 142) | def coda_client(self) -> CodaApiClient: method _get_doc (line 148) | def _get_doc(self, doc_id: str) -> CodaDoc: method _get_page (line 172) | def _get_page(self, doc_id: str, page_id: str) -> CodaPage: method _get_table (line 196) | def _get_table(self, doc_id: str, table_id: str) -> CodaTable: method _get_row (line 219) | def _get_row(self, doc_id: str, table_id: str, row_id: str) -> CodaRow: method _list_all_docs (line 251) | def _list_all_docs( method _list_pages_in_doc (line 300) | def _list_pages_in_doc(self, doc_id: str) -> List[CodaPage]: method _fetch_page_content (line 349) | def _fetch_page_content(self, doc_id: str, page_id: str) -> str: method _list_tables (line 387) | def _list_tables(self, doc_id: str) -> List[CodaTable]: method _list_rows_and_values (line 431) | def _list_rows_and_values(self, doc_id: str, table_id: str) -> List[Co... method _convert_page_to_document (line 481) | def _convert_page_to_document(self, page: CodaPage, content: str = "")... method _convert_table_with_rows_to_document (line 504) | def _convert_table_with_rows_to_document( method load_credentials (line 543) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method load_from_state (line 556) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 597) | def poll_source( method validate_connector_settings (line 676) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/confluence/access.py function get_page_restrictions (line 11) | def get_page_restrictions( function get_all_space_permissions (line 54) | def get_all_space_permissions( FILE: backend/onyx/connectors/confluence/connector.py function _get_page_id (line 91) | def _get_page_id(page: dict[str, Any], allow_missing: bool = False) -> str: class ConfluenceCheckpoint (line 97) | class ConfluenceCheckpoint(ConnectorCheckpoint): class ConfluenceConnector (line 101) | class ConfluenceConnector( method __init__ (line 107) | def __init__( method set_allow_images (line 188) | def set_allow_images(self, value: bool) -> None: method _yield_space_hierarchy_nodes (line 192) | def _yield_space_hierarchy_nodes( method _yield_ancestor_hierarchy_nodes (line 219) | def _yield_ancestor_hierarchy_nodes( method _get_parent_hierarchy_raw_id (line 289) | def _get_parent_hierarchy_raw_id(self, page: dict[str, Any]) -> str | ... method _maybe_yield_page_hierarchy_node (line 314) | def _maybe_yield_page_hierarchy_node( method confluence_client (line 350) | def confluence_client(self) -> OnyxConfluence: method low_timeout_confluence_client (line 356) | def low_timeout_confluence_client(self) -> OnyxConfluence: method set_credentials_provider (line 361) | def set_credentials_provider( method load_credentials (line 391) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _construct_page_cql_query (line 394) | def _construct_page_cql_query( method _construct_attachment_query (line 421) | def _construct_attachment_query( method _get_comment_string_for_page_id (line 443) | def _get_comment_string_for_page_id(self, page_id: str) -> str: method _convert_page_to_document (line 461) | def _convert_page_to_document( method _fetch_page_attachments (line 547) | def _fetch_page_attachments( method _fetch_document_batches (line 751) | def _fetch_document_batches( method _build_page_retrieval_url (line 815) | def _build_page_retrieval_url( method load_from_checkpoint (line 833) | def load_from_checkpoint( method build_dummy_checkpoint (line 853) | def build_dummy_checkpoint(self) -> ConfluenceCheckpoint: method validate_checkpoint_json (line 857) | def validate_checkpoint_json(self, checkpoint_json: str) -> Confluence... method retrieve_all_slim_docs (line 861) | def retrieve_all_slim_docs( method retrieve_all_slim_docs_perm_sync (line 874) | def retrieve_all_slim_docs_perm_sync( method _retrieve_all_slim_docs (line 891) | def _retrieve_all_slim_docs( method validate_connector_settings (line 1016) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/confluence/models.py class ConfluenceUser (line 4) | class ConfluenceUser(BaseModel): FILE: backend/onyx/connectors/confluence/onyx_confluence.py class ConfluenceRateLimitError (line 69) | class ConfluenceRateLimitError(Exception): class OnyxConfluence (line 73) | class OnyxConfluence: method __init__ (line 87) | def __init__( method _renew_credentials (line 138) | def _renew_credentials(self) -> tuple[dict[str, Any], bool]: method _make_oauth2_dict (line 208) | def _make_oauth2_dict(credentials: dict[str, Any]) -> dict[str, Any]: method _build_spaces_url (line 218) | def _build_spaces_url( method _paginate_spaces_for_endpoint (line 237) | def _paginate_spaces_for_endpoint( method retrieve_confluence_spaces (line 269) | def retrieve_confluence_spaces( method _probe_connection (line 308) | def _probe_connection( method _initialize_connection (line 361) | def _initialize_connection( method _initialize_connection_helper (line 374) | def _initialize_connection_helper( method _make_rate_limited_confluence_method (line 415) | def _make_rate_limited_confluence_method( method __getattr__ (line 479) | def __getattr__(self, name: str) -> Any: method _try_one_by_one_for_paginated_url (line 503) | def _try_one_by_one_for_paginated_url( method _paginate_url (line 558) | def _paginate_url( method build_cql_url (line 712) | def build_cql_url(self, cql: str, expand: str | None = None) -> str: method paginated_cql_retrieval (line 716) | def paginated_cql_retrieval( method paginated_page_retrieval (line 728) | def paginated_page_retrieval( method cql_paginate_all_expansions (line 748) | def cql_paginate_all_expansions( method paginated_cql_user_retrieval (line 775) | def paginated_cql_user_retrieval( method paginated_groups_by_user_retrieval (line 851) | def paginated_groups_by_user_retrieval( method paginated_groups_retrieval (line 868) | def paginated_groups_retrieval( method paginated_group_members_retrieval (line 878) | def paginated_group_members_retrieval( method get_all_space_permissions_server (line 892) | def get_all_space_permissions_server( method get_current_user (line 935) | def get_current_user(self, expand: str | None = None) -> Any: function get_user_email_from_username__server (line 962) | def get_user_email_from_username__server( function _get_user (line 987) | def _get_user(confluence_client: OnyxConfluence, user_id: str) -> str: function sanitize_attachment_title (line 1017) | def sanitize_attachment_title(title: str) -> str: function extract_text_from_confluence_html (line 1024) | def extract_text_from_confluence_html( function _remove_macro_stylings (line 1139) | def _remove_macro_stylings(soup: bs4.BeautifulSoup) -> None: FILE: backend/onyx/connectors/confluence/user_profile_override.py function process_confluence_user_profiles_override (line 4) | def process_confluence_user_profiles_override( FILE: backend/onyx/connectors/confluence/utils.py class TokenResponse (line 43) | class TokenResponse(BaseModel): function validate_attachment_filetype (line 51) | def validate_attachment_filetype( class AttachmentProcessingResult (line 68) | class AttachmentProcessingResult(BaseModel): function _make_attachment_link (line 81) | def _make_attachment_link( function process_attachment (line 106) | def process_attachment( function _process_image_attachment (line 212) | def _process_image_attachment( function convert_attachment_to_content (line 238) | def convert_attachment_to_content( function build_confluence_document_id (line 269) | def build_confluence_document_id( function datetime_from_string (line 292) | def datetime_from_string(datetime_string: str) -> datetime: function confluence_refresh_tokens (line 305) | def confluence_refresh_tokens( function handle_confluence_rate_limit (line 348) | def handle_confluence_rate_limit(confluence_call: F) -> F: function _handle_http_error (line 387) | def _handle_http_error(e: requests.HTTPError, attempt: int, max_retries:... function get_single_param_from_url (line 459) | def get_single_param_from_url(url: str, param: str) -> str | None: function get_start_param_from_url (line 465) | def get_start_param_from_url(url: str) -> int: function update_param_in_path (line 471) | def update_param_in_path(path: str, param: str, value: str) -> str: FILE: backend/onyx/connectors/connector_runner.py function batched_doc_ids (line 29) | def batched_doc_ids( class CheckpointOutputWrapper (line 52) | class CheckpointOutputWrapper(Generic[CT]): method __init__ (line 61) | def __init__(self) -> None: method __call__ (line 64) | def __call__( class ConnectorRunner (line 99) | class ConnectorRunner(Generic[CT]): method __init__ (line 107) | def __init__( method run (line 128) | def run(self, checkpoint: CT) -> Generator[ method _separate_batch (line 270) | def _separate_batch( FILE: backend/onyx/connectors/credentials_provider.py class OnyxDBCredentialsProvider (line 14) | class OnyxDBCredentialsProvider( method __init__ (line 23) | def __init__(self, tenant_id: str, connector_name: str, credential_id:... method __enter__ (line 34) | def __enter__(self) -> "OnyxDBCredentialsProvider": method __exit__ (line 41) | def __exit__( method get_tenant_id (line 51) | def get_tenant_id(self) -> str | None: method get_provider_key (line 54) | def get_provider_key(self) -> str: method get_credentials (line 57) | def get_credentials(self) -> dict[str, Any]: method set_credentials (line 72) | def set_credentials(self, credential_json: dict[str, Any]) -> None: method is_dynamic (line 92) | def is_dynamic(self) -> bool: class OnyxStaticCredentialsProvider (line 96) | class OnyxStaticCredentialsProvider( method __init__ (line 101) | def __init__( method __enter__ (line 113) | def __enter__(self) -> "OnyxStaticCredentialsProvider": method __exit__ (line 116) | def __exit__( method get_tenant_id (line 124) | def get_tenant_id(self) -> str | None: method get_provider_key (line 127) | def get_provider_key(self) -> str: method get_credentials (line 130) | def get_credentials(self) -> dict[str, Any]: method set_credentials (line 133) | def set_credentials(self, credential_json: dict[str, Any]) -> None: method is_dynamic (line 136) | def is_dynamic(self) -> bool: FILE: backend/onyx/connectors/cross_connector_utils/miscellaneous_utils.py function datetime_to_utc (line 29) | def datetime_to_utc(dt: datetime) -> datetime: function time_str_to_utc (line 36) | def time_str_to_utc(datetime_str: str) -> datetime: function datetime_from_utc_timestamp (line 75) | def datetime_from_utc_timestamp(timestamp: int) -> datetime: function basic_expert_info_representation (line 81) | def basic_expert_info_representation(info: BasicExpertInfo) -> str | None: function get_experts_stores_representations (line 97) | def get_experts_stores_representations( function process_in_batches (line 114) | def process_in_batches( function get_metadata_keys_to_ignore (line 121) | def get_metadata_keys_to_ignore() -> list[str]: function _parse_document_source (line 125) | def _parse_document_source(connector_type: Any) -> DocumentSource | None: function process_onyx_metadata (line 146) | def process_onyx_metadata( function get_oauth_callback_uri (line 204) | def get_oauth_callback_uri(base_domain: str, connector_id: str) -> str: function is_atlassian_date_error (line 211) | def is_atlassian_date_error(e: Exception) -> bool: function get_cloudId (line 215) | def get_cloudId(base_url: str) -> str: function scoped_url (line 222) | def scoped_url(url: str, product: str) -> str: FILE: backend/onyx/connectors/cross_connector_utils/rate_limit_wrapper.py class RateLimitTriedTooManyTimesError (line 18) | class RateLimitTriedTooManyTimesError(Exception): class _RateLimitDecorator (line 22) | class _RateLimitDecorator: method __init__ (line 32) | def __init__( method __call__ (line 49) | def __call__(self, func: F) -> F: method _cleanup (line 77) | def _cleanup(self) -> None: function wrap_request_to_handle_ratelimiting (line 96) | def wrap_request_to_handle_ratelimiting( class _RateLimitedRequest (line 124) | class _RateLimitedRequest: FILE: backend/onyx/connectors/discord/connector.py function _convert_message_to_document (line 39) | def _convert_message_to_document( function _fetch_filtered_channels (line 92) | async def _fetch_filtered_channels( function _fetch_documents_from_channel (line 114) | async def _fetch_documents_from_channel( function _manage_async_retrieval (line 188) | def _manage_async_retrieval( class DiscordConnector (line 265) | class DiscordConnector(PollConnector, LoadConnector): method __init__ (line 266) | def __init__( method discord_bot_token (line 283) | def discord_bot_token(self) -> str: method load_credentials (line 288) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method validate_connector_settings (line 292) | def validate_connector_settings(self) -> None: method _manage_doc_batching (line 305) | def _manage_doc_batching( method poll_source (line 327) | def poll_source( method load_from_state (line 335) | def load_from_state(self) -> GenerateDocumentsOutput: FILE: backend/onyx/connectors/discourse/connector.py class DiscoursePerms (line 34) | class DiscoursePerms(BaseModel): function discourse_request (line 40) | def discourse_request( class DiscourseConnector (line 51) | class DiscourseConnector(PollConnector): method __init__ (line 52) | def __init__( method _make_request (line 71) | def _make_request(self, endpoint: str, params: dict | None = None) -> ... method _get_categories_map (line 76) | def _get_categories_map( method _get_doc_from_topic (line 93) | def _get_doc_from_topic(self, topic_id: int) -> Document: method _get_latest_topics (line 145) | def _get_latest_topics( method _yield_discourse_documents (line 190) | def _yield_discourse_documents( method load_credentials (line 208) | def load_credentials( method poll_source (line 218) | def poll_source( FILE: backend/onyx/connectors/document360/connector.py class Document360Connector (line 36) | class Document360Connector(LoadConnector, PollConnector): method __init__ (line 37) | def __init__( method load_credentials (line 51) | def load_credentials(self, credentials: dict[str, Any]) -> Optional[di... method _make_request (line 61) | def _make_request(self, endpoint: str, params: Optional[dict] = None) ... method _get_workspace_id_by_name (line 74) | def _get_workspace_id_by_name(self) -> str: method _get_articles_with_category (line 89) | def _get_articles_with_category(self, workspace_id: str) -> Any: method _process_articles (line 114) | def _process_articles( method load_from_state (line 182) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 185) | def poll_source( FILE: backend/onyx/connectors/document360/utils.py function flatten_child_categories (line 1) | def flatten_child_categories(category: dict) -> list[dict]: FILE: backend/onyx/connectors/dropbox/connector.py class DropboxConnector (line 31) | class DropboxConnector(LoadConnector, PollConnector): method __init__ (line 32) | def __init__(self, batch_size: int = INDEX_BATCH_SIZE) -> None: method load_credentials (line 36) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _download_file (line 40) | def _download_file(self, path: str) -> bytes: method _get_shared_link (line 47) | def _get_shared_link(self, path: str) -> str: method _yield_files_recursive (line 66) | def _yield_files_recursive( method load_from_state (line 135) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 138) | def poll_source( method validate_connector_settings (line 149) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/drupal_wiki/connector.py class DrupalWikiConnector (line 58) | class DrupalWikiConnector( method __init__ (line 65) | def __init__( method set_allow_images (line 126) | def set_allow_images(self, value: bool) -> None: method _get_page_attachments (line 130) | def _get_page_attachments(self, page_id: int) -> list[dict[str, Any]]: method _download_attachment (line 154) | def _download_attachment(self, attachment_id: int) -> bytes: method _validate_attachment_filetype (line 175) | def _validate_attachment_filetype(self, attachment: dict[str, Any]) ->... method _get_media_type_from_filename (line 198) | def _get_media_type_from_filename(self, filename: str) -> str: method _process_attachment (line 211) | def _process_attachment( method load_credentials (line 338) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _get_space_ids (line 365) | def _get_space_ids(self) -> list[int]: method _get_pages_for_space (line 403) | def _get_pages_for_space( method _get_page_content (line 462) | def _get_page_content(self, page_id: int) -> DrupalWikiPage: method _process_page (line 478) | def _process_page(self, page: DrupalWikiPage) -> Document | ConnectorF... method load_from_checkpoint (line 565) | def load_from_checkpoint( method build_dummy_checkpoint (line 692) | def build_dummy_checkpoint(self) -> DrupalWikiCheckpoint: method validate_checkpoint_json (line 710) | def validate_checkpoint_json(self, checkpoint_json: str) -> DrupalWiki... method retrieve_all_slim_docs (line 727) | def retrieve_all_slim_docs( method validate_connector_settings (line 880) | def validate_connector_settings(self) -> None: method _is_page_in_time_range (line 897) | def _is_page_in_time_range( FILE: backend/onyx/connectors/drupal_wiki/models.py class SpaceAccessStatus (line 12) | class SpaceAccessStatus(str, Enum): class DrupalWikiSpace (line 20) | class DrupalWikiSpace(BaseModel): class DrupalWikiPage (line 31) | class DrupalWikiPage(BaseModel): class DrupalWikiBaseResponse (line 45) | class DrupalWikiBaseResponse(BaseModel, Generic[T]): class DrupalWikiSpaceResponse (line 59) | class DrupalWikiSpaceResponse(DrupalWikiBaseResponse[DrupalWikiSpace]): class DrupalWikiPageResponse (line 63) | class DrupalWikiPageResponse(DrupalWikiBaseResponse[DrupalWikiPage]): class DrupalWikiCheckpoint (line 67) | class DrupalWikiCheckpoint(ConnectorCheckpoint): FILE: backend/onyx/connectors/drupal_wiki/utils.py function build_drupal_wiki_document_id (line 6) | def build_drupal_wiki_document_id(base_url: str, page_id: int) -> str: FILE: backend/onyx/connectors/egnyte/connector.py function _parse_last_modified (line 44) | def _parse_last_modified(last_modified: str) -> datetime: function _process_egnyte_file (line 50) | def _process_egnyte_file( class EgnyteConnector (line 130) | class EgnyteConnector(LoadConnector, PollConnector, OAuthConnector): class AdditionalOauthKwargs (line 131) | class AdditionalOauthKwargs(OAuthConnector.AdditionalOauthKwargs): method __init__ (line 139) | def __init__( method oauth_id (line 150) | def oauth_id(cls) -> DocumentSource: method oauth_authorization_url (line 154) | def oauth_authorization_url( method oauth_code_to_token (line 176) | def oauth_code_to_token( method load_credentials (line 221) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _get_files_list (line 226) | def _get_files_list( method _should_index_file (line 259) | def _should_index_file( method _process_files (line 277) | def _process_files( method load_from_state (line 341) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 344) | def poll_source( FILE: backend/onyx/connectors/exceptions.py class ValidationError (line 1) | class ValidationError(Exception): method __init__ (line 4) | def __init__(self, message: str): class ConnectorValidationError (line 9) | class ConnectorValidationError(ValidationError): method __init__ (line 12) | def __init__(self, message: str): class UnexpectedValidationError (line 17) | class UnexpectedValidationError(ValidationError): method __init__ (line 28) | def __init__(self, message: str = "Unexpected error during connector v... class CredentialInvalidError (line 32) | class CredentialInvalidError(ConnectorValidationError): method __init__ (line 35) | def __init__(self, message: str = "Credential is invalid"): class CredentialExpiredError (line 39) | class CredentialExpiredError(ConnectorValidationError): method __init__ (line 42) | def __init__(self, message: str = "Credential has expired"): class InsufficientPermissionsError (line 46) | class InsufficientPermissionsError(ConnectorValidationError): method __init__ (line 49) | def __init__( FILE: backend/onyx/connectors/factory.py class ConnectorMissingException (line 28) | class ConnectorMissingException(Exception): function _load_connector_class (line 36) | def _load_connector_class(source: DocumentSource) -> Type[BaseConnector]: function _validate_connector_supports_input_type (line 57) | def _validate_connector_supports_input_type( function identify_connector_class (line 91) | def identify_connector_class( function instantiate_connector (line 104) | def instantiate_connector( function validate_ccpair_for_user (line 136) | def validate_ccpair_for_user( FILE: backend/onyx/connectors/file/connector.py function _create_image_section (line 32) | def _create_image_section( function _process_file (line 75) | def _process_file( class LocalFileConnector (line 227) | class LocalFileConnector(LoadConnector): method __init__ (line 239) | def __init__( method load_credentials (line 253) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method load_from_state (line 258) | def load_from_state(self) -> GenerateDocumentsOutput: FILE: backend/onyx/connectors/fireflies/connector.py function _create_doc_from_transcript (line 53) | def _create_doc_from_transcript(transcript: dict) -> Document | None: class FirefliesConnector (line 133) | class FirefliesConnector(PollConnector, LoadConnector): method __init__ (line 134) | def __init__(self, batch_size: int = INDEX_BATCH_SIZE) -> None: method load_credentials (line 137) | def load_credentials(self, credentials: dict[str, str]) -> None: method _fetch_transcripts (line 149) | def _fetch_transcripts( method _process_transcripts (line 195) | def _process_transcripts( method load_from_state (line 212) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 215) | def poll_source( FILE: backend/onyx/connectors/freshdesk/connector.py function _rate_limited_freshdesk_get (line 76) | def _rate_limited_freshdesk_get( function _create_metadata_from_ticket (line 82) | def _create_metadata_from_ticket(ticket: dict) -> dict: function _create_doc_from_ticket (line 138) | def _create_doc_from_ticket(ticket: dict, domain: str) -> Document: class FreshdeskConnector (line 163) | class FreshdeskConnector(PollConnector, LoadConnector): method __init__ (line 164) | def __init__(self, batch_size: int = INDEX_BATCH_SIZE) -> None: method load_credentials (line 167) | def load_credentials(self, credentials: dict[str, str | int]) -> None: method _fetch_tickets (line 197) | def _fetch_tickets( method _process_tickets (line 248) | def _process_tickets( method load_from_state (line 264) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 267) | def poll_source( FILE: backend/onyx/connectors/gitbook/connector.py class GitbookApiClient (line 26) | class GitbookApiClient: method __init__ (line 27) | def __init__(self, access_token: str) -> None: method get (line 30) | def get(self, endpoint: str, params: dict[str, Any] | None = None) -> ... method get_page_content (line 41) | def get_page_content(self, space_id: str, page_id: str) -> dict[str, A... function _extract_text_from_document (line 45) | def _extract_text_from_document(document: dict[str, Any]) -> str: function _convert_page_to_document (line 178) | def _convert_page_to_document( class GitbookConnector (line 205) | class GitbookConnector(LoadConnector, PollConnector): method __init__ (line 206) | def __init__( method load_credentials (line 216) | def load_credentials(self, credentials: dict[str, Any]) -> None: method _fetch_all_pages (line 223) | def _fetch_all_pages( method load_from_state (line 272) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 275) | def poll_source( FILE: backend/onyx/connectors/github/connector.py class DocMetadata (line 69) | class DocMetadata(BaseModel): function get_nextUrl_key (line 73) | def get_nextUrl_key(pag_list: PaginatedList[PullRequest | Issue]) -> str: function get_nextUrl (line 85) | def get_nextUrl( function set_nextUrl (line 91) | def set_nextUrl( function _paginate_until_error (line 100) | def _paginate_until_error( function _get_batch_rate_limited (line 159) | def _get_batch_rate_limited( function _get_userinfo (line 221) | def _get_userinfo(user: NamedUser) -> dict[str, str]: function _convert_pr_to_document (line 240) | def _convert_pr_to_document( function _fetch_issue_comments (line 324) | def _fetch_issue_comments(issue: Issue) -> str: function _convert_issue_to_document (line 329) | def _convert_issue_to_document( class GithubConnectorStage (line 391) | class GithubConnectorStage(Enum): class GithubConnectorCheckpoint (line 397) | class GithubConnectorCheckpoint(ConnectorCheckpoint): method reset (line 408) | def reset(self) -> None: function make_cursor_url_callback (line 417) | def make_cursor_url_callback( class GithubConnector (line 430) | class GithubConnector(CheckpointedConnectorWithPermSync[GithubConnectorC... method __init__ (line 431) | def __init__( method load_credentials (line 446) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method get_github_repo (line 459) | def get_github_repo( method get_github_repos (line 473) | def get_github_repos( method get_all_repos (line 504) | def get_all_repos( method fetch_configured_repos (line 526) | def fetch_configured_repos(self) -> list[Repository.Repository]: method _pull_requests_func (line 542) | def _pull_requests_func( method _issues_func (line 549) | def _issues_func( method _fetch_from_github (line 556) | def _fetch_from_github( method _load_from_checkpoint (line 757) | def _load_from_checkpoint( method load_from_checkpoint (line 785) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 796) | def load_from_checkpoint_with_perm_sync( method validate_connector_settings (line 806) | def validate_connector_settings(self) -> None: method validate_checkpoint_json (line 932) | def validate_checkpoint_json( method build_dummy_checkpoint (line 937) | def build_dummy_checkpoint(self) -> GithubConnectorCheckpoint: FILE: backend/onyx/connectors/github/models.py class SerializedRepository (line 8) | class SerializedRepository(BaseModel): method to_Repository (line 14) | def to_Repository(self, requester: Requester) -> Repository.Repository: FILE: backend/onyx/connectors/github/rate_limit_utils.py function sleep_after_rate_limit_exception (line 13) | def sleep_after_rate_limit_exception(github_client: Github) -> None: FILE: backend/onyx/connectors/github/utils.py function get_external_access_permission (line 16) | def get_external_access_permission( function deserialize_repository (line 40) | def deserialize_repository( FILE: backend/onyx/connectors/gitlab/connector.py function _batch_gitlab_objects (line 43) | def _batch_gitlab_objects(git_objs: Iterable[T], batch_size: int) -> Ite... function get_author (line 52) | def get_author(author: Any) -> BasicExpertInfo: function _convert_merge_request_to_document (line 58) | def _convert_merge_request_to_document(mr: Any) -> Document: function _convert_issue_to_document (line 74) | def _convert_issue_to_document(issue: Any) -> Document: function _convert_code_to_document (line 90) | def _convert_code_to_document( function _should_exclude (line 124) | def _should_exclude(path: str) -> bool: class GitlabConnector (line 129) | class GitlabConnector(LoadConnector, PollConnector): method __init__ (line 130) | def __init__( method load_credentials (line 149) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _fetch_from_gitlab (line 155) | def _fetch_from_gitlab( method load_from_state (line 238) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 241) | def poll_source( FILE: backend/onyx/connectors/gmail/connector.py function _is_mail_service_disabled_error (line 78) | def _is_mail_service_disabled_error(error: HttpError) -> bool: function _build_time_range_query (line 91) | def _build_time_range_query( function _clean_email_and_extract_name (line 108) | def _clean_email_and_extract_name(email: str) -> tuple[str, str | None]: function _get_owners_from_emails (line 120) | def _get_owners_from_emails(emails: dict[str, str | None]) -> list[Basic... function _get_message_body (line 136) | def _get_message_body(payload: dict[str, Any]) -> str: function _build_document_link (line 185) | def _build_document_link(thread_id: str) -> str: function message_to_section (line 189) | def message_to_section(message: Dict[str, Any]) -> tuple[TextSection, di... function thread_to_document (line 219) | def thread_to_document( function _full_thread_from_id (line 291) | def _full_thread_from_id( function _slim_thread_from_id (line 321) | def _slim_thread_from_id( class GmailCheckpoint (line 336) | class GmailCheckpoint(ConnectorCheckpoint): class GmailConnector (line 341) | class GmailConnector( method __init__ (line 344) | def __init__(self, batch_size: int = INDEX_BATCH_SIZE) -> None: method primary_admin_email (line 351) | def primary_admin_email(self) -> str: method google_domain (line 359) | def google_domain(self) -> str: method creds (line 367) | def creds(self) -> OAuthCredentials | ServiceAccountCredentials: method load_credentials (line 374) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, s... method _get_all_user_emails (line 384) | def _get_all_user_emails(self) -> list[str]: method _fetch_threads_impl (line 422) | def _fetch_threads_impl( method _fetch_threads (line 497) | def _fetch_threads( method _fetch_slim_threads (line 519) | def _fetch_slim_threads( method _load_from_checkpoint (line 541) | def _load_from_checkpoint( method load_from_checkpoint (line 574) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 586) | def load_from_checkpoint_with_perm_sync( method retrieve_all_slim_docs_perm_sync (line 600) | def retrieve_all_slim_docs_perm_sync( method build_dummy_checkpoint (line 626) | def build_dummy_checkpoint(self) -> GmailCheckpoint: method validate_checkpoint_json (line 629) | def validate_checkpoint_json(self, checkpoint_json: str) -> GmailCheck... FILE: backend/onyx/connectors/gong/connector.py class GongConnector (line 31) | class GongConnector(LoadConnector, PollConnector): method __init__ (line 38) | def __init__( method make_url (line 66) | def make_url(endpoint: str) -> str: method _throttled_request (line 70) | def _throttled_request( method _get_workspace_id_map (line 84) | def _get_workspace_id_map(self) -> dict[str, str]: method _get_transcript_batches (line 101) | def _get_transcript_batches( method _get_call_details_by_ids (line 161) | def _get_call_details_by_ids(self, call_ids: list[str]) -> dict: method _parse_parties (line 180) | def _parse_parties(parties: list[dict]) -> dict[str, str]: method _fetch_calls (line 199) | def _fetch_calls( method load_credentials (line 352) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method load_from_state (line 368) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 371) | def poll_source( FILE: backend/onyx/connectors/google_drive/connector.py function _extract_str_list_from_comma_str (line 104) | def _extract_str_list_from_comma_str(string: str | None) -> list[str]: function _extract_ids_from_urls (line 110) | def _extract_ids_from_urls(urls: list[str]) -> list[str]: function _clean_requested_drive_ids (line 114) | def _clean_requested_drive_ids( function _get_parent_id_from_file (line 132) | def _get_parent_id_from_file(drive_file: GoogleDriveFileType) -> str | N... function _is_shared_drive_root (line 140) | def _is_shared_drive_root(folder: GoogleDriveFileType) -> bool: function _public_access (line 162) | def _public_access() -> ExternalAccess: class CredentialedRetrievalMethod (line 170) | class CredentialedRetrievalMethod(Protocol): method __call__ (line 171) | def __call__( function add_retrieval_info (line 180) | def add_retrieval_info( class DriveIdStatus (line 198) | class DriveIdStatus(Enum): class GoogleDriveConnector (line 204) | class GoogleDriveConnector( method __init__ (line 207) | def __init__( method set_allow_images (line 304) | def set_allow_images(self, value: bool) -> None: method primary_admin_email (line 308) | def primary_admin_email(self) -> str: method google_domain (line 316) | def google_domain(self) -> str: method creds (line 324) | def creds(self) -> OAuthCredentials | ServiceAccountCredentials: method normalize_url (line 333) | def normalize_url(cls, url: str) -> NormalizationResult: method load_credentials (line 380) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, s... method _update_traversed_parent_ids (line 405) | def _update_traversed_parent_ids(self, folder_id: str) -> None: method _get_all_user_emails (line 408) | def _get_all_user_emails(self) -> list[str]: method _get_my_drive_root_id (line 439) | def _get_my_drive_root_id(self, user_email: str) -> str | None: method _is_my_drive_root (line 458) | def _is_my_drive_root( method _get_new_ancestors_for_files (line 491) | def _get_new_ancestors_for_files( method _get_folder_metadata (line 646) | def _get_folder_metadata( method _get_shared_drive_name (line 693) | def _get_shared_drive_name(self, drive_id: str, retriever_email: str) ... method get_all_drive_ids (line 702) | def get_all_drive_ids(self) -> set[str]: method _get_all_drives_for_user (line 705) | def _get_all_drives_for_user(self, user_email: str) -> set[str]: method make_drive_id_getter (line 727) | def make_drive_id_getter( method _impersonate_user_for_retrieval (line 782) | def _impersonate_user_for_retrieval( method _manage_service_account_retrieval (line 994) | def _manage_service_account_retrieval( method _determine_retrieval_ids (line 1103) | def _determine_retrieval_ids( method _oauth_retrieval_all_files (line 1138) | def _oauth_retrieval_all_files( method _oauth_retrieval_drives (line 1172) | def _oauth_retrieval_drives( method _oauth_retrieval_folders (line 1245) | def _oauth_retrieval_folders( method _checkpointed_retrieval (line 1314) | def _checkpointed_retrieval( method _manage_oauth_retrieval (line 1379) | def _manage_oauth_retrieval( method _fetch_drive_items (line 1468) | def _fetch_drive_items( method _convert_retrieved_files_to_documents (line 1489) | def _convert_retrieved_files_to_documents( method _convert_retrieved_file_to_document (line 1563) | def _convert_retrieved_file_to_document( method _load_from_checkpoint (line 1597) | def _load_from_checkpoint( method load_from_checkpoint (line 1647) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 1658) | def load_from_checkpoint_with_perm_sync( method _extract_slim_docs_from_google_drive (line 1668) | def _extract_slim_docs_from_google_drive( method retrieve_all_slim_docs_perm_sync (line 1742) | def retrieve_all_slim_docs_perm_sync( method validate_connector_settings (line 1764) | def validate_connector_settings(self) -> None: method build_dummy_checkpoint (line 1812) | def build_dummy_checkpoint(self) -> GoogleDriveCheckpoint: method validate_checkpoint_json (line 1822) | def validate_checkpoint_json(self, checkpoint_json: str) -> GoogleDriv... function get_credentials_from_env (line 1826) | def get_credentials_from_env(email: str, oauth: bool) -> dict: class CheckpointOutputWrapper (line 1853) | class CheckpointOutputWrapper: method __init__ (line 1861) | def __init__(self) -> None: method __call__ (line 1864) | def __call__( function yield_all_docs_from_checkpoint_connector (line 1897) | def yield_all_docs_from_checkpoint_connector( FILE: backend/onyx/connectors/google_drive/doc_conversion.py function _get_folder_info (line 54) | def _get_folder_info( function _get_drive_name (line 82) | def _get_drive_name(service: GoogleDriveService, drive_id: str) -> str: function build_folder_path (line 99) | def build_folder_path( class PermissionSyncContext (line 210) | class PermissionSyncContext(BaseModel): function onyx_document_id_from_drive_file (line 219) | def onyx_document_id_from_drive_file(file: GoogleDriveFileType) -> str: function download_request (line 248) | def download_request( function _download_request (line 263) | def _download_request(request: Any, file_id: str, size_threshold: int) -... function _download_and_extract_sections_basic (line 287) | def _download_and_extract_sections_basic( function _find_nth (line 404) | def _find_nth(haystack: str, needle: str, n: int, start: int = 0) -> int: function align_basic_advanced (line 412) | def align_basic_advanced( function _get_external_access_for_raw_gdrive_file (line 473) | def _get_external_access_for_raw_gdrive_file( function convert_drive_item_to_document (line 518) | def convert_drive_item_to_document( function _convert_drive_item_to_document (line 589) | def _convert_drive_item_to_document( function build_slim_document (line 754) | def build_slim_document( FILE: backend/onyx/connectors/google_drive/file_retrieval.py class DriveFileFieldType (line 38) | class DriveFileFieldType(Enum): function generate_time_range_filter (line 70) | def generate_time_range_filter( function has_link_only_permission (line 89) | def has_link_only_permission(file: GoogleDriveFileType) -> bool: function _get_folders_in_parent (line 103) | def _get_folders_in_parent( function get_folder_metadata (line 127) | def get_folder_metadata( function _get_hierarchy_fields_for_file_type (line 152) | def _get_hierarchy_fields_for_file_type(field_type: DriveFileFieldType) ... function get_shared_drive_name (line 159) | def get_shared_drive_name( function get_external_access_for_folder (line 179) | def get_external_access_for_folder( function _get_fields_for_file_type (line 218) | def _get_fields_for_file_type(field_type: DriveFileFieldType) -> str: function _get_files_in_parent (line 228) | def _get_files_in_parent( function crawl_folders_for_files (line 255) | def crawl_folders_for_files( function get_files_in_shared_drive (line 330) | def get_files_in_shared_drive( function get_all_files_in_my_drive_and_shared (line 392) | def get_all_files_in_my_drive_and_shared( function get_all_files_for_oauth (line 446) | def get_all_files_for_oauth( function get_root_folder_id (line 493) | def get_root_folder_id(service: Resource) -> str: function _extract_file_id_from_web_view_link (line 503) | def _extract_file_id_from_web_view_link(web_view_link: str) -> str: function get_file_by_web_view_link (line 523) | def get_file_by_web_view_link( FILE: backend/onyx/connectors/google_drive/models.py class GDriveMimeType (line 16) | class GDriveMimeType(str, Enum): class DriveRetrievalStage (line 54) | class DriveRetrievalStage(str, Enum): class StageCompletion (line 70) | class StageCompletion(BaseModel): method update (line 87) | def update( class RetrievedDriveFile (line 98) | class RetrievedDriveFile(BaseModel): class GoogleDriveCheckpoint (line 127) | class GoogleDriveCheckpoint(ConnectorCheckpoint): method serialize_completion_map (line 171) | def serialize_completion_map( method serialize_seen_hierarchy (line 177) | def serialize_seen_hierarchy( method serialize_fully_walked_hierarchy (line 183) | def serialize_fully_walked_hierarchy( method validate_completion_map (line 189) | def validate_completion_map(cls, v: Any) -> ThreadSafeDict[str, StageC... method validate_seen_hierarchy (line 196) | def validate_seen_hierarchy(cls, v: Any) -> ThreadSafeSet[str]: method validate_fully_walked_hierarchy (line 206) | def validate_fully_walked_hierarchy(cls, v: Any) -> ThreadSafeSet[str]: FILE: backend/onyx/connectors/google_drive/section_extraction.py class CurrentHeading (line 11) | class CurrentHeading(BaseModel): function _build_gdoc_section_link (line 16) | def _build_gdoc_section_link(doc_id: str, tab_id: str, heading_id: str |... function _extract_id_from_heading (line 24) | def _extract_id_from_heading(paragraph: dict[str, Any]) -> str: function _extract_text_from_paragraph (line 29) | def _extract_text_from_paragraph(paragraph: dict[str, Any]) -> str: function _extract_text_from_table (line 61) | def _extract_text_from_table(table: dict[str, Any]) -> str: function get_document_sections (line 82) | def get_document_sections( function _is_heading (line 108) | def _is_heading(paragraph: dict[str, Any]) -> bool: function _add_finished_section (line 122) | def _add_finished_section( function get_tab_sections (line 148) | def get_tab_sections(tab: dict[str, Any], doc_id: str) -> list[TextSecti... FILE: backend/onyx/connectors/google_site/connector.py function a_tag_text_to_path (line 25) | def a_tag_text_to_path(atag: Tag) -> str: function find_google_sites_page_path_from_navbar (line 33) | def find_google_sites_page_path_from_navbar( class GoogleSitesConnector (line 54) | class GoogleSitesConnector(LoadConnector): method __init__ (line 55) | def __init__( method load_credentials (line 65) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method load_from_state (line 68) | def load_from_state(self) -> GenerateDocumentsOutput: FILE: backend/onyx/connectors/google_utils/google_auth.py function sanitize_oauth_credentials (line 34) | def sanitize_oauth_credentials(oauth_creds: OAuthCredentials) -> str: function get_google_oauth_creds (line 50) | def get_google_oauth_creds( function get_google_creds (line 81) | def get_google_creds( FILE: backend/onyx/connectors/google_utils/google_kv.py function _build_frontend_google_drive_redirect (line 56) | def _build_frontend_google_drive_redirect(source: DocumentSource) -> str: function _get_current_oauth_user (line 65) | def _get_current_oauth_user(creds: OAuthCredentials, source: DocumentSou... function verify_csrf (line 92) | def verify_csrf(credential_id: int, state: str) -> None: function update_credential_access_tokens (line 100) | def update_credential_access_tokens( function build_service_account_creds (line 138) | def build_service_account_creds( function get_auth_url (line 163) | def get_auth_url(credential_id: int, source: DocumentSource) -> str: function get_google_app_cred (line 189) | def get_google_app_cred(source: DocumentSource) -> GoogleAppCredentials: function upsert_google_app_cred (line 199) | def upsert_google_app_cred( function delete_google_app_cred (line 212) | def delete_google_app_cred(source: DocumentSource) -> None: function get_service_account_key (line 221) | def get_service_account_key(source: DocumentSource) -> GoogleServiceAcco... function upsert_service_account_key (line 231) | def upsert_service_account_key( function delete_service_account_key (line 248) | def delete_service_account_key(source: DocumentSource) -> None: FILE: backend/onyx/connectors/google_utils/google_utils.py function _is_rate_limit_error (line 22) | def _is_rate_limit_error(error: HttpError) -> bool: class GoogleFields (line 50) | class GoogleFields(str, Enum): function _execute_with_retry (line 59) | def _execute_with_retry(request: Any) -> Any: function get_file_owners (line 117) | def get_file_owners(file: GoogleDriveFileType, primary_admin_email: str)... function _execute_single_retrieval (line 129) | def _execute_single_retrieval( function execute_single_retrieval (line 180) | def execute_single_retrieval( function execute_paginated_retrieval (line 202) | def execute_paginated_retrieval( function execute_paginated_retrieval_with_max_pages (line 218) | def execute_paginated_retrieval_with_max_pages( function _execute_paginated_retrieval (line 234) | def _execute_paginated_retrieval( FILE: backend/onyx/connectors/google_utils/resources.py class GoogleDriveService (line 15) | class GoogleDriveService(Resource): class GoogleDocsService (line 19) | class GoogleDocsService(Resource): class AdminService (line 23) | class AdminService(Resource): class GmailService (line 27) | class GmailService(Resource): class RefreshableDriveObject (line 31) | class RefreshableDriveObject: method __init__ (line 40) | def __init__( method __getattr__ (line 50) | def __getattr__(self, name: str) -> Any: method __call__ (line 59) | def __call__(self, *args: Any, **kwargs: Any) -> Any: method make_refreshable_execute (line 66) | def make_refreshable_execute(self) -> Callable: function _get_google_service (line 81) | def _get_google_service( function get_google_docs_service (line 98) | def get_google_docs_service( function get_drive_service (line 105) | def get_drive_service( function get_admin_service (line 112) | def get_admin_service( function get_gmail_service (line 119) | def get_gmail_service( FILE: backend/onyx/connectors/google_utils/shared_constants.py class GoogleOAuthAuthenticationMethod (line 36) | class GoogleOAuthAuthenticationMethod(str, PyEnum): FILE: backend/onyx/connectors/guru/connector.py function unixtime_to_guru_time_str (line 33) | def unixtime_to_guru_time_str(unix_time: SecondsSinceUnixEpoch) -> str: class GuruConnector (line 40) | class GuruConnector(LoadConnector, PollConnector): method __init__ (line 41) | def __init__( method load_credentials (line 51) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _process_cards (line 56) | def _process_cards( method load_from_state (line 145) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 148) | def poll_source( FILE: backend/onyx/connectors/highspot/client.py class HighspotClientError (line 21) | class HighspotClientError(Exception): method __init__ (line 24) | def __init__(self, message: str, status_code: Optional[int] = None): class HighspotAuthenticationError (line 30) | class HighspotAuthenticationError(HighspotClientError): class HighspotRateLimitError (line 34) | class HighspotRateLimitError(HighspotClientError): method __init__ (line 37) | def __init__(self, message: str, retry_after: Optional[str] = None): class HighspotClient (line 42) | class HighspotClient: method __init__ (line 52) | def __init__( method _setup_auth (line 97) | def _setup_auth(self) -> None: method _make_request (line 109) | def _make_request( method get_spots (line 188) | def get_spots(self) -> List[Dict[str, Any]]: method get_spot (line 212) | def get_spot(self, spot_id: str) -> Dict[str, Any]: method get_spot_items (line 226) | def get_spot_items( method get_item (line 246) | def get_item(self, item_id: str) -> Dict[str, Any]: method get_item_content (line 260) | def get_item_content(self, item_id: str) -> bytes: method health_check (line 278) | def health_check(self) -> bool: FILE: backend/onyx/connectors/highspot/connector.py class HighspotSpot (line 36) | class HighspotSpot(BaseModel): class HighspotConnector (line 41) | class HighspotConnector(LoadConnector, PollConnector, SlimConnectorWithP... method __init__ (line 49) | def __init__( method client (line 70) | def client(self) -> HighspotClient: method load_credentials (line 83) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _fetch_spots (line 90) | def _fetch_spots(self) -> list[HighspotSpot]: method _fetch_spots_to_process (line 100) | def _fetch_spots_to_process(self) -> list[HighspotSpot]: method load_from_state (line 121) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 131) | def poll_source( method _get_item_content (line 276) | def _get_item_content(self, item_details: Dict[str, Any]) -> str: method _extract_title_and_description (line 345) | def _extract_title_and_description( method retrieve_all_slim_docs_perm_sync (line 361) | def retrieve_all_slim_docs_perm_sync( method validate_credentials (line 430) | def validate_credentials(self) -> bool: FILE: backend/onyx/connectors/highspot/utils.py function scrape_url_content (line 18) | def scrape_url_content( function validate_url (line 107) | def validate_url(url: str) -> None: FILE: backend/onyx/connectors/hubspot/connector.py class HubSpotConnector (line 39) | class HubSpotConnector(LoadConnector, PollConnector): method __init__ (line 40) | def __init__( method access_token (line 66) | def access_token(self) -> str: method access_token (line 73) | def access_token(self, value: str | None) -> None: method portal_id (line 78) | def portal_id(self) -> str: method portal_id (line 85) | def portal_id(self, value: str | None) -> None: method _call_hubspot (line 89) | def _call_hubspot(self, func: Callable[..., T], *args: Any, **kwargs: ... method _paginated_results (line 92) | def _paginated_results( method _clean_html_content (line 120) | def _clean_html_content(self, html_content: str) -> str: method get_portal_id (line 141) | def get_portal_id(self) -> str: method load_credentials (line 154) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _get_object_url (line 159) | def _get_object_url(self, object_type: str, object_id: str) -> str: method _get_associated_objects (line 184) | def _get_associated_objects( method _get_associated_notes (line 278) | def _get_associated_notes( method _create_object_section (line 320) | def _create_object_section( method _process_tickets (line 401) | def _process_tickets( method _process_companies (line 511) | def _process_companies( method _process_deals (line 643) | def _process_deals( method _process_contacts (line 773) | def _process_contacts( method load_from_state (line 923) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 935) | def poll_source( FILE: backend/onyx/connectors/hubspot/rate_limit.py function _extract_header (line 31) | def _extract_header(headers: Any, key: str) -> str | None: function is_rate_limit_error (line 49) | def is_rate_limit_error(exception: Exception) -> bool: function get_rate_limit_retry_delay_seconds (line 69) | def get_rate_limit_retry_delay_seconds(exception: Exception) -> float: class HubSpotRateLimiter (line 105) | class HubSpotRateLimiter: method __init__ (line 106) | def __init__( method call (line 124) | def call(self, func: Callable[..., T], *args: Any, **kwargs: Any) -> T: FILE: backend/onyx/connectors/imap/connector.py class CurrentMailbox (line 41) | class CurrentMailbox(BaseModel): class ImapCheckpoint (line 56) | class ImapCheckpoint(ConnectorCheckpoint): class LoginState (line 61) | class LoginState(str, Enum): class ImapConnector (line 66) | class ImapConnector( method __init__ (line 70) | def __init__( method credentials (line 82) | def credentials(self) -> dict[str, Any]: method _get_mail_client (line 89) | def _get_mail_client(self) -> imaplib.IMAP4_SSL: method _load_from_checkpoint (line 129) | def _load_from_checkpoint( method load_credentials (line 206) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method validate_connector_settings (line 209) | def validate_connector_settings(self) -> None: method set_credentials_provider (line 214) | def set_credentials_provider( method load_from_checkpoint (line 221) | def load_from_checkpoint( method build_dummy_checkpoint (line 231) | def build_dummy_checkpoint(self) -> ImapCheckpoint: method validate_checkpoint_json (line 234) | def validate_checkpoint_json(self, checkpoint_json: str) -> ImapCheckp... method load_from_checkpoint_with_perm_sync (line 239) | def load_from_checkpoint_with_perm_sync( function _fetch_all_mailboxes_for_email_account (line 250) | def _fetch_all_mailboxes_for_email_account(mail_client: imaplib.IMAP4_SS... function _select_mailbox (line 288) | def _select_mailbox(mail_client: imaplib.IMAP4_SSL, mailbox: str) -> None: function _fetch_email_ids_in_mailbox (line 294) | def _fetch_email_ids_in_mailbox( function _fetch_email (line 316) | def _fetch_email(mail_client: imaplib.IMAP4_SSL, email_id: str) -> Messa... function _convert_email_headers_and_body_into_document (line 331) | def _convert_email_headers_and_body_into_document( function _parse_email_body (line 378) | def _parse_email_body( function _sanitize_mailbox_names (line 416) | def _sanitize_mailbox_names(mailboxes: list[str]) -> list[str]: function _parse_addrs (line 424) | def _parse_addrs(raw_header: str) -> list[tuple[str, str]]: function _parse_singular_addr (line 430) | def _parse_singular_addr(raw_header: str) -> tuple[str, str]: FILE: backend/onyx/connectors/imap/models.py class Header (line 9) | class Header(str, Enum): class EmailHeaders (line 20) | class EmailHeaders(BaseModel): method from_email_msg (line 32) | def from_email_msg(cls, email_msg: Message) -> "EmailHeaders": FILE: backend/onyx/connectors/interfaces.py class NormalizationResult (line 30) | class NormalizationResult(BaseModel): class BaseConnector (line 42) | class BaseConnector(abc.ABC, Generic[CT]): method load_credentials (line 46) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method parse_metadata (line 50) | def parse_metadata(metadata: dict[str, Any]) -> list[str]: method validate_connector_settings (line 67) | def validate_connector_settings(self) -> None: method validate_perm_sync (line 75) | def validate_perm_sync(self) -> None: method set_allow_images (line 87) | def set_allow_images(self, value: bool) -> None: method normalize_url (line 92) | def normalize_url(cls, url: str) -> "NormalizationResult": # noqa: AR... method build_dummy_checkpoint (line 100) | def build_dummy_checkpoint(self) -> CT: class LoadConnector (line 106) | class LoadConnector(BaseConnector): method load_from_state (line 108) | def load_from_state(self) -> GenerateDocumentsOutput: class PollConnector (line 113) | class PollConnector(BaseConnector): method poll_source (line 115) | def poll_source( class SlimConnector (line 122) | class SlimConnector(BaseConnector): method retrieve_all_slim_docs (line 124) | def retrieve_all_slim_docs( class SlimConnectorWithPermSync (line 132) | class SlimConnectorWithPermSync(BaseConnector): method retrieve_all_slim_docs_perm_sync (line 134) | def retrieve_all_slim_docs_perm_sync( class OAuthConnector (line 143) | class OAuthConnector(BaseConnector): class AdditionalOauthKwargs (line 144) | class AdditionalOauthKwargs(BaseModel): method oauth_id (line 150) | def oauth_id(cls) -> DocumentSource: method oauth_authorization_url (line 155) | def oauth_authorization_url( method oauth_code_to_token (line 165) | def oauth_code_to_token( class CredentialsProviderInterface (line 177) | class CredentialsProviderInterface(abc.ABC, Generic[T]): method __enter__ (line 179) | def __enter__(self) -> T: method __exit__ (line 183) | def __exit__( method get_tenant_id (line 192) | def get_tenant_id(self) -> str | None: method get_provider_key (line 196) | def get_provider_key(self) -> str: method get_credentials (line 206) | def get_credentials(self) -> dict[str, Any]: method set_credentials (line 210) | def set_credentials(self, credential_json: dict[str, Any]) -> None: method is_dynamic (line 214) | def is_dynamic(self) -> bool: class CredentialsConnector (line 225) | class CredentialsConnector(BaseConnector): method set_credentials_provider (line 231) | def set_credentials_provider( class EventConnector (line 238) | class EventConnector(BaseConnector): method handle_event (line 240) | def handle_event(self, event: Any) -> GenerateDocumentsOutput: class CheckpointedConnector (line 251) | class CheckpointedConnector(BaseConnector[CT]): method load_from_checkpoint (line 253) | def load_from_checkpoint( method build_dummy_checkpoint (line 281) | def build_dummy_checkpoint(self) -> CT: method validate_checkpoint_json (line 285) | def validate_checkpoint_json(self, checkpoint_json: str) -> CT: class CheckpointedConnectorWithPermSync (line 290) | class CheckpointedConnectorWithPermSync(CheckpointedConnector[CT]): method load_from_checkpoint_with_perm_sync (line 292) | def load_from_checkpoint_with_perm_sync( class HierarchyConnector (line 301) | class HierarchyConnector(BaseConnector): method load_hierarchy (line 303) | def load_hierarchy( FILE: backend/onyx/connectors/jira/access.py function get_project_permissions (line 15) | def get_project_permissions( FILE: backend/onyx/connectors/jira/connector.py function _is_cloud_client (line 87) | def _is_cloud_client(jira_client: JIRA) -> bool: function _perform_jql_search (line 91) | def _perform_jql_search( function _handle_jira_search_error (line 142) | def _handle_jira_search_error(e: Exception, jql: str) -> None: function enhanced_search_ids (line 215) | def enhanced_search_ids( function _bulk_fetch_request (line 243) | def _bulk_fetch_request( function bulk_fetch_issues (line 258) | def bulk_fetch_issues( function _perform_jql_search_v3 (line 293) | def _perform_jql_search_v3( function _perform_jql_search_v2 (line 330) | def _perform_jql_search_v2( function process_jira_issue (line 361) | def process_jira_issue( class JiraConnectorCheckpoint (line 465) | class JiraConnectorCheckpoint(ConnectorCheckpoint): class JiraConnector (line 477) | class JiraConnector( method __init__ (line 481) | def __init__( method comment_email_blacklist (line 512) | def comment_email_blacklist(self) -> tuple: method jira_client (line 516) | def jira_client(self) -> JIRA: method quoted_jira_project (line 522) | def quoted_jira_project(self) -> str: method _get_project_permissions (line 528) | def _get_project_permissions( method _is_epic (line 551) | def _is_epic(self, issue: Issue) -> bool: method _is_parent_epic (line 558) | def _is_parent_epic(self, parent: Any) -> bool: method _yield_project_hierarchy_node (line 573) | def _yield_project_hierarchy_node( method _yield_epic_hierarchy_node (line 593) | def _yield_epic_hierarchy_node( method _yield_parent_hierarchy_node_if_epic (line 614) | def _yield_parent_hierarchy_node_if_epic( method _get_parent_hierarchy_raw_node_id (line 649) | def _get_parent_hierarchy_raw_node_id(self, issue: Issue, project_key:... method load_credentials (line 668) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _get_jql_query (line 676) | def _get_jql_query( method load_from_checkpoint (line 704) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 723) | def load_from_checkpoint_with_perm_sync( method _load_from_checkpoint (line 741) | def _load_from_checkpoint( method update_checkpoint_for_next_run (line 835) | def update_checkpoint_for_next_run( method retrieve_all_slim_docs_perm_sync (line 852) | def retrieve_all_slim_docs_perm_sync( method validate_connector_settings (line 946) | def validate_connector_settings(self) -> None: method _handle_jira_connector_settings_error (line 985) | def _handle_jira_connector_settings_error(self, e: Exception) -> None: method validate_checkpoint_json (line 1028) | def validate_checkpoint_json(self, checkpoint_json: str) -> JiraConnec... method build_dummy_checkpoint (line 1032) | def build_dummy_checkpoint(self) -> JiraConnectorCheckpoint: function make_checkpoint_callback (line 1038) | def make_checkpoint_callback( FILE: backend/onyx/connectors/jira/utils.py function best_effort_basic_expert_info (line 25) | def best_effort_basic_expert_info(obj: Any) -> BasicExpertInfo | None: function best_effort_get_field_from_issue (line 49) | def best_effort_get_field_from_issue(jira_issue: Issue, field: str) -> Any: function extract_text_from_adf (line 62) | def extract_text_from_adf(adf: dict | None) -> str: function build_jira_url (line 79) | def build_jira_url(jira_base_url: str, issue_key: str) -> str: function build_jira_client (line 86) | def build_jira_client( function extract_jira_project (line 108) | def extract_jira_project(url: str) -> tuple[str, str]: function get_comment_strs (line 126) | def get_comment_strs( function get_jira_project_key_from_issue (line 152) | def get_jira_project_key_from_issue(issue: Issue) -> str | None: class CustomFieldExtractor (line 163) | class CustomFieldExtractor: method _process_custom_field_value (line 165) | def _process_custom_field_value(value: Any) -> str: method get_issue_custom_fields (line 187) | def get_issue_custom_fields( method get_all_custom_fields (line 216) | def get_all_custom_fields(jira_client: JIRA) -> dict: class CommonFieldExtractor (line 225) | class CommonFieldExtractor: method get_issue_common_fields (line 227) | def get_issue_common_fields(jira: Issue) -> dict: FILE: backend/onyx/connectors/linear/connector.py function _make_query (line 42) | def _make_query(request_body: dict[str, Any], api_key: str) -> requests.... class LinearConnector (line 73) | class LinearConnector(LoadConnector, PollConnector, OAuthConnector): method __init__ (line 74) | def __init__( method oauth_id (line 82) | def oauth_id(cls) -> DocumentSource: method oauth_authorization_url (line 86) | def oauth_authorization_url( method oauth_code_to_token (line 107) | def oauth_code_to_token( method load_credentials (line 141) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _process_issues (line 152) | def _process_issues( method load_from_state (line 326) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 329) | def poll_source( method normalize_url (line 339) | def normalize_url(cls, url: str) -> NormalizationResult: FILE: backend/onyx/connectors/loopio/connector.py class LoopioConnector (line 33) | class LoopioConnector(LoadConnector, PollConnector): method __init__ (line 34) | def __init__( method _fetch_data (line 44) | def _fetch_data( method _build_search_filter (line 76) | def _build_search_filter( method load_credentials (line 95) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _process_entries (line 101) | def _process_entries( method load_from_state (line 198) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 201) | def poll_source( FILE: backend/onyx/connectors/mediawiki/family.py class FamilyFileGeneratorInMemory (line 28) | class FamilyFileGeneratorInMemory(generate_family_file.FamilyFileGenerat... method __init__ (line 31) | def __init__( method get_params (line 65) | def get_params(self) -> bool: method writefile (line 73) | def writefile(self, verify: Any) -> None: # noqa: ARG002 function generate_family_class (line 107) | def generate_family_class(url: str, name: str) -> type[family.Family]: function family_class_dispatch (line 128) | def family_class_dispatch(url: str, name: str) -> type[family.Family]: FILE: backend/onyx/connectors/mediawiki/wiki.py function pywikibot_timestamp_to_utc_datetime (line 34) | def pywikibot_timestamp_to_utc_datetime( function get_doc_from_page (line 48) | def get_doc_from_page( class MediaWikiConnector (line 91) | class MediaWikiConnector(LoadConnector, PollConnector): method __init__ (line 110) | def __init__( method load_credentials (line 149) | def load_credentials( method _get_doc_batch (line 162) | def _get_doc_batch( method load_from_state (line 212) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 220) | def poll_source( FILE: backend/onyx/connectors/microsoft_graph_env.py class MicrosoftGraphEnvironment (line 20) | class MicrosoftGraphEnvironment(BaseModel): function resolve_microsoft_environment (line 67) | def resolve_microsoft_environment( FILE: backend/onyx/connectors/mock_connector/connector.py class MockConnectorCheckpoint (line 24) | class MockConnectorCheckpoint(ConnectorCheckpoint): class SingleConnectorYield (line 28) | class SingleConnectorYield(BaseModel): class MockConnector (line 35) | class MockConnector(CheckpointedConnectorWithPermSync[MockConnectorCheck... method __init__ (line 36) | def __init__( method load_credentials (line 48) | def load_credentials( method _get_mock_server_url (line 61) | def _get_mock_server_url(self, endpoint: str) -> str: method _save_checkpoint (line 64) | def _save_checkpoint(self, checkpoint: MockConnectorCheckpoint) -> None: method _load_from_checkpoint_common (line 71) | def _load_from_checkpoint_common( method load_from_checkpoint (line 110) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 121) | def load_from_checkpoint_with_perm_sync( method build_dummy_checkpoint (line 132) | def build_dummy_checkpoint(self) -> MockConnectorCheckpoint: method validate_checkpoint_json (line 138) | def validate_checkpoint_json(self, checkpoint_json: str) -> MockConnec... FILE: backend/onyx/connectors/models.py class InputType (line 21) | class InputType(str, Enum): class ConnectorMissingCredentialError (line 28) | class ConnectorMissingCredentialError(PermissionError): method __init__ (line 29) | def __init__(self, connector_name: str) -> None: class Section (line 36) | class Section(BaseModel): class TextSection (line 44) | class TextSection(Section): method __sizeof__ (line 49) | def __sizeof__(self) -> int: class ImageSection (line 53) | class ImageSection(Section): method __sizeof__ (line 58) | def __sizeof__(self) -> int: class BasicExpertInfo (line 62) | class BasicExpertInfo(BaseModel): method get_semantic_name (line 77) | def get_semantic_name(self) -> str: method get_email (line 96) | def get_email(self) -> str | None: method __eq__ (line 99) | def __eq__(self, other: Any) -> bool: method __hash__ (line 116) | def __hash__(self) -> int: method __sizeof__ (line 127) | def __sizeof__(self) -> int: method from_dict (line 136) | def from_dict(cls, model_dict: dict[str, Any]) -> "BasicExpertInfo": class DocumentBase (line 160) | class DocumentBase(BaseModel): method _coerce_metadata_values (line 173) | def _coerce_metadata_values(cls, v: dict[str, Any]) -> dict[str, str |... method get_title_for_document_index (line 209) | def get_title_for_document_index( method get_metadata_str_attributes (line 222) | def get_metadata_str_attributes(self) -> list[str] | None: method __sizeof__ (line 228) | def __sizeof__(self) -> int: method get_text_content (line 254) | def get_text_content(self) -> str: function convert_metadata_dict_to_list_of_strings (line 258) | def convert_metadata_dict_to_list_of_strings( function convert_metadata_list_of_strings_to_dict (line 286) | def convert_metadata_list_of_strings_to_dict( class Document (line 321) | class Document(DocumentBase): method to_short_descriptor (line 327) | def to_short_descriptor(self) -> str: method from_base (line 332) | def from_base(cls, base: DocumentBase) -> "Document": method __sizeof__ (line 350) | def __sizeof__(self) -> int: class IndexingDocument (line 357) | class IndexingDocument(Document): method get_total_char_length (line 362) | def get_total_char_length(self) -> int: class SlimDocument (line 385) | class SlimDocument(BaseModel): class HierarchyNode (line 391) | class HierarchyNode(BaseModel): class IndexAttemptMetadata (line 426) | class IndexAttemptMetadata(BaseModel): class ConnectorCheckpoint (line 437) | class ConnectorCheckpoint(BaseModel): method __str__ (line 441) | def __str__(self) -> str: class DocumentFailure (line 451) | class DocumentFailure(BaseModel): class EntityFailure (line 456) | class EntityFailure(BaseModel): class ConnectorFailure (line 461) | class ConnectorFailure(BaseModel): method check_failed_fields (line 470) | def check_failed_fields(cls, values: dict) -> dict: class ConnectorStopSignal (line 482) | class ConnectorStopSignal(Exception): class OnyxMetadata (line 486) | class OnyxMetadata(BaseModel): class DocExtractionContext (line 499) | class DocExtractionContext(BaseModel): class DocIndexingContext (line 513) | class DocIndexingContext(BaseModel): FILE: backend/onyx/connectors/notion/connector.py class NotionPage (line 50) | class NotionPage(BaseModel): class NotionDataSource (line 66) | class NotionDataSource(BaseModel): class NotionBlock (line 73) | class NotionBlock(BaseModel): class NotionSearchResponse (line 83) | class NotionSearchResponse(BaseModel): class BlockReadOutput (line 91) | class BlockReadOutput(BaseModel): class NotionConnector (line 99) | class NotionConnector(LoadConnector, PollConnector): method __init__ (line 107) | def __init__( method normalize_url (line 143) | def normalize_url(cls, url: str) -> NormalizationResult: method _fetch_child_blocks (line 183) | def _fetch_child_blocks( method _fetch_page (line 218) | def _fetch_page(self, page_id: str) -> NotionPage: method _fetch_database_as_page (line 239) | def _fetch_database_as_page(self, database_id: str) -> NotionPage: method _fetch_data_sources_for_database (line 268) | def _fetch_data_sources_for_database( method _fetch_data_source (line 300) | def _fetch_data_source( method _fetch_workspace_info (line 328) | def _fetch_workspace_info(self) -> tuple[str, str]: method _get_workspace_hierarchy_node (line 343) | def _get_workspace_hierarchy_node(self) -> HierarchyNode | None: method _get_parent_raw_id (line 363) | def _get_parent_raw_id( method _maybe_yield_hierarchy_node (line 396) | def _maybe_yield_hierarchy_node( method _properties_to_str (line 428) | def _properties_to_str(properties: dict[str, Any]) -> str: method _read_pages_from_database (line 509) | def _read_pages_from_database( method _read_blocks (line 598) | def _read_blocks( method _read_page_title (line 717) | def _read_page_title(self, page: NotionPage) -> str | None: method _read_pages (line 729) | def _read_pages( method _search_notion (line 844) | def _search_notion(self, query_dict: dict[str, Any]) -> NotionSearchRe... method _yield_database_hierarchy_nodes (line 858) | def _yield_database_hierarchy_nodes( method _filter_pages_by_time (line 925) | def _filter_pages_by_time( method _recursive_load (line 951) | def _recursive_load(self) -> GenerateDocumentsOutput: method load_credentials (line 968) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method load_from_state (line 975) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 1009) | def poll_source( method validate_connector_settings (line 1054) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/outline/client.py class OutlineClientRequestFailedError (line 11) | class OutlineClientRequestFailedError(ConnectionError): method __init__ (line 14) | def __init__(self, status: int, error: str) -> None: class OutlineApiClient (line 20) | class OutlineApiClient: method __init__ (line 23) | def __init__( method post (line 31) | def post(self, endpoint: str, data: dict[str, Any] | None = None) -> d... method _build_headers (line 75) | def _build_headers(self) -> dict[str, str]: method _build_url (line 82) | def _build_url(self, endpoint: str) -> str: method build_app_url (line 85) | def build_app_url(self, endpoint: str) -> str: FILE: backend/onyx/connectors/outline/connector.py class OutlineConnector (line 24) | class OutlineConnector(LoadConnector, PollConnector): method __init__ (line 29) | def __init__( method load_credentials (line 36) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _get_doc_batch (line 49) | def _get_doc_batch( method _collection_to_document (line 67) | def _collection_to_document( method _document_to_document (line 93) | def _document_to_document( method load_from_state (line 118) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 124) | def poll_source( method _fetch_documents (line 144) | def _fetch_documents( method validate_connector_settings (line 183) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/productboard/connector.py class ProductboardApiError (line 30) | class ProductboardApiError(Exception): class ProductboardConnector (line 34) | class ProductboardConnector(PollConnector): method __init__ (line 35) | def __init__( method load_credentials (line 42) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _build_headers (line 46) | def _build_headers(self) -> dict[str, str]: method _parse_description_html (line 53) | def _parse_description_html(description_html: str) -> str: method _get_owner_email (line 58) | def _get_owner_email(productboard_obj: dict[str, Any]) -> str | None: method _fetch_documents (line 64) | def _fetch_documents( method _get_features (line 93) | def _get_features(self) -> Generator[Document, None, None]: method _get_components (line 125) | def _get_components(self) -> Generator[Document, None, None]: method _get_products (line 150) | def _get_products(self) -> Generator[Document, None, None]: method _get_objectives (line 176) | def _get_objectives(self) -> Generator[Document, None, None]: method _is_updated_at_out_of_time_range (line 204) | def _is_updated_at_out_of_time_range( method poll_source (line 223) | def poll_source( FILE: backend/onyx/connectors/registry.py class ConnectorMapping (line 8) | class ConnectorMapping(BaseModel): FILE: backend/onyx/connectors/salesforce/connector.py function _convert_to_metadata_value (line 46) | def _convert_to_metadata_value(value: Any) -> str | list[str]: class SalesforceCheckpoint (line 83) | class SalesforceCheckpoint(ConnectorCheckpoint): class SalesforceConnectorContext (line 88) | class SalesforceConnectorContext: function _extract_fields_and_associations_from_config (line 107) | def _extract_fields_and_associations_from_config( function _validate_custom_query_config (line 128) | def _validate_custom_query_config(config: dict[str, Any]) -> None: class SalesforceConnector (line 165) | class SalesforceConnector(LoadConnector, PollConnector, SlimConnectorWit... method __init__ (line 208) | def __init__( method load_credentials (line 232) | def load_credentials( method sf_client (line 246) | def sf_client(self) -> OnyxSalesforce: method reconstruct_object_types (line 252) | def reconstruct_object_types(directory: str) -> dict[str, list[str] | ... method _download_object_csvs (line 274) | def _download_object_csvs( method _load_csvs_to_db (line 319) | def _load_csvs_to_db( method _yield_doc_batches (line 447) | def _yield_doc_batches( method _full_sync (line 529) | def _full_sync( method _delta_sync (line 644) | def _delta_sync( method _make_context (line 877) | def _make_context( method load_from_state (line 1118) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 1127) | def poll_source( method retrieve_all_slim_docs_perm_sync (line 1135) | def retrieve_all_slim_docs_perm_sync( method validate_connector_settings (line 1155) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/salesforce/doc_conversion.py function _clean_salesforce_dict (line 28) | def _clean_salesforce_dict(data: dict | list) -> dict | list: function _json_to_natural_language (line 82) | def _json_to_natural_language(data: dict | list, indent: int = 0) -> str: function _extract_section (line 114) | def _extract_section(salesforce_object_data: dict[str, Any], link: str) ... function _extract_primary_owner (line 129) | def _extract_primary_owner( function convert_sf_query_result_to_doc (line 162) | def convert_sf_query_result_to_doc( function convert_sf_object_to_doc (line 203) | def convert_sf_object_to_doc( FILE: backend/onyx/connectors/salesforce/onyx_salesforce.py function is_salesforce_rate_limit_error (line 23) | def is_salesforce_rate_limit_error(exception: Exception) -> bool: class OnyxSalesforce (line 30) | class OnyxSalesforce(Salesforce): method __init__ (line 33) | def __init__(self, *args: Any, **kwargs: Any) -> None: method initialize (line 50) | def initialize(self) -> bool: method is_blacklisted (line 54) | def is_blacklisted(self, object_type: str) -> bool: method safe_query (line 77) | def safe_query(self, query: str, **kwargs: Any) -> dict[str, Any]: method safe_query_all (line 98) | def safe_query_all(self, query: str, **kwargs: Any) -> dict[str, Any]: method _make_child_objects_by_id_query (line 112) | def _make_child_objects_by_id_query( method query_object (line 148) | def query_object( method get_child_objects_by_id (line 171) | def get_child_objects_by_id( method describe_type (line 254) | def describe_type(self, name: str) -> Any: method get_queryable_fields_by_type (line 268) | def get_queryable_fields_by_type(self, name: str) -> set[str]: method get_children_of_sf_type (line 292) | def get_children_of_sf_type(self, sf_type: str) -> dict[str, str]: method _is_valid_child_object (line 326) | def _is_valid_child_object( method get_parent_reference_fields (line 353) | def get_parent_reference_fields( FILE: backend/onyx/connectors/salesforce/salesforce_calls.py function is_salesforce_rate_limit_error (line 24) | def is_salesforce_rate_limit_error(exception: Exception) -> bool: function _build_last_modified_time_filter_for_salesforce (line 31) | def _build_last_modified_time_filter_for_salesforce( function _build_created_date_time_filter_for_salesforce (line 41) | def _build_created_date_time_filter_for_salesforce( function _make_time_filter_for_sf_type (line 51) | def _make_time_filter_for_sf_type( function _make_time_filtered_query (line 66) | def _make_time_filtered_query( function get_object_by_id_query (line 73) | def get_object_by_id_query( function _object_type_has_api_data (line 90) | def _object_type_has_api_data( function _bulk_retrieve_from_salesforce (line 117) | def _bulk_retrieve_from_salesforce( function fetch_all_csvs_in_parallel (line 188) | def fetch_all_csvs_in_parallel( FILE: backend/onyx/connectors/salesforce/shelve_stuff/old_test_salesforce_shelves.py function clear_sf_db (line 119) | def clear_sf_db() -> None: function create_csv_file (line 126) | def create_csv_file( function create_csv_with_example_data (line 158) | def create_csv_with_example_data() -> None: function test_query (line 351) | def test_query() -> None: function test_upsert (line 434) | def test_upsert() -> None: function test_relationships (line 478) | def test_relationships() -> None: function test_account_with_children (line 541) | def test_account_with_children() -> None: function test_relationship_updates (line 605) | def test_relationship_updates() -> None: function test_get_affected_parent_ids (line 654) | def test_get_affected_parent_ids() -> None: function main_build (line 725) | def main_build() -> None: FILE: backend/onyx/connectors/salesforce/shelve_stuff/shelve_functions.py function _update_relationship_shelves (line 19) | def _update_relationship_shelves( function get_child_ids (line 78) | def get_child_ids(parent_id: str) -> set[str]: function update_sf_db_with_csv (line 91) | def update_sf_db_with_csv( function get_type_from_id (line 132) | def get_type_from_id(object_id: str) -> str | None: function get_record (line 142) | def get_record( function find_ids_by_type (line 166) | def find_ids_by_type(object_type: str) -> list[str]: function get_affected_parent_ids_by_type (line 178) | def get_affected_parent_ids_by_type( FILE: backend/onyx/connectors/salesforce/shelve_stuff/shelve_utils.py function get_object_shelf_path (line 7) | def get_object_shelf_path(object_type: str) -> str: function get_id_type_shelf_path (line 14) | def get_id_type_shelf_path() -> str: function get_parent_to_child_shelf_path (line 20) | def get_parent_to_child_shelf_path() -> str: function get_child_to_parent_shelf_path (line 26) | def get_child_to_parent_shelf_path() -> str: FILE: backend/onyx/connectors/salesforce/shelve_stuff/test_salesforce_shelves.py function clear_sf_db (line 119) | def clear_sf_db() -> None: function create_csv_file (line 126) | def create_csv_file( function create_csv_with_example_data (line 158) | def create_csv_with_example_data() -> None: function test_query (line 351) | def test_query() -> None: function test_upsert (line 434) | def test_upsert() -> None: function test_relationships (line 478) | def test_relationships() -> None: function test_account_with_children (line 541) | def test_account_with_children() -> None: function test_relationship_updates (line 605) | def test_relationship_updates() -> None: function test_get_affected_parent_ids (line 654) | def test_get_affected_parent_ids() -> None: function main_build (line 725) | def main_build() -> None: FILE: backend/onyx/connectors/salesforce/sqlite_functions.py class OnyxSalesforceSQLite (line 29) | class OnyxSalesforceSQLite: method __init__ (line 40) | def __init__(self, filename: str, isolation_level: str | None = None): method __del__ (line 49) | def __del__(self) -> None: method file_size (line 53) | def file_size(self) -> int: method connect (line 64) | def connect(self) -> None: method close (line 80) | def close(self) -> None: method cursor (line 87) | def cursor(self) -> sqlite3.Cursor: method flush (line 93) | def flush(self) -> None: method apply_schema (line 103) | def apply_schema(self) -> None: method _recover_from_corruption (line 120) | def _recover_from_corruption(self) -> None: method _apply_schema_impl (line 135) | def _apply_schema_impl(self) -> None: method get_user_id_by_email (line 275) | def get_user_id_by_email(self, email: str) -> str | None: method update_email_to_id_table (line 299) | def update_email_to_id_table(self, email: str, id: str | None) -> None: method log_stats (line 312) | def log_stats(self) -> None: method get_changed_parent_ids_by_type (line 331) | def get_changed_parent_ids_by_type( method get_changed_parent_ids_by_type_2 (line 405) | def get_changed_parent_ids_by_type_2( method object_type_count (line 486) | def object_type_count(self, object_type: str) -> int: method normalize_record (line 508) | def normalize_record( method update_from_csv (line 554) | def update_from_csv( method get_child_ids (line 614) | def get_child_ids(self, parent_id: str) -> set[str]: method get_type_from_id (line 630) | def get_type_from_id(self, object_id: str) -> str | None: method get_record (line 646) | def get_record( method find_ids_by_type (line 698) | def find_ids_by_type(self, object_type: str) -> list[str]: method _update_relationship_tables (line 712) | def _update_relationship_tables( method _update_user_email_map (line 779) | def _update_user_email_map(cursor: sqlite3.Cursor) -> None: method make_basic_expert_info_from_record (line 794) | def make_basic_expert_info_from_record( FILE: backend/onyx/connectors/salesforce/utils.py class SalesforceObject (line 13) | class SalesforceObject: method to_dict (line 18) | def to_dict(self) -> dict[str, Any]: method from_dict (line 26) | def from_dict(cls, data: dict[str, Any]) -> "SalesforceObject": function get_sqlite_db_path (line 39) | def get_sqlite_db_path(directory: str) -> str: function remove_sqlite_db_files (line 44) | def remove_sqlite_db_files(db_path: str) -> None: function get_object_type_path (line 66) | def get_object_type_path(object_type: str) -> str: function validate_salesforce_id (line 77) | def validate_salesforce_id(salesforce_id: str) -> bool: FILE: backend/onyx/connectors/sharepoint/connector.py function _is_site_excluded (line 89) | def _is_site_excluded(site_url: str, excluded_site_patterns: list[str]) ... function _is_path_excluded (line 99) | def _is_path_excluded(item_path: str, excluded_path_patterns: list[str])... function _build_item_relative_path (line 113) | def _build_item_relative_path(parent_reference_path: str | None, item_na... class DriveItemData (line 135) | class DriveItemData(BaseModel): method from_graph_json (line 155) | def from_graph_json(cls, item: dict[str, Any]) -> "DriveItemData": method to_sdk_driveitem (line 181) | def to_sdk_driveitem(self, graph_client: GraphClient) -> DriveItem: class SiteDescriptor (line 201) | class SiteDescriptor(BaseModel): class CertificateData (line 218) | class CertificateData(BaseModel): function _site_page_in_time_window (line 225) | def _site_page_in_time_window( function sleep_and_retry (line 244) | def sleep_and_retry( class SharepointConnectorCheckpoint (line 280) | class SharepointConnectorCheckpoint(ConnectorCheckpoint): class SharepointAuthMethod (line 305) | class SharepointAuthMethod(Enum): class SizeCapExceeded (line 310) | class SizeCapExceeded(Exception): function _log_and_raise_for_status (line 314) | def _log_and_raise_for_status(response: requests.Response) -> None: function _is_graph_invalid_request (line 326) | def _is_graph_invalid_request(response: requests.Response) -> bool: function load_certificate_from_pfx (line 340) | def load_certificate_from_pfx(pfx_data: bytes, password: str) -> Certifi... function acquire_token_for_rest (line 368) | def acquire_token_for_rest( function _create_document_failure (line 379) | def _create_document_failure( function _create_entity_failure (line 395) | def _create_entity_failure( function _probe_remote_size (line 412) | def _probe_remote_size(url: str, timeout: int) -> int | None: function _download_with_cap (line 446) | def _download_with_cap(url: str, timeout: int, cap: int) -> bytes: function _download_via_graph_api (line 484) | def _download_via_graph_api( function _convert_driveitem_to_document_with_permissions (line 511) | def _convert_driveitem_to_document_with_permissions( function _convert_sitepage_to_document (line 681) | def _convert_sitepage_to_document( function _convert_driveitem_to_slim_document (line 843) | def _convert_driveitem_to_slim_document( function _convert_sitepage_to_slim_document (line 870) | def _convert_sitepage_to_slim_document( class SharepointConnector (line 897) | class SharepointConnector( method __init__ (line 901) | def __init__( method validate_connector_settings (line 946) | def validate_connector_settings(self) -> None: method _extract_tenant_domain_from_sites (line 963) | def _extract_tenant_domain_from_sites(self) -> str | None: method _resolve_tenant_domain_from_root_site (line 982) | def _resolve_tenant_domain_from_root_site(self) -> str: method _resolve_tenant_domain (line 999) | def _resolve_tenant_domain(self) -> str: method graph_client (line 1014) | def graph_client(self) -> GraphClient: method _create_rest_client_context (line 1020) | def _create_rest_client_context(self, site_url: str) -> ClientContext: method _strip_share_link_tokens (line 1059) | def _strip_share_link_tokens(path: str) -> list[str]: method _normalize_sharepoint_url (line 1069) | def _normalize_sharepoint_url(url: str) -> tuple[str | None, list[str]]: method _extract_site_and_drive_info (line 1086) | def _extract_site_and_drive_info(site_urls: list[str]) -> list[SiteDes... method _resolve_drive (line 1131) | def _resolve_drive( method _get_drive_items_for_drive_id (line 1163) | def _get_drive_items_for_drive_id( method _fetch_driveitems (line 1208) | def _fetch_driveitems( method _handle_paginated_sites (line 1279) | def _handle_paginated_sites( method _is_driveitem_excluded (line 1289) | def _is_driveitem_excluded(self, driveitem: DriveItemData) -> bool: method _filter_excluded_sites (line 1298) | def _filter_excluded_sites( method fetch_sites (line 1312) | def fetch_sites(self) -> list[SiteDescriptor]: method _fetch_site_pages (line 1330) | def _fetch_site_pages( method _fetch_site_pages_individually (line 1392) | def _fetch_site_pages_individually( method _try_expand_single_page (line 1448) | def _try_expand_single_page( method _acquire_token (line 1474) | def _acquire_token(self) -> dict[str, Any]: method _get_graph_access_token (line 1486) | def _get_graph_access_token(self) -> str: method _graph_api_get_json (line 1493) | def _graph_api_get_json( method _iter_drive_items_paged (line 1540) | def _iter_drive_items_paged( method _iter_drive_items_delta (line 1597) | def _iter_drive_items_delta( method _iter_delta_pages (line 1629) | def _iter_delta_pages( method _build_delta_start_url (line 1690) | def _build_delta_start_url( method _fetch_one_delta_page (line 1709) | def _fetch_one_delta_page( method _clear_drive_checkpoint_state (line 1758) | def _clear_drive_checkpoint_state( method _fetch_slim_documents_from_sharepoint (line 1768) | def _fetch_slim_documents_from_sharepoint( method load_credentials (line 1872) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _get_drive_names_for_site (line 1943) | def _get_drive_names_for_site(self, site_url: str) -> list[str]: method _build_folder_url (line 1959) | def _build_folder_url( method _extract_folder_path_from_parent_reference (line 1972) | def _extract_folder_path_from_parent_reference( method _yield_site_hierarchy_node (line 1993) | def _yield_site_hierarchy_node( method _yield_drive_hierarchy_node (line 2020) | def _yield_drive_hierarchy_node( method _yield_folder_hierarchy_nodes (line 2044) | def _yield_folder_hierarchy_nodes( method _get_parent_hierarchy_url (line 2095) | def _get_parent_hierarchy_url( method _load_from_checkpoint (line 2118) | def _load_from_checkpoint( method load_from_checkpoint (line 2546) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 2556) | def load_from_checkpoint_with_perm_sync( method build_dummy_checkpoint (line 2566) | def build_dummy_checkpoint(self) -> SharepointConnectorCheckpoint: method validate_checkpoint_json (line 2569) | def validate_checkpoint_json( method retrieve_all_slim_docs_perm_sync (line 2574) | def retrieve_all_slim_docs_perm_sync( FILE: backend/onyx/connectors/sharepoint/connector_utils.py function get_sharepoint_external_access (line 13) | def get_sharepoint_external_access( FILE: backend/onyx/connectors/slab/connector.py function run_graphql_request (line 40) | def run_graphql_request( function get_all_post_ids (line 72) | def get_all_post_ids(bot_token: str) -> list[str]: function get_post_by_id (line 90) | def get_post_by_id(post_id: str, bot_token: str) -> dict[str, str]: function iterate_post_batches (line 106) | def iterate_post_batches( function get_slab_url_from_title_id (line 155) | def get_slab_url_from_title_id(base_url: str, title: str, page_id: str) ... class SlabConnector (line 169) | class SlabConnector(LoadConnector, PollConnector, SlimConnectorWithPermS... method __init__ (line 170) | def __init__( method load_credentials (line 179) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method slab_bot_token (line 184) | def slab_bot_token(self) -> str: method _iterate_posts (line 189) | def _iterate_posts( method load_from_state (line 231) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 234) | def poll_source( method retrieve_all_slim_docs_perm_sync (line 244) | def retrieve_all_slim_docs_perm_sync( method validate_connector_settings (line 263) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/slack/access.py function get_channel_access (line 13) | def get_channel_access( FILE: backend/onyx/connectors/slack/connector.py class SlackCheckpoint (line 80) | class SlackCheckpoint(ConnectorCheckpoint): function _collect_paginated_channels (line 95) | def _collect_paginated_channels( function get_channels (line 112) | def get_channels( function get_channel_messages (line 148) | def get_channel_messages( function get_thread (line 178) | def get_thread(client: WebClient, channel_id: str, thread_id: str) -> Th... function get_latest_message_time (line 188) | def get_latest_message_time(thread: ThreadType) -> datetime: function _build_doc_id (line 193) | def _build_doc_id(channel_id: str, thread_ts: str) -> str: function thread_to_doc (line 197) | def thread_to_doc( class SlackMessageFilterReason (line 287) | class SlackMessageFilterReason(str, Enum): function default_msg_filter (line 292) | def default_msg_filter(message: MessageType) -> SlackMessageFilterReason... function _bot_inclusive_msg_filter (line 311) | def _bot_inclusive_msg_filter( function filter_channels (line 323) | def filter_channels( function _channel_to_hierarchy_node (line 359) | def _channel_to_hierarchy_node( function _get_channel_by_id (line 387) | def _get_channel_by_id(client: WebClient, channel_id: str) -> ChannelType: function _get_messages (line 406) | def _get_messages( function _message_to_doc (line 448) | def _message_to_doc( function _get_all_doc_ids (line 510) | def _get_all_doc_ids( class ProcessedSlackMessage (line 579) | class ProcessedSlackMessage(BaseModel): function _process_message (line 592) | def _process_message( class SlackConnector (line 647) | class SlackConnector( method __init__ (line 668) | def __init__( method normalize_url (line 703) | def normalize_url(cls, url: str) -> NormalizationResult: method make_credential_prefix (line 739) | def make_credential_prefix(key: str) -> str: method make_delay_lock (line 743) | def make_delay_lock(prefix: str) -> str: method make_delay_key (line 747) | def make_delay_key(prefix: str) -> str: method make_slack_web_client (line 751) | def make_slack_web_client( method channels (line 790) | def channels(self) -> list[str] | None: method channels (line 794) | def channels(self, channels: list[str] | None) -> None: method load_credentials (line 799) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method set_credentials_provider (line 802) | def set_credentials_provider( method retrieve_all_slim_docs_perm_sync (line 852) | def retrieve_all_slim_docs_perm_sync( method _load_from_checkpoint (line 872) | def _load_from_checkpoint( method load_from_checkpoint (line 1144) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 1154) | def load_from_checkpoint_with_perm_sync( method validate_connector_settings (line 1164) | def validate_connector_settings(self) -> None: method build_dummy_checkpoint (line 1259) | def build_dummy_checkpoint(self) -> SlackCheckpoint: method validate_checkpoint_json (line 1270) | def validate_checkpoint_json(self, checkpoint_json: str) -> SlackCheck... FILE: backend/onyx/connectors/slack/models.py class ChannelTopicPurposeType (line 6) | class ChannelTopicPurposeType(TypedDict): class ChannelType (line 16) | class ChannelType(TypedDict): class AttachmentType (line 47) | class AttachmentType(TypedDict): class BotProfileType (line 61) | class BotProfileType(TypedDict): class MessageType (line 74) | class MessageType(TypedDict): FILE: backend/onyx/connectors/slack/onyx_retry_handler.py class OnyxRedisSlackRetryHandler (line 16) | class OnyxRedisSlackRetryHandler(RetryHandler): method __init__ (line 34) | def __init__( method _can_retry (line 48) | def _can_retry( method prepare_for_next_attempt (line 58) | def prepare_for_next_attempt( FILE: backend/onyx/connectors/slack/onyx_slack_web_client.py class OnyxSlackWebClient (line 20) | class OnyxSlackWebClient(WebClient): method __init__ (line 31) | def __init__( method _perform_urllib_http_request (line 41) | def _perform_urllib_http_request( method _perform_urllib_http_request_internal (line 88) | def _perform_urllib_http_request_internal( FILE: backend/onyx/connectors/slack/utils.py function get_base_url (line 32) | def get_base_url(token: str) -> str: function get_message_link (line 38) | def get_message_link(event: MessageType, client: WebClient, channel_id: ... function make_slack_api_call (line 50) | def make_slack_api_call( function make_paginated_slack_api_call (line 56) | def make_paginated_slack_api_call( function _make_slack_api_call_paginated (line 62) | def _make_slack_api_call_paginated( function expert_info_from_slack_id (line 151) | def expert_info_from_slack_id( class SlackTextCleaner (line 183) | class SlackTextCleaner: method __init__ (line 188) | def __init__(self, client: WebClient) -> None: method _get_slack_name (line 192) | def _get_slack_name(self, user_id: str) -> str: method _replace_user_ids_with_names (line 209) | def _replace_user_ids_with_names(self, message: str) -> str: method index_clean (line 230) | def index_clean(self, message: str) -> str: method replace_tags_basic (line 243) | def replace_tags_basic(message: str) -> str: method replace_channels_basic (line 253) | def replace_channels_basic(message: str) -> str: method replace_special_mentions (line 265) | def replace_special_mentions(message: str) -> str: method replace_special_catchall (line 275) | def replace_special_catchall(message: str) -> str: method add_zero_width_whitespace_after_tag (line 284) | def add_zero_width_whitespace_after_tag(message: str) -> str: FILE: backend/onyx/connectors/teams/connector.py class TeamsCheckpoint (line 50) | class TeamsCheckpoint(ConnectorCheckpoint): class TeamsConnector (line 58) | class TeamsConnector( method __init__ (line 64) | def __init__( method load_credentials (line 85) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method validate_connector_settings (line 118) | def validate_connector_settings(self) -> None: method build_dummy_checkpoint (line 191) | def build_dummy_checkpoint(self) -> TeamsCheckpoint: method validate_checkpoint_json (line 196) | def validate_checkpoint_json(self, checkpoint_json: str) -> TeamsCheck... method load_from_checkpoint (line 199) | def load_from_checkpoint( method load_from_checkpoint_with_perm_sync (line 264) | def load_from_checkpoint_with_perm_sync( method retrieve_all_slim_docs_perm_sync (line 276) | def retrieve_all_slim_docs_perm_sync( function _escape_odata_string (line 344) | def _escape_odata_string(name: str) -> str: function _has_odata_incompatible_chars (line 356) | def _has_odata_incompatible_chars(team_names: list[str] | None) -> bool: function _can_use_odata_filter (line 367) | def _can_use_odata_filter( function _build_simple_odata_filter (line 395) | def _build_simple_odata_filter(safe_names: list[str]) -> str | None: function _construct_semantic_identifier (line 408) | def _construct_semantic_identifier(channel: Channel, top_message: Messag... function _convert_thread_to_document (line 443) | def _convert_thread_to_document( function _update_request_url (line 491) | def _update_request_url(request: RequestOptions, next_url: str) -> None: function _add_prefer_header (line 495) | def _add_prefer_header(request: RequestOptions) -> None: function _collect_all_teams (line 505) | def _collect_all_teams( function _normalize_team_name (line 645) | def _normalize_team_name(name: str) -> str: function _matches_requested_team (line 653) | def _matches_requested_team( function _filter_team (line 702) | def _filter_team( function _get_team_by_id (line 732) | def _get_team_by_id( function _collect_all_channels_from_team (line 749) | def _collect_all_channels_from_team( function _collect_documents_for_channel (line 778) | def _collect_documents_for_channel( FILE: backend/onyx/connectors/teams/models.py class Body (line 9) | class Body(BaseModel): class User (line 19) | class User(BaseModel): class From (line 29) | class From(BaseModel): class Message (line 38) | class Message(BaseModel): FILE: backend/onyx/connectors/teams/utils.py function _sanitize_message_user_display_name (line 23) | def _sanitize_message_user_display_name(value: dict) -> dict: function _retry (line 40) | def _retry( function _get_next_url (line 71) | def _get_next_url( function _get_or_fetch_email (line 88) | def _get_or_fetch_email( function _is_channel_public (line 110) | def _is_channel_public(channel: Channel) -> bool: function fetch_messages (line 116) | def fetch_messages( function fetch_replies (line 141) | def fetch_replies( function fetch_expert_infos (line 164) | def fetch_expert_infos( function fetch_external_access (line 193) | def fetch_external_access( FILE: backend/onyx/connectors/testrail/connector.py class TestRailConnector (line 34) | class TestRailConnector(LoadConnector, PollConnector): method __init__ (line 56) | def __init__( method _sanitize_rich_text (line 110) | def _sanitize_rich_text(value: Any) -> str: method load_credentials (line 133) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method validate_connector_settings (line 140) | def validate_connector_settings(self) -> None: method _api_get (line 147) | def _api_get(self, endpoint: str, params: Optional[dict[str, Any]] = N... method _list_projects (line 183) | def _list_projects(self) -> list[dict[str, Any]]: method _list_suites (line 190) | def _list_suites(self, project_id: int) -> list[dict[str, Any]]: method _get_case_fields (line 201) | def _get_case_fields(self) -> list[dict[str, Any]]: method _parse_items_string (line 210) | def _parse_items_string(self, items_str: str) -> dict[str, str]: method _build_field_maps (line 232) | def _build_field_maps(self) -> tuple[dict[str, str], dict[str, dict[st... method _get_field_labels (line 269) | def _get_field_labels(self) -> dict[str, str]: method _get_value_maps (line 275) | def _get_value_maps(self) -> dict[str, dict[str, str]]: method _map_field_value (line 281) | def _map_field_value(self, field_name: str, field_value: Any) -> str: method _get_cases (line 307) | def _get_cases( method _iter_cases (line 322) | def _iter_cases( method _build_case_link (line 352) | def _build_case_link(self, project_id: int, case_id: int) -> str: # n... method _doc_from_case (line 356) | def _doc_from_case( method _generate_documents (line 474) | def _generate_documents( method load_from_state (line 526) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 529) | def poll_source( FILE: backend/onyx/connectors/web/connector.py class ScrapeSessionContext (line 49) | class ScrapeSessionContext: method __init__ (line 52) | def __init__(self, base_url: str, to_visit: list[str]): method initialize (line 67) | def initialize(self) -> None: method stop (line 71) | def stop(self) -> None: class ScrapeResult (line 81) | class ScrapeResult: class WEB_CONNECTOR_VALID_SETTINGS (line 119) | class WEB_CONNECTOR_VALID_SETTINGS(str, Enum): function protected_url_check (line 130) | def protected_url_check(url: str) -> None: function check_internet_connection (line 164) | def check_internet_connection(url: str) -> None: function is_valid_url (line 208) | def is_valid_url(url: str) -> bool: function _same_site (line 216) | def _same_site(base_url: str, candidate_url: str) -> bool: function get_internal_links (line 235) | def get_internal_links( function start_playwright (line 260) | def start_playwright() -> Tuple[Playwright, BrowserContext]: function extract_urls_from_sitemap (line 339) | def extract_urls_from_sitemap(sitemap_url: str) -> list[str]: function _ensure_absolute_url (line 373) | def _ensure_absolute_url(source_url: str, maybe_relative_url: str) -> str: function _ensure_valid_url (line 379) | def _ensure_valid_url(url: str) -> str: function _read_urls_file (line 385) | def _read_urls_file(location: str) -> list[str]: function _get_datetime_from_last_modified_header (line 391) | def _get_datetime_from_last_modified_header(last_modified: str) -> datet... function _handle_cookies (line 400) | def _handle_cookies(context: BrowserContext, url: str) -> None: class WebConnector (line 441) | class WebConnector(LoadConnector): method __init__ (line 444) | def __init__( method load_credentials (line 486) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _do_scrape (line 491) | def _do_scrape( method load_from_state (line 669) | def load_from_state(self) -> GenerateDocumentsOutput: method validate_connector_settings (line 745) | def validate_connector_settings(self) -> None: FILE: backend/onyx/connectors/wikipedia/connector.py class WikipediaConnector (line 8) | class WikipediaConnector(wiki.MediaWikiConnector): method __init__ (line 13) | def __init__( FILE: backend/onyx/connectors/xenforo/connector.py function get_title (line 39) | def get_title(soup: BeautifulSoup) -> str: function get_pages (line 49) | def get_pages(soup: BeautifulSoup, url: str) -> list[str]: function parse_post_date (line 64) | def parse_post_date(post_element: BeautifulSoup) -> datetime: function scrape_page_posts (line 79) | def scrape_page_posts( class XenforoConnector (line 126) | class XenforoConnector(LoadConnector): method __init__ (line 130) | def __init__(self, base_url: str) -> None: method load_credentials (line 142) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method load_from_state (line 147) | def load_from_state(self) -> GenerateDocumentsOutput: method get_threads (line 207) | def get_threads(self, url: str) -> list[str]: method requestsite (line 222) | def requestsite(self, url: str) -> BeautifulSoup: FILE: backend/onyx/connectors/zendesk/connector.py class ZendeskCredentialsNotSetUpError (line 47) | class ZendeskCredentialsNotSetUpError(PermissionError): method __init__ (line 48) | def __init__(self) -> None: class ZendeskClient (line 54) | class ZendeskClient: method __init__ (line 55) | def __init__( function request_with_rate_limit (line 67) | def request_with_rate_limit( class ZendeskPageResponse (line 99) | class ZendeskPageResponse(BaseModel): function _get_content_tag_mapping (line 105) | def _get_content_tag_mapping(client: ZendeskClient) -> dict[str, str]: function _get_articles (line 127) | def _get_articles( function _get_article_page (line 144) | def _get_article_page( function _get_tickets (line 164) | def _get_tickets( function _get_tickets_page (line 181) | def _get_tickets_page( function _fetch_author (line 201) | def _fetch_author( function _article_to_document (line 222) | def _article_to_document( function _get_comment_text (line 272) | def _get_comment_text( function _ticket_to_document (line 295) | def _ticket_to_document( class ZendeskConnectorCheckpoint (line 368) | class ZendeskConnectorCheckpoint(ConnectorCheckpoint): class ZendeskConnector (line 379) | class ZendeskConnector( method __init__ (line 382) | def __init__( method load_credentials (line 393) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method load_from_checkpoint (line 411) | def load_from_checkpoint( method _retrieve_articles (line 434) | def _retrieve_articles( method _retrieve_tickets (line 506) | def _retrieve_tickets( method retrieve_all_slim_docs_perm_sync (line 569) | def retrieve_all_slim_docs_perm_sync( method validate_connector_settings (line 608) | def validate_connector_settings(self) -> None: method validate_checkpoint_json (line 634) | def validate_checkpoint_json( method build_dummy_checkpoint (line 640) | def build_dummy_checkpoint(self) -> ZendeskConnectorCheckpoint: FILE: backend/onyx/connectors/zulip/connector.py class ZulipConnector (line 39) | class ZulipConnector(LoadConnector, PollConnector): method __init__ (line 40) | def __init__( method load_credentials (line 78) | def load_credentials(self, credentials: dict[str, Any]) -> dict[str, A... method _message_to_narrow_link (line 93) | def _message_to_narrow_link(self, m: Message) -> str: method _get_message_batch (line 106) | def _get_message_batch(self, anchor: str) -> Tuple[bool, List[Message]]: method _message_to_doc (line 124) | def _message_to_doc(self, message: Message) -> Document: method _get_docs (line 175) | def _get_docs( method _poll_source (line 193) | def _poll_source( method load_from_state (line 212) | def load_from_state(self) -> GenerateDocumentsOutput: method poll_source (line 215) | def poll_source( FILE: backend/onyx/connectors/zulip/schemas.py class Message (line 10) | class Message(BaseModel): class GetMessagesResponse (line 36) | class GetMessagesResponse(BaseModel): FILE: backend/onyx/connectors/zulip/utils.py class ZulipAPIError (line 13) | class ZulipAPIError(Exception): method __init__ (line 14) | def __init__(self, code: Any = None, msg: str | None = None) -> None: method __str__ (line 18) | def __str__(self) -> str: class ZulipHTTPError (line 26) | class ZulipHTTPError(ZulipAPIError): method __init__ (line 27) | def __init__(self, msg: str | None = None, status_code: Any = None) ->... method __str__ (line 31) | def __str__(self) -> str: function __call_with_retry (line 35) | def __call_with_retry(fun: Callable, *args: Any, **kwargs: Any) -> Dict[... function __raise_if_error (line 46) | def __raise_if_error(response: dict[str, Any]) -> None: function call_api (line 58) | def call_api(fun: Callable, *args: Any, **kwargs: Any) -> Dict[str, Any]: function build_search_narrow (line 64) | def build_search_narrow( function encode_zulip_narrow_operand (line 98) | def encode_zulip_narrow_operand(value: str) -> str: FILE: backend/onyx/context/search/enums.py class RecencyBiasSetting (line 8) | class RecencyBiasSetting(str, Enum): class QueryType (line 16) | class QueryType(str, Enum): class SearchType (line 28) | class SearchType(str, Enum): FILE: backend/onyx/context/search/federated/models.py class ChannelMetadata (line 9) | class ChannelMetadata(TypedDict): class SlackMessage (line 18) | class SlackMessage(BaseModel): FILE: backend/onyx/context/search/federated/slack_search.py function fetch_and_cache_channel_metadata (line 66) | def fetch_and_cache_channel_metadata( function get_available_channels (line 236) | def get_available_channels( function get_cached_user_profile (line 244) | def get_cached_user_profile( function batch_get_user_profiles (line 310) | def batch_get_user_profiles( function _extract_channel_data_from_entities (line 328) | def _extract_channel_data_from_entities( function _should_skip_channel (line 364) | def _should_skip_channel( class SlackQueryResult (line 415) | class SlackQueryResult(BaseModel): function query_slack (line 424) | def query_slack( function merge_slack_messages (line 585) | def merge_slack_messages( class SlackRateLimitError (line 623) | class SlackRateLimitError(Exception): class ThreadContextResult (line 627) | class ThreadContextResult: method __init__ (line 632) | def __init__( method success (line 640) | def success(cls, text: str) -> "ThreadContextResult": method rate_limited (line 644) | def rate_limited(cls, original_text: str) -> "ThreadContextResult": method error (line 648) | def error(cls, original_text: str) -> "ThreadContextResult": function _fetch_thread_context (line 652) | def _fetch_thread_context( function _build_thread_text (line 705) | def _build_thread_text( function fetch_thread_contexts_with_rate_limit_handling (line 784) | def fetch_thread_contexts_with_rate_limit_handling( function convert_slack_score (line 893) | def convert_slack_score(slack_score: float) -> float: function slack_retrieval (line 903) | def slack_retrieval( FILE: backend/onyx/context/search/federated/slack_search_utils.py function get_channel_type_for_missing_scope (line 62) | def get_channel_type_for_missing_scope(scope: str) -> str | None: function _parse_llm_code_block_response (line 82) | def _parse_llm_code_block_response(response: str) -> str: function is_recency_query (line 104) | def is_recency_query(query: str) -> bool: function extract_date_range_from_query (line 140) | def extract_date_range_from_query( function matches_exclude_pattern (line 247) | def matches_exclude_pattern(channel_name: str, patterns: list[str]) -> b... function build_channel_query_filter (line 261) | def build_channel_query_filter( function get_channel_type (line 332) | def get_channel_type( function should_include_message (line 373) | def should_include_message(channel_type: ChannelType, entities: dict[str... function extract_channel_references_from_query (line 387) | def extract_channel_references_from_query(query_text: str) -> set[str]: function validate_channel_references (line 424) | def validate_channel_references( function build_channel_override_query (line 486) | def build_channel_override_query(channel_references: set[str], time_filt... function _get_combined_stop_words (line 521) | def _get_combined_stop_words() -> frozenset[str]: function extract_content_words_from_recency_query (line 533) | def extract_content_words_from_recency_query( function _is_valid_keyword_query (line 569) | def _is_valid_keyword_query(line: str) -> bool: function expand_query_with_llm (line 586) | def expand_query_with_llm(query_text: str, llm: LLM) -> list[str]: function build_slack_queries (line 641) | def build_slack_queries( FILE: backend/onyx/context/search/models.py class QueryExpansions (line 16) | class QueryExpansions(BaseModel): class QueryExpansionType (line 21) | class QueryExpansionType(Enum): class SearchSettingsCreationRequest (line 26) | class SearchSettingsCreationRequest(IndexingSetting): method from_db_model (line 28) | def from_db_model( class SavedSearchSettings (line 35) | class SavedSearchSettings(IndexingSetting): method from_db_model (line 39) | def from_db_model(cls, search_settings: SearchSettings) -> "SavedSearc... class Tag (line 59) | class Tag(BaseModel): class BaseFilters (line 64) | class BaseFilters(BaseModel): class UserFileFilters (line 71) | class UserFileFilters(BaseModel): class AssistantKnowledgeFilters (line 81) | class AssistantKnowledgeFilters(BaseModel): class IndexFilters (line 96) | class IndexFilters(BaseFilters, UserFileFilters, AssistantKnowledgeFilte... class BasicChunkRequest (line 103) | class BasicChunkRequest(BaseModel): class ChunkSearchRequest (line 115) | class ChunkSearchRequest(BasicChunkRequest): class ChunkIndexRequest (line 125) | class ChunkIndexRequest(BasicChunkRequest): class ContextExpansionType (line 132) | class ContextExpansionType(str, Enum): class InferenceChunk (line 139) | class InferenceChunk(BaseChunk): method unique_id (line 168) | def unique_id(self) -> str: method __repr__ (line 171) | def __repr__(self) -> str: method __eq__ (line 183) | def __eq__(self, other: Any) -> bool: method __hash__ (line 188) | def __hash__(self) -> int: method __lt__ (line 191) | def __lt__(self, other: Any) -> bool: method __gt__ (line 204) | def __gt__(self, other: Any) -> bool: class InferenceChunkUncleaned (line 216) | class InferenceChunkUncleaned(InferenceChunk): method to_inference_chunk (line 219) | def to_inference_chunk(self) -> InferenceChunk: class InferenceSection (line 231) | class InferenceSection(BaseModel): class SearchDoc (line 240) | class SearchDoc(BaseModel): method from_chunks_or_sections (line 267) | def from_chunks_or_sections( method from_saved_search_doc (line 306) | def from_saved_search_doc(cls, saved_search_doc: "SavedSearchDoc") -> ... method from_saved_search_docs (line 314) | def from_saved_search_docs( method model_dump (line 322) | def model_dump(self, *args: list, **kwargs: dict[str, Any]) -> dict[st... class SearchDocsResponse (line 330) | class SearchDocsResponse(BaseModel): class SavedSearchDoc (line 342) | class SavedSearchDoc(SearchDoc): method from_search_doc (line 347) | def from_search_doc( method from_dict (line 358) | def from_dict(cls, data: dict[str, Any]) -> "SavedSearchDoc": method from_url (line 363) | def from_url(cls, url: str) -> "SavedSearchDoc": method __lt__ (line 391) | def __lt__(self, other: Any) -> bool: class SavedSearchDocWithContent (line 399) | class SavedSearchDocWithContent(SavedSearchDoc): class PersonaSearchInfo (line 406) | class PersonaSearchInfo(BaseModel): FILE: backend/onyx/context/search/pipeline.py function _build_index_filters (line 38) | def _build_index_filters( function merge_individual_chunks (line 124) | def merge_individual_chunks( function search_pipeline (line 242) | def search_pipeline( FILE: backend/onyx/context/search/preprocessing/access_filters.py function build_access_filters_for_user (line 8) | def build_access_filters_for_user(user: User, session: Session) -> list[... function build_user_only_filters (line 13) | def build_user_only_filters(user: User, db_session: Session) -> IndexFil... FILE: backend/onyx/context/search/retrieval/search_runner.py function combine_retrieval_results (line 32) | def combine_retrieval_results( function _embed_and_hybrid_search (line 56) | def _embed_and_hybrid_search( function _keyword_search (line 88) | def _keyword_search( function search_chunks (line 99) | def search_chunks( function inference_sections_from_ids (line 183) | def inference_sections_from_ids( FILE: backend/onyx/context/search/utils.py function inference_section_from_chunks (line 40) | def inference_section_from_chunks( function inference_section_from_single_chunk (line 57) | def inference_section_from_single_chunk( function get_query_embeddings (line 67) | def get_query_embeddings( function get_query_embedding (line 87) | def get_query_embedding( function convert_inference_sections_to_search_docs (line 97) | def convert_inference_sections_to_search_docs( FILE: backend/onyx/db/_deprecated/pg_file_store.py function get_pg_conn_from_session (line 18) | def get_pg_conn_from_session(db_session: Session) -> connection: function create_populate_lobj (line 22) | def create_populate_lobj( function read_lobj (line 72) | def read_lobj( function delete_lobj_by_id (line 127) | def delete_lobj_by_id( FILE: backend/onyx/db/api_key.py function get_api_key_email_pattern (line 32) | def get_api_key_email_pattern() -> str: function is_api_key_email_address (line 36) | def is_api_key_email_address(email: str) -> bool: function fetch_api_keys (line 40) | def fetch_api_keys(db_session: Session) -> list[ApiKeyDescriptor]: function fetch_user_for_api_key (line 58) | async def fetch_user_for_api_key( function get_api_key_fake_email (line 70) | def get_api_key_fake_email( function insert_api_key (line 77) | def insert_api_key( function update_api_key (line 133) | def update_api_key( function regenerate_api_key (line 187) | def regenerate_api_key(db_session: Session, api_key_id: int) -> ApiKeyDe... function remove_api_key (line 217) | def remove_api_key(db_session: Session, api_key_id: int) -> None: FILE: backend/onyx/db/auth.py function get_default_admin_user_emails (line 34) | def get_default_admin_user_emails() -> list[str]: function _add_live_user_count_where_clause (line 45) | def _add_live_user_count_where_clause( function get_live_users_count (line 72) | def get_live_users_count(db_session: Session) -> int: function get_user_count (line 87) | async def get_user_count(only_admin_users: bool = False) -> int: class SQLAlchemyUserAdminDB (line 99) | class SQLAlchemyUserAdminDB(SQLAlchemyUserDatabase[UP, ID]): method create (line 100) | async def create( function get_user_db (line 112) | async def get_user_db( function get_access_token_db (line 118) | async def get_access_token_db( FILE: backend/onyx/db/background_error.py function create_background_error (line 6) | def create_background_error( FILE: backend/onyx/db/chat.py function get_chat_session_by_id (line 51) | def get_chat_session_by_id( function get_chat_sessions_by_slack_thread_id (line 95) | def get_chat_sessions_by_slack_thread_id( function get_chat_sessions_by_user (line 110) | def get_chat_sessions_by_user( function delete_orphaned_search_docs (line 177) | def delete_orphaned_search_docs(db_session: Session) -> None: function delete_messages_and_files_from_chat_session (line 189) | def delete_messages_and_files_from_chat_session( function create_chat_session (line 214) | def create_chat_session( function duplicate_chat_session_for_user_from_slack (line 242) | def duplicate_chat_session_for_user_from_slack( function update_chat_session (line 284) | def update_chat_session( function delete_all_chat_sessions_for_user (line 308) | def delete_all_chat_sessions_for_user( function delete_chat_session (line 337) | def delete_chat_session( function get_chat_sessions_older_than (line 366) | def get_chat_sessions_older_than( function get_chat_message (line 395) | def get_chat_message( function get_chat_session_by_message_id (line 420) | def get_chat_session_by_message_id( function get_chat_messages_by_sessions (line 442) | def get_chat_messages_by_sessions( function add_chats_to_session_from_slack_thread (line 461) | def add_chats_to_session_from_slack_thread( function add_search_docs_to_chat_message (line 493) | def add_search_docs_to_chat_message( function add_search_docs_to_tool_call (line 511) | def add_search_docs_to_tool_call( function get_chat_messages_by_session (line 531) | def get_chat_messages_by_session( function get_or_create_root_message (line 566) | def get_or_create_root_message( function reserve_message_id (line 600) | def reserve_message_id( function reserve_multi_model_message_ids (line 634) | def reserve_multi_model_message_ids( function set_preferred_response (line 676) | def set_preferred_response( function create_new_chat_message (line 719) | def create_new_chat_message( function set_as_latest_chat_message (line 772) | def set_as_latest_chat_message( function create_db_search_doc (line 793) | def create_db_search_doc( function get_db_search_doc_by_id (line 844) | def get_db_search_doc_by_id(doc_id: int, db_session: Session) -> DBSearc... function get_db_search_doc_by_document_id (line 850) | def get_db_search_doc_by_document_id( function translate_db_search_doc_to_saved_search_doc (line 862) | def translate_db_search_doc_to_saved_search_doc( function translate_db_message_to_chat_message_detail (line 892) | def translate_db_message_to_chat_message_detail( function update_chat_session_updated_at_timestamp (line 948) | def update_chat_session_updated_at_timestamp( function create_search_doc_from_inference_section (line 965) | def create_search_doc_from_inference_section( function create_search_doc_from_saved_search_doc (line 1009) | def create_search_doc_from_saved_search_doc( function update_db_session_with_messages (line 1037) | def update_db_session_with_messages( FILE: backend/onyx/db/chat_search.py function search_chat_sessions (line 18) | def search_chat_sessions( FILE: backend/onyx/db/chunk.py function update_chunk_boost_components__no_commit (line 11) | def update_chunk_boost_components__no_commit( function delete_chunk_stats_by_connector_credential_pair__no_commit (line 57) | def delete_chunk_stats_by_connector_credential_pair__no_commit( FILE: backend/onyx/db/code_interpreter.py function fetch_code_interpreter_server (line 7) | def fetch_code_interpreter_server( function update_code_interpreter_server_enabled (line 14) | def update_code_interpreter_server_enabled( FILE: backend/onyx/db/connector.py function check_federated_connectors_exist (line 29) | def check_federated_connectors_exist(db_session: Session) -> bool: function check_connectors_exist (line 35) | def check_connectors_exist(db_session: Session) -> bool: function check_user_files_exist (line 43) | def check_user_files_exist(db_session: Session) -> bool: function fetch_connectors (line 58) | def fetch_connectors( function connector_by_name_source_exists (line 72) | def connector_by_name_source_exists( function fetch_connector_by_id (line 83) | def fetch_connector_by_id(connector_id: int, db_session: Session) -> Con... function fetch_ingestion_connector_by_name (line 90) | def fetch_ingestion_connector_by_name( function create_connector (line 103) | def create_connector( function update_connector (line 129) | def update_connector( function delete_connector (line 160) | def delete_connector( function get_connector_credential_ids (line 179) | def get_connector_credential_ids( function fetch_latest_index_attempt_by_connector (line 190) | def fetch_latest_index_attempt_by_connector( function fetch_latest_index_attempts_by_status (line 219) | def fetch_latest_index_attempts_by_status( function fetch_unique_document_sources (line 248) | def fetch_unique_document_sources(db_session: Session) -> list[DocumentS... function create_initial_default_connector (line 260) | def create_initial_default_connector(db_session: Session) -> None: function mark_ccpair_as_pruned (line 299) | def mark_ccpair_as_pruned(cc_pair_id: int, db_session: Session) -> None: function mark_cc_pair_as_hierarchy_fetched (line 311) | def mark_cc_pair_as_hierarchy_fetched(db_session: Session, cc_pair_id: i... function mark_cc_pair_as_permissions_synced (line 323) | def mark_cc_pair_as_permissions_synced( function mark_cc_pair_as_external_group_synced (line 337) | def mark_cc_pair_as_external_group_synced(db_session: Session, cc_pair_i... function mark_ccpair_with_indexing_trigger (line 352) | def mark_ccpair_with_indexing_trigger( function get_kg_enabled_connectors (line 374) | def get_kg_enabled_connectors(db_session: Session) -> list[KGConnectorDa... FILE: backend/onyx/db/connector_credential_pair.py class ConnectorType (line 44) | class ConnectorType(str, Enum): function _add_user_filters (line 49) | def _add_user_filters( function get_connector_credential_pairs_for_user (line 108) | def get_connector_credential_pairs_for_user( function get_connector_credential_pairs_for_user_parallel (line 169) | def get_connector_credential_pairs_for_user_parallel( function get_connector_credential_pairs (line 197) | def get_connector_credential_pairs( function add_deletion_failure_message (line 208) | def add_deletion_failure_message( function get_cc_pair_groups_for_ids (line 223) | def get_cc_pair_groups_for_ids( function get_cc_pair_groups_for_ids_parallel (line 239) | def get_cc_pair_groups_for_ids_parallel( function get_connector_credential_pair_for_user (line 246) | def get_connector_credential_pair_for_user( function get_connector_credential_pair (line 261) | def get_connector_credential_pair( function get_connector_credential_pair_from_id_for_user (line 273) | def get_connector_credential_pair_from_id_for_user( function verify_user_has_access_to_cc_pair (line 286) | def verify_user_has_access_to_cc_pair( function get_connector_credential_pair_from_id (line 299) | def get_connector_credential_pair_from_id( function get_connector_credential_pairs_for_source (line 317) | def get_connector_credential_pairs_for_source( function get_last_successful_attempt_poll_range_end (line 329) | def get_last_successful_attempt_poll_range_end( function _update_connector_credential_pair (line 368) | def _update_connector_credential_pair( function update_connector_credential_pair_from_id (line 387) | def update_connector_credential_pair_from_id( function update_connector_credential_pair (line 413) | def update_connector_credential_pair( function set_cc_pair_repeated_error_state (line 441) | def set_cc_pair_repeated_error_state( function delete_connector_credential_pair__no_commit (line 455) | def delete_connector_credential_pair__no_commit( function associate_default_cc_pair (line 467) | def associate_default_cc_pair(db_session: Session) -> None: function _relate_groups_to_cc_pair__no_commit (line 493) | def _relate_groups_to_cc_pair__no_commit( function add_credential_to_connector (line 509) | def add_credential_to_connector( function remove_credential_from_connector (line 608) | def remove_credential_from_connector( function fetch_indexable_standard_connector_credential_pair_ids (line 662) | def fetch_indexable_standard_connector_credential_pair_ids( function fetch_connector_credential_pair_for_connector (line 690) | def fetch_connector_credential_pair_for_connector( function resync_cc_pair (line 700) | def resync_cc_pair( function get_connector_health_for_metrics (line 758) | def get_connector_health_for_metrics( FILE: backend/onyx/db/constants.py class UnsetType (line 8) | class UnsetType: method __repr__ (line 9) | def __repr__(self) -> str: FILE: backend/onyx/db/credentials.py function _add_user_filters (line 43) | def _add_user_filters( function _relate_credential_to_user_groups__no_commit (line 116) | def _relate_credential_to_user_groups__no_commit( function fetch_credentials_for_user (line 132) | def fetch_credentials_for_user( function fetch_credential_by_id_for_user (line 143) | def fetch_credential_by_id_for_user( function fetch_credential_by_id (line 161) | def fetch_credential_by_id( function fetch_credentials_by_source_for_user (line 172) | def fetch_credentials_by_source_for_user( function fetch_credentials_by_source (line 184) | def fetch_credentials_by_source( function swap_credentials_connector (line 193) | def swap_credentials_connector( function create_credential (line 251) | def create_credential( function _cleanup_credential__user_group_relationships__no_commit (line 278) | def _cleanup_credential__user_group_relationships__no_commit( function alter_credential (line 287) | def alter_credential( function update_credential (line 320) | def update_credential( function update_credential_json (line 339) | def update_credential_json( function backend_update_credential_json (line 356) | def backend_update_credential_json( function _delete_credential_internal (line 366) | def _delete_credential_internal( function delete_credential_for_user (line 417) | def delete_credential_for_user( function delete_credential (line 433) | def delete_credential( function create_initial_public_credential (line 446) | def create_initial_public_credential(db_session: Session) -> None: function cleanup_gmail_credentials (line 475) | def cleanup_gmail_credentials(db_session: Session) -> None: function cleanup_google_drive_credentials (line 484) | def cleanup_google_drive_credentials(db_session: Session) -> None: function delete_service_account_credentials (line 493) | def delete_service_account_credentials( FILE: backend/onyx/db/dal.py class DAL (line 41) | class DAL: method __init__ (line 48) | def __init__(self, db_session: Session) -> None: method session (line 52) | def session(self) -> Session: method commit (line 56) | def commit(self) -> None: method flush (line 59) | def flush(self) -> None: method rollback (line 62) | def rollback(self) -> None: method from_tenant (line 67) | def from_tenant(cls, tenant_id: str) -> Generator["DAL", None, None]: FILE: backend/onyx/db/deletion_attempt.py function check_deletion_attempt_is_allowed (line 9) | def check_deletion_attempt_is_allowed( FILE: backend/onyx/db/discord_bot.py function get_discord_bot_config (line 33) | def get_discord_bot_config(db_session: Session) -> DiscordBotConfig | None: function create_discord_bot_config (line 38) | def create_discord_bot_config( function delete_discord_bot_config (line 61) | def delete_discord_bot_config(db_session: Session) -> bool: function get_discord_service_api_key (line 71) | def get_discord_service_api_key(db_session: Session) -> ApiKey | None: function get_or_create_discord_service_api_key (line 78) | def get_or_create_discord_service_api_key( function delete_discord_service_api_key (line 131) | def delete_discord_service_api_key(db_session: Session) -> bool: function get_guild_configs (line 165) | def get_guild_configs( function get_guild_config_by_internal_id (line 176) | def get_guild_config_by_internal_id( function get_guild_config_by_discord_id (line 186) | def get_guild_config_by_discord_id( function get_guild_config_by_registration_key (line 196) | def get_guild_config_by_registration_key( function create_guild_config (line 208) | def create_guild_config( function register_guild (line 219) | def register_guild( function update_guild_config (line 233) | def update_guild_config( function delete_guild_config (line 246) | def delete_guild_config( function get_channel_configs (line 261) | def get_channel_configs( function get_channel_config_by_discord_ids (line 275) | def get_channel_config_by_discord_ids( function get_channel_config_by_internal_ids (line 291) | def get_channel_config_by_internal_ids( function update_discord_channel_config (line 305) | def update_discord_channel_config( function delete_discord_channel_config (line 324) | def delete_discord_channel_config( function create_channel_config (line 340) | def create_channel_config( function bulk_create_channel_configs (line 358) | def bulk_create_channel_configs( function sync_channel_configs (line 391) | def sync_channel_configs( FILE: backend/onyx/db/document.py function check_docs_exist (line 64) | def check_docs_exist(db_session: Session) -> bool: function count_documents_by_needs_sync (line 70) | def count_documents_by_needs_sync(session: Session) -> int: function construct_document_id_select_by_needs_sync (line 94) | def construct_document_id_select_by_needs_sync() -> Select: function construct_document_id_select_for_connector_credential_pair (line 110) | def construct_document_id_select_for_connector_credential_pair( function construct_document_select_for_connector_credential_pair (line 125) | def construct_document_select_for_connector_credential_pair( function get_documents_for_cc_pair (line 138) | def get_documents_for_cc_pair( function get_document_ids_for_connector_credential_pair (line 154) | def get_document_ids_for_connector_credential_pair( function get_documents_for_connector_credential_pair_limited_columns (line 166) | def get_documents_for_connector_credential_pair_limited_columns( function get_documents_for_connector_credential_pair (line 207) | def get_documents_for_connector_credential_pair( function get_documents_by_ids (line 222) | def get_documents_by_ids( function get_documents_by_source (line 231) | def get_documents_by_source( function _apply_last_updated_cursor_filter (line 275) | def _apply_last_updated_cursor_filter( function _apply_name_cursor_filter_asc (line 345) | def _apply_name_cursor_filter_asc( function _apply_name_cursor_filter_desc (line 364) | def _apply_name_cursor_filter_desc( function get_accessible_documents_for_hierarchy_node_paginated (line 383) | def get_accessible_documents_for_hierarchy_node_paginated( function filter_existing_document_ids (line 448) | def filter_existing_document_ids( function fetch_document_ids_by_links (line 467) | def fetch_document_ids_by_links( function get_document_connector_count (line 480) | def get_document_connector_count( function get_document_connector_counts (line 491) | def get_document_connector_counts( function get_document_counts_for_cc_pairs (line 506) | def get_document_counts_for_cc_pairs( function get_document_counts_for_all_cc_pairs (line 555) | def get_document_counts_for_all_cc_pairs( function get_access_info_for_document (line 578) | def get_access_info_for_document( function get_access_info_for_documents (line 598) | def get_access_info_for_documents( function upsert_documents (line 649) | def upsert_documents( function upsert_document_by_connector_credential_pair (line 744) | def upsert_document_by_connector_credential_pair( function mark_document_as_indexed_for_cc_pair__no_commit (line 773) | def mark_document_as_indexed_for_cc_pair__no_commit( function update_docs_updated_at__no_commit (line 793) | def update_docs_updated_at__no_commit( function update_docs_last_modified__no_commit (line 806) | def update_docs_last_modified__no_commit( function update_docs_chunk_count__no_commit (line 819) | def update_docs_chunk_count__no_commit( function mark_document_as_modified (line 831) | def mark_document_as_modified( function mark_document_as_synced (line 845) | def mark_document_as_synced(document_id: str, db_session: Session) -> None: function delete_document_by_connector_credential_pair__no_commit (line 856) | def delete_document_by_connector_credential_pair__no_commit( function delete_documents_by_connector_credential_pair__no_commit (line 875) | def delete_documents_by_connector_credential_pair__no_commit( function delete_all_documents_by_connector_credential_pair__no_commit (line 902) | def delete_all_documents_by_connector_credential_pair__no_commit( function delete_documents__no_commit (line 924) | def delete_documents__no_commit(db_session: Session, document_ids: list[... function delete_documents_complete__no_commit (line 928) | def delete_documents_complete__no_commit( function delete_all_documents_for_connector_credential_pair (line 971) | def delete_all_documents_for_connector_credential_pair( function acquire_document_locks (line 1011) | def acquire_document_locks(db_session: Session, document_ids: list[str])... function prepare_to_modify_documents (line 1041) | def prepare_to_modify_documents( function get_ingestion_documents (line 1079) | def get_ingestion_documents( function get_documents_by_cc_pair (line 1088) | def get_documents_by_cc_pair( function get_document (line 1112) | def get_document( function get_cc_pairs_for_document (line 1121) | def get_cc_pairs_for_document( function get_document_sources (line 1141) | def get_document_sources( function fetch_chunk_counts_for_documents (line 1175) | def fetch_chunk_counts_for_documents( function fetch_chunk_count_for_document (line 1198) | def fetch_chunk_count_for_document( function get_unprocessed_kg_document_batch_for_connector (line 1206) | def get_unprocessed_kg_document_batch_for_connector( function get_kg_extracted_document_ids (line 1254) | def get_kg_extracted_document_ids(db_session: Session) -> list[str]: function update_document_kg_info (line 1267) | def update_document_kg_info( function update_document_kg_stage (line 1289) | def update_document_kg_stage( function get_all_kg_extracted_documents_info (line 1301) | def get_all_kg_extracted_documents_info( function get_base_llm_doc_information (line 1323) | def get_base_llm_doc_information( function get_document_updated_at (line 1340) | def get_document_updated_at( function reset_all_document_kg_stages (line 1356) | def reset_all_document_kg_stages(db_session: Session) -> int: function update_document_kg_stages (line 1377) | def update_document_kg_stages( function get_skipped_kg_documents (line 1400) | def get_skipped_kg_documents(db_session: Session) -> list[str]: function check_for_documents_needing_kg_processing (line 1444) | def check_for_documents_needing_kg_processing( function check_for_documents_needing_kg_clustering (line 1494) | def check_for_documents_needing_kg_clustering(db_session: Session) -> bool: function get_document_kg_entities_and_relationships (line 1546) | def get_document_kg_entities_and_relationships( function get_num_chunks_for_document (line 1573) | def get_num_chunks_for_document(db_session: Session, document_id: str) -... function update_document_metadata__no_commit (line 1578) | def update_document_metadata__no_commit( function delete_document_by_id__no_commit (line 1600) | def delete_document_by_id__no_commit( FILE: backend/onyx/db/document_access.py function apply_document_access_filter (line 31) | def apply_document_access_filter( function get_accessible_documents_by_ids (line 91) | def get_accessible_documents_by_ids( FILE: backend/onyx/db/document_set.py function _add_user_filters (line 40) | def _add_user_filters(stmt: Select, user: User, get_editable: bool = Tru... function _delete_document_set_cc_pairs__no_commit (line 91) | def _delete_document_set_cc_pairs__no_commit( function _mark_document_set_cc_pairs_as_outdated__no_commit (line 103) | def _mark_document_set_cc_pairs_as_outdated__no_commit( function delete_document_set_privacy__no_commit (line 114) | def delete_document_set_privacy__no_commit( function get_document_set_by_id_for_user (line 120) | def get_document_set_by_id_for_user( function get_document_set_by_id (line 136) | def get_document_set_by_id( function get_document_set_by_name (line 145) | def get_document_set_by_name( function get_document_sets_by_name (line 153) | def get_document_sets_by_name( function get_document_sets_by_ids (line 163) | def get_document_sets_by_ids( function make_doc_set_private (line 173) | def make_doc_set_private( function _check_if_cc_pairs_are_owned_by_groups (line 184) | def _check_if_cc_pairs_are_owned_by_groups( function insert_document_set (line 222) | def insert_document_set( function update_document_set (line 298) | def update_document_set( function mark_document_set_as_synced (line 395) | def mark_document_set_as_synced(document_set_id: int, db_session: Sessio... function delete_document_set (line 410) | def delete_document_set( function mark_document_set_as_to_be_deleted (line 421) | def mark_document_set_as_to_be_deleted( function delete_document_set_cc_pair_relationship__no_commit (line 476) | def delete_document_set_cc_pair_relationship__no_commit( function fetch_document_sets (line 493) | def fetch_document_sets( function fetch_all_document_sets_for_user (line 549) | def fetch_all_document_sets_for_user( function fetch_documents_for_document_set_paginated (line 572) | def fetch_documents_for_document_set_paginated( function construct_document_id_select_by_docset (line 620) | def construct_document_id_select_by_docset( function fetch_document_sets_for_document (line 666) | def fetch_document_sets_for_document( function fetch_document_sets_for_documents (line 683) | def fetch_document_sets_for_documents( function get_or_create_document_set_by_name (line 753) | def get_or_create_document_set_by_name( function check_document_sets_are_public (line 777) | def check_document_sets_are_public( FILE: backend/onyx/db/engine/async_sql_engine.py function get_async_connection (line 40) | async def get_async_connection() -> Any: function get_sqlalchemy_async_engine (line 56) | def get_sqlalchemy_async_engine() -> AsyncEngine: function get_async_session (line 108) | async def get_async_session( function get_async_session_context_manager (line 142) | def get_async_session_context_manager( FILE: backend/onyx/db/engine/connection_warmup.py function warm_up_connections (line 7) | async def warm_up_connections( FILE: backend/onyx/db/engine/iam_auth.py function get_iam_auth_token (line 15) | def get_iam_auth_token( function configure_psycopg2_iam_auth (line 28) | def configure_psycopg2_iam_auth( function provide_iam_token (line 40) | def provide_iam_token( function create_ssl_context_if_iam (line 56) | def create_ssl_context_if_iam() -> ssl.SSLContext | None: FILE: backend/onyx/db/engine/sql_engine.py function is_valid_schema_name (line 48) | def is_valid_schema_name(name: str) -> bool: function build_connection_string (line 59) | def build_connection_string( function before_cursor_execute (line 88) | def before_cursor_execute( # type: ignore function after_cursor_execute (line 99) | def after_cursor_execute( # type: ignore function log_checkout (line 119) | def log_checkout(dbapi_connection, connection_record, connection_proxy):... function log_checkin (line 135) | def log_checkin(dbapi_connection, connection_record): # type: ignore #... class SqlEngine (line 141) | class SqlEngine: method init_engine (line 149) | def init_engine( method init_readonly_engine (line 211) | def init_readonly_engine( method get_engine (line 271) | def get_engine(cls) -> Engine: method get_readonly_engine (line 277) | def get_readonly_engine(cls) -> Engine: method set_app_name (line 285) | def set_app_name(cls, app_name: str) -> None: method get_app_name (line 289) | def get_app_name(cls) -> str: method reset_engine (line 295) | def reset_engine(cls) -> None: method scoped_engine (line 303) | def scoped_engine(cls, **init_kwargs: Any) -> Generator[None, None, No... function get_sqlalchemy_engine (line 312) | def get_sqlalchemy_engine() -> Engine: function get_readonly_sqlalchemy_engine (line 316) | def get_readonly_sqlalchemy_engine() -> Engine: function get_session_with_current_tenant (line 321) | def get_session_with_current_tenant() -> Generator[Session, None, None]: function get_session_with_current_tenant_if_none (line 329) | def get_session_with_current_tenant_if_none( function get_session_with_shared_schema (line 342) | def get_session_with_shared_schema() -> Generator[Session, None, None]: function get_session_with_tenant (line 350) | def get_session_with_tenant(*, tenant_id: str) -> Generator[Session, Non... function get_session (line 374) | def get_session() -> Generator[Session, None, None]: function get_db_readonly_user_session_with_current_tenant (line 391) | def get_db_readonly_user_session_with_current_tenant() -> ( FILE: backend/onyx/db/engine/tenant_utils.py function get_schemas_needing_migration (line 10) | def get_schemas_needing_migration( function get_all_tenant_ids (line 98) | def get_all_tenant_ids() -> list[str]: FILE: backend/onyx/db/engine/time_utils.py function get_db_current_time (line 7) | def get_db_current_time(db_session: Session) -> datetime: FILE: backend/onyx/db/entities.py function upsert_staging_entity (line 25) | def upsert_staging_entity( function transfer_entity (line 104) | def transfer_entity( function merge_entities (line 168) | def merge_entities( function get_kg_entity_by_document (line 235) | def get_kg_entity_by_document(db: Session, document_id: str) -> KGEntity... function get_grounded_entities_by_types (line 251) | def get_grounded_entities_by_types( function get_document_id_for_entity (line 272) | def get_document_id_for_entity(db_session: Session, entity_id_name: str)... function delete_from_kg_entities_extraction_staging__no_commit (line 288) | def delete_from_kg_entities_extraction_staging__no_commit( function delete_from_kg_entities__no_commit (line 297) | def delete_from_kg_entities__no_commit( function get_entity_name (line 306) | def get_entity_name(db_session: Session, entity_id_name: str) -> str | N... function get_entity_stats_by_grounded_source_name (line 314) | def get_entity_stats_by_grounded_source_name( FILE: backend/onyx/db/entity_type.py function get_entity_types_with_grounded_source_name (line 17) | def get_entity_types_with_grounded_source_name( function get_entity_types (line 35) | def get_entity_types( function get_configured_entity_types (line 53) | def get_configured_entity_types(db_session: Session) -> dict[str, list[K... function update_entity_types_and_related_connectors__commit (line 96) | def update_entity_types_and_related_connectors__commit( FILE: backend/onyx/db/enums.py class AccountType (line 7) | class AccountType(str, PyEnum): method is_web_login (line 22) | def is_web_login(self) -> bool: class GrantSource (line 30) | class GrantSource(str, PyEnum): class IndexingStatus (line 38) | class IndexingStatus(str, PyEnum): method is_terminal (line 46) | def is_terminal(self) -> bool: method is_successful (line 55) | def is_successful(self) -> bool: class PermissionSyncStatus (line 62) | class PermissionSyncStatus(str, PyEnum): method is_terminal (line 72) | def is_terminal(self) -> bool: method is_successful (line 81) | def is_successful(self) -> bool: class IndexingMode (line 88) | class IndexingMode(str, PyEnum): class ProcessingMode (line 93) | class ProcessingMode(str, PyEnum): class SyncType (line 101) | class SyncType(str, PyEnum): method __str__ (line 109) | def __str__(self) -> str: class SyncStatus (line 113) | class SyncStatus(str, PyEnum): method is_terminal (line 119) | def is_terminal(self) -> bool: class MCPAuthenticationType (line 127) | class MCPAuthenticationType(str, PyEnum): class MCPTransport (line 134) | class MCPTransport(str, PyEnum): class MCPAuthenticationPerformer (line 142) | class MCPAuthenticationPerformer(str, PyEnum): class MCPServerStatus (line 147) | class MCPServerStatus(str, PyEnum): class TaskStatus (line 156) | class TaskStatus(str, PyEnum): class IndexModelStatus (line 163) | class IndexModelStatus(str, PyEnum): method is_current (line 168) | def is_current(self) -> bool: method is_future (line 171) | def is_future(self) -> bool: class ChatSessionSharedStatus (line 175) | class ChatSessionSharedStatus(str, PyEnum): class ConnectorCredentialPairStatus (line 180) | class ConnectorCredentialPairStatus(str, PyEnum): method active_statuses (line 189) | def active_statuses(cls) -> list["ConnectorCredentialPairStatus"]: method indexable_statuses (line 197) | def indexable_statuses(self) -> list["ConnectorCredentialPairStatus"]: method is_active (line 203) | def is_active(self) -> bool: class AccessType (line 207) | class AccessType(str, PyEnum): class EmbeddingPrecision (line 213) | class EmbeddingPrecision(str, PyEnum): class UserFileStatus (line 221) | class UserFileStatus(str, PyEnum): class ThemePreference (line 231) | class ThemePreference(str, PyEnum): class DefaultAppMode (line 237) | class DefaultAppMode(str, PyEnum): class SwitchoverType (line 243) | class SwitchoverType(str, PyEnum): class OpenSearchDocumentMigrationStatus (line 249) | class OpenSearchDocumentMigrationStatus(str, PyEnum): class OpenSearchTenantMigrationStatus (line 258) | class OpenSearchTenantMigrationStatus(str, PyEnum): class BuildSessionStatus (line 266) | class BuildSessionStatus(str, PyEnum): class SharingScope (line 271) | class SharingScope(str, PyEnum): class SandboxStatus (line 277) | class SandboxStatus(str, PyEnum): method is_active (line 284) | def is_active(self) -> bool: method is_terminal (line 288) | def is_terminal(self) -> bool: method is_sleeping (line 292) | def is_sleeping(self) -> bool: class ArtifactType (line 297) | class ArtifactType(str, PyEnum): class HierarchyNodeType (line 306) | class HierarchyNodeType(str, PyEnum): class LLMModelFlowType (line 338) | class LLMModelFlowType(str, PyEnum): class HookPoint (line 344) | class HookPoint(str, PyEnum): class HookFailStrategy (line 349) | class HookFailStrategy(str, PyEnum): class Permission (line 354) | class Permission(str, PyEnum): FILE: backend/onyx/db/federated.py function fetch_federated_connector_by_id (line 22) | def fetch_federated_connector_by_id( function fetch_all_federated_connectors (line 33) | def fetch_all_federated_connectors(db_session: Session) -> list[Federate... function fetch_all_federated_connectors_parallel (line 43) | def fetch_all_federated_connectors_parallel() -> list[FederatedConnector]: function validate_federated_connector_credentials (line 48) | def validate_federated_connector_credentials( function create_federated_connector (line 62) | def create_federated_connector( function update_federated_connector_oauth_token (line 97) | def update_federated_connector_oauth_token( function get_federated_connector_oauth_token (line 131) | def get_federated_connector_oauth_token( function list_federated_connector_oauth_tokens (line 145) | def list_federated_connector_oauth_tokens( function create_federated_connector_document_set_mapping (line 163) | def create_federated_connector_document_set_mapping( function update_federated_connector_document_set_entities (line 180) | def update_federated_connector_document_set_entities( function get_federated_connector_document_set_mappings (line 202) | def get_federated_connector_document_set_mappings( function delete_federated_connector_document_set_mapping (line 214) | def delete_federated_connector_document_set_mapping( function get_federated_connector_document_set_mappings_by_document_set_names (line 235) | def get_federated_connector_document_set_mappings_by_document_set_names( function update_federated_connector (line 254) | def update_federated_connector( function delete_federated_connector (line 310) | def delete_federated_connector( FILE: backend/onyx/db/feedback.py function _fetch_db_doc_by_id (line 34) | def _fetch_db_doc_by_id(doc_id: str, db_session: Session) -> DbDocument: function _add_user_filters (line 45) | def _add_user_filters(stmt: Select, user: User, get_editable: bool = Tru... function fetch_docs_ranked_by_boost_for_user (line 106) | def fetch_docs_ranked_by_boost_for_user( function update_document_boost_for_user (line 127) | def update_document_boost_for_user( function update_document_hidden_for_user (line 149) | def update_document_hidden_for_user( function create_doc_retrieval_feedback (line 171) | def create_doc_retrieval_feedback( function delete_document_feedback_for_documents__no_commit (line 215) | def delete_document_feedback_for_documents__no_commit( function create_chat_message_feedback (line 226) | def create_chat_message_feedback( function remove_chat_message_feedback (line 263) | def remove_chat_message_feedback( FILE: backend/onyx/db/file_content.py function get_file_content_by_file_id (line 7) | def get_file_content_by_file_id( function get_file_content_by_file_id_optional (line 19) | def get_file_content_by_file_id_optional( function upsert_file_content (line 26) | def upsert_file_content( function transfer_file_content_file_id (line 52) | def transfer_file_content_file_id( function delete_file_content_by_file_id (line 73) | def delete_file_content_by_file_id( FILE: backend/onyx/db/file_record.py function get_query_history_export_files (line 12) | def get_query_history_export_files( function get_filerecord_by_file_id_optional (line 28) | def get_filerecord_by_file_id_optional( function get_filerecord_by_file_id (line 35) | def get_filerecord_by_file_id( function get_filerecord_by_prefix (line 47) | def get_filerecord_by_prefix( function delete_filerecord_by_file_id (line 58) | def delete_filerecord_by_file_id( function upsert_filerecord (line 65) | def upsert_filerecord( FILE: backend/onyx/db/hierarchy.py function _get_source_display_name (line 35) | def _get_source_display_name(source: DocumentSource) -> str: function get_hierarchy_node_by_raw_id (line 40) | def get_hierarchy_node_by_raw_id( function get_source_hierarchy_node (line 53) | def get_source_hierarchy_node( function ensure_source_node_exists (line 65) | def ensure_source_node_exists( function resolve_parent_hierarchy_node_id (line 135) | def resolve_parent_hierarchy_node_id( function upsert_parents (line 163) | def upsert_parents( function upsert_hierarchy_node (line 199) | def upsert_hierarchy_node( function upsert_hierarchy_nodes_batch (line 289) | def upsert_hierarchy_nodes_batch( function link_hierarchy_nodes_to_documents (line 347) | def link_hierarchy_nodes_to_documents( function get_hierarchy_node_children (line 401) | def get_hierarchy_node_children( function get_hierarchy_node_by_id (line 418) | def get_hierarchy_node_by_id( function get_root_hierarchy_nodes_for_source (line 426) | def get_root_hierarchy_nodes_for_source( function get_all_hierarchy_nodes_for_source (line 438) | def get_all_hierarchy_nodes_for_source( function _get_accessible_hierarchy_nodes_for_source (line 459) | def _get_accessible_hierarchy_nodes_for_source( function get_accessible_hierarchy_nodes_for_source (line 486) | def get_accessible_hierarchy_nodes_for_source( function get_document_parent_hierarchy_node_ids (line 505) | def get_document_parent_hierarchy_node_ids( function update_document_parent_hierarchy_nodes (line 531) | def update_document_parent_hierarchy_nodes( function update_hierarchy_node_permissions (line 578) | def update_hierarchy_node_permissions( function upsert_hierarchy_node_cc_pair_entries (line 625) | def upsert_hierarchy_node_cc_pair_entries( function remove_stale_hierarchy_node_cc_pair_entries (line 660) | def remove_stale_hierarchy_node_cc_pair_entries( function delete_orphaned_hierarchy_nodes (line 697) | def delete_orphaned_hierarchy_nodes( function reparent_orphaned_hierarchy_nodes (line 739) | def reparent_orphaned_hierarchy_nodes( FILE: backend/onyx/db/hook.py function get_hook_by_id (line 24) | def get_hook_by_id( function get_non_deleted_hook_by_hook_point (line 39) | def get_non_deleted_hook_by_hook_point( function get_hooks (line 53) | def get_hooks( function create_hook__no_commit (line 68) | def create_hook__no_commit( function update_hook__no_commit (line 124) | def update_hook__no_commit( function delete_hook__no_commit (line 168) | def delete_hook__no_commit( function create_hook_execution_log__no_commit (line 185) | def create_hook_execution_log__no_commit( function get_hook_execution_logs (line 206) | def get_hook_execution_logs( function cleanup_old_execution_logs__no_commit (line 221) | def cleanup_old_execution_logs__no_commit( FILE: backend/onyx/db/image_generation.py function create_image_generation_config__no_commit (line 20) | def create_image_generation_config__no_commit( function get_all_image_generation_configs (line 46) | def get_all_image_generation_configs( function get_image_generation_config (line 58) | def get_image_generation_config( function get_default_image_generation_config (line 83) | def get_default_image_generation_config( function set_default_image_generation_config (line 103) | def set_default_image_generation_config( function unset_default_image_generation_config (line 139) | def unset_default_image_generation_config( function delete_image_generation_config__no_commit (line 153) | def delete_image_generation_config__no_commit( function create_default_image_gen_config_from_api_key (line 168) | def create_default_image_gen_config_from_api_key( FILE: backend/onyx/db/index_attempt.py function get_last_attempt_for_cc_pair (line 47) | def get_last_attempt_for_cc_pair( function get_recent_completed_attempts_for_cc_pair (line 63) | def get_recent_completed_attempts_for_cc_pair( function get_recent_attempts_for_cc_pair (line 85) | def get_recent_attempts_for_cc_pair( function get_index_attempt (line 104) | def get_index_attempt( function count_error_rows_for_index_attempt (line 127) | def count_error_rows_for_index_attempt( function create_index_attempt (line 138) | def create_index_attempt( function delete_index_attempt (line 158) | def delete_index_attempt(db_session: Session, index_attempt_id: int) -> ... function mock_successful_index_attempt (line 165) | def mock_successful_index_attempt( function get_in_progress_index_attempts (line 191) | def get_in_progress_index_attempts( function get_all_index_attempts_by_status (line 206) | def get_all_index_attempts_by_status( function transition_attempt_to_in_progress (line 221) | def transition_attempt_to_in_progress( function mark_attempt_in_progress (line 254) | def mark_attempt_in_progress( function mark_attempt_succeeded (line 283) | def mark_attempt_succeeded( function mark_attempt_partially_succeeded (line 313) | def mark_attempt_partially_succeeded( function mark_attempt_canceled (line 343) | def mark_attempt_canceled( function mark_attempt_failed (line 375) | def mark_attempt_failed( function update_docs_indexed (line 410) | def update_docs_indexed( function get_last_attempt (line 440) | def get_last_attempt( function get_latest_index_attempts_by_status (line 462) | def get_latest_index_attempts_by_status( function _add_only_finished_clause (line 504) | def _add_only_finished_clause(stmt: Select[tuple[*T]]) -> Select[tuple[*... function get_latest_index_attempts (line 512) | def get_latest_index_attempts( function get_latest_index_attempts_parallel (line 557) | def get_latest_index_attempts_parallel( function get_latest_index_attempt_for_cc_pair_id (line 571) | def get_latest_index_attempt_for_cc_pair_id( function get_latest_successful_index_attempt_for_cc_pair_id (line 591) | def get_latest_successful_index_attempt_for_cc_pair_id( function get_latest_successful_index_attempts_parallel (line 616) | def get_latest_successful_index_attempts_parallel( function count_index_attempts_for_cc_pair (line 652) | def count_index_attempts_for_cc_pair( function get_paginated_index_attempts_for_cc_pair_id (line 677) | def get_paginated_index_attempts_for_cc_pair_id( function get_index_attempts_for_cc_pair (line 707) | def get_index_attempts_for_cc_pair( function delete_index_attempts (line 739) | def delete_index_attempts( function expire_index_attempts (line 760) | def expire_index_attempts( function cancel_indexing_attempts_for_ccpair (line 789) | def cancel_indexing_attempts_for_ccpair( function cancel_indexing_attempts_past_model (line 814) | def cancel_indexing_attempts_past_model( function cancel_indexing_attempts_for_search_settings (line 833) | def cancel_indexing_attempts_for_search_settings( function count_unique_cc_pairs_with_successful_index_attempts (line 852) | def count_unique_cc_pairs_with_successful_index_attempts( function count_unique_active_cc_pairs_with_successful_index_attempts (line 873) | def count_unique_active_cc_pairs_with_successful_index_attempts( function create_index_attempt_error (line 896) | def create_index_attempt_error( function get_index_attempt_errors (line 931) | def get_index_attempt_errors( function count_index_attempt_errors_for_cc_pair (line 943) | def count_index_attempt_errors_for_cc_pair( function get_index_attempt_errors_for_cc_pair (line 960) | def get_index_attempt_errors_for_cc_pair( class ActiveIndexAttemptMetric (line 985) | class ActiveIndexAttemptMetric(NamedTuple): function get_active_index_attempts_for_metrics (line 995) | def get_active_index_attempts_for_metrics( function get_failed_attempt_counts_by_cc_pair (line 1033) | def get_failed_attempt_counts_by_cc_pair( function get_docs_indexed_by_cc_pair (line 1059) | def get_docs_indexed_by_cc_pair( FILE: backend/onyx/db/indexing_coordination.py class CoordinationStatus (line 21) | class CoordinationStatus(BaseModel): class IndexingCoordination (line 34) | class IndexingCoordination: method try_create_index_attempt (line 38) | def try_create_index_attempt( method check_cancellation_requested (line 105) | def check_cancellation_requested( method request_cancellation (line 117) | def request_cancellation( method set_total_batches (line 133) | def set_total_batches( method update_batch_completion_and_docs (line 152) | def update_batch_completion_and_docs( method get_coordination_status (line 203) | def get_coordination_status( method get_orphaned_index_attempt_ids (line 238) | def get_orphaned_index_attempt_ids(db_session: Session) -> list[int]: method update_progress_tracking (line 265) | def update_progress_tracking( FILE: backend/onyx/db/input_prompt.py function insert_input_prompt (line 21) | def insert_input_prompt( function update_input_prompt (line 66) | def update_input_prompt( function validate_user_prompt_authorization (line 99) | def validate_user_prompt_authorization(user: User, input_prompt: InputPr... function remove_public_input_prompt (line 115) | def remove_public_input_prompt(input_prompt_id: int, db_session: Session... function remove_input_prompt (line 130) | def remove_input_prompt( function fetch_input_prompt_by_id (line 154) | def fetch_input_prompt_by_id( function fetch_public_input_prompts (line 175) | def fetch_public_input_prompts( function fetch_input_prompts_by_user (line 182) | def fetch_input_prompts_by_user( function disable_input_prompt_for_user (line 233) | def disable_input_prompt_for_user( FILE: backend/onyx/db/kg_config.py function set_kg_config_settings (line 11) | def set_kg_config_settings(kg_config_settings: KGConfigSettings) -> None: function get_kg_config_settings (line 16) | def get_kg_config_settings() -> KGConfigSettings: function validate_kg_settings (line 31) | def validate_kg_settings(kg_config_settings: KGConfigSettings) -> None: function is_kg_config_settings_enabled_valid (line 40) | def is_kg_config_settings_enabled_valid(kg_config_settings: KGConfigSett... function enable_kg (line 48) | def enable_kg(enable_req: EnableKGConfigRequest) -> None: function disable_kg (line 63) | def disable_kg() -> None: FILE: backend/onyx/db/llm.py function update_group_llm_provider_relationships__no_commit (line 35) | def update_group_llm_provider_relationships__no_commit( function update_llm_provider_persona_relationships__no_commit (line 57) | def update_llm_provider_persona_relationships__no_commit( function fetch_user_group_ids (line 79) | def fetch_user_group_ids(db_session: Session, user: User) -> set[int]: function can_user_access_llm_provider (line 101) | def can_user_access_llm_provider( function validate_persona_ids_exist (line 150) | def validate_persona_ids_exist( function get_personas_using_provider (line 165) | def get_personas_using_provider( function fetch_persona_with_groups (line 179) | def fetch_persona_with_groups(db_session: Session, persona_id: int) -> P... function upsert_cloud_embedding_provider (line 188) | def upsert_cloud_embedding_provider( function upsert_llm_provider (line 209) | def upsert_llm_provider( function sync_model_configurations (line 367) | def sync_model_configurations( function fetch_existing_embedding_providers (line 417) | def fetch_existing_embedding_providers( function fetch_existing_doc_sets (line 423) | def fetch_existing_doc_sets( function fetch_existing_tools (line 431) | def fetch_existing_tools(db_session: Session, tool_ids: list[int]) -> li... function fetch_existing_models (line 437) | def fetch_existing_models( function fetch_existing_llm_providers (line 454) | def fetch_existing_llm_providers( function fetch_existing_llm_provider (line 498) | def fetch_existing_llm_provider( function fetch_existing_llm_provider_by_id (line 514) | def fetch_existing_llm_provider_by_id( function fetch_embedding_provider (line 530) | def fetch_embedding_provider( function fetch_default_llm_model (line 540) | def fetch_default_llm_model(db_session: Session) -> ModelConfiguration |... function fetch_default_vision_model (line 544) | def fetch_default_vision_model(db_session: Session) -> ModelConfiguratio... function fetch_default_contextual_rag_model (line 548) | def fetch_default_contextual_rag_model( function fetch_default_model (line 554) | def fetch_default_model( function fetch_llm_provider_view (line 571) | def fetch_llm_provider_view( function remove_embedding_provider (line 582) | def remove_embedding_provider( function remove_llm_provider (line 599) | def remove_llm_provider(db_session: Session, provider_id: int) -> None: function remove_llm_provider__no_commit (line 622) | def remove_llm_provider__no_commit(db_session: Session, provider_id: int... function update_default_provider (line 646) | def update_default_provider( function update_default_vision_provider (line 657) | def update_default_vision_provider( function update_no_default_contextual_rag_provider (line 682) | def update_no_default_contextual_rag_provider( function update_default_contextual_model (line 696) | def update_default_contextual_model( function fetch_auto_mode_providers (line 749) | def fetch_auto_mode_providers(db_session: Session) -> list[LLMProviderMo... function sync_auto_mode_models (line 759) | def sync_auto_mode_models( function create_new_flow_mapping__no_commit (line 865) | def create_new_flow_mapping__no_commit( function insert_new_model_configuration__no_commit (line 898) | def insert_new_model_configuration__no_commit( function update_model_configuration__no_commit (line 936) | def update_model_configuration__no_commit( function _update_default_model__no_commit (line 991) | def _update_default_model__no_commit( function _update_default_model (line 1030) | def _update_default_model( function add_model_to_flow (line 1040) | def add_model_to_flow( FILE: backend/onyx/db/mcp.py function get_all_mcp_servers (line 28) | def get_all_mcp_servers(db_session: Session) -> list[MCPServer]: function get_mcp_server_by_id (line 35) | def get_mcp_server_by_id(server_id: int, db_session: Session) -> MCPServer: function get_mcp_servers_by_owner (line 43) | def get_mcp_servers_by_owner(owner_email: str, db_session: Session) -> l... function get_mcp_servers_for_persona (line 52) | def get_mcp_servers_for_persona( function get_mcp_servers_accessible_to_user (line 80) | def get_mcp_servers_accessible_to_user( function create_mcp_server__no_commit (line 96) | def create_mcp_server__no_commit( function update_mcp_server__no_commit (line 123) | def update_mcp_server__no_commit( function delete_mcp_server (line 162) | def delete_mcp_server(server_id: int, db_session: Session) -> None: function get_all_mcp_tools_for_server (line 176) | def get_all_mcp_tools_for_server(server_id: int, db_session: Session) ->... function add_user_to_mcp_server (line 183) | def add_user_to_mcp_server(server_id: int, user_id: UUID, db_session: Se... function remove_user_from_mcp_server (line 195) | def remove_user_from_mcp_server( function extract_connection_data (line 210) | def extract_connection_data( function get_connection_config_by_id (line 225) | def get_connection_config_by_id( function get_user_connection_config (line 237) | def get_user_connection_config( function get_user_connection_configs_for_server (line 251) | def get_user_connection_configs_for_server( function create_connection_config (line 264) | def create_connection_config( function update_connection_config (line 281) | def update_connection_config( function upsert_user_connection_config (line 298) | def upsert_user_connection_config( function get_server_auth_template (line 321) | def get_server_auth_template( function delete_connection_config (line 334) | def delete_connection_config(config_id: int, db_session: Session) -> None: function delete_user_connection_configs_for_server (line 341) | def delete_user_connection_configs_for_server( function delete_all_user_connection_configs_for_server_no_commit (line 360) | def delete_all_user_connection_configs_for_server_no_commit( FILE: backend/onyx/db/memory.py class UserInfo (line 14) | class UserInfo(BaseModel): method to_dict (line 19) | def to_dict(self) -> dict: class UserMemoryContext (line 27) | class UserMemoryContext(BaseModel): method without_memories (line 35) | def without_memories(self) -> "UserMemoryContext": method as_formatted_list (line 44) | def as_formatted_list(self) -> list[str]: function get_memories (line 59) | def get_memories(user: User, db_session: Session) -> UserMemoryContext: function add_memory (line 83) | def add_memory( function update_memory_at_index (line 109) | def update_memory_at_index( FILE: backend/onyx/db/models.py class Base (line 124) | class Base(DeclarativeBase): class _EncryptedBase (line 128) | class _EncryptedBase(TypeDecorator): method wrap_raw (line 135) | def wrap_raw(self, value: Any) -> SensitiveValue: method compare_values (line 160) | def compare_values(self, x: Any, y: Any) -> bool: class EncryptedString (line 170) | class EncryptedString(_EncryptedBase): method process_bind_param (line 175) | def process_bind_param( method process_result_value (line 188) | def process_result_value( class EncryptedJson (line 202) | class EncryptedJson(_EncryptedBase): method process_bind_param (line 206) | def process_bind_param( method process_result_value (line 218) | def process_result_value( function _register_sensitive_value_set_events (line 236) | def _register_sensitive_value_set_events( class NullFilteredString (line 267) | class NullFilteredString(TypeDecorator): method process_bind_param (line 272) | def process_bind_param( method process_result_value (line 282) | def process_result_value( class OAuthAccount (line 295) | class OAuthAccount(SQLAlchemyBaseOAuthAccountTableUUID, Base): class User (line 301) | class User(SQLAlchemyBaseUserTableUUID, Base): method validate_email (line 434) | def validate_email(self, key: str, value: str) -> str: # noqa: ARG002 method password_configured (line 438) | def password_configured(self) -> bool: method is_anonymous (line 445) | def is_anonymous(self) -> bool: class AccessToken (line 450) | class AccessToken(SQLAlchemyBaseAccessTokenTableUUID, Base): class Memory (line 454) | class Memory(Base): class ApiKey (line 479) | class ApiKey(Base): class PersonalAccessToken (line 498) | class PersonalAccessToken(Base): class Notification (line 537) | class Notification(Base): class Persona__DocumentSet (line 576) | class Persona__DocumentSet(Base): class Persona__User (line 585) | class Persona__User(Base): class DocumentSet__User (line 594) | class DocumentSet__User(Base): class DocumentSet__ConnectorCredentialPair (line 605) | class DocumentSet__ConnectorCredentialPair(Base): class ChatMessage__SearchDoc (line 629) | class ChatMessage__SearchDoc(Base): class ToolCall__SearchDoc (line 640) | class ToolCall__SearchDoc(Base): class Document__Tag (line 651) | class Document__Tag(Base): class Persona__Tool (line 662) | class Persona__Tool(Base): class StandardAnswer__StandardAnswerCategory (line 681) | class StandardAnswer__StandardAnswerCategory(Base): class SlackChannelConfig__StandardAnswerCategory (line 692) | class SlackChannelConfig__StandardAnswerCategory(Base): class ChatMessage__StandardAnswer (line 703) | class ChatMessage__StandardAnswer(Base): class ConnectorCredentialPair (line 719) | class ConnectorCredentialPair(Base): class HierarchyNode (line 835) | class HierarchyNode(Base): class Document (line 935) | class Document(Base): class OpenSearchDocumentMigrationRecord (line 1060) | class OpenSearchDocumentMigrationRecord(Base): class OpenSearchTenantMigrationRecord (line 1099) | class OpenSearchTenantMigrationRecord(Base): class KGEntityType (line 1175) | class KGEntityType(Base): method parsed_attributes (line 1198) | def parsed_attributes(self) -> KGEntityTypeAttributes: class KGRelationshipType (line 1242) | class KGRelationshipType(Base): class KGRelationshipTypeExtractionStaging (line 1313) | class KGRelationshipTypeExtractionStaging(Base): class KGEntity (line 1385) | class KGEntity(Base): class KGEntityExtractionStaging (line 1473) | class KGEntityExtractionStaging(Base): class KGRelationship (line 1563) | class KGRelationship(Base): class KGRelationshipExtractionStaging (line 1652) | class KGRelationshipExtractionStaging(Base): class KGTerm (line 1752) | class KGTerm(Base): class ChunkStats (line 1783) | class ChunkStats(Base): class Tag (line 1831) | class Tag(Base): class Connector (line 1859) | class Connector(Base): method validate_refresh_freq (line 1911) | def validate_refresh_freq(self) -> None: method validate_prune_freq (line 1918) | def validate_prune_freq(self) -> None: class Credential (line 1926) | class Credential(Base): class FederatedConnector (line 1969) | class FederatedConnector(Base): class FederatedConnectorOAuthToken (line 1995) | class FederatedConnectorOAuthToken(Base): class FederatedConnector__DocumentSet (line 2018) | class FederatedConnector__DocumentSet(Base): class SearchSettings (line 2047) | class SearchSettings(Base): method __repr__ (line 2127) | def __repr__(self) -> str: method api_version (line 2132) | def api_version(self) -> str | None: method deployment_name (line 2138) | def deployment_name(self) -> str | None: method api_url (line 2146) | def api_url(self) -> str | None: method api_key (line 2150) | def api_key(self) -> str | None: method large_chunks_enabled (line 2156) | def large_chunks_enabled(self) -> bool: method final_embedding_dim (line 2168) | def final_embedding_dim(self) -> int: method can_use_large_chunks (line 2172) | def can_use_large_chunks( class IndexAttempt (line 2188) | class IndexAttempt(Base): method __repr__ (line 2323) | def __repr__(self) -> str: method is_finished (line 2332) | def is_finished(self) -> bool: method is_coordination_complete (line 2335) | def is_coordination_complete(self) -> bool: class HierarchyFetchAttempt (line 2343) | class HierarchyFetchAttempt(Base): class IndexAttemptError (line 2397) | class IndexAttemptError(Base): class SyncRecord (line 2434) | class SyncRecord(Base): class HierarchyNodeByConnectorCredentialPair (line 2474) | class HierarchyNodeByConnectorCredentialPair(Base): class DocumentByConnectorCredentialPair (line 2506) | class DocumentByConnectorCredentialPair(Base): class ChatSession (line 2556) | class ChatSession(Base): class ChatMessage (line 2628) | class ChatMessage(Base): class ToolCall (line 2760) | class ToolCall(Base): class SearchDoc (line 2836) | class SearchDoc(Base): class SearchQuery (line 2888) | class SearchQuery(Base): class DocumentRetrievalFeedback (line 2912) | class DocumentRetrievalFeedback(Base): class ChatMessageFeedback (line 2937) | class ChatMessageFeedback(Base): class LLMProvider (line 2956) | class LLMProvider(Base): class ModelConfiguration (line 3006) | class ModelConfiguration(Base): method llm_model_flow_types (line 3054) | def llm_model_flow_types(self) -> list[LLMModelFlowType]: class LLMModelFlow (line 3058) | class LLMModelFlow(Base): class ImageGenerationConfig (line 3092) | class ImageGenerationConfig(Base): class VoiceProvider (line 3115) | class VoiceProvider(Base): class CloudEmbeddingProvider (line 3172) | class CloudEmbeddingProvider(Base): method __repr__ (line 3188) | def __repr__(self) -> str: class InternetSearchProvider (line 3192) | class InternetSearchProvider(Base): method __repr__ (line 3212) | def __repr__(self) -> str: class InternetContentProvider (line 3216) | class InternetContentProvider(Base): method __repr__ (line 3236) | def __repr__(self) -> str: class DocumentSet (line 3240) | class DocumentSet(Base): class Tool (line 3300) | class Tool(Base): class OAuthConfig (line 3355) | class OAuthConfig(Base): class OAuthUserToken (line 3399) | class OAuthUserToken(Base): class StarterMessage (line 3447) | class StarterMessage(BaseModel): class Persona__PersonaLabel (line 3454) | class Persona__PersonaLabel(Base): class Persona (line 3463) | class Persona(Base): class Persona__UserFile (line 3590) | class Persona__UserFile(Base): class Persona__HierarchyNode (line 3601) | class Persona__HierarchyNode(Base): class Persona__Document (line 3618) | class Persona__Document(Base): class PersonaLabel (line 3636) | class PersonaLabel(Base): class Assistant__UserSpecificConfig (line 3648) | class Assistant__UserSpecificConfig(Base): class ChannelConfig (line 3667) | class ChannelConfig(TypedDict): class SlackChannelConfig (line 3684) | class SlackChannelConfig(Base): class SlackBot (line 3732) | class SlackBot(Base): class DiscordBotConfig (line 3756) | class DiscordBotConfig(Base): class DiscordGuildConfig (line 3776) | class DiscordGuildConfig(Base): class DiscordChannelConfig (line 3816) | class DiscordChannelConfig(Base): class Milestone (line 3876) | class Milestone(Base): class TaskQueueState (line 3902) | class TaskQueueState(Base): class KVStore (line 3921) | class KVStore(Base): class FileRecord (line 3931) | class FileRecord(Base): class FileContent (line 3955) | class FileContent(Base): class SamlAccount (line 3984) | class SamlAccount(Base): class User__UserGroup (line 4000) | class User__UserGroup(Base): class PermissionGrant (line 4015) | class PermissionGrant(Base): method _validate_permission (line 4054) | def _validate_permission(self, _key: str, value: Permission) -> Permis... class UserGroup__ConnectorCredentialPair (line 4062) | class UserGroup__ConnectorCredentialPair(Base): class Persona__UserGroup (line 4087) | class Persona__UserGroup(Base): class LLMProvider__Persona (line 4096) | class LLMProvider__Persona(Base): class LLMProvider__UserGroup (line 4112) | class LLMProvider__UserGroup(Base): class DocumentSet__UserGroup (line 4123) | class DocumentSet__UserGroup(Base): class Credential__UserGroup (line 4134) | class Credential__UserGroup(Base): class UserGroup (line 4145) | class UserGroup(Base): class TokenRateLimit (line 4211) | class TokenRateLimit(Base): class TokenRateLimit__UserGroup (line 4226) | class TokenRateLimit__UserGroup(Base): class StandardAnswerCategory (line 4237) | class StandardAnswerCategory(Base): class StandardAnswer (line 4254) | class StandardAnswer(Base): class BackgroundError (line 4286) | class BackgroundError(Base): class User__ExternalUserGroupId (line 4314) | class User__ExternalUserGroupId(Base): class PublicExternalUserGroup (line 4346) | class PublicExternalUserGroup(Base): class UsageReport (line 4377) | class UsageReport(Base): class InputPrompt (line 4404) | class InputPrompt(Base): class InputPrompt__User (line 4430) | class InputPrompt__User(Base): class Project__UserFile (line 4442) | class Project__UserFile(Base): class UserProject (line 4464) | class UserProject(Base): class UserDocument (line 4486) | class UserDocument(str, Enum): class UserFile (line 4492) | class UserFile(Base): class PublicBase (line 4547) | class PublicBase(DeclarativeBase): class UserTenantMapping (line 4552) | class UserTenantMapping(Base): method validate_email (line 4561) | def validate_email(self, key: str, value: str) -> str: # noqa: ARG002 class AvailableTenant (line 4565) | class AvailableTenant(Base): class TenantAnonymousUserPath (line 4577) | class TenantAnonymousUserPath(Base): class MCPServer (line 4586) | class MCPServer(Base): class MCPServer__User (line 4661) | class MCPServer__User(Base): class MCPServer__UserGroup (line 4671) | class MCPServer__UserGroup(Base): class MCPConnectionConfig (line 4681) | class MCPConnectionConfig(Base): class DocPermissionSyncAttempt (line 4739) | class DocPermissionSyncAttempt(Base): method __repr__ (line 4797) | def __repr__(self) -> str: method is_finished (line 4800) | def is_finished(self) -> bool: class ExternalGroupPermissionSyncAttempt (line 4804) | class ExternalGroupPermissionSyncAttempt(Base): method __repr__ (line 4866) | def __repr__(self) -> str: method is_finished (line 4869) | def is_finished(self) -> bool: class License (line 4873) | class License(Base): class TenantUsage (line 4892) | class TenantUsage(Base): class BuildSession (line 4937) | class BuildSession(Base): class Sandbox (line 4992) | class Sandbox(Base): class Artifact (line 5028) | class Artifact(Base): class Snapshot (line 5068) | class Snapshot(Base): class BuildMessage (line 5097) | class BuildMessage(Base): class ScimToken (line 5148) | class ScimToken(Base): class ScimUserMapping (line 5179) | class ScimUserMapping(Base): class ScimGroupMapping (line 5211) | class ScimGroupMapping(Base): class CodeInterpreterServer (line 5237) | class CodeInterpreterServer(Base): class CacheStore (line 5246) | class CacheStore(Base): class Hook (line 5268) | class Hook(Base): class HookExecutionLog (line 5327) | class HookExecutionLog(Base): FILE: backend/onyx/db/notification.py function create_notification (line 18) | def create_notification( function get_notification_by_id (line 71) | def get_notification_by_id( function get_notifications (line 87) | def get_notifications( function dismiss_all_notifications (line 108) | def dismiss_all_notifications( function dismiss_notification (line 118) | def dismiss_notification(notification: Notification, db_session: Session... function batch_dismiss_notifications (line 123) | def batch_dismiss_notifications( function batch_create_notifications (line 132) | def batch_create_notifications( function update_notification_last_shown (line 180) | def update_notification_last_shown( FILE: backend/onyx/db/oauth_config.py function create_oauth_config (line 19) | def create_oauth_config( function get_oauth_config (line 44) | def get_oauth_config(oauth_config_id: int, db_session: Session) -> OAuth... function get_oauth_configs (line 51) | def get_oauth_configs(db_session: Session) -> list[OAuthConfig]: function update_oauth_config (line 56) | def update_oauth_config( function delete_oauth_config (line 106) | def delete_oauth_config(oauth_config_id: int, db_session: Session) -> None: function get_user_oauth_token (line 126) | def get_user_oauth_token( function get_all_user_oauth_tokens (line 138) | def get_all_user_oauth_tokens( function upsert_user_oauth_token (line 149) | def upsert_user_oauth_token( function delete_user_oauth_token (line 172) | def delete_user_oauth_token( function get_tools_by_oauth_config (line 189) | def get_tools_by_oauth_config(oauth_config_id: int, db_session: Session)... FILE: backend/onyx/db/opensearch_migration.py function get_paginated_document_batch (line 35) | def get_paginated_document_batch( function get_last_opensearch_migration_document_id (line 67) | def get_last_opensearch_migration_document_id( function create_opensearch_migration_records_with_commit (line 83) | def create_opensearch_migration_records_with_commit( function get_opensearch_migration_records_needing_migration (line 109) | def get_opensearch_migration_records_needing_migration( function get_total_opensearch_migration_record_count (line 167) | def get_total_opensearch_migration_record_count( function get_total_document_count (line 177) | def get_total_document_count(db_session: Session) -> int: function try_insert_opensearch_tenant_migration_record_with_commit (line 185) | def try_insert_opensearch_tenant_migration_record_with_commit( function increment_num_times_observed_no_additional_docs_to_migrate_with_commit (line 199) | def increment_num_times_observed_no_additional_docs_to_migrate_with_commit( function increment_num_times_observed_no_additional_docs_to_populate_migration_table_with_commit (line 215) | def increment_num_times_observed_no_additional_docs_to_populate_migratio... function should_document_migration_be_permanently_failed (line 233) | def should_document_migration_be_permanently_failed( function get_vespa_visit_state (line 248) | def get_vespa_visit_state( function update_vespa_visit_progress_with_commit (line 275) | def update_vespa_visit_progress_with_commit( function mark_migration_completed_time_if_not_set_with_commit (line 311) | def mark_migration_completed_time_if_not_set_with_commit( function is_migration_completed (line 327) | def is_migration_completed(db_session: Session) -> bool: function build_sanitized_to_original_doc_id_mapping (line 336) | def build_sanitized_to_original_doc_id_mapping( function get_opensearch_migration_state (line 382) | def get_opensearch_migration_state( function get_opensearch_retrieval_state (line 408) | def get_opensearch_retrieval_state( function set_enable_opensearch_retrieval_with_commit (line 422) | def set_enable_opensearch_retrieval_with_commit( FILE: backend/onyx/db/pat.py function fetch_user_for_pat (line 27) | async def fetch_user_for_pat( function _schedule_pat_last_used_update (line 57) | def _schedule_pat_last_used_update(hashed_token: str, now: datetime) -> ... function create_pat (line 88) | def create_pat( function list_user_pats (line 118) | def list_user_pats(db_session: Session, user_id: UUID) -> list[PersonalA... function revoke_pat (line 133) | def revoke_pat(db_session: Session, pat_id: int, user_id: UUID) -> bool: FILE: backend/onyx/db/permission_sync_attempt.py function create_doc_permission_sync_attempt (line 33) | def create_doc_permission_sync_attempt( function get_doc_permission_sync_attempt (line 56) | def get_doc_permission_sync_attempt( function get_latest_doc_permission_sync_attempt_for_cc_pair (line 85) | def get_latest_doc_permission_sync_attempt_for_cc_pair( function get_recent_doc_permission_sync_attempts_for_cc_pair (line 101) | def get_recent_doc_permission_sync_attempts_for_cc_pair( function mark_doc_permission_sync_attempt_in_progress (line 117) | def mark_doc_permission_sync_attempt_in_progress( function mark_doc_permission_sync_attempt_failed (line 146) | def mark_doc_permission_sync_attempt_failed( function complete_doc_permission_sync_attempt (line 180) | def complete_doc_permission_sync_attempt( function create_external_group_sync_attempt (line 244) | def create_external_group_sync_attempt( function get_external_group_sync_attempt (line 267) | def get_external_group_sync_attempt( function get_recent_external_group_sync_attempts_for_cc_pair (line 296) | def get_recent_external_group_sync_attempts_for_cc_pair( function mark_external_group_sync_attempt_in_progress (line 324) | def mark_external_group_sync_attempt_in_progress( function mark_external_group_sync_attempt_failed (line 353) | def mark_external_group_sync_attempt_failed( function complete_external_group_sync_attempt (line 387) | def complete_external_group_sync_attempt( function delete_doc_permission_sync_attempts__no_commit (line 460) | def delete_doc_permission_sync_attempts__no_commit( function delete_external_group_permission_sync_attempts__no_commit (line 482) | def delete_external_group_permission_sync_attempts__no_commit( FILE: backend/onyx/db/permissions.py function recompute_user_permissions__no_commit (line 22) | def recompute_user_permissions__no_commit( function recompute_permissions_for_group__no_commit (line 72) | def recompute_permissions_for_group__no_commit( FILE: backend/onyx/db/persona.py function get_default_behavior_persona (line 53) | def get_default_behavior_persona( class PersonaLoadType (line 68) | class PersonaLoadType(Enum): function _add_user_filters (line 74) | def _add_user_filters( function fetch_persona_by_id_for_user (line 150) | def fetch_persona_by_id_for_user( function get_best_persona_id_for_user (line 164) | def get_best_persona_id_for_user( function _get_persona_by_name (line 189) | def _get_persona_by_name( function update_persona_access (line 206) | def update_persona_access( function create_update_persona (line 262) | def create_update_persona( function update_persona_shared (line 340) | def update_persona_shared( function update_persona_public_status (line 383) | def update_persona_public_status( function _build_persona_filters (line 399) | def _build_persona_filters( function get_minimal_persona_snapshots_for_user (line 425) | def get_minimal_persona_snapshots_for_user( function get_persona_snapshots_for_user (line 461) | def get_persona_snapshots_for_user( function get_persona_count_for_user (line 501) | def get_persona_count_for_user( function get_minimal_persona_snapshots_paginated (line 538) | def get_minimal_persona_snapshots_paginated( function get_persona_snapshots_paginated (line 604) | def get_persona_snapshots_paginated( function _get_paginated_persona_query (line 675) | def _get_paginated_persona_query( function _build_persona_base_query (line 724) | def _build_persona_base_query( function get_raw_personas_for_user (line 756) | def get_raw_personas_for_user( function get_personas (line 770) | def get_personas(db_session: Session) -> Sequence[Persona]: function mark_persona_as_deleted (line 778) | def mark_persona_as_deleted( function mark_persona_as_not_deleted (line 791) | def mark_persona_as_not_deleted( function mark_delete_persona_by_name (line 808) | def mark_delete_persona_by_name( function update_personas_display_priority (line 821) | def update_personas_display_priority( function mark_persona_user_files_for_sync (line 871) | def mark_persona_user_files_for_sync( function _mark_files_need_persona_sync (line 889) | def _mark_files_need_persona_sync( function upsert_persona (line 903) | def upsert_persona( function delete_old_default_personas (line 1143) | def delete_old_default_personas( function update_persona_featured (line 1169) | def update_persona_featured( function update_persona_visibility (line 1183) | def update_persona_visibility( function validate_persona_tools (line 1197) | def validate_persona_tools(tools: list[Tool], db_session: Session) -> None: function get_persona_by_id (line 1210) | def get_persona_by_id( function get_personas_by_ids (line 1265) | def get_personas_by_ids( function delete_persona_by_name (line 1278) | def delete_persona_by_name( function get_assistant_labels (line 1291) | def get_assistant_labels(db_session: Session) -> list[PersonaLabel]: function create_assistant_label (line 1295) | def create_assistant_label(db_session: Session, name: str) -> PersonaLabel: function update_persona_label (line 1302) | def update_persona_label( function delete_persona_label (line 1316) | def delete_persona_label(label_id: int, db_session: Session) -> None: function persona_has_search_tool (line 1321) | def persona_has_search_tool(persona_id: int, db_session: Session) -> bool: function get_default_assistant (line 1333) | def get_default_assistant(db_session: Session) -> Persona | None: function update_default_assistant_configuration (line 1346) | def update_default_assistant_configuration( function user_can_access_persona (line 1400) | def user_can_access_persona( FILE: backend/onyx/db/projects.py class CategorizedFilesResult (line 35) | class CategorizedFilesResult(BaseModel): method indexable_files (line 45) | def indexable_files(self) -> list[UserFile]: function build_hashed_file_key (line 53) | def build_hashed_file_key(file: UploadFile) -> str: function create_user_files (line 58) | def create_user_files( function upload_files_to_user_files_with_indexing (line 119) | def upload_files_to_user_files_with_indexing( function check_project_ownership (line 178) | def check_project_ownership( function get_user_files_from_project (line 197) | def get_user_files_from_project( function get_project_instructions (line 212) | def get_project_instructions(db_session: Session, project_id: int | None... function get_project_token_count (line 233) | def get_project_token_count( FILE: backend/onyx/db/pydantic_type.py class PydanticType (line 11) | class PydanticType(TypeDecorator): method __init__ (line 14) | def __init__( method process_bind_param (line 20) | def process_bind_param( method process_result_value (line 29) | def process_result_value( class PydanticListType (line 39) | class PydanticListType(TypeDecorator): method __init__ (line 42) | def __init__( method process_bind_param (line 48) | def process_bind_param( method process_result_value (line 57) | def process_result_value( FILE: backend/onyx/db/relationships.py function upsert_staging_relationship (line 27) | def upsert_staging_relationship( function upsert_relationship (line 102) | def upsert_relationship( function transfer_relationship (line 168) | def transfer_relationship( function upsert_staging_relationship_type (line 222) | def upsert_staging_relationship_type( function upsert_relationship_type (line 283) | def upsert_relationship_type( function transfer_relationship_type (line 342) | def transfer_relationship_type( function delete_relationships_by_id_names (line 386) | def delete_relationships_by_id_names( function delete_relationship_types_by_id_names (line 422) | def delete_relationship_types_by_id_names( function get_relationships_for_entity_type_pairs (line 457) | def get_relationships_for_entity_type_pairs( function get_allowed_relationship_type_pairs (line 482) | def get_allowed_relationship_type_pairs( function get_relationships_of_entity (line 517) | def get_relationships_of_entity(db_session: Session, entity_id: str) -> ... function get_relationship_types_of_entity_types (line 542) | def get_relationship_types_of_entity_types( function delete_document_references_from_kg (line 573) | def delete_document_references_from_kg(db_session: Session, document_id:... function delete_from_kg_relationships_extraction_staging__no_commit (line 597) | def delete_from_kg_relationships_extraction_staging__no_commit( function delete_from_kg_relationships__no_commit (line 606) | def delete_from_kg_relationships__no_commit( FILE: backend/onyx/db/release_notes.py function create_release_notifications_for_versions (line 22) | def create_release_notifications_for_versions( FILE: backend/onyx/db/rotate_encryption_key.py function _can_decrypt_with_current_key (line 33) | def _can_decrypt_with_current_key(data: bytes) -> bool: function _discover_encrypted_columns (line 46) | def _discover_encrypted_columns() -> list[tuple[type, str, list[str], bo... function rotate_encryption_key (line 67) | def rotate_encryption_key( FILE: backend/onyx/db/saml.py function upsert_saml_account (line 16) | def upsert_saml_account( function get_saml_account (line 48) | async def get_saml_account( function expire_saml_account (line 68) | async def expire_saml_account( FILE: backend/onyx/db/search_settings.py class ActiveSearchSettings (line 26) | class ActiveSearchSettings: method __init__ (line 30) | def __init__( function create_search_settings (line 37) | def create_search_settings( function get_embedding_provider_from_provider_type (line 66) | def get_embedding_provider_from_provider_type( function get_current_db_embedding_provider (line 76) | def get_current_db_embedding_provider( function delete_search_settings (line 98) | def delete_search_settings(db_session: Session, search_settings_id: int)... function get_current_search_settings (line 122) | def get_current_search_settings(db_session: Session) -> SearchSettings: function get_secondary_search_settings (line 136) | def get_secondary_search_settings(db_session: Session) -> SearchSettings... function get_active_search_settings (line 148) | def get_active_search_settings(db_session: Session) -> ActiveSearchSetti... function get_active_search_settings_list (line 159) | def get_active_search_settings_list(db_session: Session) -> list[SearchS... function get_all_search_settings (line 173) | def get_all_search_settings(db_session: Session) -> list[SearchSettings]: function get_multilingual_expansion (line 180) | def get_multilingual_expansion(db_session: Session | None = None) -> lis... function update_search_settings (line 191) | def update_search_settings( function update_current_search_settings (line 201) | def update_current_search_settings( function update_secondary_search_settings (line 216) | def update_secondary_search_settings( function update_search_settings_status (line 233) | def update_search_settings_status( function user_has_overridden_embedding_model (line 240) | def user_has_overridden_embedding_model() -> bool: FILE: backend/onyx/db/seeding/chat_history_seeding.py function seed_chat_history (line 17) | def seed_chat_history( FILE: backend/onyx/db/slack_bot.py function insert_slack_bot (line 9) | def insert_slack_bot( function update_slack_bot (line 30) | def update_slack_bot( function fetch_slack_bot (line 55) | def fetch_slack_bot( function remove_slack_bot (line 66) | def remove_slack_bot( function fetch_slack_bots (line 79) | def fetch_slack_bots(db_session: Session) -> Sequence[SlackBot]: FILE: backend/onyx/db/slack_channel_config.py function _build_persona_name (line 25) | def _build_persona_name(channel_name: str | None) -> str: function _cleanup_relationships (line 29) | def _cleanup_relationships(db_session: Session, persona_id: int) -> None: function create_slack_channel_persona (line 41) | def create_slack_channel_persona( function _no_ee_standard_answer_categories (line 86) | def _no_ee_standard_answer_categories( function insert_slack_channel_config (line 93) | def insert_slack_channel_config( function update_slack_channel_config (line 153) | def update_slack_channel_config( function remove_slack_channel_config (line 203) | def remove_slack_channel_config( function fetch_slack_channel_configs (line 239) | def fetch_slack_channel_configs( function fetch_slack_channel_config (line 252) | def fetch_slack_channel_config( function fetch_slack_channel_config_for_channel_or_default (line 262) | def fetch_slack_channel_config_for_channel_or_default( FILE: backend/onyx/db/swap_index.py function _perform_index_swap (line 34) | def _perform_index_swap( function check_and_perform_index_swap (line 145) | def check_and_perform_index_swap(db_session: Session) -> SearchSettings ... FILE: backend/onyx/db/sync_record.py function insert_sync_record (line 16) | def insert_sync_record( function mark_sync_records_as_cancelled (line 43) | def mark_sync_records_as_cancelled( function _create_sync_record (line 63) | def _create_sync_record( function fetch_latest_sync_record (line 82) | def fetch_latest_sync_record( function update_sync_record_status (line 114) | def update_sync_record_status( function cleanup_sync_records (line 146) | def cleanup_sync_records( FILE: backend/onyx/db/tag.py function check_tag_validity (line 19) | def check_tag_validity(tag_key: str, tag_value: str) -> bool: function create_or_add_document_tag (line 33) | def create_or_add_document_tag( function create_or_add_document_tag_list (line 75) | def create_or_add_document_tag_list( function upsert_document_tags (line 122) | def upsert_document_tags( function find_tags (line 161) | def find_tags( function get_structured_tags_for_document (line 196) | def get_structured_tags_for_document( function delete_document_tags_for_documents__no_commit (line 233) | def delete_document_tags_for_documents__no_commit( function delete_orphan_tags__no_commit (line 240) | def delete_orphan_tags__no_commit(db_session: Session) -> None: FILE: backend/onyx/db/tasks.py function get_latest_task (line 15) | def get_latest_task( function get_latest_task_by_type (line 32) | def get_latest_task_by_type( function register_task (line 49) | def register_task( function get_task_with_id (line 69) | def get_task_with_id( function delete_task_with_id (line 78) | def delete_task_with_id( function get_all_tasks_with_prefix (line 86) | def get_all_tasks_with_prefix( function mark_task_as_started_with_id (line 98) | def mark_task_as_started_with_id( function mark_task_as_finished_with_id (line 110) | def mark_task_as_finished_with_id( function mark_task_start (line 123) | def mark_task_start( function mark_task_finished (line 135) | def mark_task_finished( function check_task_is_live_and_not_timed_out (line 148) | def check_task_is_live_and_not_timed_out( FILE: backend/onyx/db/token_limit.py function fetch_all_user_token_rate_limits (line 12) | def fetch_all_user_token_rate_limits( function fetch_all_global_token_rate_limits (line 30) | def fetch_all_global_token_rate_limits( function insert_user_token_rate_limit (line 49) | def insert_user_token_rate_limit( function insert_global_token_rate_limit (line 65) | def insert_global_token_rate_limit( function update_token_rate_limit (line 81) | def update_token_rate_limit( function delete_token_rate_limit (line 98) | def delete_token_rate_limit( FILE: backend/onyx/db/tools.py function get_tools (line 32) | def get_tools( function get_tools_by_mcp_server_id (line 68) | def get_tools_by_mcp_server_id( function get_tools_by_ids (line 83) | def get_tools_by_ids(tool_ids: list[int], db_session: Session) -> list[T... function get_tool_by_id (line 90) | def get_tool_by_id(tool_id: int, db_session: Session) -> Tool: function get_tool_by_name (line 97) | def get_tool_by_name(tool_name: str, db_session: Session) -> Tool: function create_tool__no_commit (line 104) | def create_tool__no_commit( function update_tool (line 136) | def update_tool( function delete_tool__no_commit (line 188) | def delete_tool__no_commit(tool_id: int, db_session: Session) -> None: function get_builtin_tool (line 210) | def get_builtin_tool( function create_tool_call_no_commit (line 244) | def create_tool_call_no_commit( FILE: backend/onyx/db/usage.py class UsageType (line 19) | class UsageType(str, Enum): class TenantUsageStats (line 28) | class TenantUsageStats(BaseModel): class UsageLimitExceededError (line 38) | class UsageLimitExceededError(Exception): method __init__ (line 41) | def __init__(self, usage_type: UsageType, current: float, limit: float): function get_current_window_start (line 50) | def get_current_window_start() -> datetime: function get_or_create_tenant_usage (line 75) | def get_or_create_tenant_usage( function get_tenant_usage_stats (line 115) | def get_tenant_usage_stats( function increment_usage (line 146) | def increment_usage( function check_usage_limit (line 171) | def check_usage_limit( FILE: backend/onyx/db/user_file.py function fetch_chunk_counts_for_user_files (line 15) | def fetch_chunk_counts_for_user_files( function calculate_user_files_token_count (line 41) | def calculate_user_files_token_count(file_ids: list[UUID], db_session: S... function fetch_user_project_ids_for_user_files (line 58) | def fetch_user_project_ids_for_user_files( function fetch_persona_ids_for_user_files (line 78) | def fetch_persona_ids_for_user_files( function update_last_accessed_at_for_user_files (line 95) | def update_last_accessed_at_for_user_files( function get_file_id_by_user_file_id (line 111) | def get_file_id_by_user_file_id(user_file_id: str, db_session: Session) ... function get_file_ids_by_user_file_ids (line 118) | def get_file_ids_by_user_file_ids( function fetch_user_files_with_access_relationships (line 125) | def fetch_user_files_with_access_relationships( FILE: backend/onyx/db/user_preferences.py function update_user_role (line 37) | def update_user_role( function deactivate_user (line 81) | def deactivate_user( function activate_user (line 91) | def activate_user( function get_latest_access_token_for_user (line 109) | def get_latest_access_token_for_user( function update_user_temperature_override_enabled (line 127) | def update_user_temperature_override_enabled( function update_user_shortcut_enabled (line 141) | def update_user_shortcut_enabled( function update_user_auto_scroll (line 155) | def update_user_auto_scroll( function update_user_default_model (line 169) | def update_user_default_model( function update_user_theme_preference (line 183) | def update_user_theme_preference( function update_user_chat_background (line 197) | def update_user_chat_background( function update_user_default_app_mode (line 211) | def update_user_default_app_mode( function update_user_personalization (line 225) | def update_user_personalization( function get_memories_for_user (line 281) | def get_memories_for_user( function update_user_pinned_assistants (line 290) | def update_user_pinned_assistants( function update_user_assistant_visibility (line 304) | def update_user_assistant_visibility( function get_all_user_assistant_specific_configs (line 324) | def get_all_user_assistant_specific_configs( function update_assistant_preferences (line 336) | def update_assistant_preferences( FILE: backend/onyx/db/users.py function validate_user_role_update (line 37) | def validate_user_role_update( function get_all_users (line 116) | def get_all_users( function _get_accepted_user_where_clause (line 138) | def _get_accepted_user_where_clause( function get_all_accepted_users (line 191) | def get_all_accepted_users( function get_page_of_filtered_users (line 206) | def get_page_of_filtered_users( function get_total_filtered_users_count (line 231) | def get_total_filtered_users_count( function get_user_counts_by_role_and_status (line 251) | def get_user_counts_by_role_and_status( function get_user_by_email (line 286) | def get_user_by_email(email: str, db_session: Session) -> User | None: function fetch_user_by_id (line 295) | def fetch_user_by_id(db_session: Session, user_id: UUID) -> User | None: function _generate_slack_user (line 299) | def _generate_slack_user(email: str) -> User: function add_slack_user_if_not_exists (line 311) | def add_slack_user_if_not_exists(db_session: Session, email: str) -> User: function _get_users_by_emails (line 328) | def _get_users_by_emails( function _generate_ext_permissioned_user (line 347) | def _generate_ext_permissioned_user(email: str) -> User: function batch_add_ext_perm_user_if_not_exists (line 359) | def batch_add_ext_perm_user_if_not_exists( function assign_user_to_default_groups__no_commit (line 387) | def assign_user_to_default_groups__no_commit( function delete_user_from_db (line 462) | def delete_user_from_db( function batch_get_user_groups (line 505) | def batch_get_user_groups( FILE: backend/onyx/db/utils.py function model_to_dict (line 12) | def model_to_dict(model: Base) -> dict[str, Any]: function is_retryable_sqlalchemy_error (line 26) | def is_retryable_sqlalchemy_error(exc: BaseException) -> bool: class DocumentRow (line 34) | class DocumentRow(BaseModel): class SortOrder (line 40) | class SortOrder(str, Enum): class DiscordChannelView (line 45) | class DiscordChannelView(BaseModel): FILE: backend/onyx/db/voice.py function fetch_voice_providers (line 17) | def fetch_voice_providers(db_session: Session) -> list[VoiceProvider]: function fetch_voice_provider_by_id (line 24) | def fetch_voice_provider_by_id( function fetch_default_stt_provider (line 33) | def fetch_default_stt_provider(db_session: Session) -> VoiceProvider | N... function fetch_default_tts_provider (line 40) | def fetch_default_tts_provider(db_session: Session) -> VoiceProvider | N... function fetch_voice_provider_by_type (line 47) | def fetch_voice_provider_by_type( function upsert_voice_provider (line 56) | def upsert_voice_provider( function delete_voice_provider (line 110) | def delete_voice_provider(db_session: Session, provider_id: int) -> None: function set_default_stt_provider (line 118) | def set_default_stt_provider(*, db_session: Session, provider_id: int) -... function set_default_tts_provider (line 145) | def set_default_tts_provider( function deactivate_stt_provider (line 178) | def deactivate_stt_provider(*, db_session: Session, provider_id: int) ->... function deactivate_tts_provider (line 194) | def deactivate_tts_provider(*, db_session: Session, provider_id: int) ->... function update_user_voice_settings (line 213) | def update_user_voice_settings( FILE: backend/onyx/db/web_search.py function fetch_web_search_providers (line 14) | def fetch_web_search_providers(db_session: Session) -> list[InternetSear... function fetch_web_content_providers (line 19) | def fetch_web_content_providers(db_session: Session) -> list[InternetCon... function fetch_active_web_search_provider (line 24) | def fetch_active_web_search_provider( function fetch_web_search_provider_by_id (line 33) | def fetch_web_search_provider_by_id( function fetch_web_search_provider_by_name (line 39) | def fetch_web_search_provider_by_name( function fetch_web_search_provider_by_type (line 46) | def fetch_web_search_provider_by_type( function _ensure_unique_search_name (line 55) | def _ensure_unique_search_name( function _apply_search_provider_updates (line 63) | def _apply_search_provider_updates( function upsert_web_search_provider (line 80) | def upsert_web_search_provider( function set_active_web_search_provider (line 122) | def set_active_web_search_provider( function deactivate_web_search_provider (line 147) | def deactivate_web_search_provider( function delete_web_search_provider (line 164) | def delete_web_search_provider(provider_id: int, db_session: Session) ->... function fetch_active_web_content_provider (line 178) | def fetch_active_web_content_provider( function fetch_web_content_provider_by_id (line 187) | def fetch_web_content_provider_by_id( function fetch_web_content_provider_by_name (line 193) | def fetch_web_content_provider_by_name( function fetch_web_content_provider_by_type (line 202) | def fetch_web_content_provider_by_type( function _ensure_unique_content_name (line 211) | def _ensure_unique_content_name( function _apply_content_provider_updates (line 219) | def _apply_content_provider_updates( function upsert_web_content_provider (line 236) | def upsert_web_content_provider( function set_active_web_content_provider (line 278) | def set_active_web_content_provider( function deactivate_web_content_provider (line 303) | def deactivate_web_content_provider( function delete_web_content_provider (line 320) | def delete_web_content_provider(provider_id: int, db_session: Session) -... FILE: backend/onyx/deep_research/dr_loop.py function generate_final_report (line 101) | def generate_final_report( function run_deep_research_llm_loop (line 188) | def run_deep_research_llm_loop( FILE: backend/onyx/deep_research/dr_mock_tools.py function get_clarification_tool_definitions (line 116) | def get_clarification_tool_definitions() -> list[dict]: function get_orchestrator_tools (line 120) | def get_orchestrator_tools(include_think_tool: bool) -> list[dict]: function get_research_agent_additional_tool_definitions (line 130) | def get_research_agent_additional_tool_definitions( FILE: backend/onyx/deep_research/models.py class SpecialToolCalls (line 7) | class SpecialToolCalls(BaseModel): class ResearchAgentCallResult (line 12) | class ResearchAgentCallResult(BaseModel): class CombinedResearchAgentCallResult (line 17) | class CombinedResearchAgentCallResult(BaseModel): FILE: backend/onyx/deep_research/utils.py class ThinkToolProcessorState (line 21) | class ThinkToolProcessorState(BaseModel): function _unescape_json_string (line 35) | def _unescape_json_string(s: str) -> str: function _extract_reasoning_chunk (line 63) | def _extract_reasoning_chunk(state: ThinkToolProcessorState) -> str | None: function create_think_tool_token_processor (line 121) | def create_think_tool_token_processor() -> ( function check_special_tool_calls (line 203) | def check_special_tool_calls(tool_calls: list[ToolCallKickoff]) -> Speci... FILE: backend/onyx/document_index/chunk_content_enrichment.py function generate_enriched_content_for_chunk_text (line 9) | def generate_enriched_content_for_chunk_text(chunk: DocMetadataAwareInde... function generate_enriched_content_for_chunk_embedding (line 13) | def generate_enriched_content_for_chunk_embedding(chunk: DocAwareChunk) ... function cleanup_content_for_chunks (line 17) | def cleanup_content_for_chunks( FILE: backend/onyx/document_index/disabled.py class DisabledDocumentIndex (line 27) | class DisabledDocumentIndex(DocumentIndex): method __init__ (line 34) | def __init__( method ensure_indices_exist (line 47) | def ensure_indices_exist( method register_multitenant_indices (line 58) | def register_multitenant_indices( method index (line 68) | def index( method delete_single (line 78) | def delete_single( method update_single (line 90) | def update_single( method id_based_retrieval (line 104) | def id_based_retrieval( method hybrid_retrieval (line 115) | def hybrid_retrieval( method admin_retrieval (line 132) | def admin_retrieval( method random_retrieval (line 144) | def random_retrieval( FILE: backend/onyx/document_index/document_index_utils.py function should_use_multipass (line 20) | def should_use_multipass(search_settings: SearchSettings | None) -> bool: function get_multipass_config (line 30) | def get_multipass_config(search_settings: SearchSettings) -> MultipassCo... function get_both_index_properties (line 44) | def get_both_index_properties( function translate_boost_count_to_multiplier (line 63) | def translate_boost_count_to_multiplier(boost: int) -> float: function get_document_chunk_ids (line 79) | def get_document_chunk_ids( function get_uuid_from_chunk_info (line 135) | def get_uuid_from_chunk_info( function get_uuid_from_chunk_info_old (line 161) | def get_uuid_from_chunk_info_old( function get_uuid_from_chunk (line 180) | def get_uuid_from_chunk(chunk: DocMetadataAwareIndexChunk) -> uuid.UUID: function get_uuid_from_chunk_old (line 189) | def get_uuid_from_chunk_old( FILE: backend/onyx/document_index/factory.py function get_default_document_index (line 18) | def get_default_document_index( function get_all_document_indices (line 89) | def get_all_document_indices( FILE: backend/onyx/document_index/interfaces.py class DocumentInsertionRecord (line 20) | class DocumentInsertionRecord: class VespaChunkRequest (line 26) | class VespaChunkRequest: method is_capped (line 32) | def is_capped(self) -> bool: method range (line 38) | def range(self) -> int | None: class IndexBatchParams (line 45) | class IndexBatchParams: class MinimalDocumentIndexingInfo (line 57) | class MinimalDocumentIndexingInfo: class EnrichedDocumentIndexingInfo (line 67) | class EnrichedDocumentIndexingInfo(MinimalDocumentIndexingInfo): class DocumentMetadata (line 77) | class DocumentMetadata: class VespaDocumentFields (line 103) | class VespaDocumentFields: class VespaDocumentUserFields (line 119) | class VespaDocumentUserFields: class UpdateRequest (line 129) | class UpdateRequest: class Verifiable (line 143) | class Verifiable(abc.ABC): method __init__ (line 157) | def __init__( method ensure_indices_exist (line 169) | def ensure_indices_exist( method register_multitenant_indices (line 191) | def register_multitenant_indices( class Indexable (line 202) | class Indexable(abc.ABC): method index (line 208) | def index( class Deletable (line 243) | class Deletable(abc.ABC): method delete_single (line 249) | def delete_single( class Updatable (line 265) | class Updatable(abc.ABC): method update_single (line 276) | def update_single( class IdRetrievalCapable (line 302) | class IdRetrievalCapable(abc.ABC): method id_based_retrieval (line 310) | def id_based_retrieval( class HybridCapable (line 336) | class HybridCapable(abc.ABC): method hybrid_retrieval (line 342) | def hybrid_retrieval( class AdminCapable (line 383) | class AdminCapable(abc.ABC): method admin_retrieval (line 397) | def admin_retrieval( class RandomCapable (line 418) | class RandomCapable(abc.ABC): method random_retrieval (line 422) | def random_retrieval( class BaseIndex (line 431) | class BaseIndex( class DocumentIndex (line 454) | class DocumentIndex(HybridCapable, BaseIndex, abc.ABC): FILE: backend/onyx/document_index/interfaces_new.py class TenantState (line 44) | class TenantState(BaseModel): method __str__ (line 56) | def __str__(self) -> str: method check_tenant_id_is_set_in_multitenant_mode (line 62) | def check_tenant_id_is_set_in_multitenant_mode(self) -> Self: class DocumentInsertionRecord (line 68) | class DocumentInsertionRecord(BaseModel): class DocumentSectionRequest (line 79) | class DocumentSectionRequest(BaseModel): method check_chunk_index_range_is_valid (line 96) | def check_chunk_index_range_is_valid(self) -> Self: class IndexingMetadata (line 108) | class IndexingMetadata(BaseModel): class ChunkCounts (line 119) | class ChunkCounts(BaseModel): class MetadataUpdateRequest (line 130) | class MetadataUpdateRequest(BaseModel): class IndexRetrievalFilters (line 155) | class IndexRetrievalFilters(BaseModel): class SchemaVerifiable (line 175) | class SchemaVerifiable(abc.ABC): method verify_and_create_index_if_necessary (line 183) | def verify_and_create_index_if_necessary( class Indexable (line 205) | class Indexable(abc.ABC): method index (line 211) | def index( class Deletable (line 244) | class Deletable(abc.ABC): method delete (line 251) | def delete( class Updatable (line 280) | class Updatable(abc.ABC): method update (line 294) | def update( class IdRetrievalCapable (line 312) | class IdRetrievalCapable(abc.ABC): method id_based_retrieval (line 320) | def id_based_retrieval( class HybridCapable (line 348) | class HybridCapable(abc.ABC): method hybrid_retrieval (line 354) | def hybrid_retrieval( method keyword_retrieval (line 386) | def keyword_retrieval( method semantic_retrieval (line 406) | def semantic_retrieval( class RandomCapable (line 427) | class RandomCapable(abc.ABC): method random_retrieval (line 433) | def random_retrieval( class DocumentIndex (line 458) | class DocumentIndex( FILE: backend/onyx/document_index/opensearch/client.py class SearchHit (line 47) | class SearchHit(BaseModel, Generic[SchemaDocumentModel]): class IndexInfo (line 69) | class IndexInfo(BaseModel): function get_new_body_without_vectors (line 88) | def get_new_body_without_vectors(body: dict[str, Any]) -> dict[str, Any]: class OpenSearchClient (line 112) | class OpenSearchClient(AbstractContextManager): method __init__ (line 130) | def __init__( method __exit__ (line 158) | def __exit__(self, *_: Any) -> None: method __del__ (line 161) | def __del__(self) -> None: method create_search_pipeline (line 168) | def create_search_pipeline( method delete_search_pipeline (line 191) | def delete_search_pipeline(self, pipeline_id: str) -> None: method put_cluster_settings (line 205) | def put_cluster_settings(self, settings: dict[str, Any]) -> bool: method list_indices_with_info (line 226) | def list_indices_with_info(self) -> list[IndexInfo]: method ping (line 254) | def ping(self) -> bool: method close (line 262) | def close(self) -> None: class OpenSearchIndexClient (line 271) | class OpenSearchIndexClient(OpenSearchClient): method __init__ (line 299) | def __init__( method create_index (line 327) | def create_index(self, mappings: dict[str, Any], settings: dict[str, A... method delete_index (line 356) | def delete_index(self) -> bool: method index_exists (line 378) | def index_exists(self) -> bool: method put_mapping (line 390) | def put_mapping(self, mappings: dict[str, Any]) -> None: method validate_index (line 422) | def validate_index(self, expected_mappings: dict[str, Any]) -> bool: method update_settings (line 497) | def update_settings(self, settings: dict[str, Any]) -> None: method index_document (line 522) | def index_document( method bulk_index_documents (line 598) | def bulk_index_documents( method delete_document (line 661) | def delete_document(self, document_chunk_id: str) -> bool: method delete_by_query (line 706) | def delete_by_query(self, query_body: dict[str, Any]) -> int: method update_document (line 752) | def update_document( method get_document (line 803) | def get_document(self, document_chunk_id: str) -> DocumentChunk: method search (line 840) | def search( method search_for_document_ids (line 932) | def search_for_document_ids( method refresh_index (line 1017) | def refresh_index(self) -> None: method _get_hits_and_profile_from_search_result (line 1028) | def _get_hits_and_profile_from_search_result( method _log_search_result_perf (line 1060) | def _log_search_result_perf( method _get_emit_metrics_context_manager (line 1101) | def _get_emit_metrics_context_manager( function wait_for_opensearch_with_timeout (line 1116) | def wait_for_opensearch_with_timeout( FILE: backend/onyx/document_index/opensearch/constants.py class OpenSearchSearchType (line 56) | class OpenSearchSearchType(str, Enum): class HybridSearchSubqueryConfiguration (line 67) | class HybridSearchSubqueryConfiguration(Enum): class HybridSearchNormalizationPipeline (line 85) | class HybridSearchNormalizationPipeline(Enum): FILE: backend/onyx/document_index/opensearch/opensearch_document_index.py class ChunkCountNotFoundError (line 81) | class ChunkCountNotFoundError(ValueError): function generate_opensearch_filtered_access_control_list (line 85) | def generate_opensearch_filtered_access_control_list( function set_cluster_state (line 97) | def set_cluster_state(client: OpenSearchClient) -> None: function _convert_retrieved_opensearch_chunk_to_inference_chunk_uncleaned (line 122) | def _convert_retrieved_opensearch_chunk_to_inference_chunk_uncleaned( function _convert_onyx_chunk_to_opensearch_document (line 188) | def _convert_onyx_chunk_to_opensearch_document( class OpenSearchOldDocumentIndex (line 262) | class OpenSearchOldDocumentIndex(OldDocumentIndex): method __init__ (line 274) | def __init__( method register_multitenant_indices (line 319) | def register_multitenant_indices( method ensure_indices_exist (line 328) | def ensure_indices_exist( method index (line 353) | def index( method delete_single (line 388) | def delete_single( method update_single (line 410) | def update_single( method id_based_retrieval (line 477) | def id_based_retrieval( method hybrid_retrieval (line 497) | def hybrid_retrieval( method admin_retrieval (line 526) | def admin_retrieval( method random_retrieval (line 542) | def random_retrieval( class OpenSearchDocumentIndex (line 554) | class OpenSearchDocumentIndex(DocumentIndex): method __init__ (line 577) | def __init__( method verify_and_create_index_if_necessary (line 593) | def verify_and_create_index_if_necessary( method index (line 649) | def index( method delete (line 753) | def delete( method update (line 789) | def update( method id_based_retrieval (line 894) | def id_based_retrieval( method hybrid_retrieval (line 945) | def hybrid_retrieval( method keyword_retrieval (line 999) | def keyword_retrieval( method semantic_retrieval (line 1041) | def semantic_retrieval( method random_retrieval (line 1083) | def random_retrieval( method index_raw_chunks (line 1114) | def index_raw_chunks(self, chunks: list[DocumentChunk]) -> None: FILE: backend/onyx/document_index/opensearch/schema.py function get_opensearch_doc_chunk_id (line 72) | def get_opensearch_doc_chunk_id( function set_or_convert_timezone_to_utc (line 132) | def set_or_convert_timezone_to_utc(value: datetime) -> datetime: class DocumentChunkWithoutVectors (line 143) | class DocumentChunkWithoutVectors(BaseModel): method __str__ (line 214) | def __str__(self) -> str: method serialize_model (line 221) | def serialize_model( method serialize_datetime_fields_to_epoch_seconds (line 243) | def serialize_datetime_fields_to_epoch_seconds( method parse_epoch_seconds_to_datetime (line 260) | def parse_epoch_seconds_to_datetime(cls, value: Any) -> datetime | None: method serialize_tenant_state (line 279) | def serialize_tenant_state( method parse_tenant_id (line 300) | def parse_tenant_id(cls, value: Any) -> TenantState: class DocumentChunk (line 336) | class DocumentChunk(DocumentChunkWithoutVectors): method __str__ (line 348) | def __str__(self) -> str: method check_title_and_title_vector_are_consistent (line 356) | def check_title_and_title_vector_are_consistent(self) -> Self: class DocumentSchema (line 365) | class DocumentSchema: method get_document_schema (line 373) | def get_document_schema(vector_dimension: int, multitenant: bool) -> d... method get_index_settings_based_on_environment (line 577) | def get_index_settings_based_on_environment() -> dict[str, Any]: FILE: backend/onyx/document_index/opensearch/search.py function _get_hybrid_search_normalization_weights (line 68) | def _get_hybrid_search_normalization_weights() -> list[float]: function get_min_max_normalization_pipeline_name_and_config (line 116) | def get_min_max_normalization_pipeline_name_and_config() -> tuple[str, d... function get_zscore_normalization_pipeline_name_and_config (line 138) | def get_zscore_normalization_pipeline_name_and_config() -> tuple[str, di... function get_normalization_pipeline_name_and_config (line 160) | def get_normalization_pipeline_name_and_config() -> tuple[str, dict[str,... class DocumentQuery (line 176) | class DocumentQuery: method get_from_document_id_query (line 184) | def get_from_document_id_query( method delete_from_document_id_query (line 264) | def delete_from_document_id_query( method get_hybrid_search_query (line 315) | def get_hybrid_search_query( method get_keyword_search_query (line 424) | def get_keyword_search_query( method get_semantic_search_query (line 506) | def get_semantic_search_query( method get_random_search_query (line 585) | def get_random_search_query( method _get_hybrid_search_subqueries (line 646) | def _get_hybrid_search_subqueries( method _get_title_vector_similarity_search_query (line 737) | def _get_title_vector_similarity_search_query( method _get_content_vector_similarity_search_query (line 751) | def _get_content_vector_similarity_search_query( method _get_title_content_combined_keyword_search_query (line 773) | def _get_title_content_combined_keyword_search_query( method _get_search_filters (line 839) | def _get_search_filters( method _get_match_highlights_configuration (line 1297) | def _get_match_highlights_configuration() -> dict[str, Any]: FILE: backend/onyx/document_index/opensearch/string_filtering.py class DocumentIDTooLongError (line 6) | class DocumentIDTooLongError(ValueError): function filter_and_validate_document_id (line 10) | def filter_and_validate_document_id( FILE: backend/onyx/document_index/vespa/chunk_retrieval.py function _process_dynamic_summary (line 70) | def _process_dynamic_summary( function _vespa_hit_to_inference_chunk (line 107) | def _vespa_hit_to_inference_chunk( function get_chunks_via_visit_api (line 168) | def get_chunks_via_visit_api( function get_all_chunks_paginated (line 286) | def get_all_chunks_paginated( function parallel_visit_api_retrieval (line 454) | def parallel_visit_api_retrieval( function query_vespa (line 488) | def query_vespa( function _get_chunks_via_batch_search (line 580) | def _get_chunks_via_batch_search( function batch_search_api_retrieval (line 614) | def batch_search_api_retrieval( FILE: backend/onyx/document_index/vespa/deletion.py function _retryable_http_delete (line 18) | def _retryable_http_delete(http_client: httpx.Client, url: str) -> None: function _delete_vespa_chunk (line 23) | def _delete_vespa_chunk( function delete_vespa_chunks (line 36) | def delete_vespa_chunks( FILE: backend/onyx/document_index/vespa/index.py class _VespaUpdateRequest (line 85) | class _VespaUpdateRequest: class KGVespaChunkUpdateRequest (line 91) | class KGVespaChunkUpdateRequest(BaseModel): class KGUChunkUpdateRequest (line 98) | class KGUChunkUpdateRequest(BaseModel): class KGUDocumentUpdateRequest (line 111) | class KGUDocumentUpdateRequest(BaseModel): function generate_kg_update_request (line 122) | def generate_kg_update_request( function in_memory_zip_from_file_bytes (line 145) | def in_memory_zip_from_file_bytes(file_contents: dict[str, bytes]) -> Bi... function _create_document_xml_lines (line 154) | def _create_document_xml_lines(doc_names: list[str | None] | list[str]) ... function add_ngrams_to_schema (line 163) | def add_ngrams_to_schema(schema_content: str) -> str: function cleanup_chunks (line 178) | def cleanup_chunks(chunks: list[InferenceChunkUncleaned]) -> list[Infere... class VespaIndex (line 223) | class VespaIndex(DocumentIndex): method __init__ (line 226) | def __init__( method ensure_indices_exist (line 261) | def ensure_indices_exist( method register_multitenant_indices (line 369) | def register_multitenant_indices( method index (line 463) | def index( method _apply_updates_batched (line 526) | def _apply_updates_batched( method _apply_kg_chunk_updates_batched (line 571) | def _apply_kg_chunk_updates_batched( method kg_chunk_updates (line 610) | def kg_chunk_updates( method update_single (line 653) | def update_single( method delete_single (line 726) | def delete_single( method id_based_retrieval (line 770) | def id_based_retrieval( method hybrid_retrieval (line 803) | def hybrid_retrieval( method admin_retrieval (line 846) | def admin_retrieval( method enrich_basic_chunk_info (line 879) | def enrich_basic_chunk_info( method delete_entries_by_tenant_id (line 913) | def delete_entries_by_tenant_id( method _get_all_document_ids_by_tenant_id (line 955) | def _get_all_document_ids_by_tenant_id( method _apply_deletes_batched (line 1018) | def _apply_deletes_batched( method random_retrieval (line 1076) | def random_retrieval( class _VespaDeleteRequest (line 1102) | class _VespaDeleteRequest: method __init__ (line 1103) | def __init__(self, document_id: str, index_name: str) -> None: FILE: backend/onyx/document_index/vespa/indexing_utils.py function _does_doc_chunk_exist (line 75) | def _does_doc_chunk_exist( function _vespa_get_updated_at_attribute (line 94) | def _vespa_get_updated_at_attribute(t: datetime | None) -> int | None: function get_existing_documents_from_chunks (line 104) | def get_existing_documents_from_chunks( function _index_vespa_chunk (line 140) | def _index_vespa_chunk( function batch_index_vespa_chunks (line 314) | def batch_index_vespa_chunks( function clean_chunk_id_copy (line 352) | def clean_chunk_id_copy( function check_for_final_chunk_existence (line 367) | def check_for_final_chunk_existence( class BaseHTTPXClientContext (line 385) | class BaseHTTPXClientContext(ABC): method __enter__ (line 389) | def __enter__(self) -> httpx.Client: method __exit__ (line 393) | def __exit__(self, exc_type, exc_value, traceback): # type: ignore class GlobalHTTPXClientContext (line 397) | class GlobalHTTPXClientContext(BaseHTTPXClientContext): method __init__ (line 400) | def __init__(self, client: httpx.Client): method __enter__ (line 403) | def __enter__(self) -> httpx.Client: method __exit__ (line 406) | def __exit__(self, exc_type, exc_value, traceback): # type: ignore class TemporaryHTTPXClientContext (line 410) | class TemporaryHTTPXClientContext(BaseHTTPXClientContext): method __init__ (line 413) | def __init__(self, client_factory: Callable[[], httpx.Client]): method __enter__ (line 417) | def __enter__(self) -> httpx.Client: method __exit__ (line 421) | def __exit__(self, exc_type, exc_value, traceback): # type: ignore FILE: backend/onyx/document_index/vespa/kg_interactions.py function update_kg_chunks_vespa_info (line 12) | def update_kg_chunks_vespa_info( function get_kg_vespa_info_update_requests_for_document (line 33) | def get_kg_vespa_info_update_requests_for_document( FILE: backend/onyx/document_index/vespa/shared_utils/utils.py function is_text_character (line 29) | def is_text_character(codepoint: int) -> bool: function replace_invalid_doc_id_characters (line 46) | def replace_invalid_doc_id_characters(text: str) -> str: function get_vespa_http_client (line 55) | def get_vespa_http_client( function wait_for_vespa_with_timeout (line 74) | def wait_for_vespa_with_timeout(wait_interval: int = 5, wait_limit: int ... FILE: backend/onyx/document_index/vespa/shared_utils/vespa_request_builders.py function build_tenant_id_filter (line 26) | def build_tenant_id_filter(tenant_id: str) -> str: function build_vespa_filters (line 30) | def build_vespa_filters( function build_vespa_id_based_retrieval_yql (line 255) | def build_vespa_id_based_retrieval_yql( FILE: backend/onyx/document_index/vespa/vespa_document_index.py function _enrich_basic_chunk_info (line 80) | def _enrich_basic_chunk_info( function _update_single_chunk (line 148) | def _update_single_chunk( class VespaDocumentIndex (line 283) | class VespaDocumentIndex(DocumentIndex): method __init__ (line 291) | def __init__( method verify_and_create_index_if_necessary (line 317) | def verify_and_create_index_if_necessary( method index (line 322) | def index( method delete (line 450) | def delete(self, document_id: str, chunk_count: int | None = None) -> ... method update (line 483) | def update( method id_based_retrieval (line 532) | def id_based_retrieval( method hybrid_retrieval (line 571) | def hybrid_retrieval( method keyword_retrieval (line 629) | def keyword_retrieval( method semantic_retrieval (line 637) | def semantic_retrieval( method random_retrieval (line 645) | def random_retrieval( method get_raw_document_chunks (line 667) | def get_raw_document_chunks(self, document_id: str) -> list[dict[str, ... method get_all_raw_document_chunks_paginated (line 693) | def get_all_raw_document_chunks_paginated( method index_raw_chunks (line 721) | def index_raw_chunks(self, chunks: list[dict[str, Any]]) -> None: method get_chunk_count (line 746) | def get_chunk_count(self) -> int: FILE: backend/onyx/error_handling/error_codes.py class OnyxErrorCode (line 14) | class OnyxErrorCode(Enum): method __init__ (line 95) | def __init__(self, code: str, status_code: int) -> None: method detail (line 99) | def detail(self, message: str | None = None) -> dict[str, str]: FILE: backend/onyx/error_handling/exceptions.py class OnyxError (line 35) | class OnyxError(Exception): method __init__ (line 44) | def __init__( method status_code (line 58) | def status_code(self) -> int: function log_onyx_error (line 62) | def log_onyx_error(exc: OnyxError) -> None: function onyx_error_to_json_response (line 71) | def onyx_error_to_json_response(exc: OnyxError) -> JSONResponse: function register_onyx_exception_handlers (line 78) | def register_onyx_exception_handlers(app: FastAPI) -> None: FILE: backend/onyx/evals/eval.py function isolated_ephemeral_session_factory (line 42) | def isolated_ephemeral_session_factory( function _chat_full_response_to_eval_result (line 77) | def _chat_full_response_to_eval_result( function evaluate_tool_assertions (line 104) | def evaluate_tool_assertions( function _get_answer_with_tools (line 148) | def _get_answer_with_tools( function _get_multi_turn_answer_with_tools (line 267) | def _get_multi_turn_answer_with_tools( function run_eval (line 438) | def run_eval( FILE: backend/onyx/evals/eval_cli.py function setup_session_factory (line 26) | def setup_session_factory() -> None: function load_data_local (line 34) | def load_data_local( function configure_logging_for_evals (line 43) | def configure_logging_for_evals(verbose: bool) -> None: function run_local (line 68) | def run_local( function run_remote (line 131) | def run_remote( function main (line 173) | def main() -> None: FILE: backend/onyx/evals/models.py class ToolAssertion (line 16) | class ToolAssertion(BaseModel): class EvalTimings (line 23) | class EvalTimings(BaseModel): class ChatFullEvalResult (line 34) | class ChatFullEvalResult(BaseModel): class EvalToolResult (line 44) | class EvalToolResult(BaseModel): class EvalMessage (line 56) | class EvalMessage(BaseModel): class MultiTurnEvalResult (line 71) | class MultiTurnEvalResult(BaseModel): class EvalConfiguration (line 81) | class EvalConfiguration(BaseModel): class EvalConfigurationOptions (line 87) | class EvalConfigurationOptions(BaseModel): method get_configuration (line 102) | def get_configuration(self, db_session: Session) -> EvalConfiguration: class EvalationAck (line 113) | class EvalationAck(BaseModel): class EvalProvider (line 117) | class EvalProvider(ABC): method eval (line 119) | def eval( FILE: backend/onyx/evals/one_off/create_braintrust_dataset.py function column_letter_to_index (line 34) | def column_letter_to_index(column_letter: str) -> int: function parse_csv_file (line 42) | def parse_csv_file(csv_path: str) -> List[Dict[str, Any]]: function create_braintrust_dataset (line 139) | def create_braintrust_dataset(records: List[Dict[str, Any]], dataset_nam... function main (line 187) | def main() -> None: FILE: backend/onyx/evals/provider.py function get_provider (line 6) | def get_provider(local_only: bool = False) -> EvalProvider: FILE: backend/onyx/evals/providers/braintrust.py function tool_assertion_scorer (line 25) | def tool_assertion_scorer( class BraintrustEvalProvider (line 105) | class BraintrustEvalProvider(EvalProvider): method eval (line 106) | def eval( FILE: backend/onyx/evals/providers/local.py function _display_single_turn_result (line 28) | def _display_single_turn_result( class LocalEvalProvider (line 67) | class LocalEvalProvider(EvalProvider): method eval (line 73) | def eval( method _run_single_turn_eval (line 131) | def _run_single_turn_eval( method _run_multi_turn_eval (line 173) | def _run_multi_turn_eval( FILE: backend/onyx/feature_flags/factory.py function get_default_feature_flag_provider (line 10) | def get_default_feature_flag_provider() -> FeatureFlagProvider: FILE: backend/onyx/feature_flags/interface.py class FeatureFlagProvider (line 9) | class FeatureFlagProvider(abc.ABC): method feature_enabled (line 18) | def feature_enabled( method feature_enabled_for_user_tenant (line 38) | def feature_enabled_for_user_tenant( class NoOpFeatureFlagProvider (line 55) | class NoOpFeatureFlagProvider(FeatureFlagProvider): method feature_enabled (line 63) | def feature_enabled( FILE: backend/onyx/federated_connectors/factory.py class FederatedConnectorMissingException (line 15) | class FederatedConnectorMissingException(Exception): function _load_federated_connector_class (line 25) | def _load_federated_connector_class( function get_federated_connector (line 50) | def get_federated_connector( function get_federated_connector_cls (line 59) | def get_federated_connector_cls( FILE: backend/onyx/federated_connectors/federated_retrieval.py class FederatedRetrievalInfo (line 28) | class FederatedRetrievalInfo(BaseModel): function get_federated_retrieval_functions (line 35) | def get_federated_retrieval_functions( FILE: backend/onyx/federated_connectors/interfaces.py class FederatedConnector (line 14) | class FederatedConnector(ABC): method __init__ (line 18) | def __init__(self, credentials: dict[str, Any]): method validate_entities (line 28) | def validate_entities(self, entities: Dict[str, Any]) -> bool: method validate_config (line 42) | def validate_config(self, config: Dict[str, Any]) -> bool: method configuration_schema (line 59) | def configuration_schema(cls) -> Dict[str, EntityField]: method credentials_schema (line 70) | def credentials_schema(cls) -> Dict[str, CredentialField]: method authorize (line 80) | def authorize(self, redirect_uri: str) -> str: method callback (line 89) | def callback(self, callback_data: Dict[str, Any], redirect_uri: str) -... method search (line 102) | def search( FILE: backend/onyx/federated_connectors/models.py class FieldSpec (line 10) | class FieldSpec(BaseModel): class EntityField (line 31) | class EntityField(FieldSpec): class CredentialField (line 35) | class CredentialField(FieldSpec): class OAuthResult (line 39) | class OAuthResult(BaseModel): FILE: backend/onyx/federated_connectors/oauth_utils.py class OAuthSession (line 18) | class OAuthSession: method __init__ (line 21) | def __init__( method to_dict (line 33) | def to_dict(self) -> dict[str, Any]: method from_dict (line 42) | def from_dict(cls, data: dict[str, Any]) -> "OAuthSession": function generate_oauth_state (line 51) | def generate_oauth_state( function verify_oauth_state (line 93) | def verify_oauth_state(state: str) -> OAuthSession: function get_oauth_callback_uri (line 123) | def get_oauth_callback_uri() -> str: function add_state_to_oauth_url (line 135) | def add_state_to_oauth_url(base_oauth_url: str, state: str) -> str: FILE: backend/onyx/federated_connectors/registry.py class FederatedConnectorMapping (line 8) | class FederatedConnectorMapping(BaseModel): FILE: backend/onyx/federated_connectors/slack/federated_connector.py class SlackFederatedConnector (line 43) | class SlackFederatedConnector(FederatedConnector): method __init__ (line 44) | def __init__(self, credentials: dict[str, Any]): method validate_entities (line 48) | def validate_entities(self, entities: dict[str, Any]) -> bool: method entities_schema (line 67) | def entities_schema(cls) -> dict[str, EntityField]: method configuration_schema (line 133) | def configuration_schema(cls) -> dict[str, EntityField]: method credentials_schema (line 139) | def credentials_schema(cls) -> dict[str, CredentialField]: method authorize (line 159) | def authorize(self, redirect_uri: str) -> str: method callback (line 179) | def callback(self, callback_data: dict[str, Any], redirect_uri: str) -... method _exchange_code_for_token (line 249) | def _exchange_code_for_token(self, code: str, redirect_uri: str) -> di... method search (line 271) | def search( FILE: backend/onyx/federated_connectors/slack/models.py class SlackEntities (line 9) | class SlackEntities(BaseModel): method validate_default_search_days (line 59) | def validate_default_search_days(cls, v: int) -> int: method validate_max_messages_per_query (line 69) | def validate_max_messages_per_query(cls, v: int) -> int: method validate_channels (line 79) | def validate_channels(cls, v: Optional[list[str]]) -> Optional[list[st... method validate_exclude_patterns (line 91) | def validate_exclude_patterns(cls, v: Optional[list[str]]) -> Optional... method validate_channel_config (line 103) | def validate_channel_config(self) -> "SlackEntities": class SlackCredentials (line 115) | class SlackCredentials(BaseModel): method validate_client_id (line 123) | def validate_client_id(cls, v: str) -> str: method validate_client_secret (line 130) | def validate_client_secret(cls, v: str) -> str: class SlackTeamInfo (line 136) | class SlackTeamInfo(BaseModel): class SlackUserInfo (line 144) | class SlackUserInfo(BaseModel): class SlackSearchResult (line 153) | class SlackSearchResult(BaseModel): class SlackSearchResponse (line 174) | class SlackSearchResponse(BaseModel): FILE: backend/onyx/file_processing/enums.py class HtmlBasedConnectorTransformLinksStrategy (line 4) | class HtmlBasedConnectorTransformLinksStrategy(str, Enum): FILE: backend/onyx/file_processing/extract_file_text.py function get_markitdown_converter (line 53) | def get_markitdown_converter() -> "MarkItDown": function get_file_ext (line 62) | def get_file_ext(file_path_or_name: str | Path) -> str: function is_text_file (line 67) | def is_text_file(file: IO[bytes]) -> bool: function detect_encoding (line 78) | def detect_encoding(file: IO[bytes]) -> str: function is_macos_resource_fork_file (line 85) | def is_macos_resource_fork_file(file_name: str) -> bool: function to_bytesio (line 91) | def to_bytesio(stream: IO[bytes]) -> BytesIO: function load_files_from_zip (line 98) | def load_files_from_zip( function _extract_onyx_metadata (line 122) | def _extract_onyx_metadata(line: str) -> dict | None: function read_text_file (line 148) | def read_text_file( function pdf_to_text (line 182) | def pdf_to_text(file: IO[Any], pdf_pass: str | None = None) -> str: function read_pdf_file (line 191) | def read_pdf_file( function extract_docx_images (line 262) | def extract_docx_images(docx_bytes: IO[Any]) -> Iterator[tuple[bytes, st... function read_docx_file (line 276) | def read_docx_file( function pptx_to_text (line 333) | def pptx_to_text(file: IO[Any], file_name: str = "") -> str: function _worksheet_to_matrix (line 358) | def _worksheet_to_matrix( function _clean_worksheet_matrix (line 372) | def _clean_worksheet_matrix(matrix: list[list[str]]) -> list[list[str]]: function _columns_to_keep (line 395) | def _columns_to_keep( function _remove_empty_runs (line 418) | def _remove_empty_runs( function xlsx_to_text (line 446) | def xlsx_to_text(file: IO[Any], file_name: str = "") -> str: function eml_to_text (line 496) | def eml_to_text(file: IO[Any]) -> str: function epub_to_text (line 529) | def epub_to_text(file: IO[Any]) -> str: function file_io_to_text (line 539) | def file_io_to_text(file: IO[Any]) -> str: function extract_file_text (line 545) | def extract_file_text( class ExtractionResult (line 600) | class ExtractionResult(NamedTuple): function extract_result_from_text_file (line 608) | def extract_result_from_text_file(file: IO[Any]) -> ExtractionResult: function extract_text_and_images (line 620) | def extract_text_and_images( function _extract_text_and_images (line 658) | def _extract_text_and_images( function docx_to_txt_filename (line 757) | def docx_to_txt_filename(file_path: str) -> str: FILE: backend/onyx/file_processing/file_types.py class OnyxMimeTypes (line 15) | class OnyxMimeTypes: class OnyxFileExtensions (line 55) | class OnyxFileExtensions: FILE: backend/onyx/file_processing/html_utils.py class ParsedHTML (line 22) | class ParsedHTML: function strip_excessive_newlines_and_spaces (line 27) | def strip_excessive_newlines_and_spaces(document: str) -> str: function strip_newlines (line 37) | def strip_newlines(document: str) -> str: function format_element_text (line 42) | def format_element_text(element_text: str, link_href: str | None) -> str: function parse_html_with_trafilatura (line 55) | def parse_html_with_trafilatura(html_content: str) -> str: function format_document_soup (line 70) | def format_document_soup( function parse_html_page_basic (line 166) | def parse_html_page_basic(text: str | BytesIO | IO[bytes]) -> str: function web_html_cleanup (line 171) | def web_html_cleanup( FILE: backend/onyx/file_processing/image_summarization.py class UnsupportedImageFormatError (line 25) | class UnsupportedImageFormatError(ValueError): function prepare_image_bytes (line 29) | def prepare_image_bytes(image_data: bytes) -> str: function summarize_image_pipeline (line 40) | def summarize_image_pipeline( function summarize_image_with_error_handling (line 62) | def summarize_image_with_error_handling( function _summarize_image (line 102) | def _summarize_image( function _encode_image_for_llm_prompt (line 160) | def _encode_image_for_llm_prompt(image_data: bytes) -> str: function _resize_image_if_needed (line 174) | def _resize_image_if_needed(image_data: bytes, max_size_mb: int = 20) ->... FILE: backend/onyx/file_processing/image_utils.py function store_image_and_create_section (line 12) | def store_image_and_create_section( FILE: backend/onyx/file_processing/password_validation.py function preserve_position (line 21) | def preserve_position(file: IO[Any]) -> Generator[IO[Any], None, None]: function is_pdf_protected (line 31) | def is_pdf_protected(file: IO[Any]) -> bool: function is_docx_protected (line 40) | def is_docx_protected(file: IO[Any]) -> bool: function is_pptx_protected (line 44) | def is_pptx_protected(file: IO[Any]) -> bool: function is_xlsx_protected (line 48) | def is_xlsx_protected(file: IO[Any]) -> bool: function is_office_file_protected (line 52) | def is_office_file_protected(file: IO[Any]) -> bool: function is_file_password_protected (line 61) | def is_file_password_protected( FILE: backend/onyx/file_processing/unstructured.py function get_unstructured_api_key (line 18) | def get_unstructured_api_key() -> str | None: function update_unstructured_api_key (line 26) | def update_unstructured_api_key(api_key: str) -> None: function delete_unstructured_api_key (line 31) | def delete_unstructured_api_key() -> None: function _sdk_partition_request (line 36) | def _sdk_partition_request( function unstructured_to_text (line 56) | def unstructured_to_text(file: IO[Any], file_name: str) -> str: FILE: backend/onyx/file_store/document_batch_storage.py class DocumentBatchStorageStateType (line 23) | class DocumentBatchStorageStateType(str, Enum): class BatchStoragePathInfo (line 36) | class BatchStoragePathInfo(BaseModel): class DocumentBatchStorage (line 42) | class DocumentBatchStorage(ABC): method __init__ (line 45) | def __init__(self, cc_pair_id: int, index_attempt_id: int): method store_batch (line 51) | def store_batch(self, batch_num: int, documents: List[Document]) -> None: method get_batch (line 55) | def get_batch(self, batch_num: int) -> Optional[List[Document]]: method delete_batch_by_name (line 59) | def delete_batch_by_name(self, batch_file_name: str) -> None: method delete_batch_by_num (line 63) | def delete_batch_by_num(self, batch_num: int) -> None: method cleanup_all_batches (line 67) | def cleanup_all_batches(self) -> None: method get_all_batches_for_cc_pair (line 71) | def get_all_batches_for_cc_pair(self) -> list[str]: method update_old_batches_to_new_index_attempt (line 75) | def update_old_batches_to_new_index_attempt(self, batch_names: list[st... method extract_path_info (line 83) | def extract_path_info(self, path: str) -> BatchStoragePathInfo | None: method _serialize_documents (line 86) | def _serialize_documents(self, documents: list[Document]) -> str: method _deserialize_documents (line 91) | def _deserialize_documents(self, data: str) -> list[Document]: method _normalize_doc_dict (line 99) | def _normalize_doc_dict(self, doc_dict: dict) -> dict: method _per_cc_pair_base_path (line 134) | def _per_cc_pair_base_path(self) -> str: class FileStoreDocumentBatchStorage (line 139) | class FileStoreDocumentBatchStorage(DocumentBatchStorage): method __init__ (line 142) | def __init__(self, cc_pair_id: int, index_attempt_id: int, file_store:... method _get_batch_file_name (line 146) | def _get_batch_file_name(self, batch_num: int) -> str: method store_batch (line 150) | def store_batch(self, batch_num: int, documents: list[Document]) -> None: method get_batch (line 176) | def get_batch(self, batch_num: int) -> list[Document] | None: method delete_batch_by_name (line 203) | def delete_batch_by_name(self, batch_file_name: str) -> None: method delete_batch_by_num (line 208) | def delete_batch_by_num(self, batch_num: int) -> None: method cleanup_all_batches (line 214) | def cleanup_all_batches(self) -> None: method get_all_batches_for_cc_pair (line 219) | def get_all_batches_for_cc_pair(self) -> list[str]: method update_old_batches_to_new_index_attempt (line 232) | def update_old_batches_to_new_index_attempt(self, batch_names: list[st... method extract_path_info (line 244) | def extract_path_info(self, path: str) -> BatchStoragePathInfo | None: function get_document_batch_storage (line 262) | def get_document_batch_storage( FILE: backend/onyx/file_store/file_store.py class S3PutKwargs (line 46) | class S3PutKwargs(TypedDict): class FileStore (line 50) | class FileStore(ABC): method initialize (line 56) | def initialize(self) -> None: method has_file (line 63) | def has_file( method save_file (line 80) | def save_file( method read_file (line 107) | def read_file( method read_file_record (line 124) | def read_file_record(self, file_id: str) -> FileStoreModel: method get_file_size (line 130) | def get_file_size( method delete_file (line 139) | def delete_file(self, file_id: str) -> None: method get_file_with_mime_type (line 148) | def get_file_with_mime_type(self, file_id: str) -> FileWithMimeType | ... method change_file_id (line 154) | def change_file_id(self, old_file_id: str, new_file_id: str) -> None: method list_files_by_prefix (line 165) | def list_files_by_prefix(self, prefix: str) -> list[FileRecord]: class S3BackedFileStore (line 171) | class S3BackedFileStore(FileStore): method __init__ (line 174) | def __init__( method _get_s3_client (line 193) | def _get_s3_client(self) -> S3Client: method _get_bucket_name (line 237) | def _get_bucket_name(self) -> str: method _get_s3_key (line 243) | def _get_s3_key(self, file_name: str) -> str: method initialize (line 260) | def initialize(self) -> None: method has_file (line 306) | def has_file( method save_file (line 323) | def save_file( method read_file (line 388) | def read_file( method read_file_record (line 425) | def read_file_record( method get_file_size (line 434) | def get_file_size( method delete_file (line 455) | def delete_file(self, file_id: str, db_session: Session | None = None)... method change_file_id (line 496) | def change_file_id( method get_file_with_mime_type (line 558) | def get_file_with_mime_type(self, file_id: str) -> FileWithMimeType | ... method list_files_by_prefix (line 570) | def list_files_by_prefix(self, prefix: str) -> list[FileRecord]: function get_s3_file_store (line 581) | def get_s3_file_store() -> S3BackedFileStore: function get_default_file_store (line 604) | def get_default_file_store() -> FileStore: FILE: backend/onyx/file_store/models.py class ChatFileType (line 9) | class ChatFileType(str, Enum): method is_text_file (line 19) | def is_text_file(self) -> bool: method use_metadata_only (line 26) | def use_metadata_only(self) -> bool: class FileDescriptor (line 32) | class FileDescriptor(TypedDict): class InMemoryChatFile (line 42) | class InMemoryChatFile(BaseModel): method to_base64 (line 48) | def to_base64(self) -> str: method to_file_descriptor (line 56) | def to_file_descriptor(self) -> FileDescriptor: FILE: backend/onyx/file_store/postgres_file_store.py function _get_raw_connection (line 43) | def _get_raw_connection(db_session: Session) -> Psycopg2Connection: function _create_large_object (line 51) | def _create_large_object(raw_conn: Psycopg2Connection, data: bytes) -> int: function _read_large_object (line 60) | def _read_large_object(raw_conn: Psycopg2Connection, oid: int) -> bytes: function _read_large_object_to_tempfile (line 68) | def _read_large_object_to_tempfile(raw_conn: Psycopg2Connection, oid: in... function _delete_large_object (line 82) | def _delete_large_object(raw_conn: Any, oid: int) -> None: class PostgresBackedFileStore (line 88) | class PostgresBackedFileStore(FileStore): method initialize (line 95) | def initialize(self) -> None: method has_file (line 99) | def has_file( method save_file (line 116) | def save_file( method read_file (line 187) | def read_file( method read_file_record (line 206) | def read_file_record( method get_file_size (line 212) | def get_file_size( method delete_file (line 225) | def delete_file(self, file_id: str, db_session: Session | None = None)... method get_file_with_mime_type (line 247) | def get_file_with_mime_type(self, file_id: str) -> FileWithMimeType | ... method change_file_id (line 264) | def change_file_id( method list_files_by_prefix (line 305) | def list_files_by_prefix(self, prefix: str) -> list[FileRecord]: method _read_content_bytes (line 310) | def _read_content_bytes(content: IO) -> bytes: FILE: backend/onyx/file_store/s3_key_utils.py function _encode_special_char (line 22) | def _encode_special_char(match: Match[str]) -> str: function sanitize_s3_key_name (line 27) | def sanitize_s3_key_name(file_name: str) -> str: function generate_s3_key (line 119) | def generate_s3_key( FILE: backend/onyx/file_store/utils.py function plaintext_file_name_for_id (line 26) | def plaintext_file_name_for_id(file_id: str) -> str: function store_plaintext (line 31) | def store_plaintext(file_id: str, plaintext_content: str) -> bool: function user_file_id_to_plaintext_file_name (line 65) | def user_file_id_to_plaintext_file_name(user_file_id: UUID) -> str: function store_user_file_plaintext (line 70) | def store_user_file_plaintext(user_file_id: UUID, plaintext_content: str... function load_chat_file_by_id (line 75) | def load_chat_file_by_id(file_id: str) -> InMemoryChatFile: function load_user_file (line 93) | def load_user_file(file_id: UUID, db_session: Session) -> InMemoryChatFile: function load_in_memory_chat_files (line 155) | def load_in_memory_chat_files( function get_user_files (line 181) | def get_user_files( function validate_user_files_ownership (line 213) | def validate_user_files_ownership( function save_file_from_url (line 235) | def save_file_from_url(url: str) -> str: function save_file_from_base64 (line 250) | def save_file_from_base64(base64_string: str) -> str: function save_file (line 261) | def save_file( function save_files (line 288) | def save_files(urls: list[str], base64_files: list[str]) -> list[str]: function verify_user_files (line 303) | def verify_user_files( function build_frontend_file_url (line 382) | def build_frontend_file_url(file_id: str) -> str: function build_full_frontend_file_url (line 386) | def build_full_frontend_file_url(file_id: str) -> str: FILE: backend/onyx/hooks/api_dependencies.py function require_hook_enabled (line 6) | def require_hook_enabled() -> None: FILE: backend/onyx/hooks/executor.py class HookSkipped (line 22) | class HookSkipped: class HookSoftFailed (line 26) | class HookSoftFailed: function _execute_hook_impl (line 33) | def _execute_hook_impl( function execute_hook (line 44) | def execute_hook( FILE: backend/onyx/hooks/models.py class HookCreateRequest (line 23) | class HookCreateRequest(BaseModel): method no_whitespace_only (line 35) | def no_whitespace_only(cls, v: str) -> str: class HookUpdateRequest (line 41) | class HookUpdateRequest(BaseModel): method require_at_least_one_field (line 49) | def require_at_least_one_field(self) -> "HookUpdateRequest": class HookPointMetaResponse (line 75) | class HookPointMetaResponse(BaseModel): class HookResponse (line 87) | class HookResponse(BaseModel): class HookValidateStatus (line 105) | class HookValidateStatus(str, Enum): class HookValidateResponse (line 114) | class HookValidateResponse(BaseModel): class HookExecutionRecord (line 119) | class HookExecutionRecord(BaseModel): FILE: backend/onyx/hooks/points/base.py class HookPointSpec (line 22) | class HookPointSpec: method __init_subclass__ (line 53) | def __init_subclass__(cls, **kwargs: object) -> None: FILE: backend/onyx/hooks/points/document_ingestion.py class DocumentIngestionSection (line 9) | class DocumentIngestionSection(BaseModel): class DocumentIngestionOwner (line 34) | class DocumentIngestionOwner(BaseModel): class DocumentIngestionPayload (line 45) | class DocumentIngestionPayload(BaseModel): class DocumentIngestionResponse (line 77) | class DocumentIngestionResponse(BaseModel): class DocumentIngestionSpec (line 88) | class DocumentIngestionSpec(HookPointSpec): FILE: backend/onyx/hooks/points/query_processing.py class QueryProcessingPayload (line 10) | class QueryProcessingPayload(BaseModel): class QueryProcessingResponse (line 22) | class QueryProcessingResponse(BaseModel): class QueryProcessingSpec (line 37) | class QueryProcessingSpec(HookPointSpec): FILE: backend/onyx/hooks/registry.py function validate_registry (line 13) | def validate_registry() -> None: function get_hook_point_spec (line 27) | def get_hook_point_spec(hook_point: HookPoint) -> HookPointSpec: function get_all_specs (line 43) | def get_all_specs() -> list[HookPointSpec]: FILE: backend/onyx/httpx/httpx_pool.py function make_default_kwargs (line 7) | def make_default_kwargs() -> dict[str, Any]: class HttpxPool (line 14) | class HttpxPool: method __init__ (line 22) | def __init__(self) -> None: method _init_client (line 26) | def _init_client(cls, **kwargs: Any) -> httpx.Client: method init_client (line 32) | def init_client(cls, name: str, **kwargs: Any) -> None: method close_client (line 39) | def close_client(cls, name: str) -> None: method close_all (line 47) | def close_all(cls) -> None: method get (line 55) | def get(cls, name: str) -> httpx.Client: FILE: backend/onyx/image_gen/exceptions.py class ImageProviderError (line 1) | class ImageProviderError(Exception): class ImageProviderCredentialsError (line 5) | class ImageProviderCredentialsError(ImageProviderError): FILE: backend/onyx/image_gen/factory.py class ImageGenerationProviderName (line 10) | class ImageGenerationProviderName(str, Enum): function get_image_generation_provider (line 23) | def get_image_generation_provider( function validate_credentials (line 31) | def validate_credentials( function _get_provider_cls (line 39) | def _get_provider_cls(provider: str) -> type[ImageGenerationProvider]: FILE: backend/onyx/image_gen/interfaces.py class ImageGenerationProviderCredentials (line 15) | class ImageGenerationProviderCredentials(BaseModel): class ReferenceImage (line 23) | class ReferenceImage(BaseModel): class ImageGenerationProvider (line 28) | class ImageGenerationProvider(abc.ABC): method supports_reference_images (line 30) | def supports_reference_images(self) -> bool: method max_reference_images (line 34) | def max_reference_images(self) -> int: method validate_credentials (line 39) | def validate_credentials( method build_from_credentials (line 47) | def build_from_credentials( method _build_from_credentials (line 59) | def _build_from_credentials( method generate_image (line 72) | def generate_image( FILE: backend/onyx/image_gen/providers/azure_img_gen.py class AzureImageGenerationProvider (line 14) | class AzureImageGenerationProvider(ImageGenerationProvider): method __init__ (line 18) | def __init__( method validate_credentials (line 31) | def validate_credentials( method _build_from_credentials (line 44) | def _build_from_credentials( method supports_reference_images (line 60) | def supports_reference_images(self) -> bool: method max_reference_images (line 64) | def max_reference_images(self) -> int: method _normalize_model_name (line 68) | def _normalize_model_name(self, model: str) -> str: method _model_supports_image_edits (line 71) | def _model_supports_image_edits(self, model: str) -> bool: method generate_image (line 78) | def generate_image( FILE: backend/onyx/image_gen/providers/openai_img_gen.py class OpenAIImageGenerationProvider (line 14) | class OpenAIImageGenerationProvider(ImageGenerationProvider): method __init__ (line 18) | def __init__( method validate_credentials (line 27) | def validate_credentials( method _build_from_credentials (line 34) | def _build_from_credentials( method supports_reference_images (line 46) | def supports_reference_images(self) -> bool: method max_reference_images (line 50) | def max_reference_images(self) -> int: method _normalize_model_name (line 54) | def _normalize_model_name(self, model: str) -> str: method _model_supports_image_edits (line 57) | def _model_supports_image_edits(self, model: str) -> bool: method generate_image (line 64) | def generate_image( FILE: backend/onyx/image_gen/providers/vertex_img_gen.py class VertexCredentials (line 20) | class VertexCredentials(BaseModel): class VertexImageGenerationProvider (line 26) | class VertexImageGenerationProvider(ImageGenerationProvider): method __init__ (line 27) | def __init__( method validate_credentials (line 36) | def validate_credentials( method _build_from_credentials (line 47) | def _build_from_credentials( method supports_reference_images (line 58) | def supports_reference_images(self) -> bool: method max_reference_images (line 62) | def max_reference_images(self) -> int: method generate_image (line 66) | def generate_image( method _generate_image_with_reference_images (line 99) | def _generate_image_with_reference_images( function _map_size_to_aspect_ratio (line 183) | def _map_size_to_aspect_ratio(size: str) -> str: function _parse_to_vertex_credentials (line 193) | def _parse_to_vertex_credentials( FILE: backend/onyx/indexing/adapters/document_indexing_adapter.py class DocumentIndexingBatchAdapter (line 34) | class DocumentIndexingBatchAdapter: method __init__ (line 40) | def __init__( method prepare (line 54) | def prepare( method lock_context (line 80) | def lock_context( method prepare_enrichment (line 89) | def prepare_enrichment( method _get_ancestor_ids_for_documents (line 139) | def _get_ancestor_ids_for_documents( method post_index (line 172) | def post_index( class DocumentChunkEnricher (line 225) | class DocumentChunkEnricher: method __init__ (line 228) | def __init__( method enrich_chunk (line 248) | def enrich_chunk( FILE: backend/onyx/indexing/adapters/user_file_indexing_adapter.py function _acquire_user_file_locks (line 46) | def _acquire_user_file_locks(db_session: Session, user_file_ids: list[st... class UserFileIndexingAdapter (line 66) | class UserFileIndexingAdapter: method __init__ (line 67) | def __init__(self, tenant_id: str, db_session: Session): method prepare (line 71) | def prepare( method lock_context (line 82) | def lock_context( method prepare_enrichment (line 109) | def prepare_enrichment( method _notify_assistant_owners_if_files_ready (line 192) | def _notify_assistant_owners_if_files_ready( method post_index (line 228) | def post_index( class UserFileChunkEnricher (line 273) | class UserFileChunkEnricher: method __init__ (line 276) | def __init__( method enrich_chunk (line 298) | def enrich_chunk( FILE: backend/onyx/indexing/chunk_batch_store.py class ChunkBatchStore (line 10) | class ChunkBatchStore: method __init__ (line 26) | def __init__(self) -> None: method __enter__ (line 31) | def __enter__(self) -> "ChunkBatchStore": method __exit__ (line 35) | def __exit__(self, *_exc: object) -> None: method _dir (line 41) | def _dir(self) -> Path: method save (line 47) | def save(self, chunks: list[IndexChunk], batch_idx: int) -> None: method _load (line 52) | def _load(self, batch_file: Path) -> list[IndexChunk]: method _batch_files (line 57) | def _batch_files(self) -> list[Path]: method stream (line 66) | def stream(self) -> Iterator[IndexChunk]: method scrub_failed_docs (line 75) | def scrub_failed_docs(self, failed_doc_ids: set[str]) -> None: FILE: backend/onyx/indexing/chunker.py function _get_metadata_suffix_for_document_index (line 41) | def _get_metadata_suffix_for_document_index( function _combine_chunks (line 74) | def _combine_chunks(chunks: list[DocAwareChunk], large_chunk_id: int) ->... function generate_large_chunks (line 111) | def generate_large_chunks(chunks: list[DocAwareChunk]) -> list[DocAwareC... class Chunker (line 124) | class Chunker: method __init__ (line 129) | def __init__( method _split_oversized_chunk (line 189) | def _split_oversized_chunk(self, text: str, content_token_limit: int) ... method _extract_blurb (line 206) | def _extract_blurb(self, text: str) -> str: method _get_mini_chunk_texts (line 216) | def _get_mini_chunk_texts(self, chunk_text: str) -> list[str] | None: method _create_chunk (line 226) | def _create_chunk( method _chunk_document_with_sections (line 260) | def _chunk_document_with_sections( method _handle_single_document (line 418) | def _handle_single_document( method chunk (line 513) | def chunk(self, documents: list[IndexingDocument]) -> list[DocAwareChu... FILE: backend/onyx/indexing/embedder.py class IndexingEmbedder (line 31) | class IndexingEmbedder(ABC): method __init__ (line 35) | def __init__( method embed_chunks (line 78) | def embed_chunks( class DefaultIndexingEmbedder (line 87) | class DefaultIndexingEmbedder(IndexingEmbedder): method __init__ (line 88) | def __init__( method embed_chunks (line 117) | def embed_chunks( method from_db_search_settings (line 228) | def from_db_search_settings( function embed_chunks_with_failure_handling (line 248) | def embed_chunks_with_failure_handling( FILE: backend/onyx/indexing/indexing_heartbeat.py class IndexingHeartbeatInterface (line 5) | class IndexingHeartbeatInterface(ABC): method should_stop (line 10) | def should_stop(self) -> bool: method progress (line 14) | def progress(self, tag: str, amount: int) -> None: FILE: backend/onyx/indexing/indexing_pipeline.py class DocumentBatchPrepareContext (line 90) | class DocumentBatchPrepareContext(BaseModel): class IndexingPipelineResult (line 97) | class IndexingPipelineResult(BaseModel): method empty (line 110) | def empty(cls, total_docs: int) -> "IndexingPipelineResult": class ChunkEmbeddingResult (line 119) | class ChunkEmbeddingResult(BaseModel): class IndexingPipelineProtocol (line 124) | class IndexingPipelineProtocol(Protocol): method __call__ (line 125) | def __call__( function _upsert_documents_in_db (line 132) | def _upsert_documents_in_db( function _get_failed_doc_ids (line 171) | def _get_failed_doc_ids(failures: list[ConnectorFailure]) -> set[str]: function _embed_chunks_to_store (line 176) | def _embed_chunks_to_store( function embed_and_stream (line 247) | def embed_and_stream( function get_doc_ids_to_update (line 275) | def get_doc_ids_to_update( function index_doc_batch_with_handler (line 300) | def index_doc_batch_with_handler( function index_doc_batch_prepare (line 359) | def index_doc_batch_prepare( function filter_documents (line 433) | def filter_documents(document_batch: list[Document]) -> list[Document]: function process_image_sections (line 512) | def process_image_sections(documents: list[Document]) -> list[IndexingDo... function add_document_summaries (line 627) | def add_document_summaries( function add_chunk_summaries (line 663) | def add_chunk_summaries( function add_contextual_summaries (line 733) | def add_contextual_summaries( function _verify_indexing_completeness (line 775) | def _verify_indexing_completeness( function _apply_document_ingestion_hook (line 798) | def _apply_document_ingestion_hook( function index_doc_batch (line 925) | def index_doc_batch( function run_indexing_pipeline (line 1096) | def run_indexing_pipeline( FILE: backend/onyx/indexing/models.py class ChunkEmbedding (line 30) | class ChunkEmbedding(BaseModel): class BaseChunk (line 35) | class BaseChunk(BaseModel): class DocAwareChunk (line 49) | class DocAwareChunk(BaseChunk): method to_short_descriptor (line 79) | def to_short_descriptor(self) -> str: method get_link (line 83) | def get_link(self) -> str | None: class IndexChunk (line 91) | class IndexChunk(DocAwareChunk): class DocMetadataAwareIndexChunk (line 98) | class DocMetadataAwareIndexChunk(IndexChunk): method from_index_chunk (line 125) | def from_index_chunk( class EmbeddingModelDetail (line 150) | class EmbeddingModelDetail(BaseModel): method from_db_model (line 164) | def from_db_model( class IndexingSetting (line 188) | class IndexingSetting(EmbeddingModelDetail): method final_embedding_dim (line 204) | def final_embedding_dim(self) -> int: method from_db_model (line 210) | def from_db_model(cls, search_settings: "SearchSettings") -> "Indexing... class MultipassConfig (line 227) | class MultipassConfig(BaseModel): class UpdatableChunkData (line 232) | class UpdatableChunkData(BaseModel): class ChunkEnrichmentContext (line 238) | class ChunkEnrichmentContext(Protocol): method enrich_chunk (line 245) | def enrich_chunk( class IndexingBatchAdapter (line 250) | class IndexingBatchAdapter(Protocol): method prepare (line 251) | def prepare( method lock_context (line 256) | def lock_context( method prepare_enrichment (line 261) | def prepare_enrichment( method post_index (line 275) | def post_index( FILE: backend/onyx/indexing/vector_db_insertion.py function _log_insufficient_storage_error (line 22) | def _log_insufficient_storage_error(e: Exception) -> None: function write_chunks_to_vector_db_with_backoff (line 32) | def write_chunks_to_vector_db_with_backoff( FILE: backend/onyx/key_value_store/factory.py function get_kv_store (line 7) | def get_kv_store() -> KeyValueStore: function get_shared_kv_store (line 13) | def get_shared_kv_store() -> KeyValueStore: FILE: backend/onyx/key_value_store/interface.py class KvKeyNotFoundError (line 7) | class KvKeyNotFoundError(Exception): function unwrap_str (line 11) | def unwrap_str(val: JSON_ro) -> str: class KeyValueStore (line 24) | class KeyValueStore: method store (line 28) | def store(self, key: str, val: JSON_ro, encrypt: bool = False) -> None: method load (line 32) | def load(self, key: str, refresh_cache: bool = False) -> JSON_ro: method delete (line 36) | def delete(self, key: str) -> None: FILE: backend/onyx/key_value_store/store.py class PgRedisKVStore (line 20) | class PgRedisKVStore(KeyValueStore): method __init__ (line 21) | def __init__(self, cache: CacheBackend | None = None) -> None: method _get_cache (line 24) | def _get_cache(self) -> CacheBackend: method store (line 31) | def store(self, key: str, val: JSON_ro, encrypt: bool = False) -> None: method load (line 56) | def load(self, key: str, refresh_cache: bool = False) -> JSON_ro: method delete (line 91) | def delete(self, key: str) -> None: FILE: backend/onyx/kg/clustering/clustering.py function _get_batch_untransferred_grounded_entities (line 42) | def _get_batch_untransferred_grounded_entities( function _get_batch_untransferred_relationship_types (line 66) | def _get_batch_untransferred_relationship_types( function _get_batch_untransferred_relationships (line 82) | def _get_batch_untransferred_relationships( function _get_batch_entities_with_parent (line 98) | def _get_batch_entities_with_parent( function _get_batch_kg_processed_documents (line 120) | def _get_batch_kg_processed_documents( function _cluster_one_grounded_entity (line 147) | def _cluster_one_grounded_entity( function _create_one_parent_child_relationship (line 221) | def _create_one_parent_child_relationship(entity: KGEntityExtractionStag... function _transfer_one_relationship (line 266) | def _transfer_one_relationship( function kg_clustering (line 297) | def kg_clustering( FILE: backend/onyx/kg/clustering/normalizations.py function _ngrams (line 44) | def _ngrams(sequence: str, n: int) -> list[tuple[str, ...]]: function _clean_name (line 49) | def _clean_name(entity_name: str) -> str: function _normalize_one_entity (line 61) | def _normalize_one_entity( function _get_existing_normalized_relationships (line 197) | def _get_existing_normalized_relationships( function normalize_entities (line 230) | def normalize_entities( function normalize_relationships (line 280) | def normalize_relationships( FILE: backend/onyx/kg/extractions/extraction_processing.py function _get_classification_extraction_instructions (line 49) | def _get_classification_extraction_instructions() -> ( function _get_batch_documents_enhanced_metadata (line 102) | def _get_batch_documents_enhanced_metadata( function kg_extraction (line 203) | def kg_extraction( FILE: backend/onyx/kg/models.py class KGConfigSettings (line 12) | class KGConfigSettings(BaseModel): method KG_COVERAGE_START_DATE (line 24) | def KG_COVERAGE_START_DATE(self) -> datetime: class KGGroundingType (line 28) | class KGGroundingType(str, Enum): class KGAttributeTrackType (line 33) | class KGAttributeTrackType(str, Enum): class KGAttributeTrackInfo (line 38) | class KGAttributeTrackInfo(BaseModel): class KGAttributeEntityOption (line 43) | class KGAttributeEntityOption(str, Enum): class KGAttributeImplicationProperty (line 47) | class KGAttributeImplicationProperty(BaseModel): class KGAttributeProperty (line 56) | class KGAttributeProperty(BaseModel): class KGEntityTypeClassificationInfo (line 65) | class KGEntityTypeClassificationInfo(BaseModel): class KGEntityTypeAttributes (line 70) | class KGEntityTypeAttributes(BaseModel): class KGEntityTypeDefinition (line 82) | class KGEntityTypeDefinition(BaseModel): class KGChunkFormat (line 91) | class KGChunkFormat(BaseModel): class KGPerson (line 103) | class KGPerson(BaseModel): class NormalizedEntities (line 109) | class NormalizedEntities(BaseModel): class NormalizedRelationships (line 115) | class NormalizedRelationships(BaseModel): class KGMetadataContent (line 120) | class KGMetadataContent(BaseModel): class KGClassificationInstructions (line 126) | class KGClassificationInstructions(BaseModel): class KGExtractionInstructions (line 132) | class KGExtractionInstructions(BaseModel): class KGEntityTypeInstructions (line 137) | class KGEntityTypeInstructions(BaseModel): class KGEnhancedDocumentMetadata (line 144) | class KGEnhancedDocumentMetadata(BaseModel): class KGConnectorData (line 154) | class KGConnectorData(BaseModel): class KGStage (line 160) | class KGStage(str, Enum): class KGClassificationResult (line 170) | class KGClassificationResult(BaseModel): class KGImpliedExtractionResults (line 175) | class KGImpliedExtractionResults(BaseModel): class KGDocumentDeepExtractionResults (line 183) | class KGDocumentDeepExtractionResults(BaseModel): class KGException (line 189) | class KGException(Exception): FILE: backend/onyx/kg/resets/reset_index.py function reset_full_kg_index__commit (line 14) | def reset_full_kg_index__commit(db_session: Session) -> None: FILE: backend/onyx/kg/resets/reset_source.py function reset_source_kg_index (line 21) | def reset_source_kg_index( FILE: backend/onyx/kg/resets/reset_vespa.py function _reset_vespa_for_doc (line 24) | def _reset_vespa_for_doc(document_id: str, tenant_id: str, index_name: s... function reset_vespa_kg_index (line 66) | def reset_vespa_kg_index( FILE: backend/onyx/kg/setup/kg_default_entity_definitions.py function get_default_entity_types (line 18) | def get_default_entity_types(vendor_name: str) -> dict[str, KGEntityType... function populate_missing_default_entity_types__commit (line 260) | def populate_missing_default_entity_types__commit(db_session: Session) -... FILE: backend/onyx/kg/utils/embeddings.py function encode_string_batch (line 13) | def encode_string_batch(strings: List[str]) -> np.ndarray: FILE: backend/onyx/kg/utils/extraction_utils.py function get_entity_types_str (line 45) | def get_entity_types_str(active: bool | None = None) -> str: function get_relationship_types_str (line 98) | def get_relationship_types_str(active: bool | None = None) -> str: function kg_process_owners (line 124) | def kg_process_owners( function kg_implied_extraction (line 172) | def kg_implied_extraction( function kg_deep_extraction (line 327) | def kg_deep_extraction( function kg_classify_document (line 384) | def kg_classify_document( function kg_deep_extract_chunks (line 450) | def kg_deep_extract_chunks( function kg_process_person (line 528) | def kg_process_person( function get_batch_documents_metadata (line 570) | def get_batch_documents_metadata( function trackinfo_to_str (line 594) | def trackinfo_to_str(trackinfo: KGAttributeTrackInfo | None) -> str: function trackinfo_to_dict (line 609) | def trackinfo_to_dict(trackinfo: KGAttributeTrackInfo | None) -> dict | ... class EntityTypeMetadataTracker (line 618) | class EntityTypeMetadataTracker: method __init__ (line 619) | def __init__(self) -> None: method import_typeinfo (line 627) | def import_typeinfo(self) -> None: method export_typeinfo (line 643) | def export_typeinfo(self) -> None: method track_metadata (line 666) | def track_metadata( FILE: backend/onyx/kg/utils/formatting_utils.py function format_entity_id (line 7) | def format_entity_id(entity_id_name: str) -> str: function make_entity_id (line 11) | def make_entity_id(entity_type: str, entity_name: str) -> str: function split_entity_id (line 15) | def split_entity_id(entity_id_name: str) -> list[str]: function get_entity_type (line 19) | def get_entity_type(entity_id_name: str) -> str: function format_entity_id_for_models (line 23) | def format_entity_id_for_models(entity_id_name: str) -> str: function get_attributes (line 40) | def get_attributes(entity_w_attributes: str) -> dict[str, str]: function make_entity_w_attributes (line 61) | def make_entity_w_attributes(entity: str, attributes: dict[str, str]) ->... function format_relationship_id (line 65) | def format_relationship_id(relationship_id_name: str) -> str: function make_relationship_id (line 69) | def make_relationship_id( function split_relationship_id (line 75) | def split_relationship_id(relationship_id_name: str) -> list[str]: function format_relationship_type_id (line 79) | def format_relationship_type_id(relationship_type_id_name: str) -> str: function make_relationship_type_id (line 85) | def make_relationship_type_id( function split_relationship_type_id (line 91) | def split_relationship_type_id(relationship_type_id_name: str) -> list[s... function extract_relationship_type_id (line 95) | def extract_relationship_type_id(relationship_id_name: str) -> str: function extract_email (line 104) | def extract_email(email: str) -> str | None: function kg_email_processing (line 113) | def kg_email_processing(email: str, kg_config_settings: KGConfigSettings... FILE: backend/onyx/kg/utils/lock_utils.py function extend_lock (line 6) | def extend_lock(lock: RedisLock, timeout: int, last_lock_time: float) ->... FILE: backend/onyx/kg/vespa/vespa_interactions.py function get_document_vespa_contents (line 13) | def get_document_vespa_contents( FILE: backend/onyx/llm/constants.py class LlmProviderNames (line 11) | class LlmProviderNames(str, Enum): method __str__ (line 30) | def __str__(self) -> str: FILE: backend/onyx/llm/cost.py function calculate_llm_cost_cents (line 8) | def calculate_llm_cost_cents( FILE: backend/onyx/llm/factory.py function _build_provider_extra_headers (line 34) | def _build_provider_extra_headers( function _get_model_configured_max_input_tokens (line 60) | def _get_model_configured_max_input_tokens( function _build_model_kwargs (line 70) | def _build_model_kwargs( function get_llm_for_persona (line 84) | def get_llm_for_persona( function get_default_llm_with_vision (line 141) | def get_default_llm_with_vision( function llm_from_provider (line 242) | def llm_from_provider( function get_llm_for_contextual_rag (line 279) | def get_llm_for_contextual_rag(model_name: str, model_provider: str) -> ... function get_default_llm (line 290) | def get_default_llm( function get_llm (line 310) | def get_llm( function get_llm_tokenizer_encode_func (line 352) | def get_llm_tokenizer_encode_func(llm: LLM) -> Callable[[str], list[int]]: function get_llm_token_counter (line 371) | def get_llm_token_counter(llm: LLM) -> Callable[[str], int]: FILE: backend/onyx/llm/interfaces.py class LLMUserIdentity (line 17) | class LLMUserIdentity(BaseModel): class LLMConfig (line 22) | class LLMConfig(BaseModel): class LLM (line 36) | class LLM(abc.ABC): method config (line 39) | def config(self) -> LLMConfig: method invoke (line 43) | def invoke( method stream (line 56) | def stream( FILE: backend/onyx/llm/litellm_singleton/config.py function configure_litellm_settings (line 11) | def configure_litellm_settings() -> None: function register_ollama_models (line 22) | def register_ollama_models() -> None: function load_model_metadata_enrichments (line 113) | def load_model_metadata_enrichments() -> None: function initialize_litellm (line 157) | def initialize_litellm() -> None: FILE: backend/onyx/llm/litellm_singleton/monkey_patches.py function _patch_ollama_chunk_parser (line 103) | def _patch_ollama_chunk_parser() -> None: function _patch_openai_responses_parallel_tool_calls (line 250) | def _patch_openai_responses_parallel_tool_calls() -> None: function _patch_openai_responses_transform_response (line 453) | def _patch_openai_responses_transform_response() -> None: function _patch_azure_responses_should_fake_stream (line 559) | def _patch_azure_responses_should_fake_stream() -> None: function _patch_responses_api_usage_format (line 593) | def _patch_responses_api_usage_format() -> None: function _patch_logging_assembled_streaming_response (line 658) | def _patch_logging_assembled_streaming_response() -> None: function _patch_responses_metadata_none (line 740) | def _patch_responses_metadata_none() -> None: function apply_monkey_patches (line 778) | def apply_monkey_patches() -> None: FILE: backend/onyx/llm/model_name_parser.py class ParsedModelName (line 31) | class ParsedModelName(BaseModel): function _get_model_info (line 43) | def _get_model_info(model_key: str) -> dict: function _extract_provider (line 59) | def _extract_provider(model_key: str) -> str: function _extract_region (line 79) | def _extract_region(model_key: str) -> str | None: function _format_name (line 90) | def _format_name(name: str | None) -> str: function _infer_vendor_from_model_name (line 97) | def _infer_vendor_from_model_name(model_name: str) -> str | None: function _generate_display_name_from_model (line 123) | def _generate_display_name_from_model(model_name: str) -> str: function _generate_provider_display_name (line 191) | def _generate_provider_display_name(provider: str, vendor: str | None) -... function parse_litellm_model_name (line 220) | def parse_litellm_model_name(raw_name: str) -> ParsedModelName: FILE: backend/onyx/llm/model_response.py class FunctionCall (line 11) | class FunctionCall(BaseModel): class ChatCompletionMessageToolCall (line 16) | class ChatCompletionMessageToolCall(BaseModel): class ChatCompletionDeltaToolCall (line 22) | class ChatCompletionDeltaToolCall(BaseModel): class Delta (line 29) | class Delta(BaseModel): class StreamingChoice (line 35) | class StreamingChoice(BaseModel): class Usage (line 41) | class Usage(BaseModel): class ModelResponseStream (line 49) | class ModelResponseStream(BaseModel): class Message (line 60) | class Message(BaseModel): class Choice (line 67) | class Choice(BaseModel): class ModelResponse (line 73) | class ModelResponse(BaseModel): function _parse_function_call (line 87) | def _parse_function_call( function _parse_delta_tool_calls (line 99) | def _parse_delta_tool_calls( function _parse_message_tool_calls (line 119) | def _parse_message_tool_calls( function _validate_and_extract_base_fields (line 142) | def _validate_and_extract_base_fields( function _usage_from_usage_data (line 163) | def _usage_from_usage_data(usage_data: dict[str, Any]) -> Usage: function from_litellm_model_response_stream (line 179) | def from_litellm_model_response_stream( function from_litellm_model_response (line 212) | def from_litellm_model_response( FILE: backend/onyx/llm/models.py class ToolChoiceOptions (line 7) | class ToolChoiceOptions(str, Enum): class ReasoningEffort (line 13) | class ReasoningEffort(str, Enum): class TextContentPart (line 52) | class TextContentPart(BaseModel): class ImageUrlDetail (line 59) | class ImageUrlDetail(BaseModel): class ImageContentPart (line 64) | class ImageContentPart(BaseModel): class FunctionCall (line 73) | class FunctionCall(BaseModel): class ToolCall (line 78) | class ToolCall(BaseModel): class CacheableMessage (line 88) | class CacheableMessage(BaseModel): class SystemMessage (line 93) | class SystemMessage(CacheableMessage): class UserMessage (line 98) | class UserMessage(CacheableMessage): class AssistantMessage (line 103) | class AssistantMessage(CacheableMessage): class ToolMessage (line 109) | class ToolMessage(CacheableMessage): FILE: backend/onyx/llm/multi_llm.py class LLMTimeoutError (line 73) | class LLMTimeoutError(Exception): class LLMRateLimitError (line 79) | class LLMRateLimitError(Exception): function _prompt_to_dicts (line 85) | def _prompt_to_dicts(prompt: LanguageModelInput) -> list[dict[str, Any]]: function _normalize_content (line 96) | def _normalize_content(raw: Any) -> str: function _strip_tool_content_from_messages (line 114) | def _strip_tool_content_from_messages( function _fix_tool_user_message_ordering (line 178) | def _fix_tool_user_message_ordering( function _messages_contain_tool_content (line 200) | def _messages_contain_tool_content(messages: list[dict[str, Any]]) -> bool: function _prompt_contains_tool_call_history (line 210) | def _prompt_contains_tool_call_history(prompt: LanguageModelInput) -> bool: function _is_vertex_model_rejecting_output_config (line 225) | def _is_vertex_model_rejecting_output_config(model_name: str) -> bool: class LitellmLLM (line 233) | class LitellmLLM(LLM): method __init__ (line 237) | def __init__( method _safe_model_config (line 351) | def _safe_model_config(self) -> dict: method _track_llm_cost (line 363) | def _track_llm_cost(self, usage: Usage) -> None: method _completion (line 405) | def _completion( method config (line 646) | def config(self) -> LLMConfig: method invoke (line 659) | def invoke( method stream (line 755) | def stream( function temporary_env_and_lock (line 836) | def temporary_env_and_lock(env_variables: dict[str, str]) -> Iterator[No... FILE: backend/onyx/llm/override_models.py class LLMOverride (line 10) | class LLMOverride(BaseModel): class PromptOverride (line 38) | class PromptOverride(BaseModel): FILE: backend/onyx/llm/prompt_cache/cache_manager.py class CacheManager (line 24) | class CacheManager: method __init__ (line 27) | def __init__(self, kv_store: PgRedisKVStore | None = None) -> None: method _build_cache_key (line 35) | def _build_cache_key( method store_cache_metadata (line 57) | def store_cache_metadata( method retrieve_cache_metadata (line 96) | def retrieve_cache_metadata( method delete_cache_metadata (line 138) | def delete_cache_metadata( function _make_json_serializable (line 166) | def _make_json_serializable(obj: object) -> object: function generate_cache_key_hash (line 188) | def generate_cache_key_hash( FILE: backend/onyx/llm/prompt_cache/models.py class CacheMetadata (line 8) | class CacheMetadata(BaseModel): FILE: backend/onyx/llm/prompt_cache/processor.py function process_with_prompt_cache (line 19) | def process_with_prompt_cache( FILE: backend/onyx/llm/prompt_cache/providers/anthropic.py function _add_anthropic_cache_control (line 13) | def _add_anthropic_cache_control( class AnthropicPromptCacheProvider (line 32) | class AnthropicPromptCacheProvider(PromptCacheProvider): method supports_caching (line 41) | def supports_caching(self) -> bool: method prepare_messages_for_caching (line 45) | def prepare_messages_for_caching( method extract_cache_metadata (line 73) | def extract_cache_metadata( method get_cache_ttl_seconds (line 93) | def get_cache_ttl_seconds(self) -> int: FILE: backend/onyx/llm/prompt_cache/providers/base.py class PromptCacheProvider (line 10) | class PromptCacheProvider(ABC): method supports_caching (line 14) | def supports_caching(self) -> bool: method prepare_messages_for_caching (line 23) | def prepare_messages_for_caching( method extract_cache_metadata (line 47) | def extract_cache_metadata( method get_cache_ttl_seconds (line 64) | def get_cache_ttl_seconds(self) -> int: FILE: backend/onyx/llm/prompt_cache/providers/factory.py function get_provider_adapter (line 14) | def get_provider_adapter(llm_config: LLMConfig) -> PromptCacheProvider: FILE: backend/onyx/llm/prompt_cache/providers/noop.py class NoOpPromptCacheProvider (line 9) | class NoOpPromptCacheProvider(PromptCacheProvider): method supports_caching (line 12) | def supports_caching(self) -> bool: method prepare_messages_for_caching (line 16) | def prepare_messages_for_caching( method extract_cache_metadata (line 43) | def extract_cache_metadata( method get_cache_ttl_seconds (line 51) | def get_cache_ttl_seconds(self) -> int: FILE: backend/onyx/llm/prompt_cache/providers/openai.py class OpenAIPromptCacheProvider (line 9) | class OpenAIPromptCacheProvider(PromptCacheProvider): method supports_caching (line 12) | def supports_caching(self) -> bool: method prepare_messages_for_caching (line 16) | def prepare_messages_for_caching( method extract_cache_metadata (line 45) | def extract_cache_metadata( method get_cache_ttl_seconds (line 67) | def get_cache_ttl_seconds(self) -> int: FILE: backend/onyx/llm/prompt_cache/providers/vertex.py class VertexAIPromptCacheProvider (line 13) | class VertexAIPromptCacheProvider(PromptCacheProvider): method supports_caching (line 16) | def supports_caching(self) -> bool: method prepare_messages_for_caching (line 20) | def prepare_messages_for_caching( method extract_cache_metadata (line 54) | def extract_cache_metadata( method get_cache_ttl_seconds (line 78) | def get_cache_ttl_seconds(self) -> int: function _add_vertex_cache_control (line 83) | def _add_vertex_cache_control( FILE: backend/onyx/llm/prompt_cache/utils.py function combine_messages_with_continuation (line 17) | def combine_messages_with_continuation( function revalidate_message_from_original (line 65) | def revalidate_message_from_original( function prepare_messages_with_cacheable_transform (line 82) | def prepare_messages_with_cacheable_transform( FILE: backend/onyx/llm/request_context.py function get_llm_mock_response (line 9) | def get_llm_mock_response() -> str | None: function set_llm_mock_response (line 13) | def set_llm_mock_response(mock_response: str | None) -> contextvars.Toke... function reset_llm_mock_response (line 17) | def reset_llm_mock_response(token: contextvars.Token[str | None]) -> None: FILE: backend/onyx/llm/utils.py function truncate_litellm_user_id (line 63) | def truncate_litellm_user_id(user_id: str) -> str: function build_litellm_passthrough_kwargs (line 75) | def build_litellm_passthrough_kwargs( function _unwrap_nested_exception (line 110) | def _unwrap_nested_exception(error: Exception) -> Exception: function litellm_exception_to_error_msg (line 134) | def litellm_exception_to_error_msg( function llm_response_to_string (line 308) | def llm_response_to_string(message: ModelResponse) -> str: function check_number_of_tokens (line 315) | def check_number_of_tokens( function test_llm (line 330) | def test_llm(llm: LLM) -> str | None: function get_model_map (line 345) | def get_model_map() -> dict: function _strip_extra_provider_from_model_name (line 396) | def _strip_extra_provider_from_model_name(model_name: str) -> str: function _strip_colon_from_model_name (line 400) | def _strip_colon_from_model_name(model_name: str) -> str: function find_model_obj (line 404) | def find_model_obj(model_map: dict, provider: str, model_name: str) -> d... function get_llm_contextual_cost (line 435) | def get_llm_contextual_cost( function llm_max_input_tokens (line 512) | def llm_max_input_tokens( function get_llm_max_output_tokens (line 546) | def get_llm_max_output_tokens( function get_max_input_tokens (line 577) | def get_max_input_tokens( function get_max_input_tokens_from_llm_provider (line 605) | def get_max_input_tokens_from_llm_provider( function get_bedrock_token_limit (line 636) | def get_bedrock_token_limit(model_id: str) -> int: function model_supports_image_input (line 684) | def model_supports_image_input(model_name: str, model_provider: str) -> ... function litellm_thinks_model_supports_image_input (line 713) | def litellm_thinks_model_supports_image_input( function model_is_reasoning_model (line 735) | def model_is_reasoning_model(model_name: str, model_provider: str) -> bool: function is_true_openai_model (line 770) | def is_true_openai_model(model_provider: str, model_name: str) -> bool: function model_needs_formatting_reenabled (line 818) | def model_needs_formatting_reenabled(model_name: str) -> bool: FILE: backend/onyx/llm/well_known_providers/auto_update_models.py class LLMProviderRecommendation (line 12) | class LLMProviderRecommendation(BaseModel): method normalize_default_model (line 25) | def normalize_default_model(cls, v: Any) -> dict[str, Any]: class LLMRecommendations (line 32) | class LLMRecommendations(BaseModel): method get_visible_models (line 39) | def get_visible_models(self, provider_name: str) -> list[SimpleKnownMo... method get_default_model (line 48) | def get_default_model(self, provider_name: str) -> SimpleKnownModel | ... FILE: backend/onyx/llm/well_known_providers/auto_update_service.py function _get_cached_last_updated_at (line 29) | def _get_cached_last_updated_at() -> datetime | None: function _set_cached_last_updated_at (line 39) | def _set_cached_last_updated_at(updated_at: datetime) -> None: function fetch_llm_recommendations_from_github (line 50) | def fetch_llm_recommendations_from_github( function sync_llm_models_from_github (line 77) | def sync_llm_models_from_github( function reset_cache (line 144) | def reset_cache() -> None: FILE: backend/onyx/llm/well_known_providers/llm_provider_options.py function _get_provider_to_models_map (line 37) | def _get_provider_to_models_map() -> dict[str, list[str]]: function _load_bundled_recommendations (line 57) | def _load_bundled_recommendations() -> LLMRecommendations: function get_recommendations (line 64) | def get_recommendations() -> LLMRecommendations: function is_obsolete_model (line 93) | def is_obsolete_model(model_name: str, provider: str) -> bool: function get_openai_model_names (line 136) | def get_openai_model_names() -> list[str]: function get_anthropic_model_names (line 179) | def get_anthropic_model_names() -> list[str]: function get_vertexai_model_names (line 201) | def get_vertexai_model_names() -> list[str]: function model_configurations_for_provider (line 247) | def model_configurations_for_provider( function fetch_available_well_known_llms (line 280) | def fetch_available_well_known_llms() -> list[WellKnownLLMProviderDescri... function fetch_models_for_provider (line 300) | def fetch_models_for_provider(provider_name: str) -> list[str]: function fetch_model_names_for_provider_as_set (line 304) | def fetch_model_names_for_provider_as_set(provider_name: str) -> set[str... function fetch_visible_model_names_for_provider_as_set (line 309) | def fetch_visible_model_names_for_provider_as_set( function get_provider_display_name (line 321) | def get_provider_display_name(provider_name: str) -> str: function fetch_default_model_for_provider (line 348) | def fetch_default_model_for_provider(provider_name: str) -> str | None: FILE: backend/onyx/llm/well_known_providers/models.py class CustomConfigKeyType (line 9) | class CustomConfigKeyType(str, Enum): class SimpleKnownModel (line 22) | class SimpleKnownModel(BaseModel): class WellKnownLLMProviderDescriptor (line 27) | class WellKnownLLMProviderDescriptor(BaseModel): FILE: backend/onyx/main.py function validation_exception_handler (line 187) | def validation_exception_handler(request: Request, exc: Exception) -> JS... function value_error_handler (line 200) | def value_error_handler(_: Request, exc: Exception) -> JSONResponse: function use_route_function_names_as_operation_ids (line 216) | def use_route_function_names_as_operation_ids(app: FastAPI) -> None: function include_router_with_global_prefix_prepended (line 230) | def include_router_with_global_prefix_prepended( function include_auth_router_with_prefix (line 249) | def include_auth_router_with_prefix( function validate_cache_backend_settings (line 266) | def validate_cache_backend_settings() -> None: function validate_no_vector_db_settings (line 280) | def validate_no_vector_db_settings() -> None: function lifespan (line 309) | async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]: # noqa:... function log_http_error (line 402) | def log_http_error(request: Request, exc: Exception) -> JSONResponse: function get_application (line 426) | def get_application(lifespan_override: Lifespan | None = None) -> FastAPI: FILE: backend/onyx/mcp_server/api.py function create_mcp_fastapi_app (line 41) | def create_mcp_fastapi_app() -> FastAPI: FILE: backend/onyx/mcp_server/auth.py class OnyxTokenVerifier (line 15) | class OnyxTokenVerifier(TokenVerifier): method verify_token (line 18) | async def verify_token(self, token: str) -> Optional[AccessToken]: FILE: backend/onyx/mcp_server/resources/indexed_sources.py function indexed_sources_resource (line 24) | async def indexed_sources_resource() -> dict[str, Any]: FILE: backend/onyx/mcp_server/tools/search.py function search_indexed_documents (line 19) | async def search_indexed_documents( function search_web (line 207) | async def search_web( function open_urls (line 254) | async def open_urls( FILE: backend/onyx/mcp_server/utils.py function require_access_token (line 18) | def require_access_token() -> AccessToken: function get_http_client (line 36) | def get_http_client() -> httpx.AsyncClient: function shutdown_http_client (line 44) | async def shutdown_http_client() -> None: function get_indexed_sources (line 52) | async def get_indexed_sources( FILE: backend/onyx/mcp_server_main.py function main (line 13) | def main() -> None: FILE: backend/onyx/natural_language_processing/constants.py class EmbeddingModelTextType (line 19) | class EmbeddingModelTextType: method get_type (line 38) | def get_type(provider: EmbeddingProvider, text_type: EmbedTextType) ->... FILE: backend/onyx/natural_language_processing/english_stopwords.py function strip_stopwords (line 207) | def strip_stopwords(text: str) -> list[str]: FILE: backend/onyx/natural_language_processing/exceptions.py class ModelServerRateLimitError (line 1) | class ModelServerRateLimitError(Exception): class CohereBillingLimitError (line 7) | class CohereBillingLimitError(Exception): FILE: backend/onyx/natural_language_processing/search_nlp_models.py function _get_or_create_event_loop (line 93) | def _get_or_create_event_loop() -> asyncio.AbstractEventLoop: function cleanup_embedding_thread_locals (line 112) | def cleanup_embedding_thread_locals() -> None: function _cleanup_thread_local (line 156) | def _cleanup_thread_local(func: Callable) -> Callable: function clean_model_name (line 182) | def clean_model_name(model_str: str) -> str: function build_model_server_url (line 186) | def build_model_server_url( function is_authentication_error (line 200) | def is_authentication_error(error: Exception) -> bool: function format_embedding_error (line 218) | def format_embedding_error( class AuthenticationError (line 241) | class AuthenticationError(Exception): method __init__ (line 244) | def __init__(self, provider: str, message: str = "API key is invalid o... class CloudEmbedding (line 250) | class CloudEmbedding: method __init__ (line 251) | def __init__( method _embed_openai (line 268) | async def _embed_openai( method _embed_cohere (line 294) | async def _embed_cohere( method _embed_voyage (line 315) | async def _embed_voyage( method _embed_azure (line 333) | async def _embed_azure( method _embed_vertex (line 349) | async def _embed_vertex( method _embed_litellm_proxy (line 448) | async def _embed_litellm_proxy( method embed (line 474) | async def embed( method create (line 539) | def create( method aclose (line 548) | async def aclose(self) -> None: method __aenter__ (line 554) | async def __aenter__(self) -> "CloudEmbedding": method __aexit__ (line 557) | async def __aexit__( method __del__ (line 565) | def __del__(self) -> None: function cohere_rerank_api (line 574) | async def cohere_rerank_api( function cohere_rerank_aws (line 596) | async def cohere_rerank_aws( function litellm_rerank (line 635) | async def litellm_rerank( class EmbeddingModel (line 657) | class EmbeddingModel: method __init__ (line 658) | def __init__( method _make_direct_api_call (line 701) | async def _make_direct_api_call( method _make_model_server_request (line 769) | def _make_model_server_request( method _batch_encode_texts (line 833) | def _batch_encode_texts( method encode (line 956) | def encode( method from_db_model (line 1006) | def from_db_model( class RerankingModel (line 1030) | class RerankingModel: method __init__ (line 1031) | def __init__( method _make_direct_rerank_call (line 1057) | async def _make_direct_rerank_call( method predict (line 1092) | def predict(self, query: str, passages: list[str]) -> list[float]: class QueryAnalysisModel (line 1128) | class QueryAnalysisModel: method __init__ (line 1129) | def __init__( method predict (line 1143) | def predict( function warm_up_retry (line 1163) | def warm_up_retry( function warm_up_bi_encoder (line 1187) | def warm_up_bi_encoder( function warm_up_cross_encoder (line 1224) | def warm_up_cross_encoder( FILE: backend/onyx/natural_language_processing/utils.py class BaseTokenizer (line 22) | class BaseTokenizer(ABC): method encode (line 24) | def encode(self, string: str) -> list[int]: method tokenize (line 28) | def tokenize(self, string: str) -> list[str]: method decode (line 32) | def decode(self, tokens: list[int]) -> str: class TiktokenTokenizer (line 36) | class TiktokenTokenizer(BaseTokenizer): method __new__ (line 39) | def __new__(cls, model_name: str) -> "TiktokenTokenizer": method __init__ (line 44) | def __init__(self, model_name: str): method encode (line 50) | def encode(self, string: str) -> list[int]: method tokenize (line 54) | def tokenize(self, string: str) -> list[str]: method decode (line 65) | def decode(self, tokens: list[int]) -> str: class HuggingFaceTokenizer (line 69) | class HuggingFaceTokenizer(BaseTokenizer): method __init__ (line 70) | def __init__(self, model_name: str): method _safer_encode (line 73) | def _safer_encode(self, string: str) -> Encoding: method encode (line 86) | def encode(self, string: str) -> list[int]: method tokenize (line 90) | def tokenize(self, string: str) -> list[str]: method decode (line 93) | def decode(self, tokens: list[int]) -> str: function _check_tokenizer_cache (line 100) | def _check_tokenizer_cache( function _try_initialize_tokenizer (line 123) | def _try_initialize_tokenizer( function _get_default_tokenizer (line 156) | def _get_default_tokenizer() -> BaseTokenizer: function get_tokenizer (line 164) | def get_tokenizer( function count_tokens (line 182) | def count_tokens( function tokenizer_trim_content (line 204) | def tokenizer_trim_content( function tokenizer_trim_middle (line 214) | def tokenizer_trim_middle( function tokenizer_trim_chunks (line 230) | def tokenizer_trim_chunks( FILE: backend/onyx/onyxbot/discord/api_client.py class OnyxAPIClient (line 19) | class OnyxAPIClient: method __init__ (line 41) | def __init__( method initialize (line 58) | async def initialize(self) -> None: method close (line 75) | async def close(self) -> None: method is_initialized (line 87) | def is_initialized(self) -> bool: method send_chat_message (line 91) | async def send_chat_message( method health_check (line 197) | async def health_check(self) -> bool: FILE: backend/onyx/onyxbot/discord/cache.py class DiscordCacheManager (line 17) | class DiscordCacheManager: method __init__ (line 23) | def __init__(self) -> None: method is_initialized (line 30) | def is_initialized(self) -> bool: method refresh_all (line 33) | async def refresh_all(self) -> None: method refresh_guild (line 88) | async def refresh_guild(self, guild_id: int, tenant_id: str) -> None: method _load_tenant_data (line 103) | async def _load_tenant_data(self, tenant_id: str) -> tuple[list[int], ... method get_tenant (line 133) | def get_tenant(self, guild_id: int) -> str | None: method get_api_key (line 137) | def get_api_key(self, tenant_id: str) -> str | None: method remove_guild (line 141) | def remove_guild(self, guild_id: int) -> None: method get_all_guild_ids (line 145) | def get_all_guild_ids(self) -> list[int]: method clear (line 149) | def clear(self) -> None: FILE: backend/onyx/onyxbot/discord/client.py class OnyxDiscordClient (line 24) | class OnyxDiscordClient(commands.Bot): method __init__ (line 34) | def __init__(self, command_prefix: str = DISCORD_BOT_INVOKE_CHAR) -> N... method setup_hook (line 50) | async def setup_hook(self) -> None: method _periodic_cache_refresh (line 65) | async def _periodic_cache_refresh(self) -> None: method on_ready (line 74) | async def on_ready(self) -> None: method close (line 88) | async def close(self) -> None: method on_message (line 117) | async def on_message(self, message: discord.Message) -> None: function main (line 195) | def main() -> None: FILE: backend/onyx/onyxbot/discord/exceptions.py class DiscordBotError (line 4) | class DiscordBotError(Exception): class RegistrationError (line 8) | class RegistrationError(DiscordBotError): class SyncChannelsError (line 12) | class SyncChannelsError(DiscordBotError): class APIError (line 16) | class APIError(DiscordBotError): class CacheError (line 20) | class CacheError(DiscordBotError): class APIConnectionError (line 24) | class APIConnectionError(APIError): class APITimeoutError (line 28) | class APITimeoutError(APIError): class APIResponseError (line 32) | class APIResponseError(APIError): method __init__ (line 35) | def __init__(self, message: str, status_code: int | None = None): FILE: backend/onyx/onyxbot/discord/handle_commands.py function handle_dm (line 30) | async def handle_dm(message: discord.Message) -> None: function _try_dm_author (line 45) | async def _try_dm_author(message: discord.Message, content: str) -> bool: function _try_delete_message (line 59) | async def _try_delete_message(message: discord.Message) -> bool: function _try_react_x (line 73) | async def _try_react_x(message: discord.Message) -> bool: function handle_registration_command (line 91) | async def handle_registration_command( function _register_guild (line 156) | async def _register_guild( function get_text_channels (line 243) | def get_text_channels(guild: discord.Guild) -> list[DiscordChannelView]: function handle_sync_channels_command (line 275) | async def handle_sync_channels_command( function sync_guild_channels (line 362) | async def sync_guild_channels( FILE: backend/onyx/onyxbot/discord/handle_message.py class ShouldRespondContext (line 31) | class ShouldRespondContext(BaseModel): function should_respond (line 44) | async def should_respond( function check_implicit_invocation (line 100) | async def check_implicit_invocation( function process_chat_message (line 156) | async def process_chat_message( function _build_conversation_context (line 213) | async def _build_conversation_context( function _append_citations (line 225) | def _append_citations(answer: str, response: ChatFullResponse) -> str: function _build_reply_chain_context (line 268) | async def _build_reply_chain_context( function _build_thread_context (line 311) | async def _build_thread_context( function _format_messages_as_context (line 371) | def _format_messages_as_context( function format_message_content (line 402) | def format_message_content(message: discord.Message) -> str: function send_response (line 424) | async def send_response( function _split_message (line 448) | def _split_message(content: str) -> list[str]: function send_error_response (line 470) | async def send_error_response( FILE: backend/onyx/onyxbot/discord/utils.py function get_bot_token (line 13) | def get_bot_token() -> str | None: FILE: backend/onyx/onyxbot/slack/blocks.py function _format_doc_updated_at (line 52) | def _format_doc_updated_at(updated_at: datetime | None) -> str | None: function get_feedback_reminder_blocks (line 65) | def get_feedback_reminder_blocks(thread_link: str, include_followup: boo... function _split_text (line 79) | def _split_text(text: str, limit: int = 3000) -> list[str]: function _clean_markdown_link_text (line 101) | def _clean_markdown_link_text(text: str) -> str: function _build_qa_feedback_block (line 106) | def _build_qa_feedback_block( function _build_ephemeral_publication_block (line 126) | def _build_ephemeral_publication_block( function get_document_feedback_blocks (line 197) | def get_document_feedback_blocks() -> Block: function _build_doc_feedback_block (line 225) | def _build_doc_feedback_block( function get_restate_blocks (line 238) | def get_restate_blocks( function _build_documents_blocks (line 252) | def _build_documents_blocks( function _build_sources_blocks (line 309) | def _build_sources_blocks( function _priority_ordered_documents_blocks (line 383) | def _priority_ordered_documents_blocks( function _build_citations_blocks (line 399) | def _build_citations_blocks( function _build_main_response_blocks (line 418) | def _build_main_response_blocks( function _build_continue_in_web_ui_block (line 456) | def _build_continue_in_web_ui_block( function _build_follow_up_block (line 479) | def _build_follow_up_block(message_id: int | None) -> ActionsBlock: function build_follow_up_resolved_blocks (line 497) | def build_follow_up_resolved_blocks( function build_slack_response_blocks (line 526) | def build_slack_response_blocks( FILE: backend/onyx/onyxbot/slack/config.py function get_slack_channel_config_for_bot_and_channel (line 18) | def get_slack_channel_config_for_bot_and_channel( function validate_channel_name (line 34) | def validate_channel_name( FILE: backend/onyx/onyxbot/slack/constants.py class FeedbackVisibility (line 20) | class FeedbackVisibility(str, Enum): FILE: backend/onyx/onyxbot/slack/formatting.py function _sanitize_html (line 32) | def _sanitize_html(text: str) -> str: function _transform_outside_code_blocks (line 43) | def _transform_outside_code_blocks( function _extract_link_destination (line 59) | def _extract_link_destination(message: str, start_idx: int) -> tuple[str... function _normalize_link_destinations (line 81) | def _normalize_link_destinations(message: str) -> str: function _convert_slack_links_to_markdown (line 115) | def _convert_slack_links_to_markdown(message: str) -> str: function format_slack_message (line 127) | def format_slack_message(message: str | None) -> str: class SlackRenderer (line 140) | class SlackRenderer(HTMLRenderer): method __init__ (line 149) | def __init__(self) -> None: method escape_special (line 154) | def escape_special(self, text: str) -> str: method heading (line 159) | def heading(self, text: str, level: int, **attrs: Any) -> str: # noqa... method emphasis (line 162) | def emphasis(self, text: str) -> str: method strong (line 165) | def strong(self, text: str) -> str: method strikethrough (line 168) | def strikethrough(self, text: str) -> str: method list (line 171) | def list(self, text: str, ordered: bool, **attrs: Any) -> str: # noqa... method list_item (line 181) | def list_item(self, text: str) -> str: method link (line 184) | def link(self, text: str, url: str, title: str | None = None) -> str: method image (line 192) | def image(self, text: str, url: str, title: str | None = None) -> str: method codespan (line 197) | def codespan(self, text: str) -> str: method block_code (line 200) | def block_code(self, code: str, info: str | None = None) -> str: # no... method linebreak (line 203) | def linebreak(self) -> str: method thematic_break (line 206) | def thematic_break(self) -> str: method block_quote (line 209) | def block_quote(self, text: str) -> str: method block_html (line 214) | def block_html(self, html: str) -> str: method block_error (line 217) | def block_error(self, text: str) -> str: method text (line 220) | def text(self, text: str) -> str: method table_cell (line 228) | def table_cell( method table_head (line 240) | def table_head(self, text: str) -> str: # noqa: ARG002 method table_row (line 244) | def table_row(self, text: str) -> str: # noqa: ARG002 method table_body (line 264) | def table_body(self, text: str) -> str: method table (line 267) | def table(self, text: str) -> str: method paragraph (line 272) | def paragraph(self, text: str) -> str: FILE: backend/onyx/onyxbot/slack/handlers/handle_buttons.py function _convert_document_ids_to_citation_info (line 60) | def _convert_document_ids_to_citation_info( function _build_citation_list (line 78) | def _build_citation_list(chat_message_detail: ChatMessageDetail) -> list... function handle_doc_feedback_button (line 92) | def handle_doc_feedback_button( function handle_generate_answer_button (line 125) | def handle_generate_answer_button( function handle_publish_ephemeral_message_button (line 193) | def handle_publish_ephemeral_message_button( function handle_slack_feedback (line 362) | def handle_slack_feedback( function handle_followup_button (line 449) | def handle_followup_button( function get_clicker_name (line 514) | def get_clicker_name( function handle_followup_resolved_button (line 535) | def handle_followup_resolved_button( FILE: backend/onyx/onyxbot/slack/handlers/handle_message.py function send_msg_ack_to_user (line 34) | def send_msg_ack_to_user(details: SlackMessageInfo, client: WebClient) -... function schedule_feedback_reminder (line 54) | def schedule_feedback_reminder( function remove_scheduled_feedback_reminder (line 94) | def remove_scheduled_feedback_reminder( function handle_message (line 112) | def handle_message( FILE: backend/onyx/onyxbot/slack/handlers/handle_regular_answer.py function resolve_channel_references (line 47) | def resolve_channel_references( function rate_limits (line 92) | def rate_limits( function build_slack_context_str (line 111) | def build_slack_context_str( function handle_regular_answer (line 137) | def handle_regular_answer( FILE: backend/onyx/onyxbot/slack/handlers/handle_standard_answers.py function handle_standard_answers (line 13) | def handle_standard_answers( function _handle_standard_answers (line 37) | def _handle_standard_answers( FILE: backend/onyx/onyxbot/slack/handlers/utils.py function send_team_member_message (line 6) | def send_team_member_message( FILE: backend/onyx/onyxbot/slack/icons.py function source_to_github_img_link (line 4) | def source_to_github_img_link(source: DocumentSource) -> str | None: FILE: backend/onyx/onyxbot/slack/listener.py class SlackbotHandler (line 134) | class SlackbotHandler: method __init__ (line 135) | def __init__(self) -> None: method acquire_tenants_loop (line 177) | def acquire_tenants_loop(self) -> None: method heartbeat_loop (line 194) | def heartbeat_loop(self) -> None: method _manage_clients_per_tenant (line 211) | def _manage_clients_per_tenant( method acquire_tenants (line 275) | def acquire_tenants(self) -> None: method _remove_tenant (line 447) | def _remove_tenant(self, tenant_id: str) -> None: method send_heartbeats (line 468) | def send_heartbeats(pod_id: str, tenant_ids: set[str]) -> None: method start_socket_client (line 479) | def start_socket_client( method stop_socket_clients (line 536) | def stop_socket_clients( method shutdown (line 550) | def shutdown( function sanitize_slack_payload (line 591) | def sanitize_slack_payload(payload: dict) -> dict: function prefilter_requests (line 605) | def prefilter_requests(req: SocketModeRequest, client: TenantSocketModeC... function process_feedback (line 794) | def process_feedback(req: SocketModeRequest, client: TenantSocketModeCli... function build_request_details (line 826) | def build_request_details( function apologize_for_fail (line 957) | def apologize_for_fail( function process_message (line 969) | def process_message( function acknowledge_message (line 1038) | def acknowledge_message(req: SocketModeRequest, client: TenantSocketMode... function action_routing (line 1043) | def action_routing(req: SocketModeRequest, client: TenantSocketModeClien... function view_routing (line 1071) | def view_routing(req: SocketModeRequest, client: TenantSocketModeClient)... function _extract_channel_from_request (line 1077) | def _extract_channel_from_request(req: SocketModeRequest) -> str | None: function _check_tenant_gated (line 1089) | def _check_tenant_gated(client: TenantSocketModeClient, req: SocketModeR... function create_process_slack_event (line 1148) | def create_process_slack_event() -> ( function _get_socket_client (line 1175) | def _get_socket_client( FILE: backend/onyx/onyxbot/slack/models.py class ChannelType (line 9) | class ChannelType(str, Enum): class SlackContext (line 19) | class SlackContext(BaseModel): class ThreadMessage (line 28) | class ThreadMessage(BaseModel): class SlackMessageInfo (line 34) | class SlackMessageInfo(BaseModel): class ActionValuesEphemeralMessageMessageInfo (line 48) | class ActionValuesEphemeralMessageMessageInfo(BaseModel): class ActionValuesEphemeralMessageChannelConfig (line 60) | class ActionValuesEphemeralMessageChannelConfig(BaseModel): class ActionValuesEphemeralMessage (line 73) | class ActionValuesEphemeralMessage(BaseModel): FILE: backend/onyx/onyxbot/slack/utils.py function get_onyx_bot_auth_ids (line 56) | def get_onyx_bot_auth_ids( function get_channel_type_from_id (line 82) | def get_channel_type_from_id(web_client: WebClient, channel_id: str) -> ... function check_message_limit (line 115) | def check_message_limit() -> bool: function update_emote_react (line 140) | def update_emote_react( function remove_onyx_bot_tag (line 176) | def remove_onyx_bot_tag(tenant_id: str, message_str: str, client: WebCli... function _check_for_url_in_block (line 181) | def _check_for_url_in_block(block: Block) -> bool: function _build_error_block (line 203) | def _build_error_block(error_message: str) -> Block: function respond_in_thread_or_channel (line 221) | def respond_in_thread_or_channel( function build_feedback_id (line 315) | def build_feedback_id( function build_publish_ephemeral_message_id (line 337) | def build_publish_ephemeral_message_id( function build_continue_in_web_ui_id (line 343) | def build_continue_in_web_ui_id( function decompose_action_id (line 350) | def decompose_action_id(feedback_id: str) -> tuple[int, str | None, int ... function get_view_values (line 367) | def get_view_values(state_values: dict[str, Any]) -> dict[str, str]: function translate_vespa_highlight_to_slack (line 396) | def translate_vespa_highlight_to_slack(match_strs: list[str], used_chars... function remove_slack_text_interactions (line 418) | def remove_slack_text_interactions(slack_str: str) -> str: function get_channel_from_id (line 427) | def get_channel_from_id(client: WebClient, channel_id: str) -> dict[str,... function get_channel_name_from_id (line 433) | def get_channel_name_from_id( function fetch_slack_user_ids_from_emails (line 446) | def fetch_slack_user_ids_from_emails( function fetch_user_ids_from_groups (line 462) | def fetch_user_ids_from_groups( function fetch_group_ids_from_names (line 499) | def fetch_group_ids_from_names( function fetch_user_semantic_id_from_id (line 530) | def fetch_user_semantic_id_from_id( function read_slack_thread (line 549) | def read_slack_thread( function slack_usage_report (line 629) | def slack_usage_report(action: str, sender_id: str | None, client: WebCl... class SlackRateLimiter (line 651) | class SlackRateLimiter: method __init__ (line 652) | def __init__(self) -> None: method refill (line 659) | def refill(self) -> None: method notify (line 665) | def notify( method is_available (line 676) | def is_available(self) -> bool: method acquire_slot (line 683) | def acquire_slot(self) -> None: method init_waiter (line 686) | def init_waiter(self) -> tuple[int, int]: method waiter (line 693) | def waiter(self, func_randid: int) -> None: function get_feedback_visibility (line 711) | def get_feedback_visibility() -> FeedbackVisibility: class TenantSocketModeClient (line 718) | class TenantSocketModeClient(SocketModeClient): method __init__ (line 719) | def __init__(self, tenant_id: str, slack_bot_id: int, *args: Any, **kw... method _set_tenant_context (line 726) | def _set_tenant_context(self) -> Generator[None, None, None]: method enqueue_message (line 736) | def enqueue_message(self, message: str) -> None: method process_message (line 740) | def process_message(self) -> None: method run_message_listeners (line 744) | def run_message_listeners(self, message: dict, raw_message: str) -> None: FILE: backend/onyx/prompts/prompt_template.py class PromptTemplate (line 6) | class PromptTemplate: method __init__ (line 15) | def __init__(self, template: str, pattern: str = DEFAULT_PATTERN): method build (line 21) | def build(self, **kwargs: str) -> str: method partial_build (line 33) | def partial_build(self, **kwargs: str) -> "PromptTemplate": method _replace_fields (line 41) | def _replace_fields(self, field_vals: dict[str, str]) -> str: method _postprocess (line 48) | def _postprocess(self, text: str) -> str: FILE: backend/onyx/prompts/prompt_utils.py function get_current_llm_day_time (line 26) | def get_current_llm_day_time( function replace_current_datetime_tag (line 46) | def replace_current_datetime_tag( function replace_citation_guidance_tag (line 63) | def replace_citation_guidance_tag( function replace_reminder_tag (line 101) | def replace_reminder_tag(prompt_str: str) -> str: function handle_onyx_date_awareness (line 111) | def handle_onyx_date_awareness( function get_company_context (line 142) | def get_company_context() -> str | None: function clean_up_source (line 175) | def clean_up_source(source_str: str) -> str: function build_doc_context_str (line 181) | def build_doc_context_str( function find_last_index (line 212) | def find_last_index(lst: list[int], max_prompt_tokens: int) -> int: function drop_messages_history_overflow (line 237) | def drop_messages_history_overflow( FILE: backend/onyx/redis/iam_auth.py function configure_redis_iam_auth (line 15) | def configure_redis_iam_auth(connection_kwargs: dict[str, Any]) -> None: function create_redis_ssl_context_if_iam (line 32) | def create_redis_ssl_context_if_iam() -> ssl.SSLContext: FILE: backend/onyx/redis/redis_connector.py class RedisConnector (line 12) | class RedisConnector: method __init__ (line 16) | def __init__(self, tenant_id: str, cc_pair_id: int) -> None: method get_id_from_fence_key (line 34) | def get_id_from_fence_key(key: str) -> str | None: method get_id_from_task_id (line 52) | def get_id_from_task_id(task_id: str) -> str | None: method db_lock_key (line 79) | def db_lock_key(self, search_settings_id: int) -> str: FILE: backend/onyx/redis/redis_connector_delete.py class RedisConnectorDeletePayload (line 22) | class RedisConnectorDeletePayload(BaseModel): class RedisConnectorDelete (line 27) | class RedisConnectorDelete: method __init__ (line 43) | def __init__(self, tenant_id: str, id: int, redis: redis.Redis) -> None: method taskset_clear (line 53) | def taskset_clear(self) -> None: method get_remaining (line 56) | def get_remaining(self) -> int: method fenced (line 62) | def fenced(self) -> bool: method payload (line 66) | def payload(self) -> RedisConnectorDeletePayload | None: method set_fence (line 77) | def set_fence(self, payload: RedisConnectorDeletePayload | None) -> None: method set_active (line 86) | def set_active(self) -> None: method active (line 94) | def active(self) -> bool: method _generate_task_id (line 97) | def _generate_task_id(self) -> str: method generate_tasks (line 104) | def generate_tasks( method reset (line 161) | def reset(self) -> None: method remove_from_taskset (line 168) | def remove_from_taskset(id: int, task_id: str, r: redis.Redis) -> None: method reset_all (line 174) | def reset_all(r: redis.Redis) -> None: FILE: backend/onyx/redis/redis_connector_doc_perm_sync.py class PermissionSyncResult (line 21) | class PermissionSyncResult(NamedTuple): class RedisConnectorPermissionSyncPayload (line 33) | class RedisConnectorPermissionSyncPayload(BaseModel): class RedisConnectorPermissionSync (line 40) | class RedisConnectorPermissionSync: method __init__ (line 67) | def __init__(self, tenant_id: str, id: int, redis: redis.Redis) -> None: method taskset_clear (line 82) | def taskset_clear(self) -> None: method generator_clear (line 85) | def generator_clear(self) -> None: method get_remaining (line 89) | def get_remaining(self) -> int: method get_active_task_count (line 93) | def get_active_task_count(self) -> int: method fenced (line 105) | def fenced(self) -> bool: method payload (line 109) | def payload(self) -> RedisConnectorPermissionSyncPayload | None: method set_fence (line 122) | def set_fence( method set_active (line 134) | def set_active(self) -> None: method active (line 142) | def active(self) -> bool: method generator_complete (line 146) | def generator_complete(self) -> int | None: method generator_complete (line 160) | def generator_complete(self, payload: int | None) -> None: method update_db (line 169) | def update_db( method reset (line 256) | def reset(self) -> None: method remove_from_taskset (line 265) | def remove_from_taskset(id: int, task_id: str, r: redis.Redis) -> None: method reset_all (line 271) | def reset_all(r: redis.Redis) -> None: FILE: backend/onyx/redis/redis_connector_ext_group_sync.py class RedisConnectorExternalGroupSyncPayload (line 14) | class RedisConnectorExternalGroupSyncPayload(BaseModel): class RedisConnectorExternalGroupSync (line 21) | class RedisConnectorExternalGroupSync: method __init__ (line 48) | def __init__(self, tenant_id: str, id: int, redis: redis.Redis) -> None: method taskset_clear (line 63) | def taskset_clear(self) -> None: method generator_clear (line 66) | def generator_clear(self) -> None: method get_remaining (line 70) | def get_remaining(self) -> int: method get_active_task_count (line 75) | def get_active_task_count(self) -> int: method fenced (line 87) | def fenced(self) -> bool: method payload (line 91) | def payload(self) -> RedisConnectorExternalGroupSyncPayload | None: method set_fence (line 105) | def set_fence( method set_active (line 117) | def set_active(self) -> None: method active (line 125) | def active(self) -> bool: method generator_complete (line 129) | def generator_complete(self) -> int | None: method generator_complete (line 144) | def generator_complete(self, payload: int | None) -> None: method generate_tasks (line 153) | def generate_tasks( method reset (line 161) | def reset(self) -> None: method remove_from_taskset (line 170) | def remove_from_taskset(id: int, task_id: str, r: redis.Redis) -> None: method reset_all (line 176) | def reset_all(r: redis.Redis) -> None: FILE: backend/onyx/redis/redis_connector_index.py class RedisConnectorIndexPayload (line 6) | class RedisConnectorIndexPayload(BaseModel): FILE: backend/onyx/redis/redis_connector_prune.py class RedisConnectorPrunePayload (line 22) | class RedisConnectorPrunePayload(BaseModel): class RedisConnectorPrune (line 29) | class RedisConnectorPrune: method __init__ (line 57) | def __init__(self, tenant_id: str, id: int, redis: redis.Redis) -> None: method taskset_clear (line 72) | def taskset_clear(self) -> None: method generator_clear (line 75) | def generator_clear(self) -> None: method get_remaining (line 79) | def get_remaining(self) -> int: method get_active_task_count (line 84) | def get_active_task_count(self) -> int: method fenced (line 96) | def fenced(self) -> bool: method payload (line 100) | def payload(self) -> RedisConnectorPrunePayload | None: method set_fence (line 111) | def set_fence( method set_active (line 123) | def set_active(self) -> None: method active (line 131) | def active(self) -> bool: method generator_complete (line 135) | def generator_complete(self) -> int | None: method generator_complete (line 146) | def generator_complete(self, payload: int | None) -> None: method generate_tasks (line 155) | def generate_tasks( method reset (line 209) | def reset(self) -> None: method remove_from_taskset (line 218) | def remove_from_taskset(id: int, task_id: str, r: redis.Redis) -> None: method reset_all (line 224) | def reset_all(r: redis.Redis) -> None: FILE: backend/onyx/redis/redis_connector_stop.py class RedisConnectorStop (line 4) | class RedisConnectorStop: method __init__ (line 17) | def __init__(self, tenant_id: str, id: int, redis: redis.Redis) -> None: method fenced (line 26) | def fenced(self) -> bool: method set_fence (line 29) | def set_fence(self, value: bool) -> None: method timed_out (line 37) | def timed_out(self) -> bool: method set_timeout (line 40) | def set_timeout(self) -> None: method reset_all (line 46) | def reset_all(r: redis.Redis) -> None: FILE: backend/onyx/redis/redis_connector_utils.py function _get_deletion_status (line 11) | def _get_deletion_status( function get_deletion_attempt_snapshot (line 44) | def get_deletion_attempt_snapshot( FILE: backend/onyx/redis/redis_document_set.py class RedisDocumentSet (line 21) | class RedisDocumentSet(RedisObjectHelper): method __init__ (line 28) | def __init__(self, tenant_id: str, id: int) -> None: method fenced (line 32) | def fenced(self) -> bool: method set_fence (line 35) | def set_fence(self, payload: int | None) -> None: method payload (line 45) | def payload(self) -> int | None: method generate_tasks (line 53) | def generate_tasks( method reset (line 101) | def reset(self) -> None: method reset_all (line 107) | def reset_all(r: redis.Redis) -> None: FILE: backend/onyx/redis/redis_hierarchy.py class HierarchyNodeCacheEntry (line 50) | class HierarchyNodeCacheEntry(BaseModel): method from_db_model (line 59) | def from_db_model(cls, node: "DBHierarchyNode") -> "HierarchyNodeCache... function _cache_key (line 69) | def _cache_key(source: DocumentSource) -> str: function _raw_id_cache_key (line 77) | def _raw_id_cache_key(source: DocumentSource) -> str: function _source_node_key (line 85) | def _source_node_key(source: DocumentSource) -> str: function _loading_lock_key (line 93) | def _loading_lock_key(source: DocumentSource) -> str: function _construct_parent_value (line 98) | def _construct_parent_value(parent_id: int | None, node_type: HierarchyN... function _unpack_parent_value (line 107) | def _unpack_parent_value(value: str) -> tuple[int | None, HierarchyNodeT... function cache_hierarchy_node (line 122) | def cache_hierarchy_node( function cache_hierarchy_nodes_batch (line 160) | def cache_hierarchy_nodes_batch( function evict_hierarchy_nodes_from_cache (line 208) | def evict_hierarchy_nodes_from_cache( function get_node_id_from_raw_id (line 232) | def get_node_id_from_raw_id( function get_parent_id_from_cache (line 261) | def get_parent_id_from_cache( function is_cache_populated (line 291) | def is_cache_populated(redis_client: Redis, source: DocumentSource) -> b... function refresh_hierarchy_cache_from_db (line 299) | def refresh_hierarchy_cache_from_db( function _walk_ancestor_chain (line 361) | def _walk_ancestor_chain( function get_ancestors_from_raw_id (line 415) | def get_ancestors_from_raw_id( function get_source_node_id_from_cache (line 472) | def get_source_node_id_from_cache( function clear_hierarchy_cache (line 512) | def clear_hierarchy_cache(redis_client: Redis, source: DocumentSource) -... function ensure_source_node_exists (line 522) | def ensure_source_node_exists( FILE: backend/onyx/redis/redis_object_helper.py class RedisObjectHelper (line 12) | class RedisObjectHelper(ABC): method __init__ (line 17) | def __init__(self, tenant_id: str, id: str): method task_id_prefix (line 23) | def task_id_prefix(self) -> str: method fence_key (line 27) | def fence_key(self) -> str: method taskset_key (line 32) | def taskset_key(self) -> str: method get_id_from_fence_key (line 37) | def get_id_from_fence_key(key: str) -> str | None: method get_id_from_task_id (line 55) | def get_id_from_task_id(task_id: str) -> str | None: method generate_tasks (line 83) | def generate_tasks( FILE: backend/onyx/redis/redis_pool.py class TenantRedis (line 42) | class TenantRedis(redis.Redis): method __init__ (line 43) | def __init__(self, tenant_id: str, *args: Any, **kwargs: Any) -> None: method _prefixed (line 47) | def _prefixed(self, key: str | bytes | memoryview) -> str | bytes | me... method _prefix_method (line 70) | def _prefix_method(self, method: Callable) -> Callable: method _prefix_scan_iter (line 81) | def _prefix_scan_iter(self, method: Callable) -> Callable: method __getattribute__ (line 105) | def __getattribute__(self, item: str) -> Any: class RedisPool (line 142) | class RedisPool: method __new__ (line 148) | def __new__(cls) -> "RedisPool": method _init_pools (line 156) | def _init_pools(self) -> None: method get_client (line 162) | def get_client(self, tenant_id: str) -> Redis: method get_replica_client (line 165) | def get_replica_client(self, tenant_id: str) -> Redis: method get_raw_client (line 168) | def get_raw_client(self) -> Redis: method get_raw_replica_client (line 175) | def get_raw_replica_client(self) -> Redis: method create_pool (line 183) | def create_pool( function get_redis_client (line 270) | def get_redis_client( function get_redis_replica_client (line 290) | def get_redis_replica_client( function get_shared_redis_client (line 310) | def get_shared_redis_client() -> Redis: function get_shared_redis_replica_client (line 323) | def get_shared_redis_replica_client() -> Redis: function get_raw_redis_client (line 336) | def get_raw_redis_client() -> Redis: function get_raw_redis_replica_client (line 349) | def get_raw_redis_replica_client() -> Redis: function get_async_redis_connection (line 373) | async def get_async_redis_connection() -> aioredis.Redis: function retrieve_auth_token_data (line 422) | async def retrieve_auth_token_data(token: str) -> dict | None: function retrieve_auth_token_data_from_redis (line 449) | async def retrieve_auth_token_data_from_redis(request: Request) -> dict ... class WsTokenRateLimitExceeded (line 468) | class WsTokenRateLimitExceeded(Exception): function store_ws_token (line 472) | async def store_ws_token(token: str, user_id: str) -> None: function retrieve_ws_token_data (line 506) | async def retrieve_ws_token_data(token: str) -> dict | None: function redis_lock_dump (line 537) | def redis_lock_dump(lock: RedisLock, r: Redis) -> None: FILE: backend/onyx/redis/redis_usergroup.py class RedisUserGroup (line 22) | class RedisUserGroup(RedisObjectHelper): method __init__ (line 29) | def __init__(self, tenant_id: str, id: int) -> None: method fenced (line 33) | def fenced(self) -> bool: method set_fence (line 39) | def set_fence(self, payload: int | None) -> None: method payload (line 49) | def payload(self) -> int | None: method generate_tasks (line 57) | def generate_tasks( method reset (line 115) | def reset(self) -> None: method reset_all (line 121) | def reset_all(r: redis.Redis) -> None: FILE: backend/onyx/redis/redis_utils.py function is_fence (line 8) | def is_fence(key_bytes: bytes) -> bool: FILE: backend/onyx/secondary_llm_flows/chat_session_naming.py function generate_chat_session_name (line 16) | def generate_chat_session_name( FILE: backend/onyx/secondary_llm_flows/document_filter.py function select_chunks_for_relevance (line 23) | def select_chunks_for_relevance( function classify_section_relevance (line 94) | def classify_section_relevance( function select_sections_for_expansion (line 180) | def select_sections_for_expansion( FILE: backend/onyx/secondary_llm_flows/memory_update.py function _format_chat_history (line 19) | def _format_chat_history(chat_history: list[ChatMinimalTextMessage]) -> ... function _format_existing_memories (line 41) | def _format_existing_memories(existing_memories: list[str]) -> str: function _format_user_basic_information (line 53) | def _format_user_basic_information( function process_memory_update (line 73) | def process_memory_update( FILE: backend/onyx/secondary_llm_flows/query_expansion.py function _build_additional_context (line 22) | def _build_additional_context( function _build_message_history (line 50) | def _build_message_history( function semantic_query_rephrase (line 67) | def semantic_query_rephrase( function keyword_query_expansion (line 149) | def keyword_query_expansion( FILE: backend/onyx/secondary_llm_flows/source_filter.py function strings_to_document_sources (line 10) | def strings_to_document_sources(source_strs: list[str]) -> list[Document... function extract_source_filter (line 20) | def extract_source_filter( FILE: backend/onyx/secondary_llm_flows/time_filter.py function best_match_time (line 12) | def best_match_time(time_str: str) -> datetime | None: function extract_time_filter (line 37) | def extract_time_filter(query: str, llm: LLM) -> tuple[datetime | None, ... FILE: backend/onyx/server/api_key/api.py function list_api_keys (line 21) | def list_api_keys( function create_api_key (line 29) | def create_api_key( function regenerate_existing_api_key (line 38) | def regenerate_existing_api_key( function update_existing_api_key (line 47) | def update_existing_api_key( function delete_api_key (line 57) | def delete_api_key( FILE: backend/onyx/server/api_key/models.py class APIKeyArgs (line 6) | class APIKeyArgs(BaseModel): FILE: backend/onyx/server/api_key_usage.py function check_api_key_usage (line 20) | def check_api_key_usage( FILE: backend/onyx/server/auth_check.py function is_route_in_spec_list (line 69) | def is_route_in_spec_list( function check_router_auth (line 94) | def check_router_auth( FILE: backend/onyx/server/documents/cc_pair.py function get_cc_pair_index_attempts (line 81) | def get_cc_pair_index_attempts( function get_cc_pair_permission_sync_attempts (line 117) | def get_cc_pair_permission_sync_attempts( function get_cc_pair_full_info (line 155) | def get_cc_pair_full_info( function update_cc_pair_status (line 258) | def update_cc_pair_status( function update_cc_pair_name (line 342) | def update_cc_pair_name( function update_cc_pair_property (line 371) | def update_cc_pair_property( function get_cc_pair_last_pruned (line 411) | def get_cc_pair_last_pruned( function prune_cc_pair (line 432) | def prune_cc_pair( function get_docs_sync_status (line 485) | def get_docs_sync_status( function get_cc_pair_indexing_errors (line 498) | def get_cc_pair_indexing_errors( function associate_credential_to_connector (line 541) | def associate_credential_to_connector( function dissociate_credential_from_connector (line 622) | def dissociate_credential_from_connector( FILE: backend/onyx/server/documents/connector.py function check_google_app_gmail_credentials_exist (line 181) | def check_google_app_gmail_credentials_exist( function upsert_google_app_gmail_credentials (line 191) | def upsert_google_app_gmail_credentials( function delete_google_app_gmail_credentials (line 205) | def delete_google_app_gmail_credentials( function check_google_app_credentials_exist (line 221) | def check_google_app_credentials_exist( function upsert_google_app_credentials (line 233) | def upsert_google_app_credentials( function delete_google_app_credentials (line 247) | def delete_google_app_credentials( function check_google_service_gmail_account_key_exist (line 263) | def check_google_service_gmail_account_key_exist( function upsert_google_service_gmail_account_key (line 279) | def upsert_google_service_gmail_account_key( function delete_google_service_gmail_account_key (line 293) | def delete_google_service_gmail_account_key( function check_google_service_account_key_exist (line 309) | def check_google_service_account_key_exist( function upsert_google_service_account_key (line 325) | def upsert_google_service_account_key( function delete_google_service_account_key (line 339) | def delete_google_service_account_key( function upsert_service_account_credential (line 355) | def upsert_service_account_credential( function upsert_gmail_service_account_credential (line 382) | def upsert_gmail_service_account_credential( function check_drive_tokens (line 408) | def check_drive_tokens( function save_zip_metadata_to_file_store (line 430) | def save_zip_metadata_to_file_store( function is_zip_file (line 465) | def is_zip_file(file: UploadFile) -> bool: function upload_files (line 485) | def upload_files( function _normalize_file_names_for_backwards_compatibility (line 586) | def _normalize_file_names_for_backwards_compatibility( function _fetch_and_check_file_connector_cc_pair_permissions (line 597) | def _fetch_and_check_file_connector_cc_pair_permissions( function upload_files_api (line 635) | def upload_files_api( function list_connector_files (line 644) | def list_connector_files( function update_connector_files (line 711) | def update_connector_files( function get_connectors_by_credential (line 927) | def get_connectors_by_credential( function get_currently_failed_indexing_status (line 960) | def get_currently_failed_indexing_status( function get_connector_status (line 1048) | def get_connector_status( function get_connector_indexing_status (line 1100) | def get_connector_indexing_status( function _get_connector_indexing_status_lite (line 1420) | def _get_connector_indexing_status_lite( function _apply_connector_status_filters (line 1466) | def _apply_connector_status_filters( function _apply_federated_connector_status_filters (line 1515) | def _apply_federated_connector_status_filters( function _validate_connector_allowed (line 1530) | def _validate_connector_allowed(source: DocumentSource) -> None: function create_connector_from_model (line 1546) | def create_connector_from_model( function create_connector_with_mock_credential (line 1585) | def create_connector_with_mock_credential( function update_connector_from_model (line 1666) | def update_connector_from_model( function delete_connector_by_id (line 1717) | def delete_connector_by_id( function connector_run_once (line 1733) | def connector_run_once( function gmail_auth (line 1796) | def gmail_auth( function google_drive_auth (line 1810) | def google_drive_auth( function gmail_callback (line 1826) | def gmail_callback( function google_drive_callback (line 1856) | def google_drive_callback( function get_connectors (line 1887) | def get_connectors( function get_indexed_sources (line 1902) | def get_indexed_sources( function get_connector_by_id (line 1913) | def get_connector_by_id( function submit_connector_request (line 1942) | def submit_connector_request( class BasicCCPairInfo (line 2018) | class BasicCCPairInfo(BaseModel): function get_basic_connector_indexing_status (line 2025) | def get_basic_connector_indexing_status( function trigger_indexing_for_cc_pair (line 2049) | def trigger_indexing_for_cc_pair( FILE: backend/onyx/server/documents/credential.py function _ignore_credential_permissions (line 49) | def _ignore_credential_permissions(source: DocumentSource) -> bool: function list_credentials_admin (line 57) | def list_credentials_admin( function get_cc_source_full_info (line 74) | def get_cc_source_full_info( function delete_credential_by_id_admin (line 96) | def delete_credential_by_id_admin( function swap_credentials_for_connector (line 109) | def swap_credentials_for_connector( function create_credential_from_model (line 136) | def create_credential_from_model( function create_credential_with_private_key (line 163) | def create_credential_with_private_key( function list_credentials (line 230) | def list_credentials( function get_credential_by_id (line 242) | def get_credential_by_id( function update_credential_data (line 263) | def update_credential_data( function update_credential_private_key (line 287) | def update_credential_private_key( function update_credential_from_model (line 334) | def update_credential_from_model( function delete_credential_by_id (line 370) | def delete_credential_by_id( function force_delete_credential_by_id (line 387) | def force_delete_credential_by_id( FILE: backend/onyx/server/documents/document.py function get_document_info (line 30) | def get_document_info( function get_chunk_info (line 74) | def get_chunk_info( FILE: backend/onyx/server/documents/document_utils.py function _is_password_related_error (line 8) | def _is_password_related_error(error: Exception) -> bool: function validate_pkcs12_content (line 17) | def validate_pkcs12_content(file_bytes: bytes) -> bool: FILE: backend/onyx/server/documents/models.py class DocumentSyncStatus (line 34) | class DocumentSyncStatus(BaseModel): method from_model (line 40) | def from_model(cls, doc: DbDocument) -> "DocumentSyncStatus": class DocumentInfo (line 48) | class DocumentInfo(BaseModel): class ChunkInfo (line 53) | class ChunkInfo(BaseModel): class IndexedSourcesResponse (line 58) | class IndexedSourcesResponse(BaseModel): class DeletionAttemptSnapshot (line 63) | class DeletionAttemptSnapshot(BaseModel): class ConnectorBase (line 69) | class ConnectorBase(BaseModel): class ConnectorUpdateRequest (line 80) | class ConnectorUpdateRequest(ConnectorBase): method to_connector_base (line 84) | def to_connector_base(self) -> ConnectorBase: class ConnectorSnapshot (line 88) | class ConnectorSnapshot(ConnectorBase): method from_connector_db_model (line 96) | def from_connector_db_model( class CredentialSwapRequest (line 117) | class CredentialSwapRequest(BaseModel): class CredentialDataUpdateRequest (line 123) | class CredentialDataUpdateRequest(BaseModel): class CredentialBase (line 128) | class CredentialBase(BaseModel): class CredentialSnapshot (line 138) | class CredentialSnapshot(CredentialBase): method from_credential_db_model (line 146) | def from_credential_db_model(cls, credential: Credential) -> "Credenti... class IndexAttemptSnapshot (line 173) | class IndexAttemptSnapshot(BaseModel): method from_index_attempt_db_model (line 189) | def from_index_attempt_db_model( class PermissionSyncAttemptSnapshot (line 218) | class PermissionSyncAttemptSnapshot(BaseModel): method from_permission_sync_attempt_db_model (line 229) | def from_permission_sync_attempt_db_model( class PaginatedReturn (line 248) | class PaginatedReturn(BaseModel, Generic[PaginatedType]): class CCPairFullInfo (line 253) | class CCPairFullInfo(BaseModel): method _get_last_full_permission_sync (line 286) | def _get_last_full_permission_sync( method from_models (line 324) | def from_models( class CeleryTaskStatus (line 398) | class CeleryTaskStatus(BaseModel): class FailedConnectorIndexingStatus (line 406) | class FailedConnectorIndexingStatus(BaseModel): class ConnectorStatus (line 417) | class ConnectorStatus(BaseModel): class ConnectorIndexingStatus (line 431) | class ConnectorIndexingStatus(ConnectorStatus): class DocsCountOperator (line 447) | class DocsCountOperator(str, Enum): class ConnectorIndexingStatusLite (line 453) | class ConnectorIndexingStatusLite(BaseModel): class SourceSummary (line 469) | class SourceSummary(BaseModel): class ConnectorIndexingStatusLiteResponse (line 476) | class ConnectorIndexingStatusLiteResponse(BaseModel): class ConnectorCredentialPairIdentifier (line 484) | class ConnectorCredentialPairIdentifier(BaseModel): class ConnectorCredentialPairMetadata (line 489) | class ConnectorCredentialPairMetadata(BaseModel): class CCStatusUpdateRequest (line 497) | class CCStatusUpdateRequest(BaseModel): class ConnectorCredentialPairDescriptor (line 501) | class ConnectorCredentialPairDescriptor(BaseModel): class CCPairSummary (line 509) | class CCPairSummary(BaseModel): method from_cc_pair_descriptor (line 518) | def from_cc_pair_descriptor( class RunConnectorRequest (line 529) | class RunConnectorRequest(BaseModel): class ConnectorRequestSubmission (line 535) | class ConnectorRequestSubmission(BaseModel): class CCPropertyUpdateRequest (line 539) | class CCPropertyUpdateRequest(BaseModel): class GoogleAppWebCredentials (line 547) | class GoogleAppWebCredentials(BaseModel): class GoogleAppCredentials (line 558) | class GoogleAppCredentials(BaseModel): class GoogleServiceAccountKey (line 562) | class GoogleServiceAccountKey(BaseModel): class GoogleServiceAccountCredentialRequest (line 576) | class GoogleServiceAccountCredentialRequest(BaseModel): class FileUploadResponse (line 580) | class FileUploadResponse(BaseModel): class ConnectorFileInfo (line 586) | class ConnectorFileInfo(BaseModel): class ConnectorFilesResponse (line 593) | class ConnectorFilesResponse(BaseModel): class ObjectCreationIdResponse (line 597) | class ObjectCreationIdResponse(BaseModel): class AuthStatus (line 602) | class AuthStatus(BaseModel): class AuthUrl (line 606) | class AuthUrl(BaseModel): class GmailCallback (line 610) | class GmailCallback(BaseModel): class GDriveCallback (line 615) | class GDriveCallback(BaseModel): class IndexingStatusRequest (line 620) | class IndexingStatusRequest(BaseModel): FILE: backend/onyx/server/documents/private_key_types.py class ProcessPrivateKeyFileProtocol (line 11) | class ProcessPrivateKeyFileProtocol(Protocol): method __call__ (line 12) | def __call__(self, file: UploadFile) -> str: class PrivateKeyFileTypes (line 21) | class PrivateKeyFileTypes(Enum): function process_sharepoint_private_key_file (line 25) | def process_sharepoint_private_key_file(file: UploadFile) -> str: FILE: backend/onyx/server/documents/standard_oauth.py function _discover_oauth_connectors (line 41) | def _discover_oauth_connectors() -> dict[DocumentSource, type[OAuthConne... function _get_additional_kwargs (line 60) | def _get_additional_kwargs( class AuthorizeResponse (line 83) | class AuthorizeResponse(BaseModel): function oauth_authorize (line 88) | def oauth_authorize( class CallbackResponse (line 134) | class CallbackResponse(BaseModel): function oauth_callback (line 139) | def oauth_callback( class OAuthAdditionalKwargDescription (line 190) | class OAuthAdditionalKwargDescription(BaseModel): class OAuthDetails (line 196) | class OAuthDetails(BaseModel): function oauth_details (line 202) | def oauth_details( FILE: backend/onyx/server/evals/models.py class EvalRunAck (line 4) | class EvalRunAck(BaseModel): FILE: backend/onyx/server/features/build/api/api.py function require_onyx_craft_enabled (line 48) | def require_onyx_craft_enabled(user: User = Depends(current_user)) -> User: function get_rate_limit (line 75) | def get_rate_limit( function get_build_connectors (line 89) | def get_build_connectors( function _stream_response (line 240) | def _stream_response(response: httpx.Response) -> Iterator[bytes]: function _inject_hmr_fixer (line 246) | def _inject_hmr_fixer(content: bytes, session_id: str) -> bytes: function _rewrite_asset_paths (line 261) | def _rewrite_asset_paths(content: bytes, session_id: str) -> bytes: function _rewrite_proxy_response_headers (line 316) | def _rewrite_proxy_response_headers( function _get_sandbox_url (line 345) | def _get_sandbox_url(session_id: UUID, db_session: Session) -> str: function _proxy_request (line 378) | def _proxy_request( function _check_webapp_access (line 444) | def _check_webapp_access( function _offline_html_response (line 468) | def _offline_html_response() -> Response: function get_webapp (line 488) | def get_webapp( function reset_sandbox (line 520) | def reset_sandbox( FILE: backend/onyx/server/features/build/api/messages_api.py function check_build_rate_limits (line 32) | def check_build_rate_limits( function list_messages (line 54) | def list_messages( function send_message (line 73) | def send_message( FILE: backend/onyx/server/features/build/api/models.py class SessionCreateRequest (line 24) | class SessionCreateRequest(BaseModel): class SessionUpdateRequest (line 36) | class SessionUpdateRequest(BaseModel): class SessionNameGenerateResponse (line 45) | class SessionNameGenerateResponse(BaseModel): class SandboxResponse (line 51) | class SandboxResponse(BaseModel): method from_model (line 61) | def from_model(cls, sandbox: Any) -> "SandboxResponse": class ArtifactResponse (line 72) | class ArtifactResponse(BaseModel): method from_model (line 85) | def from_model(cls, artifact: Any) -> "ArtifactResponse": class SessionResponse (line 99) | class SessionResponse(BaseModel): method from_model (line 114) | def from_model( class DetailedSessionResponse (line 138) | class DetailedSessionResponse(SessionResponse): method from_session_response (line 148) | def from_session_response( class SessionListResponse (line 159) | class SessionListResponse(BaseModel): class SetSessionSharingRequest (line 165) | class SetSessionSharingRequest(BaseModel): class SetSessionSharingResponse (line 171) | class SetSessionSharingResponse(BaseModel): class MessageRequest (line 179) | class MessageRequest(BaseModel): class MessageResponse (line 185) | class MessageResponse(BaseModel): method from_model (line 207) | def from_model(cls, message: Any) -> "MessageResponse": class MessageListResponse (line 219) | class MessageListResponse(BaseModel): class CreateSessionRequest (line 226) | class CreateSessionRequest(BaseModel): class CreateSessionResponse (line 231) | class CreateSessionResponse(BaseModel): class ExecuteRequest (line 235) | class ExecuteRequest(BaseModel): class ArtifactInfo (line 240) | class ArtifactInfo(BaseModel): class SessionStatus (line 247) | class SessionStatus(BaseModel): class DirectoryListing (line 253) | class DirectoryListing(BaseModel): class WebappInfo (line 258) | class WebappInfo(BaseModel): class UploadResponse (line 267) | class UploadResponse(BaseModel): class RateLimitResponse (line 276) | class RateLimitResponse(BaseModel): class PreProvisionedCheckResponse (line 287) | class PreProvisionedCheckResponse(BaseModel): class BuildConnectorStatus (line 295) | class BuildConnectorStatus(str, Enum): class BuildConnectorInfo (line 306) | class BuildConnectorInfo(BaseModel): class BuildConnectorListResponse (line 320) | class BuildConnectorListResponse(BaseModel): class SuggestionTheme (line 327) | class SuggestionTheme(str, Enum): class SuggestionBubble (line 334) | class SuggestionBubble(BaseModel): class GenerateSuggestionsRequest (line 341) | class GenerateSuggestionsRequest(BaseModel): class GenerateSuggestionsResponse (line 348) | class GenerateSuggestionsResponse(BaseModel): class PptxPreviewResponse (line 354) | class PptxPreviewResponse(BaseModel): FILE: backend/onyx/server/features/build/api/packet_logger.py class PacketLogger (line 32) | class PacketLogger: method __new__ (line 49) | def __new__(cls) -> "PacketLogger": method __init__ (line 55) | def __init__(self) -> None: method _get_log_file_path (line 88) | def _get_log_file_path(self) -> Path: method _setup_logger (line 112) | def _setup_logger(self) -> None: method _init_line_count (line 140) | def _init_line_count(self) -> None: method _maybe_trim_log (line 152) | def _maybe_trim_log(self) -> None: method _trim_log_file (line 166) | def _trim_log_file(self) -> None: method clear_log_file (line 217) | def clear_log_file(self) -> None: method is_enabled (line 258) | def is_enabled(self) -> bool: method _format_uuid (line 262) | def _format_uuid(self, value: Any) -> str: method _write_log (line 270) | def _write_log(self, message: str) -> None: method log (line 282) | def log(self, packet_type: str, payload: dict[str, Any] | None = None)... method log_raw (line 298) | def log_raw(self, label: str, data: Any) -> None: method log_jsonrpc_request (line 321) | def log_jsonrpc_request( method log_jsonrpc_response (line 350) | def log_jsonrpc_response( method log_jsonrpc_notification (line 386) | def log_jsonrpc_notification( method log_jsonrpc_raw_message (line 411) | def log_jsonrpc_raw_message( method log_acp_event (line 441) | def log_acp_event( method log_acp_event_yielded (line 484) | def log_acp_event_yielded( method log_session_start (line 515) | def log_session_start( method log_session_end (line 545) | def log_session_end( method log_acp_client_start (line 575) | def log_acp_client_start( method log_acp_client_stop (line 601) | def log_acp_client_stop( method log_streaming_state_update (line 626) | def log_streaming_state_update( method log_sse_emit (line 652) | def log_sse_emit( function get_packet_logger (line 674) | def get_packet_logger() -> PacketLogger: function log_separator (line 682) | def log_separator(label: str = "") -> None: FILE: backend/onyx/server/features/build/api/packets.py class BasePacket (line 41) | class BasePacket(BaseModel): class ErrorPacket (line 55) | class ErrorPacket(BasePacket): FILE: backend/onyx/server/features/build/api/rate_limit.py function _should_skip_rate_limiting (line 25) | def _should_skip_rate_limiting(user: User) -> bool: function get_user_rate_limit_status (line 49) | def get_user_rate_limit_status( FILE: backend/onyx/server/features/build/api/sessions_api.py function list_sessions (line 67) | def list_sessions( function create_session (line 89) | def create_session( function get_session_details (line 158) | def get_session_details( function check_pre_provisioned_session (line 196) | def check_pre_provisioned_session( function generate_session_name (line 229) | def generate_session_name( function generate_suggestions (line 248) | def generate_suggestions( function update_session_name (line 281) | def update_session_name( function set_session_public (line 301) | def set_session_public( function delete_session (line 320) | def delete_session( function restore_session (line 357) | def restore_session( function list_artifacts (line 537) | def list_artifacts( function list_directory (line 554) | def list_directory( function download_artifact (line 592) | def download_artifact( function export_docx (line 643) | def export_docx( function get_pptx_preview (line 685) | def get_pptx_preview( function get_webapp_info (line 712) | def get_webapp_info( function download_webapp (line 734) | def download_webapp( function download_directory (line 764) | def download_directory( function upload_file_endpoint (line 801) | def upload_file_endpoint( function delete_file_endpoint (line 852) | def delete_file_endpoint( FILE: backend/onyx/server/features/build/api/subscription_check.py function is_user_subscribed (line 15) | def is_user_subscribed(user: User, db_session: Session) -> bool: # noqa... FILE: backend/onyx/server/features/build/api/templates/webapp_hmr_fixer.js function isHmrWebSocketUrl (line 7) | function isHmrWebSocketUrl(url) { function rewriteNextAssetUrl (line 29) | function rewriteNextAssetUrl(url) { function createEvent (line 53) | function createEvent(eventType) { function MockHmrWebSocket (line 59) | function MockHmrWebSocket(url) { FILE: backend/onyx/server/features/build/api/user_library.py class LibraryEntryResponse (line 82) | class LibraryEntryResponse(BaseModel): class CreateDirectoryRequest (line 96) | class CreateDirectoryRequest(BaseModel): class UploadResponse (line 103) | class UploadResponse(BaseModel): class ToggleSyncResponse (line 111) | class ToggleSyncResponse(BaseModel): class DeleteFileResponse (line 118) | class DeleteFileResponse(BaseModel): function _sanitize_path (line 130) | def _sanitize_path(path: str) -> str: function _build_document_id (line 149) | def _build_document_id(user_id: str, path: str) -> str: function _trigger_sandbox_sync (line 162) | def _trigger_sandbox_sync( function _validate_zip_contents (line 180) | def _validate_zip_contents( function _verify_ownership_and_get_document (line 208) | def _verify_ownership_and_get_document( function _store_and_track_file (line 232) | def _store_and_track_file( function get_library_tree (line 283) | def get_library_tree( function upload_files (line 322) | async def upload_files( function upload_zip (line 439) | async def upload_zip( function create_directory (line 609) | def create_directory( function toggle_file_sync (line 658) | def toggle_file_sync( function delete_file (line 711) | def delete_file( FILE: backend/onyx/server/features/build/configs.py class SandboxBackend (line 6) | class SandboxBackend(str, Enum): FILE: backend/onyx/server/features/build/db/build_session.py function create_build_session__no_commit (line 30) | def create_build_session__no_commit( function get_build_session (line 62) | def get_build_session( function get_user_build_sessions (line 78) | def get_user_build_sessions( function get_empty_session_for_user (line 102) | def get_empty_session_for_user( function update_session_activity (line 131) | def update_session_activity( function update_session_status (line 146) | def update_session_status( function set_build_session_sharing_scope (line 163) | def set_build_session_sharing_scope( function delete_build_session__no_commit (line 183) | def delete_build_session__no_commit( function update_sandbox_status (line 208) | def update_sandbox_status( function update_sandbox_heartbeat (line 225) | def update_sandbox_heartbeat( function create_artifact (line 237) | def create_artifact( function get_session_artifacts (line 259) | def get_session_artifacts( function update_artifact (line 272) | def update_artifact( function create_message (line 293) | def create_message( function update_message (line 328) | def update_message( function upsert_agent_plan (line 361) | def upsert_agent_plan( function get_session_messages (line 419) | def get_session_messages( function _is_port_available (line 432) | def _is_port_available(port: int) -> bool: function allocate_nextjs_port (line 468) | def allocate_nextjs_port(db_session: Session) -> int: function mark_user_sessions_idle__no_commit (line 503) | def mark_user_sessions_idle__no_commit(db_session: Session, user_id: UUI... function clear_nextjs_ports_for_user (line 529) | def clear_nextjs_ports_for_user(db_session: Session, user_id: UUID) -> int: function fetch_llm_provider_by_type_for_build_mode (line 554) | def fetch_llm_provider_by_type_for_build_mode( FILE: backend/onyx/server/features/build/db/rate_limit.py function count_user_messages_in_window (line 14) | def count_user_messages_in_window( function count_user_messages_total (line 43) | def count_user_messages_total(user_id: UUID, db_session: Session) -> int: function get_oldest_message_timestamp (line 66) | def get_oldest_message_timestamp( FILE: backend/onyx/server/features/build/db/sandbox.py function create_sandbox__no_commit (line 20) | def create_sandbox__no_commit( function get_sandbox_by_user_id (line 44) | def get_sandbox_by_user_id(db_session: Session, user_id: UUID) -> Sandbo... function get_sandbox_by_session_id (line 50) | def get_sandbox_by_session_id(db_session: Session, session_id: UUID) -> ... function get_sandbox_by_id (line 70) | def get_sandbox_by_id(db_session: Session, sandbox_id: UUID) -> Sandbox ... function update_sandbox_status__no_commit (line 76) | def update_sandbox_status__no_commit( function update_sandbox_heartbeat (line 104) | def update_sandbox_heartbeat(db_session: Session, sandbox_id: UUID) -> S... function get_idle_sandboxes (line 115) | def get_idle_sandboxes( function get_running_sandbox_count_by_tenant (line 141) | def get_running_sandbox_count_by_tenant( function create_snapshot__no_commit (line 156) | def create_snapshot__no_commit( function get_latest_snapshot_for_session (line 178) | def get_latest_snapshot_for_session( function get_snapshots_for_session (line 191) | def get_snapshots_for_session(db_session: Session, session_id: UUID) -> ... function delete_old_snapshots (line 201) | def delete_old_snapshots( function delete_snapshot (line 232) | def delete_snapshot(db_session: Session, snapshot_id: UUID) -> bool: FILE: backend/onyx/server/features/build/db/user_library.py function get_user_storage_bytes (line 42) | def get_user_storage_bytes(db_session: Session, user_id: UUID) -> int: function get_or_create_craft_connector (line 86) | def get_or_create_craft_connector(db_session: Session, user: User) -> tu... FILE: backend/onyx/server/features/build/indexing/persistent_document_writer.py function sanitize_path_component (line 41) | def sanitize_path_component(component: str, replace_slash: bool = True) ... function sanitize_filename (line 73) | def sanitize_filename(name: str, replace_slash: bool = True) -> str: function normalize_leading_slash (line 91) | def normalize_leading_slash(path: str) -> str: function get_base_filename (line 96) | def get_base_filename(doc: Document, replace_slash: bool = True) -> str: function build_document_subpath (line 110) | def build_document_subpath(doc: Document, replace_slash: bool = True) ->... function resolve_duplicate_filename (line 146) | def resolve_duplicate_filename( function serialize_document (line 171) | def serialize_document(doc: Document) -> dict[str, Any]: class PersistentDocumentWriter (line 204) | class PersistentDocumentWriter: method __init__ (line 213) | def __init__( method write_documents (line 223) | def write_documents(self, documents: list[Document]) -> list[str]: method _build_directory_path (line 252) | def _build_directory_path(self, doc: Document) -> Path: method _write_document (line 267) | def _write_document(self, doc: Document, path: Path) -> None: method write_raw_file (line 280) | def write_raw_file( method delete_raw_file (line 320) | def delete_raw_file(self, path: str) -> None: class S3PersistentDocumentWriter (line 344) | class S3PersistentDocumentWriter: method __init__ (line 354) | def __init__(self, tenant_id: str, user_id: str): method _get_s3_client (line 366) | def _get_s3_client(self) -> S3Client: method write_documents (line 375) | def write_documents(self, documents: list[Document]) -> list[str]: method _build_directory_path (line 413) | def _build_directory_path(self, doc: Document) -> str: method _write_document (line 429) | def _write_document(self, s3_client: S3Client, doc: Document, s3_key: ... method write_raw_file (line 446) | def write_raw_file( method delete_raw_file (line 486) | def delete_raw_file(self, s3_key: str) -> None: method delete_raw_file_by_path (line 501) | def delete_raw_file_by_path(self, path: str) -> None: function get_persistent_document_writer (line 514) | def get_persistent_document_writer( FILE: backend/onyx/server/features/build/s3/s3_client.py function build_s3_client (line 7) | def build_s3_client() -> S3Client: FILE: backend/onyx/server/features/build/sandbox/base.py class SandboxManager (line 40) | class SandboxManager(ABC): method provision (line 73) | def provision( method terminate (line 103) | def terminate(self, sandbox_id: UUID) -> None: method setup_session_workspace (line 115) | def setup_session_workspace( method cleanup_session_workspace (line 163) | def cleanup_session_workspace( method create_snapshot (line 184) | def create_snapshot( method restore_snapshot (line 215) | def restore_snapshot( method session_workspace_exists (line 245) | def session_workspace_exists( method health_check (line 265) | def health_check(self, sandbox_id: UUID, timeout: float = 60.0) -> bool: method send_message (line 277) | def send_message( method list_directory (line 302) | def list_directory( method read_file (line 321) | def read_file(self, sandbox_id: UUID, session_id: UUID, path: str) -> ... method upload_file (line 338) | def upload_file( method delete_file (line 362) | def delete_file( method get_upload_stats (line 384) | def get_upload_stats( method get_webapp_url (line 401) | def get_webapp_url(self, sandbox_id: UUID, port: int) -> str: method generate_pptx_preview (line 418) | def generate_pptx_preview( method sync_files (line 448) | def sync_files( method ensure_nextjs_running (line 477) | def ensure_nextjs_running( function get_sandbox_manager (line 500) | def get_sandbox_manager() -> SandboxManager: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/generate_agents_md.py function _normalize_connector_name (line 77) | def _normalize_connector_name(name: str) -> str: function _scan_directory_to_depth (line 82) | def _scan_directory_to_depth( function build_knowledge_sources_section (line 113) | def build_knowledge_sources_section(files_path: Path) -> str: function main (line 193) | def main() -> None: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/image-generation/scripts/generate.py function load_image_as_base64 (line 18) | def load_image_as_base64(image_path: str) -> tuple[str, str]: function generate_image (line 41) | def generate_image( function main (line 145) | def main() -> None: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/add_slide.py function get_next_slide_number (line 27) | def get_next_slide_number(slides_dir: Path) -> int: function create_slide_from_layout (line 36) | def create_slide_from_layout(unpacked_dir: Path, layout_file: str) -> None: function duplicate_slide (line 99) | def duplicate_slide(unpacked_dir: Path, source: str) -> None: function _add_to_content_types (line 141) | def _add_to_content_types(unpacked_dir: Path, dest: str) -> None: function _add_to_presentation_rels (line 157) | def _add_to_presentation_rels(unpacked_dir: Path, dest: str) -> str: function _get_next_slide_id (line 179) | def _get_next_slide_id(unpacked_dir: Path) -> int: function parse_source (line 186) | def parse_source(source: str) -> tuple[str, str | None]: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/clean.py function get_slides_in_sldidlst (line 25) | def get_slides_in_sldidlst(unpacked_dir: Path) -> set[str]: function remove_orphaned_slides (line 47) | def remove_orphaned_slides(unpacked_dir: Path) -> list[str]: function remove_trash_directory (line 89) | def remove_trash_directory(unpacked_dir: Path) -> list[str]: function get_slide_referenced_files (line 104) | def get_slide_referenced_files(unpacked_dir: Path) -> set: function remove_orphaned_rels_files (line 126) | def remove_orphaned_rels_files(unpacked_dir: Path) -> list[str]: function get_referenced_files (line 153) | def get_referenced_files(unpacked_dir: Path) -> set: function remove_orphaned_files (line 171) | def remove_orphaned_files(unpacked_dir: Path, referenced: set) -> list[s... function update_content_types (line 229) | def update_content_types(unpacked_dir: Path, removed_files: list[str]) -... function clean_unused_files (line 249) | def clean_unused_files(unpacked_dir: Path) -> list[str]: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/helpers/merge_runs.py function merge_runs (line 16) | def merge_runs(input_dir: str) -> tuple[int, str]: function _find_elements (line 42) | def _find_elements(root, tag: str) -> list: function _get_child (line 57) | def _get_child(parent, tag: str): function _get_children (line 66) | def _get_children(parent, tag: str) -> list: function _is_adjacent (line 76) | def _is_adjacent(elem1, elem2) -> bool: function _remove_elements (line 89) | def _remove_elements(root, tag: str): function _strip_run_rsid_attrs (line 95) | def _strip_run_rsid_attrs(root): function _merge_runs_in (line 102) | def _merge_runs_in(container) -> int: function _first_child_run (line 122) | def _first_child_run(container): function _next_element_sibling (line 129) | def _next_element_sibling(node): function _next_sibling_run (line 138) | def _next_sibling_run(node): function _is_run (line 148) | def _is_run(node) -> bool: function _can_merge (line 153) | def _can_merge(run1, run2) -> bool: function _merge_run_content (line 164) | def _merge_run_content(target, source): function _consolidate_text (line 172) | def _consolidate_text(run): FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/helpers/simplify_redlines.py function simplify_redlines (line 22) | def simplify_redlines(input_dir: str) -> tuple[int, str]: function _merge_tracked_changes_in (line 47) | def _merge_tracked_changes_in(container, tag: str) -> int: function _is_element (line 75) | def _is_element(node, tag: str) -> bool: function _get_author (line 80) | def _get_author(elem) -> str: function _can_merge_tracked (line 89) | def _can_merge_tracked(elem1, elem2) -> bool: function _merge_tracked_content (line 104) | def _merge_tracked_content(target, source): function _find_elements (line 111) | def _find_elements(root, tag: str) -> list: function get_tracked_change_authors (line 126) | def get_tracked_change_authors(doc_xml_path: Path) -> dict[str, int]: function _get_authors_from_docx (line 149) | def _get_authors_from_docx(docx_path: Path) -> dict[str, int]: function infer_author (line 172) | def infer_author( FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/pack.py function pack (line 26) | def pack( function _run_validation (line 71) | def _run_validation( function _condense_xml (line 110) | def _condense_xml(xml_file: Path) -> None: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/soffice.py function get_soffice_env (line 24) | def get_soffice_env() -> dict: function run_soffice (line 35) | def run_soffice(args: list[str], **kwargs) -> subprocess.CompletedProcess: function _needs_shim (line 43) | def _needs_shim() -> bool: function _ensure_shim (line 52) | def _ensure_shim() -> Path: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/unpack.py function unpack (line 33) | def unpack( function _pretty_print_xml (line 81) | def _pretty_print_xml(xml_file: Path) -> None: function _escape_smart_quotes (line 90) | def _escape_smart_quotes(xml_file: Path) -> None: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/validate.py function main (line 27) | def main(): FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/validators/base.py class BaseSchemaValidator (line 12) | class BaseSchemaValidator: method __init__ (line 93) | def __init__(self, unpacked_dir, original_file=None, verbose=False): method validate (line 108) | def validate(self): method repair (line 111) | def repair(self) -> int: method repair_whitespace_preservation (line 114) | def repair_whitespace_preservation(self) -> int: method validate_xml (line 150) | def validate_xml(self): method validate_namespaces (line 175) | def validate_namespaces(self): method validate_unique_ids (line 203) | def validate_unique_ids(self): method validate_file_references (line 294) | def validate_file_references(self): method validate_all_relationship_ids (line 388) | def validate_all_relationship_ids(self): method _get_expected_relationship_type (line 472) | def _get_expected_relationship_type(self, element_name): method validate_content_types (line 495) | def validate_content_types(self): method validate_file_against_xsd (line 605) | def validate_file_against_xsd(self, xml_file, verbose=False): method validate_against_xsd (line 644) | def validate_against_xsd(self): method _get_schema_path (line 693) | def _get_schema_path(self, xml_file): method _clean_ignorable_namespaces (line 711) | def _clean_ignorable_namespaces(self, xml_doc): method _remove_ignorable_elements (line 731) | def _remove_ignorable_elements(self, root): method _preprocess_for_mc_ignorable (line 750) | def _preprocess_for_mc_ignorable(self, xml_doc): method _validate_single_file_xsd (line 758) | def _validate_single_file_xsd(self, xml_file, base_path): method _get_original_file_errors (line 795) | def _get_original_file_errors(self, xml_file): method _remove_template_tags_from_text_nodes (line 822) | def _remove_template_tags_from_text_nodes(self, xml_doc): FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/validators/docx.py class DOCXSchemaValidator (line 16) | class DOCXSchemaValidator(BaseSchemaValidator): method validate (line 23) | def validate(self): method validate_whitespace_preservation (line 65) | def validate_whitespace_preservation(self): method validate_deletions (line 112) | def validate_deletions(self): method count_paragraphs_in_unpacked (line 163) | def count_paragraphs_in_unpacked(self): method count_paragraphs_in_original (line 179) | def count_paragraphs_in_original(self): method validate_insertions (line 202) | def validate_insertions(self): method compare_paragraph_counts (line 243) | def compare_paragraph_counts(self): method _parse_id_value (line 251) | def _parse_id_value(self, val: str, base: int = 16) -> int: method validate_id_constraints (line 254) | def validate_id_constraints(self): method validate_comment_markers (line 295) | def validate_comment_markers(self): method repair (line 383) | def repair(self) -> int: method repair_durableId (line 388) | def repair_durableId(self) -> int: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/validators/pptx.py class PPTXSchemaValidator (line 10) | class PPTXSchemaValidator(BaseSchemaValidator): method validate (line 24) | def validate(self): method validate_uuid_ids (line 61) | def validate_uuid_ids(self): method _looks_like_uuid (line 100) | def _looks_like_uuid(self, value): method validate_slide_layout_ids (line 104) | def validate_slide_layout_ids(self): method validate_no_duplicate_slide_layouts (line 172) | def validate_no_duplicate_slide_layouts(self): method validate_notes_slide_references (line 210) | def validate_notes_slide_references(self): FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/office/validators/redlining.py class RedliningValidator (line 11) | class RedliningValidator: method __init__ (line 12) | def __init__(self, unpacked_dir, original_docx, verbose=False, author=... method repair (line 21) | def repair(self) -> int: method validate (line 24) | def validate(self): method _generate_detailed_diff (line 103) | def _generate_detailed_diff(self, original_text, modified_text): method _get_git_word_diff (line 126) | def _get_git_word_diff(self, original_text, modified_text): method _remove_author_tracked_changes (line 197) | def _remove_author_tracked_changes(self, root): method _extract_text_content (line 228) | def _extract_text_content(self, root): FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/preview.py function _find_slides (line 27) | def _find_slides(directory: Path) -> list[str]: function main (line 34) | def main() -> None: FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/skills/pptx/scripts/thumbnail.py function main (line 42) | def main(): function get_slide_info (line 97) | def get_slide_info(pptx_path: Path) -> list[dict]: function build_slide_list (line 123) | def build_slide_list( function create_hidden_placeholder (line 151) | def create_hidden_placeholder(size: tuple[int, int]) -> Image.Image: function convert_to_images (line 160) | def convert_to_images(pptx_path: Path, temp_dir: Path) -> list[Path]: function create_grids (line 198) | def create_grids( function create_grid (line 227) | def create_grid( FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/app/layout.tsx function RootLayout (line 22) | function RootLayout({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/app/page.tsx constant MESSAGE_COUNT (line 17) | const MESSAGE_COUNT = messages.length; constant TYPE_DELAY (line 18) | const TYPE_DELAY = 40; constant LINE_PAUSE (line 19) | const LINE_PAUSE = 800; constant RESET_DELAY (line 20) | const RESET_DELAY = 2000; function CraftingLoader (line 22) | function CraftingLoader() { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/component-example.tsx function ComponentExample (line 96) | function ComponentExample() { function CardExample (line 105) | function CardExample() { function FormExample (line 166) | function FormExample() { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/example.tsx function ExampleWrapper (line 3) | function ExampleWrapper({ className, ...props }: React.ComponentProps<"d... function Example (line 18) | function Example({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/accordion.tsx function Accordion (line 9) | function Accordion({ function AccordionItem (line 22) | function AccordionItem({ function AccordionTrigger (line 35) | function AccordionTrigger({ function AccordionContent (line 64) | function AccordionContent({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/alert-dialog.tsx function AlertDialog (line 9) | function AlertDialog({ function AlertDialogTrigger (line 15) | function AlertDialogTrigger({ function AlertDialogPortal (line 23) | function AlertDialogPortal({ function AlertDialogOverlay (line 31) | function AlertDialogOverlay({ function AlertDialogContent (line 47) | function AlertDialogContent({ function AlertDialogHeader (line 70) | function AlertDialogHeader({ function AlertDialogFooter (line 86) | function AlertDialogFooter({ function AlertDialogMedia (line 102) | function AlertDialogMedia({ function AlertDialogTitle (line 118) | function AlertDialogTitle({ function AlertDialogDescription (line 134) | function AlertDialogDescription({ function AlertDialogAction (line 150) | function AlertDialogAction({ function AlertDialogCancel (line 168) | function AlertDialogCancel({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/alert.tsx function Alert (line 22) | function Alert({ function AlertTitle (line 37) | function AlertTitle({ className, ...props }: React.ComponentProps<"div">) { function AlertDescription (line 50) | function AlertDescription({ function AlertAction (line 66) | function AlertAction({ className, ...props }: React.ComponentProps<"div"... FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/aspect-ratio.tsx function AspectRatio (line 5) | function AspectRatio({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/avatar.tsx function Avatar (line 8) | function Avatar({ function AvatarImage (line 28) | function AvatarImage({ function AvatarFallback (line 44) | function AvatarFallback({ function AvatarBadge (line 60) | function AvatarBadge({ className, ...props }: React.ComponentProps<"span... function AvatarGroup (line 76) | function AvatarGroup({ className, ...props }: React.ComponentProps<"div"... function AvatarGroupCount (line 89) | function AvatarGroupCount({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/badge.tsx function Badge (line 30) | function Badge({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/breadcrumb.tsx function Breadcrumb (line 7) | function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) { function BreadcrumbList (line 18) | function BreadcrumbList({ className, ...props }: React.ComponentProps<"o... function BreadcrumbItem (line 31) | function BreadcrumbItem({ className, ...props }: React.ComponentProps<"l... function BreadcrumbLink (line 41) | function BreadcrumbLink({ function BreadcrumbPage (line 59) | function BreadcrumbPage({ className, ...props }: React.ComponentProps<"s... function BreadcrumbSeparator (line 72) | function BreadcrumbSeparator({ function BreadcrumbEllipsis (line 90) | function BreadcrumbEllipsis({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/button-group.tsx function ButtonGroup (line 24) | function ButtonGroup({ function ButtonGroupText (line 40) | function ButtonGroupText({ function ButtonGroupSeparator (line 60) | function ButtonGroupSeparator({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/button.tsx function Button (line 44) | function Button({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/calendar.tsx function Calendar (line 18) | function Calendar({ function CalendarDayButton (line 185) | function CalendarDayButton({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/card.tsx function Card (line 5) | function Card({ function CardHeader (line 23) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) { function CardTitle (line 36) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) { function CardDescription (line 49) | function CardDescription({ className, ...props }: React.ComponentProps<"... function CardAction (line 59) | function CardAction({ className, ...props }: React.ComponentProps<"div">) { function CardContent (line 72) | function CardContent({ className, ...props }: React.ComponentProps<"div"... function CardFooter (line 82) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/carousel.tsx type CarouselApi (line 12) | type CarouselApi = UseEmblaCarouselType[1]; type UseCarouselParameters (line 13) | type UseCarouselParameters = Parameters; type CarouselOptions (line 14) | type CarouselOptions = UseCarouselParameters[0]; type CarouselPlugin (line 15) | type CarouselPlugin = UseCarouselParameters[1]; type CarouselProps (line 17) | type CarouselProps = { type CarouselContextProps (line 24) | type CarouselContextProps = { function useCarousel (line 35) | function useCarousel() { function Carousel (line 45) | function Carousel({ function CarouselContent (line 135) | function CarouselContent({ className, ...props }: React.ComponentProps<"... function CarouselItem (line 156) | function CarouselItem({ className, ...props }: React.ComponentProps<"div... function CarouselPrevious (line 174) | function CarouselPrevious({ function CarouselNext (line 204) | function CarouselNext({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/chart.tsx constant THEMES (line 9) | const THEMES = { light: "", dark: ".dark" } as const; type ChartConfig (line 11) | type ChartConfig = { type ChartContextProps (line 21) | type ChartContextProps = { function useChart (line 27) | function useChart() { function ChartContainer (line 37) | function ChartContainer({ function ChartTooltipContent (line 107) | function ChartTooltipContent({ function ChartLegendContent (line 255) | function ChartLegendContent({ function getPayloadConfigFromPayload (line 311) | function getPayloadConfigFromPayload( FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/checkbox.tsx function Checkbox (line 9) | function Checkbox({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/collapsible.tsx function Collapsible (line 5) | function Collapsible({ function CollapsibleTrigger (line 11) | function CollapsibleTrigger({ function CollapsibleContent (line 22) | function CollapsibleContent({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/combobox.tsx function ComboboxValue (line 18) | function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) { function ComboboxTrigger (line 22) | function ComboboxTrigger({ function ComboboxClear (line 39) | function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.... function ComboboxInput (line 52) | function ComboboxInput({ function ComboboxContent (line 89) | function ComboboxContent({ function ComboboxList (line 126) | function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Pr... function ComboboxItem (line 139) | function ComboboxItem({ function ComboboxGroup (line 165) | function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.... function ComboboxLabel (line 175) | function ComboboxLabel({ function ComboboxCollection (line 188) | function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.P... function ComboboxEmpty (line 194) | function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.... function ComboboxSeparator (line 207) | function ComboboxSeparator({ function ComboboxChips (line 220) | function ComboboxChips({ function ComboboxChip (line 237) | function ComboboxChip({ function ComboboxChipsInput (line 268) | function ComboboxChipsInput({ function useComboboxAnchor (line 281) | function useComboboxAnchor() { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/command.tsx function Command (line 17) | function Command({ function CommandDialog (line 33) | function CommandDialog({ function CommandInput (line 65) | function CommandInput({ function CommandList (line 88) | function CommandList({ function CommandEmpty (line 104) | function CommandEmpty({ function CommandGroup (line 117) | function CommandGroup({ function CommandSeparator (line 133) | function CommandSeparator({ function CommandItem (line 146) | function CommandItem({ function CommandShortcut (line 166) | function CommandShortcut({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/context-menu.tsx function ContextMenu (line 9) | function ContextMenu({ function ContextMenuTrigger (line 15) | function ContextMenuTrigger({ function ContextMenuGroup (line 28) | function ContextMenuGroup({ function ContextMenuPortal (line 36) | function ContextMenuPortal({ function ContextMenuSub (line 44) | function ContextMenuSub({ function ContextMenuRadioGroup (line 50) | function ContextMenuRadioGroup({ function ContextMenuContent (line 61) | function ContextMenuContent({ function ContextMenuItem (line 81) | function ContextMenuItem({ function ContextMenuSubTrigger (line 104) | function ContextMenuSubTrigger({ function ContextMenuSubContent (line 128) | function ContextMenuSubContent({ function ContextMenuCheckboxItem (line 144) | function ContextMenuCheckboxItem({ function ContextMenuRadioItem (line 170) | function ContextMenuRadioItem({ function ContextMenuLabel (line 194) | function ContextMenuLabel({ function ContextMenuSeparator (line 214) | function ContextMenuSeparator({ function ContextMenuShortcut (line 227) | function ContextMenuShortcut({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/dialog.tsx function Dialog (line 10) | function Dialog({ function DialogTrigger (line 16) | function DialogTrigger({ function DialogPortal (line 22) | function DialogPortal({ function DialogClose (line 28) | function DialogClose({ function DialogOverlay (line 34) | function DialogOverlay({ function DialogContent (line 50) | function DialogContent({ function DialogHeader (line 87) | function DialogHeader({ className, ...props }: React.ComponentProps<"div... function DialogFooter (line 97) | function DialogFooter({ function DialogTitle (line 124) | function DialogTitle({ function DialogDescription (line 137) | function DialogDescription({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/drawer.tsx function Drawer (line 8) | function Drawer({ function DrawerTrigger (line 14) | function DrawerTrigger({ function DrawerPortal (line 20) | function DrawerPortal({ function DrawerClose (line 26) | function DrawerClose({ function DrawerOverlay (line 32) | function DrawerOverlay({ function DrawerContent (line 48) | function DrawerContent({ function DrawerHeader (line 71) | function DrawerHeader({ className, ...props }: React.ComponentProps<"div... function DrawerFooter (line 84) | function DrawerFooter({ className, ...props }: React.ComponentProps<"div... function DrawerTitle (line 94) | function DrawerTitle({ function DrawerDescription (line 107) | function DrawerDescription({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/dropdown-menu.tsx function DropdownMenu (line 9) | function DropdownMenu({ function DropdownMenuPortal (line 15) | function DropdownMenuPortal({ function DropdownMenuTrigger (line 23) | function DropdownMenuTrigger({ function DropdownMenuContent (line 34) | function DropdownMenuContent({ function DropdownMenuGroup (line 56) | function DropdownMenuGroup({ function DropdownMenuItem (line 64) | function DropdownMenuItem({ function DropdownMenuCheckboxItem (line 87) | function DropdownMenuCheckboxItem({ function DropdownMenuRadioGroup (line 116) | function DropdownMenuRadioGroup({ function DropdownMenuRadioItem (line 127) | function DropdownMenuRadioItem({ function DropdownMenuLabel (line 154) | function DropdownMenuLabel({ function DropdownMenuSeparator (line 174) | function DropdownMenuSeparator({ function DropdownMenuShortcut (line 187) | function DropdownMenuShortcut({ function DropdownMenuSub (line 203) | function DropdownMenuSub({ function DropdownMenuSubTrigger (line 209) | function DropdownMenuSubTrigger({ function DropdownMenuSubContent (line 233) | function DropdownMenuSubContent({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/empty.tsx function Empty (line 5) | function Empty({ className, ...props }: React.ComponentProps<"div">) { function EmptyHeader (line 18) | function EmptyHeader({ className, ...props }: React.ComponentProps<"div"... function EmptyMedia (line 43) | function EmptyMedia({ function EmptyTitle (line 58) | function EmptyTitle({ className, ...props }: React.ComponentProps<"div">) { function EmptyDescription (line 68) | function EmptyDescription({ className, ...props }: React.ComponentProps<... function EmptyContent (line 81) | function EmptyContent({ className, ...props }: React.ComponentProps<"div... FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/field.tsx function FieldSet (line 10) | function FieldSet({ className, ...props }: React.ComponentProps<"fieldse... function FieldLegend (line 23) | function FieldLegend({ function FieldGroup (line 41) | function FieldGroup({ className, ...props }: React.ComponentProps<"div">) { function Field (line 72) | function Field({ function FieldContent (line 88) | function FieldContent({ className, ...props }: React.ComponentProps<"div... function FieldLabel (line 101) | function FieldLabel({ function FieldTitle (line 118) | function FieldTitle({ className, ...props }: React.ComponentProps<"div">) { function FieldDescription (line 131) | function FieldDescription({ className, ...props }: React.ComponentProps<... function FieldSeparator (line 146) | function FieldSeparator({ function FieldError (line 176) | function FieldError({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/hover-card.tsx function HoverCard (line 8) | function HoverCard({ function HoverCardTrigger (line 14) | function HoverCardTrigger({ function HoverCardContent (line 22) | function HoverCardContent({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/input-group.tsx function InputGroup (line 11) | function InputGroup({ className, ...props }: React.ComponentProps<"div">) { function InputGroupAddon (line 46) | function InputGroupAddon({ function InputGroupButton (line 86) | function InputGroupButton({ function InputGroupText (line 105) | function InputGroupText({ className, ...props }: React.ComponentProps<"s... function InputGroupInput (line 117) | function InputGroupInput({ function InputGroupTextarea (line 133) | function InputGroupTextarea({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu... FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/item.tsx function ItemGroup (line 8) | function ItemGroup({ className, ...props }: React.ComponentProps<"div">) { function ItemSeparator (line 22) | function ItemSeparator({ function Item (line 58) | function Item({ function ItemMedia (line 95) | function ItemMedia({ function ItemContent (line 110) | function ItemContent({ className, ...props }: React.ComponentProps<"div"... function ItemTitle (line 123) | function ItemTitle({ className, ...props }: React.ComponentProps<"div">) { function ItemDescription (line 136) | function ItemDescription({ className, ...props }: React.ComponentProps<"... function ItemActions (line 149) | function ItemActions({ className, ...props }: React.ComponentProps<"div"... function ItemHeader (line 159) | function ItemHeader({ className, ...props }: React.ComponentProps<"div">) { function ItemFooter (line 172) | function ItemFooter({ className, ...props }: React.ComponentProps<"div">) { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/kbd.tsx function Kbd (line 3) | function Kbd({ className, ...props }: React.ComponentProps<"kbd">) { function KbdGroup (line 16) | function KbdGroup({ className, ...props }: React.ComponentProps<"div">) { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/label.tsx function Label (line 8) | function Label({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/menubar.tsx function Menubar (line 9) | function Menubar({ function MenubarMenu (line 25) | function MenubarMenu({ function MenubarGroup (line 31) | function MenubarGroup({ function MenubarPortal (line 37) | function MenubarPortal({ function MenubarRadioGroup (line 43) | function MenubarRadioGroup({ function MenubarTrigger (line 51) | function MenubarTrigger({ function MenubarContent (line 67) | function MenubarContent({ function MenubarItem (line 91) | function MenubarItem({ function MenubarCheckboxItem (line 114) | function MenubarCheckboxItem({ function MenubarRadioItem (line 140) | function MenubarRadioItem({ function MenubarLabel (line 164) | function MenubarLabel({ function MenubarSeparator (line 184) | function MenubarSeparator({ function MenubarShortcut (line 197) | function MenubarShortcut({ function MenubarSub (line 213) | function MenubarSub({ function MenubarSubTrigger (line 219) | function MenubarSubTrigger({ function MenubarSubContent (line 243) | function MenubarSubContent({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/native-select.tsx type NativeSelectProps (line 6) | type NativeSelectProps = Omit, "size"> & { function NativeSelect (line 10) | function NativeSelect({ function NativeSelectOption (line 39) | function NativeSelectOption({ ...props }: React.ComponentProps<"option">) { function NativeSelectOptGroup (line 43) | function NativeSelectOptGroup({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/navigation-menu.tsx function NavigationMenu (line 8) | function NavigationMenu({ function NavigationMenuList (line 32) | function NavigationMenuList({ function NavigationMenuItem (line 48) | function NavigationMenuItem({ function NavigationMenuTrigger (line 65) | function NavigationMenuTrigger({ function NavigationMenuContent (line 85) | function NavigationMenuContent({ function NavigationMenuViewport (line 101) | function NavigationMenuViewport({ function NavigationMenuLink (line 123) | function NavigationMenuLink({ function NavigationMenuIndicator (line 139) | function NavigationMenuIndicator({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/pagination.tsx function Pagination (line 11) | function Pagination({ className, ...props }: React.ComponentProps<"nav">) { function PaginationContent (line 23) | function PaginationContent({ function PaginationItem (line 36) | function PaginationItem({ ...props }: React.ComponentProps<"li">) { type PaginationLinkProps (line 40) | type PaginationLinkProps = { function PaginationLink (line 45) | function PaginationLink({ function PaginationPrevious (line 68) | function PaginationPrevious({ function PaginationNext (line 85) | function PaginationNext({ function PaginationEllipsis (line 102) | function PaginationEllipsis({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/popover.tsx function Popover (line 8) | function Popover({ function PopoverTrigger (line 14) | function PopoverTrigger({ function PopoverContent (line 20) | function PopoverContent({ function PopoverAnchor (line 42) | function PopoverAnchor({ function PopoverHeader (line 48) | function PopoverHeader({ className, ...props }: React.ComponentProps<"di... function PopoverTitle (line 58) | function PopoverTitle({ className, ...props }: React.ComponentProps<"h2"... function PopoverDescription (line 68) | function PopoverDescription({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/progress.tsx function Progress (line 8) | function Progress({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/radio-group.tsx function RadioGroup (line 9) | function RadioGroup({ function RadioGroupItem (line 22) | function RadioGroupItem({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/resizable.tsx function ResizablePanelGroup (line 8) | function ResizablePanelGroup({ function ResizablePanel (line 24) | function ResizablePanel({ function ResizableHandle (line 30) | function ResizableHandle({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/scroll-area.tsx function ScrollArea (line 8) | function ScrollArea({ function ScrollBar (line 31) | function ScrollBar({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/select.tsx function Select (line 9) | function Select({ function SelectGroup (line 15) | function SelectGroup({ function SelectValue (line 28) | function SelectValue({ function SelectTrigger (line 34) | function SelectTrigger({ function SelectContent (line 60) | function SelectContent({ function SelectLabel (line 97) | function SelectLabel({ function SelectItem (line 110) | function SelectItem({ function SelectSeparator (line 134) | function SelectSeparator({ function SelectScrollUpButton (line 147) | function SelectScrollUpButton({ function SelectScrollDownButton (line 165) | function SelectScrollDownButton({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/separator.tsx function Separator (line 8) | function Separator({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/sheet.tsx function Sheet (line 10) | function Sheet({ ...props }: React.ComponentProps) { function SidebarMenuItem (line 457) | function SidebarMenuItem({ className, ...props }: React.ComponentProps<"... function SidebarMenuButton (line 490) | function SidebarMenuButton({ function SidebarMenuAction (line 540) | function SidebarMenuAction({ function SidebarMenuBadge (line 566) | function SidebarMenuBadge({ function SidebarMenuSkeleton (line 583) | function SidebarMenuSkeleton({ function SidebarMenuSub (line 621) | function SidebarMenuSub({ className, ...props }: React.ComponentProps<"u... function SidebarMenuSubItem (line 635) | function SidebarMenuSubItem({ function SidebarMenuSubButton (line 649) | function SidebarMenuSubButton({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ className, ...props }: React.ComponentProps<"div">) { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/slider.tsx function Slider (line 8) | function Slider({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/spinner.tsx function Spinner (line 4) | function Spinner({ className, ...props }: React.ComponentProps<"svg">) { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/switch.tsx function Switch (line 8) | function Switch({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/table.tsx function Table (line 7) | function Table({ className, ...props }: React.ComponentProps<"table">) { function TableHeader (line 22) | function TableHeader({ className, ...props }: React.ComponentProps<"thea... function TableBody (line 32) | function TableBody({ className, ...props }: React.ComponentProps<"tbody"... function TableFooter (line 42) | function TableFooter({ className, ...props }: React.ComponentProps<"tfoo... function TableRow (line 55) | function TableRow({ className, ...props }: React.ComponentProps<"tr">) { function TableHead (line 68) | function TableHead({ className, ...props }: React.ComponentProps<"th">) { function TableCell (line 81) | function TableCell({ className, ...props }: React.ComponentProps<"td">) { function TableCaption (line 94) | function TableCaption({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/tabs.tsx function Tabs (line 9) | function Tabs({ function TabsList (line 42) | function TabsList({ function TabsTrigger (line 58) | function TabsTrigger({ function TabsContent (line 77) | function TabsContent({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/textarea.tsx function Textarea (line 5) | function Textarea({ className, ...props }: React.ComponentProps<"textare... FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/toggle-group.tsx function ToggleGroup (line 22) | function ToggleGroup({ function ToggleGroupItem (line 58) | function ToggleGroupItem({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/toggle.tsx function Toggle (line 30) | function Toggle({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/components/ui/tooltip.tsx function TooltipProvider (line 8) | function TooltipProvider({ function Tooltip (line 21) | function Tooltip({ function TooltipTrigger (line 31) | function TooltipTrigger({ function TooltipContent (line 37) | function TooltipContent({ FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/hooks/use-mobile.ts constant MOBILE_BREAKPOINT (line 3) | const MOBILE_BREAKPOINT = 768; function useIsMobile (line 5) | function useIsMobile() { FILE: backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: backend/onyx/server/features/build/sandbox/kubernetes/internal/acp_exec_client.py class SSEKeepalive (line 69) | class SSEKeepalive: class ACPSession (line 96) | class ACPSession: class ACPClientState (line 104) | class ACPClientState: class ACPExecClient (line 114) | class ACPExecClient: method __init__ (line 121) | def __init__( method _get_k8s_client (line 153) | def _get_k8s_client(self) -> client.CoreV1Api: method start (line 163) | def start(self, cwd: str = "/workspace", timeout: float = 30.0) -> None: method _read_responses (line 229) | def _read_responses(self) -> None: method stop (line 278) | def stop(self) -> None: method _get_next_id (line 299) | def _get_next_id(self) -> int: method _send_request (line 305) | def _send_request(self, method: str, params: dict[str, Any] | None = N... method _send_notification (line 328) | def _send_notification( method _wait_for_response (line 349) | def _wait_for_response( method _initialize (line 379) | def _initialize(self, timeout: float = 30.0) -> dict[str, Any]: method _create_session (line 396) | def _create_session(self, cwd: str, timeout: float = 30.0) -> str: method _list_sessions (line 415) | def _list_sessions(self, cwd: str, timeout: float = 10.0) -> list[dict... method _resume_session (line 432) | def _resume_session(self, session_id: str, cwd: str, timeout: float = ... method _try_resume_existing_session (line 462) | def _try_resume_existing_session(self, cwd: str, timeout: float) -> st... method resume_or_create_session (line 501) | def resume_or_create_session(self, cwd: str, timeout: float = 30.0) ->... method send_message (line 525) | def send_message( method _process_session_update (line 673) | def _process_session_update( method _send_error_response (line 709) | def _send_error_response(self, request_id: int, code: int, message: st... method cancel (line 722) | def cancel(self, session_id: str | None = None) -> None: method health_check (line 741) | def health_check(self, timeout: float = 5.0) -> bool: # noqa: ARG002 method is_running (line 761) | def is_running(self) -> bool: method __enter__ (line 765) | def __enter__(self) -> "ACPExecClient": method __exit__ (line 769) | def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None: FILE: backend/onyx/server/features/build/sandbox/kubernetes/kubernetes_sandbox_manager.py function _build_nextjs_start_script (line 118) | def _build_nextjs_start_script( function _get_local_aws_credential_env_vars (line 156) | def _get_local_aws_credential_env_vars() -> list[client.V1EnvVar]: function _build_filtered_symlink_script (line 202) | def _build_filtered_symlink_script( class KubernetesSandboxManager (line 294) | class KubernetesSandboxManager(SandboxManager): method __new__ (line 311) | def __new__(cls) -> "KubernetesSandboxManager": method _initialize (line 319) | def _initialize(self) -> None: method _get_pod_name (line 365) | def _get_pod_name(self, sandbox_id: str) -> str: method _get_service_name (line 369) | def _get_service_name(self, sandbox_id: str) -> str: method _get_nextjs_url (line 373) | def _get_nextjs_url(self, sandbox_id: str, port: int) -> str: method _load_agent_instructions (line 386) | def _load_agent_instructions( method _create_sandbox_pod (line 434) | def _create_sandbox_pod( method _create_sandbox_service (line 626) | def _create_sandbox_service( method _ensure_service_exists (line 677) | def _ensure_service_exists( method _get_init_container_logs (line 731) | def _get_init_container_logs(self, pod_name: str, container_name: str)... method _check_init_container_status (line 752) | def _check_init_container_status(self, pod: client.V1Pod) -> str | None: method _wait_for_pod_ready (line 791) | def _wait_for_pod_ready( method _pod_exists_and_healthy (line 870) | def _pod_exists_and_healthy(self, pod_name: str) -> bool: method provision (line 903) | def provision( method _wait_for_resource_deletion (line 1039) | def _wait_for_resource_deletion( method _cleanup_kubernetes_resources (line 1094) | def _cleanup_kubernetes_resources( method terminate (line 1154) | def terminate(self, sandbox_id: UUID) -> None: method setup_session_workspace (line 1169) | def setup_session_workspace( method cleanup_session_workspace (line 1393) | def cleanup_session_workspace( method create_snapshot (line 1459) | def create_snapshot( method session_workspace_exists (line 1559) | def session_workspace_exists( method restore_snapshot (line 1610) | def restore_snapshot( method _regenerate_session_config (line 1709) | def _regenerate_session_config( method health_check (line 1799) | def health_check(self, sandbox_id: UUID, timeout: float = 60.0) -> bool: method _create_ephemeral_acp_client (line 1817) | def _create_ephemeral_acp_client( method send_message (line 1850) | def send_message( method list_directory (line 1964) | def list_directory( method _parse_ls_output (line 2025) | def _parse_ls_output(self, ls_output: str, base_path: str) -> list[Fil... method read_file (line 2098) | def read_file(self, sandbox_id: UUID, session_id: UUID, path: str) -> ... method get_webapp_url (line 2161) | def get_webapp_url(self, sandbox_id: UUID, port: int) -> str: method generate_pptx_preview (line 2175) | def generate_pptx_preview( method sync_files (line 2253) | def sync_files( method _ensure_agents_md_attachments_section (line 2359) | def _ensure_agents_md_attachments_section( method upload_file (line 2423) | def upload_file( method delete_file (line 2556) | def delete_file( method get_upload_stats (line 2629) | def get_upload_stats( FILE: backend/onyx/server/features/build/sandbox/local/agent_client.py class ACPSession (line 88) | class ACPSession: class ACPClientState (line 96) | class ACPClientState: function _find_opencode_binary (line 106) | def _find_opencode_binary() -> str | None: class ACPAgentClient (line 129) | class ACPAgentClient: method __init__ (line 151) | def __init__( method __enter__ (line 187) | def __enter__(self) -> "ACPAgentClient": method __exit__ (line 191) | def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None: method start (line 195) | def start( method stop (line 256) | def stop(self) -> None: method _get_next_id (line 271) | def _get_next_id(self) -> int: method _ensure_running (line 277) | def _ensure_running(self) -> subprocess.Popen[str]: method _send_request (line 293) | def _send_request( method _send_notification (line 336) | def _send_notification( method _read_message (line 372) | def _read_message( method _wait_for_response (line 427) | def _wait_for_response( method _initialize (line 474) | def _initialize(self, timeout: float = SESSION_CREATION_TIMEOUT) -> di... method _create_session (line 498) | def _create_session( method send_message (line 534) | def send_message( method _get_event_type_name (line 686) | def _get_event_type_name(self, event: ACPEvent) -> str: method _process_session_update (line 706) | def _process_session_update( method _send_error_response (line 792) | def _send_error_response( method cancel (line 818) | def cancel(self) -> None: method is_running (line 829) | def is_running(self) -> bool: method session_id (line 834) | def session_id(self) -> str | None: method agent_info (line 841) | def agent_info(self) -> dict[str, Any]: method agent_capabilities (line 846) | def agent_capabilities(self) -> dict[str, Any]: FILE: backend/onyx/server/features/build/sandbox/local/local_sandbox_manager.py class LocalSandboxManager (line 45) | class LocalSandboxManager(SandboxManager): method __new__ (line 65) | def __new__(cls) -> "LocalSandboxManager": method _initialize (line 73) | def _initialize(self) -> None: method _validate_templates (line 109) | def _validate_templates(self) -> None: method _get_sandbox_path (line 143) | def _get_sandbox_path(self, sandbox_id: str | UUID) -> Path: method _get_session_path (line 154) | def _get_session_path(self, sandbox_id: str | UUID, session_id: str | ... method _setup_filtered_files (line 166) | def _setup_filtered_files( method _setup_filtered_user_library (line 212) | def _setup_filtered_user_library( method provision (line 277) | def provision( method terminate (line 325) | def terminate(self, sandbox_id: UUID) -> None: method setup_session_workspace (line 382) | def setup_session_workspace( method cleanup_session_workspace (line 566) | def cleanup_session_workspace( method _stop_nextjs_process (line 612) | def _stop_nextjs_process( method _stop_nextjs_server_on_port (line 639) | def _stop_nextjs_server_on_port(self, port: int, session_id: UUID) -> ... method create_snapshot (line 739) | def create_snapshot( method session_workspace_exists (line 754) | def session_workspace_exists( method ensure_nextjs_running (line 772) | def ensure_nextjs_running( method restore_snapshot (line 848) | def restore_snapshot( method health_check (line 867) | def health_check( method send_message (line 887) | def send_message( method _sanitize_path (line 959) | def _sanitize_path(self, path: str) -> str: method _is_path_allowed (line 976) | def _is_path_allowed(self, session_path: Path, target_path: Path) -> b... method list_directory (line 1009) | def list_directory( method read_file (line 1054) | def read_file(self, sandbox_id: UUID, session_id: UUID, path: str) -> ... method upload_file (line 1082) | def upload_file( method _ensure_agents_md_attachments_section (line 1130) | def _ensure_agents_md_attachments_section(self, session_path: Path) ->... method delete_file (line 1162) | def delete_file( method get_upload_stats (line 1218) | def get_upload_stats( method get_webapp_url (line 1247) | def get_webapp_url(self, sandbox_id: UUID, port: int) -> str: # noqa:... method generate_pptx_preview (line 1261) | def generate_pptx_preview( method sync_files (line 1368) | def sync_files( FILE: backend/onyx/server/features/build/sandbox/local/process_manager.py class ProcessManager (line 17) | class ProcessManager: method start_nextjs_server (line 26) | def start_nextjs_server( method _wait_for_server (line 109) | def _wait_for_server( method is_process_running (line 172) | def is_process_running(self, pid: int) -> bool: method terminate_process (line 189) | def terminate_process(self, pid: int, timeout: float = 5.0) -> bool: method get_process_info (line 226) | def get_process_info(self, pid: int) -> dict[str, str | int | float] |... FILE: backend/onyx/server/features/build/sandbox/local/test_agent_client.py function test_with_opencode_acp (line 35) | def test_with_opencode_acp(message: str, working_dir: str | None = None)... function main (line 132) | def main() -> None: FILE: backend/onyx/server/features/build/sandbox/local/test_manager.py function db_session (line 47) | def db_session() -> Generator[Session, None, None]: function tenant_context (line 55) | def tenant_context() -> Generator[None, None, None]: function sandbox_manager (line 65) | def sandbox_manager() -> LocalSandboxManager: function temp_sandbox_dir (line 73) | def temp_sandbox_dir() -> Generator[Path, None, None]: function actual_sandbox_path (line 85) | def actual_sandbox_path(sandbox_record: Sandbox) -> Path: function test_user (line 91) | def test_user( function sandbox_record (line 127) | def sandbox_record( function build_session_record (line 168) | def build_session_record( function session_workspace (line 193) | def session_workspace( function file_store_initialized (line 238) | def file_store_initialized() -> Generator[None, None, None]: class TestTerminate (line 244) | class TestTerminate: method test_terminate_cleans_up_resources (line 247) | def test_terminate_cleans_up_resources( class TestCreateSnapshot (line 264) | class TestCreateSnapshot: method test_create_snapshot_archives_outputs (line 267) | def test_create_snapshot_archives_outputs( class TestHealthCheck (line 291) | class TestHealthCheck: method test_health_check_returns_false_when_no_processes (line 294) | def test_health_check_returns_false_when_no_processes( class TestListDirectory (line 310) | class TestListDirectory: method test_list_directory_returns_entries (line 313) | def test_list_directory_returns_entries( class TestReadFile (line 335) | class TestReadFile: method test_read_file_returns_contents (line 338) | def test_read_file_returns_contents( class TestSendMessage (line 356) | class TestSendMessage: method test_send_message_streams_events (line 359) | def test_send_message_streams_events( method test_send_message_write_file (line 386) | def test_send_message_write_file( method test_send_message_read_file (line 423) | def test_send_message_read_file( class TestUploadFile (line 460) | class TestUploadFile: method test_upload_file_creates_file (line 463) | def test_upload_file_creates_file( method test_upload_file_handles_collision (line 488) | def test_upload_file_handles_collision( class TestDeleteFile (line 509) | class TestDeleteFile: method test_delete_file_removes_file (line 512) | def test_delete_file_removes_file( method test_delete_file_returns_false_for_missing (line 539) | def test_delete_file_returns_false_for_missing( method test_delete_file_rejects_path_traversal (line 555) | def test_delete_file_rejects_path_traversal( class TestGetUploadStats (line 569) | class TestGetUploadStats: method test_get_upload_stats_empty (line 572) | def test_get_upload_stats_empty( method test_get_upload_stats_with_files (line 589) | def test_get_upload_stats_with_files( FILE: backend/onyx/server/features/build/sandbox/manager/directory_manager.py class DirectoryManager (line 31) | class DirectoryManager: method __init__ (line 58) | def __init__( method create_sandbox_directory (line 81) | def create_sandbox_directory(self, sandbox_id: str) -> Path: method create_session_directory (line 104) | def create_session_directory(self, sandbox_path: Path, session_id: str... method cleanup_session_directory (line 135) | def cleanup_session_directory(self, sandbox_path: Path, session_id: st... method get_session_path (line 147) | def get_session_path(self, sandbox_path: Path, session_id: str) -> Path: method setup_files_symlink (line 159) | def setup_files_symlink( method setup_org_info (line 174) | def setup_org_info( method setup_outputs_directory (line 227) | def setup_outputs_directory(self, sandbox_path: Path) -> None: method setup_venv (line 252) | def setup_venv(self, sandbox_path: Path) -> Path: method setup_agent_instructions (line 266) | def setup_agent_instructions( method setup_skills (line 321) | def setup_skills(self, sandbox_path: Path, overwrite: bool = True) -> ... method setup_opencode_config (line 367) | def setup_opencode_config( method cleanup_sandbox_directory (line 414) | def cleanup_sandbox_directory(self, sandbox_path: Path) -> None: method get_outputs_path (line 423) | def get_outputs_path( method get_web_path (line 439) | def get_web_path(self, sandbox_path: Path, session_id: str) -> Path: method get_venv_path (line 453) | def get_venv_path(self, sandbox_path: Path, session_id: str | None = N... method directory_exists (line 467) | def directory_exists(self, sandbox_path: Path) -> bool: method session_exists (line 478) | def session_exists(self, sandbox_path: Path, session_id: str) -> bool: method setup_attachments_directory (line 491) | def setup_attachments_directory( method get_attachments_path (line 513) | def get_attachments_path( FILE: backend/onyx/server/features/build/sandbox/manager/snapshot_manager.py class SnapshotManager (line 18) | class SnapshotManager: method __init__ (line 30) | def __init__(self, file_store: FileStore) -> None: method create_snapshot (line 38) | def create_snapshot( method restore_snapshot (line 123) | def restore_snapshot( method delete_snapshot (line 200) | def delete_snapshot(self, storage_path: str) -> None: method get_snapshot_size (line 217) | def get_snapshot_size(self, storage_path: str) -> int | None: FILE: backend/onyx/server/features/build/sandbox/manager/test_directory_manager.py function temp_base_path (line 22) | def temp_base_path() -> Generator[Path, None, None]: function temp_templates (line 30) | def temp_templates(temp_base_path: Path) -> dict[str, Path]: function directory_manager (line 56) | def directory_manager( class TestSetupOpencodeConfig (line 69) | class TestSetupOpencodeConfig: method test_openai_config_with_thinking (line 72) | def test_openai_config_with_thinking( method test_anthropic_config_with_thinking (line 106) | def test_anthropic_config_with_thinking( method test_google_config_with_thinking (line 144) | def test_google_config_with_thinking( method test_bedrock_config_with_thinking (line 181) | def test_bedrock_config_with_thinking( method test_azure_config_with_thinking (line 218) | def test_azure_config_with_thinking( method test_openai_config_with_api_base (line 252) | def test_openai_config_with_api_base( method test_anthropic_config_with_api_base (line 280) | def test_anthropic_config_with_api_base( method test_config_with_disabled_tools (line 313) | def test_config_with_disabled_tools( method test_config_without_api_key (line 351) | def test_config_without_api_key( method test_other_provider_no_thinking (line 381) | def test_other_provider_no_thinking( method test_config_overwritten_if_exists (line 409) | def test_config_overwritten_if_exists( method test_full_config_structure_openai (line 437) | def test_full_config_structure_openai( method test_full_config_structure_anthropic (line 468) | def test_full_config_structure_anthropic( method test_full_config_structure_google (line 504) | def test_full_config_structure_google( method test_full_config_structure_bedrock (line 541) | def test_full_config_structure_bedrock( method test_full_config_structure_azure (line 572) | def test_full_config_structure_azure( class TestSandboxDirectoryStructure (line 606) | class TestSandboxDirectoryStructure: method test_create_complete_sandbox (line 609) | def test_create_complete_sandbox( method test_setup_skills_copies_and_overwrites (line 646) | def test_setup_skills_copies_and_overwrites( FILE: backend/onyx/server/features/build/sandbox/models.py class LLMProviderConfig (line 11) | class LLMProviderConfig(BaseModel): class SandboxInfo (line 23) | class SandboxInfo(BaseModel): class SnapshotResult (line 35) | class SnapshotResult(BaseModel): class SnapshotInfo (line 46) | class SnapshotInfo(BaseModel): class FilesystemEntry (line 59) | class FilesystemEntry(BaseModel): FILE: backend/onyx/server/features/build/sandbox/tasks/tasks.py function cleanup_idle_sandboxes_task (line 50) | def cleanup_idle_sandboxes_task(self: Task, *, tenant_id: str) -> None: ... function _list_session_directories (line 197) | def _list_session_directories( function _acquire_sandbox_file_sync_lock (line 256) | def _acquire_sandbox_file_sync_lock(lock: RedisLock) -> Iterator[bool]: function _get_disabled_user_library_paths (line 268) | def _get_disabled_user_library_paths(db_session: "Session", user_id: str... function sync_sandbox_files (line 320) | def sync_sandbox_files( FILE: backend/onyx/server/features/build/sandbox/util/agent_instructions.py function get_provider_display_name (line 85) | def get_provider_display_name(provider: str | None) -> str | None: function build_user_context (line 100) | def build_user_context(user_name: str | None, user_role: str | None) -> ... function build_org_info_section (line 165) | def build_org_info_section(include_org_info: bool) -> str: function extract_skill_description (line 182) | def extract_skill_description(skill_md_path: Path) -> str: function _scan_skills_directory (line 238) | def _scan_skills_directory(skills_path: Path) -> str: function build_skills_section (line 267) | def build_skills_section(skills_path: Path) -> str: function _normalize_connector_name (line 299) | def _normalize_connector_name(name: str) -> str: function _scan_directory_to_depth (line 304) | def _scan_directory_to_depth( function build_knowledge_sources_section (line 345) | def build_knowledge_sources_section(files_path: Path) -> str: function generate_agent_instructions (line 431) | def generate_agent_instructions( FILE: backend/onyx/server/features/build/sandbox/util/build_venv_template.py function build_python_venv_template (line 24) | def build_python_venv_template(target_path: Path, requirements_path: Pat... function main (line 66) | def main() -> None: FILE: backend/onyx/server/features/build/sandbox/util/opencode_config.py function build_opencode_config (line 10) | def build_opencode_config( FILE: backend/onyx/server/features/build/sandbox/util/persona_mapping.py class PersonaInfo (line 13) | class PersonaInfo(TypedDict): function get_persona_info (line 158) | def get_persona_info(work_area: str | None, level: str | None) -> Person... function generate_user_identity_content (line 181) | def generate_user_identity_content(persona: PersonaInfo) -> str: FILE: backend/onyx/server/features/build/session/manager.py class UploadLimitExceededError (line 98) | class UploadLimitExceededError(ValueError): class BuildStreamingState (line 102) | class BuildStreamingState: method __init__ (line 122) | def __init__(self, turn_index: int) -> None: method add_message_chunk (line 140) | def add_message_chunk(self, text: str) -> None: method add_thought_chunk (line 145) | def add_thought_chunk(self, text: str) -> None: method finalize_message_chunks (line 150) | def finalize_message_chunks(self) -> dict[str, Any] | None: method finalize_thought_chunks (line 168) | def finalize_thought_chunks(self) -> dict[str, Any] | None: method should_finalize_chunks (line 186) | def should_finalize_chunks(self, new_packet_type: str) -> bool: method clear_last_chunk_type (line 211) | def clear_last_chunk_type(self) -> None: class RateLimitError (line 230) | class RateLimitError(Exception): method __init__ (line 233) | def __init__( class SessionManager (line 246) | class SessionManager: method __init__ (line 260) | def __init__(self, db_session: DBSession) -> None: method check_rate_limit (line 273) | def check_rate_limit(self, user: User) -> None: method _get_llm_config (line 306) | def _get_llm_config( method list_sessions (line 367) | def list_sessions( method create_session__no_commit (line 381) | def create_session__no_commit( method get_or_create_empty_session (line 599) | def get_or_create_empty_session( method delete_empty_session (line 688) | def delete_empty_session(self, user_id: UUID) -> bool: method get_session (line 731) | def get_session( method generate_session_name (line 754) | def generate_session_name( method update_session_name (line 775) | def update_session_name( method _generate_session_name (line 811) | def _generate_session_name(self, session_id: UUID) -> str: method generate_followup_suggestions (line 884) | def generate_followup_suggestions( method _parse_suggestions (line 933) | def _parse_suggestions(self, raw_output: str) -> list[dict[str, str]]: method delete_session (line 1004) | def delete_session( method list_messages (line 1071) | def list_messages( method send_message (line 1091) | def send_message( method _stream_cli_agent_response (line 1113) | def _stream_cli_agent_response( method _get_event_type (line 1526) | def _get_event_type(self, acp_event: Any) -> str: method list_artifacts (line 1550) | def list_artifacts( method download_artifact (line 1613) | def download_artifact( method export_docx (line 1666) | def export_docx( method get_pptx_preview (line 1709) | def get_pptx_preview( method get_webapp_info (line 1765) | def get_webapp_info( method _check_nextjs_ready (line 1823) | def _check_nextjs_ready(self, sandbox_id: UUID, port: int) -> bool: method download_webapp_zip (line 1844) | def download_webapp_zip( method download_directory (line 1931) | def download_directory( method list_directory (line 2023) | def list_directory( method get_upload_stats (line 2078) | def get_upload_stats( method upload_file (line 2113) | def upload_file( method delete_file (line 2173) | def delete_file( method terminate_user_sandbox (line 2222) | def terminate_user_sandbox(self, user_id: UUID) -> bool: FILE: backend/onyx/server/features/build/utils.py function validate_file_extension (line 121) | def validate_file_extension(filename: str) -> tuple[bool, str | None]: function validate_mime_type (line 144) | def validate_mime_type(content_type: str | None) -> bool: function validate_file_size (line 166) | def validate_file_size(size: int) -> bool: function sanitize_filename (line 184) | def sanitize_filename(filename: str) -> str: function validate_file (line 224) | def validate_file( function is_onyx_craft_enabled (line 279) | def is_onyx_craft_enabled(user: User) -> bool: function ensure_build_mode_intro_notification (line 310) | def ensure_build_mode_intro_notification(user: User, db_session: Session... FILE: backend/onyx/server/features/default_assistant/api.py function get_default_assistant_configuration (line 24) | def get_default_assistant_configuration( function update_default_assistant (line 48) | def update_default_assistant( FILE: backend/onyx/server/features/default_assistant/models.py class DefaultAssistantConfiguration (line 7) | class DefaultAssistantConfiguration(BaseModel): class DefaultAssistantUpdateRequest (line 22) | class DefaultAssistantUpdateRequest(BaseModel): FILE: backend/onyx/server/features/document_set/api.py function create_document_set (line 35) | def create_document_set( function patch_document_set (line 70) | def patch_document_set( function delete_document_set (line 111) | def delete_document_set( function list_document_sets_for_user (line 161) | def list_document_sets_for_user( function document_set_public (line 175) | def document_set_public( FILE: backend/onyx/server/features/document_set/models.py class FederatedConnectorConfig (line 16) | class FederatedConnectorConfig(BaseModel): class FederatedConnectorDescriptor (line 23) | class FederatedConnectorDescriptor(BaseModel): method from_federated_connector_mapping (line 32) | def from_federated_connector_mapping( class DocumentSetCreationRequest (line 52) | class DocumentSetCreationRequest(BaseModel): class DocumentSetUpdateRequest (line 64) | class DocumentSetUpdateRequest(BaseModel): class CheckDocSetPublicRequest (line 76) | class CheckDocSetPublicRequest(BaseModel): class CheckDocSetPublicResponse (line 84) | class CheckDocSetPublicResponse(BaseModel): class DocumentSet (line 88) | class DocumentSet(BaseModel): method from_model (line 104) | def from_model(cls, document_set_model: DocumentSetDBModel) -> "Docume... class DocumentSetSummary (line 137) | class DocumentSetSummary(BaseModel): method from_model (line 153) | def from_model(cls, document_set: DocumentSetDBModel) -> "DocumentSetS... FILE: backend/onyx/server/features/hierarchy/api.py function _require_opensearch (line 41) | def _require_opensearch(db_session: Session) -> None: function _get_user_access_info (line 54) | def _get_user_access_info(user: User, db_session: Session) -> tuple[str,... function list_accessible_hierarchy_nodes (line 59) | def list_accessible_hierarchy_nodes( function list_accessible_hierarchy_node_documents (line 86) | def list_accessible_hierarchy_node_documents( FILE: backend/onyx/server/features/hierarchy/models.py class DocumentSortField (line 10) | class DocumentSortField(str, Enum): class DocumentSortDirection (line 15) | class DocumentSortDirection(str, Enum): class FolderPosition (line 20) | class FolderPosition(str, Enum): class HierarchyNodesRequest (line 25) | class HierarchyNodesRequest(BaseModel): class HierarchyNodeSummary (line 29) | class HierarchyNodeSummary(BaseModel): class HierarchyNodesResponse (line 36) | class HierarchyNodesResponse(BaseModel): class DocumentPageCursor (line 40) | class DocumentPageCursor(BaseModel): method from_document (line 50) | def from_document( class HierarchyNodeDocumentsRequest (line 68) | class HierarchyNodeDocumentsRequest(BaseModel): class DocumentSummary (line 76) | class DocumentSummary(BaseModel): class HierarchyNodeDocumentsResponse (line 85) | class HierarchyNodeDocumentsResponse(BaseModel): FILE: backend/onyx/server/features/input_prompt/api.py function list_input_prompts (line 30) | def list_input_prompts( function get_input_prompt (line 44) | def get_input_prompt( function create_input_prompt (line 59) | def create_input_prompt( function patch_input_prompt (line 82) | def patch_input_prompt( function delete_input_prompt (line 106) | def delete_input_prompt( function delete_public_input_prompt (line 124) | def delete_public_input_prompt( function hide_input_prompt_for_user (line 139) | def hide_input_prompt_for_user( FILE: backend/onyx/server/features/input_prompt/models.py class CreateInputPromptRequest (line 11) | class CreateInputPromptRequest(BaseModel): class UpdateInputPromptRequest (line 17) | class UpdateInputPromptRequest(BaseModel): class InputPromptResponse (line 23) | class InputPromptResponse(BaseModel): class InputPromptSnapshot (line 30) | class InputPromptSnapshot(BaseModel): method from_model (line 39) | def from_model(cls, input_prompt: InputPrompt) -> "InputPromptSnapshot": FILE: backend/onyx/server/features/mcp/api.py function _truncate_description (line 89) | def _truncate_description(description: str | None, max_length: int = 500... function key_auth_url (line 107) | def key_auth_url(user_id: str) -> str: function key_state (line 111) | def key_state(user_id: str) -> str: function key_code (line 115) | def key_code(user_id: str, state: str) -> str: function key_tokens (line 119) | def key_tokens(user_id: str) -> str: function key_client_info (line 123) | def key_client_info(user_id: str) -> str: class OnyxTokenStorage (line 130) | class OnyxTokenStorage(TokenStorage): method __init__ (line 135) | def __init__(self, connection_config_id: int, alt_config_id: int | Non... method _ensure_connection_config (line 139) | def _ensure_connection_config(self, db_session: Session) -> MCPConnect... method get_tokens (line 145) | async def get_tokens(self) -> OAuthToken | None: method set_tokens (line 154) | async def set_tokens(self, tokens: OAuthToken) -> None: method get_client_info (line 171) | async def get_client_info(self) -> OAuthClientInformationFull | None: method set_client_info (line 194) | async def set_client_info(self, info: OAuthClientInformationFull) -> N... function make_oauth_provider (line 204) | def make_oauth_provider( function _build_headers_from_template (line 287) | def _build_headers_from_template( function test_mcp_server_credentials (line 307) | def test_mcp_server_credentials( function b64url (line 332) | def b64url(b: bytes) -> str: function make_pkce_pair (line 336) | def make_pkce_pair() -> tuple[str, str]: class MCPOauthState (line 342) | class MCPOauthState(BaseModel): function connect_admin_oauth (line 350) | async def connect_admin_oauth( function connect_user_oauth (line 360) | async def connect_user_oauth( function _connect_oauth (line 368) | async def _connect_oauth( function process_oauth_callback (line 572) | async def process_oauth_callback( function save_user_credentials (line 655) | def save_user_credentials( class MCPToolDescription (line 792) | class MCPToolDescription(BaseModel): class ServerToolsResponse (line 799) | class ServerToolsResponse(BaseModel): function _ensure_mcp_server_owner_or_admin (line 806) | def _ensure_mcp_server_owner_or_admin(server: DbMCPServer, user: User) -... function _db_mcp_server_to_api_mcp_server (line 821) | def _db_mcp_server_to_api_mcp_server( function get_mcp_servers_for_assistant (line 983) | def get_mcp_servers_for_assistant( function get_mcp_servers_for_user (line 1012) | def get_mcp_servers_for_user( function _get_connection_config (line 1030) | def _get_connection_config( function admin_list_mcp_tools_by_id (line 1068) | def admin_list_mcp_tools_by_id( class ToolSnapshotSource (line 1076) | class ToolSnapshotSource(str, Enum): function get_mcp_server_tools_snapshots (line 1082) | def get_mcp_server_tools_snapshots( function user_list_mcp_tools_by_id (line 1140) | def user_list_mcp_tools_by_id( function _upsert_db_tools (line 1148) | def _upsert_db_tools( function _list_mcp_tools_by_id (line 1197) | def _list_mcp_tools_by_id( function _upsert_mcp_server (line 1324) | def _upsert_mcp_server( function _sync_tools_for_server (line 1542) | def _sync_tools_for_server( function get_mcp_server_detail (line 1570) | def get_mcp_server_detail( function get_all_mcp_tools (line 1598) | def get_all_mcp_tools( function update_mcp_server_status (line 1616) | def update_mcp_server_status( function get_mcp_servers_for_admin (line 1644) | def get_mcp_servers_for_admin( function get_mcp_server_db_tools (line 1669) | def get_mcp_server_db_tools( function upsert_mcp_server (line 1714) | def upsert_mcp_server( function update_mcp_server_with_tools (line 1776) | def update_mcp_server_with_tools( function create_mcp_server_simple (line 1828) | def create_mcp_server_simple( function update_mcp_server_simple (line 1867) | def update_mcp_server_simple( function delete_mcp_server_admin (line 1899) | def delete_mcp_server_admin( FILE: backend/onyx/server/features/mcp/models.py class MCPOAuthKeys (line 21) | class MCPOAuthKeys(str, Enum): class MCPConnectionData (line 29) | class MCPConnectionData(TypedDict): class MCPAuthTemplate (line 48) | class MCPAuthTemplate(BaseModel): class MCPToolCreateRequest (line 65) | class MCPToolCreateRequest(BaseModel): method validate_auth_configuration (line 93) | def validate_auth_configuration(self) -> "MCPToolCreateRequest": class MCPToolUpdateRequest (line 136) | class MCPToolUpdateRequest(BaseModel): class MCPServerSimpleCreateRequest (line 147) | class MCPServerSimpleCreateRequest(BaseModel): class MCPServerSimpleUpdateRequest (line 155) | class MCPServerSimpleUpdateRequest(BaseModel): class MCPToolResponse (line 163) | class MCPToolResponse(BaseModel): class MCPOAuthConnectRequest (line 179) | class MCPOAuthConnectRequest(BaseModel): class MCPOAuthConnectResponse (line 191) | class MCPOAuthConnectResponse(BaseModel): class MCPUserOAuthConnectRequest (line 197) | class MCPUserOAuthConnectRequest(BaseModel): method validate_return_path (line 209) | def validate_return_path(self) -> "MCPUserOAuthConnectRequest": class MCPUserOAuthConnectResponse (line 215) | class MCPUserOAuthConnectResponse(BaseModel): class MCPOAuthCallbackRequest (line 220) | class MCPOAuthCallbackRequest(BaseModel): class MCPOAuthCallbackResponse (line 229) | class MCPOAuthCallbackResponse(BaseModel): class MCPDynamicClientRegistrationRequest (line 237) | class MCPDynamicClientRegistrationRequest(BaseModel): class MCPDynamicClientRegistrationResponse (line 247) | class MCPDynamicClientRegistrationResponse(BaseModel): class MCPApiKeyRequest (line 262) | class MCPApiKeyRequest(BaseModel): class MCPUserCredentialsRequest (line 268) | class MCPUserCredentialsRequest(BaseModel): class MCPApiKeyResponse (line 278) | class MCPApiKeyResponse(BaseModel): class MCPServer (line 289) | class MCPServer(BaseModel): class MCPServersResponse (line 317) | class MCPServersResponse(BaseModel): class MCPServerCreateResponse (line 322) | class MCPServerCreateResponse(BaseModel): class MCPServerUpdateResponse (line 333) | class MCPServerUpdateResponse(BaseModel): class MCPToolListResponse (line 341) | class MCPToolListResponse(BaseModel): FILE: backend/onyx/server/features/notifications/api.py function get_notifications_api (line 24) | def get_notifications_api( function dismiss_notification_endpoint (line 59) | def dismiss_notification_endpoint( FILE: backend/onyx/server/features/oauth_config/api.py function _oauth_config_to_snapshot (line 39) | def _oauth_config_to_snapshot( function create_oauth_config_endpoint (line 63) | def create_oauth_config_endpoint( function list_oauth_configs (line 86) | def list_oauth_configs( function get_oauth_config_endpoint (line 96) | def get_oauth_config_endpoint( function update_oauth_config_endpoint (line 111) | def update_oauth_config_endpoint( function delete_oauth_config_endpoint (line 138) | def delete_oauth_config_endpoint( function initiate_oauth_flow (line 155) | def initiate_oauth_flow( function handle_oauth_callback (line 191) | def handle_oauth_callback( function revoke_oauth_token (line 253) | def revoke_oauth_token( FILE: backend/onyx/server/features/oauth_config/models.py class OAuthConfigCreate (line 7) | class OAuthConfigCreate(BaseModel): class OAuthConfigUpdate (line 17) | class OAuthConfigUpdate(BaseModel): class OAuthConfigSnapshot (line 29) | class OAuthConfigSnapshot(BaseModel): class OAuthInitiateRequest (line 41) | class OAuthInitiateRequest(BaseModel): class OAuthInitiateResponse (line 46) | class OAuthInitiateResponse(BaseModel): class OAuthCallbackResponse (line 51) | class OAuthCallbackResponse(BaseModel): class OAuthTokenStatus (line 56) | class OAuthTokenStatus(BaseModel): FILE: backend/onyx/server/features/password/api.py function change_my_password (line 22) | async def change_my_password( function admin_reset_user_password (line 45) | async def admin_reset_user_password( FILE: backend/onyx/server/features/password/models.py class UserResetRequest (line 4) | class UserResetRequest(BaseModel): class UserResetResponse (line 8) | class UserResetResponse(BaseModel): class ChangePasswordRequest (line 13) | class ChangePasswordRequest(BaseModel): FILE: backend/onyx/server/features/persona/api.py function _validate_user_knowledge_enabled (line 62) | def _validate_user_knowledge_enabled( function _validate_vector_db_knowledge (line 78) | def _validate_vector_db_knowledge( class IsListedRequest (line 122) | class IsListedRequest(BaseModel): class IsPublicRequest (line 126) | class IsPublicRequest(BaseModel): class IsFeaturedRequest (line 130) | class IsFeaturedRequest(BaseModel): function patch_persona_visibility (line 135) | def patch_persona_visibility( function patch_user_persona_public_status (line 150) | def patch_user_persona_public_status( function patch_persona_featured_status (line 169) | def patch_persona_featured_status( function patch_agents_display_priorities (line 188) | def patch_agents_display_priorities( function list_personas_admin (line 206) | def list_personas_admin( function get_agents_admin_paginated (line 221) | def get_agents_admin_paginated( function undelete_persona (line 266) | def undelete_persona( function upload_file (line 280) | def upload_file( function create_persona (line 299) | def create_persona( function update_persona (line 328) | def update_persona( class PersonaLabelPatchRequest (line 346) | class PersonaLabelPatchRequest(BaseModel): function get_labels (line 351) | def get_labels( function create_label (line 362) | def create_label( function patch_persona_label (line 379) | def patch_persona_label( function delete_label (line 393) | def delete_label( class PersonaShareRequest (line 401) | class PersonaShareRequest(BaseModel): function share_persona (line 410) | def share_persona( function delete_persona (line 435) | def delete_persona( function list_personas (line 448) | def list_personas( function get_agents_paginated (line 468) | def get_agents_paginated( function get_persona (line 516) | def get_persona( FILE: backend/onyx/server/features/persona/models.py class HierarchyNodeSnapshot (line 24) | class HierarchyNodeSnapshot(BaseModel): method from_model (line 35) | def from_model(cls, node: HierarchyNode) -> "HierarchyNodeSnapshot": class AttachedDocumentSnapshot (line 46) | class AttachedDocumentSnapshot(BaseModel): method from_model (line 58) | def from_model(cls, doc: Document) -> "AttachedDocumentSnapshot": class PromptSnapshot (line 72) | class PromptSnapshot(BaseModel): method from_model (line 82) | def from_model(cls, persona: Persona) -> "PromptSnapshot": class GenerateStarterMessageRequest (line 98) | class GenerateStarterMessageRequest(BaseModel): class PersonaUpsertRequest (line 106) | class PersonaUpsertRequest(BaseModel): class MinimalPersonaSnapshot (line 142) | class MinimalPersonaSnapshot(BaseModel): method from_model (line 180) | def from_model(cls, persona: Persona) -> "MinimalPersonaSnapshot": class PersonaSnapshot (line 234) | class PersonaSnapshot(BaseModel): method from_model (line 268) | def from_model(cls, persona: Persona) -> "PersonaSnapshot": class FullPersonaSnapshot (line 321) | class FullPersonaSnapshot(PersonaSnapshot): method from_model (line 325) | def from_model( class PromptTemplateResponse (line 386) | class PromptTemplateResponse(BaseModel): class PersonaSharedNotificationData (line 390) | class PersonaSharedNotificationData(BaseModel): class ImageGenerationToolStatus (line 394) | class ImageGenerationToolStatus(BaseModel): class PersonaLabelCreate (line 398) | class PersonaLabelCreate(BaseModel): class PersonaLabelResponse (line 402) | class PersonaLabelResponse(BaseModel): method from_model (line 407) | def from_model(cls, category: PersonaLabel) -> "PersonaLabelResponse": class PersonaLabelSnapshot (line 414) | class PersonaLabelSnapshot(BaseModel): method from_model (line 419) | def from_model(cls, label: PersonaLabel) -> "PersonaLabelSnapshot": FILE: backend/onyx/server/features/projects/api.py class UserFileDeleteResult (line 46) | class UserFileDeleteResult(BaseModel): function _trigger_user_file_project_sync (line 52) | def _trigger_user_file_project_sync( function get_projects (line 100) | def get_projects( function create_project (line 112) | def create_project( function upload_user_files (line 127) | def upload_user_files( function get_project (line 169) | def get_project( function get_files_in_project (line 186) | def get_files_in_project( function unlink_user_file_from_project (line 207) | def unlink_user_file_from_project( function link_user_file_to_project (line 252) | def link_user_file_to_project( class ProjectInstructionsResponse (line 292) | class ProjectInstructionsResponse(BaseModel): function get_project_instructions (line 301) | def get_project_instructions( class UpsertProjectInstructionsRequest (line 319) | class UpsertProjectInstructionsRequest(BaseModel): function upsert_project_instructions (line 328) | def upsert_project_instructions( class ProjectPayload (line 351) | class ProjectPayload(BaseModel): function get_project_details (line 360) | def get_project_details( class UpdateProjectRequest (line 383) | class UpdateProjectRequest(BaseModel): function update_project (line 389) | def update_project( function delete_project (line 415) | def delete_project( function delete_user_file (line 443) | def delete_user_file( function get_user_file (line 502) | def get_user_file( class UserFileIdsRequest (line 523) | class UserFileIdsRequest(BaseModel): function get_user_file_statuses (line 530) | def get_user_file_statuses( function move_chat_session (line 555) | def move_chat_session( function remove_chat_session (line 575) | def remove_chat_session( function get_chat_session_project_token_count (line 594) | def get_chat_session_project_token_count( function get_chat_session_project_files (line 622) | def get_chat_session_project_files( function get_project_total_token_count (line 660) | def get_project_total_token_count( FILE: backend/onyx/server/features/projects/models.py class UserFileSnapshot (line 15) | class UserFileSnapshot(BaseModel): method from_model (line 31) | def from_model( class TokenCountResponse (line 51) | class TokenCountResponse(BaseModel): class RejectedFile (line 55) | class RejectedFile(BaseModel): class CategorizedFilesSnapshot (line 60) | class CategorizedFilesSnapshot(BaseModel): method from_result (line 65) | def from_result(cls, result: CategorizedFilesResult) -> "CategorizedFi... class UserProjectSnapshot (line 81) | class UserProjectSnapshot(BaseModel): method from_model (line 91) | def from_model(cls, model: UserProject) -> "UserProjectSnapshot": class ChatSessionRequest (line 107) | class ChatSessionRequest(BaseModel): FILE: backend/onyx/server/features/projects/projects_file_utils.py function get_safe_filename (line 27) | def get_safe_filename(upload: UploadFile) -> str: function get_upload_size_bytes (line 35) | def get_upload_size_bytes(upload: UploadFile) -> int | None: function is_upload_too_large (line 55) | def is_upload_too_large(upload: UploadFile, max_bytes: int) -> bool: class RejectedFile (line 70) | class RejectedFile(BaseModel): class CategorizedFiles (line 75) | class CategorizedFiles(BaseModel): function _skip_token_threshold (line 86) | def _skip_token_threshold(extension: str) -> bool: function _apply_long_side_cap (line 91) | def _apply_long_side_cap(width: int, height: int, cap: int) -> tuple[int... function _estimate_image_tokens (line 100) | def _estimate_image_tokens( function estimate_image_tokens_for_upload (line 109) | def estimate_image_tokens_for_upload( function categorize_uploaded_files (line 155) | def categorize_uploaded_files( FILE: backend/onyx/server/features/release_notes/models.py class ReleaseNoteEntry (line 6) | class ReleaseNoteEntry(BaseModel): FILE: backend/onyx/server/features/release_notes/utils.py function is_valid_version (line 32) | def is_valid_version(version: str) -> bool: function parse_version_tuple (line 37) | def parse_version_tuple(version: str) -> tuple[int, int, int]: function is_version_gte (line 49) | def is_version_gte(v1: str, v2: str) -> bool: function parse_mdx_to_release_note_entries (line 59) | def parse_mdx_to_release_note_entries(mdx_content: str) -> list[ReleaseN... function get_cached_etag (line 115) | def get_cached_etag() -> str | None: function get_last_fetch_time (line 127) | def get_last_fetch_time() -> datetime | None: function save_fetch_metadata (line 146) | def save_fetch_metadata(etag: str | None) -> None: function is_cache_stale (line 158) | def is_cache_stale() -> bool: function ensure_release_notes_fresh_and_notify (line 172) | def ensure_release_notes_fresh_and_notify(db_session: Session) -> None: FILE: backend/onyx/server/features/tool/api.py function _validate_tool_definition (line 39) | def _validate_tool_definition(definition: dict[str, Any]) -> None: function _validate_auth_settings (line 46) | def _validate_auth_settings(tool_data: CustomToolCreate | CustomToolUpda... function _get_editable_custom_tool (line 56) | def _get_editable_custom_tool(tool_id: int, db_session: Session, user: U... function create_custom_tool (line 83) | def create_custom_tool( function update_custom_tool (line 106) | def update_custom_tool( function delete_custom_tool (line 131) | def delete_custom_tool( class ToolStatusUpdateRequest (line 147) | class ToolStatusUpdateRequest(BaseModel): class ToolStatusUpdateResponse (line 152) | class ToolStatusUpdateResponse(BaseModel): function update_tools_status (line 158) | def update_tools_status( class ValidateToolRequest (line 198) | class ValidateToolRequest(BaseModel): class ValidateToolResponse (line 202) | class ValidateToolResponse(BaseModel): function validate_tool (line 207) | def validate_tool( function list_openapi_tools (line 220) | def list_openapi_tools( function get_custom_tool (line 237) | def get_custom_tool( function list_tools (line 250) | def list_tools( FILE: backend/onyx/server/features/tool/models.py class ToolSnapshot (line 9) | class ToolSnapshot(BaseModel): method from_model (line 30) | def from_model(cls, tool: Tool) -> "ToolSnapshot": class Header (line 57) | class Header(BaseModel): class CustomToolCreate (line 62) | class CustomToolCreate(BaseModel): class CustomToolUpdate (line 71) | class CustomToolUpdate(BaseModel): FILE: backend/onyx/server/features/tool/tool_visibility.py class ToolVisibilitySettings (line 13) | class ToolVisibilitySettings(BaseModel): function should_expose_tool_to_fe (line 49) | def should_expose_tool_to_fe(tool: Tool) -> bool: function is_chat_selectable (line 59) | def is_chat_selectable(tool: Tool) -> bool: function is_agent_creation_selectable (line 74) | def is_agent_creation_selectable(tool: Tool) -> bool: function get_tool_visibility_config (line 87) | def get_tool_visibility_config(tool: Tool) -> ToolVisibilitySettings | N... FILE: backend/onyx/server/features/user_oauth_token/api.py class OAuthTokenStatus (line 17) | class OAuthTokenStatus(BaseModel): function get_user_oauth_token_status (line 24) | def get_user_oauth_token_status( FILE: backend/onyx/server/features/web_search/api.py function _get_active_search_provider (line 59) | def _get_active_search_provider( function _get_active_content_provider (line 96) | def _get_active_content_provider( function _run_web_search (line 148) | def _run_web_search( function _open_urls (line 182) | def _open_urls( function execute_web_search (line 221) | def execute_web_search( function execute_web_search_lite (line 264) | def execute_web_search_lite( function execute_open_urls (line 280) | def execute_open_urls( FILE: backend/onyx/server/features/web_search/models.py class WebSearchToolRequest (line 11) | class WebSearchToolRequest(BaseModel): method _strip_and_validate_queries (line 26) | def _strip_and_validate_queries(cls, queries: list[str]) -> list[str]: method _default_and_validate_max_results (line 34) | def _default_and_validate_max_results(cls, max_results: int | None) ->... class WebSearchToolResponse (line 42) | class WebSearchToolResponse(BaseModel): class WebSearchWithContentResponse (line 47) | class WebSearchWithContentResponse(BaseModel): class OpenUrlsToolRequest (line 54) | class OpenUrlsToolRequest(BaseModel): method _strip_and_validate_urls (line 63) | def _strip_and_validate_urls(cls, urls: list[str]) -> list[str]: class OpenUrlsToolResponse (line 70) | class OpenUrlsToolResponse(BaseModel): FILE: backend/onyx/server/federated/api.py function _get_federated_connector_instance (line 53) | def _get_federated_connector_instance( function create_federated_connector (line 65) | def create_federated_connector( function get_entities (line 106) | def get_entities( function get_credentials_schema (line 148) | def get_credentials_schema( function get_configuration_schema_by_source (line 193) | def get_configuration_schema_by_source( function get_credentials_schema_by_source (line 221) | def get_credentials_schema_by_source( function validate_credentials (line 252) | def validate_credentials( function validate_entities (line 276) | def validate_entities( function get_authorize_url (line 320) | def get_authorize_url( function handle_oauth_callback_generic (line 369) | def handle_oauth_callback_generic( function get_federated_connectors (line 447) | def get_federated_connectors( function get_user_oauth_status (line 467) | def get_user_oauth_status( function get_federated_connector_detail (line 512) | def get_federated_connector_detail( function update_federated_connector_endpoint (line 561) | def update_federated_connector_endpoint( function delete_federated_connector_endpoint (line 593) | def delete_federated_connector_endpoint( function disconnect_oauth_token (line 611) | def disconnect_oauth_token( FILE: backend/onyx/server/federated/models.py class FederatedConnectorCredentials (line 10) | class FederatedConnectorCredentials(BaseModel): class FederatedConnectorRequest (line 18) | class FederatedConnectorRequest(BaseModel): class FederatedConnectorResponse (line 24) | class FederatedConnectorResponse(BaseModel): class AuthorizeUrlResponse (line 29) | class AuthorizeUrlResponse(BaseModel): class OAuthCallbackResult (line 33) | class OAuthCallbackResult(BaseModel): class FederatedConnectorStatus (line 42) | class FederatedConnectorStatus(BaseModel): class UserOAuthStatus (line 48) | class UserOAuthStatus(BaseModel): class FederatedConnectorDetail (line 59) | class FederatedConnectorDetail(BaseModel): class FederatedConnectorSummary (line 70) | class FederatedConnectorSummary(BaseModel): method from_federated_connector_detail (line 79) | def from_federated_connector_detail( class FederatedConnectorUpdateRequest (line 90) | class FederatedConnectorUpdateRequest(BaseModel): class EntitySpecResponse (line 95) | class EntitySpecResponse(BaseModel): class ConfigurationSchemaResponse (line 101) | class ConfigurationSchemaResponse(BaseModel): class CredentialSchemaResponse (line 107) | class CredentialSchemaResponse(BaseModel): FILE: backend/onyx/server/kg/api.py function get_kg_exposed (line 50) | def get_kg_exposed(_: User = Depends(current_admin_user)) -> bool: function reset_kg (line 59) | def reset_kg( function get_kg_config (line 72) | def get_kg_config(_: User = Depends(current_admin_user)) -> KGConfig: function enable_or_disable_kg (line 78) | def enable_or_disable_kg( function get_kg_entity_types (line 165) | def get_kg_entity_types( function update_kg_entity_types (line 195) | def update_kg_entity_types( FILE: backend/onyx/server/kg/models.py class KGConfig (line 10) | class KGConfig(BaseModel): method from_kg_config_settings (line 18) | def from_kg_config_settings( class EnableKGConfigRequest (line 31) | class EnableKGConfigRequest(BaseModel): class DisableKGConfigRequest (line 42) | class DisableKGConfigRequest(BaseModel): class EntityType (line 48) | class EntityType(BaseModel): method from_model (line 55) | def from_model( class SourceStatistics (line 67) | class SourceStatistics(BaseModel): class SourceAndEntityTypeView (line 73) | class SourceAndEntityTypeView(BaseModel): FILE: backend/onyx/server/manage/administrative.py function get_most_boosted_docs (line 51) | def get_most_boosted_docs( function document_boost_update (line 77) | def document_boost_update( function document_hidden_update (line 92) | def document_hidden_update( function validate_existing_genai_api_key (line 107) | def validate_existing_genai_api_key( function create_deletion_attempt_for_connector_id (line 139) | def create_deletion_attempt_for_connector_id( FILE: backend/onyx/server/manage/code_interpreter/api.py function get_code_interpreter_health (line 20) | def get_code_interpreter_health( function get_code_interpreter (line 31) | def get_code_interpreter( function update_code_interpreter (line 39) | def update_code_interpreter( FILE: backend/onyx/server/manage/code_interpreter/models.py class CodeInterpreterServer (line 4) | class CodeInterpreterServer(BaseModel): class CodeInterpreterServerHealth (line 8) | class CodeInterpreterServerHealth(BaseModel): FILE: backend/onyx/server/manage/discord_bot/api.py function _check_bot_config_api_access (line 42) | def _check_bot_config_api_access() -> None: function get_bot_config (line 65) | def get_bot_config( function create_bot_request (line 82) | def create_bot_request( function delete_bot_config_endpoint (line 109) | def delete_bot_config_endpoint( function delete_service_api_key_endpoint (line 133) | def delete_service_api_key_endpoint( function list_guild_configs (line 156) | def list_guild_configs( function create_guild_request (line 166) | def create_guild_request( function get_guild_config (line 184) | def get_guild_config( function update_guild_request (line 197) | def update_guild_request( function delete_guild_request (line 220) | def delete_guild_request( function list_channel_configs (line 249) | def list_channel_configs( function update_channel_request (line 269) | def update_channel_request( FILE: backend/onyx/server/manage/discord_bot/models.py class DiscordBotConfigResponse (line 11) | class DiscordBotConfigResponse(BaseModel): class Config (line 15) | class Config: class DiscordBotConfigCreateRequest (line 19) | class DiscordBotConfigCreateRequest(BaseModel): class DiscordGuildConfigResponse (line 26) | class DiscordGuildConfigResponse(BaseModel): class Config (line 34) | class Config: class DiscordGuildConfigCreateResponse (line 38) | class DiscordGuildConfigCreateResponse(BaseModel): class DiscordGuildConfigUpdateRequest (line 43) | class DiscordGuildConfigUpdateRequest(BaseModel): class DiscordChannelConfigResponse (line 51) | class DiscordChannelConfigResponse(BaseModel): class Config (line 63) | class Config: class DiscordChannelConfigUpdateRequest (line 67) | class DiscordChannelConfigUpdateRequest(BaseModel): FILE: backend/onyx/server/manage/discord_bot/utils.py function generate_discord_registration_key (line 14) | def generate_discord_registration_key(tenant_id: str) -> str: function parse_discord_registration_key (line 28) | def parse_discord_registration_key(key: str) -> str | None: FILE: backend/onyx/server/manage/embedding/api.py function test_embedding_configuration (line 35) | def test_embedding_configuration( function list_embedding_models (line 67) | def list_embedding_models( function list_embedding_providers (line 76) | def list_embedding_providers( function delete_embedding_provider (line 87) | def delete_embedding_provider( function put_cloud_embedding_provider (line 106) | def put_cloud_embedding_provider( FILE: backend/onyx/server/manage/embedding/models.py class SearchSettingsDeleteRequest (line 11) | class SearchSettingsDeleteRequest(BaseModel): class TestEmbeddingRequest (line 15) | class TestEmbeddingRequest(BaseModel): class CloudEmbeddingProvider (line 27) | class CloudEmbeddingProvider(BaseModel): method from_request (line 35) | def from_request( class CloudEmbeddingProviderCreationRequest (line 51) | class CloudEmbeddingProviderCreationRequest(BaseModel): FILE: backend/onyx/server/manage/get_state.py function healthcheck (line 29) | async def healthcheck() -> StatusResponse: function get_auth_type (line 34) | async def get_auth_type() -> AuthTypeResponse: function get_version (line 54) | def get_version() -> VersionResponse: function get_versions (line 59) | def get_versions() -> AllVersions: FILE: backend/onyx/server/manage/image_generation/api.py function _get_test_quality_for_model (line 38) | def _get_test_quality_for_model(model_name: str) -> str | None: function _build_llm_provider_request (line 54) | def _build_llm_provider_request( function _create_image_gen_llm_provider__no_commit (line 151) | def _create_image_gen_llm_provider__no_commit( function test_image_generation (line 195) | def test_image_generation( function create_config (line 292) | def create_config( function get_all_configs (line 355) | def get_all_configs( function get_config_credentials (line 365) | def get_config_credentials( function update_config (line 385) | def update_config( function delete_config (line 482) | def delete_config( function set_config_as_default (line 513) | def set_config_as_default( function unset_config_as_default (line 526) | def unset_config_as_default( FILE: backend/onyx/server/manage/image_generation/models.py function _mask_api_key (line 9) | def _mask_api_key(api_key: str | None) -> str | None: class TestImageGenerationRequest (line 18) | class TestImageGenerationRequest(BaseModel): class ImageGenerationConfigCreate (line 44) | class ImageGenerationConfigCreate(BaseModel): class ImageGenerationConfigUpdate (line 74) | class ImageGenerationConfigUpdate(BaseModel): class ImageGenerationConfigView (line 100) | class ImageGenerationConfigView(BaseModel): method from_model (line 111) | def from_model( class ImageGenerationCredentials (line 125) | class ImageGenerationCredentials(BaseModel): method from_model (line 134) | def from_model( class DefaultImageGenerationConfig (line 154) | class DefaultImageGenerationConfig(BaseModel): method from_model (line 166) | def from_model( FILE: backend/onyx/server/manage/llm/api.py function _mask_string (line 101) | def _mask_string(value: str) -> str: function _sync_fetched_models (line 108) | def _sync_fetched_models( function _mask_provider_credentials (line 151) | def _mask_provider_credentials(provider_view: LLMProviderView) -> None: function _is_sensitive_custom_config_key (line 173) | def _is_sensitive_custom_config_key(key: str) -> bool: function _is_masked_value_for_existing (line 178) | def _is_masked_value_for_existing( function _restore_masked_custom_config_values (line 195) | def _restore_masked_custom_config_values( function _validate_llm_provider_change (line 215) | def _validate_llm_provider_change( function fetch_llm_options (line 251) | def fetch_llm_options( function fetch_llm_provider_options (line 258) | def fetch_llm_provider_options( function test_llm_configuration (line 270) | def test_llm_configuration( function test_default_provider (line 329) | def test_default_provider( function list_llm_providers (line 344) | def list_llm_providers( function put_llm_provider (line 385) | def put_llm_provider( function delete_llm_provider (line 526) | def delete_llm_provider( function set_provider_as_default (line 548) | def set_provider_as_default( function set_provider_as_default_vision (line 561) | def set_provider_as_default_vision( function get_auto_config (line 574) | def get_auto_config( function get_vision_capable_providers (line 592) | def get_vision_capable_providers( function list_llm_provider_basics (line 637) | def list_llm_provider_basics( function get_valid_model_names_for_persona (line 688) | def get_valid_model_names_for_persona( function list_llm_providers_for_persona (line 724) | def list_llm_providers_for_persona( function get_provider_contextual_cost (line 823) | def get_provider_contextual_cost( function get_bedrock_available_models (line 871) | def get_bedrock_available_models( function _get_ollama_available_model_names (line 1028) | def _get_ollama_available_model_names(api_base: str) -> set[str]: function get_ollama_available_models (line 1046) | def get_ollama_available_models( function _get_openrouter_models_response (line 1148) | def _get_openrouter_models_response(api_base: str, api_key: str) -> dict: function get_openrouter_available_models (line 1170) | def get_openrouter_available_models( function get_lm_studio_available_models (line 1251) | def get_lm_studio_available_models( function get_litellm_available_models (line 1358) | def get_litellm_available_models( function _get_litellm_models_response (line 1422) | def _get_litellm_models_response(api_key: str, api_base: str) -> dict: function _get_openai_compatible_models_response (line 1434) | def _get_openai_compatible_models_response( function get_bifrost_available_models (line 1491) | def get_bifrost_available_models( function _get_bifrost_models_response (line 1564) | def _get_bifrost_models_response(api_base: str, api_key: str | None = No... FILE: backend/onyx/server/manage/llm/models.py class TestLLMRequest (line 31) | class TestLLMRequest(BaseModel): method normalize_provider (line 50) | def normalize_provider(cls, value: str) -> str: class LLMProviderDescriptor (line 55) | class LLMProviderDescriptor(BaseModel): method from_model (line 66) | def from_model( class LLMProvider (line 87) | class LLMProvider(BaseModel): class LLMProviderUpsertRequest (line 101) | class LLMProviderUpsertRequest(LLMProvider): method normalize_provider (line 111) | def normalize_provider(cls, value: str) -> str: class LLMProviderView (line 116) | class LLMProviderView(LLMProvider): method from_model (line 123) | def from_model( class ModelConfigurationUpsertRequest (line 164) | class ModelConfigurationUpsertRequest(BaseModel): method from_model (line 172) | def from_model( class ModelConfigurationView (line 184) | class ModelConfigurationView(BaseModel): method from_model (line 197) | def from_model( class VisionProviderResponse (line 280) | class VisionProviderResponse(LLMProviderView): class LLMCost (line 286) | class LLMCost(BaseModel): class BedrockModelsRequest (line 292) | class BedrockModelsRequest(BaseModel): class BedrockFinalModelResponse (line 300) | class BedrockFinalModelResponse(BaseModel): class OllamaModelsRequest (line 307) | class OllamaModelsRequest(BaseModel): class OllamaFinalModelResponse (line 312) | class OllamaFinalModelResponse(BaseModel): class OllamaModelDetails (line 319) | class OllamaModelDetails(BaseModel): method supports_completion (line 325) | def supports_completion(self) -> bool: method supports_image_input (line 329) | def supports_image_input(self) -> bool: class OpenRouterModelsRequest (line 335) | class OpenRouterModelsRequest(BaseModel): class OpenRouterModelDetails (line 341) | class OpenRouterModelDetails(BaseModel): method supports_image_input (line 355) | def supports_image_input(self) -> bool: method is_embedding_model (line 360) | def is_embedding_model(self) -> bool: class OpenRouterFinalModelResponse (line 365) | class OpenRouterFinalModelResponse(BaseModel): class LMStudioModelsRequest (line 375) | class LMStudioModelsRequest(BaseModel): class LMStudioFinalModelResponse (line 382) | class LMStudioFinalModelResponse(BaseModel): class DefaultModel (line 390) | class DefaultModel(BaseModel): method from_model_config (line 395) | def from_model_config( class LLMProviderResponse (line 406) | class LLMProviderResponse(BaseModel, Generic[T]): method from_models (line 412) | def from_models( class SyncModelEntry (line 425) | class SyncModelEntry(BaseModel): class LitellmModelsRequest (line 434) | class LitellmModelsRequest(BaseModel): class LitellmModelDetails (line 440) | class LitellmModelDetails(BaseModel): class LitellmFinalModelResponse (line 449) | class LitellmFinalModelResponse(BaseModel): class BifrostModelsRequest (line 455) | class BifrostModelsRequest(BaseModel): class BifrostFinalModelResponse (line 461) | class BifrostFinalModelResponse(BaseModel): FILE: backend/onyx/server/manage/llm/utils.py class ModelMetadata (line 33) | class ModelMetadata(TypedDict): function is_valid_bedrock_model (line 74) | def is_valid_bedrock_model( function infer_vision_support (line 96) | def infer_vision_support(model_id: str) -> bool: function generate_bedrock_display_name (line 113) | def generate_bedrock_display_name(model_id: str) -> str: function generate_ollama_display_name (line 176) | def generate_ollama_display_name(model_name: str) -> str: function strip_openrouter_vendor_prefix (line 222) | def strip_openrouter_vendor_prefix(display_name: str, model_id: str) -> ... function is_reasoning_model (line 272) | def is_reasoning_model(model_id: str, display_name: str) -> bool: function extract_base_model_name (line 282) | def extract_base_model_name(model: str) -> str | None: function should_filter_as_dated_duplicate (line 298) | def should_filter_as_dated_duplicate( function filter_model_configurations (line 308) | def filter_model_configurations( function extract_vendor_from_model_name (line 342) | def extract_vendor_from_model_name(model_name: str, provider: str) -> st... function is_embedding_model (line 398) | def is_embedding_model(model_name: str) -> bool: FILE: backend/onyx/server/manage/models.py class EmailInviteStatus (line 38) | class EmailInviteStatus(str, Enum): class BulkInviteResponse (line 45) | class BulkInviteResponse(BaseModel): class VersionResponse (line 50) | class VersionResponse(BaseModel): class AuthTypeResponse (line 54) | class AuthTypeResponse(BaseModel): class UserSpecificAssistantPreference (line 66) | class UserSpecificAssistantPreference(BaseModel): class UserPreferences (line 73) | class UserPreferences(BaseModel): class MemoryItem (line 97) | class MemoryItem(BaseModel): class UserPersonalization (line 102) | class UserPersonalization(BaseModel): class TenantSnapshot (line 111) | class TenantSnapshot(BaseModel): class TenantInfo (line 116) | class TenantInfo(BaseModel): class UserInfo (line 121) | class UserInfo(BaseModel): method from_model (line 140) | def from_model( class UserByEmail (line 201) | class UserByEmail(BaseModel): class UserRoleUpdateRequest (line 205) | class UserRoleUpdateRequest(BaseModel): class UserRoleResponse (line 211) | class UserRoleResponse(BaseModel): class BoostDoc (line 215) | class BoostDoc(BaseModel): class BoostUpdateRequest (line 223) | class BoostUpdateRequest(BaseModel): class HiddenUpdateRequest (line 228) | class HiddenUpdateRequest(BaseModel): class AutoScrollRequest (line 233) | class AutoScrollRequest(BaseModel): class ThemePreferenceRequest (line 237) | class ThemePreferenceRequest(BaseModel): class DefaultAppModeRequest (line 241) | class DefaultAppModeRequest(BaseModel): class ChatBackgroundRequest (line 245) | class ChatBackgroundRequest(BaseModel): class VoiceSettingsUpdateRequest (line 249) | class VoiceSettingsUpdateRequest(BaseModel): class PersonalizationUpdateRequest (line 255) | class PersonalizationUpdateRequest(BaseModel): method validate_memory_count (line 265) | def validate_memory_count( class SlackBotCreationRequest (line 273) | class SlackBotCreationRequest(BaseModel): class SlackBotTokens (line 282) | class SlackBotTokens(BaseModel): class SlackBotResponseType (line 290) | class SlackBotResponseType(str, Enum): class SlackChannelConfigCreationRequest (line 295) | class SlackChannelConfigCreationRequest(BaseModel): method validate_filters (line 324) | def validate_filters(cls, value: list[str]) -> list[str]: method validate_document_sets_and_persona_id (line 332) | def validate_document_sets_and_persona_id( class SlackChannelConfig (line 341) | class SlackChannelConfig(BaseModel): method from_model (line 352) | def from_model( class SlackBot (line 376) | class SlackBot(BaseModel): method from_model (line 393) | def from_model(cls, slack_bot_model: SlackAppModel) -> "SlackBot": class FullModelVersionResponse (line 417) | class FullModelVersionResponse(BaseModel): class AllUsersResponse (line 422) | class AllUsersResponse(BaseModel): class SlackChannel (line 431) | class SlackChannel(BaseModel): class StandardAnswerCategoryCreationRequest (line 443) | class StandardAnswerCategoryCreationRequest(BaseModel): class StandardAnswerCategory (line 447) | class StandardAnswerCategory(BaseModel): method from_model (line 452) | def from_model( class StandardAnswer (line 461) | class StandardAnswer(BaseModel): method from_model (line 470) | def from_model(cls, standard_answer_model: StandardAnswerModel) -> "St... class StandardAnswerCreationRequest (line 484) | class StandardAnswerCreationRequest(BaseModel): method validate_categories (line 493) | def validate_categories(cls, value: list[int]) -> list[int]: method validate_only_match_any_if_not_regex (line 501) | def validate_only_match_any_if_not_regex(self) -> Any: method validate_keyword_if_regex (line 510) | def validate_keyword_if_regex(self) -> Any: class ContainerVersions (line 532) | class ContainerVersions(BaseModel): class AllVersions (line 539) | class AllVersions(BaseModel): FILE: backend/onyx/server/manage/opensearch_migration/api.py function get_opensearch_migration_status (line 25) | def get_opensearch_migration_status( function get_opensearch_retrieval_status (line 44) | def get_opensearch_retrieval_status( function set_opensearch_retrieval_status (line 55) | def set_opensearch_retrieval_status( FILE: backend/onyx/server/manage/opensearch_migration/models.py class OpenSearchMigrationStatusResponse (line 6) | class OpenSearchMigrationStatusResponse(BaseModel): class OpenSearchRetrievalStatusRequest (line 14) | class OpenSearchRetrievalStatusRequest(BaseModel): class OpenSearchRetrievalStatusResponse (line 19) | class OpenSearchRetrievalStatusResponse(BaseModel): FILE: backend/onyx/server/manage/search_settings.py function set_new_search_settings (line 47) | def set_new_search_settings( function cancel_new_embedding (line 148) | def cancel_new_embedding( function delete_search_settings_endpoint (line 180) | def delete_search_settings_endpoint( function get_current_search_settings_endpoint (line 195) | def get_current_search_settings_endpoint( function get_secondary_search_settings_endpoint (line 204) | def get_secondary_search_settings_endpoint( function get_all_search_settings (line 216) | def get_all_search_settings( function update_saved_search_settings (line 234) | def update_saved_search_settings( function unstructured_api_key_set (line 265) | def unstructured_api_key_set( function upsert_unstructured_api_key (line 273) | def upsert_unstructured_api_key( function delete_unstructured_api_key_endpoint (line 281) | def delete_unstructured_api_key_endpoint( function validate_contextual_rag_model (line 287) | def validate_contextual_rag_model( function _validate_contextual_rag_model (line 300) | def _validate_contextual_rag_model( function _sync_default_contextual_model (line 322) | def _sync_default_contextual_model(db_session: Session) -> None: FILE: backend/onyx/server/manage/slack_bot.py function _form_channel_config (line 45) | def _form_channel_config( function create_slack_channel_config (line 113) | def create_slack_channel_config( function patch_slack_channel_config (line 153) | def patch_slack_channel_config( function delete_slack_channel_config (line 215) | def delete_slack_channel_config( function list_slack_channel_configs (line 228) | def list_slack_channel_configs( function create_bot (line 240) | def create_bot( function patch_bot (line 285) | def patch_bot( function delete_bot (line 307) | def delete_bot( function get_bot_by_id (line 319) | def get_bot_by_id( function list_bots (line 332) | def list_bots( function list_bot_configs (line 343) | def list_bot_configs( FILE: backend/onyx/server/manage/users.py function set_user_role (line 127) | def set_user_role( class TestUpsertRequest (line 167) | class TestUpsertRequest(BaseModel): function test_upsert_user (line 172) | async def test_upsert_user( function list_accepted_users (line 184) | def list_accepted_users( function list_all_accepted_users (line 251) | def list_all_accepted_users( function get_user_counts (line 294) | def get_user_counts( function list_invited_users (line 302) | def list_invited_users( function list_all_users (line 318) | def list_all_users( function download_users_csv (line 390) | def download_users_csv( function bulk_invite_users (line 427) | def bulk_invite_users( function remove_invited_user (line 527) | def remove_invited_user( function deactivate_user_api (line 555) | def deactivate_user_api( function delete_user (line 584) | async def delete_user( function activate_user_api (line 628) | def activate_user_api( function get_valid_domains (line 658) | def get_valid_domains( function list_all_users_basic_info (line 668) | def list_all_users_basic_info( function get_user_role (line 683) | async def get_user_role(user: User = Depends(current_user)) -> UserRoleR... function get_current_auth_token_creation_redis (line 687) | def get_current_auth_token_creation_redis( function get_current_token_creation_postgres (line 730) | def get_current_token_creation_postgres( function get_current_token_creation_jwt (line 745) | def get_current_token_creation_jwt(user: User, request: Request) -> date... function _get_token_created_at (line 770) | def _get_token_created_at( function get_current_user_permissions (line 781) | def get_current_user_permissions( function verify_user_logged_in (line 788) | def verify_user_logged_in( function update_user_temperature_override_enabled_api (line 862) | def update_user_temperature_override_enabled_api( class ChosenDefaultModelRequest (line 872) | class ChosenDefaultModelRequest(BaseModel): function update_user_shortcut_enabled_api (line 877) | def update_user_shortcut_enabled_api( function update_user_auto_scroll_api (line 886) | def update_user_auto_scroll_api( function update_user_theme_preference_api (line 895) | def update_user_theme_preference_api( function update_user_chat_background_api (line 904) | def update_user_chat_background_api( function update_user_default_app_mode_api (line 913) | def update_user_default_app_mode_api( function update_user_default_model_api (line 922) | def update_user_default_model_api( function update_user_personalization_api (line 931) | def update_user_personalization_api( class ReorderPinnedAssistantsRequest (line 974) | class ReorderPinnedAssistantsRequest(BaseModel): function update_user_pinned_assistants_api (line 979) | def update_user_pinned_assistants_api( class ChosenAssistantsRequest (line 988) | class ChosenAssistantsRequest(BaseModel): function update_assistant_visibility (line 992) | def update_assistant_visibility( function update_user_assistant_visibility_api (line 1015) | def update_user_assistant_visibility_api( function get_user_assistant_preferences (line 1037) | def get_user_assistant_preferences( function update_assistant_preferences_for_user_api (line 1054) | def update_assistant_preferences_for_user_api( function get_recent_files (line 1067) | def get_recent_files( FILE: backend/onyx/server/manage/validate_tokens.py function validate_bot_token (line 10) | def validate_bot_token(bot_token: str) -> bool: function validate_app_token (line 29) | def validate_app_token(app_token: str) -> bool: function validate_user_token (line 48) | def validate_user_token(user_token: str | None) -> None: FILE: backend/onyx/server/manage/voice/api.py function _validate_voice_api_base (line 41) | def _validate_voice_api_base(provider_type: str, api_base: str | None) -... function _provider_to_view (line 58) | def _provider_to_view(provider: VoiceProvider) -> VoiceProviderView: function list_voice_providers (line 75) | def list_voice_providers( function upsert_voice_provider_endpoint (line 85) | async def upsert_voice_provider_endpoint( function delete_voice_provider_endpoint (line 154) | def delete_voice_provider_endpoint( function activate_stt_provider_endpoint (line 166) | def activate_stt_provider_endpoint( function deactivate_stt_provider_endpoint (line 178) | def deactivate_stt_provider_endpoint( function activate_tts_provider_endpoint (line 190) | def activate_tts_provider_endpoint( function deactivate_tts_provider_endpoint (line 205) | def deactivate_tts_provider_endpoint( function test_voice_provider (line 217) | async def test_voice_provider( function get_provider_voices (line 278) | def get_provider_voices( function get_voices_by_type (line 302) | def get_voices_by_type( FILE: backend/onyx/server/manage/voice/models.py class VoiceProviderView (line 7) | class VoiceProviderView(BaseModel): class VoiceProviderUpdateSuccess (line 28) | class VoiceProviderUpdateSuccess(BaseModel): class VoiceOption (line 34) | class VoiceOption(BaseModel): class VoiceProviderUpsertRequest (line 41) | class VoiceProviderUpsertRequest(BaseModel): class VoiceProviderTestRequest (line 78) | class VoiceProviderTestRequest(BaseModel): FILE: backend/onyx/server/manage/voice/user_api.py class VoiceStatusResponse (line 38) | class VoiceStatusResponse(BaseModel): function get_voice_status (line 44) | def get_voice_status( function transcribe_audio (line 58) | async def transcribe_audio( function synthesize_speech (line 116) | async def synthesize_speech( function update_voice_settings (line 209) | def update_voice_settings( class WSTokenResponse (line 226) | class WSTokenResponse(BaseModel): function get_ws_token (line 231) | async def get_ws_token( FILE: backend/onyx/server/manage/voice/websocket_api.py class ChunkedTranscriber (line 45) | class ChunkedTranscriber: method __init__ (line 48) | def __init__(self, provider: Any, audio_format: str = "webm"): method add_chunk (line 56) | async def add_chunk(self, chunk: bytes) -> str | None: method _transcribe_chunk (line 66) | async def _transcribe_chunk(self) -> str | None: method flush (line 87) | async def flush(self) -> str: function handle_streaming_transcription (line 102) | async def handle_streaming_transcription( function handle_chunked_transcription (line 227) | async def handle_chunked_transcription( function websocket_transcribe (line 317) | async def websocket_transcribe( function handle_streaming_synthesis (line 451) | async def handle_streaming_synthesis( function handle_chunked_synthesis (line 597) | async def handle_chunked_synthesis( function websocket_synthesize (line 710) | async def websocket_synthesize( FILE: backend/onyx/server/manage/web_search/api.py function list_search_providers (line 59) | def list_search_providers( function upsert_search_provider_endpoint (line 78) | def upsert_search_provider_endpoint( function delete_search_provider (line 141) | def delete_search_provider( function activate_search_provider (line 151) | def activate_search_provider( function deactivate_search_provider (line 171) | def deactivate_search_provider( function test_search_provider (line 182) | def test_search_provider( function list_content_providers (line 232) | def list_content_providers( function upsert_content_provider_endpoint (line 251) | def upsert_content_provider_endpoint( function delete_content_provider (line 314) | def delete_content_provider( function activate_content_provider (line 324) | def activate_content_provider( function reset_content_provider_default (line 344) | def reset_content_provider_default( function deactivate_content_provider (line 359) | def deactivate_content_provider( function test_content_provider (line 370) | def test_content_provider( FILE: backend/onyx/server/manage/web_search/models.py class WebSearchProviderView (line 11) | class WebSearchProviderView(BaseModel): class WebSearchProviderUpsertRequest (line 23) | class WebSearchProviderUpsertRequest(BaseModel): class WebContentProviderView (line 42) | class WebContentProviderView(BaseModel): class WebContentProviderUpsertRequest (line 51) | class WebContentProviderUpsertRequest(BaseModel): class WebSearchProviderTestRequest (line 61) | class WebSearchProviderTestRequest(BaseModel): class WebContentProviderTestRequest (line 74) | class WebContentProviderTestRequest(BaseModel): FILE: backend/onyx/server/metrics/celery_task_metrics.py function _evict_stale_start_times (line 86) | def _evict_stale_start_times() -> None: function _get_task_labels (line 108) | def _get_task_labels(task: Task) -> dict[str, str]: function on_celery_task_prerun (line 121) | def on_celery_task_prerun( function on_celery_task_postrun (line 140) | def on_celery_task_postrun( function on_celery_task_retry (line 169) | def on_celery_task_retry( function on_celery_task_revoked (line 183) | def on_celery_task_revoked( function on_celery_task_rejected (line 197) | def on_celery_task_rejected( FILE: backend/onyx/server/metrics/indexing_pipeline.py class _CachedCollector (line 64) | class _CachedCollector(Collector): method __init__ (line 72) | def __init__(self, cache_ttl: float = _DEFAULT_CACHE_TTL) -> None: method collect (line 78) | def collect(self) -> list[GaugeMetricFamily]: method _collect_fresh (line 98) | def _collect_fresh(self) -> list[GaugeMetricFamily]: method describe (line 101) | def describe(self) -> list[GaugeMetricFamily]: class QueueDepthCollector (line 105) | class QueueDepthCollector(_CachedCollector): method __init__ (line 108) | def __init__(self, cache_ttl: float = _DEFAULT_CACHE_TTL) -> None: method set_celery_app (line 112) | def set_celery_app(self, app: Any) -> None: method _collect_fresh (line 116) | def _collect_fresh(self) -> list[GaugeMetricFamily]: method _get_oldest_message_age (line 160) | def _get_oldest_message_age( class IndexAttemptCollector (line 197) | class IndexAttemptCollector(_CachedCollector): method __init__ (line 200) | def __init__(self, cache_ttl: float = _DEFAULT_CACHE_TTL) -> None: method configure (line 205) | def configure(self) -> None: method _collect_fresh (line 212) | def _collect_fresh(self) -> list[GaugeMetricFamily]: class ConnectorHealthCollector (line 263) | class ConnectorHealthCollector(_CachedCollector): method __init__ (line 266) | def __init__(self, cache_ttl: float = _DEFAULT_CACHE_TTL) -> None: method configure (line 270) | def configure(self) -> None: method _collect_fresh (line 274) | def _collect_fresh(self) -> list[GaugeMetricFamily]: class RedisHealthCollector (line 399) | class RedisHealthCollector(_CachedCollector): method __init__ (line 402) | def __init__(self, cache_ttl: float = _DEFAULT_CACHE_TTL) -> None: method set_celery_app (line 406) | def set_celery_app(self, app: Any) -> None: method _collect_fresh (line 410) | def _collect_fresh(self) -> list[GaugeMetricFamily]: class WorkerHeartbeatMonitor (line 451) | class WorkerHeartbeatMonitor: method __init__ (line 462) | def __init__(self, celery_app: Any) -> None: method start (line 469) | def start(self) -> None: method stop (line 481) | def stop(self) -> None: method _listen (line 484) | def _listen(self) -> None: method _on_heartbeat (line 513) | def _on_heartbeat(self, event: dict[str, Any]) -> None: method _on_offline (line 519) | def _on_offline(self, event: dict[str, Any]) -> None: method get_worker_status (line 525) | def get_worker_status(self) -> dict[str, bool]: class WorkerHealthCollector (line 551) | class WorkerHealthCollector(_CachedCollector): method __init__ (line 558) | def __init__(self, cache_ttl: float = 30.0) -> None: method set_monitor (line 562) | def set_monitor(self, monitor: WorkerHeartbeatMonitor) -> None: method _collect_fresh (line 566) | def _collect_fresh(self) -> list[GaugeMetricFamily]: FILE: backend/onyx/server/metrics/indexing_pipeline_setup.py function setup_indexing_pipeline_metrics (line 31) | def setup_indexing_pipeline_metrics(celery_app: Celery) -> None: FILE: backend/onyx/server/metrics/indexing_task_metrics.py class ConnectorInfo (line 41) | class ConnectorInfo: function _evict_stale_start_times (line 101) | def _evict_stale_start_times() -> None: function _resolve_connector (line 116) | def _resolve_connector(cc_pair_id: int) -> ConnectorInfo: function on_indexing_task_prerun (line 169) | def on_indexing_task_prerun( function on_indexing_task_postrun (line 209) | def on_indexing_task_postrun( FILE: backend/onyx/server/metrics/metrics_server.py function start_metrics_server (line 35) | def start_metrics_server(worker_type: str) -> int | None: FILE: backend/onyx/server/metrics/opensearch_search.py function observe_opensearch_search (line 61) | def observe_opensearch_search( function track_opensearch_search_in_progress (line 86) | def track_opensearch_search_in_progress( FILE: backend/onyx/server/metrics/per_tenant.py function per_tenant_request_callback (line 19) | def per_tenant_request_callback(info: Info) -> None: FILE: backend/onyx/server/metrics/postgres_connection_pool.py function pool_timeout_handler (line 86) | def pool_timeout_handler( class PoolStateCollector (line 101) | class PoolStateCollector(Collector): method __init__ (line 109) | def __init__(self) -> None: method add_pool (line 112) | def add_pool(self, label: str, pool: QueuePool) -> None: method collect (line 115) | def collect(self) -> list[GaugeMetricFamily]: method describe (line 145) | def describe(self) -> list[GaugeMetricFamily]: function _register_pool_events (line 153) | def _register_pool_events(engine: Engine, label: str) -> None: function setup_postgres_connection_pool_metrics (line 222) | def setup_postgres_connection_pool_metrics( FILE: backend/onyx/server/metrics/prometheus_setup.py function setup_prometheus_metrics (line 44) | def setup_prometheus_metrics(app: Starlette) -> None: FILE: backend/onyx/server/metrics/slow_requests.py function slow_request_callback (line 24) | def slow_request_callback(info: Info) -> None: FILE: backend/onyx/server/middleware/latency_logging.py function add_latency_logging_middleware (line 11) | def add_latency_logging_middleware(app: FastAPI, logger: logging.LoggerA... FILE: backend/onyx/server/middleware/rate_limiting.py function setup_auth_limiter (line 15) | async def setup_auth_limiter() -> None: function close_auth_limiter (line 21) | async def close_auth_limiter() -> None: function rate_limit_key (line 26) | async def rate_limit_key(request: Request) -> str: function get_auth_rate_limiters (line 35) | def get_auth_rate_limiters() -> List[Callable]: FILE: backend/onyx/server/models.py class StatusResponse (line 17) | class StatusResponse(BaseModel, Generic[DataT]): class ApiKey (line 23) | class ApiKey(BaseModel): class IdReturn (line 27) | class IdReturn(BaseModel): class MinimalUserSnapshot (line 31) | class MinimalUserSnapshot(BaseModel): class UserGroupInfo (line 36) | class UserGroupInfo(BaseModel): class FullUserSnapshot (line 41) | class FullUserSnapshot(BaseModel): method from_user_model (line 55) | def from_user_model( class DisplayPriorityRequest (line 76) | class DisplayPriorityRequest(BaseModel): class InvitedUserSnapshot (line 80) | class InvitedUserSnapshot(BaseModel): FILE: backend/onyx/server/onyx_api/ingestion.py function get_docs_by_connector_credential_pair (line 45) | def get_docs_by_connector_credential_pair( function get_ingestion_docs (line 62) | def get_ingestion_docs( function upsert_ingestion_doc (line 78) | def upsert_ingestion_doc( function delete_ingestion_doc (line 180) | def delete_ingestion_doc( FILE: backend/onyx/server/onyx_api/models.py class IngestionDocument (line 6) | class IngestionDocument(BaseModel): class IngestionResult (line 11) | class IngestionResult(BaseModel): class DocMinimalInfo (line 16) | class DocMinimalInfo(BaseModel): FILE: backend/onyx/server/pat/api.py function list_tokens (line 26) | def list_tokens( function create_token (line 46) | def create_token( function delete_token (line 76) | def delete_token( FILE: backend/onyx/server/pat/models.py class CreateTokenRequest (line 9) | class CreateTokenRequest(BaseModel): class TokenResponse (line 20) | class TokenResponse(BaseModel): class CreatedTokenResponse (line 29) | class CreatedTokenResponse(TokenResponse): FILE: backend/onyx/server/query_and_chat/chat_backend.py function _get_available_tokens_for_persona (line 111) | def _get_available_tokens_for_persona( function get_user_chat_sessions (line 151) | def get_user_chat_sessions( function update_chat_session_temperature (line 207) | def update_chat_session_temperature( function update_chat_session_model (line 247) | def update_chat_session_model( function get_chat_session (line 264) | def get_chat_session( function create_new_chat_session (line 377) | def create_new_chat_session( function rename_chat_session (line 401) | def rename_chat_session( function patch_chat_session (line 470) | def patch_chat_session( function delete_all_chat_sessions (line 487) | def delete_all_chat_sessions( function delete_chat_session_by_id (line 498) | def delete_chat_session_by_id( function handle_send_chat_message (line 543) | def handle_send_chat_message( function set_message_as_latest (line 688) | def set_message_as_latest( function set_preferred_response_endpoint (line 709) | def set_preferred_response_endpoint( function create_chat_feedback (line 733) | def create_chat_feedback( function remove_chat_feedback (line 751) | def remove_chat_feedback( class MaxSelectedDocumentTokens (line 765) | class MaxSelectedDocumentTokens(BaseModel): function get_max_document_tokens (line 770) | def get_max_document_tokens( class AvailableContextTokensResponse (line 794) | class AvailableContextTokensResponse(BaseModel): function get_available_context_tokens_for_session (line 799) | def get_available_context_tokens_for_session( class SeedChatFromSlackRequest (line 832) | class SeedChatFromSlackRequest(BaseModel): class SeedChatFromSlackResponse (line 836) | class SeedChatFromSlackResponse(BaseModel): function seed_chat_from_slack (line 841) | def seed_chat_from_slack( function fetch_chat_file (line 865) | def fetch_chat_file( function search_chats (line 901) | async def search_chats( function stop_chat_session (line 981) | def stop_chat_session( FILE: backend/onyx/server/query_and_chat/chat_utils.py function mime_type_to_chat_file_type (line 5) | def mime_type_to_chat_file_type(mime_type: str | None) -> ChatFileType: FILE: backend/onyx/server/query_and_chat/models.py class MessageOrigin (line 26) | class MessageOrigin(str, Enum): class MessageResponseIDInfo (line 39) | class MessageResponseIDInfo(BaseModel): class ModelResponseSlot (line 44) | class ModelResponseSlot(BaseModel): class MultiModelMessageResponseIDInfo (line 51) | class MultiModelMessageResponseIDInfo(BaseModel): class SourceTag (line 59) | class SourceTag(Tag): class TagResponse (line 63) | class TagResponse(BaseModel): class UpdateChatSessionThreadRequest (line 67) | class UpdateChatSessionThreadRequest(BaseModel): class UpdateChatSessionTemperatureRequest (line 73) | class UpdateChatSessionTemperatureRequest(BaseModel): class ChatSessionCreationRequest (line 78) | class ChatSessionCreationRequest(BaseModel): class ChatFeedbackRequest (line 85) | class ChatFeedbackRequest(BaseModel): method check_is_positive_or_feedback_text (line 92) | def check_is_positive_or_feedback_text(self) -> "ChatFeedbackRequest": class SendMessageRequest (line 100) | class SendMessageRequest(BaseModel): method check_chat_session_id_or_info (line 152) | def check_chat_session_id_or_info(self) -> "SendMessageRequest": class ChatMessageIdentifier (line 166) | class ChatMessageIdentifier(BaseModel): class ChatRenameRequest (line 170) | class ChatRenameRequest(BaseModel): class ChatSessionUpdateRequest (line 175) | class ChatSessionUpdateRequest(BaseModel): class DeleteAllSessionsRequest (line 179) | class DeleteAllSessionsRequest(BaseModel): class RenameChatSessionResponse (line 183) | class RenameChatSessionResponse(BaseModel): class ChatSessionDetails (line 187) | class ChatSessionDetails(BaseModel): method from_model (line 198) | def from_model(cls, model: ChatSession) -> "ChatSessionDetails": class ChatSessionsResponse (line 211) | class ChatSessionsResponse(BaseModel): class ChatMessageDetail (line 216) | class ChatMessageDetail(BaseModel): method model_dump (line 235) | def model_dump(self, *args: list, **kwargs: dict[str, Any]) -> dict[st... class SetPreferredResponseRequest (line 241) | class SetPreferredResponseRequest(BaseModel): class ChatSessionDetailResponse (line 246) | class ChatSessionDetailResponse(BaseModel): class AdminSearchRequest (line 262) | class AdminSearchRequest(BaseModel): class AdminSearchResponse (line 267) | class AdminSearchResponse(BaseModel): class ChatSessionSummary (line 271) | class ChatSessionSummary(BaseModel): class ChatSessionGroup (line 281) | class ChatSessionGroup(BaseModel): class ChatSearchResponse (line 286) | class ChatSearchResponse(BaseModel): FILE: backend/onyx/server/query_and_chat/placement.py class Placement (line 4) | class Placement(BaseModel): FILE: backend/onyx/server/query_and_chat/query_backend.py function admin_search (line 34) | def admin_search( function get_tags (line 78) | def get_tags( FILE: backend/onyx/server/query_and_chat/session_loading.py function create_message_packets (line 67) | def create_message_packets( function create_citation_packets (line 111) | def create_citation_packets( function create_reasoning_packets (line 130) | def create_reasoning_packets(reasoning_text: str, turn_index: int) -> li... function create_image_generation_packets (line 151) | def create_image_generation_packets( function create_custom_tool_packets (line 180) | def create_custom_tool_packets( function create_file_reader_packets (line 232) | def create_file_reader_packets( function create_research_agent_packets (line 271) | def create_research_agent_packets( function create_fetch_packets (line 322) | def create_fetch_packets( function create_memory_packets (line 361) | def create_memory_packets( function create_python_tool_packets (line 400) | def create_python_tool_packets( function create_search_packets (line 431) | def create_search_packets( function translate_assistant_message_to_packets (line 484) | def translate_assistant_message_to_packets( FILE: backend/onyx/server/query_and_chat/streaming_models.py class StreamingType (line 14) | class StreamingType(Enum): class BaseObj (line 59) | class BaseObj(BaseModel): class SectionEnd (line 67) | class SectionEnd(BaseObj): class OverallStop (line 71) | class OverallStop(BaseObj): class TopLevelBranching (line 76) | class TopLevelBranching(BaseObj): class PacketException (line 84) | class PacketException(BaseObj): class ReasoningStart (line 95) | class ReasoningStart(BaseObj): class ReasoningDelta (line 100) | class ReasoningDelta(BaseObj): class ReasoningDone (line 106) | class ReasoningDone(BaseObj): class AgentResponseStart (line 114) | class AgentResponseStart(BaseObj): class AgentResponseDelta (line 123) | class AgentResponseDelta(BaseObj): class CitationInfo (line 130) | class CitationInfo(BaseObj): class ToolCallDebug (line 140) | class ToolCallDebug(BaseObj): class SearchToolStart (line 152) | class SearchToolStart(BaseObj): class SearchToolQueriesDelta (line 160) | class SearchToolQueriesDelta(BaseObj): class SearchToolDocumentsDelta (line 169) | class SearchToolDocumentsDelta(BaseObj): class OpenUrlStart (line 180) | class OpenUrlStart(BaseObj): class OpenUrlUrls (line 186) | class OpenUrlUrls(BaseObj): class OpenUrlDocuments (line 194) | class OpenUrlDocuments(BaseObj): class ImageGenerationToolStart (line 203) | class ImageGenerationToolStart(BaseObj): class ImageGenerationToolHeartbeat (line 209) | class ImageGenerationToolHeartbeat(BaseObj): class GeneratedImage (line 216) | class GeneratedImage(BaseModel): class ImageGenerationFinal (line 226) | class ImageGenerationFinal(BaseObj): class PythonToolStart (line 232) | class PythonToolStart(BaseObj): class PythonToolDelta (line 237) | class PythonToolDelta(BaseObj): class CustomToolStart (line 246) | class CustomToolStart(BaseObj): class CustomToolArgs (line 253) | class CustomToolArgs(BaseObj): class CustomToolErrorInfo (line 260) | class CustomToolErrorInfo(BaseModel): class CustomToolDelta (line 267) | class CustomToolDelta(BaseObj): class ToolCallArgumentDelta (line 280) | class ToolCallArgumentDelta(BaseObj): class FileReaderStart (line 292) | class FileReaderStart(BaseObj): class FileReaderResult (line 296) | class FileReaderResult(BaseObj): class MemoryToolStart (line 311) | class MemoryToolStart(BaseObj): class MemoryToolDelta (line 315) | class MemoryToolDelta(BaseObj): class MemoryToolNoAccess (line 324) | class MemoryToolNoAccess(BaseObj): class DeepResearchPlanStart (line 331) | class DeepResearchPlanStart(BaseObj): class DeepResearchPlanDelta (line 337) | class DeepResearchPlanDelta(BaseObj): class ResearchAgentStart (line 345) | class ResearchAgentStart(BaseObj): class IntermediateReportStart (line 350) | class IntermediateReportStart(BaseObj): class IntermediateReportDelta (line 356) | class IntermediateReportDelta(BaseObj): class IntermediateReportCitedDocs (line 363) | class IntermediateReportCitedDocs(BaseObj): class Packet (line 421) | class Packet(BaseModel): FILE: backend/onyx/server/query_and_chat/token_limit.py function check_token_rate_limits (line 31) | def check_token_rate_limits( function _check_token_rate_limits (line 45) | def _check_token_rate_limits(_: User) -> None: function _user_is_rate_limited_by_global (line 54) | def _user_is_rate_limited_by_global() -> None: function _fetch_global_usage (line 71) | def _fetch_global_usage( function _get_cutoff_time (line 97) | def _get_cutoff_time(rate_limits: Sequence[TokenRateLimit]) -> datetime: function _is_rate_limited (line 102) | def _is_rate_limited( function any_rate_limit_exists (line 123) | def any_rate_limit_exists() -> bool: FILE: backend/onyx/server/runtime/onyx_runtime.py class OnyxRuntime (line 23) | class OnyxRuntime: method _get_with_static_fallback (line 36) | def _get_with_static_fallback( method get_logo (line 56) | def get_logo() -> FileWithMimeType: method get_emailable_logo (line 66) | def get_emailable_logo() -> FileWithMimeType: method get_logotype (line 89) | def get_logotype() -> FileWithMimeType: method get_beat_multiplier (line 99) | def get_beat_multiplier() -> float: method get_doc_permission_sync_multiplier (line 122) | def get_doc_permission_sync_multiplier() -> float: method get_build_fence_lookup_table_interval (line 143) | def get_build_fence_lookup_table_interval() -> int: FILE: backend/onyx/server/saml.py function upsert_saml_user (line 52) | async def upsert_saml_user(email: str) -> User: function prepare_from_fastapi_request (line 123) | async def prepare_from_fastapi_request(request: Request) -> dict[str, Any]: class SAMLAuthorizeResponse (line 165) | class SAMLAuthorizeResponse(BaseModel): function _sanitize_relay_state (line 169) | def _sanitize_relay_state(candidate: str | None) -> str | None: function saml_login (line 194) | async def saml_login(request: Request) -> SAMLAuthorizeResponse: function saml_login_callback_get (line 203) | async def saml_login_callback_get( function saml_login_callback (line 213) | async def saml_login_callback( function _process_saml_callback (line 222) | async def _process_saml_callback( function saml_logout (line 289) | async def saml_logout( FILE: backend/onyx/server/settings/api.py function admin_put_settings (line 49) | def admin_put_settings( function apply_license_status_to_settings (line 64) | def apply_license_status_to_settings(settings: Settings) -> Settings: function fetch_settings (line 70) | def fetch_settings( function get_settings_notifications (line 116) | def get_settings_notifications(user: User, db_session: Session) -> list[... FILE: backend/onyx/server/settings/models.py class PageType (line 19) | class PageType(str, Enum): class ApplicationStatus (line 24) | class ApplicationStatus(str, Enum): class Notification (line 32) | class Notification(BaseModel): method from_model (line 43) | def from_model(cls, notif: NotificationDBModel) -> "Notification": class Settings (line 56) | class Settings(BaseModel): class UserSettings (line 109) | class UserSettings(Settings): FILE: backend/onyx/server/settings/store.py function load_settings (line 26) | def load_settings() -> Settings: function store_settings (line 93) | def store_settings(settings: Settings) -> None: FILE: backend/onyx/server/tenant_usage_limits.py class TenantUsageLimitKeys (line 17) | class TenantUsageLimitKeys(str, Enum): class TenantUsageLimitOverrides (line 28) | class TenantUsageLimitOverrides(BaseModel): function get_tenant_usage_limit_overrides (line 49) | def get_tenant_usage_limit_overrides( function load_usage_limit_overrides (line 67) | def load_usage_limit_overrides() -> None: FILE: backend/onyx/server/token_rate_limits/api.py function get_global_token_limit_settings (line 26) | def get_global_token_limit_settings( function create_global_token_limit_settings (line 37) | def create_global_token_limit_settings( function update_token_limit_settings (line 56) | def update_token_limit_settings( function delete_token_limit_settings (line 72) | def delete_token_limit_settings( FILE: backend/onyx/server/token_rate_limits/models.py class TokenRateLimitArgs (line 6) | class TokenRateLimitArgs(BaseModel): class TokenRateLimitDisplay (line 12) | class TokenRateLimitDisplay(BaseModel): method from_db (line 19) | def from_db(cls, token_rate_limit: TokenRateLimit) -> "TokenRateLimitD... FILE: backend/onyx/server/usage_limits.py function is_onyx_managed_api_key (line 43) | def is_onyx_managed_api_key(api_key: str | None) -> bool: function is_usage_limits_enabled (line 48) | def is_usage_limits_enabled() -> bool: function is_tenant_on_trial (line 53) | def is_tenant_on_trial(tenant_id: str) -> bool: # noqa: ARG001 function is_tenant_on_trial_fn (line 63) | def is_tenant_on_trial_fn(tenant_id: str) -> bool: function _get_tenant_override (line 76) | def _get_tenant_override(tenant_id: str, field_name: str) -> int | None: function get_limit_for_usage_type (line 146) | def get_limit_for_usage_type( function check_llm_cost_limit_for_provider (line 171) | def check_llm_cost_limit_for_provider( function check_usage_and_raise (line 205) | def check_usage_and_raise( FILE: backend/onyx/server/utils.py class BasicAuthenticationError (line 12) | class BasicAuthenticationError(HTTPException): method __init__ (line 13) | def __init__(self, detail: str): class OnyxJSONEncoder (line 17) | class OnyxJSONEncoder(json.JSONEncoder): method default (line 20) | def default(self, obj: Any) -> Any: function get_json_line (line 28) | def get_json_line( function make_short_id (line 44) | def make_short_id() -> str: FILE: backend/onyx/server/utils_vector_db.py function require_vector_db (line 9) | def require_vector_db() -> None: FILE: backend/onyx/setup.py function setup_onyx (line 63) | def setup_onyx( function mark_reindex_flag (line 169) | def mark_reindex_flag(db_session: Session) -> None: function setup_document_indices (line 190) | def setup_document_indices( function setup_postgres (line 248) | def setup_postgres(db_session: Session) -> None: function update_default_multipass_indexing (line 291) | def update_default_multipass_indexing(db_session: Session) -> None: function setup_multitenant_onyx (line 325) | def setup_multitenant_onyx() -> None: function setup_vespa_multitenant (line 342) | def setup_vespa_multitenant(supported_indices: list[SupportedEmbeddingMo... FILE: backend/onyx/tools/built_in_tools.py function get_built_in_tool_ids (line 53) | def get_built_in_tool_ids() -> list[str]: function get_built_in_tool_by_id (line 57) | def get_built_in_tool_by_id(in_code_tool_id: str) -> Type[BUILT_IN_TOOL_... function _build_tool_name_to_class (line 61) | def _build_tool_name_to_class() -> dict[str, Type[BUILT_IN_TOOL_TYPES]]: FILE: backend/onyx/tools/fake_tools/research_agent.py function generate_intermediate_report (line 87) | def generate_intermediate_report( function run_research_agent_call (line 206) | def run_research_agent_call( function _on_research_agent_timeout (line 621) | def _on_research_agent_timeout( function run_research_agent_calls (line 644) | def run_research_agent_calls( FILE: backend/onyx/tools/interface.py class Tool (line 18) | class Tool(abc.ABC, Generic[TOverride]): method __init__ (line 19) | def __init__(self, emitter: Emitter | None = None): method emitter (line 24) | def emitter(self) -> Emitter: method id (line 34) | def id(self) -> int: method name (line 39) | def name(self) -> str: method description (line 45) | def description(self) -> str: method display_name (line 50) | def display_name(self) -> str: method is_available (line 55) | def is_available(cls, db_session: "Session") -> bool: # noqa: ARG003 method tool_definition (line 67) | def tool_definition(self) -> dict: method emit_start (line 74) | def emit_start(self, placement: Placement) -> None: method run (line 86) | def run( method should_emit_argument_deltas (line 97) | def should_emit_argument_deltas(cls) -> bool: FILE: backend/onyx/tools/models.py class ToolCallException (line 31) | class ToolCallException(Exception): method __init__ (line 34) | def __init__(self, message: str, llm_facing_message: str): class ToolExecutionException (line 42) | class ToolExecutionException(Exception): method __init__ (line 45) | def __init__(self, message: str, emit_error_packet: bool = False): class SearchToolUsage (line 51) | class SearchToolUsage(str, Enum): class CustomToolUserFileSnapshot (line 57) | class CustomToolUserFileSnapshot(BaseModel): class CustomToolCallSummary (line 61) | class CustomToolCallSummary(BaseModel): class ToolCallKickoff (line 68) | class ToolCallKickoff(BaseModel): method to_msg_str (line 75) | def to_msg_str(self) -> str: class ToolResponse (line 84) | class ToolResponse(BaseModel): class ParallelToolCallResponse (line 112) | class ParallelToolCallResponse(BaseModel): class ToolRunnerResponse (line 117) | class ToolRunnerResponse(BaseModel): method validate_tool_runner_response (line 123) | def validate_tool_runner_response(self) -> "ToolRunnerResponse": class ToolCallFinalResult (line 135) | class ToolCallFinalResult(ToolCallKickoff): class ChatMinimalTextMessage (line 144) | class ChatMinimalTextMessage(BaseModel): class DynamicSchemaInfo (line 149) | class DynamicSchemaInfo(BaseModel): class WebSearchToolOverrideKwargs (line 154) | class WebSearchToolOverrideKwargs(BaseModel): class OpenURLToolOverrideKwargs (line 159) | class OpenURLToolOverrideKwargs(BaseModel): class SearchToolOverrideKwargs (line 168) | class SearchToolOverrideKwargs(BaseModel): class ChatFile (line 190) | class ChatFile(BaseModel): class PythonToolRichResponse (line 199) | class PythonToolRichResponse(BaseModel): class PythonToolOverrideKwargs (line 205) | class PythonToolOverrideKwargs(BaseModel): class ImageGenerationToolOverrideKwargs (line 211) | class ImageGenerationToolOverrideKwargs(BaseModel): class SearchToolRunContext (line 217) | class SearchToolRunContext(BaseModel): class ImageGenerationToolRunContext (line 223) | class ImageGenerationToolRunContext(BaseModel): class CustomToolRunContext (line 229) | class CustomToolRunContext(BaseModel): class MemoryToolResponseSnapshot (line 235) | class MemoryToolResponseSnapshot(BaseModel): class ToolCallInfo (line 242) | class ToolCallInfo(BaseModel): class BaseCiteableToolResult (line 264) | class BaseCiteableToolResult(BaseModel): class LlmInternalSearchResult (line 272) | class LlmInternalSearchResult(BaseCiteableToolResult): class LlmWebSearchResult (line 281) | class LlmWebSearchResult(BaseCiteableToolResult): class LlmOpenUrlResult (line 290) | class LlmOpenUrlResult(BaseCiteableToolResult): class PythonExecutionFile (line 297) | class PythonExecutionFile(BaseModel): class LlmPythonExecutionResult (line 304) | class LlmPythonExecutionResult(BaseModel): FILE: backend/onyx/tools/tool_constructor.py class SearchToolConfig (line 55) | class SearchToolConfig(BaseModel): class FileReaderToolConfig (line 69) | class FileReaderToolConfig(BaseModel): class CustomToolConfig (line 76) | class CustomToolConfig(BaseModel): function _get_image_generation_config (line 83) | def _get_image_generation_config(llm: LLM, db_session: Session) -> LLMCo... function construct_tools (line 114) | def construct_tools( FILE: backend/onyx/tools/tool_implementations/custom/custom_tool.py class CustomTool (line 50) | class CustomTool(Tool[None]): method __init__ (line 51) | def __init__( method id (line 89) | def id(self) -> int: method name (line 93) | def name(self) -> str: method description (line 97) | def description(self) -> str: method display_name (line 101) | def display_name(self) -> str: method tool_definition (line 104) | def tool_definition(self) -> dict: method _save_and_get_file_references (line 107) | def _save_and_get_file_references( method _parse_csv (line 133) | def _parse_csv(self, csv_text: str) -> List[Dict[str, Any]]: method emit_start (line 140) | def emit_start(self, placement: Placement) -> None: method run (line 148) | def run( function build_custom_tools_from_openapi_schema_and_headers (line 274) | def build_custom_tools_from_openapi_schema_and_headers( FILE: backend/onyx/tools/tool_implementations/custom/openapi_parsing.py class PathSpec (line 9) | class PathSpec(BaseModel): class MethodSpec (line 14) | class MethodSpec(BaseModel): method get_request_body_schema (line 21) | def get_request_body_schema(self) -> dict[str, Any]: method get_query_param_schemas (line 33) | def get_query_param_schemas(self) -> list[dict[str, Any]]: method get_path_param_schemas (line 40) | def get_path_param_schemas(self) -> list[dict[str, Any]]: method build_url (line 47) | def build_url( method to_tool_definition (line 62) | def to_tool_definition(self) -> dict[str, Any]: method validate_spec (line 91) | def validate_spec(self) -> None: function openapi_to_path_specs (line 112) | def openapi_to_path_specs(openapi_spec: dict[str, Any]) -> list[PathSpec]: function openapi_to_method_specs (line 124) | def openapi_to_method_specs(openapi_spec: dict[str, Any]) -> list[Method... function openapi_to_url (line 158) | def openapi_to_url(openapi_schema: dict[str, dict | str]) -> str: function validate_openapi_schema (line 184) | def validate_openapi_schema(schema: dict[str, Any]) -> None: FILE: backend/onyx/tools/tool_implementations/file_reader/file_reader_tool.py class FileReaderToolOverrideKwargs (line 38) | class FileReaderToolOverrideKwargs: class FileReaderTool (line 42) | class FileReaderTool(Tool[FileReaderToolOverrideKwargs]): method __init__ (line 50) | def __init__( method id (line 63) | def id(self) -> int: method name (line 67) | def name(self) -> str: method description (line 71) | def description(self) -> str: method display_name (line 75) | def display_name(self) -> str: method is_available (line 80) | def is_available(cls, db_session: Session) -> bool: # noqa: ARG003 method tool_definition (line 85) | def tool_definition(self) -> dict: method emit_start (line 116) | def emit_start(self, placement: Placement) -> None: method _validate_file_id (line 124) | def _validate_file_id(self, raw_file_id: str) -> UUID: method _load_file (line 143) | def _load_file(self, file_id: UUID) -> InMemoryChatFile: method run (line 149) | def run( FILE: backend/onyx/tools/tool_implementations/images/image_generation_tool.py class ImageGenerationTool (line 51) | class ImageGenerationTool(Tool[ImageGenerationToolOverrideKwargs | None]): method __init__ (line 56) | def __init__( method id (line 77) | def id(self) -> int: method name (line 81) | def name(self) -> str: method description (line 85) | def description(self) -> str: method display_name (line 89) | def display_name(self) -> str: method is_available (line 94) | def is_available(cls, db_session: Session) -> bool: method tool_definition (line 121) | def tool_definition(self) -> dict: method emit_start (line 158) | def emit_start(self, placement: Placement) -> None: method _generate_image (line 166) | def _generate_image( method _resolve_reference_image_file_ids (line 254) | def _resolve_reference_image_file_ids( method _load_reference_images (line 315) | def _load_reference_images( method run (line 358) | def run( FILE: backend/onyx/tools/tool_implementations/images/models.py class ImageGenerationResponse (line 8) | class ImageGenerationResponse(BaseModel): class ImageShape (line 13) | class ImageShape(str, Enum): class FinalImageGenerationResponse (line 19) | class FinalImageGenerationResponse(BaseModel): FILE: backend/onyx/tools/tool_implementations/knowledge_graph/knowledge_graph_tool.py class KnowledgeGraphTool (line 17) | class KnowledgeGraphTool(Tool[None]): method __init__ (line 22) | def __init__(self, tool_id: int, emitter: Emitter) -> None: method id (line 32) | def id(self) -> int: method name (line 36) | def name(self) -> str: method description (line 40) | def description(self) -> str: method display_name (line 44) | def display_name(self) -> str: method is_available (line 48) | def is_available(cls, db_session: Session) -> bool: # noqa: ARG003 method tool_definition (line 53) | def tool_definition(self) -> dict: method emit_start (line 72) | def emit_start(self, placement: Placement) -> None: method run (line 75) | def run( FILE: backend/onyx/tools/tool_implementations/mcp/mcp_client.py class MCPMessageType (line 37) | class MCPMessageType(str, Enum): class ContentBlockTypes (line 45) | class ContentBlockTypes(str, Enum): class MCPMessage (line 55) | class MCPMessage(BaseModel): method to_dict (line 65) | def to_dict(self) -> Dict[str, Any]: function _create_mcp_client_function_runner (line 122) | def _create_mcp_client_function_runner( function log_exception_group (line 166) | def log_exception_group(e: ExceptionGroup) -> Exception | None: function _call_mcp_client_function_sync (line 179) | def _call_mcp_client_function_sync( function _call_mcp_client_function_async (line 203) | async def _call_mcp_client_function_async( function process_mcp_result (line 217) | def process_mcp_result(call_tool_result: CallToolResult) -> str: function _call_mcp_tool (line 237) | def _call_mcp_tool(tool_name: str, arguments: dict[str, Any]) -> MCPClie... function call_mcp_tool (line 246) | def call_mcp_tool( function initialize_mcp_client (line 264) | async def initialize_mcp_client( function _discover_mcp_tools (line 279) | async def _discover_mcp_tools(session: ClientSession) -> list[MCPLibTool]: function discover_mcp_tools (line 294) | def discover_mcp_tools( function _discover_mcp_resources (line 312) | async def _discover_mcp_resources(session: ClientSession) -> ListResourc... function discover_mcp_resources_sync (line 316) | def discover_mcp_resources_sync( FILE: backend/onyx/tools/tool_implementations/mcp/mcp_tool.py class MCPTool (line 39) | class MCPTool(Tool[None]): method __init__ (line 42) | def __init__( method id (line 73) | def id(self) -> int: method name (line 77) | def name(self) -> str: method description (line 81) | def description(self) -> str: method display_name (line 85) | def display_name(self) -> str: method llm_name (line 89) | def llm_name(self) -> str: method tool_definition (line 92) | def tool_definition(self) -> dict: method emit_start (line 104) | def emit_start(self, placement: Placement) -> None: method run (line 112) | def run( FILE: backend/onyx/tools/tool_implementations/memory/memory_tool.py class MemoryToolOverrideKwargs (line 37) | class MemoryToolOverrideKwargs(BaseModel): class MemoryTool (line 48) | class MemoryTool(Tool[MemoryToolOverrideKwargs]): method __init__ (line 53) | def __init__( method id (line 64) | def id(self) -> int: method name (line 68) | def name(self) -> str: method description (line 72) | def description(self) -> str: method display_name (line 76) | def display_name(self) -> str: method tool_definition (line 80) | def tool_definition(self) -> dict: method emit_start (line 105) | def emit_start(self, placement: Placement) -> None: method run (line 109) | def run( FILE: backend/onyx/tools/tool_implementations/memory/models.py class MemoryToolResponse (line 4) | class MemoryToolResponse(BaseModel): FILE: backend/onyx/tools/tool_implementations/open_url/firecrawl.py class ExtractedContentFields (line 26) | class ExtractedContentFields: class FirecrawlClient (line 32) | class FirecrawlClient(WebContentProvider): method __init__ (line 33) | def __init__( method last_error (line 50) | def last_error(self) -> str | None: method contents (line 53) | def contents(self, urls: Sequence[str]) -> list[WebContent]: method _get_webpage_content_safe (line 62) | def _get_webpage_content_safe(self, url: str) -> WebContent: method _get_webpage_content (line 77) | def _get_webpage_content(self, url: str) -> WebContent: method _extract_content_fields (line 126) | def _extract_content_fields( FILE: backend/onyx/tools/tool_implementations/open_url/models.py class WebContent (line 12) | class WebContent(BaseModel): method normalize_link (line 21) | def normalize_link(cls, v: str) -> str: class WebContentProvider (line 25) | class WebContentProvider(ABC): method contents (line 27) | def contents(self, urls: Sequence[str]) -> list[WebContent]: FILE: backend/onyx/tools/tool_implementations/open_url/onyx_web_crawler.py function _failed_result (line 33) | def _failed_result(url: str) -> WebContent: class OnyxWebCrawler (line 43) | class OnyxWebCrawler(WebContentProvider): method __init__ (line 50) | def __init__( method contents (line 68) | def contents(self, urls: Sequence[str]) -> list[WebContent]: method _fetch_url_safe (line 76) | def _fetch_url_safe(self, url: str) -> WebContent: method _fetch_url (line 88) | def _fetch_url(self, url: str) -> WebContent: FILE: backend/onyx/tools/tool_implementations/open_url/open_url_tool.py class IndexedDocumentRequest (line 72) | class IndexedDocumentRequest(BaseModel): class IndexedRetrievalResult (line 77) | class IndexedRetrievalResult(BaseModel): function _dedupe_preserve_order (line 82) | def _dedupe_preserve_order(values: list[str]) -> list[str]: function _normalize_string_list (line 95) | def _normalize_string_list(value: str | list[str] | None) -> list[str]: function _url_lookup_variants (line 109) | def _url_lookup_variants(url: str) -> set[str]: function _lookup_document_ids_by_link (line 127) | def _lookup_document_ids_by_link( function _dedupe_document_requests (line 167) | def _dedupe_document_requests( function _resolve_urls_to_document_ids (line 181) | def _resolve_urls_to_document_ids( function _estimate_result_chars (line 251) | def _estimate_result_chars(result: dict[str, Any]) -> int: function _convert_sections_to_llm_string_with_citations (line 260) | def _convert_sections_to_llm_string_with_citations( class OpenURLTool (line 358) | class OpenURLTool(Tool[OpenURLToolOverrideKwargs]): method __init__ (line 363) | def __init__( method id (line 400) | def id(self) -> int: method name (line 404) | def name(self) -> str: method description (line 408) | def description(self) -> str: method display_name (line 412) | def display_name(self) -> str: method is_available (line 417) | def is_available(cls, db_session: Session) -> bool: # noqa: ARG003 method tool_definition (line 433) | def tool_definition(self) -> dict: method emit_start (line 456) | def emit_start(self, placement: Placement) -> None: method run (line 465) | def run( method _fallback_link_lookup (line 648) | def _fallback_link_lookup( method _retrieve_indexed_documents_with_filters (line 703) | def _retrieve_indexed_documents_with_filters( method _build_index_filters (line 758) | def _build_index_filters(self, db_session: Session) -> IndexFilters: method _merge_indexed_and_crawled_results (line 770) | def _merge_indexed_and_crawled_results( method _fetch_web_content (line 828) | def _fetch_web_content( FILE: backend/onyx/tools/tool_implementations/open_url/snippet_matcher.py class SnippetMatchResult (line 11) | class SnippetMatchResult(BaseModel): function find_snippet_in_content (line 21) | def find_snippet_in_content(content: str, snippet: str) -> SnippetMatchR... function _normalize_and_match (line 46) | def _normalize_and_match(content: str, snippet: str) -> SnippetMatchResult: function _normalize_text_with_mapping (line 98) | def _normalize_text_with_mapping(text: str) -> tuple[str, list[int]]: function _token_based_match (line 214) | def _token_based_match( FILE: backend/onyx/tools/tool_implementations/open_url/url_normalization.py function _default_url_normalizer (line 22) | def _default_url_normalizer(url: str) -> str | None: function normalize_url (line 39) | def normalize_url(url: str, source_type: DocumentSource | None = None) -... function _detect_source_type (line 67) | def _detect_source_type(url: str) -> DocumentSource | None: FILE: backend/onyx/tools/tool_implementations/open_url/utils.py function filter_web_contents_with_no_title_or_content (line 4) | def filter_web_contents_with_no_title_or_content( FILE: backend/onyx/tools/tool_implementations/python/code_interpreter_client.py class FileInput (line 22) | class FileInput(TypedDict): class WorkspaceFile (line 29) | class WorkspaceFile(BaseModel): class ExecuteResponse (line 37) | class ExecuteResponse(BaseModel): class StreamOutputEvent (line 48) | class StreamOutputEvent(BaseModel): class StreamResultEvent (line 55) | class StreamResultEvent(BaseModel): class StreamErrorEvent (line 64) | class StreamErrorEvent(BaseModel): class CodeInterpreterClient (line 81) | class CodeInterpreterClient: method __init__ (line 84) | def __init__(self, base_url: str | None = CODE_INTERPRETER_BASE_URL): method __enter__ (line 91) | def __enter__(self) -> CodeInterpreterClient: method __exit__ (line 94) | def __exit__(self, *args: object) -> None: method close (line 97) | def close(self) -> None: method _build_payload (line 103) | def _build_payload( method health (line 120) | def health(self, use_cache: bool = False) -> bool: method execute (line 147) | def execute( method execute_streaming (line 163) | def execute_streaming( method _parse_sse (line 201) | def _parse_sse( method _batch_as_stream (line 239) | def _batch_as_stream( method upload_file (line 260) | def upload_file(self, file_content: bytes, filename: str) -> str: method download_file (line 270) | def download_file(self, file_id: str) -> bytes: method delete_file (line 279) | def delete_file(self, file_id: str) -> None: FILE: backend/onyx/tools/tool_implementations/python/python_tool.py function _truncate_output (line 51) | def _truncate_output(output: str, max_length: int, label: str = "output"... class PythonTool (line 72) | class PythonTool(Tool[PythonToolOverrideKwargs]): method __init__ (line 84) | def __init__(self, tool_id: int, emitter: Emitter) -> None: method id (line 97) | def id(self) -> int: method name (line 101) | def name(self) -> str: method description (line 105) | def description(self) -> str: method display_name (line 109) | def display_name(self) -> str: method is_available (line 114) | def is_available(cls, db_session: Session) -> bool: method tool_definition (line 124) | def tool_definition(self) -> dict: method emit_start (line 143) | def emit_start(self, placement: Placement) -> None: method run (line 149) | def run( method should_emit_argument_deltas (line 387) | def should_emit_argument_deltas(cls) -> bool: FILE: backend/onyx/tools/tool_implementations/search/search_tool.py function deduplicate_queries (line 135) | def deduplicate_queries( function _estimate_section_tokens (line 159) | def _estimate_section_tokens( function _trim_sections_by_tokens (line 190) | def _trim_sections_by_tokens( class SearchTool (line 230) | class SearchTool(Tool[SearchToolOverrideKwargs]): method __init__ (line 235) | def __init__( method _prefetch_slack_data (line 273) | def _prefetch_slack_data( method _run_slack_search (line 377) | def _run_slack_search( method _run_search_for_query (line 424) | def _run_search_for_query( method is_available (line 473) | def is_available(cls, db_session: Session) -> bool: method id (line 495) | def id(self) -> int: method name (line 499) | def name(self) -> str: method description (line 503) | def description(self) -> str: method display_name (line 507) | def display_name(self) -> str: method tool_definition (line 512) | def tool_definition(self) -> dict: method emit_start (line 532) | def emit_start(self, placement: Placement) -> None: method run (line 541) | def run( FILE: backend/onyx/tools/tool_implementations/search/search_utils.py function weighted_reciprocal_rank_fusion (line 30) | def weighted_reciprocal_rank_fusion( function section_to_dict (line 116) | def section_to_dict(section: InferenceSection, section_num: int) -> dict: function _retrieve_adjacent_chunks (line 131) | def _retrieve_adjacent_chunks( function merge_overlapping_sections (line 210) | def merge_overlapping_sections( function expand_section_with_context (line 353) | def expand_section_with_context( FILE: backend/onyx/tools/tool_implementations/search_like_tool_utils.py function documents_to_indexing_documents (line 11) | def documents_to_indexing_documents( FILE: backend/onyx/tools/tool_implementations/utils.py function convert_inference_sections_to_llm_string (line 6) | def convert_inference_sections_to_llm_string( FILE: backend/onyx/tools/tool_implementations/web_search/clients/brave_client.py class RetryableBraveSearchError (line 23) | class RetryableBraveSearchError(Exception): class BraveClient (line 27) | class BraveClient(WebSearchProvider): method __init__ (line 28) | def __init__( method _build_search_params (line 66) | def _build_search_params(self, query: str) -> dict[str, str]: method _search_with_retries (line 89) | def _search_with_retries(self, query: str) -> list[WebSearchResult]: method search (line 139) | def search(self, query: str) -> list[WebSearchResult]: method test_connection (line 145) | def test_connection(self) -> dict[str, str]: function _build_error_message (line 182) | def _build_error_message(response: requests.Response) -> str: function _extract_error_detail (line 186) | def _extract_error_detail(response: requests.Response) -> str: function _is_retryable_status (line 209) | def _is_retryable_status(status_code: int) -> bool: function _clean_string (line 213) | def _clean_string(value: Any) -> str: function _normalize_country (line 217) | def _normalize_country(country: str | None) -> str | None: function _normalize_language_code (line 230) | def _normalize_language_code(value: str | None, *, field_name: str) -> s... function _normalize_option (line 241) | def _normalize_option( FILE: backend/onyx/tools/tool_implementations/web_search/clients/exa_client.py class ExaWithTimeout (line 28) | class ExaWithTimeout(Exa): method __init__ (line 35) | def __init__( method request (line 43) | def request( function _extract_site_operators (line 92) | def _extract_site_operators(query: str) -> tuple[str, list[str]]: class ExaClient (line 107) | class ExaClient(WebSearchProvider, WebContentProvider): method __init__ (line 108) | def __init__(self, api_key: str, num_results: int = 10) -> None: method supports_site_filter (line 113) | def supports_site_filter(self) -> bool: method _search_exa (line 116) | def _search_exa( method search (line 152) | def search(self, query: str) -> list[WebSearchResult]: method test_connection (line 166) | def test_connection(self) -> dict[str, str]: method contents (line 196) | def contents(self, urls: Sequence[str]) -> list[WebContent]: FILE: backend/onyx/tools/tool_implementations/web_search/clients/google_pse_client.py class GooglePSEClient (line 21) | class GooglePSEClient(WebSearchProvider): method __init__ (line 22) | def __init__( method search (line 36) | def search(self, query: str) -> list[WebSearchResult]: method test_connection (line 130) | def test_connection(self) -> dict[str, str]: FILE: backend/onyx/tools/tool_implementations/web_search/clients/searxng_client.py class SearXNGClient (line 16) | class SearXNGClient(WebSearchProvider): method __init__ (line 17) | def __init__( method search (line 27) | def search(self, query: str) -> list[WebSearchResult]: method test_connection (line 55) | def test_connection(self) -> dict[str, str]: method _test_json_mode (line 105) | def _test_json_mode(self) -> None: FILE: backend/onyx/tools/tool_implementations/web_search/clients/serper_client.py class SerperClient (line 29) | class SerperClient(WebSearchProvider, WebContentProvider): method __init__ (line 30) | def __init__(self, api_key: str, num_results: int = 10) -> None: method search (line 38) | def search(self, query: str) -> list[WebSearchResult]: method test_connection (line 77) | def test_connection(self) -> dict[str, str]: method contents (line 106) | def contents(self, urls: Sequence[str]) -> list[WebContent]: method _get_webpage_content (line 128) | def _get_webpage_content(self, url: str) -> WebContent: function extract_title_from_metadata (line 182) | def extract_title_from_metadata(metadata: dict[str, str]) -> str | None: function extract_published_date_from_jsonld (line 187) | def extract_published_date_from_jsonld(jsonld: dict[str, str]) -> str | ... function extract_value_from_dict (line 192) | def extract_value_from_dict(data: dict[str, str], keys: list[str]) -> st... FILE: backend/onyx/tools/tool_implementations/web_search/models.py class ProviderType (line 19) | class ProviderType(Enum): class WebSearchResult (line 26) | class WebSearchResult(BaseModel): method normalize_link (line 35) | def normalize_link(cls, v: str) -> str: class WebSearchProvider (line 39) | class WebSearchProvider: method supports_site_filter (line 41) | def supports_site_filter(self) -> bool: method search (line 48) | def search(self, query: str) -> Sequence[WebSearchResult]: method test_connection (line 52) | def test_connection(self) -> dict[str, str]: class WebContentProviderConfig (line 56) | class WebContentProviderConfig(BaseModel): FILE: backend/onyx/tools/tool_implementations/web_search/providers.py function _parse_positive_int_config (line 41) | def _parse_positive_int_config( function provider_requires_api_key (line 63) | def provider_requires_api_key(provider_type: WebSearchProviderType) -> b... function build_search_provider_from_config (line 71) | def build_search_provider_from_config( function _build_search_provider (line 133) | def _build_search_provider(provider_model: InternetSearchProvider) -> We... function build_content_provider_from_config (line 145) | def build_content_provider_from_config( function get_default_provider (line 178) | def get_default_provider() -> WebSearchProvider | None: function get_default_content_provider (line 186) | def get_default_content_provider() -> WebContentProvider: FILE: backend/onyx/tools/tool_implementations/web_search/utils.py function filter_web_search_results_with_no_title_or_snippet (line 19) | def filter_web_search_results_with_no_title_or_snippet( function truncate_search_result_content (line 35) | def truncate_search_result_content( function _truncate_content_around_snippet (line 44) | def _truncate_content_around_snippet( function _expand_range_centered (line 76) | def _expand_range_centered( function inference_section_from_internet_page_scrape (line 118) | def inference_section_from_internet_page_scrape( function inference_section_from_internet_search_result (line 164) | def inference_section_from_internet_search_result( function extract_url_snippet_map (line 199) | def extract_url_snippet_map(documents: list[SearchDoc]) -> dict[str, str]: FILE: backend/onyx/tools/tool_implementations/web_search/web_search_tool.py function _sanitize_query (line 47) | def _sanitize_query(query: str) -> str: function _normalize_queries_input (line 59) | def _normalize_queries_input(raw: Any) -> list[str]: class WebSearchTool (line 83) | class WebSearchTool(Tool[WebSearchToolOverrideKwargs]): method __init__ (line 88) | def __init__(self, tool_id: int, emitter: Emitter) -> None: method id (line 117) | def id(self) -> int: method name (line 121) | def name(self) -> str: method description (line 125) | def description(self) -> str: method display_name (line 129) | def display_name(self) -> str: method supports_site_filter (line 133) | def supports_site_filter(self) -> bool: method is_available (line 139) | def is_available(cls, db_session: Session) -> bool: method tool_definition (line 145) | def tool_definition(self) -> dict: method emit_start (line 167) | def emit_start(self, placement: Placement) -> None: method _safe_execute_single_search (line 175) | def _safe_execute_single_search( method run (line 198) | def run( FILE: backend/onyx/tools/tool_runner.py function _merge_tool_calls (line 58) | def _merge_tool_calls(tool_calls: list[ToolCallKickoff]) -> list[ToolCal... function _extract_image_file_ids_from_tool_response_message (line 113) | def _extract_image_file_ids_from_tool_response_message( function _extract_recent_generated_image_file_ids (line 136) | def _extract_recent_generated_image_file_ids( function _safe_run_single_tool (line 170) | def _safe_run_single_tool( function run_tool_calls (line 284) | def run_tool_calls( FILE: backend/onyx/tools/utils.py function explicit_tool_calling_supported (line 16) | def explicit_tool_calling_supported(model_provider: str, model_name: str... function compute_tool_tokens (line 30) | def compute_tool_tokens(tool: Tool, llm_tokenizer: BaseTokenizer) -> int: function compute_all_tool_tokens (line 34) | def compute_all_tool_tokens(tools: list[Tool], llm_tokenizer: BaseTokeni... function is_image_generation_available (line 38) | def is_image_generation_available(db_session: Session) -> bool: function is_document_search_available (line 47) | def is_document_search_available(db_session: Session) -> bool: function generate_tools_description (line 53) | def generate_tools_description(tools: list[Tool]) -> str: FILE: backend/onyx/tracing/braintrust_tracing_processor.py function _span_type (line 19) | def _span_type(span: Span[Any]) -> braintrust.SpanTypeAttribute: function _span_name (line 30) | def _span_name(span: Span[Any]) -> str: function _timestamp_from_maybe_iso (line 41) | def _timestamp_from_maybe_iso(timestamp: Optional[str]) -> Optional[float]: function _maybe_timestamp_elapsed (line 47) | def _maybe_timestamp_elapsed( class BraintrustTracingProcessor (line 57) | class BraintrustTracingProcessor(TracingProcessor): method __init__ (line 66) | def __init__(self, logger: Optional[braintrust.Logger] = None): method on_trace_start (line 74) | def on_trace_start(self, trace: Trace) -> None: method on_trace_end (line 102) | def on_trace_end(self, trace: Trace) -> None: method _agent_log_data (line 112) | def _agent_log_data(self, span: Span[AgentSpanData]) -> Dict[str, Any]: method _function_log_data (line 121) | def _function_log_data(self, span: Span[FunctionSpanData]) -> Dict[str... method _generation_log_data (line 127) | def _generation_log_data(self, span: Span[GenerationSpanData]) -> Dict... method _log_data (line 191) | def _log_data(self, span: Span[Any]) -> Dict[str, Any]: method on_span_start (line 201) | def on_span_start(self, span: Span[SpanData]) -> None: method on_span_end (line 227) | def on_span_end(self, span: Span[SpanData]) -> None: method shutdown (line 245) | def shutdown(self) -> None: method force_flush (line 251) | def force_flush(self) -> None: function _generation_span_name (line 258) | def _generation_span_name(span: Span[SpanData]) -> str: FILE: backend/onyx/tracing/framework/__init__.py function add_trace_processor (line 7) | def add_trace_processor(span_processor: TracingProcessor) -> None: function set_trace_processors (line 14) | def set_trace_processors(processors: list[TracingProcessor]) -> None: FILE: backend/onyx/tracing/framework/_error_tracing.py function attach_error_to_span (line 12) | def attach_error_to_span(span: Span[Any], error: SpanError) -> None: function attach_error_to_current_span (line 16) | def attach_error_to_current_span(error: SpanError) -> None: FILE: backend/onyx/tracing/framework/create.py function trace (line 24) | def trace( function ensure_trace (line 70) | def ensure_trace( function get_current_trace (line 96) | def get_current_trace() -> Trace | None: function get_current_span (line 101) | def get_current_span() -> Span[Any] | None: function agent_span (line 106) | def agent_span( function function_span (line 143) | def function_span( function generation_span (line 176) | def generation_span( FILE: backend/onyx/tracing/framework/processor_interface.py class TracingProcessor (line 10) | class TracingProcessor(abc.ABC): method on_trace_start (line 55) | def on_trace_start(self, trace: "Trace") -> None: method on_trace_end (line 68) | def on_trace_end(self, trace: "Trace") -> None: method on_span_start (line 81) | def on_span_start(self, span: "Span[Any]") -> None: method on_span_end (line 94) | def on_span_end(self, span: "Span[Any]") -> None: method shutdown (line 107) | def shutdown(self) -> None: method force_flush (line 117) | def force_flush(self) -> None: class TracingExporter (line 127) | class TracingExporter(abc.ABC): method export (line 131) | def export(self, items: list["Trace | Span[Any]"]) -> None: FILE: backend/onyx/tracing/framework/provider.py class SynchronousMultiTracingProcessor (line 25) | class SynchronousMultiTracingProcessor(TracingProcessor): method __init__ (line 30) | def __init__(self) -> None: method add_tracing_processor (line 35) | def add_tracing_processor(self, tracing_processor: TracingProcessor) -... method set_processors (line 42) | def set_processors(self, processors: list[TracingProcessor]) -> None: method on_trace_start (line 49) | def on_trace_start(self, trace: Trace) -> None: method on_trace_end (line 61) | def on_trace_end(self, trace: Trace) -> None: method on_span_start (line 73) | def on_span_start(self, span: Span[Any]) -> None: method on_span_end (line 85) | def on_span_end(self, span: Span[Any]) -> None: method shutdown (line 97) | def shutdown(self) -> None: method force_flush (line 108) | def force_flush(self) -> None: class TraceProvider (line 119) | class TraceProvider(ABC): method register_processor (line 123) | def register_processor(self, processor: TracingProcessor) -> None: method set_processors (line 127) | def set_processors(self, processors: list[TracingProcessor]) -> None: method get_current_trace (line 131) | def get_current_trace(self) -> Trace | None: method get_current_span (line 135) | def get_current_span(self) -> Span[Any] | None: method time_iso (line 139) | def time_iso(self) -> str: method gen_trace_id (line 143) | def gen_trace_id(self) -> str: method gen_span_id (line 147) | def gen_span_id(self) -> str: method gen_group_id (line 151) | def gen_group_id(self) -> str: method create_trace (line 155) | def create_trace( method create_span (line 166) | def create_span( method shutdown (line 176) | def shutdown(self) -> None: class DefaultTraceProvider (line 180) | class DefaultTraceProvider(TraceProvider): method __init__ (line 181) | def __init__(self) -> None: method register_processor (line 184) | def register_processor(self, processor: TracingProcessor) -> None: method set_processors (line 190) | def set_processors(self, processors: list[TracingProcessor]) -> None: method get_current_trace (line 196) | def get_current_trace(self) -> Trace | None: method get_current_span (line 202) | def get_current_span(self) -> Span[Any] | None: method time_iso (line 208) | def time_iso(self) -> str: method gen_trace_id (line 212) | def gen_trace_id(self) -> str: method gen_span_id (line 216) | def gen_span_id(self) -> str: method gen_group_id (line 220) | def gen_group_id(self) -> str: method create_trace (line 224) | def create_trace( method create_span (line 251) | def create_span( method shutdown (line 311) | def shutdown(self) -> None: FILE: backend/onyx/tracing/framework/scope.py class Scope (line 18) | class Scope: method get_current_span (line 24) | def get_current_span(cls) -> "Span[Any] | None": method set_current_span (line 28) | def set_current_span( method reset_current_span (line 34) | def reset_current_span(cls, token: "contextvars.Token[Span[Any] | None... method get_current_trace (line 38) | def get_current_trace(cls) -> "Trace | None": method set_current_trace (line 42) | def set_current_trace( method reset_current_trace (line 48) | def reset_current_trace(cls, token: "contextvars.Token[Trace | None]")... FILE: backend/onyx/tracing/framework/setup.py function set_trace_provider (line 11) | def set_trace_provider(provider: TraceProvider) -> None: function get_trace_provider (line 17) | def get_trace_provider() -> TraceProvider: FILE: backend/onyx/tracing/framework/span_data.py class SpanData (line 7) | class SpanData(abc.ABC): method export (line 13) | def export(self) -> dict[str, Any]: method type (line 18) | def type(self) -> str: class AgentSpanData (line 22) | class AgentSpanData(SpanData): method __init__ (line 30) | def __init__( method type (line 43) | def type(self) -> str: method export (line 46) | def export(self) -> dict[str, Any]: class FunctionSpanData (line 56) | class FunctionSpanData(SpanData): method __init__ (line 64) | def __init__( method type (line 77) | def type(self) -> str: method export (line 80) | def export(self) -> dict[str, Any]: class GenerationSpanData (line 90) | class GenerationSpanData(SpanData): method __init__ (line 106) | def __init__( method type (line 125) | def type(self) -> str: method export (line 128) | def export(self) -> dict[str, Any]: FILE: backend/onyx/tracing/framework/spans.py class SpanError (line 20) | class SpanError(TypedDict): class Span (line 32) | class Span(abc.ABC, Generic[TSpanData]): method trace_id (line 73) | def trace_id(self) -> str: method span_id (line 82) | def span_id(self) -> str: method span_data (line 91) | def span_data(self) -> TSpanData: method start (line 99) | def start(self, mark_as_current: bool = False) -> None: method finish (line 108) | def finish(self, reset_current: bool = False) -> None: method __enter__ (line 117) | def __enter__(self) -> Span[TSpanData]: method __exit__ (line 121) | def __exit__( method parent_id (line 131) | def parent_id(self) -> str | None: method set_error (line 139) | def set_error(self, error: SpanError) -> None: method error (line 144) | def error(self) -> SpanError | None: method export (line 152) | def export(self) -> dict[str, Any] | None: method started_at (line 157) | def started_at(self) -> str | None: method ended_at (line 166) | def ended_at(self) -> str | None: class NoOpSpan (line 174) | class NoOpSpan(Span[TSpanData]): method __init__ (line 185) | def __init__(self, span_data: TSpanData): method trace_id (line 190) | def trace_id(self) -> str: method span_id (line 194) | def span_id(self) -> str: method span_data (line 198) | def span_data(self) -> TSpanData: method parent_id (line 202) | def parent_id(self) -> str | None: method start (line 205) | def start(self, mark_as_current: bool = False) -> None: method finish (line 209) | def finish(self, reset_current: bool = False) -> None: method __enter__ (line 214) | def __enter__(self) -> Span[TSpanData]: method __exit__ (line 218) | def __exit__( method set_error (line 230) | def set_error(self, error: SpanError) -> None: method error (line 234) | def error(self) -> SpanError | None: method export (line 237) | def export(self) -> dict[str, Any] | None: method started_at (line 241) | def started_at(self) -> str | None: method ended_at (line 245) | def ended_at(self) -> str | None: class SpanImpl (line 249) | class SpanImpl(Span[TSpanData]): method __init__ (line 262) | def __init__( method trace_id (line 281) | def trace_id(self) -> str: method span_id (line 285) | def span_id(self) -> str: method span_data (line 289) | def span_data(self) -> TSpanData: method parent_id (line 293) | def parent_id(self) -> str | None: method start (line 296) | def start(self, mark_as_current: bool = False) -> None: method finish (line 305) | def finish(self, reset_current: bool = False) -> None: method __enter__ (line 315) | def __enter__(self) -> Span[TSpanData]: method __exit__ (line 319) | def __exit__( method set_error (line 331) | def set_error(self, error: SpanError) -> None: method error (line 335) | def error(self) -> SpanError | None: method started_at (line 339) | def started_at(self) -> str | None: method ended_at (line 343) | def ended_at(self) -> str | None: method export (line 346) | def export(self) -> dict[str, Any] | None: FILE: backend/onyx/tracing/framework/traces.py class Trace (line 16) | class Trace(abc.ABC): method __enter__ (line 49) | def __enter__(self) -> Trace: method __exit__ (line 53) | def __exit__( method start (line 62) | def start(self, mark_as_current: bool = False) -> None: method finish (line 76) | def finish(self, reset_current: bool = False) -> None: method trace_id (line 91) | def trace_id(self) -> str: method name (line 105) | def name(self) -> str: method export (line 118) | def export(self) -> dict[str, Any] | None: class NoOpTrace (line 131) | class NoOpTrace(Trace): method __init__ (line 146) | def __init__(self) -> None: method __enter__ (line 150) | def __enter__(self) -> Trace: method __exit__ (line 159) | def __exit__( method start (line 167) | def start(self, mark_as_current: bool = False) -> None: method finish (line 171) | def finish(self, reset_current: bool = False) -> None: method trace_id (line 177) | def trace_id(self) -> str: method name (line 186) | def name(self) -> str: method export (line 194) | def export(self) -> dict[str, Any] | None: class TraceImpl (line 206) | class TraceImpl(Trace): method __init__ (line 221) | def __init__( method trace_id (line 238) | def trace_id(self) -> str: method name (line 242) | def name(self) -> str: method start (line 245) | def start(self, mark_as_current: bool = False) -> None: method finish (line 255) | def finish(self, reset_current: bool = False) -> None: method __enter__ (line 265) | def __enter__(self) -> Trace: method __exit__ (line 272) | def __exit__( method export (line 280) | def export(self) -> dict[str, Any] | None: FILE: backend/onyx/tracing/framework/util.py function time_iso (line 6) | def time_iso() -> str: function gen_trace_id (line 11) | def gen_trace_id() -> str: function gen_span_id (line 16) | def gen_span_id() -> str: FILE: backend/onyx/tracing/langfuse_tracing_processor.py function _timestamp_from_maybe_iso (line 26) | def _timestamp_from_maybe_iso(timestamp: Optional[str]) -> Optional[date... class LangfuseTracingProcessor (line 36) | class LangfuseTracingProcessor(TracingProcessor): method __init__ (line 44) | def __init__( method _get_client (line 67) | def _get_client(self) -> Langfuse: method _mask_if_enabled (line 75) | def _mask_if_enabled(self, data: Any) -> Any: method _calculate_cost (line 87) | def _calculate_cost(self, data: GenerationSpanData) -> Optional[float]: method on_trace_start (line 111) | def on_trace_start(self, trace: Trace) -> None: method on_trace_end (line 145) | def on_trace_end(self, trace: Trace) -> None: method on_span_start (line 168) | def on_span_start(self, span: Span[SpanData]) -> None: method on_span_end (line 262) | def on_span_end(self, span: Span[SpanData]) -> None: method _get_generation_name (line 332) | def _get_generation_name(self, data: GenerationSpanData) -> str: method _get_model_parameters (line 338) | def _get_model_parameters( method _get_usage_details (line 357) | def _get_usage_details(self, data: GenerationSpanData) -> Optional[dic... method force_flush (line 385) | def force_flush(self) -> None: method shutdown (line 394) | def shutdown(self) -> None: FILE: backend/onyx/tracing/llm_utils.py function build_llm_model_config (line 18) | def build_llm_model_config(llm: LLM, flow: str | None = None) -> dict[st... function llm_generation_span (line 29) | def llm_generation_span( function record_llm_response (line 53) | def record_llm_response( function record_llm_span_output (line 90) | def record_llm_span_output( function _build_usage_dict (line 130) | def _build_usage_dict(usage: Any | None) -> dict[str, Any] | None: FILE: backend/onyx/tracing/masking.py function _truncate_str (line 12) | def _truncate_str(s: str) -> str: function mask_sensitive_data (line 22) | def mask_sensitive_data(data: Any) -> Any: FILE: backend/onyx/tracing/setup.py function setup_tracing (line 15) | def setup_tracing() -> list[str]: function _setup_braintrust (line 64) | def _setup_braintrust() -> None: function _setup_langfuse (line 80) | def _setup_langfuse() -> None: FILE: backend/onyx/utils/b64.py function get_image_type_from_bytes (line 4) | def get_image_type_from_bytes(raw_b64_bytes: bytes) -> str: function get_image_type (line 23) | def get_image_type(raw_b64_string: str) -> str: FILE: backend/onyx/utils/batching.py function batch_generator (line 10) | def batch_generator( FILE: backend/onyx/utils/callbacks.py class MetricsHander (line 7) | class MetricsHander(Generic[T]): method __init__ (line 8) | def __init__(self) -> None: method record_metric (line 11) | def record_metric(self, metrics: T) -> None: FILE: backend/onyx/utils/encryption.py function _encrypt_string (line 14) | def _encrypt_string(input_str: str, key: str | None = None) -> bytes: function _decrypt_bytes (line 23) | def _decrypt_bytes(input_bytes: bytes, key: str | None = None) -> str: function mask_string (line 31) | def mask_string(sensitive_str: str) -> str: function mask_credential_dict (line 53) | def mask_credential_dict(credential_dict: dict[str, Any]) -> dict[str, A... function _mask_list (line 77) | def _mask_list(items: list[Any]) -> list[Any]: function encrypt_string_to_bytes (line 93) | def encrypt_string_to_bytes(intput_str: str, key: str | None = None) -> ... function decrypt_bytes_to_string (line 100) | def decrypt_bytes_to_string(intput_bytes: bytes, key: str | None = None)... FILE: backend/onyx/utils/error_handling.py function handle_connector_error (line 11) | def handle_connector_error(e: Exception, context: str) -> None: FILE: backend/onyx/utils/errors.py class EERequiredError (line 1) | class EERequiredError(Exception): FILE: backend/onyx/utils/file.py class FileWithMimeType (line 11) | class FileWithMimeType(BaseModel): class OnyxStaticFileManager (line 16) | class OnyxStaticFileManager: method get_static (line 21) | def get_static(filename: str) -> FileWithMimeType | None: FILE: backend/onyx/utils/gpu_utils.py function _get_gpu_status_from_model_server (line 16) | def _get_gpu_status_from_model_server(indexing: bool) -> bool: function gpu_status_request (line 39) | def gpu_status_request(indexing: bool) -> bool: function fast_gpu_status_request (line 44) | def fast_gpu_status_request(indexing: bool) -> bool: FILE: backend/onyx/utils/headers.py class HeaderItemDict (line 13) | class HeaderItemDict(TypedDict): function clean_header_list (line 18) | def clean_header_list(headers_to_clean: list[HeaderItemDict]) -> dict[st... function header_dict_to_header_list (line 32) | def header_dict_to_header_list(header_dict: dict[str, str]) -> list[Head... function header_list_to_header_dict (line 36) | def header_list_to_header_dict(header_list: list[HeaderItemDict]) -> dic... function get_relevant_headers (line 40) | def get_relevant_headers( function get_litellm_additional_request_headers (line 59) | def get_litellm_additional_request_headers( function build_llm_extra_headers (line 65) | def build_llm_extra_headers( function get_custom_tool_additional_request_headers (line 76) | def get_custom_tool_additional_request_headers( FILE: backend/onyx/utils/jsonriver/parse.py class _StateEnum (line 27) | class _StateEnum(IntEnum): class _State (line 37) | class _State: class _InitialState (line 44) | class _InitialState(_State): method __init__ (line 47) | def __init__(self) -> None: class _InStringState (line 52) | class _InStringState(_State): method __init__ (line 55) | def __init__(self) -> None: class _InArrayState (line 60) | class _InArrayState(_State): method __init__ (line 63) | def __init__(self) -> None: class _InObjectExpectingKeyState (line 68) | class _InObjectExpectingKeyState(_State): method __init__ (line 71) | def __init__(self) -> None: class _InObjectExpectingValueState (line 76) | class _InObjectExpectingValueState(_State): method __init__ (line 79) | def __init__(self, key: str, obj: JsonObject) -> None: class _Unset (line 85) | class _Unset: class _Parser (line 92) | class _Parser: method __init__ (line 100) | def __init__(self) -> None: method feed (line 109) | def feed(self, chunk: str) -> list[JsonValue]: method _compute_delta (line 124) | def _compute_delta(prev: JsonValue | None, current: JsonValue) -> Json... method finish (line 174) | def finish(self) -> list[JsonValue]: method _collect_deltas (line 187) | def _collect_deltas(self) -> list[JsonValue]: method handle_null (line 215) | def handle_null(self) -> None: method handle_boolean (line 219) | def handle_boolean(self, value: bool) -> None: method handle_number (line 223) | def handle_number(self, value: float) -> None: method handle_string_start (line 227) | def handle_string_start(self) -> None: method handle_string_middle (line 255) | def handle_string_middle(self, value: str) -> None: method handle_string_end (line 278) | def handle_string_end(self) -> None: method handle_array_start (line 292) | def handle_array_start(self) -> None: method handle_array_end (line 296) | def handle_array_end(self) -> None: method handle_object_start (line 305) | def handle_object_start(self) -> None: method handle_object_end (line 309) | def handle_object_end(self) -> None: method _current_state (line 325) | def _current_state(self) -> _State: method _handle_value_token (line 331) | def _handle_value_token(self, token_type: JsonTokenType, value: JsonVa... method _update_string_parent (line 368) | def _update_string_parent(self, updated: str, parent_state: _State | N... method _progress_value (line 392) | def _progress_value(self, token_type: JsonTokenType, value: JsonValue)... FILE: backend/onyx/utils/jsonriver/tokenize.py class TokenHandler (line 16) | class TokenHandler(Protocol): method handle_null (line 19) | def handle_null(self) -> None: ... method handle_boolean (line 20) | def handle_boolean(self, value: bool) -> None: ... method handle_number (line 21) | def handle_number(self, value: float) -> None: ... method handle_string_start (line 22) | def handle_string_start(self) -> None: ... method handle_string_middle (line 23) | def handle_string_middle(self, value: str) -> None: ... method handle_string_end (line 24) | def handle_string_end(self) -> None: ... method handle_array_start (line 25) | def handle_array_start(self) -> None: ... method handle_array_end (line 26) | def handle_array_end(self) -> None: ... method handle_object_start (line 27) | def handle_object_start(self) -> None: ... method handle_object_end (line 28) | def handle_object_end(self) -> None: ... class JsonTokenType (line 31) | class JsonTokenType(IntEnum): function json_token_type_to_string (line 46) | def json_token_type_to_string(token_type: JsonTokenType) -> str: class _State (line 63) | class _State(IntEnum): function _parse_json_number (line 80) | def _parse_json_number(s: str) -> float: class _Input (line 87) | class _Input: method __init__ (line 95) | def __init__(self) -> None: method feed (line 100) | def feed(self, chunk: str) -> None: method mark_complete (line 104) | def mark_complete(self) -> None: method length (line 109) | def length(self) -> int: method advance (line 113) | def advance(self, length: int) -> None: method peek (line 117) | def peek(self, offset: int) -> str | None: method peek_char_code (line 124) | def peek_char_code(self, offset: int) -> int: method slice (line 128) | def slice(self, start: int, end: int) -> str: method commit (line 132) | def commit(self) -> None: method remaining (line 138) | def remaining(self) -> str: method expect_end_of_content (line 142) | def expect_end_of_content(self) -> None: method skip_past_whitespace (line 149) | def skip_past_whitespace(self) -> None: method try_to_take_prefix (line 160) | def try_to_take_prefix(self, prefix: str) -> bool: method try_to_take (line 167) | def try_to_take(self, length: int) -> str | None: method try_to_take_char_code (line 175) | def try_to_take_char_code(self) -> int | None: method take_until_quote_or_backslash (line 183) | def take_until_quote_or_backslash(self) -> tuple[str, bool]: class Tokenizer (line 206) | class Tokenizer: method __init__ (line 214) | def __init__(self, input: _Input, handler: TokenHandler) -> None: method is_done (line 220) | def is_done(self) -> bool: method pump (line 224) | def pump(self) -> None: method _tokenize_more (line 233) | def _tokenize_more(self) -> None: method _tokenize_value (line 257) | def _tokenize_value(self) -> None: method _tokenize_string (line 327) | def _tokenize_string(self) -> None: method _tokenize_array_start (line 401) | def _tokenize_array_start(self) -> None: method _tokenize_after_array_value (line 418) | def _tokenize_after_array_value(self) -> None: method _tokenize_object_start (line 437) | def _tokenize_object_start(self) -> None: method _tokenize_after_object_key (line 460) | def _tokenize_after_object_key(self) -> None: method _tokenize_after_object_value (line 476) | def _tokenize_after_object_value(self) -> None: method _tokenize_before_object_key (line 498) | def _tokenize_before_object_key(self) -> None: FILE: backend/onyx/utils/logger.py class LoggerContextVars (line 31) | class LoggerContextVars: method reset (line 33) | def reset() -> None: function get_log_level_from_str (line 38) | def get_log_level_from_str(log_level_str: str = LOG_LEVEL) -> int: class OnyxRequestIDFilter (line 52) | class OnyxRequestIDFilter(logging.Filter): method filter (line 53) | def filter(self, record: logging.LogRecord) -> bool: class OnyxLoggingAdapter (line 60) | class OnyxLoggingAdapter(logging.LoggerAdapter): method process (line 61) | def process( method notice (line 113) | def notice(self, msg: Any, *args: Any, **kwargs: Any) -> None: class PlainFormatter (line 120) | class PlainFormatter(logging.Formatter): method format (line 123) | def format(self, record: logging.LogRecord) -> str: class ColoredFormatter (line 130) | class ColoredFormatter(logging.Formatter): method format (line 143) | def format(self, record: logging.LogRecord) -> str: function get_uvicorn_standard_formatter (line 156) | def get_uvicorn_standard_formatter() -> ColoredFormatter: function get_standard_formatter (line 164) | def get_standard_formatter() -> ColoredFormatter: function is_running_in_container (line 175) | def is_running_in_container() -> bool: function setup_logger (line 179) | def setup_logger( function setup_uvicorn_logger (line 242) | def setup_uvicorn_logger( function print_loggers (line 268) | def print_loggers() -> None: function format_error_for_logging (line 290) | def format_error_for_logging(e: Exception) -> str: FILE: backend/onyx/utils/long_term_log.py class LongTermLogger (line 17) | class LongTermLogger: method __init__ (line 21) | def __init__( method _cleanup_old_files (line 37) | def _cleanup_old_files(self, category_path: Path) -> None: method _record (line 60) | def _record(self, message: Any, category: str) -> None: method record (line 85) | def record(self, message: JSON_ro, category: str = "default") -> None: method fetch_category (line 96) | def fetch_category( FILE: backend/onyx/utils/middleware.py function add_onyx_tenant_id_middleware (line 21) | def add_onyx_tenant_id_middleware( function add_onyx_request_id_middleware (line 37) | def add_onyx_request_id_middleware( function make_randomized_onyx_request_id (line 62) | def make_randomized_onyx_request_id(prefix: str) -> str: function make_structured_onyx_request_id (line 69) | def make_structured_onyx_request_id(prefix: str, request_url: str) -> str: function _make_onyx_request_id (line 75) | def _make_onyx_request_id(prefix: str, hash_input: str) -> str: function _build_route_map (line 87) | def _build_route_map(app: FastAPI) -> list[tuple[re.Pattern[str], str]]: function _match_route (line 100) | def _match_route(route_map: list[tuple[re.Pattern[str], str]], path: str... function add_endpoint_context_middleware (line 108) | def add_endpoint_context_middleware(app: FastAPI) -> None: FILE: backend/onyx/utils/object_size_check.py function deep_getsizeof (line 7) | def deep_getsizeof(obj: T, seen: set[int] | None = None) -> int: FILE: backend/onyx/utils/postgres_sanitization.py function sanitize_string (line 15) | def sanitize_string(value: str) -> str: function sanitize_json_like (line 31) | def sanitize_json_like(value: Any) -> Any: function _sanitize_expert_info (line 52) | def _sanitize_expert_info(expert: BasicExpertInfo) -> BasicExpertInfo: function _sanitize_external_access (line 82) | def _sanitize_external_access(external_access: ExternalAccess) -> Extern... function sanitize_document_for_postgres (line 95) | def sanitize_document_for_postgres(document: Document) -> Document: function sanitize_documents_for_postgres (line 144) | def sanitize_documents_for_postgres(documents: list[Document]) -> list[D... function sanitize_hierarchy_node_for_postgres (line 148) | def sanitize_hierarchy_node_for_postgres(node: HierarchyNode) -> Hierarc... function sanitize_hierarchy_nodes_for_postgres (line 166) | def sanitize_hierarchy_nodes_for_postgres( FILE: backend/onyx/utils/pydantic_util.py function shallow_model_dump (line 6) | def shallow_model_dump(model_instance: BaseModel) -> dict[str, Any]: FILE: backend/onyx/utils/retry_wrapper.py function retry_builder (line 19) | def retry_builder( function request_with_retries (line 49) | def request_with_retries( FILE: backend/onyx/utils/search_nlp_models_utils.py function pass_aws_key (line 1) | def pass_aws_key(api_key: str) -> tuple[str, str, str]: FILE: backend/onyx/utils/sensitive.py function make_mock_sensitive_value (line 26) | def make_mock_sensitive_value(value: dict[str, Any] | str | None) -> Mag... class SensitiveAccessError (line 53) | class SensitiveAccessError(Exception): class SensitiveValue (line 57) | class SensitiveValue(Generic[T]): method __init__ (line 79) | def __init__( method _decrypt (line 100) | def _decrypt(self) -> T: method get_value (line 111) | def get_value( method __bool__ (line 149) | def __bool__(self) -> bool: method __str__ (line 153) | def __str__(self) -> NoReturn: method __repr__ (line 159) | def __repr__(self) -> str: method __iter__ (line 163) | def __iter__(self) -> NoReturn: method __getitem__ (line 169) | def __getitem__(self, key: Any) -> NoReturn: method __eq__ (line 175) | def __eq__(self, other: Any) -> bool: method __hash__ (line 184) | def __hash__(self) -> int: method __json__ (line 192) | def __json__(self) -> Any: method __get_pydantic_core_schema__ (line 200) | def __get_pydantic_core_schema__(cls, source_type: Any, handler: Any) ... FILE: backend/onyx/utils/sitemap.py function _get_sitemap_locations_from_robots (line 13) | def _get_sitemap_locations_from_robots(base_url: str) -> Set[str]: function _extract_urls_from_sitemap (line 29) | def _extract_urls_from_sitemap(sitemap_url: str) -> Set[str]: function list_pages_for_site (line 62) | def list_pages_for_site(site: str) -> list[str]: FILE: backend/onyx/utils/subclasses.py function import_all_modules_from_dir (line 15) | def import_all_modules_from_dir(dir_path: str) -> List[ModuleType]: function import_all_submodules_from_package (line 38) | def import_all_submodules_from_package(package_name: str) -> List[Module... function all_subclasses (line 67) | def all_subclasses(cls: Type[T]) -> List[Type[T]]: function find_all_subclasses_in_dir (line 80) | def find_all_subclasses_in_dir(parent_class: Type[T], directory: str) ->... function find_all_subclasses_in_package (line 97) | def find_all_subclasses_in_package( class Animal (line 112) | class Animal: FILE: backend/onyx/utils/supervisord_watchdog.py function main (line 18) | def main(key: str, program: str, conf: str) -> None: FILE: backend/onyx/utils/telemetry.py class RecordType (line 35) | class RecordType(str, Enum): function _get_or_generate_customer_id_mt (line 49) | def _get_or_generate_customer_id_mt(tenant_id: str) -> str: function get_or_generate_uuid (line 53) | def get_or_generate_uuid() -> str: function _get_or_generate_instance_domain (line 75) | def _get_or_generate_instance_domain() -> str | None: # function optional_telemetry (line 99) | def optional_telemetry( function mt_cloud_telemetry (line 152) | def mt_cloud_telemetry( function mt_cloud_identify (line 179) | def mt_cloud_identify( function mt_cloud_alias (line 194) | def mt_cloud_alias( function mt_cloud_get_anon_id (line 209) | def mt_cloud_get_anon_id(request: Any) -> str | None: FILE: backend/onyx/utils/tenant.py function get_tenant_id_short_string (line 4) | def get_tenant_id_short_string(tenant_id: str) -> str: FILE: backend/onyx/utils/text_processing.py function normalize_curly_quotes (line 30) | def normalize_curly_quotes(text: str) -> str: function is_zero_width_char (line 37) | def is_zero_width_char(c: str) -> bool: function decode_escapes (line 77) | def decode_escapes(s: str) -> str: function make_url_compatible (line 84) | def make_url_compatible(s: str) -> str: function has_unescaped_quote (line 89) | def has_unescaped_quote(s: str) -> bool: function escape_newlines (line 94) | def escape_newlines(s: str) -> str: function replace_whitespaces_w_space (line 98) | def replace_whitespaces_w_space(s: str) -> str: function remove_punctuation (line 103) | def remove_punctuation(s: str) -> str: function escape_quotes (line 107) | def escape_quotes(original_json_str: str) -> str: function find_all_json_objects (line 131) | def find_all_json_objects(text: str) -> list[dict]: function parse_llm_json_response (line 176) | def parse_llm_json_response(content: str) -> dict | None: function clean_model_quote (line 225) | def clean_model_quote(quote: str, trim_length: int) -> str: function shared_precompare_cleanup (line 236) | def shared_precompare_cleanup(text: str) -> str: function clean_text (line 252) | def clean_text(text: str) -> str: function is_valid_email (line 262) | def is_valid_email(text: str) -> bool: function count_punctuation (line 272) | def count_punctuation(text: str) -> int: function remove_markdown_image_references (line 276) | def remove_markdown_image_references(text: str) -> str: function remove_invalid_unicode_chars (line 281) | def remove_invalid_unicode_chars(text: str) -> str: function normalize_char (line 292) | def normalize_char(c: str) -> str: FILE: backend/onyx/utils/threadpool_concurrency.py class ThreadSafeDict (line 39) | class ThreadSafeDict(MutableMapping[KT, VT]): method __init__ (line 57) | def __init__(self, input_dict: dict[KT, VT] | None = None) -> None: method __getitem__ (line 61) | def __getitem__(self, key: KT) -> VT: method __setitem__ (line 65) | def __setitem__(self, key: KT, value: VT) -> None: method __delitem__ (line 69) | def __delitem__(self, key: KT) -> None: method __iter__ (line 73) | def __iter__(self) -> Iterator[KT]: method __len__ (line 78) | def __len__(self) -> int: method __get_pydantic_core_schema__ (line 83) | def __get_pydantic_core_schema__( method validate (line 91) | def validate(cls, v: Any) -> "ThreadSafeDict[KT, VT]": method __deepcopy__ (line 96) | def __deepcopy__(self, memo: Any) -> "ThreadSafeDict[KT, VT]": method clear (line 99) | def clear(self) -> None: method copy (line 104) | def copy(self) -> dict[KT, VT]: method get (line 110) | def get(self, key: KT) -> VT | None: ... method get (line 113) | def get(self, key: KT, default: VT | _T) -> VT | _T: ... method get (line 115) | def get(self, key: KT, default: Any = None) -> Any: method pop (line 120) | def pop(self, key: KT, default: Any = None) -> Any: method setdefault (line 127) | def setdefault(self, key: KT, default: VT) -> VT: method update (line 132) | def update(self, *args: Any, **kwargs: VT) -> None: method items (line 137) | def items(self) -> collections.abc.ItemsView[KT, VT]: method keys (line 142) | def keys(self) -> collections.abc.KeysView[KT]: method values (line 147) | def values(self) -> collections.abc.ValuesView[VT]: method atomic_get_set (line 153) | def atomic_get_set( method atomic_get_set (line 158) | def atomic_get_set( method atomic_get_set (line 162) | def atomic_get_set( class ThreadSafeSet (line 180) | class ThreadSafeSet(Generic[ST]): method __init__ (line 201) | def __init__(self, input_set: set[ST] | None = None) -> None: method __contains__ (line 205) | def __contains__(self, item: ST) -> bool: method __len__ (line 209) | def __len__(self) -> int: method __iter__ (line 213) | def __iter__(self) -> Iterator[ST]: method __get_pydantic_core_schema__ (line 219) | def __get_pydantic_core_schema__( method validate (line 227) | def validate(cls, v: Any) -> "ThreadSafeSet[ST]": method __deepcopy__ (line 232) | def __deepcopy__(self, memo: Any) -> "ThreadSafeSet[ST]": method add (line 236) | def add(self, item: ST) -> None: method discard (line 241) | def discard(self, item: ST) -> None: method remove (line 246) | def remove(self, item: ST) -> None: method clear (line 251) | def clear(self) -> None: method copy (line 256) | def copy(self) -> set[ST]: method update (line 261) | def update(self, *others: set[ST]) -> None: method check_and_add (line 267) | def check_and_add(self, item: ST) -> bool: class CallableProtocol (line 280) | class CallableProtocol(Protocol): method __call__ (line 281) | def __call__(self, *args: Any, **kwargs: Any) -> Any: ... function run_functions_tuples_in_parallel (line 284) | def run_functions_tuples_in_parallel( class FunctionCall (line 393) | class FunctionCall(Generic[R]): method __init__ (line 399) | def __init__( method execute (line 407) | def execute(self) -> R: function run_functions_in_parallel (line 411) | def run_functions_in_parallel( function run_async_sync_no_cancel (line 446) | def run_async_sync_no_cancel(coro: Awaitable[T]) -> T: function run_multiple_in_background (line 461) | def run_multiple_in_background( class TimeoutThread (line 482) | class TimeoutThread(threading.Thread, Generic[R]): method __init__ (line 483) | def __init__( method run (line 493) | def run(self) -> None: method end (line 499) | def end(self) -> None: function run_with_timeout (line 505) | def run_with_timeout( function run_in_background (line 529) | def run_in_background( function wait_on_background (line 543) | def wait_on_background(task: TimeoutThread[R]) -> R: function _next_or_none (line 556) | def _next_or_none(ind: int, gen: Iterator[R]) -> tuple[int, R | None]: function parallel_yield (line 560) | def parallel_yield(gens: list[Iterator[R]], max_workers: int = 10) -> It... function parallel_yield_from_funcs (line 589) | def parallel_yield_from_funcs( FILE: backend/onyx/utils/timing.py function log_function_time (line 21) | def log_function_time( function log_generator_function_time (line 90) | def log_generator_function_time( FILE: backend/onyx/utils/url.py class SSRFException (line 32) | class SSRFException(Exception): function _is_ip_private_or_reserved (line 36) | def _is_ip_private_or_reserved(ip_str: str) -> bool: function _validate_and_resolve_url (line 60) | def _validate_and_resolve_url(url: str) -> tuple[str, str, int]: function validate_outbound_http_url (line 143) | def validate_outbound_http_url( function _make_ssrf_safe_request (line 199) | def _make_ssrf_safe_request( function ssrf_safe_get (line 257) | def ssrf_safe_get( function normalize_url (line 325) | def normalize_url(url: str) -> str: function add_url_params (line 353) | def add_url_params(url: str, params: dict) -> str: FILE: backend/onyx/utils/variable_functionality.py class OnyxVersion (line 20) | class OnyxVersion: method __init__ (line 21) | def __init__(self) -> None: method set_ee (line 24) | def set_ee(self) -> None: method unset_ee (line 27) | def unset_ee(self) -> None: method is_ee_version (line 30) | def is_ee_version(self) -> bool: function set_is_ee_based_on_env_variable (line 46) | def set_is_ee_based_on_env_variable() -> None: function fetch_versioned_implementation (line 70) | def fetch_versioned_implementation(module: str, attribute: str) -> Any: function fetch_versioned_implementation_with_fallback (line 125) | def fetch_versioned_implementation_with_fallback( function noop_fallback (line 147) | def noop_fallback(*args: Any, **kwargs: Any) -> None: function fetch_ee_implementation_or_noop (line 161) | def fetch_ee_implementation_or_noop( function build_api_server_url_for_http_requests (line 199) | def build_api_server_url_for_http_requests( FILE: backend/onyx/utils/web_content.py function _charset_from_content_type (line 21) | def _charset_from_content_type(content_type: str | None) -> str | None: function decode_html_bytes (line 32) | def decode_html_bytes( function is_pdf_mime_type (line 54) | def is_pdf_mime_type(content_type: str | None) -> bool: function is_pdf_url (line 61) | def is_pdf_url(url: str) -> bool: function has_pdf_signature (line 68) | def has_pdf_signature(content_sniff: bytes | None) -> bool: function is_pdf_resource (line 74) | def is_pdf_resource( function extract_pdf_text (line 86) | def extract_pdf_text(content: bytes) -> tuple[str, dict[str, str | list[... function title_from_pdf_metadata (line 91) | def title_from_pdf_metadata(metadata: dict[str, str | list[str]]) -> str: function normalize_metadata (line 105) | def normalize_metadata(metadata: dict[str, object]) -> dict[str, str | l... function title_from_url (line 122) | def title_from_url(url: str) -> str: FILE: backend/onyx/voice/factory.py function get_voice_provider (line 5) | def get_voice_provider(provider: VoiceProvider) -> VoiceProviderInterface: FILE: backend/onyx/voice/interface.py class TranscriptResult (line 9) | class TranscriptResult(BaseModel): class StreamingTranscriberProtocol (line 19) | class StreamingTranscriberProtocol(Protocol): method send_audio (line 22) | async def send_audio(self, chunk: bytes) -> None: method receive_transcript (line 26) | async def receive_transcript(self) -> TranscriptResult | None: method close (line 35) | async def close(self) -> str: method reset_transcript (line 39) | def reset_transcript(self) -> None: class StreamingSynthesizerProtocol (line 44) | class StreamingSynthesizerProtocol(Protocol): method connect (line 47) | async def connect(self) -> None: method send_text (line 51) | async def send_text(self, text: str) -> None: method receive_audio (line 55) | async def receive_audio(self) -> bytes | None: method flush (line 64) | async def flush(self) -> None: method close (line 68) | async def close(self) -> None: class VoiceProviderInterface (line 73) | class VoiceProviderInterface(ABC): method transcribe (line 77) | async def transcribe(self, audio_data: bytes, audio_format: str) -> str: method synthesize_stream (line 90) | def synthesize_stream( method validate_credentials (line 108) | async def validate_credentials(self) -> None: method get_available_voices (line 115) | def get_available_voices(self) -> list[dict[str, str]]: method get_available_stt_models (line 124) | def get_available_stt_models(self) -> list[dict[str, str]]: method get_available_tts_models (line 133) | def get_available_tts_models(self) -> list[dict[str, str]]: method supports_streaming_stt (line 141) | def supports_streaming_stt(self) -> bool: method supports_streaming_tts (line 145) | def supports_streaming_tts(self) -> bool: method create_streaming_transcriber (line 149) | async def create_streaming_transcriber( method create_streaming_synthesizer (line 166) | async def create_streaming_synthesizer( FILE: backend/onyx/voice/providers/azure.py class AzureStreamingTranscriber (line 63) | class AzureStreamingTranscriber(StreamingTranscriberProtocol): method __init__ (line 66) | def __init__( method connect (line 86) | async def connect(self) -> None: method send_audio (line 153) | async def send_audio(self, chunk: bytes) -> None: method _resample_pcm16 (line 158) | def _resample_pcm16(self, data: bytes) -> bytes: method receive_transcript (line 183) | async def receive_transcript(self) -> TranscriptResult | None: method close (line 190) | async def close(self) -> str: method reset_transcript (line 200) | def reset_transcript(self) -> None: class AzureStreamingSynthesizer (line 205) | class AzureStreamingSynthesizer(StreamingSynthesizerProtocol): method __init__ (line 208) | def __init__( method connect (line 227) | async def connect(self) -> None: method _on_synthesizing (line 270) | def _on_synthesizing(self, evt: Any) -> None: method _on_completed (line 278) | def _on_completed(self, _evt: Any) -> None: method send_text (line 283) | async def send_text(self, text: str) -> None: method receive_audio (line 297) | async def receive_audio(self) -> bytes | None: method flush (line 304) | async def flush(self) -> None: method close (line 308) | async def close(self) -> None: class AzureVoiceProvider (line 317) | class AzureVoiceProvider(VoiceProviderInterface): method __init__ (line 320) | def __init__( method _is_azure_cloud_url (line 343) | def _is_azure_cloud_url(uri: str | None) -> bool: method _extract_speech_region_from_uri (line 360) | def _extract_speech_region_from_uri(uri: str | None) -> str | None: method _validate_speech_region (line 396) | def _validate_speech_region(speech_region: str) -> str: method _get_stt_url (line 406) | def _get_stt_url(self) -> str: method _get_tts_url (line 414) | def _get_tts_url(self) -> str: method _is_self_hosted (line 422) | def _is_self_hosted(self) -> bool: method _pcm16_to_wav (line 427) | def _pcm16_to_wav(pcm_data: bytes, sample_rate: int = 24000) -> bytes: method transcribe (line 437) | async def transcribe(self, audio_data: bytes, audio_format: str) -> str: method synthesize_stream (line 483) | async def synthesize_stream( method validate_credentials (line 537) | async def validate_credentials(self) -> None: method get_available_voices (line 556) | def get_available_voices(self) -> list[dict[str, str]]: method get_available_stt_models (line 560) | def get_available_stt_models(self) -> list[dict[str, str]]: method get_available_tts_models (line 565) | def get_available_tts_models(self) -> list[dict[str, str]]: method supports_streaming_stt (line 570) | def supports_streaming_stt(self) -> bool: method supports_streaming_tts (line 574) | def supports_streaming_tts(self) -> bool: method create_streaming_transcriber (line 578) | async def create_streaming_transcriber( method create_streaming_synthesizer (line 600) | async def create_streaming_synthesizer( FILE: backend/onyx/voice/providers/elevenlabs.py class ElevenLabsSTTMessageType (line 52) | class ElevenLabsSTTMessageType(StrEnum): class ElevenLabsTTSMessageType (line 63) | class ElevenLabsTTSMessageType(StrEnum): function _http_to_ws_url (line 70) | def _http_to_ws_url(http_url: str) -> str: class ElevenLabsStreamingTranscriber (line 93) | class ElevenLabsStreamingTranscriber(StreamingTranscriberProtocol): method __init__ (line 96) | def __init__( method connect (line 126) | async def connect(self) -> None: method _receive_loop (line 174) | async def _receive_loop(self) -> None: method _resample_pcm16 (line 305) | def _resample_pcm16(self, data: bytes) -> bytes: method send_audio (line 334) | async def send_audio(self, chunk: bytes) -> None: method receive_transcript (line 367) | async def receive_transcript(self) -> TranscriptResult | None: method close (line 376) | async def close(self) -> str: method reset_transcript (line 399) | def reset_transcript(self) -> None: class ElevenLabsStreamingSynthesizer (line 404) | class ElevenLabsStreamingSynthesizer(StreamingSynthesizerProtocol): method __init__ (line 411) | def __init__( method connect (line 435) | async def connect(self) -> None: method _receive_loop (line 476) | async def _receive_loop(self) -> None: method send_text (line 539) | async def send_text(self, text: str) -> None: method receive_audio (line 569) | async def receive_audio(self) -> bytes | None: method flush (line 576) | async def flush(self) -> None: method close (line 592) | async def close(self) -> None: class ElevenLabsVoiceProvider (line 618) | class ElevenLabsVoiceProvider(VoiceProviderInterface): method __init__ (line 621) | def __init__( method transcribe (line 642) | async def transcribe(self, audio_data: bytes, audio_format: str) -> str: method synthesize_stream (line 707) | async def synthesize_stream( method validate_credentials (line 774) | async def validate_credentials(self) -> None: method get_available_voices (line 808) | def get_available_voices(self) -> list[dict[str, str]]: method get_available_stt_models (line 812) | def get_available_stt_models(self) -> list[dict[str, str]]: method get_available_tts_models (line 818) | def get_available_tts_models(self) -> list[dict[str, str]]: method supports_streaming_stt (line 825) | def supports_streaming_stt(self) -> bool: method supports_streaming_tts (line 829) | def supports_streaming_tts(self) -> bool: method create_streaming_transcriber (line 833) | async def create_streaming_transcriber( method create_streaming_synthesizer (line 854) | async def create_streaming_synthesizer( FILE: backend/onyx/voice/providers/openai.py class OpenAIRealtimeMessageType (line 36) | class OpenAIRealtimeMessageType(StrEnum): function _http_to_ws_url (line 50) | def _http_to_ws_url(http_url: str) -> str: class OpenAIStreamingTranscriber (line 59) | class OpenAIStreamingTranscriber(StreamingTranscriberProtocol): method __init__ (line 62) | def __init__( method connect (line 87) | async def connect(self) -> None: method _receive_loop (line 129) | async def _receive_loop(self) -> None: method send_audio (line 217) | async def send_audio(self, chunk: bytes) -> None: method reset_transcript (line 234) | def reset_transcript(self) -> None: method receive_transcript (line 240) | async def receive_transcript(self) -> TranscriptResult | None: method close (line 247) | async def close(self) -> str: function _create_wav_header (line 309) | def _create_wav_header( class OpenAIStreamingSynthesizer (line 341) | class OpenAIStreamingSynthesizer(StreamingSynthesizerProtocol): method __init__ (line 344) | def __init__( method connect (line 367) | async def connect(self) -> None: method _process_text_queue (line 375) | async def _process_text_queue(self) -> None: method _synthesize_text (line 390) | async def _synthesize_text(self, text: str) -> None: method send_text (line 427) | async def send_text(self, text: str) -> None: method receive_audio (line 433) | async def receive_audio(self) -> bytes | None: method flush (line 440) | async def flush(self) -> None: method close (line 466) | async def close(self) -> None: class OpenAIVoiceProvider (line 488) | class OpenAIVoiceProvider(VoiceProviderInterface): method __init__ (line 491) | def __init__( method _get_client (line 507) | def _get_client(self) -> "AsyncOpenAI": method transcribe (line 517) | async def transcribe(self, audio_data: bytes, audio_format: str) -> str: method synthesize_stream (line 541) | async def synthesize_stream( method validate_credentials (line 573) | async def validate_credentials(self) -> None: method get_available_voices (line 585) | def get_available_voices(self) -> list[dict[str, str]]: method get_available_stt_models (line 589) | def get_available_stt_models(self) -> list[dict[str, str]]: method get_available_tts_models (line 593) | def get_available_tts_models(self) -> list[dict[str, str]]: method supports_streaming_stt (line 597) | def supports_streaming_stt(self) -> bool: method supports_streaming_tts (line 601) | def supports_streaming_tts(self) -> bool: method create_streaming_transcriber (line 605) | async def create_streaming_transcriber( method create_streaming_synthesizer (line 619) | async def create_streaming_synthesizer( FILE: backend/scripts/add_connector_creation_script.py function create_connector (line 11) | def create_connector( function create_credential (line 37) | def create_credential( function create_cc_pair (line 61) | def create_cc_pair( function main (line 83) | def main() -> None: FILE: backend/scripts/api_inference_sample.py function create_new_chat_session (line 10) | def create_new_chat_session(onyx_url: str, api_key: str | None) -> int: function process_question (line 25) | def process_question(onyx_url: str, question: str, api_key: str | None) ... FILE: backend/scripts/celery_purge_queue.py function celery_purge_queue (line 26) | def celery_purge_queue(queue: str, tenant_id: str) -> None: # noqa: ARG001 FILE: backend/scripts/chat_feedback_dump.py function create_new_chat_session (line 130) | def create_new_chat_session(onyx_url: str, api_key: str | None) -> int: function manage_users (line 141) | def manage_users(onyx_url: str, headers: dict[str, str] | None) -> AllUs... function get_chat_sessions (line 154) | def get_chat_sessions( function get_session_history (line 171) | def get_session_history( function process_all_chat_feedback (line 186) | def process_all_chat_feedback(onyx_url: str, api_key: str | None) -> None: FILE: backend/scripts/chat_history_seeding.py function go_main (line 17) | def go_main(num_sessions: int, num_messages: int, num_days: int) -> None: FILE: backend/scripts/chat_loadtest.py class ChatMetrics (line 35) | class ChatMetrics: class ChatLoadTester (line 44) | class ChatLoadTester: method __init__ (line 45) | def __init__( method create_chat_session (line 58) | async def create_chat_session(self, session: aiohttp.ClientSession) ->... method process_stream (line 69) | async def process_stream( method send_message (line 77) | async def send_message( method run_chat_session (line 130) | async def run_chat_session(self) -> None: method run_load_test (line 155) | async def run_load_test(self) -> None: method print_results (line 164) | def print_results(self, total_time: float) -> None: function main (line 188) | def main() -> None: FILE: backend/scripts/debugging/debug_usage_limits.py function generate_data_plane_token (line 25) | def generate_data_plane_token(secret: str) -> str: function main (line 36) | def main() -> None: FILE: backend/scripts/debugging/litellm/call_litellm.py function _to_jsonable (line 139) | def _to_jsonable(x: Any) -> Any: function _filter_null_fields (line 160) | def _filter_null_fields(obj: Any) -> Any: function _pretty_print_event (line 175) | def _pretty_print_event(event: Any) -> str: FILE: backend/scripts/debugging/litellm/directly_hit_azure_api.py function _load_payload_json (line 27) | def _load_payload_json() -> dict: function _print_response (line 36) | def _print_response(resp: httpx.Response) -> None: function main (line 57) | def main() -> int: FILE: backend/scripts/debugging/onyx_db.py class TenantMetadata (line 33) | class TenantMetadata(BaseModel): class SQLAlchemyDebugging (line 40) | class SQLAlchemyDebugging: method __init__ (line 42) | def __init__(self) -> None: method top_chunks (line 45) | def top_chunks(self, filename: str, k: int = 10) -> None: function main (line 136) | def main() -> None: FILE: backend/scripts/debugging/onyx_list_tenants.py function batch_list (line 31) | def batch_list(items: list[str], batch_size: int) -> list[list[str]]: function main (line 36) | def main() -> None: FILE: backend/scripts/debugging/onyx_redis.py class OnyxRedisCommand (line 48) | class OnyxRedisCommand(Enum): method __str__ (line 60) | def __str__(self) -> str: function get_user_id (line 64) | def get_user_id(user_email: str) -> tuple[UUID, str]: function onyx_redis (line 76) | def onyx_redis( function flush_batch_delete (line 197) | def flush_batch_delete(batch_keys: list[bytes], r: Redis) -> None: function redis_delete_if_exists_helper (line 205) | def redis_delete_if_exists_helper(key: str, dry_run: bool, r: Redis) -> ... function purge_by_match_and_type (line 224) | def purge_by_match_and_type( function get_user_token_from_redis (line 278) | def get_user_token_from_redis(r: Redis, user_email: str) -> str | None: function delete_user_token_from_redis (line 323) | def delete_user_token_from_redis( FILE: backend/scripts/debugging/onyx_vespa_schemas.py function write_schema (line 26) | def write_schema( function generate_document_entries (line 52) | def generate_document_entries() -> str: function write_cloud_services (line 69) | def write_cloud_services(cloud_services_template_path: str, output_path:... function main (line 91) | def main() -> None: FILE: backend/scripts/debugging/opensearch/benchmark_retrieval.py function main (line 35) | def main() -> None: FILE: backend/scripts/debugging/opensearch/embed_and_save.py function main (line 23) | def main() -> None: FILE: backend/scripts/debugging/opensearch/embedding_io.py function load_query_embedding_from_file (line 4) | def load_query_embedding_from_file(file_path: str) -> Embedding: function save_query_embedding_to_file (line 27) | def save_query_embedding_to_file(embedding: Embedding, file_path: str) -... FILE: backend/scripts/debugging/opensearch/opensearch_debug.py function list_indices (line 30) | def list_indices(client: OpenSearchClient) -> None: function delete_index (line 48) | def delete_index(client: OpenSearchIndexClient) -> None: function main (line 64) | def main() -> None: FILE: backend/scripts/debugging/opensearch/query_hierarchy_debug.py function get_client (line 33) | def get_client() -> OpenSearch: function query_document (line 44) | def query_document(client: OpenSearch, index: str, doc_id: str) -> None: function list_with_hierarchy (line 71) | def list_with_hierarchy(client: OpenSearch, index: str, limit: int = 10)... function list_indices (line 98) | def list_indices(client: OpenSearch) -> None: function main (line 107) | def main() -> None: FILE: backend/scripts/decrypt.py function decrypt_raw_credential (line 25) | def decrypt_raw_credential(encrypted_value: str, key: str | None = None)... function main (line 69) | def main() -> None: FILE: backend/scripts/dev_run_background_jobs.py function monitor_process (line 5) | def monitor_process(process_name: str, process: subprocess.Popen) -> None: function run_jobs (line 18) | def run_jobs() -> None: FILE: backend/scripts/force_delete_connector_by_id.py function _unsafe_deletion (line 62) | def _unsafe_deletion( function _delete_connector (line 155) | def _delete_connector(cc_pair_id: int, db_session: Session) -> None: FILE: backend/scripts/get_wikidocs.py function sanitize_filename (line 19) | def sanitize_filename(title: str) -> str: function stream_wikipedia_to_zips (line 50) | def stream_wikipedia_to_zips( function main (line 143) | def main() -> int: FILE: backend/scripts/hard_delete_chats.py function main (line 16) | def main() -> None: FILE: backend/scripts/lib/logger.py class CIFormatter (line 19) | class CIFormatter(logging.Formatter): method format (line 25) | def format(self, record: logging.LogRecord) -> str: function getLogger (line 53) | def getLogger(name: str | None = None, level: int | None = None) -> logg... FILE: backend/scripts/onyx_openapi_schema.py function go (line 19) | def go(filename: str, tagged_for_docs: str | None = None) -> None: function strip_tags_from_schema (line 48) | def strip_tags_from_schema(schema: dict) -> dict: function generate_client (line 68) | def generate_client(openapi_json_path: str, strip_tags: bool = True) -> ... function main (line 117) | def main() -> None: FILE: backend/scripts/orphan_doc_cleanup_script.py function _get_orphaned_document_ids (line 27) | def _get_orphaned_document_ids(db_session: Session, limit: int) -> list[... function main (line 43) | def main() -> None: FILE: backend/scripts/query_time_check/seed_dummy_docs.py function generate_random_embedding (line 34) | def generate_random_embedding(dim: int) -> Embedding: function generate_random_identifier (line 38) | def generate_random_identifier() -> str: function generate_dummy_chunk (line 42) | def generate_dummy_chunk( function do_insertion (line 114) | def do_insertion( function seed_dummy_docs (line 136) | def seed_dummy_docs( FILE: backend/scripts/reencrypt_secrets.py function _run_for_tenant (line 35) | def _run_for_tenant(tenant_id: str, old_key: str | None, dry_run: bool =... function main (line 49) | def main() -> None: FILE: backend/scripts/reset_indexes.py function wipe_vespa_index (line 20) | def wipe_vespa_index() -> bool: function main (line 55) | def main() -> int: FILE: backend/scripts/reset_postgres.py function wipe_all_rows (line 21) | def wipe_all_rows(database: str) -> None: FILE: backend/scripts/resume_paused_connectors.py function resume_paused_connectors (line 9) | def resume_paused_connectors( function main (line 54) | def main() -> None: FILE: backend/scripts/run_industryrag_bench_questions.py class QuestionRecord (line 37) | class QuestionRecord: class AnswerRecord (line 43) | class AnswerRecord: class FailedQuestionRecord (line 50) | class FailedQuestionRecord: class Citation (line 55) | class Citation(TypedDict, total=False): function parse_args (line 60) | def parse_args() -> argparse.Namespace: function normalize_api_base (line 109) | def normalize_api_base(api_base: str) -> str: function load_completed_question_ids (line 116) | def load_completed_question_ids(output_file: Path) -> set[str]: function load_questions (line 137) | def load_questions(questions_file: Path) -> list[QuestionRecord]: function read_json_response (line 172) | async def read_json_response( function request_json_with_retries (line 196) | async def request_json_with_retries( function extract_document_ids (line 250) | def extract_document_ids(citation_info: object) -> list[str]: function _is_valid_citation (line 270) | def _is_valid_citation(citation: object) -> TypeGuard[Citation]: function _citation_sort_key (line 278) | def _citation_sort_key(citation: Citation) -> int: function fetch_internal_search_tool_id (line 285) | async def fetch_internal_search_tool_id( function submit_question (line 324) | async def submit_question( function generate_answers (line 370) | async def generate_answers( function main (line 592) | def main() -> None: FILE: backend/scripts/save_load_state.py function save_postgres (line 23) | def save_postgres(filename: str, container_name: str) -> None: function load_postgres (line 37) | def load_postgres(filename: str, container_name: str) -> None: function save_vespa (line 59) | def save_vespa(filename: str) -> None: function load_vespa (line 82) | def load_vespa(filename: str) -> None: FILE: backend/scripts/sources_selection_analysis.py function color_output (line 25) | def color_output( class CompareAnalysis (line 112) | class CompareAnalysis: method __init__ (line 113) | def __init__( method _identify_diff (line 129) | def _identify_diff(self, content_key: str) -> list[dict]: method check_config_changes (line 191) | def check_config_changes( method check_documents_score (line 239) | def check_documents_score(self) -> bool: method check_documents_order (line 277) | def check_documents_order(self) -> bool: method __call__ (line 307) | def __call__(self) -> None: class SelectionAnalysis (line 318) | class SelectionAnalysis: method __init__ (line 319) | def __init__( method _wait_between_queries (line 351) | def _wait_between_queries(self, query: str) -> None: method prepare (line 361) | def prepare(self) -> bool: method do_request (line 374) | def do_request(self, query: str) -> dict: method get_analysis_files (line 418) | def get_analysis_files(self) -> list[str]: method get_analysis_file_content (line 426) | def get_analysis_file_content(self, filename: str) -> list[dict]: method extract_content (line 438) | def extract_content(self, contents: dict) -> dict: method save_analysisfile (line 456) | def save_analysisfile(self, content: list[dict]) -> Optional[str]: method new (line 478) | def new(self) -> Optional[str]: method compare (line 504) | def compare( method validate_analysisfiles (line 533) | def validate_analysisfiles(self) -> bool: method __call__ (line 555) | def __call__(self) -> None: function validate_cmd_args (line 617) | def validate_cmd_args(args: argparse.Namespace) -> bool: FILE: backend/scripts/tenant_cleanup/analyze_current_tenants.py function collect_tenant_data (line 24) | def collect_tenant_data(pod_name: str) -> list[dict[str, Any]]: function collect_control_plane_data (line 74) | def collect_control_plane_data() -> list[dict[str, Any]]: function analyze_tenants (line 137) | def analyze_tenants( function find_recent_tenant_data (line 334) | def find_recent_tenant_data() -> tuple[list[dict[str, Any]] | None, str ... function main (line 364) | def main() -> None: FILE: backend/scripts/tenant_cleanup/check_no_bastion_setup.py function print_header (line 13) | def print_header(text: str) -> None: function check_kubectl_access (line 20) | def check_kubectl_access() -> bool: function check_worker_pods (line 65) | def check_worker_pods() -> tuple[bool, list[str]]: function check_pod_exec_permission (line 108) | def check_pod_exec_permission(pod_name: str) -> bool: function check_pod_db_access (line 136) | def check_pod_db_access(pod_name: str) -> dict: function check_required_scripts (line 190) | def check_required_scripts() -> bool: function main (line 218) | def main() -> None: FILE: backend/scripts/tenant_cleanup/cleanup_tenants.py function signal_handler (line 40) | def signal_handler(signum: int, frame: object) -> None: # noqa: ARG001 function get_tenant_index_name (line 45) | def get_tenant_index_name(pod_name: str, tenant_id: str) -> str: function get_tenant_users (line 119) | def get_tenant_users(pod_name: str, tenant_id: str) -> list[str]: function check_documents_deleted (line 201) | def check_documents_deleted(pod_name: str, tenant_id: str) -> None: function drop_data_plane_schema (line 287) | def drop_data_plane_schema(pod_name: str, tenant_id: str) -> None: function cleanup_control_plane (line 358) | def cleanup_control_plane(tenant_id: str, force: bool = False) -> None: function cleanup_tenant (line 408) | def cleanup_tenant(tenant_id: str, pod_name: str, force: bool = False) -... function main (line 569) | def main() -> None: FILE: backend/scripts/tenant_cleanup/cleanup_utils.py class TenantNotFoundInControlPlaneError (line 10) | class TenantNotFoundInControlPlaneError(Exception): class ControlPlaneConfig (line 15) | class ControlPlaneConfig: function find_worker_pod (line 23) | def find_worker_pod() -> str: function confirm_step (line 44) | def confirm_step(message: str, force: bool = False) -> bool: function get_control_plane_config (line 63) | def get_control_plane_config() -> ControlPlaneConfig: function execute_control_plane_query (line 97) | def execute_control_plane_query( function get_tenant_status (line 134) | def get_tenant_status(tenant_id: str) -> str | None: function read_tenant_ids_from_csv (line 174) | def read_tenant_ids_from_csv(csv_path: str) -> list[str]: FILE: backend/scripts/tenant_cleanup/mark_connectors_for_deletion.py function safe_print (line 45) | def safe_print(*args: Any, **kwargs: Any) -> None: function run_connector_deletion (line 51) | def run_connector_deletion(pod_name: str, tenant_id: str) -> None: function mark_tenant_connectors_for_deletion (line 117) | def mark_tenant_connectors_for_deletion( function main (line 196) | def main() -> None: FILE: backend/scripts/tenant_cleanup/no_bastion_analyze_tenants.py function collect_tenant_data (line 28) | def collect_tenant_data( function collect_control_plane_data_from_pod (line 80) | def collect_control_plane_data_from_pod( function analyze_tenants (line 166) | def analyze_tenants( function find_recent_tenant_data (line 361) | def find_recent_tenant_data() -> tuple[list[dict[str, Any]] | None, str ... function main (line 391) | def main() -> None: FILE: backend/scripts/tenant_cleanup/no_bastion_cleanup_tenants.py function signal_handler (line 42) | def signal_handler(signum: int, frame: object) -> None: # noqa: ARG001 function setup_scripts_on_pod (line 47) | def setup_scripts_on_pod(pod_name: str, context: str) -> None: function get_tenant_index_name (line 80) | def get_tenant_index_name(pod_name: str, tenant_id: str, context: str) -... function get_tenant_users (line 165) | def get_tenant_users(pod_name: str, tenant_id: str, context: str) -> lis... function check_documents_deleted (line 225) | def check_documents_deleted(pod_name: str, tenant_id: str, context: str)... function drop_data_plane_schema (line 292) | def drop_data_plane_schema(pod_name: str, tenant_id: str, context: str) ... function cleanup_control_plane (line 347) | def cleanup_control_plane( function cleanup_tenant (line 391) | def cleanup_tenant( function main (line 561) | def main() -> None: FILE: backend/scripts/tenant_cleanup/no_bastion_cleanup_utils.py class TenantNotFoundInControlPlaneError (line 13) | class TenantNotFoundInControlPlaneError(Exception): function find_worker_pod (line 17) | def find_worker_pod(context: str) -> str: function find_background_pod (line 46) | def find_background_pod(context: str) -> str: function confirm_step (line 86) | def confirm_step(message: str, force: bool = False) -> bool: function execute_control_plane_query_from_pod (line 105) | def execute_control_plane_query_from_pod( function get_tenant_status (line 219) | def get_tenant_status(pod_name: str, tenant_id: str, context: str) -> st... function execute_control_plane_delete (line 272) | def execute_control_plane_delete(pod_name: str, query: str, context: str... function read_tenant_ids_from_csv (line 293) | def read_tenant_ids_from_csv(csv_path: str) -> list[str]: FILE: backend/scripts/tenant_cleanup/no_bastion_mark_connectors.py function safe_print (line 36) | def safe_print(*args: Any, **kwargs: Any) -> None: function run_connector_deletion (line 42) | def run_connector_deletion(pod_name: str, tenant_id: str, context: str) ... function mark_tenant_connectors_for_deletion (line 112) | def mark_tenant_connectors_for_deletion( function main (line 216) | def main() -> None: FILE: backend/scripts/tenant_cleanup/on_pod_scripts/check_documents_deleted.py function check_documents_deleted (line 25) | def check_documents_deleted(tenant_id: str) -> dict: function main (line 88) | def main() -> None: FILE: backend/scripts/tenant_cleanup/on_pod_scripts/cleanup_tenant_schema.py function drop_data_plane_schema (line 19) | def drop_data_plane_schema(tenant_id: str) -> dict[str, str]: FILE: backend/scripts/tenant_cleanup/on_pod_scripts/execute_connector_deletion.py function mark_connector_for_deletion (line 45) | def mark_connector_for_deletion( function mark_all_connectors_for_deletion (line 156) | def mark_all_connectors_for_deletion(tenant_id: str) -> dict[str, Any]: function main (line 296) | def main() -> None: FILE: backend/scripts/tenant_cleanup/on_pod_scripts/get_tenant_connectors.py function get_tenant_connectors (line 37) | def get_tenant_connectors(tenant_id: str) -> dict: function main (line 86) | def main() -> None: FILE: backend/scripts/tenant_cleanup/on_pod_scripts/get_tenant_index_name.py function get_tenant_index_name (line 18) | def get_tenant_index_name(tenant_id: str) -> dict[str, str]: FILE: backend/scripts/tenant_cleanup/on_pod_scripts/get_tenant_users.py function get_tenant_users (line 23) | def get_tenant_users(tenant_id: str) -> dict: function main (line 59) | def main() -> None: FILE: backend/scripts/tenant_cleanup/on_pod_scripts/understand_tenants.py function get_tenant_activity_summary (line 13) | def get_tenant_activity_summary(session: Session) -> list[dict[str, Any]]: function main (line 85) | def main() -> None: FILE: backend/scripts/transform_openapi_for_docs.py function collect_schema_refs (line 21) | def collect_schema_refs(obj: Any, refs: set[str]) -> None: function get_all_referenced_schemas (line 35) | def get_all_referenced_schemas( function remove_internal_properties_from_schema (line 58) | def remove_internal_properties_from_schema(schema: dict[str, Any]) -> None: function remove_internal_parameters (line 89) | def remove_internal_parameters(spec: dict[str, Any]) -> None: function transform_openapi (line 108) | def transform_openapi(input_spec: dict[str, Any]) -> dict[str, Any]: function main (line 163) | def main() -> None: FILE: backend/scripts/upload_files_as_connectors.py function _elapsed_printer (line 26) | def _elapsed_printer(label: str, stop_event: threading.Event) -> None: function _timed_request (line 38) | def _timed_request(label: str, fn: object) -> requests.Response: function upload_file (line 51) | def upload_file( function create_connector (line 70) | def create_connector( function create_credential (line 107) | def create_credential( function link_credential (line 129) | def link_credential( function run_connector (line 154) | def run_connector( function process_file (line 176) | def process_file(session: requests.Session, base_url: str, file_path: st... function get_authenticated_session (line 218) | def get_authenticated_session(api_key: str) -> requests.Session: function main (line 225) | def main() -> None: FILE: backend/shared_configs/configs.py function validate_cors_origin (line 120) | def validate_cors_origin(origin: str) -> None: function async_return_default_schema (line 163) | async def async_return_default_schema( FILE: backend/shared_configs/contextvars.py function get_current_tenant_id (line 38) | def get_current_tenant_id() -> str: FILE: backend/shared_configs/enums.py class EmbeddingProvider (line 4) | class EmbeddingProvider(str, Enum): class RerankerProvider (line 13) | class RerankerProvider(str, Enum): class EmbedTextType (line 19) | class EmbedTextType(str, Enum): class WebSearchProviderType (line 24) | class WebSearchProviderType(str, Enum): class WebContentProviderType (line 32) | class WebContentProviderType(str, Enum): FILE: backend/shared_configs/model_server_models.py class EmbedRequest (line 11) | class EmbedRequest(BaseModel): class EmbedResponse (line 35) | class EmbedResponse(BaseModel): class RerankRequest (line 39) | class RerankRequest(BaseModel): class RerankResponse (line 51) | class RerankResponse(BaseModel): class IntentRequest (line 55) | class IntentRequest(BaseModel): class IntentResponse (line 63) | class IntentResponse(BaseModel): FILE: backend/shared_configs/utils.py function batch_list (line 7) | def batch_list( FILE: backend/tests/api/test_api.py function client (line 18) | def client() -> Generator[TestClient, Any, None]: function test_handle_simplified_chat_message (line 33) | def test_handle_simplified_chat_message(client: TestClient) -> None: function test_handle_send_message_simple_with_history (line 52) | def test_handle_send_message_simple_with_history(client: TestClient) -> ... function test_versions_endpoint (line 109) | def test_versions_endpoint(client: TestClient) -> None: FILE: backend/tests/conftest.py function enable_ee (line 12) | def enable_ee() -> Generator[None, None, None]: FILE: backend/tests/daily/conftest.py function test_lifespan (line 31) | async def test_lifespan( function mock_get_session (line 38) | def mock_get_session() -> Generator[MagicMock, None, None]: function mock_current_admin_user (line 43) | def mock_current_admin_user() -> MagicMock: function client (line 51) | def client() -> Generator[TestClient, None, None]: FILE: backend/tests/daily/connectors/airtable/test_airtable_basic.py class AirtableConfig (line 18) | class AirtableConfig(BaseModel): function airtable_config (line 25) | def airtable_config(request: pytest.FixtureRequest) -> AirtableConfig: function create_test_document (line 38) | def create_test_document( function compare_documents (line 141) | def compare_documents( function test_airtable_connector_basic (line 195) | def test_airtable_connector_basic( function test_airtable_connector_url (line 262) | def test_airtable_connector_url( function test_airtable_connector_index_all (line 328) | def test_airtable_connector_index_all( function test_airtable_connector_all_metadata (line 401) | def test_airtable_connector_all_metadata( function test_airtable_connector_with_share_and_view (line 456) | def test_airtable_connector_with_share_and_view( FILE: backend/tests/daily/connectors/bitbucket/test_bitbucket_checkpointed.py function bitbucket_connector_for_checkpoint (line 12) | def bitbucket_connector_for_checkpoint() -> BitbucketConnector: function test_bitbucket_checkpointed_load (line 42) | def test_bitbucket_checkpointed_load( FILE: backend/tests/daily/connectors/bitbucket/test_bitbucket_slim_connector.py function bitbucket_connector_for_slim (line 13) | def bitbucket_connector_for_slim() -> BitbucketConnector: function test_bitbucket_full_ids_subset_of_slim_ids (line 34) | def test_bitbucket_full_ids_subset_of_slim_ids( FILE: backend/tests/daily/connectors/blob/test_blob_connector.py function blob_connector (line 20) | def blob_connector(request: pytest.FixtureRequest) -> BlobStorageConnector: function test_blob_s3_connector (line 89) | def test_blob_s3_connector( function test_blob_s3_cross_region_and_citation_link (line 132) | def test_blob_s3_cross_region_and_citation_link( function test_blob_r2_connector (line 186) | def test_blob_r2_connector( function test_blob_r2_eu_residency_connector (line 212) | def test_blob_r2_eu_residency_connector( function test_blob_gcs_connector (line 236) | def test_blob_gcs_connector( FILE: backend/tests/daily/connectors/coda/test_coda_connector.py function connector_doc_generator (line 15) | def connector_doc_generator( function coda_credentials (line 26) | def coda_credentials() -> dict[str, str]: function connector (line 39) | def connector(coda_credentials: dict[str, str]) -> CodaConnector: function workspace_scoped_connector (line 47) | def workspace_scoped_connector(coda_credentials: dict[str, str]) -> Coda... function reference_data (line 61) | def reference_data(connector: CodaConnector) -> dict[str, Any]: class TestCodaConnectorValidation (line 107) | class TestCodaConnectorValidation: method test_validate_connector_settings_success (line 110) | def test_validate_connector_settings_success( method test_validate_workspace_scoped_connector (line 117) | def test_validate_workspace_scoped_connector( method test_load_credentials_invalid_token (line 123) | def test_load_credentials_invalid_token(self) -> None: class TestLoadFromState (line 135) | class TestLoadFromState: method test_returns_generator (line 138) | def test_returns_generator(self, connector: CodaConnector) -> None: method test_batch_sizes_respect_config (line 143) | def test_batch_sizes_respect_config( method test_document_count_matches_expected (line 168) | def test_document_count_matches_expected( method test_document_required_fields (line 184) | def test_document_required_fields( method test_document_types (line 226) | def test_document_types( method test_no_duplicate_documents (line 256) | def test_no_duplicate_documents( method test_all_docs_processed (line 271) | def test_all_docs_processed( method test_document_content_not_empty (line 293) | def test_document_content_not_empty( method test_page_content_indexing (line 308) | def test_page_content_indexing(self, coda_credentials: dict[str, str])... class TestPollSource (line 353) | class TestPollSource: method test_poll_source_returns_generator (line 356) | def test_poll_source_returns_generator(self, connector: CodaConnector)... method test_poll_source_recent_updates (line 364) | def test_poll_source_recent_updates(self, connector: CodaConnector) ->... method test_poll_source_no_updates_in_range (line 385) | def test_poll_source_no_updates_in_range(self, connector: CodaConnecto... method test_poll_source_batch_sizes (line 400) | def test_poll_source_batch_sizes(self, connector: CodaConnector) -> None: class TestWorkspaceScoping (line 414) | class TestWorkspaceScoping: method test_workspace_scoped_loads_subset (line 417) | def test_workspace_scoped_loads_subset( class TestErrorHandling (line 449) | class TestErrorHandling: method test_handles_missing_page_content_gracefully (line 452) | def test_handles_missing_page_content_gracefully( method test_handles_empty_tables_gracefully (line 466) | def test_handles_empty_tables_gracefully(self, connector: CodaConnecto... FILE: backend/tests/daily/connectors/confluence/models.py class ExternalUserGroupSet (line 6) | class ExternalUserGroupSet(BaseModel): method from_model (line 14) | def from_model( FILE: backend/tests/daily/connectors/confluence/test_confluence_basic.py function _make_connector (line 17) | def _make_connector( function confluence_connector (line 41) | def confluence_connector(space: str) -> ConfluenceConnector: function confluence_connector_scoped (line 46) | def confluence_connector_scoped(space: str) -> ConfluenceConnector: function test_confluence_connector_basic (line 57) | def test_confluence_connector_basic( function test_confluence_connector_basic_scoped (line 69) | def test_confluence_connector_basic_scoped( function _test_confluence_connector_basic (line 78) | def _test_confluence_connector_basic( function test_confluence_connector_skip_images (line 185) | def test_confluence_connector_skip_images( function mock_process_image_attachment (line 208) | def mock_process_image_attachment( function test_confluence_connector_allow_images (line 231) | def test_confluence_connector_allow_images( FILE: backend/tests/daily/connectors/confluence/test_confluence_permissions_basic.py function confluence_connector (line 21) | def confluence_connector() -> ConfluenceConnector: function test_confluence_connector_permissions (line 45) | def test_confluence_connector_permissions( function test_confluence_connector_restriction_handling (line 93) | def test_confluence_connector_restriction_handling( FILE: backend/tests/daily/connectors/confluence/test_confluence_user_email_overrides.py class MockCredentialsProvider (line 9) | class MockCredentialsProvider(CredentialsProviderInterface): method get_tenant_id (line 10) | def get_tenant_id(self) -> str: method get_provider_key (line 13) | def get_provider_key(self) -> str: method is_dynamic (line 16) | def is_dynamic(self) -> bool: method get_credentials (line 19) | def get_credentials(self) -> dict[str, str]: method set_credentials (line 22) | def set_credentials(self, credentials: dict[str, str]) -> None: method __enter__ (line 25) | def __enter__(self) -> "MockCredentialsProvider": method __exit__ (line 28) | def __exit__( function test_paginated_cql_user_retrieval_with_overrides (line 37) | def test_paginated_cql_user_retrieval_with_overrides() -> None: function test_paginated_cql_user_retrieval_no_overrides_server (line 77) | def test_paginated_cql_user_retrieval_no_overrides_server() -> None: function test_paginated_cql_user_retrieval_no_overrides_cloud (line 99) | def test_paginated_cql_user_retrieval_no_overrides_cloud() -> None: FILE: backend/tests/daily/connectors/conftest.py function mock_get_unstructured_api_key (line 9) | def mock_get_unstructured_api_key() -> Generator[MagicMock, None, None]: FILE: backend/tests/daily/connectors/discord/test_discord_connector.py function discord_connector (line 13) | def discord_connector() -> DiscordConnector: function test_discord_connector_basic (line 21) | def test_discord_connector_basic(discord_connector: DiscordConnector) ->... FILE: backend/tests/daily/connectors/file/test_file_connector.py function mock_db_session (line 15) | def mock_db_session() -> MagicMock: function mock_file_store (line 20) | def mock_file_store() -> MagicMock: function mock_filestore_record (line 26) | def mock_filestore_record() -> MagicMock: function test_single_text_file_with_metadata (line 37) | def test_single_text_file_with_metadata( function test_two_text_files_with_zip_metadata (line 82) | def test_two_text_files_with_zip_metadata( FILE: backend/tests/daily/connectors/fireflies/test_fireflies_connector.py function load_test_data (line 15) | def load_test_data(file_name: str = "test_fireflies_data.json") -> dict[... function fireflies_connector (line 22) | def fireflies_connector() -> FirefliesConnector: function test_fireflies_connector_basic (line 33) | def test_fireflies_connector_basic(fireflies_connector: FirefliesConnect... FILE: backend/tests/daily/connectors/gitbook/test_gitbook_connector.py function gitbook_connector (line 12) | def gitbook_connector() -> GitbookConnector: function test_gitbook_connector_basic (line 27) | def test_gitbook_connector_basic(gitbook_connector: GitbookConnector) ->... FILE: backend/tests/daily/connectors/github/test_github_basic.py function github_connector (line 12) | def github_connector() -> GithubConnector: function test_github_connector_basic (line 27) | def test_github_connector_basic(github_connector: GithubConnector) -> None: FILE: backend/tests/daily/connectors/gitlab/test_gitlab_basic.py function gitlab_connector (line 12) | def gitlab_connector() -> GitlabConnector: function test_gitlab_connector_basic (line 36) | def test_gitlab_connector_basic(gitlab_connector: GitlabConnector) -> None: FILE: backend/tests/daily/connectors/gmail/conftest.py function parse_credentials (line 30) | def parse_credentials(env_str: str) -> dict: function google_gmail_oauth_connector_factory (line 55) | def google_gmail_oauth_connector_factory() -> Callable[..., GmailConnect... function google_gmail_service_acct_connector_factory (line 77) | def google_gmail_service_acct_connector_factory() -> Callable[..., Gmail... FILE: backend/tests/daily/connectors/gmail/test_gmail_connector.py function test_slim_docs_retrieval (line 77) | def test_slim_docs_retrieval( function test_docs_retrieval (line 104) | def test_docs_retrieval( FILE: backend/tests/daily/connectors/gong/test_gong.py function gong_connector (line 14) | def gong_connector() -> GongConnector: function test_gong_basic (line 31) | def test_gong_basic( FILE: backend/tests/daily/connectors/google_drive/conftest.py function parse_credentials (line 41) | def parse_credentials(env_str: str) -> dict: function get_credentials_from_env (line 65) | def get_credentials_from_env(email: str, oauth: bool) -> dict: function google_drive_oauth_uploaded_connector_factory (line 88) | def google_drive_oauth_uploaded_connector_factory() -> ( function google_drive_service_acct_connector_factory (line 118) | def google_drive_service_acct_connector_factory() -> ( function set_resource_limits (line 153) | def set_resource_limits() -> None: FILE: backend/tests/daily/connectors/google_drive/consts_and_utils.py function extract_folder_id_from_url (line 71) | def extract_folder_id_from_url(url: str) -> str: class ExpectedHierarchyNode (line 118) | class ExpectedHierarchyNode: function flatten_hierarchy (line 202) | def flatten_hierarchy( function _node (line 212) | def _node( function filter_invalid_prefixes (line 508) | def filter_invalid_prefixes(names: set[str]) -> set[str]: function print_discrepancies (line 512) | def print_discrepancies( function _get_expected_file_content (line 527) | def _get_expected_file_content(file_id: int) -> str: function id_to_name (line 534) | def id_to_name(file_id: int) -> str: function assert_expected_docs_in_retrieved_docs (line 538) | def assert_expected_docs_in_retrieved_docs( function load_connector_outputs (line 593) | def load_connector_outputs( function assert_hierarchy_nodes_match_expected (line 606) | def assert_hierarchy_nodes_match_expected( function _pick (line 670) | def _pick( function _clear_parents (line 677) | def _clear_parents( function get_expected_hierarchy_for_shared_drives (line 690) | def get_expected_hierarchy_for_shared_drives( function get_expected_hierarchy_for_folder_1 (line 709) | def get_expected_hierarchy_for_folder_1() -> dict[str, ExpectedHierarchy... function get_expected_hierarchy_for_folder_2 (line 714) | def get_expected_hierarchy_for_folder_2() -> dict[str, ExpectedHierarchy... function get_expected_hierarchy_for_test_user_1 (line 719) | def get_expected_hierarchy_for_test_user_1() -> dict[str, ExpectedHierar... function get_expected_hierarchy_for_test_user_1_shared_drives_only (line 755) | def get_expected_hierarchy_for_test_user_1_shared_drives_only() -> ( function get_expected_hierarchy_for_test_user_1_shared_with_me_only (line 770) | def get_expected_hierarchy_for_test_user_1_shared_with_me_only() -> ( function get_expected_hierarchy_for_test_user_1_my_drive_only (line 780) | def get_expected_hierarchy_for_test_user_1_my_drive_only() -> ( FILE: backend/tests/daily/connectors/google_drive/test_admin_oauth.py function test_include_all (line 67) | def test_include_all( function test_include_shared_drives_only (line 131) | def test_include_shared_drives_only( function test_include_my_drives_only (line 188) | def test_include_my_drives_only( function test_drive_one_only (line 226) | def test_drive_one_only( function test_folder_and_shared_drive (line 270) | def test_folder_and_shared_drive( function test_folders_only (line 319) | def test_folders_only( function test_personal_folders_only (line 373) | def test_personal_folders_only( FILE: backend/tests/daily/connectors/google_drive/test_drive_perm_sync.py function _build_connector (line 82) | def _build_connector( function test_gdrive_perm_sync_with_real_data (line 99) | def test_gdrive_perm_sync_with_real_data( FILE: backend/tests/daily/connectors/google_drive/test_link_visibility_filter.py function _stub_run_functions (line 11) | def _stub_run_functions( function _build_retrieved_file (line 18) | def _build_retrieved_file( function _prepare_connector (line 32) | def _prepare_connector(exclude: bool) -> GoogleDriveConnector: function test_has_link_only_permission_detects_domain_link (line 42) | def test_has_link_only_permission_detects_domain_link() -> None: function test_has_link_only_permission_detects_anyone_link (line 52) | def test_has_link_only_permission_detects_anyone_link() -> None: function test_has_link_only_permission_ignores_other_permissions (line 61) | def test_has_link_only_permission_ignores_other_permissions() -> None: function test_connector_skips_link_only_files_when_enabled (line 71) | def test_connector_skips_link_only_files_when_enabled() -> None: function test_connector_processes_files_when_option_disabled (line 104) | def test_connector_processes_files_when_option_disabled() -> None: FILE: backend/tests/daily/connectors/google_drive/test_map_test_ids.py function generate_test_id_to_drive_id_mapping (line 28) | def generate_test_id_to_drive_id_mapping() -> dict[int, str]: function test_generate_drive_id_mapping (line 105) | def test_generate_drive_id_mapping() -> None: FILE: backend/tests/daily/connectors/google_drive/test_sections.py function test_google_drive_sections (line 15) | def test_google_drive_sections( FILE: backend/tests/daily/connectors/google_drive/test_service_acct.py function test_include_all (line 113) | def test_include_all( function test_include_shared_drives_only_with_size_threshold (line 188) | def test_include_shared_drives_only_with_size_threshold( function test_include_shared_drives_only (line 245) | def test_include_shared_drives_only( function test_include_my_drives_only (line 313) | def test_include_my_drives_only( function test_drive_one_only (line 363) | def test_drive_one_only( function test_folder_and_shared_drive (line 408) | def test_folder_and_shared_drive( function test_folders_only (line 458) | def test_folders_only( function test_shared_folder_owned_by_external_user (line 509) | def test_shared_folder_owned_by_external_user( function test_shared_with_me (line 530) | def test_shared_with_me( function test_specific_emails (line 571) | def test_specific_emails( function get_specific_folders_in_my_drive (line 602) | def get_specific_folders_in_my_drive( function test_specific_user_emails_restricted_folder (line 632) | def test_specific_user_emails_restricted_folder( function test_specific_user_email_shared_with_me (line 672) | def test_specific_user_email_shared_with_me( FILE: backend/tests/daily/connectors/google_drive/test_user_1_oauth.py function _check_for_error (line 48) | def _check_for_error( function test_all (line 69) | def test_all( function test_shared_drives_only (line 112) | def test_shared_drives_only( function test_shared_with_me_only (line 151) | def test_shared_with_me_only( function test_my_drive_only (line 183) | def test_my_drive_only( function test_shared_my_drive_folder (line 215) | def test_shared_my_drive_folder( function test_shared_drive_folder (line 247) | def test_shared_drive_folder( FILE: backend/tests/daily/connectors/highspot/test_highspot_connector.py function load_test_data (line 17) | def load_test_data(file_name: str = "test_highspot_data.json") -> dict: function highspot_connector (line 25) | def highspot_connector() -> HighspotConnector: function test_highspot_connector_basic (line 51) | def test_highspot_connector_basic( function test_highspot_connector_slim (line 93) | def test_highspot_connector_slim( function test_highspot_connector_poll_source (line 127) | def test_highspot_connector_poll_source( function test_highspot_connector_validate_credentials (line 174) | def test_highspot_connector_validate_credentials( FILE: backend/tests/daily/connectors/hubspot/test_hubspot_connector.py class TestHubSpotConnector (line 17) | class TestHubSpotConnector: method connector (line 21) | def connector(self) -> HubSpotConnector: method credentials (line 26) | def credentials(self) -> dict[str, Any]: method test_credentials_properties_raise_exception_when_none (line 30) | def test_credentials_properties_raise_exception_when_none(self) -> None: method test_load_credentials (line 44) | def test_load_credentials( method test_load_from_state_basic_functionality (line 55) | def test_load_from_state_basic_functionality( method test_document_metadata_structure (line 86) | def test_document_metadata_structure( method test_associated_objects_as_sections (line 153) | def test_associated_objects_as_sections( method test_poll_source_functionality (line 209) | def test_poll_source_functionality( method test_all_object_types_processed (line 241) | def test_all_object_types_processed( method test_init_default_object_types (line 302) | def test_init_default_object_types(self) -> None: method test_init_custom_object_types (line 311) | def test_init_custom_object_types(self) -> None: method test_init_custom_object_types_from_list (line 322) | def test_init_custom_object_types_from_list(self) -> None: method test_init_single_object_type (line 333) | def test_init_single_object_type(self) -> None: method test_init_invalid_object_types (line 342) | def test_init_invalid_object_types(self) -> None: method test_init_empty_object_types (line 355) | def test_init_empty_object_types(self) -> None: method test_selective_object_fetching_tickets_only (line 363) | def test_selective_object_fetching_tickets_only( method test_selective_object_fetching_companies_and_deals (line 394) | def test_selective_object_fetching_companies_and_deals( method test_empty_object_types_fetches_nothing (line 440) | def test_empty_object_types_fetches_nothing( method test_poll_source_respects_object_types (line 464) | def test_poll_source_respects_object_types( method test_object_types_immutability (line 503) | def test_object_types_immutability(self) -> None: method test_url_generation (line 519) | def test_url_generation(self) -> None: method test_ticket_with_none_content (line 545) | def test_ticket_with_none_content(self) -> None: FILE: backend/tests/daily/connectors/imap/models.py class EmailDoc (line 7) | class EmailDoc(BaseModel): method from_doc (line 13) | def from_doc(cls, document: Document) -> "EmailDoc": FILE: backend/tests/daily/connectors/imap/test_imap_connector.py function imap_connector (line 16) | def imap_connector() -> ImapConnector: function test_imap_connector (line 64) | def test_imap_connector( FILE: backend/tests/daily/connectors/jira/test_jira_basic.py function _make_connector (line 13) | def _make_connector(scoped_token: bool = False) -> JiraConnector: function jira_connector (line 34) | def jira_connector() -> JiraConnector: function jira_connector_scoped (line 39) | def jira_connector_scoped() -> JiraConnector: function jira_connector_with_jql (line 44) | def jira_connector_with_jql() -> JiraConnector: function test_jira_connector_basic (line 65) | def test_jira_connector_basic( function test_jira_connector_basic_scoped (line 76) | def test_jira_connector_basic_scoped( function _test_jira_connector_basic (line 83) | def _test_jira_connector_basic(jira_connector: JiraConnector) -> None: function test_jira_connector_with_jql (line 170) | def test_jira_connector_with_jql( FILE: backend/tests/daily/connectors/notion/test_notion_connector.py function compare_hierarchy_nodes (line 12) | def compare_hierarchy_nodes( function notion_connector (line 40) | def notion_connector() -> NotionConnector: function test_notion_connector_basic (line 51) | def test_notion_connector_basic(notion_connector: NotionConnector) -> None: FILE: backend/tests/daily/connectors/outline/test_outline_connector.py class TestOutlineConnector (line 16) | class TestOutlineConnector: method connector (line 20) | def connector(self) -> OutlineConnector: method credentials (line 25) | def credentials(self) -> dict[str, Any]: method test_credentials_missing_raises_exception (line 40) | def test_credentials_missing_raises_exception(self) -> None: method test_load_credentials (line 48) | def test_load_credentials( method test_outline_connector_basic (line 61) | def test_outline_connector_basic( method test_outline_connector_time_filtering (line 101) | def test_outline_connector_time_filtering( method test_outline_connector_load_from_state (line 120) | def test_outline_connector_load_from_state( method test_outline_connector_batch_processing (line 134) | def test_outline_connector_batch_processing( method test_outline_connector_document_types (line 145) | def test_outline_connector_document_types( method test_outline_connector_invalid_credentials (line 167) | def test_outline_connector_invalid_credentials(self) -> None: method test_outline_connector_invalid_url (line 194) | def test_outline_connector_invalid_url(self) -> None: FILE: backend/tests/daily/connectors/salesforce/test_salesforce_connector.py function extract_key_value_pairs_to_set (line 18) | def extract_key_value_pairs_to_set( function _load_reference_data (line 29) | def _load_reference_data( function salesforce_connector (line 38) | def salesforce_connector() -> SalesforceConnector: function test_salesforce_connector_basic (line 63) | def test_salesforce_connector_basic(salesforce_connector: SalesforceConn... function test_salesforce_connector_poll_source (line 139) | def test_salesforce_connector_poll_source( function test_salesforce_connector_slim (line 188) | def test_salesforce_connector_slim(salesforce_connector: SalesforceConne... FILE: backend/tests/daily/connectors/sharepoint/test_sharepoint_connector.py class ExpectedDocument (line 24) | class ExpectedDocument: function verify_document_metadata (line 84) | def verify_document_metadata(doc: Document) -> None: function verify_document_content (line 96) | def verify_document_content(doc: Document, expected: ExpectedDocument) -... function find_document (line 119) | def find_document(documents: list[Document], semantic_identifier: str) -... function mock_store_image (line 131) | def mock_store_image() -> MagicMock: function sharepoint_credentials (line 142) | def sharepoint_credentials() -> dict[str, str]: function test_sharepoint_connector_all_sites__docs_only (line 150) | def test_sharepoint_connector_all_sites__docs_only( function test_sharepoint_connector_all_sites__pages_only (line 177) | def test_sharepoint_connector_all_sites__pages_only( function test_sharepoint_connector_specific_folder (line 204) | def test_sharepoint_connector_specific_folder( function test_sharepoint_connector_root_folder__docs_only (line 246) | def test_sharepoint_connector_root_folder__docs_only( function test_sharepoint_connector_other_library (line 282) | def test_sharepoint_connector_other_library( function test_sharepoint_connector_poll (line 324) | def test_sharepoint_connector_poll( function test_sharepoint_connector_pages (line 366) | def test_sharepoint_connector_pages( function verify_hierarchy_nodes (line 398) | def verify_hierarchy_nodes( function test_sharepoint_connector_hierarchy_nodes (line 467) | def test_sharepoint_connector_hierarchy_nodes( function sharepoint_cert_credentials (line 525) | def sharepoint_cert_credentials() -> dict[str, str]: function test_resolve_tenant_domain_from_site_urls (line 537) | def test_resolve_tenant_domain_from_site_urls( function test_resolve_tenant_domain_from_root_site (line 555) | def test_resolve_tenant_domain_from_root_site( FILE: backend/tests/daily/connectors/slab/test_slab_connector.py function load_test_data (line 14) | def load_test_data(file_name: str = "test_slab_data.json") -> dict[str, ... function slab_connector (line 21) | def slab_connector() -> SlabConnector: function test_slab_connector_basic (line 38) | def test_slab_connector_basic(slab_connector: SlabConnector) -> None: function test_slab_connector_slim (line 78) | def test_slab_connector_slim(slab_connector: SlabConnector) -> None: FILE: backend/tests/daily/connectors/slack/conftest.py function mock_slack_client (line 15) | def mock_slack_client() -> MagicMock: function slack_connector (line 21) | def slack_connector( function slack_credentials_provider (line 38) | def slack_credentials_provider() -> OnyxStaticCredentialsProvider: FILE: backend/tests/daily/connectors/slack/test_slack_connector.py function test_validate_slack_connector_settings (line 12) | def test_validate_slack_connector_settings( function test_indexing_channels_with_message_count (line 50) | def test_indexing_channels_with_message_count( function test_indexing_channels_that_dont_exist (line 109) | def test_indexing_channels_that_dont_exist( FILE: backend/tests/daily/connectors/slack/test_slack_perm_sync.py function test_load_from_checkpoint_access__public_channel (line 36) | def test_load_from_checkpoint_access__public_channel( function test_load_from_checkpoint_access__private_channel (line 75) | def test_load_from_checkpoint_access__private_channel( function test_slim_documents_access__public_channel (line 115) | def test_slim_documents_access__public_channel( function test_slim_documents_access__private_channel (line 152) | def test_slim_documents_access__private_channel( FILE: backend/tests/daily/connectors/teams/models.py class TeamsThread (line 7) | class TeamsThread(BaseModel): method from_doc (line 12) | def from_doc(cls, document: Document) -> "TeamsThread": FILE: backend/tests/daily/connectors/teams/test_teams_connector.py function teams_credentials (line 76) | def teams_credentials() -> dict[str, str]: function teams_connector (line 89) | def teams_connector( function _build_map (line 97) | def _build_map(threads: list[TeamsThread]) -> dict[str, TeamsThread]: function _assert_is_valid_external_access (line 107) | def _assert_is_valid_external_access( function test_loading_all_docs_from_teams_connector (line 128) | def test_loading_all_docs_from_teams_connector( function test_slim_docs_retrieval_from_teams_connector (line 151) | def test_slim_docs_retrieval_from_teams_connector( function test_load_from_checkpoint_with_perm_sync (line 169) | def test_load_from_checkpoint_with_perm_sync( FILE: backend/tests/daily/connectors/utils.py class ConnectorOutput (line 22) | class ConnectorOutput(BaseModel): function load_all_from_connector (line 32) | def load_all_from_connector( function to_sections (line 142) | def to_sections( function to_text_sections (line 150) | def to_text_sections(sections: Iterator[TextSection | ImageSection]) -> ... FILE: backend/tests/daily/connectors/web/test_web_connector.py function quotes_to_scroll_web_connector (line 18) | def quotes_to_scroll_web_connector(request: pytest.FixtureRequest) -> We... function test_web_connector_scroll (line 29) | def test_web_connector_scroll(quotes_to_scroll_web_connector: WebConnect... function test_web_connector_no_scroll (line 45) | def test_web_connector_no_scroll(quotes_to_scroll_web_connector: WebConn... function test_web_connector_bot_protection (line 68) | def test_web_connector_bot_protection() -> None: function test_web_connector_recursive_www_redirect (line 83) | def test_web_connector_recursive_www_redirect() -> None: FILE: backend/tests/daily/connectors/zendesk/test_zendesk_connector.py function load_test_data (line 16) | def load_test_data(file_name: str = "test_zendesk_data.json") -> dict[st... function zendesk_article_connector (line 23) | def zendesk_article_connector() -> ZendeskConnector: function zendesk_ticket_connector (line 30) | def zendesk_ticket_connector() -> ZendeskConnector: function get_credentials (line 36) | def get_credentials() -> dict[str, str]: function test_zendesk_connector_basic (line 52) | def test_zendesk_connector_basic( function test_zendesk_connector_slim (line 111) | def test_zendesk_connector_slim(zendesk_article_connector: ZendeskConnec... FILE: backend/tests/daily/embedding/test_embeddings.py function _run_embeddings (line 20) | def _run_embeddings( function openai_embedding_model (line 30) | def openai_embedding_model() -> EmbeddingModel: function test_openai_embedding (line 44) | def test_openai_embedding(openai_embedding_model: EmbeddingModel) -> None: function cohere_embedding_model (line 50) | def cohere_embedding_model() -> EmbeddingModel: function test_cohere_embedding (line 64) | def test_cohere_embedding(cohere_embedding_model: EmbeddingModel) -> None: function litellm_embedding_model (line 70) | def litellm_embedding_model() -> EmbeddingModel: function test_litellm_embedding (line 85) | def test_litellm_embedding(litellm_embedding_model: EmbeddingModel) -> N... function local_nomic_embedding_model (line 91) | def local_nomic_embedding_model() -> EmbeddingModel: function test_local_nomic_embedding (line 105) | def test_local_nomic_embedding(local_nomic_embedding_model: EmbeddingMod... function azure_embedding_model (line 111) | def azure_embedding_model() -> EmbeddingModel: function test_azure_embedding (line 133) | def test_azure_embedding(azure_embedding_model: EmbeddingModel) -> None: FILE: backend/tests/daily/llm/test_bedrock.py function test_bedrock_llm_configuration (line 16) | def test_bedrock_llm_configuration(client: TestClient) -> None: function test_bedrock_llm_configuration_invalid_key (line 43) | def test_bedrock_llm_configuration_invalid_key(client: TestClient) -> None: FILE: backend/tests/external_dependency_unit/answer/conftest.py function ensure_default_llm_provider (line 22) | def ensure_default_llm_provider(db_session: Session) -> None: function mock_nlp_embeddings_post (line 51) | def mock_nlp_embeddings_post() -> Iterator[None]: function mock_gpu_status (line 80) | def mock_gpu_status() -> Iterator[None]: function mock_vespa_query (line 89) | def mock_vespa_query() -> Iterator[None]: function mock_file_store (line 96) | def mock_file_store() -> Iterator[None]: function mock_external_deps (line 118) | def mock_external_deps( FILE: backend/tests/external_dependency_unit/answer/stream_test_assertions.py function assert_answer_stream_part_correct (line 16) | def assert_answer_stream_part_correct( function _are_search_docs_equal (line 56) | def _are_search_docs_equal( function is_search_tool_document_delta_equal (line 85) | def is_search_tool_document_delta_equal( function is_open_url_documents_equal (line 100) | def is_open_url_documents_equal( function is_agent_response_start_equal (line 115) | def is_agent_response_start_equal( function is_image_generation_final_equal (line 135) | def is_image_generation_final_equal( FILE: backend/tests/external_dependency_unit/answer/stream_test_builder.py class StreamTestBuilder (line 26) | class StreamTestBuilder: method __init__ (line 27) | def __init__(self, llm_controller: MockLLMController) -> None: method add_response (line 33) | def add_response(self, response: LLMResponse) -> StreamTestBuilder: method add_responses_together (line 38) | def add_responses_together(self, *responses: LLMResponse) -> StreamTes... method expect (line 44) | def expect( method expect_packets (line 60) | def expect_packets( method expect_reasoning (line 77) | def expect_reasoning( method expect_agent_response (line 103) | def expect_agent_response( method run_and_validate (line 132) | def run_and_validate(self, stream: Iterator[AnswerStreamPart]) -> None: FILE: backend/tests/external_dependency_unit/answer/stream_test_utils.py function create_placement (line 26) | def create_placement( function submit_query (line 40) | def submit_query( function create_chat_session (line 64) | def create_chat_session( function create_packet_with_agent_response_delta (line 75) | def create_packet_with_agent_response_delta(token: str, turn_index: int)... function create_packet_with_reasoning_delta (line 84) | def create_packet_with_reasoning_delta(token: str, turn_index: int) -> P... function create_web_search_doc (line 93) | def create_web_search_doc( function mock_web_search_result_to_search_doc (line 112) | def mock_web_search_result_to_search_doc(result: MockWebSearchResult) ->... function mock_web_content_to_search_doc (line 120) | def mock_web_content_to_search_doc(content: MockWebContent) -> SearchDoc: function tokenise (line 128) | def tokenise(text: str) -> list[str]: FILE: backend/tests/external_dependency_unit/answer/test_answer_without_openai.py function test_answer_with_only_anthropic_provider (line 28) | def test_answer_with_only_anthropic_provider( FILE: backend/tests/external_dependency_unit/answer/test_current_datetime_replacement.py function test_stream_chat_current_date_response (line 19) | def test_stream_chat_current_date_response( FILE: backend/tests/external_dependency_unit/answer/test_stream_chat_message.py function test_stream_chat_with_answer (line 68) | def test_stream_chat_with_answer( function test_stream_chat_with_answer_create_chat (line 115) | def test_stream_chat_with_answer_create_chat( function test_stream_chat_with_search_and_openurl_tools (line 166) | def test_stream_chat_with_search_and_openurl_tools( function test_image_generation_tool_no_reasoning (line 412) | def test_image_generation_tool_no_reasoning( function test_parallel_internal_and_web_search_tool_calls (line 539) | def test_parallel_internal_and_web_search_tool_calls( FILE: backend/tests/external_dependency_unit/answer/test_stream_chat_message_objects.py function test_stream_chat_message_objects_without_web_search (line 23) | def test_stream_chat_message_objects_without_web_search( function test_nothing (line 137) | def test_nothing() -> None: FILE: backend/tests/external_dependency_unit/background/test_periodic_task_claim.py function _init_engine (line 37) | def _init_engine() -> None: function _make_task (line 41) | def _make_task( function _cleanup_kv (line 57) | def _cleanup_kv( class TestClaimHappyPath (line 73) | class TestClaimHappyPath: method test_first_claim_succeeds (line 74) | def test_first_claim_succeeds(self) -> None: method test_first_claim_creates_kv_row (line 77) | def test_first_claim_creates_kv_row(self) -> None: method test_second_claim_within_interval_fails (line 90) | def test_second_claim_within_interval_fails(self) -> None: method test_claim_after_interval_succeeds (line 95) | def test_claim_after_interval_succeeds(self) -> None: class TestRunHappyPath (line 114) | class TestRunHappyPath: method test_runs_task_and_updates_last_run_at (line 115) | def test_runs_task_and_updates_last_run_at(self) -> None: method test_skips_when_in_memory_interval_not_elapsed (line 124) | def test_skips_when_in_memory_interval_not_elapsed(self) -> None: method test_skips_when_db_claim_blocked (line 133) | def test_skips_when_db_claim_blocked(self) -> None: method test_task_exception_does_not_propagate (line 145) | def test_task_exception_does_not_propagate(self) -> None: method test_claim_committed_before_task_runs (line 149) | def test_claim_committed_before_task_runs(self) -> None: class TestClaimConcurrency (line 177) | class TestClaimConcurrency: method test_concurrent_claims_single_winner (line 178) | def test_concurrent_claims_single_winner(self) -> None: method test_concurrent_run_single_execution (line 204) | def test_concurrent_run_single_execution(self) -> None: method test_no_errors_under_contention (line 231) | def test_no_errors_under_contention(self) -> None: FILE: backend/tests/external_dependency_unit/background/test_startup_recovery.py function _create_user_file (line 36) | def _create_user_file( function _fake_delete_impl (line 60) | def _fake_delete_impl( function _fake_sync_impl (line 73) | def _fake_sync_impl( function _cleanup_user_files (line 91) | def _cleanup_user_files(db_session: Session) -> Generator[list[UserFile]... class TestRecoverProcessingFiles (line 107) | class TestRecoverProcessingFiles: method test_processing_files_recovered (line 110) | def test_processing_files_recovered( method test_completed_files_not_recovered (line 129) | def test_completed_files_not_recovered( class TestRecoverDeletingFiles (line 149) | class TestRecoverDeletingFiles: method test_deleting_files_recovered (line 152) | def test_deleting_files_recovered( class TestRecoverSyncFiles (line 172) | class TestRecoverSyncFiles: method test_needs_project_sync_recovered (line 175) | def test_needs_project_sync_recovered( method test_needs_persona_sync_recovered (line 199) | def test_needs_persona_sync_recovered( class TestRecoveryMultipleFiles (line 224) | class TestRecoveryMultipleFiles: method test_multiple_processing_files (line 227) | def test_multiple_processing_files( class TestTransientFailures (line 253) | class TestTransientFailures: method test_processing_failure_skips_and_continues (line 256) | def test_processing_failure_skips_and_continues( method test_delete_failure_skips_and_continues (line 290) | def test_delete_failure_skips_and_continues( method test_sync_failure_skips_and_continues (line 320) | def test_sync_failure_skips_and_continues( FILE: backend/tests/external_dependency_unit/cache/conftest.py function _init_db (line 22) | def _init_db() -> Generator[None, None, None]: function _tenant_context (line 29) | def _tenant_context() -> Generator[None, None, None]: function pg_cache (line 38) | def pg_cache() -> PostgresCacheBackend: function redis_cache (line 43) | def redis_cache() -> RedisCacheBackend: function cache (line 50) | def cache( FILE: backend/tests/external_dependency_unit/cache/test_cache_backend_parity.py function _key (line 16) | def _key() -> str: class TestKVParity (line 20) | class TestKVParity: method test_get_missing (line 21) | def test_get_missing(self, cache: CacheBackend) -> None: method test_get_set (line 24) | def test_get_set(self, cache: CacheBackend) -> None: method test_overwrite (line 29) | def test_overwrite(self, cache: CacheBackend) -> None: method test_set_string (line 35) | def test_set_string(self, cache: CacheBackend) -> None: method test_set_int (line 40) | def test_set_int(self, cache: CacheBackend) -> None: method test_delete (line 45) | def test_delete(self, cache: CacheBackend) -> None: method test_exists (line 51) | def test_exists(self, cache: CacheBackend) -> None: class TestTTLParity (line 58) | class TestTTLParity: method test_ttl_missing (line 59) | def test_ttl_missing(self, cache: CacheBackend) -> None: method test_ttl_no_expiry (line 62) | def test_ttl_no_expiry(self, cache: CacheBackend) -> None: method test_ttl_remaining (line 67) | def test_ttl_remaining(self, cache: CacheBackend) -> None: method test_set_with_ttl_expires (line 73) | def test_set_with_ttl_expires(self, cache: CacheBackend) -> None: class TestLockParity (line 81) | class TestLockParity: method test_acquire_release (line 82) | def test_acquire_release(self, cache: CacheBackend) -> None: class TestListParity (line 90) | class TestListParity: method test_rpush_blpop (line 91) | def test_rpush_blpop(self, cache: CacheBackend) -> None: method test_blpop_timeout (line 98) | def test_blpop_timeout(self, cache: CacheBackend) -> None: FILE: backend/tests/external_dependency_unit/cache/test_kv_store_cache_layer.py function _clean_kv (line 30) | def _clean_kv() -> Generator[None, None, None]: function kv_store (line 39) | def kv_store(pg_cache: PostgresCacheBackend) -> PgRedisKVStore: class TestStoreAndLoad (line 43) | class TestStoreAndLoad: method test_store_populates_cache_and_pg (line 44) | def test_store_populates_cache_and_pg( method test_load_returns_cached_value_without_pg_hit (line 56) | def test_load_returns_cached_value_without_pg_hit( method test_load_falls_through_to_pg_on_cache_miss (line 64) | def test_load_falls_through_to_pg_on_cache_miss( method test_load_with_refresh_cache_skips_cache (line 79) | def test_load_with_refresh_cache_skips_cache( class TestDelete (line 90) | class TestDelete: method test_delete_removes_from_cache_and_pg (line 91) | def test_delete_removes_from_cache_and_pg( method test_delete_missing_key_raises (line 102) | def test_delete_missing_key_raises(self, kv_store: PgRedisKVStore) -> ... class TestCacheFailureGracefulDegradation (line 107) | class TestCacheFailureGracefulDegradation: method test_store_succeeds_when_cache_set_raises (line 108) | def test_store_succeeds_when_cache_set_raises(self) -> None: method test_load_falls_through_when_cache_get_raises (line 121) | def test_load_falls_through_when_cache_get_raises(self) -> None: FILE: backend/tests/external_dependency_unit/cache/test_postgres_cache_backend.py function _key (line 20) | def _key() -> str: class TestKV (line 29) | class TestKV: method test_get_set (line 30) | def test_get_set(self, pg_cache: PostgresCacheBackend) -> None: method test_get_missing (line 35) | def test_get_missing(self, pg_cache: PostgresCacheBackend) -> None: method test_set_overwrite (line 38) | def test_set_overwrite(self, pg_cache: PostgresCacheBackend) -> None: method test_set_string_value (line 44) | def test_set_string_value(self, pg_cache: PostgresCacheBackend) -> None: method test_set_int_value (line 49) | def test_set_int_value(self, pg_cache: PostgresCacheBackend) -> None: method test_delete (line 54) | def test_delete(self, pg_cache: PostgresCacheBackend) -> None: method test_delete_missing_is_noop (line 60) | def test_delete_missing_is_noop(self, pg_cache: PostgresCacheBackend) ... method test_exists (line 63) | def test_exists(self, pg_cache: PostgresCacheBackend) -> None: class TestTTL (line 75) | class TestTTL: method test_set_with_ttl_expires (line 76) | def test_set_with_ttl_expires(self, pg_cache: PostgresCacheBackend) ->... method test_ttl_no_expiry (line 83) | def test_ttl_no_expiry(self, pg_cache: PostgresCacheBackend) -> None: method test_ttl_missing_key (line 88) | def test_ttl_missing_key(self, pg_cache: PostgresCacheBackend) -> None: method test_ttl_remaining (line 91) | def test_ttl_remaining(self, pg_cache: PostgresCacheBackend) -> None: method test_ttl_expired_key (line 97) | def test_ttl_expired_key(self, pg_cache: PostgresCacheBackend) -> None: method test_expire_adds_ttl (line 103) | def test_expire_adds_ttl(self, pg_cache: PostgresCacheBackend) -> None: method test_exists_respects_ttl (line 110) | def test_exists_respects_ttl(self, pg_cache: PostgresCacheBackend) -> ... class TestLock (line 123) | class TestLock: method test_acquire_release (line 124) | def test_acquire_release(self, pg_cache: PostgresCacheBackend) -> None: method test_contention (line 131) | def test_contention(self, pg_cache: PostgresCacheBackend) -> None: method test_context_manager (line 143) | def test_context_manager(self, pg_cache: PostgresCacheBackend) -> None: method test_blocking_timeout (line 148) | def test_blocking_timeout(self, pg_cache: PostgresCacheBackend) -> None: class TestList (line 167) | class TestList: method test_rpush_blpop (line 168) | def test_rpush_blpop(self, pg_cache: PostgresCacheBackend) -> None: method test_blpop_timeout (line 175) | def test_blpop_timeout(self, pg_cache: PostgresCacheBackend) -> None: method test_fifo_order (line 179) | def test_fifo_order(self, pg_cache: PostgresCacheBackend) -> None: method test_multiple_keys (line 190) | def test_multiple_keys(self, pg_cache: PostgresCacheBackend) -> None: class TestCleanup (line 205) | class TestCleanup: method test_removes_expired_rows (line 206) | def test_removes_expired_rows(self, pg_cache: PostgresCacheBackend) ->... method test_preserves_unexpired_rows (line 219) | def test_preserves_unexpired_rows(self, pg_cache: PostgresCacheBackend... method test_preserves_no_ttl_rows (line 225) | def test_preserves_no_ttl_rows(self, pg_cache: PostgresCacheBackend) -... FILE: backend/tests/external_dependency_unit/celery/test_docfetching_priority.py function _create_test_connector (line 38) | def _create_test_connector(db_session: Session, name: str) -> Connector: function _create_test_credential (line 53) | def _create_test_credential(db_session: Session) -> Credential: function _create_test_cc_pair (line 67) | def _create_test_cc_pair( function _create_test_search_settings (line 90) | def _create_test_search_settings( class TestDocfetchingTaskPriorityWithRealObjects (line 110) | class TestDocfetchingTaskPriorityWithRealObjects: method test_priority_based_on_last_successful_index_time (line 130) | def test_priority_based_on_last_successful_index_time( method test_no_task_created_when_deleting (line 206) | def test_no_task_created_when_deleting( method test_redis_lock_prevents_concurrent_task_creation (line 250) | def test_redis_lock_prevents_concurrent_task_creation( method test_lock_released_after_successful_task_creation (line 320) | def test_lock_released_after_successful_task_creation( FILE: backend/tests/external_dependency_unit/celery/test_docprocessing_priority.py function _create_test_connector (line 36) | def _create_test_connector(db_session: Session, name: str) -> Connector: function _create_test_credential (line 51) | def _create_test_credential(db_session: Session) -> Credential: function _create_test_cc_pair (line 65) | def _create_test_cc_pair( function _create_test_search_settings (line 88) | def _create_test_search_settings( function _create_test_index_attempt (line 108) | def _create_test_index_attempt( class TestDocprocessingPriorityInDocumentExtraction (line 128) | class TestDocprocessingPriorityInDocumentExtraction: method test_docprocessing_priority_based_on_last_successful_index_time (line 165) | def test_docprocessing_priority_based_on_last_successful_index_time( FILE: backend/tests/external_dependency_unit/celery/test_persona_file_sync.py function _create_completed_user_file (line 55) | def _create_completed_user_file( function _create_test_persona (line 79) | def _create_test_persona( function _link_file_to_persona (line 108) | def _link_file_to_persona( function _patch_task_app (line 121) | def _patch_task_app(task: Any, mock_app: MagicMock) -> Generator[None, N... class TestCheckSweepIncludesPersonaSync (line 145) | class TestCheckSweepIncludesPersonaSync: method test_persona_sync_flag_enqueues_task (line 148) | def test_persona_sync_flag_enqueues_task( method test_neither_flag_does_not_enqueue (line 168) | def test_neither_flag_does_not_enqueue( method test_both_flags_enqueues_once (line 188) | def test_both_flags_enqueues_once( class TestSyncTaskWritesPersonaIds (line 230) | class TestSyncTaskWritesPersonaIds: method test_passes_persona_ids_to_update_single (line 233) | def test_passes_persona_ids_to_update_single( method test_clears_persona_sync_flag (line 270) | def test_clears_persona_sync_flag( method test_passes_both_project_and_persona_ids (line 291) | def test_passes_both_project_and_persona_ids( method test_deleted_persona_excluded_from_ids (line 347) | def test_deleted_persona_excluded_from_ids( class TestUpsertPersonaMarksSyncFlag (line 391) | class TestUpsertPersonaMarksSyncFlag: method test_creating_persona_with_files_marks_sync (line 394) | def test_creating_persona_with_files_marks_sync( method test_updating_persona_files_marks_both_old_and_new (line 421) | def test_updating_persona_files_marks_both_old_and_new( method test_removing_all_files_marks_old_files (line 472) | def test_removing_all_files_marks_old_files( FILE: backend/tests/external_dependency_unit/celery/test_pruning_hierarchy_nodes.py function _make_hierarchy_nodes (line 74) | def _make_hierarchy_nodes() -> list[PydanticHierarchyNode]: function _make_slim_docs (line 118) | def _make_slim_docs() -> list[SlimDocument | PydanticHierarchyNode]: class MockSlimConnectorWithPermSync (line 125) | class MockSlimConnectorWithPermSync(SlimConnectorWithPermSync): method load_credentials (line 128) | def load_credentials( method retrieve_all_slim_docs_perm_sync (line 134) | def retrieve_all_slim_docs_perm_sync( method _generate (line 142) | def _generate(self) -> Iterator[list[SlimDocument | PydanticHierarchyN... function _create_cc_pair (line 159) | def _create_cc_pair( function _cleanup_test_data (line 195) | def _cleanup_test_data(db_session: Session) -> None: function _create_test_documents (line 236) | def _create_test_documents(db_session: Session) -> list[DbDocument]: function test_pruning_extracts_hierarchy_nodes (line 256) | def test_pruning_extracts_hierarchy_nodes( function test_pruning_upserts_hierarchy_nodes_to_db (line 274) | def test_pruning_upserts_hierarchy_nodes_to_db(db_session: Session) -> N... function test_pruning_upserts_hierarchy_nodes_public_connector (line 337) | def test_pruning_upserts_hierarchy_nodes_public_connector( function test_pruning_hierarchy_node_upsert_idempotency (line 366) | def test_pruning_hierarchy_node_upsert_idempotency(db_session: Session) ... function test_pruning_hierarchy_node_upsert_updates_fields (line 405) | def test_pruning_hierarchy_node_upsert_updates_fields(db_session: Sessio... function test_extraction_preserves_parent_hierarchy_raw_node_id (line 461) | def test_extraction_preserves_parent_hierarchy_raw_node_id( function test_update_document_parent_hierarchy_nodes (line 479) | def test_update_document_parent_hierarchy_nodes(db_session: Session) -> ... function test_update_document_parent_is_idempotent (line 523) | def test_update_document_parent_is_idempotent(db_session: Session) -> None: function test_link_hierarchy_nodes_to_documents_for_confluence (line 559) | def test_link_hierarchy_nodes_to_documents_for_confluence( function test_link_hierarchy_nodes_skips_non_hierarchy_sources (line 632) | def test_link_hierarchy_nodes_skips_non_hierarchy_sources( function test_upsert_hierarchy_node_cc_pair_entries (line 651) | def test_upsert_hierarchy_node_cc_pair_entries(db_session: Session) -> N... function test_remove_stale_entries_and_delete_orphans (line 706) | def test_remove_stale_entries_and_delete_orphans(db_session: Session) ->... function test_multi_cc_pair_prevents_premature_deletion (line 757) | def test_multi_cc_pair_prevents_premature_deletion(db_session: Session) ... function test_reparent_orphaned_children (line 813) | def test_reparent_orphaned_children(db_session: Session) -> None: FILE: backend/tests/external_dependency_unit/celery/test_user_file_delete_queue.py function _create_deleting_user_file (line 66) | def _create_deleting_user_file(db_session: Session, user_id: object) -> ... function _patch_task_app (line 83) | def _patch_task_app(task: Any, mock_app: MagicMock) -> Generator[None, N... class TestDeleteQueueDepthBackpressure (line 116) | class TestDeleteQueueDepthBackpressure: method test_no_tasks_enqueued_when_queue_over_limit (line 119) | def test_no_tasks_enqueued_when_queue_over_limit( class TestDeletePerFileGuardKey (line 139) | class TestDeletePerFileGuardKey: method test_guarded_file_not_re_enqueued (line 142) | def test_guarded_file_not_re_enqueued( method test_guard_key_exists_in_redis_after_enqueue (line 173) | def test_guard_key_exists_in_redis_after_enqueue( class TestDeleteTaskExpiry (line 206) | class TestDeleteTaskExpiry: method test_send_task_called_with_expires (line 209) | def test_send_task_called_with_expires( class TestDeleteWorkerClearsGuardKey (line 247) | class TestDeleteWorkerClearsGuardKey: method test_guard_key_deleted_on_pickup (line 250) | def test_guard_key_deleted_on_pickup( FILE: backend/tests/external_dependency_unit/celery/test_user_file_indexing_adapter.py function _create_user_file (line 40) | def _create_user_file(db_session: Session, user: User) -> UserFile: function _create_persona (line 56) | def _create_persona(db_session: Session, user: User) -> Persona: function _create_project (line 79) | def _create_project(db_session: Session, user: User) -> UserProject: function _make_index_chunk (line 91) | def _make_index_chunk(user_file: UserFile) -> IndexChunk: class TestAdapterWritesBothMetadataFields (line 129) | class TestAdapterWritesBothMetadataFields: method test_file_linked_to_persona_gets_persona_id (line 136) | def test_file_linked_to_persona_gets_persona_id( method test_file_linked_to_project_gets_project_id (line 170) | def test_file_linked_to_project_gets_project_id( method test_file_linked_to_both_gets_both_ids (line 205) | def test_file_linked_to_both_gets_both_ids( method test_file_with_no_associations_gets_empty_lists (line 242) | def test_file_with_no_associations_gets_empty_lists( method test_multiple_personas_all_appear (line 273) | def test_multiple_personas_all_appear( FILE: backend/tests/external_dependency_unit/celery/test_user_file_processing_queue.py function _create_processing_user_file (line 66) | def _create_processing_user_file(db_session: Session, user_id: object) -... function _patch_task_app (line 83) | def _patch_task_app(task: Any, mock_app: MagicMock) -> Generator[None, N... class TestQueueDepthBackpressure (line 113) | class TestQueueDepthBackpressure: method test_no_tasks_enqueued_when_queue_over_limit (line 116) | def test_no_tasks_enqueued_when_queue_over_limit( class TestPerFileGuardKey (line 138) | class TestPerFileGuardKey: method test_guarded_file_not_re_enqueued (line 141) | def test_guarded_file_not_re_enqueued( method test_guard_key_exists_in_redis_after_enqueue (line 172) | def test_guard_key_exists_in_redis_after_enqueue( class TestTaskExpiry (line 205) | class TestTaskExpiry: method test_send_task_called_with_expires (line 208) | def test_send_task_called_with_expires( class TestWorkerClearsGuardKey (line 247) | class TestWorkerClearsGuardKey: method test_guard_key_deleted_on_pickup (line 250) | def test_guard_key_deleted_on_pickup( FILE: backend/tests/external_dependency_unit/chat/test_user_reminder_message_type.py function _ensure_list (line 25) | def _ensure_list( function mock_llm_config (line 35) | def mock_llm_config() -> LLMConfig: class TestUserReminderMessageType (line 48) | class TestUserReminderMessageType: method test_user_reminder_wrapped_with_tags (line 51) | def test_user_reminder_wrapped_with_tags(self, mock_llm_config: LLMCon... method test_user_reminder_tag_format (line 76) | def test_user_reminder_tag_format(self, mock_llm_config: LLMConfig) ->... method test_user_reminder_converted_to_user_message (line 98) | def test_user_reminder_converted_to_user_message( method test_user_reminder_in_mixed_history (line 118) | def test_user_reminder_in_mixed_history(self, mock_llm_config: LLMConf... method test_regular_user_message_not_wrapped (line 160) | def test_regular_user_message_not_wrapped(self, mock_llm_config: LLMCo... function _create_llm_config (line 183) | def _create_llm_config(model_name: str) -> LLMConfig: class TestCodeBlockMarkdownFormatting (line 196) | class TestCodeBlockMarkdownFormatting: method test_o1_model_prepends_markdown_to_string (line 203) | def test_o1_model_prepends_markdown_to_string(self) -> None: method test_o3_model_prepends_markdown (line 223) | def test_o3_model_prepends_markdown(self) -> None: method test_gpt5_model_prepends_markdown (line 243) | def test_gpt5_model_prepends_markdown(self) -> None: method test_gpt4o_does_not_prepend (line 263) | def test_gpt4o_does_not_prepend(self) -> None: method test_no_system_message_no_crash (line 285) | def test_no_system_message_no_crash(self) -> None: method test_only_first_system_message_modified (line 304) | def test_only_first_system_message_modified(self) -> None: FILE: backend/tests/external_dependency_unit/conftest.py function db_session (line 22) | def db_session() -> Generator[Session, None, None]: function full_deployment_setup (line 34) | def full_deployment_setup() -> Generator[None, None, None]: function tenant_context (line 45) | def tenant_context() -> Generator[None, None, None]: function create_test_user (line 56) | def create_test_user( function initialize_file_store (line 87) | def initialize_file_store() -> Generator[None, None, None]: FILE: backend/tests/external_dependency_unit/connectors/confluence/conftest.py function confluence_connector_config (line 8) | def confluence_connector_config() -> dict[str, Any]: function confluence_credential_json (line 25) | def confluence_credential_json() -> dict[str, Any]: FILE: backend/tests/external_dependency_unit/connectors/confluence/test_confluence_group_sync.py function test_confluence_group_sync (line 114) | def test_confluence_group_sync( FILE: backend/tests/external_dependency_unit/connectors/google_drive/test_google_drive_group_sync.py function _create_ext_perm_user (line 29) | def _create_ext_perm_user(db_session: Session, name: str) -> User: function _create_test_connector_credential_pair (line 39) | def _create_test_connector_credential_pair( function _get_user_external_groups (line 86) | def _get_user_external_groups( function _get_public_external_groups (line 99) | def _get_public_external_groups( class TestPerformExternalGroupSync (line 112) | class TestPerformExternalGroupSync: method test_initial_group_sync (line 113) | def test_initial_group_sync(self, db_session: Session) -> None: method test_update_existing_groups (line 188) | def test_update_existing_groups(self, db_session: Session) -> None: method test_remove_groups (line 285) | def test_remove_groups(self, db_session: Session) -> None: method test_empty_group_sync (line 370) | def test_empty_group_sync(self, db_session: Session) -> None: method test_batch_processing (line 424) | def test_batch_processing(self, db_session: Session) -> None: method test_mixed_regular_and_public_groups (line 465) | def test_mixed_regular_and_public_groups(self, db_session: Session) ->... FILE: backend/tests/external_dependency_unit/connectors/jira/conftest.py function jira_connector_config (line 8) | def jira_connector_config() -> dict[str, Any]: function jira_credential_json (line 19) | def jira_credential_json() -> dict[str, Any]: FILE: backend/tests/external_dependency_unit/connectors/jira/test_jira_doc_sync.py class DocExternalAccessSet (line 27) | class DocExternalAccessSet(BaseModel): method from_doc_external_access (line 36) | def from_doc_external_access( function test_jira_doc_sync (line 47) | def test_jira_doc_sync( function test_jira_doc_sync_with_specific_permissions (line 142) | def test_jira_doc_sync_with_specific_permissions( FILE: backend/tests/external_dependency_unit/connectors/jira/test_jira_group_sync.py function test_jira_group_sync (line 96) | def test_jira_group_sync( FILE: backend/tests/external_dependency_unit/craft/conftest.py function db_session (line 22) | def db_session() -> Generator[Session, None, None]: function tenant_context (line 30) | def tenant_context() -> Generator[None, None, None]: function test_user (line 40) | def test_user(db_session: Session, tenant_context: None) -> User: # noq... function build_session (line 65) | def build_session( FILE: backend/tests/external_dependency_unit/craft/test_build_packet_storage.py class TestBuildMessageStorage (line 22) | class TestBuildMessageStorage: method test_create_message_with_metadata (line 25) | def test_create_message_with_metadata( method test_create_multiple_messages_with_turn_index (line 53) | def test_create_multiple_messages_with_turn_index( method test_tool_call_completed_storage (line 119) | def test_tool_call_completed_storage( method test_upsert_agent_plan (line 161) | def test_upsert_agent_plan( method test_upsert_agent_plan_without_existing_id (line 228) | def test_upsert_agent_plan_without_existing_id( method test_streaming_flow_db_calls (line 276) | def test_streaming_flow_db_calls( class TestBuildStreamingState (line 372) | class TestBuildStreamingState: method test_message_chunk_accumulation (line 375) | def test_message_chunk_accumulation(self) -> None: method test_thought_chunk_accumulation (line 391) | def test_thought_chunk_accumulation(self) -> None: method test_should_finalize_chunks_on_type_change (line 404) | def test_should_finalize_chunks_on_type_change(self) -> None: method test_finalize_returns_none_when_empty (line 419) | def test_finalize_returns_none_when_empty(self) -> None: FILE: backend/tests/external_dependency_unit/craft/test_file_upload.py function sandbox (line 33) | def sandbox( function build_session_with_user (line 51) | def build_session_with_user( function mock_sandbox_manager (line 71) | def mock_sandbox_manager() -> MagicMock: function session_manager_with_mock (line 77) | def session_manager_with_mock( class TestFileUpload (line 92) | class TestFileUpload: method test_upload_file_delegates_to_sandbox_manager (line 95) | def test_upload_file_delegates_to_sandbox_manager( method test_upload_file_returns_correct_path (line 129) | def test_upload_file_returns_correct_path( method test_upload_file_session_not_found (line 153) | def test_upload_file_session_not_found( class TestFileUploadLimits (line 169) | class TestFileUploadLimits: method test_upload_file_count_limit_enforced (line 172) | def test_upload_file_count_limit_enforced( method test_upload_total_size_limit_enforced (line 199) | def test_upload_total_size_limit_enforced( method test_upload_succeeds_when_under_limits (line 224) | def test_upload_succeeds_when_under_limits( class TestFileDelete (line 251) | class TestFileDelete: method test_delete_file_delegates_to_sandbox_manager (line 254) | def test_delete_file_delegates_to_sandbox_manager( method test_delete_file_returns_false_when_not_found (line 278) | def test_delete_file_returns_false_when_not_found( method test_delete_file_session_not_found (line 297) | def test_delete_file_session_not_found( class TestPathSanitization (line 312) | class TestPathSanitization: method test_delete_file_rejects_path_traversal (line 315) | def test_delete_file_rejects_path_traversal( method test_delete_file_rejects_url_encoded_traversal (line 336) | def test_delete_file_rejects_url_encoded_traversal( method test_delete_file_rejects_shell_metacharacters (line 356) | def test_delete_file_rejects_shell_metacharacters( method test_delete_file_rejects_null_bytes (line 387) | def test_delete_file_rejects_null_bytes( class TestFilenameCollision (line 408) | class TestFilenameCollision: method test_upload_returns_collision_handled_path (line 411) | def test_upload_returns_collision_handled_path( class TestGetUploadStats (line 437) | class TestGetUploadStats: method test_get_upload_stats_delegates_to_sandbox_manager (line 440) | def test_get_upload_stats_delegates_to_sandbox_manager( method test_get_upload_stats_session_not_found (line 464) | def test_get_upload_stats_session_not_found( FILE: backend/tests/external_dependency_unit/craft/test_kubernetes_sandbox.py function _is_kubernetes_available (line 45) | def _is_kubernetes_available() -> None: function _get_kubernetes_client (line 57) | def _get_kubernetes_client() -> client.CoreV1Api: function test_kubernetes_sandbox_provision (line 70) | def test_kubernetes_sandbox_provision() -> None: function test_kubernetes_sandbox_send_message (line 306) | def test_kubernetes_sandbox_send_message() -> None: function test_kubernetes_sandbox_webapp_passthrough (line 426) | def test_kubernetes_sandbox_webapp_passthrough() -> None: function test_kubernetes_sandbox_file_sync (line 621) | def test_kubernetes_sandbox_file_sync() -> None: function test_health_check_returns_true_for_running_pod (line 793) | def test_health_check_returns_true_for_running_pod() -> None: function test_health_check_returns_false_for_missing_pod (line 851) | def test_health_check_returns_false_for_missing_pod() -> None: function test_health_check_returns_false_after_termination (line 881) | def test_health_check_returns_false_after_termination() -> None: FILE: backend/tests/external_dependency_unit/craft/test_persistent_document_writer.py function _create_test_document (line 33) | def _create_test_document(doc_id: str, name: str) -> Document: function test_local_persistent_document_writer (line 49) | def test_local_persistent_document_writer() -> None: function _is_s3_available (line 79) | def _is_s3_available() -> bool: function test_s3_persistent_document_writer (line 93) | def test_s3_persistent_document_writer() -> None: FILE: backend/tests/external_dependency_unit/db/conftest.py function scim_dal (line 25) | def scim_dal(db_session: Session) -> ScimDAL: function scim_token_factory (line 31) | def scim_token_factory( function user_group_factory (line 64) | def user_group_factory( FILE: backend/tests/external_dependency_unit/db/test_chat_session_eager_load.py function test_eager_load_persona_loads_relationships (line 11) | def test_eager_load_persona_loads_relationships(db_session: Session) -> ... FILE: backend/tests/external_dependency_unit/db/test_credential_sensitive_value.py function test_nested_credential_json_round_trip (line 32) | def test_nested_credential_json_round_trip(db_session: Session) -> None: function test_reassign_same_nested_json_not_dirty (line 54) | def test_reassign_same_nested_json_not_dirty(db_session: Session) -> None: function test_assign_different_nested_json_is_dirty (line 74) | def test_assign_different_nested_json_is_dirty(db_session: Session) -> N... FILE: backend/tests/external_dependency_unit/db/test_rotate_encryption_key.py function _enable_ee (line 44) | def _enable_ee() -> Generator[None, None, None]: function _clear_key_cache (line 54) | def _clear_key_cache() -> None: function _raw_credential_bytes (line 58) | def _raw_credential_bytes(db_session: Session, credential_id: int) -> by... function _raw_isp_bytes (line 67) | def _raw_isp_bytes(db_session: Session, isp_id: int) -> bytes | None: class TestDiscoverEncryptedColumns (line 76) | class TestDiscoverEncryptedColumns: method test_discovers_credential_json (line 79) | def test_discovers_credential_json(self) -> None: method test_discovers_internet_search_provider_api_key (line 87) | def test_discovers_internet_search_provider_api_key(self) -> None: method test_all_encrypted_string_columns_are_not_json (line 95) | def test_all_encrypted_string_columns_are_not_json(self) -> None: method test_all_encrypted_json_columns_are_json (line 105) | def test_all_encrypted_json_columns_are_json(self) -> None: class TestRotateCredential (line 116) | class TestRotateCredential: method _limit_discovery (line 124) | def _limit_discovery(self) -> Generator[None, None, None]: method credential_id (line 132) | def credential_id( method test_rotates_credential_json (line 160) | def test_rotates_credential_json( method test_skips_already_rotated (line 177) | def test_skips_already_rotated( method test_dry_run_does_not_modify (line 192) | def test_dry_run_does_not_modify( class TestRotateInternetSearchProvider (line 209) | class TestRotateInternetSearchProvider: method _limit_discovery (line 217) | def _limit_discovery(self) -> Generator[None, None, None]: method isp_id (line 227) | def isp_id( method test_rotates_api_key (line 259) | def test_rotates_api_key(self, db_session: Session, isp_id: int) -> None: method test_rotates_from_unencrypted (line 272) | def test_rotates_from_unencrypted( FILE: backend/tests/external_dependency_unit/db/test_tag_race_condition.py function _create_test_document (line 26) | def _create_test_document(db_session: Session, doc_id: str) -> Document: class TestTagRaceCondition (line 40) | class TestTagRaceCondition: method test_concurrent_tag_creation_single_tag (line 43) | def test_concurrent_tag_creation_single_tag( method test_concurrent_tag_list_creation (line 123) | def test_concurrent_tag_list_creation( method test_concurrent_mixed_tag_operations (line 203) | def test_concurrent_mixed_tag_operations( FILE: backend/tests/external_dependency_unit/db/test_user_account_type.py function test_slack_user_creation_sets_account_type_bot (line 18) | def test_slack_user_creation_sets_account_type_bot(db_session: Session) ... function test_ext_perm_user_creation_sets_account_type (line 26) | def test_ext_perm_user_creation_sets_account_type(db_session: Session) -... function test_ext_perm_to_slack_upgrade_updates_role_and_account_type (line 38) | def test_ext_perm_to_slack_upgrade_updates_role_and_account_type( FILE: backend/tests/external_dependency_unit/discord_bot/conftest.py function db_session (line 20) | def db_session() -> Generator[Session, None, None]: function tenant_context (line 28) | def tenant_context() -> Generator[None, None, None]: function mock_cache_manager (line 38) | def mock_cache_manager() -> MagicMock: function mock_api_client (line 50) | def mock_api_client() -> MagicMock: function mock_discord_guild (line 70) | def mock_discord_guild() -> MagicMock: function mock_discord_message (line 108) | def mock_discord_message(mock_discord_guild: MagicMock) -> MagicMock: function mock_bot_user (line 138) | def mock_bot_user() -> MagicMock: function mock_discord_bot (line 148) | def mock_discord_bot( FILE: backend/tests/external_dependency_unit/discord_bot/test_discord_events.py class TestGuildRegistrationCommand (line 22) | class TestGuildRegistrationCommand: method test_register_guild_success (line 26) | async def test_register_guild_success( method test_register_invalid_key_format (line 69) | async def test_register_invalid_key_format( method test_register_key_not_found (line 93) | async def test_register_key_not_found( method test_register_key_already_used (line 132) | async def test_register_key_already_used( method test_register_guild_already_registered (line 175) | async def test_register_guild_already_registered( method test_register_no_permission (line 202) | async def test_register_no_permission( method test_register_in_dm (line 224) | async def test_register_in_dm( method test_register_syncs_forum_channels (line 243) | async def test_register_syncs_forum_channels( method test_register_private_channel_detection (line 255) | async def test_register_private_channel_detection( class TestSyncChannelsCommand (line 267) | class TestSyncChannelsCommand: method test_sync_channels_adds_new (line 271) | async def test_sync_channels_adds_new( method test_sync_channels_no_permission (line 315) | async def test_sync_channels_no_permission( method test_sync_channels_unregistered_guild (line 337) | async def test_sync_channels_unregistered_guild( class TestMessageHandling (line 358) | class TestMessageHandling: method test_message_adds_thinking_emoji (line 362) | async def test_message_adds_thinking_emoji( method test_message_removes_thinking_emoji (line 381) | async def test_message_removes_thinking_emoji( method test_message_reaction_failure_non_blocking (line 400) | async def test_message_reaction_failure_non_blocking( method test_dm_response (line 425) | async def test_dm_response(self) -> None: class TestThreadCreationAndResponseRouting (line 438) | class TestThreadCreationAndResponseRouting: method test_response_in_existing_thread (line 442) | async def test_response_in_existing_thread( method test_response_creates_thread_thread_only_mode (line 462) | async def test_response_creates_thread_thread_only_mode( method test_response_replies_inline (line 483) | async def test_response_replies_inline( method test_thread_name_truncation (line 499) | async def test_thread_name_truncation( method test_error_response_creates_thread (line 520) | async def test_error_response_creates_thread( class TestBotLifecycle (line 536) | class TestBotLifecycle: method test_setup_hook_initializes_cache (line 540) | async def test_setup_hook_initializes_cache( method test_setup_hook_initializes_api_client (line 574) | async def test_setup_hook_initializes_api_client( method test_close_closes_api_client (line 600) | async def test_close_closes_api_client( FILE: backend/tests/external_dependency_unit/document_index/conftest.py function make_chunk (line 42) | def make_chunk( function make_indexing_metadata (line 97) | def make_indexing_metadata( function tenant_context (line 119) | def tenant_context() -> Generator[None, None, None]: function test_index_name (line 129) | def test_index_name() -> Generator[str, None, None]: function httpx_client (line 134) | def httpx_client() -> Generator[httpx.Client, None, None]: function vespa_index (line 143) | def vespa_index( function opensearch_old_index (line 222) | def opensearch_old_index( FILE: backend/tests/external_dependency_unit/document_index/test_document_index.py function vespa_document_index (line 40) | def vespa_document_index( function opensearch_document_index (line 54) | def opensearch_document_index( function document_indices (line 67) | def document_indices( class TestDocumentIndexNew (line 79) | class TestDocumentIndexNew: method test_index_single_new_doc (line 82) | def test_index_single_new_doc( method test_index_existing_doc_already_existed_true (line 99) | def test_index_existing_doc_already_existed_true( method test_index_multiple_docs (line 129) | def test_index_multiple_docs( method test_index_deduplicates_doc_ids_in_results (line 154) | def test_index_deduplicates_doc_ids_in_results( method test_index_mixed_new_and_existing_docs (line 171) | def test_index_mixed_new_and_existing_docs( method test_index_accepts_generator (line 207) | def test_index_accepts_generator( FILE: backend/tests/external_dependency_unit/document_index/test_document_index_old.py function document_indices (line 27) | def document_indices( function chunks (line 36) | def chunks( function index_batch_params (line 43) | def index_batch_params( class TestDocumentIndexOld (line 64) | class TestDocumentIndexOld: method test_update_single_can_clear_user_projects_and_personas (line 71) | def test_update_single_can_clear_user_projects_and_personas( method test_index_accepts_generator (line 171) | def test_index_accepts_generator( FILE: backend/tests/external_dependency_unit/feature_flags/test_feature_flag_provider_factory.py class TestNoOpFeatureFlagProvider (line 16) | class TestNoOpFeatureFlagProvider: method test_always_returns_false (line 19) | def test_always_returns_false(self) -> None: class TestFeatureFlagFactory (line 27) | class TestFeatureFlagFactory: method test_factory_returns_provider (line 30) | def test_factory_returns_provider(self) -> None: method test_posthog_provider (line 35) | def test_posthog_provider(self) -> None: FILE: backend/tests/external_dependency_unit/file_store/test_file_store_non_mocked.py class BackendConfig (line 35) | class BackendConfig(TypedDict): class FileTestData (line 44) | class FileTestData(TypedDict): class WorkerResult (line 52) | class WorkerResult(TypedDict): function _get_all_backend_configs (line 58) | def _get_all_backend_configs() -> List[BackendConfig]: function file_store (line 111) | def file_store( class TestS3BackedFileStore (line 161) | class TestS3BackedFileStore: method test_store_initialization (line 164) | def test_store_initialization(self, file_store: S3BackedFileStore) -> ... method test_save_and_read_text_file (line 176) | def test_save_and_read_text_file(self, file_store: S3BackedFileStore) ... method test_save_and_read_binary_file (line 215) | def test_save_and_read_binary_file(self, file_store: S3BackedFileStore... method test_save_with_metadata (line 242) | def test_save_with_metadata(self, file_store: S3BackedFileStore) -> None: method test_has_file (line 273) | def test_has_file(self, file_store: S3BackedFileStore) -> None: method test_read_file_with_tempfile (line 320) | def test_read_file_with_tempfile(self, file_store: S3BackedFileStore) ... method test_delete_file (line 361) | def test_delete_file(self, file_store: S3BackedFileStore) -> None: method test_get_file_with_mime_type (line 402) | def test_get_file_with_mime_type(self, file_store: S3BackedFileStore) ... method test_file_overwrite (line 430) | def test_file_overwrite(self, file_store: S3BackedFileStore) -> None: method test_large_file_handling (line 471) | def test_large_file_handling(self, file_store: S3BackedFileStore) -> N... method test_error_handling_nonexistent_file (line 500) | def test_error_handling_nonexistent_file( method test_error_handling_delete_nonexistent_file (line 516) | def test_error_handling_delete_nonexistent_file( method test_multiple_files_different_origins (line 526) | def test_multiple_files_different_origins( method test_special_characters_in_filenames (line 584) | def test_special_characters_in_filenames( method test_network_error_handling (line 621) | def test_network_error_handling(self, file_store: S3BackedFileStore) -... method test_database_transaction_rollback (line 650) | def test_database_transaction_rollback(self, file_store: S3BackedFileS... method test_complex_jsonb_metadata (line 684) | def test_complex_jsonb_metadata(self, file_store: S3BackedFileStore) -... method test_database_consistency_after_s3_failure (line 741) | def test_database_consistency_after_s3_failure( method test_concurrent_file_operations (line 806) | def test_concurrent_file_operations(self, file_store: S3BackedFileStor... method test_list_files_by_prefix (line 891) | def test_list_files_by_prefix(self, file_store: S3BackedFileStore) -> ... method test_get_file_size (line 980) | def test_get_file_size(self, file_store: S3BackedFileStore) -> None: method test_get_file_size_nonexistent_file (line 1007) | def test_get_file_size_nonexistent_file( FILE: backend/tests/external_dependency_unit/file_store/test_postgres_file_store_non_mocked.py function pg_file_store (line 37) | def pg_file_store( class TestPostgresBackedFileStore (line 69) | class TestPostgresBackedFileStore: method test_save_and_read_text_file (line 74) | def test_save_and_read_text_file( method test_save_and_read_binary_file (line 93) | def test_save_and_read_binary_file( method test_save_string_io (line 109) | def test_save_string_io(self, pg_file_store: PostgresBackedFileStore) ... method test_auto_generated_file_id (line 124) | def test_auto_generated_file_id( method test_read_file_with_tempfile (line 141) | def test_read_file_with_tempfile( method test_file_record_fields (line 164) | def test_file_record_fields(self, pg_file_store: PostgresBackedFileSto... method test_file_content_record (line 189) | def test_file_content_record(self, pg_file_store: PostgresBackedFileSt... method test_has_file (line 209) | def test_has_file(self, pg_file_store: PostgresBackedFileStore) -> None: method test_get_file_size (line 229) | def test_get_file_size(self, pg_file_store: PostgresBackedFileStore) -... method test_get_file_size_nonexistent (line 243) | def test_get_file_size_nonexistent( method test_delete_file (line 250) | def test_delete_file(self, pg_file_store: PostgresBackedFileStore) -> ... method test_delete_nonexistent_raises (line 272) | def test_delete_nonexistent_raises( method test_overwrite_file (line 280) | def test_overwrite_file(self, pg_file_store: PostgresBackedFileStore) ... method test_change_file_id (line 318) | def test_change_file_id(self, pg_file_store: PostgresBackedFileStore) ... method test_list_files_by_prefix (line 345) | def test_list_files_by_prefix(self, pg_file_store: PostgresBackedFileS... method test_get_file_with_mime_type (line 375) | def test_get_file_with_mime_type( method test_get_file_with_mime_type_nonexistent (line 393) | def test_get_file_with_mime_type_nonexistent( method test_read_nonexistent_raises (line 400) | def test_read_nonexistent_raises( method test_read_file_record_nonexistent_raises (line 406) | def test_read_file_record_nonexistent_raises( method test_large_file_roundtrip (line 414) | def test_large_file_roundtrip(self, pg_file_store: PostgresBackedFileS... method test_multiple_files_different_origins (line 432) | def test_multiple_files_different_origins( method test_complex_jsonb_metadata (line 471) | def test_complex_jsonb_metadata( FILE: backend/tests/external_dependency_unit/full_setup.py function ensure_full_deployment_setup (line 24) | def ensure_full_deployment_setup( FILE: backend/tests/external_dependency_unit/hierarchy/test_hierarchy_access_filter.py function _make_node (line 20) | def _make_node( function seeded_nodes (line 40) | def seeded_nodes(db_session: Session) -> Generator[list[HierarchyNode], ... function test_group_overlap_filter (line 76) | def test_group_overlap_filter( function test_email_filter (line 99) | def test_email_filter( function test_no_credentials_returns_only_public (line 119) | def test_no_credentials_returns_only_public( function test_combined_email_and_group (line 139) | def test_combined_email_and_group( FILE: backend/tests/external_dependency_unit/llm/test_llm_provider.py function _create_mock_admin (line 38) | def _create_mock_admin() -> MagicMock: function _create_test_provider (line 45) | def _create_test_provider( function _cleanup_provider (line 65) | def _cleanup_provider(db_session: Session, name: str) -> None: function provider_name (line 73) | def provider_name() -> Generator[str, None, None]: class TestLLMConfigurationEndpoint (line 78) | class TestLLMConfigurationEndpoint: method test_successful_llm_test_with_new_provider (line 81) | def test_successful_llm_test_with_new_provider( method test_failed_llm_test_raises_onyx_error (line 126) | def test_failed_llm_test_raises_onyx_error( method test_uses_existing_provider_api_key_when_not_changed (line 166) | def test_uses_existing_provider_api_key_when_not_changed( method test_uses_new_api_key_when_changed (line 214) | def test_uses_new_api_key_when_changed( method test_uses_existing_custom_config_when_not_changed (line 263) | def test_uses_existing_custom_config_when_not_changed( method test_different_model_names (line 325) | def test_different_model_names( class TestDefaultProviderEndpoint (line 369) | class TestDefaultProviderEndpoint: method test_default_provider_switching (line 372) | def test_default_provider_switching( method test_no_default_provider_raises_exception (line 515) | def test_no_default_provider_raises_exception( method test_default_provider_test_failure (line 548) | def test_default_provider_test_failure( FILE: backend/tests/external_dependency_unit/llm/test_llm_provider_api_base.py function _create_test_provider (line 38) | def _create_test_provider( function _cleanup_provider (line 61) | def _cleanup_provider(db_session: Session, name: str) -> None: function _create_mock_admin (line 68) | def _create_mock_admin() -> MagicMock: function provider_name (line 76) | def provider_name() -> Generator[str, None, None]: class TestLLMProviderChanges (line 81) | class TestLLMProviderChanges: method test_blocks_api_base_change_without_key_change__multi_tenant (line 84) | def test_blocks_api_base_change_without_key_change__multi_tenant( method test_allows_api_base_change_with_key_change__multi_tenant (line 119) | def test_allows_api_base_change_with_key_change__multi_tenant( method test_allows_same_api_base__multi_tenant (line 151) | def test_allows_same_api_base__multi_tenant( method test_allows_empty_string_api_base_when_existing_is_none__multi_tenant (line 185) | def test_allows_empty_string_api_base_when_existing_is_none__multi_ten... method test_blocks_clearing_api_base__multi_tenant (line 216) | def test_blocks_clearing_api_base__multi_tenant( method test_allows_api_base_change__single_tenant (line 255) | def test_allows_api_base_change__single_tenant( method test_new_provider_creation_not_affected__multi_tenant (line 287) | def test_new_provider_creation_not_affected__multi_tenant( method test_blocks_custom_config_change_without_key_change__multi_tenant (line 317) | def test_blocks_custom_config_change_without_key_change__multi_tenant( method test_blocks_adding_custom_config_without_key_change__multi_tenant (line 358) | def test_blocks_adding_custom_config_without_key_change__multi_tenant( method test_allows_custom_config_change_with_key_change__multi_tenant (line 394) | def test_allows_custom_config_change_with_key_change__multi_tenant( method test_allows_same_custom_config__multi_tenant (line 433) | def test_allows_same_custom_config__multi_tenant( method test_allows_custom_config_change__single_tenant (line 468) | def test_allows_custom_config_change__single_tenant( function test_upload_with_custom_config_then_change (line 507) | def test_upload_with_custom_config_then_change( function test_preserves_masked_sensitive_custom_config_on_provider_update (line 621) | def test_preserves_masked_sensitive_custom_config_on_provider_update( function test_preserves_masked_sensitive_custom_config_on_test_request (line 692) | def test_preserves_masked_sensitive_custom_config_on_test_request( FILE: backend/tests/external_dependency_unit/llm/test_llm_provider_auto_mode.py function _create_mock_admin (line 40) | def _create_mock_admin() -> MagicMock: function _cleanup_provider (line 47) | def _cleanup_provider(db_session: Session, name: str) -> None: function _create_mock_llm_recommendations (line 54) | def _create_mock_llm_recommendations( function provider_name (line 88) | def provider_name() -> Generator[str, None, None]: class TestAutoModeSyncFeature (line 93) | class TestAutoModeSyncFeature: method test_auto_mode_syncs_models_from_github_config (line 96) | def test_auto_mode_syncs_models_from_github_config( method test_auto_mode_with_multiple_providers_in_config (line 187) | def test_auto_mode_with_multiple_providers_in_config( method test_existing_provider_transition_to_auto_mode (line 264) | def test_existing_provider_transition_to_auto_mode( method test_auto_mode_provider_not_in_config (line 389) | def test_auto_mode_provider_not_in_config( method test_switching_default_between_auto_mode_providers (line 455) | def test_switching_default_between_auto_mode_providers( class TestAutoModeMissingFlows (line 607) | class TestAutoModeMissingFlows: method test_sync_auto_mode_creates_flow_rows (line 612) | def test_sync_auto_mode_creates_flow_rows( class TestAutoModeTransitionsAndResync (line 697) | class TestAutoModeTransitionsAndResync: method test_transition_to_auto_mode_preserves_default (line 700) | def test_transition_to_auto_mode_preserves_default( method test_auto_to_manual_mode_preserves_models_and_stops_syncing (line 792) | def test_auto_to_manual_mode_preserves_models_and_stops_syncing( method test_resync_adds_new_and_hides_removed_models (line 886) | def test_resync_adds_new_and_hides_removed_models( method test_sync_is_idempotent (line 969) | def test_sync_is_idempotent( method test_default_model_hidden_when_removed_from_config (line 1051) | def test_default_model_hidden_when_removed_from_config( method test_sync_updates_default_when_recommended_default_changes (line 1152) | def test_sync_updates_default_when_recommended_default_changes( method test_sync_idempotent_when_default_already_matches (line 1247) | def test_sync_idempotent_when_default_already_matches( FILE: backend/tests/external_dependency_unit/llm/test_llm_provider_called.py function _create_admin (line 35) | def _create_admin(db_session: Session) -> User: function _create_provider (line 58) | def _create_provider( function use_mock_llm (line 83) | def use_mock_llm() -> ( function _cleanup_provider (line 117) | def _cleanup_provider(db_session: Session, name: str) -> None: function _assert_llm_calls (line 124) | def _assert_llm_calls( function _reset_call_tracker (line 139) | def _reset_call_tracker(call_tracker: dict[str, bool | str | None]) -> N... function test_user_sends_message_to_private_provider (line 146) | def test_user_sends_message_to_private_provider( FILE: backend/tests/external_dependency_unit/llm/test_llm_provider_default_model_protection.py function _create_test_provider (line 25) | def _create_test_provider( function _cleanup_provider (line 52) | def _cleanup_provider(db_session: Session, name: str) -> None: function provider_name (line 60) | def provider_name(db_session: Session) -> Generator[str, None, None]: class TestDefaultModelProtection (line 68) | class TestDefaultModelProtection: method test_cannot_remove_default_text_model (line 71) | def test_cannot_remove_default_text_model( method test_cannot_hide_default_text_model (line 98) | def test_cannot_hide_default_text_model( method test_cannot_remove_default_vision_model (line 128) | def test_cannot_remove_default_vision_model( method test_can_remove_non_default_model (line 157) | def test_can_remove_non_default_model( method test_can_hide_non_default_model (line 187) | def test_can_hide_non_default_model( FILE: backend/tests/external_dependency_unit/llm/test_prompt_caching.py function _extract_cached_tokens (line 33) | def _extract_cached_tokens(usage: Usage | None) -> int: function _extract_prompt_tokens (line 44) | def _extract_prompt_tokens(usage: Usage | None) -> int: function _extract_cache_read_tokens (line 53) | def _extract_cache_read_tokens(usage: Usage | None) -> int: function _get_usage_value (line 63) | def _get_usage_value(usage: Any, key: str) -> int: function _resolve_vertex_credentials (line 72) | def _resolve_vertex_credentials() -> tuple[Path, bool]: function _validate_vertex_credentials_file (line 101) | def _validate_vertex_credentials_file(credentials_path: Path) -> None: function test_openai_prompt_caching_reduces_costs (line 153) | def test_openai_prompt_caching_reduces_costs( function test_anthropic_prompt_caching_reduces_costs (line 277) | def test_anthropic_prompt_caching_reduces_costs( function test_google_genai_prompt_caching_reduces_costs (line 436) | def test_google_genai_prompt_caching_reduces_costs( function test_prompt_caching_with_conversation_history (line 610) | def test_prompt_caching_with_conversation_history( function test_no_caching_without_process_with_prompt_cache (line 725) | def test_no_caching_without_process_with_prompt_cache( FILE: backend/tests/external_dependency_unit/mock_content_provider.py class MockWebContent (line 13) | class MockWebContent(BaseModel): method to_web_content (line 18) | def to_web_content(self) -> WebContent: class ContentProviderController (line 28) | class ContentProviderController(abc.ABC): method add_content (line 30) | def add_content(self, content: MockWebContent) -> None: class MockContentProvider (line 34) | class MockContentProvider(WebContentProvider, ContentProviderController): method __init__ (line 35) | def __init__(self) -> None: method add_content (line 38) | def add_content(self, web_content: MockWebContent) -> None: method contents (line 41) | def contents(self, urls: Sequence[str]) -> list[WebContent]: function use_mock_content_provider (line 52) | def use_mock_content_provider() -> Generator[ContentProviderController, ... FILE: backend/tests/external_dependency_unit/mock_image_provider.py class ImageGenerationProviderController (line 20) | class ImageGenerationProviderController(abc.ABC): method add_image (line 22) | def add_image( class MockImageGenerationProvider (line 30) | class MockImageGenerationProvider( method __init__ (line 33) | def __init__(self) -> None: method add_image (line 37) | def add_image( method validate_credentials (line 46) | def validate_credentials( method _build_from_credentials (line 53) | def _build_from_credentials( method generate_image (line 59) | def generate_image( function _create_mock_image_generation_llm_config (line 94) | def _create_mock_image_generation_llm_config() -> LLMConfig: function use_mock_image_generation_provider (line 110) | def use_mock_image_generation_provider() -> ( FILE: backend/tests/external_dependency_unit/mock_llm.py class LLMResponseType (line 35) | class LLMResponseType(str, Enum): class LLMResponse (line 41) | class LLMResponse(abc.ABC, BaseModel): method num_tokens (line 45) | def num_tokens(self) -> int: class LLMReasoningResponse (line 49) | class LLMReasoningResponse(LLMResponse): method num_tokens (line 53) | def num_tokens(self) -> int: class LLMAnswerResponse (line 57) | class LLMAnswerResponse(LLMResponse): method num_tokens (line 61) | def num_tokens(self) -> int: class LLMToolCallResponse (line 65) | class LLMToolCallResponse(LLMResponse): method num_tokens (line 71) | def num_tokens(self) -> int: class StreamItem (line 77) | class StreamItem(BaseModel): function _response_to_stream_items (line 84) | def _response_to_stream_items(response: LLMResponse) -> list[StreamItem]: function create_delta_from_stream_item (line 130) | def create_delta_from_stream_item(item: StreamItem) -> Delta: class MockLLMController (line 197) | class MockLLMController(abc.ABC): method add_response (line 199) | def add_response(self, response: LLMResponse) -> None: method add_responses_together (line 204) | def add_responses_together(self, *responses: LLMResponse) -> None: method forward (line 209) | def forward(self, n: int) -> None: method forward_till_end (line 214) | def forward_till_end(self) -> None: method set_max_timeout (line 219) | def set_max_timeout(self, timeout: float = 5.0) -> None: class MockLLM (line 223) | class MockLLM(LLM, MockLLMController): method __init__ (line 224) | def __init__(self) -> None: method add_response (line 227) | def add_response(self, response: LLMResponse) -> None: method add_responses_together (line 231) | def add_responses_together(self, *responses: LLMResponse) -> None: method forward (line 278) | def forward(self, n: int) -> None: method forward_till_end (line 284) | def forward_till_end(self) -> None: method set_max_timeout (line 290) | def set_max_timeout(self, timeout: float = 5.0) -> None: method config (line 294) | def config(self) -> LLMConfig: method invoke (line 302) | def invoke( method stream (line 315) | def stream( class StreamTimeoutError (line 342) | class StreamTimeoutError(Exception): class SyncStreamController (line 346) | class SyncStreamController(Generic[T]): method __init__ (line 347) | def __init__(self, items: list[T] | None = None, timeout: float = 5.0)... method queue_items (line 355) | def queue_items(self, new_items: list[T]) -> None: method forward (line 359) | def forward(self, n: int) -> None: method forward_till_end (line 368) | def forward_till_end(self) -> None: method is_done (line 372) | def is_done(self) -> bool: method __iter__ (line 375) | def __iter__(self) -> SyncStreamController[T]: method __next__ (line 378) | def __next__(self) -> T: function use_mock_llm (line 400) | def use_mock_llm() -> Generator[MockLLMController, None, None]: FILE: backend/tests/external_dependency_unit/mock_search_pipeline.py function run_functions_tuples_sequential (line 25) | def run_functions_tuples_sequential( class MockInternalSearchResult (line 48) | class MockInternalSearchResult(BaseModel): method to_inference_chunk (line 54) | def to_inference_chunk(self) -> InferenceChunk: method to_search_doc (line 76) | def to_search_doc(self) -> SearchDoc: class SearchPipelineController (line 93) | class SearchPipelineController: method __init__ (line 94) | def __init__(self) -> None: method add_search_results (line 97) | def add_search_results( method get_search_results (line 102) | def get_search_results(self, query: str) -> list[InferenceChunk]: function use_mock_search_pipeline (line 109) | def use_mock_search_pipeline( FILE: backend/tests/external_dependency_unit/mock_search_provider.py class MockWebSearchResult (line 18) | class MockWebSearchResult(BaseModel): method to_web_search_result (line 23) | def to_web_search_result(self) -> WebSearchResult: class WebProviderController (line 33) | class WebProviderController(abc.ABC): method add_results (line 35) | def add_results(self, query: str, results: list[MockWebSearchResult]) ... class MockWebProvider (line 39) | class MockWebProvider(WebSearchProvider, WebProviderController): method __init__ (line 40) | def __init__(self) -> None: method add_results (line 43) | def add_results(self, query: str, results: list[MockWebSearchResult]) ... method search (line 46) | def search(self, query: str) -> Sequence[WebSearchResult]: method test_connection (line 51) | def test_connection(self) -> dict[str, str]: function add_web_provider_to_db (line 55) | def add_web_provider_to_db(db_session: Session) -> None: function delete_web_provider_from_db (line 72) | def delete_web_provider_from_db(db_session: Session) -> None: function use_mock_web_provider (line 82) | def use_mock_web_provider( FILE: backend/tests/external_dependency_unit/opensearch/test_assistant_knowledge_filter.py function _get_search_filters (line 31) | def _get_search_filters( class TestAssistantKnowledgeFilter (line 57) | class TestAssistantKnowledgeFilter: method test_persona_id_filter_added_when_knowledge_scope_exists (line 60) | def test_persona_id_filter_added_when_knowledge_scope_exists(self) -> ... method test_persona_id_filter_alone_creates_knowledge_scope (line 113) | def test_persona_id_filter_alone_creates_knowledge_scope(self) -> None: method test_knowledge_filter_with_document_sets_and_persona_filter (line 163) | def test_knowledge_filter_with_document_sets_and_persona_filter(self) ... FILE: backend/tests/external_dependency_unit/opensearch/test_opensearch_client.py function _patch_global_tenant_state (line 48) | def _patch_global_tenant_state(monkeypatch: pytest.MonkeyPatch, state: b... function _patch_hybrid_search_subquery_configuration (line 60) | def _patch_hybrid_search_subquery_configuration( function _patch_hybrid_search_normalization_pipeline (line 83) | def _patch_hybrid_search_normalization_pipeline( function _patch_opensearch_match_highlights_disabled (line 100) | def _patch_opensearch_match_highlights_disabled( function _create_test_document_chunk (line 117) | def _create_test_document_chunk( function _generate_test_vector (line 174) | def _generate_test_vector(base_value: float = 0.1, dimension: int = 128)... function opensearch_available (line 184) | def opensearch_available() -> None: function test_client (line 191) | def test_client( function search_pipeline (line 210) | def search_pipeline(test_client: OpenSearchIndexClient) -> Generator[Non... class TestOpenSearchClient (line 238) | class TestOpenSearchClient: method test_create_index (line 241) | def test_create_index(self, test_client: OpenSearchIndexClient) -> None: method test_delete_existing_index (line 257) | def test_delete_existing_index(self, test_client: OpenSearchIndexClien... method test_delete_nonexistent_index (line 274) | def test_delete_nonexistent_index(self, test_client: OpenSearchIndexCl... method test_index_exists (line 283) | def test_index_exists(self, test_client: OpenSearchIndexClient) -> None: method test_validate_index (line 300) | def test_validate_index(self, test_client: OpenSearchIndexClient) -> N... method test_put_mapping_idempotent (line 320) | def test_put_mapping_idempotent(self, test_client: OpenSearchIndexClie... method test_put_mapping_adds_new_field (line 337) | def test_put_mapping_adds_new_field( method test_put_mapping_fails_on_type_change (line 392) | def test_put_mapping_fails_on_type_change( method test_put_mapping_on_nonexistent_index (line 419) | def test_put_mapping_on_nonexistent_index( method test_create_duplicate_index (line 433) | def test_create_duplicate_index(self, test_client: OpenSearchIndexClie... method test_update_settings (line 448) | def test_update_settings(self, test_client: OpenSearchIndexClient) -> ... method test_create_and_delete_search_pipeline (line 454) | def test_create_and_delete_search_pipeline( method test_index_document (line 472) | def test_index_document( method test_bulk_index_documents (line 500) | def test_bulk_index_documents( method test_index_duplicate_document (line 531) | def test_index_duplicate_document( method test_get_document (line 559) | def test_get_document( method test_get_nonexistent_document (line 595) | def test_get_nonexistent_document( method test_delete_existing_document (line 613) | def test_delete_existing_document( method test_delete_nonexistent_document (line 649) | def test_delete_nonexistent_document( method test_delete_by_query (line 670) | def test_delete_by_query( method test_update_document (line 746) | def test_update_document( method test_update_nonexistent_document (line 795) | def test_update_nonexistent_document( method test_hybrid_search_configurations_and_pipelines (line 816) | def test_hybrid_search_configurations_and_pipelines( method test_search_empty_index (line 919) | def test_search_empty_index( method test_hybrid_search_with_pipeline_and_filters (line 957) | def test_hybrid_search_with_pipeline_and_filters( method test_hybrid_search_with_pipeline_and_filters_returns_chunks_with_related_content_first (line 1090) | def test_hybrid_search_with_pipeline_and_filters_returns_chunks_with_r... method test_delete_by_query_multitenant_isolation (line 1221) | def test_delete_by_query_multitenant_isolation( method test_delete_by_query_nonexistent_document (line 1315) | def test_delete_by_query_nonexistent_document( method test_search_for_document_ids (line 1344) | def test_search_for_document_ids( method test_search_with_no_document_access_can_retrieve_all_documents (line 1409) | def test_search_with_no_document_access_can_retrieve_all_documents( method test_time_cutoff_filter (line 1486) | def test_time_cutoff_filter( method test_random_search (line 1581) | def test_random_search( method test_keyword_search (line 1647) | def test_keyword_search( method test_semantic_search (line 1795) | def test_semantic_search( FILE: backend/tests/external_dependency_unit/opensearch_migration/test_opensearch_migration_tasks.py function _get_document_chunks_from_opensearch (line 81) | def _get_document_chunks_from_opensearch( function _delete_document_chunks_from_opensearch (line 100) | def _delete_document_chunks_from_opensearch( function _generate_test_vector (line 111) | def _generate_test_vector(dim: int) -> list[float]: function _insert_test_documents_with_commit (line 116) | def _insert_test_documents_with_commit( function _delete_test_documents_with_commit (line 134) | def _delete_test_documents_with_commit( function _insert_test_migration_records_with_commit (line 144) | def _insert_test_migration_records_with_commit( function _create_raw_document_chunk (line 152) | def _create_raw_document_chunk( function _assert_chunk_matches_vespa_chunk (line 188) | def _assert_chunk_matches_vespa_chunk( function full_deployment_setup (line 231) | def full_deployment_setup() -> Generator[None, None, None]: function db_session (line 259) | def db_session( function vespa_document_index (line 274) | def vespa_document_index( function opensearch_client (line 288) | def opensearch_client( function opensearch_available (line 298) | def opensearch_available( function vespa_available (line 308) | def vespa_available( function test_embedding_dimension (line 319) | def test_embedding_dimension(db_session: Session) -> Generator[int, None... function patch_get_vespa_chunks_page_size (line 325) | def patch_get_vespa_chunks_page_size() -> Generator[int, None, None]: function test_documents (line 341) | def test_documents( function clean_migration_tables (line 384) | def clean_migration_tables(db_session: Session) -> Generator[None, None,... function enable_opensearch_indexing_for_onyx (line 400) | def enable_opensearch_indexing_for_onyx() -> Generator[None, None, None]: function disable_opensearch_indexing_for_onyx (line 409) | def disable_opensearch_indexing_for_onyx() -> Generator[None, None, None]: class TestMigrateChunksFromVespaToOpenSearchTask (line 417) | class TestMigrateChunksFromVespaToOpenSearchTask: method test_chunk_migration_completes_successfully (line 420) | def test_chunk_migration_completes_successfully( method test_chunk_migration_resumes_from_continuation_token (line 492) | def test_chunk_migration_resumes_from_continuation_token( method test_chunk_migration_visits_all_chunks_even_when_batch_size_varies (line 601) | def test_chunk_migration_visits_all_chunks_even_when_batch_size_varies( method test_chunk_migration_empty_vespa (line 773) | def test_chunk_migration_empty_vespa( method test_chunk_migration_updates_existing_chunks (line 805) | def test_chunk_migration_updates_existing_chunks( method test_chunk_migration_noops_when_migration_is_complete (line 900) | def test_chunk_migration_noops_when_migration_is_complete( method test_returns_none_when_feature_disabled (line 1007) | def test_returns_none_when_feature_disabled( method test_vespa_get_chunk_count (line 1020) | def test_vespa_get_chunk_count( class TestSanitizedDocIdResolution (line 1052) | class TestSanitizedDocIdResolution: method test_resolve_sanitized_document_ids_batch_normal (line 1055) | def test_resolve_sanitized_document_ids_batch_normal( method test_resolve_sanitized_document_ids_batch_with_quotes (line 1071) | def test_resolve_sanitized_document_ids_batch_with_quotes( method test_raises_when_sanitized_id_matches_another_document (line 1101) | def test_raises_when_sanitized_id_matches_another_document( FILE: backend/tests/external_dependency_unit/permission_sync/test_doc_permission_sync_attempt.py function _create_test_connector_credential_pair (line 35) | def _create_test_connector_credential_pair( class TestDocPermissionSyncAttempt (line 76) | class TestDocPermissionSyncAttempt: method test_create_doc_permission_sync_attempt (line 77) | def test_create_doc_permission_sync_attempt(self, db_session: Session)... method test_get_doc_permission_sync_attempt (line 100) | def test_get_doc_permission_sync_attempt(self, db_session: Session) ->... method test_mark_doc_permission_sync_attempt_in_progress (line 122) | def test_mark_doc_permission_sync_attempt_in_progress( method test_mark_doc_permission_sync_attempt_failed (line 142) | def test_mark_doc_permission_sync_attempt_failed(self, db_session: Ses... method test_get_recent_doc_permission_sync_attempts_for_cc_pair (line 161) | def test_get_recent_doc_permission_sync_attempts_for_cc_pair( method test_status_enum_methods (line 203) | def test_status_enum_methods(self, db_session: Session) -> None: method test_complete_doc_permission_sync_attempt_success (line 259) | def test_complete_doc_permission_sync_attempt_success( method test_complete_doc_permission_sync_attempt_with_errors (line 282) | def test_complete_doc_permission_sync_attempt_with_errors( method test_complete_doc_permission_sync_attempt_can_be_called_multiple_times (line 305) | def test_complete_doc_permission_sync_attempt_can_be_called_multiple_t... FILE: backend/tests/external_dependency_unit/permission_sync/test_external_group_permission_sync_attempt.py function _create_test_connector_credential_pair (line 45) | def _create_test_connector_credential_pair( function _cleanup_global_external_group_sync_attempts (line 86) | def _cleanup_global_external_group_sync_attempts(db_session: Session) ->... class TestExternalGroupPermissionSyncAttempt (line 95) | class TestExternalGroupPermissionSyncAttempt: method test_create_external_group_sync_attempt_with_cc_pair (line 96) | def test_create_external_group_sync_attempt_with_cc_pair( method test_create_global_external_group_sync_attempt (line 122) | def test_create_global_external_group_sync_attempt( method test_get_external_group_sync_attempt (line 140) | def test_get_external_group_sync_attempt(self, db_session: Session) ->... method test_mark_external_group_sync_attempt_in_progress (line 162) | def test_mark_external_group_sync_attempt_in_progress( method test_mark_external_group_sync_attempt_failed (line 182) | def test_mark_external_group_sync_attempt_failed(self, db_session: Ses... method test_get_recent_external_group_sync_attempts_for_cc_pair (line 214) | def test_get_recent_external_group_sync_attempts_for_cc_pair( method test_get_recent_global_external_group_sync_attempts (line 256) | def test_get_recent_global_external_group_sync_attempts( method test_status_enum_methods (line 293) | def test_status_enum_methods(self, db_session: Session) -> None: method test_complete_external_group_sync_attempt_success (line 353) | def test_complete_external_group_sync_attempt_success( method test_complete_external_group_sync_attempt_with_errors (line 379) | def test_complete_external_group_sync_attempt_with_errors( method test_complete_external_group_sync_attempt_can_be_called_multiple_times (line 405) | def test_complete_external_group_sync_attempt_can_be_called_multiple_t... method test_global_vs_connector_specific_attempts (line 449) | def test_global_vs_connector_specific_attempts(self, db_session: Sessi... method test_external_group_sync_attempt_not_stuck_on_early_failure (line 480) | def test_external_group_sync_attempt_not_stuck_on_early_failure( FILE: backend/tests/external_dependency_unit/search_settings/test_search_settings.py function _create_llm_provider_and_model (line 35) | def _create_llm_provider_and_model( function _make_creation_request (line 60) | def _make_creation_request( function _make_saved_search_settings (line 82) | def _make_saved_search_settings( function _run_indexing_pipeline_with_mocks (line 104) | def _run_indexing_pipeline_with_mocks( function baseline_search_settings (line 131) | def baseline_search_settings( function test_indexing_pipeline_uses_contextual_rag_settings_from_create (line 157) | def test_indexing_pipeline_uses_contextual_rag_settings_from_create( function test_indexing_pipeline_uses_updated_contextual_rag_settings (line 208) | def test_indexing_pipeline_uses_updated_contextual_rag_settings( function test_indexing_pipeline_skips_llm_when_contextual_rag_disabled (line 278) | def test_indexing_pipeline_skips_llm_when_contextual_rag_disabled( FILE: backend/tests/external_dependency_unit/slack_bot/test_slack_bot_crud.py function _unique (line 18) | def _unique(prefix: str) -> str: function test_insert_slack_bot_returns_sensitive_values (line 22) | def test_insert_slack_bot_returns_sensitive_values(db_session: Session) ... function test_update_slack_bot_returns_sensitive_values (line 50) | def test_update_slack_bot_returns_sensitive_values(db_session: Session) ... FILE: backend/tests/external_dependency_unit/slack_bot/test_slack_bot_federated_search.py function _create_test_persona_with_slack_config (line 44) | def _create_test_persona_with_slack_config(db_session: Session) -> Perso... function _create_mock_slack_request (line 87) | def _create_mock_slack_request( function _create_mock_slack_client (line 107) | def _create_mock_slack_client( class TestSlackBotFederatedSearch (line 233) | class TestSlackBotFederatedSearch: method _setup_test_environment (line 236) | def _setup_test_environment( method _setup_slack_mocks (line 291) | def _setup_slack_mocks(self, channel_name: str) -> tuple[list, list]: method _setup_embedding_mock (line 312) | def _setup_embedding_mock(self, mock_get_query_embeddings: Mock) -> None: method _setup_slack_api_mocks (line 317) | def _setup_slack_api_mocks( method _setup_query_slack_mock (line 363) | def _setup_query_slack_mock( method _setup_channel_type_mock (line 390) | def _setup_channel_type_mock( method _setup_llm_provider (line 414) | def _setup_llm_provider(self, db_session: Session) -> None: method _teardown_common_mocks (line 452) | def _teardown_common_mocks(self, patches: list) -> None: method test_slack_bot_public_channel_filtering (line 461) | def test_slack_bot_public_channel_filtering( method test_slack_bot_private_channel_filtering (line 519) | def test_slack_bot_private_channel_filtering( method test_slack_bot_dm_filtering (line 577) | def test_slack_bot_dm_filtering( function test_missing_scope_resilience (line 632) | def test_missing_scope_resilience( function test_multiple_missing_scopes_resilience (line 723) | def test_multiple_missing_scopes_resilience( function test_slack_channel_config_eager_loads_persona (line 807) | def test_slack_channel_config_eager_loads_persona(db_session: Session) -... FILE: backend/tests/external_dependency_unit/tools/test_mcp_passthrough_oauth.py function _create_test_persona_with_mcp_tool (line 43) | def _create_test_persona_with_mcp_tool( class TestMCPPassThroughOAuth (line 68) | class TestMCPPassThroughOAuth: method setup_llm_provider (line 72) | def setup_llm_provider(self, db_session: Session) -> None: method test_pt_oauth_passes_user_login_token (line 76) | def test_pt_oauth_passes_user_login_token(self, db_session: Session) -... method test_pt_oauth_without_user_oauth_account (line 157) | def test_pt_oauth_without_user_oauth_account(self, db_session: Session... method test_pt_oauth_vs_api_token_auth (line 220) | def test_pt_oauth_vs_api_token_auth(self, db_session: Session) -> None: method test_mcp_tool_run_sets_authorization_header_for_pt_oauth (line 295) | def test_mcp_tool_run_sets_authorization_header_for_pt_oauth( method test_pt_oauth_works_with_oidc_provider (line 399) | def test_pt_oauth_works_with_oidc_provider(self, db_session: Session) ... method test_pt_oauth_uses_first_oauth_account (line 478) | def test_pt_oauth_uses_first_oauth_account(self, db_session: Session) ... FILE: backend/tests/external_dependency_unit/tools/test_memory_tool_integration.py function test_user (line 18) | def test_user(db_session: Session): # type: ignore function test_user_no_memories (line 28) | def test_user_no_memories(db_session: Session): # type: ignore class TestAddMemory (line 37) | class TestAddMemory: method test_add_memory_creates_row (line 38) | def test_add_memory_creates_row(self, db_session: Session, test_user: ... method test_add_multiple_memories (line 56) | def test_add_multiple_memories(self, db_session: Session, test_user: U... class TestUpdateMemoryAtIndex (line 75) | class TestUpdateMemoryAtIndex: method test_update_memory_at_valid_index (line 76) | def test_update_memory_at_valid_index( method test_update_memory_at_out_of_range_index (line 95) | def test_update_memory_at_out_of_range_index( method test_update_memory_at_negative_index (line 111) | def test_update_memory_at_negative_index( class TestMemoryToolResponse (line 128) | class TestMemoryToolResponse: method test_response_with_add (line 129) | def test_response_with_add(self) -> None: method test_response_with_update (line 138) | def test_response_with_update(self) -> None: class TestMemoryCap (line 148) | class TestMemoryCap: method test_add_memory_evicts_oldest_when_at_cap (line 149) | def test_add_memory_evicts_oldest_when_at_cap( class TestGetMemoriesWithUserId (line 188) | class TestGetMemoriesWithUserId: method test_get_memories_populates_user_id (line 189) | def test_get_memories_populates_user_id( method test_get_memories_disabled_still_populates_user_id (line 196) | def test_get_memories_disabled_still_populates_user_id( method test_get_memories_disabled_persistence_works (line 216) | def test_get_memories_disabled_persistence_works( FILE: backend/tests/external_dependency_unit/tools/test_oauth_config_crud.py function _create_test_oauth_config (line 29) | def _create_test_oauth_config( function _create_test_tool_with_oauth (line 47) | def _create_test_tool_with_oauth( class TestOAuthConfigCRUD (line 65) | class TestOAuthConfigCRUD: method test_create_oauth_config (line 68) | def test_create_oauth_config(self, db_session: Session) -> None: method test_get_oauth_config (line 87) | def test_get_oauth_config(self, db_session: Session) -> None: method test_get_oauth_config_not_found (line 97) | def test_get_oauth_config_not_found(self, db_session: Session) -> None: method test_get_oauth_configs (line 102) | def test_get_oauth_configs(self, db_session: Session) -> None: method test_update_oauth_config (line 115) | def test_update_oauth_config(self, db_session: Session) -> None: method test_update_oauth_config_preserves_secrets (line 134) | def test_update_oauth_config_preserves_secrets(self, db_session: Sessi... method test_update_oauth_config_not_found (line 164) | def test_update_oauth_config_not_found(self, db_session: Session) -> N... method test_update_oauth_config_clear_client_id (line 171) | def test_update_oauth_config_clear_client_id(self, db_session: Session... method test_update_oauth_config_clear_client_secret (line 193) | def test_update_oauth_config_clear_client_secret(self, db_session: Ses... method test_update_oauth_config_clear_both_secrets (line 215) | def test_update_oauth_config_clear_both_secrets(self, db_session: Sess... method test_update_oauth_config_authorization_url (line 233) | def test_update_oauth_config_authorization_url(self, db_session: Sessi... method test_update_oauth_config_token_url (line 246) | def test_update_oauth_config_token_url(self, db_session: Session) -> N... method test_update_oauth_config_additional_params (line 259) | def test_update_oauth_config_additional_params(self, db_session: Sessi... method test_update_oauth_config_multiple_fields (line 272) | def test_update_oauth_config_multiple_fields(self, db_session: Session... method test_delete_oauth_config (line 301) | def test_delete_oauth_config(self, db_session: Session) -> None: method test_delete_oauth_config_not_found (line 313) | def test_delete_oauth_config_not_found(self, db_session: Session) -> N... method test_delete_oauth_config_sets_tool_reference_to_null (line 320) | def test_delete_oauth_config_sets_tool_reference_to_null( method test_update_tool_cleans_up_orphaned_oauth_config (line 338) | def test_update_tool_cleans_up_orphaned_oauth_config( method test_delete_tool_cleans_up_orphaned_oauth_config (line 362) | def test_delete_tool_cleans_up_orphaned_oauth_config( method test_update_tool_preserves_shared_oauth_config (line 375) | def test_update_tool_preserves_shared_oauth_config( method test_delete_tool_preserves_shared_oauth_config (line 402) | def test_delete_tool_preserves_shared_oauth_config( class TestOAuthUserTokenCRUD (line 418) | class TestOAuthUserTokenCRUD: method test_upsert_user_oauth_token_create (line 421) | def test_upsert_user_oauth_token_create(self, db_session: Session) -> ... method test_upsert_user_oauth_token_update (line 445) | def test_upsert_user_oauth_token_update(self, db_session: Session) -> ... method test_get_user_oauth_token (line 479) | def test_get_user_oauth_token(self, db_session: Session) -> None: method test_get_user_oauth_token_not_found (line 496) | def test_get_user_oauth_token_not_found(self, db_session: Session) -> ... method test_delete_user_oauth_token (line 504) | def test_delete_user_oauth_token(self, db_session: Session) -> None: method test_delete_user_oauth_token_not_found (line 519) | def test_delete_user_oauth_token_not_found(self, db_session: Session) ... method test_unique_constraint_on_user_config (line 530) | def test_unique_constraint_on_user_config(self, db_session: Session) -... method test_cascade_delete_user_tokens_on_config_deletion (line 553) | def test_cascade_delete_user_tokens_on_config_deletion( class TestOAuthHelperOperations (line 579) | class TestOAuthHelperOperations: method test_get_tools_by_oauth_config (line 582) | def test_get_tools_by_oauth_config(self, db_session: Session) -> None: method test_get_tools_by_oauth_config_empty (line 610) | def test_get_tools_by_oauth_config_empty(self, db_session: Session) ->... FILE: backend/tests/external_dependency_unit/tools/test_oauth_token_manager.py function _create_test_oauth_config (line 27) | def _create_test_oauth_config(db_session: Session) -> OAuthConfig: class TestOAuthTokenManagerValidation (line 41) | class TestOAuthTokenManagerValidation: method test_get_valid_access_token_with_valid_token (line 44) | def test_get_valid_access_token_with_valid_token(self, db_session: Ses... method test_get_valid_access_token_no_token_exists (line 64) | def test_get_valid_access_token_no_token_exists(self, db_session: Sess... method test_get_valid_access_token_no_expiration (line 74) | def test_get_valid_access_token_no_expiration(self, db_session: Sessio... method test_get_valid_access_token_with_expired_token_refreshes (line 92) | def test_get_valid_access_token_with_expired_token_refreshes( method test_get_valid_access_token_expired_no_refresh_token (line 130) | def test_get_valid_access_token_expired_no_refresh_token( method test_get_valid_access_token_refresh_fails (line 152) | def test_get_valid_access_token_refresh_fails( class TestOAuthTokenManagerRefresh (line 177) | class TestOAuthTokenManagerRefresh: method test_refresh_token_success (line 181) | def test_refresh_token_success(self, mock_post: Mock, db_session: Sess... method test_refresh_token_preserves_refresh_token (line 222) | def test_refresh_token_preserves_refresh_token( method test_refresh_token_http_error (line 260) | def test_refresh_token_http_error( class TestOAuthTokenManagerExpiration (line 287) | class TestOAuthTokenManagerExpiration: method test_is_token_expired_with_valid_token (line 290) | def test_is_token_expired_with_valid_token(self, db_session: Session) ... method test_is_token_expired_with_expired_token (line 302) | def test_is_token_expired_with_expired_token(self, db_session: Session... method test_is_token_expired_with_buffer_zone (line 314) | def test_is_token_expired_with_buffer_zone(self, db_session: Session) ... method test_is_token_expired_no_expiration_data (line 326) | def test_is_token_expired_no_expiration_data(self, db_session: Session... class TestOAuthTokenManagerCodeExchange (line 339) | class TestOAuthTokenManagerCodeExchange: method test_exchange_code_for_token_success (line 343) | def test_exchange_code_for_token_success( method test_exchange_code_for_token_http_error (line 388) | def test_exchange_code_for_token_http_error( class TestOAuthTokenManagerURLBuilding (line 408) | class TestOAuthTokenManagerURLBuilding: method test_build_authorization_url_basic (line 411) | def test_build_authorization_url_basic(self, db_session: Session) -> N... method test_build_authorization_url_with_additional_params (line 429) | def test_build_authorization_url_with_additional_params( method test_build_authorization_url_no_scopes (line 454) | def test_build_authorization_url_no_scopes(self, db_session: Session) ... method test_build_authorization_url_with_existing_query_params (line 477) | def test_build_authorization_url_with_existing_query_params( class TestUnwrapSensitiveStr (line 503) | class TestUnwrapSensitiveStr: method test_unwrap_sensitive_str (line 506) | def test_unwrap_sensitive_str(self) -> None: FILE: backend/tests/external_dependency_unit/tools/test_oauth_tool_integration.py function _create_test_persona (line 54) | def _create_test_persona(db_session: Session, user: User, tools: list[To... function _create_test_oauth_config (line 78) | def _create_test_oauth_config( function _get_authorization_header (line 94) | def _get_authorization_header(headers: dict[str, str]) -> str | None: function _assert_has_authorization_header (line 105) | def _assert_has_authorization_header(headers: dict[str, str]) -> None: function _assert_no_authorization_header (line 112) | def _assert_no_authorization_header(headers: dict[str, str]) -> None: class TestOAuthToolIntegrationPriority (line 119) | class TestOAuthToolIntegrationPriority: method setup_llm_provider (line 123) | def setup_llm_provider(self, db_session: Session) -> None: method test_oauth_config_priority_over_passthrough (line 127) | def test_oauth_config_priority_over_passthrough(self, db_session: Sess... method test_passthrough_auth_when_no_oauth_config (line 196) | def test_passthrough_auth_when_no_oauth_config(self, db_session: Sessi... method test_oauth_config_without_valid_token_logs_warning (line 253) | def test_oauth_config_without_valid_token_logs_warning( method test_no_auth_when_both_disabled (line 310) | def test_no_auth_when_both_disabled(self, db_session: Session) -> None: method test_oauth_config_with_expired_token_refreshes (line 364) | def test_oauth_config_with_expired_token_refreshes( method test_custom_headers_combined_with_oauth_token (line 444) | def test_custom_headers_combined_with_oauth_token( method test_passthrough_auth_without_user_oauth_account (line 510) | def test_passthrough_auth_without_user_oauth_account( FILE: backend/tests/external_dependency_unit/tools/test_python_tool.py class CapturedRequest (line 969) | class CapturedRequest: method __init__ (line 972) | def __init__(self, method: str, path: str, body: bytes) -> None: method json_body (line 977) | def json_body(self) -> dict[str, Any]: class _MockCIHandler (line 981) | class _MockCIHandler(BaseHTTPRequestHandler): method do_POST (line 986) | def do_POST(self) -> None: method do_GET (line 1031) | def do_GET(self) -> None: method do_DELETE (line 1038) | def do_DELETE(self) -> None: method _read_body (line 1043) | def _read_body(self) -> bytes: method _capture (line 1047) | def _capture(self, method: str, body: bytes) -> None: method _respond_json (line 1052) | def _respond_json(self, status: int, data: dict[str, Any]) -> None: method _respond_sse (line 1060) | def _respond_sse(self, events: list[tuple[str, dict[str, Any]]]) -> None: method log_message (line 1071) | def log_message(self, format: str, *args: Any) -> None: # noqa: A002 class MockCodeInterpreterServer (line 1075) | class MockCodeInterpreterServer(HTTPServer): method __init__ (line 1078) | def __init__(self) -> None: method url (line 1085) | def url(self) -> str: method start (line 1089) | def start(self) -> None: method get_requests (line 1092) | def get_requests( function mock_ci_server (line 1111) | def mock_ci_server() -> Generator[MockCodeInterpreterServer, None, None]: function _clear_health_cache (line 1119) | def _clear_health_cache() -> None: function _attach_python_tool_to_default_persona (line 1127) | def _attach_python_tool_to_default_persona(db_session: Session) -> None: function test_code_interpreter_receives_chat_files (line 1143) | def test_code_interpreter_receives_chat_files( function test_code_interpreter_replay_packets_include_code_and_output (line 1241) | def test_code_interpreter_replay_packets_include_code_and_output( function test_code_interpreter_streaming_fallback_to_batch (line 1382) | def test_code_interpreter_streaming_fallback_to_batch( FILE: backend/tests/external_dependency_unit/tools/test_python_tool_server_enabled.py function test_python_tool_unavailable_when_server_disabled (line 16) | def test_python_tool_unavailable_when_server_disabled( function test_python_tool_available_when_server_enabled (line 36) | def test_python_tool_available_when_server_enabled( FILE: backend/tests/external_dependency_unit/tracing/test_llm_span_recording.py function mock_span (line 22) | def mock_span() -> MagicMock: class TestRecordLlmResponse (line 29) | class TestRecordLlmResponse: method test_records_content_from_response (line 32) | def test_records_content_from_response(self, mock_span: MagicMock) -> ... method test_records_reasoning_from_response (line 48) | def test_records_reasoning_from_response(self, mock_span: MagicMock) -... method test_records_tool_calls_from_response (line 69) | def test_records_tool_calls_from_response(self, mock_span: MagicMock) ... method test_records_usage_from_response (line 101) | def test_records_usage_from_response(self, mock_span: MagicMock) -> None: method test_handles_none_content (line 127) | def test_handles_none_content(self, mock_span: MagicMock) -> None: method test_handles_no_usage (line 142) | def test_handles_no_usage(self, mock_span: MagicMock) -> None: method test_records_all_fields_together (line 158) | def test_records_all_fields_together(self, mock_span: MagicMock) -> None: class TestRecordLlmSpanOutput (line 207) | class TestRecordLlmSpanOutput: method test_records_string_output (line 210) | def test_records_string_output(self, mock_span: MagicMock) -> None: method test_records_none_output (line 218) | def test_records_none_output(self, mock_span: MagicMock) -> None: method test_records_sequence_output (line 224) | def test_records_sequence_output(self, mock_span: MagicMock) -> None: method test_records_usage (line 235) | def test_records_usage(self, mock_span: MagicMock) -> None: method test_records_reasoning (line 250) | def test_records_reasoning(self, mock_span: MagicMock) -> None: method test_records_tool_calls (line 258) | def test_records_tool_calls(self, mock_span: MagicMock) -> None: method test_records_tool_calls_with_none_output (line 280) | def test_records_tool_calls_with_none_output(self, mock_span: MagicMoc... method test_records_all_streaming_fields (line 300) | def test_records_all_streaming_fields(self, mock_span: MagicMock) -> N... FILE: backend/tests/integration/common_utils/chat.py function test_create_chat_session_and_send_messages (line 7) | def test_create_chat_session_and_send_messages() -> None: FILE: backend/tests/integration/common_utils/document_acl.py function get_user_acl (line 26) | def get_user_acl(user: User, db_session: Session) -> set[str]: function get_user_document_access_via_acl (line 50) | def get_user_document_access_via_acl( function get_all_connector_documents (line 95) | def get_all_connector_documents( function get_documents_by_permission_type (line 122) | def get_documents_by_permission_type( FILE: backend/tests/integration/common_utils/managers/api_key.py class APIKeyManager (line 13) | class APIKeyManager: method create (line 15) | def create( method delete (line 45) | def delete( method get_all (line 56) | def get_all( method verify (line 67) | def verify( FILE: backend/tests/integration/common_utils/managers/cc_pair.py function _cc_pair_creator (line 27) | def _cc_pair_creator( class CCPairManager (line 61) | class CCPairManager: method create_from_scratch (line 63) | def create_from_scratch( method create (line 103) | def create( method pause_cc_pair (line 122) | def pause_cc_pair( method unpause_cc_pair (line 134) | def unpause_cc_pair( method delete (line 146) | def delete( method get_single (line 162) | def get_single( method get_indexing_status_by_id (line 175) | def get_indexing_status_by_id( method get_indexing_statuses (line 195) | def get_indexing_statuses( method get_connector_statuses (line 213) | def get_connector_statuses( method verify (line 224) | def verify( method run_once (line 251) | def run_once( method wait_for_indexing_inactive (line 269) | def wait_for_indexing_inactive( method wait_for_indexing_in_progress (line 305) | def wait_for_indexing_in_progress( method wait_for_indexing_completion (line 354) | def wait_for_indexing_completion( method prune (line 392) | def prune( method last_pruned (line 403) | def last_pruned( method wait_for_prune (line 424) | def wait_for_prune( method sync (line 450) | def sync( method get_doc_sync_task (line 474) | def get_doc_sync_task( method get_group_sync_task (line 495) | def get_group_sync_task( method get_doc_sync_statuses (line 516) | def get_doc_sync_statuses( method wait_for_sync (line 546) | def wait_for_sync( method wait_for_deletion_completion (line 638) | def wait_for_deletion_completion( FILE: backend/tests/integration/common_utils/managers/chat.py class StreamPacketObj (line 30) | class StreamPacketObj(TypedDict, total=False): class PlacementData (line 55) | class PlacementData(TypedDict, total=False): class StreamPacketData (line 63) | class StreamPacketData(TypedDict, total=False): class ChatSessionManager (line 73) | class ChatSessionManager: method create (line 75) | def create( method send_message (line 98) | def send_message( method send_message_with_disconnect (line 158) | def send_message_with_disconnect( method analyze_response (line 222) | def analyze_response(response: Response) -> StreamedResponse: method get_chat_history (line 344) | def get_chat_history( method create_chat_message_feedback (line 367) | def create_chat_message_feedback( method delete (line 387) | def delete( method soft_delete (line 404) | def soft_delete( method hard_delete (line 422) | def hard_delete( method verify_deleted (line 438) | def verify_deleted( method verify_soft_deleted (line 455) | def verify_soft_deleted( method verify_hard_deleted (line 477) | def verify_hard_deleted( FILE: backend/tests/integration/common_utils/managers/connector.py class ConnectorManager (line 15) | class ConnectorManager: method create (line 17) | def create( method edit (line 69) | def edit( method delete (line 81) | def delete( method get_all (line 92) | def get_all( method get (line 112) | def get( FILE: backend/tests/integration/common_utils/managers/credential.py class CredentialManager (line 13) | class CredentialManager: method create (line 15) | def create( method edit (line 53) | def edit( method delete (line 66) | def delete( method get (line 77) | def get( method get_all (line 89) | def get_all( method verify (line 100) | def verify( FILE: backend/tests/integration/common_utils/managers/discord_bot.py class DiscordBotManager (line 20) | class DiscordBotManager: method get_bot_config (line 26) | def get_bot_config( method create_bot_config (line 39) | def create_bot_config( method delete_bot_config (line 54) | def delete_bot_config( method list_guilds (line 69) | def list_guilds( method create_guild (line 82) | def create_guild( method get_guild (line 99) | def get_guild( method update_guild (line 113) | def update_guild( method delete_guild (line 143) | def delete_guild( method list_channels (line 159) | def list_channels( method update_channel (line 173) | def update_channel( method create_registered_guild_in_db (line 206) | def create_registered_guild_in_db( method get_guild_or_none (line 229) | def get_guild_or_none( method delete_guild_if_exists (line 245) | def delete_guild_if_exists( method delete_bot_config_if_exists (line 261) | def delete_bot_config_if_exists( method create_test_channel_in_db (line 276) | def create_test_channel_in_db( FILE: backend/tests/integration/common_utils/managers/document.py function _verify_document_permissions (line 21) | def _verify_document_permissions( function _generate_dummy_document (line 61) | def _generate_dummy_document( class DocumentManager (line 91) | class DocumentManager: method seed_dummy_docs (line 98) | def seed_dummy_docs( method seed_doc_with_content (line 133) | def seed_doc_with_content( method verify (line 167) | def verify( method fetch_documents_for_cc_pair (line 219) | def fetch_documents_for_cc_pair( class IngestionManager (line 261) | class IngestionManager(DocumentManager): method list_all_ingestion_docs (line 268) | def list_all_ingestion_docs( method delete (line 279) | def delete( FILE: backend/tests/integration/common_utils/managers/document_search.py class DocumentSearchManager (line 9) | class DocumentSearchManager: method search_documents (line 11) | def search_documents( FILE: backend/tests/integration/common_utils/managers/document_set.py class DocumentSetManager (line 14) | class DocumentSetManager: method create (line 16) | def create( method edit (line 59) | def edit( method delete (line 81) | def delete( method get_all (line 93) | def get_all( method wait_for_sync (line 117) | def wait_for_sync( method verify (line 159) | def verify( FILE: backend/tests/integration/common_utils/managers/file.py class FileManager (line 16) | class FileManager: method upload_files (line 18) | def upload_files( method fetch_uploaded_file (line 63) | def fetch_uploaded_file( method upload_file_for_connector (line 75) | def upload_file_for_connector( FILE: backend/tests/integration/common_utils/managers/image_generation.py function _serialize_custom_config (line 13) | def _serialize_custom_config( class ImageGenerationConfigManager (line 25) | class ImageGenerationConfigManager: method create (line 27) | def create( method create_from_provider (line 70) | def create_from_provider( method get_all (line 109) | def get_all( method get_credentials (line 121) | def get_credentials( method update (line 134) | def update( method delete (line 184) | def delete( method set_default (line 196) | def set_default( method verify (line 208) | def verify( FILE: backend/tests/integration/common_utils/managers/index_attempt.py class IndexAttemptManager (line 22) | class IndexAttemptManager: method create_test_index_attempts (line 24) | def create_test_index_attempts( method get_index_attempt_page (line 86) | def get_index_attempt_page( method get_latest_index_attempt_for_cc_pair (line 110) | def get_latest_index_attempt_for_cc_pair( method wait_for_index_attempt_start (line 127) | def wait_for_index_attempt_start( method get_index_attempt_by_id (line 156) | def get_index_attempt_by_id( method wait_for_index_attempt_completion (line 182) | def wait_for_index_attempt_completion( method get_index_attempt_errors_for_cc_pair (line 215) | def get_index_attempt_errors_for_cc_pair( FILE: backend/tests/integration/common_utils/managers/llm_provider.py class LLMProviderManager (line 17) | class LLMProviderManager: method create (line 19) | def create( method delete (line 98) | def delete( method get_all (line 110) | def get_all( method verify (line 121) | def verify( method get_default_model (line 155) | def get_default_model( FILE: backend/tests/integration/common_utils/managers/pat.py class PATManager (line 10) | class PATManager: method create (line 14) | def create( method list (line 40) | def list(user_performing_action: DATestUser) -> list[DATestPAT]: method revoke (line 59) | def revoke(token_id: int, user_performing_action: DATestUser) -> None: method authenticate (line 75) | def authenticate(token: str) -> requests.Response: method get_auth_headers (line 91) | def get_auth_headers(token: str) -> dict[str, str]: FILE: backend/tests/integration/common_utils/managers/persona.py class PersonaManager (line 14) | class PersonaManager: method create (line 16) | def create( method edit (line 86) | def edit( method get_all (line 159) | def get_all( method get_one (line 170) | def get_one( method verify (line 182) | def verify( method delete (line 336) | def delete( class PersonaLabelManager (line 347) | class PersonaLabelManager: method create (line 349) | def create( method get_all (line 366) | def get_all( method update (line 377) | def update( method delete (line 392) | def delete( method verify (line 403) | def verify( FILE: backend/tests/integration/common_utils/managers/project.py class ProjectManager (line 12) | class ProjectManager: method create (line 14) | def create( method get_all (line 28) | def get_all( method delete (line 40) | def delete( method verify_deleted (line 52) | def verify_deleted( method verify_files_unlinked (line 66) | def verify_files_unlinked( method verify_chat_sessions_unlinked (line 83) | def verify_chat_sessions_unlinked( method upload_files (line 105) | def upload_files( method get_project_files (line 136) | def get_project_files( method set_instructions (line 151) | def set_instructions( FILE: backend/tests/integration/common_utils/managers/query_history.py class QueryHistoryManager (line 19) | class QueryHistoryManager: method get_query_history_page (line 21) | def get_query_history_page( method get_chat_session_admin (line 52) | def get_chat_session_admin( method get_query_history_as_csv (line 64) | def get_query_history_as_csv( FILE: backend/tests/integration/common_utils/managers/scim_client.py class ScimClient (line 7) | class ScimClient: method _headers (line 11) | def _headers(raw_token: str) -> dict[str, str]: method get (line 18) | def get(path: str, raw_token: str) -> requests.Response: method post (line 26) | def post(path: str, raw_token: str, json: dict) -> requests.Response: method put (line 35) | def put(path: str, raw_token: str, json: dict) -> requests.Response: method patch (line 44) | def patch(path: str, raw_token: str, json: dict) -> requests.Response: method delete (line 53) | def delete(path: str, raw_token: str) -> requests.Response: method get_no_auth (line 61) | def get_no_auth(path: str) -> requests.Response: FILE: backend/tests/integration/common_utils/managers/scim_token.py class ScimTokenManager (line 8) | class ScimTokenManager: method create (line 10) | def create( method get_active (line 33) | def get_active( FILE: backend/tests/integration/common_utils/managers/settings.py class SettingsManager (line 12) | class SettingsManager: method get_settings (line 14) | def get_settings( method update_settings (line 34) | def update_settings( method get_setting (line 57) | def get_setting( FILE: backend/tests/integration/common_utils/managers/tenant.py function generate_auth_token (line 14) | def generate_auth_token() -> str: class TenantManager (line 25) | class TenantManager: method get_all_users (line 27) | def get_all_users( method verify_user_in_tenant (line 47) | def verify_user_in_tenant( FILE: backend/tests/integration/common_utils/managers/tool.py class ToolManager (line 8) | class ToolManager: method list_tools (line 10) | def list_tools( FILE: backend/tests/integration/common_utils/managers/user.py function build_email (line 25) | def build_email(name: str) -> str: class UserManager (line 29) | class UserManager: method get_anonymous_user (line 31) | def get_anonymous_user() -> DATestUser: method create (line 48) | def create( method login_as_user (line 87) | def login_as_user(test_user: DATestUser) -> DATestUser: method get_permissions (line 130) | def get_permissions(user: DATestUser) -> list[str]: method is_role (line 139) | def is_role( method set_role (line 164) | def set_role( method is_status (line 193) | def is_status(user_to_verify: DATestUser, target_status: bool) -> bool: method set_status (line 211) | def set_status( method create_test_users (line 239) | def create_test_users( method get_user_page (line 257) | def get_user_page( method invite_user (line 290) | def invite_user( method accept_invitation (line 307) | def accept_invitation(tenant_id: str, user_performing_action: DATestUs... method get_invited_users (line 322) | def get_invited_users( method get_user_info (line 342) | def get_user_info(user_performing_action: DATestUser) -> UserInfo: FILE: backend/tests/integration/common_utils/managers/user_group.py class UserGroupManager (line 13) | class UserGroupManager: method create (line 15) | def create( method edit (line 43) | def edit( method delete (line 55) | def delete( method add_users (line 66) | def add_users( method set_curator_status (line 90) | def set_curator_status( method get_permissions (line 108) | def get_permissions( method get_all (line 120) | def get_all( method verify (line 136) | def verify( method wait_for_sync (line 161) | def wait_for_sync( method wait_for_deletion_completion (line 191) | def wait_for_deletion_completion( FILE: backend/tests/integration/common_utils/reset.py function _run_migrations (line 35) | def _run_migrations( function downgrade_postgres (line 70) | def downgrade_postgres( function upgrade_postgres (line 134) | def upgrade_postgres( function drop_multitenant_postgres (line 155) | def drop_multitenant_postgres( function drop_multitenant_postgres_task (line 188) | def drop_multitenant_postgres_task(dbname: str) -> None: function reset_postgres (line 249) | def reset_postgres( function reset_vespa (line 294) | def reset_vespa() -> None: function reset_postgres_multitenant (line 344) | def reset_postgres_multitenant() -> None: function reset_vespa_multitenant (line 351) | def reset_vespa_multitenant() -> None: function reset_file_store (line 406) | def reset_file_store() -> None: function reset_all (line 413) | def reset_all() -> None: function reset_all_multitenant (line 426) | def reset_all_multitenant() -> None: FILE: backend/tests/integration/common_utils/test_document_utils.py function create_test_document (line 12) | def create_test_document( function create_test_document_failure (line 39) | def create_test_document_failure( FILE: backend/tests/integration/common_utils/test_file_utils.py function create_test_image (line 6) | def create_test_image( function create_test_text_file (line 30) | def create_test_text_file(content: str | bytes) -> io.BytesIO: FILE: backend/tests/integration/common_utils/test_models.py class DATestPAT (line 32) | class DATestPAT(BaseModel): class DATestScimToken (line 44) | class DATestScimToken(BaseModel): class DATestAPIKey (line 56) | class DATestAPIKey(BaseModel): class DATestUser (line 67) | class DATestUser(BaseModel): class DATestPersonaLabel (line 77) | class DATestPersonaLabel(BaseModel): class DATestCredential (line 82) | class DATestCredential(BaseModel): class DATestConnector (line 92) | class DATestConnector(BaseModel): class SimpleTestDocument (line 102) | class SimpleTestDocument(BaseModel): class DATestCCPair (line 108) | class DATestCCPair(BaseModel): class DATestUserGroup (line 118) | class DATestUserGroup(BaseModel): class DATestLLMProvider (line 125) | class DATestLLMProvider(BaseModel): class DATestImageGenerationConfig (line 139) | class DATestImageGenerationConfig(BaseModel): class DATestDocumentSet (line 148) | class DATestDocumentSet(BaseModel): class DATestPersona (line 160) | class DATestPersona(BaseModel): class DATestChatMessage (line 180) | class DATestChatMessage(BaseModel): class DATestChatSession (line 189) | class DATestChatSession(BaseModel): class DAQueryHistoryEntry (line 195) | class DAQueryHistoryEntry(DATestChatSession): class ToolName (line 199) | class ToolName(str, Enum): class ToolResult (line 205) | class ToolResult(BaseModel): class ToolCallDebug (line 213) | class ToolCallDebug(BaseModel): class ErrorResponse (line 219) | class ErrorResponse(BaseModel): class StreamedResponse (line 224) | class StreamedResponse(BaseModel): class DATestGatingType (line 236) | class DATestGatingType(str, Enum): class DATestSettings (line 242) | class DATestSettings(BaseModel): class DATestIndexAttempt (line 255) | class DATestIndexAttempt: method from_index_attempt_snapshot (line 266) | def from_index_attempt_snapshot( class DATestTool (line 285) | class DATestTool(BaseModel): class DATestDiscordGuildConfig (line 294) | class DATestDiscordGuildConfig(BaseModel): class DATestDiscordChannelConfig (line 305) | class DATestDiscordChannelConfig(BaseModel): FILE: backend/tests/integration/common_utils/timeout.py function _multiproc_wrapper (line 33) | def _multiproc_wrapper( function run_with_timeout_multiproc (line 43) | def run_with_timeout_multiproc( FILE: backend/tests/integration/common_utils/vespa.py class vespa_fixture (line 6) | class vespa_fixture: method __init__ (line 7) | def __init__(self, index_name: str): method get_documents_by_id (line 11) | def get_documents_by_id( FILE: backend/tests/integration/conftest.py function initialize_db (line 41) | def initialize_db() -> None: function load_env_vars (line 49) | def load_env_vars(env_file: str = ".env") -> None: function vespa_client (line 79) | def vespa_client() -> vespa_fixture: function reset (line 86) | def reset() -> None: function new_admin_user (line 91) | def new_admin_user(reset: None) -> DATestUser: # noqa: ARG001 function admin_user (line 96) | def admin_user() -> DATestUser: function basic_user (line 133) | def basic_user( function reset_multitenant (line 171) | def reset_multitenant() -> None: function llm_provider (line 182) | def llm_provider(admin_user: DATestUser) -> DATestLLMProvider: function image_generation_config (line 187) | def image_generation_config( function document_builder (line 198) | def document_builder(admin_user: DATestUser) -> DocumentBuilderType: function pytest_runtest_logstart (line 225) | def pytest_runtest_logstart( function pytest_runtest_logfinish (line 232) | def pytest_runtest_logfinish( FILE: backend/tests/integration/connector_job_tests/github/conftest.py function _get_github_test_tokens (line 33) | def _get_github_test_tokens() -> list[str]: function github_access_token (line 57) | def github_access_token(request: pytest.FixtureRequest) -> str: function github_test_env_setup (line 69) | def github_test_env_setup( FILE: backend/tests/integration/connector_job_tests/github/test_github_permission_sync.py function test_github_private_repo_permission_sync (line 29) | def test_github_private_repo_permission_sync( function test_github_public_repo_permission_sync (line 147) | def test_github_public_repo_permission_sync( function test_github_internal_repo_permission_sync (line 252) | def test_github_internal_repo_permission_sync( FILE: backend/tests/integration/connector_job_tests/github/utils.py class GitHubManager (line 11) | class GitHubManager: method __init__ (line 17) | def __init__(self, github_client: Github): method change_repository_visibility (line 26) | def change_repository_visibility( method add_team_to_repository (line 75) | def add_team_to_repository( method remove_team_from_repository (line 119) | def remove_team_from_repository( method get_repository_visibility (line 153) | def get_repository_visibility( FILE: backend/tests/integration/connector_job_tests/google/google_drive_api_utils.py function _create_doc_service (line 21) | def _create_doc_service(drive_service: GoogleDriveService) -> GoogleDocs... class GoogleDriveManager (line 29) | class GoogleDriveManager: method create_impersonated_drive_service (line 31) | def create_impersonated_drive_service( method create_shared_drive (line 52) | def create_shared_drive( method create_empty_doc (line 87) | def create_empty_doc( method append_text_to_doc (line 108) | def append_text_to_doc( method update_file_permissions (line 121) | def update_file_permissions( method remove_file_permissions (line 133) | def remove_file_permissions( method make_file_public (line 157) | def make_file_public(drive_service: Any, file_id: str) -> None: method cleanup_drive (line 164) | def cleanup_drive(drive_service: Any, drive_id: str) -> None: FILE: backend/tests/integration/connector_job_tests/google/test_google_drive_permission_sync.py function google_drive_test_env_setup (line 39) | def google_drive_test_env_setup() -> Generator[ function test_google_permission_sync (line 110) | def test_google_permission_sync( FILE: backend/tests/integration/connector_job_tests/jira/conftest.py function jira_test_env_setup (line 30) | def jira_test_env_setup() -> Generator[JiraTestEnvSetupTuple]: FILE: backend/tests/integration/connector_job_tests/jira/test_jira_permission_sync_full.py function test_jira_permission_sync_full (line 16) | def test_jira_permission_sync_full( FILE: backend/tests/integration/connector_job_tests/sharepoint/conftest.py function sharepoint_test_env_setup (line 34) | def sharepoint_test_env_setup() -> Generator[SharepointTestEnvSetupTuple]: FILE: backend/tests/integration/connector_job_tests/sharepoint/test_sharepoint_permissions.py function test_public_documents_accessible_by_all_users (line 27) | def test_public_documents_accessible_by_all_users( function test_group_based_permissions (line 82) | def test_group_based_permissions( FILE: backend/tests/integration/connector_job_tests/slack/conftest.py function _provision_slack_channels (line 14) | def _provision_slack_channels( function slack_test_setup (line 43) | def slack_test_setup() -> Generator[tuple[ChannelType, ChannelType], Non... function slack_perm_sync_test_setup (line 48) | def slack_perm_sync_test_setup() -> ( FILE: backend/tests/integration/connector_job_tests/slack/slack_api_utils.py function _get_slack_channel_id (line 24) | def _get_slack_channel_id(channel: ChannelType) -> str: function _get_non_general_channels (line 30) | def _get_non_general_channels( function _clear_slack_conversation_members (line 60) | def _clear_slack_conversation_members( function _add_slack_conversation_members (line 92) | def _add_slack_conversation_members( function _delete_slack_conversation_messages (line 106) | def _delete_slack_conversation_messages( function _build_slack_channel_from_name (line 128) | def _build_slack_channel_from_name( class SlackManager (line 168) | class SlackManager: method get_slack_client (line 170) | def get_slack_client(token: str) -> WebClient: method get_and_provision_available_slack_channels (line 174) | def get_and_provision_available_slack_channels( method build_slack_user_email_id_map (line 216) | def build_slack_user_email_id_map(slack_client: WebClient) -> dict[str... method set_channel_members (line 234) | def set_channel_members( method add_message_to_channel (line 250) | def add_message_to_channel( method remove_message_from_channel (line 260) | def remove_message_from_channel( method cleanup_after_test (line 268) | def cleanup_after_test( FILE: backend/tests/integration/connector_job_tests/slack/test_permission_sync.py function test_slack_permission_sync (line 37) | def test_slack_permission_sync( function test_slack_group_permission_sync (line 207) | def test_slack_group_permission_sync( FILE: backend/tests/integration/connector_job_tests/slack/test_prune.py function test_slack_prune (line 28) | def test_slack_prune( FILE: backend/tests/integration/mock_services/mcp_test_server/run_mcp_server_api_key.py function make_many_tools (line 10) | def make_many_tools(mcp: FastMCP) -> None: function health (line 52) | def health() -> PlainTextResponse: FILE: backend/tests/integration/mock_services/mcp_test_server/run_mcp_server_google_oauth.py class GoogleOAuthTokenVerifier (line 36) | class GoogleOAuthTokenVerifier(TokenVerifier): method __init__ (line 48) | def __init__( method _get_http_client (line 67) | async def _get_http_client(self) -> httpx.AsyncClient: method verify_token (line 73) | async def verify_token(self, token: str) -> AccessToken | None: method close (line 144) | async def close(self) -> None: function make_tools (line 150) | def make_tools(mcp: FastMCP) -> None: function health (line 231) | def health() -> PlainTextResponse: function info (line 236) | def info() -> dict[str, Any]: FILE: backend/tests/integration/mock_services/mcp_test_server/run_mcp_server_no_auth.py function hello (line 10) | def hello(name: str) -> str: function make_many_tools (line 15) | def make_many_tools() -> None: FILE: backend/tests/integration/mock_services/mcp_test_server/run_mcp_server_oauth.py function make_many_tools (line 39) | def make_many_tools(mcp: FastMCP) -> None: function init_app (line 62) | def init_app( function metadata_url_for_resource (line 93) | def metadata_url_for_resource(resource_url: str) -> str: class WWWAuthenticateMiddleware (line 111) | class WWWAuthenticateMiddleware(BaseHTTPMiddleware): method __init__ (line 112) | def __init__(self, app: FastAPI, protected_prefixes: Iterable[str]) ->... method dispatch (line 116) | async def dispatch( FILE: backend/tests/integration/mock_services/mcp_test_server/run_mcp_server_per_user_key.py function _hash (line 19) | def _hash(secret: str) -> bytes: class ApiKeyVerifier (line 51) | class ApiKeyVerifier(TokenVerifier): method __init__ (line 57) | def __init__(self, api_key_dict: dict[str, Any]): method verify_token (line 61) | async def verify_token(self, token: str) -> Optional[AccessToken]: function make_many_tools (line 95) | def make_many_tools(mcp: FastMCP) -> None: function whoami (line 115) | def whoami() -> dict: FILE: backend/tests/integration/mock_services/mock_connector_server/main.py class ConnectorBehavior (line 14) | class ConnectorBehavior(BaseModel): function set_behavior (line 27) | async def set_behavior(behavior: list[dict]) -> None: function get_documents (line 34) | async def get_documents() -> list[dict]: function add_checkpoint (line 52) | async def add_checkpoint(checkpoint: dict) -> None: function get_checkpoints (line 59) | async def get_checkpoints() -> list[dict]: function reset (line 67) | async def reset() -> None: function health_check (line 74) | async def health_check() -> dict[str, str]: FILE: backend/tests/integration/multitenant_tests/discord_bot/test_discord_bot_multitenant.py class TestBotConfigIsolationCloudMode (line 27) | class TestBotConfigIsolationCloudMode: method test_cannot_create_bot_config_in_cloud_mode (line 30) | def test_cannot_create_bot_config_in_cloud_mode(self) -> None: method test_bot_token_from_env_only_in_cloud (line 43) | def test_bot_token_from_env_only_in_cloud(self) -> None: class TestGuildRegistrationIsolation (line 56) | class TestGuildRegistrationIsolation: method test_guild_can_only_register_to_one_tenant (line 59) | def test_guild_can_only_register_to_one_tenant(self) -> None: method test_registration_key_tenant_mismatch (line 72) | def test_registration_key_tenant_mismatch(self) -> None: method test_registration_key_encodes_correct_tenant (line 82) | def test_registration_key_encodes_correct_tenant(self) -> None: class TestGuildDataIsolation (line 94) | class TestGuildDataIsolation: method test_tenant_cannot_see_other_tenant_guilds (line 97) | def test_tenant_cannot_see_other_tenant_guilds( method test_guild_list_returns_only_own_tenant (line 162) | def test_guild_list_returns_only_own_tenant( class TestGuildAccessIsolation (line 337) | class TestGuildAccessIsolation: method test_tenant_cannot_access_other_tenant_guild (line 340) | def test_tenant_cannot_access_other_tenant_guild( class TestCacheManagerIsolation (line 395) | class TestCacheManagerIsolation: method test_cache_maps_guild_to_correct_tenant (line 398) | def test_cache_maps_guild_to_correct_tenant(self) -> None: method test_api_key_per_tenant_isolation (line 412) | def test_api_key_per_tenant_isolation(self) -> None: class TestAPIRequestIsolation (line 424) | class TestAPIRequestIsolation: method test_discord_bot_uses_tenant_specific_api_key (line 428) | async def test_discord_bot_uses_tenant_specific_api_key(self) -> None: method test_guild_message_routes_to_correct_tenant (line 445) | async def test_guild_message_routes_to_correct_tenant(self) -> None: FILE: backend/tests/integration/multitenant_tests/invitation/test_user_invitation.py function test_admin_can_invite_users (line 11) | def test_admin_can_invite_users(reset_multitenant: None) -> None: # noq... function test_non_registered_user_gets_basic_role (line 33) | def test_non_registered_user_gets_basic_role( function test_user_can_accept_invitation (line 53) | def test_user_can_accept_invitation( FILE: backend/tests/integration/multitenant_tests/migrations/test_run_multitenant_migrations.py function _run_script (line 41) | def _run_script( function _force_drop_schema (line 57) | def _force_drop_schema(engine: Engine, schema: str) -> None: function engine (line 96) | def engine() -> Engine: function current_head_rev (line 101) | def current_head_rev() -> str: function tenant_schema_at_head (line 124) | def tenant_schema_at_head( function tenant_schema_empty (line 148) | def tenant_schema_empty(engine: Engine) -> Generator[str, None, None]: function tenant_schema_bad_rev (line 165) | def tenant_schema_bad_rev(engine: Engine) -> Generator[str, None, None]: function test_no_tenant_schemas_exits_nonzero (line 194) | def test_no_tenant_schemas_exits_nonzero() -> None: function test_at_head_schema_is_skipped (line 203) | def test_at_head_schema_is_skipped(tenant_schema_at_head: str) -> None: function test_detects_schemas_needing_migration (line 223) | def test_detects_schemas_needing_migration( function test_failed_migration (line 254) | def test_failed_migration( FILE: backend/tests/integration/multitenant_tests/syncing/test_search_permissions.py function setup_test_tenants (line 18) | def setup_test_tenants(reset_multitenant: None) -> dict[str, Any]: # no... function test_tenant1_can_access_own_documents (line 102) | def test_tenant1_can_access_own_documents(reset_multitenant: None) -> None: function test_tenant2_can_access_own_documents (line 135) | def test_tenant2_can_access_own_documents(reset_multitenant: None) -> None: function test_tenant1_cannot_access_tenant2_documents (line 169) | def test_tenant1_cannot_access_tenant2_documents(reset_multitenant: None... function test_tenant2_cannot_access_tenant1_documents (line 196) | def test_tenant2_cannot_access_tenant1_documents(reset_multitenant: None... function test_multi_tenant_access_control (line 224) | def test_multi_tenant_access_control(reset_multitenant: None) -> None: FILE: backend/tests/integration/multitenant_tests/tenants/test_tenant_creation.py function test_first_user_is_admin (line 20) | def test_first_user_is_admin(reset_multitenant: None) -> None: # noqa: ... function test_admin_can_create_credential (line 29) | def test_admin_can_create_credential( function test_admin_can_create_connector (line 50) | def test_admin_can_create_connector( function test_admin_can_create_and_verify_cc_pair (line 71) | def test_admin_can_create_and_verify_cc_pair( function test_settings_access (line 112) | def test_settings_access() -> None: function test_image_gen_config_created_on_tenant_provision (line 120) | def test_image_gen_config_created_on_tenant_provision( FILE: backend/tests/integration/multitenant_tests/tenants/test_tenant_provisioning_rollback.py function _schema_exists (line 22) | def _schema_exists(schema_name: str) -> bool: class TestTenantProvisioningRollback (line 34) | class TestTenantProvisioningRollback: method test_failed_provisioning_cleans_up_schema (line 37) | def test_failed_provisioning_cleans_up_schema(self) -> None: method test_drop_schema_works_with_uuid_tenant_id (line 80) | def test_drop_schema_works_with_uuid_tenant_id(self) -> None: FILE: backend/tests/integration/multitenant_tests/test_get_schemas_needing_migration.py function engine (line 33) | def engine() -> Engine: function current_head_rev (line 38) | def current_head_rev() -> str: function tenant_schema_at_head (line 55) | def tenant_schema_at_head( function tenant_schema_empty (line 81) | def tenant_schema_empty(engine: Engine) -> Generator[str, None, None]: function tenant_schema_stale_rev (line 96) | def tenant_schema_stale_rev(engine: Engine) -> Generator[str, None, None]: function test_classifies_all_cases (line 125) | def test_classifies_all_cases( function test_idempotent (line 144) | def test_idempotent( function test_empty_input (line 162) | def test_empty_input(current_head_rev: str) -> None: FILE: backend/tests/integration/tests/anonymous_user/test_anonymous_user.py function test_me_endpoint_returns_anonymous_user_when_enabled (line 10) | def test_me_endpoint_returns_anonymous_user_when_enabled( function test_me_endpoint_returns_403_when_anonymous_disabled (line 30) | def test_me_endpoint_returns_403_when_anonymous_disabled( function test_me_endpoint_returns_authenticated_user_info (line 47) | def test_me_endpoint_returns_authenticated_user_info( function test_anonymous_user_can_access_persona_when_enabled (line 65) | def test_anonymous_user_can_access_persona_when_enabled( function test_anonymous_user_denied_persona_when_disabled (line 85) | def test_anonymous_user_denied_persona_when_disabled( FILE: backend/tests/integration/tests/api_key/test_api_key.py function test_limited (line 15) | def test_limited(reset: None) -> None: # noqa: ARG001 function _get_service_account_account_type (line 42) | def _get_service_account_account_type( function _get_default_group_user_ids (line 63) | def _get_default_group_user_ids( function test_api_key_limited_service_account (line 85) | def test_api_key_limited_service_account(reset: None) -> None: # noqa: ... function test_api_key_basic_service_account (line 111) | def test_api_key_basic_service_account(reset: None) -> None: # noqa: AR... function test_api_key_admin_service_account (line 135) | def test_api_key_admin_service_account(reset: None) -> None: # noqa: AR... FILE: backend/tests/integration/tests/auth/test_saml_user_conversion.py function _simulate_saml_login (line 14) | def _simulate_saml_login(email: str, admin_user: DATestUser) -> dict: function _get_basic_group_member_emails (line 25) | def _get_basic_group_member_emails(admin_user: DATestUser) -> set[str]: function test_saml_user_conversion (line 37) | def test_saml_user_conversion(reset: None) -> None: # noqa: ARG001 function test_saml_user_conversion_sets_account_type_and_group (line 113) | def test_saml_user_conversion_sets_account_type_and_group( function test_saml_normal_signin_assigns_group (line 160) | def test_saml_normal_signin_assigns_group( function test_saml_user_conversion_restores_group_membership (line 193) | def test_saml_user_conversion_restores_group_membership( function test_saml_round_trip_group_lifecycle (line 247) | def test_saml_round_trip_group_lifecycle( function test_saml_slack_user_conversion_sets_account_type_and_group (line 298) | def test_saml_slack_user_conversion_sets_account_type_and_group( FILE: backend/tests/integration/tests/chat/test_chat_deletion.py function reset_for_module (line 14) | def reset_for_module() -> None: function llm_provider (line 20) | def llm_provider(admin_user: DATestUser) -> DATestLLMProvider: function test_soft_delete_chat_session (line 24) | def test_soft_delete_chat_session( function test_hard_delete_chat_session (line 79) | def test_hard_delete_chat_session( function test_multiple_soft_deletions (line 140) | def test_multiple_soft_deletions( function test_multiple_hard_deletions_with_agent_data (line 188) | def test_multiple_hard_deletions_with_agent_data( function test_soft_vs_hard_delete_edge_cases (line 236) | def test_soft_vs_hard_delete_edge_cases( FILE: backend/tests/integration/tests/chat/test_chat_session_access.py function reset_for_module (line 19) | def reset_for_module() -> None: function second_user (line 25) | def second_user(admin_user: DATestUser) -> DATestUser: # noqa: ARG001 function _is_user_already_exists_detail (line 55) | def _is_user_already_exists_detail(detail: object) -> bool: function _get_chat_session (line 72) | def _get_chat_session( function _set_sharing_status (line 92) | def _set_sharing_status( function test_private_chat_session_access (line 103) | def test_private_chat_session_access( function test_public_shared_chat_session_access (line 127) | def test_public_shared_chat_session_access( function test_deleted_chat_session_access (line 154) | def test_deleted_chat_session_access( function test_chat_session_not_found_returns_404 (line 182) | def test_chat_session_not_found_returns_404(basic_user: DATestUser) -> N... FILE: backend/tests/integration/tests/chat_retention/test_chat_retention.py function _run_ttl_cleanup (line 19) | def _run_ttl_cleanup(retention_days: int) -> None: function test_chat_retention (line 39) | def test_chat_retention( FILE: backend/tests/integration/tests/code_interpreter/conftest.py function preserve_code_interpreter_state (line 13) | def preserve_code_interpreter_state( FILE: backend/tests/integration/tests/code_interpreter/test_code_interpreter_api.py function test_get_code_interpreter_health_as_admin (line 10) | def test_get_code_interpreter_health_as_admin( function test_get_code_interpreter_status_as_admin (line 24) | def test_get_code_interpreter_status_as_admin( function test_update_code_interpreter_disable_and_enable (line 38) | def test_update_code_interpreter_disable_and_enable( function test_code_interpreter_endpoints_require_admin (line 76) | def test_code_interpreter_endpoints_require_admin( FILE: backend/tests/integration/tests/connector/test_connector_creation.py function test_connector_creation (line 12) | def test_connector_creation(reset: None) -> None: # noqa: ARG001 function test_overlapping_connector_creation (line 31) | def test_overlapping_connector_creation(reset: None) -> None: # noqa: A... function test_connector_pause_while_indexing (line 89) | def test_connector_pause_while_indexing(reset: None) -> None: # noqa: A... FILE: backend/tests/integration/tests/connector/test_connector_deletion.py function test_connector_deletion (line 36) | def test_connector_deletion( function test_connector_deletion_for_overlapping_connectors (line 229) | def test_connector_deletion_for_overlapping_connectors( FILE: backend/tests/integration/tests/connector/test_last_indexed_time.py function _wait_for_real_success (line 34) | def _wait_for_real_success( function _get_detail (line 47) | def _get_detail(cc_pair_id: int, admin: DATestUser) -> CCPairFullInfo: function _get_listing (line 53) | def _get_listing(cc_pair_id: int, admin: DATestUser) -> ConnectorIndexin... function test_last_indexed_first_page_all_errors (line 59) | def test_last_indexed_first_page_all_errors(reset: None) -> None: # noq... function test_last_indexed_credential_swap_scenario (line 101) | def test_last_indexed_credential_swap_scenario(reset: None) -> None: # ... function test_last_indexed_mixed_statuses (line 151) | def test_last_indexed_mixed_statuses(reset: None) -> None: # noqa: ARG001 function test_last_indexed_completed_with_errors (line 197) | def test_last_indexed_completed_with_errors(reset: None) -> None: # noq... FILE: backend/tests/integration/tests/discord_bot/test_discord_bot_api.py class TestBotConfigEndpoints (line 17) | class TestBotConfigEndpoints: method test_get_bot_config_not_configured (line 20) | def test_get_bot_config_not_configured(self, reset: None) -> None: # ... method test_create_bot_config (line 32) | def test_create_bot_config(self, reset: None) -> None: # noqa: ARG002 method test_create_bot_config_already_exists (line 50) | def test_create_bot_config_already_exists( method test_delete_bot_config (line 76) | def test_delete_bot_config(self, reset: None) -> None: # noqa: ARG002 method test_delete_bot_config_not_found (line 95) | def test_delete_bot_config_not_found(self, reset: None) -> None: # no... class TestGuildConfigEndpoints (line 109) | class TestGuildConfigEndpoints: method test_create_guild_config (line 112) | def test_create_guild_config(self, reset: None) -> None: # noqa: ARG002 method test_list_guilds (line 125) | def test_list_guilds(self, reset: None) -> None: # noqa: ARG002 method test_get_guild_config (line 143) | def test_get_guild_config(self, reset: None) -> None: # noqa: ARG002 method test_get_guild_config_not_found (line 159) | def test_get_guild_config_not_found(self, reset: None) -> None: # noq... method test_update_guild_config (line 166) | def test_update_guild_config(self, reset: None) -> None: # noqa: ARG002 method test_delete_guild_config (line 188) | def test_delete_guild_config(self, reset: None) -> None: # noqa: ARG002 method test_delete_guild_config_not_found (line 201) | def test_delete_guild_config_not_found(self, reset: None) -> None: # ... method test_registration_key_format (line 210) | def test_registration_key_format(self, reset: None) -> None: # noqa: ... method test_each_registration_key_is_unique (line 229) | def test_each_registration_key_is_unique(self, reset: None) -> None: ... class TestChannelConfigEndpoints (line 243) | class TestChannelConfigEndpoints: method test_list_channels_empty (line 246) | def test_list_channels_empty(self, reset: None) -> None: # noqa: ARG002 method test_list_channels_with_data (line 263) | def test_list_channels_with_data(self, reset: None) -> None: # noqa: ... method test_update_channel_enabled (line 296) | def test_update_channel_enabled(self, reset: None) -> None: # noqa: A... method test_update_channel_thread_only_mode (line 332) | def test_update_channel_thread_only_mode(self, reset: None) -> None: ... method test_update_channel_require_bot_invocation (line 363) | def test_update_channel_require_bot_invocation( method test_update_channel_not_found (line 397) | def test_update_channel_not_found(self, reset: None) -> None: # noqa:... class TestServiceApiKeyCleanup (line 421) | class TestServiceApiKeyCleanup: method test_delete_bot_config_also_deletes_service_api_key (line 424) | def test_delete_bot_config_also_deletes_service_api_key( FILE: backend/tests/integration/tests/discord_bot/test_discord_bot_db.py function _create_test_persona (line 32) | def _create_test_persona(db_session: Session, persona_id: int, name: str... function _delete_test_persona (line 48) | def _delete_test_persona(db_session: Session, persona_id: int) -> None: class TestBotConfigAPI (line 54) | class TestBotConfigAPI: method test_create_bot_config (line 57) | def test_create_bot_config(self, db_session: Session) -> None: method test_create_bot_config_already_exists (line 74) | def test_create_bot_config_already_exists(self, db_session: Session) -... method test_get_bot_config (line 90) | def test_get_bot_config(self, db_session: Session) -> None: method test_delete_bot_config (line 109) | def test_delete_bot_config(self, db_session: Session) -> None: method test_delete_bot_config_not_found (line 124) | def test_delete_bot_config_not_found(self, db_session: Session) -> None: class TestRegistrationKeyAPI (line 134) | class TestRegistrationKeyAPI: method test_create_registration_key (line 137) | def test_create_registration_key(self, db_session: Session) -> None: method test_registration_key_is_unique (line 153) | def test_registration_key_is_unique( method test_delete_registration_key (line 161) | def test_delete_registration_key(self, db_session: Session) -> None: class TestGuildConfigAPI (line 179) | class TestGuildConfigAPI: method test_list_guilds (line 182) | def test_list_guilds(self, db_session: Session) -> None: method test_get_guild_config (line 201) | def test_get_guild_config(self, db_session: Session) -> None: method test_update_guild_enabled (line 217) | def test_update_guild_enabled(self, db_session: Session) -> None: method test_update_guild_persona (line 238) | def test_update_guild_persona(self, db_session: Session) -> None: class TestChannelConfigAPI (line 262) | class TestChannelConfigAPI: method test_list_channels_for_guild (line 265) | def test_list_channels_for_guild(self, db_session: Session) -> None: method test_update_channel_enabled (line 297) | def test_update_channel_enabled(self, db_session: Session) -> None: method test_update_channel_thread_only_mode (line 334) | def test_update_channel_thread_only_mode(self, db_session: Session) ->... method test_sync_channels_adds_new (line 368) | def test_sync_channels_adds_new(self, db_session: Session) -> None: method test_sync_channels_removes_deleted (line 411) | def test_sync_channels_removes_deleted(self, db_session: Session) -> N... method test_sync_channels_updates_renamed (line 454) | def test_sync_channels_updates_renamed(self, db_session: Session) -> N... class TestPersonaConfigurationAPI (line 497) | class TestPersonaConfigurationAPI: method test_guild_persona_used_in_api_call (line 500) | def test_guild_persona_used_in_api_call(self, db_session: Session) -> ... method test_channel_persona_override_in_api_call (line 521) | def test_channel_persona_override_in_api_call(self, db_session: Sessio... method test_no_persona_uses_default (line 564) | def test_no_persona_uses_default(self, db_session: Session) -> None: class TestServiceApiKeyAPI (line 580) | class TestServiceApiKeyAPI: method test_create_service_api_key (line 583) | def test_create_service_api_key(self, db_session: Session) -> None: method test_get_or_create_returns_existing (line 603) | def test_get_or_create_returns_existing(self, db_session: Session) -> ... method test_delete_service_api_key (line 628) | def test_delete_service_api_key(self, db_session: Session) -> None: method test_delete_service_api_key_not_found (line 645) | def test_delete_service_api_key_not_found(self, db_session: Session) -... function db_session (line 657) | def db_session() -> Generator[Session, None, None]: FILE: backend/tests/integration/tests/document_set/test_syncing.py function test_multiple_document_sets_syncing_same_connnector (line 13) | def test_multiple_document_sets_syncing_same_connnector( function test_removing_connector (line 70) | def test_removing_connector( FILE: backend/tests/integration/tests/image_generation/test_image_generation_config.py function setup_image_generation_tests (line 24) | def setup_image_generation_tests() -> tuple[DATestUser, DATestLLMProvider]: function test_create_image_generation_config (line 38) | def test_create_image_generation_config( function test_create_image_generation_config_from_provider (line 64) | def test_create_image_generation_config_from_provider( function test_create_duplicate_config_fails (line 90) | def test_create_duplicate_config_fails( function test_get_all_configs (line 121) | def test_get_all_configs( function test_get_config_credentials (line 154) | def test_get_config_credentials( function test_get_credentials_not_found (line 182) | def test_get_credentials_not_found( function test_update_config_direct_key_entry (line 196) | def test_update_config_direct_key_entry( function test_update_config_clone_mode (line 234) | def test_update_config_clone_mode( function test_update_config_source_provider_not_found (line 269) | def test_update_config_source_provider_not_found( function test_delete_config (line 298) | def test_delete_config( function test_delete_config_not_found (line 333) | def test_delete_config_not_found( function test_set_default_config (line 347) | def test_set_default_config( function test_set_default_clears_previous (line 381) | def test_set_default_clears_previous( function test_set_default_not_found (line 440) | def test_set_default_not_found( function test_create_config_missing_credentials (line 454) | def test_create_config_missing_credentials( function test_create_config_source_provider_not_found (line 474) | def test_create_config_source_provider_not_found( FILE: backend/tests/integration/tests/image_generation/test_image_generation_tool_visibility.py function setup_image_generation_tests (line 22) | def setup_image_generation_tests() -> tuple[DATestUser, DATestLLMProvider]: function test_vertex_creds_upload_image_tool_visibility (line 36) | def test_vertex_creds_upload_image_tool_visibility( FILE: backend/tests/integration/tests/image_indexing/test_indexing_images.py function test_image_indexing (line 27) | def test_image_indexing( function test_docx_image_indexing (line 120) | def test_docx_image_indexing( FILE: backend/tests/integration/tests/index_attempt/test_index_attempt_pagination.py function _verify_index_attempt_pagination (line 11) | def _verify_index_attempt_pagination( function test_index_attempt_pagination (line 54) | def test_index_attempt_pagination(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/indexing/conftest.py function mock_server_client (line 9) | def mock_server_client() -> httpx.Client: FILE: backend/tests/integration/tests/indexing/file_connector/test_file_connector_zip_metadata.py function test_zip_metadata_handling (line 36) | def test_zip_metadata_handling( FILE: backend/tests/integration/tests/indexing/test_checkpointing.py function test_mock_connector_basic_flow (line 28) | def test_mock_connector_basic_flow( function test_mock_connector_with_failures (line 102) | def test_mock_connector_with_failures( function test_mock_connector_failure_recovery (line 178) | def test_mock_connector_failure_recovery( function test_mock_connector_checkpoint_recovery (line 338) | def test_mock_connector_checkpoint_recovery( FILE: backend/tests/integration/tests/indexing/test_initial_permission_sync.py function _setup_mock_connector (line 33) | def _setup_mock_connector( function test_mock_connector_initial_permission_sync (line 91) | def test_mock_connector_initial_permission_sync( function test_permission_sync_attempt_tracking_integration (line 158) | def test_permission_sync_attempt_tracking_integration( function test_permission_sync_attempt_status_success (line 205) | def test_permission_sync_attempt_status_success( FILE: backend/tests/integration/tests/indexing/test_polling.py function _setup_mock_connector (line 21) | def _setup_mock_connector( function test_poll_connector_time_ranges (line 38) | def test_poll_connector_time_ranges( FILE: backend/tests/integration/tests/indexing/test_repeated_error_state.py function test_repeated_error_state_detection_and_recovery (line 25) | def test_repeated_error_state_detection_and_recovery( FILE: backend/tests/integration/tests/ingestion/test_ingestion_api.py function test_ingestion_api_crud (line 13) | def test_ingestion_api_crud( FILE: backend/tests/integration/tests/kg/test_kg_api.py function reset_for_test (line 27) | def reset_for_test() -> None: function connectors (line 37) | def connectors() -> None: function test_kg_enable_and_disable (line 53) | def test_kg_enable_and_disable(connectors: None) -> None: # noqa: ARG001 function test_kg_enable_with_missing_fields_should_fail (line 125) | def test_kg_enable_with_missing_fields_should_fail() -> None: function test_update_kg_entity_types (line 144) | def test_update_kg_entity_types(connectors: None) -> None: # noqa: ARG001 function test_update_invalid_kg_entity_type_should_do_nothing (line 237) | def test_update_invalid_kg_entity_type_should_do_nothing( FILE: backend/tests/integration/tests/llm_auto_update/test_auto_llm_update.py function _create_provider_with_api (line 30) | def _create_provider_with_api( function _get_provider_by_id (line 66) | def _get_provider_by_id(admin_user: DATestUser, provider_id: int) -> dict: function get_auto_config (line 79) | def get_auto_config(admin_user: DATestUser) -> dict | None: function wait_for_model_sync (line 91) | def wait_for_model_sync( function test_auto_mode_provider_gets_synced_from_github_config (line 130) | def test_auto_mode_provider_gets_synced_from_github_config( function test_manual_mode_provider_not_affected_by_auto_sync (line 219) | def test_manual_mode_provider_not_affected_by_auto_sync( FILE: backend/tests/integration/tests/llm_provider/test_llm_provider.py function _get_provider_by_id (line 19) | def _get_provider_by_id(admin_user: DATestUser, provider_id: str) -> dic... function assert_response_is_equivalent (line 30) | def assert_response_is_equivalent( function test_create_llm_provider (line 140) | def test_create_llm_provider( function test_update_model_configurations (line 230) | def test_update_model_configurations( function test_delete_llm_provider (line 349) | def test_delete_llm_provider( function test_delete_default_llm_provider_rejected (line 386) | def test_delete_default_llm_provider_rejected( function test_delete_non_default_llm_provider_with_default_set (line 436) | def test_delete_non_default_llm_provider_with_default_set( function test_force_delete_default_llm_provider (line 508) | def test_force_delete_default_llm_provider( function test_delete_default_vision_provider_clears_vision_default (line 564) | def test_delete_default_vision_provider_clears_vision_default( function test_duplicate_provider_name_rejected (line 643) | def test_duplicate_provider_name_rejected(reset: None) -> None: # noqa:... function test_rename_provider_rejected (line 679) | def test_rename_provider_rejected(reset: None) -> None: # noqa: ARG001 function test_model_visibility_preserved_on_edit (line 729) | def test_model_visibility_preserved_on_edit(reset: None) -> None: # noq... function _get_provider_by_name (line 952) | def _get_provider_by_name(providers: list[dict], provider_name: str) -> ... function _get_providers_admin (line 956) | def _get_providers_admin( function _unpack_data (line 969) | def _unpack_data(data: dict) -> tuple[list[dict], dict | None, dict | No... function _get_providers_basic (line 977) | def _get_providers_basic( function _validate_default_model (line 990) | def _validate_default_model( function _get_provider_by_name_admin (line 1003) | def _get_provider_by_name_admin( function _get_provider_by_name_basic (line 1016) | def _get_provider_by_name_basic(user: DATestUser, provider_name: str) ->... function _validate_model_configurations (line 1027) | def _validate_model_configurations( function _validate_provider_data (line 1070) | def _validate_provider_data( function test_default_model_persistence_and_update (line 1113) | def test_default_model_persistence_and_update( function _get_all_providers_basic (line 1323) | def _get_all_providers_basic(user: DATestUser) -> list[dict]: function _get_all_providers_admin (line 1333) | def _get_all_providers_admin(admin_user: DATestUser) -> list[dict]: function _set_default_provider (line 1343) | def _set_default_provider( function _set_default_vision_provider (line 1358) | def _set_default_vision_provider( function test_multiple_providers_default_switching (line 1373) | def test_multiple_providers_default_switching( function test_default_provider_and_vision_provider_selection (line 1733) | def test_default_provider_and_vision_provider_selection( function test_default_provider_is_not_default_vision_provider (line 1966) | def test_default_provider_is_not_default_vision_provider( function _get_all_image_gen_configs (line 2059) | def _get_all_image_gen_configs(admin_user: DATestUser) -> list[dict]: function _create_image_gen_config (line 2069) | def _create_image_gen_config( function _set_image_gen_config_default (line 2093) | def _set_image_gen_config_default( function _delete_image_gen_config (line 2104) | def _delete_image_gen_config(admin_user: DATestUser, image_provider_id: ... function test_all_three_provider_types_no_mixup (line 2113) | def test_all_three_provider_types_no_mixup(reset: None) -> None: # noqa... FILE: backend/tests/integration/tests/llm_provider/test_llm_provider_access_control.py function _create_llm_provider (line 36) | def _create_llm_provider( function _create_persona (line 71) | def _create_persona( function users (line 93) | def users(reset: None) -> tuple[DATestUser, DATestUser]: # noqa: ARG001 function test_can_user_access_llm_provider_or_logic (line 99) | def test_can_user_access_llm_provider_or_logic( function test_public_provider_with_persona_restrictions (line 246) | def test_public_provider_with_persona_restrictions( function test_public_provider_without_persona_restrictions (line 315) | def test_public_provider_without_persona_restrictions( function test_get_llm_for_persona_falls_back_when_access_denied (line 356) | def test_get_llm_for_persona_falls_back_when_access_denied( function test_list_llm_provider_basics_excludes_non_public_unrestricted (line 431) | def test_list_llm_provider_basics_excludes_non_public_unrestricted( function test_provider_delete_clears_persona_references (line 489) | def test_provider_delete_clears_persona_references( FILE: backend/tests/integration/tests/llm_provider/test_llm_provider_persona_access.py function users_and_groups (line 26) | def users_and_groups( function test_unauthorized_persona_access_returns_403 (line 49) | def test_unauthorized_persona_access_returns_403( function test_authorized_persona_access_returns_filtered_providers (line 75) | def test_authorized_persona_access_returns_filtered_providers( function test_persona_id_zero_applies_rbac (line 117) | def test_persona_id_zero_applies_rbac( function test_admin_can_query_any_persona (line 150) | def test_admin_can_query_any_persona( function test_public_persona_accessible_to_all (line 192) | def test_public_persona_accessible_to_all( function test_nonexistent_persona_returns_404 (line 234) | def test_nonexistent_persona_returns_404( FILE: backend/tests/integration/tests/llm_workflows/test_mock_llm_tool_calls.py function _get_internal_search_tool_id (line 14) | def _get_internal_search_tool_id(admin_user: DATestUser) -> int: function _assert_integration_mode_enabled (line 22) | def _assert_integration_mode_enabled() -> None: function _seed_connector_for_search_tool (line 28) | def _seed_connector_for_search_tool(admin_user: DATestUser) -> None: function test_mock_llm_response_single_tool_call_debug (line 36) | def test_mock_llm_response_single_tool_call_debug(admin_user: DATestUser... function test_mock_llm_response_parallel_tool_call_debug (line 61) | def test_mock_llm_response_parallel_tool_call_debug(admin_user: DATestUs... function test_mock_llm_response_embedded_json_fallback_tool_call_debug (line 98) | def test_mock_llm_response_embedded_json_fallback_tool_call_debug( FILE: backend/tests/integration/tests/llm_workflows/test_nightly_provider_chat_workflow.py class NightlyProviderConfig (line 32) | class NightlyProviderConfig(BaseModel): function _stringify_custom_config_value (line 45) | def _stringify_custom_config_value(value: object) -> str: function _looks_like_vertex_credentials_payload (line 53) | def _looks_like_vertex_credentials_payload( function _normalize_custom_config (line 83) | def _normalize_custom_config( function _env_true (line 117) | def _env_true(env_var: str, default: bool = False) -> bool: function _parse_models_env (line 124) | def _parse_models_env(env_var: str) -> list[str]: function _load_provider_config (line 140) | def _load_provider_config() -> NightlyProviderConfig: function _skip_or_fail (line 174) | def _skip_or_fail(strict: bool, message: str) -> None: function _validate_provider_config (line 180) | def _validate_provider_config(config: NightlyProviderConfig) -> None: function _assert_integration_mode_enabled (line 242) | def _assert_integration_mode_enabled() -> None: function _seed_connector_for_search_tool (line 248) | def _seed_connector_for_search_tool(admin_user: DATestUser) -> None: function _get_internal_search_tool_id (line 256) | def _get_internal_search_tool_id(admin_user: DATestUser) -> int: function _default_api_base_for_provider (line 264) | def _default_api_base_for_provider(provider: str) -> str | None: function _create_provider_payload (line 273) | def _create_provider_payload( function _ensure_provider_is_default (line 302) | def _ensure_provider_is_default( function _run_chat_assertions (line 320) | def _run_chat_assertions( function _create_and_test_provider_for_model (line 370) | def _create_and_test_provider_for_model( function test_nightly_provider_chat_workflow (line 441) | def test_nightly_provider_chat_workflow(admin_user: DATestUser) -> None: FILE: backend/tests/integration/tests/llm_workflows/test_tool_policy_enforcement.py function _assert_integration_mode_enabled (line 16) | def _assert_integration_mode_enabled() -> None: function _seed_connector_for_search_tool (line 22) | def _seed_connector_for_search_tool(admin_user: DATestUser) -> None: function _get_internal_search_tool_id (line 30) | def _get_internal_search_tool_id(admin_user: DATestUser) -> int: function _ensure_llm_provider (line 38) | def _ensure_llm_provider(admin_user: DATestUser) -> None: function test_forced_tool_executes_when_available (line 45) | def test_forced_tool_executes_when_available(admin_user: DATestUser) -> ... function test_forced_tool_rejected_when_not_in_persona_tools (line 75) | def test_forced_tool_rejected_when_not_in_persona_tools( function test_allowed_tool_ids_excludes_tools_outside_allowlist (line 100) | def test_allowed_tool_ids_excludes_tools_outside_allowlist( function test_forced_and_allowlist_conflict_returns_validation_error (line 128) | def test_forced_and_allowlist_conflict_returns_validation_error( function test_run_search_always_maps_to_forced_search_tool (line 156) | def test_run_search_always_maps_to_forced_search_tool(admin_user: DATest... FILE: backend/tests/integration/tests/mcp/test_mcp_client_no_auth_flow.py function _wait_for_port (line 37) | def _wait_for_port( function mcp_no_auth_server (line 60) | def mcp_no_auth_server() -> Generator[None, None, None]: function ensure_mcp_server_exists (line 78) | def ensure_mcp_server_exists() -> None: function test_mcp_client_no_auth_flow (line 85) | def test_mcp_client_no_auth_flow( FILE: backend/tests/integration/tests/mcp/test_mcp_server_auth.py function test_mcp_server_health_check (line 13) | def test_mcp_server_health_check(reset: None) -> None: # noqa: ARG001 function test_mcp_server_auth_missing_token (line 21) | def test_mcp_server_auth_missing_token(reset: None) -> None: # noqa: AR... function test_mcp_server_auth_invalid_token (line 27) | def test_mcp_server_auth_invalid_token(reset: None) -> None: # noqa: AR... function test_mcp_server_auth_valid_token (line 37) | def test_mcp_server_auth_valid_token( FILE: backend/tests/integration/tests/mcp/test_mcp_server_search.py function _run_with_mcp_session (line 41) | def _run_with_mcp_session( function _extract_tool_payload (line 59) | def _extract_tool_payload(result: CallToolResult) -> dict[str, Any]: function _call_search_tool (line 75) | def _call_search_tool( function _auth_headers (line 93) | def _auth_headers(user: DATestUser, name: str) -> dict[str, str]: function _seed_document_and_wait_for_indexing (line 103) | def _seed_document_and_wait_for_indexing( function test_mcp_document_search_flow (line 123) | def test_mcp_document_search_flow( function test_mcp_search_respects_acl_filters (line 190) | def test_mcp_search_respects_acl_filters( FILE: backend/tests/integration/tests/migrations/conftest.py function _create_sync_engine (line 31) | def _create_sync_engine() -> Engine: function alembic_config (line 45) | def alembic_config() -> dict[str, Any]: function alembic_engine (line 64) | def alembic_engine() -> Generator[Engine, None, None]: FILE: backend/tests/integration/tests/migrations/test_alembic_tenants.py function alembic_config (line 34) | def alembic_config() -> dict[str, Any]: function alembic_engine (line 44) | def alembic_engine() -> Generator[Engine, None, None]: FILE: backend/tests/integration/tests/migrations/test_assistant_consolidation_migration.py function test_cold_startup_default_assistant (line 15) | def test_cold_startup_default_assistant() -> None: FILE: backend/tests/integration/tests/migrations/test_migrations.py function test_fix_capitalization_migration (line 20) | def test_fix_capitalization_migration() -> None: function test_jira_connector_migration (line 135) | def test_jira_connector_migration() -> None: function test_anonymous_user_migration_dedupes_null_notifications (line 327) | def test_anonymous_user_migration_dedupes_null_notifications() -> None: function test_anonymous_user_migration_collision_with_existing_anonymous_notification (line 414) | def test_anonymous_user_migration_collision_with_existing_anonymous_noti... FILE: backend/tests/integration/tests/migrations/test_tool_seeding.py class ToolSeedingExpectedResult (line 9) | class ToolSeedingExpectedResult(BaseModel): function test_tool_seeding_migration (line 68) | def test_tool_seeding_migration() -> None: FILE: backend/tests/integration/tests/no_vectordb/conftest.py function _server_has_vector_db_disabled (line 20) | def _server_has_vector_db_disabled() -> bool: function reset (line 43) | def reset() -> None: function llm_provider (line 50) | def llm_provider(admin_user: DATestUser) -> DATestLLMProvider: FILE: backend/tests/integration/tests/no_vectordb/test_no_vectordb_chat.py function _wait_for_file_processed (line 30) | def _wait_for_file_processed( function test_chat_with_small_project_file (line 52) | def test_chat_with_small_project_file( function test_persona_with_user_files_chat (line 108) | def test_persona_with_user_files_chat( function _base_persona_body (line 186) | def _base_persona_body(**overrides: object) -> dict: function test_persona_rejects_document_sets_without_vector_db (line 209) | def test_persona_rejects_document_sets_without_vector_db( function test_persona_rejects_document_ids_without_vector_db (line 224) | def test_persona_rejects_document_ids_without_vector_db( FILE: backend/tests/integration/tests/no_vectordb/test_no_vectordb_endpoints.py function _headers (line 19) | def _headers(user: DATestUser) -> dict[str, str]: function test_admin_search_returns_501 (line 28) | def test_admin_search_returns_501( function test_document_size_info_returns_501 (line 40) | def test_document_size_info_returns_501( function test_document_chunk_info_returns_501 (line 52) | def test_document_chunk_info_returns_501( function test_set_new_search_settings_returns_501 (line 64) | def test_set_new_search_settings_returns_501( function test_cancel_new_embedding_returns_501 (line 76) | def test_cancel_new_embedding_returns_501( function test_connector_router_returns_501 (line 87) | def test_connector_router_returns_501( function test_ingestion_post_returns_501 (line 99) | def test_ingestion_post_returns_501( function test_ingestion_delete_returns_501 (line 111) | def test_ingestion_delete_returns_501( function test_settings_endpoint_works (line 127) | def test_settings_endpoint_works( function test_document_set_list_works (line 140) | def test_document_set_list_works( function test_persona_list_works (line 151) | def test_persona_list_works( function test_tool_list_works (line 162) | def test_tool_list_works( FILE: backend/tests/integration/tests/no_vectordb/test_no_vectordb_file_lifecycle.py function _poll_file_status (line 25) | def _poll_file_status( function _file_is_gone (line 48) | def _file_is_gone(file_id: UUID, user: DATestUser, timeout: int = 15) ->... function test_file_upload_process_delete_lifecycle (line 64) | def test_file_upload_process_delete_lifecycle( function test_delete_blocked_while_associated (line 125) | def test_delete_blocked_while_associated( FILE: backend/tests/integration/tests/opensearch_migration/test_opensearch_migration_api.py function test_migration_status_returns_defaults_when_no_record (line 7) | def test_migration_status_returns_defaults_when_no_record( function test_retrieval_status_returns_false_when_no_record (line 27) | def test_retrieval_status_returns_false_when_no_record( function test_set_and_get_retrieval_status (line 44) | def test_set_and_get_retrieval_status( function test_migration_status_after_record_created (line 88) | def test_migration_status_after_record_created( function test_endpoints_require_admin (line 117) | def test_endpoints_require_admin( FILE: backend/tests/integration/tests/pat/test_pat_api.py function test_pat_lifecycle_happy_path (line 27) | def test_pat_lifecycle_happy_path(reset: None) -> None: # noqa: ARG001 function test_pat_user_isolation_and_authentication (line 78) | def test_pat_user_isolation_and_authentication( function test_pat_expiration_flow (line 144) | def test_pat_expiration_flow(reset: None) -> None: # noqa: ARG001 function test_pat_validation_errors (line 193) | def test_pat_validation_errors(reset: None) -> None: # noqa: ARG001 function test_pat_sorting_and_last_used (line 253) | def test_pat_sorting_and_last_used(reset: None) -> None: # noqa: ARG001 function test_pat_role_based_access_control (line 311) | def test_pat_role_based_access_control(reset: None) -> None: # noqa: AR... FILE: backend/tests/integration/tests/permissions/test_auth_permission_propagation.py function _get_basic_group_member_emails (line 18) | def _get_basic_group_member_emails(admin_user: DATestUser) -> set[str]: function test_basic_permission_granted_on_registration (line 31) | def test_basic_permission_granted_on_registration( function test_role_downgrade_removes_basic_group_and_permission (line 54) | def test_role_downgrade_removes_basic_group_and_permission( FILE: backend/tests/integration/tests/permissions/test_cc_pair_permissions.py function test_cc_pair_permissions (line 25) | def test_cc_pair_permissions(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/permissions/test_connector_permissions.py function test_connector_permissions (line 23) | def test_connector_permissions(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/permissions/test_credential_permissions.py function test_credential_permissions (line 22) | def test_credential_permissions(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/permissions/test_doc_set_permissions.py function test_doc_set_permissions_setup (line 19) | def test_doc_set_permissions_setup(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/permissions/test_file_connector_permissions.py function _upload_connector_file (line 20) | def _upload_connector_file( function _update_connector_files (line 39) | def _update_connector_files( function _list_connector_files (line 58) | def _list_connector_files( function test_only_global_curator_can_update_public_file_connector_files (line 74) | def test_only_global_curator_can_update_public_file_connector_files() ->... FILE: backend/tests/integration/tests/permissions/test_persona_permissions.py function test_persona_permissions (line 23) | def test_persona_permissions(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/permissions/test_user_file_permissions.py class UserFileTestSetup (line 22) | class UserFileTestSetup(NamedTuple): function user_file_setup (line 32) | def user_file_setup(reset: None) -> UserFileTestSetup: # noqa: ARG001 function test_public_assistant_with_user_files (line 86) | def test_public_assistant_with_user_files( FILE: backend/tests/integration/tests/permissions/test_user_role_permissions.py function test_user_role_setting_permissions (line 20) | def test_user_role_setting_permissions(reset: None) -> None: # noqa: AR... FILE: backend/tests/integration/tests/permissions/test_whole_curator_flow.py function test_whole_curator_flow (line 24) | def test_whole_curator_flow(reset: None) -> None: # noqa: ARG001 function test_global_curator_flow (line 105) | def test_global_curator_flow(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/personalization/test_personalization_flow.py function _get_auth_headers (line 9) | def _get_auth_headers(user: DATestUser) -> tuple[dict, dict]: function _get_me (line 15) | def _get_me(headers: dict, cookies: dict) -> dict: function _patch_personalization (line 21) | def _patch_personalization(headers: dict, cookies: dict, payload: dict) ... function test_personalization_round_trip (line 31) | def test_personalization_round_trip(reset: None) -> None: # noqa: ARG001 function test_enable_memory_tool_round_trip (line 78) | def test_enable_memory_tool_round_trip(reset: None) -> None: # noqa: AR... function test_enable_memory_tool_independent_of_use_memories (line 97) | def test_enable_memory_tool_independent_of_use_memories( FILE: backend/tests/integration/tests/personas/test_persona_categories.py function test_persona_label_management (line 14) | def test_persona_label_management(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/personas/test_persona_creation.py function _list_minimal_personas (line 8) | def _list_minimal_personas(user: DATestUser) -> list[dict]: function _share_persona (line 18) | def _share_persona( function test_persona_create_update_share_delete (line 30) | def test_persona_create_update_share_delete( FILE: backend/tests/integration/tests/personas/test_persona_file_context.py function _poll_file_statuses (line 38) | def _poll_file_statuses( function test_persona_with_files_chat_no_error (line 67) | def test_persona_with_files_chat_no_error( function test_persona_without_files_still_works (line 121) | def test_persona_without_files_still_works( function test_persona_files_override_project_files (line 148) | def test_persona_files_override_project_files( function test_default_persona_in_project_uses_project_files (line 217) | def test_default_persona_in_project_uses_project_files( function test_custom_persona_no_files_in_project_ignores_project (line 260) | def test_custom_persona_no_files_in_project_ignores_project( FILE: backend/tests/integration/tests/personas/test_persona_label_updates.py function test_update_persona_with_null_label_ids_preserves_labels (line 13) | def test_update_persona_with_null_label_ids_preserves_labels( FILE: backend/tests/integration/tests/personas/test_persona_pagination.py function _get_agents_paginated (line 10) | def _get_agents_paginated( function _get_agents_admin_paginated (line 34) | def _get_agents_admin_paginated( function test_persona_pagination_basic (line 59) | def test_persona_pagination_basic( function test_persona_pagination_ordering (line 96) | def test_persona_pagination_ordering( function test_persona_pagination_admin_endpoint (line 148) | def test_persona_pagination_admin_endpoint( function test_persona_pagination_with_deleted (line 179) | def test_persona_pagination_with_deleted( function test_persona_pagination_page_size_limits (line 211) | def test_persona_pagination_page_size_limits( function test_persona_pagination_count_accuracy (line 243) | def test_persona_pagination_count_accuracy( function test_persona_pagination_user_permissions (line 282) | def test_persona_pagination_user_permissions( FILE: backend/tests/integration/tests/personas/test_unified_assistant.py function test_unified_assistant (line 7) | def test_unified_assistant( FILE: backend/tests/integration/tests/projects/test_projects.py function reset_for_module (line 15) | def reset_for_module() -> None: function test_projects_flow (line 20) | def test_projects_flow( FILE: backend/tests/integration/tests/pruning/test_pruning.py function create_fastapi_app (line 29) | def create_fastapi_app(directory: str) -> FastAPI: function fastapi_server_context (line 40) | def fastapi_server_context( function http_server_context (line 69) | def http_server_context( function test_web_pruning (line 101) | def test_web_pruning( FILE: backend/tests/integration/tests/pruning/website/js/flexslider/jquery.flexslider.js function keyboardMove (line 221) | function keyboardMove(event) { function onTouchStart (line 355) | function onTouchStart(e) { function onTouchMove (line 374) | function onTouchMove(e) { function onTouchEnd (line 401) | function onTouchEnd(e) { FILE: backend/tests/integration/tests/pruning/website/js/google-code-prettify/prettify.js function L (line 4) | function L(a) { function M (line 146) | function M(a) { function B (line 185) | function B(a, m, e, h) { function x (line 188) | function x(a, m) { function u (line 260) | function u(a) { function D (line 329) | function D(a, m) { function k (line 398) | function k(a, m) { function C (line 407) | function C(a, m) { function E (line 412) | function E(a) { function m (line 643) | function m() { FILE: backend/tests/integration/tests/pruning/website/js/jquery.flexslider.js function onTouchStart (line 452) | function onTouchStart(e) { function onTouchMove (line 489) | function onTouchMove(e) { function onTouchEnd (line 513) | function onTouchEnd(e) { FILE: backend/tests/integration/tests/pruning/website/js/jquery.js function G (line 4) | function G(a) { function J (line 13) | function J(a, c, d) { function K (line 37) | function K(a) { function ba (line 45) | function ba() { function bb (line 48) | function bb() { function bh (line 51) | function bh(a) { function bi (line 54) | function bi(a, b) { function bj (line 59) | function bj(a, b, c) { function bk (line 81) | function bk(a) { function bC (line 87) | function bC(a, b) { function bD (line 93) | function bD(a, b) { function bE (line 108) | function bE(a, b) { function bF (line 130) | function bF(a) { function bG (line 137) | function bG(a) { function bY (line 140) | function bY(a, b) { function bZ (line 151) | function bZ(a, b) { function b$ (line 157) | function b$(a, b) { function b_ (line 183) | function b_(a, b, c) { function ca (line 187) | function ca(a, b, c, d) { function cb (line 202) | function cb(a, b, c) { function cc (line 215) | function cc(a) { function ci (line 239) | function ci(a, b, c, d) { function cz (line 251) | function cz(a) { function cA (line 269) | function cA(a, c, d, e, f, g) { function cB (line 284) | function cB(a, c) { function cC (line 291) | function cC(a, c, d) { function cD (line 322) | function cD(a, b) { function cL (line 366) | function cL() { function cM (line 371) | function cM() { function cU (line 376) | function cU() { function cV (line 384) | function cV(a, b) { function cW (line 392) | function cW(a, b, c) { function cX (line 455) | function cX(a, b) { function cY (line 470) | function cY(a, b, c) { function cZ (line 546) | function cZ(a, b, c, d, e) { function c$ (line 549) | function c$(a, b) { function da (line 558) | function da(a) { function $ (line 2620) | function $(a, b, c, d) { function _ (line 2652) | function _(a) { function ba (line 2658) | function ba(a) { function bb (line 2664) | function bb(a, b, c) { function bc (line 2673) | function bc(a, b, c, d) { function bd (line 2717) | function bd(a, b, e, f) { function be (line 2751) | function be(a, b) { function bf (line 2759) | function bf(a, b, c) { function bg (line 2772) | function bg(a) { function bh (line 2780) | function bh(a, b, c, d) { function bi (line 2785) | function bi(a, b, c, d, e, g) { function bj (line 2794) | function bj(a, c, d, e) { function bk (line 2848) | function bk(a, b, e, g, h) { function a (line 4288) | function a(b, c) { function y (line 4725) | function y(a, c, f, i) { FILE: backend/tests/integration/tests/query_history/test_query_history.py function setup_chat_session (line 23) | def setup_chat_session(reset: None) -> tuple[DATestUser, str]: # noqa: ... function test_chat_history_endpoints (line 73) | def test_chat_history_endpoints( function test_chat_history_csv_export (line 131) | def test_chat_history_csv_export( FILE: backend/tests/integration/tests/query_history/test_query_history_pagination.py function _verify_query_history_pagination (line 15) | def _verify_query_history_pagination( function test_query_history_pagination (line 57) | def test_query_history_pagination(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/query_history/test_usage_reports.py function test_usage_reports (line 10) | def test_usage_reports(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/query_history/utils.py function _create_chat_session_with_feedback (line 15) | def _create_chat_session_with_feedback( function setup_chat_sessions_with_different_feedback (line 76) | def setup_chat_sessions_with_different_feedback() -> ( FILE: backend/tests/integration/tests/reporting/test_usage_export_api.py class TestUsageExportAPI (line 26) | class TestUsageExportAPI: method test_generate_usage_report (line 27) | def test_generate_usage_report( method test_generate_usage_report_with_date_range (line 85) | def test_generate_usage_report_with_date_range( method test_generate_usage_report_invalid_dates (line 151) | def test_generate_usage_report_invalid_dates( method test_fetch_usage_reports (line 167) | def test_fetch_usage_reports( method test_read_usage_report (line 231) | def test_read_usage_report( method test_read_nonexistent_report (line 346) | def test_read_nonexistent_report( method test_non_admin_cannot_generate_report (line 358) | def test_non_admin_cannot_generate_report( method test_non_admin_cannot_fetch_reports (line 371) | def test_non_admin_cannot_fetch_reports( method test_non_admin_cannot_download_report (line 383) | def test_non_admin_cannot_download_report( method test_concurrent_report_generation (line 395) | def test_concurrent_report_generation( FILE: backend/tests/integration/tests/scim/test_scim_groups.py function idp_style (line 41) | def idp_style(request: pytest.FixtureRequest) -> str: function scim_token (line 47) | def scim_token(idp_style: str) -> str: function _make_group_resource (line 76) | def _make_group_resource( function _make_user_resource (line 93) | def _make_user_resource(email: str, external_id: str) -> dict: function _make_patch_request (line 104) | def _make_patch_request(operations: list[dict], idp_style: str = "okta")... function _create_scim_user (line 123) | def _create_scim_user(token: str, email: str, external_id: str) -> reque... function _create_scim_group (line 129) | def _create_scim_group( function test_create_group (line 147) | def test_create_group(scim_token: str, idp_style: str) -> None: function test_create_group_with_members (line 160) | def test_create_group_with_members(scim_token: str, idp_style: str) -> N... function test_get_group (line 179) | def test_get_group(scim_token: str, idp_style: str) -> None: function test_list_groups (line 202) | def test_list_groups(scim_token: str, idp_style: str) -> None: function test_list_groups_pagination (line 216) | def test_list_groups_pagination(scim_token: str, idp_style: str) -> None: function test_filter_groups_by_display_name (line 235) | def test_filter_groups_by_display_name(scim_token: str, idp_style: str) ... function test_filter_groups_by_external_id (line 248) | def test_filter_groups_by_external_id(scim_token: str, idp_style: str) -... function test_replace_group (line 263) | def test_replace_group(scim_token: str, idp_style: str) -> None: function test_replace_group_clears_members (line 289) | def test_replace_group_clears_members(scim_token: str, idp_style: str) -... function test_patch_add_member (line 314) | def test_patch_add_member(scim_token: str, idp_style: str) -> None: function test_patch_remove_member (line 339) | def test_patch_remove_member(scim_token: str, idp_style: str) -> None: function test_patch_replace_members (line 369) | def test_patch_replace_members(scim_token: str, idp_style: str) -> None: function test_patch_rename_group (line 406) | def test_patch_rename_group(scim_token: str, idp_style: str) -> None: function test_delete_group (line 431) | def test_delete_group(scim_token: str, idp_style: str) -> None: function test_delete_group_preserves_members (line 447) | def test_delete_group_preserves_members(scim_token: str, idp_style: str)... function test_create_group_duplicate_name (line 473) | def test_create_group_duplicate_name(scim_token: str, idp_style: str) ->... function test_get_nonexistent_group (line 483) | def test_get_nonexistent_group(scim_token: str) -> None: function test_create_group_with_invalid_member (line 489) | def test_create_group_with_invalid_member(scim_token: str, idp_style: st... function test_patch_add_nonexistent_member (line 501) | def test_patch_add_nonexistent_member(scim_token: str, idp_style: str) -... function test_patch_add_duplicate_member_is_idempotent (line 527) | def test_patch_add_duplicate_member_is_idempotent( function test_create_group_reserved_name_admin (line 555) | def test_create_group_reserved_name_admin(scim_token: str) -> None: function test_create_group_reserved_name_basic (line 562) | def test_create_group_reserved_name_basic(scim_token: str) -> None: function test_replace_group_cannot_rename_to_reserved (line 569) | def test_replace_group_cannot_rename_to_reserved( function test_patch_rename_to_reserved_name (line 590) | def test_patch_rename_to_reserved_name(scim_token: str, idp_style: str) ... function test_delete_reserved_group_rejected (line 610) | def test_delete_reserved_group_rejected(scim_token: str) -> None: function test_scim_created_group_has_basic_permission (line 624) | def test_scim_created_group_has_basic_permission( function test_replace_group_cannot_rename_from_reserved (line 658) | def test_replace_group_cannot_rename_from_reserved(scim_token: str) -> N... function test_patch_rename_from_reserved_name (line 677) | def test_patch_rename_from_reserved_name(scim_token: str, idp_style: str... FILE: backend/tests/integration/tests/scim/test_scim_tokens.py function test_scim_token_lifecycle (line 24) | def test_scim_token_lifecycle(admin_user: DATestUser) -> None: function test_scim_token_rotation_revokes_previous (line 50) | def test_scim_token_rotation_revokes_previous(admin_user: DATestUser) ->... function test_scim_request_without_token_rejected (line 77) | def test_scim_request_without_token_rejected( function test_scim_request_with_bad_token_rejected (line 84) | def test_scim_request_with_bad_token_rejected( function test_non_admin_cannot_create_token (line 91) | def test_non_admin_cannot_create_token( function test_non_admin_cannot_get_token (line 106) | def test_non_admin_cannot_get_token( function test_no_active_token_returns_404 (line 120) | def test_no_active_token_returns_404(new_admin_user: DATestUser) -> None: function test_service_discovery_no_auth_required (line 135) | def test_service_discovery_no_auth_required( function test_last_used_at_updated_after_scim_request (line 144) | def test_last_used_at_updated_after_scim_request( FILE: backend/tests/integration/tests/scim/test_scim_users.py function idp_style (line 60) | def idp_style(request: pytest.FixtureRequest) -> str: function scim_token (line 66) | def scim_token(idp_style: str) -> str: function _make_user_resource (line 102) | def _make_user_resource( function _make_patch_request (line 142) | def _make_patch_request(operations: list[dict], idp_style: str = "okta")... function _create_scim_user (line 161) | def _create_scim_user( function _assert_entra_extension (line 174) | def _assert_entra_extension( function _assert_entra_emails (line 186) | def _assert_entra_emails(body: dict, expected_email: str) -> None: function test_create_user (line 200) | def test_create_user(scim_token: str, idp_style: str) -> None: function test_create_user_default_group_and_account_type (line 221) | def test_create_user_default_group_and_account_type( function test_get_user (line 264) | def test_get_user(scim_token: str, idp_style: str) -> None: function test_list_users (line 285) | def test_list_users(scim_token: str, idp_style: str) -> None: function test_list_users_pagination (line 299) | def test_list_users_pagination(scim_token: str, idp_style: str) -> None: function test_filter_users_by_username (line 324) | def test_filter_users_by_username(scim_token: str, idp_style: str) -> None: function test_replace_user (line 337) | def test_replace_user(scim_token: str, idp_style: str) -> None: function test_patch_deactivate_user (line 363) | def test_patch_deactivate_user(scim_token: str, idp_style: str) -> None: function test_patch_reactivate_user (line 388) | def test_patch_reactivate_user(scim_token: str, idp_style: str) -> None: function test_delete_user (line 420) | def test_delete_user(scim_token: str, idp_style: str) -> None: function test_create_user_missing_external_id (line 442) | def test_create_user_missing_external_id(scim_token: str, idp_style: str... function test_create_user_duplicate_email (line 460) | def test_create_user_duplicate_email(scim_token: str, idp_style: str) ->... function test_get_nonexistent_user (line 470) | def test_get_nonexistent_user(scim_token: str) -> None: function test_filter_users_by_external_id (line 476) | def test_filter_users_by_external_id(scim_token: str, idp_style: str) ->... function _seed_license (line 496) | def _seed_license(r: redis.Redis, seats: int) -> None: function test_create_user_seat_limit (line 513) | def test_create_user_seat_limit(scim_token: str, idp_style: str) -> None: function test_reactivate_user_seat_limit (line 533) | def test_reactivate_user_seat_limit(scim_token: str, idp_style: str) -> ... FILE: backend/tests/integration/tests/search_settings/test_search_settings.py function _get_current_search_settings (line 12) | def _get_current_search_settings(user: DATestUser) -> dict: function _get_all_search_settings (line 21) | def _get_all_search_settings(user: DATestUser) -> dict: function _get_secondary_search_settings (line 30) | def _get_secondary_search_settings(user: DATestUser) -> dict | None: function _update_inference_settings (line 39) | def _update_inference_settings(user: DATestUser, settings: dict) -> None: function _set_new_search_settings (line 48) | def _set_new_search_settings( function _cancel_new_embedding (line 78) | def _cancel_new_embedding(user: DATestUser) -> None: function test_get_current_search_settings (line 86) | def test_get_current_search_settings( function test_get_all_search_settings (line 102) | def test_get_all_search_settings( function test_get_secondary_search_settings_none_by_default (line 115) | def test_get_secondary_search_settings_none_by_default( function test_set_contextual_rag_model (line 124) | def test_set_contextual_rag_model( function test_unset_contextual_rag_model (line 142) | def test_unset_contextual_rag_model( function test_change_contextual_rag_model (line 171) | def test_change_contextual_rag_model( function test_change_contextual_rag_provider_only (line 204) | def test_change_contextual_rag_provider_only( function test_enable_contextual_rag_preserved_on_inference_update (line 233) | def test_enable_contextual_rag_preserved_on_inference_update( function test_model_name_preserved_on_inference_update (line 252) | def test_model_name_preserved_on_inference_update( function test_contextual_rag_settings_reflected_in_get_all (line 268) | def test_contextual_rag_settings_reflected_in_get_all( function test_update_contextual_rag_nonexistent_provider (line 286) | def test_update_contextual_rag_nonexistent_provider( function test_update_contextual_rag_nonexistent_model (line 305) | def test_update_contextual_rag_nonexistent_model( function test_update_contextual_rag_missing_provider_name (line 328) | def test_update_contextual_rag_missing_provider_name( function test_update_contextual_rag_missing_model_name (line 347) | def test_update_contextual_rag_missing_model_name( function test_set_new_search_settings_with_contextual_rag (line 367) | def test_set_new_search_settings_with_contextual_rag( function test_set_new_search_settings_without_contextual_rag (line 395) | def test_set_new_search_settings_without_contextual_rag( function test_set_new_then_update_inference_settings (line 419) | def test_set_new_then_update_inference_settings( function test_set_new_search_settings_replaces_previous_secondary (line 456) | def test_set_new_search_settings_replaces_previous_secondary( FILE: backend/tests/integration/tests/streaming_endpoints/test_chat_file_attachment.py function test_send_message_with_image_attachment (line 15) | def test_send_message_with_image_attachment(admin_user: DATestUser) -> N... function test_send_message_with_text_file_attachment (line 50) | def test_send_message_with_text_file_attachment(admin_user: DATestUser) ... function _set_token_threshold (line 90) | def _set_token_threshold(admin_user: DATestUser, threshold_k: int) -> None: function _upload_raw (line 100) | def _upload_raw( function test_csv_over_token_threshold_uploaded_not_indexed (line 119) | def test_csv_over_token_threshold_uploaded_not_indexed( function test_csv_under_token_threshold_uploaded_and_indexed (line 141) | def test_csv_under_token_threshold_uploaded_and_indexed( function test_txt_over_token_threshold_rejected (line 159) | def test_txt_over_token_threshold_rejected( FILE: backend/tests/integration/tests/streaming_endpoints/test_chat_stream.py function test_send_two_messages (line 16) | def test_send_two_messages(basic_user: DATestUser) -> None: function test_send_message_simple_with_history (line 63) | def test_send_message_simple_with_history( function test_send_message__basic_searches (line 81) | def test_send_message__basic_searches( function test_send_message_disconnect_and_cleanup (line 123) | def test_send_message_disconnect_and_cleanup( FILE: backend/tests/integration/tests/tags/test_tags.py function test_tag_creation_and_update (line 14) | def test_tag_creation_and_update(reset: None) -> None: # noqa: ARG001 function test_tag_sharing (line 123) | def test_tag_sharing(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/tools/test_force_tool_use.py function test_force_tool_use (line 17) | def test_force_tool_use( FILE: backend/tests/integration/tests/tools/test_image_generation_streaming.py function test_image_generation_streaming (line 23) | def test_image_generation_streaming( FILE: backend/tests/integration/tests/usergroup/test_add_users_to_group.py function test_add_users_to_group (line 18) | def test_add_users_to_group(reset: None) -> None: # noqa: ARG001 function test_add_users_to_group_invalid_user (line 53) | def test_add_users_to_group_invalid_user(reset: None) -> None: # noqa: ... FILE: backend/tests/integration/tests/usergroup/test_group_membership_updates_user_permissions.py function test_user_gets_permissions_when_added_to_group (line 20) | def test_user_gets_permissions_when_added_to_group( function test_group_permission_change_propagates_to_all_members (line 68) | def test_group_permission_change_propagates_to_all_members( FILE: backend/tests/integration/tests/usergroup/test_new_group_gets_basic_permission.py function test_new_group_gets_basic_permission (line 14) | def test_new_group_gets_basic_permission(reset: None) -> None: # noqa: ... FILE: backend/tests/integration/tests/usergroup/test_user_group_deletion.py function test_user_group_deletion (line 37) | def test_user_group_deletion( FILE: backend/tests/integration/tests/usergroup/test_usergroup_syncing.py function test_removing_connector (line 22) | def test_removing_connector( FILE: backend/tests/integration/tests/users/test_default_group_assignment.py function test_default_group_assignment_on_registration (line 16) | def test_default_group_assignment_on_registration(reset: None) -> None: ... FILE: backend/tests/integration/tests/users/test_password_signup_upgrade.py function _get_default_group_member_emails (line 18) | def _get_default_group_member_emails( function test_password_signup_upgrade (line 34) | def test_password_signup_upgrade( function test_password_signup_upgrade_propagates_permissions (line 83) | def test_password_signup_upgrade_propagates_permissions( FILE: backend/tests/integration/tests/users/test_reactivation_groups.py function _get_default_group_member_emails (line 13) | def _get_default_group_member_emails( function test_reactivated_user_retains_default_group (line 24) | def test_reactivated_user_retains_default_group( FILE: backend/tests/integration/tests/users/test_seat_limit.py function _seed_license (line 29) | def _seed_license(r: redis.Redis, seats: int) -> None: function _clear_license (line 46) | def _clear_license(r: redis.Redis) -> None: function _redis (line 50) | def _redis() -> redis.Redis: function test_registration_blocked_when_seats_full (line 59) | def test_registration_blocked_when_seats_full( function test_invite_blocked_when_seats_full (line 91) | def test_invite_blocked_when_seats_full(reset: None) -> None: # noqa: A... function test_reactivation_blocked_when_seats_full (line 115) | def test_reactivation_blocked_when_seats_full( function test_registration_allowed_without_license (line 148) | def test_registration_allowed_without_license( FILE: backend/tests/integration/tests/users/test_slack_user_deactivation.py function _seed_license (line 30) | def _seed_license(r: redis.Redis, seats: int) -> None: function _clear_license (line 46) | def _clear_license(r: redis.Redis) -> None: function _redis (line 50) | def _redis() -> redis.Redis: function _get_user_is_active (line 54) | def _get_user_is_active(email: str, admin_user: DATestUser) -> bool: function test_slack_user_deactivate_and_reactivate (line 65) | def test_slack_user_deactivate_and_reactivate( function test_slack_user_reactivation_blocked_by_seat_limit (line 92) | def test_slack_user_reactivation_blocked_by_seat_limit( FILE: backend/tests/integration/tests/users/test_user_pagination.py function _verify_user_pagination (line 10) | def _verify_user_pagination( function test_user_pagination (line 46) | def test_user_pagination(reset: None) -> None: # noqa: ARG001 FILE: backend/tests/integration/tests/web_search/test_web_search_api.py class TestOnyxWebCrawler (line 12) | class TestOnyxWebCrawler: method test_fetches_public_url_successfully (line 21) | def test_fetches_public_url_successfully(self, admin_user: DATestUser)... method test_fetches_multiple_urls (line 45) | def test_fetches_multiple_urls(self, admin_user: DATestUser) -> None: method test_handles_nonexistent_domain (line 66) | def test_handles_nonexistent_domain(self, admin_user: DATestUser) -> N... method test_handles_404_page (line 81) | def test_handles_404_page(self, admin_user: DATestUser) -> None: method test_https_url_with_path (line 96) | def test_https_url_with_path(self, admin_user: DATestUser) -> None: class TestSsrfProtection (line 111) | class TestSsrfProtection: method test_blocks_localhost_ip (line 121) | def test_blocks_localhost_ip(self, admin_user: DATestUser) -> None: method test_blocks_private_ip_10_network (line 133) | def test_blocks_private_ip_10_network(self, admin_user: DATestUser) ->... method test_blocks_private_ip_192_168_network (line 144) | def test_blocks_private_ip_192_168_network(self, admin_user: DATestUse... method test_blocks_private_ip_172_network (line 155) | def test_blocks_private_ip_172_network(self, admin_user: DATestUser) -... method test_blocks_aws_metadata_endpoint (line 166) | def test_blocks_aws_metadata_endpoint(self, admin_user: DATestUser) ->... method test_blocks_kubernetes_metadata_hostname (line 177) | def test_blocks_kubernetes_metadata_hostname(self, admin_user: DATestU... method test_blocks_google_metadata_hostname (line 188) | def test_blocks_google_metadata_hostname(self, admin_user: DATestUser)... method test_blocks_localhost_with_port (line 199) | def test_blocks_localhost_with_port(self, admin_user: DATestUser) -> N... method test_multiple_urls_filters_internal (line 210) | def test_multiple_urls_filters_internal(self, admin_user: DATestUser) ... function _activate_exa_provider (line 243) | def _activate_exa_provider(admin_user: DATestUser) -> int: function test_web_search_endpoints_with_exa (line 269) | def test_web_search_endpoints_with_exa( FILE: backend/tests/load_env_vars.py function load_env_vars (line 4) | def load_env_vars(env_file: str = ".env") -> None: FILE: backend/tests/regression/answer_quality/api_utils.py function _api_url_builder (line 13) | def _api_url_builder(env_name: str, api_path: str) -> str: function check_indexing_status (line 21) | def check_indexing_status(env_name: str) -> tuple[int, bool]: function run_cc_once (line 57) | def run_cc_once(env_name: str, connector_id: int, credential_id: int) ->... function create_cc_pair (line 73) | def create_cc_pair(env_name: str, connector_id: int, credential_id: int)... function _get_existing_connector_names (line 88) | def _get_existing_connector_names(env_name: str) -> list[str]: function create_connector (line 103) | def create_connector(env_name: str, file_paths: list[str]) -> int: function create_credential (line 135) | def create_credential(env_name: str) -> int: function upload_file (line 151) | def upload_file(env_name: str, zip_file_path: str) -> list[str]: FILE: backend/tests/regression/answer_quality/cli_utils.py function _run_command (line 15) | def _run_command(command: str, stream_output: bool = False) -> tuple[str... function get_current_commit_sha (line 55) | def get_current_commit_sha() -> str: function switch_to_commit (line 63) | def switch_to_commit(commit_sha: str) -> None: function get_docker_container_env_vars (line 70) | def get_docker_container_env_vars(env_name: str) -> dict: function manage_data_directories (line 98) | def manage_data_directories(env_name: str, base_path: str, use_cloud_gpu... function set_env_variables (line 122) | def set_env_variables( function _is_port_in_use (line 141) | def _is_port_in_use(port: int) -> bool: function start_docker_compose (line 146) | def start_docker_compose( function cleanup_docker (line 180) | def cleanup_docker(env_name: str) -> None: function get_api_server_host_port (line 240) | def get_api_server_host_port(env_name: str) -> str: function restart_vespa_container (line 289) | def restart_vespa_container(env_name: str) -> None: FILE: backend/tests/regression/answer_quality/file_uploader.py function unzip_and_get_file_paths (line 19) | def unzip_and_get_file_paths(zip_file_path: str) -> list[str]: function create_temp_zip_from_files (line 32) | def create_temp_zip_from_files(file_paths: list[str]) -> str: function upload_test_files (line 43) | def upload_test_files(zip_file_path: str, env_name: str) -> None: function manage_file_upload (line 54) | def manage_file_upload(zip_file_path: str, env_name: str) -> None: FILE: backend/tests/regression/answer_quality/launch_eval_env.py function load_config (line 12) | def load_config(config_filename: str) -> SimpleNamespace: function main (line 19) | def main() -> None: FILE: backend/tests/regression/search_quality/models.py class GroundTruth (line 7) | class GroundTruth(BaseModel): class TestQuery (line 12) | class TestQuery(BaseModel): class EvalConfig (line 22) | class EvalConfig(BaseModel): class OneshotQAResult (line 32) | class OneshotQAResult(BaseModel): class RetrievedDocument (line 38) | class RetrievedDocument(BaseModel): class AnalysisSummary (line 44) | class AnalysisSummary(BaseModel): class SearchMetrics (line 59) | class SearchMetrics(BaseModel): class AnswerMetrics (line 70) | class AnswerMetrics(BaseModel): class CombinedMetrics (line 81) | class CombinedMetrics(SearchMetrics, AnswerMetrics): FILE: backend/tests/regression/search_quality/run_search_eval.py class SearchAnswerAnalyzer (line 69) | class SearchAnswerAnalyzer: method __init__ (line 70) | def __init__( method run_analysis (line 107) | def run_analysis(self, dataset_path: Path, export_path: Path) -> None: method generate_detailed_report (line 171) | def generate_detailed_report(self, export_path: Path) -> None: method generate_chart (line 282) | def generate_chart(self, export_path: Path) -> None: method _load_dataset (line 375) | def _load_dataset(self, dataset_path: Path) -> list[TestQuery]: method _perform_search (line 419) | def _perform_search(self, query: str) -> OneshotQAResult: method _run_and_analyze_one (line 470) | def _run_and_analyze_one(self, test_case: TestQuery, total: int) -> An... method _update_metrics (line 553) | def _update_metrics(self, result: AnalysisSummary) -> None: method _aggregate_metrics (line 580) | def _aggregate_metrics(self) -> None: function run_search_eval (line 601) | def run_search_eval( FILE: backend/tests/regression/search_quality/utils.py function get_federated_sources (line 36) | def get_federated_sources(db_session: Session) -> set[DocumentSource]: function find_document_id (line 45) | def find_document_id( function get_doc_contents (line 85) | def get_doc_contents( function search_docs_to_doc_contexts (line 107) | def search_docs_to_doc_contexts( function ragas_evaluate (line 136) | def ragas_evaluate( function compute_overall_scores (line 163) | def compute_overall_scores(metrics: CombinedMetrics) -> tuple[float, flo... class LazyJsonWriter (line 191) | class LazyJsonWriter: method __init__ (line 192) | def __init__(self, filepath: Path, indent: int = 4) -> None: method append (line 197) | def append(self, serializable_item: dict[str, Any]) -> None: method close (line 207) | def close(self) -> None: FILE: backend/tests/unit/build/test_rewrite_asset_paths.py function rewrite (line 22) | def rewrite(html: str) -> str: function inject (line 26) | def inject(html: str) -> str: class TestNextjsPathRewriting (line 30) | class TestNextjsPathRewriting: method test_rewrites_bare_next_script_src (line 31) | def test_rewrites_bare_next_script_src(self) -> None: method test_rewrites_bare_next_in_single_quotes (line 37) | def test_rewrites_bare_next_in_single_quotes(self) -> None: method test_rewrites_bare_next_in_url_parens (line 42) | def test_rewrites_bare_next_in_url_parens(self) -> None: method test_no_double_prefix_when_already_proxied (line 47) | def test_no_double_prefix_when_already_proxied(self) -> None: method test_rewrites_favicon (line 56) | def test_rewrites_favicon(self) -> None: method test_rewrites_json_data_path_double_quoted (line 61) | def test_rewrites_json_data_path_double_quoted(self) -> None: method test_rewrites_json_data_path_single_quoted (line 66) | def test_rewrites_json_data_path_single_quoted(self) -> None: method test_rewrites_escaped_next_font_path_in_json_script (line 71) | def test_rewrites_escaped_next_font_path_in_json_script(self) -> None: method test_rewrites_escaped_next_font_path_in_style_payload (line 80) | def test_rewrites_escaped_next_font_path_in_style_payload(self) -> None: method test_rewrites_absolute_next_font_url (line 89) | def test_rewrites_absolute_next_font_url(self) -> None: method test_rewrites_root_hmr_path (line 94) | def test_rewrites_root_hmr_path(self) -> None: method test_rewrites_escaped_absolute_next_font_url (line 100) | def test_rewrites_escaped_absolute_next_font_url(self) -> None: class TestRuntimeFixerInjection (line 111) | class TestRuntimeFixerInjection: method test_injects_websocket_rewrite_shim (line 112) | def test_injects_websocket_rewrite_shim(self) -> None: method test_injects_hmr_websocket_stub (line 118) | def test_injects_hmr_websocket_stub(self) -> None: method test_injects_before_head_contents (line 124) | def test_injects_before_head_contents(self) -> None: method test_rewritten_hmr_url_still_matches_shim_intercept_logic (line 131) | def test_rewritten_hmr_url_still_matches_shim_intercept_logic(self) ->... class TestProxyHeaderRewriting (line 144) | class TestProxyHeaderRewriting: method test_rewrites_link_header_font_preload_paths (line 145) | def test_rewrites_link_header_font_preload_paths(self) -> None: class TestProxyRequestWiring (line 158) | class TestProxyRequestWiring: method test_proxy_request_rewrites_link_header_on_html_response (line 159) | def test_proxy_request_rewrites_link_header_on_html_response( method test_proxy_request_injects_hmr_fixer_for_html_response (line 200) | def test_proxy_request_injects_hmr_fixer_for_html_response( method test_rewrites_absolute_link_header_font_preload_paths (line 239) | def test_rewrites_absolute_link_header_font_preload_paths(self) -> None: FILE: backend/tests/unit/ee/conftest.py function _enable_ee_for_directory (line 7) | def _enable_ee_for_directory(enable_ee: None) -> None: FILE: backend/tests/unit/ee/onyx/db/test_license.py class TestGetLicense (line 20) | class TestGetLicense: method test_get_existing_license (line 23) | def test_get_existing_license(self) -> None: method test_get_no_license (line 39) | def test_get_no_license(self) -> None: class TestUpsertLicense (line 49) | class TestUpsertLicense: method test_insert_new_license (line 52) | def test_insert_new_license(self) -> None: method test_update_existing_license (line 68) | def test_update_existing_license(self) -> None: class TestDeleteLicense (line 85) | class TestDeleteLicense: method test_delete_existing_license (line 88) | def test_delete_existing_license(self) -> None: method test_delete_no_license (line 102) | def test_delete_no_license(self) -> None: function _make_license_metadata (line 114) | def _make_license_metadata(seats: int = 10) -> LicenseMetadata: class TestCheckSeatAvailabilitySelfHosted (line 128) | class TestCheckSeatAvailabilitySelfHosted: method test_no_license_means_unlimited (line 132) | def test_no_license_means_unlimited(self, _mock_meta: MagicMock) -> None: method test_seats_available (line 138) | def test_seats_available(self, mock_meta: MagicMock, _mock_used: Magic... method test_seats_full_blocks_creation (line 145) | def test_seats_full_blocks_creation( method test_exactly_at_capacity_allows_no_more (line 156) | def test_exactly_at_capacity_allows_no_more( method test_filling_to_capacity_is_allowed (line 166) | def test_filling_to_capacity_is_allowed( class TestCheckSeatAvailabilityMultiTenant (line 174) | class TestCheckSeatAvailabilityMultiTenant: method test_seats_available_multi_tenant (line 187) | def test_seats_available_multi_tenant( method test_seats_full_multi_tenant (line 205) | def test_seats_full_multi_tenant( FILE: backend/tests/unit/ee/onyx/db/test_user_group_rename.py class TestRenameUserGroup (line 12) | class TestRenameUserGroup: method test_rename_succeeds_and_triggers_sync (line 19) | def test_rename_succeeds_and_triggers_sync( method test_rename_group_not_found (line 35) | def test_rename_group_not_found(self) -> None: method test_rename_group_syncing_raises (line 44) | def test_rename_group_syncing_raises(self) -> None: FILE: backend/tests/unit/ee/onyx/external_permissions/salesforce/test_postprocessing.py function create_test_chunk (line 14) | def create_test_chunk( function test_validate_salesforce_access_single_object (line 42) | def test_validate_salesforce_access_single_object() -> None: function test_validate_salesforce_access_multiple_objects (line 72) | def test_validate_salesforce_access_multiple_objects() -> None: function test_validate_salesforce_access_multiple_chunks (line 134) | def test_validate_salesforce_access_multiple_chunks() -> None: function test_validate_salesforce_access_no_source_links (line 166) | def test_validate_salesforce_access_no_source_links() -> None: function test_validate_salesforce_access_blurb_update (line 184) | def test_validate_salesforce_access_blurb_update() -> None: FILE: backend/tests/unit/ee/onyx/external_permissions/sharepoint/test_permission_utils.py function _fake_token (line 41) | def _fake_token() -> str: function _make_graph_page (line 45) | def _make_graph_page( function test_normalize_email_strips_onmicrosoft (line 60) | def test_normalize_email_strips_onmicrosoft() -> None: function test_normalize_email_noop_for_normal_domain (line 64) | def test_normalize_email_noop_for_normal_domain() -> None: function test_iter_graph_collection_single_page (line 74) | def test_iter_graph_collection_single_page(mock_get: MagicMock) -> None: function test_iter_graph_collection_multi_page (line 83) | def test_iter_graph_collection_multi_page(mock_get: MagicMock) -> None: function test_iter_graph_collection_empty (line 95) | def test_iter_graph_collection_empty(mock_get: MagicMock) -> None: function _mock_graph_get_for_enumeration (line 105) | def _mock_graph_get_for_enumeration( function test_enumerate_ad_groups_yields_groups (line 126) | def test_enumerate_ad_groups_yields_groups(mock_get: MagicMock) -> None: function test_enumerate_ad_groups_skips_already_resolved (line 151) | def test_enumerate_ad_groups_skips_already_resolved(mock_get: MagicMock)... function test_enumerate_ad_groups_circuit_breaker (line 166) | def test_enumerate_ad_groups_circuit_breaker(mock_get: MagicMock) -> None: function _stub_role_assignment_resolution (line 185) | def _stub_role_assignment_resolution( function test_default_skips_ad_enumeration (line 202) | def test_default_skips_ad_enumeration( function test_enumerate_all_includes_ad_groups (line 225) | def test_enumerate_all_includes_ad_groups( function test_enumerate_all_without_token_skips (line 257) | def test_enumerate_all_without_token_skips( function test_site_page_url_not_duplicated (line 308) | def test_site_page_url_not_duplicated( function _make_permission (line 347) | def _make_permission(scope: str | None) -> MagicMock: function _make_drive_item_with_permissions (line 357) | def _make_drive_item_with_permissions( function test_is_public_item_anonymous_link_when_enabled (line 367) | def test_is_public_item_anonymous_link_when_enabled( function test_is_public_item_org_link_when_enabled (line 375) | def test_is_public_item_org_link_when_enabled( function test_is_public_item_anonymous_link_when_disabled (line 383) | def test_is_public_item_anonymous_link_when_disabled( function test_is_public_item_org_link_when_disabled (line 392) | def test_is_public_item_org_link_when_disabled( function test_is_public_item_no_sharing_links (line 401) | def test_is_public_item_no_sharing_links( function test_is_public_item_default_is_false (line 410) | def test_is_public_item_default_is_false( function test_is_public_item_skips_api_call_when_disabled (line 418) | def test_is_public_item_skips_api_call_when_disabled() -> None: function test_drive_item_public_when_sharing_link_enabled (line 432) | def test_drive_item_public_when_sharing_link_enabled( function test_drive_item_falls_through_when_sharing_link_disabled (line 457) | def test_drive_item_falls_through_when_sharing_link_disabled( FILE: backend/tests/unit/ee/onyx/hooks/test_executor.py function _make_hook (line 30) | def _make_hook( function _make_api_key (line 53) | def _make_api_key(value: str) -> MagicMock: function _make_response (line 59) | def _make_response( function _setup_client (line 75) | def _setup_client( function db_session (line 111) | def db_session() -> MagicMock: function test_early_exit_returns_skipped_with_no_db_writes (line 130) | def test_early_exit_returns_skipped_with_no_db_writes( function test_success_returns_validated_model_and_sets_reachable (line 163) | def test_success_returns_validated_model_and_sets_reachable( function test_success_skips_reachable_write_when_already_true (line 196) | def test_success_skips_reachable_write_when_already_true(db_session: Mag... function test_non_dict_json_response_is_a_failure (line 225) | def test_non_dict_json_response_is_a_failure(db_session: MagicMock) -> N... function test_json_decode_failure_is_a_failure (line 261) | def test_json_decode_failure_is_a_failure(db_session: MagicMock) -> None: function test_http_failure_paths (line 385) | def test_http_failure_paths( function test_authorization_header (line 445) | def test_authorization_header( function test_persist_session_failure_is_swallowed (line 491) | def test_persist_session_failure_is_swallowed( class _StrictResponse (line 542) | class _StrictResponse(BaseModel): function test_response_validation_failure_respects_fail_strategy (line 557) | def test_response_validation_failure_respects_fail_strategy( function test_unexpected_exception_in_inner_respects_fail_strategy (line 621) | def test_unexpected_exception_in_inner_respects_fail_strategy( function test_is_reachable_failure_does_not_prevent_log (line 660) | def test_is_reachable_failure_does_not_prevent_log(db_session: MagicMock... FILE: backend/tests/unit/ee/onyx/server/billing/conftest.py function mock_license_payload (line 15) | def mock_license_payload() -> LicensePayload: function mock_expired_license_payload (line 21) | def mock_expired_license_payload() -> LicensePayload: function make_license_payload (line 26) | def make_license_payload( function make_mock_response (line 55) | def make_mock_response(json_data: dict) -> MagicMock: function make_mock_http_client (line 67) | def make_mock_http_client( FILE: backend/tests/unit/ee/onyx/server/billing/test_billing_api.py class TestCreateCheckoutSession (line 18) | class TestCreateCheckoutSession: method test_creates_checkout_session_cloud (line 25) | async def test_creates_checkout_session_cloud( method test_creates_checkout_session_self_hosted (line 53) | async def test_creates_checkout_session_self_hosted( method test_raises_on_service_error (line 86) | async def test_raises_on_service_error( class TestCreateCustomerPortalSession (line 113) | class TestCreateCustomerPortalSession: method test_requires_license_for_self_hosted (line 121) | async def test_requires_license_for_self_hosted( method test_creates_portal_session (line 146) | async def test_creates_portal_session( class TestGetBillingInformation (line 168) | class TestGetBillingInformation: method test_returns_not_subscribed_without_license (line 175) | async def test_returns_not_subscribed_without_license( method test_returns_billing_info (line 195) | async def test_returns_billing_info( class TestUpdateSeats (line 220) | class TestUpdateSeats: method test_requires_license_for_self_hosted (line 227) | async def test_requires_license_for_self_hosted( method test_updates_seats_successfully (line 253) | async def test_updates_seats_successfully( method test_handles_billing_service_error (line 293) | async def test_handles_billing_service_error( class TestCircuitBreaker (line 323) | class TestCircuitBreaker: method test_returns_503_when_circuit_open (line 331) | async def test_returns_503_when_circuit_open( method test_opens_circuit_on_502_error (line 358) | async def test_opens_circuit_on_502_error( method test_opens_circuit_on_503_error (line 391) | async def test_opens_circuit_on_503_error( method test_opens_circuit_on_504_error (line 424) | async def test_opens_circuit_on_504_error( method test_does_not_open_circuit_on_400_error (line 457) | async def test_does_not_open_circuit_on_400_error( class TestResetConnection (line 484) | class TestResetConnection: method test_closes_circuit_for_self_hosted (line 490) | async def test_closes_circuit_for_self_hosted( method test_noop_for_cloud (line 506) | async def test_noop_for_cloud( class TestCheckoutSessionWithSeats (line 520) | class TestCheckoutSessionWithSeats: method test_passes_seats_parameter (line 528) | async def test_passes_seats_parameter( method test_seats_none_when_not_provided (line 558) | async def test_seats_none_when_not_provided( FILE: backend/tests/unit/ee/onyx/server/billing/test_billing_service.py class TestMakeBillingRequest (line 21) | class TestMakeBillingRequest: method test_makes_post_request (line 27) | async def test_makes_post_request( method test_makes_get_request (line 52) | async def test_makes_get_request( method test_raises_on_http_error (line 77) | async def test_raises_on_http_error( method test_follows_redirects (line 109) | async def test_follows_redirects( method test_raises_on_connection_error (line 136) | async def test_raises_on_connection_error( class TestCreateCheckoutSession (line 158) | class TestCreateCheckoutSession: method test_creates_checkout_session (line 163) | async def test_creates_checkout_session( class TestCreateCustomerPortalSession (line 189) | class TestCreateCustomerPortalSession: method test_creates_portal_session (line 194) | async def test_creates_portal_session( class TestGetBillingInformation (line 212) | class TestGetBillingInformation: method test_returns_billing_info (line 217) | async def test_returns_billing_info( method test_returns_not_subscribed (line 240) | async def test_returns_not_subscribed( class TestUpdateSeatCount (line 255) | class TestUpdateSeatCount: method test_updates_seats (line 260) | async def test_updates_seats( method test_includes_tenant_id_for_cloud (line 289) | async def test_includes_tenant_id_for_cloud( FILE: backend/tests/unit/ee/onyx/server/billing/test_proxy.py class TestProxySeatUpdate (line 16) | class TestProxySeatUpdate: method test_proxies_seat_update (line 21) | async def test_proxies_seat_update( method test_rejects_missing_tenant_id (line 58) | async def test_rejects_missing_tenant_id(self) -> None: class TestForwardToControlPlane (line 81) | class TestForwardToControlPlane: method test_forwards_post_request (line 87) | async def test_forwards_post_request( method test_forwards_get_request (line 110) | async def test_forwards_get_request( method test_raises_on_http_error (line 133) | async def test_raises_on_http_error( method test_raises_on_connection_error (line 159) | async def test_raises_on_connection_error( class TestVerifyLicenseAuth (line 180) | class TestVerifyLicenseAuth: method test_valid_license (line 187) | async def test_valid_license( method test_invalid_signature (line 206) | async def test_invalid_signature( method test_expired_license_rejected (line 227) | async def test_expired_license_rejected( method test_expired_license_allowed (line 251) | async def test_expired_license_allowed( FILE: backend/tests/unit/ee/onyx/server/features/hooks/test_api.py function _mock_response (line 36) | def _mock_response(status_code: int) -> MagicMock: class TestCheckSsrfSafety (line 47) | class TestCheckSsrfSafety: method _call (line 48) | def _call(self, url: str) -> None: method test_https_is_allowed (line 53) | def test_https_is_allowed(self) -> None: method test_non_https_scheme_rejected (line 61) | def test_non_https_scheme_rejected(self, url: str) -> None: method test_private_ip_is_blocked (line 83) | def test_private_ip_is_blocked(self, ip: str) -> None: method test_public_ip_is_allowed (line 93) | def test_public_ip_is_allowed(self) -> None: method test_dns_resolution_failure_raises (line 98) | def test_dns_resolution_failure_raises(self) -> None: class TestValidateEndpoint (line 117) | class TestValidateEndpoint: method _call (line 118) | def _call(self, *, api_key: str | None = _API_KEY) -> HookValidateResp... method test_2xx_returns_passed (line 128) | def test_2xx_returns_passed(self, mock_client_cls: MagicMock) -> None: method test_5xx_returns_passed (line 135) | def test_5xx_returns_passed(self, mock_client_cls: MagicMock) -> None: method test_401_403_returns_auth_failed (line 143) | def test_401_403_returns_auth_failed( method test_4xx_non_auth_returns_passed (line 154) | def test_4xx_non_auth_returns_passed(self, mock_client_cls: MagicMock)... method test_connect_timeout_returns_timeout (line 161) | def test_connect_timeout_returns_timeout(self, mock_client_cls: MagicM... method test_read_write_pool_timeout_returns_timeout (line 176) | def test_read_write_pool_timeout_returns_timeout( method test_connect_error_returns_cannot_connect (line 183) | def test_connect_error_returns_cannot_connect( method test_arbitrary_exception_returns_cannot_connect (line 193) | def test_arbitrary_exception_returns_cannot_connect( method test_api_key_sent_as_bearer (line 202) | def test_api_key_sent_as_bearer(self, mock_client_cls: MagicMock) -> N... method test_no_api_key_omits_auth_header (line 210) | def test_no_api_key_omits_auth_header(self, mock_client_cls: MagicMock... class TestRaiseForValidationFailure (line 223) | class TestRaiseForValidationFailure: method test_raises_correct_error_code (line 232) | def test_raises_correct_error_code( method test_auth_failed_passes_error_message_directly (line 240) | def test_auth_failed_passes_error_message_directly(self) -> None: method test_timeout_and_cannot_connect_wrap_error_message (line 251) | def test_timeout_and_cannot_connect_wrap_error_message( class TestHookValidateStatusValues (line 265) | class TestHookValidateStatusValues: method test_string_values (line 275) | def test_string_values(self, status: HookValidateStatus, expected: str... FILE: backend/tests/unit/ee/onyx/server/license/test_api.py class TestStripPemDelimiters (line 6) | class TestStripPemDelimiters: method test_strips_pem_delimiters (line 9) | def test_strips_pem_delimiters(self) -> None: method test_handles_multiline_content (line 19) | def test_handles_multiline_content(self) -> None: method test_returns_unchanged_without_delimiters (line 34) | def test_returns_unchanged_without_delimiters(self) -> None: method test_handles_whitespace (line 42) | def test_handles_whitespace(self) -> None: method test_partial_delimiters_unchanged (line 54) | def test_partial_delimiters_unchanged(self) -> None: method test_trailing_newlines_stripped_from_raw_input (line 65) | def test_trailing_newlines_stripped_from_raw_input(self) -> None: method test_trailing_newlines_stripped_after_pem (line 73) | def test_trailing_newlines_stripped_after_pem(self) -> None: FILE: backend/tests/unit/ee/onyx/server/middleware/test_license_enforcement.py class TestPathAllowlist (line 37) | class TestPathAllowlist: method test_allowed_paths_are_allowed (line 45) | def test_allowed_paths_are_allowed(self, path: str) -> None: method test_allowed_path_prefix_matching (line 49) | def test_allowed_path_prefix_matching(self) -> None: method test_blocked_paths_are_blocked (line 55) | def test_blocked_paths_are_blocked(self, path: str) -> None: class TestEEOnlyPaths (line 60) | class TestEEOnlyPaths: method test_ee_only_paths_are_detected (line 68) | def test_ee_only_paths_are_detected(self, path: str) -> None: method test_community_paths_are_not_ee_only (line 81) | def test_community_paths_are_not_ee_only(self, path: str) -> None: class TestLicenseEnforcementMiddleware (line 86) | class TestLicenseEnforcementMiddleware: method middleware_harness (line 90) | def middleware_harness(self) -> MiddlewareHarness: method test_gated_access_status_gets_402 (line 127) | async def test_gated_access_status_gets_402( method test_grace_period_allows_access (line 153) | async def test_grace_period_allows_access( method test_no_license_blocks_ee_only_paths (line 185) | async def test_no_license_blocks_ee_only_paths( method test_no_license_allows_community_paths (line 216) | async def test_no_license_allows_community_paths( method test_redis_error_fails_open (line 243) | async def test_redis_error_fails_open( method test_disabled_enforcement_allows_all (line 267) | async def test_disabled_enforcement_allows_all( method test_seat_limit_exceeded_gets_402 (line 286) | async def test_seat_limit_exceeded_gets_402( FILE: backend/tests/unit/ee/onyx/server/settings/test_license_enforcement_settings.py function _pick (line 21) | def _pick(settings: Settings) -> dict: function base_settings (line 27) | def base_settings() -> Settings: class TestApplyLicenseStatusToSettings (line 36) | class TestApplyLicenseStatusToSettings: method test_enforcement_disabled_enables_ee_features (line 40) | def test_enforcement_disabled_enables_ee_features( method test_multi_tenant_enables_ee_features (line 57) | def test_multi_tenant_enables_ee_features(self, base_settings: Setting... method test_self_hosted_license_status_propagation (line 122) | def test_self_hosted_license_status_propagation( method test_seat_limit_exceeded_sets_status_and_counts (line 149) | def test_seat_limit_exceeded_sets_status_and_counts( method test_expired_license_takes_precedence_over_seat_limit (line 177) | def test_expired_license_takes_precedence_over_seat_limit( method test_no_license_with_ee_flag_gates_access (line 208) | def test_no_license_with_ee_flag_gates_access( method test_no_license_without_ee_flag_allows_community (line 237) | def test_no_license_without_ee_flag_allows_community( method test_redis_error_disables_ee_features (line 263) | def test_redis_error_disables_ee_features( class TestSettingsDefaults (line 284) | class TestSettingsDefaults: method test_default_ee_features_disabled (line 287) | def test_default_ee_features_disabled(self) -> None: FILE: backend/tests/unit/ee/onyx/server/tenants/test_billing_api.py class TestGetStripePublishableKey (line 14) | class TestGetStripePublishableKey: method setup_method (line 17) | def setup_method(self) -> None: method test_fetches_from_s3_when_no_override (line 29) | async def test_fetches_from_s3_when_no_override(self) -> None: method test_uses_env_var_override_when_set (line 50) | async def test_uses_env_var_override_when_set(self) -> None: method test_rejects_invalid_env_var_key_format (line 66) | async def test_rejects_invalid_env_var_key_format(self) -> None: method test_rejects_invalid_s3_key_format (line 83) | async def test_rejects_invalid_s3_key_format(self) -> None: method test_handles_s3_fetch_error (line 108) | async def test_handles_s3_fetch_error(self) -> None: method test_error_when_no_config (line 126) | async def test_error_when_no_config(self) -> None: method test_caches_key_after_first_fetch (line 142) | async def test_caches_key_after_first_fetch(self) -> None: FILE: backend/tests/unit/ee/onyx/server/tenants/test_product_gating.py class TestIsTenantGated (line 9) | class TestIsTenantGated: method test_tenant_gated_status (line 22) | def test_tenant_gated_status( class TestUpdateTenantGating (line 38) | class TestUpdateTenantGating: method test_gating_set_modification (line 49) | def test_gating_set_modification( FILE: backend/tests/unit/ee/onyx/server/tenants/test_proxy.py function make_license_payload (line 31) | def make_license_payload( class TestLicenseEnforcementCheck (line 53) | class TestLicenseEnforcementCheck: method test_raises_when_disabled (line 56) | def test_raises_when_disabled(self) -> None: method test_passes_when_enabled (line 65) | def test_passes_when_enabled(self) -> None: class TestExtractLicenseFromHeader (line 71) | class TestExtractLicenseFromHeader: method test_valid_bearer_token (line 74) | def test_valid_bearer_token(self) -> None: method test_bearer_with_spaces_in_token (line 79) | def test_bearer_with_spaces_in_token(self) -> None: method test_missing_header_required (line 84) | def test_missing_header_required(self) -> None: method test_missing_header_optional (line 90) | def test_missing_header_optional(self) -> None: method test_non_bearer_required (line 95) | def test_non_bearer_required(self) -> None: method test_non_bearer_optional (line 101) | def test_non_bearer_optional(self) -> None: method test_empty_string_required (line 106) | def test_empty_string_required(self) -> None: class TestVerifyLicenseAuth (line 113) | class TestVerifyLicenseAuth: method test_valid_license (line 116) | def test_valid_license(self) -> None: method test_invalid_signature (line 133) | def test_invalid_signature(self) -> None: method test_expired_license_rejected (line 149) | def test_expired_license_rejected(self) -> None: method test_expired_license_allowed (line 169) | def test_expired_license_allowed(self) -> None: method test_raises_501_when_enforcement_disabled (line 187) | def test_raises_501_when_enforcement_disabled(self) -> None: class TestGetLicensePayload (line 196) | class TestGetLicensePayload: method test_valid_license (line 200) | async def test_valid_license(self) -> None: method test_missing_auth_header (line 219) | async def test_missing_auth_header(self) -> None: method test_invalid_auth_format (line 231) | async def test_invalid_auth_format(self) -> None: class TestGetLicensePayloadAllowExpired (line 240) | class TestGetLicensePayloadAllowExpired: method test_expired_license_allowed (line 244) | async def test_expired_license_allowed(self) -> None: method test_missing_auth_header (line 261) | async def test_missing_auth_header(self) -> None: class TestGetOptionalLicensePayload (line 270) | class TestGetOptionalLicensePayload: method test_no_auth_returns_none (line 274) | async def test_no_auth_returns_none(self) -> None: method test_non_bearer_returns_none (line 281) | async def test_non_bearer_returns_none(self) -> None: method test_valid_license_returns_payload (line 288) | async def test_valid_license_returns_payload(self) -> None: method test_raises_501_when_enforcement_disabled (line 305) | async def test_raises_501_when_enforcement_disabled(self) -> None: class TestForwardToControlPlane (line 314) | class TestForwardToControlPlane: method test_successful_get_request (line 318) | async def test_successful_get_request(self) -> None: method test_successful_post_request (line 346) | async def test_successful_post_request(self) -> None: method test_http_error_with_detail (line 374) | async def test_http_error_with_detail(self) -> None: method test_connection_error (line 407) | async def test_connection_error(self) -> None: method test_follows_redirects (line 431) | async def test_follows_redirects(self) -> None: method test_unsupported_method (line 462) | async def test_unsupported_method(self) -> None: class TestProxyCheckoutSessionWithSeats (line 480) | class TestProxyCheckoutSessionWithSeats: method test_includes_seats_in_body_when_provided (line 484) | async def test_includes_seats_in_body_when_provided(self) -> None: method test_excludes_seats_when_not_provided (line 529) | async def test_excludes_seats_when_not_provided(self) -> None: method test_includes_seats_for_new_customer (line 568) | async def test_includes_seats_for_new_customer(self) -> None: FILE: backend/tests/unit/ee/onyx/server/tenants/test_schema_management.py class TestValidateTenantId (line 9) | class TestValidateTenantId: method test_valid_tenant_ids (line 26) | def test_valid_tenant_ids(self, tenant_id: str) -> None: method test_invalid_tenant_ids (line 52) | def test_invalid_tenant_ids(self, tenant_id: str, description: str) ->... method test_uuid_must_be_complete (line 56) | def test_uuid_must_be_complete(self) -> None: class TestDropSchemaValidation (line 69) | class TestDropSchemaValidation: method test_drop_schema_rejects_invalid_inputs (line 83) | def test_drop_schema_rejects_invalid_inputs( FILE: backend/tests/unit/ee/onyx/utils/test_encryption.py function _clear_key_cache (line 27) | def _clear_key_cache() -> None: class TestEncryptDecryptRoundTrip (line 31) | class TestEncryptDecryptRoundTrip: method test_roundtrip_with_env_key (line 32) | def test_roundtrip_with_env_key(self) -> None: method test_roundtrip_with_explicit_key (line 38) | def test_roundtrip_with_explicit_key(self) -> None: method test_roundtrip_no_key (line 43) | def test_roundtrip_no_key(self) -> None: method test_explicit_key_overrides_env (line 50) | def test_explicit_key_overrides_env(self) -> None: method test_different_encryptions_produce_different_bytes (line 57) | def test_different_encryptions_produce_different_bytes(self) -> None: method test_roundtrip_empty_string (line 63) | def test_roundtrip_empty_string(self) -> None: method test_roundtrip_unicode (line 68) | def test_roundtrip_unicode(self) -> None: class TestDecryptFallbackBehavior (line 74) | class TestDecryptFallbackBehavior: method test_wrong_env_key_falls_back_to_raw_decode (line 75) | def test_wrong_env_key_falls_back_to_raw_decode(self) -> None: method test_explicit_wrong_key_raises (line 81) | def test_explicit_wrong_key_raises(self) -> None: method test_explicit_none_key_with_no_env (line 87) | def test_explicit_none_key_with_no_env(self) -> None: method test_explicit_empty_string_key (line 92) | def test_explicit_empty_string_key(self) -> None: class TestKeyValidation (line 99) | class TestKeyValidation: method test_key_too_short_raises (line 100) | def test_key_too_short_raises(self) -> None: method test_16_byte_key (line 104) | def test_16_byte_key(self) -> None: method test_24_byte_key (line 108) | def test_24_byte_key(self) -> None: method test_32_byte_key (line 112) | def test_32_byte_key(self) -> None: method test_long_key_truncated_to_32 (line 116) | def test_long_key_truncated_to_32(self) -> None: method test_20_byte_key_trimmed_to_16 (line 122) | def test_20_byte_key_trimmed_to_16(self) -> None: method test_25_byte_key_trimmed_to_24 (line 133) | def test_25_byte_key_trimmed_to_24(self) -> None: method test_30_byte_key_trimmed_to_24 (line 142) | def test_30_byte_key_trimmed_to_24(self) -> None: class TestWrapperFunctions (line 152) | class TestWrapperFunctions: method test_wrapper_passes_key (line 158) | def test_wrapper_passes_key(self) -> None: method test_wrapper_no_key_uses_env (line 162) | def test_wrapper_no_key_uses_env(self) -> None: FILE: backend/tests/unit/ee/onyx/utils/test_license_utils.py function generate_test_key_pair (line 23) | def generate_test_key_pair() -> tuple[rsa.RSAPrivateKey, rsa.RSAPublicKey]: function create_signed_license (line 33) | def create_signed_license( class TestVerifyLicenseSignature (line 56) | class TestVerifyLicenseSignature: method test_valid_signature (line 59) | def test_valid_signature(self) -> None: method test_invalid_signature (line 82) | def test_invalid_signature(self) -> None: method test_tampered_payload (line 106) | def test_tampered_payload(self) -> None: method test_invalid_base64 (line 146) | def test_invalid_base64(self) -> None: method test_invalid_json (line 151) | def test_invalid_json(self) -> None: class TestGetLicenseStatus (line 158) | class TestGetLicenseStatus: method test_active_license (line 161) | def test_active_license(self) -> None: method test_expired_license_no_grace (line 175) | def test_expired_license_no_grace(self) -> None: method test_expired_license_within_grace (line 189) | def test_expired_license_within_grace(self) -> None: method test_grace_period_expired (line 204) | def test_grace_period_expired(self) -> None: class TestIsLicenseValid (line 220) | class TestIsLicenseValid: method test_valid_license (line 223) | def test_valid_license(self) -> None: method test_expired_license (line 236) | def test_expired_license(self) -> None: FILE: backend/tests/unit/federated_connector/slack/test_slack_federated_connnector.py class TestSlackFederatedConnector (line 30) | class TestSlackFederatedConnector: method test_credentials (line 34) | def test_credentials(self) -> dict[str, str]: method slack_connector (line 43) | def slack_connector( method mock_slack_oauth_response (line 50) | def mock_slack_oauth_response(self) -> dict[str, Any]: method test_callback_success (line 68) | def test_callback_success( method test_callback_oauth_error (line 122) | def test_callback_oauth_error( method test_callback_missing_code (line 135) | def test_callback_missing_code( method test_callback_slack_api_error (line 145) | def test_callback_slack_api_error( method test_callback_without_authed_user (line 168) | def test_callback_without_authed_user( method test_callback_with_incomplete_authed_user (line 190) | def test_callback_with_incomplete_authed_user( class TestSlackEntitiesValidation (line 222) | class TestSlackEntitiesValidation: method test_default_values (line 225) | def test_default_values(self) -> None: method test_search_all_channels_true (line 237) | def test_search_all_channels_true(self) -> None: method test_search_all_channels_false_with_channels (line 248) | def test_search_all_channels_false_with_channels(self) -> None: method test_search_all_channels_false_without_channels (line 257) | def test_search_all_channels_false_without_channels(self) -> None: method test_channels_validation (line 271) | def test_channels_validation(self) -> None: method test_exclude_channels_validation (line 292) | def test_exclude_channels_validation(self) -> None: method test_exclude_channels_with_specific_channels (line 311) | def test_exclude_channels_with_specific_channels(self) -> None: method test_direct_message_filtering (line 324) | def test_direct_message_filtering(self) -> None: method test_private_channel_filtering (line 341) | def test_private_channel_filtering(self) -> None: method test_default_search_days_validation (line 347) | def test_default_search_days_validation(self) -> None: method test_complex_configuration (line 381) | def test_complex_configuration(self) -> None: method test_validate_entities_method (line 399) | def test_validate_entities_method(self) -> None: FILE: backend/tests/unit/file_store/test_file_store.py class DBBaseTest (line 26) | class DBBaseTest(DeclarativeBase): class FileRecord (line 30) | class FileRecord(DBBaseTest): function db_session (line 56) | def db_session() -> Generator[Session, None, None]: function sample_content (line 67) | def sample_content() -> bytes: function sample_file_io (line 73) | def sample_file_io(sample_content: bytes) -> BytesIO: class TestExternalStorageFileStore (line 78) | class TestExternalStorageFileStore: method test_get_default_file_store_s3 (line 81) | def test_get_default_file_store_s3(self) -> None: method test_s3_client_initialization_with_credentials (line 87) | def test_s3_client_initialization_with_credentials(self) -> None: method test_s3_client_initialization_with_iam_role (line 108) | def test_s3_client_initialization_with_iam_role( method test_s3_bucket_name_configuration (line 133) | def test_s3_bucket_name_configuration(self) -> None: method test_s3_key_generation_default_prefix (line 142) | def test_s3_key_generation_default_prefix(self) -> None: method test_s3_key_generation_custom_prefix (line 155) | def test_s3_key_generation_custom_prefix(self) -> None: method test_s3_key_generation_with_different_tenant_ids (line 170) | def test_s3_key_generation_with_different_tenant_ids(self) -> None: method test_s3_save_file_mock (line 200) | def test_s3_save_file_mock( method test_minio_client_initialization (line 247) | def test_minio_client_initialization(self) -> None: method test_minio_ssl_verification_enabled (line 279) | def test_minio_ssl_verification_enabled(self) -> None: method test_aws_s3_without_endpoint_url (line 296) | def test_aws_s3_without_endpoint_url(self) -> None: class TestFileStoreInterface (line 318) | class TestFileStoreInterface: method test_file_store_s3_when_configured (line 321) | def test_file_store_s3_when_configured(self) -> None: method test_file_store_postgres_when_configured (line 327) | def test_file_store_postgres_when_configured(self) -> None: method test_file_store_defaults_to_s3 (line 335) | def test_file_store_defaults_to_s3(self) -> None: FILE: backend/tests/unit/file_store/test_postgres_file_store.py function store (line 21) | def store() -> PostgresBackedFileStore: function _make_session_ctx (line 25) | def _make_session_ctx( function _mock_lobject (line 38) | def _mock_lobject(oid: int = 42, data: bytes = b"hello") -> MagicMock: class TestInitialize (line 49) | class TestInitialize: method test_initialize_is_noop (line 50) | def test_initialize_is_noop(self, store: PostgresBackedFileStore) -> N... class TestSaveFile (line 55) | class TestSaveFile: method test_save_bytes_content (line 59) | def test_save_bytes_content( method test_save_string_io_content (line 107) | def test_save_string_io_content( method test_save_rolls_back_on_error (line 141) | def test_save_rolls_back_on_error( class TestReadFile (line 164) | class TestReadFile: method test_read_file_in_memory (line 168) | def test_read_file_in_memory( class TestDeleteFile (line 193) | class TestDeleteFile: method test_delete_removes_lobject_and_records (line 197) | def test_delete_removes_lobject_and_records( class TestGetFileSize (line 233) | class TestGetFileSize: method test_returns_stored_size (line 237) | def test_returns_stored_size( method test_returns_none_on_error (line 259) | def test_returns_none_on_error( class TestChangeFileId (line 276) | class TestChangeFileId: method test_reuses_same_lobject (line 280) | def test_reuses_same_lobject( class TestHasFile (line 322) | class TestHasFile: method test_returns_true_when_present (line 326) | def test_returns_true_when_present( method test_returns_false_when_absent (line 349) | def test_returns_false_when_absent( class TestReadContentBytes (line 366) | class TestReadContentBytes: method test_bytes_passthrough (line 367) | def test_bytes_passthrough(self) -> None: method test_string_encoded_to_utf8 (line 371) | def test_string_encoded_to_utf8(self) -> None: FILE: backend/tests/unit/model_server/test_embedding.py function test_embed_text_no_model_name (line 17) | async def test_embed_text_no_model_name() -> None: function test_embed_text_local_model (line 33) | async def test_embed_text_local_model() -> None: function test_concurrent_embeddings (line 52) | async def test_concurrent_embeddings() -> None: FILE: backend/tests/unit/onyx/access/test_user_file_access.py function _make_user (line 13) | def _make_user(email: str) -> MagicMock: function _make_persona (line 20) | def _make_persona( function _make_user_file (line 36) | def _make_user_file( class TestCollectUserFileAccess (line 49) | class TestCollectUserFileAccess: method test_owner_only (line 50) | def test_owner_only(self) -> None: method test_shared_persona_adds_users (line 59) | def test_shared_persona_adds_users(self) -> None: method test_persona_owner_added (line 70) | def test_persona_owner_added(self) -> None: method test_public_persona_makes_file_public (line 82) | def test_public_persona_makes_file_public(self) -> None: method test_deleted_persona_ignored (line 92) | def test_deleted_persona_ignored(self) -> None: method test_multiple_personas_combine (line 103) | def test_multiple_personas_combine(self) -> None: method test_deduplication (line 115) | def test_deduplication(self) -> None: class TestGetAccessForUserFiles (line 127) | class TestGetAccessForUserFiles: method test_shared_user_in_acl (line 128) | def test_shared_user_in_acl(self) -> None: method test_public_persona_sets_public_acl (line 148) | def test_public_persona_sets_public_acl(self) -> None: FILE: backend/tests/unit/onyx/auth/conftest.py function mock_user (line 11) | def mock_user() -> MagicMock: function mock_oauth_account (line 20) | def mock_oauth_account() -> MagicMock: function mock_user_manager (line 31) | def mock_user_manager() -> MagicMock: function mock_db_session (line 41) | def mock_db_session() -> MagicMock: FILE: backend/tests/unit/onyx/auth/test_disposable_email_validator.py class TestDisposableEmailValidator (line 9) | class TestDisposableEmailValidator: method test_singleton_pattern (line 12) | def test_singleton_pattern(self) -> None: method test_fallback_domains_included (line 18) | def test_fallback_domains_included(self) -> None: method test_is_disposable_trashlify (line 32) | def test_is_disposable_trashlify(self) -> None: method test_is_disposable_other_known_domains (line 38) | def test_is_disposable_other_known_domains(self) -> None: method test_is_not_disposable_legitimate_domains (line 52) | def test_is_not_disposable_legitimate_domains(self) -> None: method test_case_insensitive (line 68) | def test_case_insensitive(self) -> None: method test_invalid_email_formats (line 74) | def test_invalid_email_formats(self) -> None: method test_email_with_subdomains (line 82) | def test_email_with_subdomains(self) -> None: method test_validator_instance_methods (line 88) | def test_validator_instance_methods(self) -> None: FILE: backend/tests/unit/onyx/auth/test_email.py function test_send_user_email_invite (line 14) | def test_send_user_email_invite() -> None: FILE: backend/tests/unit/onyx/auth/test_is_same_origin.py class TestExactMatch (line 6) | class TestExactMatch: method test_identical_origins (line 18) | def test_identical_origins(self, origin: str) -> None: class TestLoopbackPortRelaxation (line 22) | class TestLoopbackPortRelaxation: method test_loopback_different_ports_accepted (line 35) | def test_loopback_different_ports_accepted( method test_loopback_different_scheme_rejected (line 47) | def test_loopback_different_scheme_rejected( method test_loopback_hostname_mismatch_rejected (line 52) | def test_loopback_hostname_mismatch_rejected(self) -> None: class TestNonLoopbackStrictPort (line 56) | class TestNonLoopbackStrictPort: method test_different_port_rejected (line 59) | def test_different_port_rejected(self) -> None: method test_different_hostname_rejected (line 64) | def test_different_hostname_rejected(self) -> None: method test_different_scheme_rejected (line 67) | def test_different_scheme_rejected(self) -> None: method test_same_port_explicit (line 70) | def test_same_port_explicit(self) -> None: class TestDefaultPortNormalization (line 76) | class TestDefaultPortNormalization: method test_http_implicit_vs_explicit_80 (line 79) | def test_http_implicit_vs_explicit_80(self) -> None: method test_http_explicit_80_vs_implicit (line 82) | def test_http_explicit_80_vs_implicit(self) -> None: method test_https_implicit_vs_explicit_443 (line 85) | def test_https_implicit_vs_explicit_443(self) -> None: method test_https_explicit_443_vs_implicit (line 88) | def test_https_explicit_443_vs_implicit(self) -> None: method test_http_non_default_port_vs_implicit_rejected (line 91) | def test_http_non_default_port_vs_implicit_rejected(self) -> None: class TestTrailingSlash (line 95) | class TestTrailingSlash: method test_trailing_slash_on_actual (line 98) | def test_trailing_slash_on_actual(self) -> None: method test_trailing_slash_on_expected (line 101) | def test_trailing_slash_on_expected(self) -> None: method test_trailing_slash_on_both (line 104) | def test_trailing_slash_on_both(self) -> None: class TestCSWSHScenarios (line 108) | class TestCSWSHScenarios: method test_remote_attacker_rejected (line 111) | def test_remote_attacker_rejected(self) -> None: method test_remote_attacker_same_port_rejected (line 114) | def test_remote_attacker_same_port_rejected(self) -> None: method test_remote_attacker_matching_hostname_different_port (line 117) | def test_remote_attacker_matching_hostname_different_port(self) -> None: FILE: backend/tests/unit/onyx/auth/test_jwt_provisioning.py function test_extract_email_requires_valid_format (line 12) | def test_extract_email_requires_valid_format() -> None: function test_get_or_create_user_updates_expiry (line 22) | async def test_get_or_create_user_updates_expiry( function test_get_or_create_user_skips_inactive (line 83) | async def test_get_or_create_user_skips_inactive( function test_get_or_create_user_handles_race_conditions (line 123) | async def test_get_or_create_user_handles_race_conditions( function test_get_or_create_user_provisions_new_user (line 171) | async def test_get_or_create_user_provisions_new_user( function test_get_or_create_user_requires_email_claim (line 223) | async def test_get_or_create_user_requires_email_claim() -> None: FILE: backend/tests/unit/onyx/auth/test_oauth_refresher.py function test_refresh_oauth_token_success (line 19) | async def test_refresh_oauth_token_success( function test_refresh_oauth_token_failure (line 69) | async def test_refresh_oauth_token_failure( function test_refresh_oauth_token_no_refresh_token (line 106) | async def test_refresh_oauth_token_no_refresh_token( function test_check_and_refresh_oauth_tokens (line 127) | async def test_check_and_refresh_oauth_tokens( function test_get_oauth_accounts_requiring_refresh_token (line 177) | async def test_get_oauth_accounts_requiring_refresh_token(mock_user: Mag... function test_check_oauth_account_has_refresh_token (line 214) | async def test_check_oauth_account_has_refresh_token( function test_expire_oauth_token (line 241) | async def test_expire_oauth_token( FILE: backend/tests/unit/onyx/auth/test_oidc_pkce.py class _StubOAuthClient (line 27) | class _StubOAuthClient: method __init__ (line 28) | def __init__(self) -> None: method get_authorization_url (line 33) | async def get_authorization_url( method get_access_token (line 52) | async def get_access_token( method get_id_email (line 68) | async def get_id_email(self, _access_token: str) -> tuple[str, str | N... function _build_test_client (line 72) | def _build_test_client( function _extract_state_from_authorize_response (line 121) | def _extract_state_from_authorize_response(response: Any) -> str: function test_oidc_authorize_omits_pkce_when_flag_disabled (line 126) | def test_oidc_authorize_omits_pkce_when_flag_disabled() -> None: function test_oidc_authorize_adds_pkce_when_flag_enabled (line 140) | def test_oidc_authorize_adds_pkce_when_flag_enabled() -> None: function test_oidc_callback_fails_when_pkce_cookie_missing (line 153) | def test_oidc_callback_fails_when_pkce_cookie_missing() -> None: function test_oidc_callback_rejects_bad_state_before_token_exchange (line 172) | def test_oidc_callback_rejects_bad_state_before_token_exchange() -> None: function test_oidc_callback_rejects_wrongly_signed_state_before_token_exchange (line 188) | def test_oidc_callback_rejects_wrongly_signed_state_before_token_exchang... function test_oidc_callback_rejects_csrf_mismatch_in_pkce_path (line 215) | def test_oidc_callback_rejects_csrf_mismatch_in_pkce_path() -> None: function test_oidc_callback_get_access_token_error_is_400 (line 234) | def test_oidc_callback_get_access_token_error_is_400() -> None: function test_oidc_callback_cleans_pkce_cookie_on_idp_error_with_state (line 253) | def test_oidc_callback_cleans_pkce_cookie_on_idp_error_with_state() -> N... function test_oidc_callback_cleans_pkce_cookie_on_missing_email (line 270) | def test_oidc_callback_cleans_pkce_cookie_on_missing_email() -> None: function test_oidc_callback_rejects_wrong_audience_state_before_token_exchange (line 287) | def test_oidc_callback_rejects_wrong_audience_state_before_token_exchang... function test_oidc_callback_uses_code_verifier_when_pkce_enabled (line 314) | def test_oidc_callback_uses_code_verifier_when_pkce_enabled() -> None: function test_oidc_callback_works_without_pkce_when_flag_disabled (line 336) | def test_oidc_callback_works_without_pkce_when_flag_disabled() -> None: function test_oidc_callback_pkce_preserves_redirect_when_backend_login_is_non_redirect (line 356) | def test_oidc_callback_pkce_preserves_redirect_when_backend_login_is_non... function test_oidc_callback_non_pkce_rejects_csrf_mismatch (line 383) | def test_oidc_callback_non_pkce_rejects_csrf_mismatch() -> None: FILE: backend/tests/unit/onyx/auth/test_permissions.py class TestResolveEffectivePermissions (line 23) | class TestResolveEffectivePermissions: method test_empty_set (line 24) | def test_empty_set(self) -> None: method test_basic_no_implications (line 27) | def test_basic_no_implications(self) -> None: method test_single_implication (line 31) | def test_single_implication(self) -> None: method test_manage_agents_implies_add_and_read (line 35) | def test_manage_agents_implies_add_and_read(self) -> None: method test_manage_connectors_chain (line 40) | def test_manage_connectors_chain(self) -> None: method test_manage_document_sets (line 44) | def test_manage_document_sets(self) -> None: method test_manage_user_groups_implies_all_reads (line 52) | def test_manage_user_groups_implies_all_reads(self) -> None: method test_admin_override (line 62) | def test_admin_override(self) -> None: method test_admin_with_others (line 66) | def test_admin_with_others(self) -> None: method test_multi_group_union (line 70) | def test_multi_group_union(self) -> None: method test_toggle_permission_no_implications (line 83) | def test_toggle_permission_no_implications(self) -> None: method test_all_permissions_for_admin (line 87) | def test_all_permissions_for_admin(self) -> None: class TestGetEffectivePermissions (line 97) | class TestGetEffectivePermissions: method test_expands_implied_permissions (line 98) | def test_expands_implied_permissions(self) -> None: method test_admin_expands_to_all (line 105) | def test_admin_expands_to_all(self) -> None: method test_basic_stays_basic (line 111) | def test_basic_stays_basic(self) -> None: method test_empty_column (line 117) | def test_empty_column(self) -> None: class TestRequirePermission (line 129) | class TestRequirePermission: method test_admin_bypass (line 131) | async def test_admin_bypass(self) -> None: method test_has_required_permission (line 141) | async def test_has_required_permission(self) -> None: method test_implied_permission_passes (line 150) | async def test_implied_permission_passes(self) -> None: method test_missing_permission_raises (line 160) | async def test_missing_permission_raises(self) -> None: method test_empty_permissions_fails (line 170) | async def test_empty_permissions_fails(self) -> None: FILE: backend/tests/unit/onyx/auth/test_single_tenant_jwt_strategy.py function _make_strategy (line 17) | def _make_strategy( function _make_user (line 26) | def _make_user(user_id: uuid.UUID | None = None) -> MagicMock: function _make_user_manager (line 33) | def _make_user_manager(user: MagicMock) -> MagicMock: function test_write_token_produces_valid_jwt (line 41) | async def test_write_token_produces_valid_jwt() -> None: function test_write_token_iat_is_accurate (line 57) | async def test_write_token_iat_is_accurate() -> None: function test_read_token_returns_user (line 73) | async def test_read_token_returns_user() -> None: function test_read_token_returns_none_for_none (line 88) | async def test_read_token_returns_none_for_none() -> None: function test_read_token_returns_none_for_bad_signature (line 98) | async def test_read_token_returns_none_for_bad_signature() -> None: function test_read_token_returns_none_for_expired_token (line 112) | async def test_read_token_returns_none_for_expired_token() -> None: function test_destroy_token_is_noop (line 132) | async def test_destroy_token_is_noop() -> None: function test_refresh_token_returns_new_jwt (line 143) | async def test_refresh_token_returns_new_jwt() -> None: function test_refresh_token_with_none_creates_new (line 165) | async def test_refresh_token_with_none_creates_new() -> None: function test_write_token_no_lifetime_omits_exp (line 179) | async def test_write_token_no_lifetime_omits_exp() -> None: FILE: backend/tests/unit/onyx/auth/test_user_create_schema.py function test_create_update_dict_includes_default_account_type (line 12) | def test_create_update_dict_includes_default_account_type() -> None: function test_create_update_dict_includes_explicit_account_type (line 18) | def test_create_update_dict_includes_explicit_account_type() -> None: function test_create_update_dict_superuser_includes_account_type (line 26) | def test_create_update_dict_superuser_includes_account_type() -> None: FILE: backend/tests/unit/onyx/auth/test_user_default_pins.py function _build_db_session (line 10) | def _build_db_session(return_ids: list[int]) -> MagicMock: function test_assign_default_pinned_assistants_populates_ids (line 22) | async def test_assign_default_pinned_assistants_populates_ids( function test_assign_default_pinned_assistants_skips_when_no_defaults (line 45) | async def test_assign_default_pinned_assistants_skips_when_no_defaults( function test_assign_default_pinned_assistants_noop_if_already_set (line 64) | async def test_assign_default_pinned_assistants_noop_if_already_set( FILE: backend/tests/unit/onyx/auth/test_user_registration.py function mock_user_create (line 29) | def mock_user_create() -> UserCreate: function mock_async_session (line 39) | def mock_async_session() -> MagicMock: class _AsyncSessionContextManager (line 49) | class _AsyncSessionContextManager: method __init__ (line 50) | def __init__(self, session: MagicMock) -> None: method __aenter__ (line 53) | async def __aenter__(self) -> MagicMock: method __aexit__ (line 56) | async def __aexit__( function _mock_user_manager_methods (line 65) | def _mock_user_manager_methods(user_manager: UserManager) -> None: class TestDisposableEmailValidation (line 70) | class TestDisposableEmailValidation: method test_blocks_disposable_email_before_tenant_provision (line 78) | async def test_blocks_disposable_email_before_tenant_provision( method test_allows_valid_email_domain (line 107) | async def test_allows_valid_email_domain( class TestMultiTenantInviteLogic (line 146) | class TestMultiTenantInviteLogic: method test_first_user_no_invite_required (line 159) | async def test_first_user_no_invite_required( method test_subsequent_user_requires_invite (line 207) | async def test_subsequent_user_requires_invite( class TestSingleTenantInviteLogic (line 246) | class TestSingleTenantInviteLogic: method test_always_checks_invite_list (line 258) | async def test_always_checks_invite_list( class TestSAMLOIDCBehavior (line 296) | class TestSAMLOIDCBehavior: method test_sso_bypasses_whitelist (line 303) | def test_sso_bypasses_whitelist( method test_basic_auth_enforces_whitelist (line 324) | def test_basic_auth_enforces_whitelist( class TestWhitelistBehavior (line 341) | class TestWhitelistBehavior: method test_empty_whitelist_allows_all (line 347) | def test_empty_whitelist_allows_all( method test_invite_only_disabled_allows_non_invited_users (line 364) | def test_invite_only_disabled_allows_non_invited_users( method test_whitelist_blocks_non_invited (line 378) | def test_whitelist_blocks_non_invited( method test_whitelist_allows_invited_case_insensitive (line 398) | def test_whitelist_allows_invited_case_insensitive( class TestSeatLimitEnforcement (line 414) | class TestSeatLimitEnforcement: method test_adding_user_fails_when_seats_full (line 417) | def test_adding_user_fails_when_seats_full(self) -> None: method test_seat_limit_only_enforced_for_self_hosted (line 430) | def test_seat_limit_only_enforced_for_self_hosted(self) -> None: class TestCaseInsensitiveEmailMatching (line 437) | class TestCaseInsensitiveEmailMatching: method test_existing_user_check_case_insensitive (line 449) | async def test_existing_user_check_case_insensitive( method test_full_registration_flow_existing_tenant (line 509) | async def test_full_registration_flow_existing_tenant( FILE: backend/tests/unit/onyx/auth/test_verify_auth_setting.py function test_verify_auth_setting_raises_for_cloud (line 10) | def test_verify_auth_setting_raises_for_cloud( function test_verify_auth_setting_warns_for_disabled (line 20) | def test_verify_auth_setting_warns_for_disabled( function test_verify_auth_setting_valid_auth_types (line 40) | def test_verify_auth_setting_valid_auth_types( FILE: backend/tests/unit/onyx/auth/test_verify_email_domain.py function test_verify_email_domain_allows_case_insensitive_match (line 9) | def test_verify_email_domain_allows_case_insensitive_match( function test_verify_email_domain_rejects_non_whitelisted_domain (line 19) | def test_verify_email_domain_rejects_non_whitelisted_domain( function test_verify_email_domain_invalid_email_format (line 30) | def test_verify_email_domain_invalid_email_format( function test_verify_email_domain_rejects_plus_addressing (line 41) | def test_verify_email_domain_rejects_plus_addressing( function test_verify_email_domain_allows_plus_for_onyx_app (line 53) | def test_verify_email_domain_allows_plus_for_onyx_app( function test_verify_email_domain_rejects_dotted_gmail_on_registration (line 63) | def test_verify_email_domain_rejects_dotted_gmail_on_registration( function test_verify_email_domain_dotted_gmail_allowed_when_not_registration (line 75) | def test_verify_email_domain_dotted_gmail_allowed_when_not_registration( function test_verify_email_domain_allows_dotted_non_gmail_on_registration (line 85) | def test_verify_email_domain_allows_dotted_non_gmail_on_registration( function test_verify_email_domain_dotted_gmail_allowed_when_not_cloud (line 94) | def test_verify_email_domain_dotted_gmail_allowed_when_not_cloud( function test_verify_email_domain_rejects_googlemail (line 103) | def test_verify_email_domain_rejects_googlemail( FILE: backend/tests/unit/onyx/auth/test_verify_email_invite.py function test_verify_email_is_invited_skips_whitelist_for_sso (line 10) | def test_verify_email_is_invited_skips_whitelist_for_sso( function test_verify_email_is_invited_enforced_for_basic_auth (line 26) | def test_verify_email_is_invited_enforced_for_basic_auth( function test_verify_email_is_invited_skipped_when_invite_only_disabled (line 43) | def test_verify_email_is_invited_skipped_when_invite_only_disabled( FILE: backend/tests/unit/onyx/background/celery/tasks/tenant_provisioning/test_check_available_tenants.py function _enable_multi_tenant (line 29) | def _enable_multi_tenant(monkeypatch: pytest.MonkeyPatch) -> None: function mock_redis (line 37) | def mock_redis(monkeypatch: pytest.MonkeyPatch) -> MagicMock: function mock_pre_provision (line 52) | def mock_pre_provision(monkeypatch: pytest.MonkeyPatch) -> MagicMock: function _mock_available_count (line 61) | def _mock_available_count(monkeypatch: pytest.MonkeyPatch, count: int) -... class TestCheckAvailableTenants (line 75) | class TestCheckAvailableTenants: method test_provisions_all_needed_tenants (line 76) | def test_provisions_all_needed_tenants( method test_batch_capped_at_max_per_run (line 92) | def test_batch_capped_at_max_per_run( method test_no_provisioning_when_pool_full (line 108) | def test_no_provisioning_when_pool_full( method test_no_provisioning_when_pool_exceeds_target (line 124) | def test_no_provisioning_when_pool_exceeds_target( method test_failure_does_not_stop_remaining (line 140) | def test_failure_does_not_stop_remaining( method test_skips_when_not_multi_tenant (line 169) | def test_skips_when_not_multi_tenant( method test_skips_when_lock_not_acquired (line 184) | def test_skips_when_lock_not_acquired( method test_lock_release_failure_does_not_raise (line 196) | def test_lock_release_failure_does_not_raise( FILE: backend/tests/unit/onyx/background/celery/tasks/test_hierarchyfetching_queue.py class _NonHierarchyConnector (line 19) | class _NonHierarchyConnector(BaseConnector): method load_credentials (line 20) | def load_credentials(self, credentials: dict) -> dict | None: # noqa:... class _HierarchyCapableConnector (line 24) | class _HierarchyCapableConnector(HierarchyConnector): method load_credentials (line 25) | def load_credentials(self, credentials: dict) -> dict | None: # noqa:... method load_hierarchy (line 28) | def load_hierarchy( function _build_cc_pair_mock (line 37) | def _build_cc_pair_mock() -> MagicMock: function _build_redis_mock_with_lock (line 44) | def _build_redis_mock_with_lock() -> tuple[MagicMock, MagicMock]: function test_connector_supports_hierarchy_fetching_false_for_non_hierarchy_connector (line 54) | def test_connector_supports_hierarchy_fetching_false_for_non_hierarchy_c... function test_connector_supports_hierarchy_fetching_false_when_class_missing (line 65) | def test_connector_supports_hierarchy_fetching_false_when_class_missing( function test_connector_supports_hierarchy_fetching_true_for_supported_connector (line 76) | def test_connector_supports_hierarchy_fetching_true_for_supported_connec... function test_check_for_hierarchy_fetching_skips_unsupported_connectors (line 92) | def test_check_for_hierarchy_fetching_skips_unsupported_connectors( function test_check_for_hierarchy_fetching_creates_task_for_supported_due_connector (line 126) | def test_check_for_hierarchy_fetching_creates_task_for_supported_due_con... function test_check_for_hierarchy_fetching_skips_supported_connector_when_not_due (line 169) | def test_check_for_hierarchy_fetching_skips_supported_connector_when_not... FILE: backend/tests/unit/onyx/background/celery/tasks/test_user_file_impl_redis_locking.py function _mock_session_returning_none (line 26) | def _mock_session_returning_none() -> MagicMock: class TestProcessUserFileImpl (line 38) | class TestProcessUserFileImpl: method test_redis_locking_true_acquires_and_releases_lock (line 41) | def test_redis_locking_true_acquires_and_releases_lock( method test_redis_locking_true_skips_when_lock_held (line 70) | def test_redis_locking_true_skips_when_lock_held( method test_redis_locking_false_skips_redis_entirely (line 92) | def test_redis_locking_false_skips_redis_entirely( method test_both_paths_call_db_get (line 111) | def test_both_paths_call_db_get( class TestDeleteUserFileImpl (line 147) | class TestDeleteUserFileImpl: method test_redis_locking_true_acquires_and_releases_lock (line 150) | def test_redis_locking_true_acquires_and_releases_lock( method test_redis_locking_true_skips_when_lock_held (line 177) | def test_redis_locking_true_skips_when_lock_held( method test_redis_locking_false_skips_redis_entirely (line 199) | def test_redis_locking_false_skips_redis_entirely( class TestProjectSyncUserFileImpl (line 226) | class TestProjectSyncUserFileImpl: method test_redis_locking_true_acquires_and_releases_lock (line 229) | def test_redis_locking_true_acquires_and_releases_lock( method test_redis_locking_true_skips_when_lock_held (line 258) | def test_redis_locking_true_skips_when_lock_held( method test_redis_locking_false_skips_redis_entirely (line 281) | def test_redis_locking_false_skips_redis_entirely( FILE: backend/tests/unit/onyx/background/celery/tasks/test_user_file_processing_no_vectordb.py function _make_documents (line 36) | def _make_documents(texts: list[str]) -> list[Document]: function _make_user_file (line 50) | def _make_user_file( class TestProcessUserFileWithoutVectorDb (line 77) | class TestProcessUserFileWithoutVectorDb: method test_extracts_and_combines_text (line 81) | def test_extracts_and_combines_text( method test_computes_token_count (line 103) | def test_computes_token_count( method test_token_count_falls_back_to_none_on_error (line 123) | def test_token_count_falls_back_to_none_on_error( method test_stores_plaintext (line 142) | def test_stores_plaintext( method test_sets_completed_status_and_zero_chunk_count (line 164) | def test_sets_completed_status_and_zero_chunk_count( method test_preserves_deleting_status (line 187) | def test_preserves_deleting_status( class TestProcessImplBranching (line 210) | class TestProcessImplBranching: method test_calls_without_vector_db_when_disabled (line 215) | def test_calls_without_vector_db_when_disabled( method test_calls_with_indexing_when_vector_db_enabled (line 243) | def test_calls_with_indexing_when_vector_db_enabled( method test_indexing_pipeline_not_called_when_disabled (line 271) | def test_indexing_pipeline_not_called_when_disabled( class TestDeleteImplNoVectorDb (line 308) | class TestDeleteImplNoVectorDb: method test_skips_vector_db_deletion (line 312) | def test_skips_vector_db_deletion( method test_still_deletes_file_store_and_db_record (line 344) | def test_still_deletes_file_store_and_db_record( class TestProjectSyncImplNoVectorDb (line 373) | class TestProjectSyncImplNoVectorDb: method test_skips_vector_db_update (line 376) | def test_skips_vector_db_update( method test_still_clears_sync_flags (line 405) | def test_still_clears_sync_flags( FILE: backend/tests/unit/onyx/background/celery/tasks/test_user_file_project_sync_queue.py function _build_redis_mock_with_lock (line 26) | def _build_redis_mock_with_lock() -> tuple[MagicMock, MagicMock]: function test_check_for_user_file_project_sync_applies_queue_backpressure (line 39) | def test_check_for_user_file_project_sync_applies_queue_backpressure( function test_check_for_user_file_project_sync_skips_duplicates (line 65) | def test_check_for_user_file_project_sync_skips_duplicates( function test_enqueue_user_file_project_sync_task_sets_guard_and_expiry (line 94) | def test_enqueue_user_file_project_sync_task_sets_guard_and_expiry() -> ... function test_enqueue_user_file_project_sync_task_rolls_back_guard_on_publish_failure (line 124) | def test_enqueue_user_file_project_sync_task_rolls_back_guard_on_publish... function test_process_single_user_file_project_sync_clears_queued_guard_on_pickup (line 147) | def test_process_single_user_file_project_sync_clears_queued_guard_on_pi... FILE: backend/tests/unit/onyx/background/celery/test_celery_redis.py function reset_singleton (line 13) | def reset_singleton() -> Iterator[None]: function _make_mock_app (line 22) | def _make_mock_app(broker_url: str = "redis://localhost:6379/15") -> Mag... class TestCeleryGetBrokerClient (line 28) | class TestCeleryGetBrokerClient: method test_creates_client_on_first_call (line 30) | def test_creates_client_on_first_call(self, mock_redis_cls: MagicMock)... method test_reuses_cached_client (line 45) | def test_reuses_cached_client(self, mock_redis_cls: MagicMock) -> None: method test_reconnects_on_ping_failure (line 59) | def test_reconnects_on_ping_failure(self, mock_redis_cls: MagicMock) -... method test_uses_broker_url_from_app_config (line 80) | def test_uses_broker_url_from_app_config(self, mock_redis_cls: MagicMo... FILE: backend/tests/unit/onyx/chat/test_argument_delta_streaming.py function _make_tool_call_delta (line 11) | def _make_tool_call_delta( function _make_placement (line 29) | def _make_placement() -> Placement: function _mock_tool_class (line 33) | def _mock_tool_class(emit: bool = True) -> MagicMock: function _collect (line 39) | def _collect( function _stream_fragments (line 56) | def _stream_fragments( class TestMaybeEmitArgumentDeltaGuards (line 77) | class TestMaybeEmitArgumentDeltaGuards: method test_no_emission_when_tool_does_not_opt_in (line 81) | def test_no_emission_when_tool_does_not_opt_in( method test_no_emission_when_tool_class_unknown (line 93) | def test_no_emission_when_tool_class_unknown( method test_no_emission_when_no_argument_fragment (line 104) | def test_no_emission_when_no_argument_fragment( method test_no_emission_when_key_value_not_started (line 115) | def test_no_emission_when_key_value_not_started( method test_no_emission_before_any_key (line 127) | def test_no_emission_before_any_key(self, mock_get_tool: MagicMock) ->... class TestMaybeEmitArgumentDeltaBasic (line 137) | class TestMaybeEmitArgumentDeltaBasic: method test_emits_packet_with_correct_fields (line 141) | def test_emits_packet_with_correct_fields(self, mock_get_tool: MagicMo... method test_emits_only_new_content_on_subsequent_call (line 173) | def test_emits_only_new_content_on_subsequent_call( method test_handles_multiple_keys_sequentially (line 208) | def test_handles_multiple_keys_sequentially(self, mock_get_tool: Magic... method test_delta_spans_key_boundary (line 227) | def test_delta_spans_key_boundary(self, mock_get_tool: MagicMock) -> N... method test_empty_value_emits_nothing (line 246) | def test_empty_value_emits_nothing(self, mock_get_tool: MagicMock) -> ... class TestMaybeEmitArgumentDeltaDecoding (line 262) | class TestMaybeEmitArgumentDeltaDecoding: method test_decodes_newlines (line 266) | def test_decodes_newlines(self, mock_get_tool: MagicMock) -> None: method test_decodes_tabs (line 278) | def test_decodes_tabs(self, mock_get_tool: MagicMock) -> None: method test_decodes_escaped_quotes (line 290) | def test_decodes_escaped_quotes(self, mock_get_tool: MagicMock) -> None: method test_decodes_escaped_backslashes (line 302) | def test_decodes_escaped_backslashes(self, mock_get_tool: MagicMock) -... method test_decodes_unicode_escape (line 314) | def test_decodes_unicode_escape(self, mock_get_tool: MagicMock) -> None: method test_incomplete_escape_at_end_decoded_on_next_chunk (line 326) | def test_incomplete_escape_at_end_decoded_on_next_chunk( method test_incomplete_unicode_escape_completed_on_next_chunk (line 341) | def test_incomplete_unicode_escape_completed_on_next_chunk( class TestArgumentDeltaStreamingE2E (line 356) | class TestArgumentDeltaStreamingE2E: method test_realistic_python_code_streaming (line 361) | def test_realistic_python_code_streaming(self, mock_get_tool: MagicMoc... method test_streaming_with_tabs_and_newlines (line 384) | def test_streaming_with_tabs_and_newlines(self, mock_get_tool: MagicMo... method test_split_escape_sequence (line 404) | def test_split_escape_sequence(self, mock_get_tool: MagicMock) -> None: method test_multiple_newlines_and_indentation (line 423) | def test_multiple_newlines_and_indentation(self, mock_get_tool: MagicM... method test_two_keys_streamed_sequentially (line 446) | def test_two_keys_streamed_sequentially(self, mock_get_tool: MagicMock... method test_code_containing_dict_literal (line 468) | def test_code_containing_dict_literal(self, mock_get_tool: MagicMock) ... method test_code_with_colon_in_value (line 493) | def test_code_with_colon_in_value(self, mock_get_tool: MagicMock) -> N... class TestMaybeEmitArgumentDeltaEdgeCases (line 511) | class TestMaybeEmitArgumentDeltaEdgeCases: method test_no_emission_when_function_is_none (line 515) | def test_no_emission_when_function_is_none(self, mock_get_tool: MagicM... method test_multiple_concurrent_tool_calls (line 526) | def test_multiple_concurrent_tool_calls(self, mock_get_tool: MagicMock... method test_delta_with_four_arguments (line 567) | def test_delta_with_four_arguments(self, mock_get_tool: MagicMock) -> ... method test_delta_on_second_arg_after_first_complete (line 596) | def test_delta_on_second_arg_after_first_complete( method test_non_string_values_skipped (line 617) | def test_non_string_values_skipped(self, mock_get_tool: MagicMock) -> ... FILE: backend/tests/unit/onyx/chat/test_chat_utils.py class TestGetCustomAgentPrompt (line 11) | class TestGetCustomAgentPrompt: method _create_mock_persona (line 14) | def _create_mock_persona( method _create_mock_chat_session (line 27) | def _create_mock_chat_session( method _create_mock_project (line 36) | def _create_mock_project( method test_default_persona_no_project (line 45) | def test_default_persona_no_project(self) -> None: method test_default_persona_with_project_instructions (line 54) | def test_default_persona_with_project_instructions(self) -> None: method test_default_persona_with_empty_project_instructions (line 64) | def test_default_persona_with_empty_project_instructions(self) -> None: method test_custom_persona_replace_base_prompt_true (line 74) | def test_custom_persona_replace_base_prompt_true(self) -> None: method test_custom_persona_with_system_prompt (line 87) | def test_custom_persona_with_system_prompt(self) -> None: method test_custom_persona_empty_string_system_prompt (line 100) | def test_custom_persona_empty_string_system_prompt(self) -> None: method test_custom_persona_none_system_prompt (line 113) | def test_custom_persona_none_system_prompt(self) -> None: method test_custom_persona_in_project_uses_persona_prompt (line 126) | def test_custom_persona_in_project_uses_persona_prompt(self) -> None: method test_custom_persona_replace_base_in_project (line 141) | def test_custom_persona_replace_base_in_project(self) -> None: class TestBuildToolCallResponseHistoryMessage (line 157) | class TestBuildToolCallResponseHistoryMessage: method test_image_tool_uses_generated_images (line 158) | def test_image_tool_uses_generated_images(self) -> None: method test_non_image_tool_uses_placeholder (line 166) | def test_non_image_tool_uses_placeholder(self) -> None: FILE: backend/tests/unit/onyx/chat/test_citation_processor.py function create_test_search_doc (line 33) | def create_test_search_doc( function process_tokens (line 63) | def process_tokens( function mock_search_docs (line 95) | def mock_search_docs() -> CitationMapping: function test_default_initialization (line 131) | def test_default_initialization() -> None: function test_initialization_with_custom_stop_stream (line 145) | def test_initialization_with_custom_stop_stream() -> None: function test_initial_state_empty (line 154) | def test_initial_state_empty() -> None: function test_update_citation_mapping_single (line 168) | def test_update_citation_mapping_single(mock_search_docs: CitationMappin... function test_update_citation_mapping_multiple (line 178) | def test_update_citation_mapping_multiple( function test_update_citation_mapping_merges (line 193) | def test_update_citation_mapping_merges(mock_search_docs: CitationMappin... function test_update_citation_mapping_ignores_duplicate_keys (line 204) | def test_update_citation_mapping_ignores_duplicate_keys( function test_single_citation (line 232) | def test_single_citation(mock_search_docs: CitationMapping) -> None: function test_multiple_citations_comma_separated (line 251) | def test_multiple_citations_comma_separated( function test_double_bracket_citation (line 273) | def test_double_bracket_citation(mock_search_docs: CitationMapping) -> N... function test_citation_split_across_tokens (line 287) | def test_citation_split_across_tokens(mock_search_docs: CitationMapping)... function test_citation_at_beginning (line 298) | def test_citation_at_beginning(mock_search_docs: CitationMapping) -> None: function test_citation_at_end (line 310) | def test_citation_at_end(mock_search_docs: CitationMapping) -> None: function test_citation_in_middle (line 322) | def test_citation_in_middle(mock_search_docs: CitationMapping) -> None: function test_citation_removed_from_output (line 339) | def test_citation_removed_from_output(mock_search_docs: CitationMapping)... function test_formatted_citation_yielded_separately (line 350) | def test_formatted_citation_yielded_separately( function test_leading_space_with_existing_space (line 370) | def test_leading_space_with_existing_space( function test_leading_space_without_existing_space (line 382) | def test_leading_space_without_existing_space( function test_citation_with_link (line 395) | def test_citation_with_link(mock_search_docs: CitationMapping) -> None: function test_citation_without_link (line 405) | def test_citation_without_link(mock_search_docs: CitationMapping) -> None: function test_multiple_citations_in_sequence (line 415) | def test_multiple_citations_in_sequence(mock_search_docs: CitationMappin... function test_citation_info_emitted_for_new_citation (line 438) | def test_citation_info_emitted_for_new_citation( function test_citation_info_contains_correct_fields (line 452) | def test_citation_info_contains_correct_fields( function test_citation_info_deduplication_recent (line 468) | def test_citation_info_deduplication_recent( function test_citation_info_order_matches_first_citation (line 483) | def test_citation_info_order_matches_first_citation( function test_get_cited_documents_order (line 506) | def test_get_cited_documents_order(mock_search_docs: CitationMapping) ->... function test_get_cited_document_ids_order (line 522) | def test_get_cited_document_ids_order(mock_search_docs: CitationMapping)... function test_num_cited_documents_property (line 535) | def test_num_cited_documents_property(mock_search_docs: CitationMapping)... function test_multiple_citations_same_document_no_duplicate (line 555) | def test_multiple_citations_same_document_no_duplicate( function test_recent_citations_no_citation_info (line 574) | def test_recent_citations_no_citation_info( function test_recent_citations_still_format_text (line 588) | def test_recent_citations_still_format_text( function test_reset_recent_citations (line 602) | def test_reset_recent_citations(mock_search_docs: CitationMapping) -> None: function test_non_citation_count_threshold_resets_recent (line 619) | def test_non_citation_count_threshold_resets_recent( function test_citation_not_in_mapping_skipped (line 645) | def test_citation_not_in_mapping_skipped( function test_invalid_citation_format_skipped (line 659) | def test_invalid_citation_format_skipped( function test_empty_citation_content_handled (line 674) | def test_empty_citation_content_handled(mock_search_docs: CitationMappin... function test_citation_with_non_integer_skipped (line 686) | def test_citation_with_non_integer_skipped( function test_unicode_bracket_citation (line 706) | def test_unicode_bracket_citation(mock_search_docs: CitationMapping) -> ... function test_unicode_bracket_variant (line 718) | def test_unicode_bracket_variant(mock_search_docs: CitationMapping) -> N... function test_double_unicode_bracket_citation (line 729) | def test_double_unicode_bracket_citation( function test_mixed_ascii_unicode_brackets (line 742) | def test_mixed_ascii_unicode_brackets(mock_search_docs: CitationMapping)... function test_unicode_brackets_split_across_tokens (line 756) | def test_unicode_brackets_split_across_tokens( function test_citation_inside_code_block_not_processed (line 774) | def test_citation_inside_code_block_not_processed( function test_code_block_plaintext_added (line 795) | def test_code_block_plaintext_added( function test_citation_outside_code_block_processed (line 807) | def test_citation_outside_code_block_processed( function test_multiple_code_blocks (line 835) | def test_multiple_code_blocks(mock_search_docs: CitationMapping) -> None: function test_stop_token_detection_stops_processing (line 862) | def test_stop_token_detection_stops_processing() -> None: function test_partial_stop_token_held_back (line 882) | def test_partial_stop_token_held_back() -> None: function test_stop_token_at_different_positions (line 898) | def test_stop_token_at_different_positions() -> None: function test_empty_token_stream (line 930) | def test_empty_token_stream() -> None: function test_none_token_flushes_remaining_segment (line 940) | def test_none_token_flushes_remaining_segment( function test_very_long_citation_numbers (line 960) | def test_very_long_citation_numbers( function test_citations_with_extra_whitespace (line 977) | def test_citations_with_extra_whitespace( function test_consecutive_citations_no_text_between (line 992) | def test_consecutive_citations_no_text_between( function test_citations_at_stream_boundaries (line 1006) | def test_citations_at_stream_boundaries(mock_search_docs: CitationMappin... function test_process_tokens_then_update_mapping (line 1029) | def test_process_tokens_then_update_mapping( function test_citations_before_mapping_skipped (line 1047) | def test_citations_before_mapping_skipped( function test_citations_after_mapping_processed (line 1063) | def test_citations_after_mapping_processed( function test_multiple_mapping_updates_during_processing (line 1076) | def test_multiple_mapping_updates_during_processing( function test_full_conversation_flow (line 1110) | def test_full_conversation_flow(mock_search_docs: CitationMapping) -> None: function test_complex_text_mixed_citations_code_blocks (line 1136) | def test_complex_text_mixed_citations_code_blocks( function test_real_world_citation_patterns (line 1168) | def test_real_world_citation_patterns(mock_search_docs: CitationMapping)... function test_get_next_citation_number_empty (line 1209) | def test_get_next_citation_number_empty() -> None: function test_get_next_citation_number_with_citations (line 1216) | def test_get_next_citation_number_with_citations( function test_get_next_citation_number_non_sequential (line 1226) | def test_get_next_citation_number_non_sequential( function test_project_files_then_search_tool_citations (line 1239) | def test_project_files_then_search_tool_citations( function test_adding_project_files_across_messages (line 1309) | def test_adding_project_files_across_messages( function test_get_seen_citations_empty (line 1409) | def test_get_seen_citations_empty() -> None: function test_get_seen_citations_returns_correct_mapping (line 1417) | def test_get_seen_citations_returns_correct_mapping( function test_get_seen_citations_accumulates_across_calls (line 1437) | def test_get_seen_citations_accumulates_across_calls( function test_get_seen_citations_same_citation_multiple_times (line 1468) | def test_get_seen_citations_same_citation_multiple_times( function test_get_seen_citations_with_remove_mode (line 1483) | def test_get_seen_citations_with_remove_mode( function test_seen_citations_vs_cited_documents (line 1498) | def test_seen_citations_vs_cited_documents( class TestCitationModeRemove (line 1537) | class TestCitationModeRemove: method test_remove_mode_removes_citations_from_output (line 1540) | def test_remove_mode_removes_citations_from_output( method test_remove_mode_no_citation_info_emitted (line 1558) | def test_remove_mode_no_citation_info_emitted( method test_remove_mode_tracks_seen_citations (line 1578) | def test_remove_mode_tracks_seen_citations( method test_remove_mode_handles_double_space (line 1597) | def test_remove_mode_handles_double_space( method test_remove_mode_handles_punctuation_spacing (line 1609) | def test_remove_mode_handles_punctuation_spacing( method test_remove_mode_with_multiple_citations_in_bracket (line 1621) | def test_remove_mode_with_multiple_citations_in_bracket( method test_remove_mode_with_unicode_brackets (line 1642) | def test_remove_mode_with_unicode_brackets( class TestCitationModeKeepMarkers (line 1657) | class TestCitationModeKeepMarkers: method test_keep_markers_mode_preserves_original_citation (line 1660) | def test_keep_markers_mode_preserves_original_citation( method test_keep_markers_mode_no_citation_info_emitted (line 1676) | def test_keep_markers_mode_no_citation_info_emitted( method test_keep_markers_mode_tracks_seen_citations (line 1696) | def test_keep_markers_mode_tracks_seen_citations( method test_keep_markers_mode_with_double_brackets (line 1714) | def test_keep_markers_mode_with_double_brackets( method test_keep_markers_mode_with_comma_separated_citations (line 1730) | def test_keep_markers_mode_with_comma_separated_citations( method test_keep_markers_mode_with_unicode_brackets (line 1751) | def test_keep_markers_mode_with_unicode_brackets( method test_keep_markers_mode_preserves_spacing (line 1765) | def test_keep_markers_mode_preserves_spacing( class TestCitationModeHyperlink (line 1778) | class TestCitationModeHyperlink: method test_hyperlink_mode_formats_citation_as_link (line 1781) | def test_hyperlink_mode_formats_citation_as_link( method test_hyperlink_mode_emits_citation_info (line 1799) | def test_hyperlink_mode_emits_citation_info( method test_hyperlink_mode_tracks_seen_citations (line 1821) | def test_hyperlink_mode_tracks_seen_citations( method test_hyperlink_mode_populates_cited_documents (line 1838) | def test_hyperlink_mode_populates_cited_documents( method test_hyperlink_mode_is_default (line 1856) | def test_hyperlink_mode_is_default(self, mock_search_docs: CitationMap... class TestCitationModesWithCodeBlocks (line 1868) | class TestCitationModesWithCodeBlocks: method test_remove_mode_ignores_citations_in_code_block (line 1871) | def test_remove_mode_ignores_citations_in_code_block( method test_keep_markers_mode_ignores_citations_in_code_block (line 1890) | def test_keep_markers_mode_ignores_citations_in_code_block( method test_hyperlink_mode_ignores_citations_in_code_block (line 1909) | def test_hyperlink_mode_ignores_citations_in_code_block( class TestCitationModeEdgeCases (line 1935) | class TestCitationModeEdgeCases: method test_remove_mode_citation_at_start_of_text (line 1938) | def test_remove_mode_citation_at_start_of_text( method test_remove_mode_citation_at_end_of_text (line 1954) | def test_remove_mode_citation_at_end_of_text( method test_remove_mode_multiple_consecutive_citations (line 1967) | def test_remove_mode_multiple_consecutive_citations( method test_remove_mode_citation_followed_by_newline (line 1988) | def test_remove_mode_citation_followed_by_newline( method test_remove_mode_only_citations_no_other_text (line 2001) | def test_remove_mode_only_citations_no_other_text( method test_keep_markers_mode_citation_at_start (line 2016) | def test_keep_markers_mode_citation_at_start( method test_hyperlink_mode_citation_with_special_chars_in_url (line 2029) | def test_hyperlink_mode_citation_with_special_chars_in_url( method test_hyperlink_mode_citation_with_no_url (line 2046) | def test_hyperlink_mode_citation_with_no_url( method test_all_modes_with_citation_in_parentheses (line 2064) | def test_all_modes_with_citation_in_parentheses( method test_all_modes_with_citation_after_comma (line 2085) | def test_all_modes_with_citation_after_comma( method test_remove_mode_handles_tab_character (line 2106) | def test_remove_mode_handles_tab_character( method test_citation_number_zero (line 2118) | def test_citation_number_zero( method test_large_citation_numbers (line 2135) | def test_large_citation_numbers( method test_negative_citation_number_not_processed (line 2152) | def test_negative_citation_number_not_processed( method test_mixed_valid_invalid_citations_in_sequence (line 2167) | def test_mixed_valid_invalid_citations_in_sequence( method test_empty_token_stream (line 2191) | def test_empty_token_stream(self) -> None: method test_only_none_token (line 2200) | def test_only_none_token(self) -> None: method test_whitespace_only_tokens (line 2209) | def test_whitespace_only_tokens(self, mock_search_docs: CitationMappin... method test_unicode_text_around_citations (line 2224) | def test_unicode_text_around_citations( method test_emoji_around_citations (line 2240) | def test_emoji_around_citations(self, mock_search_docs: CitationMappin... class TestCitationModeWithDifferentProcessors (line 2255) | class TestCitationModeWithDifferentProcessors: method test_separate_processors_different_modes (line 2258) | def test_separate_processors_different_modes( method test_processors_do_not_share_state (line 2289) | def test_processors_do_not_share_state( class TestRemoveModeSpacingEdgeCases (line 2308) | class TestRemoveModeSpacingEdgeCases: method test_remove_mode_citation_between_sentences (line 2311) | def test_remove_mode_citation_between_sentences( method test_remove_mode_citation_before_question_mark (line 2326) | def test_remove_mode_citation_before_question_mark( method test_remove_mode_citation_before_exclamation (line 2339) | def test_remove_mode_citation_before_exclamation( method test_remove_mode_citation_before_semicolon (line 2352) | def test_remove_mode_citation_before_semicolon( method test_remove_mode_citation_before_closing_paren (line 2365) | def test_remove_mode_citation_before_closing_paren( method test_remove_mode_citation_before_closing_bracket (line 2378) | def test_remove_mode_citation_before_closing_bracket( class TestKeepMarkersEdgeCases (line 2390) | class TestKeepMarkersEdgeCases: method test_keep_markers_exact_text_preservation (line 2393) | def test_keep_markers_exact_text_preservation( method test_keep_markers_with_citation_not_in_mapping (line 2409) | def test_keep_markers_with_citation_not_in_mapping( FILE: backend/tests/unit/onyx/chat/test_citation_utils.py function create_test_search_doc (line 21) | def create_test_search_doc( class TestCollapseCitationsBasic (line 56) | class TestCollapseCitationsBasic: method test_empty_text_and_mappings (line 59) | def test_empty_text_and_mappings(self) -> None: method test_text_without_citations (line 65) | def test_text_without_citations(self) -> None: method test_empty_existing_mapping_starts_from_one (line 72) | def test_empty_existing_mapping_starts_from_one(self) -> None: method test_single_citation_no_existing (line 86) | def test_single_citation_no_existing(self) -> None: method test_multiple_citations_no_existing (line 98) | def test_multiple_citations_no_existing(self) -> None: class TestCollapseCitationsWithExisting (line 116) | class TestCollapseCitationsWithExisting: method test_continues_from_existing_mapping (line 119) | def test_continues_from_existing_mapping(self) -> None: method test_reuses_existing_citation_for_same_document (line 138) | def test_reuses_existing_citation_for_same_document(self) -> None: method test_mixed_existing_and_new_documents (line 155) | def test_mixed_existing_and_new_documents(self) -> None: method test_existing_mapping_unchanged (line 180) | def test_existing_mapping_unchanged(self) -> None: class TestCollapseCitationsMultipleCitations (line 201) | class TestCollapseCitationsMultipleCitations: method test_same_citation_multiple_times (line 204) | def test_same_citation_multiple_times(self) -> None: method test_comma_separated_citations (line 217) | def test_comma_separated_citations(self) -> None: method test_double_bracket_citations (line 228) | def test_double_bracket_citations(self) -> None: method test_same_doc_different_old_numbers (line 238) | def test_same_doc_different_old_numbers(self) -> None: class TestCollapseCitationsUnicodeBrackets (line 255) | class TestCollapseCitationsUnicodeBrackets: method test_unicode_brackets_chinese (line 258) | def test_unicode_brackets_chinese(self) -> None: method test_unicode_brackets_fullwidth (line 268) | def test_unicode_brackets_fullwidth(self) -> None: method test_double_unicode_brackets (line 278) | def test_double_unicode_brackets(self) -> None: class TestCollapseCitationsEdgeCases (line 289) | class TestCollapseCitationsEdgeCases: method test_citation_not_in_mapping (line 292) | def test_citation_not_in_mapping(self) -> None: method test_non_sequential_existing_mapping (line 303) | def test_non_sequential_existing_mapping(self) -> None: method test_preserves_text_around_citations (line 322) | def test_preserves_text_around_citations(self) -> None: method test_citation_at_start_of_text (line 332) | def test_citation_at_start_of_text(self) -> None: method test_citation_at_end_of_text (line 341) | def test_citation_at_end_of_text(self) -> None: method test_adjacent_citations (line 350) | def test_adjacent_citations(self) -> None: method test_empty_new_mapping_with_existing (line 360) | def test_empty_new_mapping_with_existing(self) -> None: class TestCollapseCitationsOrdering (line 371) | class TestCollapseCitationsOrdering: method test_assigns_numbers_in_order_of_appearance (line 374) | def test_assigns_numbers_in_order_of_appearance(self) -> None: method test_multiple_existing_citations_preserved (line 393) | def test_multiple_existing_citations_preserved(self) -> None: class TestCollapseCitationsComplexScenarios (line 415) | class TestCollapseCitationsComplexScenarios: method test_research_agent_scenario (line 418) | def test_research_agent_scenario(self) -> None: method test_long_text_with_many_citations (line 454) | def test_long_text_with_many_citations(self) -> None: FILE: backend/tests/unit/onyx/chat/test_compression.py function create_mock_message (line 29) | def create_mock_message( function test_no_compression_when_under_threshold (line 54) | def test_no_compression_when_under_threshold() -> None: function test_compression_triggered_when_over_threshold (line 64) | def test_compression_triggered_when_over_threshold() -> None: function test_get_messages_returns_summary_content (line 75) | def test_get_messages_returns_summary_content() -> None: function test_messages_after_summary_cutoff_only (line 92) | def test_messages_after_summary_cutoff_only() -> None: function test_no_summary_considers_all_messages (line 114) | def test_no_summary_considers_all_messages() -> None: function test_empty_messages_filtered_out (line 132) | def test_empty_messages_filtered_out() -> None: function test_empty_history_returns_empty (line 150) | def test_empty_history_returns_empty() -> None: function test_find_summary_for_branch_returns_matching_branch (line 161) | def test_find_summary_for_branch_returns_matching_branch() -> None: function test_find_summary_for_branch_ignores_other_branch (line 187) | def test_find_summary_for_branch_ignores_other_branch() -> None: function test_cutoff_always_before_user_message (line 216) | def test_cutoff_always_before_user_message() -> None: function test__build_llm_messages_for_summarization_user_messages (line 251) | def test__build_llm_messages_for_summarization_user_messages() -> None: function test__build_llm_messages_for_summarization_assistant_messages (line 266) | def test__build_llm_messages_for_summarization_assistant_messages() -> N... function test__build_llm_messages_for_summarization_tool_calls (line 279) | def test__build_llm_messages_for_summarization_tool_calls() -> None: function test__build_llm_messages_for_summarization_skips_tool_responses (line 296) | def test__build_llm_messages_for_summarization_skips_tool_responses() ->... function test__build_llm_messages_for_summarization_skips_empty (line 313) | def test__build_llm_messages_for_summarization_skips_empty() -> None: function test_generate_summary_initial_system_prompt (line 326) | def test_generate_summary_initial_system_prompt() -> None: function test_generate_summary_progressive_system_prompt (line 372) | def test_generate_summary_progressive_system_prompt() -> None: function test_generate_summary_cutoff_marker_as_separate_message (line 416) | def test_generate_summary_cutoff_marker_as_separate_message() -> None: function test_generate_summary_messages_are_separate (line 451) | def test_generate_summary_messages_are_separate() -> None: FILE: backend/tests/unit/onyx/chat/test_context_files.py function _make_user_file (line 30) | def _make_user_file( function _make_persona (line 44) | def _make_persona( function _make_in_memory_file (line 54) | def _make_in_memory_file( class TestResolveContextUserFiles (line 73) | class TestResolveContextUserFiles: method test_custom_persona_with_files_returns_persona_files (line 76) | def test_custom_persona_with_files_returns_persona_files(self) -> None: method test_custom_persona_without_files_returns_empty (line 87) | def test_custom_persona_without_files_returns_empty(self) -> None: method test_custom_persona_none_files_returns_empty (line 98) | def test_custom_persona_none_files_returns_empty(self) -> None: method test_default_persona_in_project_returns_project_files (line 110) | def test_default_persona_in_project_returns_project_files( method test_default_persona_no_project_returns_empty (line 128) | def test_default_persona_no_project_returns_empty(self) -> None: method test_custom_persona_without_files_ignores_project (line 139) | def test_custom_persona_without_files_ignores_project( class TestExtractContextFiles (line 159) | class TestExtractContextFiles: method test_empty_user_files_returns_empty (line 162) | def test_empty_user_files_returns_empty(self) -> None: method test_files_fit_in_context_are_loaded (line 176) | def test_files_fit_in_context_are_loaded(self, mock_load: MagicMock) -... method test_files_overflow_context_not_loaded (line 196) | def test_files_overflow_context_not_loaded(self) -> None: method test_overflow_boundary_exact (line 213) | def test_overflow_boundary_exact(self) -> None: method test_just_under_boundary_loads (line 228) | def test_just_under_boundary_loads(self, mock_load: MagicMock) -> None: method test_multiple_files_aggregate_check (line 245) | def test_multiple_files_aggregate_check(self, mock_load: MagicMock) ->... method test_reserved_tokens_reduce_available_space (line 262) | def test_reserved_tokens_reduce_available_space(self, mock_load: Magic... method test_image_files_are_extracted (line 279) | def test_image_files_are_extracted(self, mock_load: MagicMock) -> None: method test_tool_metadata_file_id_matches_chat_history_file_id (line 304) | def test_tool_metadata_file_id_matches_chat_history_file_id( method test_overflow_with_vector_db_disabled_provides_tool_metadata (line 364) | def test_overflow_with_vector_db_disabled_provides_tool_metadata(self)... method test_metadata_only_files_not_counted_in_aggregate_tokens (line 380) | def test_metadata_only_files_not_counted_in_aggregate_tokens( method test_metadata_only_files_loaded_as_tool_metadata (line 418) | def test_metadata_only_files_loaded_as_tool_metadata( method test_overflow_with_vector_db_preserves_metadata_only_tool_metadata (line 453) | def test_overflow_with_vector_db_preserves_metadata_only_tool_metadata( method test_overflow_no_vector_db_includes_all_files_in_tool_metadata (line 480) | def test_overflow_no_vector_db_includes_all_files_in_tool_metadata(sel... class TestSearchFilterDetermination (line 507) | class TestSearchFilterDetermination: method _make_context (line 514) | def _make_context( method test_custom_persona_files_fit_no_filter (line 528) | def test_custom_persona_files_fit_no_filter(self) -> None: method test_custom_persona_files_overflow_persona_filter (line 542) | def test_custom_persona_files_overflow_persona_filter(self) -> None: method test_custom_persona_no_files_no_project_leak (line 553) | def test_custom_persona_no_files_no_project_leak(self) -> None: method test_default_persona_project_files_fit_disables_search (line 564) | def test_default_persona_project_files_fit_disables_search(self) -> None: method test_default_persona_project_files_overflow_enables_search (line 577) | def test_default_persona_project_files_overflow_enables_search(self) -... method test_default_persona_no_project_auto (line 591) | def test_default_persona_no_project_auto(self) -> None: method test_default_persona_project_no_files_disables_search (line 601) | def test_default_persona_project_no_files_disables_search(self) -> None: FILE: backend/tests/unit/onyx/chat/test_emitter.py function _placement (line 21) | def _placement( function _packet (line 33) | def _packet( function _make_emitter (line 45) | def _make_emitter(model_idx: int = 0) -> tuple["Emitter", "queue.Queue"]: class TestEmitterQueueRouting (line 56) | class TestEmitterQueueRouting: method test_emit_lands_on_merged_queue (line 57) | def test_emit_lands_on_merged_queue(self) -> None: method test_queue_item_is_tuple_of_key_and_packet (line 62) | def test_queue_item_is_tuple_of_key_and_packet(self) -> None: method test_multiple_packets_delivered_fifo (line 69) | def test_multiple_packets_delivered_fifo(self) -> None: class TestEmitterModelIndexTagging (line 86) | class TestEmitterModelIndexTagging: method test_n1_default_model_idx_tags_model_index_zero (line 87) | def test_n1_default_model_idx_tags_model_index_zero(self) -> None: method test_model_idx_one_tags_packet (line 94) | def test_model_idx_one_tags_packet(self) -> None: method test_model_idx_two_tags_packet (line 100) | def test_model_idx_two_tags_packet(self) -> None: class TestEmitterQueueKey (line 113) | class TestEmitterQueueKey: method test_key_equals_model_idx (line 114) | def test_key_equals_model_idx(self) -> None: method test_n1_key_is_zero (line 121) | def test_n1_key_is_zero(self) -> None: class TestEmitterPlacementPreservation (line 133) | class TestEmitterPlacementPreservation: method test_turn_index_is_preserved (line 134) | def test_turn_index_is_preserved(self) -> None: method test_tab_index_is_preserved (line 140) | def test_tab_index_is_preserved(self) -> None: method test_sub_turn_index_is_preserved (line 146) | def test_sub_turn_index_is_preserved(self) -> None: method test_sub_turn_index_none_is_preserved (line 152) | def test_sub_turn_index_none_is_preserved(self) -> None: method test_packet_obj_is_not_modified (line 158) | def test_packet_obj_is_not_modified(self) -> None: method test_different_obj_types_are_handled (line 167) | def test_different_obj_types_are_handled(self) -> None: FILE: backend/tests/unit/onyx/chat/test_llm_loop.py function create_message (line 26) | def create_message( function create_assistant_with_tool_call (line 40) | def create_assistant_with_tool_call( function create_tool_response (line 58) | def create_tool_response( function create_context_files (line 70) | def create_context_files( class TestConstructMessageHistory (line 104) | class TestConstructMessageHistory: method test_basic_no_truncation (line 107) | def test_basic_no_truncation(self) -> None: method test_with_custom_agent_prompt (line 135) | def test_with_custom_agent_prompt(self) -> None: method test_with_context_files (line 163) | def test_with_context_files(self) -> None: method test_with_reminder_message (line 191) | def test_with_reminder_message(self) -> None: method test_tool_calls_after_last_user_message (line 215) | def test_tool_calls_after_last_user_message(self) -> None: method test_custom_agent_and_project_before_last_user_with_tools_after (line 251) | def test_custom_agent_and_project_before_last_user_with_tools_after(se... method test_project_images_attached_to_last_user_message (line 281) | def test_project_images_attached_to_last_user_message(self) -> None: method test_project_images_preserve_existing_images (line 307) | def test_project_images_preserve_existing_images(self) -> None: method test_truncation_from_top (line 346) | def test_truncation_from_top(self) -> None: method test_truncation_preserves_last_user_and_messages_after (line 382) | def test_truncation_preserves_last_user_and_messages_after(self) -> None: method test_truncation_drops_orphaned_tool_response (line 412) | def test_truncation_drops_orphaned_tool_response(self) -> None: method test_preserves_non_orphaned_tool_response (line 448) | def test_preserves_non_orphaned_tool_response(self) -> None: method test_empty_history (line 476) | def test_empty_history(self) -> None: method test_no_user_message_raises_error (line 501) | def test_no_user_message_raises_error(self) -> None: method test_not_enough_tokens_for_required_elements (line 520) | def test_not_enough_tokens_for_required_elements(self) -> None: method test_not_enough_tokens_for_last_user_and_messages_after (line 541) | def test_not_enough_tokens_for_last_user_and_messages_after(self) -> N... method test_complex_scenario_all_elements (line 566) | def test_complex_scenario_all_elements(self) -> None: method test_context_files_json_format (line 618) | def test_context_files_json_format(self) -> None: method test_file_metadata_for_tool_produces_message (line 647) | def test_file_metadata_for_tool_produces_message(self) -> None: method test_metadata_only_and_text_files_both_present (line 686) | def test_metadata_only_and_text_files_both_present(self) -> None: function _simple_token_counter (line 734) | def _simple_token_counter(text: str) -> int: function _make_file_metadata (line 739) | def _make_file_metadata( class TestForgottenFileMetadata (line 747) | class TestForgottenFileMetadata: method _build (line 762) | def _build( method _find_forgotten_message (line 781) | def _find_forgotten_message( method test_file_message_present_no_forgotten_metadata (line 794) | def test_file_message_present_no_forgotten_metadata(self) -> None: method test_file_message_dropped_by_truncation_gets_forgotten_metadata (line 824) | def test_file_message_dropped_by_truncation_gets_forgotten_metadata(se... method test_orphaned_metadata_triggers_forgotten_files (line 863) | def test_orphaned_metadata_triggers_forgotten_files(self) -> None: method test_mixed_files_only_dropped_ones_appear_in_forgotten (line 895) | def test_mixed_files_only_dropped_ones_appear_in_forgotten(self) -> None: method test_no_metadata_dict_means_no_forgotten_message (line 935) | def test_no_metadata_dict_means_no_forgotten_message(self) -> None: method test_multiple_orphaned_files_all_appear_in_forgotten (line 964) | def test_multiple_orphaned_files_all_appear_in_forgotten(self) -> None: method test_forgotten_metadata_persists_across_many_turns (line 993) | def test_forgotten_metadata_persists_across_many_turns(self) -> None: class TestFallbackToolExtraction (line 1028) | class TestFallbackToolExtraction: method _tool_defs (line 1029) | def _tool_defs(self) -> list[dict]: method test_noop_if_fallback_was_already_attempted (line 1049) | def test_noop_if_fallback_was_already_attempted(self) -> None: method test_extracts_from_answer_when_required_and_no_tool_calls (line 1067) | def test_extracts_from_answer_when_required_and_no_tool_calls(self) ->... method test_falls_back_to_reasoning_when_answer_has_no_tool_calls (line 1089) | def test_falls_back_to_reasoning_when_answer_has_no_tool_calls(self) -... method test_extracts_xml_style_invoke_from_answer_when_required (line 1111) | def test_extracts_xml_style_invoke_from_answer_when_required(self) -> ... method test_extracts_xml_style_invoke_from_answer_when_auto (line 1140) | def test_extracts_xml_style_invoke_from_answer_when_auto(self) -> None: method test_extracts_from_raw_answer_when_filtered_answer_has_no_xml (line 1171) | def test_extracts_from_raw_answer_when_filtered_answer_has_no_xml(self... method test_does_not_attempt_fallback_for_auto_without_tool_call_hints (line 1201) | def test_does_not_attempt_fallback_for_auto_without_tool_call_hints(se... method test_returns_unchanged_when_required_but_nothing_extractable (line 1219) | def test_returns_unchanged_when_required_but_nothing_extractable(self)... method test_noop_when_tool_calls_already_present (line 1238) | def test_noop_when_tool_calls_already_present(self) -> None: class TestEmptyLlmResponseClassification (line 1263) | class TestEmptyLlmResponseClassification: method _make_llm (line 1264) | def _make_llm(self, provider: str = "openai", model: str = "gpt-5.2") ... method test_openai_empty_stream_is_classified_as_budget_exceeded (line 1274) | def test_openai_empty_stream_is_classified_as_budget_exceeded( method test_reasoning_only_response_uses_generic_empty_response_error (line 1295) | def test_reasoning_only_response_uses_generic_empty_response_error( FILE: backend/tests/unit/onyx/chat/test_llm_step.py class TestSanitizeLlmOutput (line 26) | class TestSanitizeLlmOutput: method test_removes_null_bytes (line 29) | def test_removes_null_bytes(self) -> None: method test_removes_surrogates (line 36) | def test_removes_surrogates(self) -> None: method test_removes_mixed_bad_characters (line 45) | def test_removes_mixed_bad_characters(self) -> None: method test_preserves_valid_unicode (line 49) | def test_preserves_valid_unicode(self) -> None: method test_empty_string (line 58) | def test_empty_string(self) -> None: method test_normal_ascii (line 62) | def test_normal_ascii(self) -> None: class TestParseToolArgsToDict (line 68) | class TestParseToolArgsToDict: method test_none_input (line 71) | def test_none_input(self) -> None: method test_dict_input (line 75) | def test_dict_input(self) -> None: method test_dict_with_json_string_values (line 80) | def test_dict_with_json_string_values(self) -> None: method test_json_string_input (line 85) | def test_json_string_input(self) -> None: method test_double_encoded_json (line 90) | def test_double_encoded_json(self) -> None: method test_invalid_json_returns_empty_dict (line 103) | def test_invalid_json_returns_empty_dict(self) -> None: method test_non_dict_json_returns_empty_dict (line 108) | def test_non_dict_json_returns_empty_dict(self) -> None: method test_non_string_non_dict_returns_empty_dict (line 113) | def test_non_string_non_dict_returns_empty_dict(self) -> None: method test_dict_input_sanitizes_null_bytes (line 120) | def test_dict_input_sanitizes_null_bytes(self) -> None: method test_dict_input_sanitizes_surrogates (line 125) | def test_dict_input_sanitizes_surrogates(self) -> None: method test_json_string_sanitizes_null_bytes (line 130) | def test_json_string_sanitizes_null_bytes(self) -> None: method test_json_string_sanitizes_surrogates (line 137) | def test_json_string_sanitizes_surrogates(self) -> None: method test_nested_dict_values_sanitized (line 143) | def test_nested_dict_values_sanitized(self) -> None: method test_preserves_valid_unicode_in_dict (line 149) | def test_preserves_valid_unicode_in_dict(self) -> None: method test_preserves_valid_unicode_in_json (line 154) | def test_preserves_valid_unicode_in_json(self) -> None: class TestExtractToolCallsFromResponseText (line 161) | class TestExtractToolCallsFromResponseText: method _tool_defs (line 162) | def _tool_defs(self) -> list[dict]: method _placement (line 182) | def _placement(self) -> Placement: method test_collapses_nested_arguments_duplicate (line 185) | def test_collapses_nested_arguments_duplicate(self) -> None: method test_keeps_non_duplicated_sequence (line 196) | def test_keeps_non_duplicated_sequence(self) -> None: method test_keeps_intentional_duplicate_tool_calls (line 214) | def test_keeps_intentional_duplicate_tool_calls(self) -> None: method test_extracts_xml_style_invoke_tool_call (line 232) | def test_extracts_xml_style_invoke_tool_call(self) -> None: method test_ignores_unknown_tool_in_xml_style_invoke (line 251) | def test_ignores_unknown_tool_in_xml_style_invoke(self) -> None: class TestExtractToolCallKickoffs (line 267) | class TestExtractToolCallKickoffs: method test_valid_tool_call (line 270) | def test_valid_tool_call(self) -> None: method test_invalid_json_arguments_returns_empty_dict (line 283) | def test_invalid_json_arguments_returns_empty_dict(self) -> None: method test_none_arguments_returns_empty_dict (line 298) | def test_none_arguments_returns_empty_dict(self) -> None: method test_skips_entries_missing_id_or_name (line 310) | def test_skips_entries_missing_id_or_name(self) -> None: method test_tab_index_auto_increments (line 320) | def test_tab_index_auto_increments(self) -> None: method test_tab_index_override (line 329) | def test_tab_index_override(self) -> None: class TestXmlToolCallContentFilter (line 339) | class TestXmlToolCallContentFilter: method test_strips_function_calls_block_single_chunk (line 340) | def test_strips_function_calls_block_single_chunk(self) -> None: method test_strips_function_calls_block_split_across_chunks (line 351) | def test_strips_function_calls_block_split_across_chunks(self) -> None: method test_preserves_non_tool_call_xml (line 364) | def test_preserves_non_tool_call_xml(self) -> None: method test_does_not_strip_similar_tag_names (line 370) | def test_does_not_strip_similar_tag_names(self) -> None: class TestIncrementTurns (line 381) | class TestIncrementTurns: method test_increments_turn_index_when_no_sub_turn (line 384) | def test_increments_turn_index_when_no_sub_turn(self) -> None: method test_increments_sub_turn_when_present (line 389) | def test_increments_sub_turn_when_present(self) -> None: method test_increments_sub_turn_from_nonzero (line 394) | def test_increments_sub_turn_from_nonzero(self) -> None: class TestResolveToolArguments (line 400) | class TestResolveToolArguments: method test_dict_arguments (line 403) | def test_dict_arguments(self) -> None: method test_dict_parameters (line 407) | def test_dict_parameters(self) -> None: method test_arguments_takes_precedence_over_parameters (line 412) | def test_arguments_takes_precedence_over_parameters(self) -> None: method test_json_string_arguments (line 416) | def test_json_string_arguments(self) -> None: method test_invalid_json_string_returns_empty_dict (line 420) | def test_invalid_json_string_returns_empty_dict(self) -> None: method test_no_arguments_or_parameters_returns_empty_dict (line 424) | def test_no_arguments_or_parameters_returns_empty_dict(self) -> None: method test_non_dict_non_string_arguments_returns_none (line 428) | def test_non_dict_non_string_arguments_returns_none(self) -> None: class TestTranslateHistoryToLlmFormat (line 434) | class TestTranslateHistoryToLlmFormat: method _llm_config (line 436) | def _llm_config(provider: str) -> LLMConfig: method _tool_history (line 445) | def _tool_history() -> list[ChatMessageSimple]: method test_preserves_structured_tool_history_for_non_ollama (line 467) | def test_preserves_structured_tool_history_for_non_ollama(self) -> None: method test_flattens_tool_history_for_ollama (line 480) | def test_flattens_tool_history_for_ollama(self) -> None: method test_flattens_multiple_assistant_tool_calls_for_ollama (line 496) | def test_flattens_multiple_assistant_tool_calls_for_ollama(self) -> None: method test_tool_call_response_requires_tool_call_id (line 537) | def test_tool_call_response_requires_tool_call_id(self, provider: str)... FILE: backend/tests/unit/onyx/chat/test_multi_model_streaming.py function _restore_ee_version (line 31) | def _restore_ee_version() -> Generator[None, None, None]: function _make_request (line 49) | def _make_request(**kwargs: Any) -> SendMessageRequest: function _make_override (line 58) | def _make_override(provider: str = "openai", version: str = "gpt-4") -> ... function _first_from_stream (line 62) | def _first_from_stream(req: SendMessageRequest, overrides: list[LLMOverr... class TestRunMultiModelStreamValidation (line 80) | class TestRunMultiModelStreamValidation: method test_single_override_yields_error (line 81) | def test_single_override_yields_error(self) -> None: method test_four_overrides_yields_error (line 88) | def test_four_overrides_yields_error(self) -> None: method test_zero_overrides_yields_error (line 103) | def test_zero_overrides_yields_error(self) -> None: method test_deep_research_yields_error (line 110) | def test_deep_research_yields_error(self) -> None: method test_exactly_two_overrides_is_minimum (line 119) | def test_exactly_two_overrides_is_minimum(self) -> None: class TestSetPreferredResponseValidation (line 146) | class TestSetPreferredResponseValidation: method test_user_message_not_found (line 147) | def test_user_message_not_found(self) -> None: method test_wrong_message_type (line 156) | def test_wrong_message_type(self) -> None: method test_assistant_message_not_found (line 169) | def test_assistant_message_not_found(self) -> None: method test_assistant_not_child_of_user (line 182) | def test_assistant_not_child_of_user(self) -> None: method test_valid_call_sets_preferred_response_id (line 197) | def test_valid_call_sets_preferred_response_id(self) -> None: class TestLLMOverrideDisplayName (line 218) | class TestLLMOverrideDisplayName: method test_display_name_defaults_none (line 219) | def test_display_name_defaults_none(self) -> None: method test_display_name_set (line 223) | def test_display_name_set(self) -> None: method test_display_name_serializes (line 231) | def test_display_name_serializes(self) -> None: function _make_setup (line 246) | def _make_setup(n_models: int = 1) -> MagicMock: function _run_models_collect (line 275) | def _run_models_collect(setup: MagicMock) -> list: class TestRunModels (line 282) | class TestRunModels: method test_n1_overall_stop_from_llm_loop_passes_through (line 289) | def test_n1_overall_stop_from_llm_loop_passes_through(self) -> None: method test_n1_emitted_packet_has_model_index_zero (line 323) | def test_n1_emitted_packet_has_model_index_zero(self) -> None: method test_n2_each_model_packet_tagged_with_its_index (line 352) | def test_n2_each_model_packet_tagged_with_its_index(self) -> None: method test_model_error_yields_streaming_error (line 384) | def test_model_error_yields_streaming_error(self) -> None: method test_one_model_error_does_not_stop_other_models (line 408) | def test_one_model_error_does_not_stop_other_models(self) -> None: method test_cancellation_yields_user_cancelled_stop (line 446) | def test_cancellation_yields_user_cancelled_stop(self) -> None: method test_stop_button_calls_completion_for_all_models (line 478) | def test_stop_button_calls_completion_for_all_models(self) -> None: method test_completion_handle_called_for_each_successful_model (line 514) | def test_completion_handle_called_for_each_successful_model(self) -> N... method test_completion_handle_not_called_for_failed_model (line 535) | def test_completion_handle_not_called_for_failed_model(self) -> None: method test_http_disconnect_completion_via_generator_exit (line 558) | def test_http_disconnect_completion_via_generator_exit(self) -> None: method test_b1_race_disconnect_handler_completes_already_finished_model (line 624) | def test_b1_race_disconnect_handler_completes_already_finished_model(s... method test_stop_button_does_not_call_completion_for_errored_model (line 685) | def test_stop_button_does_not_call_completion_for_errored_model(self) ... method test_external_state_container_used_for_model_zero (line 727) | def test_external_state_container_used_for_model_zero(self) -> None: FILE: backend/tests/unit/onyx/chat/test_multi_model_types.py class TestPlacementModelIndex (line 22) | class TestPlacementModelIndex: method test_default_none (line 23) | def test_default_none(self) -> None: method test_set_value (line 27) | def test_set_value(self) -> None: method test_serializes (line 31) | def test_serializes(self) -> None: method test_none_excluded_when_default (line 36) | def test_none_excluded_when_default(self) -> None: class TestMultiModelMessageResponseIDInfo (line 42) | class TestMultiModelMessageResponseIDInfo: method test_round_trip (line 43) | def test_round_trip(self) -> None: method test_null_user_message_id (line 62) | def test_null_user_message_id(self) -> None: class TestSendMessageRequestOverrides (line 73) | class TestSendMessageRequestOverrides: method test_llm_overrides_default_none (line 74) | def test_llm_overrides_default_none(self) -> None: method test_llm_overrides_accepts_list (line 81) | def test_llm_overrides_accepts_list(self) -> None: method test_backward_compat_single_override (line 94) | def test_backward_compat_single_override(self) -> None: class TestChatMessageDetailMultiModel (line 104) | class TestChatMessageDetailMultiModel: method test_defaults_none (line 105) | def test_defaults_none(self) -> None: method test_set_values (line 118) | def test_set_values(self) -> None: method test_serializes (line 133) | def test_serializes(self) -> None: FILE: backend/tests/unit/onyx/chat/test_process_message.py function test_remove_answer_citations_strips_http_markdown_citation (line 12) | def test_remove_answer_citations_strips_http_markdown_citation() -> None: function test_remove_answer_citations_strips_empty_markdown_citation (line 18) | def test_remove_answer_citations_strips_empty_markdown_citation() -> None: function test_remove_answer_citations_strips_citation_with_parentheses_in_url (line 24) | def test_remove_answer_citations_strips_citation_with_parentheses_in_url... function test_remove_answer_citations_preserves_non_citation_markdown_links (line 33) | def test_remove_answer_citations_preserves_non_citation_markdown_links()... function test_hook_skipped_leaves_message_text_unchanged (line 50) | def test_hook_skipped_leaves_message_text_unchanged() -> None: function test_hook_soft_failed_leaves_message_text_unchanged (line 55) | def test_hook_soft_failed_leaves_message_text_unchanged() -> None: function test_null_query_raises_query_rejected (line 60) | def test_null_query_raises_query_rejected() -> None: function test_empty_string_query_raises_query_rejected (line 68) | def test_empty_string_query_raises_query_rejected() -> None: function test_whitespace_only_query_raises_query_rejected (line 77) | def test_whitespace_only_query_raises_query_rejected() -> None: function test_absent_query_field_raises_query_rejected (line 86) | def test_absent_query_field_raises_query_rejected() -> None: function test_rejection_message_surfaced_in_error_when_provided (line 95) | def test_rejection_message_surfaced_in_error_when_provided() -> None: function test_fallback_rejection_message_when_none (line 106) | def test_fallback_rejection_message_when_none() -> None: function test_nonempty_query_rewrites_message_text (line 116) | def test_nonempty_query_rewrites_message_text() -> None: FILE: backend/tests/unit/onyx/chat/test_process_message_mock_llm.py function test_mock_llm_response_requires_integration_mode (line 13) | def test_mock_llm_response_requires_integration_mode() -> None: function test_gather_stream_returns_empty_answer_when_streaming_error_only (line 43) | def test_gather_stream_returns_empty_answer_when_streaming_error_only() ... FILE: backend/tests/unit/onyx/chat/test_save_chat.py function _make_tool_call_info (line 17) | def _make_tool_call_info( function test_returns_empty_when_no_generated_files (line 38) | def test_returns_empty_when_no_generated_files() -> None: function test_returns_empty_when_file_not_referenced (line 44) | def test_returns_empty_when_file_not_referenced() -> None: function test_extracts_referenced_file (line 56) | def test_extracts_referenced_file() -> None: function test_filters_unreferenced_files (line 77) | def test_filters_unreferenced_files() -> None: function test_extracts_from_multiple_tool_calls (line 100) | def test_extracts_from_multiple_tool_calls() -> None: function test_csv_file_type (line 128) | def test_csv_file_type() -> None: function test_unknown_extension_defaults_to_plain_text (line 145) | def test_unknown_extension_defaults_to_plain_text() -> None: function test_skips_tool_calls_without_generated_files (line 162) | def test_skips_tool_calls_without_generated_files() -> None: function test_save_chat_turn_sanitizes_message_and_reasoning (line 187) | def test_save_chat_turn_sanitizes_message_and_reasoning( FILE: backend/tests/unit/onyx/chat/test_stop_signal_checker.py class _MemoryCacheBackend (line 20) | class _MemoryCacheBackend(CacheBackend): method __init__ (line 23) | def __init__(self) -> None: method get (line 26) | def get(self, key: str) -> bytes | None: method set (line 29) | def set( method delete (line 40) | def delete(self, key: str) -> None: method exists (line 43) | def exists(self, key: str) -> bool: method expire (line 46) | def expire(self, key: str, seconds: int) -> None: method ttl (line 49) | def ttl(self, key: str) -> int: method lock (line 52) | def lock(self, name: str, timeout: float | None = None) -> CacheLock: method rpush (line 55) | def rpush(self, key: str, value: str | bytes) -> None: method blpop (line 58) | def blpop(self, keys: list[str], timeout: int = 0) -> tuple[bytes, byt... class TestSetFence (line 65) | class TestSetFence: method test_set_fence_true_creates_key (line 66) | def test_set_fence_true_creates_key(self) -> None: method test_set_fence_false_removes_key (line 72) | def test_set_fence_false_removes_key(self) -> None: method test_set_fence_false_noop_when_absent (line 79) | def test_set_fence_false_noop_when_absent(self) -> None: method test_set_fence_uses_ttl (line 85) | def test_set_fence_uses_ttl(self) -> None: class TestIsConnected (line 106) | class TestIsConnected: method test_connected_when_no_fence (line 107) | def test_connected_when_no_fence(self) -> None: method test_disconnected_when_fence_set (line 111) | def test_disconnected_when_fence_set(self) -> None: method test_sessions_are_isolated (line 117) | def test_sessions_are_isolated(self) -> None: class TestResetCancelStatus (line 125) | class TestResetCancelStatus: method test_clears_fence (line 126) | def test_clears_fence(self) -> None: method test_noop_when_no_fence (line 133) | def test_noop_when_no_fence(self) -> None: class TestSetProcessingStatus (line 141) | class TestSetProcessingStatus: method test_set_true_marks_processing (line 142) | def test_set_true_marks_processing(self) -> None: method test_set_false_clears_processing (line 148) | def test_set_false_clears_processing(self) -> None: class TestIsChatSessionProcessing (line 156) | class TestIsChatSessionProcessing: method test_not_processing_by_default (line 157) | def test_not_processing_by_default(self) -> None: method test_sessions_are_isolated (line 161) | def test_sessions_are_isolated(self) -> None: FILE: backend/tests/unit/onyx/connectors/airtable/test_airtable_index_all.py function _make_field_schema (line 13) | def _make_field_schema(field_id: str, name: str, field_type: str) -> Mag... function _make_table_schema (line 21) | def _make_table_schema( function _make_record (line 36) | def _make_record(record_id: str, fields: dict[str, Any]) -> dict[str, Any]: function _make_base_info (line 40) | def _make_base_info(base_id: str, name: str) -> MagicMock: function _make_table_obj (line 47) | def _make_table_obj(table_id: str, name: str) -> MagicMock: function _setup_mock_api (line 54) | def _setup_mock_api( function _collect_docs (line 173) | def _collect_docs(connector: AirtableConnector) -> list[Document]: class TestIndexAll (line 182) | class TestIndexAll: method test_index_all_discovers_all_bases_and_tables (line 184) | def test_index_all_discovers_all_bases_and_tables( method test_index_all_semantic_id_includes_base_name (line 205) | def test_index_all_semantic_id_includes_base_name( method test_index_all_hierarchy_source_path (line 230) | def test_index_all_hierarchy_source_path( method test_index_all_empty_account (line 259) | def test_index_all_empty_account( method test_index_all_skips_failing_table (line 272) | def test_index_all_skips_failing_table( method test_index_all_skips_failing_base (line 327) | def test_index_all_skips_failing_base( class TestSpecificTableMode (line 380) | class TestSpecificTableMode: method test_specific_table_unchanged (line 381) | def test_specific_table_unchanged(self) -> None: method test_specific_table_resolves_base_name_for_hierarchy (line 421) | def test_specific_table_resolves_base_name_for_hierarchy(self) -> None: class TestValidateConnectorSettings (line 466) | class TestValidateConnectorSettings: method test_validate_index_all_success (line 467) | def test_validate_index_all_success(self) -> None: method test_validate_index_all_no_bases (line 475) | def test_validate_index_all_no_bases(self) -> None: method test_validate_specific_table_success (line 484) | def test_validate_specific_table_success(self) -> None: method test_validate_empty_fields_auto_detects_index_all (line 495) | def test_validate_empty_fields_auto_detects_index_all(self) -> None: method test_validate_specific_table_api_error (line 508) | def test_validate_specific_table_api_error(self) -> None: class TestParseAirtableUrl (line 523) | class TestParseAirtableUrl: method test_full_url_with_view (line 524) | def test_full_url_with_view(self) -> None: method test_url_without_view (line 532) | def test_url_without_view(self) -> None: method test_url_without_query_params (line 540) | def test_url_without_query_params(self) -> None: method test_url_with_trailing_whitespace (line 548) | def test_url_with_trailing_whitespace(self) -> None: method test_invalid_url_raises (line 555) | def test_invalid_url_raises(self) -> None: method test_missing_table_raises (line 559) | def test_missing_table_raises(self) -> None: method test_empty_string_raises (line 563) | def test_empty_string_raises(self) -> None: class TestAirtableUrlConnector (line 568) | class TestAirtableUrlConnector: method test_url_sets_base_and_table_ids (line 569) | def test_url_sets_base_and_table_ids(self) -> None: method test_url_without_view_leaves_view_none (line 577) | def test_url_without_view_leaves_view_none(self) -> None: method test_url_overrides_explicit_base_and_table (line 583) | def test_url_overrides_explicit_base_and_table(self) -> None: method test_url_indexes_correctly (line 592) | def test_url_indexes_correctly(self) -> None: FILE: backend/tests/unit/onyx/connectors/asana/test_asana_connector.py function test_asana_connector_project_ids_normalization (line 18) | def test_asana_connector_project_ids_normalization( function test_asana_connector_team_id_normalization (line 41) | def test_asana_connector_team_id_normalization( FILE: backend/tests/unit/onyx/connectors/canvas/test_canvas_connector.py function _mock_course (line 29) | def _mock_course( function _build_connector (line 43) | def _build_connector(base_url: str = FAKE_BASE_URL) -> CanvasConnector: function _mock_page (line 52) | def _mock_page( function _mock_assignment (line 67) | def _mock_assignment( function _mock_announcement (line 85) | def _mock_announcement( function _mock_response (line 100) | def _mock_response( class TestCanvasApiClientInit (line 119) | class TestCanvasApiClientInit: method test_success (line 120) | def test_success(self) -> None: method test_normalizes_trailing_slash (line 132) | def test_normalizes_trailing_slash(self) -> None: method test_normalizes_existing_api_v1 (line 142) | def test_normalizes_existing_api_v1(self) -> None: method test_rejects_non_https_scheme (line 152) | def test_rejects_non_https_scheme(self) -> None: method test_rejects_http (line 159) | def test_rejects_http(self) -> None: method test_rejects_missing_host (line 166) | def test_rejects_missing_host(self) -> None: class TestBuildUrl (line 179) | class TestBuildUrl: method setup_method (line 180) | def setup_method(self) -> None: method test_appends_endpoint (line 186) | def test_appends_endpoint(self) -> None: method test_strips_leading_slash_from_endpoint (line 192) | def test_strips_leading_slash_from_endpoint(self) -> None: class TestBuildHeaders (line 204) | class TestBuildHeaders: method setup_method (line 205) | def setup_method(self) -> None: method test_returns_bearer_auth (line 211) | def test_returns_bearer_auth(self) -> None: class TestGet (line 223) | class TestGet: method setup_method (line 224) | def setup_method(self) -> None: method test_success_returns_json_and_next_url (line 231) | def test_success_returns_json_and_next_url(self, mock_requests: MagicM... method test_success_no_next_page (line 246) | def test_success_no_next_page(self, mock_requests: MagicMock) -> None: method test_raises_on_error_status (line 255) | def test_raises_on_error_status(self, mock_requests: MagicMock) -> None: method test_raises_on_404 (line 264) | def test_raises_on_404(self, mock_requests: MagicMock) -> None: method test_raises_on_429 (line 273) | def test_raises_on_429(self, mock_requests: MagicMock) -> None: method test_skips_params_when_using_full_url (line 282) | def test_skips_params_when_using_full_url(self, mock_requests: MagicMo... method test_error_extracts_message_from_error_dict (line 292) | def test_error_extracts_message_from_error_dict( method test_error_extracts_message_from_error_string (line 309) | def test_error_extracts_message_from_error_string( method test_error_extracts_message_from_errors_list (line 326) | def test_error_extracts_message_from_errors_list( method test_error_dict_takes_priority_over_errors_list (line 343) | def test_error_dict_takes_priority_over_errors_list( method test_error_falls_back_to_reason_when_no_json_message (line 360) | def test_error_falls_back_to_reason_when_no_json_message( method test_invalid_json_on_success_raises (line 375) | def test_invalid_json_on_success_raises(self, mock_requests: MagicMock... method test_invalid_json_on_error_falls_back_to_reason (line 387) | def test_invalid_json_on_error_falls_back_to_reason( class TestPaginate (line 412) | class TestPaginate: method test_single_page (line 414) | def test_single_page(self, mock_requests: MagicMock) -> None: method test_two_pages (line 429) | def test_two_pages(self, mock_requests: MagicMock) -> None: method test_empty_response (line 446) | def test_empty_response(self, mock_requests: MagicMock) -> None: class TestParseNextLink (line 463) | class TestParseNextLink: method setup_method (line 464) | def setup_method(self) -> None: method test_found (line 470) | def test_found(self) -> None: method test_not_found (line 478) | def test_not_found(self) -> None: method test_empty (line 485) | def test_empty(self) -> None: method test_multiple_rels (line 490) | def test_multiple_rels(self) -> None: method test_rejects_host_mismatch (line 501) | def test_rejects_host_mismatch(self) -> None: method test_rejects_non_https_link (line 507) | def test_rejects_non_https_link(self) -> None: class TestLoadCredentials (line 519) | class TestLoadCredentials: method _assert_load_credentials_raises (line 520) | def _assert_load_credentials_raises( method test_load_credentials_success (line 533) | def test_load_credentials_success(self, mock_requests: MagicMock) -> N... method test_canvas_client_raises_without_credentials (line 542) | def test_canvas_client_raises_without_credentials(self) -> None: method test_load_credentials_invalid_token (line 549) | def test_load_credentials_invalid_token(self, mock_requests: MagicMock... method test_load_credentials_insufficient_permissions (line 553) | def test_load_credentials_insufficient_permissions( class TestConnectorUrlNormalization (line 566) | class TestConnectorUrlNormalization: method test_strips_api_v1_suffix (line 567) | def test_strips_api_v1_suffix(self) -> None: method test_strips_trailing_slash (line 575) | def test_strips_trailing_slash(self) -> None: method test_no_change_for_clean_url (line 583) | def test_no_change_for_clean_url(self) -> None: class TestDocumentConversion (line 597) | class TestDocumentConversion: method setup_method (line 598) | def setup_method(self) -> None: method test_convert_page_to_document (line 601) | def test_convert_page_to_document(self) -> None: method test_convert_page_without_body (line 628) | def test_convert_page_without_body(self) -> None: method test_convert_assignment_to_document (line 648) | def test_convert_assignment_to_document(self) -> None: method test_convert_assignment_without_description (line 673) | def test_convert_assignment_without_description(self) -> None: method test_convert_announcement_to_document (line 694) | def test_convert_announcement_to_document(self) -> None: method test_convert_announcement_without_posted_at (line 716) | def test_convert_announcement_without_posted_at(self) -> None: class TestValidateConnectorSettings (line 738) | class TestValidateConnectorSettings: method _assert_validate_raises (line 739) | def _assert_validate_raises( method test_validate_success (line 755) | def test_validate_success(self, mock_requests: MagicMock) -> None: method test_validate_expired_credential (line 762) | def test_validate_expired_credential(self, mock_requests: MagicMock) -... method test_validate_insufficient_permissions (line 766) | def test_validate_insufficient_permissions(self, mock_requests: MagicM... method test_validate_rate_limited (line 770) | def test_validate_rate_limited(self, mock_requests: MagicMock) -> None: method test_validate_unexpected_error (line 774) | def test_validate_unexpected_error(self, mock_requests: MagicMock) -> ... class TestListCourses (line 783) | class TestListCourses: method test_single_page (line 785) | def test_single_page(self, mock_requests: MagicMock) -> None: method test_empty_response (line 798) | def test_empty_response(self, mock_requests: MagicMock) -> None: class TestListPages (line 807) | class TestListPages: method test_single_page (line 809) | def test_single_page(self, mock_requests: MagicMock) -> None: method test_empty_response (line 822) | def test_empty_response(self, mock_requests: MagicMock) -> None: class TestListAssignments (line 831) | class TestListAssignments: method test_single_page (line 833) | def test_single_page(self, mock_requests: MagicMock) -> None: method test_empty_response (line 846) | def test_empty_response(self, mock_requests: MagicMock) -> None: class TestListAnnouncements (line 855) | class TestListAnnouncements: method test_single_page (line 857) | def test_single_page(self, mock_requests: MagicMock) -> None: method test_empty_response (line 870) | def test_empty_response(self, mock_requests: MagicMock) -> None: FILE: backend/tests/unit/onyx/connectors/confluence/test_confluence_checkpointing.py function confluence_base_url (line 34) | def confluence_base_url() -> str: function space_key (line 39) | def space_key() -> str: function mock_confluence_client (line 44) | def mock_confluence_client() -> OnyxConfluence: function confluence_connector (line 53) | def confluence_connector( function create_mock_page (line 76) | def create_mock_page() -> Callable[..., dict[str, Any]]: function test_get_cql_query_with_space (line 101) | def test_get_cql_query_with_space(confluence_connector: ConfluenceConnec... function test_get_cql_query_without_space (line 115) | def test_get_cql_query_without_space(confluence_base_url: str) -> None: function test_load_from_checkpoint_happy_path (line 131) | def test_load_from_checkpoint_happy_path( function test_load_from_checkpoint_with_page_processing_error (line 211) | def test_load_from_checkpoint_with_page_processing_error( function test_retrieve_all_slim_docs_perm_sync (line 306) | def test_retrieve_all_slim_docs_perm_sync( function test_validate_connector_settings_errors (line 378) | def test_validate_connector_settings_errors( function test_validate_connector_settings_success (line 397) | def test_validate_connector_settings_success( function test_checkpoint_progress (line 420) | def test_checkpoint_progress( FILE: backend/tests/unit/onyx/connectors/confluence/test_onyx_confluence.py function _create_mock_response (line 17) | def _create_mock_response( function _create_http_error (line 33) | def _create_http_error( function mock_credentials_provider (line 44) | def mock_credentials_provider() -> mock.Mock: function confluence_server_client (line 56) | def confluence_server_client(mock_credentials_provider: mock.Mock) -> On... function test_cql_paginate_all_expansions_handles_internal_pagination_error (line 74) | def test_cql_paginate_all_expansions_handles_internal_pagination_error( function test_paginated_cql_retrieval_handles_pagination_error (line 360) | def test_paginated_cql_retrieval_handles_pagination_error( function test_paginated_cql_retrieval_skips_completely_failing_page (line 557) | def test_paginated_cql_retrieval_skips_completely_failing_page( function test_paginated_cql_retrieval_cloud_no_retry_on_error (line 683) | def test_paginated_cql_retrieval_cloud_no_retry_on_error( FILE: backend/tests/unit/onyx/connectors/confluence/test_rate_limit_handler.py function mock_confluence_call (line 10) | def mock_confluence_call() -> Mock: function test_non_rate_limit_error (line 53) | def test_non_rate_limit_error(mock_confluence_call: Mock) -> None: FILE: backend/tests/unit/onyx/connectors/cross_connector_utils/test_html_utils.py function test_parse_table (line 6) | def test_parse_table() -> None: FILE: backend/tests/unit/onyx/connectors/cross_connector_utils/test_rate_limit.py function test_rate_limit_basic (line 8) | def test_rate_limit_basic() -> None: FILE: backend/tests/unit/onyx/connectors/discord/test_discord_validation.py function _build_connector (line 11) | def _build_connector(token: str = "fake-bot-token") -> DiscordConnector: function test_validate_success (line 19) | def test_validate_success( function test_validate_invalid_token (line 36) | def test_validate_invalid_token( FILE: backend/tests/unit/onyx/connectors/github/test_github_checkpointing.py function repo_owner (line 35) | def repo_owner() -> str: function repositories (line 40) | def repositories() -> str: function mock_github_client (line 45) | def mock_github_client() -> MagicMock: function build_github_connector (line 57) | def build_github_connector( function create_mock_pr (line 76) | def create_mock_pr() -> Callable[..., MagicMock]: function create_mock_issue (line 110) | def create_mock_issue() -> Callable[..., MagicMock]: function create_mock_repo (line 139) | def create_mock_repo() -> Callable[..., MagicMock]: function test_load_from_checkpoint_happy_path (line 168) | def test_load_from_checkpoint_happy_path( function test_load_from_checkpoint_with_rate_limit (line 243) | def test_load_from_checkpoint_with_rate_limit( function test_load_from_checkpoint_with_empty_repo (line 294) | def test_load_from_checkpoint_with_empty_repo( function test_load_from_checkpoint_with_prs_only (line 326) | def test_load_from_checkpoint_with_prs_only( function test_load_from_checkpoint_with_issues_only (line 372) | def test_load_from_checkpoint_with_issues_only( function test_validate_connector_settings_errors (line 439) | def test_validate_connector_settings_errors( function test_validate_connector_settings_success (line 458) | def test_validate_connector_settings_success( function test_load_from_checkpoint_with_cursor_fallback (line 479) | def test_load_from_checkpoint_with_cursor_fallback( function test_load_from_checkpoint_resume_cursor_pagination (line 541) | def test_load_from_checkpoint_resume_cursor_pagination( function test_load_from_checkpoint_cursor_expiration (line 594) | def test_load_from_checkpoint_cursor_expiration( function test_load_from_checkpoint_cursor_pagination_completion (line 669) | def test_load_from_checkpoint_cursor_pagination_completion( FILE: backend/tests/unit/onyx/connectors/gmail/test_connector.py function test_thread_to_document (line 23) | def test_thread_to_document() -> None: function test_build_time_range_query (line 39) | def test_build_time_range_query() -> None: function test_time_str_to_utc (line 54) | def test_time_str_to_utc() -> None: function test_gmail_checkpoint_progression (line 79) | def test_gmail_checkpoint_progression() -> None: FILE: backend/tests/unit/onyx/connectors/google_utils/test_rate_limit_detection.py function _make_http_error (line 9) | def _make_http_error( function test_429_is_rate_limit (line 29) | def test_429_is_rate_limit() -> None: function test_403_user_rate_limit_exceeded (line 33) | def test_403_user_rate_limit_exceeded() -> None: function test_403_rate_limit_exceeded (line 42) | def test_403_rate_limit_exceeded() -> None: function test_403_permission_denied_is_not_rate_limit (line 51) | def test_403_permission_denied_is_not_rate_limit() -> None: function test_404_is_not_rate_limit (line 60) | def test_404_is_not_rate_limit() -> None: function test_500_is_not_rate_limit (line 64) | def test_500_is_not_rate_limit() -> None: FILE: backend/tests/unit/onyx/connectors/jira/conftest.py function jira_base_url (line 12) | def jira_base_url() -> str: function project_key (line 17) | def project_key() -> str: function user_email (line 22) | def user_email() -> str: function mock_jira_api_token (line 27) | def mock_jira_api_token() -> str: function mock_jira_client (line 32) | def mock_jira_client() -> MagicMock: function jira_connector (line 45) | def jira_connector( FILE: backend/tests/unit/onyx/connectors/jira/test_jira_bulk_fetch.py function _make_raw_issue (line 12) | def _make_raw_issue(issue_id: str) -> dict[str, Any]: function _mock_jira_client (line 20) | def _mock_jira_client() -> MagicMock: function test_bulk_fetch_success (line 30) | def test_bulk_fetch_success() -> None: function test_bulk_fetch_splits_on_json_error (line 44) | def test_bulk_fetch_splits_on_json_error() -> None: function test_bulk_fetch_raises_on_single_unfetchable_issue (line 74) | def test_bulk_fetch_raises_on_single_unfetchable_issue() -> None: function test_bulk_fetch_non_json_error_propagates (line 97) | def test_bulk_fetch_non_json_error_propagates() -> None: function test_bulk_fetch_with_fields (line 112) | def test_bulk_fetch_with_fields() -> None: function test_bulk_fetch_recursive_splitting_raises_on_bad_issue (line 126) | def test_bulk_fetch_recursive_splitting_raises_on_bad_issue() -> None: FILE: backend/tests/unit/onyx/connectors/jira/test_jira_checkpointing.py function jira_connector (line 35) | def jira_connector( function create_mock_issue (line 55) | def create_mock_issue() -> Callable[..., MagicMock]: function test_load_credentials (line 127) | def test_load_credentials(jira_connector: JiraConnector) -> None: function test_get_jql_query_with_project (line 147) | def test_get_jql_query_with_project(jira_connector: JiraConnector) -> None: function test_get_jql_query_without_project (line 161) | def test_get_jql_query_without_project(jira_base_url: str) -> None: function test_load_from_checkpoint_happy_path (line 177) | def test_load_from_checkpoint_happy_path( function test_load_from_checkpoint_with_issue_processing_error (line 238) | def test_load_from_checkpoint_with_issue_processing_error( function test_load_from_checkpoint_with_skipped_issue (line 323) | def test_load_from_checkpoint_with_skipped_issue( function test_retrieve_all_slim_docs_perm_sync (line 350) | def test_retrieve_all_slim_docs_perm_sync( function test_validate_connector_settings_errors (line 407) | def test_validate_connector_settings_errors( function test_validate_connector_settings_with_project_success (line 425) | def test_validate_connector_settings_with_project_success( function test_validate_connector_settings_without_project_success (line 436) | def test_validate_connector_settings_without_project_success( FILE: backend/tests/unit/onyx/connectors/jira/test_jira_error_handling.py function jira_connector_with_invalid_project (line 18) | def jira_connector_with_invalid_project(jira_base_url: str) -> JiraConne... function test_nonexistent_project_error_during_indexing (line 30) | def test_nonexistent_project_error_during_indexing( function test_invalid_jql_error_during_indexing (line 60) | def test_invalid_jql_error_during_indexing( function test_credential_expired_error_during_indexing (line 89) | def test_credential_expired_error_during_indexing( function test_insufficient_permissions_error_during_indexing (line 115) | def test_insufficient_permissions_error_during_indexing( function test_cloud_nonexistent_project_error_during_indexing (line 141) | def test_cloud_nonexistent_project_error_during_indexing( FILE: backend/tests/unit/onyx/connectors/jira/test_jira_large_ticket_handling.py function mock_jira_client (line 15) | def mock_jira_client() -> MagicMock: function mock_issue_small (line 20) | def mock_issue_small() -> MagicMock: function mock_issue_large (line 45) | def mock_issue_large() -> MagicMock: function mock_jira_api_version (line 70) | def mock_jira_api_version() -> Generator[Any, Any, Any]: function patched_environment (line 77) | def patched_environment( function test_fetch_jira_issues_batch_small_ticket (line 83) | def test_fetch_jira_issues_batch_small_ticket( function test_fetch_jira_issues_batch_large_ticket (line 108) | def test_fetch_jira_issues_batch_large_ticket( function test_fetch_jira_issues_batch_mixed_tickets (line 126) | def test_fetch_jira_issues_batch_mixed_tickets( function test_fetch_jira_issues_batch_custom_size_limit (line 149) | def test_fetch_jira_issues_batch_custom_size_limit( FILE: backend/tests/unit/onyx/connectors/jira/test_jira_permission_sync.py function mock_jira_cc_pair (line 18) | def mock_jira_cc_pair( function mock_fetch_all_existing_docs_fn (line 42) | def mock_fetch_all_existing_docs_fn() -> MagicMock: function mock_fetch_all_existing_docs_ids_fn (line 47) | def mock_fetch_all_existing_docs_ids_fn() -> MagicMock: function test_jira_permission_sync (line 51) | def test_jira_permission_sync( function test_jira_doc_sync_passes_indexing_start (line 73) | def test_jira_doc_sync_passes_indexing_start( function test_jira_doc_sync_passes_none_when_no_indexing_start (line 110) | def test_jira_doc_sync_passes_none_when_no_indexing_start( FILE: backend/tests/unit/onyx/connectors/mediawiki/test_mediawiki_family.py function test_family_class_dispatch_builtins (line 49) | def test_family_class_dispatch_builtins( function test_family_class_dispatch_on_non_builtins_generates_new_class_fast (line 58) | def test_family_class_dispatch_on_non_builtins_generates_new_class_fast( function test_family_class_dispatch_on_non_builtins_generates_new_class_slow (line 70) | def test_family_class_dispatch_on_non_builtins_generates_new_class_slow( FILE: backend/tests/unit/onyx/connectors/mediawiki/test_wiki.py function site (line 19) | def site() -> pywikibot.Site: function test_pywikibot_timestamp_to_utc_datetime (line 23) | def test_pywikibot_timestamp_to_utc_datetime() -> None: class MockPage (line 38) | class MockPage(pywikibot.Page): method __init__ (line 39) | def __init__( method _sections_helper (line 48) | def _sections_helper(self) -> list[str]: method text (line 55) | def text(self) -> str: method pageid (line 62) | def pageid(self) -> str: method full_url (line 65) | def full_url(self) -> str: method categories (line 68) | def categories( method latest_revision (line 82) | def latest_revision(self) -> pywikibot.page.Revision: function test_get_doc_from_page (line 89) | def test_get_doc_from_page(site: pywikibot.Site) -> None: function test_mediawiki_connector_recurse_depth (line 114) | def test_mediawiki_connector_recurse_depth() -> None: function test_load_from_state_calls_poll_source_with_nones (line 144) | def test_load_from_state_calls_poll_source_with_nones(mocker: MockFixtur... FILE: backend/tests/unit/onyx/connectors/notion/test_notion_datasource.py function _make_connector (line 17) | def _make_connector() -> NotionConnector: function _mock_response (line 23) | def _mock_response(json_data: dict, status_code: int = 200) -> MagicMock: class TestFetchDataSourcesForDatabase (line 36) | class TestFetchDataSourcesForDatabase: method test_multi_source_database (line 37) | def test_multi_source_database(self) -> None: method test_single_source_database (line 59) | def test_single_source_database(self) -> None: method test_404_returns_empty (line 75) | def test_404_returns_empty(self) -> None: class TestFetchDataSource (line 86) | class TestFetchDataSource: method test_query_returns_pages (line 87) | def test_query_returns_pages(self) -> None: method test_404_returns_empty_results (line 110) | def test_404_returns_empty_results(self) -> None: class TestGetParentRawId (line 121) | class TestGetParentRawId: method test_database_id_parent (line 122) | def test_database_id_parent(self) -> None: method test_data_source_id_with_mapping (line 127) | def test_data_source_id_with_mapping(self) -> None: method test_data_source_id_without_mapping_falls_back (line 133) | def test_data_source_id_without_mapping_falls_back(self) -> None: method test_workspace_parent (line 139) | def test_workspace_parent(self) -> None: method test_page_id_parent (line 145) | def test_page_id_parent(self) -> None: method test_block_id_parent_with_mapping (line 150) | def test_block_id_parent_with_mapping(self) -> None: method test_block_id_parent_without_mapping_falls_back (line 160) | def test_block_id_parent_without_mapping_falls_back(self) -> None: method test_none_parent_defaults_to_workspace (line 166) | def test_none_parent_defaults_to_workspace(self) -> None: class TestReadPagesFromDatabaseMultiSource (line 172) | class TestReadPagesFromDatabaseMultiSource: method test_queries_all_data_sources (line 173) | def test_queries_all_data_sources(self) -> None: method test_collects_pages_from_all_sources (line 206) | def test_collects_pages_from_all_sources(self) -> None: method test_pagination_across_pages (line 240) | def test_pagination_across_pages(self) -> None: class TestInTrashField (line 275) | class TestInTrashField: method test_notion_page_accepts_in_trash (line 276) | def test_notion_page_accepts_in_trash(self) -> None: method test_notion_page_in_trash_true (line 287) | def test_notion_page_in_trash_true(self) -> None: class TestFetchDatabaseAsPage (line 299) | class TestFetchDatabaseAsPage: method test_handles_missing_properties (line 300) | def test_handles_missing_properties(self) -> None: FILE: backend/tests/unit/onyx/connectors/salesforce/test_salesforce_custom_config.py function test_custom_query_config (line 18) | def test_custom_query_config() -> None: function test_traditional_config (line 53) | def test_traditional_config() -> None: function test_validation (line 71) | def test_validation() -> None: FILE: backend/tests/unit/onyx/connectors/salesforce/test_salesforce_sqlite.py function _clear_sf_db (line 142) | def _clear_sf_db(directory: str) -> None: function _create_csv_file_and_update_db (line 149) | def _create_csv_file_and_update_db( function _create_csv_with_example_data (line 185) | def _create_csv_with_example_data(sf_db: OnyxSalesforceSQLite) -> None: function _test_query (line 378) | def _test_query(sf_db: OnyxSalesforceSQLite) -> None: function _test_upsert (line 461) | def _test_upsert(sf_db: OnyxSalesforceSQLite) -> None: function _test_relationships (line 507) | def _test_relationships(sf_db: OnyxSalesforceSQLite) -> None: function _test_account_with_children (line 572) | def _test_account_with_children(sf_db: OnyxSalesforceSQLite) -> None: function _test_relationship_updates (line 636) | def _test_relationship_updates(sf_db: OnyxSalesforceSQLite) -> None: function _test_get_affected_parent_ids (line 689) | def _test_get_affected_parent_ids(sf_db: OnyxSalesforceSQLite) -> None: function test_salesforce_sqlite (line 788) | def test_salesforce_sqlite() -> None: function test_salesforce_bulk_retrieve (line 817) | def test_salesforce_bulk_retrieve() -> None: function test_normalize_record (line 910) | def test_normalize_record() -> None: function _get_child_records_by_id_query (line 939) | def _get_child_records_by_id_query( function test_salesforce_connector_single (line 972) | def test_salesforce_connector_single() -> None: FILE: backend/tests/unit/onyx/connectors/salesforce/test_yield_doc_batches.py class TestConvertToMetadataValue (line 19) | class TestConvertToMetadataValue: method test_string_value (line 22) | def test_string_value(self) -> None: method test_boolean_true (line 27) | def test_boolean_true(self) -> None: method test_boolean_false (line 31) | def test_boolean_false(self) -> None: method test_integer_value (line 35) | def test_integer_value(self) -> None: method test_float_value (line 41) | def test_float_value(self) -> None: method test_list_of_strings (line 47) | def test_list_of_strings(self) -> None: method test_list_of_mixed_types (line 52) | def test_list_of_mixed_types(self) -> None: method test_empty_list (line 57) | def test_empty_list(self) -> None: class TestYieldDocBatches (line 62) | class TestYieldDocBatches: method connector (line 66) | def connector(self) -> SalesforceConnector: method mock_sf_db (line 79) | def mock_sf_db(self) -> MagicMock: method _create_salesforce_object (line 83) | def _create_salesforce_object( method test_metadata_type_conversion_for_opportunity (line 97) | def test_metadata_type_conversion_for_opportunity( method test_missing_optional_metadata_fields (line 195) | def test_missing_optional_metadata_fields( method test_contact_metadata_fields (line 263) | def test_contact_metadata_fields( method test_no_default_attributes_for_unknown_type (line 323) | def test_no_default_attributes_for_unknown_type( method test_skips_missing_parent_objects (line 383) | def test_skips_missing_parent_objects( method test_multiple_documents_batching (line 431) | def test_multiple_documents_batching( FILE: backend/tests/unit/onyx/connectors/sharepoint/test_delta_checkpointing.py function _make_item (line 52) | def _make_item(item_id: str, name: str = "doc.pdf") -> DriveItemData: function _make_document (line 62) | def _make_document(item: DriveItemData) -> Document: function _consume_generator (line 72) | def _consume_generator( function _docs_from (line 87) | def _docs_from(yielded: list[Any]) -> list[Document]: function _failures_from (line 91) | def _failures_from(yielded: list[Any]) -> list[ConnectorFailure]: function _build_ready_checkpoint (line 95) | def _build_ready_checkpoint( function _setup_connector (line 112) | def _setup_connector(monkeypatch: pytest.MonkeyPatch) -> SharepointConne... function _mock_convert (line 136) | def _mock_convert(monkeypatch: pytest.MonkeyPatch) -> None: class TestDeltaPerPageCheckpointing (line 163) | class TestDeltaPerPageCheckpointing: method test_processes_one_page_per_cycle (line 167) | def test_processes_one_page_per_cycle( method test_resume_after_simulated_crash (line 235) | def test_resume_after_simulated_crash( method test_single_page_drive_completes_in_one_cycle (line 300) | def test_single_page_drive_completes_in_one_cycle( class TestBfsPathNoCheckpointing (line 334) | class TestBfsPathNoCheckpointing: method test_bfs_processes_all_at_once (line 338) | def test_bfs_processes_all_at_once(self, monkeypatch: pytest.MonkeyPat... class TestDelta410GoneResync (line 370) | class TestDelta410GoneResync: method test_410_stores_full_resync_url (line 374) | def test_410_stores_full_resync_url(self, monkeypatch: pytest.MonkeyPa... class TestDeltaPageFetchFailure (line 422) | class TestDeltaPageFetchFailure: method test_page_fetch_error_yields_failure_and_clears_state (line 426) | def test_page_fetch_error_yields_failure_and_clears_state( class TestDeltaDuplicateDocumentDedup (line 460) | class TestDeltaDuplicateDocumentDedup: method test_duplicate_across_pages_is_skipped (line 465) | def test_duplicate_across_pages_is_skipped( method test_duplicate_within_same_page_is_skipped (line 512) | def test_duplicate_within_same_page_is_skipped( method test_seen_ids_survive_checkpoint_serialization (line 542) | def test_seen_ids_survive_checkpoint_serialization( method test_no_dedup_across_separate_indexing_runs (line 599) | def test_no_dedup_across_separate_indexing_runs( method test_same_id_across_drives_not_skipped (line 638) | def test_same_id_across_drives_not_skipped( FILE: backend/tests/unit/onyx/connectors/sharepoint/test_denylist.py class TestIsSiteExcluded (line 13) | class TestIsSiteExcluded: method test_exact_match (line 14) | def test_exact_match(self) -> None: method test_trailing_slash_mismatch (line 20) | def test_trailing_slash_mismatch(self) -> None: method test_glob_wildcard (line 26) | def test_glob_wildcard(self) -> None: method test_no_match (line 32) | def test_no_match(self) -> None: method test_empty_patterns (line 38) | def test_empty_patterns(self) -> None: method test_multiple_patterns (line 44) | def test_multiple_patterns(self) -> None: class TestIsPathExcluded (line 59) | class TestIsPathExcluded: method test_filename_glob (line 60) | def test_filename_glob(self) -> None: method test_filename_only (line 63) | def test_filename_only(self) -> None: method test_office_lock_files (line 66) | def test_office_lock_files(self) -> None: method test_folder_glob (line 69) | def test_folder_glob(self) -> None: method test_nested_folder_glob (line 72) | def test_nested_folder_glob(self) -> None: method test_no_match (line 75) | def test_no_match(self) -> None: method test_empty_patterns (line 78) | def test_empty_patterns(self) -> None: method test_multiple_patterns (line 81) | def test_multiple_patterns(self) -> None: class TestBuildItemRelativePath (line 89) | class TestBuildItemRelativePath: method test_with_folder (line 90) | def test_with_folder(self) -> None: method test_root_level (line 98) | def test_root_level(self) -> None: method test_none_parent (line 104) | def test_none_parent(self) -> None: method test_percent_encoded_folder (line 107) | def test_percent_encoded_folder(self) -> None: method test_no_root_marker (line 113) | def test_no_root_marker(self) -> None: class TestFilterExcludedSites (line 117) | class TestFilterExcludedSites: method test_filters_matching_sites (line 118) | def test_filters_matching_sites(self) -> None: method test_empty_excluded_returns_all (line 138) | def test_empty_excluded_returns_all(self) -> None: class TestIsDriveitemExcluded (line 156) | class TestIsDriveitemExcluded: method test_excluded_by_extension (line 157) | def test_excluded_by_extension(self) -> None: method test_not_excluded (line 167) | def test_not_excluded(self) -> None: method test_no_patterns_never_excludes (line 177) | def test_no_patterns_never_excludes(self) -> None: method test_folder_pattern (line 187) | def test_folder_pattern(self) -> None: method test_whitespace_patterns_ignored (line 201) | def test_whitespace_patterns_ignored(self, whitespace_pattern: str) ->... method test_whitespace_padded_patterns_are_trimmed (line 205) | def test_whitespace_padded_patterns_are_trimmed(self) -> None: FILE: backend/tests/unit/onyx/connectors/sharepoint/test_drive_matching.py class _FakeQuery (line 22) | class _FakeQuery: method __init__ (line 23) | def __init__(self, payload: Sequence[Any]) -> None: method execute_query (line 26) | def execute_query(self) -> Sequence[Any]: class _FakeDrive (line 30) | class _FakeDrive: method __init__ (line 31) | def __init__(self, name: str) -> None: class _FakeDrivesCollection (line 37) | class _FakeDrivesCollection: method __init__ (line 38) | def __init__(self, drives: Sequence[_FakeDrive]) -> None: method get (line 41) | def get(self) -> _FakeQuery: class _FakeSite (line 45) | class _FakeSite: method __init__ (line 46) | def __init__(self, drives: Sequence[_FakeDrive]) -> None: class _FakeSites (line 50) | class _FakeSites: method __init__ (line 51) | def __init__(self, drives: Sequence[_FakeDrive]) -> None: method get_by_url (line 54) | def get_by_url(self, _url: str) -> _FakeSite: class _FakeGraphClient (line 58) | class _FakeGraphClient: method __init__ (line 59) | def __init__(self, drives: Sequence[_FakeDrive]) -> None: function _build_connector (line 72) | def _build_connector(drives: Sequence[_FakeDrive]) -> SharepointConnector: function _fake_iter_drive_items_paged (line 78) | def _fake_iter_drive_items_paged( function _fake_iter_drive_items_delta (line 89) | def _fake_iter_drive_items_delta( function test_fetch_driveitems_matches_international_drive_names (line 107) | def test_fetch_driveitems_matches_international_drive_names( function test_get_drive_items_for_drive_id_matches_map (line 142) | def test_get_drive_items_for_drive_id_matches_map( function test_load_from_checkpoint_maps_drive_name (line 170) | def test_load_from_checkpoint_maps_drive_name(monkeypatch: pytest.Monkey... function test_get_drive_items_uses_delta_when_no_folder_path (line 283) | def test_get_drive_items_uses_delta_when_no_folder_path( function test_get_drive_items_uses_paged_when_folder_path_set (line 326) | def test_get_drive_items_uses_paged_when_folder_path_set( function test_iter_drive_items_delta_uses_timestamp_token (line 369) | def test_iter_drive_items_delta_uses_timestamp_token( function test_iter_drive_items_delta_full_crawl_when_no_start (line 412) | def test_iter_drive_items_delta_full_crawl_when_no_start( function test_iter_drive_items_delta_skips_folders_and_deleted (line 442) | def test_iter_drive_items_delta_skips_folders_and_deleted( function test_iter_drive_items_delta_handles_410_gone (line 478) | def test_iter_drive_items_delta_handles_410_gone( FILE: backend/tests/unit/onyx/connectors/sharepoint/test_fetch_site_pages.py function _site_descriptor (line 27) | def _site_descriptor() -> SiteDescriptor: function _make_http_error (line 31) | def _make_http_error( function _setup_connector (line 44) | def _setup_connector( function _patch_graph_api_get_json (line 72) | def _patch_graph_api_get_json( class TestFetchSitePages404 (line 79) | class TestFetchSitePages404: method test_404_yields_no_pages (line 80) | def test_404_yields_no_pages(self, monkeypatch: pytest.MonkeyPatch) ->... method test_404_does_not_raise (line 96) | def test_404_does_not_raise(self, monkeypatch: pytest.MonkeyPatch) -> ... method test_non_404_http_error_still_raises (line 112) | def test_non_404_http_error_still_raises( method test_successful_fetch_yields_pages (line 130) | def test_successful_fetch_yields_pages( method test_404_on_second_page_stops_pagination (line 156) | def test_404_on_second_page_stops_pagination( class TestFetchSitePages400Fallback (line 192) | class TestFetchSitePages400Fallback: method test_fallback_expands_good_pages_individually (line 214) | def test_fallback_expands_good_pages_individually( method test_mid_pagination_400_does_not_duplicate (line 254) | def test_mid_pagination_400_does_not_duplicate( method test_non_invalid_request_400_still_raises (line 308) | def test_non_invalid_request_400_still_raises( FILE: backend/tests/unit/onyx/connectors/sharepoint/test_hierarchy_helpers.py function test_extract_folder_path_from_parent_reference_with_folder (line 8) | def test_extract_folder_path_from_parent_reference_with_folder() -> None: function test_extract_folder_path_from_parent_reference_nested_folder (line 18) | def test_extract_folder_path_from_parent_reference_nested_folder() -> None: function test_extract_folder_path_from_parent_reference_at_root (line 27) | def test_extract_folder_path_from_parent_reference_at_root() -> None: function test_extract_folder_path_from_parent_reference_at_root_with_slash (line 37) | def test_extract_folder_path_from_parent_reference_at_root_with_slash() ... function test_extract_folder_path_from_parent_reference_none (line 46) | def test_extract_folder_path_from_parent_reference_none() -> None: function test_extract_folder_path_from_parent_reference_empty (line 54) | def test_extract_folder_path_from_parent_reference_empty() -> None: function test_extract_folder_path_from_parent_reference_no_root (line 62) | def test_extract_folder_path_from_parent_reference_no_root() -> None: function test_build_folder_url_simple (line 72) | def test_build_folder_url_simple() -> None: function test_build_folder_url_nested (line 85) | def test_build_folder_url_nested() -> None: function test_build_folder_url_with_spaces (line 100) | def test_build_folder_url_with_spaces() -> None: FILE: backend/tests/unit/onyx/connectors/sharepoint/test_rest_client_context_caching.py function _make_connector (line 17) | def _make_connector() -> SharepointConnector: function _noop_load_credentials (line 26) | def _noop_load_credentials(connector: SharepointConnector) -> MagicMock: function _fresh_client_context (line 37) | def _fresh_client_context() -> MagicMock: function test_returns_cached_context_within_max_age (line 47) | def test_returns_cached_context_within_max_age( function test_rebuilds_context_after_max_age (line 66) | def test_rebuilds_context_after_max_age( function test_rebuilds_context_on_site_change (line 89) | def test_rebuilds_context_on_site_change( function test_load_credentials_called_on_rebuild (line 108) | def test_load_credentials_called_on_rebuild( FILE: backend/tests/unit/onyx/connectors/sharepoint/test_url_parsing.py function test_extract_site_and_drive_info_from_share_link (line 6) | def test_extract_site_and_drive_info_from_share_link() -> None: function test_extract_site_and_drive_info_standard_url (line 18) | def test_extract_site_and_drive_info_standard_url() -> None: FILE: backend/tests/unit/onyx/connectors/slab/test_slab_validation.py function _build_connector (line 9) | def _build_connector(base_url: str = "https://myteam.slab.com") -> SlabC... function test_validate_rejects_missing_scheme (line 15) | def test_validate_rejects_missing_scheme() -> None: function test_validate_success (line 22) | def test_validate_success(mock_get_posts: object) -> None: # noqa: ARG001 function test_validate_bad_token_raises (line 31) | def test_validate_bad_token_raises( FILE: backend/tests/unit/onyx/connectors/slack/test_message_filtering.py function test_default_msg_filter (line 79) | def test_default_msg_filter( function test_bot_inclusive_msg_filter (line 126) | def test_bot_inclusive_msg_filter( function test_default_filter_when_include_bot_messages_false (line 136) | def test_default_filter_when_include_bot_messages_false() -> None: function test_bot_inclusive_filter_when_include_bot_messages_true (line 142) | def test_bot_inclusive_filter_when_include_bot_messages_true() -> None: function test_include_bot_messages_defaults_to_false (line 148) | def test_include_bot_messages_defaults_to_false() -> None: FILE: backend/tests/unit/onyx/connectors/teams/test_collect_teams.py function test_special_characters_in_team_names (line 8) | def test_special_characters_in_team_names() -> None: function test_single_quote_escaping (line 44) | def test_single_quote_escaping() -> None: function test_helper_functions (line 75) | def test_helper_functions() -> None: FILE: backend/tests/unit/onyx/connectors/test_connector_factory.py class TestConnectorMappingValidation (line 28) | class TestConnectorMappingValidation: method test_all_connector_mappings_exist (line 31) | def test_all_connector_mappings_exist(self) -> None: method test_no_duplicate_mappings (line 61) | def test_no_duplicate_mappings(self) -> None: method test_blob_storage_connectors_correct (line 70) | def test_blob_storage_connectors_correct(self) -> None: class TestConnectorClassLoading (line 90) | class TestConnectorClassLoading: method setup_method (line 93) | def setup_method(self) -> None: method test_load_connector_class_success (line 97) | def test_load_connector_class_success(self) -> None: method test_load_connector_class_caching (line 106) | def test_load_connector_class_caching(self) -> None: method test_load_connector_class_import_error (line 121) | def test_load_connector_class_import_error(self, mock_import: Mock) ->... method test_load_connector_class_attribute_error (line 134) | def test_load_connector_class_attribute_error(self, mock_import: Mock)... class TestIdentifyConnectorClass (line 155) | class TestIdentifyConnectorClass: method setup_method (line 158) | def setup_method(self) -> None: method test_identify_connector_basic (line 162) | def test_identify_connector_basic(self) -> None: method test_identify_connector_slack_special_case (line 172) | def test_identify_connector_slack_special_case(self) -> None: method test_identify_connector_without_input_type (line 187) | def test_identify_connector_without_input_type(self) -> None: class TestConnectorMappingIntegrity (line 195) | class TestConnectorMappingIntegrity: method test_all_document_sources_mapped (line 198) | def test_all_document_sources_mapped(self) -> None: method test_mapping_format_consistency (line 220) | def test_mapping_format_consistency(self) -> None: class TestInstantiateConnectorIntegration (line 241) | class TestInstantiateConnectorIntegration: method setup_method (line 244) | def setup_method(self) -> None: method test_instantiate_connector_loads_class_lazily (line 248) | def test_instantiate_connector_loads_class_lazily(self) -> None: FILE: backend/tests/unit/onyx/connectors/test_document_metadata_coercion.py function _minimal_doc_kwargs (line 7) | def _minimal_doc_kwargs(metadata: dict) -> dict: function test_int_values_coerced_to_str (line 17) | def test_int_values_coerced_to_str() -> None: function test_float_values_coerced_to_str (line 22) | def test_float_values_coerced_to_str() -> None: function test_bool_values_coerced_to_str (line 27) | def test_bool_values_coerced_to_str() -> None: function test_list_of_ints_coerced_to_list_of_str (line 32) | def test_list_of_ints_coerced_to_list_of_str() -> None: function test_list_of_mixed_types_coerced_to_list_of_str (line 37) | def test_list_of_mixed_types_coerced_to_list_of_str() -> None: function test_list_of_dicts_coerced_to_list_of_str (line 42) | def test_list_of_dicts_coerced_to_list_of_str() -> None: function test_dict_value_coerced_to_str (line 48) | def test_dict_value_coerced_to_str() -> None: function test_none_value_coerced_to_str (line 54) | def test_none_value_coerced_to_str() -> None: function test_already_valid_str_values_unchanged (line 59) | def test_already_valid_str_values_unchanged() -> None: function test_already_valid_list_of_str_unchanged (line 64) | def test_already_valid_list_of_str_unchanged() -> None: function test_empty_metadata_unchanged (line 69) | def test_empty_metadata_unchanged() -> None: function test_mixed_metadata_values (line 74) | def test_mixed_metadata_values() -> None: function test_coercion_works_on_base_class (line 90) | def test_coercion_works_on_base_class() -> None: FILE: backend/tests/unit/onyx/connectors/test_microsoft_graph_env.py function test_resolve_global_defaults (line 8) | def test_resolve_global_defaults() -> None: function test_resolve_gcc_high (line 16) | def test_resolve_gcc_high() -> None: function test_resolve_dod (line 26) | def test_resolve_dod() -> None: function test_trailing_slashes_are_stripped (line 34) | def test_trailing_slashes_are_stripped() -> None: function test_mismatched_authority_raises (line 41) | def test_mismatched_authority_raises() -> None: function test_unknown_graph_host_raises (line 48) | def test_unknown_graph_host_raises() -> None: FILE: backend/tests/unit/onyx/connectors/utils.py class SingleConnectorCallOutput (line 20) | class SingleConnectorCallOutput(BaseModel, Generic[CT]): function load_everything_from_checkpoint_connector (line 25) | def load_everything_from_checkpoint_connector( function load_everything_from_checkpoint_connector_from_checkpoint (line 37) | def load_everything_from_checkpoint_connector_from_checkpoint( FILE: backend/tests/unit/onyx/connectors/zendesk/test_zendesk_checkpointing.py function mock_zendesk_client (line 24) | def mock_zendesk_client() -> MagicMock: function zendesk_connector (line 34) | def zendesk_connector( function unmocked_zendesk_connector (line 44) | def unmocked_zendesk_connector() -> Generator[ZendeskConnector, None, No... function create_mock_article (line 54) | def create_mock_article() -> Callable[..., dict[str, Any]]: function create_mock_ticket (line 80) | def create_mock_ticket() -> Callable[..., dict[str, Any]]: function create_mock_author (line 110) | def create_mock_author() -> Callable[..., dict[str, Any]]: function test_load_from_checkpoint_articles_happy_path (line 128) | def test_load_from_checkpoint_articles_happy_path( function test_load_from_checkpoint_tickets_happy_path (line 184) | def test_load_from_checkpoint_tickets_happy_path( function test_load_from_checkpoint_with_rate_limit (line 247) | def test_load_from_checkpoint_with_rate_limit( function test_load_from_checkpoint_with_empty_response (line 326) | def test_load_from_checkpoint_with_empty_response( function test_load_from_checkpoint_with_skipped_article (line 356) | def test_load_from_checkpoint_with_skipped_article( function test_load_from_checkpoint_with_skipped_ticket (line 388) | def test_load_from_checkpoint_with_skipped_ticket( function test_validate_connector_settings_errors (line 441) | def test_validate_connector_settings_errors( function test_validate_connector_settings_success (line 462) | def test_validate_connector_settings_success( FILE: backend/tests/unit/onyx/connectors/zendesk/test_zendesk_rate_limit.py class _FakeTime (line 10) | class _FakeTime: method __init__ (line 17) | def __init__(self) -> None: method monotonic (line 20) | def monotonic(self) -> float: method sleep (line 23) | def sleep(self, seconds: float) -> None: class _FakeResponse (line 28) | class _FakeResponse: method __init__ (line 29) | def __init__(self, json_payload: Dict[str, Any], status_code: int = 20... method json (line 34) | def json(self) -> Dict[str, Any]: method raise_for_status (line 37) | def raise_for_status(self) -> None: function test_zendesk_client_per_minute_rate_limiting (line 42) | def test_zendesk_client_per_minute_rate_limiting( FILE: backend/tests/unit/onyx/context/search/federated/test_slack_query_construction.py class TestChannelPatternMatching (line 10) | class TestChannelPatternMatching: method test_exact_match (line 13) | def test_exact_match(self) -> None: method test_glob_pattern_star (line 18) | def test_glob_pattern_star(self) -> None: method test_multiple_patterns (line 35) | def test_multiple_patterns(self) -> None: method test_hash_prefix_normalization (line 44) | def test_hash_prefix_normalization(self) -> None: method test_case_insensitive (line 55) | def test_case_insensitive(self) -> None: method test_whitespace_handling (line 61) | def test_whitespace_handling(self) -> None: class TestChannelQueryFilterBuilding (line 67) | class TestChannelQueryFilterBuilding: method test_specific_channels_no_exclude (line 70) | def test_specific_channels_no_exclude(self) -> None: method test_specific_channels_with_exclude (line 83) | def test_specific_channels_with_exclude(self) -> None: method test_all_channels_no_exclude (line 101) | def test_all_channels_no_exclude(self) -> None: method test_all_channels_with_exclude (line 110) | def test_all_channels_with_exclude(self) -> None: method test_empty_channels_list (line 135) | def test_empty_channels_list(self) -> None: method test_channel_name_normalization (line 148) | def test_channel_name_normalization(self) -> None: method test_invalid_entities (line 161) | def test_invalid_entities(self) -> None: method test_no_available_channels (line 170) | def test_no_available_channels(self) -> None: class TestDateExtraction (line 184) | class TestDateExtraction: method test_extract_explicit_days (line 187) | def test_extract_explicit_days(self) -> None: method test_enforce_default_search_days_limit (line 205) | def test_enforce_default_search_days_limit(self) -> None: method test_no_date_mentioned (line 224) | def test_no_date_mentioned(self) -> None: method test_llm_failure_fallback (line 241) | def test_llm_failure_fallback(self) -> None: class TestChannelTypeFiltering (line 258) | class TestChannelTypeFiltering: method test_include_public_channels_always (line 261) | def test_include_public_channels_always(self) -> None: method test_filter_dm_based_on_entities (line 274) | def test_filter_dm_based_on_entities(self) -> None: method test_filter_group_dm (line 288) | def test_filter_group_dm(self) -> None: method test_filter_private_channels (line 301) | def test_filter_private_channels(self) -> None: method test_invalid_entities_default_behavior (line 321) | def test_invalid_entities_default_behavior(self) -> None: FILE: backend/tests/unit/onyx/context/search/federated/test_slack_thread_context.py function _create_mock_message (line 19) | def _create_mock_message( class TestSlackRateLimitError (line 42) | class TestSlackRateLimitError: method test_exception_is_raised (line 45) | def test_exception_is_raised(self) -> None: class TestThreadContextResult (line 51) | class TestThreadContextResult: method test_success_result (line 54) | def test_success_result(self) -> None: method test_rate_limited_result (line 61) | def test_rate_limited_result(self) -> None: method test_error_result (line 68) | def test_error_result(self) -> None: class TestFetchThreadContext (line 76) | class TestFetchThreadContext: method test_non_thread_message_returns_success (line 79) | def test_non_thread_message_returns_success(self) -> None: method test_rate_limit_returns_rate_limited_result (line 90) | def test_rate_limit_returns_rate_limited_result( method test_other_api_error_returns_error_result (line 114) | def test_other_api_error_returns_error_result( method test_unexpected_exception_returns_error_result (line 137) | def test_unexpected_exception_returns_error_result( method test_successful_thread_fetch_returns_context (line 155) | def test_successful_thread_fetch_returns_context( class TestFetchThreadContextsWithRateLimitHandling (line 199) | class TestFetchThreadContextsWithRateLimitHandling: method test_empty_message_list_returns_empty (line 202) | def test_empty_message_list_returns_empty(self) -> None: method test_batch_processing_respects_batch_size (line 216) | def test_batch_processing_respects_batch_size( method test_rate_limit_stops_further_batches (line 246) | def test_rate_limit_stops_further_batches( method test_other_errors_dont_stop_processing (line 296) | def test_other_errors_dont_stop_processing( class TestMaxMessagesLimit (line 338) | class TestMaxMessagesLimit: method test_max_messages_limits_context_fetches (line 345) | def test_max_messages_limits_context_fetches( method test_max_messages_none_fetches_all (line 388) | def test_max_messages_none_fetches_all( method test_max_messages_greater_than_total_fetches_all (line 420) | def test_max_messages_greater_than_total_fetches_all( FILE: backend/tests/unit/onyx/db/conftest.py function model_attrs (line 12) | def model_attrs(obj: object) -> dict[str, Any]: function mock_db_session (line 23) | def mock_db_session() -> MagicMock: function scim_dal (line 29) | def scim_dal(mock_db_session: MagicMock) -> ScimDAL: FILE: backend/tests/unit/onyx/db/test_assign_default_groups.py function _mock_user (line 25) | def _mock_user( function _mock_group (line 36) | def _mock_group(name: str = "Basic", group_id: int = 1) -> MagicMock: function _make_query_chain (line 44) | def _make_query_chain(first_return: object = None) -> MagicMock: function _setup_db_session (line 52) | def _setup_db_session( function test_standard_user_assigned_to_basic_group (line 73) | def test_standard_user_assigned_to_basic_group() -> None: function test_admin_user_assigned_to_admin_group (line 90) | def test_admin_user_assigned_to_admin_group() -> None: function test_excluded_account_types_skipped (line 109) | def test_excluded_account_types_skipped(account_type: AccountType) -> None: function test_service_account_not_skipped (line 119) | def test_service_account_not_skipped() -> None: function test_missing_default_group_raises_error (line 131) | def test_missing_default_group_raises_error() -> None: function test_already_in_group_is_noop (line 139) | def test_already_in_group_is_noop() -> None: function test_integrity_error_race_condition_handled (line 153) | def test_integrity_error_race_condition_handled() -> None: function test_no_commit_called_on_successful_assignment (line 167) | def test_no_commit_called_on_successful_assignment() -> None: FILE: backend/tests/unit/onyx/db/test_chat_sessions.py function _make_session (line 22) | def _make_session( function user_id (line 42) | def user_id() -> UUID: function old_time (line 47) | def old_time() -> datetime: function recent_time (line 53) | def recent_time() -> datetime: class TestGetChatSessionsByUser (line 58) | class TestGetChatSessionsByUser: method test_filters_out_failed_sessions (line 61) | def test_filters_out_failed_sessions( method test_keeps_recent_sessions_without_messages (line 93) | def test_keeps_recent_sessions_without_messages( method test_include_failed_chats_skips_filtering (line 119) | def test_include_failed_chats_skips_filtering( method test_limit_applied_after_filtering (line 144) | def test_limit_applied_after_filtering( method test_mixed_recent_and_old_sessions (line 174) | def test_mixed_recent_and_old_sessions( method test_empty_result (line 208) | def test_empty_result(self, user_id: UUID) -> None: FILE: backend/tests/unit/onyx/db/test_dal.py class TestDALSessionDelegation (line 9) | class TestDALSessionDelegation: method test_commit (line 12) | def test_commit(self) -> None: method test_flush (line 18) | def test_flush(self) -> None: method test_rollback (line 24) | def test_rollback(self) -> None: method test_session_property_exposes_underlying_session (line 30) | def test_session_property_exposes_underlying_session(self) -> None: method test_commit_propagates_exception (line 35) | def test_commit_propagates_exception(self) -> None: class TestDALFromTenant (line 43) | class TestDALFromTenant: method test_yields_dal_with_tenant_session (line 47) | def test_yields_dal_with_tenant_session(self, mock_get_session: MagicM... method test_session_closed_after_context_exits (line 59) | def test_session_closed_after_context_exits( method test_session_closed_on_exception (line 72) | def test_session_closed_on_exception(self, mock_get_session: MagicMock... method test_subclass_from_tenant_returns_subclass_instance (line 84) | def test_subclass_from_tenant_returns_subclass_instance( method test_uncommitted_changes_not_auto_committed (line 99) | def test_uncommitted_changes_not_auto_committed( FILE: backend/tests/unit/onyx/db/test_delete_user.py function _mock_user (line 16) | def _mock_user( function _make_query_chain (line 26) | def _make_query_chain() -> MagicMock: function test_delete_user_nulls_out_document_set_ownership (line 38) | def test_delete_user_nulls_out_document_set_ownership( function test_delete_user_cleans_up_join_tables (line 75) | def test_delete_user_cleans_up_join_tables( function test_delete_user_commits_and_removes_invited (line 103) | def test_delete_user_commits_and_removes_invited( function test_delete_user_deletes_oauth_accounts (line 122) | def test_delete_user_deletes_oauth_accounts( FILE: backend/tests/unit/onyx/db/test_llm_sync.py class TestSyncModelConfigurations (line 13) | class TestSyncModelConfigurations: method test_inserts_new_models (line 16) | def test_inserts_new_models(self) -> None: method test_skips_existing_models (line 55) | def test_skips_existing_models(self) -> None: method test_no_commit_when_no_new_models (line 94) | def test_no_commit_when_no_new_models(self) -> None: method test_raises_on_missing_provider (line 126) | def test_raises_on_missing_provider(self) -> None: method test_handles_missing_optional_fields (line 138) | def test_handles_missing_optional_fields(self) -> None: FILE: backend/tests/unit/onyx/db/test_persona_display_priority.py function _persona (line 9) | def _persona(persona_id: int, display_priority: int) -> SimpleNamespace: function test_update_display_priority_updates_subset (line 13) | def test_update_display_priority_updates_subset( function test_update_display_priority_invalid_ids (line 37) | def test_update_display_priority_invalid_ids(monkeypatch: pytest.MonkeyP... FILE: backend/tests/unit/onyx/db/test_projects_upload_task_expiry.py function _make_mock_user_file (line 20) | def _make_mock_user_file() -> MagicMock: function test_send_task_includes_expires (line 32) | def test_send_task_includes_expires( FILE: backend/tests/unit/onyx/db/test_scim_dal.py class TestScimDALTokens (line 14) | class TestScimDALTokens: method test_create_token_adds_to_session (line 17) | def test_create_token_adds_to_session( method test_get_token_by_hash_queries_session (line 39) | def test_get_token_by_hash_queries_session( method test_revoke_token_sets_inactive (line 57) | def test_revoke_token_sets_inactive( method test_revoke_nonexistent_token_raises (line 75) | def test_revoke_nonexistent_token_raises( class TestScimDALUserMappings (line 84) | class TestScimDALUserMappings: method test_create_user_mapping (line 87) | def test_create_user_mapping( method test_delete_user_mapping (line 108) | def test_delete_user_mapping( method test_delete_nonexistent_user_mapping_is_idempotent (line 118) | def test_delete_nonexistent_user_mapping_is_idempotent( method test_update_user_mapping_external_id (line 132) | def test_update_user_mapping_external_id( method test_update_nonexistent_user_mapping_raises (line 144) | def test_update_nonexistent_user_mapping_raises( class TestScimDALGroupMappings (line 153) | class TestScimDALGroupMappings: method test_create_group_mapping (line 156) | def test_create_group_mapping( method test_delete_group_mapping (line 169) | def test_delete_group_mapping( method test_delete_nonexistent_group_mapping_is_idempotent (line 179) | def test_delete_nonexistent_group_mapping_is_idempotent( FILE: backend/tests/unit/onyx/db/test_tools.py function test_create_tool_call_no_commit_sanitizes_fields (line 7) | def test_create_tool_call_no_commit_sanitizes_fields() -> None: FILE: backend/tests/unit/onyx/db/test_usage.py class TestGetCurrentWindowStart (line 20) | class TestGetCurrentWindowStart: method test_weekly_window_aligns_to_monday (line 23) | def test_weekly_window_aligns_to_monday(self) -> None: method test_window_start_is_timezone_aware (line 37) | def test_window_start_is_timezone_aware(self) -> None: class TestGetOrCreateTenantUsage (line 43) | class TestGetOrCreateTenantUsage: method test_creates_or_gets_usage_record (line 46) | def test_creates_or_gets_usage_record(self) -> None: method test_returns_usage_record_from_atomic_upsert (line 65) | def test_returns_usage_record_from_atomic_upsert(self) -> None: class TestGetTenantUsageStats (line 82) | class TestGetTenantUsageStats: method test_returns_zero_stats_when_no_record_exists (line 85) | def test_returns_zero_stats_when_no_record_exists(self) -> None: method test_returns_actual_stats_when_record_exists (line 98) | def test_returns_actual_stats_when_record_exists(self) -> None: class TestIncrementUsage (line 118) | class TestIncrementUsage: method test_increments_llm_cost (line 121) | def test_increments_llm_cost(self) -> None: method test_increments_chunks_indexed (line 134) | def test_increments_chunks_indexed(self) -> None: method test_increments_api_calls (line 146) | def test_increments_api_calls(self) -> None: method test_increments_non_streaming_calls (line 158) | def test_increments_non_streaming_calls(self) -> None: class TestCheckUsageLimit (line 171) | class TestCheckUsageLimit: method test_passes_when_under_limit (line 174) | def test_passes_when_under_limit(self) -> None: method test_passes_when_exactly_at_limit (line 195) | def test_passes_when_exactly_at_limit(self) -> None: method test_fails_when_over_limit (line 216) | def test_fails_when_over_limit(self) -> None: method test_fails_when_pending_would_exceed_limit (line 241) | def test_fails_when_pending_would_exceed_limit(self) -> None: method test_checks_chunks_indexed_limit (line 264) | def test_checks_chunks_indexed_limit(self) -> None: class TestUsageLimitExceededError (line 288) | class TestUsageLimitExceededError: method test_error_message_format (line 291) | def test_error_message_format(self) -> None: method test_stores_values (line 303) | def test_stores_values(self) -> None: class TestWindowRollover (line 316) | class TestWindowRollover: method test_new_window_resets_usage (line 319) | def test_new_window_resets_usage(self) -> None: FILE: backend/tests/unit/onyx/db/test_voice.py function _make_voice_provider (line 26) | def _make_voice_provider( class TestFetchVoiceProviders (line 49) | class TestFetchVoiceProviders: method test_returns_all_providers (line 52) | def test_returns_all_providers(self, mock_db_session: MagicMock) -> None: method test_returns_empty_list_when_no_providers (line 64) | def test_returns_empty_list_when_no_providers( class TestFetchVoiceProviderById (line 74) | class TestFetchVoiceProviderById: method test_returns_provider_when_found (line 77) | def test_returns_provider_when_found(self, mock_db_session: MagicMock)... method test_returns_none_when_not_found (line 86) | def test_returns_none_when_not_found(self, mock_db_session: MagicMock)... class TestFetchDefaultProviders (line 94) | class TestFetchDefaultProviders: method test_fetch_default_stt_provider_returns_provider (line 97) | def test_fetch_default_stt_provider_returns_provider( method test_fetch_default_stt_provider_returns_none_when_no_default (line 107) | def test_fetch_default_stt_provider_returns_none_when_no_default( method test_fetch_default_tts_provider_returns_provider (line 116) | def test_fetch_default_tts_provider_returns_provider( method test_fetch_default_tts_provider_returns_none_when_no_default (line 126) | def test_fetch_default_tts_provider_returns_none_when_no_default( class TestFetchVoiceProviderByType (line 136) | class TestFetchVoiceProviderByType: method test_returns_provider_when_found (line 139) | def test_returns_provider_when_found(self, mock_db_session: MagicMock)... method test_returns_none_when_not_found (line 147) | def test_returns_none_when_not_found(self, mock_db_session: MagicMock)... class TestUpsertVoiceProvider (line 155) | class TestUpsertVoiceProvider: method test_creates_new_provider_when_no_id (line 158) | def test_creates_new_provider_when_no_id(self, mock_db_session: MagicM... method test_updates_existing_provider (line 177) | def test_updates_existing_provider(self, mock_db_session: MagicMock) -... method test_raises_when_provider_not_found (line 196) | def test_raises_when_provider_not_found(self, mock_db_session: MagicMo... method test_does_not_update_api_key_when_not_changed (line 211) | def test_does_not_update_api_key_when_not_changed( method test_activates_stt_when_requested (line 233) | def test_activates_stt_when_requested(self, mock_db_session: MagicMock... method test_activates_tts_when_requested (line 252) | def test_activates_tts_when_requested(self, mock_db_session: MagicMock... class TestDeleteVoiceProvider (line 272) | class TestDeleteVoiceProvider: method test_hard_deletes_provider_when_found (line 275) | def test_hard_deletes_provider_when_found(self, mock_db_session: Magic... method test_does_nothing_when_provider_not_found (line 284) | def test_does_nothing_when_provider_not_found( class TestSetDefaultProviders (line 294) | class TestSetDefaultProviders: method test_set_default_stt_provider_deactivates_others (line 297) | def test_set_default_stt_provider_deactivates_others( method test_set_default_stt_provider_raises_when_not_found (line 311) | def test_set_default_stt_provider_raises_when_not_found( method test_set_default_tts_provider_deactivates_others (line 321) | def test_set_default_tts_provider_deactivates_others( method test_set_default_tts_provider_updates_model_when_provided (line 335) | def test_set_default_tts_provider_updates_model_when_provided( method test_set_default_tts_provider_raises_when_not_found (line 350) | def test_set_default_tts_provider_raises_when_not_found( class TestDeactivateProviders (line 361) | class TestDeactivateProviders: method test_deactivate_stt_provider_sets_false (line 364) | def test_deactivate_stt_provider_sets_false( method test_deactivate_stt_provider_raises_when_not_found (line 376) | def test_deactivate_stt_provider_raises_when_not_found( method test_deactivate_tts_provider_sets_false (line 386) | def test_deactivate_tts_provider_sets_false( method test_deactivate_tts_provider_raises_when_not_found (line 398) | def test_deactivate_tts_provider_raises_when_not_found( class TestUpdateUserVoiceSettings (line 409) | class TestUpdateUserVoiceSettings: method test_updates_auto_send (line 412) | def test_updates_auto_send(self, mock_db_session: MagicMock) -> None: method test_updates_auto_playback (line 420) | def test_updates_auto_playback(self, mock_db_session: MagicMock) -> None: method test_updates_playback_speed_within_range (line 428) | def test_updates_playback_speed_within_range( method test_clamps_playback_speed_to_min (line 437) | def test_clamps_playback_speed_to_min(self, mock_db_session: MagicMock... method test_clamps_playback_speed_to_max (line 447) | def test_clamps_playback_speed_to_max(self, mock_db_session: MagicMock... method test_updates_multiple_settings (line 457) | def test_updates_multiple_settings(self, mock_db_session: MagicMock) -... method test_does_nothing_when_no_settings_provided (line 471) | def test_does_nothing_when_no_settings_provided( class TestSpeedClampingLogic (line 482) | class TestSpeedClampingLogic: method test_min_speed_constant (line 485) | def test_min_speed_constant(self) -> None: method test_max_speed_constant (line 488) | def test_max_speed_constant(self) -> None: method test_clamping_formula (line 491) | def test_clamping_formula(self) -> None: FILE: backend/tests/unit/onyx/document_index/opensearch/test_get_doc_chunk_id.py class TestGetOpensearchDocChunkIdSingleTenant (line 21) | class TestGetOpensearchDocChunkIdSingleTenant: method test_basic (line 22) | def test_basic(self) -> None: method test_custom_chunk_size (line 28) | def test_custom_chunk_size(self) -> None: method test_special_chars_are_stripped (line 34) | def test_special_chars_are_stripped(self) -> None: method test_short_doc_id_not_hashed (line 44) | def test_short_doc_id_not_hashed(self) -> None: method test_long_doc_id_is_hashed (line 53) | def test_long_doc_id_is_hashed(self) -> None: method test_long_doc_id_hash_is_deterministic (line 67) | def test_long_doc_id_hash_is_deterministic(self) -> None: method test_long_doc_id_different_inputs_produce_different_hashes (line 77) | def test_long_doc_id_different_inputs_produce_different_hashes(self) -... method test_result_never_exceeds_max_length (line 88) | def test_result_never_exceeds_max_length(self) -> None: method test_no_tenant_prefix_in_single_tenant (line 99) | def test_no_tenant_prefix_in_single_tenant(self) -> None: class TestGetOpensearchDocChunkIdMultiTenant (line 106) | class TestGetOpensearchDocChunkIdMultiTenant: method test_includes_tenant_prefix (line 107) | def test_includes_tenant_prefix(self) -> None: method test_format (line 111) | def test_format(self) -> None: method test_long_doc_id_is_hashed_multitenant (line 117) | def test_long_doc_id_is_hashed_multitenant(self) -> None: method test_result_never_exceeds_max_length_multitenant (line 127) | def test_result_never_exceeds_max_length_multitenant(self) -> None: method test_different_tenants_produce_different_ids (line 134) | def test_different_tenants_produce_different_ids(self) -> None: class TestGetOpensearchDocChunkIdEdgeCases (line 146) | class TestGetOpensearchDocChunkIdEdgeCases: method test_chunk_index_zero (line 147) | def test_chunk_index_zero(self) -> None: method test_large_chunk_index (line 151) | def test_large_chunk_index(self) -> None: method test_doc_id_with_only_special_chars_raises (line 157) | def test_doc_id_with_only_special_chars_raises(self) -> None: method test_doc_id_at_boundary_length (line 165) | def test_doc_id_at_boundary_length(self) -> None: method test_doc_id_at_boundary_length_multitenant (line 178) | def test_doc_id_at_boundary_length_multitenant(self) -> None: method test_doc_id_one_over_boundary_is_hashed (line 194) | def test_doc_id_one_over_boundary_is_hashed(self) -> None: FILE: backend/tests/unit/onyx/document_index/opensearch/test_opensearch_batch_flush.py function _make_chunk (line 17) | def _make_chunk( function _make_index (line 65) | def _make_index() -> tuple[OpenSearchDocumentIndex, MagicMock]: function _make_metadata (line 82) | def _make_metadata(doc_id: str, chunk_count: int) -> IndexingMetadata: function test_single_doc_under_batch_limit_flushes_once (line 97) | def test_single_doc_under_batch_limit_flushes_once() -> None: function test_single_doc_over_batch_limit_flushes_multiple_times (line 117) | def test_single_doc_over_batch_limit_flushes_multiple_times() -> None: function test_single_doc_exactly_at_batch_limit (line 138) | def test_single_doc_exactly_at_batch_limit() -> None: function test_single_doc_one_over_batch_limit (line 163) | def test_single_doc_one_over_batch_limit() -> None: function test_multiple_docs_each_under_limit_flush_per_doc (line 184) | def test_multiple_docs_each_under_limit_flush_per_doc() -> None: function test_delete_called_once_per_document (line 211) | def test_delete_called_once_per_document() -> None: FILE: backend/tests/unit/onyx/document_index/test_disabled_document_index.py function disabled_index (line 22) | def disabled_index() -> DisabledDocumentIndex: function _stub_filters (line 29) | def _stub_filters() -> IndexFilters: function test_ensure_indices_exist_no_raises (line 38) | def test_ensure_indices_exist_no_raises( function test_register_multitenant_indices_raises (line 49) | def test_register_multitenant_indices_raises() -> None: function test_index_raises (line 63) | def test_index_raises(disabled_index: DisabledDocumentIndex) -> None: function test_delete_single_raises (line 86) | def test_delete_single_raises(disabled_index: DisabledDocumentIndex) -> ... function test_update_single_raises (line 100) | def test_update_single_raises(disabled_index: DisabledDocumentIndex) -> ... function test_id_based_retrieval_raises (line 116) | def test_id_based_retrieval_raises( function test_hybrid_retrieval_raises (line 131) | def test_hybrid_retrieval_raises( function test_admin_retrieval_raises (line 152) | def test_admin_retrieval_raises( function test_random_retrieval_raises (line 168) | def test_random_retrieval_raises( function test_index_names_accessible (line 182) | def test_index_names_accessible(disabled_index: DisabledDocumentIndex) -... function test_default_names (line 187) | def test_default_names() -> None: FILE: backend/tests/unit/onyx/document_index/vespa/shared_utils/test_utils.py function test_remove_invalid_unicode_chars (line 4) | def test_remove_invalid_unicode_chars() -> None: function test_remove_surrogate_characters (line 23) | def test_remove_surrogate_characters() -> None: FILE: backend/tests/unit/onyx/document_index/vespa/test_vespa_batch_flush.py function _make_chunk (line 24) | def _make_chunk( function _make_indexing_metadata (line 77) | def _make_indexing_metadata( function _stub_enrich (line 93) | def _stub_enrich( function test_index_respects_batch_size (line 118) | def test_index_respects_batch_size( FILE: backend/tests/unit/onyx/error_handling/test_exceptions.py class TestOnyxError (line 12) | class TestOnyxError: method test_basic_construction (line 15) | def test_basic_construction(self) -> None: method test_message_defaults_to_code (line 21) | def test_message_defaults_to_code(self) -> None: method test_status_code_override (line 26) | def test_status_code_override(self) -> None: method test_no_override_uses_error_code_status (line 36) | def test_no_override_uses_error_code_status(self) -> None: method test_is_exception (line 40) | def test_is_exception(self) -> None: class TestExceptionHandler (line 45) | class TestExceptionHandler: method client (line 49) | def client(self) -> TestClient: method test_returns_correct_status_and_body (line 71) | def test_returns_correct_status_and_body(self, client: TestClient) -> ... method test_status_code_override_in_response (line 78) | def test_status_code_override_in_response(self, client: TestClient) ->... method test_default_message (line 85) | def test_default_message(self, client: TestClient) -> None: FILE: backend/tests/unit/onyx/federated_connectors/test_federated_connector_factory.py class TestFederatedConnectorMappingValidation (line 26) | class TestFederatedConnectorMappingValidation: method test_all_federated_connector_mappings_exist (line 29) | def test_all_federated_connector_mappings_exist(self) -> None: method test_no_duplicate_mappings (line 61) | def test_no_duplicate_mappings(self) -> None: method test_mapping_format_consistency (line 70) | def test_mapping_format_consistency(self) -> None: class TestFederatedConnectorClassLoading (line 91) | class TestFederatedConnectorClassLoading: method setup_method (line 94) | def setup_method(self) -> None: method test_load_federated_connector_class_success (line 98) | def test_load_federated_connector_class_success(self) -> None: method test_load_federated_connector_class_caching (line 108) | def test_load_federated_connector_class_caching(self) -> None: method test_load_federated_connector_class_import_error (line 127) | def test_load_federated_connector_class_import_error( method test_load_federated_connector_class_attribute_error (line 142) | def test_load_federated_connector_class_attribute_error( class TestGetFederatedConnectorCls (line 165) | class TestGetFederatedConnectorCls: method setup_method (line 168) | def setup_method(self) -> None: method test_get_federated_connector_cls_basic (line 172) | def test_get_federated_connector_cls_basic(self) -> None: class TestFederatedConnectorMappingIntegrity (line 183) | class TestFederatedConnectorMappingIntegrity: method test_all_federated_connector_sources_mapped (line 186) | def test_all_federated_connector_sources_mapped(self) -> None: FILE: backend/tests/unit/onyx/federated_connectors/test_oauth_utils.py class _MemoryCacheBackend (line 20) | class _MemoryCacheBackend(CacheBackend): method __init__ (line 23) | def __init__(self) -> None: method get (line 27) | def get(self, key: str) -> bytes | None: method set (line 30) | def set( method delete (line 42) | def delete(self, key: str) -> None: method exists (line 45) | def exists(self, key: str) -> bool: method expire (line 48) | def expire(self, key: str, seconds: int) -> None: method ttl (line 51) | def ttl(self, key: str) -> int: method lock (line 54) | def lock(self, name: str, timeout: float | None = None) -> CacheLock: method rpush (line 57) | def rpush(self, key: str, value: str | bytes) -> None: method blpop (line 60) | def blpop(self, keys: list[str], timeout: int = 0) -> tuple[bytes, byt... function _patched (line 64) | def _patched(cache: _MemoryCacheBackend): # type: ignore[no-untyped-def] class TestGenerateAndVerifyRoundTrip (line 71) | class TestGenerateAndVerifyRoundTrip: method test_round_trip_basic (line 72) | def test_round_trip_basic(self) -> None: method test_round_trip_with_all_fields (line 86) | def test_round_trip_with_all_fields(self) -> None: class TestOneTimeUse (line 103) | class TestOneTimeUse: method test_verify_deletes_state (line 104) | def test_verify_deletes_state(self) -> None: class TestTTLPropagation (line 114) | class TestTTLPropagation: method test_default_ttl (line 115) | def test_default_ttl(self) -> None: method test_custom_ttl (line 123) | def test_custom_ttl(self) -> None: class TestVerifyInvalidState (line 131) | class TestVerifyInvalidState: method test_missing_state_raises (line 132) | def test_missing_state_raises(self) -> None: class TestOAuthSessionSerialization (line 143) | class TestOAuthSessionSerialization: method test_to_dict_from_dict_round_trip (line 144) | def test_to_dict_from_dict_round_trip(self) -> None: method test_from_dict_defaults (line 159) | def test_from_dict_defaults(self) -> None: FILE: backend/tests/unit/onyx/file_processing/test_image_summarization_errors.py class TestSummarizeImageErrorMessage (line 19) | class TestSummarizeImageErrorMessage: method test_error_message_contains_exception_type_not_base64 (line 22) | def test_error_message_contains_exception_type_not_base64(self) -> None: method test_error_message_does_not_contain_base64 (line 33) | def test_error_message_does_not_contain_base64(self) -> None: method test_original_exception_is_chained (line 47) | def test_original_exception_is_chained(self) -> None: class TestUnsupportedMimeTypeLogging (line 59) | class TestUnsupportedMimeTypeLogging: method test_logs_magic_bytes_and_size (line 69) | def test_logs_magic_bytes_and_size( FILE: backend/tests/unit/onyx/file_processing/test_image_summarization_litellm_errors.py function _make_litellm_style_error (line 18) | def _make_litellm_style_error( class TestLiteLLMErrorExtraction (line 36) | class TestLiteLLMErrorExtraction: method test_status_code_included (line 39) | def test_status_code_included(self) -> None: method test_llm_provider_included (line 51) | def test_llm_provider_included(self) -> None: method test_model_included (line 62) | def test_model_included(self) -> None: method test_all_fields_in_single_message (line 72) | def test_all_fields_in_single_message(self) -> None: method test_plain_exception_without_litellm_attrs (line 90) | def test_plain_exception_without_litellm_attrs(self) -> None: method test_no_base64_in_error (line 105) | def test_no_base64_in_error(self) -> None: method test_long_error_message_truncated (line 129) | def test_long_error_message_truncated(self) -> None: FILE: backend/tests/unit/onyx/file_processing/test_pdf.py function _load (line 22) | def _load(name: str) -> BytesIO: class TestReadPdfFile (line 29) | class TestReadPdfFile: method test_basic_text_extraction (line 30) | def test_basic_text_extraction(self) -> None: method test_multi_page_text_extraction (line 35) | def test_multi_page_text_extraction(self) -> None: method test_metadata_extraction (line 40) | def test_metadata_extraction(self) -> None: method test_encrypted_pdf_with_correct_password (line 45) | def test_encrypted_pdf_with_correct_password(self) -> None: method test_encrypted_pdf_without_password (line 49) | def test_encrypted_pdf_without_password(self) -> None: method test_encrypted_pdf_with_wrong_password (line 53) | def test_encrypted_pdf_with_wrong_password(self) -> None: method test_empty_pdf (line 57) | def test_empty_pdf(self) -> None: method test_invalid_pdf_returns_empty (line 61) | def test_invalid_pdf_returns_empty(self) -> None: method test_image_extraction_disabled_by_default (line 66) | def test_image_extraction_disabled_by_default(self) -> None: method test_image_extraction_collects_images (line 70) | def test_image_extraction_collects_images(self) -> None: method test_image_callback_streams_instead_of_collecting (line 77) | def test_image_callback_streams_instead_of_collecting(self) -> None: class TestPdfToText (line 97) | class TestPdfToText: method test_returns_text (line 98) | def test_returns_text(self) -> None: method test_with_password (line 101) | def test_with_password(self) -> None: method test_encrypted_without_password_returns_empty (line 106) | def test_encrypted_without_password_returns_empty(self) -> None: class TestIsPdfProtected (line 113) | class TestIsPdfProtected: method test_unprotected_pdf (line 114) | def test_unprotected_pdf(self) -> None: method test_protected_pdf (line 117) | def test_protected_pdf(self) -> None: method test_preserves_file_position (line 120) | def test_preserves_file_position(self) -> None: FILE: backend/tests/unit/onyx/file_processing/test_xlsx_to_text.py function _make_xlsx (line 10) | def _make_xlsx(sheets: dict[str, list[list[str]]]) -> io.BytesIO: class TestXlsxToText (line 25) | class TestXlsxToText: method test_single_sheet_basic (line 26) | def test_single_sheet_basic(self) -> None: method test_multiple_sheets_separated (line 45) | def test_multiple_sheets_separated(self) -> None: method test_empty_cells (line 59) | def test_empty_cells(self) -> None: method test_commas_in_cells_are_quoted (line 72) | def test_commas_in_cells_are_quoted(self) -> None: method test_empty_workbook (line 84) | def test_empty_workbook(self) -> None: method test_long_empty_row_run_capped (line 89) | def test_long_empty_row_run_capped(self) -> None: method test_long_empty_col_run_capped (line 110) | def test_long_empty_col_run_capped(self) -> None: method test_short_empty_runs_kept (line 129) | def test_short_empty_runs_kept(self) -> None: method test_bad_zip_file_returns_empty (line 146) | def test_bad_zip_file_returns_empty(self) -> None: method test_bad_zip_tilde_file_returns_empty (line 151) | def test_bad_zip_tilde_file_returns_empty(self) -> None: method test_large_sparse_sheet (line 156) | def test_large_sparse_sheet(self) -> None: method test_quotes_in_cells (line 169) | def test_quotes_in_cells(self) -> None: method test_each_row_is_separate_line (line 182) | def test_each_row_is_separate_line(self) -> None: FILE: backend/tests/unit/onyx/hooks/test_api_dependencies.py class TestRequireHookEnabled (line 12) | class TestRequireHookEnabled: method test_raises_when_multi_tenant (line 13) | def test_raises_when_multi_tenant(self) -> None: method test_passes_when_single_tenant (line 21) | def test_passes_when_single_tenant(self) -> None: FILE: backend/tests/unit/onyx/hooks/test_base_spec.py function test_init_subclass_raises_for_missing_attrs (line 8) | def test_init_subclass_raises_for_missing_attrs() -> None: FILE: backend/tests/unit/onyx/hooks/test_models.py function test_hook_update_request_rejects_empty (line 10) | def test_hook_update_request_rejects_empty() -> None: function test_hook_update_request_rejects_null_name_when_only_field (line 16) | def test_hook_update_request_rejects_null_name_when_only_field() -> None: function test_hook_update_request_accepts_single_field (line 22) | def test_hook_update_request_accepts_single_field() -> None: function test_hook_update_request_accepts_partial_fields (line 27) | def test_hook_update_request_accepts_partial_fields() -> None: function test_hook_update_request_rejects_null_name (line 34) | def test_hook_update_request_rejects_null_name() -> None: function test_hook_update_request_rejects_empty_name (line 39) | def test_hook_update_request_rejects_empty_name() -> None: function test_hook_update_request_rejects_null_endpoint_url (line 44) | def test_hook_update_request_rejects_null_endpoint_url() -> None: function test_hook_update_request_rejects_empty_endpoint_url (line 49) | def test_hook_update_request_rejects_empty_endpoint_url() -> None: function test_hook_update_request_allows_null_api_key (line 54) | def test_hook_update_request_allows_null_api_key() -> None: function test_hook_update_request_rejects_whitespace_name (line 61) | def test_hook_update_request_rejects_whitespace_name() -> None: function test_hook_update_request_rejects_whitespace_endpoint_url (line 66) | def test_hook_update_request_rejects_whitespace_endpoint_url() -> None: function test_hook_create_request_rejects_whitespace_name (line 71) | def test_hook_create_request_rejects_whitespace_name() -> None: function test_hook_create_request_rejects_whitespace_endpoint_url (line 80) | def test_hook_create_request_rejects_whitespace_endpoint_url() -> None: FILE: backend/tests/unit/onyx/hooks/test_query_processing_spec.py function test_hook_point_is_query_processing (line 6) | def test_hook_point_is_query_processing() -> None: function test_default_fail_strategy_is_hard (line 10) | def test_default_fail_strategy_is_hard() -> None: function test_default_timeout_seconds (line 14) | def test_default_timeout_seconds() -> None: function test_input_schema_required_fields (line 19) | def test_input_schema_required_fields() -> None: function test_input_schema_chat_session_id_is_string (line 28) | def test_input_schema_chat_session_id_is_string() -> None: function test_input_schema_query_is_string (line 33) | def test_input_schema_query_is_string() -> None: function test_input_schema_user_email_is_nullable (line 38) | def test_input_schema_user_email_is_nullable() -> None: function test_output_schema_query_is_optional (line 44) | def test_output_schema_query_is_optional() -> None: function test_output_schema_query_is_nullable (line 50) | def test_output_schema_query_is_nullable() -> None: function test_output_schema_rejection_message_is_optional (line 56) | def test_output_schema_rejection_message_is_optional() -> None: function test_input_schema_no_additional_properties (line 61) | def test_input_schema_no_additional_properties() -> None: FILE: backend/tests/unit/onyx/hooks/test_registry.py function test_registry_covers_all_hook_points (line 10) | def test_registry_covers_all_hook_points() -> None: function test_get_hook_point_spec_returns_correct_spec (line 17) | def test_get_hook_point_spec_returns_correct_spec() -> None: function test_get_all_specs_returns_all (line 23) | def test_get_all_specs_returns_all() -> None: function test_get_hook_point_spec_raises_for_unregistered (line 29) | def test_get_hook_point_spec_raises_for_unregistered( function test_validate_registry_passes (line 38) | def test_validate_registry_passes() -> None: function test_validate_registry_raises_for_incomplete (line 42) | def test_validate_registry_raises_for_incomplete( FILE: backend/tests/unit/onyx/image_gen/test_provider_building.py function _get_default_image_gen_creds (line 19) | def _get_default_image_gen_creds() -> ImageGenerationProviderCredentials: function test_request_provider_that_no_exist (line 29) | def test_request_provider_that_no_exist() -> None: function test_build_openai_provider_from_api_key_and_base (line 37) | def test_build_openai_provider_from_api_key_and_base() -> None: function test_build_openai_provider_fails_no_api_key (line 54) | def test_build_openai_provider_fails_no_api_key() -> None: function test_build_azure_provider_from_api_key_and_base_and_version (line 65) | def test_build_azure_provider_from_api_key_and_base_and_version() -> None: function test_build_azure_provider_fails_missing_credential (line 84) | def test_build_azure_provider_fails_missing_credential() -> None: function test_build_vertex_provider_from_credentials (line 104) | def test_build_vertex_provider_from_credentials() -> None: function test_build_vertex_provider_with_missing_project_id (line 127) | def test_build_vertex_provider_with_missing_project_id() -> None: function test_openai_provider_uses_image_generation_without_reference_images (line 144) | def test_openai_provider_uses_image_generation_without_reference_images(... function test_openai_provider_uses_image_edit_with_reference_images (line 168) | def test_openai_provider_uses_image_edit_with_reference_images() -> None: function test_openai_provider_rejects_reference_images_for_unsupported_model (line 201) | def test_openai_provider_rejects_reference_images_for_unsupported_model(... function test_openai_provider_rejects_multiple_reference_images_for_dalle3 (line 214) | def test_openai_provider_rejects_multiple_reference_images_for_dalle3() ... function test_azure_provider_uses_image_generation_without_reference_images (line 233) | def test_azure_provider_uses_image_generation_without_reference_images()... function test_azure_provider_uses_image_edit_with_reference_images (line 260) | def test_azure_provider_uses_image_edit_with_reference_images() -> None: function test_azure_provider_rejects_reference_images_for_unsupported_model (line 296) | def test_azure_provider_rejects_reference_images_for_unsupported_model()... function test_azure_provider_rejects_multiple_reference_images_for_dalle3 (line 313) | def test_azure_provider_rejects_multiple_reference_images_for_dalle3() -... FILE: backend/tests/unit/onyx/indexing/conftest.py class MockHeartbeat (line 7) | class MockHeartbeat(IndexingHeartbeatInterface): method __init__ (line 8) | def __init__(self) -> None: method should_stop (line 11) | def should_stop(self) -> bool: method progress (line 14) | def progress(self, tag: str, amount: int) -> None: # noqa: ARG002 function mock_heartbeat (line 19) | def mock_heartbeat() -> MockHeartbeat: function embedder (line 24) | def embedder() -> DefaultIndexingEmbedder: FILE: backend/tests/unit/onyx/indexing/test_censoring.py class TestPostQueryChunkCensoring (line 21) | class TestPostQueryChunkCensoring: method setUp (line 23) | def setUp(self) -> None: method test_post_query_chunk_censoring_no_user (line 109) | def test_post_query_chunk_censoring_no_user( method test_post_query_chunk_censoring_salesforce_censored (line 123) | def test_post_query_chunk_censoring_salesforce_censored( method test_post_query_chunk_censoring_salesforce_error (line 146) | def test_post_query_chunk_censoring_salesforce_error( method test_post_query_chunk_censoring_no_censoring (line 165) | def test_post_query_chunk_censoring_no_censoring( method test_post_query_chunk_censoring_order_maintained (line 183) | def test_post_query_chunk_censoring_order_maintained( FILE: backend/tests/unit/onyx/indexing/test_chunker.py function test_chunk_document (line 19) | def test_chunk_document( function test_chunker_heartbeat (line 84) | def test_chunker_heartbeat( FILE: backend/tests/unit/onyx/indexing/test_embed_chunks_in_batches.py function _make_doc (line 29) | def _make_doc(doc_id: str) -> Document: function _make_chunk (line 39) | def _make_chunk(doc_id: str, chunk_id: int) -> DocAwareChunk: function _make_index_chunk (line 59) | def _make_index_chunk(doc_id: str, chunk_id: int) -> IndexChunk: function _make_failure (line 85) | def _make_failure(doc_id: str) -> ConnectorFailure: function _mock_embed_success (line 93) | def _mock_embed_success( function _mock_embed_fail_doc (line 103) | def _mock_embed_fail_doc( class TestEmbedChunksInBatches (line 126) | class TestEmbedChunksInBatches: method test_single_batch_no_failures (line 131) | def test_single_batch_no_failures(self, mock_embed: MagicMock) -> None: method test_multiple_batches_no_failures (line 157) | def test_multiple_batches_no_failures(self, mock_embed: MagicMock) -> ... method test_single_batch_with_failure (line 179) | def test_single_batch_with_failure(self, mock_embed: MagicMock) -> None: method test_cross_batch_failure_scrubs_earlier_batch (line 206) | def test_cross_batch_failure_scrubs_earlier_batch( method test_later_batch_skips_already_failed_doc (line 258) | def test_later_batch_skips_already_failed_doc(self, mock_embed: MagicM... method test_failed_doc_skipped_in_later_batch_while_other_doc_succeeds (line 297) | def test_failed_doc_skipped_in_later_batch_while_other_doc_succeeds( method test_empty_input (line 348) | def test_empty_input(self, mock_embed: MagicMock) -> None: method test_all_chunks_fail (line 369) | def test_all_chunks_fail(self, mock_embed: MagicMock) -> None: FILE: backend/tests/unit/onyx/indexing/test_embedder.py function mock_embedding_model (line 19) | def mock_embedding_model() -> Generator[Mock, None, None]: function test_default_indexing_embedder_embed_chunks (line 28) | def test_default_indexing_embedder_embed_chunks( FILE: backend/tests/unit/onyx/indexing/test_indexing_pipeline.py function create_test_document (line 33) | def create_test_document( function test_filter_documents_empty_title_and_content (line 51) | def test_filter_documents_empty_title_and_content() -> None: function test_filter_documents_empty_title_with_content (line 59) | def test_filter_documents_empty_title_with_content() -> None: function test_filter_documents_empty_content_with_title (line 68) | def test_filter_documents_empty_content_with_title() -> None: function test_filter_documents_exceeding_max_chars (line 77) | def test_filter_documents_exceeding_max_chars() -> None: function test_filter_documents_valid_document (line 86) | def test_filter_documents_valid_document() -> None: function test_filter_documents_whitespace_only (line 97) | def test_filter_documents_whitespace_only() -> None: function test_filter_documents_semantic_id_no_title (line 107) | def test_filter_documents_semantic_id_no_title() -> None: function test_filter_documents_multiple_sections (line 118) | def test_filter_documents_multiple_sections() -> None: function test_filter_documents_multiple_documents (line 131) | def test_filter_documents_multiple_documents() -> None: function test_filter_documents_empty_batch (line 144) | def test_filter_documents_empty_batch() -> None: function test_contextual_rag (line 151) | def test_contextual_rag( function _make_doc (line 241) | def _make_doc( function test_document_ingestion_hook_skipped_passes_through (line 257) | def test_document_ingestion_hook_skipped_passes_through() -> None: function test_document_ingestion_hook_soft_failed_passes_through (line 264) | def test_document_ingestion_hook_soft_failed_passes_through() -> None: function test_document_ingestion_hook_none_sections_drops_document (line 271) | def test_document_ingestion_hook_none_sections_drops_document() -> None: function test_document_ingestion_hook_all_invalid_sections_drops_document (line 283) | def test_document_ingestion_hook_all_invalid_sections_drops_document() -... function test_document_ingestion_hook_empty_sections_drops_document (line 294) | def test_document_ingestion_hook_empty_sections_drops_document() -> None: function test_document_ingestion_hook_rewrites_text_sections (line 304) | def test_document_ingestion_hook_rewrites_text_sections() -> None: function test_document_ingestion_hook_preserves_image_section_order (line 321) | def test_document_ingestion_hook_preserves_image_section_order() -> None: function test_document_ingestion_hook_mixed_batch (line 350) | def test_document_ingestion_hook_mixed_batch() -> None: FILE: backend/tests/unit/onyx/indexing/test_personas_in_chunks.py function _make_index_chunk (line 20) | def _make_index_chunk( function _make_access (line 56) | def _make_access() -> DocumentAccess: function test_from_index_chunk_propagates_personas (line 66) | def test_from_index_chunk_propagates_personas() -> None: function test_from_index_chunk_empty_personas (line 86) | def test_from_index_chunk_empty_personas() -> None: function _make_document (line 104) | def _make_document(doc_id: str) -> Document: function _run_adapter_build (line 114) | def _run_adapter_build( function test_prepare_enrichment_includes_persona_ids (line 166) | def test_prepare_enrichment_includes_persona_ids() -> None: function test_prepare_enrichment_missing_file_defaults_to_empty (line 184) | def test_prepare_enrichment_missing_file_defaults_to_empty() -> None: FILE: backend/tests/unit/onyx/indexing/test_vespa.py function test_vespa_update (line 14) | def test_vespa_update() -> None: FILE: backend/tests/unit/onyx/llm/conftest.py function load_enrichments (line 17) | def load_enrichments() -> Generator[None, None, None]: FILE: backend/tests/unit/onyx/llm/test_bedrock_token_limit.py class TestGetBedrockTokenLimit (line 8) | class TestGetBedrockTokenLimit: method test_parse_from_model_id_suffix_200k (line 11) | def test_parse_from_model_id_suffix_200k(self) -> None: method test_parse_from_model_id_suffix_128k (line 16) | def test_parse_from_model_id_suffix_128k(self) -> None: method test_parse_from_model_id_suffix_4k (line 21) | def test_parse_from_model_id_suffix_4k(self) -> None: method test_parse_from_model_id_suffix_1000k (line 26) | def test_parse_from_model_id_suffix_1000k(self) -> None: method test_litellm_lookup_with_bedrock_prefix (line 31) | def test_litellm_lookup_with_bedrock_prefix(self) -> None: method test_litellm_lookup_without_prefix (line 40) | def test_litellm_lookup_without_prefix(self) -> None: method test_litellm_max_tokens_fallback (line 47) | def test_litellm_max_tokens_fallback(self) -> None: method test_hardcoded_mapping_claude_3_5 (line 54) | def test_hardcoded_mapping_claude_3_5(self) -> None: method test_hardcoded_mapping_llama3_3 (line 63) | def test_hardcoded_mapping_llama3_3(self) -> None: method test_hardcoded_mapping_llama3_70b (line 69) | def test_hardcoded_mapping_llama3_70b(self) -> None: method test_hardcoded_mapping_nova_pro (line 75) | def test_hardcoded_mapping_nova_pro(self) -> None: method test_hardcoded_mapping_mistral_large (line 81) | def test_hardcoded_mapping_mistral_large(self) -> None: method test_default_fallback_unknown_model (line 87) | def test_default_fallback_unknown_model(self) -> None: method test_cross_region_model_id (line 94) | def test_cross_region_model_id(self) -> None: method test_case_insensitive_matching (line 102) | def test_case_insensitive_matching(self) -> None: method test_suffix_takes_priority_over_litellm (line 108) | def test_suffix_takes_priority_over_litellm(self) -> None: method test_litellm_exception_falls_through (line 116) | def test_litellm_exception_falls_through(self) -> None: FILE: backend/tests/unit/onyx/llm/test_factory.py function test_build_provider_extra_headers_adds_bearer_for_ollama_api_key (line 12) | def test_build_provider_extra_headers_adds_bearer_for_ollama_api_key() -... function test_build_provider_extra_headers_keeps_existing_bearer_prefix (line 21) | def test_build_provider_extra_headers_keeps_existing_bearer_prefix() -> ... function test_build_provider_extra_headers_ignores_empty_ollama_api_key (line 30) | def test_build_provider_extra_headers_ignores_empty_ollama_api_key() -> ... function _build_provider_view (line 39) | def _build_provider_view( function test_get_llm_sets_ollama_num_ctx_model_kwarg (line 67) | def test_get_llm_sets_ollama_num_ctx_model_kwarg() -> None: function test_get_llm_does_not_set_ollama_num_ctx_for_non_ollama_provider (line 81) | def test_get_llm_does_not_set_ollama_num_ctx_for_non_ollama_provider() -... function test_llm_from_provider_passes_configured_ollama_num_ctx (line 94) | def test_llm_from_provider_passes_configured_ollama_num_ctx() -> None: function test_llm_from_provider_omits_ollama_num_ctx_when_model_context_unknown (line 111) | def test_llm_from_provider_omits_ollama_num_ctx_when_model_context_unkno... function test_llm_from_provider_never_sets_ollama_num_ctx_for_non_ollama_provider (line 134) | def test_llm_from_provider_never_sets_ollama_num_ctx_for_non_ollama_prov... FILE: backend/tests/unit/onyx/llm/test_formatting_reenabled.py function test_gpt_5_exact_match (line 4) | def test_gpt_5_exact_match() -> None: function test_o3_exact_match (line 9) | def test_o3_exact_match() -> None: function test_o1_exact_match (line 14) | def test_o1_exact_match() -> None: function test_gpt_5_with_provider_prefix (line 19) | def test_gpt_5_with_provider_prefix() -> None: function test_o3_with_provider_prefix (line 24) | def test_o3_with_provider_prefix() -> None: function test_o1_with_provider_prefix (line 29) | def test_o1_with_provider_prefix() -> None: function test_gpt_5_with_suffix (line 34) | def test_gpt_5_with_suffix() -> None: function test_o3_with_suffix (line 41) | def test_o3_with_suffix() -> None: function test_o1_with_suffix (line 48) | def test_o1_with_suffix() -> None: function test_gpt_5_with_provider_and_suffix (line 55) | def test_gpt_5_with_provider_and_suffix() -> None: function test_o3_with_provider_and_suffix (line 61) | def test_o3_with_provider_and_suffix() -> None: function test_o1_with_provider_and_suffix (line 67) | def test_o1_with_provider_and_suffix() -> None: function test_gpt_5_with_space_boundary (line 73) | def test_gpt_5_with_space_boundary() -> None: function test_o3_with_space_boundary (line 79) | def test_o3_with_space_boundary() -> None: function test_o1_with_space_boundary (line 85) | def test_o1_with_space_boundary() -> None: function test_gpt_5_with_slash_boundary (line 91) | def test_gpt_5_with_slash_boundary() -> None: function test_o3_with_slash_boundary (line 97) | def test_o3_with_slash_boundary() -> None: function test_o1_with_slash_boundary (line 103) | def test_o1_with_slash_boundary() -> None: function test_gpt_4_does_not_match (line 109) | def test_gpt_4_does_not_match() -> None: function test_gpt_3_5_does_not_match (line 117) | def test_gpt_3_5_does_not_match() -> None: function test_o2_does_not_match (line 123) | def test_o2_does_not_match() -> None: function test_o4_does_not_match (line 130) | def test_o4_does_not_match() -> None: function test_other_models_do_not_match (line 137) | def test_other_models_do_not_match() -> None: function test_case_sensitivity (line 145) | def test_case_sensitivity() -> None: function test_models_with_gpt_5_in_middle (line 153) | def test_models_with_gpt_5_in_middle() -> None: function test_models_with_o3_in_middle (line 159) | def test_models_with_o3_in_middle() -> None: function test_models_with_o1_in_middle (line 165) | def test_models_with_o1_in_middle() -> None: function test_models_that_contain_but_not_match (line 171) | def test_models_that_contain_but_not_match() -> None: function test_empty_string (line 188) | def test_empty_string() -> None: function test_real_litellm_model_names (line 193) | def test_real_litellm_model_names() -> None: FILE: backend/tests/unit/onyx/llm/test_litellm_monkey_patches.py function _create_iterator (line 10) | def _create_iterator() -> OllamaChatCompletionResponseIterator: function _build_chunk (line 18) | def _build_chunk( function test_ollama_chunk_parser_transitions_from_native_thinking_to_content (line 38) | def test_ollama_chunk_parser_transitions_from_native_thinking_to_content... function test_ollama_chunk_parser_keeps_tagged_thinking_until_close_tag (line 55) | def test_ollama_chunk_parser_keeps_tagged_thinking_until_close_tag() -> ... function test_ollama_chunk_parser_handles_think_tag_after_native_thinking (line 77) | def test_ollama_chunk_parser_handles_think_tag_after_native_thinking() -... function test_ollama_chunk_parser_preserves_content_when_thinking_and_content_coexist (line 90) | def test_ollama_chunk_parser_preserves_content_when_thinking_and_content... FILE: backend/tests/unit/onyx/llm/test_llm_provider_options.py function _build_recommendations (line 18) | def _build_recommendations( function test_model_configurations_vertex_are_sorted_by_name (line 36) | def test_model_configurations_vertex_are_sorted_by_name( function test_model_configurations_non_vertex_preserve_provider_order (line 74) | def test_model_configurations_non_vertex_preserve_provider_order( FILE: backend/tests/unit/onyx/llm/test_model_is_reasoning.py function test_model_is_reasoning_model (line 4) | def test_model_is_reasoning_model() -> None: FILE: backend/tests/unit/onyx/llm/test_model_map.py function test_partial_match_in_model_map (line 11) | def test_partial_match_in_model_map() -> None: function test_no_overwrite_in_model_map (line 63) | def test_no_overwrite_in_model_map() -> None: function test_twelvelabs_pegasus_override_present (line 86) | def test_twelvelabs_pegasus_override_present() -> None: FILE: backend/tests/unit/onyx/llm/test_model_name_parser.py function test_bedrock_model_with_enrichment (line 11) | def test_bedrock_model_with_enrichment() -> None: function test_region_extraction (line 24) | def test_region_extraction() -> None: function test_direct_provider_inference (line 34) | def test_direct_provider_inference() -> None: function test_unknown_model_fallback (line 43) | def test_unknown_model_fallback() -> None: FILE: backend/tests/unit/onyx/llm/test_model_response.py class _LiteLLMStreamDouble (line 22) | class _LiteLLMStreamDouble: method __init__ (line 28) | def __init__(self, payload: dict) -> None: method model_dump (line 31) | def model_dump(self) -> dict: class _LiteLLMResponseDouble (line 35) | class _LiteLLMResponseDouble: method __init__ (line 41) | def __init__(self, payload: dict) -> None: method model_dump (line 44) | def model_dump(self) -> dict: function _make_stream_double (line 48) | def _make_stream_double(payload: dict) -> "LiteLLMModelResponseStream": function _make_response_double (line 53) | def _make_response_double(payload: dict) -> "LiteLLMModelResponse": function _build_tool_call_payload (line 58) | def _build_tool_call_payload() -> dict: function _build_reasoning_payload (line 87) | def _build_reasoning_payload() -> dict: function _build_finish_reason_payload (line 105) | def _build_finish_reason_payload() -> tuple[dict, dict]: function _build_multiple_tool_calls_payload (line 137) | def _build_multiple_tool_calls_payload() -> dict: function _build_non_streaming_response_payload (line 175) | def _build_non_streaming_response_payload() -> dict: function _build_non_streaming_tool_call_payload (line 194) | def _build_non_streaming_tool_call_payload() -> dict: function test_from_litellm_model_response_stream_parses_tool_calls (line 223) | def test_from_litellm_model_response_stream_parses_tool_calls() -> None: function test_from_litellm_model_response_stream_preserves_reasoning_content (line 242) | def test_from_litellm_model_response_stream_preserves_reasoning_content(... function test_from_litellm_model_response_stream_handles_content_and_finish_reason (line 253) | def test_from_litellm_model_response_stream_handles_content_and_finish_r... function test_from_litellm_model_response_stream_parses_multiple_tool_calls (line 269) | def test_from_litellm_model_response_stream_parses_multiple_tool_calls()... function test_from_litellm_model_response_parses_basic_message (line 300) | def test_from_litellm_model_response_parses_basic_message() -> None: function test_from_litellm_model_response_parses_tool_calls (line 314) | def test_from_litellm_model_response_parses_tool_calls() -> None: FILE: backend/tests/unit/onyx/llm/test_multi_llm.py function _create_delta (line 35) | def _create_delta( function _model_response_to_assistant_message (line 47) | def _model_response_to_assistant_message(response: ModelResponse) -> Ass... function _accumulate_stream_to_assistant_message (line 69) | def _accumulate_stream_to_assistant_message( function default_multi_llm (line 131) | def default_multi_llm() -> LitellmLLM: function test_multiple_tool_calls (line 147) | def test_multiple_tool_calls(default_multi_llm: LitellmLLM) -> None: function test_multiple_tool_calls_streaming (line 272) | def test_multiple_tool_calls_streaming(default_multi_llm: LitellmLLM) ->... function test_vertex_stream_omits_stream_options (line 428) | def test_vertex_stream_omits_stream_options(model_name: str) -> None: function test_openai_auto_reasoning_effort_maps_to_medium (line 450) | def test_openai_auto_reasoning_effort_maps_to_medium() -> None: function test_vertex_opus_omits_reasoning_effort (line 477) | def test_vertex_opus_omits_reasoning_effort(model_name: str) -> None: function test_openai_chat_omits_reasoning_params (line 502) | def test_openai_chat_omits_reasoning_params() -> None: function test_user_identity_metadata_enabled (line 549) | def test_user_identity_metadata_enabled(default_multi_llm: LitellmLLM) -... function test_user_identity_user_id_truncated_to_64_chars (line 580) | def test_user_identity_user_id_truncated_to_64_chars( function test_user_identity_metadata_disabled_omits_identity (line 613) | def test_user_identity_metadata_disabled_omits_identity( function test_existing_metadata_pass_through_when_identity_disabled (line 646) | def test_existing_metadata_pass_through_when_identity_disabled() -> None: function test_openai_model_invoke_uses_httphandler_client (line 692) | def test_openai_model_invoke_uses_httphandler_client( function test_openai_model_stream_uses_httphandler_client (line 722) | def test_openai_model_stream_uses_httphandler_client( function test_anthropic_model_passes_no_client (line 739) | def test_anthropic_model_passes_no_client() -> None: function test_bedrock_model_passes_no_client (line 773) | def test_bedrock_model_passes_no_client() -> None: function test_azure_openai_model_uses_httphandler_client (line 807) | def test_azure_openai_model_uses_httphandler_client() -> None: function test_temporary_env_cleanup (line 849) | def test_temporary_env_cleanup(monkeypatch: pytest.MonkeyPatch) -> None: function test_temporary_env_cleanup_on_exception (line 934) | def test_temporary_env_cleanup_on_exception(monkeypatch: pytest.MonkeyPa... function test_multithreaded_custom_config_isolation (line 1003) | def test_multithreaded_custom_config_isolation( function test_multithreaded_invoke_without_custom_config_skips_env_lock (line 1129) | def test_multithreaded_invoke_without_custom_config_skips_env_lock() -> ... function test_messages_contain_tool_content_with_tool_role (line 1223) | def test_messages_contain_tool_content_with_tool_role() -> None: function test_messages_contain_tool_content_with_tool_calls (line 1234) | def test_messages_contain_tool_content_with_tool_calls() -> None: function test_messages_contain_tool_content_without_tools (line 1254) | def test_messages_contain_tool_content_without_tools() -> None: function test_strip_tool_content_converts_assistant_tool_calls_to_text (line 1264) | def test_strip_tool_content_converts_assistant_tool_calls_to_text() -> N... function test_strip_tool_content_handles_assistant_with_no_text_content (line 1316) | def test_strip_tool_content_handles_assistant_with_no_text_content() -> ... function test_strip_tool_content_passes_through_non_tool_messages (line 1339) | def test_strip_tool_content_passes_through_non_tool_messages() -> None: function test_strip_tool_content_handles_list_content_blocks (line 1352) | def test_strip_tool_content_handles_list_content_blocks() -> None: function test_strip_tool_content_merges_consecutive_tool_results (line 1392) | def test_strip_tool_content_merges_consecutive_tool_results() -> None: function test_no_tool_choice_sent_when_no_tools (line 1435) | def test_no_tool_choice_sent_when_no_tools(default_multi_llm: LitellmLLM... function test_bifrost_normalizes_api_base_in_model_kwargs (line 1468) | def test_bifrost_normalizes_api_base_in_model_kwargs() -> None: function test_prompt_contains_tool_call_history_true (line 1483) | def test_prompt_contains_tool_call_history_true() -> None: function test_prompt_contains_tool_call_history_false_no_tools (line 1501) | def test_prompt_contains_tool_call_history_false_no_tools() -> None: function test_prompt_contains_tool_call_history_false_user_only (line 1511) | def test_prompt_contains_tool_call_history_false_user_only() -> None: function test_bedrock_claude_drops_thinking_when_thinking_blocks_missing (line 1518) | def test_bedrock_claude_drops_thinking_when_thinking_blocks_missing() ->... function test_bedrock_claude_keeps_thinking_when_no_tool_history (line 1579) | def test_bedrock_claude_keeps_thinking_when_no_tool_history() -> None: function test_bifrost_claude_includes_allowed_openai_params (line 1624) | def test_bifrost_claude_includes_allowed_openai_params() -> None: FILE: backend/tests/unit/onyx/llm/test_reasoning_effort_mapping.py function test_openai_reasoning_effort_mapping_has_valid_values (line 12) | def test_openai_reasoning_effort_mapping_has_valid_values() -> None: function test_openai_reasoning_effort_mapping_covers_all_effort_levels (line 27) | def test_openai_reasoning_effort_mapping_covers_all_effort_levels() -> N... function test_reasoning_effort_auto_does_not_map_to_auto (line 50) | def test_reasoning_effort_auto_does_not_map_to_auto() -> None: FILE: backend/tests/unit/onyx/llm/test_request_context.py function test_reset_llm_mock_response_same_context (line 8) | def test_reset_llm_mock_response_same_context() -> None: function test_reset_llm_mock_response_different_context (line 16) | def test_reset_llm_mock_response_different_context() -> None: FILE: backend/tests/unit/onyx/llm/test_true_openai_model.py class TestIsTrueOpenAIModel (line 6) | class TestIsTrueOpenAIModel: method test_real_openai_gpt4 (line 9) | def test_real_openai_gpt4(self) -> None: method test_real_openai_gpt4_turbo (line 13) | def test_real_openai_gpt4_turbo(self) -> None: method test_real_openai_gpt35_turbo (line 17) | def test_real_openai_gpt35_turbo(self) -> None: method test_real_openai_gpt4o (line 21) | def test_real_openai_gpt4o(self) -> None: method test_real_openai_gpt4o_mini (line 25) | def test_real_openai_gpt4o_mini(self) -> None: method test_openai_with_provider_prefix (line 29) | def test_openai_with_provider_prefix(self) -> None: method test_real_openai_with_date_version (line 33) | def test_real_openai_with_date_version(self) -> None: method test_non_openai_provider_anthropic (line 40) | def test_non_openai_provider_anthropic(self) -> None: method test_non_openai_provider_gemini (line 49) | def test_non_openai_provider_gemini(self) -> None: method test_non_openai_provider_ollama (line 55) | def test_non_openai_provider_ollama(self) -> None: method test_openai_compatible_not_in_registry (line 59) | def test_openai_compatible_not_in_registry(self) -> None: method test_openai_compatible_starts_with_o_not_in_registry (line 66) | def test_openai_compatible_starts_with_o_not_in_registry(self) -> None: method test_empty_model_name (line 71) | def test_empty_model_name(self) -> None: method test_empty_provider (line 75) | def test_empty_provider(self) -> None: method test_case_sensitivity (line 79) | def test_case_sensitivity(self) -> None: method test_none_values_handled (line 84) | def test_none_values_handled(self) -> None: method test_litellm_proxy_custom_model (line 89) | def test_litellm_proxy_custom_model(self) -> None: method test_vllm_hosted_model (line 94) | def test_vllm_hosted_model(self) -> None: method test_openrouter_openai_model (line 102) | def test_openrouter_openai_model(self) -> None: method test_together_ai_model (line 109) | def test_together_ai_model(self) -> None: method test_model_with_custom_suffix (line 113) | def test_model_with_custom_suffix(self) -> None: method test_real_openai_text_embedding_models (line 121) | def test_real_openai_text_embedding_models(self) -> None: method test_deprecated_openai_models (line 136) | def test_deprecated_openai_models(self) -> None: method test_azure_openai_model_through_litellm_proxy (line 146) | def test_azure_openai_model_through_litellm_proxy(self) -> None: FILE: backend/tests/unit/onyx/llm/test_vision_model_selection_logging.py function _make_mock_model (line 19) | def _make_mock_model( function test_logs_when_using_default_vision_model (line 40) | def test_logs_when_using_default_vision_model( function test_warns_when_default_model_lacks_vision (line 62) | def test_warns_when_default_model_lacks_vision( function test_warns_when_no_models_exist (line 89) | def test_warns_when_no_models_exist( function test_warns_when_no_model_supports_vision (line 109) | def test_warns_when_no_model_supports_vision( FILE: backend/tests/unit/onyx/natural_language_processing/test_search_nlp_models.py function mock_http_client (line 18) | async def mock_http_client() -> AsyncGenerator[AsyncMock, None]: function sample_embeddings (line 28) | def sample_embeddings() -> List[List[float]]: function test_cloud_embedding_context_manager (line 33) | async def test_cloud_embedding_context_manager() -> None: function test_cloud_embedding_explicit_close (line 40) | async def test_cloud_embedding_explicit_close() -> None: function test_openai_embedding (line 48) | async def test_openai_embedding( function test_rate_limit_handling (line 70) | async def test_rate_limit_handling() -> None: FILE: backend/tests/unit/onyx/onyxbot/discord/conftest.py class AsyncIteratorMock (line 13) | class AsyncIteratorMock: method __init__ (line 16) | def __init__(self, items: list[Any]) -> None: method __aiter__ (line 20) | def __aiter__(self) -> "AsyncIteratorMock": method __anext__ (line 23) | async def __anext__(self) -> Any: function mock_message (line 31) | def mock_message( function mock_bot_user (line 57) | def mock_bot_user() -> MagicMock: function mock_discord_guild (line 67) | def mock_discord_guild() -> MagicMock: function mock_discord_message (line 97) | def mock_discord_message(mock_bot_user: MagicMock) -> MagicMock: # noqa... function mock_thread_with_messages (line 121) | def mock_thread_with_messages(mock_bot_user: MagicMock) -> MagicMock: function mock_thread_forum_parent (line 161) | def mock_thread_forum_parent() -> MagicMock: function mock_reply_chain (line 172) | def mock_reply_chain() -> MagicMock: function mock_guild_config_enabled (line 193) | def mock_guild_config_enabled() -> MagicMock: function mock_guild_config_disabled (line 204) | def mock_guild_config_disabled() -> MagicMock: function mock_channel_config_factory (line 215) | def mock_channel_config_factory() -> Callable[..., MagicMock]: function mock_message_with_bot_mention (line 237) | def mock_message_with_bot_mention(mock_bot_user: MagicMock) -> MagicMock: function mock_guild_with_members (line 259) | def mock_guild_with_members() -> MagicMock: FILE: backend/tests/unit/onyx/onyxbot/discord/test_api_client.py class MockAsyncContextManager (line 22) | class MockAsyncContextManager: method __init__ (line 25) | def __init__( method __aenter__ (line 31) | async def __aenter__(self) -> Any: method __aexit__ (line 36) | async def __aexit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) ->... class TestClientLifecycle (line 40) | class TestClientLifecycle: method test_initialize_creates_session (line 44) | async def test_initialize_creates_session(self) -> None: method test_is_initialized_before_init (line 58) | def test_is_initialized_before_init(self) -> None: method test_is_initialized_after_init (line 64) | async def test_is_initialized_after_init(self) -> None: method test_close_closes_session (line 74) | async def test_close_closes_session(self) -> None: method test_send_message_not_initialized (line 89) | async def test_send_message_not_initialized(self) -> None: class TestSendChatMessage (line 99) | class TestSendChatMessage: method test_send_message_success (line 103) | async def test_send_message_success(self) -> None: method test_send_message_with_persona (line 134) | async def test_send_message_with_persona(self) -> None: method test_send_message_401_error (line 165) | async def test_send_message_401_error(self) -> None: method test_send_message_403_error (line 185) | async def test_send_message_403_error(self) -> None: method test_send_message_timeout (line 205) | async def test_send_message_timeout(self) -> None: method test_send_message_connection_error (line 222) | async def test_send_message_connection_error(self) -> None: method test_send_message_server_error (line 241) | async def test_send_message_server_error(self) -> None: class TestHealthCheck (line 262) | class TestHealthCheck: method test_health_check_success (line 266) | async def test_health_check_success(self) -> None: method test_health_check_failure (line 284) | async def test_health_check_failure(self) -> None: method test_health_check_timeout (line 302) | async def test_health_check_timeout(self) -> None: method test_health_check_not_initialized (line 319) | async def test_health_check_not_initialized(self) -> None: class TestResponseParsing (line 327) | class TestResponseParsing: method test_response_malformed_json (line 331) | async def test_response_malformed_json(self) -> None: method test_response_with_error_msg (line 350) | async def test_response_with_error_msg(self) -> None: method test_response_empty_answer (line 382) | async def test_response_empty_answer(self) -> None: class TestClientConfiguration (line 414) | class TestClientConfiguration: method test_default_timeout (line 417) | def test_default_timeout(self) -> None: method test_custom_timeout (line 422) | def test_custom_timeout(self) -> None: method test_double_initialize_warning (line 428) | async def test_double_initialize_warning(self) -> None: FILE: backend/tests/unit/onyx/onyxbot/discord/test_cache_manager.py class TestCacheInitialization (line 15) | class TestCacheInitialization: method test_cache_starts_empty (line 18) | def test_cache_starts_empty(self) -> None: method test_cache_refresh_all_loads_guilds (line 26) | async def test_cache_refresh_all_loads_guilds(self) -> None: method test_cache_refresh_provisions_api_key (line 70) | async def test_cache_refresh_provisions_api_key(self) -> None: class TestCacheLookups (line 107) | class TestCacheLookups: method test_get_tenant_returns_correct (line 110) | def test_get_tenant_returns_correct(self) -> None: method test_get_tenant_returns_none_unknown (line 118) | def test_get_tenant_returns_none_unknown(self) -> None: method test_get_api_key_returns_correct (line 125) | def test_get_api_key_returns_correct(self) -> None: method test_get_api_key_returns_none_unknown (line 133) | def test_get_api_key_returns_none_unknown(self) -> None: method test_get_all_guild_ids (line 140) | def test_get_all_guild_ids(self) -> None: class TestCacheUpdates (line 149) | class TestCacheUpdates: method test_refresh_guild_adds_new (line 153) | async def test_refresh_guild_adds_new(self) -> None: method test_refresh_guild_verifies_active (line 181) | async def test_refresh_guild_verifies_active(self) -> None: method test_remove_guild (line 205) | def test_remove_guild(self) -> None: method test_clear_removes_all (line 214) | def test_clear_removes_all(self) -> None: class TestThreadSafety (line 228) | class TestThreadSafety: method test_concurrent_refresh_no_race (line 232) | async def test_concurrent_refresh_no_race(self) -> None: method test_concurrent_read_write (line 271) | async def test_concurrent_read_write(self) -> None: class TestAPIKeyProvisioning (line 290) | class TestAPIKeyProvisioning: method test_api_key_created_on_first_refresh (line 294) | async def test_api_key_created_on_first_refresh(self) -> None: method test_api_key_cached_after_creation (line 331) | async def test_api_key_cached_after_creation(self) -> None: class TestGatedTenantHandling (line 370) | class TestGatedTenantHandling: method test_refresh_skips_gated_tenants (line 374) | async def test_refresh_skips_gated_tenants(self) -> None: method test_gated_check_calls_ee_function (line 424) | async def test_gated_check_calls_ee_function(self) -> None: method test_ungated_tenant_included (line 452) | async def test_ungated_tenant_included(self) -> None: class TestCacheErrorHandling (line 488) | class TestCacheErrorHandling: method test_refresh_all_handles_tenant_error (line 492) | async def test_refresh_all_handles_tenant_error(self) -> None: FILE: backend/tests/unit/onyx/onyxbot/discord/test_context_builders.py class TestThreadContextBuilder (line 23) | class TestThreadContextBuilder: method test_build_thread_context_basic (line 27) | async def test_build_thread_context_basic( method test_build_thread_context_max_limit (line 43) | async def test_build_thread_context_max_limit( method test_build_thread_context_includes_starter (line 75) | async def test_build_thread_context_includes_starter( method test_build_thread_context_filters_system_messages (line 109) | async def test_build_thread_context_filters_system_messages( method test_build_thread_context_includes_bot_messages (line 147) | async def test_build_thread_context_includes_bot_messages( method test_build_thread_context_empty_thread (line 183) | async def test_build_thread_context_empty_thread( method test_build_thread_context_forum_channel (line 212) | async def test_build_thread_context_forum_channel( method test_build_thread_context_starter_fetch_fails (line 241) | async def test_build_thread_context_starter_fetch_fails( method test_build_thread_context_deduplicates_starter (line 271) | async def test_build_thread_context_deduplicates_starter( class TestReplyChainContextBuilder (line 305) | class TestReplyChainContextBuilder: method test_build_reply_chain_single_reply (line 309) | async def test_build_reply_chain_single_reply( method test_build_reply_chain_deep_chain (line 330) | async def test_build_reply_chain_deep_chain(self, mock_bot_user: Magic... method test_build_reply_chain_max_depth (line 371) | async def test_build_reply_chain_max_depth(self, mock_bot_user: MagicM... method test_build_reply_chain_no_reply (line 406) | async def test_build_reply_chain_no_reply(self, mock_bot_user: MagicMo... method test_build_reply_chain_deleted_message (line 415) | async def test_build_reply_chain_deleted_message( method test_build_reply_chain_missing_reference_data (line 434) | async def test_build_reply_chain_missing_reference_data( method test_build_reply_chain_http_exception (line 446) | async def test_build_reply_chain_http_exception( class TestCombinedContext (line 464) | class TestCombinedContext: method test_combined_context_thread_with_reply (line 468) | async def test_combined_context_thread_with_reply( method test_build_conversation_context_routes_to_thread (line 512) | async def test_build_conversation_context_routes_to_thread( method test_build_conversation_context_routes_to_reply (line 539) | async def test_build_conversation_context_routes_to_reply( class TestContextFormatting (line 558) | class TestContextFormatting: method test_format_message_content_mentions (line 561) | def test_format_message_content_mentions(self) -> None: method test_format_message_content_roles (line 577) | def test_format_message_content_roles(self) -> None: method test_format_message_content_channels (line 593) | def test_format_message_content_channels(self) -> None: method test_context_format_output (line 609) | def test_context_format_output(self, mock_bot_user: MagicMock) -> None: method test_context_format_with_username (line 622) | def test_context_format_with_username(self, mock_bot_user: MagicMock) ... method test_context_format_bot_marker (line 633) | def test_context_format_bot_marker(self, mock_bot_user: MagicMock) -> ... FILE: backend/tests/unit/onyx/onyxbot/discord/test_discord_utils.py class TestGetBotToken (line 17) | class TestGetBotToken: method test_get_token_from_env (line 20) | def test_get_token_from_env(self) -> None: method test_get_token_from_db (line 26) | def test_get_token_from_db(self) -> None: method test_get_token_none (line 45) | def test_get_token_none(self) -> None: method test_get_token_env_priority (line 61) | def test_get_token_env_priority(self) -> None: class TestParseRegistrationKey (line 78) | class TestParseRegistrationKey: method test_parse_registration_key_valid (line 81) | def test_parse_registration_key_valid(self) -> None: method test_parse_registration_key_invalid (line 87) | def test_parse_registration_key_invalid(self) -> None: method test_parse_registration_key_missing_prefix (line 92) | def test_parse_registration_key_missing_prefix(self) -> None: method test_parse_registration_key_missing_dot (line 98) | def test_parse_registration_key_missing_dot(self) -> None: method test_parse_registration_key_empty_token (line 104) | def test_parse_registration_key_empty_token(self) -> None: method test_parse_registration_key_url_encoded_tenant (line 113) | def test_parse_registration_key_url_encoded_tenant(self) -> None: method test_parse_registration_key_special_chars (line 120) | def test_parse_registration_key_special_chars(self) -> None: class TestGenerateRegistrationKey (line 128) | class TestGenerateRegistrationKey: method test_generate_registration_key (line 131) | def test_generate_registration_key(self) -> None: method test_generate_registration_key_unique (line 143) | def test_generate_registration_key_unique(self) -> None: method test_generate_registration_key_special_tenant (line 148) | def test_generate_registration_key_special_tenant(self) -> None: FILE: backend/tests/unit/onyx/onyxbot/discord/test_message_utils.py class TestSplitMessage (line 16) | class TestSplitMessage: method test_split_message_under_limit (line 19) | def test_split_message_under_limit(self) -> None: method test_split_message_at_limit (line 26) | def test_split_message_at_limit(self) -> None: method test_split_message_over_limit (line 33) | def test_split_message_over_limit(self) -> None: method test_split_at_double_newline (line 42) | def test_split_at_double_newline(self) -> None: method test_split_at_single_newline (line 54) | def test_split_at_single_newline(self) -> None: method test_split_at_period_space (line 63) | def test_split_at_period_space(self) -> None: method test_split_at_space (line 74) | def test_split_at_space(self) -> None: method test_split_no_breakpoint (line 83) | def test_split_no_breakpoint(self) -> None: method test_split_threshold_50_percent (line 92) | def test_split_threshold_50_percent(self) -> None: method test_split_multiple_chunks (line 107) | def test_split_multiple_chunks(self) -> None: method test_split_preserves_content (line 116) | def test_split_preserves_content(self) -> None: method test_split_with_unicode (line 122) | def test_split_with_unicode(self) -> None: class TestAppendCitations (line 131) | class TestAppendCitations: method _make_response (line 134) | def _make_response( method test_format_citations_empty_list (line 169) | def test_format_citations_empty_list(self) -> None: method test_format_citations_single (line 176) | def test_format_citations_single(self) -> None: method test_format_citations_multiple (line 193) | def test_format_citations_multiple(self) -> None: method test_format_citations_max_five (line 213) | def test_format_citations_max_five(self) -> None: method test_format_citation_no_link (line 235) | def test_format_citation_no_link(self) -> None: method test_format_citation_empty_name (line 247) | def test_format_citation_empty_name(self) -> None: method test_format_citation_link_with_brackets (line 258) | def test_format_citation_link_with_brackets(self) -> None: method test_format_citations_sorted_by_number (line 275) | def test_format_citations_sorted_by_number(self) -> None: method test_format_citations_with_missing_document (line 301) | def test_format_citations_with_missing_document(self) -> None: FILE: backend/tests/unit/onyx/onyxbot/discord/test_should_respond.py class TestBasicShouldRespond (line 17) | class TestBasicShouldRespond: method test_should_respond_guild_disabled (line 21) | async def test_should_respond_guild_disabled( method test_should_respond_guild_enabled (line 46) | async def test_should_respond_guild_enabled( method test_should_respond_channel_disabled (line 84) | async def test_should_respond_channel_disabled( method test_should_respond_channel_enabled (line 118) | async def test_should_respond_channel_enabled( method test_should_respond_channel_not_found (line 157) | async def test_should_respond_channel_not_found( method test_should_respond_require_mention_true_no_mention (line 188) | async def test_should_respond_require_mention_true_no_mention( method test_should_respond_require_mention_true_with_mention (line 233) | async def test_should_respond_require_mention_true_with_mention( method test_should_respond_require_mention_false_no_mention (line 271) | async def test_should_respond_require_mention_false_no_mention( class TestImplicitShouldRespond (line 309) | class TestImplicitShouldRespond: method test_implicit_respond_reply_to_bot_message (line 313) | async def test_implicit_respond_reply_to_bot_message( method test_implicit_respond_reply_to_user_message (line 333) | async def test_implicit_respond_reply_to_user_message( method test_implicit_respond_in_bot_owned_thread (line 352) | async def test_implicit_respond_in_bot_owned_thread( method test_implicit_respond_in_user_owned_thread (line 368) | async def test_implicit_respond_in_user_owned_thread( method test_implicit_respond_reply_in_bot_thread (line 384) | async def test_implicit_respond_reply_in_bot_thread( method test_implicit_respond_thread_from_bot_message (line 407) | async def test_implicit_respond_thread_from_bot_message( method test_implicit_respond_forum_channel_excluded (line 429) | async def test_implicit_respond_forum_channel_excluded( method test_implicit_respond_combined_with_mention (line 443) | async def test_implicit_respond_combined_with_mention( method test_implicit_respond_reference_fetch_fails (line 460) | async def test_implicit_respond_reference_fetch_fails( method test_implicit_respond_http_exception (line 476) | async def test_implicit_respond_http_exception( class TestThreadOnlyMode (line 492) | class TestThreadOnlyMode: method test_thread_only_mode_message_in_thread (line 496) | async def test_thread_only_mode_message_in_thread( method test_thread_only_mode_false_message_in_channel (line 545) | async def test_thread_only_mode_false_message_in_channel( class TestEdgeCases (line 584) | class TestEdgeCases: method test_should_respond_no_guild (line 588) | async def test_should_respond_no_guild(self, mock_bot_user: MagicMock)... method test_should_respond_thread_uses_parent_channel_config (line 597) | async def test_should_respond_thread_uses_parent_channel_config( FILE: backend/tests/unit/onyx/onyxbot/test_handle_regular_answer.py function _mock_client_with_channels (line 18) | def _mock_client_with_channels( function _mock_logger (line 42) | def _mock_logger() -> MagicMock: class TestSlackChannelRefPattern (line 51) | class TestSlackChannelRefPattern: method test_matches_bare_channel_id (line 52) | def test_matches_bare_channel_id(self) -> None: method test_matches_channel_id_with_name (line 56) | def test_matches_channel_id_with_name(self) -> None: method test_matches_multiple_channels (line 60) | def test_matches_multiple_channels(self) -> None: method test_no_match_on_plain_text (line 67) | def test_no_match_on_plain_text(self) -> None: method test_no_match_on_user_mention (line 71) | def test_no_match_on_user_mention(self) -> None: class TestResolveChannelReferences (line 81) | class TestResolveChannelReferences: method test_resolves_bare_channel_id_via_api (line 82) | def test_resolves_bare_channel_id_via_api(self) -> None: method test_uses_name_from_pipe_format_without_api_call (line 96) | def test_uses_name_from_pipe_format_without_api_call(self) -> None: method test_multiple_channels (line 111) | def test_multiple_channels(self) -> None: method test_no_channel_references_returns_unchanged (line 133) | def test_no_channel_references_returns_unchanged(self) -> None: method test_api_failure_skips_channel_gracefully (line 146) | def test_api_failure_skips_channel_gracefully(self) -> None: method test_partial_failure_resolves_what_it_can (line 162) | def test_partial_failure_resolves_what_it_can(self) -> None: method test_duplicate_channel_produces_single_tag (line 178) | def test_duplicate_channel_produces_single_tag(self) -> None: method test_mixed_pipe_and_bare_formats (line 192) | def test_mixed_pipe_and_bare_formats(self) -> None: FILE: backend/tests/unit/onyx/onyxbot/test_slack_blocks.py function _make_saved_doc (line 12) | def _make_saved_doc(updated_at: datetime | None) -> SavedSearchDoc: function test_build_documents_blocks_formats_naive_timestamp (line 35) | def test_build_documents_blocks_formats_naive_timestamp( FILE: backend/tests/unit/onyx/onyxbot/test_slack_channel_config.py function test_create_slack_channel_persona_reuses_existing_persona (line 7) | def test_create_slack_channel_persona_reuses_existing_persona() -> None: FILE: backend/tests/unit/onyx/onyxbot/test_slack_formatting.py function test_normalize_citation_link_wraps_url_with_parentheses (line 10) | def test_normalize_citation_link_wraps_url_with_parentheses() -> None: function test_normalize_citation_link_keeps_existing_angle_brackets (line 23) | def test_normalize_citation_link_keeps_existing_angle_brackets() -> None: function test_normalize_citation_link_handles_multiple_links (line 31) | def test_normalize_citation_link_handles_multiple_links() -> None: function test_format_slack_message_keeps_parenthesized_citation_links_intact (line 40) | def test_format_slack_message_keeps_parenthesized_citation_links_intact(... function test_slack_style_links_converted_to_clickable_links (line 55) | def test_slack_style_links_converted_to_clickable_links() -> None: function test_slack_style_links_preserved_inside_code_blocks (line 64) | def test_slack_style_links_preserved_inside_code_blocks() -> None: function test_html_tags_stripped_outside_code_blocks (line 72) | def test_html_tags_stripped_outside_code_blocks() -> None: function test_format_slack_message_block_spacing (line 81) | def test_format_slack_message_block_spacing() -> None: function test_format_slack_message_code_block_no_trailing_blank_line (line 89) | def test_format_slack_message_code_block_no_trailing_blank_line() -> None: function test_format_slack_message_ampersand_not_double_escaped (line 97) | def test_format_slack_message_ampersand_not_double_escaped() -> None: function test_table_renders_as_vertical_cards (line 109) | def test_table_renders_as_vertical_cards() -> None: function test_table_single_column (line 122) | def test_table_single_column() -> None: function test_table_embedded_in_text (line 131) | def test_table_embedded_in_text() -> None: function test_table_with_formatted_cells (line 141) | def test_table_with_formatted_cells() -> None: function test_table_with_alignment_specifiers (line 152) | def test_table_with_alignment_specifiers() -> None: function test_two_tables_in_same_message_use_independent_headers (line 160) | def test_two_tables_in_same_message_use_independent_headers() -> None: function test_table_empty_first_column_no_bare_asterisks (line 169) | def test_table_empty_first_column_no_bare_asterisks() -> None: FILE: backend/tests/unit/onyx/onyxbot/test_slack_gating.py function _make_socket_request (line 20) | def _make_socket_request( function _make_license_metadata (line 38) | def _make_license_metadata( function _ee_side_effect (line 47) | def _ee_side_effect( function _make_message_info (line 61) | def _make_message_info(email: str = "user@test.com") -> MagicMock: function _make_channel_config (line 75) | def _make_channel_config() -> MagicMock: class TestCheckTenantGated (line 88) | class TestCheckTenantGated: method _patch_tenant_id (line 92) | def _patch_tenant_id(self) -> Any: method _call (line 96) | def _call( method test_active_license_not_gated (line 111) | def test_active_license_not_gated(self, mock_fetch_ee: MagicMock) -> N... method test_multi_tenant_gated_blocks_and_responds (line 120) | def test_multi_tenant_gated_blocks_and_responds( method test_gated_access_status_blocks (line 133) | def test_gated_access_status_blocks( method test_bot_message_no_response_sent (line 160) | def test_bot_message_no_response_sent( method test_app_mention_no_response_sent (line 173) | def test_app_mention_no_response_sent( method test_no_license_metadata_not_gated (line 188) | def test_no_license_metadata_not_gated(self, mock_fetch_ee: MagicMock)... method test_response_uses_thread_ts (line 197) | def test_response_uses_thread_ts( class TestExtractChannelFromRequest (line 220) | class TestExtractChannelFromRequest: method test_channel_extraction (line 232) | def test_channel_extraction( class TestHandleMessageSeatCheck (line 248) | class TestHandleMessageSeatCheck: method _common_patches (line 252) | def _common_patches(self) -> Any: method db_session (line 261) | def db_session(self) -> Generator[MagicMock, None, None]: method _call_handle_message (line 268) | def _call_handle_message( method test_new_user_blocked_when_seats_exceeded (line 284) | def test_new_user_blocked_when_seats_exceeded( method test_existing_user_bypasses_seat_check (line 305) | def test_existing_user_bypasses_seat_check( method test_new_user_allowed_when_seats_available (line 324) | def test_new_user_allowed_when_seats_available( method test_noop_seat_check_allows_new_user (line 344) | def test_noop_seat_check_allows_new_user( class TestCheckSeatAvailability (line 366) | class TestCheckSeatAvailability: method _check (line 369) | def _check(self, used: int, total: int) -> Any: method test_seats_available (line 379) | def test_seats_available(self) -> None: method test_seats_exceeded (line 383) | def test_seats_exceeded(self) -> None: method test_at_capacity_allows_fill (line 388) | def test_at_capacity_allows_fill(self) -> None: method test_no_license_allows_unlimited (line 393) | def test_no_license_allows_unlimited(self) -> None: class TestGetUsedSeats (line 406) | class TestGetUsedSeats: method test_excludes_anonymous_user (line 411) | def test_excludes_anonymous_user(self, mock_get_session: MagicMock) ->... FILE: backend/tests/unit/onyx/prompts/test_prompt_utils.py function test_replace_reminder_tag_pattern (line 5) | def test_replace_reminder_tag_pattern() -> None: function test_replace_reminder_tag_no_pattern (line 12) | def test_replace_reminder_tag_no_pattern() -> None: FILE: backend/tests/unit/onyx/server/features/hierarchy/test_user_access_info.py function test_get_user_access_info_returns_email_and_groups (line 14) | def test_get_user_access_info_returns_email_and_groups() -> None: function test_get_user_access_info_with_no_groups (line 30) | def test_get_user_access_info_with_no_groups() -> None: FILE: backend/tests/unit/onyx/server/manage/embedding/test_embedding_api.py function _build_sensitive_value (line 15) | def _build_sensitive_value(raw_value: str) -> SensitiveValue[str]: function _build_search_settings (line 22) | def _build_search_settings(raw_api_key: str) -> SimpleNamespace: function test_list_embedding_models_masks_api_key (line 40) | def test_list_embedding_models_masks_api_key() -> None: function test_list_embedding_models_returns_none_for_local_model_api_key (line 55) | def test_list_embedding_models_returns_none_for_local_model_api_key() ->... function test_list_embedding_providers_uses_sensitive_value_masking_once (line 77) | def test_list_embedding_providers_uses_sensitive_value_masking_once() ->... function test_search_settings_api_key_property_returns_raw_value_for_runtime_use (line 98) | def test_search_settings_api_key_property_returns_raw_value_for_runtime_... FILE: backend/tests/unit/onyx/server/manage/llm/test_fetch_models_api.py class TestGetOllamaAvailableModels (line 27) | class TestGetOllamaAvailableModels: method mock_ollama_tags_response (line 31) | def mock_ollama_tags_response(self) -> dict: method mock_ollama_show_response (line 42) | def mock_ollama_show_response(self) -> dict: method test_returns_model_list (line 55) | def test_returns_model_list( method test_syncs_to_db_when_provider_name_specified (line 89) | def test_syncs_to_db_when_provider_name_specified( method test_no_sync_when_provider_name_not_specified (line 126) | def test_no_sync_when_provider_name_not_specified( class TestGetOpenRouterAvailableModels (line 153) | class TestGetOpenRouterAvailableModels: method mock_openrouter_response (line 157) | def mock_openrouter_response(self) -> dict: method test_returns_model_list (line 182) | def test_returns_model_list(self, mock_openrouter_response: dict) -> N... method test_infers_vision_support (line 208) | def test_infers_vision_support(self, mock_openrouter_response: dict) -... method test_syncs_to_db_when_provider_name_specified (line 235) | def test_syncs_to_db_when_provider_name_specified( method test_preserves_existing_models_on_sync (line 268) | def test_preserves_existing_models_on_sync( method test_no_sync_when_provider_name_not_specified (line 305) | def test_no_sync_when_provider_name_not_specified( class TestGetLMStudioAvailableModels (line 330) | class TestGetLMStudioAvailableModels: method mock_lm_studio_response (line 334) | def mock_lm_studio_response(self) -> dict: method test_returns_model_list (line 369) | def test_returns_model_list(self, mock_lm_studio_response: dict) -> None: method test_infers_vision_support (line 392) | def test_infers_vision_support(self, mock_lm_studio_response: dict) ->... method test_infers_reasoning_from_model_name (line 413) | def test_infers_reasoning_from_model_name(self) -> None: method test_uses_display_name_from_api (line 452) | def test_uses_display_name_from_api(self, mock_lm_studio_response: dic... method test_strips_trailing_v1_from_api_base (line 471) | def test_strips_trailing_v1_from_api_base(self) -> None: method test_falls_back_to_stored_api_key (line 502) | def test_falls_back_to_stored_api_key(self) -> None: method test_uses_submitted_api_key_when_changed (line 545) | def test_uses_submitted_api_key_when_changed(self) -> None: method test_raises_on_empty_models (line 579) | def test_raises_on_empty_models(self) -> None: method test_raises_on_only_non_llm_models (line 596) | def test_raises_on_only_non_llm_models(self) -> None: class TestGetLitellmAvailableModels (line 625) | class TestGetLitellmAvailableModels: method mock_litellm_response (line 629) | def mock_litellm_response(self) -> dict: method test_returns_model_list (line 654) | def test_returns_model_list(self, mock_litellm_response: dict) -> None: method test_model_fields_parsed_correctly (line 675) | def test_model_fields_parsed_correctly(self, mock_litellm_response: di... method test_results_sorted_by_model_name (line 699) | def test_results_sorted_by_model_name(self, mock_litellm_response: dic... method test_empty_data_raises_onyx_error (line 720) | def test_empty_data_raises_onyx_error(self) -> None: method test_missing_data_key_raises_onyx_error (line 739) | def test_missing_data_key_raises_onyx_error(self) -> None: method test_skips_unparseable_entries (line 758) | def test_skips_unparseable_entries(self) -> None: method test_all_entries_unparseable_raises_onyx_error (line 791) | def test_all_entries_unparseable_raises_onyx_error(self) -> None: method test_api_base_trailing_slash_handled (line 816) | def test_api_base_trailing_slash_handled(self) -> None: method test_connection_failure_raises_onyx_error (line 848) | def test_connection_failure_raises_onyx_error(self) -> None: method test_401_raises_authentication_error (line 866) | def test_401_raises_authentication_error(self) -> None: method test_404_raises_not_found_error (line 886) | def test_404_raises_not_found_error(self) -> None: class TestGetBifrostAvailableModels (line 907) | class TestGetBifrostAvailableModels: method mock_bifrost_response (line 911) | def mock_bifrost_response(self) -> dict: method test_returns_model_list (line 933) | def test_returns_model_list(self, mock_bifrost_response: dict) -> None: method test_infers_vision_support (line 954) | def test_infers_vision_support(self, mock_bifrost_response: dict) -> N... method test_existing_v1_suffix_is_not_duplicated (line 977) | def test_existing_v1_suffix_is_not_duplicated(self) -> None: method test_request_failure_is_logged_and_wrapped (line 996) | def test_request_failure_is_logged_and_wrapped(self) -> None: FILE: backend/tests/unit/onyx/server/manage/llm/test_llm_provider_utils.py class TestGenerateBedrockDisplayName (line 12) | class TestGenerateBedrockDisplayName: method test_claude_model_basic (line 15) | def test_claude_model_basic(self) -> None: method test_claude_model_with_region_prefix (line 24) | def test_claude_model_with_region_prefix(self) -> None: method test_llama_model (line 32) | def test_llama_model(self) -> None: method test_nova_model (line 38) | def test_nova_model(self) -> None: method test_mistral_model (line 44) | def test_mistral_model(self) -> None: method test_removes_version_suffix (line 49) | def test_removes_version_suffix(self) -> None: method test_removes_date_stamps (line 54) | def test_removes_date_stamps(self) -> None: class TestGenerateOllamaDisplayName (line 62) | class TestGenerateOllamaDisplayName: method test_llama_basic (line 65) | def test_llama_basic(self) -> None: method test_llama_with_size (line 70) | def test_llama_with_size(self) -> None: method test_qwen_model (line 76) | def test_qwen_model(self) -> None: method test_mistral_model (line 82) | def test_mistral_model(self) -> None: method test_deepseek_model (line 87) | def test_deepseek_model(self) -> None: method test_skips_latest_tag (line 93) | def test_skips_latest_tag(self) -> None: method test_version_number_preserved (line 98) | def test_version_number_preserved(self) -> None: class TestStripOpenrouterVendorPrefix (line 104) | class TestStripOpenrouterVendorPrefix: method test_strips_matching_prefix (line 107) | def test_strips_matching_prefix(self) -> None: method test_strips_mistral_prefix (line 112) | def test_strips_mistral_prefix(self) -> None: method test_preserves_when_no_prefix (line 119) | def test_preserves_when_no_prefix(self) -> None: method test_preserves_when_no_slash_in_id (line 126) | def test_preserves_when_no_slash_in_id(self) -> None: method test_handles_partial_vendor_match (line 131) | def test_handles_partial_vendor_match(self) -> None: class TestIsValidBedrockModel (line 140) | class TestIsValidBedrockModel: method test_valid_claude_model (line 143) | def test_valid_claude_model(self) -> None: method test_invalid_embedding_model (line 147) | def test_invalid_embedding_model(self) -> None: method test_invalid_image_model (line 151) | def test_invalid_image_model(self) -> None: method test_invalid_non_streaming (line 155) | def test_invalid_non_streaming(self) -> None: method test_empty_model_id (line 159) | def test_empty_model_id(self) -> None: class TestInferVisionSupport (line 164) | class TestInferVisionSupport: method test_claude_3_has_vision (line 167) | def test_claude_3_has_vision(self) -> None: method test_claude_4_has_vision (line 171) | def test_claude_4_has_vision(self) -> None: method test_nova_pro_has_vision (line 175) | def test_nova_pro_has_vision(self) -> None: method test_bifrost_claude_has_vision (line 179) | def test_bifrost_claude_has_vision(self) -> None: method test_bifrost_gpt4o_has_vision (line 183) | def test_bifrost_gpt4o_has_vision(self) -> None: method test_mistral_no_vision (line 187) | def test_mistral_no_vision(self) -> None: class TestIsReasoningModel (line 192) | class TestIsReasoningModel: method test_o1_is_reasoning (line 195) | def test_o1_is_reasoning(self) -> None: method test_o3_is_reasoning (line 199) | def test_o3_is_reasoning(self) -> None: method test_deepseek_r1_is_reasoning (line 203) | def test_deepseek_r1_is_reasoning(self) -> None: method test_qwq_is_reasoning (line 207) | def test_qwq_is_reasoning(self) -> None: method test_gpt_4_not_reasoning (line 211) | def test_gpt_4_not_reasoning(self) -> None: method test_claude_not_reasoning (line 215) | def test_claude_not_reasoning(self) -> None: class TestIsEmbeddingModel (line 223) | class TestIsEmbeddingModel: method test_openai_embedding_ada (line 226) | def test_openai_embedding_ada(self) -> None: method test_openai_embedding_3_small (line 229) | def test_openai_embedding_3_small(self) -> None: method test_openai_embedding_3_large (line 232) | def test_openai_embedding_3_large(self) -> None: method test_cohere_embed_model (line 235) | def test_cohere_embed_model(self) -> None: method test_bedrock_titan_embed (line 238) | def test_bedrock_titan_embed(self) -> None: method test_gpt4o_not_embedding (line 241) | def test_gpt4o_not_embedding(self) -> None: method test_gpt4_not_embedding (line 244) | def test_gpt4_not_embedding(self) -> None: method test_dall_e_not_embedding (line 247) | def test_dall_e_not_embedding(self) -> None: method test_unknown_custom_model_not_embedding (line 250) | def test_unknown_custom_model_not_embedding(self) -> None: FILE: backend/tests/unit/onyx/server/manage/test_bulk_invite_limit.py function test_trial_tenant_cannot_exceed_invite_limit (line 19) | def test_trial_tenant_cannot_exceed_invite_limit(*_mocks: None) -> None: function test_trial_tenant_can_invite_within_limit (line 44) | def test_trial_tenant_can_invite_within_limit(*_mocks: None) -> None: function _with_common_patches (line 66) | def _with_common_patches(fn: object) -> object: function test_email_invite_status_disabled (line 74) | def test_email_invite_status_disabled(*_mocks: None) -> None: function test_email_invite_status_not_configured (line 84) | def test_email_invite_status_not_configured(*_mocks: None) -> None: function test_email_invite_status_sent (line 95) | def test_email_invite_status_sent(mock_send: MagicMock, *_mocks: None) -... function test_email_invite_status_send_failed (line 110) | def test_email_invite_status_send_failed(*_mocks: None) -> None: FILE: backend/tests/unit/onyx/server/manage/voice/test_voice_api_validation.py function test_validate_voice_api_base_blocks_private_for_non_azure (line 7) | def test_validate_voice_api_base_blocks_private_for_non_azure() -> None: function test_validate_voice_api_base_allows_private_for_azure (line 12) | def test_validate_voice_api_base_allows_private_for_azure() -> None: function test_validate_voice_api_base_blocks_metadata_for_azure (line 17) | def test_validate_voice_api_base_blocks_metadata_for_azure() -> None: function test_validate_voice_api_base_returns_none_for_none (line 22) | def test_validate_voice_api_base_returns_none_for_none() -> None: FILE: backend/tests/unit/onyx/server/scim/conftest.py function mock_db_session (line 36) | def mock_db_session() -> MagicMock: function mock_token (line 42) | def mock_token() -> MagicMock: function provider (line 50) | def provider(request: pytest.FixtureRequest) -> ScimProvider: function mock_dal (line 56) | def mock_dal() -> Generator[MagicMock, None, None]: function make_scim_user (line 79) | def make_scim_user(**kwargs: Any) -> ScimUserResource: function make_scim_group (line 91) | def make_scim_group(**kwargs: Any) -> ScimGroupResource: function make_db_user (line 98) | def make_db_user(**kwargs: Any) -> MagicMock: function make_db_group (line 109) | def make_db_group(**kwargs: Any) -> MagicMock: function make_user_mapping (line 120) | def make_user_mapping(**kwargs: Any) -> MagicMock: function assert_scim_error (line 135) | def assert_scim_error(result: object, expected_status: int) -> None: function parse_scim_user (line 146) | def parse_scim_user(result: object, *, status: int = 200) -> ScimUserRes... function parse_scim_group (line 155) | def parse_scim_group(result: object, *, status: int = 200) -> ScimGroupR... function parse_scim_list (line 164) | def parse_scim_list(result: object) -> ScimListResponse: FILE: backend/tests/unit/onyx/server/scim/test_admin.py function mock_db_session (line 21) | def mock_db_session() -> MagicMock: function scim_dal (line 26) | def scim_dal(mock_db_session: MagicMock) -> ScimDAL: function admin_user (line 31) | def admin_user() -> User: function _make_token (line 37) | def _make_token(token_id: int, name: str, *, is_active: bool = True) -> ... class TestGetActiveToken (line 50) | class TestGetActiveToken: method test_returns_token_metadata (line 51) | def test_returns_token_metadata(self, scim_dal: ScimDAL, admin_user: U... method test_raises_404_when_no_active_token (line 61) | def test_raises_404_when_no_active_token( class TestCreateToken (line 72) | class TestCreateToken: method test_creates_token_and_revokes_previous (line 74) | def test_creates_token_and_revokes_previous( method test_creates_first_token_when_none_exist (line 109) | def test_creates_first_token_when_none_exist( FILE: backend/tests/unit/onyx/server/scim/test_auth.py class TestGenerateScimToken (line 12) | class TestGenerateScimToken: method test_returns_three_strings (line 13) | def test_returns_three_strings(self) -> None: method test_raw_token_has_prefix (line 19) | def test_raw_token_has_prefix(self) -> None: method test_hash_is_sha256_hex (line 23) | def test_hash_is_sha256_hex(self) -> None: method test_display_shows_last_four_chars (line 28) | def test_display_shows_last_four_chars(self) -> None: method test_tokens_are_unique (line 33) | def test_tokens_are_unique(self) -> None: class TestHashScimToken (line 38) | class TestHashScimToken: method test_deterministic (line 39) | def test_deterministic(self) -> None: method test_different_inputs_different_hashes (line 42) | def test_different_inputs_different_hashes(self) -> None: class TestVerifyScimToken (line 46) | class TestVerifyScimToken: method _make_request (line 47) | def _make_request(self, auth_header: str | None = None) -> MagicMock: method _make_dal (line 55) | def _make_dal(self, token: MagicMock | None = None) -> MagicMock: method test_missing_header_raises_401 (line 60) | def test_missing_header_raises_401(self) -> None: method test_wrong_prefix_raises_401 (line 68) | def test_wrong_prefix_raises_401(self) -> None: method test_token_not_in_db_raises_401 (line 75) | def test_token_not_in_db_raises_401(self) -> None: method test_inactive_token_raises_401 (line 84) | def test_inactive_token_raises_401(self) -> None: method test_valid_token_returns_token (line 95) | def test_valid_token_returns_token(self) -> None: FILE: backend/tests/unit/onyx/server/scim/test_entra.py function entra_provider (line 57) | def entra_provider() -> ScimProvider: class TestEntraServiceDiscovery (line 67) | class TestEntraServiceDiscovery: method test_service_provider_config_advertises_patch (line 70) | def test_service_provider_config_advertises_patch(self) -> None: method test_resource_types_include_enterprise_extension (line 74) | def test_resource_types_include_enterprise_extension(self) -> None: method test_schemas_include_enterprise_user (line 83) | def test_schemas_include_enterprise_user(self) -> None: method test_enterprise_schema_has_expected_attributes (line 90) | def test_enterprise_schema_has_expected_attributes(self) -> None: method test_service_discovery_content_type (line 101) | def test_service_discovery_content_type(self) -> None: class TestEntraUserLifecycle (line 113) | class TestEntraUserLifecycle: method test_create_user_includes_enterprise_schema (line 117) | def test_create_user_includes_enterprise_schema( method test_create_user_with_enterprise_extension (line 140) | def test_create_user_with_enterprise_extension( method test_get_user_includes_enterprise_schema (line 181) | def test_get_user_includes_enterprise_schema( method test_get_user_returns_enterprise_extension_data (line 201) | def test_get_user_returns_enterprise_extension_data( method test_list_users_includes_enterprise_schema (line 229) | def test_list_users_includes_enterprise_schema( method test_patch_user_deactivate_with_pascal_case_replace (line 254) | def test_patch_user_deactivate_with_pascal_case_replace( method test_patch_user_add_external_id_with_pascal_case (line 288) | def test_patch_user_add_external_id_with_pascal_case( method test_patch_user_enterprise_extension_in_value_dict (line 322) | def test_patch_user_enterprise_extension_in_value_dict( method test_patch_user_remove_external_id (line 373) | def test_patch_user_remove_external_id( method test_patch_user_emails_primary_eq_true_value (line 410) | def test_patch_user_emails_primary_eq_true_value( method test_patch_user_enterprise_urn_department_path (line 448) | def test_patch_user_enterprise_urn_department_path( method test_replace_user_includes_enterprise_schema (line 487) | def test_replace_user_includes_enterprise_schema( method test_replace_user_with_enterprise_extension (line 512) | def test_replace_user_with_enterprise_extension( method test_delete_user_returns_204 (line 548) | def test_delete_user_returns_204( method test_double_delete_returns_404 (line 567) | def test_double_delete_returns_404( method test_name_formatted_preserved_on_create (line 588) | def test_name_formatted_preserved_on_create( class TestEntraGroupLifecycle (line 628) | class TestEntraGroupLifecycle: method test_get_group_standard_response (line 631) | def test_get_group_standard_response( method test_list_groups_with_excluded_attributes_members (line 654) | def test_list_groups_with_excluded_attributes_members( method test_get_group_with_excluded_attributes_members (line 684) | def test_get_group_with_excluded_attributes_members( method test_patch_group_add_members_with_pascal_case (line 711) | def test_patch_group_add_members_with_pascal_case( method test_patch_group_remove_member_with_pascal_case (line 755) | def test_patch_group_remove_member_with_pascal_case( class TestExcludedAttributes (line 798) | class TestExcludedAttributes: method test_list_groups_excludes_members (line 801) | def test_list_groups_excludes_members( method test_get_group_excludes_members (line 829) | def test_get_group_excludes_members( method test_list_users_excludes_groups (line 854) | def test_list_users_excludes_groups( method test_get_user_excludes_groups (line 882) | def test_get_user_excludes_groups( method test_multiple_excluded_attributes (line 906) | def test_multiple_excluded_attributes( method test_no_excluded_attributes_returns_full_response (line 931) | def test_no_excluded_attributes_returns_full_response( class TestEntraConnectionProbe (line 959) | class TestEntraConnectionProbe: method test_filter_for_nonexistent_user_returns_empty_list (line 962) | def test_filter_for_nonexistent_user_returns_empty_list( FILE: backend/tests/unit/onyx/server/scim/test_filtering.py class TestParseScimFilter (line 8) | class TestParseScimFilter: method test_eq_filter_double_quoted (line 11) | def test_eq_filter_double_quoted(self) -> None: method test_eq_filter_single_quoted (line 19) | def test_eq_filter_single_quoted(self) -> None: method test_co_filter (line 27) | def test_co_filter(self) -> None: method test_sw_filter (line 35) | def test_sw_filter(self) -> None: method test_case_insensitive_operator (line 43) | def test_case_insensitive_operator(self) -> None: method test_external_id_filter (line 48) | def test_external_id_filter(self) -> None: method test_empty_value (line 56) | def test_empty_value(self) -> None: method test_whitespace_trimming (line 64) | def test_whitespace_trimming(self) -> None: method test_empty_input_returns_none (line 77) | def test_empty_input_returns_none(self, filter_string: str | None) -> ... method test_malformed_input_raises_value_error (line 91) | def test_malformed_input_raises_value_error(self, filter_string: str) ... FILE: backend/tests/unit/onyx/server/scim/test_group_endpoints.py class TestListGroups (line 31) | class TestListGroups: method test_empty_result (line 34) | def test_empty_result( method test_unsupported_filter_returns_400 (line 56) | def test_unsupported_filter_returns_400( method test_returns_groups_with_members (line 78) | def test_returns_groups_with_members( class TestGetGroup (line 109) | class TestGetGroup: method test_returns_scim_resource (line 112) | def test_returns_scim_resource( method test_non_integer_id_returns_404 (line 134) | def test_non_integer_id_returns_404( method test_not_found_returns_404 (line 150) | def test_not_found_returns_404( class TestCreateGroup (line 169) | class TestCreateGroup: method test_success (line 173) | def test_success( method test_duplicate_name_returns_409 (line 199) | def test_duplicate_name_returns_409( method test_invalid_member_returns_400 (line 219) | def test_invalid_member_returns_400( method test_nonexistent_member_returns_400 (line 242) | def test_nonexistent_member_returns_400( method test_creates_external_id_mapping (line 266) | def test_creates_external_id_mapping( class TestReplaceGroup (line 291) | class TestReplaceGroup: method test_success (line 295) | def test_success( method test_not_found_returns_404 (line 323) | def test_not_found_returns_404( method test_invalid_member_returns_400 (line 343) | def test_invalid_member_returns_400( method test_syncs_external_id (line 368) | def test_syncs_external_id( class TestPatchGroup (line 394) | class TestPatchGroup: method test_rename (line 398) | def test_rename( method test_not_found_returns_404 (line 434) | def test_not_found_returns_404( method test_patch_error_returns_error_response (line 464) | def test_patch_error_returns_error_response( method test_add_members (line 499) | def test_add_members( method test_add_nonexistent_member_returns_400 (line 543) | def test_add_nonexistent_member_returns_400( method test_remove_members (line 585) | def test_remove_members( class TestDeleteGroup (line 622) | class TestDeleteGroup: method test_success (line 625) | def test_success( method test_not_found_returns_404 (line 649) | def test_not_found_returns_404( method test_non_integer_id_returns_404 (line 665) | def test_non_integer_id_returns_404( FILE: backend/tests/unit/onyx/server/scim/test_patch.py function _make_user (line 23) | def _make_user(**kwargs: object) -> ScimUserResource: function _make_group (line 33) | def _make_group(**kwargs: object) -> ScimGroupResource: function _replace_op (line 39) | def _replace_op( function _add_op (line 46) | def _add_op( function _remove_op (line 53) | def _remove_op(path: str) -> ScimPatchOperation: class TestApplyUserPatch (line 57) | class TestApplyUserPatch: method test_deactivate_user (line 60) | def test_deactivate_user(self) -> None: method test_activate_user (line 66) | def test_activate_user(self) -> None: method test_replace_given_name (line 71) | def test_replace_given_name(self) -> None: method test_replace_family_name (line 78) | def test_replace_family_name(self) -> None: method test_replace_username (line 84) | def test_replace_username(self) -> None: method test_replace_without_path_uses_dict (line 89) | def test_replace_without_path_uses_dict(self) -> None: method test_multiple_operations (line 103) | def test_multiple_operations(self) -> None: method test_case_insensitive_path (line 116) | def test_case_insensitive_path(self) -> None: method test_original_not_mutated (line 121) | def test_original_not_mutated(self) -> None: method test_unsupported_path_raises (line 126) | def test_unsupported_path_raises(self) -> None: method test_remove_op_clears_field (line 131) | def test_remove_op_clears_field(self) -> None: method test_remove_unsupported_path_raises (line 137) | def test_remove_unsupported_path_raises(self) -> None: method test_replace_without_path_ignores_id (line 143) | def test_replace_without_path_ignores_id(self) -> None: method test_replace_without_path_ignores_schemas (line 153) | def test_replace_without_path_ignores_schemas(self) -> None: method test_okta_deactivation_payload (line 171) | def test_okta_deactivation_payload(self) -> None: method test_replace_displayname (line 187) | def test_replace_displayname(self) -> None: method test_replace_without_path_complex_value_dict (line 196) | def test_replace_without_path_complex_value_dict(self) -> None: method test_add_operation_works_like_replace (line 218) | def test_add_operation_works_like_replace(self) -> None: method test_entra_capitalized_replace_op (line 223) | def test_entra_capitalized_replace_op(self) -> None: method test_entra_capitalized_add_op (line 230) | def test_entra_capitalized_add_op(self) -> None: method test_entra_enterprise_extension_handled (line 237) | def test_entra_enterprise_extension_handled(self) -> None: method test_okta_handles_enterprise_extension_urn (line 256) | def test_okta_handles_enterprise_extension_urn(self) -> None: method test_emails_primary_eq_true_value (line 273) | def test_emails_primary_eq_true_value(self) -> None: method test_enterprise_urn_department_path (line 287) | def test_enterprise_urn_department_path(self) -> None: method test_enterprise_urn_manager_path (line 301) | def test_enterprise_urn_manager_path(self) -> None: class TestApplyGroupPatch (line 316) | class TestApplyGroupPatch: method test_replace_display_name (line 319) | def test_replace_display_name(self) -> None: method test_add_members (line 328) | def test_add_members(self) -> None: method test_add_members_without_path (line 343) | def test_add_members_without_path(self) -> None: method test_add_duplicate_member_skipped (line 352) | def test_add_duplicate_member_skipped(self) -> None: method test_remove_member (line 366) | def test_remove_member(self) -> None: method test_remove_nonexistent_member (line 382) | def test_remove_nonexistent_member(self) -> None: method test_mixed_operations (line 391) | def test_mixed_operations(self) -> None: method test_remove_without_path_raises (line 406) | def test_remove_without_path_raises(self) -> None: method test_remove_invalid_path_raises (line 414) | def test_remove_invalid_path_raises(self) -> None: method test_replace_members_with_path (line 419) | def test_replace_members_with_path(self) -> None: method test_replace_members_empty_list_clears (line 443) | def test_replace_members_empty_list_clears(self) -> None: method test_unsupported_replace_path_raises (line 458) | def test_unsupported_replace_path_raises(self) -> None: method test_original_not_mutated (line 463) | def test_original_not_mutated(self) -> None: method test_replace_without_path_ignores_id (line 468) | def test_replace_without_path_ignores_id(self) -> None: method test_replace_without_path_ignores_schemas (line 482) | def test_replace_without_path_ignores_schemas(self) -> None: method test_replace_without_path_complex_value_dict (line 499) | def test_replace_without_path_complex_value_dict(self) -> None: FILE: backend/tests/unit/onyx/server/scim/test_providers.py function _make_mock_user (line 21) | def _make_mock_user( function _make_mock_group (line 35) | def _make_mock_group(group_id: int = 42, name: str = "Engineering") -> M... class TestOktaProvider (line 42) | class TestOktaProvider: method test_name (line 43) | def test_name(self) -> None: method test_ignored_patch_paths (line 46) | def test_ignored_patch_paths(self) -> None: method test_build_user_resource_basic (line 49) | def test_build_user_resource_basic(self) -> None: method test_build_user_resource_has_core_schema_only (line 66) | def test_build_user_resource_has_core_schema_only(self) -> None: method test_build_user_resource_with_groups (line 72) | def test_build_user_resource_with_groups(self) -> None: method test_build_user_resource_empty_groups (line 83) | def test_build_user_resource_empty_groups(self) -> None: method test_build_user_resource_no_groups (line 90) | def test_build_user_resource_no_groups(self) -> None: method test_build_user_resource_name_parsing (line 97) | def test_build_user_resource_name_parsing(self) -> None: method test_build_user_resource_single_name (line 106) | def test_build_user_resource_single_name(self) -> None: method test_build_user_resource_no_name (line 115) | def test_build_user_resource_no_name(self) -> None: method test_build_user_resource_scim_username_preserves_case (line 126) | def test_build_user_resource_scim_username_preserves_case(self) -> None: method test_build_user_resource_scim_username_none_falls_back (line 137) | def test_build_user_resource_scim_username_none_falls_back(self) -> None: method test_build_group_resource (line 146) | def test_build_group_resource(self) -> None: method test_build_group_resource_empty_members (line 168) | def test_build_group_resource_empty_members(self) -> None: class TestEntraProvider (line 176) | class TestEntraProvider: method test_name (line 177) | def test_name(self) -> None: method test_ignored_patch_paths (line 180) | def test_ignored_patch_paths(self) -> None: method test_build_user_resource_includes_enterprise_schema (line 186) | def test_build_user_resource_includes_enterprise_schema(self) -> None: method test_build_user_resource_basic (line 193) | def test_build_user_resource_basic(self) -> None: class TestGetDefaultProvider (line 212) | class TestGetDefaultProvider: method test_returns_okta (line 213) | def test_returns_okta(self) -> None: FILE: backend/tests/unit/onyx/server/scim/test_user_endpoints.py class TestListUsers (line 35) | class TestListUsers: method test_empty_result (line 38) | def test_empty_result( method test_returns_users_with_scim_shape (line 60) | def test_returns_users_with_scim_shape( method test_unsupported_filter_attribute_returns_400 (line 90) | def test_unsupported_filter_attribute_returns_400( method test_invalid_filter_syntax_returns_400 (line 112) | def test_invalid_filter_syntax_returns_400( class TestGetUser (line 131) | class TestGetUser: method test_returns_scim_resource (line 134) | def test_returns_scim_resource( method test_invalid_uuid_returns_404 (line 155) | def test_invalid_uuid_returns_404( method test_user_not_found_returns_404 (line 171) | def test_user_not_found_returns_404( class TestCreateUser (line 190) | class TestCreateUser: method test_success (line 194) | def test_success( method test_missing_external_id_still_creates_mapping (line 218) | def test_missing_external_id_still_creates_mapping( method test_duplicate_scim_managed_email_returns_409 (line 244) | def test_duplicate_scim_managed_email_returns_409( method test_existing_user_without_mapping_gets_linked (line 270) | def test_existing_user_without_mapping_gets_linked( method test_integrity_error_returns_409 (line 304) | def test_integrity_error_returns_409( method test_seat_limit_returns_403 (line 327) | def test_seat_limit_returns_403( method test_creates_external_id_mapping (line 348) | def test_creates_external_id_mapping( class TestReplaceUser (line 371) | class TestReplaceUser: method test_success (line 374) | def test_success( method test_not_found_returns_404 (line 400) | def test_not_found_returns_404( method test_reactivation_checks_seats (line 420) | def test_reactivation_checks_seats( method test_syncs_external_id (line 444) | def test_syncs_external_id( class TestPatchUser (line 476) | class TestPatchUser: method test_deactivate (line 479) | def test_deactivate( method test_not_found_returns_404 (line 509) | def test_not_found_returns_404( method test_patch_displayname_persists (line 537) | def test_patch_displayname_persists( method test_patch_error_returns_error_response (line 571) | def test_patch_error_returns_error_response( class TestDeleteUser (line 602) | class TestDeleteUser: method test_success (line 605) | def test_success( method test_not_found_returns_404 (line 629) | def test_not_found_returns_404( method test_invalid_uuid_returns_404 (line 645) | def test_invalid_uuid_returns_404( class TestScimNameToStr (line 660) | class TestScimNameToStr: method test_prefers_formatted_over_components (line 663) | def test_prefers_formatted_over_components(self) -> None: method test_given_name_only (line 670) | def test_given_name_only(self) -> None: method test_family_name_only (line 674) | def test_family_name_only(self) -> None: method test_falls_back_to_formatted (line 678) | def test_falls_back_to_formatted(self) -> None: method test_none_returns_none (line 682) | def test_none_returns_none(self) -> None: method test_empty_name_returns_none (line 685) | def test_empty_name_returns_none(self) -> None: class TestEmailCasePreservation (line 690) | class TestEmailCasePreservation: method test_create_preserves_username_case (line 694) | def test_create_preserves_username_case( method test_get_preserves_username_case (line 717) | def test_get_preserves_username_case( FILE: backend/tests/unit/onyx/server/test_full_user_snapshot.py function _mock_user (line 11) | def _mock_user( function test_from_user_model_includes_new_fields (line 33) | def test_from_user_model_includes_new_fields() -> None: function test_from_user_model_defaults_groups_to_empty (line 45) | def test_from_user_model_defaults_groups_to_empty() -> None: function test_from_user_model_personal_name_none (line 52) | def test_from_user_model_personal_name_none() -> None: FILE: backend/tests/unit/onyx/server/test_pool_metrics.py function test_pool_state_collector_reports_pool_stats (line 23) | def test_pool_state_collector_reports_pool_stats() -> None: function test_pool_state_collector_handles_multiple_engines (line 50) | def test_pool_state_collector_handles_multiple_engines() -> None: function _make_conn_record (line 77) | def _make_conn_record() -> MagicMock: function test_checkout_event_stores_endpoint_and_increments_gauge (line 84) | def test_checkout_event_stores_endpoint_and_increments_gauge() -> None: function test_checkin_event_observes_hold_duration (line 132) | def test_checkin_event_observes_hold_duration() -> None: function test_checkin_with_missing_endpoint_uses_unknown (line 187) | def test_checkin_with_missing_endpoint_uses_unknown() -> None: function test_setup_skips_null_pool_engines (line 227) | def test_setup_skips_null_pool_engines() -> None: function test_build_route_map_extracts_api_routes (line 245) | def test_build_route_map_extracts_api_routes() -> None: function test_match_route_resolves_parameterized_paths (line 264) | def test_match_route_resolves_parameterized_paths() -> None: function test_match_route_returns_none_for_unknown_paths (line 277) | def test_match_route_returns_none_for_unknown_paths() -> None: function test_match_route_exact_paths (line 290) | def test_match_route_exact_paths() -> None: FILE: backend/tests/unit/onyx/server/test_projects_file_utils.py class _Tokenizer (line 14) | class _Tokenizer(BaseTokenizer): method encode (line 15) | def encode(self, text: str) -> list[int]: method tokenize (line 18) | def tokenize(self, text: str) -> list[str]: method decode (line 21) | def decode(self, _tokens: list[int]) -> str: class _NonSeekableFile (line 25) | class _NonSeekableFile(BytesIO): method tell (line 26) | def tell(self) -> int: method seek (line 29) | def seek(self, *_args: object, **_kwargs: object) -> int: function _make_upload (line 33) | def _make_upload(filename: str, size: int, content: bytes | None = None)... function _make_upload_no_size (line 38) | def _make_upload_no_size(filename: str, content: bytes) -> UploadFile: function _make_settings (line 42) | def _make_settings(upload_size_mb: int = 1, token_threshold_k: int = 100... function _patch_common_dependencies (line 49) | def _patch_common_dependencies( function test_get_upload_size_bytes_falls_back_to_stream_size (line 64) | def test_get_upload_size_bytes_falls_back_to_stream_size() -> None: function test_get_upload_size_bytes_logs_warning_when_stream_size_unavailable (line 74) | def test_get_upload_size_bytes_logs_warning_when_stream_size_unavailable( function test_is_upload_too_large_logs_warning_when_size_unknown (line 87) | def test_is_upload_too_large_logs_warning_when_size_unknown( function test_categorize_uploaded_files_accepts_size_under_limit (line 102) | def test_categorize_uploaded_files_accepts_size_under_limit( function test_categorize_uploaded_files_uses_seek_fallback_when_upload_size_missing (line 116) | def test_categorize_uploaded_files_uses_seek_fallback_when_upload_size_m... function test_categorize_uploaded_files_accepts_size_at_limit (line 129) | def test_categorize_uploaded_files_accepts_size_at_limit( function test_categorize_uploaded_files_rejects_size_over_limit_with_reason (line 143) | def test_categorize_uploaded_files_rejects_size_over_limit_with_reason( function test_categorize_uploaded_files_mixed_batch_keeps_valid_and_rejects_oversized (line 157) | def test_categorize_uploaded_files_mixed_batch_keeps_valid_and_rejects_o... function test_categorize_uploaded_files_enforces_size_limit_always (line 174) | def test_categorize_uploaded_files_enforces_size_limit_always( function test_categorize_uploaded_files_checks_size_before_text_extraction (line 187) | def test_categorize_uploaded_files_checks_size_before_text_extraction( function test_categorize_enforces_size_limit_when_upload_size_mb_is_positive (line 204) | def test_categorize_enforces_size_limit_when_upload_size_mb_is_positive( function test_categorize_enforces_token_limit_when_threshold_k_is_positive (line 218) | def test_categorize_enforces_token_limit_when_threshold_k_is_positive( function test_categorize_no_token_limit_when_threshold_k_is_zero (line 232) | def test_categorize_no_token_limit_when_threshold_k_is_zero( function test_categorize_both_limits_enforced (line 248) | def test_categorize_both_limits_enforced( function test_categorize_rejection_reason_contains_dynamic_values (line 263) | def test_categorize_rejection_reason_contains_dynamic_values( function test_count_tokens_small_text (line 287) | def test_count_tokens_small_text() -> None: function test_count_tokens_chunked_matches_single_call (line 294) | def test_count_tokens_chunked_matches_single_call() -> None: function test_count_tokens_large_text_is_chunked (line 301) | def test_count_tokens_large_text_is_chunked(monkeypatch: pytest.MonkeyPa... function test_count_tokens_with_token_limit_exits_early (line 310) | def test_count_tokens_with_token_limit_exits_early( function test_count_tokens_with_token_limit_not_exceeded (line 340) | def test_count_tokens_with_token_limit_not_exceeded( function test_count_tokens_no_limit_encodes_all_chunks (line 351) | def test_count_tokens_no_limit_encodes_all_chunks( function test_categorize_early_exits_tokenization_for_large_text (line 365) | def test_categorize_early_exits_tokenization_for_large_text( function test_categorize_text_under_token_limit_accepted (line 407) | def test_categorize_text_under_token_limit_accepted( function test_csv_over_token_threshold_accepted_skip_indexing (line 425) | def test_csv_over_token_threshold_accepted_skip_indexing( function test_csv_under_token_threshold_accepted_and_indexed (line 442) | def test_csv_under_token_threshold_accepted_and_indexed( function test_pdf_over_token_threshold_rejected (line 459) | def test_pdf_over_token_threshold_rejected( FILE: backend/tests/unit/onyx/server/test_prometheus_instrumentation.py function _make_info (line 18) | def _make_info( function test_slow_request_callback_increments_above_threshold (line 33) | def test_slow_request_callback_increments_above_threshold() -> None: function test_slow_request_callback_skips_below_threshold (line 49) | def test_slow_request_callback_skips_below_threshold() -> None: function test_slow_request_callback_skips_at_exact_threshold (line 57) | def test_slow_request_callback_skips_at_exact_threshold() -> None: function test_setup_attaches_instrumentator_to_app (line 68) | def test_setup_attaches_instrumentator_to_app() -> None: function test_per_tenant_callback_increments_with_tenant_id (line 104) | def test_per_tenant_callback_increments_with_tenant_id() -> None: function test_per_tenant_callback_falls_back_to_unknown (line 130) | def test_per_tenant_callback_falls_back_to_unknown() -> None: function test_inprogress_gauge_increments_during_request (line 154) | def test_inprogress_gauge_increments_during_request() -> None: function test_inprogress_gauge_tracks_concurrent_requests (line 193) | def test_inprogress_gauge_tracks_concurrent_requests() -> None: FILE: backend/tests/unit/onyx/server/test_settings_store.py class _FakeKvStore (line 13) | class _FakeKvStore: method __init__ (line 14) | def __init__(self, data: dict | None = None) -> None: method load (line 17) | def load(self, _key: str) -> dict: class _FakeCache (line 23) | class _FakeCache: method __init__ (line 24) | def __init__(self) -> None: method get (line 27) | def get(self, key: str) -> bytes | None: method set (line 30) | def set(self, key: str, value: str, ex: int | None = None) -> None: #... function test_load_settings_uses_model_defaults_when_no_stored_value (line 34) | def test_load_settings_uses_model_defaults_when_no_stored_value( function test_load_settings_uses_high_token_default_when_vector_db_disabled (line 52) | def test_load_settings_uses_high_token_default_when_vector_db_disabled( function test_load_settings_preserves_explicit_value_when_vector_db_disabled (line 70) | def test_load_settings_preserves_explicit_value_when_vector_db_disabled( function test_load_settings_preserves_zero_token_threshold (line 85) | def test_load_settings_preserves_zero_token_threshold( function test_load_settings_resolves_zero_upload_size_to_default (line 99) | def test_load_settings_resolves_zero_upload_size_to_default( function test_load_settings_clamps_upload_size_to_env_max (line 112) | def test_load_settings_clamps_upload_size_to_env_max( function test_load_settings_preserves_upload_size_within_max (line 127) | def test_load_settings_preserves_upload_size_within_max( function test_load_settings_zero_upload_size_resolves_to_default (line 142) | def test_load_settings_zero_upload_size_resolves_to_default( function test_load_settings_default_clamped_to_max (line 158) | def test_load_settings_default_clamped_to_max( FILE: backend/tests/unit/onyx/server/test_upload_files.py function _create_test_zip (line 15) | def _create_test_zip() -> bytes: function _make_upload_file (line 24) | def _make_upload_file(content: bytes, filename: str, content_type: str) ... function test_upload_zip_with_unzip_true_extracts_files (line 33) | def test_upload_zip_with_unzip_true_extracts_files( function test_upload_zip_with_unzip_false_stores_zip_as_is (line 55) | def test_upload_zip_with_unzip_false_stores_zip_as_is( function test_upload_invalid_zip_with_unzip_false_raises (line 83) | def test_upload_invalid_zip_with_unzip_false_raises( function test_upload_multiple_zips_rejected_when_unzip_false (line 96) | def test_upload_multiple_zips_rejected_when_unzip_false( FILE: backend/tests/unit/onyx/test_redis.py function test_redis_ssl (line 16) | def test_redis_ssl() -> None: FILE: backend/tests/unit/onyx/test_startup_validation.py class TestValidateNoVectorDbSettings (line 12) | class TestValidateNoVectorDbSettings: method test_no_error_when_vector_db_enabled (line 14) | def test_no_error_when_vector_db_enabled(self) -> None: method test_no_error_when_no_conflicts (line 22) | def test_no_error_when_no_conflicts(self) -> None: method test_raises_on_multi_tenant (line 29) | def test_raises_on_multi_tenant(self) -> None: method test_raises_on_enable_craft (line 38) | def test_raises_on_enable_craft(self) -> None: method test_multi_tenant_checked_before_craft (line 47) | def test_multi_tenant_checked_before_craft(self) -> None: FILE: backend/tests/unit/onyx/tools/custom/test_custom_tools.py class TestCustomTool (line 21) | class TestCustomTool(unittest.TestCase): method setUp (line 28) | def setUp(self) -> None: method test_custom_tool_run_get (line 84) | def test_custom_tool_run_get(self, mock_request: unittest.mock.MagicMo... method test_custom_tool_run_post (line 122) | def test_custom_tool_run_post(self, mock_request: unittest.mock.MagicM... method test_custom_tool_with_headers (line 162) | def test_custom_tool_with_headers( method test_custom_tool_with_empty_headers (line 201) | def test_custom_tool_with_empty_headers( method test_invalid_openapi_schema (line 230) | def test_invalid_openapi_schema(self) -> None: method test_custom_tool_final_result (line 246) | def test_custom_tool_final_result(self) -> None: FILE: backend/tests/unit/onyx/tools/test_construct_tools_no_vectordb.py class TestSearchToolAvailability (line 24) | class TestSearchToolAvailability: method test_unavailable_when_vector_db_disabled (line 26) | def test_unavailable_when_vector_db_disabled(self) -> None: method test_available_when_vector_db_enabled_and_files_exist (line 41) | def test_available_when_vector_db_enabled_and_files_exist( class TestOpenURLToolAvailability (line 57) | class TestOpenURLToolAvailability: method test_unavailable_when_vector_db_disabled (line 59) | def test_unavailable_when_vector_db_disabled(self) -> None: method test_available_when_vector_db_enabled (line 65) | def test_available_when_vector_db_enabled(self) -> None: class TestFileReaderToolAvailability (line 76) | class TestFileReaderToolAvailability: method test_available_when_vector_db_disabled (line 78) | def test_available_when_vector_db_disabled(self) -> None: method test_unavailable_when_vector_db_enabled (line 82) | def test_unavailable_when_vector_db_enabled(self) -> None: class TestForceAddSearchToolGuard (line 91) | class TestForceAddSearchToolGuard: method test_force_add_block_checks_disable_vector_db (line 92) | def test_force_add_block_checks_disable_vector_db(self) -> None: class TestValidateVectorDbKnowledge (line 111) | class TestValidateVectorDbKnowledge: method test_rejects_document_set_ids (line 116) | def test_rejects_document_set_ids(self) -> None: method test_rejects_hierarchy_node_ids (line 135) | def test_rejects_hierarchy_node_ids(self) -> None: method test_rejects_document_ids (line 154) | def test_rejects_document_ids(self) -> None: method test_allows_user_files_only (line 173) | def test_allows_user_files_only(self) -> None: method test_allows_everything_when_vector_db_enabled (line 187) | def test_allows_everything_when_vector_db_enabled(self) -> None: FILE: backend/tests/unit/onyx/tools/test_file_reader_tool.py function _make_tool (line 33) | def _make_tool( function _text_file (line 46) | def _text_file(content: str, filename: str = "test.txt") -> InMemoryChat... class TestToolMetadata (line 60) | class TestToolMetadata: method test_tool_name (line 61) | def test_tool_name(self) -> None: method test_tool_definition_schema (line 65) | def test_tool_definition_schema(self) -> None: class TestFileIdValidation (line 83) | class TestFileIdValidation: method test_rejects_invalid_uuid (line 84) | def test_rejects_invalid_uuid(self) -> None: method test_rejects_file_not_in_allowlist (line 89) | def test_rejects_file_not_in_allowlist(self) -> None: method test_accepts_user_file_id (line 95) | def test_accepts_user_file_id(self) -> None: method test_accepts_chat_file_id (line 100) | def test_accepts_chat_file_id(self) -> None: class TestRun (line 111) | class TestRun: method test_returns_full_content_by_default (line 114) | def test_returns_full_content_by_default( method test_respects_start_char_and_num_chars (line 134) | def test_respects_start_char_and_num_chars( method test_clamps_num_chars_to_max (line 154) | def test_clamps_num_chars_to_max( method test_includes_continuation_hint (line 174) | def test_includes_continuation_hint( method test_raises_on_missing_file_id (line 192) | def test_raises_on_missing_file_id(self) -> None: method test_raises_on_non_text_file (line 202) | def test_raises_on_non_text_file( class TestIsAvailable (line 230) | class TestIsAvailable: method test_available_when_vector_db_disabled (line 232) | def test_available_when_vector_db_disabled(self) -> None: method test_unavailable_when_vector_db_enabled (line 236) | def test_unavailable_when_vector_db_enabled(self) -> None: FILE: backend/tests/unit/onyx/tools/test_no_vectordb.py function test_search_tool_unavailable_when_vector_db_disabled (line 20) | def test_search_tool_unavailable_when_vector_db_disabled() -> None: function test_search_tool_available_when_vector_db_enabled (line 32) | def test_search_tool_available_when_vector_db_enabled( function test_open_url_tool_unavailable_when_vector_db_disabled (line 47) | def test_open_url_tool_unavailable_when_vector_db_disabled() -> None: function test_file_reader_tool_available (line 60) | def test_file_reader_tool_available(vector_db_disabled: bool) -> None: FILE: backend/tests/unit/onyx/tools/test_python_tool_availability.py function _clear_health_cache (line 22) | def _clear_health_cache() -> None: function test_python_tool_unavailable_without_base_url (line 35) | def test_python_tool_unavailable_without_base_url() -> None: function test_python_tool_unavailable_with_empty_base_url (line 43) | def test_python_tool_unavailable_with_empty_base_url() -> None: function test_python_tool_unavailable_when_server_disabled (line 57) | def test_python_tool_unavailable_when_server_disabled( function test_python_tool_available_when_health_check_passes (line 78) | def test_python_tool_available_when_health_check_passes( function test_python_tool_unavailable_when_health_check_fails (line 101) | def test_python_tool_unavailable_when_health_check_fails( function test_health_check_not_called_when_server_disabled (line 129) | def test_health_check_not_called_when_server_disabled( function test_health_check_cached_on_second_call (line 149) | def test_health_check_cached_on_second_call() -> None: function test_health_check_refreshed_after_ttl_expires (line 166) | def test_health_check_refreshed_after_ttl_expires(mock_time: MagicMock) ... function test_health_check_no_cache_by_default (line 193) | def test_health_check_no_cache_by_default() -> None: FILE: backend/tests/unit/onyx/tools/test_search_utils.py class MockDocument (line 18) | class MockDocument(NamedTuple): class TestWeightedReciprocalRankFusion (line 30) | class TestWeightedReciprocalRankFusion: method test_single_result_list (line 33) | def test_single_result_list(self) -> None: method test_two_identical_lists_equal_weights (line 54) | def test_two_identical_lists_equal_weights(self) -> None: method test_two_different_lists_equal_weights (line 78) | def test_two_different_lists_equal_weights(self) -> None: method test_weighted_lists_higher_weight_dominates (line 105) | def test_weighted_lists_higher_weight_dominates(self) -> None: method test_empty_result_list (line 133) | def test_empty_result_list(self) -> None: method test_multiple_empty_lists (line 146) | def test_multiple_empty_lists(self) -> None: method test_mixed_empty_and_non_empty_lists (line 159) | def test_mixed_empty_and_non_empty_lists(self) -> None: method test_mismatched_weights_raises_error (line 181) | def test_mismatched_weights_raises_error(self) -> None: method test_custom_k_value (line 195) | def test_custom_k_value(self) -> None: method test_deduplication_preserves_first_occurrence (line 215) | def test_deduplication_preserves_first_occurrence(self) -> None: method test_realistic_semantic_vs_keyword_search_scenario (line 238) | def test_realistic_semantic_vs_keyword_search_scenario(self) -> None: method test_many_lists_with_varying_weights (line 265) | def test_many_lists_with_varying_weights(self) -> None: method test_zero_weight (line 290) | def test_zero_weight(self) -> None: method test_negative_weight (line 314) | def test_negative_weight(self) -> None: class TestDeduplicateQueries (line 344) | class TestDeduplicateQueries: method test_no_duplicates (line 347) | def test_no_duplicates(self) -> None: method test_exact_duplicates (line 362) | def test_exact_duplicates(self) -> None: method test_case_insensitive_duplicates (line 377) | def test_case_insensitive_duplicates(self) -> None: method test_mixed_duplicates_and_unique (line 393) | def test_mixed_duplicates_and_unique(self) -> None: method test_empty_list (line 423) | def test_empty_list(self) -> None: method test_single_query (line 431) | def test_single_query(self) -> None: method test_preserves_first_occurrence_casing (line 440) | def test_preserves_first_occurrence_casing(self) -> None: method test_whitespace_differences (line 455) | def test_whitespace_differences(self) -> None: method test_zero_weights (line 476) | def test_zero_weights(self) -> None: method test_negative_weights (line 492) | def test_negative_weights(self) -> None: method test_realistic_scenario_semantic_and_keyword_queries (line 505) | def test_realistic_scenario_semantic_and_keyword_queries(self) -> None: method test_special_characters_and_punctuation (line 547) | def test_special_characters_and_punctuation(self) -> None: method test_unicode_characters (line 561) | def test_unicode_characters(self) -> None: FILE: backend/tests/unit/onyx/tools/test_tool_runner.py function _make_tool_call (line 11) | def _make_tool_call( class TestMergeToolCalls (line 27) | class TestMergeToolCalls: method test_empty_list (line 30) | def test_empty_list(self) -> None: method test_single_search_tool_call_not_merged (line 35) | def test_single_search_tool_call_not_merged(self) -> None: method test_single_web_search_tool_call_not_merged (line 49) | def test_single_web_search_tool_call_not_merged(self) -> None: method test_single_open_url_tool_call_not_merged (line 61) | def test_single_open_url_tool_call_not_merged(self) -> None: method test_multiple_search_tool_calls_merged (line 73) | def test_multiple_search_tool_calls_merged(self) -> None: method test_multiple_web_search_tool_calls_merged (line 95) | def test_multiple_web_search_tool_calls_merged(self) -> None: method test_multiple_open_url_tool_calls_merged (line 115) | def test_multiple_open_url_tool_calls_merged(self) -> None: method test_non_mergeable_tool_not_merged (line 139) | def test_non_mergeable_tool_not_merged(self) -> None: method test_mixed_mergeable_and_non_mergeable (line 159) | def test_mixed_mergeable_and_non_mergeable(self) -> None: method test_multiple_different_mergeable_tools (line 192) | def test_multiple_different_mergeable_tools(self) -> None: method test_preserves_first_call_placement (line 223) | def test_preserves_first_call_placement(self) -> None: method test_preserves_other_args_from_first_call (line 245) | def test_preserves_other_args_from_first_call(self) -> None: method test_handles_empty_queries_list (line 264) | def test_handles_empty_queries_list(self) -> None: method test_handles_missing_merge_field (line 281) | def test_handles_missing_merge_field(self) -> None: method test_handles_string_value_instead_of_list (line 298) | def test_handles_string_value_instead_of_list(self) -> None: class TestImageHistoryExtraction (line 317) | class TestImageHistoryExtraction: method test_extracts_image_file_ids_from_json_response (line 318) | def test_extracts_image_file_ids_from_json_response(self) -> None: method test_extracts_recent_generated_image_ids_from_history (line 325) | def test_extracts_recent_generated_image_ids_from_history(self) -> None: method test_ignores_non_image_tool_responses (line 350) | def test_ignores_non_image_tool_responses(self) -> None: FILE: backend/tests/unit/onyx/tools/test_tool_runner_chat_files.py class TestChatFilesPassingToPythonTool (line 14) | class TestChatFilesPassingToPythonTool: method sample_chat_files (line 18) | def sample_chat_files(self) -> list[ChatFile]: method test_chat_files_passed_to_python_tool_override_kwargs (line 25) | def test_chat_files_passed_to_python_tool_override_kwargs( method test_empty_chat_files_defaults_to_empty_list (line 39) | def test_empty_chat_files_defaults_to_empty_list(self) -> None: method test_none_chat_files_handled_in_tool_runner (line 44) | def test_none_chat_files_handled_in_tool_runner(self) -> None: class TestChatFileConversion (line 63) | class TestChatFileConversion: method test_convert_loaded_files_to_chat_files (line 66) | def test_convert_loaded_files_to_chat_files(self) -> None: method test_convert_files_with_none_content_skipped (line 101) | def test_convert_files_with_none_content_skipped(self) -> None: method test_convert_files_with_missing_filename_uses_fallback (line 132) | def test_convert_files_with_missing_filename_uses_fallback(self) -> None: method test_convert_empty_list_returns_empty (line 154) | def test_convert_empty_list_returns_empty(self) -> None: class TestChatFileModel (line 162) | class TestChatFileModel: method test_chat_file_creation (line 165) | def test_chat_file_creation(self) -> None: method test_chat_file_with_unicode_filename (line 175) | def test_chat_file_with_unicode_filename(self) -> None: method test_chat_file_with_spaces_in_filename (line 184) | def test_chat_file_with_spaces_in_filename(self) -> None: FILE: backend/tests/unit/onyx/tools/test_tool_utils.py function test_explicit_tool_calling_supported (line 30) | def test_explicit_tool_calling_supported( FILE: backend/tests/unit/onyx/tools/tool_implementations/open_url/test_onyx_web_crawler.py class FakeResponse (line 20) | class FakeResponse(BaseModel): function test_fetch_url_pdf_with_content_type (line 29) | def test_fetch_url_pdf_with_content_type(monkeypatch: pytest.MonkeyPatch... function test_fetch_url_pdf_with_signature (line 55) | def test_fetch_url_pdf_with_signature(monkeypatch: pytest.MonkeyPatch) -... function test_fetch_url_decodes_html_bytes (line 81) | def test_fetch_url_decodes_html_bytes(monkeypatch: pytest.MonkeyPatch) -... function test_fetch_url_pdf_exceeds_size_limit (line 103) | def test_fetch_url_pdf_exceeds_size_limit(monkeypatch: pytest.MonkeyPatc... function test_fetch_url_pdf_within_size_limit (line 125) | def test_fetch_url_pdf_within_size_limit(monkeypatch: pytest.MonkeyPatch... function test_fetch_url_html_exceeds_size_limit (line 151) | def test_fetch_url_html_exceeds_size_limit(monkeypatch: pytest.MonkeyPat... function test_fetch_url_html_within_size_limit (line 174) | def test_fetch_url_html_within_size_limit(monkeypatch: pytest.MonkeyPatc... function _make_mock_response (line 201) | def _make_mock_response( class TestParallelExecution (line 231) | class TestParallelExecution: method test_multiple_urls_fetched_concurrently (line 235) | def test_multiple_urls_fetched_concurrently(self, mock_get: MagicMock)... method test_empty_urls_returns_empty (line 254) | def test_empty_urls_returns_empty(self, mock_get: MagicMock) -> None: method test_single_url (line 261) | def test_single_url(self, mock_get: MagicMock) -> None: class TestFailureIsolation (line 269) | class TestFailureIsolation: method test_one_failure_doesnt_kill_batch (line 273) | def test_one_failure_doesnt_kill_batch(self, mock_get: MagicMock) -> N... method test_exception_doesnt_kill_batch (line 289) | def test_exception_doesnt_kill_batch(self, mock_get: MagicMock) -> None: method test_ssrf_exception_doesnt_kill_batch (line 308) | def test_ssrf_exception_doesnt_kill_batch(self, mock_get: MagicMock) -... class TestTupleTimeout (line 329) | class TestTupleTimeout: method test_default_tuple_timeout (line 333) | def test_default_tuple_timeout(self, mock_get: MagicMock) -> None: method test_custom_tuple_timeout (line 346) | def test_custom_tuple_timeout(self, mock_get: MagicMock) -> None: FILE: backend/tests/unit/onyx/tools/tool_implementations/open_url/test_snippet_matcher.py class TestSchemaResult (line 44) | class TestSchemaResult(BaseModel): class TestSchema (line 56) | class TestSchema(BaseModel): method convert_list_to_string (line 72) | def convert_list_to_string(cls, v: str | list[str]) -> str: class TestCategory (line 82) | class TestCategory(BaseModel): class TestDataFile (line 91) | class TestDataFile(BaseModel): function load_all_tests (line 99) | def load_all_tests() -> list[tuple[str, TestSchema]]: function test_snippet_finding (line 130) | def test_snippet_finding(test_data: TestSchema) -> None: function test_nfc_expanding_char_snippet_match (line 169) | def test_nfc_expanding_char_snippet_match(char: str, description: str) -... FILE: backend/tests/unit/onyx/tools/tool_implementations/open_url/test_url_normalization.py function test_google_drive_normalization (line 42) | def test_google_drive_normalization(url: str, expected: str) -> None: function test_notion_normalization (line 65) | def test_notion_normalization(url: str, expected: str | None) -> None: function test_slack_normalization (line 84) | def test_slack_normalization(url: str, expected: str) -> None: function test_confluence_normalization (line 102) | def test_confluence_normalization(url: str, expected: str) -> None: function test_jira_normalization (line 120) | def test_jira_normalization(url: str, expected: str) -> None: function test_github_normalization (line 138) | def test_github_normalization(url: str, expected: str) -> None: function test_gitlab_normalization (line 152) | def test_gitlab_normalization(url: str, expected: str) -> None: function test_sharepoint_normalization (line 166) | def test_sharepoint_normalization(url: str, expected: str) -> None: function test_detect_source_type (line 193) | def test_detect_source_type(url: str, expected_source: DocumentSource | ... function test_normalize_url_with_auto_detection (line 218) | def test_normalize_url_with_auto_detection( function test_default_normalizer (line 246) | def test_default_normalizer(url: str, expected: str) -> None: function test_normalize_url_returns_none_for_invalid_url (line 253) | def test_normalize_url_returns_none_for_invalid_url() -> None: function test_normalize_url_with_unknown_source_type (line 259) | def test_normalize_url_with_unknown_source_type() -> None: function test_url_lookup_variants_includes_trailing_slash_versions (line 267) | def test_url_lookup_variants_includes_trailing_slash_versions() -> None: function test_url_lookup_variants_strips_query_and_fragment (line 275) | def test_url_lookup_variants_strips_query_and_fragment() -> None: function test_url_lookup_variants_handles_normalized_urls (line 285) | def test_url_lookup_variants_handles_normalized_urls() -> None: FILE: backend/tests/unit/onyx/tools/tool_implementations/python/test_code_interpreter_client.py function _make_batch_response (line 26) | def _make_batch_response( function _make_404_response (line 48) | def _make_404_response() -> MagicMock: function test_execute_streaming_fallback_to_batch_on_404 (line 55) | def test_execute_streaming_fallback_to_batch_on_404() -> None: function test_execute_streaming_fallback_stdout_only (line 106) | def test_execute_streaming_fallback_stdout_only() -> None: function test_execute_streaming_fallback_preserves_files_param (line 136) | def test_execute_streaming_fallback_preserves_files_param() -> None: FILE: backend/tests/unit/onyx/tools/tool_implementations/python/test_python_tool_upload_cache.py function _make_stream_result (line 21) | def _make_stream_result() -> StreamResultEvent: function _make_tool (line 30) | def _make_tool() -> PythonTool: function _make_override (line 35) | def _make_override(files: list[ChatFile]) -> PythonToolOverrideKwargs: function _run_tool (line 39) | def _run_tool(tool: PythonTool, mock_client: MagicMock, files: list[Chat... function test_same_file_uploaded_only_once_across_two_runs (line 62) | def test_same_file_uploaded_only_once_across_two_runs() -> None: function test_cached_file_id_is_staged_on_second_run (line 78) | def test_cached_file_id_is_staged_on_second_run() -> None: function test_different_file_content_uploaded_separately (line 115) | def test_different_file_content_uploaded_separately() -> None: function test_multiple_distinct_files_each_uploaded_once (line 130) | def test_multiple_distinct_files_each_uploaded_once() -> None: function test_same_content_different_filename_uploaded_separately (line 148) | def test_same_content_different_filename_uploaded_separately() -> None: function test_new_tool_instance_re_uploads_file (line 172) | def test_new_tool_instance_re_uploads_file() -> None: function test_upload_failure_not_cached (line 194) | def test_upload_failure_not_cached() -> None: FILE: backend/tests/unit/onyx/tools/tool_implementations/websearch/test_brave_client.py class DummyResponse (line 16) | class DummyResponse: method __init__ (line 17) | def __init__( method raise_for_status (line 28) | def raise_for_status(self) -> None: method json (line 34) | def json(self) -> dict[str, Any]: function test_search_maps_brave_response (line 40) | def test_search_maps_brave_response(monkeypatch: pytest.MonkeyPatch) -> ... function test_search_caps_count_to_brave_max (line 73) | def test_search_caps_count_to_brave_max(monkeypatch: pytest.MonkeyPatch)... function test_search_includes_optional_params (line 89) | def test_search_includes_optional_params(monkeypatch: pytest.MonkeyPatch... function test_search_raises_descriptive_error_on_http_failure (line 118) | def test_search_raises_descriptive_error_on_http_failure( function test_search_does_not_retry_non_retryable_http_errors (line 135) | def test_search_does_not_retry_non_retryable_http_errors( function test_constructor_rejects_invalid_config_values (line 165) | def test_constructor_rejects_invalid_config_values( function test_test_connection_maps_invalid_key_errors (line 173) | def test_test_connection_maps_invalid_key_errors() -> None: function test_test_connection_maps_rate_limit_errors (line 185) | def test_test_connection_maps_rate_limit_errors() -> None: function test_test_connection_propagates_unexpected_errors (line 197) | def test_test_connection_propagates_unexpected_errors() -> None: FILE: backend/tests/unit/onyx/tools/tool_implementations/websearch/test_web_search_providers.py function test_provider_requires_api_key (line 15) | def test_provider_requires_api_key() -> None: function test_build_searxng_provider_without_api_key (line 24) | def test_build_searxng_provider_without_api_key() -> None: function test_build_searxng_provider_requires_base_url (line 34) | def test_build_searxng_provider_requires_base_url() -> None: function test_build_exa_provider_requires_api_key (line 44) | def test_build_exa_provider_requires_api_key() -> None: function test_build_brave_provider_requires_api_key (line 54) | def test_build_brave_provider_requires_api_key() -> None: function test_build_brave_provider_with_optional_config (line 64) | def test_build_brave_provider_with_optional_config() -> None: function test_build_brave_provider_rejects_invalid_timeout (line 86) | def test_build_brave_provider_rejects_invalid_timeout() -> None: function test_build_serper_provider_requires_api_key (line 95) | def test_build_serper_provider_requires_api_key() -> None: function test_build_google_pse_provider_requires_api_key (line 105) | def test_build_google_pse_provider_requires_api_key() -> None: function test_build_google_pse_provider_requires_search_engine_id (line 115) | def test_build_google_pse_provider_requires_search_engine_id() -> None: FILE: backend/tests/unit/onyx/tools/tool_implementations/websearch/test_web_search_tool_run.py function _make_result (line 20) | def _make_result( function _make_tool (line 26) | def _make_tool(mock_provider: Any) -> WebSearchTool: function _run (line 54) | def _run(tool: WebSearchTool, queries: Any) -> list[str]: class TestNormalizeQueriesInput (line 63) | class TestNormalizeQueriesInput: method test_bare_string_returns_single_element_list (line 66) | def test_bare_string_returns_single_element_list(self) -> None: method test_bare_string_stripped_and_sanitized (line 69) | def test_bare_string_stripped_and_sanitized(self) -> None: method test_empty_string_returns_empty_list (line 74) | def test_empty_string_returns_empty_list(self) -> None: method test_list_of_strings_returned_sanitized (line 78) | def test_list_of_strings_returned_sanitized(self) -> None: method test_list_none_skipped (line 83) | def test_list_none_skipped(self) -> None: method test_list_non_string_coerced (line 86) | def test_list_non_string_coerced(self) -> None: method test_list_whitespace_only_dropped (line 89) | def test_list_whitespace_only_dropped(self) -> None: method test_non_list_non_string_returns_empty_list (line 92) | def test_non_list_non_string_returns_empty_list(self) -> None: class TestWebSearchToolRunQueryCoercion (line 97) | class TestWebSearchToolRunQueryCoercion: method test_list_of_strings_dispatches_each_query (line 98) | def test_list_of_strings_dispatches_each_query(self) -> None: method test_bare_string_dispatches_as_single_query (line 110) | def test_bare_string_dispatches_as_single_query(self) -> None: method test_bare_string_does_not_search_individual_characters (line 122) | def test_bare_string_does_not_search_individual_characters(self) -> None: method test_control_characters_sanitized_before_dispatch (line 135) | def test_control_characters_sanitized_before_dispatch(self) -> None: method test_all_empty_or_whitespace_raises_tool_call_exception (line 148) | def test_all_empty_or_whitespace_raises_tool_call_exception(self) -> N... FILE: backend/tests/unit/onyx/tools/tool_implementations/websearch/test_websearch_utils.py function get_text_from_file (line 16) | def get_text_from_file(file_path: Path) -> str: function get_tartan_text (line 21) | def get_tartan_text() -> str: function create_web_content_object (line 25) | def create_web_content_object(text: str) -> WebContent: function test_no_snippet_provided (line 35) | def test_no_snippet_provided() -> None: function test_snippet_lower_bound_ (line 59) | def test_snippet_lower_bound_() -> None: function test_snippet_provided_after_limit (line 80) | def test_snippet_provided_after_limit() -> None: function test_snippet_provided_in_middle (line 104) | def test_snippet_provided_in_middle() -> None: function test_bad_snippet (line 144) | def test_bad_snippet() -> None: function test_similar_snippet_in_middle_fuzzy_match (line 170) | def test_similar_snippet_in_middle_fuzzy_match() -> None: FILE: backend/tests/unit/onyx/tracing/test_tracing_setup.py function test_setup_tracing_with_no_creds (line 11) | def test_setup_tracing_with_no_creds() -> None: function test_setup_tracing_is_idempotent (line 30) | def test_setup_tracing_is_idempotent() -> None: function test_setup_tracing_with_braintrust_creds (line 55) | def test_setup_tracing_with_braintrust_creds() -> None: function test_setup_tracing_with_langfuse_creds (line 83) | def test_setup_tracing_with_langfuse_creds() -> None: function test_setup_tracing_with_both_providers (line 110) | def test_setup_tracing_with_both_providers() -> None: FILE: backend/tests/unit/onyx/utils/test_gpu_utils.py class TestGPUUtils (line 15) | class TestGPUUtils(TestCase): method test_disable_model_server_true (line 19) | def test_disable_model_server_true(self) -> None: method test_disable_model_server_capital_true (line 25) | def test_disable_model_server_capital_true(self) -> None: method test_disable_model_server_one (line 33) | def test_disable_model_server_one(self, mock_get: MagicMock) -> None: method test_disable_model_server_yes (line 46) | def test_disable_model_server_yes(self, mock_get: MagicMock) -> None: method test_disable_model_server_false (line 59) | def test_disable_model_server_false(self, mock_get: MagicMock) -> None: method test_disable_model_server_not_set (line 71) | def test_disable_model_server_not_set(self, mock_get: MagicMock) -> None: method test_disabled_host_fallback (line 82) | def test_disabled_host_fallback(self) -> None: method test_request_exception_handling (line 89) | def test_request_exception_handling(self, mock_get: MagicMock) -> None: method test_gpu_status_request_with_disable (line 98) | def test_gpu_status_request_with_disable(self, mock_get: MagicMock) ->... FILE: backend/tests/unit/onyx/utils/test_json_river.py function _all_deltas (line 11) | def _all_deltas(chunks: list[str]) -> list[JsonValue]: class TestParseComplete (line 21) | class TestParseComplete: method test_simple_object (line 24) | def test_simple_object(self) -> None: method test_simple_array (line 28) | def test_simple_array(self) -> None: method test_simple_string (line 32) | def test_simple_string(self) -> None: method test_null (line 36) | def test_null(self) -> None: method test_boolean_true (line 40) | def test_boolean_true(self) -> None: method test_boolean_false (line 44) | def test_boolean_false(self) -> None: method test_number (line 48) | def test_number(self) -> None: method test_negative_number (line 52) | def test_negative_number(self) -> None: method test_empty_object (line 56) | def test_empty_object(self) -> None: method test_empty_array (line 60) | def test_empty_array(self) -> None: class TestStreamingDeltas (line 65) | class TestStreamingDeltas: method test_object_string_value_streamed_char_by_char (line 68) | def test_object_string_value_streamed_char_by_char(self) -> None: method test_object_streamed_in_two_halves (line 79) | def test_object_streamed_in_two_halves(self) -> None: method test_multiple_keys_streamed (line 89) | def test_multiple_keys_streamed(self) -> None: method test_deltas_only_contain_new_string_content (line 102) | def test_deltas_only_contain_new_string_content(self) -> None: class TestEscapeSequences (line 122) | class TestEscapeSequences: method test_newline_escape (line 125) | def test_newline_escape(self) -> None: method test_tab_escape (line 133) | def test_tab_escape(self) -> None: method test_escaped_quote (line 141) | def test_escaped_quote(self) -> None: method test_unicode_escape (line 149) | def test_unicode_escape(self) -> None: method test_escape_split_across_chunks (line 157) | def test_escape_split_across_chunks(self) -> None: method test_unicode_escape_split_across_chunks (line 165) | def test_unicode_escape_split_across_chunks(self) -> None: method test_backslash_escape (line 173) | def test_backslash_escape(self) -> None: class TestNestedStructures (line 182) | class TestNestedStructures: method test_nested_object (line 185) | def test_nested_object(self) -> None: method test_array_of_strings (line 195) | def test_array_of_strings(self) -> None: method test_object_with_number_and_bool (line 209) | def test_object_with_number_and_bool(self) -> None: method test_object_with_null_value (line 222) | def test_object_with_null_value(self) -> None: class TestComputeDelta (line 231) | class TestComputeDelta: method test_none_prev_returns_current (line 234) | def test_none_prev_returns_current(self) -> None: method test_string_delta (line 237) | def test_string_delta(self) -> None: method test_string_no_change (line 240) | def test_string_no_change(self) -> None: method test_dict_new_key (line 243) | def test_dict_new_key(self) -> None: method test_dict_string_append (line 246) | def test_dict_string_append(self) -> None: method test_dict_no_change (line 251) | def test_dict_no_change(self) -> None: method test_list_new_items (line 254) | def test_list_new_items(self) -> None: method test_list_last_item_updated (line 257) | def test_list_last_item_updated(self) -> None: method test_list_no_change (line 260) | def test_list_no_change(self) -> None: method test_primitive_change (line 263) | def test_primitive_change(self) -> None: method test_primitive_no_change (line 266) | def test_primitive_no_change(self) -> None: class TestParserLifecycle (line 270) | class TestParserLifecycle: method test_feed_after_finish_returns_empty (line 273) | def test_feed_after_finish_returns_empty(self) -> None: method test_empty_feed_returns_empty (line 279) | def test_empty_feed_returns_empty(self) -> None: method test_whitespace_only_returns_empty (line 283) | def test_whitespace_only_returns_empty(self) -> None: method test_finish_with_trailing_whitespace (line 287) | def test_finish_with_trailing_whitespace(self) -> None: method test_finish_with_trailing_content_raises (line 294) | def test_finish_with_trailing_content_raises(self) -> None: method test_finish_flushes_pending_number (line 301) | def test_finish_flushes_pending_number(self) -> None: class TestToolCallSimulation (line 310) | class TestToolCallSimulation: method test_python_tool_call_streaming (line 313) | def test_python_tool_call_streaming(self) -> None: method test_multi_arg_tool_call (line 335) | def test_multi_arg_tool_call(self) -> None: method test_code_with_newlines_and_escapes (line 358) | def test_code_with_newlines_and_escapes(self) -> None: method test_single_char_streaming (line 379) | def test_single_char_streaming(self) -> None: FILE: backend/tests/unit/onyx/utils/test_postgres_sanitization.py function test_sanitize_string_strips_nul_bytes (line 21) | def test_sanitize_string_strips_nul_bytes() -> None: function test_sanitize_string_strips_high_surrogates (line 27) | def test_sanitize_string_strips_high_surrogates() -> None: function test_sanitize_string_strips_low_surrogates (line 32) | def test_sanitize_string_strips_low_surrogates() -> None: function test_sanitize_string_strips_nul_and_surrogates_together (line 37) | def test_sanitize_string_strips_nul_and_surrogates_together() -> None: function test_sanitize_string_preserves_valid_unicode (line 41) | def test_sanitize_string_preserves_valid_unicode() -> None: function test_sanitize_string_empty_input (line 45) | def test_sanitize_string_empty_input() -> None: function test_sanitize_json_like_handles_plain_string (line 52) | def test_sanitize_json_like_handles_plain_string() -> None: function test_sanitize_json_like_handles_nested_dict (line 56) | def test_sanitize_json_like_handles_nested_dict() -> None: function test_sanitize_json_like_handles_list_with_surrogates (line 67) | def test_sanitize_json_like_handles_list_with_surrogates() -> None: function test_sanitize_json_like_handles_tuple (line 72) | def test_sanitize_json_like_handles_tuple() -> None: function test_sanitize_json_like_passes_through_non_strings (line 77) | def test_sanitize_json_like_passes_through_non_strings() -> None: function test_sanitize_document_for_postgres_removes_nul_bytes (line 87) | def test_sanitize_document_for_postgres_removes_nul_bytes() -> None: function test_sanitize_hierarchy_node_for_postgres_removes_nul_bytes (line 138) | def test_sanitize_hierarchy_node_for_postgres_removes_nul_bytes() -> None: function test_index_doc_batch_prepare_sanitizes_before_db_ops (line 163) | def test_index_doc_batch_prepare_sanitizes_before_db_ops( FILE: backend/tests/unit/onyx/utils/test_sensitive.py function _encrypt_string (line 12) | def _encrypt_string(value: str) -> bytes: function _decrypt_string (line 17) | def _decrypt_string(value: bytes) -> str: class TestSensitiveValueString (line 22) | class TestSensitiveValueString: method test_get_value_raw (line 25) | def test_get_value_raw(self) -> None: method test_get_value_masked (line 34) | def test_get_value_masked(self) -> None: method test_get_value_masked_short_string (line 45) | def test_get_value_masked_short_string(self) -> None: method test_get_value_custom_mask_fn (line 56) | def test_get_value_custom_mask_fn(self) -> None: method test_str_raises_error (line 69) | def test_str_raises_error(self) -> None: method test_repr_is_safe (line 79) | def test_repr_is_safe(self) -> None: method test_iter_raises_error (line 91) | def test_iter_raises_error(self) -> None: method test_getitem_raises_error (line 102) | def test_getitem_raises_error(self) -> None: method test_bool_returns_true (line 112) | def test_bool_returns_true(self) -> None: method test_equality_with_same_value (line 121) | def test_equality_with_same_value(self) -> None: method test_equality_with_different_value (line 136) | def test_equality_with_different_value(self) -> None: method test_equality_with_non_sensitive_returns_not_equal (line 150) | def test_equality_with_non_sensitive_returns_not_equal(self) -> None: class TestSensitiveValueJson (line 164) | class TestSensitiveValueJson: method test_get_value_raw_dict (line 167) | def test_get_value_raw_dict(self) -> None: method test_get_value_masked_dict (line 178) | def test_get_value_masked_dict(self) -> None: method test_getitem_raises_error_for_dict (line 191) | def test_getitem_raises_error_for_dict(self) -> None: method test_iter_raises_error_for_dict (line 202) | def test_iter_raises_error_for_dict(self) -> None: class TestSensitiveValueCaching (line 215) | class TestSensitiveValueCaching: method test_decryption_is_cached (line 218) | def test_decryption_is_cached(self) -> None: FILE: backend/tests/unit/onyx/utils/test_sensitive_typing.py function demonstrate_correct_usage (line 15) | def demonstrate_correct_usage() -> None: function test_correct_usage_passes (line 76) | def test_correct_usage_passes() -> None: FILE: backend/tests/unit/onyx/utils/test_telemetry.py function test_mt_cloud_telemetry_noop_when_not_multi_tenant (line 8) | def test_mt_cloud_telemetry_noop_when_not_multi_tenant(monkeypatch: Any)... function test_mt_cloud_telemetry_calls_event_telemetry_when_multi_tenant (line 28) | def test_mt_cloud_telemetry_calls_event_telemetry_when_multi_tenant( function test_mt_cloud_identify_noop_when_not_multi_tenant (line 60) | def test_mt_cloud_identify_noop_when_not_multi_tenant(monkeypatch: Any) ... function test_mt_cloud_identify_calls_identify_user_when_multi_tenant (line 77) | def test_mt_cloud_identify_calls_identify_user_when_multi_tenant( FILE: backend/tests/unit/onyx/utils/test_threadpool_concurrency.py function test_run_with_timeout_completes (line 20) | def test_run_with_timeout_completes() -> None: function test_run_with_timeout_raises_on_timeout (line 31) | def test_run_with_timeout_raises_on_timeout(slow: float, timeout: float)... function test_run_with_timeout_propagates_exceptions (line 49) | def test_run_with_timeout_propagates_exceptions() -> None: function test_run_with_timeout_with_args_and_kwargs (line 61) | def test_run_with_timeout_with_args_and_kwargs() -> None: function test_run_in_background_and_wait_success (line 78) | def test_run_in_background_and_wait_success() -> None: function test_run_in_background_propagates_exceptions (line 99) | def test_run_in_background_propagates_exceptions() -> None: function test_run_in_background_with_args_and_kwargs (line 114) | def test_run_in_background_with_args_and_kwargs() -> None: function test_multiple_background_tasks (line 134) | def test_multiple_background_tasks() -> None: function test_thread_safe_dict_basic_operations (line 162) | def test_thread_safe_dict_basic_operations() -> None: function test_thread_safe_dict_concurrent_access (line 192) | def test_thread_safe_dict_concurrent_access() -> None: function test_thread_safe_dict_bulk_operations (line 222) | def test_thread_safe_dict_bulk_operations() -> None: function test_thread_safe_dict_concurrent_bulk_operations (line 239) | def test_thread_safe_dict_concurrent_bulk_operations() -> None: function test_thread_safe_dict_atomic_operations (line 263) | def test_thread_safe_dict_atomic_operations() -> None: function test_parallel_yield_basic (line 292) | def test_parallel_yield_basic() -> None: function test_parallel_yield_empty_generators (line 331) | def test_parallel_yield_empty_generators() -> None: function test_parallel_yield_different_lengths (line 343) | def test_parallel_yield_different_lengths() -> None: function test_parallel_yield_exception_handling (line 362) | def test_parallel_yield_exception_handling() -> None: function test_parallel_yield_non_blocking (line 379) | def test_parallel_yield_non_blocking() -> None: FILE: backend/tests/unit/onyx/utils/test_threadpool_contextvars.py function get_contextvar_value (line 15) | def get_contextvar_value() -> str: function test_run_with_timeout_preserves_contextvar (line 22) | def test_run_with_timeout_preserves_contextvar() -> None: function test_run_functions_in_parallel_preserves_contextvar (line 32) | def test_run_functions_in_parallel_preserves_contextvar() -> None: function test_run_functions_tuples_preserves_contextvar (line 50) | def test_run_functions_tuples_preserves_contextvar() -> None: function test_nested_contextvar_modifications (line 68) | def test_nested_contextvar_modifications() -> None: function test_contextvar_isolation_between_runs (line 101) | def test_contextvar_isolation_between_runs() -> None: function test_run_in_background_preserves_contextvar (line 136) | def test_run_in_background_preserves_contextvar() -> None: FILE: backend/tests/unit/onyx/utils/test_url_ssrf.py class TestIsIpPrivateOrReserved (line 20) | class TestIsIpPrivateOrReserved: method test_loopback_ipv4 (line 23) | def test_loopback_ipv4(self) -> None: method test_loopback_ipv6 (line 29) | def test_loopback_ipv6(self) -> None: method test_private_class_a (line 33) | def test_private_class_a(self) -> None: method test_private_class_b (line 38) | def test_private_class_b(self) -> None: method test_private_class_c (line 43) | def test_private_class_c(self) -> None: method test_link_local (line 48) | def test_link_local(self) -> None: method test_cloud_metadata_ips (line 53) | def test_cloud_metadata_ips(self) -> None: method test_multicast (line 58) | def test_multicast(self) -> None: method test_unspecified (line 63) | def test_unspecified(self) -> None: method test_public_ips (line 68) | def test_public_ips(self) -> None: method test_invalid_ip (line 75) | def test_invalid_ip(self) -> None: class TestValidateAndResolveUrl (line 81) | class TestValidateAndResolveUrl: method test_empty_url (line 84) | def test_empty_url(self) -> None: method test_invalid_scheme_ftp (line 89) | def test_invalid_scheme_ftp(self) -> None: method test_invalid_scheme_file (line 94) | def test_invalid_scheme_file(self) -> None: method test_invalid_scheme_gopher (line 99) | def test_invalid_scheme_gopher(self) -> None: method test_valid_http_scheme (line 104) | def test_valid_http_scheme(self) -> None: method test_valid_https_scheme (line 115) | def test_valid_https_scheme(self) -> None: method test_localhost_ipv4 (line 124) | def test_localhost_ipv4(self) -> None: method test_localhost_hostname (line 129) | def test_localhost_hostname(self) -> None: method test_private_ip_10_network (line 138) | def test_private_ip_10_network(self) -> None: method test_private_ip_172_network (line 143) | def test_private_ip_172_network(self) -> None: method test_private_ip_192_168_network (line 148) | def test_private_ip_192_168_network(self) -> None: method test_aws_metadata_endpoint (line 153) | def test_aws_metadata_endpoint(self) -> None: method test_blocked_hostname_kubernetes (line 160) | def test_blocked_hostname_kubernetes(self) -> None: method test_blocked_hostname_metadata_google (line 165) | def test_blocked_hostname_metadata_google(self) -> None: method test_url_with_credentials (line 170) | def test_url_with_credentials(self) -> None: method test_url_with_port (line 175) | def test_url_with_port(self) -> None: method test_hostname_resolving_to_private_ip (line 188) | def test_hostname_resolving_to_private_ip(self) -> None: method test_multiple_dns_records_one_private (line 195) | def test_multiple_dns_records_one_private(self) -> None: method test_dns_resolution_failure (line 205) | def test_dns_resolution_failure(self) -> None: class TestSsrfSafeGet (line 215) | class TestSsrfSafeGet: method test_blocks_private_ip (line 218) | def test_blocks_private_ip(self) -> None: method test_blocks_localhost (line 223) | def test_blocks_localhost(self) -> None: method test_blocks_metadata_endpoint (line 228) | def test_blocks_metadata_endpoint(self) -> None: method test_makes_request_to_validated_ip_http (line 235) | def test_makes_request_to_validated_ip_http(self) -> None: method test_makes_request_with_original_url_https (line 257) | def test_makes_request_with_original_url_https(self) -> None: method test_passes_custom_headers (line 277) | def test_passes_custom_headers(self) -> None: method test_passes_timeout (line 294) | def test_passes_timeout(self) -> None: class TestValidateOutboundHttpUrl (line 311) | class TestValidateOutboundHttpUrl: method test_rejects_private_ip_by_default (line 312) | def test_rejects_private_ip_by_default(self) -> None: method test_allows_private_ip_when_explicitly_enabled (line 316) | def test_allows_private_ip_when_explicitly_enabled(self) -> None: method test_blocks_metadata_hostname_when_private_is_enabled (line 322) | def test_blocks_metadata_hostname_when_private_is_enabled(self) -> None: FILE: backend/tests/unit/onyx/utils/test_vespa_query.py class TestBuildVespaFilters (line 23) | class TestBuildVespaFilters: method test_empty_filters (line 24) | def test_empty_filters(self) -> None: method test_include_hidden (line 34) | def test_include_hidden(self) -> None: method test_acl (line 45) | def test_acl(self) -> None: method test_tenant_filter (line 63) | def test_tenant_filter(self) -> None: method test_source_type_filter (line 78) | def test_source_type_filter(self) -> None: method test_tag_filters (line 101) | def test_tag_filters(self) -> None: method test_document_sets_filter (line 133) | def test_document_sets_filter(self) -> None: method test_user_project_filter (line 153) | def test_user_project_filter(self) -> None: method test_time_cutoff_filter (line 180) | def test_time_cutoff_filter(self) -> None: method test_combined_filters (line 206) | def test_combined_filters(self) -> None: method test_knowledge_scope_single_filter_not_wrapped (line 245) | def test_knowledge_scope_single_filter_not_wrapped(self) -> None: method test_persona_id_filter_is_primary_knowledge_scope (line 252) | def test_persona_id_filter_is_primary_knowledge_scope(self) -> None: method test_persona_id_filter_with_project_id_filter (line 259) | def test_persona_id_filter_with_project_id_filter(self) -> None: method test_knowledge_scope_document_set_and_persona_filter_ored (line 272) | def test_knowledge_scope_document_set_and_persona_filter_ored(self) ->... method test_acl_large_list_uses_weighted_set (line 285) | def test_acl_large_list_uses_weighted_set(self) -> None: method test_acl_empty_strings_filtered (line 303) | def test_acl_empty_strings_filtered(self) -> None: method test_empty_or_none_values (line 317) | def test_empty_or_none_values(self) -> None: FILE: backend/tests/unit/onyx/utils/test_vespa_tasks.py class _StubRedisDocumentSet (line 7) | class _StubRedisDocumentSet: method get_id_from_fence_key (line 13) | def get_id_from_fence_key(key: str) -> str | None: method __init__ (line 17) | def __init__(self, tenant_id: str, object_id: str) -> None: # noqa: A... method fenced (line 22) | def fenced(self) -> bool: method payload (line 26) | def payload(self) -> int: method reset (line 29) | def reset(self) -> None: function _setup_common_patches (line 33) | def _setup_common_patches(monkeypatch: Any, document_set: Any) -> dict[s... function test_monitor_preserves_federated_only_document_set (line 63) | def test_monitor_preserves_federated_only_document_set(monkeypatch: Any)... function test_monitor_deletes_document_set_with_no_connectors (line 82) | def test_monitor_deletes_document_set_with_no_connectors(monkeypatch: An... FILE: backend/tests/unit/onyx/voice/providers/test_azure_provider.py function test_azure_provider_extracts_region_from_target_uri (line 6) | def test_azure_provider_extracts_region_from_target_uri() -> None: function test_azure_provider_normalizes_uppercase_region (line 15) | def test_azure_provider_normalizes_uppercase_region() -> None: function test_azure_provider_rejects_invalid_speech_region (line 24) | def test_azure_provider_rejects_invalid_speech_region() -> None: FILE: backend/tests/unit/onyx/voice/providers/test_azure_ssml.py function test_is_azure_cloud_url_speech_microsoft (line 13) | def test_is_azure_cloud_url_speech_microsoft() -> None: function test_is_azure_cloud_url_cognitive_microsoft (line 19) | def test_is_azure_cloud_url_cognitive_microsoft() -> None: function test_is_azure_cloud_url_rejects_custom_host (line 25) | def test_is_azure_cloud_url_rejects_custom_host() -> None: function test_is_azure_cloud_url_rejects_none (line 29) | def test_is_azure_cloud_url_rejects_none() -> None: function test_extract_region_from_tts_url (line 36) | def test_extract_region_from_tts_url() -> None: function test_extract_region_from_cognitive_api_url (line 45) | def test_extract_region_from_cognitive_api_url() -> None: function test_extract_region_returns_none_for_custom_domain (line 54) | def test_extract_region_returns_none_for_custom_domain() -> None: function test_extract_region_returns_none_for_none (line 64) | def test_extract_region_returns_none_for_none() -> None: function test_validate_region_normalizes_to_lowercase (line 71) | def test_validate_region_normalizes_to_lowercase() -> None: function test_validate_region_accepts_hyphens (line 75) | def test_validate_region_accepts_hyphens() -> None: function test_validate_region_rejects_path_traversal (line 79) | def test_validate_region_rejects_path_traversal() -> None: function test_validate_region_rejects_dots (line 84) | def test_validate_region_rejects_dots() -> None: function test_pcm16_to_wav_produces_valid_wav (line 92) | def test_pcm16_to_wav_produces_valid_wav() -> None: function test_get_tts_url_cloud (line 109) | def test_get_tts_url_cloud() -> None: function test_get_stt_url_cloud (line 119) | def test_get_stt_url_cloud() -> None: function test_get_tts_url_self_hosted (line 126) | def test_get_tts_url_self_hosted() -> None: function test_get_tts_url_self_hosted_strips_trailing_slash (line 133) | def test_get_tts_url_self_hosted_strips_trailing_slash() -> None: function test_is_self_hosted_true_for_custom_endpoint (line 143) | def test_is_self_hosted_true_for_custom_endpoint() -> None: function test_is_self_hosted_false_for_azure_cloud (line 150) | def test_is_self_hosted_false_for_azure_cloud() -> None: function test_resample_pcm16_passthrough (line 162) | def test_resample_pcm16_passthrough() -> None: function test_resample_pcm16_downsamples (line 173) | def test_resample_pcm16_downsamples() -> None: function test_resample_pcm16_empty_data (line 187) | def test_resample_pcm16_empty_data() -> None: FILE: backend/tests/unit/onyx/voice/providers/test_elevenlabs_provider.py function test_http_to_ws_url_converts_https_to_wss (line 12) | def test_http_to_ws_url_converts_https_to_wss() -> None: function test_http_to_ws_url_converts_http_to_ws (line 16) | def test_http_to_ws_url_converts_http_to_ws() -> None: function test_http_to_ws_url_passes_through_other_schemes (line 20) | def test_http_to_ws_url_passes_through_other_schemes() -> None: function test_http_to_ws_url_preserves_path (line 24) | def test_http_to_ws_url_preserves_path() -> None: function test_stt_message_type_compares_as_string (line 34) | def test_stt_message_type_compares_as_string() -> None: function test_resample_pcm16_passthrough_when_same_rate (line 43) | def test_resample_pcm16_passthrough_when_same_rate() -> None: function test_resample_pcm16_downsamples (line 54) | def test_resample_pcm16_downsamples() -> None: function test_resample_pcm16_clamps_to_int16_range (line 71) | def test_resample_pcm16_clamps_to_int16_range() -> None: function test_provider_defaults_invalid_stt_model (line 90) | def test_provider_defaults_invalid_stt_model() -> None: function test_provider_defaults_invalid_tts_model (line 95) | def test_provider_defaults_invalid_tts_model() -> None: function test_provider_accepts_valid_models (line 100) | def test_provider_accepts_valid_models() -> None: function test_provider_defaults_api_base (line 108) | def test_provider_defaults_api_base() -> None: function test_provider_get_available_voices_returns_copy (line 113) | def test_provider_get_available_voices_returns_copy() -> None: FILE: backend/tests/unit/onyx/voice/providers/test_openai_provider.py function test_http_to_ws_url_converts_https_to_wss (line 14) | def test_http_to_ws_url_converts_https_to_wss() -> None: function test_http_to_ws_url_converts_http_to_ws (line 18) | def test_http_to_ws_url_converts_http_to_ws() -> None: function test_http_to_ws_url_passes_through_ws (line 22) | def test_http_to_ws_url_passes_through_ws() -> None: function test_realtime_message_type_compares_as_string (line 29) | def test_realtime_message_type_compares_as_string() -> None: function test_wav_header_is_44_bytes (line 41) | def test_wav_header_is_44_bytes() -> None: function test_wav_header_chunk_size_matches_data_length (line 45) | def test_wav_header_chunk_size_matches_data_length() -> None: function test_wav_header_byte_rate (line 52) | def test_wav_header_byte_rate() -> None: function test_wav_header_produces_valid_wav (line 58) | def test_wav_header_produces_valid_wav() -> None: function test_provider_default_models (line 74) | def test_provider_default_models() -> None: function test_provider_custom_models (line 81) | def test_provider_custom_models() -> None: function test_provider_get_available_voices_returns_copy (line 93) | def test_provider_get_available_voices_returns_copy() -> None: FILE: backend/tests/unit/server/metrics/test_celery_task_metrics.py function reset_metrics (line 18) | def reset_metrics() -> Iterator[None]: function _make_task (line 25) | def _make_task(name: str = "test_task", queue: str = "test_queue") -> Ma... class TestCeleryTaskPrerun (line 33) | class TestCeleryTaskPrerun: method test_increments_started_and_active (line 34) | def test_increments_started_and_active(self) -> None: method test_records_start_time (line 55) | def test_records_start_time(self) -> None: method test_noop_when_task_is_none (line 60) | def test_noop_when_task_is_none(self) -> None: method test_noop_when_task_id_is_none (line 64) | def test_noop_when_task_id_is_none(self) -> None: method test_handles_missing_delivery_info (line 69) | def test_handles_missing_delivery_info(self) -> None: class TestCeleryTaskPostrun (line 76) | class TestCeleryTaskPostrun: method test_increments_completed_success (line 77) | def test_increments_completed_success(self) -> None: method test_increments_completed_failure (line 92) | def test_increments_completed_failure(self) -> None: method test_decrements_active (line 107) | def test_decrements_active(self) -> None: method test_observes_duration (line 122) | def test_observes_duration(self) -> None: method test_cleans_up_start_time (line 138) | def test_cleans_up_start_time(self) -> None: method test_noop_when_task_is_none (line 146) | def test_noop_when_task_is_none(self) -> None: method test_handles_missing_start_time (line 149) | def test_handles_missing_start_time(self) -> None: FILE: backend/tests/unit/server/metrics/test_indexing_pipeline_collectors.py function _mock_broker_client (line 18) | def _mock_broker_client() -> Iterator[None]: class TestQueueDepthCollector (line 27) | class TestQueueDepthCollector: method test_returns_empty_when_factory_not_set (line 28) | def test_returns_empty_when_factory_not_set(self) -> None: method test_returns_empty_describe (line 32) | def test_returns_empty_describe(self) -> None: method test_collects_queue_depths (line 36) | def test_collects_queue_depths(self) -> None: method test_handles_redis_error_gracefully (line 71) | def test_handles_redis_error_gracefully(self) -> None: method test_caching_returns_stale_within_ttl (line 85) | def test_caching_returns_stale_within_ttl(self) -> None: method test_error_returns_stale_cache (line 111) | def test_error_returns_stale_cache(self) -> None: class TestIndexAttemptCollector (line 142) | class TestIndexAttemptCollector: method test_returns_empty_when_not_configured (line 143) | def test_returns_empty_when_not_configured(self) -> None: method test_returns_empty_describe (line 147) | def test_returns_empty_describe(self) -> None: method test_collects_index_attempts (line 153) | def test_collects_index_attempts( method test_handles_db_error_gracefully (line 195) | def test_handles_db_error_gracefully( method test_skips_none_tenant_ids (line 208) | def test_skips_none_tenant_ids( class TestConnectorHealthCollector (line 221) | class TestConnectorHealthCollector: method test_returns_empty_when_not_configured (line 222) | def test_returns_empty_when_not_configured(self) -> None: method test_returns_empty_describe (line 226) | def test_returns_empty_describe(self) -> None: method test_collects_connector_health (line 232) | def test_collects_connector_health( method test_skips_staleness_when_no_last_success (line 305) | def test_skips_staleness_when_no_last_success( method test_handles_db_error_gracefully (line 339) | def test_handles_db_error_gracefully( FILE: backend/tests/unit/server/metrics/test_indexing_pipeline_setup.py class TestCollectorCeleryAppSetup (line 9) | class TestCollectorCeleryAppSetup: method test_queue_depth_collector_uses_celery_app (line 10) | def test_queue_depth_collector_uses_celery_app(self) -> None: method test_redis_health_collector_uses_celery_app (line 17) | def test_redis_health_collector_uses_celery_app(self) -> None: FILE: backend/tests/unit/server/metrics/test_indexing_task_metrics.py function reset_state (line 20) | def reset_state() -> Iterator[None]: function _make_task (line 37) | def _make_task(name: str) -> MagicMock: function _mock_db_lookup (line 43) | def _mock_db_lookup( class TestIndexingTaskPrerun (line 59) | class TestIndexingTaskPrerun: method test_skips_non_indexing_task (line 60) | def test_skips_non_indexing_task(self) -> None: method test_emits_started_for_docfetching (line 66) | def test_emits_started_for_docfetching(self) -> None: method test_emits_started_for_docprocessing (line 94) | def test_emits_started_for_docprocessing(self) -> None: method test_cache_hit_avoids_db_call (line 105) | def test_cache_hit_avoids_db_call(self) -> None: method test_db_lookup_on_cache_miss (line 117) | def test_db_lookup_on_cache_miss(self) -> None: method test_missing_cc_pair_returns_unknown (line 142) | def test_missing_cc_pair_returns_unknown(self) -> None: method test_skips_when_cc_pair_id_missing (line 155) | def test_skips_when_cc_pair_id_missing(self) -> None: method test_db_error_does_not_crash (line 161) | def test_db_error_does_not_crash(self) -> None: class TestIndexingTaskPostrun (line 172) | class TestIndexingTaskPostrun: method test_skips_non_indexing_task (line 173) | def test_skips_non_indexing_task(self) -> None: method test_emits_completed_and_duration (line 179) | def test_emits_completed_and_duration(self) -> None: method test_failure_outcome (line 223) | def test_failure_outcome(self) -> None: method test_handles_postrun_without_prerun (line 253) | def test_handles_postrun_without_prerun(self) -> None: class TestResolveConnector (line 266) | class TestResolveConnector: method test_failed_lookup_not_cached (line 267) | def test_failed_lookup_not_cached(self) -> None: method test_exception_not_cached (line 290) | def test_exception_not_cached(self) -> None: method test_successful_lookup_is_cached (line 310) | def test_successful_lookup_is_cached(self) -> None: FILE: backend/tests/unit/server/metrics/test_metrics_server.py function reset_server_state (line 14) | def reset_server_state() -> Iterator[None]: class TestStartMetricsServer (line 23) | class TestStartMetricsServer: method test_uses_default_port_for_known_worker (line 25) | def test_uses_default_port_for_known_worker(self, mock_start: MagicMoc... method test_env_var_overrides_default (line 32) | def test_env_var_overrides_default(self, mock_start: MagicMock) -> None: method test_disabled_via_env_var (line 39) | def test_disabled_via_env_var(self, mock_start: MagicMock) -> None: method test_unknown_worker_type_no_env_var (line 45) | def test_unknown_worker_type_no_env_var(self, mock_start: MagicMock) -... method test_idempotent (line 51) | def test_idempotent(self, mock_start: MagicMock) -> None: method test_handles_os_error (line 59) | def test_handles_os_error(self, mock_start: MagicMock) -> None: method test_invalid_port_env_var_returns_none (line 66) | def test_invalid_port_env_var_returns_none(self, mock_start: MagicMock... FILE: backend/tests/unit/server/metrics/test_opensearch_search_metrics.py class TestObserveOpenSearchSearch (line 14) | class TestObserveOpenSearchSearch: method test_increments_counter (line 15) | def test_increments_counter(self) -> None: method test_observes_client_duration (line 22) | def test_observes_client_duration(self) -> None: method test_observes_server_duration (line 29) | def test_observes_server_duration(self) -> None: method test_server_took_none_skips_server_histogram (line 37) | def test_server_took_none_skips_server_histogram(self) -> None: method test_exceptions_do_not_propagate (line 59) | def test_exceptions_do_not_propagate(self) -> None: class TestTrackOpenSearchSearchInProgress (line 70) | class TestTrackOpenSearchSearchInProgress: method test_gauge_increments_and_decrements (line 71) | def test_gauge_increments_and_decrements(self) -> None: method test_gauge_decrements_on_exception (line 86) | def test_gauge_decrements_on_exception(self) -> None: method test_inc_exception_does_not_break_search (line 103) | def test_inc_exception_does_not_break_search(self) -> None: FILE: backend/tests/unit/server/metrics/test_worker_health.py class TestWorkerHeartbeatMonitor (line 10) | class TestWorkerHeartbeatMonitor: method test_heartbeat_registers_worker (line 11) | def test_heartbeat_registers_worker(self) -> None: method test_multiple_workers (line 19) | def test_multiple_workers(self) -> None: method test_offline_removes_worker (line 29) | def test_offline_removes_worker(self) -> None: method test_stale_heartbeat_marks_worker_down (line 37) | def test_stale_heartbeat_marks_worker_down(self) -> None: method test_very_stale_worker_is_pruned (line 47) | def test_very_stale_worker_is_pruned(self) -> None: method test_heartbeat_refreshes_stale_worker (line 59) | def test_heartbeat_refreshes_stale_worker(self) -> None: method test_ignores_empty_hostname (line 70) | def test_ignores_empty_hostname(self) -> None: method test_returns_full_hostname_as_key (line 78) | def test_returns_full_hostname_as_key(self) -> None: method test_start_is_idempotent (line 85) | def test_start_is_idempotent(self) -> None: method test_thread_safety (line 98) | def test_thread_safety(self) -> None: class TestWorkerHealthCollector (line 108) | class TestWorkerHealthCollector: method test_returns_empty_when_no_monitor (line 109) | def test_returns_empty_when_no_monitor(self) -> None: method test_collects_active_workers (line 113) | def test_collects_active_workers(self) -> None: method test_reports_dead_worker (line 138) | def test_reports_dead_worker(self) -> None: method test_empty_monitor_returns_zero (line 158) | def test_empty_monitor_returns_zero(self) -> None: FILE: backend/tests/unit/tools/test_memory_tool_packets.py function emitter_queue (line 21) | def emitter_queue() -> queue.Queue: function emitter (line 26) | def emitter(emitter_queue: queue.Queue) -> Emitter: function mock_llm (line 31) | def mock_llm() -> MagicMock: function memory_tool (line 36) | def memory_tool(emitter: Emitter, mock_llm: MagicMock) -> MemoryTool: function placement (line 41) | def placement() -> Placement: function override_kwargs (line 46) | def override_kwargs() -> MemoryToolOverrideKwargs: class TestMemoryToolEmitStart (line 56) | class TestMemoryToolEmitStart: method test_emit_start_emits_memory_tool_start_packet (line 57) | def test_emit_start_emits_memory_tool_start_packet( method test_emit_start_with_different_placement (line 72) | def test_emit_start_with_different_placement( class TestMemoryToolRun (line 85) | class TestMemoryToolRun: method test_run_emits_delta_for_add_operation (line 87) | def test_run_emits_delta_for_add_operation( method test_run_emits_delta_for_update_operation (line 111) | def test_run_emits_delta_for_update_operation( method test_run_returns_tool_response_with_rich_response (line 135) | def test_run_returns_tool_response_with_rich_response( class TestCreateMemoryPackets (line 156) | class TestCreateMemoryPackets: method test_produces_start_delta_end_for_add (line 157) | def test_produces_start_delta_end_for_add(self) -> None: method test_produces_start_delta_end_for_update (line 178) | def test_produces_start_delta_end_for_update(self) -> None: method test_placement_is_set_correctly (line 200) | def test_placement_is_set_correctly(self) -> None: FILE: desktop/src-tauri/build.rs function main (line 1) | fn main() { FILE: desktop/src-tauri/src/main.rs constant DEFAULT_SERVER_URL (line 35) | const DEFAULT_SERVER_URL: &str = "https://cloud.onyx.app"; constant CONFIG_FILE_NAME (line 36) | const CONFIG_FILE_NAME: &str = "config.json"; constant TITLEBAR_SCRIPT (line 38) | const TITLEBAR_SCRIPT: &str = include_str!("../../src/titlebar.js"); constant TRAY_ID (line 39) | const TRAY_ID: &str = "onyx-tray"; constant TRAY_ICON_BYTES (line 40) | const TRAY_ICON_BYTES: &[u8] = include_bytes!("../icons/tray-icon.png"); constant TRAY_MENU_OPEN_APP_ID (line 41) | const TRAY_MENU_OPEN_APP_ID: &str = "tray_open_app"; constant TRAY_MENU_OPEN_CHAT_ID (line 42) | const TRAY_MENU_OPEN_CHAT_ID: &str = "tray_open_chat"; constant TRAY_MENU_SHOW_IN_BAR_ID (line 43) | const TRAY_MENU_SHOW_IN_BAR_ID: &str = "tray_show_in_menu_bar"; constant TRAY_MENU_QUIT_ID (line 44) | const TRAY_MENU_QUIT_ID: &str = "tray_quit"; constant MENU_SHOW_MENU_BAR_ID (line 45) | const MENU_SHOW_MENU_BAR_ID: &str = "show_menu_bar"; constant MENU_HIDE_DECORATIONS_ID (line 46) | const MENU_HIDE_DECORATIONS_ID: &str = "hide_window_decorations"; constant CHAT_LINK_INTERCEPT_SCRIPT (line 47) | const CHAT_LINK_INTERCEPT_SCRIPT: &str = r##" constant MENU_KEY_HANDLER_SCRIPT (line 179) | const MENU_KEY_HANDLER_SCRIPT: &str = r#" constant CONSOLE_CAPTURE_SCRIPT (line 235) | const CONSOLE_CAPTURE_SCRIPT: &str = r#" constant MENU_TOGGLE_DEVTOOLS_ID (line 289) | const MENU_TOGGLE_DEVTOOLS_ID: &str = "toggle_devtools"; constant MENU_OPEN_DEBUG_LOG_ID (line 290) | const MENU_OPEN_DEBUG_LOG_ID: &str = "open_debug_log"; type AppConfig (line 293) | pub struct AppConfig { function default_window_title (line 306) | fn default_window_title() -> String { function default_show_menu_bar (line 310) | fn default_show_menu_bar() -> bool { method default (line 315) | fn default() -> Self { function get_config_dir (line 326) | fn get_config_dir() -> Option { function get_config_path (line 331) | fn get_config_path() -> Option { function load_config (line 336) | fn load_config() -> (AppConfig, bool) { function save_config (line 358) | fn save_config(config: &AppConfig) -> Result<(), String> { function is_debug_mode (line 377) | fn is_debug_mode() -> bool { function get_debug_log_path (line 381) | fn get_debug_log_path() -> Option { function init_debug_log_file (line 385) | fn init_debug_log_file() -> Option { function format_utc_timestamp (line 397) | fn format_utc_timestamp() -> String { function inject_console_capture (line 428) | fn inject_console_capture(webview: &Webview) { function maybe_open_devtools (line 432) | fn maybe_open_devtools(app: &AppHandle, window: &tauri::WebviewWindow) { type ConfigState (line 447) | struct ConfigState { function focus_main_window (line 456) | fn focus_main_window(app: &AppHandle) { function trigger_new_chat (line 466) | fn trigger_new_chat(app: &AppHandle) { function trigger_new_window (line 476) | fn trigger_new_window(app: &AppHandle) { function open_docs (line 515) | fn open_docs() { function open_settings (line 519) | fn open_settings(app: &AppHandle) { function same_origin (line 543) | fn same_origin(left: &Url, right: &Url) -> bool { function is_chat_session_url (line 549) | fn is_chat_session_url(url: &Url) -> bool { function should_open_in_external_browser (line 553) | fn should_open_in_external_browser(current_url: &Url, destination_url: &... function open_in_default_browser (line 565) | fn open_in_default_browser(url: &str) -> bool { function open_in_browser (line 587) | fn open_in_browser(url: String) -> Result<(), String> { function inject_chat_link_intercept (line 601) | fn inject_chat_link_intercept(webview: &Webview) { function handle_toggle_devtools (line 605) | fn handle_toggle_devtools(app: &AppHandle) { function handle_open_debug_log (line 624) | fn handle_open_debug_log() { function log_from_frontend (line 647) | fn log_from_frontend(level: String, message: String, state: tauri::State... function get_server_url (line 666) | fn get_server_url(state: tauri::State) -> String { type BootstrapState (line 671) | struct BootstrapState { function get_bootstrap_state (line 678) | fn get_bootstrap_state(state: tauri::State) -> BootstrapSta... function set_server_url (line 692) | fn set_server_url(state: tauri::State, url: String) -> Resu... function get_config_path_cmd (line 708) | fn get_config_path_cmd() -> Result { function open_config_file (line 716) | fn open_config_file() -> Result<(), String> { function open_config_directory (line 754) | fn open_config_directory() -> Result<(), String> { function navigate_to (line 789) | fn navigate_to(window: tauri::WebviewWindow, state: tauri::State... function reset_config (line 857) | fn reset_config(state: tauri::State) -> Result<(), String> { function inject_titlebar (line 866) | fn inject_titlebar(window: WebviewWindow) { function start_drag_window (line 882) | async fn start_drag_window(window: tauri::Window) -> Result<(), String> { function find_check_menu_item (line 890) | fn find_check_menu_item( function apply_settings_to_window (line 909) | fn apply_settings_to_window(app: &AppHandle, window: &tauri::WebviewWind... function handle_menu_bar_toggle (line 924) | fn handle_menu_bar_toggle(app: &AppHandle) { function handle_decorations_toggle (line 947) | fn handle_decorations_toggle(app: &AppHandle) { function toggle_menu_bar (line 965) | fn toggle_menu_bar(app: AppHandle) { function show_menu_bar_temporarily (line 979) | fn show_menu_bar_temporarily(app: AppHandle) { function hide_menu_bar_temporary (line 1001) | fn hide_menu_bar_temporary(app: AppHandle) { function setup_app_menu (line 1026) | fn setup_app_menu(app: &AppHandle) -> tauri::Result<()> { function build_tray_menu (line 1158) | fn build_tray_menu(app: &AppHandle) -> tauri::Result> { function handle_tray_menu_event (line 1189) | fn handle_tray_menu_event(app: &AppHandle, id: &str) { function setup_tray_icon (line 1208) | fn setup_tray_icon(app: &AppHandle) -> tauri::Result<()> { function main (line 1244) | fn main() { FILE: desktop/src/titlebar.js function getInvoke (line 17) | function getInvoke() { function startWindowDrag (line 25) | async function startWindowDrag() { function injectStyles (line 46) | function injectStyles() { function updateTitleBarTheme (line 116) | function updateTitleBarTheme(isDark) { function buildTitleBar (line 133) | function buildTitleBar() { function mountTitleBar (line 190) | function mountTitleBar() { function syncViewportHeight (line 222) | function syncViewportHeight() { function observeThemeChanges (line 236) | function observeThemeChanges() { function init (line 291) | function init() { FILE: examples/assistants-api/topics_analyzer.py function wait_on_run (line 31) | def wait_on_run(client: OpenAI, run, thread): # type: ignore function show_response (line 41) | def show_response(messages) -> None: # type: ignore function analyze_topics (line 51) | def analyze_topics(topics: list[str]) -> None: FILE: examples/widget/src/app/layout.tsx function RootLayout (line 13) | function RootLayout({ FILE: examples/widget/src/app/page.tsx function Home (line 3) | function Home() { FILE: examples/widget/src/app/widget/Widget.tsx constant API_URL (line 6) | const API_URL = process.env.NEXT_PUBLIC_API_URL || "http://localhost:8080"; constant API_KEY (line 7) | const API_KEY = process.env.NEXT_PUBLIC_API_KEY || ""; type NonEmptyObject (line 9) | type NonEmptyObject = { [k: string]: any }; FILE: extensions/chrome/service_worker.js function setupSidePanel (line 25) | async function setupSidePanel() { function openSidePanel (line 38) | async function openSidePanel(tabId) { function encodeUserPrompt (line 46) | function encodeUserPrompt(text) { function sendToOnyx (line 50) | async function sendToOnyx(info, tab) { function toggleNewTabOverride (line 73) | async function toggleNewTabOverride() { function sendActiveTabUrlToPanel (line 160) | async function sendActiveTabUrlToPanel() { FILE: extensions/chrome/src/pages/onyx_home.js function preloadChatInterface (line 28) | async function preloadChatInterface() { function setIframeSrc (line 46) | function setIframeSrc(url) { function startIframeLoadTimeout (line 52) | function startIframeLoadTimeout() { function showLoginPage (line 71) | function showLoginPage() { function setTheme (line 79) | function setTheme(theme, customBackgroundImage) { function fadeInContent (line 88) | function fadeInContent() { function checkOnyxPreference (line 106) | function checkOnyxPreference() { function loadThemeAndBackground (line 140) | function loadThemeAndBackground() { function loadNewPage (line 170) | function loadNewPage(newSrc) { function completePendingPageLoad (line 181) | function completePendingPageLoad() { FILE: extensions/chrome/src/pages/options.js function updateThemeIcon (line 17) | function updateThemeIcon(theme) { function loadStoredValues (line 32) | function loadStoredValues() { function saveSettings (line 54) | function saveSettings() { function showStatusMessage (line 77) | function showStatusMessage(message) { function hideStatusMessage (line 101) | function hideStatusMessage() { function toggleTheme (line 107) | function toggleTheme() { function openNewTab (line 118) | function openNewTab() { FILE: extensions/chrome/src/pages/panel.js function getIframeOrigin (line 23) | function getIframeOrigin() { function checkPendingInput (line 27) | async function checkPendingInput() { function initializePanel (line 45) | async function initializePanel() { function setIframeSrc (line 57) | function setIframeSrc(url, pageUrl) { function sendWebsiteToIframe (line 62) | function sendWebsiteToIframe(pageUrl) { function startIframeLoadTimeout (line 75) | function startIframeLoadTimeout() { function handleMessage (line 87) | function handleMessage(event) { function showIframe (line 119) | function showIframe() { function loadOnyxDomain (line 127) | async function loadOnyxDomain() { FILE: extensions/chrome/src/pages/popup.js function loadSetting (line 8) | async function loadSetting() { function toggleSetting (line 18) | async function toggleSetting() { function openSidePanel (line 25) | async function openSidePanel() { function openOptions (line 40) | function openOptions() { FILE: extensions/chrome/src/pages/welcome.js function initTheme (line 23) | function initTheme() { function applyTheme (line 42) | function applyTheme() { function updateThemeIcon (line 47) | function updateThemeIcon() { function toggleTheme (line 62) | function toggleTheme() { function goToStep (line 70) | function goToStep(step) { function validateDomain (line 96) | function validateDomain(domain) { function handleContinue (line 106) | function handleContinue() { function handleBack (line 119) | function handleBack() { function handleFinish (line 123) | function handleFinish() { function loadStoredValues (line 149) | function loadStoredValues() { FILE: extensions/chrome/src/utils/constants.js constant THEMES (line 1) | const THEMES = { constant DEFAULT_ONYX_DOMAIN (line 6) | const DEFAULT_ONYX_DOMAIN = "http://localhost:3000"; constant SIDE_PANEL_PATH (line 8) | const SIDE_PANEL_PATH = "/nrf/side-panel"; constant ACTIONS (line 10) | const ACTIONS = { constant CHROME_SPECIFIC_STORAGE_KEYS (line 25) | const CHROME_SPECIFIC_STORAGE_KEYS = { constant CHROME_MESSAGE (line 35) | const CHROME_MESSAGE = { constant WEB_MESSAGE (line 47) | const WEB_MESSAGE = { FILE: extensions/chrome/src/utils/content.js function createSidePanel (line 3) | function createSidePanel() { FILE: extensions/chrome/src/utils/error-modal.js function initErrorModal (line 259) | function initErrorModal() { function showErrorModal (line 288) | function showErrorModal(url) { function hideErrorModal (line 300) | function hideErrorModal() { function checkModalVisibility (line 307) | function checkModalVisibility() { function initAuthModal (line 313) | function initAuthModal() { function showAuthModal (line 363) | function showAuthModal() { function hideAuthModal (line 374) | function hideAuthModal() { FILE: extensions/chrome/src/utils/selection-icon.js function createSelectionIcon (line 7) | function createSelectionIcon() { function showIcon (line 23) | function showIcon(text) { function hideIcon (line 63) | function hideIcon() { function handleIconClick (line 70) | function handleIconClick(e) { FILE: extensions/chrome/src/utils/storage.js function getOnyxDomain (line 6) | async function getOnyxDomain() { function setOnyxDomain (line 13) | function setOnyxDomain(domain, callback) { function getOnyxDomainSync (line 20) | function getOnyxDomainSync() { FILE: web/.storybook/mocks/next-image.tsx type ImageProps (line 3) | interface ImageProps { function Image (line 12) | function Image({ src, alt, width, height, fill, ...props }: ImageProps) { FILE: web/.storybook/mocks/next-link.tsx type LinkProps (line 3) | interface LinkProps { function Link (line 9) | function Link({ FILE: web/.storybook/mocks/next-navigation.tsx function useRouter (line 1) | function useRouter() { function usePathname (line 12) | function usePathname() { function useSearchParams (line 16) | function useSearchParams() { function useParams (line 20) | function useParams() { function redirect (line 24) | function redirect(_url: string): never { function notFound (line 28) | function notFound(): never { FILE: web/@types/favicon-fetch.d.ts type FaviconFetchOptions (line 2) | interface FaviconFetchOptions { FILE: web/lib/opal/src/components/buttons/Button/Button.stories.tsx type Story (line 21) | type Story = StoryObj; constant VARIANTS (line 31) | const VARIANTS = ["default", "action", "danger"] as const; constant PROMINENCES (line 32) | const PROMINENCES = ["primary", "secondary", "tertiary"] as const; FILE: web/lib/opal/src/components/buttons/button/components.tsx type ButtonContentProps (line 18) | type ButtonContentProps = type ButtonProps (line 32) | type ButtonProps = InteractiveStatelessProps & function Button (line 56) | function Button({ FILE: web/lib/opal/src/components/buttons/chevron.tsx function ChevronIcon (line 13) | function ChevronIcon({ className, ...props }: IconProps) { FILE: web/lib/opal/src/components/buttons/filter-button/FilterButton.stories.tsx type Story (line 21) | type Story = StoryObj; FILE: web/lib/opal/src/components/buttons/filter-button/components.tsx type FilterButtonProps (line 19) | interface FilterButtonProps function FilterButton (line 44) | function FilterButton({ FILE: web/lib/opal/src/components/buttons/icon-wrapper.tsx function iconWrapper (line 14) | function iconWrapper( FILE: web/lib/opal/src/components/buttons/line-item-button/components.tsx type ContentPassthroughProps (line 17) | type ContentPassthroughProps = DistributiveOmit< type LineItemButtonOwnProps (line 22) | type LineItemButtonOwnProps = Pick< type LineItemButtonProps (line 49) | type LineItemButtonProps = ContentPassthroughProps & LineItemButtonOwnPr... function LineItemButton (line 55) | function LineItemButton({ FILE: web/lib/opal/src/components/buttons/open-button/OpenButton.stories.tsx type Story (line 21) | type Story = StoryObj; FILE: web/lib/opal/src/components/buttons/open-button/components.tsx type OpenButtonContentProps (line 31) | type OpenButtonContentProps = type OpenButtonVariant (line 48) | type OpenButtonVariant = "select-light" | "select-heavy" | "select-tinted"; type OpenButtonProps (line 50) | type OpenButtonProps = Omit & { function OpenButton (line 85) | function OpenButton({ FILE: web/lib/opal/src/components/buttons/select-button/components.tsx type SelectButtonContentProps (line 28) | type SelectButtonContentProps = type SelectButtonProps (line 48) | type SelectButtonProps = InteractiveStatefulProps & function SelectButton (line 72) | function SelectButton({ FILE: web/lib/opal/src/components/buttons/sidebar-tab/SidebarTab.stories.tsx type Story (line 29) | type Story = StoryObj; FILE: web/lib/opal/src/components/buttons/sidebar-tab/components.tsx type SidebarTabProps (line 17) | interface SidebarTabProps { function SidebarTab (line 60) | function SidebarTab({ FILE: web/lib/opal/src/components/cards/card/Card.stories.tsx constant BACKGROUND_VARIANTS (line 4) | const BACKGROUND_VARIANTS = ["none", "light", "heavy"] as const; constant BORDER_VARIANTS (line 5) | const BORDER_VARIANTS = ["none", "dashed", "solid"] as const; constant PADDING_VARIANTS (line 6) | const PADDING_VARIANTS = ["fit", "2xs", "xs", "sm", "md", "lg"] as const; constant ROUNDING_VARIANTS (line 7) | const ROUNDING_VARIANTS = ["xs", "sm", "md", "lg"] as const; type Story (line 16) | type Story = StoryObj; FILE: web/lib/opal/src/components/cards/card/components.tsx type BackgroundVariant (line 10) | type BackgroundVariant = "none" | "light" | "heavy"; type BorderVariant (line 11) | type BorderVariant = "none" | "dashed" | "solid"; type CardProps (line 13) | type CardProps = { function Card (line 74) | function Card({ FILE: web/lib/opal/src/components/cards/empty-message-card/EmptyMessageCard.stories.tsx constant PADDING_VARIANTS (line 5) | const PADDING_VARIANTS = ["fit", "2xs", "xs", "sm", "md", "lg"] as const; type Story (line 14) | type Story = StoryObj; FILE: web/lib/opal/src/components/cards/empty-message-card/components.tsx type EmptyMessageCardProps (line 10) | type EmptyMessageCardProps = { function EmptyMessageCard (line 28) | function EmptyMessageCard({ FILE: web/lib/opal/src/components/cards/select-card/SelectCard.stories.tsx constant STATES (line 23) | const STATES = ["empty", "filled", "selected"] as const; constant PADDING_VARIANTS (line 24) | const PADDING_VARIANTS = ["fit", "2xs", "xs", "sm", "md", "lg"] as const; constant ROUNDING_VARIANTS (line 25) | const ROUNDING_VARIANTS = ["xs", "sm", "md", "lg"] as const; type Story (line 39) | type Story = StoryObj; FILE: web/lib/opal/src/components/cards/select-card/components.tsx type SelectCardProps (line 11) | type SelectCardProps = Omit & { function SelectCard (line 74) | function SelectCard({ FILE: web/lib/opal/src/components/index.ts type TooltipSide (line 4) | type TooltipSide = "top" | "bottom" | "left" | "right"; FILE: web/lib/opal/src/components/pagination/Pagination.stories.tsx type Story (line 12) | type Story = StoryObj; function InteractiveSimpleDemo (line 176) | function InteractiveSimpleDemo() { function InteractiveListDemo (line 198) | function InteractiveListDemo() { function InteractiveCountDemo (line 214) | function InteractiveCountDemo() { FILE: web/lib/opal/src/components/pagination/components.tsx type PaginationSize (line 24) | type PaginationSize = "lg" | "md" | "sm"; type SimplePaginationProps (line 29) | interface SimplePaginationProps type CountPaginationProps (line 50) | interface CountPaginationProps type ListPaginationProps (line 75) | interface ListPaginationProps type PaginationProps (line 92) | type PaginationProps = function getPageNumbers (line 116) | function getPageNumbers( function monoClass (line 162) | function monoClass(size: PaginationSize): string { function textClasses (line 166) | function textClasses(size: PaginationSize, style: "mono" | "muted"): str... constant PAGE_NUMBER_FONT (line 171) | const PAGE_NUMBER_FONT: Record< type GoToPagePopupProps (line 193) | interface GoToPagePopupProps { function GoToPagePopup (line 199) | function GoToPagePopup({ totalPages, onSubmit, children }: GoToPagePopup... type NavButtonsProps (line 281) | interface NavButtonsProps { function NavButtons (line 289) | function NavButtons({ function PaginationSimple (line 325) | function PaginationSimple({ function PaginationCount (line 364) | function PaginationCount({ function PaginationList (line 427) | function PaginationList({ function Pagination (line 528) | function Pagination(props: PaginationProps) { FILE: web/lib/opal/src/components/table/ActionsContainer.tsx type ActionsContainerProps (line 5) | interface ActionsContainerProps { function ActionsContainer (line 12) | function ActionsContainer({ FILE: web/lib/opal/src/components/table/ColumnSortabilityPopover.tsx type SortingPopoverProps (line 21) | interface SortingPopoverProps { function SortingPopover (line 29) | function SortingPopover({ type CreateSortingColumnOptions (line 160) | interface CreateSortingColumnOptions { function createSortingColumn (line 166) | function createSortingColumn( FILE: web/lib/opal/src/components/table/ColumnVisibilityPopover.tsx type ColumnVisibilityPopoverProps (line 20) | interface ColumnVisibilityPopoverProps { function ColumnVisibilityPopover (line 25) | function ColumnVisibilityPopover({ function createColumnVisibilityColumn (line 96) | function createColumnVisibilityColumn(): ColumnDef { FILE: web/lib/opal/src/components/table/DragOverlayRow.tsx type DragOverlayRowProps (line 13) | interface DragOverlayRowProps { function DragOverlayRowInner (line 21) | function DragOverlayRowInner({ FILE: web/lib/opal/src/components/table/Footer.tsx type SelectionState (line 13) | type SelectionState = "none" | "partial" | "all"; type FooterSelectionModeProps (line 20) | interface FooterSelectionModeProps { type FooterSummaryModeProps (line 53) | interface FooterSummaryModeProps { type FooterProps (line 78) | type FooterProps = FooterSelectionModeProps | FooterSummaryModeProps; function getSelectionMessage (line 84) | function getSelectionMessage( function Footer (line 102) | function Footer(props: FooterProps) { type SelectionLeftProps (line 166) | interface SelectionLeftProps { function SelectionLeft (line 176) | function SelectionLeft({ type SummaryLeftProps (line 237) | interface SummaryLeftProps { function SummaryLeft (line 245) | function SummaryLeft({ FILE: web/lib/opal/src/components/table/QualifierContainer.tsx type QualifierContainerProps (line 5) | interface QualifierContainerProps { function QualifierContainer (line 12) | function QualifierContainer({ FILE: web/lib/opal/src/components/table/Table.stories.tsx type User (line 9) | interface User { constant USERS (line 17) | const USERS: User[] = [ type Story (line 134) | type Story = StoryObj; FILE: web/lib/opal/src/components/table/TableBody.tsx type DraggableProps (line 24) | interface DraggableProps { type TableBodyProps (line 38) | interface TableBodyProps function TableBody (line 51) | function TableBody({ FILE: web/lib/opal/src/components/table/TableCell.tsx type TableCellProps (line 5) | interface TableCellProps function TableCell (line 12) | function TableCell({ FILE: web/lib/opal/src/components/table/TableElement.tsx type TableSize (line 13) | type TableSize = Extract; type TableVariant (line 14) | type TableVariant = "rows" | "cards"; type SelectionBehavior (line 15) | type SelectionBehavior = "no-select" | "single-select" | "multi-select"; type TableProps (line 17) | interface TableProps function Table (line 37) | function Table({ FILE: web/lib/opal/src/components/table/TableHead.tsx type SortDirection (line 9) | type SortDirection = "none" | "ascending" | "descending"; type TableHeadCustomProps (line 15) | interface TableHeadCustomProps { type TableHeadProps (line 38) | type TableHeadProps = WithoutStyles< function defaultSortIcon (line 50) | function defaultSortIcon(sorted: SortDirection): IconFunctionComponent { function TableHead (line 73) | function TableHead({ FILE: web/lib/opal/src/components/table/TableHeader.tsx type TableHeaderProps (line 3) | interface TableHeaderProps function TableHeader (line 8) | function TableHeader({ ref, ...props }: TableHeaderProps) { FILE: web/lib/opal/src/components/table/TableQualifier.tsx type TableQualifierProps (line 10) | interface TableQualifierProps { function getOverlayStyles (line 38) | function getOverlayStyles(selected: boolean, disabled: boolean) { function TableQualifier (line 48) | function TableQualifier({ FILE: web/lib/opal/src/components/table/TableRow.tsx type TableRowProps (line 14) | interface TableRowProps function SortableTableRow (line 30) | function SortableTableRow({ function TableRow (line 103) | function TableRow({ FILE: web/lib/opal/src/components/table/TableSizeContext.tsx type TableSize (line 6) | type TableSize = Extract; type TableSizeProviderProps (line 10) | interface TableSizeProviderProps { function TableSizeProvider (line 15) | function TableSizeProvider({ size, children }: TableSizeProviderProps) { function useTableSize (line 23) | function useTableSize(): TableSize { FILE: web/lib/opal/src/components/table/columns.ts type QualifierConfig (line 25) | interface QualifierConfig { type DataColumnConfig (line 44) | interface DataColumnConfig { type DisplayColumnConfig (line 65) | interface DisplayColumnConfig { type ActionsConfig (line 82) | interface ActionsConfig { type TableColumnsBuilder (line 97) | interface TableColumnsBuilder { function createTableColumns (line 138) | function createTableColumns(): TableColumnsBuilder { FILE: web/lib/opal/src/components/table/components.tsx type SelectionBehavior (line 45) | type SelectionBehavior = "no-select" | "single-select" | "multi-select"; type DataTableProps (line 47) | type DataTableProps = BaseDataTableProps & { type ProcessedColumns (line 56) | interface ProcessedColumns { function processColumns (line 64) | function processColumns( function Table (line 140) | function Table(props: DataTableProps) { FILE: web/lib/opal/src/components/table/hooks/useColumnWidths.ts type WidthConfig (line 56) | interface WidthConfig { type UseColumnWidthsOptions (line 62) | interface UseColumnWidthsOptions { type UseColumnWidthsReturn (line 73) | interface UseColumnWidthsReturn { function useElementWidth (line 90) | function useElementWidth(): [React.RefObject, num... function computeColumnWidths (line 112) | function computeColumnWidths( function createSplitterResizeHandler (line 208) | function createSplitterResizeHandler( function useColumnWidths (line 284) | function useColumnWidths({ FILE: web/lib/opal/src/components/table/hooks/useDataTable.ts type OnyxSortDirection (line 27) | type OnyxSortDirection = "none" | "ascending" | "descending"; type OnyxSelectionState (line 28) | type OnyxSelectionState = "none" | "partial" | "all"; function toOnyxSortDirection (line 40) | function toOnyxSortDirection( type GlobalFilterValue (line 52) | interface GlobalFilterValue { type ManagedKeys (line 62) | type ManagedKeys = type UseDataTableOptions (line 87) | interface UseDataTableOptions { type UseDataTableReturn (line 129) | interface UseDataTableReturn { function useDataTable (line 190) | function useDataTable( FILE: web/lib/opal/src/components/table/hooks/useDraggableRows.ts type UseDraggableRowsOptions (line 20) | interface UseDraggableRowsOptions { type DraggableRowsReturn (line 34) | interface DraggableRowsReturn { function useDraggableRows (line 74) | function useDraggableRows( FILE: web/lib/opal/src/components/table/types.ts type DataColumnWidth (line 17) | interface DataColumnWidth { type FixedColumnWidth (line 23) | interface FixedColumnWidth { type ColumnWidth (line 27) | type ColumnWidth = DataColumnWidth | FixedColumnWidth; type QualifierContentType (line 33) | type QualifierContentType = "simple" | "icon" | "image"; type OnyxColumnKind (line 35) | type OnyxColumnKind = "qualifier" | "data" | "display" | "actions"; type OnyxColumnBase (line 41) | interface OnyxColumnBase { type OnyxQualifierColumn (line 50) | interface OnyxQualifierColumn extends OnyxColumnBase { type OnyxDataColumn (line 67) | interface OnyxDataColumn extends OnyxColumnBase { type OnyxDisplayColumn (line 74) | interface OnyxDisplayColumn extends OnyxColumnBase { type OnyxActionsColumn (line 79) | interface OnyxActionsColumn extends OnyxColumnBase { type OnyxColumnDef (line 90) | type OnyxColumnDef = type ServerSideConfig (line 101) | interface ServerSideConfig { type DataTableDraggableConfig (line 118) | interface DataTableDraggableConfig { type DataTableFooterConfig (line 127) | interface DataTableFooterConfig { type DataTableProps (line 136) | interface DataTableProps { FILE: web/lib/opal/src/components/tag/Tag.stories.tsx constant TAG_COLORS (line 5) | const TAG_COLORS = ["green", "purple", "blue", "gray", "amber"] as const; type Story (line 14) | type Story = StoryObj; FILE: web/lib/opal/src/components/tag/components.tsx type TagColor (line 10) | type TagColor = "green" | "purple" | "blue" | "gray" | "amber"; type TagSize (line 12) | type TagSize = "sm" | "md"; type TagProps (line 14) | interface TagProps { constant COLOR_CONFIG (line 32) | const COLOR_CONFIG: Record = { function Tag (line 44) | function Tag({ icon: Icon, title, color = "gray", size = "sm" }: TagProp... FILE: web/lib/opal/src/components/text/InlineMarkdown.tsx constant SAFE_PROTOCOL (line 11) | const SAFE_PROTOCOL = /^https?:|^mailto:|^tel:/i; constant ALLOWED_ELEMENTS (line 13) | const ALLOWED_ELEMENTS = ["p", "br", "a", "strong", "em", "code", "del"]; constant INLINE_COMPONENTS (line 15) | const INLINE_COMPONENTS = { type InlineMarkdownProps (line 41) | interface InlineMarkdownProps { function InlineMarkdown (line 45) | function InlineMarkdown({ content }: InlineMarkdownProps) { function isRichStr (line 67) | function isRichStr(value: unknown): value is RichStr { function resolveStr (line 76) | function resolveStr(value: string | RichStr): ReactNode { function toPlainString (line 81) | function toPlainString(value: string | RichStr): string { FILE: web/lib/opal/src/components/text/Text.stories.tsx type Story (line 13) | type Story = StoryObj; constant ALL_FONTS (line 57) | const ALL_FONTS: TextFont[] = [ constant STANDARD_COLORS (line 99) | const STANDARD_COLORS: TextColor[] = [ constant INVERTED_COLORS (line 107) | const INVERTED_COLORS: TextColor[] = [ FILE: web/lib/opal/src/components/text/components.tsx type TextFont (line 11) | type TextFont = type TextColor (line 32) | type TextColor = type TextProps (line 49) | interface TextProps constant FONT_CONFIG (line 76) | const FONT_CONFIG: Record = { constant COLOR_CONFIG (line 98) | const COLOR_CONFIG: Record = { function Text (line 120) | function Text({ FILE: web/lib/opal/src/core/animations/components.tsx function getOrCreateContext (line 26) | function getOrCreateContext(group: string): React.Context { type HoverableRootProps (line 40) | interface HoverableRootProps type HoverableItemVariant (line 50) | type HoverableItemVariant = "opacity-on-hover"; type HoverableItemProps (line 52) | interface HoverableItemProps function HoverableRoot (line 86) | function HoverableRoot({ function HoverableItem (line 190) | function HoverableItem({ constant NOOP_CONTEXT (line 227) | const NOOP_CONTEXT = createContext(null); FILE: web/lib/opal/src/core/disabled/components.tsx type DisabledProps (line 9) | interface DisabledProps extends React.HTMLAttributes { function Disabled (line 46) | function Disabled({ FILE: web/lib/opal/src/core/interactive/Interactive.stories.tsx constant VARIANT_PROMINENCE_MAP (line 8) | const VARIANT_PROMINENCE_MAP: Record = { constant SIZE_VARIANTS (line 14) | const SIZE_VARIANTS = ["lg", "md", "sm", "xs", "2xs", "fit"] as const; constant ROUNDING_VARIANTS (line 15) | const ROUNDING_VARIANTS = ["default", "compact", "mini"] as const; FILE: web/lib/opal/src/core/interactive/container/components.tsx type InteractiveContainerRoundingVariant (line 18) | type InteractiveContainerRoundingVariant = Extract< type InteractiveContainerProps (line 36) | interface InteractiveContainerProps function InteractiveContainer (line 95) | function InteractiveContainer({ FILE: web/lib/opal/src/core/interactive/foldable/components.tsx type FoldableProps (line 9) | interface FoldableProps function Foldable (line 43) | function Foldable({ children, ...props }: FoldableProps) { FILE: web/lib/opal/src/core/interactive/simple/components.tsx type InteractiveSimpleProps (line 10) | interface InteractiveSimpleProps function InteractiveSimple (line 61) | function InteractiveSimple({ FILE: web/lib/opal/src/core/interactive/stateful/components.tsx type InteractiveStatefulVariant (line 13) | type InteractiveStatefulVariant = type InteractiveStatefulState (line 21) | type InteractiveStatefulState = "empty" | "filled" | "selected"; type InteractiveStatefulInteraction (line 22) | type InteractiveStatefulInteraction = "rest" | "hover" | "active"; type InteractiveStatefulProps (line 27) | interface InteractiveStatefulProps function InteractiveStateful (line 109) | function InteractiveStateful({ FILE: web/lib/opal/src/core/interactive/stateless/components.tsx type InteractiveStatelessVariant (line 13) | type InteractiveStatelessVariant = "default" | "action" | "danger"; type InteractiveStatelessProminence (line 14) | type InteractiveStatelessProminence = type InteractiveStatelessInteraction (line 19) | type InteractiveStatelessInteraction = "rest" | "hover" | "active"; type InteractiveStatelessProps (line 24) | interface InteractiveStatelessProps function InteractiveStateless (line 93) | function InteractiveStateless({ FILE: web/lib/opal/src/core/interactive/utils.ts function guardPortalClick (line 13) | function guardPortalClick( FILE: web/lib/opal/src/icons/onyx-logo-typed.tsx type OnyxLogoTypedProps (line 5) | interface OnyxLogoTypedProps { constant HEIGHT_TO_GAP_RATIO (line 12) | const HEIGHT_TO_GAP_RATIO = 5 / 16; FILE: web/lib/opal/src/icons/progress-circle.tsx type SvgProgressCircleProps (line 5) | interface SvgProgressCircleProps extends IconProps { FILE: web/lib/opal/src/layouts/cards/header-layout/CardHeaderLayout.stories.tsx type Story (line 32) | type Story = StoryObj; FILE: web/lib/opal/src/layouts/cards/header-layout/components.tsx type CardHeaderLayoutProps (line 7) | type CardHeaderLayoutProps = ContentProps & { function CardHeaderLayout (line 45) | function CardHeaderLayout({ FILE: web/lib/opal/src/layouts/content-action/ContentAction.stories.tsx type Story (line 26) | type Story = StoryObj; FILE: web/lib/opal/src/layouts/content-action/components.tsx type ContentActionProps (line 12) | type ContentActionProps = ContentProps & { function ContentAction (line 55) | function ContentAction({ FILE: web/lib/opal/src/layouts/content/Content.stories.tsx type Story (line 24) | type Story = StoryObj; FILE: web/lib/opal/src/layouts/content/ContentLg.tsx type ContentLgSizePreset (line 16) | type ContentLgSizePreset = "headline" | "section"; type ContentLgPresetConfig (line 18) | interface ContentLgPresetConfig { type ContentLgProps (line 35) | interface ContentLgProps { constant CONTENT_LG_PRESETS (line 62) | const CONTENT_LG_PRESETS: Record; FILE: web/lib/opal/src/layouts/illustration-content/components.tsx type IllustrationContentProps (line 8) | interface IllustrationContentProps { function IllustrationContent (line 58) | function IllustrationContent({ FILE: web/lib/opal/src/shared.ts type ContainerProperties (line 33) | type ContainerProperties = { FILE: web/lib/opal/src/types.ts type SizeVariants (line 24) | type SizeVariants = "fit" | "full" | "lg" | "md" | "sm" | "xs" | "2xs"; type ContainerSizeVariants (line 38) | type ContainerSizeVariants = Exclude; type PaddingVariants (line 52) | type PaddingVariants = Extract< type RoundingVariants (line 67) | type RoundingVariants = Extract; type ExtremaSizeVariants (line 74) | type ExtremaSizeVariants = Extract; type OverridableExtremaSizeVariants (line 82) | type OverridableExtremaSizeVariants = ExtremaSizeVariants | number; type IconProps (line 108) | interface IconProps extends SVGProps { type WithoutStyles (line 116) | type WithoutStyles = Omit; type RichStr (line 133) | interface RichStr { type ButtonType (line 145) | type ButtonType = "submit" | "button" | "reset"; type DistributiveOmit (line 148) | type DistributiveOmit = T extends any type IconFunctionComponent (line 168) | type IconFunctionComponent = React.FunctionComponent; FILE: web/lib/opal/src/utils.ts function cn (line 5) | function cn(...inputs: ClassValue[]) { function markdown (line 17) | function markdown(...lines: string[]): RichStr { FILE: web/next.config.js method headers (line 37) | async headers() { method rewrites (line 80) | async rewrites() { method redirects (line 112) | async redirects() { FILE: web/src/app/PostHogPageView.tsx function PostHogPageView (line 7) | function PostHogPageView(): null { FILE: web/src/app/admin/actions/edit-mcp/page.tsx function EditMCPPage (line 7) | function EditMCPPage() { FILE: web/src/app/admin/actions/edit/[toolId]/page.tsx function EditToolPage (line 7) | function EditToolPage() { FILE: web/src/app/admin/actions/mcp/page.tsx function Main (line 9) | function Main() { FILE: web/src/app/admin/actions/new/page.tsx function NewActionPage (line 7) | function NewActionPage() { FILE: web/src/app/admin/actions/open-api/page.tsx function Main (line 9) | function Main() { FILE: web/src/app/admin/actions/page.tsx function AdminActionsPage (line 7) | function AdminActionsPage() { FILE: web/src/app/admin/add-connector/page.tsx function SourceTileTooltipWrapper (line 39) | function SourceTileTooltipWrapper({ function Page (line 129) | function Page() { FILE: web/src/app/admin/agents/CollapsibleSection.tsx type CollapsibleSectionProps (line 5) | interface CollapsibleSectionProps { FILE: web/src/app/admin/agents/interfaces.ts type HierarchyNodeSnapshot (line 6) | interface HierarchyNodeSnapshot { type AttachedDocumentSnapshot (line 16) | interface AttachedDocumentSnapshot { type StarterMessageBase (line 26) | interface StarterMessageBase { type StarterMessage (line 30) | interface StarterMessage extends StarterMessageBase { type MinimalPersonaSnapshot (line 34) | interface MinimalPersonaSnapshot { type Persona (line 63) | interface Persona extends MinimalPersonaSnapshot { type FullPersona (line 79) | interface FullPersona extends Persona { type PersonaLabel (line 83) | interface PersonaLabel { FILE: web/src/app/admin/agents/lib.ts type PersonaUpsertRequest (line 7) | interface PersonaUpsertRequest { type PersonaUpsertParameters (line 36) | interface PersonaUpsertParameters { function buildPersonaUpsertRequest (line 64) | function buildPersonaUpsertRequest({ function uploadFile (line 117) | async function uploadFile(file: File): Promise { function createPersona (line 135) | async function createPersona( function updatePersona (line 150) | async function updatePersona( function deletePersona (line 166) | function deletePersona(personaId: number) { function smallerNumberFirstComparator (line 173) | function smallerNumberFirstComparator(a: number, b: number) { function closerToZeroNegativesFirstComparator (line 177) | function closerToZeroNegativesFirstComparator(a: number, b: number) { function personaComparator (line 195) | function personaComparator( function togglePersonaFeatured (line 217) | async function togglePersonaFeatured( function togglePersonaVisibility (line 234) | async function togglePersonaVisibility( FILE: web/src/app/admin/billing/BillingDetailsView.tsx constant GRACE_PERIOD_DAYS (line 41) | const GRACE_PERIOD_DAYS = 30; function getExpirationState (line 47) | function getExpirationState( function SubscriptionCard (line 144) | function SubscriptionCard({ function SeatsCard (line 277) | function SeatsCard({ function PaymentSection (line 530) | function PaymentSection({ billing }: { billing: BillingInformation }) { type BillingDetailsViewProps (line 612) | interface BillingDetailsViewProps { function BillingDetailsView (line 623) | function BillingDetailsView({ FILE: web/src/app/admin/billing/CheckoutView.tsx type BillingOptionProps (line 22) | interface BillingOptionProps { function BillingOption (line 30) | function BillingOption({ type CheckoutViewProps (line 94) | interface CheckoutViewProps { function CheckoutView (line 98) | function CheckoutView({ onAdjustPlan }: CheckoutViewProps) { FILE: web/src/app/admin/billing/LicenseActivationCard.tsx constant BILLING_HELP_URL (line 15) | const BILLING_HELP_URL = "https://docs.onyx.app/more/billing"; type LicenseActivationCardProps (line 17) | interface LicenseActivationCardProps { function LicenseActivationCard (line 25) | function LicenseActivationCard({ FILE: web/src/app/admin/billing/PlansView.tsx constant SALES_URL (line 29) | const SALES_URL = "https://www.onyx.app/contact-sales"; type PlanFeature (line 35) | interface PlanFeature { type PlanConfig (line 40) | interface PlanConfig { constant BUSINESS_FEATURES (line 59) | const BUSINESS_FEATURES: PlanFeature[] = [ constant ENTERPRISE_FEATURES (line 69) | const ENTERPRISE_FEATURES: PlanFeature[] = [ function PlanCard (line 84) | function PlanCard({ type PlansViewProps (line 232) | interface PlansViewProps { function PlansView (line 239) | function PlansView({ FILE: web/src/app/admin/billing/page.test.tsx function setupHooks (line 114) | function setupHooks() { FILE: web/src/app/admin/billing/page.tsx constant BILLING_ACTIVATING_KEY (line 29) | const BILLING_ACTIVATING_KEY = "billing_license_activating_until"; type BillingView (line 35) | type BillingView = "plans" | "details" | "checkout" | null; type ViewConfig (line 37) | interface ViewConfig { constant SUPPORT_EMAIL (line 47) | const SUPPORT_EMAIL = "support@onyx.app"; function FooterLinks (line 49) | function FooterLinks({ function BillingPage (line 100) | function BillingPage() { FILE: web/src/app/admin/bots/SlackBotCreationForm.tsx function NewSlackBotForm (line 10) | function NewSlackBotForm() { FILE: web/src/app/admin/bots/SlackBotTable.tsx constant NUM_IN_PAGE (line 19) | const NUM_IN_PAGE = 20; function ClickableTableRow (line 21) | function ClickableTableRow({ FILE: web/src/app/admin/bots/SlackBotUpdateForm.tsx function Checkbox (line 17) | function Checkbox({ FILE: web/src/app/admin/bots/[bot-id]/SlackChannelConfigsTable.tsx type SlackChannelConfigsTableProps (line 25) | interface SlackChannelConfigsTableProps { function SlackChannelConfigsTable (line 31) | function SlackChannelConfigsTable({ FILE: web/src/app/admin/bots/[bot-id]/channels/SlackChannelConfigFormFields.tsx type SlackChannelConfigFormFieldsProps (line 44) | interface SlackChannelConfigFormFieldsProps { function SlackChannelConfigFormFields (line 55) | function SlackChannelConfigFormFields({ FILE: web/src/app/admin/bots/[bot-id]/channels/[id]/page.tsx function EditSlackChannelConfigContent (line 16) | function EditSlackChannelConfigContent({ id }: { id: string }) { function Page (line 118) | function Page(props: { params: Promise<{ id: string }> }) { FILE: web/src/app/admin/bots/[bot-id]/channels/new/page.tsx function NewChannelConfigContent (line 16) | function NewChannelConfigContent({ slackBotId }: { slackBotId: number }) { function Page (line 88) | function Page(props: { params: Promise<{ "bot-id": string }> }) { FILE: web/src/app/admin/bots/[bot-id]/lib.ts type SlackChannelConfigCreationRequest (line 4) | interface SlackChannelConfigCreationRequest { function isPersonaASlackBotPersona (line 94) | function isPersonaASlackBotPersona(persona: Persona) { FILE: web/src/app/admin/bots/[bot-id]/page.tsx function SlackBotEditContent (line 13) | function SlackBotEditContent({ botId }: { botId: string }) { function Page (line 72) | function Page({ FILE: web/src/app/admin/bots/new/lib.ts type SlackBotCreationRequest (line 1) | interface SlackBotCreationRequest { FILE: web/src/app/admin/bots/new/page.tsx function Page (line 5) | function Page() { FILE: web/src/app/admin/bots/page.tsx function Main (line 15) | function Main() { function Page (line 79) | function Page() { FILE: web/src/app/admin/configuration/chat-preferences/page.tsx function Page (line 5) | function Page() { FILE: web/src/app/admin/configuration/document-processing/page.tsx function Main (line 18) | function Main() { function Page (line 153) | function Page() { FILE: web/src/app/admin/configuration/llm/ModelConfigurationField.tsx function ModelConfigurationRow (line 12) | function ModelConfigurationRow({ function ModelConfigurationField (line 74) | function ModelConfigurationField({ FILE: web/src/app/admin/configuration/llm/ProviderIcon.tsx type ProviderIconProps (line 4) | interface ProviderIconProps extends IconProps { FILE: web/src/app/admin/configuration/llm/utils.ts constant AGGREGATOR_PROVIDERS (line 39) | const AGGREGATOR_PROVIDERS = new Set([ function canProviderFetchModels (line 539) | function canProviderFetchModels(providerName?: string) { FILE: web/src/app/admin/configuration/search/UpgradingPage.tsx function UpgradingPage (line 32) | function UpgradingPage({ FILE: web/src/app/admin/configuration/search/page.tsx type EmbeddingDetails (line 27) | interface EmbeddingDetails { function Main (line 34) | function Main() { function Page (line 150) | function Page() { FILE: web/src/app/admin/configuration/voice/VoiceProviderSetupModal.tsx type VoiceOption (line 31) | interface VoiceOption { type LLMProviderView (line 37) | interface LLMProviderView { type ApiKeyOption (line 44) | interface ApiKeyOption { type VoiceProviderSetupModalProps (line 50) | interface VoiceProviderSetupModalProps { constant PROVIDER_LABELS (line 59) | const PROVIDER_LABELS: Record = { constant PROVIDER_API_KEY_URLS (line 65) | const PROVIDER_API_KEY_URLS: Record = { constant PROVIDER_LOGO_URLS (line 71) | const PROVIDER_LOGO_URLS: Record = { constant PROVIDER_DOCS_URLS (line 77) | const PROVIDER_DOCS_URLS: Record = { constant PROVIDER_VOICE_DOCS_URLS (line 83) | const PROVIDER_VOICE_DOCS_URLS: Record = { type Phase (line 113) | type Phase = "idle" | "validating" | "saving"; type MessageState (line 114) | type MessageState = { function VoiceProviderSetupModal (line 119) | function VoiceProviderSetupModal({ FILE: web/src/app/admin/connector/[ccPairId]/ConfigDisplay.tsx function convertObjectToString (line 13) | function convertObjectToString(obj: any): string | any { function buildConfigEntries (line 30) | function buildConfigEntries( type ConfigItemProps (line 44) | interface ConfigItemProps { function ConfigItem (line 50) | function ConfigItem({ label, value, onEdit }: ConfigItemProps) { function AdvancedConfigDisplay (line 142) | function AdvancedConfigDisplay({ function ConfigDisplay (line 238) | function ConfigDisplay({ FILE: web/src/app/admin/connector/[ccPairId]/DeletionErrorStatus.tsx function DeletionErrorStatus (line 3) | function DeletionErrorStatus({ FILE: web/src/app/admin/connector/[ccPairId]/IndexAttemptErrorsModal.tsx type IndexAttemptErrorsModalProps (line 17) | interface IndexAttemptErrorsModalProps { constant ROW_HEIGHT (line 27) | const ROW_HEIGHT = 65; function IndexAttemptErrorsModal (line 29) | function IndexAttemptErrorsModal({ FILE: web/src/app/admin/connector/[ccPairId]/IndexAttemptsTable.tsx type IndexingAttemptsTableProps (line 24) | interface IndexingAttemptsTableProps { function IndexAttemptsTable (line 32) | function IndexAttemptsTable({ FILE: web/src/app/admin/connector/[ccPairId]/InlineFileManagement.tsx type InlineFileManagementProps (line 34) | interface InlineFileManagementProps { function InlineFileManagement (line 39) | function InlineFileManagement({ FILE: web/src/app/admin/connector/[ccPairId]/ReIndexModal.tsx function useReIndexModal (line 12) | function useReIndexModal( type ReIndexModalProps (line 75) | interface ReIndexModalProps { function ReIndexModal (line 80) | function ReIndexModal({ hide, onRunIndex }: ReIndexModalProps) { FILE: web/src/app/admin/connector/[ccPairId]/lib.ts function buildCCPairInfoUrl (line 5) | function buildCCPairInfoUrl(ccPairId: string | number) { function buildSimilarCredentialInfoURL (line 9) | function buildSimilarCredentialInfoURL( function triggerIndexing (line 17) | async function triggerIndexing( function getTooltipMessage (line 44) | function getTooltipMessage( FILE: web/src/app/admin/connector/[ccPairId]/page.tsx constant ITEMS_PER_PAGE (line 89) | const ITEMS_PER_PAGE = 8; constant PAGES_PER_BATCH (line 90) | const PAGES_PER_BATCH = 8; function Main (line 92) | function Main({ ccPairId }: { ccPairId: number }) { function Page (line 748) | function Page(props: { params: Promise<{ ccPairId: string }> }) { FILE: web/src/app/admin/connector/[ccPairId]/types.ts type ConnectorCredentialPairStatus (line 11) | enum ConnectorCredentialPairStatus { type PermissionSyncStatusEnum (line 20) | enum PermissionSyncStatusEnum { function statusIsNotCurrentlyActive (line 32) | function statusIsNotCurrentlyActive( type CCPairFullInfo (line 41) | interface CCPairFullInfo { type PaginatedIndexAttempts (line 72) | interface PaginatedIndexAttempts { type IndexAttemptError (line 78) | interface IndexAttemptError { type PaginatedIndexAttemptErrors (line 97) | interface PaginatedIndexAttemptErrors { FILE: web/src/app/admin/connector/[ccPairId]/useStatusChange.tsx function useStatusChange (line 11) | function useStatusChange(ccPair: CCPairFullInfo | null) { FILE: web/src/app/admin/connectors/[connector]/AddConnectorPage.tsx type AdvancedConfig (line 66) | interface AdvancedConfig { constant BASE_CONNECTOR_URL (line 72) | const BASE_CONNECTOR_URL = "/api/manage/admin/connector"; constant CONNECTOR_CREATION_TIMEOUT_MS (line 73) | const CONNECTOR_CREATION_TIMEOUT_MS = 10000; function submitConnector (line 75) | async function submitConnector( function AddConnector (line 129) | function AddConnector({ FILE: web/src/app/admin/connectors/[connector]/ConnectorWrapper.tsx function ConnectorWrapper (line 25) | function ConnectorWrapper({ FILE: web/src/app/admin/connectors/[connector]/oauth/callback/page.tsx function OAuthCallbackPage (line 11) | function OAuthCallbackPage() { FILE: web/src/app/admin/connectors/[connector]/oauth/finalize/page.tsx function UpdateCloudURLOnCloudIdChange (line 19) | function UpdateCloudURLOnCloudIdChange({ function OAuthFinalizePage (line 54) | function OAuthFinalizePage() { FILE: web/src/app/admin/connectors/[connector]/page.tsx function Page (line 4) | async function Page(props: { FILE: web/src/app/admin/connectors/[connector]/pages/Advanced.tsx function AdvancedFormPage (line 6) | function AdvancedFormPage() { FILE: web/src/app/admin/connectors/[connector]/pages/ConnectorInput/FileInput.tsx type FileInputProps (line 5) | interface FileInputProps { function FileInput (line 15) | function FileInput({ FILE: web/src/app/admin/connectors/[connector]/pages/ConnectorInput/ListInput.tsx type ListInputProps (line 5) | interface ListInputProps { FILE: web/src/app/admin/connectors/[connector]/pages/ConnectorInput/NumberInput.tsx function NumberInput (line 4) | function NumberInput({ FILE: web/src/app/admin/connectors/[connector]/pages/ConnectorInput/SelectInput.tsx function SelectInput (line 5) | function SelectInput({ FILE: web/src/app/admin/connectors/[connector]/pages/DynamicConnectorCreationForm.tsx type DynamicConnectionFormProps (line 13) | interface DynamicConnectionFormProps { function DynamicConnectionForm (line 20) | function DynamicConnectionForm({ FILE: web/src/app/admin/connectors/[connector]/pages/FieldRendering.tsx type FormValues (line 21) | type FormValues = Record; type TabsFieldProps (line 23) | interface TabsFieldProps { type RenderFieldProps (line 118) | interface RenderFieldProps { FILE: web/src/app/admin/connectors/[connector]/pages/gdrive/Credential.tsx type GoogleDriveCredentialJsonTypes (line 26) | type GoogleDriveCredentialJsonTypes = "authorized_user" | "service_accou... type DriveJsonUploadSectionProps (line 215) | interface DriveJsonUploadSectionProps { type DriveCredentialSectionProps (line 382) | interface DriveCredentialSectionProps { function handleRevokeAccess (line 392) | async function handleRevokeAccess( FILE: web/src/app/admin/connectors/[connector]/pages/gmail/Credential.tsx type GmailCredentialJsonTypes (line 29) | type GmailCredentialJsonTypes = "authorized_user" | "service_account"; type GmailJsonUploadSectionProps (line 218) | interface GmailJsonUploadSectionProps { type GmailCredentialSectionProps (line 376) | interface GmailCredentialSectionProps { function handleRevokeAccess (line 393) | async function handleRevokeAccess( FILE: web/src/app/admin/connectors/[connector]/pages/gmail/GmailPage.tsx type GmailMainProps (line 28) | interface GmailMainProps { FILE: web/src/app/admin/debug/page.tsx function Main (line 24) | function Main() { function Page (line 122) | function Page() { FILE: web/src/app/admin/discord-bot/BotConfigCard.tsx function BotConfigCard (line 21) | function BotConfigCard() { FILE: web/src/app/admin/discord-bot/DiscordGuildsTable.tsx type Props (line 27) | interface Props { function DiscordGuildsTable (line 32) | function DiscordGuildsTable({ guilds, onRefresh }: Props) { FILE: web/src/app/admin/discord-bot/[guild-id]/DiscordChannelsTable.tsx function getChannelIcon (line 24) | function getChannelIcon( type Props (line 41) | interface Props { function DiscordChannelsTable (line 56) | function DiscordChannelsTable({ FILE: web/src/app/admin/discord-bot/[guild-id]/page.tsx type Props (line 31) | interface Props { function GuildDetailContent (line 35) | function GuildDetailContent({ function Page (line 151) | function Page({ params }: Props) { FILE: web/src/app/admin/discord-bot/hooks.ts constant BASE_URL (line 11) | const BASE_URL = "/api/manage/admin/discord-bot"; function botConfigFetcher (line 17) | async function botConfigFetcher(url: string): Promise { function createBotConfig (line 22) | async function createBotConfig( function deleteBotConfig (line 37) | async function deleteBotConfig(): Promise { function fetchGuildConfigs (line 46) | async function fetchGuildConfigs(): Promise { function createGuildConfig (line 54) | async function createGuildConfig(): Promise { function fetchChannelConfigs (line 100) | async function fetchChannelConfigs( function updateChannelConfig (line 110) | async function updateChannelConfig( function bulkUpdateChannelConfigs (line 130) | async function bulkUpdateChannelConfigs( FILE: web/src/app/admin/discord-bot/page.tsx function DiscordBotContent (line 26) | function DiscordBotContent() { function Page (line 122) | function Page() { FILE: web/src/app/admin/discord-bot/types.ts type DiscordBotConfig (line 3) | interface DiscordBotConfig { type DiscordGuildConfig (line 8) | interface DiscordGuildConfig { type DiscordGuildConfigCreateResponse (line 17) | interface DiscordGuildConfigCreateResponse { type DiscordChannelType (line 22) | type DiscordChannelType = "text" | "forum"; type DiscordChannelConfig (line 24) | interface DiscordChannelConfig { type DiscordChannelConfigUpdate (line 36) | interface DiscordChannelConfigUpdate { type DiscordGuildConfigUpdate (line 43) | interface DiscordGuildConfigUpdate { FILE: web/src/app/admin/document-index-migration/page.tsx type MigrationStatus (line 18) | interface MigrationStatus { type RetrievalStatus (line 25) | interface RetrievalStatus { function formatTimestamp (line 29) | function formatTimestamp(iso: string): string { function MigrationStatusSection (line 33) | function MigrationStatusSection() { function RetrievalSourceSection (line 123) | function RetrievalSourceSection() { function Page (line 214) | function Page() { FILE: web/src/app/admin/documents/explorer/DocumentExplorerPage.tsx type DocumentExplorerPageProps (line 11) | interface DocumentExplorerPageProps { function DocumentExplorerPage (line 17) | function DocumentExplorerPage({ FILE: web/src/app/admin/documents/explorer/Explorer.tsx function Explorer (line 102) | function Explorer({ FILE: web/src/app/admin/documents/explorer/page.tsx function Page (line 4) | async function Page(props: { FILE: web/src/app/admin/documents/feedback/page.tsx function Main (line 13) | function Main() { function Page (line 65) | function Page() { FILE: web/src/app/admin/documents/sets/DocumentSetCreationForm.tsx type SetCreationPopupProps (line 31) | interface SetCreationPopupProps { FILE: web/src/app/admin/documents/sets/[documentSetId]/page.tsx function Main (line 17) | function Main({ documentSetId }: { documentSetId: number }) { function Page (line 93) | function Page(props: { FILE: web/src/app/admin/documents/sets/hooks.tsx function refreshDocumentSets (line 6) | function refreshDocumentSets() { function useDocumentSets (line 10) | function useDocumentSets(getEditable: boolean = false) { FILE: web/src/app/admin/documents/sets/lib.ts type DocumentSetCreationRequest (line 3) | interface DocumentSetCreationRequest { type DocumentSetUpdateRequest (line 39) | interface DocumentSetUpdateRequest { FILE: web/src/app/admin/documents/sets/new/page.tsx function Main (line 16) | function Main() { function Page (line 62) | function Page() { FILE: web/src/app/admin/documents/sets/page.tsx type DocumentFeedbackTableProps (line 161) | interface DocumentFeedbackTableProps { function Main (line 365) | function Main() { function Page (line 428) | function Page() { FILE: web/src/app/admin/embeddings/EmbeddingModelSelectionForm.tsx type EmbeddingDetails (line 32) | interface EmbeddingDetails { type EmbeddingModelSelectionProps (line 41) | interface EmbeddingModelSelectionProps { function EmbeddingModelSelection (line 56) | function EmbeddingModelSelection({ FILE: web/src/app/admin/embeddings/RerankingFormPage.tsx type RerankingDetailsFormProps (line 29) | interface RerankingDetailsFormProps { FILE: web/src/app/admin/embeddings/interfaces.ts type RerankingDetails (line 11) | interface RerankingDetails { type SwitchoverType (line 18) | enum SwitchoverType { type RerankerProvider (line 24) | enum RerankerProvider { type EmbeddingPrecision (line 30) | enum EmbeddingPrecision { type LLMContextualCost (line 35) | interface LLMContextualCost { type AdvancedSearchConfiguration (line 41) | interface AdvancedSearchConfiguration { type SavedSearchSettings (line 55) | interface SavedSearchSettings type RerankingModel (line 62) | interface RerankingModel { FILE: web/src/app/admin/embeddings/modals/AlreadyPickedModal.tsx type AlreadyPickedModalProps (line 6) | interface AlreadyPickedModalProps { function AlreadyPickedModal (line 11) | function AlreadyPickedModal({ FILE: web/src/app/admin/embeddings/modals/ChangeCredentialsModal.tsx type ChangeCredentialsModalProps (line 20) | interface ChangeCredentialsModalProps { function ChangeCredentialsModal (line 30) | function ChangeCredentialsModal({ FILE: web/src/app/admin/embeddings/modals/DeleteCredentialsModal.tsx type DeleteCredentialsModalProps (line 11) | interface DeleteCredentialsModalProps { function DeleteCredentialsModal (line 17) | function DeleteCredentialsModal({ FILE: web/src/app/admin/embeddings/modals/InstantSwitchConfirmModal.tsx type InstantSwitchConfirmModalProps (line 5) | interface InstantSwitchConfirmModalProps { function InstantSwitchConfirmModal (line 10) | function InstantSwitchConfirmModal({ FILE: web/src/app/admin/embeddings/modals/ModelSelectionModal.tsx type ModelSelectionConfirmationModalProps (line 8) | interface ModelSelectionConfirmationModalProps { function ModelSelectionConfirmationModal (line 15) | function ModelSelectionConfirmationModal({ FILE: web/src/app/admin/embeddings/modals/ProviderCreationModal.tsx type ProviderCreationModalProps (line 17) | interface ProviderCreationModalProps { function ProviderCreationModal (line 30) | function ProviderCreationModal({ FILE: web/src/app/admin/embeddings/modals/SelectModelModal.tsx type SelectModelModalProps (line 7) | interface SelectModelModalProps { function SelectModelModal (line 13) | function SelectModelModal({ FILE: web/src/app/admin/embeddings/page.tsx function EmbeddingWrapper (line 7) | function EmbeddingWrapper() { FILE: web/src/app/admin/embeddings/pages/AdvancedEmbeddingFormPage.tsx constant COST_CALCULATION_TOKENS (line 24) | const COST_CALCULATION_TOKENS = 1_000_000; type AdvancedEmbeddingFormPageProps (line 26) | interface AdvancedEmbeddingFormPageProps { FILE: web/src/app/admin/embeddings/pages/CloudEmbeddingPage.tsx function CloudEmbeddingPage (line 29) | function CloudEmbeddingPage({ function CloudModelCard (line 417) | function CloudModelCard({ FILE: web/src/app/admin/embeddings/pages/EmbeddingFormPage.tsx function EmbeddingForm (line 44) | function EmbeddingForm() { FILE: web/src/app/admin/embeddings/pages/OpenEmbeddingPage.tsx function OpenEmbeddingPage (line 17) | function OpenEmbeddingPage({ FILE: web/src/app/admin/federated/[id]/page.tsx function EditFederatedConnectorPage (line 9) | function EditFederatedConnectorPage(props: { FILE: web/src/app/admin/federated/[id]/useFederatedConnector.ts type UseFederatedConnectorResult (line 8) | interface UseFederatedConnectorResult { function useFederatedConnector (line 16) | function useFederatedConnector( FILE: web/src/app/admin/groups/[id]/page.tsx function EditGroupRoute (line 6) | function EditGroupRoute({ FILE: web/src/app/admin/groups2/[id]/page.tsx function EditGroupRoute (line 6) | function EditGroupRoute({ FILE: web/src/app/admin/indexing/status/CCPairIndexingStatusTable.tsx function navigateWithModifier (line 45) | function navigateWithModifier( function isFederatedConnectorStatus (line 57) | function isFederatedConnectorStatus( constant NUMBER_OF_ROWS_PER_PAGE (line 63) | const NUMBER_OF_ROWS_PER_PAGE = 10; constant NUMBER_OF_COLUMNS (line 64) | const NUMBER_OF_COLUMNS = 6; function SummaryRow (line 66) | function SummaryRow({ function ConnectorRow (line 139) | function ConnectorRow({ function FederatedConnectorRow (line 220) | function FederatedConnectorRow({ function CCPairIndexingStatusTable (line 277) | function CCPairIndexingStatusTable({ FILE: web/src/app/admin/indexing/status/ConnectorRowSkeleton.tsx function ConnectorStaggeredSkeleton (line 13) | function ConnectorStaggeredSkeleton({ FILE: web/src/app/admin/indexing/status/FilterComponent.tsx type FilterOptions (line 18) | interface FilterOptions { type FilterComponentProps (line 27) | interface FilterComponentProps { FILE: web/src/app/admin/indexing/status/SearchAndFilterControls.tsx type SearchAndFilterControlsProps (line 9) | interface SearchAndFilterControlsProps { function SearchAndFilterControls (line 23) | function SearchAndFilterControls({ FILE: web/src/app/admin/indexing/status/page.tsx function Main (line 25) | function Main() { function Status (line 211) | function Status() { FILE: web/src/app/admin/kg/KGEntityTypes.tsx function snakeToHumanReadable (line 16) | function snakeToHumanReadable(str: string): string { function TableHeader (line 32) | function TableHeader() { function TableRow (line 49) | function TableRow({ entityType }: { entityType: EntityType }) { type KGEntityTypesProps (line 192) | interface KGEntityTypesProps { function KGEntityTypes (line 196) | function KGEntityTypes({ FILE: web/src/app/admin/kg/interfaces.ts type KGConfig (line 1) | type KGConfig = { type KGConfigRaw (line 9) | type KGConfigRaw = { type EntityTypeValues (line 17) | type EntityTypeValues = { [key: string]: EntityType }; type SourceAndEntityTypeView (line 19) | type SourceAndEntityTypeView = { type SourceStatistics (line 24) | type SourceStatistics = { type EntityType (line 30) | type EntityType = { FILE: web/src/app/admin/kg/page.tsx function createDomainField (line 38) | function createDomainField( function KGConfiguration (line 77) | function KGConfiguration({ function Main (line 213) | function Main() { function Page (line 318) | function Page() { FILE: web/src/app/admin/kg/utils.ts type KgExposedStatus (line 7) | type KgExposedStatus = { kgExposed: boolean; isLoading: boolean }; function useIsKGExposed (line 9) | function useIsKGExposed(): KgExposedStatus { function sanitizeKGConfig (line 23) | function sanitizeKGConfig(raw: KGConfigRaw): KGConfig { FILE: web/src/app/admin/layout.tsx type AdminLayoutProps (line 3) | interface AdminLayoutProps { function AdminLayout (line 7) | async function AdminLayout({ children }: AdminLayoutProps) { FILE: web/src/app/admin/scim/ScimModal.tsx type ScimModalProps (line 19) | interface ScimModalProps { function copyToClipboard (line 30) | async function copyToClipboard(text: string) { function ScimModal (line 43) | function ScimModal({ FILE: web/src/app/admin/scim/ScimSyncCard.tsx type ScimSyncCardProps (line 14) | interface ScimSyncCardProps { function ScimSyncCard (line 28) | function ScimSyncCard({ FILE: web/src/app/admin/scim/interfaces.ts type ScimTokenResponse (line 1) | interface ScimTokenResponse { type ScimTokenCreatedResponse (line 11) | interface ScimTokenCreatedResponse extends ScimTokenResponse { type ScimModalView (line 15) | type ScimModalView = FILE: web/src/app/admin/scim/page.tsx function ScimContent (line 22) | function ScimContent() { function Page (line 126) | function Page() { FILE: web/src/app/admin/scim/svc.ts function generateScimToken (line 1) | async function generateScimToken(name: string) { FILE: web/src/app/admin/token-rate-limits/CreateRateLimitModal.tsx type CreateRateLimitModalProps (line 13) | interface CreateRateLimitModalProps { function CreateRateLimitModal (line 26) | function CreateRateLimitModal({ FILE: web/src/app/admin/token-rate-limits/TokenRateLimitTables.tsx type TokenRateLimitTableArgs (line 22) | type TokenRateLimitTableArgs = { FILE: web/src/app/admin/token-rate-limits/lib.ts constant API_PREFIX (line 3) | const API_PREFIX = "/api/admin/token-rate-limits"; FILE: web/src/app/admin/token-rate-limits/page.tsx constant GLOBAL_TOKEN_FETCH_URL (line 25) | const GLOBAL_TOKEN_FETCH_URL = SWR_KEYS.globalTokenRateLimits; constant USER_TOKEN_FETCH_URL (line 26) | const USER_TOKEN_FETCH_URL = SWR_KEYS.userTokenRateLimits; constant USER_GROUP_FETCH_URL (line 27) | const USER_GROUP_FETCH_URL = SWR_KEYS.userGroupTokenRateLimits; constant GLOBAL_DESCRIPTION (line 29) | const GLOBAL_DESCRIPTION = constant USER_DESCRIPTION (line 32) | const USER_DESCRIPTION = constant USER_GROUP_DESCRIPTION (line 35) | const USER_GROUP_DESCRIPTION = function Main (line 64) | function Main() { function Page (line 212) | function Page() { FILE: web/src/app/admin/token-rate-limits/types.ts type Scope (line 1) | enum Scope { type TokenRateLimitArgs (line 7) | interface TokenRateLimitArgs { type TokenRateLimit (line 13) | interface TokenRateLimit { type TokenRateLimitDisplay (line 20) | interface TokenRateLimitDisplay extends TokenRateLimit { FILE: web/src/app/anonymous/[id]/AnonymousPage.tsx function AnonymousPage (line 5) | function AnonymousPage({ FILE: web/src/app/anonymous/[id]/page.tsx function Page (line 3) | async function Page(props: { params: Promise<{ id: string }> }) { FILE: web/src/app/api/[...path]/route.ts function GET (line 7) | async function GET( function POST (line 15) | async function POST( function PUT (line 23) | async function PUT( function PATCH (line 31) | async function PATCH( function DELETE (line 39) | async function DELETE( function HEAD (line 47) | async function HEAD( function OPTIONS (line 55) | async function OPTIONS( function handleRequest (line 63) | async function handleRequest(request: NextRequest, path: string[]) { FILE: web/src/app/api/chat/mcp/oauth/callback/route.ts function GET (line 6) | async function GET(req: NextRequest) { FILE: web/src/app/app/agents/create/page.tsx function Page (line 4) | async function Page() { FILE: web/src/app/app/agents/edit/[id]/page.tsx type PageProps (line 9) | interface PageProps { function Page (line 13) | function Page(props: PageProps) { FILE: web/src/app/app/agents/page.tsx function Page (line 4) | async function Page() { FILE: web/src/app/app/components/AgentDescription.tsx type AgentDescriptionProps (line 6) | interface AgentDescriptionProps { function AgentDescription (line 10) | function AgentDescription({ agent }: AgentDescriptionProps) { FILE: web/src/app/app/components/AppPopup.tsx constant ALL_USERS_INITIAL_POPUP_FLOW_COMPLETED (line 16) | const ALL_USERS_INITIAL_POPUP_FLOW_COMPLETED = function AppPopup (line 28) | function AppPopup() { FILE: web/src/app/app/components/WelcomeMessage.tsx type WelcomeMessageProps (line 15) | interface WelcomeMessageProps { function WelcomeMessage (line 20) | function WelcomeMessage({ FILE: web/src/app/app/components/files/InputBarPreview.tsx type InputBarPreviewImageProviderProps (line 8) | interface InputBarPreviewImageProviderProps { function InputBarPreviewImageProvider (line 14) | function InputBarPreviewImageProvider({ type InputBarPreviewProps (line 56) | interface InputBarPreviewProps { function InputBarPreview (line 62) | function InputBarPreview({ FILE: web/src/app/app/components/files/images/FullImageModal.tsx type FullImageModalProps (line 8) | interface FullImageModalProps { function FullImageModal (line 14) | function FullImageModal({ FILE: web/src/app/app/components/files/images/InMessageImage.tsx constant DEFAULT_SHAPE (line 10) | const DEFAULT_SHAPE: ImageShape = "square"; constant SHAPE_CLASSES (line 12) | const SHAPE_CLASSES: Record([ function hasContentPackets (line 154) | function hasContentPackets(packets: Packet[]): boolean { constant FINAL_ANSWER_PACKET_TYPES_SET (line 170) | const FINAL_ANSWER_PACKET_TYPES_SET = new Set([ function handleTopLevelBranching (line 181) | function handleTopLevelBranching(state: ProcessorState, packet: Packet):... function handleTurnTransition (line 189) | function handleTurnTransition(state: ProcessorState, packet: Packet): vo... function handleCitationPacket (line 209) | function handleCitationPacket(state: ProcessorState, packet: Packet): vo... function handleDocumentPacket (line 229) | function handleDocumentPacket(state: ProcessorState, packet: Packet): vo... function handleStreamingStatusPacket (line 251) | function handleStreamingStatusPacket( function handleStopPacket (line 269) | function handleStopPacket(state: ProcessorState, packet: Packet): void { function handleToolAfterMessagePacket (line 288) | function handleToolAfterMessagePacket( function addPacketToGroup (line 305) | function addPacketToGroup( function processPacket (line 322) | function processPacket(state: ProcessorState, packet: Packet): void { function processPackets (line 383) | function processPackets( function buildGroupsFromKeys (line 460) | function buildGroupsFromKeys( FILE: web/src/app/app/message/messageComponents/timeline/hooks/usePacedTurnGroups.test.tsx function createStep (line 20) | function createStep( function createTurnGroup (line 41) | function createTurnGroup(steps: TransformedStep[]): TurnGroup { function createDisplayGroup (line 53) | function createDisplayGroup(turnIndex: number): GroupedPacket { FILE: web/src/app/app/message/messageComponents/timeline/hooks/usePacedTurnGroups.ts constant PACING_DELAY_MS (line 7) | const PACING_DELAY_MS = 200; constant TOOL_START_PACKET_TYPES (line 13) | const TOOL_START_PACKET_TYPES = new Set([ function getStepPacketType (line 31) | function getStepPacketType(step: TransformedStep): PacketType | null { type PacingState (line 43) | interface PacingState { function createInitialPacingState (line 62) | function createInitialPacingState(): PacingState { function usePacedTurnGroups (line 89) | function usePacedTurnGroups( FILE: web/src/app/app/message/messageComponents/timeline/hooks/usePacketProcessor.ts type UsePacketProcessorResult (line 21) | interface UsePacketProcessorResult { function usePacketProcessor (line 61) | function usePacketProcessor( FILE: web/src/app/app/message/messageComponents/timeline/hooks/useStreamingDuration.ts function useStreamingDuration (line 14) | function useStreamingDuration( FILE: web/src/app/app/message/messageComponents/timeline/hooks/useTimelineExpansion.ts type TimelineExpansionState (line 4) | interface TimelineExpansionState { function useTimelineExpansion (line 15) | function useTimelineExpansion( FILE: web/src/app/app/message/messageComponents/timeline/hooks/useTimelineHeader.ts type TimelineHeaderResult (line 11) | interface TimelineHeaderResult { function useTimelineHeader (line 21) | function useTimelineHeader( FILE: web/src/app/app/message/messageComponents/timeline/hooks/useTimelineMetrics.ts type TimelineMetrics (line 11) | interface TimelineMetrics { function useTimelineMetrics (line 24) | function useTimelineMetrics( FILE: web/src/app/app/message/messageComponents/timeline/hooks/useTimelineStepState.ts type MemoryStepState (line 7) | interface MemoryStepState { function useTimelineStepState (line 19) | function useTimelineStepState(turnGroups: TurnGroup[]): MemoryStepState { FILE: web/src/app/app/message/messageComponents/timeline/hooks/useTimelineUIState.ts type TimelineUIState (line 8) | enum TimelineUIState { type TimelineUIStateInput (line 25) | interface TimelineUIStateInput { type TimelineUIStateResult (line 56) | interface TimelineUIStateResult { function useTimelineUIState (line 93) | function useTimelineUIState( FILE: web/src/app/app/message/messageComponents/timeline/packetHelpers.ts constant COLLAPSED_STREAMING_PACKET_TYPES (line 11) | const COLLAPSED_STREAMING_PACKET_TYPES = new Set([ FILE: web/src/app/app/message/messageComponents/timeline/primitives/TimelineHeaderRow.tsx type TimelineHeaderRowProps (line 3) | interface TimelineHeaderRowProps { function TimelineHeaderRow (line 12) | function TimelineHeaderRow({ left, children }: TimelineHeaderRowProps) { FILE: web/src/app/app/message/messageComponents/timeline/primitives/TimelineIconColumn.tsx type TimelineRailVariant (line 9) | type TimelineRailVariant = "rail" | "spacer"; type TimelineIconColumnProps (line 11) | interface TimelineIconColumnProps { function TimelineIconColumn (line 33) | function TimelineIconColumn({ FILE: web/src/app/app/message/messageComponents/timeline/primitives/TimelineRoot.tsx type TimelineRootProps (line 4) | interface TimelineRootProps { function TimelineRoot (line 14) | function TimelineRoot({ children, tokens }: TimelineRootProps) { FILE: web/src/app/app/message/messageComponents/timeline/primitives/TimelineRow.tsx type TimelineRowRailVariant (line 10) | type TimelineRowRailVariant = TimelineRailVariant | "none"; type TimelineRowProps (line 12) | interface TimelineRowProps { function TimelineRow (line 32) | function TimelineRow({ FILE: web/src/app/app/message/messageComponents/timeline/primitives/TimelineStepContent.tsx type TimelineStepContentProps (line 9) | interface TimelineStepContentProps { function TimelineStepContent (line 27) | function TimelineStepContent({ FILE: web/src/app/app/message/messageComponents/timeline/primitives/TimelineSurface.tsx type TimelineSurfaceBackground (line 4) | type TimelineSurfaceBackground = "tint" | "transparent" | "error"; type TimelineSurfaceProps (line 6) | interface TimelineSurfaceProps { function TimelineSurface (line 19) | function TimelineSurface({ FILE: web/src/app/app/message/messageComponents/timeline/primitives/TimelineTopSpacer.tsx type TimelineTopSpacerProps (line 4) | interface TimelineTopSpacerProps { function TimelineTopSpacer (line 12) | function TimelineTopSpacer({ FILE: web/src/app/app/message/messageComponents/timeline/primitives/tokens.ts type TimelineTokens (line 7) | interface TimelineTokens { type TimelineTopSpacerVariant (line 32) | type TimelineTopSpacerVariant = "default" | "first" | "none"; function getTimelineStyles (line 59) | function getTimelineStyles( FILE: web/src/app/app/message/messageComponents/timeline/renderers/code/PythonToolRenderer.tsx function HighlightedPythonCode (line 25) | function HighlightedPythonCode({ code }: { code: string }) { function constructCurrentPythonState (line 43) | function constructCurrentPythonState(packets: PythonToolPacket[]) { FILE: web/src/app/app/message/messageComponents/timeline/renderers/deepresearch/ResearchAgentRenderer.tsx type NestedToolGroup (line 31) | interface NestedToolGroup { FILE: web/src/app/app/message/messageComponents/timeline/renderers/fetch/fetchStateUtils.ts constant INITIAL_URLS_TO_SHOW (line 9) | const INITIAL_URLS_TO_SHOW = 3; constant URLS_PER_EXPANSION (line 10) | const URLS_PER_EXPANSION = 5; constant READING_MIN_DURATION_MS (line 11) | const READING_MIN_DURATION_MS = 1000; constant READ_MIN_DURATION_MS (line 12) | const READ_MIN_DURATION_MS = 1000; type FetchState (line 14) | interface FetchState { FILE: web/src/app/app/message/messageComponents/timeline/renderers/filereader/FileReaderToolRenderer.tsx type FileReaderState (line 17) | interface FileReaderState { function constructFileReaderState (line 29) | function constructFileReaderState( function formatCharRange (line 57) | function formatCharRange( FILE: web/src/app/app/message/messageComponents/timeline/renderers/memory/memoryStateUtils.ts type MemoryState (line 7) | interface MemoryState { function constructCurrentMemoryState (line 18) | function constructCurrentMemoryState( FILE: web/src/app/app/message/messageComponents/timeline/renderers/reasoning/ReasoningRenderer.tsx constant THINKING_MIN_DURATION_MS (line 26) | const THINKING_MIN_DURATION_MS = 500; constant THINKING_STATUS (line 28) | const THINKING_STATUS = "Thinking"; function extractFirstParagraph (line 30) | function extractFirstParagraph(content: string): { function constructCurrentReasoningState (line 68) | function constructCurrentReasoningState(packets: ReasoningPacket[]) { FILE: web/src/app/app/message/messageComponents/timeline/renderers/search/SearchChipList.tsx constant ANIMATION_DELAY_MS (line 7) | const ANIMATION_DELAY_MS = 30; type SearchChipListProps (line 9) | interface SearchChipListProps { type DisplayEntry (line 22) | type DisplayEntry = function SearchChipList (line 26) | function SearchChipList({ FILE: web/src/app/app/message/messageComponents/timeline/renderers/search/searchStateUtils.ts constant MAX_TITLE_LENGTH (line 11) | const MAX_TITLE_LENGTH = 25; constant INITIAL_QUERIES_TO_SHOW (line 24) | const INITIAL_QUERIES_TO_SHOW = 3; constant QUERIES_PER_EXPANSION (line 25) | const QUERIES_PER_EXPANSION = 5; constant INITIAL_RESULTS_TO_SHOW (line 26) | const INITIAL_RESULTS_TO_SHOW = 3; constant RESULTS_PER_EXPANSION (line 27) | const RESULTS_PER_EXPANSION = 10; type SearchState (line 29) | interface SearchState { FILE: web/src/app/app/message/messageComponents/timeline/transformers.ts type TransformedStep (line 6) | interface TransformedStep { type TurnGroup (line 20) | interface TurnGroup { function transformPacketGroup (line 30) | function transformPacketGroup(group: GroupedPacket): TransformedStep { function transformPacketGroups (line 42) | function transformPacketGroups( function groupStepsByTurn (line 82) | function groupStepsByTurn(steps: TransformedStep[]): TurnGroup[] { FILE: web/src/app/app/message/messageComponents/timing.ts function clearTimeoutRefs (line 7) | function clearTimeoutRefs( FILE: web/src/app/app/message/messageComponents/toolDisplayHelpers.tsx function hasToolError (line 25) | function hasToolError(packets: Packet[]): boolean { function isToolComplete (line 34) | function isToolComplete(packets: Packet[]): boolean { function getToolErrorIcon (line 60) | function getToolErrorIcon(): JSX.Element { function getToolKey (line 64) | function getToolKey(turn_index: number, tab_index: number): string { function parseToolKey (line 68) | function parseToolKey(key: string): { function getToolName (line 79) | function getToolName(packets: Packet[]): string { function getToolIcon (line 114) | function getToolIcon(packets: Packet[]): JSX.Element { FILE: web/src/app/app/page.tsx type PageProps (line 3) | interface PageProps { function Page (line 7) | async function Page(props: PageProps) { FILE: web/src/app/app/projects/projectsService.ts type Project (line 8) | interface Project { type CategorizedFiles (line 18) | interface CategorizedFiles { type ProjectFile (line 23) | interface ProjectFile { type RejectedFile (line 39) | interface RejectedFile { type UserFileDeleteResult (line 44) | interface UserFileDeleteResult { type UserFileStatus (line 50) | enum UserFileStatus { type ProjectDetails (line 60) | type ProjectDetails = { function fetchProjects (line 66) | async function fetchProjects(): Promise { function createProject (line 74) | async function createProject(name: string): Promise { function uploadFiles (line 85) | async function uploadFiles( function getRecentFiles (line 114) | async function getRecentFiles(): Promise { function getFilesInProject (line 122) | async function getFilesInProject( function getProject (line 132) | async function getProject(projectId: number): Promise { function renameProject (line 140) | async function renameProject( function deleteProject (line 155) | async function deleteProject(projectId: number): Promise { function getProjectInstructions (line 164) | async function getProjectInstructions( function upsertProjectInstructions (line 175) | async function upsertProjectInstructions( function getProjectDetails (line 191) | async function getProjectDetails( function unlinkFileFromProject (line 201) | async function unlinkFileFromProject( function linkFileToProject (line 217) | async function linkFileToProject( function deleteUserFile (line 233) | async function deleteUserFile( function getUserFile (line 248) | async function getUserFile(fileId: string): Promise { function getUserFileStatuses (line 258) | async function getUserFileStatuses( function getSessionProjectTokenCount (line 272) | async function getSessionProjectTokenCount( function getProjectFilesForSession (line 287) | async function getProjectFilesForSession( function getProjectTokenCount (line 299) | async function getProjectTokenCount(projectId: number): Promise { function getMaxSelectedDocumentTokens (line 310) | async function getMaxSelectedDocumentTokens( function moveChatSession (line 323) | async function moveChatSession( function removeChatSessionFromProject (line 341) | async function removeChatSessionFromProject( FILE: web/src/app/app/services/actionUtils.ts function getIconForAction (line 51) | function getIconForAction( function hasSearchToolsAvailable (line 63) | function hasSearchToolsAvailable(tools: ToolSnapshot[]): boolean { FILE: web/src/app/app/services/currentMessageFIFO.ts class CurrentMessageFIFO (line 3) | class CurrentMessageFIFO { method push (line 8) | push(packetBunch: PacketType) { method nextPacket (line 12) | nextPacket(): PacketType | undefined { method isEmpty (line 16) | isEmpty(): boolean { function updateCurrentMessageFIFO (line 21) | async function updateCurrentMessageFIFO( FILE: web/src/app/app/services/fileUtils.ts function projectsFileToFileDescriptor (line 4) | function projectsFileToFileDescriptor( function projectFilesToFileDescriptors (line 15) | function projectFilesToFileDescriptors( FILE: web/src/app/app/services/lib.tsx function updateLlmOverrideForChatSession (line 29) | async function updateLlmOverrideForChatSession( function updateTemperatureOverrideForChatSession (line 46) | async function updateTemperatureOverrideForChatSession( function createChatSession (line 63) | async function createChatSession( type PacketType (line 92) | type PacketType = type MessageOrigin (line 107) | type MessageOrigin = type LLMOverride (line 114) | interface LLMOverride { type SendMessageParams (line 121) | interface SendMessageParams { function setPreferredResponse (line 206) | async function setPreferredResponse( function nameChatSession (line 220) | async function nameChatSession(chatSessionId: string) { function patchMessageToBeLatest (line 234) | async function patchMessageToBeLatest(messageId: number) { function handleChatFeedback (line 247) | async function handleChatFeedback( function removeChatFeedback (line 268) | async function removeChatFeedback(messageId: number) { function renameChatSession (line 281) | async function renameChatSession( function deleteChatSession (line 298) | async function deleteChatSession(chatSessionId: string) { function deleteAllChatSessions (line 308) | async function deleteAllChatSessions() { function getAvailableContextTokens (line 318) | async function getAvailableContextTokens( function processRawChatHistory (line 331) | function processRawChatHistory( function personaIncludesRetrieval (line 418) | function personaIncludesRetrieval( constant PARAMS_TO_SKIP (line 428) | const PARAMS_TO_SKIP = [ function buildChatUrl (line 440) | function buildChatUrl( function uploadFilesForChat (line 478) | async function uploadFilesForChat( FILE: web/src/app/app/services/messageTree.ts constant SYSTEM_MESSAGE_ID (line 3) | const SYSTEM_MESSAGE_ID = -3; constant SYSTEM_NODE_ID (line 4) | const SYSTEM_NODE_ID = -3; type MessageTreeState (line 6) | type MessageTreeState = Map; function createInitialMessageTreeState (line 8) | function createInitialMessageTreeState( function getMessage (line 20) | function getMessage( function getMessageByMessageId (line 27) | function getMessageByMessageId( function updateParentInMap (line 39) | function updateParentInMap( function upsertMessages (line 79) | function upsertMessages( function removeMessage (line 166) | function removeMessage( function setMessageAsLatest (line 220) | function setMessageAsLatest( function getLatestMessageChain (line 251) | function getLatestMessageChain(messages: MessageTreeState): Message[] { function getHumanAndAIMessageFromMessageNumber (line 308) | function getHumanAndAIMessageFromMessageNumber( function getLastSuccessfulMessageId (line 373) | function getLastSuccessfulMessageId( type BuildEmptyMessageParams (line 411) | interface BuildEmptyMessageParams { FILE: web/src/app/app/services/packetUtils.test.ts function createPacket (line 17) | function createPacket( FILE: web/src/app/app/services/packetUtils.ts function isToolPacket (line 9) | function isToolPacket( function isActualToolCallPacket (line 52) | function isActualToolCallPacket(packet: Packet): boolean { function isDisplayPacket (line 60) | function isDisplayPacket(packet: Packet) { function isSearchToolPacket (line 67) | function isSearchToolPacket(packet: Packet): boolean { function isStreamingComplete (line 75) | function isStreamingComplete(packets: Packet[]) { function isFinalAnswerComing (line 79) | function isFinalAnswerComing(packets: Packet[]) { function isFinalAnswerComplete (line 87) | function isFinalAnswerComplete(packets: Packet[]) { function groupPacketsByTurnIndex (line 108) | function groupPacketsByTurnIndex( function getTextContent (line 146) | function getTextContent(packets: Packet[]) { function getCitations (line 160) | function getCitations(packets: Packet[]): StreamingCitation[] { FILE: web/src/app/app/services/searchParams.ts constant SEARCH_PARAM_NAMES (line 4) | const SEARCH_PARAM_NAMES = { function shouldSubmitOnLoad (line 30) | function shouldSubmitOnLoad( FILE: web/src/app/app/services/streamingModels.ts type BaseObj (line 4) | interface BaseObj { type PacketType (line 8) | enum PacketType { constant CODE_INTERPRETER_TOOL_TYPES (line 66) | const CODE_INTERPRETER_TOOL_TYPES = { type MessageStart (line 71) | interface MessageStart extends BaseObj { type MessageDelta (line 80) | interface MessageDelta extends BaseObj { type MessageEnd (line 85) | interface MessageEnd extends BaseObj { type StopReason (line 90) | enum StopReason { type Stop (line 95) | interface Stop extends BaseObj { type SectionEnd (line 100) | interface SectionEnd extends BaseObj { type TopLevelBranching (line 104) | interface TopLevelBranching extends BaseObj { type PacketError (line 109) | interface PacketError extends BaseObj { type SearchToolStart (line 115) | interface SearchToolStart extends BaseObj { type SearchToolQueriesDelta (line 120) | interface SearchToolQueriesDelta extends BaseObj { type SearchToolDocumentsDelta (line 125) | interface SearchToolDocumentsDelta extends BaseObj { type ImageShape (line 130) | type ImageShape = "square" | "landscape" | "portrait"; type GeneratedImage (line 132) | interface GeneratedImage { type ImageGenerationToolStart (line 139) | interface ImageGenerationToolStart extends BaseObj { type ImageGenerationToolDelta (line 143) | interface ImageGenerationToolDelta extends BaseObj { type PythonToolStart (line 148) | interface PythonToolStart extends BaseObj { type PythonToolDelta (line 153) | interface PythonToolDelta extends BaseObj { type ToolCallArgumentDelta (line 160) | interface ToolCallArgumentDelta extends BaseObj { type FetchToolStart (line 167) | interface FetchToolStart extends BaseObj { type FetchToolUrls (line 171) | interface FetchToolUrls extends BaseObj { type FetchToolDocuments (line 176) | interface FetchToolDocuments extends BaseObj { type CustomToolErrorInfo (line 182) | interface CustomToolErrorInfo { type CustomToolStart (line 188) | interface CustomToolStart extends BaseObj { type CustomToolArgs (line 194) | interface CustomToolArgs extends BaseObj { type CustomToolDelta (line 200) | interface CustomToolDelta extends BaseObj { type FileReaderStart (line 211) | interface FileReaderStart extends BaseObj { type FileReaderResult (line 215) | interface FileReaderResult extends BaseObj { type MemoryToolStart (line 226) | interface MemoryToolStart extends BaseObj { type MemoryToolDelta (line 230) | interface MemoryToolDelta extends BaseObj { type MemoryToolNoAccess (line 238) | interface MemoryToolNoAccess extends BaseObj { type ReasoningStart (line 243) | interface ReasoningStart extends BaseObj { type ReasoningDelta (line 247) | interface ReasoningDelta extends BaseObj { type ReasoningDone (line 252) | interface ReasoningDone extends BaseObj { type StreamingCitation (line 257) | interface StreamingCitation { type CitationStart (line 262) | interface CitationStart extends BaseObj { type CitationInfo (line 267) | interface CitationInfo extends BaseObj { type DeepResearchPlanStart (line 274) | interface DeepResearchPlanStart extends BaseObj { type DeepResearchPlanDelta (line 278) | interface DeepResearchPlanDelta extends BaseObj { type ResearchAgentStart (line 283) | interface ResearchAgentStart extends BaseObj { type IntermediateReportStart (line 288) | interface IntermediateReportStart extends BaseObj { type IntermediateReportDelta (line 292) | interface IntermediateReportDelta extends BaseObj { type IntermediateReportCitedDocs (line 297) | interface IntermediateReportCitedDocs extends BaseObj { type ChatObj (line 302) | type ChatObj = MessageStart | MessageDelta | MessageEnd; type StopObj (line 304) | type StopObj = Stop; type SectionEndObj (line 306) | type SectionEndObj = SectionEnd; type TopLevelBranchingObj (line 308) | type TopLevelBranchingObj = TopLevelBranching; type PacketErrorObj (line 310) | type PacketErrorObj = PacketError; type SearchToolObj (line 313) | type SearchToolObj = type ImageGenerationToolObj (line 319) | type ImageGenerationToolObj = type PythonToolObj (line 324) | type PythonToolObj = type FetchToolObj (line 330) | type FetchToolObj = type CustomToolObj (line 336) | type CustomToolObj = type FileReaderToolObj (line 342) | type FileReaderToolObj = type MemoryToolObj (line 347) | type MemoryToolObj = type NewToolObj (line 353) | type NewToolObj = type ReasoningObj (line 362) | type ReasoningObj = type CitationObj (line 369) | type CitationObj = type DeepResearchPlanObj (line 375) | type DeepResearchPlanObj = type ResearchAgentObj (line 380) | type ResearchAgentObj = type ObjTypes (line 388) | type ObjTypes = type Placement (line 402) | interface Placement { type Packet (line 410) | interface Packet { type ChatPacket (line 415) | interface ChatPacket { type StopPacket (line 420) | interface StopPacket { type CitationPacket (line 425) | interface CitationPacket { type SearchToolPacket (line 431) | interface SearchToolPacket { type ImageGenerationToolPacket (line 436) | interface ImageGenerationToolPacket { type PythonToolPacket (line 441) | interface PythonToolPacket { type FetchToolPacket (line 446) | interface FetchToolPacket { type CustomToolPacket (line 451) | interface CustomToolPacket { type FileReaderToolPacket (line 456) | interface FileReaderToolPacket { type MemoryToolPacket (line 460) | interface MemoryToolPacket { type ReasoningPacket (line 465) | interface ReasoningPacket { type SectionEndPacket (line 470) | interface SectionEndPacket { type TopLevelBranchingPacket (line 475) | interface TopLevelBranchingPacket { type DeepResearchPlanPacket (line 480) | interface DeepResearchPlanPacket { type ResearchAgentPacket (line 485) | interface ResearchAgentPacket { FILE: web/src/app/app/services/thinkingTokens.ts function hasCompletedThinkingTokens (line 10) | function hasCompletedThinkingTokens( function hasPartialThinkingTokens (line 24) | function hasPartialThinkingTokens( function extractThinkingContent (line 44) | function extractThinkingContent(content: string | JSX.Element): string { function isThinkingComplete (line 83) | function isThinkingComplete(content: string | JSX.Element): boolean { function removeThinkingTokens (line 102) | function removeThinkingTokens( function cleanThinkingContent (line 132) | function cleanThinkingContent(thinkingContent: string): string { FILE: web/src/app/app/settings/accounts-access/page.tsx function AccountsAccessPage (line 10) | function AccountsAccessPage() { FILE: web/src/app/app/settings/chat-preferences/page.tsx function ChatPreferencesPage (line 3) | function ChatPreferencesPage() { FILE: web/src/app/app/settings/connectors/page.tsx function ConnectorsPage (line 3) | function ConnectorsPage() { FILE: web/src/app/app/settings/general/page.tsx function GeneralSettingsPage (line 3) | function GeneralSettingsPage() { FILE: web/src/app/app/settings/layout.tsx type LayoutProps (line 12) | interface LayoutProps { function Layout (line 16) | function Layout({ children }: LayoutProps) { FILE: web/src/app/app/settings/page.tsx function SettingsPage (line 3) | function SettingsPage() { FILE: web/src/app/app/shared/[chatId]/SharedChatDisplay.tsx type SharedChatDisplayProps (line 23) | interface SharedChatDisplayProps { function SharedChatDisplay (line 28) | function SharedChatDisplay({ FILE: web/src/app/app/shared/[chatId]/page.tsx function constructMiniFiedPersona (line 10) | function constructMiniFiedPersona(name: string, id: number): Persona { function getSharedChat (line 34) | async function getSharedChat(chatId: string) { type PageProps (line 44) | interface PageProps { function Page (line 48) | async function Page(props: PageProps) { FILE: web/src/app/app/stores/useChatSessionStore.ts type ChatSessionData (line 17) | interface ChatSessionData { type ChatSessionStore (line 48) | interface ChatSessionStore { FILE: web/src/app/auth/create-account/page.tsx function Page (line 9) | function Page() { FILE: web/src/app/auth/error/AuthErrorContent.tsx constant ERROR_CODE_MESSAGES (line 11) | const ERROR_CODE_MESSAGES: Record = { function resolveMessage (line 25) | function resolveMessage(raw: string | null): string | null { type AuthErrorContentProps (line 30) | interface AuthErrorContentProps { function AuthErrorContent (line 34) | function AuthErrorContent({ message: rawMessage }: AuthErrorContentProps) { FILE: web/src/app/auth/error/layout.tsx function AuthErrorLayout (line 1) | function AuthErrorLayout({ FILE: web/src/app/auth/error/page.tsx function Page (line 6) | function Page() { FILE: web/src/app/auth/impersonate/page.tsx function ImpersonatePage (line 20) | function ImpersonatePage() { FILE: web/src/app/auth/lib.ts function requestEmailVerification (line 1) | async function requestEmailVerification(email: string) { FILE: web/src/app/auth/libSS.ts function authErrorRedirect (line 6) | async function authErrorRedirect( FILE: web/src/app/auth/login/EmailPasswordForm.tsx type EmailPasswordFormProps (line 23) | interface EmailPasswordFormProps { function EmailPasswordForm (line 32) | function EmailPasswordForm({ FILE: web/src/app/auth/login/LoginPage.tsx type LoginPageProps (line 13) | interface LoginPageProps { function LoginPage (line 22) | function LoginPage({ FILE: web/src/app/auth/login/LoginText.tsx function LoginText (line 7) | function LoginText() { FILE: web/src/app/auth/login/SignInButton.tsx type SignInButtonProps (line 26) | interface SignInButtonProps { function SignInButton (line 31) | function SignInButton({ FILE: web/src/app/auth/login/page.tsx type PageProps (line 14) | interface PageProps { function Page (line 18) | async function Page(props: PageProps) { FILE: web/src/app/auth/saml/callback/route.ts constant SEE_OTHER_REDIRECT_STATUS (line 8) | const SEE_OTHER_REDIRECT_STATUS = 303; function handleSamlCallback (line 10) | async function handleSamlCallback( FILE: web/src/app/auth/signup/ReferralSourceSelector.tsx type ReferralSourceSelectorProps (line 7) | interface ReferralSourceSelectorProps { function ReferralSourceSelector (line 11) | function ReferralSourceSelector({ FILE: web/src/app/auth/verify-email/Verify.tsx type VerifyProps (line 12) | interface VerifyProps { function Verify (line 16) | function Verify({ user }: VerifyProps) { FILE: web/src/app/auth/verify-email/page.tsx function Page (line 10) | async function Page() { FILE: web/src/app/auth/waiting-on-verification/RequestNewVerificationEmail.tsx function RequestNewVerificationEmail (line 8) | function RequestNewVerificationEmail({ FILE: web/src/app/auth/waiting-on-verification/page.tsx function Page (line 13) | async function Page() { FILE: web/src/app/components/nrf/SettingsPanel.tsx type SettingRowProps (line 16) | interface SettingRowProps { type BackgroundThumbnailProps (line 38) | interface BackgroundThumbnailProps { FILE: web/src/app/connector/oauth/callback/[source]/route.tsx function GET (line 7) | async function GET(request: NextRequest) { FILE: web/src/app/craft/components/BigButton.tsx type BigButtonProps (line 7) | interface BigButtonProps FILE: web/src/app/craft/components/BuildLLMPopover.tsx type BuildLLMPopoverProps (line 30) | interface BuildLLMPopoverProps { type ModelOption (line 39) | interface ModelOption { function BuildLLMPopover (line 49) | function BuildLLMPopover({ FILE: web/src/app/craft/components/BuildMessageList.tsx function BlinkingDot (line 23) | function BlinkingDot() { function groupStreamItems (line 33) | function groupStreamItems(items: StreamItem[]): GroupedStreamItem[] { type BuildMessageListProps (line 67) | interface BuildMessageListProps { function BuildMessageList (line 84) | function BuildMessageList({ FILE: web/src/app/craft/components/BuildWelcome.tsx type BuildWelcomeProps (line 13) | interface BuildWelcomeProps { function BuildWelcome (line 29) | function BuildWelcome({ FILE: web/src/app/craft/components/ChatPanel.tsx type BuildChatPanelProps (line 46) | interface BuildChatPanelProps { function BuildChatPanel (line 60) | function BuildChatPanel({ FILE: web/src/app/craft/components/ConnectDataBanner.tsx type ConnectDataBannerProps (line 18) | interface ConnectDataBannerProps { function IconWrapper (line 22) | function IconWrapper({ children }: { children: React.ReactNode }) { function ConnectDataBanner (line 30) | function ConnectDataBanner({ FILE: web/src/app/craft/components/ConnectorBannersRow.tsx type ConnectorBannersRowProps (line 20) | interface ConnectorBannersRowProps { function IconWrapper (line 24) | function IconWrapper({ children }: { children: React.ReactNode }) { function ConnectorBannersRow (line 40) | function ConnectorBannersRow({ FILE: web/src/app/craft/components/CraftingLoader.tsx constant MESSAGE_COUNT (line 17) | const MESSAGE_COUNT = messages.length; constant TYPE_DELAY (line 18) | const TYPE_DELAY = 40; constant LINE_PAUSE (line 19) | const LINE_PAUSE = 800; constant RESET_DELAY (line 20) | const RESET_DELAY = 2000; function CraftingLoader (line 22) | function CraftingLoader() { FILE: web/src/app/craft/components/DiffView.tsx type DiffViewProps (line 6) | interface DiffViewProps { type DiffLine (line 14) | interface DiffLine { function computeDiff (line 25) | function computeDiff(oldText: string, newText: string): DiffLine[] { function collapseUnchanged (line 112) | function collapseUnchanged( function DiffView (line 172) | function DiffView({ FILE: web/src/app/craft/components/FileBrowser.tsx type FileBrowserProps (line 29) | interface FileBrowserProps { type DirectoryNodeProps (line 33) | interface DirectoryNodeProps { function DirectoryNode (line 40) | function DirectoryNode({ type FileNodeProps (line 131) | interface FileNodeProps { function FileNode (line 138) | function FileNode({ entry, sessionId, depth, onPreview }: FileNodeProps) { function FileBrowser (line 212) | function FileBrowser({ sessionId }: FileBrowserProps) { FILE: web/src/app/craft/components/FilePreviewModal.tsx type FilePreviewModalProps (line 11) | interface FilePreviewModalProps { function FilePreviewModal (line 17) | function FilePreviewModal({ FILE: web/src/app/craft/components/InputBar.tsx constant MAX_INPUT_HEIGHT (line 42) | const MAX_INPUT_HEIGHT = 200; type InputBarHandle (line 44) | interface InputBarHandle { type InputBarProps (line 50) | interface InputBarProps { function BuildFileCard (line 70) | function BuildFileCard({ FILE: web/src/app/craft/components/IntroBackground.tsx type Particle (line 4) | interface Particle { type BuildModeIntroBackgroundProps (line 18) | interface BuildModeIntroBackgroundProps { function BuildModeIntroBackground (line 38) | function BuildModeIntroBackground( FILE: web/src/app/craft/components/IntroContent.tsx type BuildModeIntroContentProps (line 10) | interface BuildModeIntroContentProps { function BuildModeIntroContent (line 15) | function BuildModeIntroContent({ FILE: web/src/app/craft/components/OutputPanel.tsx type TabValue (line 43) | type TabValue = OutputTabType; type BuildOutputPanelProps (line 51) | interface BuildOutputPanelProps { FILE: web/src/app/craft/components/RawOutputBlock.tsx function getLanguageFromPath (line 46) | function getLanguageFromPath(filePath: string | undefined): string | und... type RawOutputBlockProps (line 72) | interface RawOutputBlockProps { function RawOutputBlock (line 86) | function RawOutputBlock({ FILE: web/src/app/craft/components/SandboxStatusIndicator.tsx constant STATUS_CONFIG (line 14) | const STATUS_CONFIG = { type Status (line 58) | type Status = keyof typeof STATUS_CONFIG; type SandboxStatusIndicatorProps (line 60) | interface SandboxStatusIndicatorProps {} function deriveSandboxStatus (line 77) | function deriveSandboxStatus( function SandboxStatusIndicator (line 114) | function SandboxStatusIndicator( FILE: web/src/app/craft/components/ShareButton.tsx type ShareButtonProps (line 15) | interface ShareButtonProps { constant SCOPE_OPTIONS (line 22) | const SCOPE_OPTIONS: { function ShareButton (line 39) | function ShareButton({ FILE: web/src/app/craft/components/SideBar.tsx constant DELETING_MESSAGES (line 49) | const DELETING_MESSAGES = [ function DeletingMessage (line 67) | function DeletingMessage() { type BuildSessionButtonProps (line 96) | interface BuildSessionButtonProps { function BuildSessionButton (line 105) | function BuildSessionButton({ type BuildSidebarInnerProps (line 314) | interface BuildSidebarInnerProps { function BuildSidebar (line 463) | function BuildSidebar() { FILE: web/src/app/craft/components/SuggestedPrompts.tsx type SuggestedPromptsProps (line 11) | interface SuggestedPromptsProps { function shuffleArray (line 19) | function shuffleArray(array: T[]): T[] { function selectRandomPrompts (line 33) | function selectRandomPrompts(prompts: BuildPrompt[]): BuildPrompt[] { function SuggestedPrompts (line 47) | function SuggestedPrompts({ FILE: web/src/app/craft/components/SuggestionBubbles.tsx type SuggestionBubblesProps (line 6) | interface SuggestionBubblesProps { function getThemeStyles (line 15) | function getThemeStyles(theme: string): string { function SuggestionBubbles (line 31) | function SuggestionBubbles({ FILE: web/src/app/craft/components/TextChunk.tsx type TextChunkProps (line 5) | interface TextChunkProps { function TextChunk (line 14) | function TextChunk({ content }: TextChunkProps) { FILE: web/src/app/craft/components/ThinkingCard.tsx type ThinkingCardProps (line 12) | interface ThinkingCardProps { function ThinkingCard (line 22) | function ThinkingCard({ FILE: web/src/app/craft/components/TodoListCard.tsx type TodoListCardProps (line 17) | interface TodoListCardProps { function getStatusIcon (line 26) | function getStatusIcon(status: TodoStatus) { function TodoItemRow (line 50) | function TodoItemRow({ todo }: { todo: TodoItem }) { function TodoListCard (line 80) | function TodoListCard({ FILE: web/src/app/craft/components/ToggleWarningModal.tsx type ToggleWarningModalProps (line 5) | interface ToggleWarningModalProps { function ToggleWarningModal (line 11) | function ToggleWarningModal({ FILE: web/src/app/craft/components/ToolCallPill.tsx type ToolCallPillProps (line 24) | interface ToolCallPillProps { function getToolIcon (line 31) | function getToolIcon(kind: ToolCallKind) { function getStatusDisplay (line 49) | function getStatusDisplay(status: string) { function getLanguageHint (line 92) | function getLanguageHint(toolCall: ToolCallState): string | undefined { function ToolCallPill (line 128) | function ToolCallPill({ toolCall }: ToolCallPillProps) { FILE: web/src/app/craft/components/TypewriterText.tsx type TypewriterTextProps (line 5) | interface TypewriterTextProps { function TypewriterText (line 27) | function TypewriterText({ FILE: web/src/app/craft/components/UpgradePlanModal.tsx type UpgradePlanModalProps (line 7) | interface UpgradePlanModalProps { function UpgradePlanModal (line 17) | function UpgradePlanModal({ FILE: web/src/app/craft/components/UserMessage.tsx type UserMessageProps (line 5) | interface UserMessageProps { function UserMessage (line 9) | function UserMessage({ content }: UserMessageProps) { FILE: web/src/app/craft/components/WorkingLine.tsx type WorkingLineProps (line 24) | interface WorkingLineProps { function getToolIcon (line 31) | function getToolIcon(kind: ToolCallKind) { function getStatusDisplay (line 51) | function getStatusDisplay(status: string) { function getLanguageHint (line 80) | function getLanguageHint(toolCall: ToolCallState): string | undefined { function WorkingLine (line 103) | function WorkingLine({ toolCall }: WorkingLineProps) { FILE: web/src/app/craft/components/WorkingPill.tsx type WorkingPillProps (line 14) | interface WorkingPillProps { function WorkingPill (line 28) | function WorkingPill({ FILE: web/src/app/craft/components/output-panel/ArtifactsTab.tsx type ArtifactsTabProps (line 28) | interface ArtifactsTabProps { function ArtifactsTab (line 33) | function ArtifactsTab({ type OutputEntryRowProps (line 190) | interface OutputEntryRowProps { function OutputEntryRow (line 197) | function OutputEntryRow({ function formatFileSize (line 291) | function formatFileSize(bytes: number): string { FILE: web/src/app/craft/components/output-panel/FilePreviewContent.tsx type StandaloneEntry (line 23) | interface StandaloneEntry { type ContentEntry (line 33) | interface ContentEntry { type PreviewEntry (line 39) | type PreviewEntry = StandaloneEntry | ContentEntry; function ImageRendererWrapper (line 41) | function ImageRendererWrapper({ content, fileName }: FileRendererProps) { constant PREVIEW_REGISTRY (line 45) | const PREVIEW_REGISTRY: PreviewEntry[] = [ function findStandalonePreview (line 68) | function findStandalonePreview(filePath: string): StandaloneEntry | unde... function findContentPreview (line 74) | function findContentPreview( type FilePreviewContentProps (line 87) | interface FilePreviewContentProps { function FilePreviewContent (line 98) | function FilePreviewContent({ function InlineFilePreview (line 125) | function InlineFilePreview({ type FetchedFilePreviewProps (line 140) | interface FetchedFilePreviewProps { function FetchedFilePreview (line 151) | function FetchedFilePreview({ FILE: web/src/app/craft/components/output-panel/FilesTab.tsx type FilesTabProps (line 27) | interface FilesTabProps { function FilesTab (line 36) | function FilesTab({ type FileTreeNodeProps (line 410) | interface FileTreeNodeProps { function FileTreeNode (line 425) | function FileTreeNode({ FILE: web/src/app/craft/components/output-panel/ImagePreview.tsx type ImagePreviewProps (line 9) | interface ImagePreviewProps { function ImagePreview (line 18) | function ImagePreview({ src, fileName }: ImagePreviewProps) { FILE: web/src/app/craft/components/output-panel/MarkdownFilePreview.tsx type FileRendererProps (line 6) | interface FileRendererProps { function MarkdownFilePreview (line 14) | function MarkdownFilePreview({ content }: FileRendererProps) { FILE: web/src/app/craft/components/output-panel/PdfPreview.tsx type PdfPreviewProps (line 10) | interface PdfPreviewProps { function PdfPreview (line 22) | function PdfPreview({ FILE: web/src/app/craft/components/output-panel/PptxPreview.tsx type PptxPreviewProps (line 13) | interface PptxPreviewProps { function PptxPreview (line 24) | function PptxPreview({ FILE: web/src/app/craft/components/output-panel/PreviewTab.tsx type PreviewTabProps (line 6) | interface PreviewTabProps { function PreviewTab (line 19) | function PreviewTab({ webappUrl, refreshKey }: PreviewTabProps) { FILE: web/src/app/craft/components/output-panel/UrlBar.tsx type UrlBarProps (line 25) | interface UrlBarProps { function UrlBar (line 58) | function UrlBar({ FILE: web/src/app/craft/constants.ts constant DELETE_SUCCESS_DISPLAY_DURATION_MS (line 6) | const DELETE_SUCCESS_DISPLAY_DURATION_MS = 800; constant DELETE_MESSAGE_ROTATION_INTERVAL_MS (line 9) | const DELETE_MESSAGE_ROTATION_INTERVAL_MS = 3000; FILE: web/src/app/craft/constants/exampleBuildPrompts.ts type BuildPrompt (line 6) | interface BuildPrompt { type UserPersona (line 16) | type UserPersona = "default" | "engineering" | "sales" | "product"; function getPromptsForPersona (line 182) | function getPromptsForPersona(persona: UserPersona): BuildPrompt[] { function workAreaToPersona (line 190) | function workAreaToPersona(workArea: string | undefined): UserPersona { FILE: web/src/app/craft/contexts/BuildContext.tsx type BuildContextValue (line 17) | interface BuildContextValue { type BuildProviderProps (line 25) | interface BuildProviderProps { function BuildProvider (line 29) | function BuildProvider({ children }: BuildProviderProps) { function useBuildContext (line 45) | function useBuildContext() { FILE: web/src/app/craft/contexts/UploadFilesContext.tsx type UploadFileStatus (line 23) | enum UploadFileStatus { type BuildFile (line 39) | interface BuildFile { constant MAX_FILE_SIZE_BYTES (line 68) | const MAX_FILE_SIZE_BYTES = 50 * 1024 * 1024; constant MAX_TOTAL_SIZE_BYTES (line 71) | const MAX_TOTAL_SIZE_BYTES = 200 * 1024 * 1024; constant MAX_FILES_PER_SESSION (line 74) | const MAX_FILES_PER_SESSION = 20; constant BLOCKED_EXTENSIONS (line 77) | const BLOCKED_EXTENSIONS = new Set([ function formatBytes (line 112) | function formatBytes(bytes: number): string { function getFileExtension (line 119) | function getFileExtension(filename: string): string { type FileValidationResult (line 126) | interface FileValidationResult { function validateFile (line 132) | function validateFile(file: File): FileValidationResult { function validateBatch (line 164) | function validateBatch( function createFailedFile (line 193) | function createFailedFile(file: File, error: string): BuildFile { type UploadErrorType (line 222) | enum UploadErrorType { function classifyError (line 230) | function classifyError(error: unknown): { type UploadFilesContextValue (line 269) | interface UploadFilesContextValue { type UploadFilesProviderProps (line 319) | interface UploadFilesProviderProps { function UploadFilesProvider (line 323) | function UploadFilesProvider({ children }: UploadFilesProviderProps) { function useUploadFilesContext (line 864) | function useUploadFilesContext() { FILE: web/src/app/craft/hooks/useBuildConnectors.ts type BuildConnectorListResponse (line 9) | interface BuildConnectorListResponse { function useBuildConnectors (line 25) | function useBuildConnectors() { FILE: web/src/app/craft/hooks/useBuildLlmSelection.ts function useBuildLlmSelection (line 18) | function useBuildLlmSelection( FILE: web/src/app/craft/hooks/useBuildSessionController.ts type UseBuildSessionControllerProps (line 13) | interface UseBuildSessionControllerProps { function useBuildSessionController (line 32) | function useBuildSessionController({ FILE: web/src/app/craft/hooks/useBuildSessionStore.ts function convertMessagesToStreamItems (line 56) | function convertMessagesToStreamItems(messages: BuildMessage[]): StreamI... function consolidateMessagesIntoTurns (line 158) | function consolidateMessagesIntoTurns( type PreProvisioningState (line 257) | type PreProvisioningState = type FilePreviewTab (line 267) | interface FilePreviewTab { type FilesTabState (line 273) | interface FilesTabState { type TabHistoryEntry (line 281) | type TabHistoryEntry = type TabNavigationHistory (line 286) | interface TabNavigationHistory { type SuggestionBubble (line 292) | interface SuggestionBubble { type OutputTabType (line 298) | type OutputTabType = "preview" | "files" | "artifacts"; type BuildSessionData (line 300) | interface BuildSessionData { type BuildSessionStore (line 341) | interface BuildSessionStore { constant EMPTY_ARRAY (line 2024) | const EMPTY_ARRAY: never[] = []; constant EMPTY_FILE_PREVIEW_TABS (line 2025) | const EMPTY_FILE_PREVIEW_TABS: FilePreviewTab[] = []; constant EMPTY_FILES_TAB_STATE (line 2026) | const EMPTY_FILES_TAB_STATE: FilesTabState = { constant EMPTY_TAB_HISTORY (line 2031) | const EMPTY_TAB_HISTORY: TabNavigationHistory = { FILE: web/src/app/craft/hooks/useBuildStreaming.ts function useBuildStreaming (line 33) | function useBuildStreaming() { FILE: web/src/app/craft/hooks/usePreProvisionPolling.ts constant POLLING_INTERVAL_MS (line 8) | const POLLING_INTERVAL_MS = 5000; type UsePreProvisionPollingOptions (line 10) | interface UsePreProvisionPollingOptions { function usePreProvisionPolling (line 26) | function usePreProvisionPolling({ FILE: web/src/app/craft/hooks/useUsageLimits.ts type UseUsageLimitsReturn (line 20) | interface UseUsageLimitsReturn { function useUsageLimits (line 47) | function useUsageLimits(): UseUsageLimitsReturn { FILE: web/src/app/craft/layout.tsx type LayoutProps (line 7) | interface LayoutProps { function Layout (line 17) | async function Layout({ children }: LayoutProps) { FILE: web/src/app/craft/onboarding/BuildOnboardingProvider.tsx function useOnboarding (line 14) | function useOnboarding(): OnboardingModalController { type BuildOnboardingProviderProps (line 24) | interface BuildOnboardingProviderProps { function BuildOnboardingProvider (line 28) | function BuildOnboardingProvider({ FILE: web/src/app/craft/onboarding/components/BuildOnboardingModal.tsx function autoSelectBestLlm (line 40) | function autoSelectBestLlm( type InitialValues (line 52) | interface InitialValues { type BuildOnboardingModalProps (line 59) | interface BuildOnboardingModalProps { function getStepsForMode (line 73) | function getStepsForMode( function BuildOnboardingModal (line 105) | function BuildOnboardingModal({ FILE: web/src/app/craft/onboarding/components/NoLlmProvidersModal.tsx type NoLlmProvidersModalProps (line 10) | interface NoLlmProvidersModalProps { function NoLlmProvidersModal (line 19) | function NoLlmProvidersModal({ FILE: web/src/app/craft/onboarding/components/NotAllowedModal.tsx type NotAllowedModalProps (line 10) | interface NotAllowedModalProps { function NotAllowedModal (line 15) | function NotAllowedModal({ FILE: web/src/app/craft/onboarding/components/OnboardingInfoPages.tsx type OnboardingInfoPagesProps (line 22) | interface OnboardingInfoPagesProps { function OnboardingInfoPages (line 28) | function OnboardingInfoPages({ FILE: web/src/app/craft/onboarding/components/OnboardingLlmSetup.tsx type ProviderKey (line 11) | type ProviderKey = "anthropic" | "openai" | "openrouter"; type ModelOption (line 13) | interface ModelOption { type ProviderConfig (line 19) | interface ProviderConfig { constant PROVIDERS (line 30) | const PROVIDERS: ProviderConfig[] = [ type SelectableButtonProps (line 75) | interface SelectableButtonProps { function SelectableButton (line 84) | function SelectableButton({ type ModelSelectButtonProps (line 124) | interface ModelSelectButtonProps { function ModelSelectButton (line 132) | function ModelSelectButton({ type OnboardingLlmSetupProps (line 165) | interface OnboardingLlmSetupProps { function OnboardingLlmSetup (line 181) | function OnboardingLlmSetup({ FILE: web/src/app/craft/onboarding/components/OnboardingUserInfo.tsx type SelectableButtonProps (line 17) | interface SelectableButtonProps { function SelectableButton (line 25) | function SelectableButton({ type OnboardingUserInfoProps (line 58) | interface OnboardingUserInfoProps { function OnboardingUserInfo (line 69) | function OnboardingUserInfo({ FILE: web/src/app/craft/onboarding/constants.ts type BuildLlmSelection (line 5) | interface BuildLlmSelection { constant LLM_SELECTION_PRIORITY (line 12) | const LLM_SELECTION_PRIORITY = [ type MinimalLlmProvider (line 19) | interface MinimalLlmProvider { function getDefaultLlmSelection (line 29) | function getDefaultLlmSelection( constant RECOMMENDED_BUILD_MODELS (line 63) | const RECOMMENDED_BUILD_MODELS = { constant BUILD_LLM_COOKIE_KEY (line 78) | const BUILD_LLM_COOKIE_KEY = "build_llm_selection"; function getBuildLlmSelection (line 80) | function getBuildLlmSelection(): BuildLlmSelection | null { function setBuildLlmSelection (line 95) | function setBuildLlmSelection(selection: BuildLlmSelection): void { function clearBuildLlmSelection (line 105) | function clearBuildLlmSelection(): void { function isRecommendedModel (line 110) | function isRecommendedModel( type BuildModeModel (line 126) | interface BuildModeModel { type BuildModeProvider (line 132) | interface BuildModeProvider { constant BUILD_MODE_PROVIDERS (line 144) | const BUILD_MODE_PROVIDERS: BuildModeProvider[] = [ type PersonaInfo (line 191) | interface PersonaInfo { type WorkArea (line 197) | enum WorkArea { type Level (line 207) | enum Level { constant PERSONA_MAPPING (line 215) | const PERSONA_MAPPING: Record> = { constant WORK_AREA_OPTIONS (line 284) | const WORK_AREA_OPTIONS = Object.values(WorkArea).map((value) => ({ constant LEVEL_OPTIONS (line 290) | const LEVEL_OPTIONS = Object.values(Level).map((value) => ({ constant WORK_AREAS_REQUIRING_LEVEL (line 297) | const WORK_AREAS_REQUIRING_LEVEL: WorkArea[] = [ function getPersonaInfo (line 306) | function getPersonaInfo( constant DEMO_COMPANY_NAME (line 314) | const DEMO_COMPANY_NAME = "Netherite Extraction Inc."; function getPositionText (line 318) | function getPositionText( constant BUILD_USER_PERSONA_COOKIE_NAME (line 342) | const BUILD_USER_PERSONA_COOKIE_NAME = "build_user_persona"; type BuildUserPersona (line 345) | interface BuildUserPersona { function getBuildUserPersona (line 351) | function getBuildUserPersona(): BuildUserPersona | null { function setBuildUserPersona (line 382) | function setBuildUserPersona(persona: BuildUserPersona): void { FILE: web/src/app/craft/onboarding/hooks/useOnboardingModal.ts function checkAllProvidersConfigured (line 20) | function checkAllProvidersConfigured( function checkHasAnyProvider (line 35) | function checkHasAnyProvider( function useOnboardingModal (line 41) | function useOnboardingModal(): OnboardingModalController { FILE: web/src/app/craft/onboarding/types.ts type BuildUserInfo (line 7) | interface BuildUserInfo { type BuildOnboardingFlow (line 15) | interface BuildOnboardingFlow { type OnboardingModalMode (line 22) | type OnboardingModalMode = type OnboardingStep (line 28) | type OnboardingStep = "user-info" | "llm-setup" | "page1" | "page2"; type OnboardingModalController (line 30) | interface OnboardingModalController { FILE: web/src/app/craft/page.tsx function BuildPage (line 13) | function BuildPage() { FILE: web/src/app/craft/services/apiServices.ts constant API_BASE (line 21) | const API_BASE = "/api/build"; constant USAGE_LIMITS_ENDPOINT (line 22) | const USAGE_LIMITS_ENDPOINT = `${API_BASE}/limit`; function processSSEStream (line 28) | async function processSSEStream( type CreateSessionOptions (line 83) | interface CreateSessionOptions { function createSession (line 93) | async function createSession( function fetchSession (line 116) | async function fetchSession( function fetchSessionHistory (line 128) | async function fetchSessionHistory(): Promise { function generateSessionName (line 143) | async function generateSessionName(sessionId: string): Promise { type SuggestionBubble (line 157) | interface SuggestionBubble { function generateFollowupSuggestions (line 162) | async function generateFollowupSuggestions( function updateSessionName (line 187) | async function updateSessionName( function setSessionSharing (line 202) | async function setSessionSharing( function deleteSession (line 219) | async function deleteSession(sessionId: string): Promise { function restoreSession (line 239) | async function restoreSession( function checkPreProvisionedSession (line 264) | async function checkPreProvisionedSession( function extractContentFromMetadata (line 287) | function extractContentFromMetadata( function fetchMessages (line 300) | async function fetchMessages( class RateLimitError (line 325) | class RateLimitError extends Error { method constructor (line 328) | constructor() { function sendMessageStream (line 338) | async function sendMessageStream( function fetchArtifacts (line 365) | async function fetchArtifacts(sessionId: string): Promise { function fetchWebappInfo (line 390) | async function fetchWebappInfo( function fetchDirectoryListing (line 406) | async function fetchDirectoryListing( function downloadArtifactFile (line 430) | function downloadArtifactFile(sessionId: string, path: string): void { function downloadDirectory (line 446) | function downloadDirectory(sessionId: string, path: string): void { type FileContentResponse (line 459) | interface FileContentResponse { constant MAX_IMAGE_SIZE (line 467) | const MAX_IMAGE_SIZE = 10 * 1024 * 1024; function fetchFileContent (line 473) | async function fetchFileContent( function transformUsageLimitsResponse (line 540) | function transformUsageLimitsResponse( function fetchUsageLimits (line 554) | async function fetchUsageLimits(): Promise { type UploadFileResponse (line 569) | interface UploadFileResponse { function uploadFile (line 579) | async function uploadFile( function deleteFile (line 602) | async function deleteFile( function exportDocx (line 629) | async function exportDocx( type PptxPreviewResponse (line 656) | interface PptxPreviewResponse { function fetchPptxPreview (line 666) | async function fetchPptxPreview( function deleteConnector (line 693) | async function deleteConnector( constant USER_LIBRARY_BASE (line 724) | const USER_LIBRARY_BASE = `${API_BASE}/user-library`; function fetchLibraryTree (line 729) | async function fetchLibraryTree(): Promise { function uploadLibraryFiles (line 742) | async function uploadLibraryFiles( function uploadLibraryZip (line 770) | async function uploadLibraryZip( function createLibraryDirectory (line 794) | async function createLibraryDirectory( function toggleLibraryFileSync (line 816) | async function toggleLibraryFileSync( function deleteLibraryFile (line 838) | async function deleteLibraryFile(documentId: string): Promise { FILE: web/src/app/craft/services/searchParams.ts constant CRAFT_SEARCH_PARAM_NAMES (line 4) | const CRAFT_SEARCH_PARAM_NAMES = { function getSessionIdFromSearchParams (line 8) | function getSessionIdFromSearchParams( FILE: web/src/app/craft/types/displayTypes.ts type ToolCallKind (line 8) | type ToolCallKind = type TodoStatus (line 20) | type TodoStatus = "pending" | "in_progress" | "completed"; type TodoItem (line 22) | interface TodoItem { type TodoListState (line 31) | interface TodoListState { type ToolCallStatus (line 39) | type ToolCallStatus = type ToolCallState (line 46) | interface ToolCallState { type StreamItem (line 68) | type StreamItem = type GroupedStreamItem (line 79) | type GroupedStreamItem = FILE: web/src/app/craft/types/streamingTypes.ts type SharingScope (line 5) | type SharingScope = "private" | "public_org" | "public_global"; type SessionErrorCode (line 15) | type SessionErrorCode = type LimitType (line 22) | type LimitType = "weekly" | "total"; type UsageLimits (line 24) | interface UsageLimits { type ApiUsageLimitsResponse (line 38) | interface ApiUsageLimitsResponse { type ArtifactType (line 50) | type ArtifactType = type Artifact (line 61) | interface Artifact { type BuildMessage (line 72) | interface BuildMessage { type ToolCallStatus (line 87) | type ToolCallStatus = type ToolCall (line 94) | interface ToolCall { type SessionStatus (line 123) | type SessionStatus = type Session (line 130) | interface Session { type SessionHistoryItem (line 139) | interface SessionHistoryItem { type ApiSandboxResponse (line 149) | interface ApiSandboxResponse { type ApiSessionResponse (line 165) | interface ApiSessionResponse { type ApiDetailedSessionResponse (line 177) | interface ApiDetailedSessionResponse extends ApiSessionResponse { type ApiMessageResponse (line 181) | interface ApiMessageResponse { type ApiArtifactResponse (line 190) | interface ApiArtifactResponse { type ApiWebappInfoResponse (line 201) | interface ApiWebappInfoResponse { type FileSystemEntry (line 209) | interface FileSystemEntry { type DirectoryListing (line 217) | interface DirectoryListing { type StepStartPacket (line 227) | interface StepStartPacket { type StepDeltaPacket (line 234) | interface StepDeltaPacket { type StepEndPacket (line 241) | interface StepEndPacket { type ToolStartPacket (line 249) | interface ToolStartPacket { type ToolProgressPacket (line 258) | interface ToolProgressPacket { type ToolEndPacket (line 268) | interface ToolEndPacket { type OutputStartPacket (line 279) | interface OutputStartPacket { type OutputDeltaPacket (line 284) | interface OutputDeltaPacket { type OutputEndPacket (line 290) | interface OutputEndPacket { type PlanEntry (line 296) | interface PlanEntry { type PlanPacket (line 303) | interface PlanPacket { type ModeUpdatePacket (line 311) | interface ModeUpdatePacket { type DonePacket (line 319) | interface DonePacket { type ErrorPacket (line 333) | interface ErrorPacket { type FileWritePacket (line 342) | interface FileWritePacket { type BackendArtifactType (line 351) | type BackendArtifactType = type ArtifactCreatedPacket (line 363) | interface ArtifactCreatedPacket { type PermissionRequestPacket (line 379) | interface PermissionRequestPacket { type PermissionResponsePacket (line 388) | interface PermissionResponsePacket { type TextContentBlock (line 401) | interface TextContentBlock { type ImageContentBlock (line 406) | interface ImageContentBlock { type ContentBlock (line 412) | type ContentBlock = type ACPBaseEvent (line 418) | interface ACPBaseEvent { type AgentMessageChunkPacket (line 424) | interface AgentMessageChunkPacket extends ACPBaseEvent { type AgentThoughtChunkPacket (line 431) | interface AgentThoughtChunkPacket extends ACPBaseEvent { type ToolCallStartPacket (line 438) | interface ToolCallStartPacket extends ACPBaseEvent { type ToolCallProgressPacket (line 452) | interface ToolCallProgressPacket extends ACPBaseEvent { type AgentPlanUpdatePacket (line 466) | interface AgentPlanUpdatePacket extends ACPBaseEvent { type CurrentModeUpdatePacket (line 478) | interface CurrentModeUpdatePacket extends ACPBaseEvent { type PromptResponsePacket (line 485) | interface PromptResponsePacket extends ACPBaseEvent { type ACPErrorPacket (line 491) | interface ACPErrorPacket { type StreamPacket (line 500) | type StreamPacket = FILE: web/src/app/craft/types/user-library.ts type LibraryEntry (line 5) | interface LibraryEntry { type CreateDirectoryRequest (line 17) | interface CreateDirectoryRequest { type UploadResponse (line 22) | interface UploadResponse { FILE: web/src/app/craft/utils/packetTypes.ts function getRawInput (line 21) | function getRawInput( function getRawOutput (line 27) | function getRawOutput( function getToolCallId (line 36) | function getToolCallId(p: Record): string { function getToolNameRaw (line 40) | function getToolNameRaw(p: Record): string { type ToolName (line 57) | type ToolName = type ParsedTextChunk (line 70) | interface ParsedTextChunk { type ParsedThinkingChunk (line 75) | interface ParsedThinkingChunk { type ParsedToolCallStart (line 80) | interface ParsedToolCallStart { type ParsedToolCallProgress (line 88) | interface ParsedToolCallProgress { type ParsedPromptResponse (line 112) | interface ParsedPromptResponse { type ParsedArtifact (line 116) | interface ParsedArtifact { type ParsedError (line 127) | interface ParsedError { type ParsedUnknown (line 132) | interface ParsedUnknown { type ParsedPacket (line 136) | type ParsedPacket = FILE: web/src/app/craft/utils/parsePacket.ts function parsePacket (line 25) | function parsePacket(raw: unknown): ParsedPacket { constant NAME_MAP (line 61) | const NAME_MAP: Record = { function resolveToolName (line 75) | function resolveToolName(p: Record): ToolName { constant TOOL_KIND_MAP (line 101) | const TOOL_KIND_MAP: Record = { function resolveKind (line 115) | function resolveKind(toolName: ToolName, rawKind: string | null): ToolKi... function extractText (line 135) | function extractText(content: unknown): string { function normalizeStatus (line 155) | function normalizeStatus(status: string | null | undefined): ToolStatus { function extractDiffData (line 171) | function extractDiffData(content: unknown): { function extractDiffPath (line 190) | function extractDiffPath(p: Record): string { function extractPatchInfo (line 215) | function extractPatchInfo( function buildDescription (line 232) | function buildDescription( function buildTitle (line 264) | function buildTitle( function extractRawOutputText (line 304) | function extractRawOutputText( function extractFileContent (line 363) | function extractFileContent(content: unknown): string { function extractTodos (line 382) | function extractTodos(ri: Record | null): TodoItem[] { function normalizeTodoStatus (line 391) | function normalizeTodoStatus(status: unknown): TodoStatus { function extractTaskOutput (line 403) | function extractTaskOutput(ro: Record | null): string |... function parseArtifact (line 413) | function parseArtifact(p: Record): ParsedArtifact { function parseToolCallStart (line 429) | function parseToolCallStart(p: Record): ParsedToolCallS... function parseToolCallProgress (line 441) | function parseToolCallProgress( FILE: web/src/app/craft/utils/pathSanitizer.ts function stripSessionPrefix (line 18) | function stripSessionPrefix(fullPath: string): string { constant SESSION_PATH_PATTERNS (line 52) | const SESSION_PATH_PATTERNS = [ function sanitizePathsInText (line 59) | function sanitizePathsInText(text: string): string { FILE: web/src/app/craft/utils/streamItemHelpers.ts function genId (line 11) | function genId(prefix: string): string { function isWorkingToolCall (line 20) | function isWorkingToolCall(toolCall: { FILE: web/src/app/craft/v1/configure/components/ComingSoonConnectors.tsx constant COMING_SOON_CONNECTORS (line 20) | const COMING_SOON_CONNECTORS: ValidSources[] = [ function ComingSoonConnectors (line 64) | function ComingSoonConnectors() { FILE: web/src/app/craft/v1/configure/components/ConfigureConnectorModal.tsx type ModalStep (line 19) | type ModalStep = "credential" | "configure"; function connectorNeedsCredentials (line 21) | function connectorNeedsCredentials(connectorType: ValidSources): boolean { function connectorNeedsConfigStep (line 25) | function connectorNeedsConfigStep(connectorType: ValidSources): boolean { type ConfigureConnectorModalProps (line 38) | interface ConfigureConnectorModalProps { function ConfigureConnectorModal (line 46) | function ConfigureConnectorModal({ FILE: web/src/app/craft/v1/configure/components/ConfigureOverlays.tsx type ConnectorInfoOverlayProps (line 6) | interface ConnectorInfoOverlayProps { function ConnectorInfoOverlay (line 10) | function ConnectorInfoOverlay({ visible }: ConnectorInfoOverlayProps) { type ReprovisionWarningOverlayProps (line 30) | interface ReprovisionWarningOverlayProps { function ReprovisionWarningOverlay (line 36) | function ReprovisionWarningOverlay({ FILE: web/src/app/craft/v1/configure/components/ConnectorCard.tsx type ConnectorStatus (line 15) | type ConnectorStatus = type BuildConnectorConfig (line 23) | interface BuildConnectorConfig { type ConnectorCardProps (line 35) | interface ConnectorCardProps { function getStatusText (line 42) | function getStatusText(status: ConnectorStatus, docsIndexed: number): st... function ConnectorCard (line 64) | function ConnectorCard({ FILE: web/src/app/craft/v1/configure/components/ConnectorConfigStep.tsx type ConnectorConfigStepProps (line 20) | interface ConnectorConfigStepProps { function ConnectorConfigForm (line 27) | function ConnectorConfigForm({ function getUserIdentifier (line 114) | function getUserIdentifier(email?: string): string { function ConnectorConfigStep (line 120) | function ConnectorConfigStep({ FILE: web/src/app/craft/v1/configure/components/CreateCredentialInline.tsx type CreateCredentialInlineProps (line 19) | interface CreateCredentialInlineProps { function CreateCredentialInline (line 25) | function CreateCredentialInline({ FILE: web/src/app/craft/v1/configure/components/CredentialStep.tsx type CredentialStepProps (line 39) | interface CredentialStepProps { function CredentialStep (line 53) | function CredentialStep({ FILE: web/src/app/craft/v1/configure/components/DemoDataConfirmModal.tsx type DemoDataConfirmModalProps (line 5) | interface DemoDataConfirmModalProps { function DemoDataConfirmModal (line 12) | function DemoDataConfirmModal({ FILE: web/src/app/craft/v1/configure/components/RequestConnectorModal.tsx type RequestConnectorModalProps (line 8) | interface RequestConnectorModalProps { function RequestConnectorModal (line 13) | function RequestConnectorModal({ FILE: web/src/app/craft/v1/configure/components/UserLibraryModal.tsx function buildTreeFromFlatList (line 39) | function buildTreeFromFlatList(flatList: LibraryEntry[]): LibraryEntry[] { type UserLibraryModalProps (line 71) | interface UserLibraryModalProps { function UserLibraryModal (line 77) | function UserLibraryModal({ type LibraryTreeViewProps (line 398) | interface LibraryTreeViewProps { function LibraryTreeView (line 409) | function LibraryTreeView({ FILE: web/src/app/craft/v1/configure/page.tsx constant BUILD_CONNECTORS (line 62) | const BUILD_CONNECTORS: ValidSources[] = [ type SelectedConnectorState (line 75) | interface SelectedConnectorState { function BuildConfigPage (line 86) | function BuildConfigPage() { FILE: web/src/app/craft/v1/configure/utils/createBuildConnector.ts type CreateBuildConnectorParams (line 7) | interface CreateBuildConnectorParams { type CreateBuildConnectorResult (line 15) | interface CreateBuildConnectorResult { function getUserIdentifier (line 21) | function getUserIdentifier(email?: string): string { function createBuildConnector (line 29) | async function createBuildConnector({ FILE: web/src/app/craft/v1/constants.ts constant CRAFT_PATH (line 3) | const CRAFT_PATH = "/craft/v1"; constant CRAFT_CONFIGURE_PATH (line 4) | const CRAFT_CONFIGURE_PATH = `${CRAFT_PATH}/configure`; constant CRAFT_OAUTH_COOKIE_NAME (line 5) | const CRAFT_OAUTH_COOKIE_NAME = "build_mode_oauth"; constant OAUTH_STATE_KEY (line 6) | const OAUTH_STATE_KEY = "build_oauth_state"; constant CRAFT_DEMO_DATA_COOKIE_NAME (line 7) | const CRAFT_DEMO_DATA_COOKIE_NAME = "build_demo_data_enabled"; constant ONYX_CRAFT_CALENDAR_URL (line 8) | const ONYX_CRAFT_CALENDAR_URL = "https://cal.com/team/onyx/onyx-craft"; function getDemoDataEnabled (line 15) | function getDemoDataEnabled(): boolean { function setDemoDataCookie (line 25) | function setDemoDataCookie(enabled: boolean): void { FILE: web/src/app/craft/v1/layout.tsx function Layout (line 16) | function Layout({ children }: { children: React.ReactNode }) { FILE: web/src/app/craft/v1/page.tsx function BuildV1Page (line 21) | function BuildV1Page() { FILE: web/src/app/ee/EEFeatureRedirect.tsx function EEFeatureRedirect (line 7) | function EEFeatureRedirect() { FILE: web/src/app/ee/admin/billing/BillingAlerts.tsx function BillingAlerts (line 6) | function BillingAlerts({ FILE: web/src/app/ee/admin/billing/BillingInformationPage.tsx function BillingInformationPage (line 22) | function BillingInformationPage() { FILE: web/src/app/ee/admin/billing/InfoItem.tsx type InfoItemProps (line 3) | interface InfoItemProps { function InfoItem (line 8) | function InfoItem({ title, value }: InfoItemProps) { FILE: web/src/app/ee/admin/billing/SubscriptionSummary.tsx type SubscriptionSummaryProps (line 6) | interface SubscriptionSummaryProps { function SubscriptionSummary (line 10) | function SubscriptionSummary({ FILE: web/src/app/ee/admin/billing/page.tsx type BillingInformation (line 5) | interface BillingInformation { function page (line 19) | function page() { FILE: web/src/app/ee/admin/groups/[id]/page.tsx function EditGroupRoute (line 6) | function EditGroupRoute({ FILE: web/src/app/ee/admin/layout.tsx type AdminLayoutProps (line 3) | interface AdminLayoutProps { function AdminLayout (line 7) | async function AdminLayout({ children }: AdminLayoutProps) { FILE: web/src/app/ee/admin/performance/custom-analytics/CustomAnalyticsUpdateForm.tsx function CustomAnalyticsUpdateForm (line 13) | function CustomAnalyticsUpdateForm() { FILE: web/src/app/ee/admin/performance/custom-analytics/page.tsx function Main (line 11) | function Main() { function Page (line 40) | function Page() { FILE: web/src/app/ee/admin/performance/lib.ts function getDatesList (line 62) | function getDatesList(startDate: Date): string[] { type PersonaMessageAnalytics (line 76) | interface PersonaMessageAnalytics { type PersonaSnapshot (line 82) | interface PersonaSnapshot { type PersonaUniqueUserAnalytics (line 113) | interface PersonaUniqueUserAnalytics { FILE: web/src/app/ee/admin/performance/query-history/FeedbackBadge.tsx function FeedbackBadge (line 4) | function FeedbackBadge({ FILE: web/src/app/ee/admin/performance/query-history/KickoffCSVExport.tsx function KickoffCSVExport (line 20) | function KickoffCSVExport({ FILE: web/src/app/ee/admin/performance/query-history/QueryHistoryTable.tsx function QueryHistoryTableRow (line 54) | function QueryHistoryTableRow({ function SelectFeedbackType (line 97) | function SelectFeedbackType({ function ExportBadge (line 134) | function ExportBadge({ status }: { status: TaskStatus }) { function PreviousQueryHistoryExportsModal (line 143) | function PreviousQueryHistoryExportsModal({ function QueryHistoryTable (line 248) | function QueryHistoryTable() { FILE: web/src/app/ee/admin/performance/query-history/[id]/page.tsx function MessageDisplay (line 20) | function MessageDisplay({ message }: { message: MessageSnapshot }) { function QueryPage (line 69) | function QueryPage(props: { params: Promise<{ id: string }> }) { FILE: web/src/app/ee/admin/performance/query-history/constants.ts constant LIST_QUERY_HISTORY_URL (line 1) | const LIST_QUERY_HISTORY_URL = "/api/admin/query-history/list"; constant START_QUERY_HISTORY_EXPORT_URL (line 2) | const START_QUERY_HISTORY_EXPORT_URL = constant CHECK_QUERY_HISTORY_EXPORT_STATUS_URL (line 4) | const CHECK_QUERY_HISTORY_EXPORT_STATUS_URL = constant DOWNLOAD_QUERY_HISTORY_URL (line 6) | const DOWNLOAD_QUERY_HISTORY_URL = "/api/admin/query-history/download"; constant MAX_RETRIES (line 7) | const MAX_RETRIES = 10; constant RETRY_COOLDOWN_MILLISECONDS (line 8) | const RETRY_COOLDOWN_MILLISECONDS = 200; constant ITEMS_PER_PAGE (line 10) | const ITEMS_PER_PAGE = 20; constant PAGES_PER_BATCH (line 11) | const PAGES_PER_BATCH = 2; constant NUM_IN_PAGE (line 12) | const NUM_IN_PAGE = 10; constant PREVIOUS_CSV_TASK_BUTTON_NAME (line 14) | const PREVIOUS_CSV_TASK_BUTTON_NAME = "View Exports"; FILE: web/src/app/ee/admin/performance/query-history/page.tsx function QueryHistoryPage (line 9) | function QueryHistoryPage() { FILE: web/src/app/ee/admin/performance/query-history/types.ts type TaskQueueState (line 3) | interface TaskQueueState { type StartQueryHistoryExportResponse (line 11) | type StartQueryHistoryExportResponse = { request_id: string }; type CheckQueryHistoryExportStatusResponse (line 13) | type CheckQueryHistoryExportStatusResponse = { type SpinnerStatus (line 20) | type SpinnerStatus = "static" | "spinning"; FILE: web/src/app/ee/admin/performance/usage/FeedbackChart.tsx function FeedbackChart (line 10) | function FeedbackChart({ FILE: web/src/app/ee/admin/performance/usage/OnyxBotChart.tsx function OnyxBotChart (line 9) | function OnyxBotChart({ FILE: web/src/app/ee/admin/performance/usage/PersonaMessagesChart.tsx function PersonaMessagesChart (line 23) | function PersonaMessagesChart({ FILE: web/src/app/ee/admin/performance/usage/QueryPerformanceChart.tsx function QueryPerformanceChart (line 11) | function QueryPerformanceChart({ FILE: web/src/app/ee/admin/performance/usage/UsageReports.tsx function GenerateReportInput (line 37) | function GenerateReportInput({ constant USAGE_REPORT_URL (line 227) | const USAGE_REPORT_URL = SWR_KEYS.usageReport; function UsageReportsTable (line 229) | function UsageReportsTable({ function UsageReports (line 360) | function UsageReports() { FILE: web/src/app/ee/admin/performance/usage/page.tsx function AnalyticsPage (line 17) | function AnalyticsPage() { FILE: web/src/app/ee/admin/performance/usage/types.ts type QueryAnalytics (line 3) | interface QueryAnalytics { type UserAnalytics (line 10) | interface UserAnalytics { type OnyxBotAnalytics (line 15) | interface OnyxBotAnalytics { type AbridgedSearchDoc (line 21) | interface AbridgedSearchDoc { type MessageSnapshot (line 27) | interface MessageSnapshot { type ChatSessionSnapshot (line 37) | interface ChatSessionSnapshot { type ChatSessionMinimal (line 48) | interface ChatSessionMinimal { type UsageReport (line 62) | interface UsageReport { FILE: web/src/app/ee/admin/standard-answer/StandardAnswerCreationForm.tsx function mapKeywordSelectToMatchAny (line 25) | function mapKeywordSelectToMatchAny(keywordSelect: "any" | "all"): boole... function mapMatchAnyToKeywordSelect (line 29) | function mapMatchAnyToKeywordSelect(matchAny: boolean): "any" | "all" { FILE: web/src/app/ee/admin/standard-answer/[id]/page.tsx function Main (line 10) | async function Main({ id }: { id: string }) { function Page (line 79) | async function Page(props: { params: Promise<{ id: string }> }) { FILE: web/src/app/ee/admin/standard-answer/lib.ts type StandardAnswerCategoryCreationRequest (line 1) | interface StandardAnswerCategoryCreationRequest { type StandardAnswerCreationRequest (line 5) | interface StandardAnswerCreationRequest { FILE: web/src/app/ee/admin/standard-answer/new/page.tsx function Page (line 10) | async function Page() { FILE: web/src/app/ee/admin/standard-answer/page.tsx constant NUM_RESULTS_PER_PAGE (line 36) | const NUM_RESULTS_PER_PAGE = 10; type Displayable (line 40) | type Displayable = JSX.Element | string; function Main (line 349) | function Main() { function Page (line 423) | function Page() { FILE: web/src/app/ee/admin/theme/AppearanceThemeSettings.tsx type AppearanceThemeSettingsProps (line 25) | interface AppearanceThemeSettingsProps { type AppearanceThemeSettingsRef (line 40) | interface AppearanceThemeSettingsRef { FILE: web/src/app/ee/admin/theme/Preview.tsx type PreviewHighlightTarget (line 51) | type PreviewHighlightTarget = type PreviewProps (line 57) | interface PreviewProps { function PreviewLogo (line 68) | function PreviewLogo({ function InputPreview (line 95) | function InputPreview() { function PreviewStart (line 103) | function PreviewStart({ function PreviewChat (line 186) | function PreviewChat({ function Preview (line 256) | function Preview({ FILE: web/src/app/ee/admin/theme/page.tsx constant CHAR_LIMITS (line 21) | const CHAR_LIMITS = { function ThemePage (line 31) | function ThemePage() { FILE: web/src/app/ee/agents/stats/[id]/AgentStats.tsx type AgentDailyUsageEntry (line 15) | type AgentDailyUsageEntry = { type AgentStatsResponse (line 21) | type AgentStatsResponse = { function AgentStats (line 27) | function AgentStats({ agentId }: { agentId: number }) { FILE: web/src/app/ee/agents/stats/[id]/page.tsx function GalleryPage (line 9) | async function GalleryPage(props: { FILE: web/src/app/ee/layout.tsx function AdminLayout (line 5) | async function AdminLayout({ FILE: web/src/app/federated/oauth/callback/page.tsx function FederatedOAuthCallbackPage (line 6) | function FederatedOAuthCallbackPage() { FILE: web/src/app/global-error.tsx function GlobalError (line 8) | function GlobalError({ FILE: web/src/app/layout.tsx function RootLayout (line 63) | function RootLayout({ FILE: web/src/app/mcp/[[...path]]/route.ts type RouteContext (line 4) | type RouteContext = { type Handler (line 101) | type Handler = ( constant GET (line 108) | const GET = handler; constant POST (line 109) | const POST = handler; constant PUT (line 110) | const PUT = handler; constant PATCH (line 111) | const PATCH = handler; constant DELETE (line 112) | const DELETE = handler; constant HEAD (line 113) | const HEAD = handler; constant OPTIONS (line 114) | const OPTIONS = handler; FILE: web/src/app/mcp/oauth/callback/page.tsx function MCPOAuthCallbackPage (line 5) | function MCPOAuthCallbackPage() { FILE: web/src/app/not-found.tsx function NotFound (line 3) | function NotFound() { FILE: web/src/app/nrf/(main)/layout.tsx type LayoutProps (line 5) | interface LayoutProps { function Layout (line 15) | async function Layout({ children }: LayoutProps) { FILE: web/src/app/nrf/(main)/page.tsx function Page (line 19) | async function Page() { FILE: web/src/app/nrf/NRFChrome.tsx function NRFChrome (line 59) | function NRFChrome() { FILE: web/src/app/nrf/NRFPage.tsx type NRFPageProps (line 51) | interface NRFPageProps { constant AVAILABLE_CONTEXT_TOKENS (line 56) | const AVAILABLE_CONTEXT_TOKENS = Number(DEFAULT_CONTEXT_TOKENS) * 0.5; function NRFPage (line 58) | function NRFPage({ isSidePanel = false }: NRFPageProps) { FILE: web/src/app/nrf/layout.tsx type LayoutProps (line 4) | interface LayoutProps { function Layout (line 14) | function Layout({ children }: LayoutProps) { FILE: web/src/app/nrf/side-panel/SidePanelHeader.tsx type SidePanelHeaderProps (line 7) | interface SidePanelHeaderProps { function SidePanelHeader (line 12) | function SidePanelHeader({ FILE: web/src/app/nrf/side-panel/page.tsx function Page (line 13) | async function Page() { FILE: web/src/app/oauth-config/callback/page.tsx function OAuthConfigCallbackPage (line 3) | function OAuthConfigCallbackPage() { FILE: web/src/app/page.tsx function Page (line 3) | async function Page() { FILE: web/src/app/providers.tsx type PHProviderProps (line 8) | type PHProviderProps = { children: React.ReactNode }; function PHProvider (line 10) | function PHProvider({ children }: PHProviderProps) { FILE: web/src/app/web-vitals.tsx function WebVitals (line 5) | function WebVitals() { FILE: web/src/ce.tsx function Invisible (line 10) | function Invisible({ children }: { children?: ReactNode }) { function eeGated (line 24) | function eeGated

( FILE: web/src/components/AdvancedOptionsToggle.tsx type AdvancedOptionsToggleProps (line 4) | interface AdvancedOptionsToggleProps { function AdvancedOptionsToggle (line 10) | function AdvancedOptionsToggle({ FILE: web/src/components/AgentsMultiSelect.tsx type AgentsMultiSelectFormType (line 4) | type AgentsMultiSelectFormType = { type Agent (line 8) | interface Agent { type AgentsMultiSelectProps (line 14) | interface AgentsMultiSelectProps { function AgentsMultiSelect (line 25) | function AgentsMultiSelect({ FILE: web/src/components/BasicClickable.tsx function BasicClickable (line 3) | function BasicClickable({ function EmphasizedClickable (line 42) | function EmphasizedClickable({ function BasicSelectable (line 82) | function BasicSelectable({ FILE: web/src/components/Bubble.tsx function Bubble (line 4) | function Bubble({ FILE: web/src/components/CollapsibleCard.tsx type CollapsibleCardProps (line 10) | interface CollapsibleCardProps { function CollapsibleCard (line 20) | function CollapsibleCard({ FILE: web/src/components/ConnectorMultiSelect.tsx type ConnectorMultiSelectProps (line 13) | interface ConnectorMultiSelectProps { FILE: web/src/components/DeleteButton.tsx type DeleteButtonProps (line 4) | interface DeleteButtonProps { function DeleteButton (line 9) | function DeleteButton({ onClick, disabled }: DeleteButtonProps) { FILE: web/src/components/Dropdown.tsx type Option (line 7) | interface Option { type StringOrNumberOption (line 17) | type StringOrNumberOption = Option; function DefaultDropdownElement (line 65) | function DefaultDropdownElement({ type DefaultDropdownProps (line 133) | type DefaultDropdownProps = { FILE: web/src/components/EditableStringFieldDisplay.tsx type EditableStringFieldDisplayProps (line 7) | interface EditableStringFieldDisplayProps { function EditableStringFieldDisplay (line 15) | function EditableStringFieldDisplay({ FILE: web/src/components/EditableValue.tsx function EditableValue (line 7) | function EditableValue({ FILE: web/src/components/ErrorCallout.tsx function ErrorCallout (line 4) | function ErrorCallout({ FILE: web/src/components/FederatedConnectorSelector.tsx type FederatedConnectorSelectorProps (line 15) | interface FederatedConnectorSelectorProps { FILE: web/src/components/Field.tsx function SectionHeader (line 50) | function SectionHeader({ function Label (line 58) | function Label({ function LabelWithTooltip (line 81) | function LabelWithTooltip({ function SubLabel (line 96) | function SubLabel({ children }: { children: string | JSX.Element }) { function ManualErrorMessage (line 123) | function ManualErrorMessage({ children }: { children: string }) { function ExplanationText (line 127) | function ExplanationText({ function ToolTipDetails (line 149) | function ToolTipDetails({ children }: { children: string }) { function TextFormField (line 209) | function TextFormField({ function FileUploadFormField (line 395) | function FileUploadFormField({ function TypedFileUploadFormField (line 428) | function TypedFileUploadFormField({ function MultiSelectField (line 544) | function MultiSelectField({ type MarkdownPreviewProps (line 615) | interface MarkdownPreviewProps { type BooleanFormFieldProps (line 686) | interface BooleanFormFieldProps { type TextArrayFieldProps (line 793) | interface TextArrayFieldProps { function TextArrayField (line 805) | function TextArrayField({ type TextArrayFieldBuilderProps (line 894) | interface TextArrayFieldBuilderProps { function TextArrayFieldBuilder (line 902) | function TextArrayFieldBuilder( type SelectorFormFieldProps (line 911) | interface SelectorFormFieldProps { function SelectorFormField (line 928) | function SelectorFormField({ type DatePickerFieldProps (line 1048) | interface DatePickerFieldProps { function DatePickerField (line 1056) | function DatePickerField({ type TextAreaFieldProps (line 1078) | interface TextAreaFieldProps extends InputTextAreaProps { function TextAreaField (line 1082) | function TextAreaField(props: TextAreaFieldProps) { FILE: web/src/components/FormErrorHelpers.tsx function FormErrorFocus (line 7) | function FormErrorFocus() { FILE: web/src/components/GatedContentWrapper.tsx constant ALLOWED_GATED_PATHS (line 7) | const ALLOWED_GATED_PATHS = ["/admin/billing", "/admin/users"]; function isPathAllowed (line 13) | function isPathAllowed(pathname: string): boolean { function GatedContentWrapper (line 20) | function GatedContentWrapper({ FILE: web/src/components/GenericMultiSelect.tsx type GenericMultiSelectFormType (line 7) | type GenericMultiSelectFormType = { type GenericItem (line 11) | interface GenericItem { type GenericMultiSelectProps (line 16) | interface GenericMultiSelectProps< function GenericMultiSelect (line 32) | function GenericMultiSelect< FILE: web/src/components/GroupsMultiSelect.tsx type GroupsMultiSelectFormType (line 7) | type GroupsMultiSelectFormType = { type GroupsMultiSelectProps (line 11) | interface GroupsMultiSelectProps { function GroupsMultiSelect (line 19) | function GroupsMultiSelect({ FILE: web/src/components/HoverPopup.tsx type HoverPopupProps (line 9) | interface HoverPopupProps { FILE: web/src/components/IsPublicGroupSelector.tsx type IsPublicGroupSelectorFormType (line 10) | type IsPublicGroupSelectorFormType = { FILE: web/src/components/Loading.tsx type LoadingAnimationProps (line 8) | interface LoadingAnimationProps { FILE: web/src/components/MetadataBadge.tsx function MetadataBadge (line 3) | function MetadataBadge({ FILE: web/src/components/MultiSelectDropdown.tsx type Option (line 7) | interface Option { type MultiSelectDropdownProps (line 12) | interface MultiSelectDropdownProps { FILE: web/src/components/NonSelectableConnectors.tsx type NonSelectableConnectorsProps (line 6) | interface NonSelectableConnectorsProps { FILE: web/src/components/OnyxInitializingLoader.tsx function OnyxInitializingLoader (line 7) | function OnyxInitializingLoader() { FILE: web/src/components/PageSelector.tsx constant PAGINATION_OPTIONS_ON_EACH_SIDE (line 3) | const PAGINATION_OPTIONS_ON_EACH_SIDE = 2; type PageLinkProps (line 41) | type PageLinkProps = { type PageSelectorProps (line 83) | interface PageSelectorProps { FILE: web/src/components/RichTextSubtext.tsx type RichTextSubtextProps (line 3) | interface RichTextSubtextProps { function RichTextSubtext (line 16) | function RichTextSubtext({ FILE: web/src/components/SSRAutoRefresh.tsx function InstantSSRAutoRefresh (line 23) | function InstantSSRAutoRefresh() { FILE: web/src/components/SearchResultIcon.tsx constant CACHE_DURATION (line 8) | const CACHE_DURATION = 24 * 60 * 60 * 1000; function getFaviconUrl (line 10) | async function getFaviconUrl(url: string): Promise { function SearchResultIcon (line 39) | function SearchResultIcon({ url }: { url: string }) { FILE: web/src/components/SourceIcon.tsx type SourceIconProps (line 6) | interface SourceIconProps { function SourceIcon (line 11) | function SourceIcon({ sourceType, iconSize }: SourceIconProps) { FILE: web/src/components/SourceTile.tsx type SourceTileProps (line 8) | interface SourceTileProps { function SourceTile (line 15) | function SourceTile({ FILE: web/src/components/Status.tsx function IndexAttemptStatus (line 19) | function IndexAttemptStatus({ function PermissionSyncStatus (line 90) | function PermissionSyncStatus({ function CCPairStatus (line 149) | function CCPairStatus({ FILE: web/src/components/WebResultIcon.tsx function WebResultIcon (line 8) | function WebResultIcon({ FILE: web/src/components/admin/CardSection.tsx type CardSectionProps (line 3) | interface CardSectionProps { function CardSection (line 9) | function CardSection({ children, className }: CardSectionProps) { FILE: web/src/components/admin/ClientLayout.tsx type ClientLayoutProps (line 11) | interface ClientLayoutProps { constant SETTINGS_LAYOUT_PREFIXES (line 20) | const SETTINGS_LAYOUT_PREFIXES = [ function ClientLayout (line 51) | function ClientLayout({ children, enableCloud }: ClientLayoutProps) { FILE: web/src/components/admin/Layout.tsx type LayoutProps (line 8) | interface LayoutProps { function Layout (line 12) | async function Layout({ children }: LayoutProps) { FILE: web/src/components/admin/Title.tsx type AdminPageTitleProps (line 8) | interface AdminPageTitleProps { function AdminPageTitle (line 15) | function AdminPageTitle({ FILE: web/src/components/admin/connectors/AccessTypeForm.tsx function isValidAutoSyncSource (line 15) | function isValidAutoSyncSource( function AccessTypeForm (line 21) | function AccessTypeForm({ FILE: web/src/components/admin/connectors/AccessTypeGroupSelector.tsx function isValidAutoSyncSource (line 17) | function isValidAutoSyncSource( type AccessTypeGroupSelectorFormType (line 26) | type AccessTypeGroupSelectorFormType = { function AccessTypeGroupSelector (line 31) | function AccessTypeGroupSelector({ FILE: web/src/components/admin/connectors/AutoSyncOptions.tsx function AutoSyncOptions (line 6) | function AutoSyncOptions({ FILE: web/src/components/admin/connectors/BasicTable.tsx type Column (line 3) | type Column = { type TableData (line 10) | type TableData = { type BasicTableProps (line 14) | interface BasicTableProps { FILE: web/src/components/admin/connectors/ConnectorDocsLink.tsx function ConnectorDocsLink (line 4) | function ConnectorDocsLink({ FILE: web/src/components/admin/connectors/ConnectorTitle.tsx type ConnectorTitleProps (line 14) | interface ConnectorTitleProps { FILE: web/src/components/admin/connectors/CredentialForm.tsx constant PRIVATE_KEY_FIELD_KEY (line 17) | const PRIVATE_KEY_FIELD_KEY = "private_key"; function submitCredential (line 19) | async function submitCredential( type Props (line 50) | interface Props { function CredentialForm (line 58) | function CredentialForm({ FILE: web/src/components/admin/connectors/FileUpload.tsx type FileUploadProps (line 6) | interface FileUploadProps { FILE: web/src/components/admin/connectors/types.ts type FormBodyBuilder (line 4) | type FormBodyBuilder = ( type RequireAtLeastOne (line 8) | type RequireAtLeastOne = Pick< FILE: web/src/components/admin/federated/FederatedConnectorForm.tsx type FederatedConnectorFormProps (line 39) | interface FederatedConnectorFormProps { type CredentialForm (line 46) | interface CredentialForm { type ConfigForm (line 50) | interface ConfigForm { type FormState (line 54) | interface FormState { function validateCredentials (line 64) | async function validateCredentials( function createFederatedConnector (line 99) | async function createFederatedConnector( function updateFederatedConnector (line 134) | async function updateFederatedConnector( function deleteFederatedConnector (line 168) | async function deleteFederatedConnector( function FederatedConnectorForm (line 193) | function FederatedConnectorForm({ FILE: web/src/components/admin/users/BulkAdd.tsx constant WHITESPACE_SPLIT (line 6) | const WHITESPACE_SPLIT = /\s+/; constant EMAIL_REGEX (line 7) | const EMAIL_REGEX = /[^@]+@[^.]+\.[^.]/; type EmailInviteStatus (line 19) | type EmailInviteStatus = type FormProps (line 25) | interface FormProps { type FormValues (line 30) | interface FormValues { FILE: web/src/components/admin/users/InvitedUserTable.tsx constant USERS_PER_PAGE (line 17) | const USERS_PER_PAGE = 10; type Props (line 19) | interface Props { FILE: web/src/components/admin/users/PendingUsersTable.tsx constant USERS_PER_PAGE (line 19) | const USERS_PER_PAGE = 10; type Props (line 21) | interface Props { FILE: web/src/components/admin/users/ResetPasswordModal.tsx type ResetPasswordModalProps (line 11) | interface ResetPasswordModalProps { function ResetPasswordModal (line 16) | function ResetPasswordModal({ FILE: web/src/components/admin/users/SignedUpUserTable.tsx constant ITEMS_PER_PAGE (line 43) | const ITEMS_PER_PAGE = 10; constant PAGES_PER_BATCH (line 44) | const PAGES_PER_BATCH = 2; type ActionMenuProps (line 46) | interface ActionMenuProps { type SignedUpUserTableProps (line 54) | interface SignedUpUserTableProps { function SignedUpUserTable (line 63) | function SignedUpUserTable({ FILE: web/src/components/admin/users/buttons/UserRoleDropdown.tsx type UserRoleDropdownProps (line 15) | interface UserRoleDropdownProps { function UserRoleDropdown (line 21) | function UserRoleDropdown({ FILE: web/src/components/auth/AuthErrorDisplay.tsx constant ERROR_MESSAGES (line 6) | const ERROR_MESSAGES = { function AuthErrorDisplay (line 10) | function AuthErrorDisplay({ FILE: web/src/components/auth/AuthFlowContainer.tsx function AuthFlowContainer (line 4) | function AuthFlowContainer({ FILE: web/src/components/chat/DynamicBottomSpacer.tsx constant ANCHOR_TOP_OFFSET_PX (line 10) | const ANCHOR_TOP_OFFSET_PX = 16; constant SMOOTH_SCROLL_DURATION_MS (line 13) | const SMOOTH_SCROLL_DURATION_MS = 600; constant CONTENT_SETTLED_DEBOUNCE_MS (line 16) | const CONTENT_SETTLED_DEBOUNCE_MS = 500; type DynamicBottomSpacerProps (line 18) | interface DynamicBottomSpacerProps { FILE: web/src/components/chat/FederatedOAuthModal.tsx type FederatedConnectorOAuthStatus (line 14) | interface FederatedConnectorOAuthStatus { constant MAX_SKIP_COUNT (line 23) | const MAX_SKIP_COUNT = 2; function useFederatedOauthModal (line 25) | function useFederatedOauthModal() { function FederatedOAuthModal (line 103) | function FederatedOAuthModal() { FILE: web/src/components/chat/MCPApiKeyModal.tsx type MCPAuthTemplate (line 10) | interface MCPAuthTemplate { type MCPApiKeyModalProps (line 16) | interface MCPApiKeyModalProps { function MCPApiKeyModal (line 32) | function MCPApiKeyModal({ FILE: web/src/components/chat/MinimalMarkdown.tsx type MinimalMarkdownComponentOverrides (line 16) | type MinimalMarkdownComponentOverrides = Partial; type MinimalMarkdownProps (line 18) | interface MinimalMarkdownProps { function MinimalMarkdown (line 29) | function MinimalMarkdown({ FILE: web/src/components/chat/ProviderContext.tsx type ProviderContextType (line 18) | interface ProviderContextType { constant DEFAULT_LLM_PROVIDER_TEST_COMPLETE_KEY (line 32) | const DEFAULT_LLM_PROVIDER_TEST_COMPLETE_KEY = "defaultLlmProviderTestCo... function checkDefaultLLMProviderTestComplete (line 34) | function checkDefaultLLMProviderTestComplete() { function setDefaultLLMProviderTestComplete (line 41) | function setDefaultLLMProviderTestComplete() { function ProviderContextProvider (line 46) | function ProviderContextProvider({ function useProviderStatus (line 116) | function useProviderStatus() { FILE: web/src/components/chat/ScrollContainerContext.tsx type ScrollContainerContextType (line 11) | interface ScrollContainerContextType { function ScrollContainerProvider (line 22) | function ScrollContainerProvider({ function useScrollContainer (line 52) | function useScrollContainer() { FILE: web/src/components/context/EmbeddingContext.tsx type EmbeddingFormContextType (line 11) | interface EmbeddingFormContextType { FILE: web/src/components/context/FormContext.tsx type FormContextType (line 12) | interface FormContextType { FILE: web/src/components/context/ModalContext.tsx type ModalContextType (line 10) | type ModalContextType = { FILE: web/src/components/context/NRFPreferencesContext.tsx type NRFPreferencesContextValue (line 6) | interface NRFPreferencesContextValue { function useLocalStorageState (line 15) | function useLocalStorageState( function NRFPreferencesProvider (line 37) | function NRFPreferencesProvider({ function useNRFPreferences (line 59) | function useNRFPreferences() { FILE: web/src/components/credentials/CredentialFields.tsx function CredentialSubText (line 3) | function CredentialSubText({ FILE: web/src/components/credentials/CredentialSection.tsx type CredentialSectionProps (line 41) | interface CredentialSectionProps { function CredentialSection (line 47) | function CredentialSection({ FILE: web/src/components/credentials/actions/CreateCredential.tsx type formType (line 48) | type formType = IsPublicGroupSelectorFormType & { function CreateCredential (line 53) | function CreateCredential({ FILE: web/src/components/credentials/actions/CreateStdOAuthCredential.tsx type formType (line 11) | type formType = { function CreateStdOAuthCredential (line 15) | function CreateStdOAuthCredential({ FILE: web/src/components/credentials/actions/CredentialFieldsRenderer.tsx type CredentialFieldsRendererProps (line 17) | interface CredentialFieldsRendererProps { function CredentialFieldsRenderer (line 23) | function CredentialFieldsRenderer({ FILE: web/src/components/credentials/actions/EditCredential.tsx type EditCredentialProps (line 16) | interface EditCredentialProps { function EditCredential (line 26) | function EditCredential({ FILE: web/src/components/credentials/actions/ModifyCredential.tsx type CredentialSelectionTableProps (line 19) | interface CredentialSelectionTableProps { function CredentialSelectionTable (line 28) | function CredentialSelectionTable({ type ModifyCredentialProps (line 153) | interface ModifyCredentialProps { function ModifyCredential (line 172) | function ModifyCredential({ FILE: web/src/components/credentials/lib.ts function createValidationSchema (line 11) | function createValidationSchema(json_values: Record) { function createEditingValidationSchema (line 92) | function createEditingValidationSchema(json_values: dictionaryType) { function createInitialValues (line 110) | function createInitialValues(credential: Credential): formType { FILE: web/src/components/credentials/types.ts type dictionaryType (line 3) | interface dictionaryType { type formType (line 6) | interface formType extends dictionaryType { type ActionType (line 10) | type ActionType = "create" | "createAndSwap"; FILE: web/src/components/dateRangeSelectors/AdminDateRangeSelector.tsx constant THIRTY_DAYS (line 10) | const THIRTY_DAYS = "30d"; type DateRangePickerValue (line 12) | type DateRangePickerValue = DateRange & { type DateRange (line 16) | type DateRange = FILE: web/src/components/dateRangeSelectors/SearchDateRangeSelector.tsx function SearchDateRangeSelector (line 8) | function SearchDateRangeSelector({ FILE: web/src/components/dateRangeSelectors/dateUtils.ts function getXDaysAgo (line 1) | function getXDaysAgo(daysAgo: number) { function convertDateToEndOfDay (line 8) | function convertDateToEndOfDay(date?: Date | null) { function convertDateToStartOfDay (line 18) | function convertDateToStartOfDay(date?: Date | null) { FILE: web/src/components/dev/StatsOverlay.tsx function StatsOverlay (line 12) | function StatsOverlay() { FILE: web/src/components/dev/StatsOverlayLoader.tsx function StatsOverlayLoader (line 9) | function StatsOverlayLoader() { FILE: web/src/components/embedding/CustomEmbeddingModelForm.tsx function CustomEmbeddingModelForm (line 15) | function CustomEmbeddingModelForm({ FILE: web/src/components/embedding/CustomModelForm.tsx function CustomModelForm (line 7) | function CustomModelForm({ FILE: web/src/components/embedding/FailedReIndexAttempts.tsx function FailedReIndexAttempts (line 24) | function FailedReIndexAttempts({ FILE: web/src/components/embedding/ModelSelector.tsx function ModelPreview (line 13) | function ModelPreview({ function ModelOption (line 162) | function ModelOption({ function ModelSelector (line 225) | function ModelSelector({ FILE: web/src/components/embedding/ReindexingProgressTable.tsx function ReindexingProgressTable (line 19) | function ReindexingProgressTable({ FILE: web/src/components/embedding/interfaces.tsx type EmbeddingProvider (line 17) | enum EmbeddingProvider { type CloudEmbeddingProvider (line 26) | interface CloudEmbeddingProvider { type EmbeddingModelDescriptor (line 46) | interface EmbeddingModelDescriptor { type CloudEmbeddingModel (line 63) | interface CloudEmbeddingModel extends EmbeddingModelDescriptor { type HostedEmbeddingModel (line 67) | interface HostedEmbeddingModel extends EmbeddingModelDescriptor { type FullEmbeddingModelResponse (line 73) | interface FullEmbeddingModelResponse { type CloudEmbeddingProviderFull (line 78) | interface CloudEmbeddingProviderFull extends CloudEmbeddingProvider { constant AVAILABLE_MODELS (line 82) | const AVAILABLE_MODELS: HostedEmbeddingModel[] = [ constant LITELLM_CLOUD_PROVIDER (line 156) | const LITELLM_CLOUD_PROVIDER: CloudEmbeddingProvider = { constant AZURE_CLOUD_PROVIDER (line 165) | const AZURE_CLOUD_PROVIDER: CloudEmbeddingProvider = { constant AVAILABLE_CLOUD_PROVIDERS (line 179) | const AVAILABLE_CLOUD_PROVIDERS: CloudEmbeddingProvider[] = [ constant INVALID_OLD_MODEL (line 382) | const INVALID_OLD_MODEL = "thenlper/gte-small"; function checkModelNameIsValid (line 384) | function checkModelNameIsValid( FILE: web/src/components/errorPages/AccessRestrictedPage.tsx function AccessRestricted (line 41) | function AccessRestricted() { FILE: web/src/components/errorPages/CloudErrorPage.tsx function CloudError (line 4) | function CloudError() { FILE: web/src/components/errorPages/ErrorPage.tsx function Error (line 6) | function Error() { FILE: web/src/components/errorPages/ErrorPageLayout.tsx type ErrorPageLayoutProps (line 4) | interface ErrorPageLayoutProps { function ErrorPageLayout (line 8) | function ErrorPageLayout({ children }: ErrorPageLayoutProps) { FILE: web/src/components/filters/SourceSelector.tsx type SourceSelectorProps (line 11) | interface SourceSelectorProps { function SelectedBubble (line 31) | function SelectedBubble({ function HorizontalFilters (line 52) | function HorizontalFilters({ FILE: web/src/components/filters/TimeRangeSelector.tsx function TimeRangeSelector (line 3) | function TimeRangeSelector({ FILE: web/src/components/header/AnnouncementBanner.tsx constant DISMISSED_NOTIFICATION_COOKIE_PREFIX (line 9) | const DISMISSED_NOTIFICATION_COOKIE_PREFIX = "dismissed_notification_"; constant COOKIE_EXPIRY_DAYS (line 10) | const COOKIE_EXPIRY_DAYS = 1; function AnnouncementBanner (line 12) | function AnnouncementBanner() { FILE: web/src/components/header/HeaderTitle.tsx function HeaderTitle (line 5) | function HeaderTitle({ FILE: web/src/components/icons/DynamicFaIcon.tsx type DynamicIconProps (line 5) | interface DynamicIconProps extends IconBaseProps { function preloadIcons (line 23) | async function preloadIcons(iconNames: string[]): Promise { function getPreloadedIcon (line 41) | function getPreloadedIcon(name: string): IconType | undefined { FILE: web/src/components/icons/icons.tsx type IconProps (line 100) | interface IconProps { type LogoIconProps (line 104) | interface LogoIconProps extends IconProps { type OnyxIconType (line 107) | type OnyxIconType = (props: IconProps) => JSX.Element; function createIcon (line 128) | function createIcon( FILE: web/src/components/llm/LLMSelector.tsx type LLMOption (line 10) | interface LLMOption { type LLMSelectorProps (line 22) | interface LLMSelectorProps { function LLMSelector (line 33) | function LLMSelector({ FILE: web/src/components/modals/AddInstructionModal.tsx function AddInstructionModal (line 11) | function AddInstructionModal() { FILE: web/src/components/modals/ConfirmEntityModal.tsx type ConfirmEntityModalProps (line 7) | interface ConfirmEntityModalProps { function ConfirmEntityModal (line 26) | function ConfirmEntityModal({ FILE: web/src/components/modals/CreateProjectModal.tsx type CreateProjectModalProps (line 15) | interface CreateProjectModalProps { function CreateProjectModal (line 19) | function CreateProjectModal({ FILE: web/src/components/modals/EditPropertyModal.tsx type EditPropertyModalProps (line 6) | interface EditPropertyModalProps { function EditPropertyModal (line 16) | function EditPropertyModal({ FILE: web/src/components/modals/GenericConfirmModal.tsx type GenericConfirmModalProps (line 5) | interface GenericConfirmModalProps { function GenericConfirmModal (line 13) | function GenericConfirmModal({ FILE: web/src/components/modals/MoveCustomAgentChatModal.tsx type MoveCustomAgentChatModalProps (line 9) | interface MoveCustomAgentChatModalProps { function MoveCustomAgentChatModal (line 14) | function MoveCustomAgentChatModal({ FILE: web/src/components/modals/NewTeamModal.tsx type TenantByDomainResponse (line 19) | interface TenantByDomainResponse { function NewTeamModal (line 25) | function NewTeamModal() { FILE: web/src/components/modals/NoAgentModal.tsx function NoAgentModal (line 9) | function NoAgentModal() { FILE: web/src/components/modals/ProviderModal.tsx type ProviderModalProps (line 6) | interface ProviderModalProps { function ProviderModal (line 27) | function ProviderModal({ FILE: web/src/components/modals/UserFilesModal.tsx function getIcon (line 30) | function getIcon( function getDescription (line 40) | function getDescription(file: ProjectFile): string { type FileAttachmentProps (line 50) | interface FileAttachmentProps { function FileAttachment (line 58) | function FileAttachment({ type UserFilesModalProps (line 93) | interface UserFilesModalProps { function UserFilesModal (line 108) | function UserFilesModal({ FILE: web/src/components/oauth/OAuthCallbackPage.tsx type OAuthCallbackConfig (line 10) | interface OAuthCallbackConfig { type OAuthCallbackPageProps (line 31) | interface OAuthCallbackPageProps { function OAuthCallbackPage (line 35) | function OAuthCallbackPage({ config }: OAuthCallbackPageProps) { FILE: web/src/components/resizable/constants.ts constant DOCUMENT_SIDEBAR_WIDTH_COOKIE_NAME (line 1) | const DOCUMENT_SIDEBAR_WIDTH_COOKIE_NAME = "documentSidebarWidth"; constant SIDEBAR_TOGGLED_COOKIE_NAME (line 2) | const SIDEBAR_TOGGLED_COOKIE_NAME = "sidebarIsToggled"; constant PRO_SEARCH_TOGGLED_COOKIE_NAME (line 3) | const PRO_SEARCH_TOGGLED_COOKIE_NAME = "proSearchIsToggled"; FILE: web/src/components/search/DocumentDisplay.tsx type CompactDocumentCardProps (line 124) | interface CompactDocumentCardProps { function CompactDocumentCard (line 129) | function CompactDocumentCard({ type CompactQuestionCardProps (line 182) | interface CompactQuestionCardProps { function CompactQuestionCard (line 187) | function CompactQuestionCard({ FILE: web/src/components/search/DocumentFeedbackBlock.tsx type DocumentFeedbackType (line 5) | type DocumentFeedbackType = "endorse" | "reject" | "hide" | "unhide"; type DocumentFeedbackIconProps (line 31) | interface DocumentFeedbackIconProps { type DocumentFeedbackBlockProps (line 89) | interface DocumentFeedbackBlockProps { FILE: web/src/components/search/DocumentUpdatedAtBadge.tsx function DocumentUpdatedAtBadge (line 4) | function DocumentUpdatedAtBadge({ FILE: web/src/components/search/filtering/FilterDropdown.tsx type Option (line 5) | interface Option { function FilterDropdown (line 11) | function FilterDropdown({ FILE: web/src/components/search/results/Citation.tsx constant MAX_CITATION_TEXT_LENGTH (line 20) | const MAX_CITATION_TEXT_LENGTH = 40; type DocumentCardProps (line 22) | interface DocumentCardProps { type QuestionCardProps (line 27) | interface QuestionCardProps { function truncateText (line 32) | function truncateText(str: string, maxLength: number) { function Citation (line 37) | function Citation({ FILE: web/src/components/search/results/ResponseSection.tsx type StatusOptions (line 4) | type StatusOptions = "in-progress" | "failed" | "warning" | "success"; type ResponseSectionProps (line 6) | interface ResponseSectionProps { FILE: web/src/components/settings/lib.ts type SettingsError (line 16) | enum SettingsError { function fetchStandardSettingsSS (line 20) | async function fetchStandardSettingsSS() { function fetchEnterpriseSettingsSS (line 24) | async function fetchEnterpriseSettingsSS() { function fetchCustomAnalyticsScriptSS (line 28) | async function fetchCustomAnalyticsScriptSS() { function fetchSettingsSS (line 32) | async function fetchSettingsSS(): Promise { FILE: web/src/components/settings/usePaidEnterpriseFeaturesEnabled.ts function usePaidEnterpriseFeaturesEnabled (line 17) | function usePaidEnterpriseFeaturesEnabled(): boolean { FILE: web/src/components/sidebar/ChatSessionMorePopup.tsx constant DEFAULT_PERSONA_ID (line 23) | const DEFAULT_PERSONA_ID = 0; constant LS_HIDE_MOVE_CUSTOM_AGENT_MODAL_KEY (line 24) | const LS_HIDE_MOVE_CUSTOM_AGENT_MODAL_KEY = "onyx:hideMoveCustomAgentMod... type ChatSessionMorePopupProps (line 26) | interface ChatSessionMorePopupProps { function ChatSessionMorePopup (line 40) | function ChatSessionMorePopup({ FILE: web/src/components/sidebar/types.ts type pageType (line 1) | type pageType = "search" | "chat" | "agents" | "admin" | "shared"; FILE: web/src/components/standardAnswers/StandardAnswerCategoryDropdown.tsx type StandardAnswerCategoryDropdownFieldProps (line 9) | interface StandardAnswerCategoryDropdownFieldProps { FILE: web/src/components/standardAnswers/getStandardAnswerCategoriesIfEE.tsx type StandardAnswerCategoryResponse (line 5) | type StandardAnswerCategoryResponse = type NoEEAvailable (line 9) | interface NoEEAvailable { type EEStandardAnswerCategoryResponse (line 13) | interface EEStandardAnswerCategoryResponse { function getStandardAnswerCategoriesIfEE (line 21) | async function getStandardAnswerCategoriesIfEE(): Promise { FILE: web/src/components/table/DraggableRow.tsx function DraggableRow (line 7) | function DraggableRow({ FILE: web/src/components/table/DraggableTable.tsx function DraggableTable (line 31) | function DraggableTable({ FILE: web/src/components/table/interfaces.ts type Row (line 4) | interface Row { FILE: web/src/components/theme/ThemeProvider.tsx function ThemeProvider (line 6) | function ThemeProvider({ FILE: web/src/components/tools/CSVContent.tsx function parseCSV (line 178) | function parseCSV(text: string): string[][] { FILE: web/src/components/tools/ExpandableContentWrapper.tsx type ExpandableContentWrapperProps (line 12) | interface ExpandableContentWrapperProps { type ContentComponentProps (line 18) | interface ContentComponentProps { function ExpandableContentWrapper (line 23) | function ExpandableContentWrapper({ FILE: web/src/components/ui/RadioGroupItemField.tsx type RadioGroupItemFieldProps (line 4) | interface RadioGroupItemFieldProps { FILE: web/src/components/ui/areaChart.tsx type AreaChartProps (line 22) | interface AreaChartProps { function AreaChartDisplay (line 43) | function AreaChartDisplay({ FILE: web/src/components/ui/badge.tsx type BadgeProps (line 51) | interface BadgeProps function Badge (line 55) | function Badge({ FILE: web/src/components/ui/callout.tsx type CalloutProps (line 3) | interface CalloutProps { function Callout (line 9) | function Callout({ FILE: web/src/components/ui/dropdown-menu-with-tooltip.tsx type DropdownMenuItemWithTooltipProps (line 8) | interface DropdownMenuItemWithTooltipProps FILE: web/src/components/ui/input.tsx type InputProps (line 5) | interface InputProps extends React.ComponentProps<"input"> { FILE: web/src/components/ui/title.tsx function Title (line 3) | function Title({ FILE: web/src/components/ui/tooltip.tsx type TooltipSize (line 28) | type TooltipSize = "sm" | "md" | "lg"; FILE: web/src/components/voice/Waveform.tsx constant RECORDING_BAR_COUNT (line 15) | const RECORDING_BAR_COUNT = 120; constant MIN_BAR_HEIGHT (line 16) | const MIN_BAR_HEIGHT = 2; constant MAX_BAR_HEIGHT (line 17) | const MAX_BAR_HEIGHT = 16; constant SPEAKING_BAR_COUNT (line 20) | const SPEAKING_BAR_COUNT = 28; type WaveformProps (line 22) | interface WaveformProps { function Waveform (line 35) | function Waveform({ FILE: web/src/ee/hooks/useHookExecutionLogs.ts constant ONE_HOUR_MS (line 5) | const ONE_HOUR_MS = 60 * 60 * 1000; constant THIRTY_DAYS_MS (line 6) | const THIRTY_DAYS_MS = 30 * 24 * 60 * 60 * 1000; type UseHookExecutionLogsResult (line 8) | interface UseHookExecutionLogsResult { function useHookExecutionLogs (line 16) | function useHookExecutionLogs( FILE: web/src/ee/hooks/useHookSpecs.ts function useHookSpecs (line 8) | function useHookSpecs() { FILE: web/src/ee/hooks/useHooks.ts function useHooks (line 8) | function useHooks() { FILE: web/src/ee/lib/search/svc.ts function classifyQuery (line 17) | async function classifyQuery( function searchDocuments (line 40) | async function searchDocuments( function fetchSearchHistory (line 74) | async function fetchSearchHistory(options?: { FILE: web/src/ee/providers/QueryControllerProvider.tsx type QueryControllerProviderProps (line 22) | interface QueryControllerProviderProps { function QueryControllerProvider (line 26) | function QueryControllerProvider({ FILE: web/src/ee/refresh-pages/admin/HooksPage/HookFormModal.tsx type HookFormModalProps (line 40) | interface HookFormModalProps { constant MAX_TIMEOUT_SECONDS (line 53) | const MAX_TIMEOUT_SECONDS = 600; constant SOFT_DESCRIPTION (line 55) | const SOFT_DESCRIPTION = function buildInitialValues (line 58) | function buildInitialValues( function buildValidationSchema (line 80) | function buildValidationSchema(isEdit: boolean) { type TimeoutFieldProps (line 104) | interface TimeoutFieldProps { function TimeoutField (line 108) | function TimeoutField({ spec }: TimeoutFieldProps) { function HookFormModal (line 154) | function HookFormModal({ FILE: web/src/ee/refresh-pages/admin/HooksPage/HookLogsModal.tsx type HookLogsModalProps (line 19) | interface HookLogsModalProps { function SectionHeader (line 27) | function SectionHeader({ label }: { label: string }) { function LogRow (line 43) | function LogRow({ log }: { log: HookExecutionRecord }) { function HookLogsModal (line 73) | function HookLogsModal({ hook, spec }: HookLogsModalProps) { FILE: web/src/ee/refresh-pages/admin/HooksPage/HookStatusPopover.tsx type HookStatusPopoverProps (line 29) | interface HookStatusPopoverProps { function HookStatusPopover (line 35) | function HookStatusPopover({ FILE: web/src/ee/refresh-pages/admin/HooksPage/index.tsx constant HOOK_POINT_ICONS (line 54) | const HOOK_POINT_ICONS: Record = { function getHookPointIcon (line 59) | function getHookPointIcon(hookPoint: string): IconFunctionComponent { type DisconnectConfirmModalProps (line 67) | interface DisconnectConfirmModalProps { function DisconnectConfirmModal (line 73) | function DisconnectConfirmModal({ type DeleteConfirmModalProps (line 125) | interface DeleteConfirmModalProps { function DeleteConfirmModal (line 130) | function DeleteConfirmModal({ hook, onDelete }: DeleteConfirmModalProps) { type UnconnectedHookCardProps (line 171) | interface UnconnectedHookCardProps { function UnconnectedHookCard (line 176) | function UnconnectedHookCard({ spec, onConnect }: UnconnectedHookCardPro... type ConnectedHookCardProps (line 222) | interface ConnectedHookCardProps { function ConnectedHookCard (line 230) | function ConnectedHookCard({ function HooksPage (line 452) | function HooksPage() { FILE: web/src/ee/refresh-pages/admin/HooksPage/interfaces.ts type HookPoint (line 1) | type HookPoint = string; type HookFailStrategy (line 2) | type HookFailStrategy = "hard" | "soft"; type HookPointMeta (line 4) | interface HookPointMeta { type HookResponse (line 16) | interface HookResponse { type HookFormState (line 32) | interface HookFormState { type HookCreateRequest (line 40) | interface HookCreateRequest { type HookUpdateRequest (line 49) | interface HookUpdateRequest { type HookExecutionRecord (line 57) | interface HookExecutionRecord { type HookValidateStatus (line 64) | type HookValidateStatus = type HookValidateResponse (line 70) | interface HookValidateResponse { FILE: web/src/ee/refresh-pages/admin/HooksPage/svc.ts class HookAuthError (line 9) | class HookAuthError extends Error {} class HookTimeoutError (line 10) | class HookTimeoutError extends Error {} class HookConnectError (line 11) | class HookConnectError extends Error {} function parseError (line 13) | async function parseError(res: Response, fallback: string): Promise { function activateHook (line 70) | async function activateHook(id: number): Promise { function deactivateHook (line 80) | async function deactivateHook(id: number): Promise { function validateHook (line 90) | async function validateHook(id: number): Promise { function fetchExecutionLogs (line 100) | async function fetchExecutionLogs( FILE: web/src/ee/sections/SearchCard.tsx type SearchResultCardProps (line 17) | interface SearchResultCardProps { function SearchCard (line 32) | function SearchCard({ FILE: web/src/ee/sections/SearchUI.tsx type SearchResultsProps (line 37) | interface SearchResultsProps { constant RESULTS_PER_PAGE (line 46) | const RESULTS_PER_PAGE = 20; constant TIME_FILTER_OPTIONS (line 48) | const TIME_FILTER_OPTIONS: { value: TimeFilter; label: string }[] = [ function SearchUI (line 55) | function SearchUI({ onDocumentClick }: SearchResultsProps) { FILE: web/src/hooks/__tests__/useShowOnboarding.test.tsx function renderUseShowOnboarding (line 38) | function renderUseShowOnboarding( FILE: web/src/hooks/appNavigation.ts type UseAppRouterProps (line 8) | interface UseAppRouterProps { function useAppRouter (line 14) | function useAppRouter() { function useAppParams (line 36) | function useAppParams() { FILE: web/src/hooks/formHooks.ts function useOnChangeEvent (line 40) | function useOnChangeEvent( function useOnChangeValue (line 83) | function useOnChangeValue( function useOnBlurEvent (line 117) | function useOnBlurEvent(name: string, f?: (event: T) => void) { FILE: web/src/hooks/useAdminPersonas.ts type UseAdminPersonasOptions (line 8) | interface UseAdminPersonasOptions { type PaginatedPersonasResponse (line 16) | interface PaginatedPersonasResponse { FILE: web/src/hooks/useAdminUsers.ts type FullUserSnapshot (line 19) | interface FullUserSnapshot { function toUserRow (line 37) | function toUserRow(snapshot: FullUserSnapshot): UserRow { function emailToUserRow (line 52) | function emailToUserRow( function useAdminUsers (line 74) | function useAdminUsers() { FILE: web/src/hooks/useAgentController.ts function useAgentController (line 11) | function useAgentController({ FILE: web/src/hooks/useAgentPreferences.ts function useAgentPreferences (line 22) | function useAgentPreferences() { FILE: web/src/hooks/useAgents.ts function useAgents (line 38) | function useAgents() { function useAgent (line 79) | function useAgent(agentId: number | null) { function usePinnedAgents (line 102) | function usePinnedAgents() { function useCurrentAgent (line 179) | function useCurrentAgent(): MinimalPersonaSnapshot | null { FILE: web/src/hooks/useAppFocus.ts type AppFocusType (line 12) | type AppFocusType = class AppFocus (line 19) | class AppFocus { method constructor (line 20) | constructor(public value: AppFocusType) {} method isAgent (line 22) | isAgent(): boolean { method isProject (line 26) | isProject(): boolean { method isChat (line 30) | isChat(): boolean { method isSharedChat (line 34) | isSharedChat(): boolean { method isNewSession (line 38) | isNewSession(): boolean { method isMoreAgents (line 42) | isMoreAgents(): boolean { method isUserSettings (line 46) | isUserSettings(): boolean { method getId (line 50) | getId(): string | null { method getType (line 54) | getType(): function useAppFocus (line 66) | function useAppFocus(): AppFocus { FILE: web/src/hooks/useAuthTypeMetadata.ts type AuthTypeAPIResponse (line 5) | interface AuthTypeAPIResponse { type AuthTypeMetadata (line 14) | interface AuthTypeMetadata { constant DEFAULT_AUTH_TYPE_METADATA (line 24) | const DEFAULT_AUTH_TYPE_METADATA: AuthTypeMetadata = { function fetchAuthTypeMetadata (line 34) | async function fetchAuthTypeMetadata(url: string): Promise { function useChatController (line 130) | function useChatController({ FILE: web/src/hooks/useChatSessionController.ts type UseChatSessionControllerProps (line 34) | interface UseChatSessionControllerProps { type SessionFetchError (line 64) | type SessionFetchError = { function useChatSessionController (line 69) | function useChatSessionController({ FILE: web/src/hooks/useChatSessions.ts constant PAGE_SIZE (line 19) | const PAGE_SIZE = 50; constant MIN_LOADING_DURATION_MS (line 20) | const MIN_LOADING_DURATION_MS = 500; type ChatSessionsResponse (line 22) | interface ChatSessionsResponse { type PendingChatSessionParams (line 27) | interface PendingChatSessionParams { type UseChatSessionsOutput (line 33) | interface UseChatSessionsOutput { method add (line 60) | add(session: ChatSession) { method remove (line 66) | remove(sessionId: string) { method has (line 73) | has(sessionId: string): boolean { method subscribe (line 77) | subscribe(listener: () => void) { method notify (line 82) | notify() { method updateSnapshot (line 86) | updateSnapshot() { method getSnapshot (line 90) | getSnapshot(): ChatSession[] { constant EMPTY_SESSIONS (line 96) | const EMPTY_SESSIONS: ChatSession[] = []; function usePendingSessions (line 98) | function usePendingSessions(): ChatSession[] { function useFindAgentForCurrentChatSession (line 110) | function useFindAgentForCurrentChatSession( function useChatSessions (line 140) | function useChatSessions(): UseChatSessionsOutput { FILE: web/src/hooks/useClickOutside.ts function useClickOutside (line 71) | function useClickOutside( FILE: web/src/hooks/useCloudSubscription.ts function useCloudSubscription (line 12) | function useCloudSubscription(): boolean { FILE: web/src/hooks/useCodeInterpreter.ts constant HEALTH_ENDPOINT (line 4) | const HEALTH_ENDPOINT = "/api/admin/code-interpreter/health"; constant STATUS_ENDPOINT (line 5) | const STATUS_ENDPOINT = "/api/admin/code-interpreter"; type CodeInterpreterHealth (line 7) | interface CodeInterpreterHealth { type CodeInterpreterStatus (line 11) | interface CodeInterpreterStatus { function useCodeInterpreter (line 15) | function useCodeInterpreter() { FILE: web/src/hooks/useContainerCenter.ts constant SELECTOR (line 7) | const SELECTOR = "[data-main-container]"; type ContainerCenter (line 9) | interface ContainerCenter { constant NULL_CENTER (line 15) | const NULL_CENTER = { x: null, y: null } as const; function measure (line 17) | function measure(el: HTMLElement): { x: number; y: number } | null { function useContainerCenter (line 39) | function useContainerCenter(): ContainerCenter { FILE: web/src/hooks/useContentSize.ts type ContentSize (line 5) | interface ContentSize { function useContentSize (line 94) | function useContentSize( FILE: web/src/hooks/useCurrentUser.ts function useCurrentUser (line 24) | function useCurrentUser(): { FILE: web/src/hooks/useDeepResearchToggle.ts type UseDeepResearchToggleProps (line 5) | interface UseDeepResearchToggleProps { function useDeepResearchToggle (line 23) | function useDeepResearchToggle({ FILE: web/src/hooks/useFederatedOAuthStatus.ts function useFederatedOAuthStatus (line 80) | function useFederatedOAuthStatus() { FILE: web/src/hooks/useFeedbackController.ts function useFeedbackController (line 30) | function useFeedbackController() { FILE: web/src/hooks/useFilter.ts function useFilter (line 46) | function useFilter( FILE: web/src/hooks/useGroups.ts function useGroups (line 39) | function useGroups() { FILE: web/src/hooks/useImageDropzone.ts constant ACCEPTED_IMAGE_TYPES (line 6) | const ACCEPTED_IMAGE_TYPES = { type UseImageDropzoneOptions (line 11) | interface UseImageDropzoneOptions { type UseImageDropzoneReturn (line 22) | interface UseImageDropzoneReturn { function useImageDropzone (line 33) | function useImageDropzone({ FILE: web/src/hooks/useIsDefaultAgent.ts function useIsDefaultAgent (line 17) | function useIsDefaultAgent({ FILE: web/src/hooks/useKeyPress.ts function useKeyPress (line 5) | function useKeyPress( function useEscape (line 30) | function useEscape(callback: () => void, enabled: boolean = true) { function useEnter (line 40) | function useEnter(callback: () => void, enabled: boolean = true) { FILE: web/src/hooks/useLLMProviders.ts function useLLMProviders (line 45) | function useLLMProviders(personaId?: number) { function useAdminLLMProviders (line 90) | function useAdminLLMProviders() { function useWellKnownLLMProvider (line 144) | function useWellKnownLLMProvider(providerEndpoint: string | null) { function useWellKnownLLMProviders (line 162) | function useWellKnownLLMProviders() { FILE: web/src/hooks/useLicense.ts function useLicense (line 13) | function useLicense() { FILE: web/src/hooks/useMcpServers.ts function useMcpServers (line 25) | function useMcpServers() { FILE: web/src/hooks/useMcpServersForAgentEditor.ts function useMcpServersForAgentEditor (line 14) | function useMcpServersForAgentEditor() { FILE: web/src/hooks/useMemoryManager.ts type LocalMemory (line 4) | interface LocalMemory { constant MAX_MEMORY_LENGTH (line 10) | const MAX_MEMORY_LENGTH = 200; constant MAX_MEMORY_COUNT (line 11) | const MAX_MEMORY_COUNT = 10; type UseMemoryManagerArgs (line 13) | interface UseMemoryManagerArgs { function useMemoryManager (line 19) | function useMemoryManager({ FILE: web/src/hooks/useOnMount.ts function useOnMount (line 33) | function useOnMount(f?: React.EffectCallback): boolean { FILE: web/src/hooks/useOpenApiTools.ts function useOpenApiTools (line 25) | function useOpenApiTools() { FILE: web/src/hooks/usePaginatedFetch.ts type PaginatedType (line 10) | type PaginatedType = { type PaginatedApiResponse (line 15) | interface PaginatedApiResponse { type PaginationConfig (line 20) | interface PaginationConfig { type PaginatedHookReturnData (line 29) | interface PaginatedHookReturnData { function usePaginatedFetch (line 40) | function usePaginatedFetch({ FILE: web/src/hooks/usePromptShortcuts.ts function usePromptShortcuts (line 8) | function usePromptShortcuts() { FILE: web/src/hooks/useScimToken.ts function useScimToken (line 7) | function useScimToken() { FILE: web/src/hooks/useScreenSize.ts type ScreenSize (line 11) | interface ScreenSize { function useScreenSize (line 19) | function useScreenSize(): ScreenSize { FILE: web/src/hooks/useServerTools.ts type UseServerToolsReturn (line 11) | interface UseServerToolsReturn { function useServerTools (line 70) | function useServerTools( FILE: web/src/hooks/useSettings.ts constant SETTINGS_ERROR_RETRY_INTERVAL (line 14) | const SETTINGS_ERROR_RETRY_INTERVAL = 5_000; constant DEFAULT_SETTINGS (line 16) | const DEFAULT_SETTINGS = { function useSettings (line 30) | function useSettings(): { function useEnterpriseSettings (line 54) | function useEnterpriseSettings(eeEnabledRuntime: boolean): { function useCustomAnalyticsScript (line 89) | function useCustomAnalyticsScript( FILE: web/src/hooks/useShareableGroups.ts type MinimalUserGroupSnapshot (line 9) | interface MinimalUserGroupSnapshot { function useShareableGroups (line 17) | function useShareableGroups() { FILE: web/src/hooks/useShareableUsers.ts type UseShareableUsersParams (line 7) | interface UseShareableUsersParams { function useShareableUsers (line 11) | function useShareableUsers({ FILE: web/src/hooks/useShowOnboarding.ts function getOnboardingCompletedKey (line 19) | function getOnboardingCompletedKey(userId: string): string { function useOnboardingState (line 23) | function useOnboardingState(liveAgent?: MinimalPersonaSnapshot): { type UseShowOnboardingParams (line 255) | interface UseShowOnboardingParams { function useShowOnboarding (line 262) | function useShowOnboarding({ FILE: web/src/hooks/useTags.ts type TagsResponse (line 6) | interface TagsResponse { function useTags (line 20) | function useTags() { FILE: web/src/hooks/useToast.ts type ToastLevel (line 7) | type ToastLevel = "success" | "error" | "warning" | "info" | "default"; type ToastOptions (line 9) | interface ToastOptions { type Toast (line 19) | interface Toast extends ToastOptions { constant MAX_VISIBLE_TOASTS (line 29) | const MAX_VISIBLE_TOASTS = 3; constant DEFAULT_DURATION (line 30) | const DEFAULT_DURATION = 4000; function notify (line 42) | function notify() { function addToast (line 46) | function addToast(options: ToastOptions): string { function removeToast (line 71) | function removeToast(id: string): void { function markLeaving (line 81) | function markLeaving(id: string): void { function clearAll (line 86) | function clearAll(): void { function subscribe (line 93) | function subscribe(cb: () => void): () => void { function getSnapshot (line 100) | function getSnapshot(): Toast[] { type ToastFn (line 108) | interface ToastFn { function toastBase (line 132) | function toastBase(options: ToastOptions): string { function useToast (line 154) | function useToast() { type ToastFromQueryMessages (line 163) | interface ToastFromQueryMessages { function useToastFromQuery (line 174) | function useToastFromQuery(messages: ToastFromQueryMessages) { FILE: web/src/hooks/useTokenRefresh.ts constant REFRESH_INTERVAL (line 11) | const REFRESH_INTERVAL = 600000; function useTokenRefresh (line 14) | function useTokenRefresh( FILE: web/src/hooks/useUserCounts.ts type UserCountsResponse (line 10) | type UserCountsResponse = { type UserCounts (line 15) | type UserCounts = { function useUserCounts (line 24) | function useUserCounts(): UserCounts { FILE: web/src/hooks/useUserPersonalization.ts constant DEFAULT_PERSONALIZATION (line 6) | const DEFAULT_PERSONALIZATION: UserPersonalization = { function derivePersonalizationFromUser (line 15) | function derivePersonalizationFromUser(user: User | null): UserPersonali... type UseUserPersonalizationOptions (line 33) | interface UseUserPersonalizationOptions { function useUserPersonalization (line 95) | function useUserPersonalization( FILE: web/src/hooks/useUsers.ts type UseUsersParams (line 7) | interface UseUsersParams { function useUsers (line 40) | function useUsers({ includeApiKeys }: UseUsersParams) { FILE: web/src/hooks/useVoicePlayback.ts type UseVoicePlaybackReturn (line 5) | interface UseVoicePlaybackReturn { function useVoicePlayback (line 14) | function useVoicePlayback(): UseVoicePlaybackReturn { FILE: web/src/hooks/useVoiceProviders.ts type VoiceProviderView (line 5) | interface VoiceProviderView { function useVoiceProviders (line 18) | function useVoiceProviders() { FILE: web/src/hooks/useVoiceRecorder.ts constant TARGET_SAMPLE_RATE (line 6) | const TARGET_SAMPLE_RATE = 24000; constant CHUNK_INTERVAL_MS (line 7) | const CHUNK_INTERVAL_MS = 250; constant DUPLICATE_FINAL_TRANSCRIPT_WINDOW_MS (line 8) | const DUPLICATE_FINAL_TRANSCRIPT_WINDOW_MS = 1500; constant SILENCE_FALLBACK_TIMEOUT_MS (line 10) | const SILENCE_FALLBACK_TIMEOUT_MS = 10000; type TranscriptMessage (line 12) | interface TranscriptMessage { type UseVoiceRecorderOptions (line 19) | interface UseVoiceRecorderOptions { type UseVoiceRecorderReturn (line 26) | interface UseVoiceRecorderReturn { class VoiceRecorderSession (line 43) | class VoiceRecorderSession { method constructor (line 75) | constructor( method recording (line 93) | get recording(): boolean { method currentTranscript (line 97) | get currentTranscript(): string { method setMuted (line 101) | setMuted(muted: boolean): void { method start (line 109) | async start(): Promise { method stop (line 178) | async stop(): Promise { method cleanup (line 227) | cleanup(): void { method getWebSocketUrl (line 245) | private async getWebSocketUrl(): Promise { method waitForConnection (line 264) | private waitForConnection(): Promise { method resetSilenceFallbackTimer (line 284) | private resetSilenceFallbackTimer(): void { method startSilenceFallbackTimer (line 291) | private startSilenceFallbackTimer(): void { method resetBackendTranscript (line 365) | private resetBackendTranscript(): void { method sendAudioBuffer (line 371) | private sendAudioBuffer(): void { method resampleAudio (line 411) | private resampleAudio(input: Float32Array, inputRate: number): Float32... method float32ToInt16 (line 429) | private float32ToInt16(float32: Float32Array): Int16Array { function useVoiceRecorder (line 442) | function useVoiceRecorder( FILE: web/src/hooks/useVoiceStatus.ts type VoiceStatus (line 5) | interface VoiceStatus { function useVoiceStatus (line 10) | function useVoiceStatus() { FILE: web/src/hooks/useWebSocket.ts type WebSocketStatus (line 3) | type WebSocketStatus = type UseWebSocketOptions (line 9) | interface UseWebSocketOptions { type UseWebSocketReturn (line 24) | interface UseWebSocketReturn { function useWebSocket (line 37) | function useWebSocket({ FILE: web/src/instrumentation.ts function register (line 3) | async function register() { FILE: web/src/interfaces/llm.ts type LLMProviderName (line 6) | enum LLMProviderName { type ModelConfiguration (line 21) | interface ModelConfiguration { type SimpleKnownModel (line 34) | interface SimpleKnownModel { type WellKnownLLMProviderDescriptor (line 39) | interface WellKnownLLMProviderDescriptor { type LLMModelDescriptor (line 45) | interface LLMModelDescriptor { type LLMProviderView (line 51) | interface LLMProviderView { type VisionProvider (line 67) | interface VisionProvider extends LLMProviderView { type LLMProviderDescriptor (line 71) | interface LLMProviderDescriptor { type OllamaModelResponse (line 79) | interface OllamaModelResponse { type OpenRouterModelResponse (line 86) | interface OpenRouterModelResponse { type BedrockModelResponse (line 93) | interface BedrockModelResponse { type LMStudioModelResponse (line 100) | interface LMStudioModelResponse { type DefaultModel (line 108) | interface DefaultModel { type LLMProviderResponse (line 113) | interface LLMProviderResponse { type LLMModalVariant (line 119) | type LLMModalVariant = "onboarding" | "llm-configuration"; type LLMProviderFormProps (line 121) | interface LLMProviderFormProps { type BedrockFetchParams (line 138) | interface BedrockFetchParams { type OllamaFetchParams (line 146) | interface OllamaFetchParams { type OpenRouterFetchParams (line 152) | interface OpenRouterFetchParams { type LiteLLMProxyFetchParams (line 158) | interface LiteLLMProxyFetchParams { type LiteLLMProxyModelResponse (line 165) | interface LiteLLMProxyModelResponse { type BifrostFetchParams (line 170) | interface BifrostFetchParams { type BifrostModelResponse (line 177) | interface BifrostModelResponse { type VertexAIFetchParams (line 185) | interface VertexAIFetchParams { type LMStudioFetchParams (line 189) | interface LMStudioFetchParams { type FetchModelsParams (line 197) | type FetchModelsParams = FILE: web/src/interfaces/onboarding.ts type OnboardingStep (line 3) | enum OnboardingStep { type OnboardingData (line 10) | interface OnboardingData { type OnboardingState (line 16) | interface OnboardingState { type OnboardingActionType (line 26) | enum OnboardingActionType { type OnboardingAction (line 37) | type OnboardingAction = type FinalStepItemProps (line 47) | type FinalStepItemProps = { type OnboardingActions (line 55) | type OnboardingActions = { FILE: web/src/interfaces/settings.ts type ApplicationStatus (line 1) | enum ApplicationStatus { type QueryHistoryType (line 8) | enum QueryHistoryType { type Settings (line 14) | interface Settings { type NotificationType (line 80) | enum NotificationType { type Notification (line 89) | interface Notification { type NavigationItem (line 105) | interface NavigationItem { type EnterpriseSettings (line 112) | interface EnterpriseSettings { type CombinedSettings (line 133) | interface CombinedSettings { FILE: web/src/layouts/actions-layouts.tsx type ActionsHeaderProps (line 98) | interface ActionsHeaderProps function ActionsHeader (line 109) | function ActionsHeader({ function ActionsContent (line 161) | function ActionsContent({ type ActionsToolProps (line 221) | type ActionsToolProps = WithoutStyles<{ function ActionsTool (line 232) | function ActionsTool({ FILE: web/src/layouts/app-layouts.tsx function Header (line 89) | function Header() { function Footer (line 462) | function Footer() { type AppRootProps (line 527) | interface AppRootProps { function Root (line 533) | function Root({ children, enableBackground }: AppRootProps) { FILE: web/src/layouts/expandable-card-layouts.tsx type ExpandableCardContextValue (line 79) | interface ExpandableCardContextValue { function useExpandableCardContext (line 90) | function useExpandableCardContext() { type ExpandableCardRootProps (line 132) | interface ExpandableCardRootProps extends SectionProps { function ExpandableCardRoot (line 141) | function ExpandableCardRoot({ type ExpandableCardHeaderProps (line 198) | interface ExpandableCardHeaderProps function ExpandableCardHeader (line 203) | function ExpandableCardHeader({ type ExpandableCardContentProps (line 250) | interface ExpandableCardContentProps function ExpandableCardContent (line 255) | function ExpandableCardContent({ FILE: web/src/layouts/general-layouts.tsx type FlexDirection (line 9) | type FlexDirection = "row" | "column"; type JustifyContent (line 10) | type JustifyContent = "start" | "center" | "end" | "between"; type AlignItems (line 11) | type AlignItems = "start" | "center" | "end" | "stretch"; type Length (line 12) | type Length = "auto" | "fit" | "full" | number; type SectionProps (line 96) | interface SectionProps function Section (line 119) | function Section({ type AttachmentItemLayoutProps (line 161) | interface AttachmentItemLayoutProps { function AttachmentItemLayout (line 168) | function AttachmentItemLayout({ type CardItemLayoutProps (line 241) | interface CardItemLayoutProps { function CardItemLayout (line 247) | function CardItemLayout({ FILE: web/src/layouts/input-layouts.tsx type OrientationLayoutProps (line 12) | interface OrientationLayoutProps { type VerticalLayoutProps (line 45) | interface VerticalLayoutProps extends OrientationLayoutProps { function VerticalInputLayout (line 48) | function VerticalInputLayout({ type HorizontalLayoutProps (line 119) | interface HorizontalLayoutProps extends OrientationLayoutProps { function HorizontalInputLayout (line 123) | function HorizontalInputLayout({ type ErrorLayoutProps (line 187) | interface ErrorLayoutProps { function ErrorLayout (line 190) | function ErrorLayout({ name }: ErrorLayoutProps) { type ErrorTextType (line 208) | type ErrorTextType = "error" | "warning"; type ErrorTextLayoutProps (line 209) | interface ErrorTextLayoutProps { function ErrorTextLayout (line 213) | function ErrorTextLayout({ children, type = "error" }: ErrorTextLayoutPr... FILE: web/src/layouts/settings-layouts.tsx type SettingsRootProps (line 81) | interface SettingsRootProps function SettingsRoot (line 85) | function SettingsRoot({ width = "md", ...props }: SettingsRootProps) { type SettingsHeaderProps (line 170) | interface SettingsHeaderProps { function SettingsHeader (line 180) | function SettingsHeader({ function SettingsBody (line 304) | function SettingsBody( FILE: web/src/layouts/table-layouts.tsx type TableRowProps (line 16) | interface TableRowProps function TableRow (line 20) | function TableRow({ selected, children, onClick, ...rest }: TableRowProp... type TableCellProps (line 41) | interface TableCellProps function TableCell (line 46) | function TableCell({ flex, width, children, ...rest }: TableCellProps) { type SidebarLayoutProps (line 65) | interface SidebarLayoutProps function SidebarLayout (line 67) | function SidebarLayout({ children, ...rest }: SidebarLayoutProps) { type TwoColumnLayoutProps (line 80) | interface TwoColumnLayoutProps function TwoColumnLayout (line 84) | function TwoColumnLayout({ type ContentColumnProps (line 103) | interface ContentColumnProps function ContentColumn (line 105) | function ContentColumn({ children, ...rest }: ContentColumnProps) { type HiddenInputProps (line 116) | interface HiddenInputProps extends React.InputHTMLAttributes { FILE: web/src/lib/agents.ts function checkUserOwnsAgent (line 13) | function checkUserOwnsAgent( function checkUserIdOwnsAgent (line 35) | function checkUserIdOwnsAgent( function pinAgents (line 52) | async function pinAgents(pinnedAgentIds: number[]) { function filterAgents (line 76) | function filterAgents( function deleteAgent (line 89) | async function deleteAgent(agentId: number): Promise { function updateAgentSharedStatus (line 125) | async function updateAgentSharedStatus( function updateAgentLabels (line 175) | async function updateAgentLabels( function updateAgentFeaturedStatus (line 205) | async function updateAgentFeaturedStatus( FILE: web/src/lib/agentsSS.ts type FetchAgentsResponse (line 4) | type FetchAgentsResponse = [MinimalPersonaSnapshot[], string | null]; function fetchAgentsSS (line 7) | async function fetchAgentsSS(): Promise { FILE: web/src/lib/analytics.ts type AnalyticsEvent (line 6) | enum AnalyticsEvent { type LLMProviderConfiguredSource (line 21) | enum LLMProviderConfiguredSource { type AnalyticsEventProperties (line 32) | interface AnalyticsEventProperties { function track (line 63) | function track( FILE: web/src/lib/appSidebarSS.ts type AppSidebarMetadata (line 5) | interface AppSidebarMetadata { function fetchAppSidebarMetadata (line 9) | async function fetchAppSidebarMetadata( FILE: web/src/lib/auth/redirectValidation.ts function validateInternalRedirect (line 15) | function validateInternalRedirect( FILE: web/src/lib/auth/requireAuth.ts type AuthCheckResult (line 13) | interface AuthCheckResult { function requireAuth (line 36) | async function requireAuth(): Promise { constant ADMIN_ALLOWED_ROLES (line 75) | const ADMIN_ALLOWED_ROLES = [ function requireAdminAuth (line 99) | async function requireAdminAuth(): Promise { FILE: web/src/lib/billing/interfaces.ts type PlanType (line 13) | type PlanType = "monthly" | "annual"; type LicenseSource (line 15) | type LicenseSource = "auto_fetch" | "manual_upload"; type ApplicationStatus (line 17) | type ApplicationStatus = type BillingStatus (line 27) | enum BillingStatus { type LicenseStatus (line 40) | interface LicenseStatus { type BillingInformation (line 60) | interface BillingInformation { type SubscriptionStatus (line 78) | interface SubscriptionStatus { type CreateCheckoutSessionRequest (line 86) | interface CreateCheckoutSessionRequest { type CreateCheckoutSessionResponse (line 92) | interface CreateCheckoutSessionResponse { type CreateCustomerPortalSessionRequest (line 96) | interface CreateCustomerPortalSessionRequest { type CreateCustomerPortalSessionResponse (line 100) | interface CreateCustomerPortalSessionResponse { type SeatUpdateRequest (line 108) | interface SeatUpdateRequest { type SeatUpdateResponse (line 112) | interface SeatUpdateResponse { function hasActiveSubscription (line 127) | function hasActiveSubscription( function hasPaidSubscription (line 141) | function hasPaidSubscription( function isLicenseValid (line 153) | function isLicenseValid(license: LicenseStatus): boolean { function statusToDisplay (line 164) | function statusToDisplay(status: string | null): string { FILE: web/src/lib/billing/svc.ts function getBillingBaseUrl (line 27) | function getBillingBaseUrl(): string { function billingPost (line 31) | async function billingPost(endpoint: string, body?: unknown): Promise... function selfHostedPost (line 71) | async function selfHostedPost(endpoint: string): Promise { function uploadLicense (line 111) | async function uploadLicense( FILE: web/src/lib/browserUtilities.tsx type OperatingSystem (line 6) | enum OperatingSystem { FILE: web/src/lib/build/client.ts type CreateSessionRequest (line 1) | interface CreateSessionRequest { type CreateSessionResponse (line 6) | interface CreateSessionResponse { type ArtifactInfo (line 10) | interface ArtifactInfo { type AgentMessageChunkEvent (line 22) | interface AgentMessageChunkEvent { type AgentThoughtChunkEvent (line 33) | interface AgentThoughtChunkEvent { type ToolCallStartEvent (line 39) | interface ToolCallStartEvent { type ToolCallProgressEvent (line 47) | interface ToolCallProgressEvent { type AgentPlanUpdateEvent (line 61) | interface AgentPlanUpdateEvent { type CurrentModeUpdateEvent (line 71) | interface CurrentModeUpdateEvent { type PromptResponseEvent (line 77) | interface PromptResponseEvent { type ACPErrorEvent (line 86) | interface ACPErrorEvent { type FileWriteEvent (line 92) | interface FileWriteEvent { type OutputEvent (line 102) | interface OutputEvent { type StatusEvent (line 107) | interface StatusEvent { type ArtifactEvent (line 112) | interface ArtifactEvent { type ErrorEvent (line 118) | interface ErrorEvent { type FileSystemEntry (line 122) | interface FileSystemEntry { type DirectoryListing (line 130) | interface DirectoryListing { type ACPEvent (line 140) | type ACPEvent = type BuildEvent (line 154) | type BuildEvent = ACPEvent; function createSession (line 156) | async function createSession( function deleteSession (line 170) | async function deleteSession(sessionId: string): Promise { function executeTask (line 179) | async function executeTask( function sendMessage (line 245) | async function sendMessage( function mapMessagePacketToEventType (line 317) | function mapMessagePacketToEventType(packetType: string): string | null { function listArtifacts (line 335) | async function listArtifacts( function getArtifactUrl (line 345) | function getArtifactUrl(sessionId: string, path: string): string { function listDirectory (line 349) | async function listDirectory( function getWebappUrl (line 363) | function getWebappUrl(sessionId: string, path: string = ""): string { FILE: web/src/lib/ccPair.ts function setCCPairStatus (line 4) | async function setCCPairStatus( FILE: web/src/lib/chat/fetchAgentData.ts function fetchAgentData (line 5) | async function fetchAgentData(): Promise { FILE: web/src/lib/chat/fetchBackendChatSessionSS.ts function fetchBackendChatSessionSS (line 4) | async function fetchBackendChatSessionSS( FILE: web/src/lib/chat/greetingMessages.ts constant GREETING_MESSAGES (line 1) | const GREETING_MESSAGES = ["How can I help?", "Let's get started."]; function getRandomGreeting (line 3) | function getRandomGreeting(): string { FILE: web/src/lib/chat/svc.ts constant CHAT_FILE_PREFIX (line 1) | const CHAT_FILE_PREFIX = "/api/chat/file"; function fetchChatFile (line 9) | async function fetchChatFile(fileId: string): Promise { FILE: web/src/lib/clipboard.test.ts type MockClipboardData (line 3) | type MockClipboardData = Parameters[0]; function makeClipboardData (line 5) | function makeClipboardData({ FILE: web/src/lib/clipboard.ts type ClipboardFileItem (line 1) | type ClipboardFileItem = { type ClipboardDataLike (line 6) | type ClipboardDataLike = { function getClipboardText (line 11) | function getClipboardText( function getPastedFilesIfNoText (line 22) | function getPastedFilesIfNoText( FILE: web/src/lib/connector.ts function handleResponse (line 7) | async function handleResponse( function fetchConnectors (line 17) | async function fetchConnectors( function createConnector (line 29) | async function createConnector( function updateConnectorCredentialPairName (line 42) | async function updateConnectorCredentialPairName( function updateConnectorCredentialPairProperty (line 59) | async function updateConnectorCredentialPairProperty( function updateConnector (line 76) | async function updateConnector( function deleteConnector (line 89) | async function deleteConnector( function runConnector (line 104) | async function runConnector( function deleteConnectorIfExistsAndIsUnlinked (line 124) | async function deleteConnectorIfExistsAndIsUnlinked({ FILE: web/src/lib/connectors/connectors.tsx function isLoadState (line 7) | function isLoadState(connector_name: string): boolean { type InputType (line 17) | type InputType = type StringWithDescription (line 26) | type StringWithDescription = { type Option (line 32) | interface Option { type SelectOption (line 49) | interface SelectOption extends Option { type MultiSelectOption (line 55) | interface MultiSelectOption extends Option { type ListOption (line 61) | interface ListOption extends Option { type TextOption (line 67) | interface TextOption extends Option { type NumberOption (line 74) | interface NumberOption extends Option { type BooleanOption (line 79) | interface BooleanOption extends Option { type FileOption (line 84) | interface FileOption extends Option { type StringTabOption (line 89) | interface StringTabOption extends Option { type TabOption (line 94) | interface TabOption extends Option { type ConnectionConfiguration (line 114) | interface ConnectionConfiguration { type ConnectorField (line 1793) | type ConnectorField = ConnectionConfiguration["values"][number]; function createConnectorInitialValues (line 1816) | function createConnectorInitialValues( function createConnectorValidationSchema (line 1830) | function createConnectorValidationSchema( type ConnectorBase (line 1881) | interface ConnectorBase { type Connector (line 1894) | interface Connector extends ConnectorBase { type ConnectorSnapshot (line 1901) | interface ConnectorSnapshot { type WebConfig (line 1916) | interface WebConfig { type GithubConfig (line 1921) | interface GithubConfig { type GitlabConfig (line 1928) | interface GitlabConfig { type BitbucketConfig (line 1935) | interface BitbucketConfig { type GoogleDriveConfig (line 1941) | interface GoogleDriveConfig { type GmailConfig (line 1949) | interface GmailConfig {} type BookstackConfig (line 1951) | interface BookstackConfig {} type OutlineConfig (line 1953) | interface OutlineConfig {} type ConfluenceConfig (line 1955) | interface ConfluenceConfig { type JiraConfig (line 1964) | interface JiraConfig { type SalesforceConfig (line 1971) | interface SalesforceConfig { type SharepointConfig (line 1975) | interface SharepointConfig { type TeamsConfig (line 1985) | interface TeamsConfig { type DiscourseConfig (line 1991) | interface DiscourseConfig { type AxeroConfig (line 1996) | interface AxeroConfig { type DrupalWikiConfig (line 2000) | interface DrupalWikiConfig { type ProductboardConfig (line 2007) | interface ProductboardConfig {} type SlackConfig (line 2009) | interface SlackConfig { type SlabConfig (line 2016) | interface SlabConfig { type GuruConfig (line 2020) | interface GuruConfig {} type GongConfig (line 2022) | interface GongConfig { type LoopioConfig (line 2026) | interface LoopioConfig { type FileConfig (line 2030) | interface FileConfig { type ZulipConfig (line 2036) | interface ZulipConfig { type CodaConfig (line 2041) | interface CodaConfig { type NotionConfig (line 2045) | interface NotionConfig { type HubSpotConfig (line 2049) | interface HubSpotConfig { type Document360Config (line 2053) | interface Document360Config { type ClickupConfig (line 2058) | interface ClickupConfig { type GoogleSitesConfig (line 2064) | interface GoogleSitesConfig { type XenforoConfig (line 2069) | interface XenforoConfig { type ZendeskConfig (line 2073) | interface ZendeskConfig { type DropboxConfig (line 2078) | interface DropboxConfig {} type S3Config (line 2080) | interface S3Config { type R2Config (line 2086) | interface R2Config { type GCSConfig (line 2093) | interface GCSConfig { type OCIConfig (line 2099) | interface OCIConfig { type MediaWikiBaseConfig (line 2105) | interface MediaWikiBaseConfig { type AsanaConfig (line 2113) | interface AsanaConfig { type FreshdeskConfig (line 2119) | interface FreshdeskConfig {} type FirefliesConfig (line 2121) | interface FirefliesConfig {} type MediaWikiConfig (line 2123) | interface MediaWikiConfig extends MediaWikiBaseConfig { type WikipediaConfig (line 2127) | interface WikipediaConfig extends MediaWikiBaseConfig {} type ImapConfig (line 2129) | interface ImapConfig { FILE: web/src/lib/connectors/credentials.ts type OAuthAdditionalKwargDescription (line 4) | interface OAuthAdditionalKwargDescription { type OAuthDetails (line 10) | interface OAuthDetails { type AuthMethodOption (line 14) | interface AuthMethodOption { type CredentialTemplateWithAuth (line 22) | interface CredentialTemplateWithAuth { type CredentialBase (line 27) | interface CredentialBase { type CredentialWithPrivateKey (line 36) | interface CredentialWithPrivateKey extends CredentialBase { type Credential (line 40) | interface Credential extends CredentialBase { type GithubCredentialJson (line 47) | interface GithubCredentialJson { type GitbookCredentialJson (line 51) | interface GitbookCredentialJson { type GitlabCredentialJson (line 55) | interface GitlabCredentialJson { type BitbucketCredentialJson (line 60) | interface BitbucketCredentialJson { type BookstackCredentialJson (line 65) | interface BookstackCredentialJson { type OutlineCredentialJson (line 71) | interface OutlineCredentialJson { type ConfluenceCredentialJson (line 76) | interface ConfluenceCredentialJson { type JiraCredentialJson (line 81) | interface JiraCredentialJson { type JiraServerCredentialJson (line 86) | interface JiraServerCredentialJson { type ProductboardCredentialJson (line 90) | interface ProductboardCredentialJson { type SlackCredentialJson (line 94) | interface SlackCredentialJson { type GmailCredentialJson (line 98) | interface GmailCredentialJson { type GoogleDriveCredentialJson (line 103) | interface GoogleDriveCredentialJson { type GmailServiceAccountCredentialJson (line 109) | interface GmailServiceAccountCredentialJson { type GoogleDriveServiceAccountCredentialJson (line 114) | interface GoogleDriveServiceAccountCredentialJson { type SlabCredentialJson (line 120) | interface SlabCredentialJson { type CodaCredentialJson (line 124) | interface CodaCredentialJson { type NotionCredentialJson (line 128) | interface NotionCredentialJson { type ZulipCredentialJson (line 132) | interface ZulipCredentialJson { type GuruCredentialJson (line 136) | interface GuruCredentialJson { type GongCredentialJson (line 141) | interface GongCredentialJson { type LoopioCredentialJson (line 146) | interface LoopioCredentialJson { type LinearCredentialJson (line 152) | interface LinearCredentialJson { type HubSpotCredentialJson (line 156) | interface HubSpotCredentialJson { type Document360CredentialJson (line 160) | interface Document360CredentialJson { type ClickupCredentialJson (line 165) | interface ClickupCredentialJson { type ZendeskCredentialJson (line 170) | interface ZendeskCredentialJson { type DropboxCredentialJson (line 176) | interface DropboxCredentialJson { type R2CredentialJson (line 180) | interface R2CredentialJson { type S3CredentialJson (line 186) | interface S3CredentialJson { type GCSCredentialJson (line 192) | interface GCSCredentialJson { type OCICredentialJson (line 197) | interface OCICredentialJson { type SalesforceCredentialJson (line 203) | interface SalesforceCredentialJson { type SharepointCredentialJson (line 210) | interface SharepointCredentialJson { type AsanaCredentialJson (line 218) | interface AsanaCredentialJson { type TeamsCredentialJson (line 222) | interface TeamsCredentialJson { type DiscourseCredentialJson (line 228) | interface DiscourseCredentialJson { type AxeroCredentialJson (line 233) | interface AxeroCredentialJson { type DiscordCredentialJson (line 238) | interface DiscordCredentialJson { type FreshdeskCredentialJson (line 242) | interface FreshdeskCredentialJson { type FirefliesCredentialJson (line 247) | interface FirefliesCredentialJson { type MediaWikiCredentialJson (line 251) | interface MediaWikiCredentialJson {} type WikipediaCredentialJson (line 252) | interface WikipediaCredentialJson extends MediaWikiCredentialJson {} type EgnyteCredentialJson (line 254) | interface EgnyteCredentialJson { type AirtableCredentialJson (line 259) | interface AirtableCredentialJson { type HighspotCredentialJson (line 263) | interface HighspotCredentialJson { type DrupalWikiCredentialJson (line 269) | interface DrupalWikiCredentialJson { type ImapCredentialJson (line 273) | interface ImapCredentialJson { type TestRailCredentialJson (line 278) | interface TestRailCredentialJson { function getDisplayNameForCredentialKey (line 660) | function getDisplayNameForCredentialKey(key: string): string { FILE: web/src/lib/connectors/fileTypes.ts type FileTypeCategory (line 1) | enum FileTypeCategory { type FileValidationRule (line 5) | interface FileValidationRule { type FileTypeDefinition (line 11) | interface FileTypeDefinition { constant FILE_TYPE_DEFINITIONS (line 17) | const FILE_TYPE_DEFINITIONS: Record< class TypedFile (line 32) | class TypedFile { method constructor (line 33) | constructor( method validate (line 39) | async validate(): Promise<{ isValid: boolean; errors: string[] }> { function createTypedFile (line 93) | function createTypedFile( function isTypedFileField (line 106) | function isTypedFileField(fieldKey: string): boolean { function getFileTypeDefinitionForField (line 113) | function getFileTypeDefinitionForField( FILE: web/src/lib/connectors/oauth.ts function getConnectorOauthRedirectUrl (line 6) | async function getConnectorOauthRedirectUrl( function useOAuthDetails (line 27) | function useOAuthDetails(sourceType: ValidSources) { FILE: web/src/lib/constants.ts constant IS_DEV (line 1) | const IS_DEV = process.env.NODE_ENV === "development"; type AuthType (line 3) | enum AuthType { constant HOST_URL (line 11) | const HOST_URL = process.env.WEB_DOMAIN || "http://localhost:3000"; constant INTERNAL_URL (line 13) | const INTERNAL_URL = process.env.INTERNAL_URL || "http://localhost:8080"; constant DOCS_BASE_URL (line 16) | const DOCS_BASE_URL = "https://docs.onyx.app"; constant DOCS_ADMINS_PATH (line 17) | const DOCS_ADMINS_PATH = `${DOCS_BASE_URL}/admins`; constant MCP_INTERNAL_URL (line 19) | const MCP_INTERNAL_URL = constant SERVER_SIDE_ONLY__AUTH_TYPE (line 24) | const SERVER_SIDE_ONLY__AUTH_TYPE = (process.env.AUTH_TYPE || constant NEXT_PUBLIC_DO_NOT_USE_TOGGLE_OFF_DANSWER_POWERED (line 27) | const NEXT_PUBLIC_DO_NOT_USE_TOGGLE_OFF_DANSWER_POWERED = constant TENANT_ID_COOKIE_NAME (line 31) | const TENANT_ID_COOKIE_NAME = "onyx_tid"; constant SEARCH_TYPE_COOKIE_NAME (line 33) | const SEARCH_TYPE_COOKIE_NAME = "search_type"; constant AGENTIC_SEARCH_TYPE_COOKIE_NAME (line 34) | const AGENTIC_SEARCH_TYPE_COOKIE_NAME = "agentic_type"; constant LOGOUT_DISABLED (line 36) | const LOGOUT_DISABLED = constant TOGGLED_CONNECTORS_COOKIE_NAME (line 39) | const TOGGLED_CONNECTORS_COOKIE_NAME = "toggled_connectors"; constant NEXT_PUBLIC_CUSTOM_REFRESH_URL (line 42) | const NEXT_PUBLIC_CUSTOM_REFRESH_URL = constant SERVER_SIDE_ONLY__PAID_ENTERPRISE_FEATURES_ENABLED (line 50) | const SERVER_SIDE_ONLY__PAID_ENTERPRISE_FEATURES_ENABLED = constant EE_ENABLED (line 58) | const EE_ENABLED = constant CUSTOM_ANALYTICS_ENABLED (line 61) | const CUSTOM_ANALYTICS_ENABLED = process.env.CUSTOM_ANALYTICS_SECRET_KEY constant GTM_ENABLED (line 65) | const GTM_ENABLED = constant NEXT_PUBLIC_CLOUD_ENABLED (line 68) | const NEXT_PUBLIC_CLOUD_ENABLED = constant REGISTRATION_URL (line 71) | const REGISTRATION_URL = constant SERVER_SIDE_ONLY__CLOUD_ENABLED (line 74) | const SERVER_SIDE_ONLY__CLOUD_ENABLED = constant NEXT_PUBLIC_FORGOT_PASSWORD_ENABLED (line 77) | const NEXT_PUBLIC_FORGOT_PASSWORD_ENABLED = constant NEXT_PUBLIC_TEST_ENV (line 81) | const NEXT_PUBLIC_TEST_ENV = constant NEXT_PUBLIC_INCLUDE_ERROR_POPUP_SUPPORT_LINK (line 84) | const NEXT_PUBLIC_INCLUDE_ERROR_POPUP_SUPPORT_LINK = constant ALLOWED_URL_PROTOCOLS (line 89) | const ALLOWED_URL_PROTOCOLS = ["http:", "https:", "mailto:"] as const; constant MAX_CHARACTERS_PERSONA_DESCRIPTION (line 92) | const MAX_CHARACTERS_PERSONA_DESCRIPTION = 5000000; constant MAX_CHARACTERS_AGENT_DESCRIPTION (line 93) | const MAX_CHARACTERS_AGENT_DESCRIPTION = 500; constant MAX_STARTER_MESSAGES (line 94) | const MAX_STARTER_MESSAGES = 4; constant MAX_CHARACTERS_STARTER_MESSAGE (line 95) | const MAX_CHARACTERS_STARTER_MESSAGE = 200; constant STARTER_MESSAGES_EXAMPLES (line 96) | const STARTER_MESSAGES_EXAMPLES = [ constant CREDENTIAL_NAME (line 104) | const CREDENTIAL_NAME = "name"; constant CREDENTIAL_SOURCE (line 105) | const CREDENTIAL_SOURCE = "source"; constant CREDENTIAL_UPLOADED_FILE (line 106) | const CREDENTIAL_UPLOADED_FILE = "uploaded_file"; constant CREDENTIAL_FIELD_KEY (line 107) | const CREDENTIAL_FIELD_KEY = "field_key"; constant CREDENTIAL_TYPE_DEFINITION_KEY (line 108) | const CREDENTIAL_TYPE_DEFINITION_KEY = "type_definition_key"; constant CREDENTIAL_JSON (line 109) | const CREDENTIAL_JSON = "credential_json"; constant MODAL_ROOT_ID (line 111) | const MODAL_ROOT_ID = "modal-root"; constant UNNAMED_CHAT (line 113) | const UNNAMED_CHAT = "New Chat"; constant DEFAULT_AGENT_ID (line 115) | const DEFAULT_AGENT_ID = 0; constant GENERAL_ASSISTANT_ID (line 116) | const GENERAL_ASSISTANT_ID = -1; constant IMAGE_ASSISTANT_ID (line 117) | const IMAGE_ASSISTANT_ID = -2; constant ART_ASSISTANT_ID (line 118) | const ART_ASSISTANT_ID = -3; constant MAX_FILES_TO_SHOW (line 122) | const MAX_FILES_TO_SHOW = 3; constant MOBILE_SIDEBAR_BREAKPOINT_PX (line 125) | const MOBILE_SIDEBAR_BREAKPOINT_PX = 640; constant DESKTOP_SMALL_BREAKPOINT_PX (line 126) | const DESKTOP_SMALL_BREAKPOINT_PX = 912; constant DESKTOP_MEDIUM_BREAKPOINT_PX (line 127) | const DESKTOP_MEDIUM_BREAKPOINT_PX = 1232; constant DEFAULT_AVATAR_SIZE_PX (line 128) | const DEFAULT_AVATAR_SIZE_PX = 18; constant HORIZON_DISTANCE_PX (line 129) | const HORIZON_DISTANCE_PX = 800; constant DEFAULT_LOGO_SIZE_PX (line 130) | const DEFAULT_LOGO_SIZE_PX = 24; constant DEFAULT_CONTEXT_TOKENS (line 132) | const DEFAULT_CONTEXT_TOKENS = 120_000; constant MAX_CHUNKS_FED_TO_CHAT (line 133) | const MAX_CHUNKS_FED_TO_CHAT = 25; constant APP_SLOGAN (line 135) | const APP_SLOGAN = "Open Source AI Platform"; FILE: web/src/lib/constants/chatBackgrounds.ts constant CHAT_BACKGROUND_NONE (line 3) | const CHAT_BACKGROUND_NONE = "none"; type ChatBackgroundOption (line 5) | interface ChatBackgroundOption { constant CHAT_BACKGROUND_OPTIONS (line 13) | const CHAT_BACKGROUND_OPTIONS: ChatBackgroundOption[] = [ FILE: web/src/lib/contains.ts type SomeNonNestedObject (line 3) | interface SomeNonNestedObject { function objectsAreEquivalent (line 7) | function objectsAreEquivalent( function containsObject (line 33) | function containsObject( function isEventWithinRef (line 41) | function isEventWithinRef( FILE: web/src/lib/credential.ts function createCredential (line 16) | async function createCredential(credential: CredentialBase) { function createCredentialWithPrivateKey (line 26) | async function createCredentialWithPrivateKey( function adminDeleteCredential (line 57) | async function adminDeleteCredential(credentialId: number) { function deleteCredential (line 66) | async function deleteCredential( function forceDeleteCredential (line 78) | async function forceDeleteCredential(credentialId: number) { function linkCredential (line 87) | function linkCredential( function updateCredential (line 114) | function updateCredential(credentialId: number, newDetails: any) { function updateCredentialWithPrivateKey (line 133) | function updateCredentialWithPrivateKey( function swapCredential (line 159) | function swapCredential( FILE: web/src/lib/dateUtils.ts function getXDaysAgo (line 24) | function getXDaysAgo(daysAgo: number) { function getXYearsAgo (line 31) | function getXYearsAgo(yearsAgo: number) { function normalizeDate (line 38) | function normalizeDate(date: Date): Date { function isAfterDate (line 44) | function isAfterDate(date: Date, maxDate: Date): boolean { function isDateInFuture (line 48) | function isDateInFuture(date: Date): boolean { function formatDateTimeLog (line 167) | function formatDateTimeLog(iso: string): string { function formatTimeOnly (line 179) | function formatTimeOnly(iso: string): string { function formatMmDdYyyy (line 188) | function formatMmDdYyyy(d: string): string { function formatElapsedTime (line 196) | function formatElapsedTime(totalSeconds: number): string { FILE: web/src/lib/documentDeletion.ts function scheduleDeletionJobForConnector (line 4) | async function scheduleDeletionJobForConnector( function deleteCCPair (line 27) | async function deleteCCPair( function isCurrentlyDeleting (line 43) | function isCurrentlyDeleting( FILE: web/src/lib/documentUtils.ts function removeDuplicateDocs (line 3) | function removeDuplicateDocs( FILE: web/src/lib/download.ts function downloadFile (line 10) | function downloadFile( FILE: web/src/lib/drag/constants.ts constant CHAT_SESSION_ID_KEY (line 1) | const CHAT_SESSION_ID_KEY = "chatSessionId"; FILE: web/src/lib/error.ts function getErrorMsg (line 5) | function getErrorMsg( FILE: web/src/lib/extension/constants.ts constant CHROME_MESSAGE (line 13) | const CHROME_MESSAGE = { constant SUBMIT_MESSAGE_TYPES (line 25) | const SUBMIT_MESSAGE_TYPES = { constant SEARCH_PARAMS (line 38) | const SEARCH_PARAMS = { constant NO_AUTH_USER_ID (line 42) | const NO_AUTH_USER_ID = "__no_auth_user__"; FILE: web/src/lib/extension/utils.ts type ExtensionContext (line 4) | type ExtensionContext = "new_tab" | "side_panel" | null; function getPanelOrigin (line 10) | function getPanelOrigin(): string { function getExtensionContext (line 14) | function getExtensionContext(): { function sendSetDefaultNewTabMessage (line 30) | function sendSetDefaultNewTabMessage(value: boolean) { FILE: web/src/lib/fetcher.ts class FetchError (line 1) | class FetchError extends Error { method constructor (line 4) | constructor(message: string, status: number, info: any) { class RedirectError (line 11) | class RedirectError extends FetchError { method constructor (line 12) | constructor(message: string, status: number, info: any) { constant DEFAULT_AUTH_ERROR_MSG (line 17) | const DEFAULT_AUTH_ERROR_MSG = constant DEFAULT_ERROR_MSG (line 20) | const DEFAULT_ERROR_MSG = "An error occurred while fetching the data."; FILE: web/src/lib/fileConnector.ts type ConnectorFileInfo (line 1) | interface ConnectorFileInfo { type ConnectorFilesResponse (line 8) | interface ConnectorFilesResponse { type FileUploadResponse (line 12) | interface FileUploadResponse { function updateConnectorFiles (line 18) | async function updateConnectorFiles( FILE: web/src/lib/filters.ts function computeAvailableFilters (line 5) | function computeAvailableFilters({ FILE: web/src/lib/googleConnector.ts constant GOOGLE_SERVICES (line 10) | const GOOGLE_SERVICES = { FILE: web/src/lib/headers/fetchHeaderDataSS.ts type HeaderData (line 6) | interface HeaderData { function fetchHeaderDataSS (line 11) | async function fetchHeaderDataSS( FILE: web/src/lib/hierarchy/interfaces.ts type DocumentSortField (line 4) | type DocumentSortField = "name" | "last_updated"; type DocumentSortDirection (line 5) | type DocumentSortDirection = "asc" | "desc"; type FolderPosition (line 6) | type FolderPosition = "on_top" | "mixed"; type HierarchyNodeSummary (line 9) | interface HierarchyNodeSummary { type HierarchyNodesRequest (line 16) | interface HierarchyNodesRequest { type HierarchyNodesResponse (line 20) | interface HierarchyNodesResponse { type DocumentPageCursor (line 25) | interface DocumentPageCursor { type HierarchyNodeDocumentsRequest (line 35) | interface HierarchyNodeDocumentsRequest { type DocumentSummary (line 43) | interface DocumentSummary { type HierarchyNodeDocumentsResponse (line 52) | interface HierarchyNodeDocumentsResponse { type ConnectedSource (line 62) | interface ConnectedSource { type HierarchyItem (line 68) | type HierarchyItem = type HierarchyBreadcrumbProps (line 73) | interface HierarchyBreadcrumbProps { FILE: web/src/lib/hierarchy/svc.ts constant HIERARCHY_NODES_PREFIX (line 8) | const HIERARCHY_NODES_PREFIX = "/api/hierarchy-nodes"; function extractErrorDetail (line 10) | async function extractErrorDetail( function fetchHierarchyNodes (line 23) | async function fetchHierarchyNodes( function fetchHierarchyNodeDocuments (line 41) | async function fetchHierarchyNodeDocuments( FILE: web/src/lib/hooks.ts type FilterManager (line 336) | interface FilterManager { function useFilters (line 357) | function useFilters(): FilterManager { type LlmDescriptor (line 477) | interface LlmDescriptor { type LlmManager (line 483) | interface LlmManager { function getDefaultLlmDescriptor (line 539) | function getDefaultLlmDescriptor( function getValidLlmDescriptorForProviders (line 570) | function getValidLlmDescriptorForProviders( function useLlmManager (line 644) | function useLlmManager( function useAuthType (line 873) | function useAuthType(): AuthType | null { function getConfiguredSources (line 966) | function getConfiguredSources( type UseSourcePreferencesProps (line 996) | interface UseSourcePreferencesProps { type SourcePreferencesSnapshot (line 1002) | interface SourcePreferencesSnapshot { constant LS_SELECTED_INTERNAL_SEARCH_SOURCES_KEY (line 1006) | const LS_SELECTED_INTERNAL_SEARCH_SOURCES_KEY = "selectedInternalSearchS... function useSourcePreferences (line 1008) | function useSourcePreferences({ FILE: web/src/lib/hooks/useCaptcha.ts type Window (line 24) | interface Window { constant RECAPTCHA_SITE_KEY (line 35) | const RECAPTCHA_SITE_KEY = process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY ||... function useCaptcha (line 37) | function useCaptcha() { FILE: web/src/lib/hooks/useCustomAnalyticsEnabled.ts type CustomAnalyticsStatus (line 3) | type CustomAnalyticsStatus = { function useCustomAnalyticsEnabled (line 13) | function useCustomAnalyticsEnabled(): CustomAnalyticsStatus { FILE: web/src/lib/hooks/useDocumentSets.ts function useDocumentSets (line 6) | function useDocumentSets() { FILE: web/src/lib/hooks/useForcedTools.ts type ForcedToolsState (line 3) | interface ForcedToolsState { FILE: web/src/lib/hooks/useLLMProviderOptions.ts function useLLMProviderOptions (line 6) | function useLLMProviderOptions() { FILE: web/src/lib/hooks/useProjects.ts function useProjects (line 6) | function useProjects() { FILE: web/src/lib/hooks/useToolOAuthStatus.ts type ToolAuthStatus (line 8) | interface ToolAuthStatus { function useToolOAuthStatus (line 15) | function useToolOAuthStatus(agentId?: number) { FILE: web/src/lib/languages.ts constant LANGUAGE_EXT_PATTERN (line 3) | const LANGUAGE_EXT_PATTERN = /\.[^.]+$/; type LinguistLanguage (line 5) | interface LinguistLanguage { type LanguageMaps (line 13) | interface LanguageMaps { constant EXTENSION_OVERRIDES (line 20) | const EXTENSION_OVERRIDES: Record = { function buildLanguageMaps (line 44) | function buildLanguageMaps( function lookupLanguage (line 79) | function lookupLanguage(name: string, maps: LanguageMaps): string | null { function getCodeLanguage (line 97) | function getCodeLanguage(name: string): string | null { function getDataLanguage (line 106) | function getDataLanguage(name: string): string | null { function isMarkdownFile (line 114) | function isMarkdownFile(name: string): boolean { function getLanguageByMime (line 130) | function getLanguageByMime(mime: string): string | null { FILE: web/src/lib/llmConfig/cache.ts constant PERSONA_PROVIDER_ENDPOINT_PATTERN (line 4) | const PERSONA_PROVIDER_ENDPOINT_PATTERN = function refreshLlmProviderCaches (line 7) | async function refreshLlmProviderCaches( FILE: web/src/lib/llmConfig/constants.ts constant LLM_ADMIN_URL (line 1) | const LLM_ADMIN_URL = "/api/admin/llm"; constant LLM_PROVIDERS_ADMIN_URL (line 2) | const LLM_PROVIDERS_ADMIN_URL = `${LLM_ADMIN_URL}/provider`; constant LLM_CHAT_PROVIDERS_URL (line 3) | const LLM_CHAT_PROVIDERS_URL = "/api/llm/provider"; constant LLM_CONTEXTUAL_COST_ADMIN_URL (line 5) | const LLM_CONTEXTUAL_COST_ADMIN_URL = constant EMBEDDING_PROVIDERS_ADMIN_URL (line 8) | const EMBEDDING_PROVIDERS_ADMIN_URL = constant EMBEDDING_MODELS_ADMIN_URL (line 11) | const EMBEDDING_MODELS_ADMIN_URL = "/api/admin/embedding"; FILE: web/src/lib/llmConfig/providers.ts constant PROVIDER_ICONS (line 18) | const PROVIDER_ICONS: Record = { constant PROVIDER_PRODUCT_NAMES (line 35) | const PROVIDER_PRODUCT_NAMES: Record = { constant PROVIDER_DISPLAY_NAMES (line 52) | const PROVIDER_DISPLAY_NAMES: Record = { function getProviderProductName (line 69) | function getProviderProductName(providerName: string): string { function getProviderDisplayName (line 73) | function getProviderDisplayName(providerName: string): string { function getProviderIcon (line 77) | function getProviderIcon(providerName: string): IconFunctionComponent { FILE: web/src/lib/llmConfig/svc.ts function testDefaultProvider (line 21) | async function testDefaultProvider(): Promise { function setDefaultLlmModel (line 38) | async function setDefaultLlmModel( function deleteLlmProvider (line 62) | async function deleteLlmProvider(providerId: number): Promise { FILE: web/src/lib/llmConfig/utils.ts function getFinalLLM (line 9) | function getFinalLLM( function getLLMProviderOverrideForPersona (line 47) | function getLLMProviderOverrideForPersona( function getDisplayName (line 143) | function getDisplayName( FILE: web/src/lib/llmConfig/visionLLM.ts function fetchVisionProviders (line 4) | async function fetchVisionProviders(): Promise { function setDefaultVisionProvider (line 19) | async function setDefaultVisionProvider( FILE: web/src/lib/oauth/api.ts function createOAuthConfig (line 10) | async function createOAuthConfig( function getOAuthConfigs (line 30) | async function getOAuthConfigs(): Promise { function getOAuthConfig (line 40) | async function getOAuthConfig(id: number): Promise { function updateOAuthConfig (line 53) | async function updateOAuthConfig( function deleteOAuthConfig (line 74) | async function deleteOAuthConfig(id: number): Promise { function initiateOAuthFlow (line 90) | async function initiateOAuthFlow( function handleOAuthCallback (line 116) | async function handleOAuthCallback( function getUserOAuthTokenStatus (line 141) | async function getUserOAuthTokenStatus(): Promise { function revokeOAuthToken (line 153) | async function revokeOAuthToken(oauthConfigId: number): Promise { FILE: web/src/lib/oauth_utils.ts function prepareOAuthAuthorizationRequest (line 10) | async function prepareOAuthAuthorizationRequest( function handleOAuthAuthorizationResponse (line 45) | async function handleOAuthAuthorizationResponse( function handleFederatedOAuthCallback (line 66) | async function handleFederatedOAuthCallback( function handleOAuthSlackAuthorizationResponse (line 117) | async function handleOAuthSlackAuthorizationResponse( function handleOAuthGoogleDriveAuthorizationResponse (line 155) | async function handleOAuthGoogleDriveAuthorizationResponse( function handleOAuthConfluenceAuthorizationResponse (line 195) | async function handleOAuthConfluenceAuthorizationResponse( function handleOAuthPrepareFinalization (line 233) | async function handleOAuthPrepareFinalization( function handleOAuthConfluencePrepareFinalization (line 246) | async function handleOAuthConfluencePrepareFinalization( function handleOAuthConfluenceFinalize (line 283) | async function handleOAuthConfluenceFinalize( FILE: web/src/lib/search/interfaces.ts type FlowType (line 9) | type FlowType = (typeof FlowType)[keyof typeof FlowType]; type SearchType (line 16) | type SearchType = (typeof SearchType)[keyof typeof SearchType]; type ToolResponse (line 18) | interface ToolResponse { type ExtendedToolResponse (line 22) | interface ExtendedToolResponse extends ToolResponse { type StreamStopReason (line 27) | enum StreamStopReason { type StreamStopInfo (line 32) | interface StreamStopInfo { type ErrorMessagePacket (line 39) | interface ErrorMessagePacket { type Quote (line 43) | interface Quote { type QuotesInfoPacket (line 52) | interface QuotesInfoPacket { type MinimalOnyxDocument (line 55) | interface MinimalOnyxDocument { type OnyxDocument (line 60) | interface OnyxDocument extends MinimalOnyxDocument { type LoadedOnyxDocument (line 76) | interface LoadedOnyxDocument extends OnyxDocument { type SearchOnyxDocument (line 80) | interface SearchOnyxDocument extends OnyxDocument { type FilteredOnyxDocument (line 85) | interface FilteredOnyxDocument extends OnyxDocument { type DocumentInfoPacket (line 88) | interface DocumentInfoPacket { type DocumentRelevance (line 96) | interface DocumentRelevance { type Relevance (line 101) | interface Relevance { type RelevanceChunk (line 105) | interface RelevanceChunk { type SearchResponse (line 109) | interface SearchResponse { type SourceCategory (line 121) | enum SourceCategory { type SourceMetadata (line 131) | interface SourceMetadata { type SearchDefaultOverrides (line 152) | interface SearchDefaultOverrides { type Filters (line 157) | interface Filters { type SearchRequestArgs (line 163) | interface SearchRequestArgs { type SearchRequestOverrides (line 188) | interface SearchRequestOverrides { type ValidQuestionResponse (line 195) | interface ValidQuestionResponse { type SearchFlowClassificationRequest (line 208) | interface SearchFlowClassificationRequest { type SearchFlowClassificationResponse (line 215) | interface SearchFlowClassificationResponse { type BaseFilters (line 227) | interface BaseFilters { type SendSearchQueryRequest (line 238) | interface SendSearchQueryRequest { type SearchDocWithContent (line 252) | interface SearchDocWithContent { type SearchFullResponse (line 276) | interface SearchFullResponse { type SearchQueryResponse (line 291) | interface SearchQueryResponse { type SearchHistoryResponse (line 301) | interface SearchHistoryResponse { type SearchDocsPacket (line 309) | interface SearchDocsPacket { type SearchErrorPacket (line 314) | interface SearchErrorPacket { type LLMSelectedDocsPacket (line 319) | interface LLMSelectedDocsPacket { type QueryExpansionsPacket (line 324) | interface QueryExpansionsPacket { type DocSelectionReasoningPacket (line 329) | interface DocSelectionReasoningPacket { type SearchStreamPacket (line 334) | type SearchStreamPacket = FILE: web/src/lib/search/utilsSS.ts function fetchValidFilterInfo (line 5) | async function fetchValidFilterInfo() { FILE: web/src/lib/sources.ts type PartialSourceMetadata (line 58) | interface PartialSourceMetadata { type SourceMap (line 77) | type SourceMap = { constant SOURCE_METADATA_MAP (line 95) | const SOURCE_METADATA_MAP: SourceMap = { function fillSourceMetadata (line 453) | function fillSourceMetadata( function getSourceMetadata (line 464) | function getSourceMetadata(sourceType: ValidSources): SourceMetadata { function listSourceMetadata (line 478) | function listSourceMetadata(): SourceMetadata[] { function getSourceDocLink (line 498) | function getSourceDocLink(sourceType: ValidSources): string | null { function getSourceDisplayName (line 506) | function getSourceDisplayName(sourceType: ValidSources): string | null { function getSourceMetadataForSources (line 510) | function getSourceMetadataForSources(sources: ValidSources[]) { function getSourcesForPersona (line 514) | function getSourcesForPersona(persona: Persona): ValidSources[] { function fetchTitleFromUrl (line 526) | async function fetchTitleFromUrl(url: string): Promise { FILE: web/src/lib/streamingTTS.ts class HTTPStreamingTTSPlayer (line 13) | class HTTPStreamingTTSPlayer { method constructor (line 27) | constructor(options?: { method getAPIUrl (line 35) | private getAPIUrl(): string { method speak (line 45) | async speak( method processNextChunk (line 189) | private processNextChunk(): void { method finalizeStream (line 220) | private finalizeStream(): void { method fallbackSpeak (line 245) | private async fallbackSpeak(url: string): Promise { method stop (line 286) | stop(): void { method setMuted (line 296) | setMuted(muted: boolean): void { method cleanup (line 306) | private cleanup(): void { method playing (line 344) | get playing(): boolean { class WebSocketStreamingTTSPlayer (line 354) | class WebSocketStreamingTTSPlayer { method constructor (line 367) | constructor(options?: { method getWebSocketUrl (line 375) | private async getWebSocketUrl(): Promise { method connect (line 394) | async connect(voice?: string, speed?: number): Promise { method processNextChunk (line 496) | private processNextChunk(): void { method finalizeStream (line 523) | private finalizeStream(): void { method speak (line 543) | async speak(text: string): Promise { method stop (line 556) | stop(): void { method disconnect (line 560) | disconnect(): void { method cleanup (line 568) | private cleanup(): void { method playing (line 609) | get playing(): boolean { FILE: web/src/lib/swr-keys.ts constant SWR_KEYS (line 9) | const SWR_KEYS = { FILE: web/src/lib/time.ts function localizeAndPrettify (line 60) | function localizeAndPrettify(dateString: string) { function humanReadableFormat (line 65) | function humanReadableFormat(dateString: string): string { function humanReadableFormatShort (line 84) | function humanReadableFormatShort(date: string | Date | null): string { function humanReadableFormatWithTime (line 95) | function humanReadableFormatWithTime(datetimeString: string): string { function getSecondsUntilExpiration (line 112) | function getSecondsUntilExpiration( type TimeFilter (line 160) | type TimeFilter = "day" | "week" | "month" | "year"; function getTimeFilterDate (line 162) | function getTimeFilterDate(filter: TimeFilter): Date | null { function formatDurationSeconds (line 178) | function formatDurationSeconds(seconds: number): string { FILE: web/src/lib/tools/fetchTools.ts function fetchToolsSS (line 4) | async function fetchToolsSS(): Promise { function fetchToolByIdSS (line 18) | async function fetchToolByIdSS( FILE: web/src/lib/tools/interfaces.ts type ActionStatus (line 5) | enum ActionStatus { type MCPServerStatus (line 12) | enum MCPServerStatus { type MCPServer (line 20) | interface MCPServer { type MCPServersResponse (line 39) | interface MCPServersResponse { type MCPServerCreateRequest (line 44) | interface MCPServerCreateRequest { type MCPServerUpdateRequest (line 50) | interface MCPServerUpdateRequest { type MCPTool (line 56) | interface MCPTool { type MethodSpec (line 65) | interface MethodSpec { type ToolSnapshot (line 76) | interface ToolSnapshot { type MCPAuthenticationType (line 112) | enum MCPAuthenticationType { type MCPAuthenticationPerformer (line 119) | enum MCPAuthenticationPerformer { type ApiResponse (line 124) | interface ApiResponse { type OAuthConfig (line 129) | interface OAuthConfig { type MCPTransportType (line 141) | enum MCPTransportType { type OAuthConfigCreate (line 147) | interface OAuthConfigCreate { type OAuthConfigUpdate (line 157) | interface OAuthConfigUpdate { type OAuthTokenStatus (line 167) | interface OAuthTokenStatus { FILE: web/src/lib/tools/mcpService.ts type ToolStatusUpdateRequest (line 15) | interface ToolStatusUpdateRequest { type ToolStatusUpdateResponse (line 20) | interface ToolStatusUpdateResponse { function deleteMCPServer (line 28) | async function deleteMCPServer(serverId: number): Promise { function refreshMCPServerTools (line 42) | async function refreshMCPServerTools( function updateToolsStatus (line 60) | async function updateToolsStatus( function updateToolStatus (line 86) | async function updateToolStatus( function disableAllServerTools (line 96) | async function disableAllServerTools( function createMCPServer (line 105) | async function createMCPServer( function updateMCPServer (line 127) | async function updateMCPServer( function updateMCPServerStatus (line 150) | async function updateMCPServerStatus( type UpsertMCPServerResponse (line 167) | interface UpsertMCPServerResponse { function upsertMCPServer (line 176) | async function upsertMCPServer(serverData: { FILE: web/src/lib/tools/mcpUtils.tsx function getActionIcon (line 11) | function getActionIcon( FILE: web/src/lib/tools/openApiService.ts constant SUPPORTED_HTTP_METHODS (line 3) | const SUPPORTED_HTTP_METHODS = new Set([ function extractMethodSpecsFromDefinition (line 16) | function extractMethodSpecsFromDefinition( function validateToolDefinition (line 61) | async function validateToolDefinition(toolData: { function createCustomTool (line 86) | async function createCustomTool(toolData: { type ToolUpdatePayload (line 115) | type ToolUpdatePayload = { function updateCustomTool (line 124) | async function updateCustomTool( function deleteCustomTool (line 150) | async function deleteCustomTool( FILE: web/src/lib/types.ts type UserSpecificAgentPreference (line 6) | interface UserSpecificAgentPreference { type UserSpecificAgentPreferences (line 10) | type UserSpecificAgentPreferences = Record< type ThemePreference (line 15) | enum ThemePreference { type UserPreferences (line 21) | interface UserPreferences { type MemoryItem (line 41) | interface MemoryItem { type UserPersonalization (line 46) | interface UserPersonalization { type AccountType (line 55) | enum AccountType { type UserRole (line 63) | enum UserRole { constant USER_ROLE_LABELS (line 73) | const USER_ROLE_LABELS: Record = { type UserStatus (line 83) | enum UserStatus { constant USER_STATUS_LABELS (line 90) | const USER_STATUS_LABELS: Record = { constant INVALID_ROLE_HOVER_TEXT (line 97) | const INVALID_ROLE_HOVER_TEXT: Partial> = { type User (line 107) | interface User { type TenantInfo (line 131) | interface TenantInfo { type NewTenantInfo (line 136) | interface NewTenantInfo { type AllUsersResponse (line 141) | interface AllUsersResponse { type AcceptedUserSnapshot (line 150) | interface AcceptedUserSnapshot { type InvitedUserSnapshot (line 157) | interface InvitedUserSnapshot { type MinimalUserSnapshot (line 161) | interface MinimalUserSnapshot { type ValidInputTypes (line 166) | type ValidInputTypes = type ValidStatuses (line 171) | type ValidStatuses = type TaskStatus (line 179) | type TaskStatus = "PENDING" | "STARTED" | "SUCCESS" | "FAILURE"; type Feedback (line 180) | type Feedback = "like" | "dislike" | "mixed"; type AccessType (line 181) | type AccessType = "public" | "private" | "sync"; type ProcessingMode (line 182) | type ProcessingMode = "REGULAR" | "FILE_SYSTEM"; type SessionType (line 183) | type SessionType = "Chat" | "Search" | "Slack"; type DocumentBoostStatus (line 185) | interface DocumentBoostStatus { type FailedConnectorIndexingStatus (line 193) | interface FailedConnectorIndexingStatus { type IndexAttemptSnapshot (line 202) | interface IndexAttemptSnapshot { type ConnectorStatus (line 216) | interface ConnectorStatus { type ConnectorIndexingStatus (line 225) | interface ConnectorIndexingStatus< type ConnectorIndexingStatusLite (line 239) | interface ConnectorIndexingStatusLite { type FederatedConnectorStatus (line 255) | interface FederatedConnectorStatus { type SourceSummary (line 261) | interface SourceSummary { type ConnectorIndexingStatusLiteResponse (line 268) | interface ConnectorIndexingStatusLiteResponse { type FederatedConnectorDetail (line 276) | interface FederatedConnectorDetail { type OAuthPrepareAuthorizationResponse (line 291) | interface OAuthPrepareAuthorizationResponse { type OAuthBaseCallbackResponse (line 295) | interface OAuthBaseCallbackResponse { type OAuthSlackCallbackResponse (line 302) | interface OAuthSlackCallbackResponse extends OAuthBaseCallbackResponse { type ConfluenceAccessibleResource (line 307) | interface ConfluenceAccessibleResource { type OAuthConfluencePrepareFinalizationResponse (line 315) | interface OAuthConfluencePrepareFinalizationResponse { type OAuthConfluenceFinalizeResponse (line 321) | interface OAuthConfluenceFinalizeResponse { type CCPairBasicInfo (line 327) | interface CCPairBasicInfo { type ConnectorSummary (line 333) | type ConnectorSummary = { type GroupedConnectorSummaries (line 341) | type GroupedConnectorSummaries = Record; type DeletionAttemptSnapshot (line 345) | interface DeletionAttemptSnapshot { type CCPairDescriptor (line 352) | interface CCPairDescriptor { type FederatedConnectorConfig (line 360) | interface FederatedConnectorConfig { type FederatedConnectorDescriptor (line 365) | interface FederatedConnectorDescriptor { type CCPairSummary (line 373) | interface CCPairSummary { type FederatedConnectorSummary (line 380) | interface FederatedConnectorSummary { type DocumentSetSummary (line 387) | interface DocumentSetSummary { type Tag (line 399) | interface Tag { type StandardAnswerCategory (line 406) | interface StandardAnswerCategory { type StandardAnswer (line 411) | interface StandardAnswer { type AnswerFilterOption (line 422) | type AnswerFilterOption = type ChannelConfig (line 426) | interface ChannelConfig { type SlackBotResponseType (line 438) | type SlackBotResponseType = "quotes" | "citations"; type SlackChannelConfig (line 440) | interface SlackChannelConfig { type SlackChannelDescriptor (line 451) | interface SlackChannelDescriptor { type SlackBot (line 456) | type SlackBot = { type SlackBotTokens (line 473) | interface SlackBotTokens { type UserGroup (line 480) | interface UserGroup { type ValidSources (line 493) | enum ValidSources { type ValidAutoSyncSource (line 577) | type ValidAutoSyncSource = (typeof validAutoSyncSources)[number]; type ConfigurableSources (line 579) | type ConfigurableSources = Exclude< type OAuthSupportedSource (line 595) | type OAuthSupportedSource = (typeof oauthSupportedSources)[number]; type CredentialFieldSpec (line 598) | interface CredentialFieldSpec { type ConfigurationFieldSpec (line 607) | interface ConfigurationFieldSpec { type CredentialSchemaResponse (line 617) | interface CredentialSchemaResponse { type ConfigurationSchemaResponse (line 621) | interface ConfigurationSchemaResponse { type FederatedConnectorCreateRequest (line 625) | interface FederatedConnectorCreateRequest { type FederatedConnectorCreateResponse (line 631) | interface FederatedConnectorCreateResponse { type IndexingStatusRequest (line 636) | interface IndexingStatusRequest { FILE: web/src/lib/typingUtils.ts type Handler (line 3) | type Handler = (event: React.KeyboardEvent) => void; function handleKeyPress (line 5) | function handleKeyPress( function handleEnterPress (line 16) | function handleEnterPress( function useEscapePress (line 23) | function useEscapePress(callback: () => void, enabled?: boolean) { FILE: web/src/lib/updateSlackBotField.ts function updateSlackBotField (line 3) | async function updateSlackBotField( FILE: web/src/lib/urlBuilder.ts type QueryParams (line 1) | type QueryParams = { function buildApiPath (line 5) | function buildApiPath(base: string, params?: QueryParams): string { FILE: web/src/lib/user.ts type CustomRefreshTokenResponse (line 76) | interface CustomRefreshTokenResponse { function refreshToken (line 92) | async function refreshToken( function getUserDisplayName (line 117) | function getUserDisplayName(user: User | null): string { function getUserEmail (line 133) | function getUserEmail(user: User | null): string { function getUserInitials (line 148) | function getUserInitials( FILE: web/src/lib/userSS.ts type AuthTypeMetadata (line 7) | interface AuthTypeMetadata { FILE: web/src/lib/userSettings.ts function setUserDefaultModel (line 3) | async function setUserDefaultModel( function updateUserPersonalization (line 20) | async function updateUserPersonalization( FILE: web/src/lib/utils.ts constant URI_SCHEME_REGEX (line 13) | const URI_SCHEME_REGEX = /^[a-zA-Z][a-zA-Z\d+.-]*:/; constant BARE_EMAIL_REGEX (line 14) | const BARE_EMAIL_REGEX = /^[^\s@/]+@[^\s@/:]+\.[^\s@/:]+$/; constant INTERACTIVE_SELECTOR (line 16) | const INTERACTIVE_SELECTOR = function cn (line 19) | function cn(...inputs: ClassValue[]) { function ensureHrefProtocol (line 32) | function ensureHrefProtocol( function transformLinkUri (line 60) | function transformLinkUri(href: string): string | null { function isSubset (line 89) | function isSubset(parent: string[], child: string[]): boolean { function trinaryLogic (line 94) | function trinaryLogic( function noProp (line 109) | function noProp( function getFileExtension (line 122) | function getFileExtension(fileName: string): string { constant IMAGE_EXTENSIONS (line 133) | const IMAGE_EXTENSIONS = [ type ImageExtension (line 143) | type ImageExtension = (typeof IMAGE_EXTENSIONS)[number]; function isImageExtension (line 149) | function isImageExtension( function formatBytes (line 162) | function formatBytes( function isImageFile (line 186) | function isImageFile(fileName: string | null | undefined): boolean { constant CODE_EXTENSIONS (line 195) | const CODE_EXTENSIONS = [ function isCodeFile (line 248) | function isCodeFile(fileName: string | null | undefined): boolean { function getFileIcon (line 258) | function getFileIcon( function hasNonImageFiles (line 273) | function hasNonImageFiles( function mergeRefs (line 283) | function mergeRefs( FILE: web/src/lib/utilsSS.ts function buildClientUrl (line 5) | function buildClientUrl(path: string) { function buildUrl (line 12) | function buildUrl(path: string) { class UrlBuilder (line 19) | class UrlBuilder { method constructor (line 22) | constructor(baseUrl: string) { method addParam (line 31) | addParam(key: string, value: string | number | boolean): UrlBuilder { method addParams (line 36) | addParams(params: Record): UrlBuild... method toString (line 43) | toString(): string { method fromInternalUrl (line 51) | static fromInternalUrl(path: string): UrlBuilder { method fromClientUrl (line 55) | static fromClientUrl(path: string): UrlBuilder { function fetchSS (line 60) | async function fetchSS(url: string, options?: RequestInit) { FILE: web/src/providers/AppBackgroundProvider.tsx type AppBackgroundContextType (line 11) | interface AppBackgroundContextType { function AppBackgroundProvider (line 24) | function AppBackgroundProvider({ function useAppBackground (line 52) | function useAppBackground() { FILE: web/src/providers/AppProvider.tsx type AppProviderProps (line 34) | interface AppProviderProps { function AppProvider (line 38) | function AppProvider({ children }: AppProviderProps) { FILE: web/src/providers/AppSidebarProvider.tsx function setFoldedCookie (line 15) | function setFoldedCookie(folded: boolean) { type AppSidebarProviderProps (line 23) | interface AppSidebarProviderProps { function AppSidebarProvider (line 27) | function AppSidebarProvider({ children }: AppSidebarProviderProps) { type AppSidebarContextType (line 75) | interface AppSidebarContextType { function useAppSidebarContext (line 84) | function useAppSidebarContext() { FILE: web/src/providers/CustomAnalyticsScript.tsx function CustomAnalyticsScript (line 6) | function CustomAnalyticsScript() { FILE: web/src/providers/DynamicMetadata.tsx function DynamicMetadata (line 6) | function DynamicMetadata() { FILE: web/src/providers/ProductGatingWrapper.tsx function ProductGatingWrapper (line 7) | function ProductGatingWrapper({ FILE: web/src/providers/ProjectsContext.tsx function buildFileKey (line 85) | function buildFileKey(file: File): string { type ProjectsContextType (line 90) | interface ProjectsContextType { type ProjectsProviderProps (line 130) | interface ProjectsProviderProps { function ProjectsProvider (line 134) | function ProjectsProvider({ children }: ProjectsProviderProps) { function useProjectsContext (line 829) | function useProjectsContext(): ProjectsContextType { FILE: web/src/providers/QueryControllerProvider.tsx type AppMode (line 8) | type AppMode = "auto" | "search" | "chat"; type QueryState (line 10) | type QueryState = type QueryControllerValue (line 17) | interface QueryControllerValue { function useQueryController (line 53) | function useQueryController(): QueryControllerValue { FILE: web/src/providers/SWRConfigProvider.tsx function SWRConfigProvider (line 6) | function SWRConfigProvider({ FILE: web/src/providers/SettingsProvider.tsx function SettingsProvider (line 23) | function SettingsProvider({ function useSettingsContext (line 124) | function useSettingsContext() { function useVectorDbEnabled (line 134) | function useVectorDbEnabled(): boolean { FILE: web/src/providers/ToastProvider.tsx constant ANIMATION_DURATION (line 10) | const ANIMATION_DURATION = 200; constant MAX_TOAST_MESSAGE_LENGTH (line 11) | const MAX_TOAST_MESSAGE_LENGTH = 150; function levelProps (line 13) | function levelProps(level: ToastLevel): Record { function buildDescription (line 28) | function buildDescription(t: Toast): string | undefined { function ToastContainer (line 39) | function ToastContainer() { type ToastProviderProps (line 96) | interface ToastProviderProps { function ToastProvider (line 100) | function ToastProvider({ children }: ToastProviderProps) { FILE: web/src/providers/UserProvider.tsx type UserContextType (line 29) | interface UserContextType { function UserProvider (line 62) | function UserProvider({ children }: { children: React.ReactNode }) { function useUser (line 534) | function useUser() { FILE: web/src/providers/VoiceModeProvider.tsx constant TTS_WS_PATH (line 18) | const TTS_WS_PATH = "/voice/synthesize/stream"; constant TTS_WS_PATH_PROXIED (line 21) | const TTS_WS_PATH_PROXIED = "/api/voice/synthesize/stream"; constant WS_TOKEN_ENDPOINT (line 24) | const WS_TOKEN_ENDPOINT = "/api/voice/ws-token"; constant AUDIO_START_DELAY_MS (line 27) | const AUDIO_START_DELAY_MS = 100; constant END_CHECK_INTERVAL_MS (line 30) | const END_CHECK_INTERVAL_MS = 200; constant WS_END_RETRY_DELAY_MS (line 33) | const WS_END_RETRY_DELAY_MS = 100; constant FINALIZE_RETRY_DELAY_MS (line 36) | const FINALIZE_RETRY_DELAY_MS = 50; constant FAST_START_DELAY_MS (line 39) | const FAST_START_DELAY_MS = 200; constant FLUSH_DELAY_MS (line 42) | const FLUSH_DELAY_MS = 250; constant TTS_LOADING_TIMEOUT_MS (line 45) | const TTS_LOADING_TIMEOUT_MS = 60_000; constant TTS_SESSION_TIMEOUT_MS (line 49) | const TTS_SESSION_TIMEOUT_MS = 5 * 60 * 1000; constant BASE_CHARS_PER_SECOND (line 52) | const BASE_CHARS_PER_SECOND = 15; constant REVEAL_LEAD_SECONDS (line 55) | const REVEAL_LEAD_SECONDS = 0.28; constant MAX_CATCHUP_CHARS_PER_FRAME (line 58) | const MAX_CATCHUP_CHARS_PER_FRAME = 8; type VoiceModeContextType (line 60) | interface VoiceModeContextType { function cleanTextForTTS (line 110) | function cleanTextForTTS(text: string): string { function findChunkBoundary (line 126) | function findChunkBoundary(text: string): number { function VoiceModeProvider (line 160) | function VoiceModeProvider({ children }: { children: React.ReactNode }) { function useVoiceMode (line 1051) | function useVoiceMode(): VoiceModeContextType { FILE: web/src/proxy.ts constant FASTAPI_USERS_AUTH_COOKIE_NAME (line 10) | const FASTAPI_USERS_AUTH_COOKIE_NAME = "fastapiusersauth"; constant ANONYMOUS_USER_COOKIE_NAME (line 11) | const ANONYMOUS_USER_COOKIE_NAME = "onyx_anonymous_user"; constant PROTECTED_ROUTES (line 14) | const PROTECTED_ROUTES = ["/app", "/admin", "/agents", "/connector"]; constant PUBLIC_ROUTES (line 17) | const PUBLIC_ROUTES = ["/auth", "/anonymous", "/_next", "/api"]; constant EE_ROUTES (line 45) | const EE_ROUTES = [ function proxy (line 55) | async function proxy(request: NextRequest) { FILE: web/src/refresh-components/Attachment.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/Attachment.tsx type AttachmentsProps (line 4) | interface AttachmentsProps { function Attachments (line 9) | function Attachments({ fileName, open }: AttachmentsProps) { FILE: web/src/refresh-components/Calendar.stories.tsx type Story (line 24) | type Story = StoryObj; function SingleSelectDemo (line 30) | function SingleSelectDemo() { function RangeSelectDemo (line 43) | function RangeSelectDemo() { FILE: web/src/refresh-components/Calendar.tsx function CalendarDayButton (line 10) | function CalendarDayButton({ function Calendar (line 43) | function Calendar({ FILE: web/src/refresh-components/CharacterCount.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/CharacterCount.tsx type CharacterCountProps (line 2) | interface CharacterCountProps { function CharacterCount (line 6) | function CharacterCount({ value, limit }: CharacterCountProps) { FILE: web/src/refresh-components/Chip.stories.tsx type Story (line 12) | type Story = StoryObj; FILE: web/src/refresh-components/Chip.tsx type ChipProps (line 7) | interface ChipProps { function Chip (line 29) | function Chip({ FILE: web/src/refresh-components/Code.stories.tsx type Story (line 19) | type Story = StoryObj; FILE: web/src/refresh-components/Code.tsx type CodeProps (line 4) | interface CodeProps extends WithoutStyles; function ControlledDemo (line 55) | function ControlledDemo() { FILE: web/src/refresh-components/ColorSwatch.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/ColorSwatch.tsx type ColorSwatchProps (line 14) | interface ColorSwatchProps { function ColorSwatch (line 21) | function ColorSwatch({ light, dark }: ColorSwatchProps) { FILE: web/src/refresh-components/ConnectionProviderIcon.stories.tsx type Story (line 15) | type Story = StoryObj; FILE: web/src/refresh-components/ConnectionProviderIcon.tsx type ConnectionProviderIconProps (line 4) | type ConnectionProviderIconProps = { FILE: web/src/refresh-components/Divider.stories.tsx type Story (line 13) | type Story = StoryObj; function FoldableDividerDemo (line 44) | function FoldableDividerDemo() { FILE: web/src/refresh-components/Divider.tsx type DividerProps (line 10) | interface DividerProps function Divider (line 71) | function Divider({ FILE: web/src/refresh-components/EmptyMessage.stories.tsx type Story (line 12) | type Story = StoryObj; FILE: web/src/refresh-components/EmptyMessage.tsx type EmptyMessageProps (line 37) | interface EmptyMessageProps { function EmptyMessage (line 43) | function EmptyMessage({ FILE: web/src/refresh-components/EnabledCount.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/EnabledCount.tsx type EnabledCountProps (line 6) | interface EnabledCountProps { FILE: web/src/refresh-components/FadingEdgeContainer.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/FadingEdgeContainer.tsx type FadingEdgeContainerProps (line 4) | interface FadingEdgeContainerProps { FILE: web/src/refresh-components/FrostedDiv.stories.tsx type Story (line 27) | type Story = StoryObj; FILE: web/src/refresh-components/FrostedDiv.tsx type FrostedDivProps (line 6) | interface FrostedDivProps extends React.HTMLAttributes { function FrostedDiv (line 57) | function FrostedDiv({ FILE: web/src/refresh-components/InlineExternalLink.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/InlineExternalLink.tsx type InlineExternalLinkProps (line 3) | interface InlineExternalLinkProps { function InlineExternalLink (line 9) | function InlineExternalLink({ FILE: web/src/refresh-components/Logo.tsx type LogoProps (line 14) | interface LogoProps { function Logo (line 20) | function Logo({ folded, size, className }: LogoProps) { FILE: web/src/refresh-components/Modal.stories.tsx type Story (line 17) | type Story = StoryObj; function ModalDemo (line 19) | function ModalDemo() { function LargeModalDemo (line 64) | function LargeModalDemo() { function GrayBackgroundDemo (line 107) | function GrayBackgroundDemo() { function NoOverlayDemo (line 144) | function NoOverlayDemo() { FILE: web/src/refresh-components/Modal.tsx type ModalContextValue (line 60) | interface ModalContextValue { type ModalContentProps (line 119) | interface ModalContentProps type ModalHeaderProps (line 428) | interface ModalHeaderProps extends Omit, "ti... type ModalBodyProps (line 533) | interface ModalBodyProps extends WithoutStyles { type BasicModalFooterProps (line 604) | interface BasicModalFooterProps { function BasicModalFooter (line 610) | function BasicModalFooter({ FILE: web/src/refresh-components/OverflowDiv.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/OverflowDiv.tsx type VerticalShadowScrollerProps (line 7) | interface VerticalShadowScrollerProps constant SCROLL_POSITION_PREFIX (line 26) | const SCROLL_POSITION_PREFIX = "onyx-scroll-"; function OverflowDiv (line 28) | function OverflowDiv({ FILE: web/src/refresh-components/Popover.stories.tsx type Story (line 24) | type Story = StoryObj; FILE: web/src/refresh-components/Popover.tsx type PopoverWidths (line 110) | type PopoverWidths = "fit" | "sm" | "md" | "lg" | "xl" | "trigger"; type PopoverContentProps (line 119) | interface PopoverContentProps function PopoverContent (line 128) | function PopoverContent({ function SeparatorHelper (line 168) | function SeparatorHelper() { type PopoverMenuProps (line 207) | interface PopoverMenuProps { function PopoverMenu (line 214) | function PopoverMenu({ FILE: web/src/refresh-components/PreviewImage.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/PreviewImage.tsx type PreviewImageProps (line 3) | interface PreviewImageProps { function PreviewImage (line 9) | function PreviewImage({ FILE: web/src/refresh-components/ScrollIndicatorDiv.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/ScrollIndicatorDiv.tsx constant SCROLL_THROTTLE_MS (line 7) | const SCROLL_THROTTLE_MS = 16; type ScrollIndicatorDivProps (line 39) | interface ScrollIndicatorDivProps function ScrollIndicatorDiv (line 55) | function ScrollIndicatorDiv({ FILE: web/src/refresh-components/Separator.stories.tsx type Story (line 11) | type Story = StoryObj; FILE: web/src/refresh-components/Separator.tsx type SeparatorProps (line 7) | interface SeparatorProps FILE: web/src/refresh-components/ShadowDiv.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/ShadowDiv.tsx type ShadowDivProps (line 6) | interface ShadowDivProps extends React.HTMLAttributes { function ShadowDiv (line 56) | function ShadowDiv({ FILE: web/src/refresh-components/SimpleCollapsible.stories.tsx type Story (line 19) | type Story = StoryObj; FILE: web/src/refresh-components/SimpleCollapsible.tsx type SimpleCollapsibleContextValue (line 56) | interface SimpleCollapsibleContextValue { function useSimpleCollapsible (line 61) | function useSimpleCollapsible() { type SimpleCollapsibleRootProps (line 103) | interface SimpleCollapsibleRootProps type SimpleCollapsibleHeaderProps (line 182) | interface SimpleCollapsibleHeaderProps FILE: web/src/refresh-components/SimplePopover.stories.tsx type Story (line 16) | type Story = StoryObj; FILE: web/src/refresh-components/SimplePopover.tsx type SimplePopoverProps (line 6) | interface SimplePopoverProps function SimplePopover (line 12) | function SimplePopover({ FILE: web/src/refresh-components/SimpleTabs.stories.tsx type Story (line 11) | type Story = StoryObj; FILE: web/src/refresh-components/SimpleTabs.tsx type TabDefinition (line 12) | interface TabDefinition { type SimpleTabsProps (line 30) | interface SimpleTabsProps { function SimpleTabs (line 82) | function SimpleTabs({ FILE: web/src/refresh-components/SimpleTooltip.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/SimpleTooltip.tsx type SimpleTooltipProps (line 45) | interface SimpleTooltipProps function SimpleTooltip (line 53) | function SimpleTooltip({ FILE: web/src/refresh-components/Spacer.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/Spacer.tsx type DirectionProps (line 1) | type DirectionProps = { type SpacerProps (line 6) | type SpacerProps = DirectionProps & function Spacer (line 9) | function Spacer({ FILE: web/src/refresh-components/Tabs.stories.tsx type Story (line 23) | type Story = StoryObj; FILE: web/src/refresh-components/Tabs.tsx type TabsContextValue (line 24) | interface TabsContextValue { constant SCROLL_TOLERANCE_PX (line 94) | const SCROLL_TOLERANCE_PX = 1; constant SCROLL_AMOUNT_PX (line 97) | const SCROLL_AMOUNT_PX = 200; type IndicatorStyle (line 104) | interface IndicatorStyle { function usePillIndicator (line 120) | function usePillIndicator( type ScrollState (line 206) | interface ScrollState { function useHorizontalScroll (line 223) | function useHorizontalScroll( function PillIndicator (line 297) | function PillIndicator({ type TabsListProps (line 349) | interface TabsListProps type TabsTriggerProps (line 546) | interface TabsTriggerProps FILE: web/src/refresh-components/TextSeparator.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/TextSeparator.tsx type TextSeparatorProps (line 5) | interface TextSeparatorProps { function TextSeparator (line 11) | function TextSeparator({ FILE: web/src/refresh-components/avatars/AgentAvatar.tsx type AgentAvatarProps (line 11) | interface AgentAvatarProps { function AgentAvatar (line 16) | function AgentAvatar({ FILE: web/src/refresh-components/avatars/CustomAgentAvatar.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/avatars/CustomAgentAvatar.tsx type IconConfig (line 31) | interface IconConfig { type SvgOctagonWrapperProps (line 70) | interface SvgOctagonWrapperProps { function SvgOctagonWrapper (line 75) | function SvgOctagonWrapper({ size, children }: SvgOctagonWrapperProps) { type CustomAgentAvatarProps (line 86) | interface CustomAgentAvatarProps { function CustomAgentAvatar (line 94) | function CustomAgentAvatar({ FILE: web/src/refresh-components/avatars/UserAvatar.tsx type UserAvatarProps (line 7) | interface UserAvatarProps { function UserAvatar (line 12) | function UserAvatar({ FILE: web/src/refresh-components/buttons/AttachmentButton.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/AttachmentButton.tsx type AttachmentProps (line 77) | interface AttachmentProps function AttachmentButton (line 95) | function AttachmentButton({ FILE: web/src/refresh-components/buttons/BackButton.stories.tsx type Story (line 19) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/BackButton.tsx type BackButtonProps (line 8) | interface BackButtonProps { function BackButton (line 13) | function BackButton({ FILE: web/src/refresh-components/buttons/Button.stories.tsx type Story (line 20) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/Button.tsx type ButtonProps (line 10) | interface ButtonProps constant BUTTON_SIZE_CLASS_MAP (line 37) | const BUTTON_SIZE_CLASS_MAP = { FILE: web/src/refresh-components/buttons/ButtonRenaming.stories.tsx type Story (line 28) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/ButtonRenaming.tsx type ButtonRenamingProps (line 8) | interface ButtonRenamingProps { function ButtonRenaming (line 15) | function ButtonRenaming({ FILE: web/src/refresh-components/buttons/CopyIconButton.stories.tsx type Story (line 19) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/CopyIconButton.tsx type CopyState (line 7) | type CopyState = "idle" | "copied" | "error"; type DistributiveOmit (line 10) | type DistributiveOmit = T extends unknown type CopyIconButtonProps (line 14) | type CopyIconButtonProps = DistributiveOmit< function CopyIconButton (line 24) | function CopyIconButton({ FILE: web/src/refresh-components/buttons/CreateButton.stories.tsx type Story (line 19) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/CreateButton.tsx type CreateButtonProps (line 7) | interface CreateButtonProps function CreateButton (line 12) | function CreateButton({ FILE: web/src/refresh-components/buttons/IconButton.stories.tsx type Story (line 20) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/IconButton.tsx type IconButtonProps (line 283) | interface IconButtonProps function IconButton (line 314) | function IconButton({ FILE: web/src/refresh-components/buttons/LineItem.stories.tsx type Story (line 30) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/LineItem.tsx type LineItemProps (line 61) | interface LineItemProps function LineItem (line 146) | function LineItem({ FILE: web/src/refresh-components/buttons/SelectButton.stories.tsx type Story (line 20) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/SelectButton.tsx constant MARGIN (line 10) | const MARGIN = 5; type SelectButtonProps (line 83) | interface SelectButtonProps { function SelectButton (line 103) | function SelectButton({ FILE: web/src/refresh-components/buttons/SquareButton.stories.tsx type Story (line 20) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/SquareButton.tsx type SquareButtonProps (line 7) | interface SquareButtonProps FILE: web/src/refresh-components/buttons/Tag.stories.tsx type Story (line 20) | type Story = StoryObj; FILE: web/src/refresh-components/buttons/Tag.tsx type TagProps (line 22) | interface TagProps { function Tag (line 32) | function Tag({ FILE: web/src/refresh-components/buttons/source-tag/SourceTag.tsx function useIsTruncated (line 63) | function useIsTruncated(text: string) { type IconStackProps (line 134) | interface IconStackProps { type TextStyleProps (line 185) | interface TextStyleProps { type QueryTextProps (line 197) | interface QueryTextProps { type SourceTagProps (line 276) | interface SourceTagProps { FILE: web/src/refresh-components/buttons/source-tag/SourceTagDetailsCard.tsx type SourceInfo (line 19) | interface SourceInfo { type SourceTagDetailsCardProps (line 36) | interface SourceTagDetailsCardProps { type MetadataChipProps (line 43) | interface MetadataChipProps { FILE: web/src/refresh-components/buttons/source-tag/sourceTagUtils.ts constant MAX_TITLE_LENGTH (line 8) | const MAX_TITLE_LENGTH = 40; function truncateText (line 10) | function truncateText(str: string, maxLength: number): string { function documentToSourceInfo (line 18) | function documentToSourceInfo(doc: OnyxDocument): SourceInfo { function questionToSourceInfo (line 38) | function questionToSourceInfo( function citationsToSourceInfoArray (line 56) | function citationsToSourceInfoArray( function getDisplayNameForSource (line 88) | function getDisplayNameForSource(doc: OnyxDocument): string { FILE: web/src/refresh-components/cards/Card.stories.tsx type Story (line 12) | type Story = StoryObj; FILE: web/src/refresh-components/cards/Card.tsx type CardVariant (line 46) | type CardVariant = type CardProps (line 58) | interface CardProps extends SectionProps { function Card (line 67) | function Card({ FILE: web/src/refresh-components/commandmenu/CommandMenu.stories.tsx type Story (line 23) | type Story = StoryObj; FILE: web/src/refresh-components/commandmenu/CommandMenu.test.tsx function setupUser (line 33) | function setupUser() { function TestCommandMenu (line 40) | function TestCommandMenu({ function ContextTestComponent (line 100) | function ContextTestComponent() { function TestCommandMenuWithContext (line 117) | function TestCommandMenuWithContext({ FILE: web/src/refresh-components/commandmenu/CommandMenu.tsx function useCommandMenuContext (line 43) | function useCommandMenuContext() { function getOrderedItems (line 61) | function getOrderedItems(): string[] { function CommandMenuRoot (line 89) | function CommandMenuRoot({ open, onOpenChange, children }: CommandMenuPr... function CommandMenuHeader (line 433) | function CommandMenuHeader({ function CommandMenuList (line 519) | function CommandMenuList({ children, emptyMessage }: CommandMenuListProp... function CommandMenuFilter (line 564) | function CommandMenuFilter({ function CommandMenuItem (line 630) | function CommandMenuItem({ function CommandMenuAction (line 688) | function CommandMenuAction({ function CommandMenuFooter (line 746) | function CommandMenuFooter({ leftActions }: CommandMenuFooterProps) { function CommandMenuFooterAction (line 770) | function CommandMenuFooterAction({ FILE: web/src/refresh-components/commandmenu/types.ts type CommandMenuFilter (line 10) | interface CommandMenuFilter { type CommandMenuProps (line 19) | interface CommandMenuProps { type CommandMenuContentProps (line 28) | interface CommandMenuContentProps { type CommandMenuHeaderProps (line 35) | interface CommandMenuHeaderProps { type CommandMenuListProps (line 48) | interface CommandMenuListProps { type CommandMenuFilterProps (line 56) | interface CommandMenuFilterProps { type CommandMenuItemProps (line 72) | interface CommandMenuItemProps { type CommandMenuActionProps (line 90) | interface CommandMenuActionProps { type CommandMenuFooterProps (line 112) | interface CommandMenuFooterProps { type CommandMenuFooterActionProps (line 119) | interface CommandMenuFooterActionProps { type CommandMenuContextValue (line 128) | interface CommandMenuContextValue { FILE: web/src/refresh-components/contexts/ModalContext.tsx type ProviderProps (line 7) | interface ProviderProps { type ModalCreationInterface (line 11) | interface ModalCreationInterface { function useCreateModal (line 17) | function useCreateModal(): ModalCreationInterface { type ModalInterface (line 43) | interface ModalInterface { function useModal (line 48) | function useModal(): ModalInterface { function useModalClose (line 60) | function useModalClose(onClose?: () => void): (() => void) | undefined { FILE: web/src/refresh-components/form/CheckboxField.tsx type CheckboxFieldProps (line 7) | interface CheckboxFieldProps extends Omit { function UnlabeledCheckboxField (line 11) | function UnlabeledCheckboxField({ FILE: web/src/refresh-components/form/FormField.stories.tsx type Story (line 12) | type Story = StoryObj; FILE: web/src/refresh-components/form/FormikField.tsx type FormikFieldProps (line 12) | type FormikFieldProps = { function FormikFieldComponent (line 22) | function FormikFieldComponent({ name, render }: FormikFieldProps) { FILE: web/src/refresh-components/form/FormikFields.stories.tsx function FormikWrapper (line 38) | function FormikWrapper({ type Story (line 71) | type Story = StoryObj; FILE: web/src/refresh-components/form/InputDatePickerField.tsx type InputDatePickerFieldProps (line 9) | interface InputDatePickerFieldProps function InputDatePickerField (line 15) | function InputDatePickerField({ FILE: web/src/refresh-components/form/InputSelectField.tsx type InputSelectFieldProps (line 9) | interface InputSelectFieldProps function InputSelectField (line 14) | function InputSelectField({ FILE: web/src/refresh-components/form/InputTextAreaField.tsx type InputTextAreaFieldProps (line 9) | interface InputTextAreaFieldProps function InputTextAreaField (line 14) | function InputTextAreaField({ FILE: web/src/refresh-components/form/InputTypeInElementField.tsx type InputTypeInElementFieldProps (line 12) | interface InputTypeInElementFieldProps function InputTypeInElementField (line 19) | function InputTypeInElementField({ FILE: web/src/refresh-components/form/InputTypeInField.tsx type InputTypeInFieldProps (line 9) | interface InputTypeInFieldProps function InputTypeInField (line 14) | function InputTypeInField({ FILE: web/src/refresh-components/form/Label.stories.tsx type Story (line 11) | type Story = StoryObj; FILE: web/src/refresh-components/form/Label.tsx type LabelProps (line 21) | interface LabelProps function Label (line 34) | function Label({ FILE: web/src/refresh-components/form/LabeledCheckboxField.tsx type CheckboxFieldProps (line 9) | interface CheckboxFieldProps { FILE: web/src/refresh-components/form/PasswordInputTypeInField.tsx type PasswordInputTypeInFieldProps (line 9) | interface PasswordInputTypeInFieldProps function PasswordInputTypeInField (line 14) | function PasswordInputTypeInField({ FILE: web/src/refresh-components/form/SwitchField.tsx type SwitchFieldProps (line 7) | interface SwitchFieldProps extends Omit { function SwitchField (line 11) | function SwitchField({ FILE: web/src/refresh-components/form/types.ts type FormFieldState (line 2) | type FormFieldState = "idle" | "success" | "error"; type APIFormFieldState (line 3) | type APIFormFieldState = FormFieldState | "loading"; type FieldContextType (line 5) | interface FieldContextType { type FormFieldRootProps (line 13) | type FormFieldRootProps = React.HTMLAttributes & { type LabelProps (line 20) | type LabelProps = React.HTMLAttributes & { type ControlProps (line 28) | type ControlProps = React.PropsWithChildren<{ type DescriptionProps (line 32) | type DescriptionProps = React.HTMLAttributes; type MessageByState (line 33) | type MessageByState = Partial< type APIMessageByState (line 36) | type APIMessageByState = Partial< type MessageProps (line 40) | type MessageProps = React.HTMLAttributes & { type APIMessageProps (line 45) | type APIMessageProps = React.HTMLAttributes & { FILE: web/src/refresh-components/inputs/Checkbox.stories.tsx type Story (line 19) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/Checkbox.tsx type CheckboxProps (line 29) | interface CheckboxProps function CheckboxInner (line 37) | function CheckboxInner( FILE: web/src/refresh-components/inputs/InputAvatar.stories.tsx type Story (line 26) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputChipField.stories.tsx type Story (line 23) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputChipField.tsx type ChipItem (line 15) | interface ChipItem { type InputChipFieldProps (line 22) | interface InputChipFieldProps { function InputChipField (line 58) | function InputChipField({ FILE: web/src/refresh-components/inputs/InputComboBox/InputComboBox.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputComboBox/InputComboBox.test.tsx function setupUser (line 27) | function setupUser() { FILE: web/src/refresh-components/inputs/InputComboBox/InputComboBox.tsx method apply (line 183) | apply({ rects, elements }) { FILE: web/src/refresh-components/inputs/InputComboBox/components/ComboBoxDropdown.tsx type ComboBoxDropdownProps (line 7) | interface ComboBoxDropdownProps { FILE: web/src/refresh-components/inputs/InputComboBox/components/OptionItem.tsx type OptionItemProps (line 6) | interface OptionItemProps { FILE: web/src/refresh-components/inputs/InputComboBox/components/OptionsList.tsx type OptionsListProps (line 9) | interface OptionsListProps { FILE: web/src/refresh-components/inputs/InputComboBox/hooks.ts type UseComboBoxStateProps (line 8) | interface UseComboBoxStateProps { function useComboBoxState (line 17) | function useComboBoxState({ value, options }: UseComboBoxStateProps) { type UseComboBoxKeyboardProps (line 69) | interface UseComboBoxKeyboardProps { function useComboBoxKeyboard (line 84) | function useComboBoxKeyboard({ type UseOptionFilteringProps (line 169) | interface UseOptionFilteringProps { type FilterResult (line 174) | interface FilterResult { function useOptionFiltering (line 184) | function useOptionFiltering({ FILE: web/src/refresh-components/inputs/InputComboBox/types.ts type ComboBoxOption (line 1) | type ComboBoxOption = { type InputComboBoxProps (line 8) | interface InputComboBoxProps FILE: web/src/refresh-components/inputs/InputComboBox/utils/aria.ts function sanitizeOptionId (line 7) | function sanitizeOptionId(value: string): string { type BuildAriaAttributesProps (line 11) | interface BuildAriaAttributesProps { function buildAriaAttributes (line 25) | function buildAriaAttributes({ FILE: web/src/refresh-components/inputs/InputComboBox/utils/validation.ts type UseValidationProps (line 4) | interface UseValidationProps { type ValidationResult (line 12) | interface ValidationResult { function useValidation (line 23) | function useValidation({ FILE: web/src/refresh-components/inputs/InputDatePicker.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputDatePicker.tsx type InputDatePickerProps (line 12) | interface InputDatePickerProps { function extractYear (line 21) | function extractYear(date: Date | null): number { function clampToMaxDate (line 25) | function clampToMaxDate(date: Date, maxDate?: Date): Date { function InputDatePicker (line 33) | function InputDatePicker({ FILE: web/src/refresh-components/inputs/InputFile.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputFile.tsx type InputFileProps (line 11) | interface InputFileProps function InputFile (line 36) | function InputFile({ FILE: web/src/refresh-components/inputs/InputImage.stories.tsx type Story (line 29) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputImage.tsx type ImageState (line 11) | type ImageState = "empty" | "withImage" | "dragActive"; type AbledState (line 12) | type AbledState = "enabled" | "disabled"; type InputImageProps (line 99) | interface InputImageProps { function InputImage (line 124) | function InputImage({ FILE: web/src/refresh-components/inputs/InputKeyValue.stories.tsx type Story (line 23) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputKeyValue.tsx type KeyValue (line 88) | type KeyValue = { key: string; value: string }; type KeyValueError (line 90) | type KeyValueError = { constant GRID_COLS (line 102) | const GRID_COLS = { type KeyValueInputItemProps (line 107) | interface KeyValueInputItemProps { function KeyValueInputItem (line 120) | function KeyValueInputItem({ type KeyValueInputProps (line 195) | interface KeyValueInputProps function KeyValueInput (line 245) | function KeyValueInput({ FILE: web/src/refresh-components/inputs/InputNumber.stories.tsx type Story (line 21) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputNumber.tsx type InputNumberProps (line 45) | interface InputNumberProps { function InputNumber (line 59) | function InputNumber({ FILE: web/src/refresh-components/inputs/InputSearch.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputSearch.tsx type InputSearchProps (line 33) | interface InputSearchProps function InputSearch (line 45) | function InputSearch({ FILE: web/src/refresh-components/inputs/InputSelect.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputSelect.tsx type SelectedItemDisplay (line 24) | interface SelectedItemDisplay { type InputSelectContextValue (line 31) | interface InputSelectContextValue { type InputSelectRootProps (line 90) | interface InputSelectRootProps function InputSelectRoot (line 101) | function InputSelectRoot({ type InputSelectTriggerProps (line 191) | interface InputSelectTriggerProps function InputSelectTrigger (line 198) | function InputSelectTrigger({ function InputSelectContent (line 284) | function InputSelectContent({ type InputSelectItemProps (line 335) | interface InputSelectItemProps function InputSelectItem (line 343) | function InputSelectItem({ function InputSelectGroup (line 415) | function InputSelectGroup({ function InputSelectLabel (line 436) | function InputSelectLabel({ function InputSelectSeparator (line 468) | function InputSelectSeparator({ FILE: web/src/refresh-components/inputs/InputTextArea.stories.tsx type Story (line 21) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputTextArea.tsx type InputTextAreaProps (line 50) | interface InputTextAreaProps FILE: web/src/refresh-components/inputs/InputTypeIn.stories.tsx type Story (line 21) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/InputTypeIn.tsx type InputTypeInProps (line 67) | interface InputTypeInProps FILE: web/src/refresh-components/inputs/ListFieldInput.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/ListFieldInput.tsx type ListFieldInputProps (line 5) | interface ListFieldInputProps { function ListFieldInput (line 22) | function ListFieldInput({ FILE: web/src/refresh-components/inputs/PasswordInputTypeIn.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/PasswordInputTypeIn.tsx constant MASK_CHARACTER (line 18) | const MASK_CHARACTER = "∗"; constant BACKEND_PLACEHOLDER_PATTERN (line 21) | const BACKEND_PLACEHOLDER_PATTERN = /^•+$/; function isBackendPlaceholder (line 27) | function isBackendPlaceholder(value: string): boolean { type SelectionRange (line 31) | interface SelectionRange { type MaskedInputChangeResult (line 36) | interface MaskedInputChangeResult { function computeMaskedInputChange (line 54) | function computeMaskedInputChange( type PasswordInputTypeInProps (line 122) | interface PasswordInputTypeInProps function PasswordInputTypeIn (line 161) | function PasswordInputTypeIn({ FILE: web/src/refresh-components/inputs/Switch.stories.tsx type Story (line 19) | type Story = StoryObj; FILE: web/src/refresh-components/inputs/Switch.tsx type SwitchProps (line 7) | interface SwitchProps function handleClick (line 40) | function handleClick(event: React.MouseEvent) { FILE: web/src/refresh-components/inputs/styles.ts type Variants (line 1) | type Variants = type ClassNamesMap (line 8) | type ClassNamesMap = Record; constant MIN_WIDTH_CLASS (line 10) | const MIN_WIDTH_CLASS = "min-w-[14rem]"; FILE: web/src/refresh-components/layouts/ConfirmationModalLayout.stories.tsx type Story (line 17) | type Story = StoryObj; FILE: web/src/refresh-components/layouts/ConfirmationModalLayout.tsx type ConfirmationModalProps (line 10) | interface ConfirmationModalProps { function ConfirmationModalLayout (line 23) | function ConfirmationModalLayout({ FILE: web/src/refresh-components/loaders/SimpleLoader.stories.tsx type Story (line 11) | type Story = StoryObj; FILE: web/src/refresh-components/loaders/SimpleLoader.tsx function SimpleLoader (line 5) | function SimpleLoader({ className, ...props }: IconProps) { FILE: web/src/refresh-components/messages/FieldMessage.stories.tsx type Story (line 11) | type Story = StoryObj; FILE: web/src/refresh-components/messages/FieldMessage.tsx type MessageVariant (line 10) | type MessageVariant = type FieldMessageRootProps (line 27) | interface FieldMessageRootProps extends React.HTMLAttributes; FILE: web/src/refresh-components/messages/InfoBlock.tsx type InfoBlockProps (line 8) | interface InfoBlockProps extends React.HTMLAttributes { FILE: web/src/refresh-components/messages/Message.stories.tsx type Story (line 11) | type Story = StoryObj; FILE: web/src/refresh-components/messages/Message.tsx type MessageProps (line 200) | interface MessageProps extends React.HTMLAttributes { function MessageInner (line 235) | function MessageInner( FILE: web/src/refresh-components/modals/MemoriesModal.tsx type MemoryItemProps (line 27) | interface MemoryItemProps { function MemoryItem (line 39) | function MemoryItem({ function resolveTargetMemoryId (line 139) | function resolveTargetMemoryId( type MemoriesModalProps (line 155) | interface MemoriesModalProps { function MemoriesModal (line 165) | function MemoriesModal({ FILE: web/src/refresh-components/popovers/ActionsPopover/ActionLineItem.tsx type ActionItemProps (line 21) | interface ActionItemProps { function ActionLineItem (line 43) | function ActionLineItem({ FILE: web/src/refresh-components/popovers/ActionsPopover/MCPLineItem.tsx type MCPServer (line 24) | interface MCPServer { type MCPLineItemProps (line 37) | interface MCPLineItemProps { function MCPLineItem (line 48) | function MCPLineItem({ FILE: web/src/refresh-components/popovers/ActionsPopover/SwitchList.tsx type SwitchListItem (line 13) | interface SwitchListItem { type SwitchListProps (line 24) | interface SwitchListProps { function SwitchList (line 36) | function SwitchList({ FILE: web/src/refresh-components/popovers/ActionsPopover/index.tsx function buildTooltipMessage (line 46) | function buildTooltipMessage( constant TOOL_DESCRIPTIONS (line 65) | const TOOL_DESCRIPTIONS: Record = { constant DEFAULT_TOOL_DESCRIPTION (line 72) | const DEFAULT_TOOL_DESCRIPTION = "This action is not configured yet."; function getToolTooltip (line 74) | function getToolTooltip( constant ADMIN_CONFIG_LINKS (line 86) | const ADMIN_CONFIG_LINKS: Record; FILE: web/src/refresh-components/skeletons/ChatSessionSkeleton.tsx function ChatSessionSkeleton (line 1) | function ChatSessionSkeleton() { FILE: web/src/refresh-components/skeletons/SidebarTabSkeleton.stories.tsx type Story (line 14) | type Story = StoryObj; FILE: web/src/refresh-components/skeletons/SidebarTabSkeleton.tsx type SidebarTabSkeletonProps (line 3) | interface SidebarTabSkeletonProps { function SidebarTabSkeleton (line 7) | function SidebarTabSkeleton({ FILE: web/src/refresh-components/texts/ExpandableTextDisplay.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/texts/ExpandableTextDisplay.tsx type ExpandableTextDisplayProps (line 12) | interface ExpandableTextDisplayProps { function getContentSize (line 35) | function getContentSize(text: string): string { function getLineCount (line 42) | function getLineCount(text: string): number { function getLastLines (line 49) | function getLastLines( function downloadAsTxt (line 69) | function downloadAsTxt(content: string, filename: string) { constant CONTAINER_TAGS (line 85) | const CONTAINER_TAGS = new Set([ function ExpandableTextDisplay (line 112) | function ExpandableTextDisplay({ FILE: web/src/refresh-components/texts/Text.stories.tsx type Story (line 11) | type Story = StoryObj; FILE: web/src/refresh-components/texts/Text.tsx type TextProps (line 60) | interface TextProps extends Omit, "as"> { function Text (line 100) | function Text({ FILE: web/src/refresh-components/texts/Truncated.stories.tsx type Story (line 11) | type Story = StoryObj; FILE: web/src/refresh-components/texts/Truncated.tsx function useTruncated (line 17) | function useTruncated(children: React.ReactNode) { type TruncatedProps (line 44) | interface TruncatedProps extends TextProps { function Truncated (line 54) | function Truncated({ FILE: web/src/refresh-components/tiles/ButtonTile.stories.tsx type Story (line 19) | type Story = StoryObj; FILE: web/src/refresh-components/tiles/ButtonTile.tsx type ButtonTileProps (line 12) | interface ButtonTileProps { function ButtonTile (line 24) | function ButtonTile({ FILE: web/src/refresh-components/tiles/FileTile.stories.tsx type Story (line 22) | type Story = StoryObj; FILE: web/src/refresh-components/tiles/FileTile.tsx type FileTileState (line 15) | type FileTileState = "default" | "processing" | "disabled"; type FileTileProps (line 17) | interface FileTileProps { type RemoveButtonProps (line 30) | interface RemoveButtonProps { function RemoveButton (line 34) | function RemoveButton({ onRemove }: RemoveButtonProps) { function FileTile (line 69) | function FileTile({ FILE: web/src/refresh-pages/AgentEditorPage.tsx type AgentIconEditorProps (line 101) | interface AgentIconEditorProps { function FormWarningsEffect (line 105) | function FormWarningsEffect() { function AgentIconEditor (line 123) | function AgentIconEditor({ existingAgent }: AgentIconEditorProps) { type OpenApiToolCardProps (line 275) | interface OpenApiToolCardProps { function OpenApiToolCard (line 279) | function OpenApiToolCard({ tool }: OpenApiToolCardProps) { type MCPServerCardProps (line 294) | interface MCPServerCardProps { function MCPServerCard (line 300) | function MCPServerCard({ function StarterMessages (line 405) | function StarterMessages() { type AgentEditorPageProps (line 448) | interface AgentEditorPageProps { function AgentEditorPage (line 453) | function AgentEditorPage({ FILE: web/src/refresh-pages/AgentsNavigationPage.tsx type AgentsSectionProps (line 35) | interface AgentsSectionProps { function AgentsSection (line 41) | function AgentsSection({ title, description, agents }: AgentsSectionProp... function AgentsNavigationPage (line 65) | function AgentsNavigationPage() { FILE: web/src/refresh-pages/AppPage.tsx type FadeProps (line 79) | interface FadeProps { function Fade (line 85) | function Fade({ show, children, className }: FadeProps) { type ChatPageProps (line 103) | interface ChatPageProps { function AppPage (line 107) | function AppPage({ firstMessage }: ChatPageProps) { FILE: web/src/refresh-pages/SettingsPage.tsx type PAT (line 67) | interface PAT { type CreatedTokenState (line 76) | interface CreatedTokenState { type PATModalProps (line 82) | interface PATModalProps { function PATModal (line 93) | function PATModal({ function GeneralSettings (line 181) | function GeneralSettings() { type LocalShortcut (line 463) | interface LocalShortcut extends InputPrompt { function PromptShortcuts (line 467) | function PromptShortcuts() { function ChatPreferencesSettings (line 744) | function ChatPreferencesSettings() { function AccountsAccessSettings (line 1042) | function AccountsAccessSettings() { type IndexedConnectorCardProps (line 1497) | interface IndexedConnectorCardProps { function IndexedConnectorCard (line 1502) | function IndexedConnectorCard({ source, isActive }: IndexedConnectorCard... type FederatedConnectorCardProps (line 1518) | interface FederatedConnectorCardProps { function FederatedConnectorCard (line 1523) | function FederatedConnectorCard({ function ConnectorsSettings (line 1621) | function ConnectorsSettings() { FILE: web/src/refresh-pages/admin/AgentsPage.tsx function AgentsPage (line 14) | function AgentsPage() { FILE: web/src/refresh-pages/admin/AgentsPage/AgentRowActions.tsx type AgentRowActionsProps (line 45) | interface AgentRowActionsProps { function AgentRowActions (line 54) | function AgentRowActions({ FILE: web/src/refresh-pages/admin/AgentsPage/AgentsTable.tsx function toAgentRow (line 25) | function toAgentRow(persona: Persona): AgentRow { function renderCreatedByColumn (line 47) | function renderCreatedByColumn( function getAccessTitle (line 61) | function getAccessTitle(row: AgentRow): string { function renderAccessColumn (line 67) | function renderAccessColumn(_isPublic: boolean, row: AgentRow) { function buildColumns (line 86) | function buildColumns(onMutate: () => void) { constant PAGE_SIZE (line 136) | const PAGE_SIZE = 10; function AgentsTable (line 138) | function AgentsTable() { FILE: web/src/refresh-pages/admin/AgentsPage/interfaces.ts type AgentRow (line 3) | interface AgentRow { FILE: web/src/refresh-pages/admin/AgentsPage/svc.ts function parseErrorDetail (line 1) | async function parseErrorDetail( function deleteAgent (line 14) | async function deleteAgent(agentId: number): Promise { function toggleAgentFeatured (line 24) | async function toggleAgentFeatured( function toggleAgentListed (line 41) | async function toggleAgentListed( function updateAgentDisplayPriorities (line 56) | async function updateAgentDisplayPriorities( FILE: web/src/refresh-pages/admin/ChatPreferencesPage.tsx type DefaultAgentConfiguration (line 67) | interface DefaultAgentConfiguration { type ChatPreferencesFormValues (line 73) | interface ChatPreferencesFormValues { type MCPServerCardTool (line 93) | interface MCPServerCardTool { type MCPServerCardProps (line 100) | interface MCPServerCardProps { function MCPServerCard (line 108) | function MCPServerCard({ type FileLimitFieldName (line 195) | type FileLimitFieldName = type NumericLimitFieldProps (line 199) | interface NumericLimitFieldProps { function NumericLimitField (line 207) | function NumericLimitField({ type FileSizeLimitFieldsProps (line 312) | interface FileSizeLimitFieldsProps { function FileSizeLimitFields (line 319) | function FileSizeLimitFields({ function ChatPreferencesForm (line 366) | function ChatPreferencesForm() { function ChatPreferencesPage (line 1044) | function ChatPreferencesPage() { FILE: web/src/refresh-pages/admin/CodeInterpreterPage/index.tsx function CheckingStatus (line 31) | function CheckingStatus() { type ConnectionStatusProps (line 48) | interface ConnectionStatusProps { function ConnectionStatus (line 53) | function ConnectionStatus({ healthy, isLoading }: ConnectionStatusProps) { function CodeInterpreterPage (line 82) | function CodeInterpreterPage() { FILE: web/src/refresh-pages/admin/CodeInterpreterPage/svc.ts constant UPDATE_ENDPOINT (line 1) | const UPDATE_ENDPOINT = "/api/admin/code-interpreter"; type CodeInterpreterUpdateRequest (line 3) | interface CodeInterpreterUpdateRequest { function updateCodeInterpreter (line 7) | async function updateCodeInterpreter( FILE: web/src/refresh-pages/admin/GroupsPage/CreateGroupPage.tsx function CreateGroupPage (line 32) | function CreateGroupPage() { FILE: web/src/refresh-pages/admin/GroupsPage/EditGroupPage.tsx type EditGroupPageProps (line 55) | interface EditGroupPageProps { function EditGroupPage (line 59) | function EditGroupPage({ groupId }: EditGroupPageProps) { FILE: web/src/refresh-pages/admin/GroupsPage/GroupCard.tsx type GroupCardProps (line 22) | interface GroupCardProps { function GroupCard (line 26) | function GroupCard({ group }: GroupCardProps) { FILE: web/src/refresh-pages/admin/GroupsPage/GroupsList.tsx type GroupsListProps (line 12) | interface GroupsListProps { function GroupsList (line 17) | function GroupsList({ groups, searchQuery }: GroupsListProps) { FILE: web/src/refresh-pages/admin/GroupsPage/SharedGroupResources/ResourceContent.tsx type ResourceContentProps (line 9) | interface ResourceContentProps { function ResourceContent (line 21) | function ResourceContent({ FILE: web/src/refresh-pages/admin/GroupsPage/SharedGroupResources/ResourcePopover.tsx function ResourcePopover (line 14) | function ResourcePopover({ FILE: web/src/refresh-pages/admin/GroupsPage/SharedGroupResources/index.tsx type SharedGroupResourcesProps (line 22) | interface SharedGroupResourcesProps { function SharedBadge (line 35) | function SharedBadge() { type SourceIconStackProps (line 43) | interface SourceIconStackProps { function SourceIconStack (line 47) | function SourceIconStack({ sources }: SourceIconStackProps) { function SharedGroupResources (line 83) | function SharedGroupResources({ FILE: web/src/refresh-pages/admin/GroupsPage/SharedGroupResources/interfaces.ts type PopoverItem (line 1) | interface PopoverItem { type PopoverSection (line 9) | interface PopoverSection { type ResourcePopoverProps (line 14) | interface ResourcePopoverProps { FILE: web/src/refresh-pages/admin/GroupsPage/TokenLimitSection.tsx type TokenLimit (line 17) | interface TokenLimit { type TokenLimitSectionProps (line 22) | interface TokenLimitSectionProps { function TokenLimitSection (line 31) | function TokenLimitSection({ limits, onLimitsChange }: TokenLimitSection... FILE: web/src/refresh-pages/admin/GroupsPage/index.tsx function GroupsPage (line 18) | function GroupsPage() { FILE: web/src/refresh-pages/admin/GroupsPage/interfaces.ts type ApiKeyDescriptor (line 4) | interface ApiKeyDescriptor { type MemberRow (line 13) | interface MemberRow extends UserRow { type TokenRateLimitDisplay (line 17) | interface TokenRateLimitDisplay { FILE: web/src/refresh-pages/admin/GroupsPage/shared.tsx constant PAGE_SIZE (line 13) | const PAGE_SIZE = 10; function apiKeyToMemberRow (line 19) | function apiKeyToMemberRow(key: ApiKeyDescriptor): MemberRow { constant ROLE_ICONS (line 39) | const ROLE_ICONS: Partial> = { function renderNameColumn (line 49) | function renderNameColumn(email: string, row: MemberRow) { function renderAccountTypeColumn (line 60) | function renderAccountTypeColumn(_value: unknown, row: MemberRow) { FILE: web/src/refresh-pages/admin/GroupsPage/svc.ts constant USER_GROUP_URL (line 5) | const USER_GROUP_URL = SWR_KEYS.adminUserGroups; function renameGroup (line 7) | async function renameGroup(groupId: number, newName: string): Promise { function updateAgentGroupSharing (line 82) | async function updateAgentGroupSharing( type DocumentSetSummary (line 112) | interface DocumentSetSummary { function updateDocSetGroupSharing (line 122) | async function updateDocSetGroupSharing( type TokenLimitPayload (line 202) | interface TokenLimitPayload { type ExistingTokenLimit (line 207) | interface ExistingTokenLimit { function saveTokenLimits (line 214) | async function saveTokenLimits( FILE: web/src/refresh-pages/admin/GroupsPage/utils.ts function isBuiltInGroup (line 4) | function isBuiltInGroup(group: UserGroup): boolean { constant BUILT_IN_DESCRIPTIONS (line 9) | const BUILT_IN_DESCRIPTIONS: Record = { function buildGroupDescription (line 21) | function buildGroupDescription(group: UserGroup): string { function formatMemberCount (line 53) | function formatMemberCount(count: number): string { FILE: web/src/refresh-pages/admin/ImageGenerationPage/ImageGenerationContent.tsx constant NO_DEFAULT_VALUE (line 39) | const NO_DEFAULT_VALUE = "__none__"; constant STATUS_TO_STATE (line 41) | const STATUS_TO_STATE = { function ImageGenerationContent (line 47) | function ImageGenerationContent() { FILE: web/src/refresh-pages/admin/ImageGenerationPage/constants.ts type ImageProvider (line 1) | interface ImageProvider { type ProviderGroup (line 9) | interface ProviderGroup { constant IMAGE_PROVIDER_GROUPS (line 14) | const IMAGE_PROVIDER_GROUPS: ProviderGroup[] = [ FILE: web/src/refresh-pages/admin/ImageGenerationPage/forms/AzureImageGenForm.tsx type AzureFormValues (line 24) | interface AzureFormValues { function AzureFormFields (line 45) | function AzureFormFields(props: ImageGenFormChildProps) { function getInitialValuesFromCredentials (line 183) | function getInitialValuesFromCredentials( function transformValues (line 200) | function transformValues( function AzureImageGenForm (line 234) | function AzureImageGenForm(props: ImageGenFormBaseProps) { FILE: web/src/refresh-pages/admin/ImageGenerationPage/forms/ImageGenFormWrapper.tsx function ImageGenFormWrapper (line 23) | function ImageGenFormWrapper({ FILE: web/src/refresh-pages/admin/ImageGenerationPage/forms/OpenAIImageGenForm.tsx type OpenAIFormValues (line 19) | interface OpenAIFormValues { function OpenAIFormFields (line 31) | function OpenAIFormFields(props: ImageGenFormChildProps; type ImageGenFormWrapperProps (line 25) | interface ImageGenFormWrapperProps type ImageGenFormChildProps (line 40) | interface ImageGenFormChildProps { type ImageGenSubmitPayload (line 58) | interface ImageGenSubmitPayload { FILE: web/src/refresh-pages/admin/ImageGenerationPage/index.tsx function ImageGenerationPage (line 9) | function ImageGenerationPage() { FILE: web/src/refresh-pages/admin/ImageGenerationPage/svc.ts type ImageGenerationConfigView (line 7) | interface ImageGenerationConfigView { type TestApiKeyResult (line 16) | interface TestApiKeyResult { type ImageGenerationCredentials (line 21) | interface ImageGenerationCredentials { type ImageGenerationConfigCreateOptions (line 30) | interface ImageGenerationConfigCreateOptions { constant IMAGE_GEN_CONFIG_URL (line 48) | const IMAGE_GEN_CONFIG_URL = "/api/admin/image-generation/config"; constant IMAGE_GEN_TEST_URL (line 49) | const IMAGE_GEN_TEST_URL = "/api/admin/image-generation/test"; function testImageGenerationApiKey (line 58) | async function testImageGenerationApiKey( function fetchImageGenerationConfigs (line 110) | async function fetchImageGenerationConfigs(): Promise< function fetchImageGenerationCredentials (line 123) | async function fetchImageGenerationCredentials( function createImageGenerationConfig (line 139) | async function createImageGenerationConfig( type ImageGenerationConfigUpdateOptions (line 170) | interface ImageGenerationConfigUpdateOptions { function updateImageGenerationConfig (line 192) | async function updateImageGenerationConfig( function setDefaultImageGenerationConfig (line 226) | async function setDefaultImageGenerationConfig( function unsetDefaultImageGenerationConfig (line 245) | async function unsetDefaultImageGenerationConfig( function deleteImageGenerationConfig (line 264) | async function deleteImageGenerationConfig( FILE: web/src/refresh-pages/admin/LLMConfigurationPage.tsx constant PROVIDER_DISPLAY_ORDER (line 59) | const PROVIDER_DISPLAY_ORDER: string[] = [ constant PROVIDER_MODAL_MAP (line 72) | const PROVIDER_MODAL_MAP: Record< type ExistingProviderCardProps (line 156) | interface ExistingProviderCardProps { function ExistingProviderCard (line 163) | function ExistingProviderCard({ type NewProviderCardProps (line 271) | interface NewProviderCardProps { function NewProviderCard (line 281) | function NewProviderCard({ type NewCustomProviderCardProps (line 323) | interface NewCustomProviderCardProps { function NewCustomProviderCard (line 327) | function NewCustomProviderCard({ function LLMConfigurationPage (line 371) | function LLMConfigurationPage() { FILE: web/src/refresh-pages/admin/ServiceAccountsPage/ApiKeyFormModal.tsx type ApiKeyFormModalProps (line 19) | interface ApiKeyFormModalProps { function ApiKeyFormModal (line 25) | function ApiKeyFormModal({ FILE: web/src/refresh-pages/admin/ServiceAccountsPage/index.tsx constant API_KEY_SWR_KEY (line 51) | const API_KEY_SWR_KEY = SWR_KEYS.adminApiKeys; function ServiceAccountsPage (line 60) | function ServiceAccountsPage() { FILE: web/src/refresh-pages/admin/ServiceAccountsPage/interfaces.ts constant DISCORD_SERVICE_API_KEY_NAME (line 3) | const DISCORD_SERVICE_API_KEY_NAME = "discord-bot-service"; type APIKey (line 5) | interface APIKey { type APIKeyArgs (line 14) | interface APIKeyArgs { FILE: web/src/refresh-pages/admin/ServiceAccountsPage/svc.ts constant API_KEY_URL (line 6) | const API_KEY_URL = "/api/admin/api-key"; function createApiKey (line 8) | async function createApiKey(args: APIKeyArgs): Promise { function regenerateApiKey (line 16) | async function regenerateApiKey(apiKey: APIKey): Promise { function updateApiKey (line 23) | async function updateApiKey( function deleteApiKey (line 34) | async function deleteApiKey(apiKeyId: number): Promise { FILE: web/src/refresh-pages/admin/UsersPage/EditUserModal.tsx constant ASSIGNABLE_ROLES (line 28) | const ASSIGNABLE_ROLES: UserRole[] = [ type EditUserModalProps (line 38) | interface EditUserModalProps { function EditUserModal (line 48) | function EditUserModal({ FILE: web/src/refresh-pages/admin/UsersPage/GroupsCell.tsx type GroupsCellProps (line 18) | interface GroupsCellProps { function GroupsCell (line 33) | function GroupsCell({ FILE: web/src/refresh-pages/admin/UsersPage/InviteUsersModal.tsx constant EMAIL_REGEX (line 17) | const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; type InviteUsersModalProps (line 23) | interface InviteUsersModalProps { function InviteUsersModal (line 32) | function InviteUsersModal({ FILE: web/src/refresh-pages/admin/UsersPage/UserActionModals.tsx function runAction (line 21) | async function runAction( type CancelInviteModalProps (line 43) | interface CancelInviteModalProps { function CancelInviteModal (line 49) | function CancelInviteModal({ type DeactivateUserModalProps (line 97) | interface DeactivateUserModalProps { function DeactivateUserModal (line 103) | function DeactivateUserModal({ type ActivateUserModalProps (line 153) | interface ActivateUserModalProps { function ActivateUserModal (line 159) | function ActivateUserModal({ type DeleteUserModalProps (line 204) | interface DeleteUserModalProps { function DeleteUserModal (line 210) | function DeleteUserModal({ type ResetPasswordModalProps (line 259) | interface ResetPasswordModalProps { function ResetPasswordModal (line 264) | function ResetPasswordModal({ FILE: web/src/refresh-pages/admin/UsersPage/UserFilters.tsx constant VISIBLE_FILTER_ROLES (line 31) | const VISIBLE_FILTER_ROLES: UserRole[] = [ constant FILTERABLE_ROLES (line 38) | const FILTERABLE_ROLES = VISIBLE_FILTER_ROLES.map( constant FILTERABLE_STATUSES (line 42) | const FILTERABLE_STATUSES = ( constant ROLE_ICONS (line 48) | const ROLE_ICONS: Partial> = { constant STATUS_COUNT_KEY (line 54) | const STATUS_COUNT_KEY: Record = { function CountBadge (line 65) | function CountBadge({ count }: { count: number | undefined }) { type UserFiltersProps (line 77) | interface UserFiltersProps { function UserFilters (line 89) | function UserFilters({ FILE: web/src/refresh-pages/admin/UsersPage/UserRoleCell.tsx constant ROLE_ICONS (line 23) | const ROLE_ICONS: Partial> = { constant SELECTABLE_ROLES (line 29) | const SELECTABLE_ROLES = [ type UserRoleCellProps (line 35) | interface UserRoleCellProps { function UserRoleCell (line 40) | function UserRoleCell({ user, onMutate }: UserRoleCellProps) { FILE: web/src/refresh-pages/admin/UsersPage/UserRowActions.tsx type Modal (line 37) | enum Modal { type UserRowActionsProps (line 46) | interface UserRowActionsProps { function UserRowActions (line 55) | function UserRowActions({ FILE: web/src/refresh-pages/admin/UsersPage/UsersSummary.tsx type StatCellProps (line 16) | type StatCellProps = { function StatCell (line 22) | function StatCell({ value, label, onFilter }: StatCellProps) { function ScimCard (line 65) | function ScimCard() { type UsersSummaryProps (line 91) | type UsersSummaryProps = { function UsersSummary (line 101) | function UsersSummary({ FILE: web/src/refresh-pages/admin/UsersPage/UsersTable.tsx function renderNameColumn (line 36) | function renderNameColumn(email: string, row: UserRow) { function renderStatusColumn (line 47) | function renderStatusColumn(value: UserStatus, row: UserRow) { function renderLastUpdatedColumn (line 62) | function renderLastUpdatedColumn(value: string | null) { function buildColumns (line 76) | function buildColumns(onMutate: () => void) { constant PAGE_SIZE (line 129) | const PAGE_SIZE = 8; type UsersTableProps (line 131) | interface UsersTableProps { function UsersTable (line 138) | function UsersTable({ FILE: web/src/refresh-pages/admin/UsersPage/index.tsx function UsersContent (line 21) | function UsersContent() { function UsersPage (line 66) | function UsersPage() { FILE: web/src/refresh-pages/admin/UsersPage/interfaces.ts type UserGroupInfo (line 3) | interface UserGroupInfo { type UserRow (line 8) | interface UserRow { type GroupOption (line 21) | interface GroupOption { type StatusFilter (line 28) | type StatusFilter = UserStatus[]; type StatusCountMap (line 31) | type StatusCountMap = { FILE: web/src/refresh-pages/admin/UsersPage/svc.ts function parseErrorDetail (line 3) | async function parseErrorDetail( function deactivateUser (line 15) | async function deactivateUser(email: string): Promise { function activateUser (line 26) | async function activateUser(email: string): Promise { function deleteUser (line 37) | async function deleteUser(email: string): Promise { function setUserRole (line 48) | async function setUserRole( function addUserToGroup (line 62) | async function addUserToGroup( function removeUserFromGroup (line 76) | async function removeUserFromGroup( function cancelInvite (line 97) | async function cancelInvite(email: string): Promise { function approveRequest (line 108) | async function approveRequest(email: string): Promise { function inviteUsers (line 119) | async function inviteUsers(emails: string[]): Promise { function resetPassword (line 130) | async function resetPassword( function downloadUsersCsv (line 144) | async function downloadUsersCsv(): Promise { FILE: web/src/refresh-pages/admin/VoiceConfigurationPage.tsx type ModelDetails (line 36) | interface ModelDetails { type ProviderGroup (line 43) | interface ProviderGroup { constant STT_MODELS (line 50) | const STT_MODELS: ModelDetails[] = [ constant TTS_PROVIDER_GROUPS (line 72) | const TTS_PROVIDER_GROUPS: ProviderGroup[] = [ function getProviderIcon (line 121) | function getProviderIcon( type ProviderMode (line 136) | type ProviderMode = "stt" | "tts"; function getProviderLabel (line 138) | function getProviderLabel(providerType: string): string { constant NO_DEFAULT_VALUE (line 151) | const NO_DEFAULT_VALUE = "__none__"; type VoiceDisconnectModalProps (line 157) | interface VoiceDisconnectModalProps { function VoiceDisconnectModal (line 170) | function VoiceDisconnectModal({ function VoiceConfigurationPage (line 285) | function VoiceConfigurationPage() { FILE: web/src/refresh-pages/admin/WebSearchPage/WebProviderModalReducer.ts type WebProviderModalState (line 1) | type WebProviderModalState = { type WebProviderModalAction (line 24) | type WebProviderModalAction = constant MASKED_API_KEY_PLACEHOLDER (line 49) | const MASKED_API_KEY_PLACEHOLDER = "••••••••••••••••"; function WebProviderModalReducer (line 51) | function WebProviderModalReducer( FILE: web/src/refresh-pages/admin/WebSearchPage/WebProviderSetupModal.tsx type WebProviderSetupModalProps (line 14) | type WebProviderSetupModalProps = { FILE: web/src/refresh-pages/admin/WebSearchPage/connectProviderFlow.ts type ProviderTestPayload (line 1) | type ProviderTestPayload = { type ProviderUpsertPayload (line 8) | type ProviderUpsertPayload = { constant WEB_SEARCH_PROVIDER_ENDPOINTS (line 18) | const WEB_SEARCH_PROVIDER_ENDPOINTS = { type WebProviderCategory (line 34) | type WebProviderCategory = keyof typeof WEB_SEARCH_PROVIDER_ENDPOINTS; type ConnectProviderFlowArgs (line 36) | type ConnectProviderFlowArgs = { function connectProviderFlow (line 61) | async function connectProviderFlow({ FILE: web/src/refresh-pages/admin/WebSearchPage/contentProviderUtils.ts type WebContentProviderType (line 1) | type WebContentProviderType = constant CONTENT_PROVIDER_DETAILS (line 7) | const CONTENT_PROVIDER_DETAILS: Record< constant CONTENT_PROVIDER_ORDER (line 38) | const CONTENT_PROVIDER_ORDER = Object.keys( type ContentProviderConfig (line 42) | type ContentProviderConfig = Record | null | undefined; type ContentProviderLike (line 44) | type ContentProviderLike = type ContentProviderCapabilities (line 52) | type ContentProviderCapabilities = { constant CONTENT_PROVIDER_CAPABILITIES (line 58) | const CONTENT_PROVIDER_CAPABILITIES: Record< constant DEFAULT_CONTENT_PROVIDER_CAPABILITIES (line 76) | const DEFAULT_CONTENT_PROVIDER_CAPABILITIES: ContentProviderCapabilities... function getCapabilities (line 81) | function getCapabilities( function getStoredContentConfigValue (line 90) | function getStoredContentConfigValue( function isContentProviderConfigured (line 108) | function isContentProviderConfigured( function getCurrentContentProviderType (line 132) | function getCurrentContentProviderType( function buildContentProviderConfig (line 146) | function buildContentProviderConfig( function canConnectContentProvider (line 167) | function canConnectContentProvider( function getSingleContentConfigFieldValueForForm (line 185) | function getSingleContentConfigFieldValueForForm( FILE: web/src/refresh-pages/admin/WebSearchPage/index.tsx constant NO_DEFAULT_VALUE (line 74) | const NO_DEFAULT_VALUE = "__none__"; function WebSearchDisconnectModal (line 82) | function WebSearchDisconnectModal({ type ProviderStatus (line 227) | type ProviderStatus = "disconnected" | "connected" | "selected"; type ProviderCardProps (line 229) | interface ProviderCardProps { constant STATUS_TO_STATE (line 242) | const STATUS_TO_STATE = { function ProviderCard (line 248) | function ProviderCard({ function WebSearchPage (line 362) | function WebSearchPage() { FILE: web/src/refresh-pages/admin/WebSearchPage/interfaces.ts type WebSearchProviderView (line 4) | interface WebSearchProviderView { type WebContentProviderView (line 13) | interface WebContentProviderView { type DisconnectTargetState (line 22) | interface DisconnectTargetState { FILE: web/src/refresh-pages/admin/WebSearchPage/searchProviderUtils.ts type WebSearchProviderType (line 1) | type WebSearchProviderType = constant SEARCH_PROVIDER_DETAILS (line 8) | const SEARCH_PROVIDER_DETAILS: Record< constant SEARCH_PROVIDER_ORDER (line 59) | const SEARCH_PROVIDER_ORDER = Object.keys( function getSearchProviderDisplayLabel (line 63) | function getSearchProviderDisplayLabel( type SearchProviderConfig (line 74) | type SearchProviderConfig = Record | null | undefined; type SearchProviderLike (line 76) | type SearchProviderLike = type SearchProviderCapabilities (line 84) | type SearchProviderCapabilities = { constant SEARCH_PROVIDER_CAPABILITIES (line 95) | const SEARCH_PROVIDER_CAPABILITIES: Record< constant DEFAULT_SEARCH_PROVIDER_CAPABILITIES (line 127) | const DEFAULT_SEARCH_PROVIDER_CAPABILITIES: SearchProviderCapabilities = { function getCapabilities (line 132) | function getCapabilities(providerType: string): SearchProviderCapabiliti... function isBuiltInSearchProviderType (line 140) | function isBuiltInSearchProviderType( function searchProviderRequiresApiKey (line 149) | function searchProviderRequiresApiKey(providerType: string): boolean { function getStoredConfigValue (line 153) | function getStoredConfigValue( function isSearchProviderConfigured (line 172) | function isSearchProviderConfigured( function canConnectSearchProvider (line 196) | function canConnectSearchProvider( function buildSearchProviderConfig (line 219) | function buildSearchProviderConfig( function getSingleConfigFieldValueForForm (line 243) | function getSingleConfigFieldValueForForm( FILE: web/src/refresh-pages/admin/WebSearchPage/svc.ts function parseErrorDetail (line 4) | async function parseErrorDetail( function activateSearchProvider (line 16) | async function activateSearchProvider( function deactivateSearchProvider (line 33) | async function deactivateSearchProvider( function activateContentProvider (line 50) | async function activateContentProvider( function deactivateContentProvider (line 106) | async function deactivateContentProvider( function disconnectProvider (line 126) | async function disconnectProvider( FILE: web/src/sections/AppHealthBanner.tsx function AppHealthBanner (line 19) | function AppHealthBanner() { FILE: web/src/sections/Suggestions.tsx type SuggestionsProps (line 8) | interface SuggestionsProps { function Suggestions (line 12) | function Suggestions({ onSubmit }: SuggestionsProps) { FILE: web/src/sections/actions/ActionCard.tsx type ActionCardProps (line 15) | interface ActionCardProps { function ActionCard (line 57) | function ActionCard({ FILE: web/src/sections/actions/ActionCardContext.tsx type ActionCardContextValue (line 5) | interface ActionCardContextValue { type ActionCardProviderProps (line 15) | interface ActionCardProviderProps { function ActionCardProvider (line 20) | function ActionCardProvider({ function useActionCardContext (line 31) | function useActionCardContext() { FILE: web/src/sections/actions/ActionCardHeader.tsx type ActionCardHeaderProps (line 14) | interface ActionCardHeaderProps { function ActionCardHeader (line 23) | function ActionCardHeader({ FILE: web/src/sections/actions/Actions.tsx type ActionsProps (line 16) | interface ActionsProps { FILE: web/src/sections/actions/MCPActionCard.tsx type MCPActionCardProps (line 32) | interface MCPActionCardProps { function MCPActionCard (line 83) | function MCPActionCard({ FILE: web/src/sections/actions/MCPPageContent.tsx function MCPPageContent (line 32) | function MCPPageContent() { FILE: web/src/sections/actions/OpenApiActionCard.tsx type OpenApiActionCardProps (line 19) | interface OpenApiActionCardProps { function OpenApiActionCard (line 29) | function OpenApiActionCard({ FILE: web/src/sections/actions/OpenApiPageContent.tsx function OpenApiPageContent (line 21) | function OpenApiPageContent() { FILE: web/src/sections/actions/PerUserAuthConfig.tsx type PerUserAuthConfigProps (line 14) | interface PerUserAuthConfigProps { function PerUserAuthConfig (line 22) | function PerUserAuthConfig({ FILE: web/src/sections/actions/ToolItem.tsx type ToolItemVariant (line 17) | type ToolItemVariant = "mcp" | "openapi"; type OpenApiMetadata (line 19) | interface OpenApiMetadata { constant METHOD_ICON_MAP (line 24) | const METHOD_ICON_MAP: Record = { constant METHOD_STYLE_MAP (line 31) | const METHOD_STYLE_MAP: Record = { function getMethodStyles (line 39) | function getMethodStyles(method?: string) { type ToolItemProps (line 60) | interface ToolItemProps { FILE: web/src/sections/actions/ToolsList.tsx type ToolsListProps (line 12) | interface ToolsListProps { FILE: web/src/sections/actions/ToolsSection.tsx type ToolsSectionProps (line 8) | interface ToolsSectionProps { FILE: web/src/sections/actions/modals/AddMCPServerModal.tsx type AddMCPServerModalProps (line 25) | interface AddMCPServerModalProps { function AddMCPServerModal (line 44) | function AddMCPServerModal({ FILE: web/src/sections/actions/modals/AddOpenAPIActionModal.tsx type AddOpenAPIActionModalProps (line 40) | interface AddOpenAPIActionModalProps { type OpenAPIActionFormValues (line 50) | interface OpenAPIActionFormValues { function parseJsonWithTrailingCommas (line 58) | function parseJsonWithTrailingCommas(jsonString: string) { function prettifyDefinition (line 70) | function prettifyDefinition(definition: any) { type FormContentProps (line 74) | interface FormContentProps { function FormContent (line 81) | function FormContent({ function AddOpenAPIActionModal (line 399) | function AddOpenAPIActionModal({ FILE: web/src/sections/actions/modals/DisconnectEntityModal.tsx type DisconnectEntityModalProps (line 9) | interface DisconnectEntityModalProps { function DisconnectEntityModal (line 19) | function DisconnectEntityModal({ FILE: web/src/sections/actions/modals/MCPAuthenticationModal.tsx type MCPAuthenticationModalProps (line 36) | interface MCPAuthenticationModalProps { type MCPAuthTemplate (line 43) | interface MCPAuthTemplate { type MCPAuthFormValues (line 48) | interface MCPAuthFormValues { function MCPAuthenticationModal (line 101) | function MCPAuthenticationModal({ FILE: web/src/sections/actions/modals/OpenAPIAuthenticationModal.tsx type AuthMethod (line 25) | type AuthMethod = "oauth" | "custom-header" | "pt-oauth"; type OpenAPIAuthFormValues (line 27) | interface OpenAPIAuthFormValues { type OpenAPIAuthenticationModalProps (line 37) | interface OpenAPIAuthenticationModalProps { constant MASKED_CREDENTIAL_VALUE (line 52) | const MASKED_CREDENTIAL_VALUE = "********"; function OpenAPIAuthenticationModal (line 69) | function OpenAPIAuthenticationModal({ FILE: web/src/sections/actions/skeleton/ActionCardSkeleton.tsx type ActionCardSkeletonProps (line 6) | interface ActionCardSkeletonProps { FILE: web/src/sections/actions/skeleton/ToolItemSkeleton.tsx type ToolItemSkeletonProps (line 6) | interface ToolItemSkeletonProps { FILE: web/src/sections/admin/AdminListHeader.tsx type AdminListHeaderProps (line 8) | interface AdminListHeaderProps { function AdminListHeader (line 53) | function AdminListHeader({ FILE: web/src/sections/admin/ProviderCard.tsx type ProviderStatus (line 48) | type ProviderStatus = "disconnected" | "connected" | "selected"; type ProviderCardProps (line 50) | interface ProviderCardProps { constant STATUS_TO_STATE (line 64) | const STATUS_TO_STATE = { function ProviderCard (line 70) | function ProviderCard({ FILE: web/src/sections/cards/AgentCard.tsx type AgentCardProps (line 39) | interface AgentCardProps { function AgentCard (line 43) | function AgentCard({ agent }: AgentCardProps) { FILE: web/src/sections/cards/DocumentSetCard.tsx type DocumentSetCardProps (line 11) | interface DocumentSetCardProps { function DocumentSetCard (line 19) | function DocumentSetCard({ FILE: web/src/sections/cards/FileCard.tsx type RemovableProps (line 13) | interface RemovableProps { function Removable (line 18) | function Removable({ onRemove, children }: RemovableProps) { type ImageFileCardProps (line 60) | interface ImageFileCardProps { function ImageFileCard (line 68) | function ImageFileCard({ type FileCardProps (line 123) | interface FileCardProps { function FileCard (line 130) | function FileCard({ function FileCardSkeleton (line 209) | function FileCardSkeleton() { FILE: web/src/sections/chat/ChatScrollContainer.tsx constant DEFAULT_ANCHOR_OFFSET_PX (line 15) | const DEFAULT_ANCHOR_OFFSET_PX = 16; constant DEFAULT_FADE_THRESHOLD_PX (line 16) | const DEFAULT_FADE_THRESHOLD_PX = 80; constant DEFAULT_BUTTON_THRESHOLD_PX (line 17) | const DEFAULT_BUTTON_THRESHOLD_PX = 32; constant TOP_FADE_HEIGHT (line 20) | const TOP_FADE_HEIGHT = "1rem"; constant BOTTOM_FADE_HEIGHT (line 21) | const BOTTOM_FADE_HEIGHT = "1rem"; type ScrollState (line 23) | interface ScrollState { type ChatScrollContainerHandle (line 29) | interface ChatScrollContainerHandle { type ChatScrollContainerProps (line 33) | interface ChatScrollContainerProps { function buildContentMask (line 59) | function buildContentMask(): string { FILE: web/src/sections/chat/ChatUI.tsx type ChatUIProps (line 20) | interface ChatUIProps { FILE: web/src/sections/document-sidebar/ChatDocumentDisplay.tsx type DocumentMetadataBlockProps (line 15) | interface DocumentMetadataBlockProps { function DocumentMetadataBlock (line 20) | function DocumentMetadataBlock({ type ChatDocumentDisplayProps (line 55) | interface ChatDocumentDisplayProps { function ChatDocumentDisplay (line 62) | function ChatDocumentDisplay({ FILE: web/src/sections/document-sidebar/DocumentsSidebar.tsx type HeaderProps (line 41) | interface HeaderProps { function Header (line 46) | function Header({ children, onClose }: HeaderProps) { type ChatDocumentDisplayWrapperProps (line 68) | interface ChatDocumentDisplayWrapperProps { function ChatDocumentDisplayWrapper (line 72) | function ChatDocumentDisplayWrapper({ type DocumentsSidebarProps (line 82) | interface DocumentsSidebarProps { FILE: web/src/sections/input/AppInputBar.tsx constant MIN_INPUT_HEIGHT (line 65) | const MIN_INPUT_HEIGHT = 44; constant MAX_INPUT_HEIGHT (line 66) | const MAX_INPUT_HEIGHT = 200; type AppInputBarHandle (line 68) | interface AppInputBarHandle { type AppInputBarProps (line 73) | interface AppInputBarProps { function handlePaste (line 303) | function handlePaste(event: React.ClipboardEvent) { function updateInputPrompt (line 351) | function updateInputPrompt(prompt: InputPrompt) { function handleKeyDownForPromptShortcuts (line 442) | function handleKeyDownForPromptShortcuts( FILE: web/src/sections/input/MicrophoneButton.tsx type MicrophoneButtonProps (line 12) | interface MicrophoneButtonProps { function MicrophoneButton (line 47) | function MicrophoneButton({ FILE: web/src/sections/input/SharedAppInputBar.tsx function SharedAppInputBar (line 14) | function SharedAppInputBar() { FILE: web/src/sections/knowledge/AgentKnowledgePane.tsx type KnowledgeView (line 45) | type KnowledgeView = "main" | "add" | "document-sets" | "sources" | "rec... type KnowledgeSidebarProps (line 51) | interface KnowledgeSidebarProps { function KnowledgeSidebar (line 65) | function KnowledgeSidebar({ type KnowledgeTableColumn (line 160) | interface KnowledgeTableColumn { type KnowledgeTableProps (line 168) | interface KnowledgeTableProps { function KnowledgeTable (line 181) | function KnowledgeTable({ type DocumentSetsTableContentProps (line 296) | interface DocumentSetsTableContentProps { function DocumentSetsTableContent (line 302) | function DocumentSetsTableContent({ type SourcesTableContentProps (line 367) | interface SourcesTableContentProps { function SourcesTableContent (line 381) | function SourcesTableContent({ type RecentFilesTableContentProps (line 418) | interface RecentFilesTableContentProps { function RecentFilesTableContent (line 426) | function RecentFilesTableContent({ type KnowledgeTwoColumnViewProps (line 518) | interface KnowledgeTwoColumnViewProps { type KnowledgeAddViewProps (line 636) | interface KnowledgeAddViewProps { type KnowledgeMainContentProps (line 748) | interface KnowledgeMainContentProps { type AgentKnowledgePaneProps (line 833) | interface AgentKnowledgePaneProps { function AgentKnowledgePane (line 860) | function AgentKnowledgePane({ FILE: web/src/sections/knowledge/SourceHierarchyBrowser.tsx function HierarchyBreadcrumb (line 55) | function HierarchyBreadcrumb({ type SourceHierarchyBrowserProps (line 131) | interface SourceHierarchyBrowserProps { function SourceHierarchyBrowser (line 146) | function SourceHierarchyBrowser({ FILE: web/src/sections/modals/AgentViewerModal.tsx type ViewerMCPServerCardProps (line 48) | interface ViewerMCPServerCardProps { function ViewerMCPServerCard (line 53) | function ViewerMCPServerCard({ server, tools }: ViewerMCPServerCardProps) { function ViewerOpenApiToolCard (line 101) | function ViewerOpenApiToolCard({ tool }: { tool: ToolSnapshot }) { type AgentChatInputProps (line 123) | interface AgentChatInputProps { function AgentChatInput (line 127) | function AgentChatInput({ agent, onSubmit }: AgentChatInputProps) { type AgentViewerModalProps (line 170) | interface AgentViewerModalProps { function AgentViewerModal (line 173) | function AgentViewerModal({ agent }: AgentViewerModalProps) { FILE: web/src/sections/modals/FeedbackModal.tsx type FeedbackModalProps (line 14) | interface FeedbackModalProps { type FeedbackFormValues (line 19) | interface FeedbackFormValues { function FeedbackModal (line 23) | function FeedbackModal({ FILE: web/src/sections/modals/NewTenantModal.tsx constant APP_DOMAIN (line 16) | const APP_DOMAIN = process.env.NEXT_PUBLIC_APP_DOMAIN || "onyx.app"; type NewTenantModalProps (line 18) | interface NewTenantModalProps { function NewTenantModal (line 24) | function NewTenantModal({ FILE: web/src/sections/modals/PreviewModal/ExceptionTraceModal.tsx type ExceptionTraceModalProps (line 7) | interface ExceptionTraceModalProps { function ExceptionTraceModal (line 13) | function ExceptionTraceModal({ FILE: web/src/sections/modals/PreviewModal/FloatingFooter.tsx type FloatingFooterProps (line 4) | interface FloatingFooterProps { function FloatingFooter (line 10) | function FloatingFooter({ FILE: web/src/sections/modals/PreviewModal/PreviewModal.tsx type PreviewModalProps (line 20) | interface PreviewModalProps { function PreviewModal (line 25) | function PreviewModal({ FILE: web/src/sections/modals/PreviewModal/interfaces.ts type PreviewContext (line 4) | interface PreviewContext { type PreviewVariant (line 16) | interface PreviewVariant FILE: web/src/sections/modals/PreviewModal/variants/CodePreview.tsx type CodePreviewProps (line 8) | interface CodePreviewProps { function CodePreview (line 14) | function CodePreview({ FILE: web/src/sections/modals/PreviewModal/variants/csvVariant.tsx type CsvData (line 19) | interface CsvData { function parseCsv (line 24) | function parseCsv(content: string): CsvData { FILE: web/src/sections/modals/PreviewModal/variants/dataVariant.tsx function formatContent (line 11) | function formatContent(language: string, content: string): string { FILE: web/src/sections/modals/PreviewModal/variants/docxVariant.tsx constant DOCX_MIMES (line 16) | const DOCX_MIMES = [ function isLegacyDoc (line 21) | function isLegacyDoc(fileName: string): boolean { type DocxLoadResult (line 26) | interface DocxLoadResult { type DocxPreviewProps (line 31) | interface DocxPreviewProps { function DocxPreview (line 36) | function DocxPreview({ fileUrl, onLoad }: DocxPreviewProps) { FILE: web/src/sections/modals/PreviewModal/variants/index.ts constant PREVIEW_VARIANTS (line 13) | const PREVIEW_VARIANTS: PreviewVariant[] = [ function resolveVariant (line 24) | function resolveVariant( FILE: web/src/sections/modals/PreviewModal/variants/markdownVariant.tsx constant MARKDOWN_MIMES (line 10) | const MARKDOWN_MIMES = [ FILE: web/src/sections/modals/PreviewModal/variants/shared.tsx type DownloadButtonProps (line 7) | interface DownloadButtonProps { function DownloadButton (line 12) | function DownloadButton({ fileUrl, fileName }: DownloadButtonProps) { type CopyButtonProps (line 25) | interface CopyButtonProps { function CopyButton (line 29) | function CopyButton({ getText }: CopyButtonProps) { type ZoomControlsProps (line 35) | interface ZoomControlsProps { function ZoomControls (line 41) | function ZoomControls({ zoom, onZoomIn, onZoomOut }: ZoomControlsProps) { FILE: web/src/sections/modals/PreviewModal/variants/textVariant.tsx constant TEXT_MIMES (line 10) | const TEXT_MIMES = [ constant TEXT_EXTENSIONS (line 17) | const TEXT_EXTENSIONS = [".txt", ".log", ".conf", ".tsv"]; FILE: web/src/sections/modals/ShareAgentModal.test.tsx function ModalHarness (line 27) | function ModalHarness(props: ShareAgentModalProps) { function renderShareAgentModal (line 41) | function renderShareAgentModal(overrides: Partial ... FILE: web/src/sections/modals/ShareAgentModal.tsx constant YOUR_ORGANIZATION_TAB (line 34) | const YOUR_ORGANIZATION_TAB = "Your Organization"; constant USERS_AND_GROUPS_TAB (line 35) | const USERS_AND_GROUPS_TAB = "Users & Groups"; type ShareAgentFormValues (line 41) | interface ShareAgentFormValues { type ShareAgentFormContentProps (line 53) | interface ShareAgentFormContentProps { function ShareAgentFormContent (line 57) | function ShareAgentFormContent({ agentId }: ShareAgentFormContentProps) { type ShareAgentModalProps (line 381) | interface ShareAgentModalProps { function ShareAgentModal (line 397) | function ShareAgentModal({ FILE: web/src/sections/modals/ShareChatSessionModal.tsx function buildShareLink (line 22) | function buildShareLink(chatSessionId: string) { function generateShareLink (line 27) | async function generateShareLink(chatSessionId: string) { function deleteShareLink (line 40) | async function deleteShareLink(chatSessionId: string) { type PrivacyOptionProps (line 50) | interface PrivacyOptionProps { function PrivacyOption (line 59) | function PrivacyOption({ type ShareChatSessionModalProps (line 102) | interface ShareChatSessionModalProps { function ShareChatSessionModal (line 107) | function ShareChatSessionModal({ FILE: web/src/sections/modals/llmConfig/AnthropicModal.tsx constant ANTHROPIC_PROVIDER_NAME (line 29) | const ANTHROPIC_PROVIDER_NAME = "anthropic"; constant DEFAULT_DEFAULT_MODEL_NAME (line 30) | const DEFAULT_DEFAULT_MODEL_NAME = "claude-sonnet-4-5"; function AnthropicModal (line 32) | function AnthropicModal({ FILE: web/src/sections/modals/llmConfig/AzureModal.tsx constant AZURE_PROVIDER_NAME (line 42) | const AZURE_PROVIDER_NAME = "azure"; type AzureModalValues (line 44) | interface AzureModalValues extends BaseLLMFormValues { function buildTargetUri (line 52) | function buildTargetUri(existingLlmProvider?: LLMProviderView): string { function AzureModal (line 82) | function AzureModal({ FILE: web/src/sections/modals/llmConfig/BedrockModal.tsx constant BEDROCK_PROVIDER_NAME (line 46) | const BEDROCK_PROVIDER_NAME = "bedrock"; constant AWS_REGION_OPTIONS (line 47) | const AWS_REGION_OPTIONS = [ constant AUTH_METHOD_IAM (line 62) | const AUTH_METHOD_IAM = "iam"; constant AUTH_METHOD_ACCESS_KEY (line 63) | const AUTH_METHOD_ACCESS_KEY = "access_key"; constant AUTH_METHOD_LONG_TERM_API_KEY (line 64) | const AUTH_METHOD_LONG_TERM_API_KEY = "long_term_api_key"; constant FIELD_AWS_REGION_NAME (line 65) | const FIELD_AWS_REGION_NAME = "custom_config.AWS_REGION_NAME"; constant FIELD_BEDROCK_AUTH_METHOD (line 66) | const FIELD_BEDROCK_AUTH_METHOD = "custom_config.BEDROCK_AUTH_METHOD"; constant FIELD_AWS_ACCESS_KEY_ID (line 67) | const FIELD_AWS_ACCESS_KEY_ID = "custom_config.AWS_ACCESS_KEY_ID"; constant FIELD_AWS_SECRET_ACCESS_KEY (line 68) | const FIELD_AWS_SECRET_ACCESS_KEY = "custom_config.AWS_SECRET_ACCESS_KEY"; constant FIELD_AWS_BEARER_TOKEN_BEDROCK (line 69) | const FIELD_AWS_BEARER_TOKEN_BEDROCK = "custom_config.AWS_BEARER_TOKEN_B... type BedrockModalValues (line 71) | interface BedrockModalValues extends BaseLLMFormValues { type BedrockModalInternalsProps (line 81) | interface BedrockModalInternalsProps { function BedrockModalInternals (line 92) | function BedrockModalInternals({ function BedrockModal (line 312) | function BedrockModal({ FILE: web/src/sections/modals/llmConfig/BifrostModal.tsx constant BIFROST_PROVIDER_NAME (line 41) | const BIFROST_PROVIDER_NAME = LLMProviderName.BIFROST; constant DEFAULT_API_BASE (line 42) | const DEFAULT_API_BASE = ""; type BifrostModalValues (line 44) | interface BifrostModalValues extends BaseLLMFormValues { type BifrostModalInternalsProps (line 49) | interface BifrostModalInternalsProps { function BifrostModalInternals (line 60) | function BifrostModalInternals({ function BifrostModal (line 169) | function BifrostModal({ FILE: web/src/sections/modals/llmConfig/CustomModal.test.tsx function fillBasicFields (line 64) | async function fillBasicFields( FILE: web/src/sections/modals/llmConfig/CustomModal.tsx constant MODEL_GRID_COLS (line 39) | const MODEL_GRID_COLS = "grid-cols-[2fr_2fr_minmax(10rem,1fr)_1fr_2.25re... type CustomModelConfiguration (line 41) | type CustomModelConfiguration = Pick< type ModelConfigurationItemProps (line 48) | interface ModelConfigurationItemProps { function ModelConfigurationItem (line 55) | function ModelConfigurationItem({ type ModelConfigurationListProps (line 110) | interface ModelConfigurationListProps { function ModelConfigurationList (line 116) | function ModelConfigurationList({ formikProps }: ModelConfigurationListP... function customConfigProcessing (line 184) | function customConfigProcessing(items: KeyValue[]) { function CustomModal (line 192) | function CustomModal({ FILE: web/src/sections/modals/llmConfig/LMStudioForm.tsx constant DEFAULT_API_BASE (line 41) | const DEFAULT_API_BASE = "http://localhost:1234"; type LMStudioFormValues (line 43) | interface LMStudioFormValues extends BaseLLMFormValues { type LMStudioFormInternalsProps (line 50) | interface LMStudioFormInternalsProps { function LMStudioFormInternals (line 60) | function LMStudioFormInternals({ function LMStudioForm (line 189) | function LMStudioForm({ FILE: web/src/sections/modals/llmConfig/LiteLLMProxyModal.tsx constant DEFAULT_API_BASE (line 40) | const DEFAULT_API_BASE = "http://localhost:4000"; type LiteLLMProxyModalValues (line 42) | interface LiteLLMProxyModalValues extends BaseLLMFormValues { type LiteLLMProxyModalInternalsProps (line 47) | interface LiteLLMProxyModalInternalsProps { function LiteLLMProxyModalInternals (line 58) | function LiteLLMProxyModalInternals({ function LiteLLMProxyModal (line 156) | function LiteLLMProxyModal({ FILE: web/src/sections/modals/llmConfig/OllamaModal.tsx constant OLLAMA_PROVIDER_NAME (line 41) | const OLLAMA_PROVIDER_NAME = "ollama_chat"; constant DEFAULT_API_BASE (line 42) | const DEFAULT_API_BASE = "http://127.0.0.1:11434"; constant TAB_SELF_HOSTED (line 43) | const TAB_SELF_HOSTED = "self-hosted"; constant TAB_CLOUD (line 44) | const TAB_CLOUD = "cloud"; type OllamaModalValues (line 46) | interface OllamaModalValues extends BaseLLMFormValues { type OllamaModalInternalsProps (line 53) | interface OllamaModalInternalsProps { function OllamaModalInternals (line 63) | function OllamaModalInternals({ function OllamaModal (line 209) | function OllamaModal({ FILE: web/src/sections/modals/llmConfig/OpenAIModal.tsx constant OPENAI_PROVIDER_NAME (line 29) | const OPENAI_PROVIDER_NAME = "openai"; constant DEFAULT_DEFAULT_MODEL_NAME (line 30) | const DEFAULT_DEFAULT_MODEL_NAME = "gpt-5.2"; function OpenAIModal (line 32) | function OpenAIModal({ FILE: web/src/sections/modals/llmConfig/OpenRouterModal.tsx constant OPENROUTER_PROVIDER_NAME (line 39) | const OPENROUTER_PROVIDER_NAME = "openrouter"; constant DEFAULT_API_BASE (line 40) | const DEFAULT_API_BASE = "https://openrouter.ai/api/v1"; type OpenRouterModalValues (line 41) | interface OpenRouterModalValues extends BaseLLMFormValues { type OpenRouterModalInternalsProps (line 46) | interface OpenRouterModalInternalsProps { function OpenRouterModalInternals (line 57) | function OpenRouterModalInternals({ function OpenRouterModal (line 155) | function OpenRouterModal({ FILE: web/src/sections/modals/llmConfig/VertexAIModal.tsx constant VERTEXAI_PROVIDER_NAME (line 33) | const VERTEXAI_PROVIDER_NAME = "vertex_ai"; constant VERTEXAI_DISPLAY_NAME (line 34) | const VERTEXAI_DISPLAY_NAME = "Google Cloud Vertex AI"; constant VERTEXAI_DEFAULT_MODEL (line 35) | const VERTEXAI_DEFAULT_MODEL = "gemini-2.5-pro"; constant VERTEXAI_DEFAULT_LOCATION (line 36) | const VERTEXAI_DEFAULT_LOCATION = "global"; type VertexAIModalValues (line 38) | interface VertexAIModalValues extends BaseLLMFormValues { function VertexAIModal (line 45) | function VertexAIModal({ FILE: web/src/sections/modals/llmConfig/getModal.tsx function detectIfRealOpenAIProvider (line 14) | function detectIfRealOpenAIProvider(provider: LLMProviderView) { function getModalForExistingProvider (line 23) | function getModalForExistingProvider( FILE: web/src/sections/modals/llmConfig/shared.tsx function FieldSeparator (line 51) | function FieldSeparator() { type FieldWrapperProps (line 55) | type FieldWrapperProps = WithoutStyles< function FieldWrapper (line 59) | function FieldWrapper(props: FieldWrapperProps) { type DisplayNameFieldProps (line 65) | interface DisplayNameFieldProps { function DisplayNameField (line 69) | function DisplayNameField({ disabled = false }: DisplayNameFieldProps) { type APIKeyFieldProps (line 89) | interface APIKeyFieldProps { function APIKeyField (line 94) | function APIKeyField({ type SingleDefaultModelFieldProps (line 118) | interface SingleDefaultModelFieldProps { function SingleDefaultModelField (line 122) | function SingleDefaultModelField({ constant GROUP_PREFIX (line 139) | const GROUP_PREFIX = "group:"; constant AGENT_PREFIX (line 140) | const AGENT_PREFIX = "agent:"; type ModelsAccessFieldProps (line 142) | interface ModelsAccessFieldProps { function ModelsAccessField (line 146) | function ModelsAccessField({ type ModelsFieldProps (line 373) | interface ModelsFieldProps { function ModelsField (line 384) | function ModelsField({ type LLMConfigurationModalWrapperProps (line 646) | interface LLMConfigurationModalWrapperProps { function LLMConfigurationModalWrapper (line 658) | function LLMConfigurationModalWrapper({ FILE: web/src/sections/modals/llmConfig/utils.ts constant LLM_FORM_CLASS_NAME (line 11) | const LLM_FORM_CLASS_NAME = "flex flex-col gap-y-4 items-stretch mt-6"; type BaseLLMFormValues (line 86) | interface BaseLLMFormValues { type SubmitLLMProviderParams (line 99) | interface SubmitLLMProviderParams< type TestApiKeyResult (line 156) | type TestApiKeyResult = type SubmitOnboardingProviderParams (line 189) | interface SubmitOnboardingProviderParams { FILE: web/src/sections/onboarding/OnboardingFlow.tsx type OnboardingFlowProps (line 18) | type OnboardingFlowProps = { FILE: web/src/sections/onboarding/components/LLMProviderCard.tsx type LLMProviderCardProps (line 17) | interface LLMProviderCardProps { function LLMProviderCardInner (line 26) | function LLMProviderCardInner({ FILE: web/src/sections/onboarding/components/NonAdminStep.tsx function NonAdminStep (line 17) | function NonAdminStep() { FILE: web/src/sections/onboarding/components/OnboardingHeader.tsx type OnboardingHeaderProps (line 15) | interface OnboardingHeaderProps { function handleButtonClick (line 36) | function handleButtonClick() { FILE: web/src/sections/onboarding/constants.ts type StepConfig (line 4) | type StepConfig = { constant STEP_CONFIG (line 11) | const STEP_CONFIG: Record = { constant TOTAL_STEPS (line 38) | const TOTAL_STEPS = 3; constant STEP_NAVIGATION (line 40) | const STEP_NAVIGATION: Record< constant FINAL_SETUP_CONFIG (line 56) | const FINAL_SETUP_CONFIG: FinalStepItemProps[] = [ FILE: web/src/sections/onboarding/forms/getOnboardingForm.tsx constant PROVIDER_DISPLAY_INFO (line 19) | const PROVIDER_DISPLAY_INFO: Record< function getProviderDisplayInfo (line 52) | function getProviderDisplayInfo(providerName: string): { type OnboardingFormProps (line 64) | interface OnboardingFormProps { function getOnboardingForm (line 73) | function getOnboardingForm({ FILE: web/src/sections/onboarding/reducer.ts function onboardingReducer (line 18) | function onboardingReducer( FILE: web/src/sections/onboarding/steps/FinalStep.tsx function FinalStep (line 48) | function FinalStep() { FILE: web/src/sections/onboarding/steps/LLMStep.tsx type LLMStepProps (line 23) | type LLMStepProps = { type SelectedProvider (line 30) | interface SelectedProvider { type StackedProviderIconsProps (line 52) | type StackedProviderIconsProps = { FILE: web/src/sections/onboarding/steps/NameStep.tsx type NameStepProps (line 18) | interface NameStepProps { FILE: web/src/sections/settings/Memories.tsx type MemoriesProps (line 13) | interface MemoriesProps { function Memories (line 18) | function Memories({ memories, onSaveMemories }: MemoriesProps) { FILE: web/src/sections/sidebar/AdminSidebar.tsx constant SECTIONS (line 33) | const SECTIONS = { type SidebarItemEntry (line 43) | interface SidebarItemEntry { function buildItems (line 52) | function buildItems( function groupBySection (line 172) | function groupBySection(items: SidebarItemEntry[]) { type AdminSidebarProps (line 185) | interface AdminSidebarProps { function AdminSidebar (line 189) | function AdminSidebar({ enableCloudSS }: AdminSidebarProps) { FILE: web/src/sections/sidebar/AgentButton.tsx type SortableItemProps (line 15) | interface SortableItemProps { function SortableItem (line 20) | function SortableItem({ id, children }: SortableItemProps) { type AgentButtonProps (line 45) | interface AgentButtonProps { FILE: web/src/sections/sidebar/AppSidebar.tsx function buildVisibleAgents (line 86) | function buildVisibleAgents( constant SKELETON_WIDTHS_BASE (line 104) | const SKELETON_WIDTHS_BASE = ["w-4/5", "w-4/5", "w-3/5"]; function shuffleWidths (line 106) | function shuffleWidths(): string[] { type RecentsSectionProps (line 110) | interface RecentsSectionProps { function RecentsSection (line 117) | function RecentsSection({ type AppSidebarInnerProps (line 199) | interface AppSidebarInnerProps { function performChatMove (line 385) | async function performChatMove( function AppSidebar (line 764) | function AppSidebar() { FILE: web/src/sections/sidebar/ChatButton.tsx type PopoverSearchInputProps (line 47) | interface PopoverSearchInputProps { function PopoverSearchInput (line 52) | function PopoverSearchInput({ type ChatButtonProps (line 97) | interface ChatButtonProps { function handleClick (line 285) | async function handleClick() { function handleRename (line 295) | async function handleRename(newName: string) { function handleChatDelete (line 301) | async function handleChatDelete() { function performMove (line 322) | async function performMove(targetProjectId: number) { function handleChatMove (line 340) | async function handleChatMove(targetProject: Project) { function handleRemoveFromProject (line 349) | async function handleRemoveFromProject() { function handleCreateProjectAndMove (line 363) | async function handleCreateProjectAndMove(projectName: string) { FILE: web/src/sections/sidebar/ChatSearchCommandMenu.tsx function DynamicFooter (line 36) | function DynamicFooter() { type ChatSearchCommandMenuProps (line 54) | interface ChatSearchCommandMenuProps { type FilterableProject (line 58) | interface FilterableProject { function ChatSearchCommandMenu (line 65) | function ChatSearchCommandMenu({ FILE: web/src/sections/sidebar/CreateConnectorSidebar.tsx function Sidebar (line 8) | function Sidebar() { FILE: web/src/sections/sidebar/NotificationsPopover.tsx function getNotificationIcon (line 19) | function getNotificationIcon( type NotificationsPopoverProps (line 30) | interface NotificationsPopoverProps { function NotificationsPopover (line 36) | function NotificationsPopover({ FILE: web/src/sections/sidebar/ProjectFolderButton.tsx type ProjectFolderButtonProps (line 29) | interface ProjectFolderButtonProps { function getFolderIcon (line 55) | function getFolderIcon(): React.FunctionComponent { function handleIconClick (line 65) | function handleIconClick() { function handleIconHover (line 70) | function handleIconHover(hovering: boolean) { function handleTextClick (line 78) | function handleTextClick() { function handleRename (line 82) | async function handleRename(newName: string) { FILE: web/src/sections/sidebar/SidebarBody.tsx type SidebarBodyProps (line 6) | interface SidebarBodyProps { function SidebarBody (line 17) | function SidebarBody({ FILE: web/src/sections/sidebar/SidebarSection.tsx type SidebarSectionProps (line 7) | interface SidebarSectionProps { function SidebarSection (line 14) | function SidebarSection({ FILE: web/src/sections/sidebar/SidebarWrapper.tsx type LogoSectionProps (line 8) | interface LogoSectionProps { function LogoSection (line 13) | function LogoSection({ folded, onFoldClick }: LogoSectionProps) { type SidebarWrapperProps (line 63) | interface SidebarWrapperProps { function SidebarWrapper (line 69) | function SidebarWrapper({ FILE: web/src/sections/sidebar/StepSidebarWrapper.tsx type StepSidebarProps (line 6) | interface StepSidebarProps { function StepSidebar (line 13) | function StepSidebar({ FILE: web/src/sections/sidebar/UpsertEmbeddingSidebar.tsx function EmbeddingSidebar (line 5) | function EmbeddingSidebar() { FILE: web/src/sections/sidebar/UserAvatarPopover.tsx type SettingsPopoverProps (line 29) | interface SettingsPopoverProps { function SettingsPopover (line 34) | function SettingsPopover({ type SettingsProps (line 139) | interface SettingsProps { function UserAvatarPopover (line 144) | function UserAvatarPopover({ FILE: web/src/sections/sidebar/chatSearchUtils.ts function escapeRegex (line 6) | function escapeRegex(str: string): string { function highlightMatch (line 14) | function highlightMatch(text: string, query: string): React.ReactNode { function formatDisplayTime (line 34) | function formatDisplayTime(isoDate: string): string { FILE: web/src/sections/sidebar/constants.ts constant DRAG_TYPES (line 1) | const DRAG_TYPES = { constant LOCAL_STORAGE_KEYS (line 7) | const LOCAL_STORAGE_KEYS = { constant DEFAULT_PERSONA_ID (line 11) | const DEFAULT_PERSONA_ID = 0; constant FEATURE_FLAGS (line 13) | const FEATURE_FLAGS = { FILE: web/src/sections/sidebar/sidebarUtils.ts type MoveOperationParams (line 20) | interface MoveOperationParams { FILE: web/src/sections/sidebar/useChatSearchOptimistic.ts type FilterableChat (line 9) | interface FilterableChat { type UseChatSearchOptimisticOptions (line 15) | interface UseChatSearchOptimisticOptions { type UseChatSearchOptimisticResult (line 20) | interface UseChatSearchOptimisticResult { constant PAGE_SIZE (line 29) | const PAGE_SIZE = 20; constant DEBOUNCE_MS (line 30) | const DEBOUNCE_MS = 300; function transformApiResponse (line 34) | function transformApiResponse(response: ChatSearchResponse): FilterableC... function filterLocalSessions (line 48) | function filterLocalSessions( function useChatSearchOptimistic (line 61) | function useChatSearchOptimistic( FILE: web/src/types.ts type WithoutStyles (line 29) | type WithoutStyles = Omit; FILE: web/tests/e2e/admin/admin_pages.spec.ts function discoverAdminPages (line 15) | async function discoverAdminPages(page: Page): Promise { FILE: web/tests/e2e/admin/code-interpreter/code_interpreter.spec.ts constant CODE_INTERPRETER_URL (line 5) | const CODE_INTERPRETER_URL = "/admin/configuration/code-interpreter"; constant API_STATUS_URL (line 6) | const API_STATUS_URL = "**/api/admin/code-interpreter"; constant API_HEALTH_URL (line 7) | const API_HEALTH_URL = "**/api/admin/code-interpreter/health"; function mockCodeInterpreterApi (line 20) | async function mockCodeInterpreterApi( function getDisconnectIconButton (line 59) | function getDisconnectIconButton(page: Page) { FILE: web/tests/e2e/admin/default-agent.spec.ts function getToolSwitch (line 15) | function getToolSwitch(page: Page, toolName: string): Locator { function clickAndWaitForPatch (line 27) | async function clickAndWaitForPatch( FILE: web/tests/e2e/admin/disable_default_agent.spec.ts constant MAX_SETTING_SAVE_ATTEMPTS (line 6) | const MAX_SETTING_SAVE_ATTEMPTS = 5; constant SETTING_SAVE_RETRY_DELAY_MS (line 7) | const SETTING_SAVE_RETRY_DELAY_MS = 750; function expandAdvancedOptions (line 14) | async function expandAdvancedOptions(page: Page): Promise { function setDisableDefaultAssistantSetting (line 41) | async function setDisableDefaultAssistantSetting( FILE: web/tests/e2e/admin/discord-bot/fixtures.ts type MockGuild (line 17) | interface MockGuild { type MockChannel (line 27) | interface MockChannel { constant MOCK_GUILD_ID (line 42) | const MOCK_GUILD_ID = 999; function authenticateAdmin (line 47) | async function authenticateAdmin(page: Page): Promise { function jsonResponse (line 55) | function jsonResponse(data: unknown, status = 200) { function createMockChannels (line 66) | function createMockChannels(): MockChannel[] { function createMockRegisteredGuild (line 107) | function createMockRegisteredGuild(id: number): MockGuild { function createMockPendingGuild (line 122) | function createMockPendingGuild(id: number): MockGuild { function gotoDiscordBotPage (line 303) | async function gotoDiscordBotPage(adminPage: Page): Promise { function gotoGuildDetailPage (line 312) | async function gotoGuildDetailPage( FILE: web/tests/e2e/admin/groups/GroupsAdminPage.ts constant GROUPS_API (line 10) | const GROUPS_API = /\/api\/manage\/admin\/user-group/; class GroupsAdminPage (line 12) | class GroupsAdminPage { method constructor (line 15) | constructor(page: Page) { method goto (line 23) | async goto() { method gotoCreate (line 28) | async gotoCreate() { method gotoEdit (line 35) | async gotoEdit(groupId: number) { method pageHeading (line 46) | get pageHeading(): Locator { method listSearchInput (line 51) | get listSearchInput(): Locator { method newGroupButton (line 56) | get newGroupButton(): Locator { method groupCards (line 61) | get groupCards(): Locator { method getGroupCard (line 69) | getGroupCard(name: string): Locator { method openGroup (line 74) | async openGroup(name: string) { method searchGroups (line 81) | async searchGroups(term: string) { method clickNewGroup (line 86) | async clickNewGroup() { method groupNameInput (line 98) | get groupNameInput(): Locator { method memberSearchInput (line 103) | get memberSearchInput(): Locator { method createButton (line 108) | get createButton(): Locator { method cancelButton (line 113) | get cancelButton(): Locator { method setGroupName (line 118) | async setGroupName(name: string) { method searchMembers (line 123) | async searchMembers(term: string) { method selectMember (line 128) | async selectMember(emailOrName: string) { method submitCreate (line 135) | async submitCreate() { method saveButton (line 144) | get saveButton(): Locator { method addMembersButton (line 149) | get addMembersButton(): Locator { method doneAddingButton (line 154) | get doneAddingButton(): Locator { method deleteGroupButton (line 159) | get deleteGroupButton(): Locator { method startAddingMembers (line 164) | async startAddingMembers() { method finishAddingMembers (line 170) | async finishAddingMembers() { method removeMember (line 179) | async removeMember(emailOrName: string) { method submitEdit (line 186) | async submitEdit() { method clickDeleteGroup (line 195) | async clickDeleteGroup() { method deleteModal (line 200) | get deleteModal(): Locator { method confirmDelete (line 205) | async confirmDelete() { method cancelDelete (line 210) | async cancelDelete() { method expectToast (line 223) | async expectToast(message: string | RegExp) { method expectGroupVisible (line 228) | async expectGroupVisible(name: string) { method expectGroupNotVisible (line 233) | async expectGroupNotVisible(name: string) { method expectOnListPage (line 238) | async expectOnListPage() { method expectOnEditPage (line 244) | async expectOnEditPage(groupId: number) { method waitForGroupsRefresh (line 249) | async waitForGroupsRefresh() { FILE: web/tests/e2e/admin/groups/groups.spec.ts function uniqueGroupName (line 18) | function uniqueGroupName(prefix: string): string { function softCleanup (line 23) | async function softCleanup(fn: () => Promise): Promise { function withApiContext (line 30) | async function withApiContext( FILE: web/tests/e2e/admin/image-generation/disconnect-provider.spec.ts constant IMAGE_GENERATION_URL (line 5) | const IMAGE_GENERATION_URL = "/admin/configuration/image-generation"; constant FAKE_CONNECTED_CONFIG (line 7) | const FAKE_CONNECTED_CONFIG = { constant FAKE_DEFAULT_CONFIG (line 16) | const FAKE_DEFAULT_CONFIG = { function getProviderCard (line 25) | function getProviderCard(page: Page, providerId: string): Locator { function mainContainer (line 29) | function mainContainer(page: Page): Locator { function mockImageGenApis (line 37) | async function mockImageGenApis( FILE: web/tests/e2e/admin/image-generation/image-generation-content.spec.ts constant IMAGE_GENERATION_URL (line 5) | const IMAGE_GENERATION_URL = constant PROVIDERS (line 9) | const PROVIDERS = [ function getProviderCard (line 17) | function getProviderCard(page: Page, providerId: string): Locator { function openProviderModal (line 22) | async function openProviderModal( FILE: web/tests/e2e/admin/llm_provider_setup.spec.ts constant LLM_SETUP_URL (line 6) | const LLM_SETUP_URL = "/admin/configuration/llm"; constant BASE_URL (line 7) | const BASE_URL = process.env.BASE_URL || "http://localhost:3000"; constant PROVIDER_API_KEY (line 8) | const PROVIDER_API_KEY = type AdminLLMProvider (line 13) | type AdminLLMProvider = { type DefaultModelInfo (line 19) | type DefaultModelInfo = { type ProviderModelConfig (line 24) | type ProviderModelConfig = { function uniqueName (line 29) | function uniqueName(prefix: string): string { function normalizeAlphaNum (line 33) | function normalizeAlphaNum(input: string): string { function modelTokenVariants (line 37) | function modelTokenVariants(modelName: string): string[][] { function textMatchesModel (line 51) | function textMatchesModel(modelName: string, candidateText: string): boo... function getAdminLLMProviderResponse (line 65) | async function getAdminLLMProviderResponse(page: Page) { function listAdminLLMProviders (line 75) | async function listAdminLLMProviders(page: Page): Promise { function createPublicProvider (line 85) | async function createPublicProvider( function createPublicProviderWithModels (line 95) | async function createPublicProviderWithModels( function navigateToAdminLlmPageFromChat (line 121) | async function navigateToAdminLlmPageFromChat(page: Page): Promise { function exitAdminToChat (line 129) | async function exitAdminToChat(page: Page): Promise { function isModelVisibleInChatProviders (line 137) | async function isModelVisibleInChatProviders( function expectModelVisibilityInChatProviders (line 157) | async function expectModelVisibilityInChatProviders( function getModelCountInChatSelector (line 169) | async function getModelCountInChatSelector( function getProviderByName (line 201) | async function getProviderByName( function findProviderCard (line 209) | async function findProviderCard( function openOpenAiSetupModal (line 219) | async function openOpenAiSetupModal(page: Page): Promise { function openProviderEditModal (line 234) | async function openProviderEditModal( FILE: web/tests/e2e/admin/oauth_config/test_tool_oauth.spec.ts constant SIMPLE_OPENAPI_SCHEMA (line 24) | const SIMPLE_OPENAPI_SCHEMA = `{ FILE: web/tests/e2e/admin/scim/fixtures.ts type MockTokenControl (line 18) | interface MockTokenControl { function authenticateAdmin (line 27) | async function authenticateAdmin(page: Page): Promise { function jsonResponse (line 32) | function jsonResponse(data: unknown, status = 200) { function makeToken (line 57) | function makeToken(): { token: ScimTokenResponse; rawToken: string } { function gotoScimPage (line 109) | async function gotoScimPage(adminPage: Page): Promise { FILE: web/tests/e2e/admin/users/UsersAdminPage.ts constant USERS_API (line 10) | const USERS_API = /\/api\/manage\/users\/(accepted\/all|invited)/; class UsersAdminPage (line 12) | class UsersAdminPage { method constructor (line 32) | constructor(page: Page) { method popover (line 61) | get popover(): Locator { method goto (line 69) | async goto() { method waitForTableRefresh (line 84) | private async waitForTableRefresh(): Promise { method search (line 92) | async search(term: string) { method clearSearch (line 96) | async clearSearch() { method openAccountTypesFilter (line 104) | async openAccountTypesFilter() { method selectAccountType (line 109) | async selectAccountType(label: string) { method openStatusFilter (line 113) | async openStatusFilter() { method selectStatus (line 118) | async selectStatus(label: string) { method openGroupsFilter (line 122) | async openGroupsFilter() { method selectGroup (line 127) | async selectGroup(label: string) { method closePopover (line 131) | async closePopover() { method getVisibleRowCount (line 140) | async getVisibleRowCount(): Promise { method getColumnTexts (line 148) | async getColumnTexts(columnIndex: number): Promise { method getRowByEmail (line 159) | getRowByEmail(email: string): Locator { method sortByColumn (line 164) | async sortByColumn(columnName: string) { method goToPage (line 177) | async goToPage(pageNumber: number) { method openRowActions (line 189) | async openRowActions(email: string) { method clickRowAction (line 196) | async clickRowAction(actionName: string) { method dialog (line 210) | get dialog(): Locator { method confirmModalAction (line 214) | async confirmModalAction(buttonName: string) { method cancelModal (line 218) | async cancelModal() { method expectToast (line 222) | async expectToast(message: string | RegExp) { method inviteEmailInput (line 231) | get inviteEmailInput(): Locator { method openInviteModal (line 235) | async openInviteModal() { method addInviteEmail (line 240) | async addInviteEmail(email: string) { method submitInvite (line 247) | async submitInvite() { method openRoleDropdown (line 255) | async openRoleDropdown(email: string) { method selectRole (line 264) | async selectRole(roleName: string) { method editGroupsDialog (line 281) | get editGroupsDialog(): Locator { method groupSearchInput (line 286) | get groupSearchInput(): Locator { method openEditGroupsModal (line 290) | async openEditGroupsModal(email: string) { method searchGroupsInModal (line 298) | async searchGroupsInModal(term: string) { method toggleGroupInModal (line 308) | async toggleGroupInModal(groupName: string) { method saveGroupsModal (line 319) | async saveGroupsModal() { FILE: web/tests/e2e/admin/users/users.spec.ts function uniqueEmail (line 21) | function uniqueEmail(prefix: string): string { constant TEST_PASSWORD (line 25) | const TEST_PASSWORD = "TestPassword123!"; function softCleanup (line 28) | async function softCleanup(fn: () => Promise): Promise { function withApiContext (line 36) | async function withApiContext( FILE: web/tests/e2e/admin/voice/disconnect-provider.spec.ts constant VOICE_URL (line 5) | const VOICE_URL = "/admin/configuration/voice"; constant FAKE_PROVIDERS (line 7) | const FAKE_PROVIDERS = { function findModelCard (line 58) | function findModelCard(page: Page, ariaLabel: string): Locator { function mainContainer (line 62) | function mainContainer(page: Page): Locator { function mockVoiceApis (line 66) | async function mockVoiceApis( FILE: web/tests/e2e/admin/web-search/svc.ts constant WEB_SEARCH_URL (line 3) | const WEB_SEARCH_URL = "/admin/configuration/web-search"; constant FAKE_SEARCH_PROVIDERS (line 5) | const FAKE_SEARCH_PROVIDERS = { constant FAKE_CONTENT_PROVIDERS (line 24) | const FAKE_CONTENT_PROVIDERS = { function findProviderCard (line 43) | function findProviderCard(page: Page, providerLabel: string): Locator { function mainContainer (line 50) | function mainContainer(page: Page): Locator { function openProviderModal (line 54) | async function openProviderModal( function mockWebSearchApis (line 74) | async function mockWebSearchApis( FILE: web/tests/e2e/agents/user_file_attachment.spec.ts function uploadTestFile (line 118) | async function uploadTestFile( function selectFileByName (line 195) | async function selectFileByName(page: Page, fileName: string): Promise { FILE: web/tests/e2e/chat/chat_message_rendering.spec.ts constant SHORT_USER_MESSAGE (line 7) | const SHORT_USER_MESSAGE = "What is Onyx?"; constant LONG_WORD_USER_MESSAGE (line 9) | const LONG_WORD_USER_MESSAGE = constant LONG_USER_MESSAGE (line 12) | const LONG_USER_MESSAGE = `I've been evaluating several enterprise searc... constant SHORT_AI_RESPONSE (line 22) | const SHORT_AI_RESPONSE = constant LONG_AI_RESPONSE (line 25) | const LONG_AI_RESPONSE = `Onyx is an open-source Gen-AI and Enterprise S... constant MARKDOWN_AI_RESPONSE (line 68) | const MARKDOWN_AI_RESPONSE = `Here's a quick overview with various forma... constant LATEX_AI_RESPONSE (line 99) | const LATEX_AI_RESPONSE = `Here is a mix of math and plain text: type MockDocument (line 115) | interface MockDocument { type SearchMockOptions (line 124) | interface SearchMockOptions { function buildMockStream (line 135) | function buildMockStream(content: string): string { function buildMockSearchStream (line 168) | function buildMockSearchStream(options: SearchMockOptions): string { function openChat (line 243) | async function openChat(page: Page): Promise { function mockChatEndpoint (line 249) | async function mockChatEndpoint( function mockChatEndpointSequence (line 262) | async function mockChatEndpointSequence( function scrollChatTo (line 280) | async function scrollChatTo( function screenshotChatContainer (line 291) | async function screenshotChatContainer( function screenshotChatContainerTopAndBottom (line 307) | async function screenshotChatContainerTopAndBottom( function screenshotToolbarButtonHoverStates (line 560) | async function screenshotToolbarButtonHoverStates( FILE: web/tests/e2e/chat/chat_session_not_found.spec.ts constant NON_EXISTENT_CHAT_ID (line 5) | const NON_EXISTENT_CHAT_ID = "00000000-0000-0000-0000-000000000000"; FILE: web/tests/e2e/chat/file_preview_modal.spec.ts function buildMockStream (line 16) | function buildMockStream(messageContent: string): string { function sendMessageWithMockResponse (line 77) | async function sendMessageWithMockResponse( constant MOCK_FILE_ID (line 109) | const MOCK_FILE_ID = "00000000-0000-0000-0000-000000000001"; FILE: web/tests/e2e/chat/llm_runtime_selection.spec.ts type SendChatMessagePayload (line 11) | type SendChatMessagePayload = { function uniqueName (line 19) | function uniqueName(prefix: string): string { function openChat (line 23) | async function openChat(page: Page): Promise { function loginWithCleanCookies (line 29) | async function loginWithCleanCookies( function createLlmProvider (line 41) | async function createLlmProvider( function sendMessageAndCapturePayload (line 77) | async function sendMessageAndCapturePayload( type LlmProviderBasics (line 93) | type LlmProviderBasics = { function listUserLlmProviders (line 98) | async function listUserLlmProviders(page: Page): Promise { function ensureUserExists (line 65) | async function ensureUserExists( function apiLoginAndSaveState (line 102) | async function apiLoginAndSaveState( function promoteToAdmin (line 129) | async function promoteToAdmin( function globalSetup (line 168) | async function globalSetup(config: FullConfig) { FILE: web/tests/e2e/mcp/default-agent-mcp.spec.ts constant API_KEY (line 14) | const API_KEY = process.env.MCP_API_KEY || "test-api-key-12345"; constant DEFAULT_PORT (line 15) | const DEFAULT_PORT = Number(process.env.MCP_API_KEY_TEST_PORT || "8005"); constant MCP_API_KEY_TEST_URL (line 16) | const MCP_API_KEY_TEST_URL = process.env.MCP_API_KEY_TEST_URL; constant MCP_ASSERTED_TOOL_NAME (line 17) | const MCP_ASSERTED_TOOL_NAME = "tool_0"; function scrollToBottom (line 19) | async function scrollToBottom(page: Page): Promise { function ensureOnboardingComplete (line 30) | async function ensureOnboardingComplete(page: Page): Promise { function getToolPacketCounts (line 53) | function getToolPacketCounts( function fetchMcpToolIdByName (line 70) | async function fetchMcpToolIdByName( FILE: web/tests/e2e/mcp/mcp_oauth_flow.spec.ts constant REQUIRED_ENV_VARS (line 16) | const REQUIRED_ENV_VARS = [ constant DEFAULT_MCP_SERVER_URL (line 37) | const DEFAULT_MCP_SERVER_URL = constant CLIENT_ID (line 40) | const CLIENT_ID = process.env.MCP_OAUTH_CLIENT_ID!; constant CLIENT_SECRET (line 41) | const CLIENT_SECRET = process.env.MCP_OAUTH_CLIENT_SECRET!; constant IDP_USERNAME (line 42) | const IDP_USERNAME = process.env.MCP_OAUTH_USERNAME!; constant IDP_PASSWORD (line 43) | const IDP_PASSWORD = process.env.MCP_OAUTH_PASSWORD!; constant APP_BASE_URL (line 44) | const APP_BASE_URL = process.env.MCP_TEST_APP_BASE || "http://localhost:... constant APP_HOST (line 45) | const APP_HOST = new URL(APP_BASE_URL).host; constant IDP_HOST (line 46) | const IDP_HOST = new URL(process.env.MCP_OAUTH_ISSUER!).host; constant QUICK_CONFIRM_CONNECTED_TIMEOUT_MS (line 47) | const QUICK_CONFIRM_CONNECTED_TIMEOUT_MS = Number( constant POST_CLICK_URL_CHANGE_WAIT_MS (line 50) | const POST_CLICK_URL_CHANGE_WAIT_MS = Number( constant MCP_OAUTH_FLOW_TEST_TIMEOUT_MS (line 53) | const MCP_OAUTH_FLOW_TEST_TIMEOUT_MS = Number( type Credentials (line 57) | type Credentials = { type FlowArtifacts (line 62) | type FlowArtifacts = { type StepLogger (line 71) | type StepLogger = (message: string) => void; constant DEFAULT_USERNAME_SELECTORS (line 73) | const DEFAULT_USERNAME_SELECTORS = [ constant DEFAULT_PASSWORD_SELECTORS (line 86) | const DEFAULT_PASSWORD_SELECTORS = [ constant DEFAULT_SUBMIT_SELECTORS (line 94) | const DEFAULT_SUBMIT_SELECTORS = [ constant DEFAULT_NEXT_SELECTORS (line 103) | const DEFAULT_NEXT_SELECTORS = [ constant DEFAULT_CONSENT_SELECTORS (line 109) | const DEFAULT_CONSENT_SELECTORS = [ constant TOOL_NAMES (line 116) | const TOOL_NAMES = { constant SPEC_START_MS (line 121) | const SPEC_START_MS = Date.now(); function parseSelectorList (line 123) | function parseSelectorList( function buildMcpServerUrl (line 134) | function buildMcpServerUrl(baseUrl: string): string { function clickAndWaitForPossibleUrlChange (line 146) | async function clickAndWaitForPossibleUrlChange( function createStepLogger (line 175) | function createStepLogger(testName: string) { function verifyToolInvocationFromChat (line 188) | async function verifyToolInvocationFromChat( function fetchMcpToolIdByName (line 236) | async function fetchMcpToolIdByName( function logoutSession (line 302) | async function logoutSession(page: Page, contextLabel: string) { function verifySessionUser (line 325) | async function verifySessionUser( function logPageStateWithTag (line 341) | async function logPageStateWithTag(page: Page, context: string) { function fillFirstVisible (line 346) | async function fillFirstVisible( function clickFirstVisible (line 388) | async function clickFirstVisible( function waitForAnySelector (line 418) | async function waitForAnySelector( function scrollToBottom (line 444) | async function scrollToBottom(page: Page): Promise { function performIdpLogin (line 473) | async function performIdpLogin(page: Page): Promise { function completeOauthFlow (line 598) | async function completeOauthFlow( function selectMcpTools (line 814) | async function selectMcpTools(page: Page, serverId: number) { constant ACTION_POPOVER_SELECTOR (line 839) | const ACTION_POPOVER_SELECTOR = '[data-testid="tool-options"]'; constant LINE_ITEM_SELECTOR (line 840) | const LINE_ITEM_SELECTOR = ".group\\/LineItem"; function ensureActionPopoverInPrimaryView (line 842) | async function ensureActionPopoverInPrimaryView(page: Page) { function waitForMcpSecondaryView (line 862) | async function waitForMcpSecondaryView(page: Page) { function findMcpToolLineItemButton (line 873) | async function findMcpToolLineItemButton( function logActionPopoverHtml (line 898) | async function logActionPopoverHtml(page: Page, context: string) { function closeActionsPopover (line 930) | async function closeActionsPopover(page: Page) { function openActionsPopover (line 955) | async function openActionsPopover(page: Page) { function restoreAssistantContext (line 965) | async function restoreAssistantContext(page: Page, agentId: number) { function getServerRowLocator (line 997) | function getServerRowLocator(page: Page, serverName: string) { function collectActionPopoverEntries (line 1008) | async function collectActionPopoverEntries(page: Page): Promise { function waitForServerRow (line 1032) | async function waitForServerRow( function clickServerRowAndWaitForPossibleUrlChangeWithRetry (line 1056) | async function clickServerRowAndWaitForPossibleUrlChangeWithRetry( function ensureToolOptionVisible (line 1111) | async function ensureToolOptionVisible( function verifyMcpToolRowVisible (line 1214) | async function verifyMcpToolRowVisible( function ensureMcpToolEnabledInActions (line 1225) | async function ensureMcpToolEnabledInActions( function reauthenticateFromChat (line 1255) | async function reauthenticateFromChat( function ensureServerVisibleInActions (line 1340) | async function ensureServerVisibleInActions( function waitForUserRecord (line 1380) | async function waitForUserRecord( function waitForAssistantByName (line 1396) | async function waitForAssistantByName( function waitForAssistantTools (line 1414) | async function waitForAssistantTools( function mockEmptyOauthStatus (line 1448) | async function mockEmptyOauthStatus(page: Page): Promise { function getNumericQueryParam (line 1458) | function getNumericQueryParam( function configureOauthServerAndEnableTool (line 1474) | async function configureOauthServerAndEnableTool( function openAssistantEditor (line 1574) | async function openAssistantEditor( function createAgentAndWaitForTool (line 1615) | async function createAgentAndWaitForTool( FILE: web/tests/e2e/onboarding/onboarding_flow.spec.ts function deleteAllProviders (line 19) | async function deleteAllProviders(client: OnyxApiClient): Promise { function createFreshAdmin (line 32) | async function createFreshAdmin( function createFreshUser (line 52) | async function createFreshUser( FILE: web/tests/e2e/settings/settings_pages.spec.ts constant SLUG_TO_HEADER (line 8) | const SLUG_TO_HEADER: Record = { FILE: web/tests/e2e/utils/agentUtils.ts type AgentParams (line 5) | type AgentParams = { function createAgent (line 12) | async function createAgent(page: Page, params: AgentParams) { function pinAgentByName (line 41) | async function pinAgentByName( function ensureImageGenerationEnabled (line 79) | async function ensureImageGenerationEnabled(page: Page): Promise { FILE: web/tests/e2e/utils/auth.ts function apiLogin (line 13) | async function apiLogin( function loginAs (line 29) | async function loginAs( function loginAsWorkerUser (line 45) | async function loginAsWorkerUser( function loginAsRandomUser (line 73) | async function loginAsRandomUser(page: Page): Promise<{ FILE: web/tests/e2e/utils/chatActions.ts function verifyDefaultAgentIsChosen (line 4) | async function verifyDefaultAgentIsChosen(page: Page) { function verifyAgentIsChosen (line 8) | async function verifyAgentIsChosen( function navigateToAgentInHistorySidebar (line 18) | async function navigateToAgentInHistorySidebar( function sendMessage (line 34) | async function sendMessage(page: Page, message: string) { function verifyCurrentModel (line 58) | async function verifyCurrentModel(page: Page, modelName: string) { function selectModelFromInputPopover (line 65) | async function selectModelFromInputPopover( function switchModel (line 143) | async function switchModel(page: Page, modelName: string) { function startNewChat (line 161) | async function startNewChat(page: Page) { FILE: web/tests/e2e/utils/chatStream.ts type ChatStreamObject (line 4) | type ChatStreamObject = Record & { type ChatStreamPacket (line 8) | type ChatStreamPacket = Record & { function parseStreamLine (line 12) | function parseStreamLine(rawLine: string): ChatStreamPacket | null { function parseChatStreamBody (line 32) | function parseChatStreamBody(body: string): ChatStreamPacket[] { function getPacketObjectsByType (line 39) | function getPacketObjectsByType( function sendMessageAndCaptureStreamPackets (line 51) | async function sendMessageAndCaptureStreamPackets( FILE: web/tests/e2e/utils/dragUtils.ts function dragElementAbove (line 7) | async function dragElementAbove( function dragElementBelow (line 41) | async function dragElementBelow( FILE: web/tests/e2e/utils/mcpServer.ts type StartServerOptions (line 6) | interface StartServerOptions { constant DEFAULT_BIND_HOST (line 15) | const DEFAULT_BIND_HOST = constant DEFAULT_PUBLIC_HOST (line 19) | const DEFAULT_PUBLIC_HOST = constant DEFAULT_PORT (line 21) | const DEFAULT_PORT = Number(process.env.MCP_TEST_SERVER_PORT || "8004"); constant READY_TIMEOUT_MS (line 22) | const READY_TIMEOUT_MS = 25_000; class McpServerProcess (line 24) | class McpServerProcess { method constructor (line 31) | constructor( method address (line 43) | get address(): { host: string; port: number } { method bindAddress (line 47) | get bindAddress(): { host: string; port: number } { method stop (line 51) | async stop(signal: NodeJS.Signals = "SIGTERM"): Promise { function waitForPort (line 72) | function waitForPort( function startMcpOauthServer (line 119) | async function startMcpOauthServer( function startMcpApiKeyServer (line 166) | async function startMcpApiKeyServer( function startMcpGoogleOAuthServer (line 223) | async function startMcpGoogleOAuthServer( FILE: web/tests/e2e/utils/onyxApiClient.ts constant E2E_LLM_PROVIDER_API_KEY (line 3) | const E2E_LLM_PROVIDER_API_KEY = constant E2E_WEB_SEARCH_API_KEY (line 8) | const E2E_WEB_SEARCH_API_KEY = constant E2E_IMAGE_GEN_API_KEY (line 15) | const E2E_IMAGE_GEN_API_KEY = class OnyxApiClient (line 81) | class OnyxApiClient { method constructor (line 84) | constructor( method get (line 99) | private async get(endpoint: string): Promise { method post (line 110) | private async post(endpoint: string, data?: any): Promise { method delete (line 122) | private async delete(endpoint: string): Promise { method put (line 133) | private async put(endpoint: string, data?: any): Promise { method handleResponse (line 147) | private async handleResponse( method handleResponseSoft (line 166) | private async handleResponseSoft( method waitForDeletion (line 192) | private async waitForDeletion( method log (line 217) | private log(message: string): void { method isVectorDbEnabled (line 226) | async isVectorDbEnabled(): Promise { method createFileConnector (line 244) | async createFileConnector( method pauseConnector (line 287) | async pauseConnector(ccPairId: number): Promise { method createDocumentSet (line 307) | async createDocumentSet( method deleteDocumentSet (line 337) | async deleteDocumentSet(documentSetId: number): Promise { method deleteCCPair (line 368) | async deleteCCPair(ccPairId: number): Promise { method createRestrictedProvider (line 421) | async createRestrictedProvider( method listLlmProviders (line 456) | async listLlmProviders(): Promise< method ensurePublicProvider (line 478) | async ensurePublicProvider( method setProviderAsDefault (line 524) | async setProviderAsDefault( method deleteProvider (line 546) | async deleteProvider( method createUserGroup (line 572) | async createUserGroup( method waitForGroupSync (line 597) | async waitForGroupSync( method deleteUserGroup (line 625) | async deleteUserGroup(groupId: number): Promise { method getUserGroups (line 639) | async getUserGroups(): Promise< method setUserRole (line 648) | async setUserRole( method deleteMcpServer (line 667) | async deleteMcpServer(serverId: number): Promise { method deleteCustomTool (line 681) | async deleteCustomTool(toolId: number): Promise { method listOpenApiTools (line 695) | async listOpenApiTools(): Promise< method findToolByName (line 702) | async findToolByName( method deleteAgent (line 709) | async deleteAgent(agentId: number): Promise { method getAssistant (line 723) | async getAssistant(agentId: number): Promise<{ method updateAgentSharing (line 737) | async updateAgentSharing( method listMcpServers (line 768) | async listMcpServers(): Promise { method listAgents (line 777) | async listAgents(options?: { method findAgentByName (line 798) | async findAgentByName( method registerUser (line 806) | async registerUser(email: string, password: string): Promise<{ id: str... method getUserByEmail (line 821) | async getUserByEmail(email: string): Promise<{ method setCuratorStatus (line 849) | async setCuratorStatus( method createWebSearchProvider (line 877) | async createWebSearchProvider( method deleteWebSearchProvider (line 910) | async deleteWebSearchProvider(providerId: number): Promise { method createImageGenerationConfig (line 940) | async createImageGenerationConfig( method deleteImageGenerationConfig (line 968) | async deleteImageGenerationConfig(imageProviderId: string): Promise { method listDiscordChannels (line 1100) | async listDiscordChannels(guildConfigId: number): Promise< method updateDiscordChannel (line 1126) | async updateDiscordChannel( method deactivateUser (line 1153) | async deactivateUser(email: string): Promise { method activateUser (line 1162) | async activateUser(email: string): Promise { method deleteUser (line 1171) | async deleteUser(email: string): Promise { method cancelInvite (line 1180) | async cancelInvite(email: string): Promise { method inviteUsers (line 1189) | async inviteUsers(emails: string[]): Promise { method setPersonalName (line 1195) | async setPersonalName(name: string): Promise { method createChatSession (line 1217) | async createChatSession( method deleteChatSession (line 1240) | async deleteChatSession(chatId: string): Promise { method createProject (line 1258) | async createProject(name: string): Promise { method deleteProject (line 1275) | async deleteProject(projectId: number): Promise { method setDefaultAppMode (line 1289) | async setDefaultAppMode(mode: "CHAT" | "SEARCH"): Promise { FILE: web/tests/e2e/utils/pageStateLogger.ts constant RUN_START_MS (line 3) | const RUN_START_MS = Date.now(); function logPageState (line 9) | async function logPageState( FILE: web/tests/e2e/utils/theme.ts constant THEMES (line 3) | const THEMES = ["light", "dark"] as const; type Theme (line 4) | type Theme = (typeof THEMES)[number]; function setThemeBeforeNavigation (line 11) | async function setThemeBeforeNavigation( FILE: web/tests/e2e/utils/tools.ts constant TOOL_IDS (line 5) | const TOOL_IDS = { function waitForUnifiedGreeting (line 19) | async function waitForUnifiedGreeting(page: Page): Promise { function openActionManagement (line 28) | async function openActionManagement(page: Page): Promise { function isActionTogglePresent (line 36) | async function isActionTogglePresent(page: Page): Promise { function toggleToolDisabled (line 46) | async function toggleToolDisabled( function openSourceManagement (line 62) | async function openSourceManagement(page: Page): Promise { function getSourceToggle (line 74) | function getSourceToggle(page: Page, sourceName: string) { FILE: web/tests/e2e/utils/visualRegression.ts constant VISUAL_REGRESSION_ENABLED (line 15) | const VISUAL_REGRESSION_ENABLED = constant DEFAULT_MASK_SELECTORS (line 22) | const DEFAULT_MASK_SELECTORS: string[] = [ constant DEFAULT_HIDE_SELECTORS (line 32) | const DEFAULT_HIDE_SELECTORS: string[] = [ type ScreenshotOptions (line 38) | interface ScreenshotOptions { type ElementScreenshotOptions (line 80) | interface ElementScreenshotOptions { function waitForAnimations (line 122) | async function waitForAnimations(page: Page): Promise { function waitForImages (line 153) | async function waitForImages( function expectScreenshot (line 214) | async function expectScreenshot( function expectElementScreenshot (line 314) | async function expectElementScreenshot( FILE: web/tests/setup/jest.setup.ts method constructor (line 21) | constructor(public name: string) {} method postMessage (line 22) | postMessage() {} method close (line 23) | close() {} method addEventListener (line 24) | addEventListener() {} method removeEventListener (line 25) | removeEventListener() {} method dispatchEvent (line 26) | dispatchEvent() { method constructor (line 48) | constructor() {} method disconnect (line 49) | disconnect() {} method observe (line 50) | observe() {} method takeRecords (line 51) | takeRecords() { method unobserve (line 54) | unobserve() {} method constructor (line 59) | constructor() {} method disconnect (line 60) | disconnect() {} method observe (line 61) | observe() {} method unobserve (line 62) | unobserve() {} constant SUPPRESSED_ERRORS (line 78) | const SUPPRESSED_ERRORS = [ FILE: web/tests/setup/llmProviderTestUtils.ts function makeProvider (line 3) | function makeProvider( FILE: web/tests/setup/mocks/components/UserProvider.tsx type UserContextType (line 20) | interface UserContextType { function useUser (line 52) | function useUser() { function UserProvider (line 60) | function UserProvider({ children }: { children: React.ReactNode }) { FILE: web/tests/setup/test-utils.tsx type AllProvidersProps (line 13) | interface AllProvidersProps { function AllTheProviders (line 22) | function AllTheProviders({ children, swrConfig = {} }: AllProvidersProps) { type CustomRenderOptions (line 41) | interface CustomRenderOptions extends Omit { function setupUser (line 95) | function setupUser(options = {}) { FILE: web/types/favicon-fetch.d.ts type FetchFaviconArg (line 2) | type FetchFaviconArg = string | { uri: string }; FILE: widget/src/assets/logo.ts constant DEFAULT_LOGO (line 2) | const DEFAULT_LOGO = FILE: widget/src/config/config.ts function resolveConfig (line 7) | function resolveConfig(attributes: Partial): WidgetConfig { FILE: widget/src/services/api-service.ts class ApiService (line 12) | class ApiService { method constructor (line 16) | constructor( method createChatSession (line 24) | async createChatSession(agentId?: number): Promise { method streamMessage (line 53) | async *streamMessage(params: { method parseSSEStream (line 92) | private async *parseSSEStream( method fetchWithRetry (line 173) | private async fetchWithRetry( method getHeaders (line 210) | private getHeaders(): Record { FILE: widget/src/services/stream-parser.ts type ParsedMessage (line 8) | interface ParsedMessage { type MessageIDs (line 13) | interface MessageIDs { function processPacket (line 22) | function processPacket( function convertMessage (line 222) | function convertMessage(msg: Message): ChatMessage { function isStreamComplete (line 235) | function isStreamComplete(packet: Packet): boolean { function isStreamError (line 242) | function isStreamError(packet: Packet): boolean { FILE: widget/src/types/api-types.ts type Packet (line 5) | interface Packet { type PacketType (line 10) | type PacketType = type MessageResponseIDInfo (line 35) | interface MessageResponseIDInfo { type MessageStart (line 41) | interface MessageStart { type MessageDelta (line 45) | interface MessageDelta { type CitationInfo (line 50) | interface CitationInfo { type ResolvedCitation (line 56) | interface ResolvedCitation { type SearchToolStart (line 63) | interface SearchToolStart { type SearchToolQueriesDelta (line 68) | interface SearchToolQueriesDelta { type SearchToolDocumentsDelta (line 73) | interface SearchToolDocumentsDelta { type SearchDocument (line 78) | interface SearchDocument { type OpenUrlStart (line 85) | interface OpenUrlStart { type OpenUrlUrls (line 89) | interface OpenUrlUrls { type OpenUrlDocuments (line 94) | interface OpenUrlDocuments { type ImageGenerationStart (line 99) | interface ImageGenerationStart { type ImageGenerationHeartbeat (line 103) | interface ImageGenerationHeartbeat { type PythonToolStart (line 107) | interface PythonToolStart { type PythonToolDelta (line 111) | interface PythonToolDelta { type CustomToolStart (line 116) | interface CustomToolStart { type ReasoningStart (line 120) | interface ReasoningStart { type ReasoningDelta (line 124) | interface ReasoningDelta { type DeepResearchPlanStart (line 129) | interface DeepResearchPlanStart { type ResearchAgentStart (line 133) | interface ResearchAgentStart { type IntermediateReportStart (line 137) | interface IntermediateReportStart { type Stop (line 141) | interface Stop { type OverallStop (line 145) | interface OverallStop { type ErrorPacket (line 149) | interface ErrorPacket { type Message (line 154) | interface Message { type ChatSession (line 163) | interface ChatSession { type SendMessageRequest (line 170) | interface SendMessageRequest { type CreateSessionRequest (line 178) | interface CreateSessionRequest { type CreateSessionResponse (line 182) | interface CreateSessionResponse { FILE: widget/src/types/widget-types.ts type WidgetConfig (line 7) | interface WidgetConfig { type ChatState (line 29) | interface ChatState { type ChatMessage (line 36) | interface ChatMessage { FILE: widget/src/utils/storage.ts constant SESSION_KEY (line 7) | const SESSION_KEY = "onyx-widget-session"; constant SESSION_TTL (line 8) | const SESSION_TTL = 24 * 60 * 60 * 1000; type StoredSession (line 10) | interface StoredSession { function saveSession (line 19) | function saveSession(sessionId: string, messages: ChatMessage[]): void { function loadSession (line 36) | function loadSession(): StoredSession | null { function clearSession (line 59) | function clearSession(): void { function hasSession (line 70) | function hasSession(): boolean { FILE: widget/src/widget.ts class OnyxChatWidget (line 22) | class OnyxChatWidget extends LitElement { method constructor (line 55) | constructor() { method updated (line 64) | updated(changedProperties: Map) { method scrollToBottom (line 76) | private scrollToBottom() { method connectedCallback (line 86) | connectedCallback() { method applyCustomColors (line 125) | private applyCustomColors() { method adjustBrightness (line 153) | private adjustBrightness(color: string, percent: number): string { method resetConversation (line 175) | public resetConversation() { method renderMarkdown (line 200) | private renderMarkdown(content: string, citations?: ResolvedCitation[]) { method renderCitationBadge (line 238) | private renderCitationBadge( method toggleCitationExpand (line 264) | private toggleCitationExpand(e: Event): void { method renderCitations (line 275) | private renderCitations( method toggleOpen (line 302) | private toggleOpen() { method close (line 306) | private close() { method handleInput (line 312) | private handleInput(e: InputEvent) { method handleKeyDown (line 316) | private handleKeyDown(e: KeyboardEvent) { method sendMessage (line 323) | private async sendMessage() { method render (line 490) | render() { method renderHeader (line 530) | private renderHeader() { method renderMessages (line 590) | private renderMessages() { method renderInput (line 645) | private renderInput() { method renderCompactInput (line 696) | private renderCompactInput() { type HTMLElementTagNameMap (line 744) | interface HTMLElementTagNameMap {