SYMBOL INDEX (244 symbols across 30 files) FILE: bots/incident-response-slackbot/incident_response_slackbot/config.py class Config (line 11) | class Config(BaseModel): function load_config (line 19) | def load_config(config_path: str = None) -> Config: function get_config (line 33) | def get_config() -> Config: FILE: bots/incident-response-slackbot/incident_response_slackbot/db/database.py class Database (line 5) | class Database: method __init__ (line 11) | def __init__(self): method _load_data (line 20) | def _load_data(self): method _save (line 31) | def _save(self): method add (line 39) | def add(self, user_id, message_ts): method delete (line 49) | def delete(self, user_id): method user_exists (line 58) | def user_exists(self, user_id): method get_ts (line 66) | def get_ts(self, user_id): method get_user_id (line 74) | def get_user_id(self, message_ts): FILE: bots/incident-response-slackbot/incident_response_slackbot/handlers.py class InboundDirectMessageHandler (line 22) | class InboundDirectMessageHandler(BaseMessageHandler): method __init__ (line 27) | def __init__(self, slack_client): method should_handle (line 31) | async def should_handle(self, args): method handle (line 34) | async def handle(self, args): method send_message_to_channel (line 53) | async def send_message_to_channel(self, event, message_ts): method handle_user_response (line 61) | async def handle_user_response(self, user_id, message_ts): method end_chat (line 95) | async def end_chat(self, message_ts): method nudge_user (line 123) | async def nudge_user(self, user_id, message_ts): class InboundIncidentStartChatHandler (line 141) | class InboundIncidentStartChatHandler(BaseActionHandler): method __init__ (line 142) | def __init__(self, slack_client): method action_id (line 147) | def action_id(self): method handle (line 150) | async def handle(self, args): method update_blocks (line 195) | def update_blocks(self, body, alert_user_id): method create_chat_start_section (line 209) | def create_chat_start_section(self, user_id): method send_greeting_message (line 220) | async def send_greeting_message(self, alert_user_id, greeting_message,... class InboundIncidentDoNothingHandler (line 235) | class InboundIncidentDoNothingHandler(BaseActionHandler): method __init__ (line 241) | def __init__(self, slack_client): method action_id (line 246) | def action_id(self): method handle (line 249) | async def handle(self, args): class InboundIncidentEndChatHandler (line 282) | class InboundIncidentEndChatHandler(BaseActionHandler): method __init__ (line 287) | def __init__(self, slack_client): method action_id (line 292) | def action_id(self): method handle (line 295) | async def handle(self, args): FILE: bots/incident-response-slackbot/incident_response_slackbot/openai_utils.py function messages_to_string (line 10) | def messages_to_string(messages): function get_clean_output (line 15) | async def get_clean_output(completion: str) -> str: function create_greeting (line 19) | async def create_greeting(username, details): function get_user_awareness (line 70) | async def get_user_awareness(inbound_direct_message: str) -> str: function get_thread_summary (line 102) | async def get_thread_summary(messages): function generate_awareness_question (line 131) | async def generate_awareness_question(): FILE: bots/incident-response-slackbot/scripts/alert_feed.py function post_alert (line 17) | async def post_alert(alert): function incident_feed_begin (line 50) | async def incident_feed_begin( function get_alert_details (line 89) | def get_alert_details(**kwargs) -> str: function initial_details (line 103) | async def initial_details(*, slack_client: SlackClient, message, propert... FILE: bots/incident-response-slackbot/scripts/send_alert.py function load_alerts (line 10) | def load_alerts(): function generate_random_alert (line 17) | def generate_random_alert(alerts): function main (line 23) | async def main(): FILE: bots/incident-response-slackbot/tests/conftest.py function mock_config (line 15) | def mock_config(): function mock_slack_client (line 28) | def mock_slack_client(): function mock_chat_completion (line 41) | def mock_chat_completion(mock_create): function mock_generate_awareness_question (line 63) | def mock_generate_awareness_question(): function mock_get_thread_summary (line 73) | def mock_get_thread_summary(): FILE: bots/incident-response-slackbot/tests/test_handlers.py function test_send_message_to_channel (line 15) | async def test_send_message_to_channel(mock_slack_client, mock_config): function test_end_chat (line 33) | async def test_end_chat(mock_slack_client, mock_config): function test_nudge_user (line 70) | async def test_nudge_user(mock_slack_client, mock_config, mock_generate_... function test_incident_start_chat_handle (line 88) | async def test_incident_start_chat_handle(mock_slack_client, mock_config): function test_do_nothing_handle (line 138) | async def test_do_nothing_handle(mock_slack_client, mock_config): function test_end_chat_handle (line 173) | async def test_end_chat_handle(mock_slack_client, mock_config, mock_get_... FILE: bots/incident-response-slackbot/tests/test_openai.py function test_get_user_awareness (line 10) | async def test_get_user_awareness(mock_create): FILE: bots/sdlc-slackbot/sdlc_slackbot/bot.py function send_update_notification (line 30) | async def send_update_notification(input, response): function hash_content (line 44) | def hash_content(content): function extract_urls (line 53) | def extract_urls(text): function async_fetch_slack (line 59) | async def async_fetch_slack(url): function fetch_content (line 79) | async def fetch_content(url): function risk_and_confidence_to_string (line 114) | def risk_and_confidence_to_string(decision): function decision_msg (line 148) | def decision_msg(response): function model_params_to_str (line 169) | def model_params_to_str(params): function summarize_params (line 174) | def summarize_params(params): function handle_app_mention_events (line 187) | async def handle_app_mention_events(say, event): function handle_message_events (line 192) | async def handle_message_events(say, message): function get_response_with_retry (line 198) | def get_response_with_retry(prompt, context, max_retries=1): function normalize_response (line 212) | def normalize_response(response): function clean_normalized_response (line 221) | def clean_normalized_response(normalized_responses): function submit_form (line 239) | async def submit_form(ack, body, say): function submit_followup_questions (line 324) | async def submit_followup_questions(ack, body, say): function update_resources (line 375) | def update_resources(): FILE: bots/sdlc-slackbot/sdlc_slackbot/config.py function validate_channel (line 12) | def validate_channel(channel_id: str) -> str: class Config (line 18) | class Config(BaseModel): function load_config (line 38) | def load_config(path: str): function get_config (line 50) | def get_config() -> Config: FILE: bots/sdlc-slackbot/sdlc_slackbot/database.py class BaseModel (line 10) | class BaseModel(Model): class Meta (line 11) | class Meta: class Assessment (line 15) | class Assessment(BaseModel): class Question (line 27) | class Question(Model): class Meta (line 32) | class Meta: class Resource (line 37) | class Resource(BaseModel): FILE: bots/sdlc-slackbot/sdlc_slackbot/gdoc.py function read_paragraph_element (line 19) | def read_paragraph_element(element): function read_structural_elements (line 31) | def read_structural_elements(elements): function gdoc_creds (line 59) | def gdoc_creds(): function gdoc_get (line 85) | def gdoc_get(gdoc_url): FILE: bots/sdlc-slackbot/sdlc_slackbot/utils.py function get_form_input (line 11) | def get_form_input(values, *fields): function plain_text (line 26) | def plain_text(text): function field (line 30) | def field(type, placeholder, **kwargs): function input_block (line 34) | def input_block(block_id, label, element): function submit_block (line 46) | def submit_block(action_id): function ask_ai (line 60) | def ask_ai(prompt, context): function ask_gpt (line 85) | def ask_gpt(prompt, context): function ask_claude (line 96) | def ask_claude(prompt, context): FILE: bots/sdlc-slackbot/sdlc_slackbot/validate.py class ValidationError (line 1) | class ValidationError(Exception): method __init__ (line 2) | def __init__(self, field, issue): function required (line 8) | def required(values, *fields): FILE: bots/triage-slackbot/tests/conftest.py function bot_message_extra_data (line 15) | def bot_message_extra_data(): function recategorize_message_data (line 25) | def recategorize_message_data( function mock_config (line 70) | def mock_config(): function mock_post_message_response (line 77) | def mock_post_message_response(): function mock_generic_slack_response (line 97) | def mock_generic_slack_response(): function mock_conversations_history_response (line 102) | def mock_conversations_history_response(): function mock_get_permalink_response (line 122) | def mock_get_permalink_response(): function mock_slack_asyncwebclient (line 132) | def mock_slack_asyncwebclient( function mock_slack_client (line 149) | def mock_slack_client(mock_slack_asyncwebclient): function mock_inbound_request_channel_id (line 157) | def mock_inbound_request_channel_id(mock_config): function mock_feed_channel_id (line 162) | def mock_feed_channel_id(mock_config): function mock_appsec_oncall_slack_channel_id (line 167) | def mock_appsec_oncall_slack_channel_id(mock_config): function mock_privacy_oncall_slack_user_id (line 172) | def mock_privacy_oncall_slack_user_id(mock_config): function mock_appsec_oncall_slack_user (line 177) | def mock_appsec_oncall_slack_user(): function mock_appsec_oncall_slack_user_id (line 182) | def mock_appsec_oncall_slack_user_id(mock_appsec_oncall_slack_user): function mock_inbound_request_ts (line 187) | def mock_inbound_request_ts(): function mock_feed_message_ts (line 192) | def mock_feed_message_ts(): function mock_notify_appsec_oncall_message_ts (line 197) | def mock_notify_appsec_oncall_message_ts(): function mock_appsec_oncall_recategorize_ts (line 202) | def mock_appsec_oncall_recategorize_ts(): function mock_inbound_request (line 207) | def mock_inbound_request(mock_inbound_request_channel_id, mock_inbound_r... function mock_inbound_request_permalink (line 220) | def mock_inbound_request_permalink(mock_inbound_request_channel_id): function mock_notify_appsec_oncall_message_data (line 225) | async def mock_notify_appsec_oncall_message_data( function mock_notify_appsec_oncall_message (line 273) | def mock_notify_appsec_oncall_message( function mock_appsec_oncall_recategorize_to_privacy_message (line 293) | def mock_appsec_oncall_recategorize_to_privacy_message( function mock_appsec_oncall_recategorize_to_other_message (line 309) | def mock_appsec_oncall_recategorize_to_other_message( FILE: bots/triage-slackbot/tests/test_handlers.py function get_mock_chat_completion_response (line 13) | def get_mock_chat_completion_response(category: str): function assert_chat_completion_called (line 28) | def assert_chat_completion_called(mock_chat_completion, mock_config): function test_inbound_request_handler_handle (line 62) | async def test_inbound_request_handler_handle( function test_inbound_request_handler_handle_autorespond (line 225) | async def test_inbound_request_handler_handle_autorespond( function test_inbound_request_acknowledge_handler (line 312) | async def test_inbound_request_acknowledge_handler( function test_inbound_request_recategorize_to_listed_category_handler (line 338) | async def test_inbound_request_recategorize_to_listed_category_handler( function test_inbound_request_recategorize_to_other_category_handler (line 465) | async def test_inbound_request_recategorize_to_other_category_handler( function test_inbound_request_handler_skip_handle (line 534) | async def test_inbound_request_handler_skip_handle( FILE: bots/triage-slackbot/triage_slackbot/category.py class RequestCategory (line 8) | class RequestCategory(BaseModel): method check_autorespond (line 28) | def check_autorespond(self) -> "RequestCategory": method route_to_channel (line 34) | def route_to_channel(self) -> bool: method to_block_options (line 38) | def to_block_options(cls, categories: t.List["RequestCategory"]) -> t.... method is_other (line 41) | def is_other(self) -> bool: FILE: bots/triage-slackbot/triage_slackbot/config.py function convert_categories (line 13) | def convert_categories(v: t.List[t.Dict]): function validate_channel (line 21) | def validate_channel(channel_id: str) -> str: class Config (line 27) | class Config(BaseModel): method check_category_keys (line 48) | def check_category_keys(config: "Config") -> "Config": function load_config (line 60) | def load_config(path: str): function get_config (line 82) | def get_config() -> Config: FILE: bots/triage-slackbot/triage_slackbot/handlers.py class BlockId (line 23) | class BlockId(str, Enum): class MessageTemplatePath (line 38) | class MessageTemplatePath(str, Enum): class InboundRequestHandlerMixin (line 59) | class InboundRequestHandlerMixin(BaseHandler): method __init__ (line 60) | def __init__(self, slack_client: SlackClient) -> None: method render_block_if_not_exists (line 64) | def render_block_if_not_exists( method get_selected_category (line 73) | def get_selected_category(self, body: t.Dict[str, t.Any]) -> t.Optiona... method get_selected_conversation (line 88) | def get_selected_conversation(self, body: t.Dict[str, t.Any]) -> t.Opt... method notify_oncall (line 97) | async def notify_oncall( method _get_notify_oncall_in_feed_blocks (line 162) | async def _get_notify_oncall_in_feed_blocks( method _get_notify_oncall_channel_blocks (line 187) | async def _get_notify_oncall_channel_blocks( method _get_oncall_mention (line 205) | def _get_oncall_mention(self, predicted_category: RequestCategory) -> ... method _maybe_autorespond (line 209) | async def _maybe_autorespond( class InboundRequestHandler (line 254) | class InboundRequestHandler(BaseMessageHandler, InboundRequestHandlerMix... method handle (line 259) | async def handle(self, args): method should_handle (line 301) | async def should_handle(self, args): method _predict_category (line 318) | async def _predict_category(self, body) -> RequestCategory: method _update_feed (line 322) | async def _update_feed( class InboundRequestAcknowledgeHandler (line 348) | class InboundRequestAcknowledgeHandler(BaseActionHandler, InboundRequest... method action_id (line 356) | def action_id(self): method handle (line 359) | async def handle(self, args): method _get_message (line 423) | def _get_message( class InboundRequestRecategorizeHandler (line 435) | class InboundRequestRecategorizeHandler(BaseActionHandler, InboundReques... method action_id (line 442) | def action_id(self): method handle (line 445) | async def handle(self, args): method _get_message (line 538) | def _get_message( method _validate_selection (line 558) | async def _validate_selection( class InboundRequestRecategorizeSelectHandler (line 576) | class InboundRequestRecategorizeSelectHandler(BaseActionHandler, Inbound... method action_id (line 583) | def action_id(self): method handle (line 586) | async def handle(self, args): class InboundRequestRecategorizeSelectConversationHandler (line 619) | class InboundRequestRecategorizeSelectConversationHandler(BaseActionHand... method action_id (line 625) | def action_id(self): method handle (line 628) | async def handle(self, args): FILE: bots/triage-slackbot/triage_slackbot/openai_utils.py function predict_category_functions (line 10) | def predict_category_functions(categories: list[RequestCategory]) -> lis... function get_predicted_category (line 32) | async def get_predicted_category(inbound_request_content: str) -> str: FILE: shared/openai-slackbot/openai_slackbot/bot.py function register_app_handlers (line 14) | async def register_app_handlers( function init_bot (line 30) | async def init_bot( function start_app (line 57) | async def start_app(app): function start_bot (line 63) | async def start_bot( FILE: shared/openai-slackbot/openai_slackbot/clients/slack.py class SlackMessage (line 14) | class SlackMessage(BaseModel): class CreateSlackMessageResponse (line 26) | class CreateSlackMessageResponse(BaseModel): class SlackClient (line 33) | class SlackClient: method __init__ (line 40) | def __init__(self, client: AsyncWebClient, template_path: str) -> None: method get_message_link (line 44) | async def get_message_link(self, **kwargs) -> str: method get_message (line 50) | async def get_message(self, channel: str, ts: str) -> t.Optional[t.Dic... method post_message (line 60) | async def post_message(self, **kwargs) -> CreateSlackMessageResponse: method update_message (line 68) | async def update_message(self, **kwargs) -> t.Dict[str, t.Any]: method add_reaction (line 76) | async def add_reaction(self, **kwargs) -> t.Dict[str, t.Any]: method get_thread_messages (line 87) | async def get_thread_messages(self, channel: str, thread_ts: str) -> t... method get_user_display_name (line 95) | async def get_user_display_name(self, user_id: str) -> str: method get_original_blocks (line 101) | async def get_original_blocks(self, thread_ts: str, channel: str) -> N... method render_blocks_from_template (line 118) | def render_blocks_from_template(self, template_filename: str, context:... method _init_jinja (line 122) | def _init_jinja(self, template_path: str): FILE: shared/openai-slackbot/openai_slackbot/handlers.py class BaseHandler (line 10) | class BaseHandler(abc.ABC): method __init__ (line 11) | def __init__(self, slack_client: SlackClient) -> None: method maybe_handle (line 14) | async def maybe_handle(self, args): method should_handle (line 30) | async def should_handle(self, args) -> bool: method handle (line 34) | async def handle(self, args): method logging_extra (line 38) | def logging_extra(self, args) -> t.Dict[str, t.Any]: class BaseMessageHandler (line 42) | class BaseMessageHandler(BaseHandler): method logging_extra (line 43) | def logging_extra(self, args) -> t.Dict[str, t.Any]: class BaseActionHandler (line 50) | class BaseActionHandler(BaseHandler): method action_id (line 52) | def action_id(self) -> str: method should_handle (line 55) | async def should_handle(self, args) -> bool: method logging_extra (line 58) | def logging_extra(self, args) -> t.Dict[str, t.Any]: FILE: shared/openai-slackbot/openai_slackbot/utils/envvars.py function string (line 5) | def string(key: str, default: t.Optional[str] = None) -> str: FILE: shared/openai-slackbot/openai_slackbot/utils/slack.py function block_id_exists (line 6) | def block_id_exists(blocks: t.List[RenderedSlackBlock], block_id: str) -... function remove_block_id_if_exists (line 10) | def remove_block_id_if_exists(blocks: t.List[RenderedSlackBlock], block_... function get_block_by_id (line 14) | def get_block_by_id(blocks: t.Dict, block_id: str) -> t.Dict: function extract_text_from_event (line 21) | def extract_text_from_event(event) -> str: function render_slack_id_to_mention (line 47) | def render_slack_id_to_mention(id: str): function render_slack_url (line 62) | def render_slack_url(*, url: str, text: str) -> str: FILE: shared/openai-slackbot/tests/clients/test_slack.py function test_get_message_link_success (line 8) | async def test_get_message_link_success(mock_slack_client): function test_get_message_link_failed (line 23) | async def test_get_message_link_failed(mock_slack_client): function test_post_message_success (line 34) | async def test_post_message_success(mock_slack_client): function test_post_message_failed (line 57) | async def test_post_message_failed(mock_slack_client): function test_update_message_success (line 68) | async def test_update_message_success(mock_slack_client): function test_update_message_failed (line 91) | async def test_update_message_failed(mock_slack_client): function test_add_reaction_success (line 100) | async def test_add_reaction_success(mock_slack_client): function test_add_reaction_already_reacted (line 108) | async def test_add_reaction_already_reacted(mock_slack_client): function test_add_reaction_failed (line 118) | async def test_add_reaction_failed(mock_slack_client): FILE: shared/openai-slackbot/tests/conftest.py function mock_slack_app (line 9) | def mock_slack_app(): function mock_socket_mode_handler (line 15) | def mock_socket_mode_handler(): function mock_openai (line 25) | def mock_openai(): function mock_slack_asyncwebclient (line 32) | def mock_slack_asyncwebclient(): function mock_slack_client (line 38) | def mock_slack_client(mock_slack_asyncwebclient): function mock_message_handler (line 43) | def mock_message_handler(mock_slack_client): function mock_action_handler (line 48) | def mock_action_handler(mock_slack_client): class MockMessageHandler (line 52) | class MockMessageHandler(BaseMessageHandler): method __init__ (line 53) | def __init__(self, slack_client): method should_handle (line 57) | async def should_handle(self, args): method handle (line 60) | async def handle(self, args): class MockActionHandler (line 64) | class MockActionHandler(BaseActionHandler): method __init__ (line 65) | def __init__(self, slack_client): method handle (line 69) | async def handle(self, args): method action_id (line 73) | def action_id(self): FILE: shared/openai-slackbot/tests/test_bot.py function test_start_bot (line 4) | async def test_start_bot( FILE: shared/openai-slackbot/tests/test_handlers.py function test_message_handler (line 7) | async def test_message_handler(mock_message_handler, subtype, should_han... function test_action_handler (line 28) | async def test_action_handler(mock_action_handler):