| bot/access_control.py |
is_owner |
1 |
0 |
0 |
100% |
| bot/access_control.py |
is_moderator |
1 |
0 |
0 |
100% |
| bot/access_control.py |
is_trusted_curator |
1 |
0 |
0 |
100% |
| bot/access_control.py |
(no function) |
4 |
0 |
0 |
100% |
| bot/autonomy_logic.py |
_clip_line |
4 |
1 |
0 |
75% |
| bot/autonomy_logic.py |
generate_goal_text |
5 |
0 |
0 |
100% |
| bot/autonomy_logic.py |
process_autonomy_goal |
16 |
0 |
0 |
100% |
| bot/autonomy_logic.py |
_handle_auto_chat |
20 |
5 |
0 |
75% |
| bot/autonomy_logic.py |
_handle_clip_candidate |
13 |
0 |
0 |
100% |
| bot/autonomy_logic.py |
_handle_generic_suggestion |
6 |
0 |
0 |
100% |
| bot/autonomy_logic.py |
(no function) |
17 |
0 |
0 |
100% |
| bot/autonomy_runtime.py |
AutonomyRuntime.__init__ |
6 |
0 |
0 |
100% |
| bot/autonomy_runtime.py |
AutonomyRuntime.bind |
5 |
0 |
0 |
100% |
| bot/autonomy_runtime.py |
AutonomyRuntime.unbind |
10 |
1 |
0 |
90% |
| bot/autonomy_runtime.py |
AutonomyRuntime._ensure_loop_task |
12 |
1 |
0 |
92% |
| bot/autonomy_runtime.py |
AutonomyRuntime._heartbeat_loop |
18 |
6 |
0 |
67% |
| bot/autonomy_runtime.py |
AutonomyRuntime._run_tick |
16 |
0 |
0 |
100% |
| bot/autonomy_runtime.py |
AutonomyRuntime._get_auto_chat_dispatcher |
2 |
0 |
0 |
100% |
| bot/autonomy_runtime.py |
AutonomyRuntime.run_manual_tick |
11 |
3 |
0 |
73% |
| bot/autonomy_runtime.py |
(no function) |
22 |
0 |
0 |
100% |
| bot/bootstrap_runtime.py |
get_secret |
5 |
0 |
0 |
100% |
| bot/bootstrap_runtime.py |
require_env |
4 |
0 |
0 |
100% |
| bot/bootstrap_runtime.py |
resolve_irc_channel_logins |
11 |
1 |
0 |
91% |
| bot/bootstrap_runtime.py |
resolve_client_secret_for_irc_refresh |
8 |
0 |
0 |
100% |
| bot/bootstrap_runtime.py |
build_irc_token_manager |
10 |
0 |
0 |
100% |
| bot/bootstrap_runtime.py |
run_irc_mode |
9 |
0 |
0 |
100% |
| bot/bootstrap_runtime.py |
run_irc_mode.run_with_channel_control |
14 |
14 |
0 |
0% |
| bot/bootstrap_runtime.py |
run_irc_mode.run_with_channel_control._check_clips_auth |
9 |
9 |
0 |
0% |
| bot/bootstrap_runtime.py |
run_irc_mode.run_with_channel_control.verify_clips_auth_loop |
4 |
4 |
0 |
0% |
| bot/bootstrap_runtime.py |
run_irc_mode.run_with_channel_control.send_autonomy_chat |
1 |
1 |
0 |
0% |
| bot/bootstrap_runtime.py |
run_eventsub_mode |
7 |
0 |
0 |
100% |
| bot/bootstrap_runtime.py |
(no function) |
17 |
0 |
0 |
100% |
| bot/byte_semantics.py |
(no function) |
6 |
0 |
0 |
100% |
| bot/byte_semantics_base.py |
compact_message |
11 |
1 |
0 |
91% |
| bot/byte_semantics_base.py |
normalize_text_for_scene |
4 |
1 |
0 |
75% |
| bot/byte_semantics_base.py |
format_chat_reply |
2 |
0 |
0 |
100% |
| bot/byte_semantics_base.py |
parse_byte_prompt |
10 |
2 |
0 |
80% |
| bot/byte_semantics_base.py |
is_movie_fact_sheet_prompt |
2 |
0 |
0 |
100% |
| bot/byte_semantics_base.py |
is_intro_prompt |
7 |
1 |
0 |
86% |
| bot/byte_semantics_base.py |
build_intro_reply |
3 |
3 |
0 |
0% |
| bot/byte_semantics_base.py |
is_current_events_prompt |
2 |
0 |
0 |
100% |
| bot/byte_semantics_base.py |
is_high_risk_current_events_prompt |
2 |
0 |
0 |
100% |
| bot/byte_semantics_base.py |
is_serious_technical_prompt |
8 |
0 |
0 |
100% |
| bot/byte_semantics_base.py |
is_follow_up_prompt |
15 |
3 |
0 |
80% |
| bot/byte_semantics_base.py |
(no function) |
15 |
0 |
0 |
100% |
| bot/byte_semantics_constants.py |
(no function) |
36 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
build_server_time_anchor_instruction |
5 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
build_verifiable_prompt |
10 |
1 |
0 |
90% |
| bot/byte_semantics_current_events.py |
_extract_reference_utc_iso |
5 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
_extract_grounding_queries |
6 |
1 |
0 |
83% |
| bot/byte_semantics_current_events.py |
_extract_grounding_source_urls |
6 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
_build_grounding_source_line |
18 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
_is_confidence_line |
2 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
_is_source_line |
2 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
_is_temporal_line |
2 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
_split_non_empty_lines |
2 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
_is_canonical_high_risk_fallback |
13 |
2 |
0 |
85% |
| bot/byte_semantics_current_events.py |
_fit_high_risk_current_events_reply |
23 |
11 |
0 |
52% |
| bot/byte_semantics_current_events.py |
normalize_current_events_reply_contract |
43 |
2 |
0 |
95% |
| bot/byte_semantics_current_events.py |
build_current_events_safe_fallback_reply |
6 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
has_current_events_source_anchor |
2 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
has_current_events_confidence_label |
2 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
has_current_events_temporal_anchor |
2 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
has_current_events_uncertainty |
2 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
is_canonical_high_risk_fallback |
1 |
0 |
0 |
100% |
| bot/byte_semantics_current_events.py |
(no function) |
25 |
0 |
0 |
100% |
| bot/byte_semantics_quality.py |
build_research_priority_instruction |
3 |
0 |
0 |
100% |
| bot/byte_semantics_quality.py |
build_anti_generic_contract_instruction |
4 |
1 |
0 |
75% |
| bot/byte_semantics_quality.py |
build_direct_answer_instruction |
14 |
2 |
0 |
86% |
| bot/byte_semantics_quality.py |
build_adaptive_ai_instruction |
8 |
1 |
0 |
88% |
| bot/byte_semantics_quality.py |
_quality_tokenize |
7 |
0 |
0 |
100% |
| bot/byte_semantics_quality.py |
_extract_focus_terms |
12 |
3 |
0 |
75% |
| bot/byte_semantics_quality.py |
_count_focus_overlap |
13 |
1 |
0 |
92% |
| bot/byte_semantics_quality.py |
build_quality_prompt_script |
16 |
1 |
0 |
94% |
| bot/byte_semantics_quality.py |
is_low_quality_answer |
55 |
9 |
0 |
84% |
| bot/byte_semantics_quality.py |
build_quality_rewrite_prompt |
6 |
0 |
0 |
100% |
| bot/byte_semantics_quality.py |
build_llm_enhanced_prompt |
32 |
2 |
0 |
94% |
| bot/byte_semantics_quality.py |
(no function) |
15 |
0 |
0 |
100% |
| bot/byte_semantics_reply.py |
split_text_for_chat |
29 |
4 |
0 |
86% |
| bot/byte_semantics_reply.py |
extract_multi_reply_parts |
9 |
4 |
0 |
56% |
| bot/byte_semantics_reply.py |
extract_movie_title |
16 |
1 |
0 |
94% |
| bot/byte_semantics_reply.py |
build_movie_fact_sheet_query |
1 |
0 |
0 |
100% |
| bot/byte_semantics_reply.py |
(no function) |
7 |
0 |
0 |
100% |
| bot/channel_control.py |
extract_admin_token |
19 |
1 |
0 |
95% |
| bot/channel_control.py |
is_dashboard_admin_authorized |
7 |
0 |
0 |
100% |
| bot/channel_control.py |
parse_terminal_command |
13 |
0 |
0 |
100% |
| bot/channel_control.py |
IrcChannelControlBridge.__init__ |
4 |
0 |
0 |
100% |
| bot/channel_control.py |
IrcChannelControlBridge.bind |
3 |
0 |
0 |
100% |
| bot/channel_control.py |
IrcChannelControlBridge.unbind |
3 |
3 |
0 |
0% |
| bot/channel_control.py |
IrcChannelControlBridge._snapshot |
2 |
0 |
0 |
100% |
| bot/channel_control.py |
IrcChannelControlBridge._submit |
9 |
3 |
0 |
67% |
| bot/channel_control.py |
IrcChannelControlBridge.execute |
19 |
4 |
0 |
79% |
| bot/channel_control.py |
IrcChannelControlBridge._safe_call |
10 |
10 |
0 |
0% |
| bot/channel_control.py |
(no function) |
22 |
0 |
0 |
100% |
| bot/channel_status.py |
normalize_channel_login |
6 |
1 |
0 |
83% |
| bot/channel_status.py |
parse_channel_logins |
9 |
0 |
0 |
100% |
| bot/channel_status.py |
format_status_channels |
11 |
4 |
0 |
64% |
| bot/channel_status.py |
compose_status_line |
1 |
0 |
0 |
100% |
| bot/channel_status.py |
(no function) |
6 |
0 |
0 |
100% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime.__init__ |
6 |
0 |
0 |
100% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._load_from_store |
8 |
2 |
0 |
75% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime.bind_token_provider |
2 |
0 |
0 |
100% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime.start |
4 |
0 |
0 |
100% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime.stop |
4 |
0 |
0 |
100% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime.get_jobs |
2 |
0 |
0 |
100% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._process_loop |
10 |
4 |
0 |
60% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._sync_from_queue |
15 |
1 |
0 |
93% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._advance_jobs |
14 |
4 |
0 |
71% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._get_token |
3 |
1 |
0 |
67% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._handle_queued |
35 |
3 |
0 |
91% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._handle_polling |
20 |
4 |
0 |
80% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._handle_download_fetch |
21 |
4 |
0 |
81% |
| bot/clip_jobs_runtime.py |
ClipJobsRuntime._update_job |
7 |
1 |
0 |
86% |
| bot/clip_jobs_runtime.py |
(no function) |
30 |
0 |
0 |
100% |
| bot/clip_jobs_store.py |
SupabaseJobStore.__init__ |
5 |
0 |
0 |
100% |
| bot/clip_jobs_store.py |
SupabaseJobStore._get_connection |
14 |
0 |
0 |
100% |
| bot/clip_jobs_store.py |
SupabaseJobStore._ensure_table |
10 |
1 |
0 |
90% |
| bot/clip_jobs_store.py |
SupabaseJobStore.save_job |
14 |
0 |
0 |
100% |
| bot/clip_jobs_store.py |
SupabaseJobStore.load_active_jobs |
21 |
0 |
0 |
100% |
| bot/clip_jobs_store.py |
SupabaseJobStore.get_job |
18 |
9 |
0 |
50% |
| bot/clip_jobs_store.py |
(no function) |
16 |
0 |
0 |
100% |
| bot/config.py |
_env_flag |
2 |
0 |
0 |
100% |
| bot/config.py |
_env_text |
1 |
0 |
0 |
100% |
| bot/config.py |
ConfigManager.__new__ |
4 |
0 |
0 |
100% |
| bot/config.py |
ConfigManager.__init__ |
4 |
1 |
0 |
75% |
| bot/config.py |
ConfigManager._load_env |
40 |
1 |
0 |
98% |
| bot/config.py |
ConfigManager.get |
1 |
1 |
0 |
0% |
| bot/config.py |
__getattr__ |
4 |
1 |
0 |
75% |
| bot/config.py |
(no function) |
16 |
0 |
1 |
100% |
| bot/control_plane.py |
ControlPlaneState.__init__ |
2 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.get_config |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.update_config |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.set_loop_running |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.touch_heartbeat |
1 |
1 |
0 |
0% |
| bot/control_plane.py |
ControlPlaneState.register_tick |
1 |
1 |
0 |
0% |
| bot/control_plane.py |
ControlPlaneState.register_goal_run |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.register_budget_block |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.register_dispatch_failure |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.can_send_auto_chat |
1 |
1 |
0 |
0% |
| bot/control_plane.py |
ControlPlaneState.register_auto_chat_sent |
1 |
1 |
0 |
0% |
| bot/control_plane.py |
ControlPlaneState.consume_due_goals |
1 |
1 |
0 |
0% |
| bot/control_plane.py |
ControlPlaneState.enqueue_action |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.decide_action |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.list_actions |
1 |
0 |
0 |
100% |
| bot/control_plane.py |
ControlPlaneState.build_capabilities |
9 |
2 |
0 |
78% |
| bot/control_plane.py |
ControlPlaneState.runtime_snapshot |
5 |
0 |
0 |
100% |
| bot/control_plane.py |
(no function) |
25 |
0 |
0 |
100% |
| bot/control_plane_actions.py |
ControlPlaneActionQueue.__init__ |
5 |
0 |
0 |
100% |
| bot/control_plane_actions.py |
ControlPlaneActionQueue._expire_pending_actions_locked |
16 |
7 |
0 |
56% |
| bot/control_plane_actions.py |
ControlPlaneActionQueue._summary_locked |
2 |
0 |
0 |
100% |
| bot/control_plane_actions.py |
ControlPlaneActionQueue.enqueue_action |
16 |
3 |
0 |
81% |
| bot/control_plane_actions.py |
ControlPlaneActionQueue.decide_action |
20 |
4 |
0 |
80% |
| bot/control_plane_actions.py |
ControlPlaneActionQueue.list_actions |
17 |
3 |
0 |
82% |
| bot/control_plane_actions.py |
ControlPlaneActionQueue.runtime_snapshot |
23 |
1 |
0 |
96% |
| bot/control_plane_actions.py |
(no function) |
14 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.__init__ |
5 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.get_config |
2 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.update_config |
34 |
5 |
0 |
85% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.set_loop_running |
2 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.touch_heartbeat |
3 |
3 |
0 |
0% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.register_tick |
5 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.register_goal_run |
6 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.register_budget_block |
5 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.register_dispatch_failure |
5 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.can_send_auto_chat |
17 |
6 |
0 |
65% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.register_auto_chat_sent |
5 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.consume_due_goals |
29 |
4 |
0 |
86% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.action_ignore_after_seconds |
2 |
0 |
0 |
100% |
| bot/control_plane_config.py |
ControlPlaneConfigRuntime.runtime_base_snapshot |
6 |
0 |
0 |
100% |
| bot/control_plane_config.py |
(no function) |
23 |
0 |
0 |
100% |
| bot/control_plane_config_helpers.py |
normalize_goal |
12 |
0 |
0 |
100% |
| bot/control_plane_config_helpers.py |
normalize_goals |
11 |
2 |
0 |
82% |
| bot/control_plane_config_helpers.py |
prune_auto_chat_history |
3 |
1 |
0 |
67% |
| bot/control_plane_config_helpers.py |
budget_usage |
13 |
0 |
0 |
100% |
| bot/control_plane_config_helpers.py |
runtime_base_snapshot |
1 |
0 |
0 |
100% |
| bot/control_plane_config_helpers.py |
(no function) |
8 |
0 |
0 |
100% |
| bot/control_plane_constants.py |
utc_iso |
1 |
0 |
0 |
100% |
| bot/control_plane_constants.py |
clip_text |
4 |
1 |
0 |
75% |
| bot/control_plane_constants.py |
to_int |
5 |
2 |
0 |
60% |
| bot/control_plane_constants.py |
default_goals_copy |
1 |
0 |
0 |
100% |
| bot/control_plane_constants.py |
(no function) |
14 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler._check_rate_limit |
11 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler._send_cors_headers |
3 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler._send_bytes |
7 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler._send_json |
2 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler._send_text |
1 |
1 |
0 |
0% |
| bot/dashboard_server.py |
HealthHandler._dashboard_authorized |
15 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler._send_dashboard_auth_challenge |
8 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler._send_forbidden |
1 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler._read_json_payload |
23 |
4 |
0 |
83% |
| bot/dashboard_server.py |
HealthHandler._send_dashboard_asset |
12 |
4 |
0 |
67% |
| bot/dashboard_server.py |
HealthHandler._build_observability_payload |
1 |
1 |
0 |
0% |
| bot/dashboard_server.py |
HealthHandler._handle_channel_control |
21 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler.do_OPTIONS |
3 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler.do_GET |
4 |
0 |
0 |
100% |
| bot/dashboard_server.py |
HealthHandler.do_PUT |
4 |
4 |
0 |
0% |
| bot/dashboard_server.py |
HealthHandler.do_POST |
4 |
2 |
0 |
50% |
| bot/dashboard_server.py |
HealthHandler.log_message |
1 |
0 |
0 |
100% |
| bot/dashboard_server.py |
run_server |
2 |
0 |
0 |
100% |
| bot/dashboard_server.py |
(no function) |
32 |
0 |
0 |
100% |
| bot/dashboard_server_routes.py |
_is_api_route |
1 |
0 |
0 |
100% |
| bot/dashboard_server_routes.py |
build_observability_payload |
10 |
0 |
0 |
100% |
| bot/dashboard_server_routes.py |
_dashboard_asset_route |
17 |
0 |
0 |
100% |
| bot/dashboard_server_routes.py |
handle_get |
53 |
0 |
0 |
100% |
| bot/dashboard_server_routes.py |
handle_get_config_js |
3 |
0 |
0 |
100% |
| bot/dashboard_server_routes.py |
handle_put |
19 |
4 |
0 |
79% |
| bot/dashboard_server_routes.py |
(no function) |
21 |
0 |
0 |
100% |
| bot/dashboard_server_routes_post.py |
handle_post |
15 |
0 |
0 |
100% |
| bot/dashboard_server_routes_post.py |
_handle_channel_control_post |
14 |
0 |
0 |
100% |
| bot/dashboard_server_routes_post.py |
_handle_autonomy_tick |
16 |
3 |
0 |
81% |
| bot/dashboard_server_routes_post.py |
_handle_action_decision |
26 |
4 |
0 |
85% |
| bot/dashboard_server_routes_post.py |
_handle_vision_ingest |
15 |
2 |
0 |
87% |
| bot/dashboard_server_routes_post.py |
(no function) |
11 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
_require_env |
4 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
get_ctx_message_text |
2 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
get_ctx_author |
2 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
AgentComponent.__init__ |
1 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
AgentComponent.component_check |
1 |
1 |
0 |
0% |
| bot/eventsub_runtime.py |
AgentComponent.ask |
6 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
AgentComponent.vibe |
6 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
AgentComponent.style |
11 |
2 |
0 |
82% |
| bot/eventsub_runtime.py |
AgentComponent.scene |
32 |
6 |
0 |
81% |
| bot/eventsub_runtime.py |
AgentComponent.status |
1 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
ByteBot.__init__ |
3 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
ByteBot.setup_hook |
6 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
ByteBot.close |
2 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
ByteBot.event_ready |
1 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
ByteBot.build_status_line |
1 |
1 |
0 |
0% |
| bot/eventsub_runtime.py |
ByteBot.handle_byte_prompt |
5 |
0 |
0 |
100% |
| bot/eventsub_runtime.py |
ByteBot.event_message |
23 |
5 |
0 |
78% |
| bot/eventsub_runtime.py |
(no function) |
40 |
0 |
0 |
100% |
| bot/heartbeat.py |
_heartbeat_loop |
15 |
1 |
0 |
93% |
| bot/heartbeat.py |
start_heartbeat |
5 |
0 |
0 |
100% |
| bot/heartbeat.py |
(no function) |
9 |
0 |
0 |
100% |
| bot/hud_runtime.py |
HudRuntime.__init__ |
2 |
0 |
0 |
100% |
| bot/hud_runtime.py |
HudRuntime.push_message |
7 |
0 |
0 |
100% |
| bot/hud_runtime.py |
HudRuntime.get_messages |
4 |
0 |
0 |
100% |
| bot/hud_runtime.py |
HudRuntime.clear |
2 |
0 |
0 |
100% |
| bot/hud_runtime.py |
HudRuntime.get_status |
2 |
0 |
0 |
100% |
| bot/hud_runtime.py |
(no function) |
14 |
0 |
0 |
100% |
| bot/irc_connection.py |
IrcConnectionMixin._send_raw |
4 |
0 |
0 |
100% |
| bot/irc_connection.py |
IrcConnectionMixin._await_login_confirmation |
20 |
4 |
0 |
80% |
| bot/irc_connection.py |
IrcConnectionMixin._connect |
11 |
0 |
0 |
100% |
| bot/irc_connection.py |
IrcConnectionMixin._close |
7 |
0 |
0 |
100% |
| bot/irc_connection.py |
IrcConnectionMixin.run_forever |
43 |
2 |
0 |
95% |
| bot/irc_connection.py |
(no function) |
27 |
0 |
1 |
100% |
| bot/irc_handlers.py |
IrcLineHandlersMixin._handle_membership_event |
20 |
1 |
0 |
95% |
| bot/irc_handlers.py |
IrcLineHandlersMixin._handle_notice_line |
16 |
3 |
0 |
81% |
| bot/irc_handlers.py |
IrcLineHandlersMixin._handle_privmsg |
37 |
3 |
0 |
92% |
| bot/irc_handlers.py |
IrcLineHandlersMixin._handle_privmsg.reply_in_source_channel |
1 |
0 |
0 |
100% |
| bot/irc_handlers.py |
IrcLineHandlersMixin._recover_authentication |
10 |
0 |
0 |
100% |
| bot/irc_handlers.py |
IrcLineHandlersMixin._raise_auth_error |
1 |
0 |
0 |
100% |
| bot/irc_handlers.py |
(no function) |
21 |
0 |
8 |
100% |
| bot/irc_management.py |
IrcChannelManagementMixin._parse_channel_management_prompt |
13 |
0 |
0 |
100% |
| bot/irc_management.py |
IrcChannelManagementMixin._handle_channel_management_prompt |
55 |
8 |
0 |
85% |
| bot/irc_management.py |
(no function) |
9 |
0 |
1 |
100% |
| bot/irc_protocol.py |
IrcAuthor.__init__ |
6 |
0 |
0 |
100% |
| bot/irc_protocol.py |
IrcMessageAdapter.__init__ |
3 |
0 |
0 |
100% |
| bot/irc_protocol.py |
parse_irc_tags |
9 |
2 |
0 |
78% |
| bot/irc_protocol.py |
flatten_chat_text |
2 |
0 |
0 |
100% |
| bot/irc_protocol.py |
is_irc_notice_delivery_block |
5 |
0 |
0 |
100% |
| bot/irc_protocol.py |
(no function) |
15 |
0 |
0 |
100% |
| bot/irc_runtime.py |
IrcByteBot.__init__ |
28 |
3 |
0 |
89% |
| bot/irc_runtime.py |
(no function) |
12 |
0 |
0 |
100% |
| bot/irc_state.py |
IrcChannelStateMixin.build_status_line |
1 |
0 |
0 |
100% |
| bot/irc_state.py |
IrcChannelStateMixin.channel_action_timeout_seconds |
1 |
0 |
0 |
100% |
| bot/irc_state.py |
IrcChannelStateMixin._prepare_reply_text |
1 |
0 |
0 |
100% |
| bot/irc_state.py |
IrcChannelStateMixin.send_reply |
9 |
1 |
0 |
89% |
| bot/irc_state.py |
IrcChannelStateMixin._send_tracked_channel_reply |
9 |
1 |
0 |
89% |
| bot/irc_state.py |
IrcChannelStateMixin._mark_channel_joined |
14 |
3 |
0 |
79% |
| bot/irc_state.py |
IrcChannelStateMixin._mark_channel_parted |
21 |
4 |
0 |
81% |
| bot/irc_state.py |
IrcChannelStateMixin._signal_pending_channel_action |
3 |
0 |
0 |
100% |
| bot/irc_state.py |
IrcChannelStateMixin._can_wait_for_channel_confirmation |
6 |
0 |
0 |
100% |
| bot/irc_state.py |
IrcChannelStateMixin._wait_for_channel_confirmation |
13 |
1 |
0 |
92% |
| bot/irc_state.py |
IrcChannelStateMixin._join_channel |
14 |
1 |
0 |
93% |
| bot/irc_state.py |
IrcChannelStateMixin._part_channel |
15 |
1 |
0 |
93% |
| bot/irc_state.py |
IrcChannelStateMixin.admin_list_channels |
1 |
0 |
0 |
100% |
| bot/irc_state.py |
IrcChannelStateMixin.admin_join_channel |
8 |
1 |
0 |
88% |
| bot/irc_state.py |
IrcChannelStateMixin.admin_part_channel |
10 |
2 |
0 |
80% |
| bot/irc_state.py |
(no function) |
33 |
0 |
1 |
100% |
| bot/logic.py |
(no function) |
5 |
0 |
0 |
100% |
| bot/logic_constants.py |
(no function) |
22 |
0 |
0 |
100% |
| bot/logic_context.py |
normalize_memory_excerpt |
10 |
1 |
0 |
90% |
| bot/logic_context.py |
StreamContext.__init__ |
8 |
0 |
0 |
100% |
| bot/logic_context.py |
StreamContext.get_uptime_minutes |
1 |
0 |
0 |
100% |
| bot/logic_context.py |
StreamContext.update_content |
9 |
0 |
0 |
100% |
| bot/logic_context.py |
StreamContext.clear_content |
8 |
2 |
0 |
75% |
| bot/logic_context.py |
StreamContext.list_supported_content_types |
1 |
0 |
0 |
100% |
| bot/logic_context.py |
StreamContext.format_observability |
6 |
0 |
0 |
100% |
| bot/logic_context.py |
StreamContext.status_snapshot |
2 |
2 |
0 |
0% |
| bot/logic_context.py |
StreamContext.remember_user_message |
6 |
1 |
0 |
83% |
| bot/logic_context.py |
StreamContext.remember_bot_reply |
6 |
1 |
0 |
83% |
| bot/logic_context.py |
StreamContext.format_recent_chat |
4 |
0 |
0 |
100% |
| bot/logic_context.py |
build_system_instruction |
1 |
0 |
0 |
100% |
| bot/logic_context.py |
get_server_clock_snapshot |
3 |
0 |
0 |
100% |
| bot/logic_context.py |
build_dynamic_prompt |
8 |
1 |
0 |
88% |
| bot/logic_context.py |
enforce_reply_limits |
24 |
3 |
0 |
88% |
| bot/logic_context.py |
enforce_reply_limits.close_sentence |
10 |
4 |
0 |
60% |
| bot/logic_context.py |
(no function) |
20 |
0 |
0 |
100% |
| bot/logic_grounding.py |
empty_grounding_metadata |
1 |
0 |
0 |
100% |
| bot/logic_grounding.py |
_read_field |
3 |
1 |
0 |
67% |
| bot/logic_grounding.py |
_append_unique_text |
8 |
3 |
0 |
62% |
| bot/logic_grounding.py |
extract_grounding_metadata |
29 |
2 |
0 |
93% |
| bot/logic_grounding.py |
has_grounding_signal |
5 |
0 |
0 |
100% |
| bot/logic_grounding.py |
extract_response_text |
15 |
2 |
0 |
87% |
| bot/logic_grounding.py |
(no function) |
17 |
0 |
0 |
100% |
| bot/logic_inference.py |
is_rate_limited_inference_error |
2 |
0 |
0 |
100% |
| bot/logic_inference.py |
is_timeout_inference_error |
4 |
0 |
0 |
100% |
| bot/logic_inference.py |
_extract_usage |
4 |
1 |
0 |
75% |
| bot/logic_inference.py |
_select_model |
6 |
1 |
0 |
83% |
| bot/logic_inference.py |
_extract_search_query |
6 |
2 |
0 |
67% |
| bot/logic_inference.py |
_build_grounding_metadata |
3 |
0 |
0 |
100% |
| bot/logic_inference.py |
_fetch_search_results |
6 |
0 |
0 |
100% |
| bot/logic_inference.py |
_build_messages |
6 |
0 |
0 |
100% |
| bot/logic_inference.py |
_record_token_usage |
5 |
2 |
0 |
60% |
| bot/logic_inference.py |
_execute_inference |
1 |
0 |
0 |
100% |
| bot/logic_inference.py |
_is_retryable_inference_error |
5 |
0 |
0 |
100% |
| bot/logic_inference.py |
_on_retry_log |
4 |
0 |
0 |
100% |
| bot/logic_inference.py |
_execute_inference_with_retry |
3 |
0 |
0 |
100% |
| bot/logic_inference.py |
_execute_inference_with_retry.on_retry_check |
4 |
0 |
0 |
100% |
| bot/logic_inference.py |
_execute_inference_with_retry._execute_and_record |
3 |
0 |
0 |
100% |
| bot/logic_inference.py |
_process_response |
7 |
1 |
0 |
86% |
| bot/logic_inference.py |
agent_inference |
23 |
3 |
0 |
87% |
| bot/logic_inference.py |
(no function) |
29 |
0 |
0 |
100% |
| bot/main.py |
main |
10 |
0 |
0 |
100% |
| bot/main.py |
(no function) |
6 |
0 |
2 |
100% |
| bot/observability.py |
(no function) |
3 |
0 |
0 |
100% |
| bot/observability_analytics.py |
compute_chat_metrics |
11 |
0 |
0 |
100% |
| bot/observability_analytics.py |
compute_interaction_metrics |
5 |
0 |
0 |
100% |
| bot/observability_analytics.py |
compute_quality_metrics |
6 |
0 |
0 |
100% |
| bot/observability_analytics.py |
compute_token_metrics |
6 |
0 |
0 |
100% |
| bot/observability_analytics.py |
compute_autonomy_metrics |
5 |
0 |
0 |
100% |
| bot/observability_analytics.py |
compute_leaderboards |
18 |
0 |
0 |
100% |
| bot/observability_analytics.py |
(no function) |
9 |
0 |
0 |
100% |
| bot/observability_helpers.py |
utc_iso |
1 |
0 |
0 |
100% |
| bot/observability_helpers.py |
clip_preview |
4 |
0 |
0 |
100% |
| bot/observability_helpers.py |
compute_p95 |
5 |
1 |
0 |
80% |
| bot/observability_helpers.py |
percentage |
3 |
0 |
0 |
100% |
| bot/observability_helpers.py |
(no function) |
14 |
0 |
0 |
100% |
| bot/observability_snapshot.py |
build_observability_snapshot |
37 |
1 |
0 |
97% |
| bot/observability_snapshot.py |
_build_sentiment_block |
3 |
0 |
0 |
100% |
| bot/observability_snapshot.py |
_build_vision_block |
2 |
0 |
0 |
100% |
| bot/observability_snapshot.py |
(no function) |
7 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.__init__ |
21 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.update_clips_auth_status |
3 |
3 |
0 |
0% |
| bot/observability_state.py |
ObservabilityState.record_chat_message |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_byte_trigger |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_reply |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_quality_gate |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_byte_interaction |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_token_usage |
3 |
3 |
0 |
0% |
| bot/observability_state.py |
ObservabilityState.record_autonomy_goal |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_auto_scene_update |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_token_refresh |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_auth_failure |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_error |
3 |
0 |
0 |
100% |
| bot/observability_state.py |
ObservabilityState.record_vision_frame |
3 |
3 |
0 |
0% |
| bot/observability_state.py |
ObservabilityState.snapshot |
4 |
0 |
0 |
100% |
| bot/observability_state.py |
(no function) |
24 |
0 |
0 |
100% |
| bot/observability_state_core.py |
resolve_now |
1 |
0 |
0 |
100% |
| bot/observability_state_core.py |
touch_bucket_locked |
6 |
0 |
0 |
100% |
| bot/observability_state_core.py |
bump_timeline_locked |
4 |
0 |
0 |
100% |
| bot/observability_state_core.py |
append_event_locked |
1 |
0 |
0 |
100% |
| bot/observability_state_core.py |
prune_locked |
22 |
8 |
0 |
64% |
| bot/observability_state_core.py |
(no function) |
8 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_chat_message_locked |
19 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_byte_trigger_locked |
12 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_reply_locked |
8 |
1 |
0 |
88% |
| bot/observability_state_recorders.py |
record_quality_gate_locked |
8 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_byte_interaction_locked |
24 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_token_usage_locked |
8 |
8 |
0 |
0% |
| bot/observability_state_recorders.py |
record_autonomy_goal_locked |
8 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_auto_scene_update_locked |
8 |
2 |
0 |
75% |
| bot/observability_state_recorders.py |
record_token_refresh_locked |
4 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_auth_failure_locked |
6 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_error_locked |
7 |
0 |
0 |
100% |
| bot/observability_state_recorders.py |
record_vision_frame_locked |
4 |
4 |
0 |
0% |
| bot/observability_state_recorders.py |
(no function) |
15 |
0 |
0 |
100% |
| bot/prompt_flow.py |
unwrap_inference_result |
8 |
0 |
0 |
100% |
| bot/prompt_flow.py |
handle_movie_fact_sheet_prompt |
11 |
0 |
0 |
100% |
| bot/prompt_flow.py |
handle_byte_prompt_text |
61 |
0 |
0 |
100% |
| bot/prompt_flow.py |
handle_byte_prompt_text.tracked_reply |
7 |
1 |
0 |
86% |
| bot/prompt_flow.py |
handle_byte_prompt_text.log_interaction |
4 |
0 |
0 |
100% |
| bot/prompt_flow.py |
(no function) |
41 |
0 |
0 |
100% |
| bot/prompt_runtime.py |
build_intro_reply |
3 |
0 |
0 |
100% |
| bot/prompt_runtime.py |
unwrap_inference_result |
1 |
1 |
0 |
0% |
| bot/prompt_runtime.py |
build_prompt_runtime |
1 |
0 |
0 |
100% |
| bot/prompt_runtime.py |
handle_movie_fact_sheet_prompt |
1 |
1 |
0 |
0% |
| bot/prompt_runtime.py |
handle_byte_prompt_text |
12 |
1 |
0 |
92% |
| bot/prompt_runtime.py |
handle_byte_prompt_text.effective_status_factory |
5 |
5 |
0 |
0% |
| bot/prompt_runtime.py |
(no function) |
36 |
0 |
0 |
100% |
| bot/recap_engine.py |
is_recap_prompt |
1 |
0 |
0 |
100% |
| bot/recap_engine.py |
generate_recap |
12 |
0 |
0 |
100% |
| bot/recap_engine.py |
(no function) |
11 |
0 |
0 |
100% |
| bot/runtime_config.py |
env_flag |
2 |
2 |
0 |
0% |
| bot/runtime_config.py |
env_text |
1 |
1 |
0 |
0% |
| bot/runtime_config.py |
(no function) |
58 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.__init__ |
9 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.normalize_host |
6 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.extract_urls |
6 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.contains_unsafe_terms |
2 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.classify_supported_link |
7 |
1 |
0 |
86% |
| bot/scene_metadata.py |
SceneMetadataService.is_safe_scene_link |
9 |
1 |
0 |
89% |
| bot/scene_metadata.py |
SceneMetadataService.build_oembed_endpoint |
6 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.build_metadata_source_url |
7 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.fetch_oembed_metadata |
17 |
1 |
0 |
94% |
| bot/scene_metadata.py |
SceneMetadataService.get_cached_metadata |
9 |
2 |
0 |
78% |
| bot/scene_metadata.py |
SceneMetadataService.set_cached_metadata |
2 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.resolve_scene_metadata |
7 |
7 |
0 |
0% |
| bot/scene_metadata.py |
SceneMetadataService.metadata_to_safety_text |
5 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.is_safe_scene_metadata |
4 |
0 |
0 |
100% |
| bot/scene_metadata.py |
SceneMetadataService.build_sanitized_scene_description |
12 |
0 |
0 |
100% |
| bot/scene_metadata.py |
(no function) |
28 |
0 |
0 |
100% |
| bot/scene_runtime.py |
normalize_host |
1 |
1 |
0 |
0% |
| bot/scene_runtime.py |
extract_urls |
1 |
0 |
0 |
100% |
| bot/scene_runtime.py |
contains_unsafe_terms |
1 |
0 |
0 |
100% |
| bot/scene_runtime.py |
classify_supported_link |
1 |
0 |
0 |
100% |
| bot/scene_runtime.py |
is_safe_scene_link |
1 |
0 |
0 |
100% |
| bot/scene_runtime.py |
build_oembed_endpoint |
1 |
1 |
0 |
0% |
| bot/scene_runtime.py |
build_metadata_source_url |
1 |
1 |
0 |
0% |
| bot/scene_runtime.py |
fetch_oembed_metadata |
1 |
1 |
0 |
0% |
| bot/scene_runtime.py |
get_cached_metadata |
1 |
1 |
0 |
0% |
| bot/scene_runtime.py |
set_cached_metadata |
1 |
1 |
0 |
0% |
| bot/scene_runtime.py |
resolve_scene_metadata |
1 |
1 |
0 |
0% |
| bot/scene_runtime.py |
metadata_to_safety_text |
1 |
1 |
0 |
0% |
| bot/scene_runtime.py |
is_safe_scene_metadata |
1 |
0 |
0 |
100% |
| bot/scene_runtime.py |
build_sanitized_scene_description |
1 |
0 |
0 |
100% |
| bot/scene_runtime.py |
auto_update_scene_from_message |
28 |
4 |
0 |
86% |
| bot/scene_runtime.py |
(no function) |
22 |
0 |
0 |
100% |
| bot/sentiment_constants.py |
(no function) |
9 |
0 |
0 |
100% |
| bot/sentiment_engine.py |
_score_message |
13 |
0 |
0 |
100% |
| bot/sentiment_engine.py |
SentimentEngine.__init__ |
2 |
0 |
0 |
100% |
| bot/sentiment_engine.py |
SentimentEngine.ingest_message |
5 |
0 |
0 |
100% |
| bot/sentiment_engine.py |
SentimentEngine.get_scores |
11 |
0 |
0 |
100% |
| bot/sentiment_engine.py |
SentimentEngine.get_vibe |
8 |
1 |
0 |
88% |
| bot/sentiment_engine.py |
SentimentEngine.should_trigger_anti_boredom |
6 |
0 |
0 |
100% |
| bot/sentiment_engine.py |
SentimentEngine.should_trigger_anti_confusion |
6 |
0 |
0 |
100% |
| bot/sentiment_engine.py |
(no function) |
15 |
0 |
0 |
100% |
| bot/status_runtime.py |
normalize_channel_login |
1 |
0 |
0 |
100% |
| bot/status_runtime.py |
parse_channel_logins |
1 |
0 |
0 |
100% |
| bot/status_runtime.py |
format_status_channels |
2 |
0 |
0 |
100% |
| bot/status_runtime.py |
build_status_line |
11 |
0 |
0 |
100% |
| bot/status_runtime.py |
(no function) |
11 |
0 |
0 |
100% |
| bot/supabase_client.py |
_get_client |
19 |
0 |
0 |
100% |
| bot/supabase_client.py |
is_enabled |
2 |
0 |
0 |
100% |
| bot/supabase_client.py |
log_message |
6 |
1 |
0 |
83% |
| bot/supabase_client.py |
log_reply |
6 |
1 |
0 |
83% |
| bot/supabase_client.py |
log_event |
6 |
1 |
0 |
83% |
| bot/supabase_client.py |
(no function) |
11 |
0 |
0 |
100% |
| bot/twitch_clips_api.py |
TwitchClipRateLimitError.__init__ |
2 |
0 |
0 |
100% |
| bot/twitch_clips_api.py |
_parse_response |
7 |
0 |
0 |
100% |
| bot/twitch_clips_api.py |
_handle_http_error |
21 |
0 |
0 |
100% |
| bot/twitch_clips_api.py |
_create_clip_sync |
24 |
1 |
0 |
96% |
| bot/twitch_clips_api.py |
_get_clip_sync |
19 |
1 |
0 |
95% |
| bot/twitch_clips_api.py |
create_clip_live |
1 |
0 |
0 |
100% |
| bot/twitch_clips_api.py |
create_clip_from_vod |
1 |
0 |
0 |
100% |
| bot/twitch_clips_api.py |
get_clip |
1 |
0 |
0 |
100% |
| bot/twitch_clips_api.py |
get_clip_download_url |
1 |
0 |
0 |
100% |
| bot/twitch_clips_api.py |
_create_clip_from_vod_sync |
25 |
8 |
0 |
68% |
| bot/twitch_clips_api.py |
_get_clip_download_url_sync |
27 |
3 |
0 |
89% |
| bot/twitch_clips_api.py |
(no function) |
27 |
0 |
0 |
100% |
| bot/twitch_tokens.py |
is_irc_auth_failure_line |
2 |
0 |
0 |
100% |
| bot/twitch_tokens.py |
TwitchTokenManager.__init__ |
11 |
0 |
0 |
100% |
| bot/twitch_tokens.py |
TwitchTokenManager.can_refresh |
1 |
0 |
0 |
100% |
| bot/twitch_tokens.py |
TwitchTokenManager._set_expiration |
9 |
0 |
0 |
100% |
| bot/twitch_tokens.py |
TwitchTokenManager._is_expiring_soon |
3 |
0 |
0 |
100% |
| bot/twitch_tokens.py |
TwitchTokenManager._validate_token_sync |
17 |
1 |
0 |
94% |
| bot/twitch_tokens.py |
TwitchTokenManager._refresh_token_sync |
25 |
4 |
0 |
84% |
| bot/twitch_tokens.py |
TwitchTokenManager.force_refresh |
17 |
0 |
0 |
100% |
| bot/twitch_tokens.py |
TwitchTokenManager.ensure_token_for_connection |
21 |
2 |
0 |
90% |
| bot/twitch_tokens.py |
TwitchTokenManager.validate_now |
5 |
5 |
0 |
0% |
| bot/twitch_tokens.py |
TwitchTokenManager.validate_clips_auth |
12 |
0 |
0 |
100% |
| bot/twitch_tokens.py |
(no function) |
30 |
0 |
0 |
100% |
| bot/utils/__init__.py |
(no function) |
1 |
0 |
0 |
100% |
| bot/utils/retry.py |
is_retryable_error |
3 |
0 |
0 |
100% |
| bot/utils/retry.py |
with_retry |
3 |
0 |
0 |
100% |
| bot/utils/retry.py |
with_retry.decorator |
2 |
0 |
0 |
100% |
| bot/utils/retry.py |
with_retry.decorator.wrapper |
18 |
2 |
0 |
89% |
| bot/utils/retry.py |
retry_async |
16 |
1 |
0 |
94% |
| bot/utils/retry.py |
(no function) |
11 |
0 |
0 |
100% |
| bot/vision_constants.py |
(no function) |
4 |
0 |
0 |
100% |
| bot/vision_runtime.py |
_detect_clip_trigger |
4 |
0 |
0 |
100% |
| bot/vision_runtime.py |
VisionRuntime.__init__ |
4 |
0 |
0 |
100% |
| bot/vision_runtime.py |
VisionRuntime.ingest_frame |
29 |
0 |
0 |
100% |
| bot/vision_runtime.py |
VisionRuntime._analyze_frame |
8 |
1 |
0 |
88% |
| bot/vision_runtime.py |
VisionRuntime._enqueue_visual_clip |
6 |
0 |
0 |
100% |
| bot/vision_runtime.py |
VisionRuntime.get_status |
2 |
0 |
0 |
100% |
| bot/vision_runtime.py |
(no function) |
20 |
0 |
0 |
100% |
| bot/web_search.py |
search_web |
12 |
0 |
0 |
100% |
| bot/web_search.py |
_ddg_search_sync |
24 |
0 |
0 |
100% |
| bot/web_search.py |
format_search_context |
8 |
0 |
0 |
100% |
| bot/web_search.py |
(no function) |
14 |
0 |
0 |
100% |