SYMBOL INDEX (3023 symbols across 477 files) FILE: src/langbot/__main__.py function main_entry (line 21) | async def main_entry(loop: asyncio.AbstractEventLoop): function main (line 78) | def main(): FILE: src/langbot/libs/coze_server_api/client.py class AsyncCozeAPIClient (line 10) | class AsyncCozeAPIClient: method __init__ (line 11) | def __init__(self, api_key: str, api_base: str = 'https://api.coze.cn'): method __aenter__ (line 16) | async def __aenter__(self): method __aexit__ (line 21) | async def __aexit__(self, exc_type, exc_val, exc_tb): method coze_session (line 25) | async def coze_session(self): method close (line 47) | async def close(self): method upload (line 53) | async def upload( method chat_messages (line 110) | async def chat_messages( FILE: src/langbot/libs/dify_service_api/v1/client.py class AsyncDifyServiceClient (line 12) | class AsyncDifyServiceClient: method __init__ (line 18) | def __init__( method chat_messages (line 26) | async def chat_messages( method workflow_run (line 73) | async def workflow_run( method upload_file (line 112) | async def upload_file( FILE: src/langbot/libs/dify_service_api/v1/client_test.py class TestDifyClient (line 8) | class TestDifyClient: method test_chat_messages (line 9) | async def test_chat_messages(self): FILE: src/langbot/libs/dify_service_api/v1/errors.py class DifyAPIError (line 1) | class DifyAPIError(Exception): method __init__ (line 4) | def __init__(self, message: str): FILE: src/langbot/libs/dingtalk_api/EchoHandler.py class EchoTextHandler (line 6) | class EchoTextHandler(dingtalk_stream.ChatbotHandler): method __init__ (line 7) | def __init__(self, client): method process (line 15) | async def process(self, callback: dingtalk_stream.CallbackMessage): method get_incoming_message (line 24) | async def get_incoming_message(self): FILE: src/langbot/libs/dingtalk_api/api.py class DingTalkClient (line 15) | class DingTalkClient: method __init__ (line 16) | def __init__( method get_access_token (line 44) | async def get_access_token(self): method is_token_expired (line 59) | async def is_token_expired(self): method check_access_token (line 65) | async def check_access_token(self): method download_image (line 70) | async def download_image(self, download_code: str): method download_url_to_base64 (line 87) | async def download_url_to_base64(self, download_url): method get_audio_url (line 99) | async def get_audio_url(self, download_code: str): method get_file_url (line 117) | async def get_file_url(self, download_code: str): method update_incoming_message (line 135) | async def update_incoming_message(self, message): method send_message (line 143) | async def send_message(self, content: str, incoming_message, at: bool): method get_incoming_message (line 160) | async def get_incoming_message(self): method on_message (line 164) | def on_message(self, msg_type: str): method _handle_message (line 173) | async def _handle_message(self, event: DingTalkEvent): method get_message (line 185) | async def get_message(self, incoming_message: dingtalk_stream.chatbot.... method send_proactive_message_to_one (line 297) | async def send_proactive_message_to_one(self, target_id: str, content:... method send_proactive_message_to_group (line 323) | async def send_proactive_message_to_group(self, target_id: str, conten... method create_and_card (line 349) | async def create_and_card( method send_card_message (line 369) | async def send_card_message(self, card_instance, card_instance_id: str... method start (line 391) | async def start(self): method _keepalive (line 440) | async def _keepalive(self, ws, ping_interval=60): method stop (line 449) | async def stop(self): FILE: src/langbot/libs/dingtalk_api/dingtalkevent.py class DingTalkEvent (line 5) | class DingTalkEvent(dict): method from_payload (line 7) | def from_payload(payload: Dict[str, Any]) -> Optional['DingTalkEvent']: method content (line 15) | def content(self): method rich_content (line 19) | def rich_content(self): method incoming_message (line 23) | def incoming_message(self) -> Optional['dingtalk_stream.chatbot.Chatbo... method type (line 27) | def type(self): method picture (line 31) | def picture(self): method audio (line 35) | def audio(self): method file (line 39) | def file(self): method name (line 43) | def name(self): method conversation (line 47) | def conversation(self): method __getattr__ (line 50) | def __getattr__(self, key: str) -> Optional[Any]: method __setattr__ (line 62) | def __setattr__(self, key: str, value: Any) -> None: method __repr__ (line 72) | def __repr__(self) -> str: FILE: src/langbot/libs/official_account_api/api.py class OAClient (line 25) | class OAClient: method __init__ (line 26) | def __init__( method handle_callback_request (line 62) | async def handle_callback_request(self): method handle_unified_webhook (line 66) | async def handle_unified_webhook(self, req): method _handle_callback_internal (line 77) | async def _handle_callback_internal(self, req): method get_message (line 158) | async def get_message(self, xml_msg: str): method run_task (line 172) | async def run_task(self, host: str, port: int, *args, **kwargs): method on_message (line 178) | def on_message(self, msg_type: str): method _handle_message (line 191) | async def _handle_message(self, event: OAEvent): method set_message (line 206) | async def set_message(self, msg_id: int, content: str): class OAClientForLongerResponse (line 210) | class OAClientForLongerResponse: method __init__ (line 211) | def __init__( method handle_callback_request (line 249) | async def handle_callback_request(self): method handle_unified_webhook (line 253) | async def handle_unified_webhook(self, req): method _handle_callback_internal (line 264) | async def _handle_callback_internal(self, req): method get_message (line 346) | async def get_message(self, xml_msg: str): method run_task (line 360) | async def run_task(self, host: str, port: int, *args, **kwargs): method on_message (line 366) | def on_message(self, msg_type: str): method _handle_message (line 379) | async def _handle_message(self, event: OAEvent): method set_message (line 389) | async def set_message(self, from_user: int, message_id: int, content: ... FILE: src/langbot/libs/official_account_api/oaevent.py class OAEvent (line 4) | class OAEvent(dict): method from_payload (line 12) | def from_payload(payload: Dict[str, Any]) -> Optional['OAEvent']: method type (line 30) | def type(self) -> str: method picurl (line 40) | def picurl(self) -> str: method detail_type (line 47) | def detail_type(self) -> str: method name (line 61) | def name(self) -> str: method user_id (line 71) | def user_id(self) -> Optional[str]: method receiver_id (line 78) | def receiver_id(self) -> Optional[str]: method message_id (line 88) | def message_id(self) -> Optional[str]: method message (line 98) | def message(self) -> Optional[str]: method media_id (line 108) | def media_id(self) -> Optional[str]: method timestamp (line 118) | def timestamp(self) -> Optional[int]: method event_key (line 128) | def event_key(self) -> Optional[str]: method __getattr__ (line 137) | def __getattr__(self, key: str) -> Optional[Any]: method __setattr__ (line 149) | def __setattr__(self, key: str, value: Any) -> None: method __repr__ (line 159) | def __repr__(self) -> str: FILE: src/langbot/libs/qq_official_api/api.py class QQOfficialClient (line 13) | class QQOfficialClient: method __init__ (line 14) | def __init__(self, secret: str, token: str, app_id: str, logger: None,... method check_access_token (line 36) | async def check_access_token(self): method get_access_token (line 42) | async def get_access_token(self): method handle_callback_request (line 66) | async def handle_callback_request(self): method handle_unified_webhook (line 70) | async def handle_unified_webhook(self, req): method _handle_callback_internal (line 81) | async def _handle_callback_internal(self, req): method run_task (line 118) | async def run_task(self, host: str, port: int, *args, **kwargs): method on_message (line 122) | def on_message(self, msg_type: str): method _handle_message (line 133) | async def _handle_message(self, event: QQOfficialEvent): method get_message (line 140) | async def get_message(self, msg: dict) -> Dict[str, Any]: method is_image (line 169) | async def is_image(self, attachment: dict) -> bool: method send_private_text_msg (line 174) | async def send_private_text_msg(self, user_openid: str, content: str, ... method send_group_text_msg (line 198) | async def send_group_text_msg(self, group_openid: str, content: str, m... method send_channle_group_text_msg (line 221) | async def send_channle_group_text_msg(self, channel_id: str, content: ... method send_channle_private_text_msg (line 244) | async def send_channle_private_text_msg(self, guild_id: str, content: ... method is_token_expired (line 267) | async def is_token_expired(self): method repeat_seed (line 273) | async def repeat_seed(self, bot_secret: str, target_size: int = 32) ->... method verify (line 279) | async def verify(self, validation_payload: dict): FILE: src/langbot/libs/qq_official_api/qqofficialevent.py class QQOfficialEvent (line 4) | class QQOfficialEvent(dict): method from_payload (line 6) | def from_payload(payload: Dict[str, Any]) -> Optional['QQOfficialEvent']: method t (line 14) | def t(self) -> str: method user_openid (line 21) | def user_openid(self) -> str: method timestamp (line 28) | def timestamp(self) -> str: method d_author_id (line 35) | def d_author_id(self) -> str: method content (line 42) | def content(self) -> str: method d_id (line 49) | def d_id(self) -> str: method id (line 56) | def id(self) -> str: method channel_id (line 63) | def channel_id(self) -> str: method username (line 70) | def username(self) -> str: method guild_id (line 77) | def guild_id(self) -> str: method member_openid (line 84) | def member_openid(self) -> str: method attachments (line 91) | def attachments(self) -> str: method group_openid (line 101) | def group_openid(self) -> str: method content_type (line 108) | def content_type(self) -> str: FILE: src/langbot/libs/slack_api/api.py class SlackClient (line 10) | class SlackClient: method __init__ (line 11) | def __init__(self, bot_token: str, signing_secret: str, logger: None, ... method handle_callback_request (line 30) | async def handle_callback_request(self): method handle_unified_webhook (line 34) | async def handle_unified_webhook(self, req): method _handle_callback_internal (line 45) | async def _handle_callback_internal(self, req): method _handle_message (line 82) | async def _handle_message(self, event: SlackEvent): method on_message (line 91) | def on_message(self, msg_type: str): method send_message_to_channel (line 102) | async def send_message_to_channel(self, text: str, channel_id: str): method send_message_to_one (line 112) | async def send_message_to_one(self, text: str, user_id: str): method run_task (line 123) | async def run_task(self, host: str, port: int, *args, **kwargs): FILE: src/langbot/libs/slack_api/slackevent.py class SlackEvent (line 4) | class SlackEvent(dict): method from_payload (line 6) | def from_payload(payload: Dict[str, Any]) -> Optional['SlackEvent']: method text (line 14) | def text(self) -> str: method user_id (line 52) | def user_id(self) -> Optional[str]: method channel_id (line 56) | def channel_id(self) -> Optional[str]: method type (line 60) | def type(self) -> str: method message_id (line 65) | def message_id(self) -> str: method pic_url (line 69) | def pic_url(self) -> str: method sender_name (line 77) | def sender_name(self) -> str: method __getattr__ (line 80) | def __getattr__(self, key: str) -> Optional[Any]: method __setattr__ (line 83) | def __setattr__(self, key: str, value: Any) -> None: method __repr__ (line 86) | def __repr__(self) -> str: FILE: src/langbot/libs/wechatpad_api/api/chatroom.py class ChatRoomApi (line 4) | class ChatRoomApi: method __init__ (line 5) | def __init__(self, base_url, token): method get_chatroom_member_detail (line 9) | def get_chatroom_member_detail(self, chatroom_name): FILE: src/langbot/libs/wechatpad_api/api/downloadpai.py class DownloadApi (line 6) | class DownloadApi: method __init__ (line 7) | def __init__(self, base_url, token): method send_download (line 11) | def send_download(self, aeskey, file_type, file_url): method get_msg_voice (line 16) | def get_msg_voice(self, buf_id, length, new_msgid): method download_url_to_base64 (line 21) | async def download_url_to_base64(self, download_url): FILE: src/langbot/libs/wechatpad_api/api/friend.py class FriendApi (line 1) | class FriendApi: method __init__ (line 4) | def __init__(self, base_url: str, token: str): FILE: src/langbot/libs/wechatpad_api/api/login.py class LoginApi (line 4) | class LoginApi: method __init__ (line 5) | def __init__(self, base_url: str, token: str = None, admin_key: str = ... method get_token (line 17) | def get_token(self, admin_key, day: int = 365): method get_login_qr (line 23) | def get_login_qr(self, Proxy: str = ''): method get_login_status (line 57) | def get_login_status(self): method logout (line 62) | def logout(self): method wake_up_login (line 67) | def wake_up_login(self, Proxy: str = ''): method login (line 77) | def login(self, admin_key): FILE: src/langbot/libs/wechatpad_api/api/message.py class MessageApi (line 4) | class MessageApi: method __init__ (line 5) | def __init__(self, base_url, token): method post_text (line 9) | def post_text(self, to_wxid, content, ats: list = []): method post_image (line 30) | def post_image(self, to_wxid, img_url, ats: list = []): method post_voice (line 41) | def post_voice(self, to_wxid, voice_data, voice_forma, voice_duration): method post_name_card (line 52) | def post_name_card(self, alias, to_wxid, nick_name, name_card_wxid, fl... method post_emoji (line 64) | def post_emoji(self, to_wxid, emoji_md5, emoji_size: int = 0): method post_app_msg (line 70) | def post_app_msg(self, to_wxid, xml_data, contenttype: int = 0): method revoke_msg (line 76) | def revoke_msg(self, to_wxid, msg_id, new_msg_id, create_time): FILE: src/langbot/libs/wechatpad_api/api/user.py class UserApi (line 4) | class UserApi: method __init__ (line 5) | def __init__(self, base_url, token): method get_profile (line 9) | def get_profile(self): method get_qr_code (line 15) | def get_qr_code(self, recover: bool = True, style: int = 8): method get_safety_info (line 21) | def get_safety_info(self): method update_head_img (line 26) | async def update_head_img(self, head_img_base64): FILE: src/langbot/libs/wechatpad_api/client.py class WeChatPadClient (line 9) | class WeChatPadClient: method __init__ (line 10) | def __init__(self, base_url, token, logger=None): method get_token (line 19) | def get_token(self, admin_key, day: int): method get_login_qr (line 23) | def get_login_qr(self, Proxy: str = ''): method awaken_login (line 27) | def awaken_login(self, Proxy: str = ''): method log_out (line 31) | def log_out(self): method get_login_status (line 35) | def get_login_status(self): method send_text_message (line 39) | def send_text_message(self, to_wxid, message, ats: list = []): method send_image_message (line 43) | def send_image_message(self, to_wxid, img_url, ats: list = []): method send_voice_message (line 47) | def send_voice_message(self, to_wxid, voice_data, voice_forma, voice_d... method send_app_message (line 51) | def send_app_message(self, to_wxid, app_message, type): method send_emoji_message (line 55) | def send_emoji_message(self, to_wxid, emoji_md5, emoji_size): method revoke_msg (line 59) | def revoke_msg(self, to_wxid, msg_id, new_msg_id, create_time): method get_profile (line 63) | def get_profile(self): method get_qr_code (line 67) | def get_qr_code(self, recover: bool = True, style: int = 8): method get_safety_info (line 71) | def get_safety_info(self): method update_head_img (line 75) | def update_head_img(self, head_img_base64): method cdn_download (line 79) | def cdn_download(self, aeskey, file_type, file_url): method get_msg_voice (line 83) | def get_msg_voice(self, buf_id, length, msgid): method download_base64 (line 87) | async def download_base64(self, url): method get_chatroom_member_detail (line 90) | def get_chatroom_member_detail(self, chatroom_name): FILE: src/langbot/libs/wechatpad_api/util/http_util.py function post_json (line 5) | def post_json(base_url, token, data=None): function get_json (line 24) | def get_json(base_url, token): function async_request (line 43) | async def async_request( FILE: src/langbot/libs/wechatpad_api/util/terminal_printer.py function print_green (line 4) | def print_green(text): function print_yellow (line 8) | def print_yellow(text): function print_red (line 12) | def print_red(text): function make_and_print_qr (line 16) | def make_and_print_qr(url): FILE: src/langbot/libs/wecom_ai_bot_api/WXBizMsgCrypt3.py class FormatException (line 28) | class FormatException(Exception): function throw_exception (line 32) | def throw_exception(message, exception_class=FormatException): class SHA1 (line 37) | class SHA1: method getSHA1 (line 40) | def getSHA1(self, token, timestamp, nonce, encrypt): class XMLParse (line 60) | class XMLParse: method extract (line 71) | def extract(self, xmltext): method generate (line 85) | def generate(self, encrypt, signature, timestamp, nonce): class PKCS7Encoder (line 103) | class PKCS7Encoder: method encode (line 108) | def encode(self, text): method decode (line 122) | def decode(self, decrypted): class Prpcrypt (line 133) | class Prpcrypt(object): method __init__ (line 136) | def __init__(self, key): method encrypt (line 142) | def encrypt(self, text, receiveid): method decrypt (line 165) | def decrypt(self, text, receiveid): method get_random_str (line 197) | def get_random_str(self): class WXBizMsgCrypt (line 204) | class WXBizMsgCrypt(object): method __init__ (line 206) | def __init__(self, sToken, sEncodingAESKey, sReceiveId): method VerifyURL (line 224) | def VerifyURL(self, sMsgSignature, sTimeStamp, sNonce, sEchoStr): method EncryptMsg (line 235) | def EncryptMsg(self, sReplyMsg, sNonce, timestamp=None): method DecryptMsg (line 257) | def DecryptMsg(self, sPostData, sMsgSignature, sTimeStamp, sNonce): FILE: src/langbot/libs/wecom_ai_bot_api/api.py class StreamChunk (line 22) | class StreamChunk: class StreamSession (line 36) | class StreamSession: class StreamSessionManager (line 67) | class StreamSessionManager: method __init__ (line 70) | def __init__(self, logger: EventLogger, ttl: int = 60) -> None: method get_stream_id_by_msg (line 77) | def get_stream_id_by_msg(self, msg_id: str) -> Optional[str]: method get_session (line 82) | def get_session(self, stream_id: str) -> Optional[StreamSession]: method create_or_get (line 85) | def create_or_get(self, msg_json: dict[str, Any]) -> tuple[StreamSessi... method publish (line 118) | async def publish(self, stream_id: str, chunk: StreamChunk) -> bool: method consume (line 149) | async def consume(self, stream_id: str, timeout: float = 0.5) -> Optio... method mark_finished (line 179) | def mark_finished(self, stream_id: str) -> None: method cleanup (line 185) | def cleanup(self) -> None: function download_encrypted_file (line 202) | async def download_encrypted_file(download_url: str, encoding_aes_key: s... function parse_wecom_bot_message (line 248) | async def parse_wecom_bot_message( class WecomBotClient (line 449) | class WecomBotClient: method __init__ (line 450) | def __init__(self, Token: str, EnCodingAESKey: str, Corpid: str, logge... method _build_stream_payload (line 487) | def _build_stream_payload(stream_id: str, content: str, finish: bool) ... method _encrypt_and_reply (line 510) | async def _encrypt_and_reply(self, payload: dict[str, Any], nonce: str... method _dispatch_event (line 537) | async def _dispatch_event(self, event: wecombotevent.WecomBotEvent) ->... method _handle_post_initial_response (line 548) | async def _handle_post_initial_response(self, msg_json: dict[str, Any]... method _handle_post_followup_response (line 577) | async def _handle_post_followup_response(self, msg_json: dict[str, Any... method handle_callback_request (line 614) | async def handle_callback_request(self): method handle_unified_webhook (line 625) | async def handle_unified_webhook(self, req): method _handle_callback_internal (line 636) | async def _handle_callback_internal(self, req): method _handle_get_callback (line 657) | async def _handle_get_callback(self, req) -> tuple[Response, int] | Re... method _handle_post_callback (line 676) | async def _handle_post_callback(self, req) -> tuple[Response, int] | R... method get_message (line 704) | async def get_message(self, msg_json): method _handle_message (line 707) | async def _handle_message(self, event: wecombotevent.WecomBotEvent): method push_stream_chunk (line 724) | async def push_stream_chunk(self, msg_id: str, content: str, is_final:... method set_message (line 749) | async def set_message(self, msg_id: str, content: str): method on_message (line 763) | def on_message(self, msg_type: str): method download_url_to_base64 (line 772) | async def download_url_to_base64(self, download_url, encoding_aes_key): method run_task (line 775) | async def run_task(self, host: str, port: int, *args, **kwargs): FILE: src/langbot/libs/wecom_ai_bot_api/wecombotevent.py class WecomBotEvent (line 4) | class WecomBotEvent(dict): method from_payload (line 6) | def from_payload(payload: Dict[str, Any]) -> Optional['WecomBotEvent']: method type (line 14) | def type(self) -> str: method msgtype (line 21) | def msgtype(self) -> str: method userid (line 28) | def userid(self) -> str: method username (line 35) | def username(self) -> str: method chatname (line 47) | def chatname(self) -> str: method content (line 54) | def content(self) -> str: method picurl (line 61) | def picurl(self) -> str: method images (line 68) | def images(self): method file (line 75) | def file(self): method voice (line 82) | def voice(self): method video (line 89) | def video(self): method link (line 96) | def link(self): method location (line 103) | def location(self): method attachments (line 110) | def attachments(self): method chatid (line 117) | def chatid(self) -> str: method message_id (line 124) | def message_id(self) -> str: method ai_bot_id (line 131) | def ai_bot_id(self) -> str: FILE: src/langbot/libs/wecom_ai_bot_api/ws_client.py function _generate_req_id (line 39) | def _generate_req_id(prefix: str) -> str: class WecomBotWsClient (line 46) | class WecomBotWsClient: method __init__ (line 53) | def __init__( method connect (line 102) | async def connect(self): method disconnect (line 135) | async def disconnect(self): method on_message (line 150) | def on_message(self, msg_type: str) -> Callable: method reply_stream (line 167) | async def reply_stream( method reply_text (line 195) | async def reply_text(self, req_id: str, content: str) -> Optional[dict]: method send_message (line 213) | async def send_message(self, chat_id: str, content: str, msgtype: str ... method push_stream_chunk (line 235) | async def push_stream_chunk(self, msg_id: str, content: str, is_final:... method set_message (line 266) | async def set_message(self, msg_id: str, content: str): method _connect_once (line 277) | async def _connect_once(self): method _send_auth (line 315) | async def _send_auth(self): method _wait_for_auth (line 327) | async def _wait_for_auth(self) -> bool: method _heartbeat_loop (line 347) | async def _heartbeat_loop(self): method _listen_loop (line 374) | async def _listen_loop(self): method _handle_frame (line 399) | async def _handle_frame(self, frame: dict): method _handle_message_callback (line 432) | async def _handle_message_callback(self, frame: dict): method _handle_event_callback (line 456) | async def _handle_event_callback(self, frame: dict): method _dispatch_event (line 497) | async def _dispatch_event(self, event: wecombotevent.WecomBotEvent): method _send_reply (line 515) | async def _send_reply( method _reply_queue_worker (line 543) | async def _reply_queue_worker(self, req_id: str): method _send_and_wait_ack (line 567) | async def _send_and_wait_ack(self, frame: dict) -> Optional[dict]: method _send_frame (line 586) | async def _send_frame(self, frame: dict): method _clear_pending_acks (line 591) | def _clear_pending_acks(self, reason: str): FILE: src/langbot/libs/wecom_api/WXBizMsgCrypt3.py class FormatException (line 29) | class FormatException(Exception): function throw_exception (line 33) | def throw_exception(message, exception_class=FormatException): class SHA1 (line 38) | class SHA1: method getSHA1 (line 41) | def getSHA1(self, token, timestamp, nonce, encrypt): class XMLParse (line 61) | class XMLParse: method extract (line 72) | def extract(self, xmltext): method generate (line 86) | def generate(self, encrypt, signature, timestamp, nonce): class PKCS7Encoder (line 104) | class PKCS7Encoder: method encode (line 109) | def encode(self, text): method decode (line 123) | def decode(self, decrypted): class Prpcrypt (line 134) | class Prpcrypt(object): method __init__ (line 137) | def __init__(self, key): method encrypt (line 143) | def encrypt(self, text, receiveid): method decrypt (line 166) | def decrypt(self, text, receiveid): method get_random_str (line 198) | def get_random_str(self): class WXBizMsgCrypt (line 205) | class WXBizMsgCrypt(object): method __init__ (line 207) | def __init__(self, sToken, sEncodingAESKey, sReceiveId): method VerifyURL (line 225) | def VerifyURL(self, sMsgSignature, sTimeStamp, sNonce, sEchoStr): method EncryptMsg (line 236) | def EncryptMsg(self, sReplyMsg, sNonce, timestamp=None): method DecryptMsg (line 258) | def DecryptMsg(self, sPostData, sMsgSignature, sTimeStamp, sNonce): FILE: src/langbot/libs/wecom_api/api.py class WecomClient (line 15) | class WecomClient: method __init__ (line 16) | def __init__( method check_access_token (line 53) | async def check_access_token(self): method check_access_token_for_contacts (line 56) | async def check_access_token_for_contacts(self): method get_access_token (line 59) | async def get_access_token(self, secret): method get_users (line 70) | async def get_users(self): method send_to_all (line 91) | async def send_to_all(self, content: str, agent_id: int): method send_image (line 116) | async def send_image(self, user_id: str, agent_id: int, media_id: str): method send_voice (line 143) | async def send_voice(self, user_id: str, agent_id: int, media_id: str): method send_file (line 169) | async def send_file(self, user_id: str, agent_id: int, media_id: str): method send_private_msg (line 195) | async def send_private_msg(self, user_id: str, agent_id: int, content:... method handle_callback_request (line 222) | async def handle_callback_request(self): method handle_unified_webhook (line 226) | async def handle_unified_webhook(self, req): method _handle_callback_internal (line 237) | async def _handle_callback_internal(self, req): method run_task (line 277) | async def run_task(self, host: str, port: int, *args, **kwargs): method on_message (line 283) | def on_message(self, msg_type: str): method _handle_message (line 296) | async def _handle_message(self, event: WecomEvent): method get_message (line 305) | async def get_message(self, xml_msg: str) -> Dict[str, Any]: method get_image_type (line 326) | async def get_image_type(image_bytes: bytes) -> str: method upload_image_to_work (line 343) | async def upload_image_to_work(self, image: platform_message.Image): method upload_voice_to_work (line 403) | async def upload_voice_to_work(self, voice: platform_message.Voice): method upload_file_to_work (line 459) | async def upload_file_to_work(self, file: platform_message.File): method download_media_to_bytes (line 511) | async def download_media_to_bytes(self, url: str) -> bytes: method get_media_id (line 518) | async def get_media_id(self, media: platform_message.Image | platform_... FILE: src/langbot/libs/wecom_api/wecomevent.py class WecomEvent (line 4) | class WecomEvent(dict): method from_payload (line 12) | def from_payload(payload: Dict[str, Any]) -> Optional['WecomEvent']: method type (line 30) | def type(self) -> str: method picurl (line 40) | def picurl(self) -> str: method detail_type (line 47) | def detail_type(self) -> str: method name (line 61) | def name(self) -> str: method user_id (line 71) | def user_id(self) -> Optional[str]: method agent_id (line 81) | def agent_id(self) -> Optional[int]: method receiver_id (line 91) | def receiver_id(self) -> Optional[str]: method message_id (line 101) | def message_id(self) -> Optional[str]: method message (line 111) | def message(self) -> Optional[str]: method media_id (line 121) | def media_id(self) -> Optional[str]: method timestamp (line 131) | def timestamp(self) -> Optional[int]: method event_key (line 141) | def event_key(self) -> Optional[str]: method __getattr__ (line 150) | def __getattr__(self, key: str) -> Optional[Any]: method __setattr__ (line 162) | def __setattr__(self, key: str, value: Any) -> None: method __repr__ (line 172) | def __repr__(self) -> str: FILE: src/langbot/libs/wecom_customer_service_api/api.py class WecomCSClient (line 16) | class WecomCSClient: method __init__ (line 17) | def __init__( method get_pic_url (line 52) | async def get_pic_url(self, media_id: str): method check_access_token (line 76) | async def check_access_token(self): method check_access_token_for_contacts (line 79) | async def check_access_token_for_contacts(self): method get_access_token (line 82) | async def get_access_token(self, secret): method get_detailed_message_list (line 92) | async def get_detailed_message_list(self, xml_msg: str): method change_service_status (line 133) | async def change_service_status(self, userid: str, openkfid: str, serv... method send_image (line 152) | async def send_image(self, user_id: str, agent_id: int, media_id: str): method send_text_msg (line 185) | async def send_text_msg(self, open_kfid: str, external_userid: str, ms... method handle_callback_request (line 213) | async def handle_callback_request(self): method handle_unified_webhook (line 217) | async def handle_unified_webhook(self, req): method _handle_callback_internal (line 228) | async def _handle_callback_internal(self, req): method run_task (line 272) | async def run_task(self, host: str, port: int, *args, **kwargs): method on_message (line 278) | def on_message(self, msg_type: str): method _handle_message (line 291) | async def _handle_message(self, event: WecomCSEvent): method get_image_type (line 301) | async def get_image_type(image_bytes: bytes) -> str: method upload_to_work (line 318) | async def upload_to_work(self, image: platform_message.Image): method download_image_to_bytes (line 376) | async def download_image_to_bytes(self, url: str) -> bytes: method get_media_id (line 383) | async def get_media_id(self, image: platform_message.Image): method get_customer_info (line 387) | async def get_customer_info(self, external_userid: str) -> dict | None: FILE: src/langbot/libs/wecom_customer_service_api/wecomcsevent.py class WecomCSEvent (line 4) | class WecomCSEvent(dict): method from_payload (line 12) | def from_payload(payload: Dict[str, Any]) -> Optional['WecomCSEvent']: method type (line 30) | def type(self) -> str: method user_id (line 40) | def user_id(self) -> Optional[str]: method receiver_id (line 50) | def receiver_id(self) -> Optional[str]: method picurl (line 60) | def picurl(self) -> Optional[str]: method message_id (line 71) | def message_id(self) -> Optional[str]: method message (line 81) | def message(self) -> Optional[str]: method timestamp (line 94) | def timestamp(self) -> Optional[int]: method __getattr__ (line 103) | def __getattr__(self, key: str) -> Optional[Any]: method __setattr__ (line 115) | def __setattr__(self, key: str, value: Any) -> None: method __repr__ (line 125) | def __repr__(self) -> str: FILE: src/langbot/pkg/api/http/controller/group.py function group_class (line 20) | def group_class(name: str, path: str) -> typing.Callable[[typing.Type[Ro... class AuthType (line 32) | class AuthType(enum.Enum): class RouterGroup (line 41) | class RouterGroup(abc.ABC): method __init__ (line 50) | def __init__(self, ap: app.Application, quart_app: quart.Quart) -> None: method initialize (line 55) | async def initialize(self) -> None: method route (line 58) | def route( method success (line 168) | def success(self, data: typing.Any = None) -> quart.Response: method fail (line 178) | def fail(self, code: int, msg: str) -> quart.Response: method http_status (line 188) | def http_status(self, status: int, code: int, msg: str) -> typing.Tupl... FILE: src/langbot/pkg/api/http/controller/groups/apikeys.py class ApiKeysRouterGroup (line 7) | class ApiKeysRouterGroup(group.RouterGroup): method initialize (line 8) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/files.py class FilesRouterGroup (line 14) | class FilesRouterGroup(group.RouterGroup): method initialize (line 15) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/knowledge/base.py class KnowledgeBaseRouterGroup (line 6) | class KnowledgeBaseRouterGroup(group.RouterGroup): method initialize (line 7) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/knowledge/engines.py class KnowledgeEnginesRouterGroup (line 7) | class KnowledgeEnginesRouterGroup(group.RouterGroup): method initialize (line 8) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/knowledge/migration.py class KnowledgeMigrationRouterGroup (line 36) | class KnowledgeMigrationRouterGroup(group.RouterGroup): method _get_migration_flag (line 37) | async def _get_migration_flag(self) -> bool: method _set_migration_flag (line 47) | async def _set_migration_flag(self, value: str): method _table_exists (line 55) | async def _table_exists(self, table_name: str) -> bool: method _install_plugin_from_marketplace (line 72) | async def _install_plugin_from_marketplace( method _execute_rag_migration (line 99) | async def _execute_rag_migration(self, task_context: taskmgr.TaskConte... method initialize (line 316) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/knowledge/parsers.py class ParsersRouterGroup (line 6) | class ParsersRouterGroup(group.RouterGroup): method initialize (line 7) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/logs.py class LogsRouterGroup (line 10) | class LogsRouterGroup(group.RouterGroup): method initialize (line 11) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/monitoring.py function parse_iso_datetime (line 9) | def parse_iso_datetime(datetime_str: str | None) -> datetime.datetime | ... class MonitoringRouterGroup (line 25) | class MonitoringRouterGroup(group.RouterGroup): method initialize (line 26) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/pipelines/pipelines.py class PipelinesRouterGroup (line 9) | class PipelinesRouterGroup(group.RouterGroup): method initialize (line 10) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/pipelines/websocket_chat.py class WebSocketChatRouterGroup (line 17) | class WebSocketChatRouterGroup(group.RouterGroup): method initialize (line 18) | async def initialize(self) -> None: method _handle_receive (line 181) | async def _handle_receive(self, connection, websocket_adapter): method _handle_send (line 225) | async def _handle_send(self, connection): FILE: src/langbot/pkg/api/http/controller/groups/platform/adapters.py class AdaptersRouterGroup (line 8) | class AdaptersRouterGroup(group.RouterGroup): method initialize (line 9) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/platform/bots.py class BotsRouterGroup (line 7) | class BotsRouterGroup(group.RouterGroup): method initialize (line 8) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/plugins.py class PluginsRouterGroup (line 16) | class PluginsRouterGroup(group.RouterGroup): method _check_extensions_limit (line 17) | async def _check_extensions_limit(self) -> str | None: method initialize (line 29) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/provider/models.py class LLMModelsRouterGroup (line 7) | class LLMModelsRouterGroup(group.RouterGroup): method initialize (line 8) | async def initialize(self) -> None: class EmbeddingModelsRouterGroup (line 53) | class EmbeddingModelsRouterGroup(group.RouterGroup): method initialize (line 54) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/provider/providers.py class ModelProvidersRouterGroup (line 7) | class ModelProvidersRouterGroup(group.RouterGroup): method initialize (line 8) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/provider/requesters.py class RequestersRouterGroup (line 9) | class RequestersRouterGroup(group.RouterGroup): method initialize (line 10) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/resources/mcp.py class MCPRouterGroup (line 11) | class MCPRouterGroup(group.RouterGroup): method initialize (line 12) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/stats.py class StatsRouterGroup (line 5) | class StatsRouterGroup(group.RouterGroup): method initialize (line 6) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/survey.py class SurveyRouterGroup (line 7) | class SurveyRouterGroup(group.RouterGroup): method initialize (line 8) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/system.py class SystemRouterGroup (line 8) | class SystemRouterGroup(group.RouterGroup): method initialize (line 9) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/user.py class UserRouterGroup (line 11) | class UserRouterGroup(group.RouterGroup): method initialize (line 12) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/webhook_mgmt.py class WebhookManagementRouterGroup (line 7) | class WebhookManagementRouterGroup(group.RouterGroup): method initialize (line 8) | async def initialize(self) -> None: FILE: src/langbot/pkg/api/http/controller/groups/webhooks.py class WebhookRouterGroup (line 10) | class WebhookRouterGroup(group.RouterGroup): method initialize (line 11) | async def initialize(self) -> None: method _dispatch_webhook (line 22) | async def _dispatch_webhook(self, bot_uuid: str, path: str): FILE: src/langbot/pkg/api/http/controller/main.py class HTTPController (line 29) | class HTTPController: method __init__ (line 34) | def __init__(self, ap: app.Application) -> None: method initialize (line 42) | async def initialize(self) -> None: method run (line 55) | async def run(self) -> None: method register_routes (line 80) | async def register_routes(self) -> None: FILE: src/langbot/pkg/api/http/service/apikey.py class ApiKeyService (line 10) | class ApiKeyService: method __init__ (line 13) | def __init__(self, ap: app.Application) -> None: method get_api_keys (line 16) | async def get_api_keys(self) -> list[dict]: method create_api_key (line 23) | async def create_api_key(self, name: str, description: str = '') -> dict: method get_api_key (line 40) | async def get_api_key(self, key_id: int) -> dict | None: method verify_api_key (line 53) | async def verify_api_key(self, key: str) -> bool: method delete_api_key (line 62) | async def delete_api_key(self, key_id: int) -> None: method update_api_key (line 66) | async def update_api_key(self, key_id: int, name: str = None, descript... FILE: src/langbot/pkg/api/http/service/bot.py class BotService (line 12) | class BotService: method __init__ (line 17) | def __init__(self, ap: app.Application) -> None: method get_bots (line 20) | async def get_bots(self, include_secret: bool = True) -> list[dict]: method get_bot (line 32) | async def get_bot(self, bot_uuid: str, include_secret: bool = True) ->... method get_runtime_bot_info (line 49) | async def get_runtime_bot_info(self, bot_uuid: str, include_secret: bo... method create_bot (line 89) | async def create_bot(self, bot_data: dict) -> str: method update_bot (line 121) | async def update_bot(self, bot_uuid: str, bot_data: dict) -> None: method delete_bot (line 157) | async def delete_bot(self, bot_uuid: str) -> None: method list_event_logs (line 164) | async def list_event_logs( method send_message (line 175) | async def send_message(self, bot_uuid: str, target_type: str, target_i... FILE: src/langbot/pkg/api/http/service/knowledge.py class KnowledgeService (line 9) | class KnowledgeService: method __init__ (line 14) | def __init__(self, ap: app.Application) -> None: method get_knowledge_bases (line 17) | async def get_knowledge_bases(self) -> list[dict]: method get_knowledge_base (line 21) | async def get_knowledge_base(self, kb_uuid: str) -> dict | None: method create_knowledge_base (line 25) | async def create_knowledge_base(self, kb_data: dict) -> str: method update_knowledge_base (line 43) | async def update_knowledge_base(self, kb_uuid: str, kb_data: dict) -> ... method _check_doc_capability (line 64) | async def _check_doc_capability(self, kb_uuid: str, operation: str) ->... method store_file (line 81) | async def store_file(self, kb_uuid: str, file_id: str, parser_plugin_i... method retrieve_knowledge_base (line 100) | async def retrieve_knowledge_base( method get_files_by_knowledge_base (line 113) | async def get_files_by_knowledge_base(self, kb_uuid: str) -> list[dict]: method delete_file (line 121) | async def delete_file(self, kb_uuid: str, file_id: str) -> None: method delete_knowledge_base (line 138) | async def delete_knowledge_base(self, kb_uuid: str) -> None: method list_knowledge_engines (line 166) | async def list_knowledge_engines(self) -> list[dict]: method list_parsers (line 182) | async def list_parsers(self, mime_type: str | None = None) -> list[dict]: method get_engine_creation_schema (line 195) | async def get_engine_creation_schema(self, plugin_id: str) -> dict: method get_engine_retrieval_schema (line 203) | async def get_engine_retrieval_schema(self, plugin_id: str) -> dict: FILE: src/langbot/pkg/api/http/service/mcp.py class MCPService (line 13) | class MCPService: method __init__ (line 16) | def __init__(self, ap: app.Application) -> None: method get_runtime_info (line 19) | async def get_runtime_info(self, server_name: str) -> dict | None: method get_mcp_servers (line 25) | async def get_mcp_servers(self, contain_runtime_info: bool = False) ->... method create_mcp_server (line 40) | async def create_mcp_server(self, server_data: dict) -> str: method get_mcp_server_by_name (line 66) | async def get_mcp_server_by_name(self, server_name: str) -> dict | None: method update_mcp_server (line 79) | async def update_mcp_server(self, server_uuid: str, server_data: dict)... method delete_mcp_server (line 124) | async def delete_mcp_server(self, server_uuid: str) -> None: method test_mcp_server (line 139) | async def test_mcp_server(self, server_name: str, server_data: dict) -... FILE: src/langbot/pkg/api/http/service/model.py function _parse_provider_api_keys (line 14) | def _parse_provider_api_keys(provider_dict: dict) -> dict: class LLMModelsService (line 26) | class LLMModelsService: method __init__ (line 29) | def __init__(self, ap: app.Application) -> None: method get_llm_models (line 32) | async def get_llm_models(self, include_secret: bool = True) -> list[di... method get_llm_models_by_provider (line 57) | async def get_llm_models_by_provider(self, provider_uuid: str) -> list... method create_llm_model (line 67) | async def create_llm_model( method get_llm_model (line 121) | async def get_llm_model(self, model_uuid: str) -> dict | None: method update_llm_model (line 145) | async def update_llm_model(self, model_uuid: str, model_data: dict) ->... method delete_llm_model (line 181) | async def delete_llm_model(self, model_uuid: str) -> None: method test_llm_model (line 188) | async def test_llm_model(self, model_uuid: str, model_data: dict) -> N... class EmbeddingModelsService (line 212) | class EmbeddingModelsService: method __init__ (line 215) | def __init__(self, ap: app.Application) -> None: method get_embedding_models (line 218) | async def get_embedding_models(self) -> list[dict]: method get_embedding_models_by_provider (line 239) | async def get_embedding_models_by_provider(self, provider_uuid: str) -... method create_embedding_model (line 249) | async def create_embedding_model(self, model_data: dict, preserve_uuid... method get_embedding_model (line 282) | async def get_embedding_model(self, model_uuid: str) -> dict | None: method update_embedding_model (line 307) | async def update_embedding_model(self, model_uuid: str, model_data: di... method delete_embedding_model (line 342) | async def delete_embedding_model(self, model_uuid: str) -> None: method test_embedding_model (line 351) | async def test_embedding_model(self, model_uuid: str, model_data: dict... FILE: src/langbot/pkg/api/http/service/monitoring.py class MonitoringService (line 11) | class MonitoringService: method __init__ (line 16) | def __init__(self, ap: app.Application) -> None: method record_message (line 21) | async def record_message( method record_llm_call (line 65) | async def record_llm_call( method record_embedding_call (line 108) | async def record_embedding_call( method record_session_start (line 148) | async def record_session_start( method update_session_activity (line 179) | async def update_session_activity( method record_error (line 211) | async def record_error( method update_message_status (line 245) | async def update_message_status( method get_overview_metrics (line 267) | async def get_overview_metrics( method get_messages (line 360) | async def get_messages( method get_llm_calls (line 413) | async def get_llm_calls( method get_embedding_calls (line 464) | async def get_embedding_calls( method get_sessions (line 512) | async def get_sessions( method get_errors (line 566) | async def get_errors( method get_session_analysis (line 617) | async def get_session_analysis( method get_message_details (line 733) | async def get_message_details( method _escape_csv_field (line 809) | def _escape_csv_field(self, field: str | None) -> str: method _format_timestamp (line 824) | def _format_timestamp(self, dt: datetime.datetime) -> str: method _extract_message_text (line 828) | def _extract_message_text(self, message_content: str) -> str: method export_messages (line 884) | async def export_messages( method export_llm_calls (line 937) | async def export_llm_calls( method export_embedding_calls (line 990) | async def export_embedding_calls( method export_errors (line 1038) | async def export_errors( method export_sessions (line 1086) | async def export_sessions( FILE: src/langbot/pkg/api/http/service/pipeline.py class PipelineService (line 27) | class PipelineService: method __init__ (line 30) | def __init__(self, ap: app.Application) -> None: method get_pipeline_metadata (line 33) | async def get_pipeline_metadata(self) -> list[dict]: method get_pipelines (line 41) | async def get_pipelines(self, sort_by: str = 'created_at', sort_order:... method get_pipeline (line 62) | async def get_pipeline(self, pipeline_uuid: str) -> dict | None: method create_pipeline (line 76) | async def create_pipeline(self, pipeline_data: dict, default: bool = F... method update_pipeline (line 115) | async def update_pipeline(self, pipeline_uuid: str, pipeline_data: dic... method delete_pipeline (line 154) | async def delete_pipeline(self, pipeline_uuid: str) -> None: method copy_pipeline (line 162) | async def copy_pipeline(self, pipeline_uuid: str) -> str: method update_pipeline_extensions (line 216) | async def update_pipeline_extensions( FILE: src/langbot/pkg/api/http/service/provider.py class ModelProviderService (line 11) | class ModelProviderService: method __init__ (line 16) | def __init__(self, ap: app.Application) -> None: method get_providers (line 19) | async def get_providers(self) -> list[dict]: method get_provider (line 37) | async def get_provider(self, provider_uuid: str) -> dict | None: method create_provider (line 58) | async def create_provider(self, provider_data: dict) -> str: method update_provider (line 70) | async def update_provider(self, provider_uuid: str, provider_data: dic... method delete_provider (line 81) | async def delete_provider(self, provider_uuid: str) -> None: method get_provider_model_counts (line 108) | async def get_provider_model_counts(self, provider_uuid: str) -> dict: method find_or_create_provider (line 126) | async def find_or_create_provider(self, requester: str, base_url: str,... method update_space_model_provider_api_keys (line 159) | async def update_space_model_provider_api_keys(self, api_key: str) -> ... FILE: src/langbot/pkg/api/http/service/space.py class SpaceService (line 14) | class SpaceService: method __init__ (line 20) | def __init__(self, ap: app.Application) -> None: method _get_space_config (line 24) | def _get_space_config(self) -> typing.Dict[str, str]: method _get_user_by_email (line 32) | async def _get_user_by_email(self, user_email: str) -> user.User | None: method _ensure_valid_token (line 39) | async def _ensure_valid_token(self, user_email: str) -> str | None: method _refresh_and_save_token (line 62) | async def _refresh_and_save_token(self, user_obj: user.User) -> str: method get_oauth_authorize_url (line 86) | def get_oauth_authorize_url(self, redirect_uri: str, state: str = '') ... method exchange_oauth_code (line 95) | async def exchange_oauth_code(self, code: str) -> typing.Dict: method refresh_token (line 114) | async def refresh_token(self, refresh_token: str) -> typing.Dict: method get_user_info_raw (line 130) | async def get_user_info_raw(self, access_token: str) -> typing.Dict: method get_user_info (line 148) | async def get_user_info(self, user_email: str) -> typing.Dict | None: method get_credits (line 155) | async def get_credits(self, user_email: str, force_refresh: bool = Fal... method get_models (line 175) | async def get_models(self) -> typing.List[SpaceModel]: FILE: src/langbot/pkg/api/http/service/user.py class UserService (line 16) | class UserService: method __init__ (line 20) | def __init__(self, ap: app.Application) -> None: method is_initialized (line 24) | async def is_initialized(self) -> bool: method create_user (line 30) | async def create_user(self, user_email: str, password: str) -> None: method get_user_by_email (line 39) | async def get_user_by_email(self, user_email: str) -> user.User | None: method get_user_by_space_account_uuid (line 47) | async def get_user_by_space_account_uuid(self, space_account_uuid: str... method authenticate (line 56) | async def authenticate(self, user_email: str, password: str) -> str | ... method generate_jwt_token (line 78) | async def generate_jwt_token(self, user_email: str) -> str: method verify_jwt_token (line 90) | async def verify_jwt_token(self, token: str) -> str: method reset_password (line 95) | async def reset_password(self, user_email: str, new_password: str) -> ... method change_password (line 104) | async def change_password(self, user_email: str, current_password: str... method create_or_update_space_user (line 125) | async def create_or_update_space_user( method authenticate_space_user (line 197) | async def authenticate_space_user( method get_first_user (line 228) | async def get_first_user(self) -> user.User | None: method set_password (line 234) | async def set_password(self, user_email: str, new_password: str, curre... method bind_space_account (line 254) | async def bind_space_account(self, user_email: str, code: str) -> user... FILE: src/langbot/pkg/api/http/service/webhook.py class WebhookService (line 9) | class WebhookService: method __init__ (line 12) | def __init__(self, ap: app.Application) -> None: method get_webhooks (line 15) | async def get_webhooks(self) -> list[dict]: method create_webhook (line 22) | async def create_webhook(self, name: str, url: str, description: str =... method get_webhook (line 36) | async def get_webhook(self, webhook_id: int) -> dict | None: method update_webhook (line 49) | async def update_webhook( method delete_webhook (line 68) | async def delete_webhook(self, webhook_id: int) -> None: method get_enabled_webhooks (line 74) | async def get_enabled_webhooks(self) -> list[dict]: FILE: src/langbot/pkg/command/cmdmgr.py class CommandManager (line 18) | class CommandManager: method __init__ (line 26) | def __init__(self, ap: app.Application): method initialize (line 29) | async def initialize(self): method _execute (line 57) | async def _execute( method execute (line 76) | async def execute( FILE: src/langbot/pkg/command/operator.py function operator_class (line 14) | def operator_class( class CommandOperator (line 53) | class CommandOperator(metaclass=abc.ABCMeta): method __init__ (line 90) | def __init__(self, ap: app.Application): method initialize (line 94) | async def initialize(self): method execute (line 98) | async def execute( FILE: src/langbot/pkg/config/impls/json.py class JSONConfigFile (line 8) | class JSONConfigFile(file_model.ConfigFile): method __init__ (line 11) | def __init__( method exists (line 21) | def exists(self) -> bool: method get_template_file_str (line 24) | async def get_template_file_str(self) -> str: method create (line 33) | async def create(self): method load (line 43) | async def load(self, completion: bool = True) -> dict: method save (line 65) | async def save(self, cfg: dict): method save_sync (line 69) | def save_sync(self, cfg: dict): FILE: src/langbot/pkg/config/impls/pymodule.py class PythonModuleConfigFile (line 9) | class PythonModuleConfigFile(file_model.ConfigFile): method __init__ (line 18) | def __init__(self, config_file_name: str, template_file_name: str) -> ... method exists (line 22) | def exists(self) -> bool: method create (line 25) | async def create(self): method load (line 28) | async def load(self, completion: bool = True) -> dict: method save (line 62) | async def save(self, data: dict): method save_sync (line 65) | def save_sync(self, data: dict): FILE: src/langbot/pkg/config/impls/yaml.py class YAMLConfigFile (line 8) | class YAMLConfigFile(file_model.ConfigFile): method __init__ (line 11) | def __init__( method exists (line 21) | def exists(self) -> bool: method get_template_file_str (line 24) | async def get_template_file_str(self) -> str: method create (line 33) | async def create(self): method load (line 43) | async def load(self, completion: bool = True) -> dict: method save (line 65) | async def save(self, cfg: dict): method save_sync (line 69) | def save_sync(self, cfg: dict): FILE: src/langbot/pkg/config/manager.py class ConfigManager (line 7) | class ConfigManager: method __init__ (line 30) | def __init__(self, cfg_file: file_model.ConfigFile) -> None: method load_config (line 34) | async def load_config(self, completion: bool = True): method dump_config (line 37) | async def dump_config(self): method dump_config_sync (line 40) | def dump_config_sync(self): function load_python_module_config (line 44) | async def load_python_module_config(config_name: str, template_name: str... function load_json_config (line 63) | async def load_json_config( function load_yaml_config (line 85) | async def load_yaml_config( FILE: src/langbot/pkg/config/model.py class ConfigFile (line 4) | class ConfigFile(metaclass=abc.ABCMeta): method exists (line 17) | def exists(self) -> bool: method create (line 21) | async def create(self): method load (line 25) | async def load(self, completion: bool = True) -> dict: method save (line 29) | async def save(self, data: dict): method save_sync (line 33) | def save_sync(self, data: dict): FILE: src/langbot/pkg/core/app.py class Application (line 47) | class Application: method __init__ (line 156) | def __init__(self): method initialize (line 159) | async def initialize(self): method run (line 162) | async def run(self): method dispose (line 205) | def dispose(self): method print_web_access_info (line 208) | async def print_web_access_info(self): FILE: src/langbot/pkg/core/boot.py function make_app (line 27) | async def make_app(loop: asyncio.AbstractEventLoop) -> app.Application: function main (line 48) | async def main(loop: asyncio.AbstractEventLoop): FILE: src/langbot/pkg/core/bootutils/deps.py function check_deps (line 48) | async def check_deps() -> list[str]: function install_deps (line 61) | async def install_deps(deps: list[str]): function precheck_plugin_deps (line 68) | async def precheck_plugin_deps(): FILE: src/langbot/pkg/core/bootutils/files.py function generate_files (line 20) | async def generate_files() -> list[str]: FILE: src/langbot/pkg/core/bootutils/log.py function init_logging (line 24) | async def init_logging(extra_handlers: list[logging.Handler] = None) -> ... FILE: src/langbot/pkg/core/entities.py class LifecycleControlScope (line 6) | class LifecycleControlScope(enum.Enum): FILE: src/langbot/pkg/core/migration.py function migration_class (line 13) | def migration_class(name: str, number: int): class Migration (line 25) | class Migration(abc.ABC): method __init__ (line 34) | def __init__(self, ap: app.Application): method need_migrate (line 38) | async def need_migrate(self) -> bool: method run (line 43) | async def run(self): FILE: src/langbot/pkg/core/migrations/m001_sensitive_word_migration.py class SensitiveWordMigration (line 9) | class SensitiveWordMigration(migration.Migration): method need_migrate (line 12) | async def need_migrate(self) -> bool: method run (line 18) | async def run(self): FILE: src/langbot/pkg/core/migrations/m002_openai_config_migration.py class OpenAIConfigMigration (line 7) | class OpenAIConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m003_anthropic_requester_cfg_completion.py class AnthropicRequesterConfigCompletionMigration (line 7) | class AnthropicRequesterConfigCompletionMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 17) | async def run(self): FILE: src/langbot/pkg/core/migrations/m004_moonshot_cfg_completion.py class MoonshotConfigCompletionMigration (line 7) | class MoonshotConfigCompletionMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 17) | async def run(self): FILE: src/langbot/pkg/core/migrations/m005_deepseek_cfg_completion.py class DeepseekConfigCompletionMigration (line 7) | class DeepseekConfigCompletionMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 17) | async def run(self): FILE: src/langbot/pkg/core/migrations/m006_vision_config.py class VisionConfigMigration (line 7) | class VisionConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m007_qcg_center_url.py class QCGCenterURLConfigMigration (line 7) | class QCGCenterURLConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m008_ad_fixwin_config_migrate.py class AdFixwinConfigMigration (line 7) | class AdFixwinConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m009_msg_truncator_cfg.py class MsgTruncatorConfigMigration (line 7) | class MsgTruncatorConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m010_ollama_requester_config.py class MsgTruncatorConfigMigration (line 7) | class MsgTruncatorConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m011_command_prefix_config.py class CommandPrefixConfigMigration (line 7) | class CommandPrefixConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m012_runner_config.py class RunnerConfigMigration (line 7) | class RunnerConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m013_http_api_config.py class HttpApiConfigMigration (line 7) | class HttpApiConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m014_force_delay_config.py class ForceDelayConfigMigration (line 7) | class ForceDelayConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m015_gitee_ai_config.py class GiteeAIConfigMigration (line 7) | class GiteeAIConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 17) | async def run(self): FILE: src/langbot/pkg/core/migrations/m016_dify_service_api.py class DifyServiceAPICfgMigration (line 7) | class DifyServiceAPICfgMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m017_dify_api_timeout_params.py class DifyAPITimeoutParamsMigration (line 7) | class DifyAPITimeoutParamsMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 18) | async def run(self): FILE: src/langbot/pkg/core/migrations/m018_xai_config.py class XaiConfigMigration (line 7) | class XaiConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m019_zhipuai_config.py class ZhipuaiConfigMigration (line 7) | class ZhipuaiConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m020_wecom_config.py class WecomConfigMigration (line 7) | class WecomConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 20) | async def run(self): FILE: src/langbot/pkg/core/migrations/m021_lark_config.py class LarkConfigMigration (line 7) | class LarkConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 20) | async def run(self): FILE: src/langbot/pkg/core/migrations/m022_lmstudio_config.py class LmStudioConfigMigration (line 7) | class LmStudioConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 15) | async def run(self): FILE: src/langbot/pkg/core/migrations/m023_siliconflow_config.py class SiliconFlowConfigMigration (line 7) | class SiliconFlowConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 15) | async def run(self): FILE: src/langbot/pkg/core/migrations/m024_discord_config.py class DiscordConfigMigration (line 7) | class DiscordConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 20) | async def run(self): FILE: src/langbot/pkg/core/migrations/m025_gewechat_config.py class GewechatConfigMigration (line 7) | class GewechatConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 20) | async def run(self): FILE: src/langbot/pkg/core/migrations/m026_qqofficial_config.py class QQOfficialConfigMigration (line 7) | class QQOfficialConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 20) | async def run(self): FILE: src/langbot/pkg/core/migrations/m027_wx_official_account_config.py class WXOfficialAccountConfigMigration (line 7) | class WXOfficialAccountConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 20) | async def run(self): FILE: src/langbot/pkg/core/migrations/m028_aliyun_requester_config.py class BailianRequesterConfigMigration (line 7) | class BailianRequesterConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 15) | async def run(self): FILE: src/langbot/pkg/core/migrations/m029_dashscope_app_api_config.py class DashscopeAppAPICfgMigration (line 7) | class DashscopeAppAPICfgMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m030_lark_config_cmpl.py class LarkConfigCmplMigration (line 7) | class LarkConfigCmplMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 20) | async def run(self): FILE: src/langbot/pkg/core/migrations/m031_dingtalk_config.py class DingTalkConfigMigration (line 7) | class DingTalkConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 20) | async def run(self): FILE: src/langbot/pkg/core/migrations/m032_volcark_config.py class VolcArkRequesterConfigMigration (line 7) | class VolcArkRequesterConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 15) | async def run(self): FILE: src/langbot/pkg/core/migrations/m033_dify_thinking_config.py class DifyThinkingConfigMigration (line 7) | class DifyThinkingConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 21) | async def run(self): FILE: src/langbot/pkg/core/migrations/m034_gewechat_file_url_config.py class GewechatFileUrlConfigMigration (line 9) | class GewechatFileUrlConfigMigration(migration.Migration): method need_migrate (line 12) | async def need_migrate(self) -> bool: method run (line 21) | async def run(self): FILE: src/langbot/pkg/core/migrations/m035_wxoa_mode.py class WxoaModeMigration (line 7) | class WxoaModeMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 19) | async def run(self): FILE: src/langbot/pkg/core/migrations/m036_wxoa_loading_message.py class WxoaLoadingMessageMigration (line 7) | class WxoaLoadingMessageMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 19) | async def run(self): FILE: src/langbot/pkg/core/migrations/m037_mcp_config.py class MCPConfigMigration (line 7) | class MCPConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/migrations/m038_tg_dingtalk_markdown.py class TgDingtalkMarkdownMigration (line 7) | class TgDingtalkMarkdownMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 19) | async def run(self): FILE: src/langbot/pkg/core/migrations/m039_modelscope_cfg_completion.py class ModelScopeConfigCompletionMigration (line 7) | class ModelScopeConfigCompletionMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 17) | async def run(self): FILE: src/langbot/pkg/core/migrations/m040_ppio_config.py class PPIOConfigMigration (line 7) | class PPIOConfigMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 17) | async def run(self): FILE: src/langbot/pkg/core/migrations/m041_dingtalk_card_autolayout_config.py class DingTalkCardAutoLayoutMigration (line 7) | class DingTalkCardAutoLayoutMigration(migration.Migration): method need_migrate (line 10) | async def need_migrate(self) -> bool: method run (line 14) | async def run(self): FILE: src/langbot/pkg/core/note.py function note_class (line 11) | def note_class(name: str, number: int): class LaunchNote (line 23) | class LaunchNote(abc.ABC): method __init__ (line 32) | def __init__(self, ap: app.Application): method need_show (line 36) | async def need_show(self) -> bool: method yield_note (line 41) | async def yield_note(self) -> typing.AsyncGenerator[typing.Tuple[str, ... FILE: src/langbot/pkg/core/notes/n001_classic_msgs.py class ClassicNotes (line 9) | class ClassicNotes(note.LaunchNote): method need_show (line 12) | async def need_show(self) -> bool: method yield_note (line 15) | async def yield_note(self) -> typing.AsyncGenerator[typing.Tuple[str, ... FILE: src/langbot/pkg/core/notes/n002_selection_mode_on_windows.py class SelectionModeOnWindows (line 11) | class SelectionModeOnWindows(note.LaunchNote): method need_show (line 14) | async def need_show(self) -> bool: method yield_note (line 17) | async def yield_note(self) -> typing.AsyncGenerator[typing.Tuple[str, ... FILE: src/langbot/pkg/core/notes/n003_print_version.py class PrintVersion (line 10) | class PrintVersion(note.LaunchNote): method need_show (line 13) | async def need_show(self) -> bool: method yield_note (line 16) | async def yield_note(self) -> typing.AsyncGenerator[typing.Tuple[str, ... FILE: src/langbot/pkg/core/stage.py function stage_class (line 16) | def stage_class(name: str): class BootingStage (line 24) | class BootingStage(abc.ABC): method run (line 30) | async def run(self, ap: app.Application): FILE: src/langbot/pkg/core/stages/build_app.py class BuildAppStage (line 41) | class BuildAppStage(stage.BootingStage): method run (line 44) | async def run(self, ap: app.Application): FILE: src/langbot/pkg/core/stages/genkeys.py class GenKeysStage (line 9) | class GenKeysStage(stage.BootingStage): method run (line 12) | async def run(self, ap: app.Application): FILE: src/langbot/pkg/core/stages/load_config.py function _apply_env_overrides_to_config (line 15) | def _apply_env_overrides_to_config(cfg: dict) -> dict: class LoadConfigStage (line 103) | class LoadConfigStage(stage.BootingStage): method run (line 106) | async def run(self, ap: app.Application): FILE: src/langbot/pkg/core/stages/migrate.py class MigrationStage (line 13) | class MigrationStage(stage.BootingStage): method run (line 19) | async def run(self, ap: app.Application): FILE: src/langbot/pkg/core/stages/setup_logger.py class PersistenceHandler (line 9) | class PersistenceHandler(logging.Handler, object): method __init__ (line 16) | def __init__(self, name, ap: app.Application): method emit (line 20) | def emit(self, record): class SetupLoggerStage (line 36) | class SetupLoggerStage(stage.BootingStage): method run (line 39) | async def run(self, ap: app.Application): FILE: src/langbot/pkg/core/stages/show_notes.py class ShowNotesStage (line 14) | class ShowNotesStage(stage.BootingStage): method run (line 17) | async def run(self, ap: app.Application): FILE: src/langbot/pkg/core/taskmgr.py class TaskContext (line 11) | class TaskContext: method __init__ (line 20) | def __init__(self): method _log (line 24) | def _log(self, msg: str): method set_current_action (line 27) | def set_current_action(self, action: str): method trace (line 30) | def trace( method to_dict (line 40) | def to_dict(self) -> dict: method new (line 44) | def new() -> TaskContext: method placeholder (line 48) | def placeholder() -> TaskContext: class TaskWrapper (line 60) | class TaskWrapper: method __init__ (line 96) | def __init__( method assume_exception (line 119) | def assume_exception(self): method assume_result (line 128) | def assume_result(self): method to_dict (line 134) | def to_dict(self) -> dict: method cancel (line 163) | def cancel(self): class AsyncTaskManager (line 167) | class AsyncTaskManager: method __init__ (line 176) | def __init__(self, ap: app.Application): method create_task (line 180) | def create_task( method create_user_task (line 194) | def create_user_task( method wait_all (line 205) | async def wait_all(self): method get_all_tasks (line 208) | def get_all_tasks(self) -> list[TaskWrapper]: method get_tasks_dict (line 211) | def get_tasks_dict( method get_task_by_id (line 220) | def get_task_by_id(self, id: int) -> TaskWrapper | None: method cancel_by_scope (line 226) | def cancel_by_scope(self, scope: core_entities.LifecycleControlScope): method cancel_task (line 231) | def cancel_task(self, task_id: int): FILE: src/langbot/pkg/discover/engine.py class I18nString (line 13) | class I18nString(pydantic.BaseModel): method to_dict (line 25) | def to_dict(self) -> dict: class Metadata (line 37) | class Metadata(pydantic.BaseModel): method __init__ (line 61) | def __init__(self, **kwargs): class PythonExecution (line 71) | class PythonExecution(pydantic.BaseModel): method __init__ (line 80) | def __init__(self, **kwargs): class Execution (line 87) | class Execution(pydantic.BaseModel): class Component (line 94) | class Component(pydantic.BaseModel): method __init__ (line 118) | def __init__(self, owner: str, manifest: typing.Dict[str, typing.Any],... method is_component_manifest (line 130) | def is_component_manifest(cls, manifest: typing.Dict[str, typing.Any])... method kind (line 135) | def kind(self) -> str: method metadata (line 140) | def metadata(self) -> Metadata: method spec (line 145) | def spec(self) -> typing.Dict[str, typing.Any]: method execution (line 150) | def execution(self) -> Execution: method icon_rel_path (line 155) | def icon_rel_path(self) -> str: method get_python_component_class (line 163) | def get_python_component_class(self) -> typing.Type[typing.Any]: method to_plain_dict (line 172) | def to_plain_dict(self) -> dict: class ComponentDiscoveryEngine (line 183) | class ComponentDiscoveryEngine: method __init__ (line 192) | def __init__(self, ap: app.Application): method load_component_manifest (line 195) | def load_component_manifest(self, path: str, owner: str = 'builtin', n... method load_component_manifests_in_dir (line 209) | def load_component_manifests_in_dir( method load_blueprint_comp_group (line 234) | def load_blueprint_comp_group( method discover_blueprint (line 251) | def discover_blueprint(self, blueprint_manifest_path: str, owner: str ... method get_components_by_kind (line 274) | def get_components_by_kind(self, kind: str) -> typing.List[Component]: method find_components (line 280) | def find_components(self, kind: str, component_list: typing.List[Compo... FILE: src/langbot/pkg/entity/dto/space_model.py class SpaceModel (line 39) | class SpaceModel(pydantic.BaseModel): FILE: src/langbot/pkg/entity/errors/account.py class AccountEmailMismatchError (line 4) | class AccountEmailMismatchError(Exception): method __str__ (line 5) | def __str__(self): FILE: src/langbot/pkg/entity/errors/platform.py class AdapterNotFoundError (line 4) | class AdapterNotFoundError(Exception): method __init__ (line 5) | def __init__(self, adapter_name: str): method __str__ (line 8) | def __str__(self): FILE: src/langbot/pkg/entity/errors/provider.py class RequesterNotFoundError (line 4) | class RequesterNotFoundError(Exception): method __init__ (line 5) | def __init__(self, requester_name: str): method __str__ (line 8) | def __str__(self): class ProviderNotFoundError (line 12) | class ProviderNotFoundError(Exception): method __init__ (line 13) | def __init__(self, provider_name: str): method __str__ (line 16) | def __str__(self): FILE: src/langbot/pkg/entity/persistence/apikey.py class ApiKey (line 6) | class ApiKey(Base): FILE: src/langbot/pkg/entity/persistence/base.py class Base (line 4) | class Base(sqlalchemy.orm.DeclarativeBase): FILE: src/langbot/pkg/entity/persistence/bot.py class Bot (line 6) | class Bot(Base): FILE: src/langbot/pkg/entity/persistence/bstorage.py class BinaryStorage (line 6) | class BinaryStorage(Base): FILE: src/langbot/pkg/entity/persistence/mcp.py class MCPServer (line 6) | class MCPServer(Base): FILE: src/langbot/pkg/entity/persistence/metadata.py class Metadata (line 15) | class Metadata(Base): FILE: src/langbot/pkg/entity/persistence/model.py class ModelProvider (line 6) | class ModelProvider(Base): class LLMModel (line 25) | class LLMModel(Base): class EmbeddingModel (line 45) | class EmbeddingModel(Base): FILE: src/langbot/pkg/entity/persistence/monitoring.py class MonitoringMessage (line 6) | class MonitoringMessage(Base): class MonitoringLLMCall (line 29) | class MonitoringLLMCall(Base): class MonitoringSession (line 52) | class MonitoringSession(Base): class MonitoringError (line 71) | class MonitoringError(Base): class MonitoringEmbeddingCall (line 89) | class MonitoringEmbeddingCall(Base): FILE: src/langbot/pkg/entity/persistence/pipeline.py class LegacyPipeline (line 6) | class LegacyPipeline(Base): class PipelineRunRecord (line 33) | class PipelineRunRecord(Base): FILE: src/langbot/pkg/entity/persistence/plugin.py class PluginSetting (line 6) | class PluginSetting(Base): FILE: src/langbot/pkg/entity/persistence/rag.py class KnowledgeBase (line 5) | class KnowledgeBase(Base): class File (line 30) | class File(Base): class Chunk (line 40) | class Chunk(Base): FILE: src/langbot/pkg/entity/persistence/user.py class User (line 6) | class User(Base): FILE: src/langbot/pkg/entity/persistence/vector.py class Vector (line 7) | class Vector(Base): FILE: src/langbot/pkg/entity/persistence/webhook.py class Webhook (line 6) | class Webhook(Base): FILE: src/langbot/pkg/persistence/database.py function manager_class (line 13) | def manager_class(name: str) -> None: class BaseDatabaseManager (line 24) | class BaseDatabaseManager(abc.ABC): method __init__ (line 33) | def __init__(self, ap: app.Application) -> None: method initialize (line 37) | async def initialize(self) -> None: method get_engine (line 40) | def get_engine(self) -> sqlalchemy_asyncio.AsyncEngine: FILE: src/langbot/pkg/persistence/databases/postgresql.py class PostgreSQLDatabaseManager (line 9) | class PostgreSQLDatabaseManager(database.BaseDatabaseManager): method initialize (line 12) | async def initialize(self) -> None: FILE: src/langbot/pkg/persistence/databases/sqlite.py class SQLiteDatabaseManager (line 9) | class SQLiteDatabaseManager(database.BaseDatabaseManager): method initialize (line 12) | async def initialize(self) -> None: FILE: src/langbot/pkg/persistence/mgr.py class PersistenceManager (line 24) | class PersistenceManager: method __init__ (line 34) | def __init__(self, ap: app.Application): method initialize (line 38) | async def initialize(self): method create_tables (line 84) | async def create_tables(self): method write_default_pipeline (line 104) | async def write_default_pipeline(self): method write_space_model_providers (line 127) | async def write_space_model_providers(self): method execute_async (line 164) | async def execute_async(self, *args, **kwargs) -> sqlalchemy.engine.cu... method get_db_engine (line 170) | def get_db_engine(self) -> sqlalchemy_asyncio.AsyncEngine: method serialize_model (line 173) | def serialize_model( FILE: src/langbot/pkg/persistence/migration.py function migration_class (line 12) | def migration_class(number: int): class DBMigration (line 23) | class DBMigration(abc.ABC): method __init__ (line 29) | def __init__(self, ap: app.Application): method upgrade (line 33) | async def upgrade(self): method downgrade (line 38) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm001_migrate_v3_config.py class DBMigrateV3Config (line 17) | class DBMigrateV3Config(migration.DBMigration): method upgrade (line 20) | async def upgrade(self): method downgrade (line 251) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm002_combine_quote_msg_config.py class DBMigrateCombineQuoteMsgConfig (line 8) | class DBMigrateCombineQuoteMsgConfig(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 53) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm003_n8n_config.py class DBMigrateN8nConfig (line 8) | class DBMigrateN8nConfig(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 60) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm004_rag_kb_uuid.py class DBMigrateRAGKBUUID (line 8) | class DBMigrateRAGKBUUID(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 51) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm005_pipeline_remove_cot_config.py class DBMigratePipelineRemoveCotConfig (line 8) | class DBMigratePipelineRemoveCotConfig(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 51) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm006_langflow_api_config.py class DBMigrateLangflowApiConfig (line 8) | class DBMigrateLangflowApiConfig(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 56) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm007_plugin_install_source.py class DBMigratePluginInstallSource (line 6) | class DBMigratePluginInstallSource(migration.DBMigration): method upgrade (line 9) | async def upgrade(self): method downgrade (line 42) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm008_plugin_config.py class DBMigratePluginConfig (line 5) | class DBMigratePluginConfig(migration.DBMigration): method upgrade (line 8) | async def upgrade(self): method downgrade (line 20) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm009_pipeline_extension_preferences.py class DBMigratePipelineExtensionPreferences (line 6) | class DBMigratePipelineExtensionPreferences(migration.DBMigration): method upgrade (line 9) | async def upgrade(self): method downgrade (line 17) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm010_pipeline_multi_knowledge_base.py class DBMigratePipelineMultiKnowledgeBase (line 8) | class DBMigratePipelineMultiKnowledgeBase(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 59) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm011_dify_base_prompt_config.py class DBMigrateDifyApiConfig (line 8) | class DBMigrateDifyApiConfig(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 53) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm012_pipeline_extensions_enable_all.py class DBMigratePipelineExtensionsEnableAll (line 8) | class DBMigratePipelineExtensionsEnableAll(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 71) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm013_knowledge_base_updated_at.py class DBMigrateKnowledgeBaseUpdatedAt (line 6) | class DBMigrateKnowledgeBaseUpdatedAt(migration.DBMigration): method upgrade (line 9) | async def upgrade(self): method downgrade (line 47) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm014_space_account_support.py class DBMigrateSpaceAccountSupport (line 6) | class DBMigrateSpaceAccountSupport(migration.DBMigration): method upgrade (line 9) | async def upgrade(self): method downgrade (line 92) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm015_model_source_tracking.py class DBMigrateModelSourceTracking (line 6) | class DBMigrateModelSourceTracking(migration.DBMigration): method upgrade (line 9) | async def upgrade(self): method downgrade (line 13) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm016_model_provider_refactor.py class DBMigrateModelProviderRefactor (line 8) | class DBMigrateModelProviderRefactor(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method _create_providers_table (line 23) | async def _create_providers_table(self): method _migrate_llm_models (line 54) | async def _migrate_llm_models(self): method _migrate_embedding_models (line 151) | async def _migrate_embedding_models(self): method _cleanup_columns (line 252) | async def _cleanup_columns(self): method _get_columns (line 288) | async def _get_columns(self, table_name: str) -> list: method downgrade (line 303) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm017_move_cloud_service_url.py class MoveCloudServiceUrl (line 5) | class MoveCloudServiceUrl(migration.DBMigration): method upgrade (line 8) | async def upgrade(self): method downgrade (line 23) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm018_add_emoji_support.py class DBMigrateAddEmojiSupport (line 6) | class DBMigrateAddEmojiSupport(migration.DBMigration): method upgrade (line 9) | async def upgrade(self): method _add_emoji_to_table (line 20) | async def _add_emoji_to_table(self, table_name: str, default_emoji: str): method downgrade (line 56) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm019_monitoring_message_role.py class DBMigrateMonitoringMessageRole (line 6) | class DBMigrateMonitoringMessageRole(migration.DBMigration): method upgrade (line 9) | async def upgrade(self): method downgrade (line 18) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm020_knowledge_engine_plugin_architecture.py class DBMigrateKnowledgeEnginePluginArchitecture (line 6) | class DBMigrateKnowledgeEnginePluginArchitecture(migration.DBMigration): method upgrade (line 17) | async def upgrade(self): method _get_table_columns (line 27) | async def _get_table_columns(self, table_name: str) -> list[str]: method _table_exists (line 43) | async def _table_exists(self, table_name: str) -> bool: method _backup_knowledge_bases (line 60) | async def _backup_knowledge_bases(self) -> bool: method _check_external_knowledge_bases (line 80) | async def _check_external_knowledge_bases(self) -> bool: method _clear_knowledge_bases (line 100) | async def _clear_knowledge_bases(self): method _add_columns_to_knowledge_bases (line 104) | async def _add_columns_to_knowledge_bases(self): method _drop_old_columns (line 121) | async def _drop_old_columns(self): method _set_migration_flag (line 142) | async def _set_migration_flag(self): method downgrade (line 159) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm021_merge_exception_handling.py class DBMigrateMergeExceptionHandling (line 8) | class DBMigrateMergeExceptionHandling(migration.DBMigration): method upgrade (line 18) | async def upgrade(self): method downgrade (line 72) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm022_monitoring_user_name.py class DBMigrateMonitoringUserId (line 6) | class DBMigrateMonitoringUserId(migration.DBMigration): method _table_exists (line 13) | async def _table_exists(self, table_name: str) -> bool: method _get_table_columns (line 30) | async def _get_table_columns(self, table_name: str) -> list[str]: method _add_column_if_not_exists (line 45) | async def _add_column_if_not_exists(self, table_name: str, column_name... method upgrade (line 56) | async def upgrade(self): method downgrade (line 72) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm023_model_fallback_config.py class DBMigrateModelFallbackConfig (line 8) | class DBMigrateModelFallbackConfig(migration.DBMigration): method upgrade (line 11) | async def upgrade(self): method downgrade (line 63) | async def downgrade(self): FILE: src/langbot/pkg/persistence/migrations/dbm024_wecombot_websocket_mode.py class DBMigrateWecomBotWebSocketMode (line 8) | class DBMigrateWecomBotWebSocketMode(migration.DBMigration): method upgrade (line 16) | async def upgrade(self): method downgrade (line 47) | async def downgrade(self): FILE: src/langbot/pkg/pipeline/aggregator.py class PendingMessage (line 29) | class PendingMessage: class SessionBuffer (line 44) | class SessionBuffer: class MessageAggregator (line 53) | class MessageAggregator: method __init__ (line 70) | def __init__(self, ap: app.Application): method _get_session_id (line 75) | def _get_session_id( method _get_aggregation_config (line 84) | async def _get_aggregation_config(self, pipeline_uuid: typing.Optional... method add_message (line 118) | async def add_message( method _delayed_flush (line 191) | async def _delayed_flush(self, session_id: str, delay: float) -> None: method _flush_buffer (line 200) | async def _flush_buffer(self, session_id: str) -> None: method _merge_messages (line 236) | def _merge_messages(self, messages: list[PendingMessage]) -> PendingMe... method flush_all (line 274) | async def flush_all(self) -> None: FILE: src/langbot/pkg/pipeline/bansess/bansess.py class BanSessionCheckStage (line 8) | class BanSessionCheckStage(stage.PipelineStage): method initialize (line 14) | async def initialize(self, pipeline_config: dict): method process (line 17) | async def process(self, query: pipeline_query.Query, stage_inst_name: ... FILE: src/langbot/pkg/pipeline/cntfilter/cntfilter.py class ContentFilterStage (line 18) | class ContentFilterStage(stage.PipelineStage): method __init__ (line 34) | def __init__(self, ap: app.Application): method initialize (line 38) | async def initialize(self, pipeline_config: dict): method _pre_process (line 57) | async def _pre_process( method _post_process (line 92) | async def _post_process( method process (line 125) | async def process(self, query: pipeline_query.Query, stage_inst_name: ... FILE: src/langbot/pkg/pipeline/cntfilter/entities.py class ResultLevel (line 6) | class ResultLevel(enum.Enum): class EnableStage (line 22) | class EnableStage(enum.Enum): class FilterResult (line 32) | class FilterResult(pydantic.BaseModel): class ManagerResultLevel (line 54) | class ManagerResultLevel(enum.Enum): class FilterManagerResult (line 64) | class FilterManagerResult(pydantic.BaseModel): FILE: src/langbot/pkg/pipeline/cntfilter/filter.py function filter_class (line 13) | def filter_class( class ContentFilter (line 37) | class ContentFilter(metaclass=abc.ABCMeta): method __init__ (line 44) | def __init__(self, ap: app.Application): method enable_stages (line 48) | def enable_stages(self): method initialize (line 58) | async def initialize(self): method process (line 63) | async def process(self, query: pipeline_query.Query, message: str = No... FILE: src/langbot/pkg/pipeline/cntfilter/filters/baiduexamine.py class BaiduCloudExamine (line 13) | class BaiduCloudExamine(filter_model.ContentFilter): method _get_token (line 16) | async def _get_token(self) -> str: method process (line 28) | async def process(self, query: pipeline_query.Query, message: str) -> ... FILE: src/langbot/pkg/pipeline/cntfilter/filters/banwords.py class BanWordFilter (line 10) | class BanWordFilter(filter_model.ContentFilter): method initialize (line 13) | async def initialize(self): method process (line 16) | async def process(self, query: pipeline_query.Query, message: str) -> ... FILE: src/langbot/pkg/pipeline/cntfilter/filters/cntignore.py class ContentIgnore (line 10) | class ContentIgnore(filter_model.ContentFilter): method enable_stages (line 14) | def enable_stages(self): method process (line 19) | async def process(self, query: pipeline_query.Query, message: str) -> ... FILE: src/langbot/pkg/pipeline/config_coercion.py function _coerce_bool (line 15) | def _coerce_bool(v): function _coerce_value (line 27) | def _coerce_value(value, expected_type: str): function coerce_pipeline_config (line 53) | def coerce_pipeline_config( FILE: src/langbot/pkg/pipeline/controller.py class Controller (line 12) | class Controller: method __init__ (line 20) | def __init__(self, ap: app.Application): method consumer (line 24) | async def consumer(self): method run (line 87) | async def run(self): FILE: src/langbot/pkg/pipeline/entities.py class ResultType (line 12) | class ResultType(enum.Enum): class StageProcessResult (line 20) | class StageProcessResult(pydantic.BaseModel): FILE: src/langbot/pkg/pipeline/longtext/longtext.py class LongTextProcessStage (line 17) | class LongTextProcessStage(stage.PipelineStage): method initialize (line 26) | async def initialize(self, pipeline_config: dict): method process (line 74) | async def process(self, query: pipeline_query.Query, stage_inst_name: ... FILE: src/langbot/pkg/pipeline/longtext/strategies/forward.py class ForwardComponentStrategy (line 15) | class ForwardComponentStrategy(strategy_model.LongTextStrategy): method process (line 16) | async def process(self, message: str, query: pipeline_query.Query) -> ... FILE: src/langbot/pkg/pipeline/longtext/strategies/image.py class Text2ImageStrategy (line 18) | class Text2ImageStrategy(strategy_model.LongTextStrategy): method initialize (line 19) | async def initialize(self): method get_font (line 23) | def get_font(self, font_path: str): method process (line 30) | async def process(self, message: str, query: pipeline_query.Query) -> ... method indexNumber (line 56) | def indexNumber(self, path=''): method get_size (line 95) | def get_size(self, file): method get_outfile (line 100) | def get_outfile(self, infile, outfile): method compress_image (line 107) | def compress_image(self, infile, outfile='', kb=100, step=20, quality=... method text_to_image (line 129) | def text_to_image( FILE: src/langbot/pkg/pipeline/longtext/strategy.py function strategy_class (line 15) | def strategy_class( class LongTextStrategy (line 39) | class LongTextStrategy(metaclass=abc.ABCMeta): method __init__ (line 46) | def __init__(self, ap: app.Application): method initialize (line 49) | async def initialize(self): method process (line 53) | async def process(self, message: str, query: pipeline_query.Query) -> ... FILE: src/langbot/pkg/pipeline/monitoring_helper.py class MonitoringHelper (line 19) | class MonitoringHelper: method record_query_start (line 23) | async def record_query_start( method record_query_success (line 102) | async def record_query_success( method record_query_response (line 129) | async def record_query_response( method record_query_error (line 193) | async def record_query_error( method record_llm_call (line 253) | async def record_llm_call( class LLMCallMonitor (line 292) | class LLMCallMonitor: method __init__ (line 295) | def __init__( method __aenter__ (line 316) | async def __aenter__(self): method __aexit__ (line 320) | async def __aexit__(self, exc_type, exc_val, exc_tb): FILE: src/langbot/pkg/pipeline/msgtrun/msgtrun.py class ConversationMessageTruncator (line 13) | class ConversationMessageTruncator(stage.PipelineStage): method initialize (line 21) | async def initialize(self, pipeline_config: dict): method process (line 31) | async def process(self, query: pipeline_query.Query, stage_inst_name: ... FILE: src/langbot/pkg/pipeline/msgtrun/truncator.py function truncator_class (line 12) | def truncator_class( class Truncator (line 36) | class Truncator(abc.ABC): method __init__ (line 43) | def __init__(self, ap: app.Application): method initialize (line 46) | async def initialize(self): method truncate (line 50) | async def truncate(self, query: pipeline_query.Query) -> pipeline_quer... FILE: src/langbot/pkg/pipeline/msgtrun/truncators/round.py class RoundTruncator (line 8) | class RoundTruncator(truncator.Truncator): method truncate (line 11) | async def truncate(self, query: pipeline_query.Query) -> pipeline_quer... FILE: src/langbot/pkg/pipeline/pipelinemgr.py class StageInstContainer (line 50) | class StageInstContainer: method __init__ (line 57) | def __init__(self, inst_name: str, inst: stage.PipelineStage): class RuntimePipeline (line 62) | class RuntimePipeline: method __init__ (line 85) | def __init__( method run (line 114) | async def run(self, query: pipeline_query.Query): method _check_output (line 140) | async def _check_output(self, query: pipeline_query.Query, result: pip... method _execute_from_stage (line 206) | async def _execute_from_stage( method process_query (line 273) | async def process_query(self, query: pipeline_query.Query): class PipelineManager (line 384) | class PipelineManager: method __init__ (line 393) | def __init__(self, ap: app.Application): method initialize (line 397) | async def initialize(self): method load_pipelines_from_db (line 402) | async def load_pipelines_from_db(self): method load_pipeline (line 413) | async def load_pipeline( method get_pipeline_by_uuid (line 443) | async def get_pipeline_by_uuid(self, uuid: str) -> RuntimePipeline | N... method remove_pipeline (line 449) | async def remove_pipeline(self, uuid: str): FILE: src/langbot/pkg/pipeline/pool.py class QueryPool (line 13) | class QueryPool: method __init__ (line 27) | def __init__(self): method add_query (line 34) | async def add_query( method __aenter__ (line 66) | async def __aenter__(self): method __aexit__ (line 70) | async def __aexit__(self, exc_type, exc_val, exc_tb): FILE: src/langbot/pkg/pipeline/preproc/preproc.py class PreProcessor (line 14) | class PreProcessor(stage.PipelineStage): method process (line 28) | async def process( FILE: src/langbot/pkg/pipeline/process/handler.py class MessageHandler (line 10) | class MessageHandler(metaclass=abc.ABCMeta): method __init__ (line 13) | def __init__(self, ap: app.Application): method initialize (line 16) | async def initialize(self): method handle (line 20) | async def handle( method cut_str (line 26) | def cut_str(self, s: str) -> str: FILE: src/langbot/pkg/pipeline/process/handlers/chat.py class ChatMessageHandler (line 25) | class ChatMessageHandler(handler.MessageHandler): method handle (line 26) | async def handle( FILE: src/langbot/pkg/pipeline/process/handlers/command.py class CommandHandler (line 13) | class CommandHandler(handler.MessageHandler): method handle (line 14) | async def handle( FILE: src/langbot/pkg/pipeline/process/process.py class Processor (line 11) | class Processor(stage.PipelineStage): method initialize (line 24) | async def initialize(self, pipeline_config: dict): method process (line 31) | async def process( FILE: src/langbot/pkg/pipeline/ratelimit/algo.py function algo_class (line 12) | def algo_class(name: str): class ReteLimitAlgo (line 21) | class ReteLimitAlgo(metaclass=abc.ABCMeta): method __init__ (line 28) | def __init__(self, ap: app.Application): method initialize (line 31) | async def initialize(self): method require_access (line 35) | async def require_access( method release_access (line 55) | async def release_access( FILE: src/langbot/pkg/pipeline/ratelimit/algos/fixedwin.py class SessionContainer (line 10) | class SessionContainer: method __init__ (line 16) | def __init__(self): class FixedWindowAlgo (line 22) | class FixedWindowAlgo(algo.ReteLimitAlgo): method initialize (line 29) | async def initialize(self): method require_access (line 33) | async def require_access( method release_access (line 92) | async def release_access( FILE: src/langbot/pkg/pipeline/ratelimit/ratelimit.py class RateLimit (line 18) | class RateLimit(stage.PipelineStage): method initialize (line 26) | async def initialize(self, pipeline_config: dict): method process (line 41) | async def process( FILE: src/langbot/pkg/pipeline/respback/respback.py class SendResponseBackStage (line 16) | class SendResponseBackStage(stage.PipelineStage): method process (line 19) | async def process(self, query: pipeline_query.Query, stage_inst_name: ... FILE: src/langbot/pkg/pipeline/resprule/entities.py class RuleJudgeResult (line 6) | class RuleJudgeResult(pydantic.BaseModel): FILE: src/langbot/pkg/pipeline/resprule/resprule.py class GroupRespondRuleCheckStage (line 17) | class GroupRespondRuleCheckStage(stage.PipelineStage): method initialize (line 26) | async def initialize(self, pipeline_config: dict): method process (line 36) | async def process(self, query: pipeline_query.Query, stage_inst_name: ... FILE: src/langbot/pkg/pipeline/resprule/rule.py function rule_class (line 15) | def rule_class(name: str): class GroupRespondRule (line 24) | class GroupRespondRule(metaclass=abc.ABCMeta): method __init__ (line 31) | def __init__(self, ap: app.Application): method initialize (line 34) | async def initialize(self): method match (line 38) | async def match( FILE: src/langbot/pkg/pipeline/resprule/rules/atbot.py class AtBotRule (line 11) | class AtBotRule(rule_model.GroupRespondRule): method match (line 12) | async def match( FILE: src/langbot/pkg/pipeline/resprule/rules/prefix.py class PrefixRule (line 8) | class PrefixRule(rule_model.GroupRespondRule): method match (line 9) | async def match( FILE: src/langbot/pkg/pipeline/resprule/rules/random.py class RandomRespRule (line 11) | class RandomRespRule(rule_model.GroupRespondRule): method match (line 12) | async def match( FILE: src/langbot/pkg/pipeline/resprule/rules/regexp.py class RegExpRule (line 11) | class RegExpRule(rule_model.GroupRespondRule): method match (line 12) | async def match( FILE: src/langbot/pkg/pipeline/stage.py function stage_class (line 14) | def stage_class(name: str) -> typing.Callable[[type[PipelineStage]], typ... class PipelineStage (line 22) | class PipelineStage(metaclass=abc.ABCMeta): method __init__ (line 27) | def __init__(self, ap: app.Application): method initialize (line 30) | async def initialize(self, pipeline_config: dict): method process (line 35) | async def process( FILE: src/langbot/pkg/pipeline/wrapper/wrapper.py class ResponseWrapper (line 14) | class ResponseWrapper(stage.PipelineStage): method initialize (line 23) | async def initialize(self, pipeline_config: dict): method process (line 26) | async def process( FILE: src/langbot/pkg/platform/botmgr.py class RuntimeBot (line 23) | class RuntimeBot: method __init__ (line 40) | def __init__( method initialize (line 54) | async def initialize(self): method run (line 144) | async def run(self): method shutdown (line 170) | async def shutdown(self): class PlatformManager (line 177) | class PlatformManager: method __init__ (line 189) | def __init__(self, ap: app.Application = None): method initialize (line 195) | async def initialize(self): method get_running_adapters (line 231) | def get_running_adapters(self) -> list[abstract_platform_adapter.Abstr... method load_bots_from_db (line 234) | async def load_bots_from_db(self): method load_bot (line 252) | async def load_bot( method get_bot_by_uuid (line 284) | async def get_bot_by_uuid(self, bot_uuid: str) -> RuntimeBot | None: method remove_bot (line 292) | async def remove_bot(self, bot_uuid: str): method get_available_adapters_info (line 300) | def get_available_adapters_info(self) -> list[dict]: method get_available_adapter_info_by_name (line 305) | def get_available_adapter_info_by_name(self, name: str) -> dict | None: method get_available_adapter_manifest_by_name (line 311) | def get_available_adapter_manifest_by_name(self, name: str) -> engine.... method run (line 317) | async def run(self): method shutdown (line 325) | async def shutdown(self): FILE: src/langbot/pkg/platform/logger.py class EventLogLevel (line 16) | class EventLogLevel(enum.Enum): class EventLog (line 25) | class EventLog(pydantic.BaseModel): method to_json (line 44) | def to_json(self) -> dict: class EventLogger (line 59) | class EventLogger(abstract_platform_event_logger.AbstractEventLogger): method __init__ (line 68) | def __init__( method get_logs (line 78) | async def get_logs(self, from_seq_id: int, max_count: int) -> typing.T... method _truncate_logs (line 120) | async def _truncate_logs(self): method _add_log (line 127) | async def _add_log( method info (line 176) | async def info( method debug (line 191) | async def debug( method warning (line 206) | async def warning( method error (line 221) | async def error( FILE: src/langbot/pkg/platform/sources/aiocqhttp.py class AiocqhttpMessageConverter (line 18) | class AiocqhttpMessageConverter(abstract_platform_adapter.AbstractMessag... method yiri2target (line 20) | async def yiri2target( method target2yiri (line 79) | async def target2yiri(message: str, message_id: int = -1, bot: aiocqht... class AiocqhttpEventConverter (line 302) | class AiocqhttpEventConverter(abstract_platform_adapter.AbstractEventCon... method yiri2target (line 304) | async def yiri2target(event: platform_events.MessageEvent, bot_account... method target2yiri (line 308) | async def target2yiri(event: aiocqhttp.Event, bot=None): class AiocqhttpAdapter (line 349) | class AiocqhttpAdapter(abstract_platform_adapter.AbstractMessagePlatform... method __init__ (line 357) | def __init__(self, config: dict, logger: abstract_platform_logger.Abst... method send_message (line 377) | async def send_message(self, target_type: str, target_id: str, message... method _send_forward_message (line 397) | async def _send_forward_message(self, group_id: int, forward: platform... method reply_message (line 481) | async def reply_message( method is_muted (line 494) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 497) | def register_listener( method unregister_listener (line 530) | def unregister_listener( method run_async (line 539) | async def run_async(self): method kill (line 542) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/dingtalk.py class DingTalkMessageConverter (line 13) | class DingTalkMessageConverter(abstract_platform_adapter.AbstractMessage... method _format_image_as_markdown (line 15) | def _format_image_as_markdown(msg: platform_message.Image) -> str: method yiri2target (line 29) | async def yiri2target(message_chain: platform_message.MessageChain, ma... method target2yiri (line 53) | async def target2yiri(event: DingTalkEvent, bot_name: str): class DingTalkEventConverter (line 91) | class DingTalkEventConverter(abstract_platform_adapter.AbstractEventConv... method yiri2target (line 93) | async def yiri2target(event: platform_events.MessageEvent): method target2yiri (line 97) | async def target2yiri(event: DingTalkEvent, bot_name: str): class DingTalkAdapter (line 132) | class DingTalkAdapter(abstract_platform_adapter.AbstractMessagePlatformA... method __init__ (line 142) | def __init__(self, config: dict, logger: EventLogger): method reply_message (line 170) | async def reply_message( method reply_message_chunk (line 185) | async def reply_message_chunk( method send_message (line 216) | async def send_message(self, target_type: str, target_id: str, message... method is_stream_output_supported (line 224) | async def is_stream_output_supported(self) -> bool: method create_message_card (line 230) | async def create_message_card(self, message_id, event): method register_listener (line 241) | def register_listener( method run_async (line 262) | async def run_async(self): method kill (line 265) | async def kill(self) -> bool: method is_muted (line 269) | async def is_muted(self) -> bool: method unregister_listener (line 272) | async def unregister_listener( FILE: src/langbot/pkg/platform/sources/discord.py class VoiceConnectionError (line 29) | class VoiceConnectionError(Exception): method __init__ (line 32) | def __init__(self, message: str, error_code: str = None, guild_id: int... class VoicePermissionError (line 39) | class VoicePermissionError(VoiceConnectionError): method __init__ (line 42) | def __init__(self, message: str, missing_permissions: list = None, use... class VoiceNetworkError (line 49) | class VoiceNetworkError(VoiceConnectionError): method __init__ (line 52) | def __init__(self, message: str, retry_count: int = 0): class VoiceConnectionStatus (line 58) | class VoiceConnectionStatus(Enum): class VoiceConnectionInfo (line 69) | class VoiceConnectionInfo: method __init__ (line 81) | def __init__(self, guild_id: int, channel_id: int, channel_name: str =... method update_status (line 104) | def update_status(self, status: VoiceConnectionStatus): method to_dict (line 125) | def to_dict(self) -> dict: class VoiceConnectionManager (line 148) | class VoiceConnectionManager: method __init__ (line 160) | def __init__(self, bot: discord.Client, logger: EventLogger): method join_voice_channel (line 177) | async def join_voice_channel(self, guild_id: int, channel_id: int, use... method leave_voice_channel (line 250) | async def leave_voice_channel(self, guild_id: int) -> bool: method _disconnect_internal (line 268) | async def _disconnect_internal(self, guild_id: int) -> bool: method get_voice_client (line 311) | async def get_voice_client(self, guild_id: int) -> typing.Optional[dis... method is_connected_to_voice (line 339) | async def is_connected_to_voice(self, guild_id: int) -> bool: method get_connection_status (line 364) | async def get_connection_status(self, guild_id: int) -> typing.Optiona... method list_active_connections (line 395) | async def list_active_connections(self) -> typing.List[dict]: method get_voice_channel_info (line 414) | async def get_voice_channel_info(self, guild_id: int, channel_id: int)... method _validate_user_in_channel (line 463) | async def _validate_user_in_channel(self, guild: discord.Guild, channe... method _validate_bot_permissions (line 489) | async def _validate_bot_permissions(self, channel: discord.VoiceChannel): method cleanup_inactive_connections (line 518) | async def cleanup_inactive_connections(self): method start_monitoring (line 538) | async def start_monitoring(self): method stop_monitoring (line 547) | async def stop_monitoring(self): method _monitoring_loop (line 562) | async def _monitoring_loop(self): method disconnect_all (line 575) | async def disconnect_all(self): class DiscordMessageConverter (line 589) | class DiscordMessageConverter(abstract_platform_adapter.AbstractMessageC... method yiri2target (line 591) | async def yiri2target( method target2yiri (line 737) | async def target2yiri(message: discord.Message) -> platform_message.Me... class DiscordEventConverter (line 788) | class DiscordEventConverter(abstract_platform_adapter.AbstractEventConve... method yiri2target (line 790) | async def yiri2target(event: platform_events.Event) -> discord.Message: method target2yiri (line 794) | async def target2yiri(event: discord.Message) -> platform_events.Event: class DiscordAdapter (line 827) | class DiscordAdapter(abstract_platform_adapter.AbstractMessagePlatformAd... method __init__ (line 840) | def __init__(self, config: dict, logger: abstract_platform_logger.Abst... method join_voice_channel (line 879) | async def join_voice_channel(self, guild_id: int, channel_id: int, use... method leave_voice_channel (line 907) | async def leave_voice_channel(self, guild_id: int) -> bool: method get_voice_client (line 928) | async def get_voice_client(self, guild_id: int) -> typing.Optional[dis... method is_connected_to_voice (line 949) | async def is_connected_to_voice(self, guild_id: int) -> bool: method get_voice_connection_status (line 968) | async def get_voice_connection_status(self, guild_id: int) -> typing.O... method list_active_voice_connections (line 989) | async def list_active_voice_connections(self) -> typing.List[dict]: method get_voice_channel_info (line 1005) | async def get_voice_channel_info(self, guild_id: int, channel_id: int)... method cleanup_voice_connections (line 1027) | async def cleanup_voice_connections(self): method send_message (line 1040) | async def send_message(self, target_type: str, target_id: str, message... method reply_message (line 1063) | async def reply_message( method is_muted (line 1095) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 1098) | def register_listener( method unregister_listener (line 1107) | def unregister_listener( method run_async (line 1116) | async def run_async(self): method kill (line 1132) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/kook.py class KookMessageConverter (line 24) | class KookMessageConverter(abstract_platform_adapter.AbstractMessageConv... method yiri2target (line 28) | async def yiri2target(message_chain: platform_message.MessageChain) ->... method target2yiri (line 67) | async def target2yiri(kook_message: dict, bot_account_id: str = '') ->... class KookEventConverter (line 162) | class KookEventConverter(abstract_platform_adapter.AbstractEventConverter): method yiri2target (line 166) | async def yiri2target(event: platform_events.MessageEvent): method target2yiri (line 171) | async def target2yiri(kook_event: dict, bot_account_id: str = '') -> p... class KookAdapter (line 247) | class KookAdapter(abstract_platform_adapter.AbstractMessagePlatformAdapt... method __init__ (line 272) | def __init__(self, config: dict, logger: abstract_platform_logger.Abst... method _get_gateway_url (line 289) | async def _get_gateway_url(self) -> str: method _get_bot_user_info (line 312) | async def _get_bot_user_info(self) -> dict: method _handle_hello (line 332) | async def _handle_hello(self, data: dict): method _handle_event (line 338) | async def _handle_event(self, data: dict, sn: int): method _handle_pong (line 364) | async def _handle_pong(self, data: dict): method _heartbeat_loop (line 369) | async def _heartbeat_loop(self): method _websocket_loop (line 390) | async def _websocket_loop(self): method send_message (line 486) | async def send_message(self, target_type: str, target_id: str, message... method reply_message (line 529) | async def reply_message( method is_muted (line 595) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 599) | def register_listener( method unregister_listener (line 609) | def unregister_listener( method run_async (line 619) | async def run_async(self): method kill (line 651) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/lark.py class AESCipher (line 36) | class AESCipher(object): method __init__ (line 37) | def __init__(self, key): method str_to_bytes (line 42) | def str_to_bytes(data): method _unpad (line 49) | def _unpad(s): method decrypt (line 52) | def decrypt(self, enc): method decrypt_string (line 57) | def decrypt_string(self, enc): class LarkMessageConverter (line 62) | class LarkMessageConverter(abstract_platform_adapter.AbstractMessageConv... method upload_image_to_lark (line 64) | async def upload_image_to_lark(msg: platform_message.Image, api_client... method upload_file_to_lark (line 145) | async def upload_file_to_lark( method _get_media_bytes (line 195) | async def _get_media_bytes( method yiri2target (line 227) | async def yiri2target( method target2yiri (line 354) | async def target2yiri( class LarkEventConverter (line 577) | class LarkEventConverter(abstract_platform_adapter.AbstractEventConverter): method _prune_processed_thread_quote_cache (line 583) | def _prune_processed_thread_quote_cache(cls, now: typing.Optional[floa... method _mark_thread_quote_processed (line 599) | def _mark_thread_quote_processed(cls, thread_id: str) -> None: method _extract_quote_message_id (line 605) | def _extract_quote_message_id(cls, message: EventMessage) -> typing.Op... method _build_event_message_from_message_item (line 634) | def _build_event_message_from_message_item(message_item: Message) -> t... method _fetch_quoted_message (line 669) | async def _fetch_quoted_message( method yiri2target (line 700) | async def yiri2target( method target2yiri (line 706) | async def target2yiri( class LarkAdapter (line 762) | class LarkAdapter(abstract_platform_adapter.AbstractMessagePlatformAdapt... method __init__ (line 789) | def __init__(self, config: dict, logger: abstract_platform_logger.Abst... method request_app_ticket (line 826) | def request_app_ticket(self, api_client, config): method request_app_access_token (line 842) | def request_app_access_token(self): method get_app_access_token (line 866) | def get_app_access_token(self): method request_tenant_access_token (line 877) | def request_tenant_access_token(self, tenant_key: str): method get_tenant_access_token (line 903) | def get_tenant_access_token(self, tenant_key: str): method get_launcher_id (line 911) | def get_launcher_id(self, event: platform_events.MessageEvent) -> str ... method build_api_client (line 937) | def build_api_client(self, config): method send_message (line 947) | async def send_message(self, target_type: str, target_id: str, message... method is_stream_output_supported (line 950) | async def is_stream_output_supported(self) -> bool: method create_card_id (line 956) | async def create_card_id(self, message_id): method create_message_card (line 1154) | async def create_message_card(self, message_id, event) -> str: method reply_message (line 1195) | async def reply_message( method reply_message_chunk (line 1304) | async def reply_message_chunk( method is_muted (line 1402) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 1405) | def register_listener( method unregister_listener (line 1414) | def unregister_listener( method set_bot_uuid (line 1423) | def set_bot_uuid(self, bot_uuid: str): method get_event_type (line 1427) | def get_event_type(self, data): method handle_unified_webhook (line 1438) | async def handle_unified_webhook(self, bot_uuid: str, path: str, reque... method run_async (line 1526) | async def run_async(self): method kill (line 1550) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/legacy/gewechat.py class GewechatMessageConverter (line 26) | class GewechatMessageConverter(abstract_platform_adapter.AbstractMessage... method __init__ (line 27) | def __init__(self, config: dict): method yiri2target (line 31) | async def yiri2target(message_chain: platform_message.MessageChain) ->... method target2yiri (line 107) | async def target2yiri(self, message: dict, bot_account_id: str) -> pla... method _handler_text (line 145) | async def _handler_text(self, message: Optional[dict], content_no_prei... method _handler_image (line 153) | async def _handler_image(self, message: Optional[dict], content_no_pre... method _handler_voice (line 178) | async def _handler_voice(self, message: Optional[dict], content_no_pre... method _handler_compound (line 203) | async def _handler_compound(self, message: Optional[dict], content_no_... method _handler_compound_quote (line 234) | async def _handler_compound_quote( method _handler_compound_file (line 293) | async def _handler_compound_file(self, message: dict, xml_data: ET.Ele... method _handler_compound_link (line 298) | async def _handler_compound_link(self, message: dict, xml_data: ET.Ele... method _handler_compound_mini_program (line 322) | async def _handler_compound_mini_program( method _handler_default (line 329) | async def _handler_default(self, message: Optional[dict], content_no_p... method _handler_compound_unsupported (line 337) | def _handler_compound_unsupported( method _ats_bot (line 349) | def _ats_bot(self, message: dict, bot_account_id: str) -> bool: method _extract_content_and_sender (line 380) | def _extract_content_and_sender(self, raw_content: str) -> Tuple[str, ... method _is_group_message (line 396) | def _is_group_message(self, message: dict) -> bool: class GewechatEventConverter (line 401) | class GewechatEventConverter(abstract_platform_adapter.AbstractEventConv... method __init__ (line 402) | def __init__(self, config: dict): method yiri2target (line 407) | async def yiri2target(event: platform_events.MessageEvent) -> dict: method target2yiri (line 410) | async def target2yiri(self, event: dict, bot_account_id: str) -> platf... class GeWeChatAdapter (line 458) | class GeWeChatAdapter(abstract_platform_adapter.AbstractMessagePlatformA... method __init__ (line 478) | def __init__(self, config: dict, ap: app.Application, logger: EventLog... method _handle_message (line 512) | async def _handle_message(self, message: platform_message.MessageChain... method send_message (line 604) | async def send_message(self, target_type: str, target_id: str, message... method reply_message (line 608) | async def reply_message( method is_muted (line 619) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 622) | def register_listener( method unregister_listener (line 631) | def unregister_listener( method run_async (line 640) | async def run_async(self): method kill (line 687) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/legacy/nakuru.py class NakuruProjectMessageConverter (line 20) | class NakuruProjectMessageConverter(abstract_platform_adapter.AbstractMe... method yiri2target (line 24) | def yiri2target(message_chain: platform_message.MessageChain) -> list: method target2yiri (line 87) | def target2yiri(message_chain: typing.Any, message_id: int = -1) -> pl... class NakuruProjectEventConverter (line 112) | class NakuruProjectEventConverter(abstract_platform_adapter.AbstractEven... method yiri2target (line 116) | def yiri2target(event: typing.Type[platform_events.Event]): method target2yiri (line 125) | def target2yiri(event: typing.Any) -> platform_events.Event: class NakuruAdapter (line 164) | class NakuruAdapter(abstract_platform_adapter.AbstractMessagePlatformAda... method __init__ (line 179) | def __init__(self, cfg: dict, ap, logger: EventLogger): method send_message (line 189) | async def send_message( method reply_message (line 224) | async def reply_message( method is_muted (line 246) | def is_muted(self, group_id: int) -> bool: method register_listener (line 253) | def register_listener( method unregister_listener (line 282) | def unregister_listener( method run_async (line 310) | async def run_async(self): method kill (line 329) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/legacy/qqbotpy.py class OfficialGroupMessage (line 23) | class OfficialGroupMessage(platform_events.GroupMessage): class OfficialFriendMessage (line 27) | class OfficialFriendMessage(platform_events.FriendMessage): function save_msg_id (line 49) | def save_msg_id(message_id: str) -> int: function char_to_value (line 59) | def char_to_value(char): function digest (line 69) | def digest(s: str) -> int: class OpenIDMapping (line 87) | class OpenIDMapping(typing.Generic[K, V]): method __init__ (line 94) | def __init__( method __getitem__ (line 106) | def __getitem__(self, key: K) -> V: method __setitem__ (line 109) | def __setitem__(self, key: K, value: V): method __contains__ (line 113) | def __contains__(self, key: K) -> bool: method __delitem__ (line 116) | def __delitem__(self, key: K): method getkey (line 120) | def getkey(self, value: V) -> K: method save_openid (line 123) | def save_openid(self, key: K) -> V: class OfficialMessageConverter (line 136) | class OfficialMessageConverter(abstract_platform_adapter.AbstractMessage... method yiri2target (line 140) | def yiri2target(message_chain: platform_message.MessageChain): method extract_message_chain_from_obj (line 200) | def extract_message_chain_from_obj( class OfficialEventConverter (line 240) | class OfficialEventConverter(abstract_platform_adapter.AbstractEventConv... method __init__ (line 243) | def __init__(self): method yiri2target (line 246) | def yiri2target(self, event: typing.Type[platform_events.Event]): method target2yiri (line 254) | def target2yiri( class OfficialAdapter (line 328) | class OfficialAdapter(abstract_platform_adapter.AbstractMessagePlatformA... method __init__ (line 353) | def __init__(self, cfg: dict, ap: app.Application, logger: EventLogger): method send_message (line 373) | async def send_message(self, target_type: str, target_id: str, message... method reply_message (line 397) | async def reply_message( method is_muted (line 473) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 476) | def register_listener( method unregister_listener (line 501) | def unregister_listener( method run_async (line 510) | async def run_async(self): method kill (line 521) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/line.py class LINEMessageConverter (line 34) | class LINEMessageConverter(abstract_platform_adapter.AbstractMessageConv... method yiri2target (line 36) | async def yiri2target(message_chain: platform_message.MessageChain, ap... method target2yiri (line 53) | async def target2yiri(message, bot_client) -> platform_message.Message... class LINEEventConverter (line 77) | class LINEEventConverter(abstract_platform_adapter.AbstractEventConverter): method yiri2target (line 79) | async def yiri2target( method target2yiri (line 85) | async def target2yiri(event, bot_client) -> platform_events.Event: class LINEAdapter (line 118) | class LINEAdapter(abstract_platform_adapter.AbstractMessagePlatformAdapt... method __init__ (line 139) | def __init__(self, config: dict, logger: EventLogger): method send_message (line 163) | async def send_message(self, target_type: str, target_id: str, message... method reply_message (line 166) | async def reply_message( method is_muted (line 192) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 195) | def register_listener( method unregister_listener (line 204) | def unregister_listener( method set_bot_uuid (line 213) | def set_bot_uuid(self, bot_uuid: str): method handle_unified_webhook (line 217) | async def handle_unified_webhook(self, bot_uuid: str, path: str, reque... method run_async (line 257) | async def run_async(self): method kill (line 268) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/officialaccount.py class OAMessageConverter (line 17) | class OAMessageConverter(abstract_platform_adapter.AbstractMessageConver... method yiri2target (line 19) | async def yiri2target(message_chain: platform_message.MessageChain): method target2yiri (line 25) | async def target2yiri(message: str, message_id=-1): class OAEventConverter (line 35) | class OAEventConverter(abstract_platform_adapter.AbstractEventConverter): method target2yiri (line 37) | async def target2yiri(event: OAEvent): class OfficialAccountAdapter (line 57) | class OfficialAccountAdapter(abstract_platform_adapter.AbstractMessagePl... method __init__ (line 63) | def __init__(self, config: dict, logger: EventLogger): method reply_message (line 104) | async def reply_message( method send_message (line 117) | async def send_message(self, target_type: str, target_id: str, message... method register_listener (line 120) | def register_listener( method set_bot_uuid (line 139) | def set_bot_uuid(self, bot_uuid: str): method handle_unified_webhook (line 143) | async def handle_unified_webhook(self, bot_uuid: str, path: str, reque... method run_async (line 156) | async def run_async(self): method kill (line 166) | async def kill(self) -> bool: method unregister_listener (line 169) | async def unregister_listener( method is_muted (line 178) | async def is_muted( FILE: src/langbot/pkg/platform/sources/qqofficial.py class QQOfficialMessageConverter (line 18) | class QQOfficialMessageConverter(abstract_platform_adapter.AbstractMessa... method yiri2target (line 20) | async def yiri2target(message_chain: platform_message.MessageChain): method target2yiri (line 35) | async def target2yiri(message: str, message_id: str, pic_url: str, con... class QQOfficialEventConverter (line 47) | class QQOfficialEventConverter(abstract_platform_adapter.AbstractEventCo... method yiri2target (line 49) | async def yiri2target(event: platform_events.MessageEvent) -> QQOffici... method target2yiri (line 53) | async def target2yiri(event: QQOfficialEvent): class QQOfficialAdapter (line 127) | class QQOfficialAdapter(abstract_platform_adapter.AbstractMessagePlatfor... method __init__ (line 135) | def __init__(self, config: dict, logger: EventLogger): method reply_message (line 147) | async def reply_message( method send_message (line 199) | async def send_message(self, target_type: str, target_id: str, message... method register_listener (line 202) | def register_listener( method set_bot_uuid (line 223) | def set_bot_uuid(self, bot_uuid: str): method handle_unified_webhook (line 227) | async def handle_unified_webhook(self, bot_uuid: str, path: str, reque... method run_async (line 240) | async def run_async(self): method kill (line 250) | async def kill(self) -> bool: method unregister_listener (line 253) | def unregister_listener( FILE: src/langbot/pkg/platform/sources/satori.py class SatoriMessageConverter (line 23) | class SatoriMessageConverter(abstract_platform_adapter.AbstractMessageCo... method yiri2target (line 27) | async def yiri2target(message_chain: platform_message.MessageChain, ad... method target2yiri (line 104) | async def target2yiri( class SatoriEventConverter (line 226) | class SatoriEventConverter(abstract_platform_adapter.AbstractEventConver... method _ensure_string (line 230) | def _ensure_string(value: typing.Any, default: str = '') -> str: method target2yiri (line 239) | async def target2yiri( class SatoriAdapter (line 386) | class SatoriAdapter(abstract_platform_adapter.AbstractMessagePlatformAda... method __init__ (line 411) | def __init__( method _is_websocket_closed (line 435) | def _is_websocket_closed(self, ws) -> bool: method run (line 448) | async def run(self): method connect_websocket (line 486) | async def connect_websocket(self): method send_identify (line 535) | async def send_identify(self): method heartbeat_loop (line 561) | async def heartbeat_loop(self): method handle_message (line 584) | async def handle_message(self, message: str): method handle_event (line 625) | async def handle_event(self, event_data: dict): method convert_satori_message (line 650) | async def convert_satori_message( method send_http_request (line 807) | async def send_http_request( method upload_image (line 843) | async def upload_image( method kill (line 909) | async def kill(self) -> bool: method send_message (line 924) | async def send_message( method reply_message (line 987) | async def reply_message( method is_muted (line 1055) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 1059) | def register_listener( method unregister_listener (line 1073) | def unregister_listener( method run_async (line 1088) | async def run_async(self): FILE: src/langbot/pkg/platform/sources/slack.py class SlackMessageConverter (line 19) | class SlackMessageConverter(abstract_platform_adapter.AbstractMessageCon... method yiri2target (line 21) | async def yiri2target(message_chain: platform_message.MessageChain): method target2yiri (line 45) | async def target2yiri(message: str, message_id: str, pic_url: str, bot... class SlackEventConverter (line 57) | class SlackEventConverter(abstract_platform_adapter.AbstractEventConvert... method yiri2target (line 59) | async def yiri2target(event: platform_events.MessageEvent) -> SlackEvent: method target2yiri (line 63) | async def target2yiri(event: SlackEvent, bot: SlackClient): class SlackAdapter (line 94) | class SlackAdapter(abstract_platform_adapter.AbstractMessagePlatformAdap... method __init__ (line 102) | def __init__(self, config: dict, logger: EventLogger): method reply_message (line 122) | async def reply_message( method send_message (line 141) | async def send_message(self, target_type: str, target_id: str, message... method register_listener (line 152) | def register_listener( method set_bot_uuid (line 171) | def set_bot_uuid(self, bot_uuid: str): method handle_unified_webhook (line 175) | async def handle_unified_webhook(self, bot_uuid: str, path: str, reque... method run_async (line 188) | async def run_async(self): method kill (line 197) | async def kill(self) -> bool: method unregister_listener (line 200) | async def unregister_listener( FILE: src/langbot/pkg/platform/sources/telegram.py class TelegramMessageConverter (line 23) | class TelegramMessageConverter(abstract_platform_adapter.AbstractMessage... method yiri2target (line 25) | async def yiri2target(message_chain: platform_message.MessageChain, bo... method target2yiri (line 52) | async def target2yiri(message: telegram.Message, bot: telegram.Bot, bo... class TelegramEventConverter (line 110) | class TelegramEventConverter(abstract_platform_adapter.AbstractEventConv... method yiri2target (line 112) | async def yiri2target(event: platform_events.MessageEvent, bot: telegr... method target2yiri (line 116) | async def target2yiri(event: Update, bot: telegram.Bot, bot_account_id... class TelegramAdapter (line 149) | class TelegramAdapter(abstract_platform_adapter.AbstractMessagePlatformA... method __init__ (line 167) | def __init__(self, config: dict, logger: abstract_platform_logger.Abst... method send_message (line 195) | async def send_message(self, target_type: str, target_id: str, message... method reply_message (line 222) | async def reply_message( method _process_markdown (line 254) | def _process_markdown(self, text: str) -> str: method _build_message_args (line 259) | def _build_message_args(self, chat_id: int, text: str, message_thread_... method create_message_card (line 267) | async def create_message_card(self, message_id, event): method reply_message_chunk (line 287) | async def reply_message_chunk( method get_launcher_id (line 337) | def get_launcher_id(self, event: platform_events.MessageEvent) -> str ... method is_stream_output_supported (line 355) | async def is_stream_output_supported(self) -> bool: method is_muted (line 361) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 364) | def register_listener( method unregister_listener (line 373) | def unregister_listener( method run_async (line 382) | async def run_async(self): method kill (line 389) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/websocket_adapter.py class WebSocketMessage (line 21) | class WebSocketMessage(pydantic.BaseModel): class WebSocketSession (line 34) | class WebSocketSession: method __init__ (line 43) | def __init__(self, id: str): method get_message_list (line 48) | def get_message_list(self, pipeline_uuid: str) -> list[WebSocketMessage]: method get_stream_message_indexes (line 53) | def get_stream_message_indexes(self, pipeline_uuid: str) -> dict[str, ... class WebSocketAdapter (line 59) | class WebSocketAdapter(abstract_platform_adapter.AbstractMessagePlatform... method __init__ (line 80) | def __init__(self, config: dict, logger: abstract_platform_logger.Abst... method send_message (line 94) | async def send_message( method reply_message (line 141) | async def reply_message( method reply_message_chunk (line 187) | async def reply_message_chunk( method is_stream_output_supported (line 263) | async def is_stream_output_supported(self) -> bool: method register_listener (line 267) | def register_listener( method unregister_listener (line 277) | def unregister_listener( method is_muted (line 287) | async def is_muted(self, group_id: int) -> bool: method run_async (line 290) | async def run_async(self): method kill (line 309) | async def kill(self): method _process_image_components (line 313) | async def _process_image_components(self, message_chain_obj: list): method handle_websocket_message (line 353) | async def handle_websocket_message( method get_websocket_messages (line 445) | def get_websocket_messages(self, pipeline_uuid: str, session_type: str... method reset_session (line 452) | def reset_session(self, pipeline_uuid: str, session_type: str): FILE: src/langbot/pkg/platform/sources/websocket_manager.py class WebSocketConnection (line 14) | class WebSocketConnection(pydantic.BaseModel): class WebSocketConnectionManager (line 47) | class WebSocketConnectionManager: method __init__ (line 50) | def __init__(self): method add_connection (line 63) | async def add_connection( method remove_connection (line 98) | async def remove_connection(self, connection_id: str): method get_connection (line 123) | async def get_connection(self, connection_id: str) -> typing.Optional[... method get_connections_by_pipeline (line 127) | async def get_connections_by_pipeline(self, pipeline_uuid: str) -> lis... method get_connections_by_session_type (line 132) | async def get_connections_by_session_type(self, session_type: str) -> ... method broadcast_to_pipeline (line 137) | async def broadcast_to_pipeline(self, pipeline_uuid: str, message: dic... method send_to_connection (line 157) | async def send_to_connection(self, connection_id: str, message: dict): method update_activity (line 171) | async def update_activity(self, connection_id: str): method get_stats (line 177) | def get_stats(self) -> dict: FILE: src/langbot/pkg/platform/sources/wechatpad.py class WeChatPadMessageConverter (line 31) | class WeChatPadMessageConverter(abstract_platform_adapter.AbstractMessag... method __init__ (line 32) | def __init__(self, config: dict, logger: abstract_platform_logger.Abst... method yiri2target (line 44) | async def yiri2target(message_chain: platform_message.MessageChain) ->... method target2yiri (line 84) | async def target2yiri( method _handler_text (line 136) | async def _handler_text(self, message: Optional[dict], content_no_prei... method _handler_image (line 144) | async def _handler_image(self, message: Optional[dict], content_no_pre... method _handler_voice (line 174) | async def _handler_voice(self, message: Optional[dict], content_no_pre... method _handler_compound (line 210) | async def _handler_compound(self, message: Optional[dict], content_no_... method _handler_compound_quote (line 241) | async def _handler_compound_quote( method _handler_compound_file (line 297) | async def _handler_compound_file(self, message: dict, xml_data: ET.Ele... method _handler_compound_link (line 338) | async def _handler_compound_link(self, message: dict, xml_data: ET.Ele... method _handler_compound_mini_program (line 360) | async def _handler_compound_mini_program( method _handler_default (line 367) | async def _handler_default(self, message: Optional[dict], content_no_p... method _handler_compound_unsupported (line 375) | def _handler_compound_unsupported( method _ats_bot (line 387) | def _ats_bot(self, message: dict, bot_account_id: str) -> bool: method _extract_at_targets (line 418) | def _extract_at_targets(self, message: dict) -> list[str]: method _extract_content_and_sender (line 435) | def _extract_content_and_sender(self, raw_content: str) -> Tuple[str, ... method _is_group_message (line 451) | def _is_group_message(self, message: dict) -> bool: class WeChatPadEventConverter (line 456) | class WeChatPadEventConverter(abstract_platform_adapter.AbstractEventCon... method __init__ (line 457) | def __init__(self, config: dict, logger: logging.Logger): method yiri2target (line 468) | async def yiri2target(event: platform_events.MessageEvent) -> dict: method target2yiri (line 471) | async def target2yiri( class WeChatPadAdapter (line 522) | class WeChatPadAdapter(abstract_platform_adapter.AbstractMessagePlatform... method __init__ (line 542) | def __init__(self, config: dict, logger: EventLogger): method ws_message (line 560) | async def ws_message(self, data): method _handle_message (line 573) | async def _handle_message(self, message: platform_message.MessageChain... method send_message (line 631) | async def send_message(self, target_type: str, target_id: str, message... method reply_message (line 635) | async def reply_message( method is_muted (line 646) | async def is_muted(self, group_id: int) -> bool: method register_listener (line 649) | def register_listener( method unregister_listener (line 658) | def unregister_listener( method run_async (line 667) | async def run_async(self): method kill (line 749) | async def kill(self) -> bool: FILE: src/langbot/pkg/platform/sources/wecom.py function split_string_by_bytes (line 18) | def split_string_by_bytes(text, limit=2048, encoding='utf-8'): class WecomMessageConverter (line 70) | class WecomMessageConverter(abstract_platform_adapter.AbstractMessageCon... method yiri2target (line 72) | async def yiri2target(message_chain: platform_message.MessageChain, bo... method target2yiri (line 122) | async def target2yiri(message: str, message_id: int = -1): method target2yiri_image (line 132) | async def target2yiri_image(picurl: str, message_id: int = -1): class WecomEventConverter (line 142) | class WecomEventConverter(abstract_platform_adapter.AbstractEventConvert... method yiri2target (line 144) | async def yiri2target(event: platform_events.Event, bot_account_id: in... method target2yiri (line 166) | async def target2yiri(event: WecomEvent): class WecomAdapter (line 198) | class WecomAdapter(abstract_platform_adapter.AbstractMessagePlatformAdap... method __init__ (line 206) | def __init__(self, config: dict, logger: EventLogger): method set_bot_uuid (line 239) | def set_bot_uuid(self, bot_uuid: str): method reply_message (line 243) | async def reply_message( method send_message (line 264) | async def send_message(self, target_type: str, target_id: str, message... method register_listener (line 280) | def register_listener( method handle_unified_webhook (line 300) | async def handle_unified_webhook(self, bot_uuid: str, path: str, reque... method run_async (line 313) | async def run_async(self): method kill (line 320) | async def kill(self) -> bool: method unregister_listener (line 323) | async def unregister_listener( method is_muted (line 332) | async def is_muted(self, group_id: int) -> bool: FILE: src/langbot/pkg/platform/sources/wecombot.py class WecomBotMessageConverter (line 17) | class WecomBotMessageConverter(abstract_platform_adapter.AbstractMessage... method yiri2target (line 19) | async def yiri2target(message_chain: platform_message.MessageChain): method target2yiri (line 27) | async def target2yiri(event: WecomBotEvent): class WecomBotEventConverter (line 136) | class WecomBotEventConverter(abstract_platform_adapter.AbstractEventConv... method yiri2target (line 138) | async def yiri2target(event: platform_events.MessageEvent): method target2yiri (line 142) | async def target2yiri(event: WecomBotEvent): class WecomBotAdapter (line 179) | class WecomBotAdapter(abstract_platform_adapter.AbstractMessagePlatformA... method __init__ (line 188) | def __init__(self, config: dict, logger: EventLogger): method reply_message (line 225) | async def reply_message( method reply_message_chunk (line 242) | async def reply_message_chunk( method is_stream_output_supported (line 267) | async def is_stream_output_supported(self) -> bool: method send_message (line 277) | async def send_message(self, target_type, target_id, message): method register_listener (line 284) | def register_listener( method set_bot_uuid (line 306) | def set_bot_uuid(self, bot_uuid: str): method handle_unified_webhook (line 310) | async def handle_unified_webhook(self, bot_uuid: str, path: str, reque... method run_async (line 315) | async def run_async(self): method kill (line 326) | async def kill(self) -> bool: method unregister_listener (line 332) | async def unregister_listener( method is_muted (line 341) | async def is_muted(self, group_id: int) -> bool: FILE: src/langbot/pkg/platform/sources/wecomcs.py class WecomMessageConverter (line 19) | class WecomMessageConverter(abstract_platform_adapter.AbstractMessageCon... method yiri2target (line 21) | async def yiri2target(message_chain: platform_message.MessageChain, bo... method target2yiri (line 53) | async def target2yiri(message: str, message_id: int = -1): method target2yiri_image (line 63) | async def target2yiri_image(picurl: str, message_id: int = -1): class WecomEventConverter (line 72) | class WecomEventConverter(abstract_platform_adapter.AbstractEventConvert... method yiri2target (line 74) | async def yiri2target(event: platform_events.Event, bot_account_id: in... method target2yiri (line 84) | async def target2yiri(event: WecomCSEvent, bot: WecomCSClient = None): class WecomCSAdapter (line 131) | class WecomCSAdapter(abstract_platform_adapter.AbstractMessagePlatformAd... method __init__ (line 137) | def __init__(self, config: dict, logger: abstract_platform_logger.Abst... method reply_message (line 166) | async def reply_message( method send_message (line 184) | async def send_message(self, target_type: str, target_id: str, message... method set_bot_uuid (line 187) | def set_bot_uuid(self, bot_uuid: str): method register_listener (line 191) | def register_listener( method handle_unified_webhook (line 211) | async def handle_unified_webhook(self, bot_uuid: str, path: str, reque... method run_async (line 224) | async def run_async(self): method kill (line 234) | async def kill(self) -> bool: method is_muted (line 237) | async def is_muted(self, group_id: int) -> bool: method unregister_listener (line 240) | async def unregister_listener( FILE: src/langbot/pkg/platform/webhook_pusher.py class WebhookPusher (line 17) | class WebhookPusher: method __init__ (line 23) | def __init__(self, ap: app.Application): method push_person_message (line 27) | async def push_person_message(self, event: platform_events.FriendMessa... method push_group_message (line 70) | async def push_group_message(self, event: platform_events.GroupMessage... method _push_to_webhook (line 117) | async def _push_to_webhook(self, url: str, payload: dict) -> dict | None: FILE: src/langbot/pkg/plugin/connector.py class PluginRuntimeConnector (line 34) | class PluginRuntimeConnector: method __init__ (line 60) | def __init__( method heartbeat_loop (line 71) | async def heartbeat_loop(self): method initialize (line 80) | async def initialize(self): method initialize_plugins (line 186) | async def initialize_plugins(self): method ping_plugin_runtime (line 189) | async def ping_plugin_runtime(self): method install_plugin (line 195) | async def install_plugin( method upgrade_plugin (line 239) | async def upgrade_plugin( method delete_plugin (line 256) | async def delete_plugin( method list_plugins (line 280) | async def list_plugins(self, component_kinds: list[str] | None = None)... method get_plugin_info (line 363) | async def get_plugin_info(self, author: str, plugin_name: str) -> dict... method set_plugin_config (line 366) | async def set_plugin_config(self, plugin_author: str, plugin_name: str... method get_plugin_icon (line 370) | async def get_plugin_icon(self, plugin_author: str, plugin_name: str) ... method get_plugin_readme (line 374) | async def get_plugin_readme(self, plugin_author: str, plugin_name: str... method get_plugin_assets (line 378) | async def get_plugin_assets(self, plugin_author: str, plugin_name: str... method get_debug_info (line 381) | async def get_debug_info(self) -> dict[str, Any]: method emit_event (line 387) | async def emit_event( method list_tools (line 406) | async def list_tools(self, bound_plugins: list[str] | None = None) -> ... method call_tool (line 417) | async def call_tool( method list_commands (line 433) | async def list_commands(self, bound_plugins: list[str] | None = None) ... method execute_command (line 444) | async def execute_command( method retrieve_knowledge (line 459) | async def retrieve_knowledge( method dispose (line 472) | def dispose(self): method _parse_plugin_id (line 485) | def _parse_plugin_id(plugin_id: str) -> tuple[str, str]: method call_rag_ingest (line 503) | async def call_rag_ingest(self, plugin_id: str, context_data: dict[str... method call_rag_delete_document (line 513) | async def call_rag_delete_document(self, plugin_id: str, document_id: ... method get_rag_creation_schema (line 517) | async def get_rag_creation_schema(self, plugin_id: str) -> dict[str, A... method get_rag_retrieval_schema (line 521) | async def get_rag_retrieval_schema(self, plugin_id: str) -> dict[str, ... method rag_on_kb_create (line 525) | async def rag_on_kb_create(self, plugin_id: str, kb_id: str, config: d... method rag_on_kb_delete (line 530) | async def rag_on_kb_delete(self, plugin_id: str, kb_id: str) -> dict[s... method call_rag_retrieve (line 535) | async def call_rag_retrieve(self, plugin_id: str, retrieval_context: d... method list_knowledge_engines (line 545) | async def list_knowledge_engines(self) -> list[dict[str, Any]]: method list_parsers (line 555) | async def list_parsers(self) -> list[dict[str, Any]]: method call_parser (line 561) | async def call_parser(self, plugin_id: str, context_data: dict[str, An... FILE: src/langbot/pkg/plugin/handler.py function _make_rag_error_response (line 29) | def _make_rag_error_response(error: Exception, error_type: str, **extra_... class RuntimeConnectionHandler (line 43) | class RuntimeConnectionHandler(handler.Handler): method __init__ (line 48) | def __init__( method ping (line 715) | async def ping(self) -> dict[str, Any]: method install_plugin (line 723) | async def install_plugin( method upgrade_plugin (line 739) | async def upgrade_plugin(self, plugin_author: str, plugin_name: str) -... method delete_plugin (line 753) | async def delete_plugin(self, plugin_author: str, plugin_name: str) ->... method list_plugins (line 766) | async def list_plugins(self) -> list[dict[str, Any]]: method get_plugin_info (line 776) | async def get_plugin_info(self, author: str, plugin_name: str) -> dict... method set_plugin_config (line 788) | async def set_plugin_config(self, plugin_author: str, plugin_name: str... method emit_event (line 811) | async def emit_event( method list_tools (line 828) | async def list_tools(self, include_plugins: list[str] | None = None) -... method get_plugin_icon (line 840) | async def get_plugin_icon(self, plugin_author: str, plugin_name: str) ... method get_plugin_readme (line 862) | async def get_plugin_readme(self, plugin_author: str, plugin_name: str... method get_plugin_assets (line 887) | async def get_plugin_assets(self, plugin_author: str, plugin_name: str... method cleanup_plugin_data (line 907) | async def cleanup_plugin_data(self, plugin_author: str, plugin_name: s... method call_tool (line 924) | async def call_tool( method list_commands (line 947) | async def list_commands(self, include_plugins: list[str] | None = None... method execute_command (line 958) | async def execute_command( method retrieve_knowledge (line 974) | async def retrieve_knowledge( method get_debug_info (line 994) | async def get_debug_info(self) -> dict[str, Any]: method rag_ingest_document (line 1005) | async def rag_ingest_document( method rag_delete_document (line 1016) | async def rag_delete_document(self, plugin_author: str, plugin_name: s... method rag_on_kb_create (line 1024) | async def rag_on_kb_create( method rag_on_kb_delete (line 1035) | async def rag_on_kb_delete(self, plugin_author: str, plugin_name: str,... method get_rag_creation_schema (line 1044) | async def get_rag_creation_schema(self, plugin_author: str, plugin_nam... method get_rag_retrieval_schema (line 1051) | async def get_rag_retrieval_schema(self, plugin_author: str, plugin_na... method list_knowledge_engines (line 1058) | async def list_knowledge_engines(self) -> list[dict[str, Any]]: method list_parsers (line 1065) | async def list_parsers(self) -> list[dict[str, Any]]: method parse_document (line 1070) | async def parse_document( FILE: src/langbot/pkg/provider/modelmgr/entities.py class LLMModelInfo (line 11) | class LLMModelInfo(pydantic.BaseModel): class Config (line 26) | class Config: FILE: src/langbot/pkg/provider/modelmgr/errors.py class RequesterError (line 1) | class RequesterError(Exception): method __init__ (line 4) | def __init__(self, message: str): FILE: src/langbot/pkg/provider/modelmgr/modelmgr.py class ModelManager (line 15) | class ModelManager: method __init__ (line 31) | def __init__(self, ap: app.Application): method initialize (line 38) | async def initialize(self): method load_models_from_db (line 61) | async def load_models_from_db(self): method sync_new_models_from_space (line 113) | async def sync_new_models_from_space(self): method init_temporary_runtime_llm_model (line 173) | async def init_temporary_runtime_llm_model( method init_temporary_runtime_embedding_model (line 195) | async def init_temporary_runtime_embedding_model( method load_provider (line 215) | async def load_provider( method remove_provider (line 243) | async def remove_provider(self, provider_uuid: str): method reload_provider (line 251) | async def reload_provider(self, provider_uuid: str): method load_llm_model_with_provider (line 275) | async def load_llm_model_with_provider( method load_embedding_model_with_provider (line 291) | async def load_embedding_model_with_provider( method load_llm_model (line 307) | async def load_llm_model(self, model_info: dict): method load_embedding_model (line 331) | async def load_embedding_model(self, model_info: dict): method get_model_by_uuid (line 355) | async def get_model_by_uuid(self, uuid: str) -> requester.RuntimeLLMMo... method get_embedding_model_by_uuid (line 363) | async def get_embedding_model_by_uuid(self, uuid: str) -> requester.Ru... method remove_llm_model (line 370) | async def remove_llm_model(self, model_uuid: str): method remove_embedding_model (line 377) | async def remove_embedding_model(self, model_uuid: str): method get_available_requesters_info (line 384) | def get_available_requesters_info(self, model_type: str) -> list[dict]: method get_available_requester_info_by_name (line 395) | def get_available_requester_info_by_name(self, name: str) -> dict | None: method get_available_requester_manifest_by_name (line 402) | def get_available_requester_manifest_by_name(self, name: str) -> engin... FILE: src/langbot/pkg/provider/modelmgr/requester.py class RuntimeProvider (line 15) | class RuntimeProvider: method __init__ (line 27) | def __init__( method invoke_llm (line 37) | async def invoke_llm( method invoke_llm_stream (line 117) | async def invoke_llm_stream( method invoke_embedding (line 187) | async def invoke_embedding( class RuntimeLLMModel (line 251) | class RuntimeLLMModel: method __init__ (line 260) | def __init__( class RuntimeEmbeddingModel (line 269) | class RuntimeEmbeddingModel: method __init__ (line 278) | def __init__( class ProviderAPIRequester (line 287) | class ProviderAPIRequester(metaclass=abc.ABCMeta): method __init__ (line 298) | def __init__(self, ap: app.Application, config: dict[str, typing.Any]): method initialize (line 303) | async def initialize(self): method invoke_llm (line 307) | async def invoke_llm( method invoke_llm_stream (line 330) | async def invoke_llm_stream( method invoke_embedding (line 353) | async def invoke_embedding( FILE: src/langbot/pkg/provider/modelmgr/requesters/302aichatcmpl.py class AI302ChatCompletions (line 9) | class AI302ChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/anthropicmsgs.py class AnthropicMessages (line 18) | class AnthropicMessages(requester.ProviderAPIRequester): method initialize (line 28) | async def initialize(self): method invoke_llm (line 50) | async def invoke_llm( method invoke_llm_stream (line 184) | async def invoke_llm_stream( FILE: src/langbot/pkg/provider/modelmgr/requesters/bailianchatcmpl.py class BailianChatCompletions (line 14) | class BailianChatCompletions(modelscopechatcmpl.ModelScopeChatCompletions): method _closure_stream (line 24) | async def _closure_stream( FILE: src/langbot/pkg/provider/modelmgr/requesters/chatcmpl.py class OpenAIChatCompletions (line 16) | class OpenAIChatCompletions(requester.ProviderAPIRequester): method initialize (line 26) | async def initialize(self): method _req (line 34) | async def _req( method _req_stream (line 41) | async def _req_stream( method _make_msg (line 49) | async def _make_msg( method _process_thinking_content (line 81) | async def _process_thinking_content( method _closure_stream (line 127) | async def _closure_stream( method _closure (line 248) | async def _closure( method invoke_llm (line 297) | async def invoke_llm( method invoke_embedding (line 352) | async def invoke_embedding( method invoke_llm_stream (line 386) | async def invoke_llm_stream( FILE: src/langbot/pkg/provider/modelmgr/requesters/compsharechatcmpl.py class CompShareChatCompletions (line 9) | class CompShareChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/deepseekchatcmpl.py class DeepseekChatCompletions (line 12) | class DeepseekChatCompletions(chatcmpl.OpenAIChatCompletions): method _closure (line 20) | async def _closure( FILE: src/langbot/pkg/provider/modelmgr/requesters/geminichatcmpl.py class GeminiChatCompletions (line 15) | class GeminiChatCompletions(chatcmpl.OpenAIChatCompletions): method _closure_stream (line 23) | async def _closure_stream( FILE: src/langbot/pkg/provider/modelmgr/requesters/giteeaichatcmpl.py class GiteeAIChatCompletions (line 9) | class GiteeAIChatCompletions(ppiochatcmpl.PPIOChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/jiekouaichatcmpl.py class JieKouAIChatCompletions (line 15) | class JieKouAIChatCompletions(chatcmpl.OpenAIChatCompletions): method _make_msg (line 27) | async def _make_msg( method _process_thinking_content (line 54) | async def _process_thinking_content( method _make_msg_chunk (line 77) | async def _make_msg_chunk( method _closure_stream (line 103) | async def _closure_stream( FILE: src/langbot/pkg/provider/modelmgr/requesters/lmstudiochatcmpl.py class LmStudioChatCompletions (line 9) | class LmStudioChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/modelscopechatcmpl.py class ModelScopeChatCompletions (line 16) | class ModelScopeChatCompletions(requester.ProviderAPIRequester): method initialize (line 26) | async def initialize(self): method _req (line 34) | async def _req( method _make_msg (line 111) | async def _make_msg( method _closure (line 125) | async def _closure( method _req_stream (line 170) | async def _req_stream( method _closure_stream (line 178) | async def _closure_stream( method invoke_llm (line 302) | async def invoke_llm( method invoke_llm_stream (line 347) | async def invoke_llm_stream( FILE: src/langbot/pkg/provider/modelmgr/requesters/moonshotchatcmpl.py class MoonshotChatCompletions (line 13) | class MoonshotChatCompletions(chatcmpl.OpenAIChatCompletions): method _closure (line 21) | async def _closure( FILE: src/langbot/pkg/provider/modelmgr/requesters/newapichatcmpl.py class NewAPIChatCompletions (line 9) | class NewAPIChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/ollamachat.py class OllamaChatCompletions (line 20) | class OllamaChatCompletions(requester.ProviderAPIRequester): method initialize (line 30) | async def initialize(self): method _req (line 34) | async def _req( method _closure (line 40) | async def _closure( method _make_msg (line 80) | async def _make_msg(self, chat_completions: ollama.ChatResponse) -> pr... method invoke_llm (line 107) | async def invoke_llm( method invoke_embedding (line 136) | async def invoke_embedding( FILE: src/langbot/pkg/provider/modelmgr/requesters/openrouterchatcmpl.py class OpenRouterChatCompletions (line 9) | class OpenRouterChatCompletions(modelscopechatcmpl.ModelScopeChatComplet... FILE: src/langbot/pkg/provider/modelmgr/requesters/ppiochatcmpl.py class PPIOChatCompletions (line 15) | class PPIOChatCompletions(chatcmpl.OpenAIChatCompletions): method _make_msg (line 27) | async def _make_msg( method _process_thinking_content (line 54) | async def _process_thinking_content( method _make_msg_chunk (line 77) | async def _make_msg_chunk( method _closure_stream (line 103) | async def _closure_stream( FILE: src/langbot/pkg/provider/modelmgr/requesters/qhaigcchatcmpl.py class QHAIGCChatCompletions (line 9) | class QHAIGCChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/seekdbembed.py class SeekDBEmbedding (line 10) | class SeekDBEmbedding(requester.ProviderAPIRequester): method initialize (line 23) | async def initialize(self): method invoke_llm (line 31) | async def invoke_llm( method invoke_embedding (line 42) | async def invoke_embedding( FILE: src/langbot/pkg/provider/modelmgr/requesters/shengsuanyun.py class ShengSuanYunChatCompletions (line 10) | class ShengSuanYunChatCompletions(chatcmpl.OpenAIChatCompletions): method _req (line 20) | async def _req( FILE: src/langbot/pkg/provider/modelmgr/requesters/siliconflowchatcmpl.py class SiliconFlowChatCompletions (line 9) | class SiliconFlowChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/spacechatcmpl.py class LangBotSpaceChatCompletions (line 9) | class LangBotSpaceChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/tokenponychatcmpl.py class TokenPonyChatCompletions (line 9) | class TokenPonyChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/volcarkchatcmpl.py class VolcArkChatCompletions (line 9) | class VolcArkChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/xaichatcmpl.py class XaiChatCompletions (line 9) | class XaiChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/requesters/zhipuaichatcmpl.py class ZhipuAIChatCompletions (line 9) | class ZhipuAIChatCompletions(chatcmpl.OpenAIChatCompletions): FILE: src/langbot/pkg/provider/modelmgr/token.py class TokenManager (line 6) | class TokenManager: method __init__ (line 15) | def __init__(self, name: str, tokens: list[str]): method get_token (line 20) | def get_token(self) -> str: method next_token (line 25) | def next_token(self): FILE: src/langbot/pkg/provider/runner.py function runner_class (line 12) | def runner_class(name: str): class RequestRunner (line 23) | class RequestRunner(abc.ABC): method __init__ (line 32) | def __init__(self, ap: app.Application, pipeline_config: dict): method run (line 37) | async def run( FILE: src/langbot/pkg/provider/runners/cozeapi.py class CozeAPIRunner (line 16) | class CozeAPIRunner(runner.RequestRunner): method __init__ (line 19) | def __init__(self, ap: app.Application, pipeline_config: dict): method _process_thinking_content (line 30) | def _process_thinking_content( method _preprocess_user_message (line 63) | async def _preprocess_user_message(self, query: pipeline_query.Query) ... method _get_file_id (line 107) | async def _get_file_id(self, file) -> str: method _chat_messages (line 117) | async def _chat_messages( method _chat_messages_chunk (line 200) | async def _chat_messages_chunk( method run (line 277) | async def run(self, query: pipeline_query.Query) -> typing.AsyncGenera... FILE: src/langbot/pkg/provider/runners/dashscopeapi.py class DashscopeAPIError (line 14) | class DashscopeAPIError(Exception): method __init__ (line 17) | def __init__(self, message: str): class DashScopeAPIRunner (line 23) | class DashScopeAPIRunner(runner.RequestRunner): method __init__ (line 34) | def __init__(self, ap: app.Application, pipeline_config: dict): method _replace_references (line 50) | def _replace_references(self, text, references_dict): method _preprocess_user_message (line 69) | async def _preprocess_user_message(self, query: pipeline_query.Query) ... method _agent_messages (line 93) | async def _agent_messages( method _workflow_messages (line 225) | async def _workflow_messages( method run (line 339) | async def run(self, query: pipeline_query.Query) -> typing.AsyncGenera... FILE: src/langbot/pkg/provider/runners/difysvapi.py class DifyServiceAPIRunner (line 20) | class DifyServiceAPIRunner(runner.RequestRunner): method __init__ (line 25) | def __init__(self, ap: app.Application, pipeline_config: dict): method _process_thinking_content (line 42) | def _process_thinking_content( method _extract_dify_text_output (line 75) | def _extract_dify_text_output(self, value: typing.Any) -> str: method _preprocess_user_message (line 97) | async def _preprocess_user_message(self, query: pipeline_query.Query) ... method _chat_messages (line 173) | async def _chat_messages( method _agent_chat_messages (line 240) | async def _agent_chat_messages( method _workflow_messages (line 338) | async def _workflow_messages( method _chat_messages_chunk (line 413) | async def _chat_messages_chunk( method _agent_chat_messages_chunk (line 516) | async def _agent_chat_messages_chunk( method _workflow_messages_chunk (line 639) | async def _workflow_messages_chunk( method run (line 739) | async def run(self, query: pipeline_query.Query) -> typing.AsyncGenera... FILE: src/langbot/pkg/provider/runners/langflowapi.py class LangflowAPIRunner (line 16) | class LangflowAPIRunner(runner.RequestRunner): method __init__ (line 19) | def __init__(self, ap: app.Application, pipeline_config: dict): method _build_request_payload (line 23) | async def _build_request_payload(self, query: pipeline_query.Query) ->... method run (line 60) | async def run( FILE: src/langbot/pkg/provider/runners/localagent.py class LocalAgentRunner (line 29) | class LocalAgentRunner(runner.RequestRunner): method _get_model_candidates (line 32) | async def _get_model_candidates( method _invoke_with_fallback (line 58) | async def _invoke_with_fallback( method _invoke_stream_with_fallback (line 84) | async def _invoke_stream_with_fallback( method run (line 129) | async def run( FILE: src/langbot/pkg/provider/runners/n8nsvapi.py class N8nAPIError (line 16) | class N8nAPIError(Exception): method __init__ (line 19) | def __init__(self, message: str): class N8nServiceAPIRunner (line 25) | class N8nServiceAPIRunner(runner.RequestRunner): method __init__ (line 28) | def __init__(self, ap: app.Application, pipeline_config: dict): method _preprocess_user_message (line 55) | async def _preprocess_user_message(self, query: pipeline_query.Query) ... method _process_stream_response (line 73) | async def _process_stream_response( method _call_webhook (line 159) | async def _call_webhook(self, query: pipeline_query.Query) -> typing.A... method run (line 270) | async def run(self, query: pipeline_query.Query) -> typing.AsyncGenera... FILE: src/langbot/pkg/provider/runners/tboxapi.py class TboxAPIError (line 19) | class TboxAPIError(Exception): method __init__ (line 22) | def __init__(self, message: str): class TboxAPIRunner (line 28) | class TboxAPIRunner(runner.RequestRunner): method __init__ (line 35) | def __init__(self, ap: app.Application, pipeline_config: dict): method _preprocess_user_message (line 47) | async def _preprocess_user_message(self, query: pipeline_query.Query) ... method _agent_messages (line 80) | async def _agent_messages( method _process_non_stream_message (line 121) | def _process_non_stream_message(self, response: typing.Dict, query: pi... method _process_stream_message (line 136) | def _process_stream_message( method run (line 195) | async def run(self, query: pipeline_query.Query) -> typing.AsyncGenera... FILE: src/langbot/pkg/provider/session/sessionmgr.py class SessionManager (line 11) | class SessionManager: method __init__ (line 18) | def __init__(self, ap: app.Application): method initialize (line 22) | async def initialize(self): method get_session (line 25) | async def get_session(self, query: pipeline_query.Query) -> provider_s... method get_conversation (line 42) | async def get_conversation( FILE: src/langbot/pkg/provider/tools/loader.py function loader_class (line 15) | def loader_class(name: str): class ToolLoader (line 26) | class ToolLoader(abc.ABC): method __init__ (line 33) | def __init__(self, ap: app.Application): method initialize (line 36) | async def initialize(self): method get_tools (line 40) | async def get_tools(self, bound_plugins: list[str] | None = None) -> l... method has_tool (line 45) | async def has_tool(self, name: str) -> bool: method invoke_tool (line 50) | async def invoke_tool(self, name: str, parameters: dict, query: pipeli... method shutdown (line 55) | async def shutdown(self): FILE: src/langbot/pkg/provider/tools/loaders/mcp.py class MCPSessionStatus (line 25) | class MCPSessionStatus(enum.Enum): class RuntimeMCPSession (line 31) | class RuntimeMCPSession: method __init__ (line 61) | def __init__(self, server_name: str, server_config: dict, enable: bool... method _init_stdio_python_server (line 78) | async def _init_stdio_python_server(self): method _init_sse_server (line 93) | async def _init_sse_server(self): method _init_streamable_http_server (line 109) | async def _init_streamable_http_server(self): method _lifecycle_loop (line 127) | async def _lifecycle_loop(self): method start (line 165) | async def start(self): method refresh (line 183) | async def refresh(self): method get_tools (line 231) | def get_tools(self) -> list[resource_tool.LLMTool]: method get_runtime_info_dict (line 234) | def get_runtime_info_dict(self) -> dict: method shutdown (line 248) | async def shutdown(self): class MCPLoader (line 272) | class MCPLoader(loader.ToolLoader): method __init__ (line 284) | def __init__(self, ap: app.Application): method initialize (line 290) | async def initialize(self): method load_mcp_servers_from_db (line 293) | async def load_mcp_servers_from_db(self): method host_mcp_server (line 307) | async def host_mcp_server(self, server_config: dict): method load_mcp_server (line 329) | async def load_mcp_server(self, server_config: dict) -> RuntimeMCPSess... method get_tools (line 363) | async def get_tools(self, bound_mcp_servers: list[str] | None = None) ... method has_tool (line 379) | async def has_tool(self, name: str) -> bool: method invoke_tool (line 387) | async def invoke_tool(self, name: str, parameters: dict, query: pipeli... method remove_mcp_server (line 403) | async def remove_mcp_server(self, server_name: str): method get_session (line 413) | def get_session(self, server_name: str) -> RuntimeMCPSession | None: method has_session (line 417) | def has_session(self, server_name: str) -> bool: method get_all_server_names (line 421) | def get_all_server_names(self) -> list[str]: method get_server_tool_count (line 425) | def get_server_tool_count(self, server_name: str) -> int: method get_all_servers_info (line 430) | def get_all_servers_info(self) -> dict[str, dict]: method shutdown (line 443) | async def shutdown(self): FILE: src/langbot/pkg/provider/tools/loaders/plugin.py class PluginToolLoader (line 13) | class PluginToolLoader(loader.ToolLoader): method get_tools (line 19) | async def get_tools(self, bound_plugins: list[str] | None = None) -> l... method has_tool (line 35) | async def has_tool(self, name: str) -> bool: method _get_tool (line 42) | async def _get_tool(self, name: str) -> resource_tool.LLMTool: method invoke_tool (line 48) | async def invoke_tool(self, name: str, parameters: dict, query: pipeli... method shutdown (line 58) | async def shutdown(self): FILE: src/langbot/pkg/provider/tools/toolmgr.py class ToolManager (line 15) | class ToolManager: method __init__ (line 23) | def __init__(self, ap: app.Application): method initialize (line 26) | async def initialize(self): method get_all_tools (line 32) | async def get_all_tools( method generate_tools_for_openai (line 43) | async def generate_tools_for_openai(self, use_funcs: list[resource_too... method generate_tools_for_anthropic (line 60) | async def generate_tools_for_anthropic(self, use_funcs: list[resource_... method execute_func_call (line 95) | async def execute_func_call(self, name: str, parameters: dict, query: ... method shutdown (line 105) | async def shutdown(self): FILE: src/langbot/pkg/rag/knowledge/base.py class KnowledgeBaseInterface (line 11) | class KnowledgeBaseInterface(metaclass=abc.ABCMeta): method __init__ (line 16) | def __init__(self, ap: app.Application): method initialize (line 20) | async def initialize(self): method retrieve (line 25) | async def retrieve(self, query: str, settings: dict | None = None) -> ... method get_uuid (line 38) | def get_uuid(self) -> str: method get_name (line 43) | def get_name(self) -> str: method get_knowledge_engine_plugin_id (line 48) | def get_knowledge_engine_plugin_id(self) -> str: method dispose (line 53) | async def dispose(self): FILE: src/langbot/pkg/rag/knowledge/kbmgr.py class RuntimeKnowledgeBase (line 19) | class RuntimeKnowledgeBase(KnowledgeBaseInterface): method __init__ (line 24) | def __init__(self, ap: app.Application, knowledge_base_entity: persist... method initialize (line 28) | async def initialize(self): method _store_file_task (line 31) | async def _store_file_task( method store_file (line 104) | async def store_file(self, file_id: str, parser_plugin_id: str | None ... method _store_zip_file (line 142) | async def _store_zip_file(self, zip_file_id: str, parser_plugin_id: st... method retrieve (line 198) | async def retrieve(self, query: str, settings: dict | None = None) -> ... method delete_file (line 216) | async def delete_file(self, file_id: str): method get_uuid (line 224) | def get_uuid(self) -> str: method get_name (line 228) | def get_name(self) -> str: method get_knowledge_engine_plugin_id (line 232) | def get_knowledge_engine_plugin_id(self) -> str: method dispose (line 236) | async def dispose(self): method _on_kb_create (line 242) | async def _on_kb_create(self) -> None: method _on_kb_delete (line 258) | async def _on_kb_delete(self) -> None: method _ingest_document (line 272) | async def _ingest_document( method _retrieve (line 308) | async def _retrieve( method _delete_document (line 345) | async def _delete_document(self, document_id: str) -> bool: class RAGManager (line 361) | class RAGManager: method __init__ (line 366) | def __init__(self, ap: app.Application): method initialize (line 370) | async def initialize(self): method get_all_knowledge_base_details (line 373) | async def get_all_knowledge_base_details(self) -> list[dict]: method get_knowledge_base_details (line 397) | async def get_knowledge_base_details(self, kb_uuid: str) -> dict | None: method _to_i18n_name (line 421) | def _to_i18n_name(name) -> dict: method _enrich_kb_dict (line 432) | def _enrich_kb_dict(self, kb_dict: dict, engine_map: dict) -> None: method create_knowledge_base (line 458) | async def create_knowledge_base( method load_knowledge_bases_from_db (line 515) | async def load_knowledge_bases_from_db(self): method load_knowledge_base (line 532) | async def load_knowledge_base( method get_knowledge_base_by_uuid (line 554) | async def get_knowledge_base_by_uuid(self, kb_uuid: str) -> KnowledgeB... method remove_knowledge_base_from_runtime (line 557) | async def remove_knowledge_base_from_runtime(self, kb_uuid: str): method delete_knowledge_base (line 560) | async def delete_knowledge_base(self, kb_uuid: str): FILE: src/langbot/pkg/rag/service/runtime.py class RAGRuntimeService (line 8) | class RAGRuntimeService: method __init__ (line 15) | def __init__(self, ap: app.Application): method vector_upsert (line 18) | async def vector_upsert( method vector_search (line 36) | async def vector_search( method vector_delete (line 55) | async def vector_delete( method vector_list (line 78) | async def vector_list( method get_file_stream (line 103) | async def get_file_stream(self, storage_path: str) -> bytes: FILE: src/langbot/pkg/storage/mgr.py class StorageMgr (line 9) | class StorageMgr: method __init__ (line 16) | def __init__(self, ap: app.Application): method initialize (line 19) | async def initialize(self): FILE: src/langbot/pkg/storage/provider.py class StorageProvider (line 8) | class StorageProvider(abc.ABC): method __init__ (line 11) | def __init__(self, ap: app.Application): method initialize (line 14) | async def initialize(self): method save (line 18) | async def save( method load (line 26) | async def load( method exists (line 33) | async def exists( method delete (line 40) | async def delete( method size (line 47) | async def size( method delete_dir_recursive (line 54) | async def delete_dir_recursive( FILE: src/langbot/pkg/storage/providers/localstorage.py class LocalStorageProvider (line 15) | class LocalStorageProvider(provider.StorageProvider): method __init__ (line 16) | def __init__(self, ap: app.Application): method save (line 21) | async def save( method load (line 31) | async def load( method exists (line 38) | async def exists( method delete (line 44) | async def delete( method size (line 50) | async def size( method delete_dir_recursive (line 56) | async def delete_dir_recursive( FILE: src/langbot/pkg/storage/providers/s3storage.py class S3StorageProvider (line 10) | class S3StorageProvider(provider.StorageProvider): method __init__ (line 13) | def __init__(self, ap: app.Application): method initialize (line 18) | async def initialize(self): method save (line 57) | async def save( method load (line 73) | async def load( method exists (line 88) | async def exists( method delete (line 106) | async def delete( method size (line 120) | async def size( method delete_dir_recursive (line 135) | async def delete_dir_recursive( FILE: src/langbot/pkg/survey/manager.py class SurveyManager (line 18) | class SurveyManager: method __init__ (line 21) | def __init__(self, ap: core_app.Application): method initialize (line 27) | async def initialize(self): method _load_triggered_events (line 32) | async def _load_triggered_events(self): method _save_triggered_events (line 44) | async def _save_triggered_events(self): method _is_space_configured (line 62) | def _is_space_configured(self) -> bool: method trigger_event (line 68) | async def trigger_event(self, event: str): method _fetch_pending_survey (line 81) | async def _fetch_pending_survey(self, event: str): method get_pending_survey (line 99) | def get_pending_survey(self) -> typing.Optional[dict]: method clear_pending_survey (line 103) | def clear_pending_survey(self): method submit_response (line 107) | async def submit_response(self, survey_id: str, answers: dict, complet... method dismiss_survey (line 131) | async def dismiss_survey(self, survey_id: str) -> bool: FILE: src/langbot/pkg/telemetry/telemetry.py class TelemetryManager (line 8) | class TelemetryManager: method __init__ (line 18) | def __init__(self, ap: core_app.Application): method initialize (line 23) | async def initialize(self): method start_send_task (line 26) | async def start_send_task(self, payload: dict): method send (line 30) | async def send(self, payload: dict): FILE: src/langbot/pkg/utils/funcschema.py function get_func_schema (line 6) | def get_func_schema(function: typing.Callable) -> dict: FILE: src/langbot/pkg/utils/httpclient.py function get_session (line 19) | def get_session(*, trust_env: bool = False) -> aiohttp.ClientSession: function close_all (line 38) | async def close_all(): FILE: src/langbot/pkg/utils/image.py function get_gewechat_image_base64 (line 16) | async def get_gewechat_image_base64( function get_wecom_image_base64 (line 104) | async def get_wecom_image_base64(pic_url: str) -> tuple[str, str]: function get_qq_official_image_base64 (line 130) | async def get_qq_official_image_base64(pic_url: str, content_type: str) ... function get_qq_image_downloadable_url (line 144) | def get_qq_image_downloadable_url(image_url: str) -> tuple[str, dict]: function get_qq_image_bytes (line 151) | async def get_qq_image_bytes(image_url: str, query: dict = {}) -> tuple[... function qq_image_url_to_base64 (line 173) | async def qq_image_url_to_base64(image_url: str) -> typing.Tuple[str, str]: function extract_b64_and_format (line 194) | async def extract_b64_and_format(image_base64_data: str) -> typing.Tuple... function get_slack_image_to_base64 (line 205) | async def get_slack_image_to_base64(pic_url: str, bot_token: str): FILE: src/langbot/pkg/utils/importutil.py function import_modules_in_pkg (line 7) | def import_modules_in_pkg(pkg: typing.Any) -> None: function import_modules_in_pkgs (line 17) | def import_modules_in_pkgs(pkgs: typing.List) -> None: function import_dot_style_dir (line 22) | def import_dot_style_dir(dot_sep_path: str): function import_dir (line 28) | def import_dir(path: str, path_prefix: str = 'langbot.'): function read_resource_file (line 39) | def read_resource_file(resource_path: str) -> str: function read_resource_file_bytes (line 44) | def read_resource_file_bytes(resource_path: str) -> bytes: function list_resource_files (line 48) | def list_resource_files(resource_path: str) -> list[str]: FILE: src/langbot/pkg/utils/logcache.py class LogPage (line 8) | class LogPage: method __init__ (line 16) | def __init__(self, number: int): method add_log (line 20) | def add_log(self, log: str) -> bool: class LogCache (line 30) | class LogCache: method __init__ (line 37) | def __init__(self): method add_log (line 41) | def add_log(self, log: str): method get_log_by_pointer (line 49) | def get_log_by_pointer( FILE: src/langbot/pkg/utils/paths.py function _check_if_source_install (line 10) | def _check_if_source_install() -> bool: function get_frontend_path (line 37) | def get_frontend_path() -> str: function get_resource_path (line 65) | def get_resource_path(resource: str) -> str: FILE: src/langbot/pkg/utils/pkgmgr.py function install (line 4) | def install(package): function install_upgrade (line 8) | def install_upgrade(package): function run_pip (line 22) | def run_pip(params: list): function install_requirements (line 26) | def install_requirements(file, extra_params: list = []): FILE: src/langbot/pkg/utils/platform.py function get_platform (line 5) | def get_platform() -> str: function use_websocket_to_connect_plugin_runtime (line 20) | def use_websocket_to_connect_plugin_runtime() -> bool: FILE: src/langbot/pkg/utils/proxy.py class ProxyManager (line 8) | class ProxyManager: method __init__ (line 15) | def __init__(self, ap: app.Application): method initialize (line 20) | async def initialize(self): method get_forward_proxies (line 35) | def get_forward_proxies(self) -> dict: FILE: src/langbot/pkg/utils/runner.py class RunnerCategory (line 6) | class RunnerCategory: function get_runner_category (line 48) | def get_runner_category(runner_name: str, runner_url: str) -> str: function get_runner_info (line 69) | def get_runner_info(runner_name: str, runner_url: str) -> dict: function is_cloud_runner (line 77) | def is_cloud_runner(runner_name: str, runner_url: str) -> bool: function is_local_runner (line 81) | def is_local_runner(runner_name: str, runner_url: str) -> bool: function extract_runner_url (line 85) | def extract_runner_url(runner_name: str, runner, pipeline_config: dict |... function get_runner_category_from_runner (line 103) | def get_runner_category_from_runner(runner_name: str, runner, pipeline_c... FILE: src/langbot/pkg/utils/version.py class VersionManager (line 13) | class VersionManager: method __init__ (line 18) | def __init__(self, ap: app.Application): method initialize (line 21) | async def initialize(self): method get_current_version (line 24) | def get_current_version(self) -> str: method get_release_list (line 29) | async def get_release_list(self) -> list: method update_all (line 45) | async def update_all(self): method is_new_version_available (line 135) | async def is_new_version_available(self) -> bool: method is_newer (line 154) | def is_newer(self, new_tag: str, old_tag: str): method compare_version_str (line 175) | def compare_version_str(v0: str, v1: str) -> int: method show_version_update (line 202) | async def show_version_update(self) -> typing.Tuple[str, int]: FILE: src/langbot/pkg/vector/filter_utils.py function normalize_filter (line 24) | def normalize_filter( function strip_unsupported_fields (line 49) | def strip_unsupported_fields( FILE: src/langbot/pkg/vector/mgr.py class VectorDBManager (line 12) | class VectorDBManager: method __init__ (line 16) | def __init__(self, ap: app.Application): method initialize (line 19) | async def initialize(self): method get_supported_search_types (line 69) | def get_supported_search_types(self) -> list[str]: method upsert (line 75) | async def upsert( method search (line 92) | async def search( method delete_by_file_id (line 140) | async def delete_by_file_id(self, collection_name: str, file_ids: list... method delete_collection (line 149) | async def delete_collection(self, collection_name: str): method delete_by_filter (line 153) | async def delete_by_filter(self, collection_name: str, filter: dict) -... method list_by_filter (line 161) | async def list_by_filter( FILE: src/langbot/pkg/vector/vdb.py class SearchType (line 8) | class SearchType(str, enum.Enum): class VectorDatabase (line 16) | class VectorDatabase(abc.ABC): method supported_search_types (line 18) | def supported_search_types(cls) -> list[SearchType]: method add_embeddings (line 27) | async def add_embeddings( method search (line 48) | async def search( method delete_by_file_id (line 77) | async def delete_by_file_id(self, collection: str, file_id: str) -> None: method delete_by_filter (line 82) | async def delete_by_filter(self, collection: str, filter: dict[str, An... method list_by_filter (line 95) | async def list_by_filter( method get_or_create_collection (line 118) | async def get_or_create_collection(self, collection: str): method delete_collection (line 123) | async def delete_collection(self, collection: str): FILE: src/langbot/pkg/vector/vdbs/chroma.py class ChromaVectorDatabase (line 14) | class ChromaVectorDatabase(VectorDatabase): method __init__ (line 15) | def __init__(self, ap: app.Application, base_path: str = './data/chrom... method supported_search_types (line 21) | def supported_search_types(cls) -> list[SearchType]: method get_or_create_collection (line 24) | async def get_or_create_collection(self, collection: str) -> chromadb.... method add_embeddings (line 32) | async def add_embeddings( method search (line 47) | async def search( method _vector_search (line 66) | async def _vector_search( method _full_text_search (line 87) | async def _full_text_search( method _hybrid_search (line 122) | async def _hybrid_search( method _rrf_fuse (line 200) | def _rrf_fuse(result_lists: list[list[str]], k: int) -> list[tuple[str... method delete_by_file_id (line 213) | async def delete_by_file_id(self, collection: str, file_id: str) -> None: method delete_by_filter (line 218) | async def delete_by_filter(self, collection: str, filter: dict[str, An... method list_by_filter (line 224) | async def list_by_filter( method delete_collection (line 259) | async def delete_collection(self, collection: str): FILE: src/langbot/pkg/vector/vdbs/milvus.py function _build_milvus_expr (line 18) | def _build_milvus_expr(filter_dict: dict[str, Any]) -> str: function _milvus_literal (line 48) | def _milvus_literal(value: Any) -> str: class MilvusVectorDatabase (line 56) | class MilvusVectorDatabase(VectorDatabase): method __init__ (line 59) | def __init__(self, ap: app.Application, uri: str = 'milvus.db', token:... method _initialize_client (line 76) | def _initialize_client(self): method _normalize_collection_name (line 89) | def _normalize_collection_name(collection: str) -> str: method _ensure_vector_index (line 111) | async def _ensure_vector_index(self, collection: str) -> None: method _get_or_create_collection_internal (line 125) | async def _get_or_create_collection_internal(self, collection: str, ve... method _ensure_index_if_missing (line 175) | async def _ensure_index_if_missing(self, collection: str) -> None: method get_or_create_collection (line 189) | async def get_or_create_collection(self, collection: str): method add_embeddings (line 198) | async def add_embeddings( method search (line 250) | async def search( method delete_by_file_id (line 317) | async def delete_by_file_id(self, collection: str, file_id: str) -> None: method delete_by_filter (line 331) | async def delete_by_filter(self, collection: str, filter: dict[str, An... method list_by_filter (line 346) | async def list_by_filter( method delete_collection (line 402) | async def delete_collection(self, collection: str): FILE: src/langbot/pkg/vector/vdbs/pgvector_db.py class PgVectorEntry (line 27) | class PgVectorEntry(Base): function _build_pg_conditions (line 40) | def _build_pg_conditions(filter_dict: dict[str, Any]) -> list: class PgVectorDatabase (line 67) | class PgVectorDatabase(VectorDatabase): method __init__ (line 70) | def __init__( method _initialize_db (line 110) | def _initialize_db(self): method get_or_create_collection (line 135) | async def get_or_create_collection(self, collection: str): method add_embeddings (line 147) | async def add_embeddings( method search (line 187) | async def search( method delete_by_file_id (line 255) | async def delete_by_file_id(self, collection: str, file_id: str) -> None: method delete_by_filter (line 282) | async def delete_by_filter(self, collection: str, filter: dict[str, An... method list_by_filter (line 315) | async def list_by_filter( method delete_collection (line 374) | async def delete_collection(self, collection: str): method close (line 397) | async def close(self): FILE: src/langbot/pkg/vector/vdbs/qdrant.py function _build_qdrant_filter (line 11) | def _build_qdrant_filter(filter_dict: dict[str, Any]) -> models.Filter: class QdrantVectorDatabase (line 41) | class QdrantVectorDatabase(VectorDatabase): method __init__ (line 42) | def __init__(self, ap: app.Application): method _ensure_collection (line 56) | async def _ensure_collection(self, collection: str, vector_size: int) ... method get_or_create_collection (line 72) | async def get_or_create_collection(self, collection: str): method add_embeddings (line 76) | async def add_embeddings( method search (line 95) | async def search( method delete_by_file_id (line 127) | async def delete_by_file_id(self, collection: str, file_id: str) -> None: method delete_by_filter (line 140) | async def delete_by_filter(self, collection: str, filter: dict[str, An... method list_by_filter (line 153) | async def list_by_filter( method delete_collection (line 244) | async def delete_collection(self, collection: str): FILE: src/langbot/pkg/vector/vdbs/seekdb.py class SeekDBVectorDatabase (line 22) | class SeekDBVectorDatabase(VectorDatabase): method supported_search_types (line 32) | def supported_search_types(cls) -> list[SearchType]: method __init__ (line 35) | def __init__(self, ap: app.Application): method _get_or_create_collection_internal (line 104) | async def _get_or_create_collection_internal(self, collection: str, ve... method _clean_metadata (line 140) | def _clean_metadata(self, meta: Dict[str, Any]) -> Dict[str, Any]: method get_or_create_collection (line 152) | async def get_or_create_collection(self, collection: str): method add_embeddings (line 156) | async def add_embeddings( method search (line 189) | async def search( method delete_by_file_id (line 295) | async def delete_by_file_id(self, collection: str, file_id: str) -> None: method delete_by_filter (line 321) | async def delete_by_filter(self, collection: str, filter: Dict[str, An... method list_by_filter (line 343) | async def list_by_filter( method delete_collection (line 387) | async def delete_collection(self, collection: str): FILE: tests/unit_tests/config/test_env_override.py function _apply_env_overrides_to_config (line 10) | def _apply_env_overrides_to_config(cfg: dict) -> dict: class TestEnvOverrides (line 89) | class TestEnvOverrides: method test_simple_string_override (line 92) | def test_simple_string_override(self): method test_nested_key_override (line 106) | def test_nested_key_override(self): method test_deep_nested_override (line 119) | def test_deep_nested_override(self): method test_underscore_in_key (line 134) | def test_underscore_in_key(self): method test_boolean_conversion (line 146) | def test_boolean_conversion(self): method test_ignore_dict_type (line 161) | def test_ignore_dict_type(self): method test_ignore_list_type (line 176) | def test_ignore_list_type(self): method test_lowercase_env_var_ignored (line 195) | def test_lowercase_env_var_ignored(self): method test_no_double_underscore_ignored (line 208) | def test_no_double_underscore_ignored(self): method test_nonexistent_key_ignored (line 221) | def test_nonexistent_key_ignored(self): method test_integer_conversion (line 234) | def test_integer_conversion(self): method test_multiple_overrides (line 247) | def test_multiple_overrides(self): FILE: tests/unit_tests/config/test_webhook_display_prefix.py function _apply_env_overrides_to_config (line 10) | def _apply_env_overrides_to_config(cfg: dict) -> dict: class TestWebhookDisplayPrefix (line 89) | class TestWebhookDisplayPrefix: method test_default_webhook_prefix (line 92) | def test_default_webhook_prefix(self): method test_webhook_prefix_env_override (line 100) | def test_webhook_prefix_env_override(self): method test_webhook_prefix_with_custom_domain (line 114) | def test_webhook_prefix_with_custom_domain(self): method test_webhook_prefix_with_subdirectory (line 128) | def test_webhook_prefix_with_subdirectory(self): method test_extra_webhook_prefix_default_empty (line 142) | def test_extra_webhook_prefix_default_empty(self): method test_extra_webhook_prefix_env_override (line 155) | def test_extra_webhook_prefix_env_override(self): FILE: tests/unit_tests/pipeline/conftest.py class MockApplication (line 24) | class MockApplication: method __init__ (line 27) | def __init__(self): method _create_mock_logger (line 38) | def _create_mock_logger(self): method _create_mock_session_manager (line 46) | def _create_mock_session_manager(self): method _create_mock_model_manager (line 52) | def _create_mock_model_manager(self): method _create_mock_tool_manager (line 57) | def _create_mock_tool_manager(self): method _create_mock_plugin_connector (line 62) | def _create_mock_plugin_connector(self): method _create_mock_persistence_manager (line 67) | def _create_mock_persistence_manager(self): method _create_mock_query_pool (line 72) | def _create_mock_query_pool(self): method _create_mock_instance_config (line 79) | def _create_mock_instance_config(self): method _create_mock_task_manager (line 87) | def _create_mock_task_manager(self): function mock_app (line 94) | def mock_app(): function mock_session (line 100) | def mock_session(): function mock_conversation (line 113) | def mock_conversation(): function mock_model (line 133) | def mock_model(): function mock_adapter (line 143) | def mock_adapter(): function sample_message_chain (line 153) | def sample_message_chain(): function sample_message_event (line 163) | def sample_message_event(sample_message_chain): function sample_query (line 179) | def sample_query(sample_message_chain, sample_message_event, mock_adapter): function sample_pipeline_config (line 217) | def sample_pipeline_config(): function create_stage_result (line 230) | def create_stage_result( function assert_result_continue (line 249) | def assert_result_continue(result: pipeline_entities.StageProcessResult): function assert_result_interrupt (line 254) | def assert_result_interrupt(result: pipeline_entities.StageProcessResult): FILE: tests/unit_tests/pipeline/test_bansess.py function get_modules (line 12) | def get_modules(): function test_whitelist_allow (line 21) | async def test_whitelist_allow(mock_app, sample_query): function test_whitelist_deny (line 39) | async def test_whitelist_deny(mock_app, sample_query): function test_blacklist_allow (line 56) | async def test_blacklist_allow(mock_app, sample_query): function test_blacklist_deny (line 73) | async def test_blacklist_deny(mock_app, sample_query): function test_wildcard_group (line 90) | async def test_wildcard_group(mock_app, sample_query): function test_wildcard_person (line 107) | async def test_wildcard_person(mock_app, sample_query): function test_user_id_wildcard (line 124) | async def test_user_id_wildcard(mock_app, sample_query): FILE: tests/unit_tests/pipeline/test_config_coercion.py class TestCoerceValue (line 10) | class TestCoerceValue: method test_none_passthrough (line 13) | def test_none_passthrough(self): method test_string_to_integer (line 17) | def test_string_to_integer(self): method test_integer_passthrough (line 22) | def test_integer_passthrough(self): method test_string_to_float (line 25) | def test_string_to_float(self): method test_int_to_float (line 29) | def test_int_to_float(self): method test_float_passthrough (line 33) | def test_float_passthrough(self): method test_string_to_bool (line 36) | def test_string_to_bool(self): method test_bool_passthrough (line 42) | def test_bool_passthrough(self): method test_invalid_bool_string_raises (line 46) | def test_invalid_bool_string_raises(self): method test_unknown_type_passthrough (line 50) | def test_unknown_type_passthrough(self): method test_invalid_integer_raises (line 54) | def test_invalid_integer_raises(self): class TestCoercePipelineConfig (line 59) | class TestCoercePipelineConfig: method _make_meta (line 62) | def _make_meta(self, section_name: str, stage_name: str, fields: list[... method test_coerce_integer_in_config (line 68) | def test_coerce_integer_in_config(self): method test_coerce_boolean_in_config (line 74) | def test_coerce_boolean_in_config(self): method test_missing_section_skipped (line 80) | def test_missing_section_skipped(self): method test_missing_field_skipped (line 85) | def test_missing_field_skipped(self): method test_invalid_value_logs_warning (line 90) | def test_invalid_value_logs_warning(self, caplog): method test_empty_metadata (line 100) | def test_empty_metadata(self): method test_multiple_metadata (line 104) | def test_multiple_metadata(self): FILE: tests/unit_tests/pipeline/test_pipelinemgr.py function get_pipelinemgr_module (line 10) | def get_pipelinemgr_module(): function get_stage_module (line 14) | def get_stage_module(): function get_entities_module (line 18) | def get_entities_module(): function get_persistence_pipeline_module (line 22) | def get_persistence_pipeline_module(): function test_pipeline_manager_initialize (line 27) | async def test_pipeline_manager_initialize(mock_app): function test_load_pipeline (line 41) | async def test_load_pipeline(mock_app): function test_get_pipeline_by_uuid (line 65) | async def test_get_pipeline_by_uuid(mock_app): function test_remove_pipeline (line 95) | async def test_remove_pipeline(mock_app): function test_runtime_pipeline_execute (line 121) | async def test_runtime_pipeline_execute(mock_app, sample_query): FILE: tests/unit_tests/pipeline/test_ratelimit.py function get_modules (line 13) | def get_modules(): function test_require_access_allowed (line 23) | async def test_require_access_allowed(mock_app, sample_query): function test_require_access_denied (line 50) | async def test_require_access_denied(mock_app, sample_query): function test_release_access (line 77) | async def test_release_access(mock_app, sample_query): FILE: tests/unit_tests/pipeline/test_resprule.py function get_modules (line 14) | def get_modules(): function test_person_message_skip (line 26) | async def test_person_message_skip(mock_app, sample_query): function test_group_message_no_match (line 43) | async def test_group_message_no_match(mock_app, sample_query): function test_group_message_match (line 69) | async def test_group_message_match(mock_app, sample_query): function test_atbot_rule_match (line 97) | async def test_atbot_rule_match(mock_app, sample_query): function test_atbot_rule_no_match (line 123) | async def test_atbot_rule_no_match(mock_app, sample_query): FILE: tests/unit_tests/pipeline/test_simple.py function test_pytest_works (line 10) | def test_pytest_works(): function test_async_works (line 16) | async def test_async_works(): function test_mocks_work (line 23) | def test_mocks_work(): function test_fixtures_work (line 30) | def test_fixtures_work(mock_app): function test_sample_query (line 37) | def test_sample_query(sample_query): FILE: tests/unit_tests/plugin/test_plugin_component_filtering.py function test_plugin_list_filter_by_component_kinds (line 8) | async def test_plugin_list_filter_by_component_kinds(): function test_plugin_list_filter_no_filter (line 114) | async def test_plugin_list_filter_no_filter(): function test_plugin_list_filter_empty_result (line 175) | async def test_plugin_list_filter_empty_result(): function test_plugin_list_filter_plugin_without_components (line 221) | async def test_plugin_list_filter_plugin_without_components(): FILE: tests/unit_tests/plugin/test_plugin_list_sorting.py function test_plugin_list_sorting_debug_first (line 9) | async def test_plugin_list_sorting_debug_first(): function test_plugin_list_sorting_by_installation_time (line 111) | async def test_plugin_list_sorting_by_installation_time(): function test_plugin_list_empty (line 208) | async def test_plugin_list_empty(): FILE: tests/unit_tests/storage/test_storage_provider_selection.py class TestStorageProviderSelection (line 12) | class TestStorageProviderSelection: method test_default_to_local_storage (line 16) | async def test_default_to_local_storage(self): method test_explicit_local_storage (line 32) | async def test_explicit_local_storage(self): method test_s3_storage_provider_selection (line 48) | async def test_s3_storage_provider_selection(self): method test_invalid_storage_type_defaults_to_local (line 75) | async def test_invalid_storage_type_defaults_to_local(self): FILE: web/src/app/auth/space/callback/page.tsx function SpaceOAuthCallbackContent (line 25) | function SpaceOAuthCallbackContent() { function LoadingFallback (line 229) | function LoadingFallback() { function SpaceOAuthCallback (line 241) | function SpaceOAuthCallback() { FILE: web/src/app/home/bots/BotDetailDialog.tsx type BotDetailDialogProps (line 30) | interface BotDetailDialogProps { function BotDetailDialog (line 41) | function BotDetailDialog({ FILE: web/src/app/home/bots/components/bot-card/BotCard.tsx function BotCard (line 8) | function BotCard({ FILE: web/src/app/home/bots/components/bot-card/BotCardVO.ts type IBotCardVO (line 1) | interface IBotCardVO { class BotCardVO (line 13) | class BotCardVO implements IBotCardVO { method constructor (line 24) | constructor(props: IBotCardVO) { FILE: web/src/app/home/bots/components/bot-form/BotForm.tsx function BotForm (line 66) | function BotForm({ FILE: web/src/app/home/bots/components/bot-form/ChooseEntity.ts type IChooseAdapterEntity (line 1) | interface IChooseAdapterEntity { type IPipelineEntity (line 6) | interface IPipelineEntity { FILE: web/src/app/home/bots/components/bot-log/BotLogManager.ts class BotLogManager (line 7) | class BotLogManager { method constructor (line 12) | constructor(botId: string) { method startListenServerPush (line 16) | startListenServerPush() { method stopServerPush (line 27) | stopServerPush() { method subscribeLogPush (line 32) | subscribeLogPush(callback: (_: BotLog[]) => void) { method dispose (line 38) | dispose() { method getLogList (line 45) | private getLogList(next: number, count: number = 20) { method loadFirstPage (line 52) | async loadFirstPage() { method loadMore (line 56) | async loadMore(position: number, total: number) { method parseResponse (line 60) | private parseResponse(httpResponse: GetBotLogsResponse): BotLog[] { FILE: web/src/app/home/bots/components/bot-log/view/BotLogCard.tsx function BotLogCard (line 12) | function BotLogCard({ botLog }: { botLog: BotLog }) { FILE: web/src/app/home/bots/components/bot-log/view/BotLogListComponent.tsx function BotLogListComponent (line 21) | function BotLogListComponent({ botId }: { botId: string }) { FILE: web/src/app/home/bots/components/bot-session/BotSessionMonitor.tsx type SessionInfo (line 19) | interface SessionInfo { type SessionMessage (line 34) | interface SessionMessage { type BotSessionMonitorProps (line 52) | interface BotSessionMonitorProps { function BotSessionMonitor (line 56) | function BotSessionMonitor({ botId }: BotSessionMonitorProps) { FILE: web/src/app/home/bots/page.tsx function BotConfigPage (line 17) | function BotConfigPage() { FILE: web/src/app/home/components/account-settings-dialog/AccountSettingsDialog.tsx type AccountSettingsDialogProps (line 28) | interface AccountSettingsDialogProps { function AccountSettingsDialog (line 33) | function AccountSettingsDialog({ FILE: web/src/app/home/components/api-integration-dialog/ApiIntegrationDialog.tsx type ApiKey (line 43) | interface ApiKey { type Webhook (line 51) | interface Webhook { type ApiIntegrationDialogProps (line 60) | interface ApiIntegrationDialogProps { function ApiIntegrationDialog (line 65) | function ApiIntegrationDialog({ FILE: web/src/app/home/components/dynamic-form/DynamicFormComponent.tsx function DynamicFormComponent (line 18) | function DynamicFormComponent({ FILE: web/src/app/home/components/dynamic-form/DynamicFormItemComponent.tsx function DynamicFormItemComponent (line 42) | function DynamicFormItemComponent({ FILE: web/src/app/home/components/dynamic-form/DynamicFormItemConfig.ts class DynamicFormItemConfig (line 9) | class DynamicFormItemConfig implements IDynamicFormItemSchema { method constructor (line 20) | constructor(params: IDynamicFormItemSchema) { function isDynamicFormItemType (line 33) | function isDynamicFormItemType( function parseDynamicFormItemType (line 41) | function parseDynamicFormItemType(value: string): DynamicFormItemType { function getDefaultValues (line 45) | function getDefaultValues( FILE: web/src/app/home/components/dynamic-form/N8nAuthFormComponent.tsx function N8nAuthFormComponent (line 21) | function N8nAuthFormComponent({ FILE: web/src/app/home/components/home-sidebar/HomeSidebar.tsx function compareVersions (line 41) | function compareVersions(v1: string, v2: string): boolean { function HomeSidebar (line 61) | function HomeSidebar({ FILE: web/src/app/home/components/home-sidebar/HomeSidebarChild.tsx type ISidebarChildVO (line 4) | interface ISidebarChildVO { class SidebarChildVO (line 13) | class SidebarChildVO { method constructor (line 21) | constructor(props: ISidebarChildVO) { function SidebarChild (line 31) | function SidebarChild({ FILE: web/src/app/home/components/home-titlebar/HomeTitleBar.tsx function HomeTitleBar (line 5) | function HomeTitleBar({ FILE: web/src/app/home/components/models-dialog/ModelsDialog.tsx type ModelsDialogProps (line 27) | interface ModelsDialogProps { function convertExtraArgsToObject (line 32) | function convertExtraArgsToObject( function ModelsDialog (line 46) | function ModelsDialog({ FILE: web/src/app/home/components/models-dialog/component/provider-form/ProviderForm.tsx type ProviderFormProps (line 41) | interface ProviderFormProps { function ProviderForm (line 47) | function ProviderForm({ FILE: web/src/app/home/components/models-dialog/components/AddModelPopover.tsx type AddModelPopoverProps (line 19) | interface AddModelPopoverProps { function AddModelPopover (line 41) | function AddModelPopover({ FILE: web/src/app/home/components/models-dialog/components/ExtraArgsEditor.tsx type ExtraArgsEditorProps (line 17) | interface ExtraArgsEditorProps { function ExtraArgsEditor (line 23) | function ExtraArgsEditor({ FILE: web/src/app/home/components/models-dialog/components/ModelItem.tsx type ModelItemProps (line 21) | interface ModelItemProps { function convertExtraArgsToArray (line 48) | function convertExtraArgsToArray(extraArgs?: object): ExtraArg[] { function ModelItem (line 58) | function ModelItem({ FILE: web/src/app/home/components/models-dialog/components/ProviderCard.tsx type ProviderCardProps (line 33) | interface ProviderCardProps { function maskApiKey (line 82) | function maskApiKey(key: string): string { function ProviderCard (line 88) | function ProviderCard({ FILE: web/src/app/home/components/models-dialog/types.ts type ExtraArg (line 7) | type ExtraArg = { type ModelType (line 13) | type ModelType = 'llm' | 'embedding'; type ProviderModels (line 15) | interface ProviderModels { type TestResult (line 20) | interface TestResult { type ModelItemProps (line 25) | interface ModelItemProps { type ProviderCardProps (line 52) | interface ProviderCardProps { constant LANGBOT_MODELS_PROVIDER_REQUESTER (line 102) | const LANGBOT_MODELS_PROVIDER_REQUESTER = 'space-chat-completions'; FILE: web/src/app/home/components/new-version-dialog/NewVersionDialog.tsx type NewVersionDialogProps (line 23) | interface NewVersionDialogProps { function NewVersionDialog (line 29) | function NewVersionDialog({ FILE: web/src/app/home/components/password-change-dialog/PasswordChangeDialog.tsx type PasswordChangeDialogProps (line 29) | interface PasswordChangeDialogProps { function PasswordChangeDialog (line 35) | function PasswordChangeDialog({ FILE: web/src/app/home/components/survey/SurveyWidget.tsx function getI18nText (line 16) | function getI18nText(obj?: Record | null): string { type SurveyData (line 26) | interface SurveyData { function SurveyWidget (line 34) | function SurveyWidget() { function SingleSelectField (line 297) | function SingleSelectField({ function MultiSelectField (line 339) | function MultiSelectField({ FILE: web/src/app/home/knowledge/KBDetailDialog.tsx type KBDetailDialogProps (line 31) | interface KBDetailDialogProps { function KBDetailDialog (line 41) | function KBDetailDialog({ FILE: web/src/app/home/knowledge/components/kb-card/KBCard.tsx function KBCard (line 5) | function KBCard({ kbCardVO }: { kbCardVO: KnowledgeBaseVO }) { FILE: web/src/app/home/knowledge/components/kb-card/KBCardVO.ts type IKnowledgeBaseVO (line 4) | interface IKnowledgeBaseVO { class KnowledgeBaseVO (line 14) | class KnowledgeBaseVO implements IKnowledgeBaseVO { method constructor (line 23) | constructor(props: IKnowledgeBaseVO) { method hasDocumentCapability (line 36) | hasDocumentCapability(): boolean { method getEngineName (line 46) | getEngineName(): string { FILE: web/src/app/home/knowledge/components/kb-docs/FileUploadZone.tsx type FileUploadZoneProps (line 18) | interface FileUploadZoneProps { function FileUploadZone (line 26) | function FileUploadZone({ FILE: web/src/app/home/knowledge/components/kb-docs/KBDoc.tsx function KBDoc (line 11) | function KBDoc({ FILE: web/src/app/home/knowledge/components/kb-docs/documents/columns.tsx type DocumentFile (line 16) | type DocumentFile = { FILE: web/src/app/home/knowledge/components/kb-docs/documents/data-table.tsx type DataTableProps (line 19) | interface DataTableProps { function DataTable (line 24) | function DataTable({ FILE: web/src/app/home/knowledge/components/kb-form/ChooseEntity.ts type IEmbeddingModelEntity (line 1) | interface IEmbeddingModelEntity { FILE: web/src/app/home/knowledge/components/kb-form/KBForm.tsx function parseCreationSchema (line 55) | function parseCreationSchema( function KBForm (line 82) | function KBForm({ FILE: web/src/app/home/knowledge/components/kb-migration-dialog/KBMigrationDialog.tsx type KBMigrationDialogProps (line 19) | interface KBMigrationDialogProps { function KBMigrationDialog (line 27) | function KBMigrationDialog({ FILE: web/src/app/home/knowledge/components/kb-retrieve/KBRetrieveGeneric.tsx type KBRetrieveGenericProps (line 12) | interface KBRetrieveGenericProps { function KBRetrieveGeneric (line 25) | function KBRetrieveGeneric({ FILE: web/src/app/home/knowledge/page.tsx function KnowledgePage (line 14) | function KnowledgePage() { FILE: web/src/app/home/layout.tsx function HomeLayout (line 18) | function HomeLayout({ FILE: web/src/app/home/loading.tsx function Loading (line 3) | function Loading() { FILE: web/src/app/home/monitoring/components/ExportDropdown.tsx type ExportType (line 25) | type ExportType = type ExportDropdownProps (line 32) | interface ExportDropdownProps { function ExportDropdown (line 36) | function ExportDropdown({ filterState }: ExportDropdownProps) { FILE: web/src/app/home/monitoring/components/MessageContentRenderer.tsx type MessageContentRendererProps (line 14) | interface MessageContentRendererProps { function MessageContentRenderer (line 19) | function MessageContentRenderer({ FILE: web/src/app/home/monitoring/components/MessageDetailsCard.tsx type MessageDetailsCardProps (line 7) | interface MessageDetailsCardProps { function MessageDetailsCard (line 11) | function MessageDetailsCard({ details }: MessageDetailsCardProps) { FILE: web/src/app/home/monitoring/components/filters/MonitoringFilters.tsx type MonitoringFiltersProps (line 15) | interface MonitoringFiltersProps { type Bot (line 24) | interface Bot { type Pipeline (line 29) | interface Pipeline { function MonitoringFilters (line 34) | function MonitoringFilters({ FILE: web/src/app/home/monitoring/components/overview-cards/MetricCard.tsx type MetricCardProps (line 6) | interface MetricCardProps { function MetricCard (line 17) | function MetricCard({ FILE: web/src/app/home/monitoring/components/overview-cards/OverviewCards.tsx type OverviewCardsProps (line 13) | interface OverviewCardsProps { function OverviewCards (line 20) | function OverviewCards({ FILE: web/src/app/home/monitoring/components/overview-cards/TrafficChart.tsx type TrafficChartProps (line 17) | interface TrafficChartProps { type ChartDataPoint (line 23) | interface ChartDataPoint { function TrafficChart (line 30) | function TrafficChart({ FILE: web/src/app/home/monitoring/hooks/useMonitoringData.ts function useMonitoringData (line 14) | function useMonitoringData(filterState: FilterState) { FILE: web/src/app/home/monitoring/hooks/useMonitoringFilters.ts function useMonitoringFilters (line 9) | function useMonitoringFilters() { FILE: web/src/app/home/monitoring/page.tsx type RawMessageData (line 19) | interface RawMessageData { type RawLLMCallData (line 36) | interface RawLLMCallData { type RawLLMStatsData (line 48) | interface RawLLMStatsData { type RawErrorData (line 57) | interface RawErrorData { function MonitoringPageContent (line 65) | function MonitoringPageContent() { function MonitoringPage (line 813) | function MonitoringPage() { FILE: web/src/app/home/monitoring/types/monitoring.ts type MonitoringMessage (line 1) | interface MonitoringMessage { type LLMCall (line 18) | interface LLMCall { type EmbeddingCall (line 38) | interface EmbeddingCall { type ModelCall (line 56) | interface ModelCall { type SessionInfo (line 86) | interface SessionInfo { type ErrorLog (line 100) | interface ErrorLog { type MessageDetails (line 114) | interface MessageDetails { type OverviewMetrics (line 130) | interface OverviewMetrics { type FilterState (line 145) | interface FilterState { type TimeRangeOption (line 152) | type TimeRangeOption = type DateRange (line 160) | interface DateRange { type MonitoringData (line 165) | interface MonitoringData { FILE: web/src/app/home/monitoring/utils/dateUtils.ts function getPresetDateRange (line 6) | function getPresetDateRange(option: TimeRangeOption): DateRange | null { function formatTimestamp (line 38) | function formatTimestamp(date: Date): string { function formatDate (line 57) | function formatDate(date: Date): string { function formatDateTime (line 67) | function formatDateTime(date: Date): string { function formatDuration (line 78) | function formatDuration(seconds: number): string { function isDateInRange (line 89) | function isDateInRange(date: Date, range: DateRange | null): boolean { function parseDate (line 97) | function parseDate(dateStr: string): Date { FILE: web/src/app/home/page.tsx function Home (line 1) | function Home() { FILE: web/src/app/home/pipelines/PipelineDetailDialog.tsx type PipelineDialogProps (line 25) | interface PipelineDialogProps { type DialogMode (line 37) | type DialogMode = 'config' | 'debug' | 'extensions' | 'monitoring'; function PipelineDialog (line 39) | function PipelineDialog({ FILE: web/src/app/home/pipelines/components/debug-dialog/AtBadge.tsx type AtBadgeProps (line 4) | interface AtBadgeProps { function AtBadge (line 10) | function AtBadge({ FILE: web/src/app/home/pipelines/components/debug-dialog/DebugDialog.tsx type DebugDialogProps (line 33) | interface DebugDialogProps { function DebugDialog (line 40) | function DebugDialog({ FILE: web/src/app/home/pipelines/components/debug-dialog/ImagePreviewDialog.tsx type ImagePreviewDialogProps (line 3) | interface ImagePreviewDialogProps { function ImagePreviewDialog (line 9) | function ImagePreviewDialog({ FILE: web/src/app/home/pipelines/components/monitoring-tab/PipelineMonitoringTab.tsx type PipelineMonitoringTabProps (line 14) | interface PipelineMonitoringTabProps { type RawMessageData (line 19) | interface RawMessageData { type RawLLMCallData (line 36) | interface RawLLMCallData { type RawLLMStatsData (line 48) | interface RawLLMStatsData { type RawErrorData (line 57) | interface RawErrorData { function PipelineMonitoringTab (line 65) | function PipelineMonitoringTab({ FILE: web/src/app/home/pipelines/components/pipeline-card/PipelineCard.tsx function PipelineCard (line 5) | function PipelineCard({ cardVO }: { cardVO: PipelineCardVO }) { FILE: web/src/app/home/pipelines/components/pipeline-card/PipelineCardVO.ts type IPipelineCardVO (line 1) | interface IPipelineCardVO { class PipelineCardVO (line 10) | class PipelineCardVO implements IPipelineCardVO { method constructor (line 18) | constructor(props: IPipelineCardVO) { FILE: web/src/app/home/pipelines/components/pipeline-extensions/PipelineExtension.tsx function PipelineExtension (line 25) | function PipelineExtension({ FILE: web/src/app/home/pipelines/components/pipeline-form/PipelineFormComponent.tsx function PipelineFormComponent (line 36) | function PipelineFormComponent({ type FormLabel (line 620) | interface FormLabel { FILE: web/src/app/home/pipelines/page.tsx function PluginConfigPage (line 20) | function PluginConfigPage() { FILE: web/src/app/home/plugins/components/plugin-installed/PluginCardVO.ts type IPluginCardVO (line 3) | interface IPluginCardVO { class PluginCardVO (line 19) | class PluginCardVO implements IPluginCardVO { method constructor (line 34) | constructor(prop: IPluginCardVO) { FILE: web/src/app/home/plugins/components/plugin-installed/PluginComponentList.tsx function PluginComponentList (line 5) | function PluginComponentList({ FILE: web/src/app/home/plugins/components/plugin-installed/PluginInstalledComponent.tsx type PluginInstalledComponentRef (line 27) | interface PluginInstalledComponentRef { type PluginOperationType (line 31) | enum PluginOperationType { function initData (line 73) | function initData() { function getPluginList (line 77) | async function getPluginList() { function handlePluginClick (line 167) | function handlePluginClick(plugin: PluginCardVO) { function handleViewReadme (line 172) | function handleViewReadme(plugin: PluginCardVO) { function handlePluginDelete (line 177) | function handlePluginDelete(plugin: PluginCardVO) { function handlePluginUpdate (line 185) | function handlePluginUpdate(plugin: PluginCardVO) { function executeOperation (line 192) | function executeOperation() { FILE: web/src/app/home/plugins/components/plugin-installed/plugin-card/PluginCardComponent.tsx function PluginCardComponent (line 25) | function PluginCardComponent({ FILE: web/src/app/home/plugins/components/plugin-installed/plugin-form/PluginForm.tsx function PluginForm (line 12) | function PluginForm({ FILE: web/src/app/home/plugins/components/plugin-installed/plugin-readme/PluginReadme.tsx function PluginReadme (line 14) | function PluginReadme({ FILE: web/src/app/home/plugins/components/plugin-market/PluginMarketComponent.tsx type SortOption (line 35) | interface SortOption { function MarketPageContent (line 43) | function MarketPageContent({ function MarketPage (line 590) | function MarketPage({ FILE: web/src/app/home/plugins/components/plugin-market/RecommendationLists.tsx type RecommendationList (line 14) | interface RecommendationList { function pluginToVO (line 23) | function pluginToVO( function RecommendationListRow (line 46) | function RecommendationListRow({ function RecommendationLists (line 155) | function RecommendationLists({ FILE: web/src/app/home/plugins/components/plugin-market/TagsFilter.tsx type TagsFilterProps (line 17) | interface TagsFilterProps { function TagsFilter (line 23) | function TagsFilter({ FILE: web/src/app/home/plugins/components/plugin-market/plugin-market-card/PluginMarketCardComponent.tsx function PluginMarketCardComponent (line 23) | function PluginMarketCardComponent({ FILE: web/src/app/home/plugins/components/plugin-market/plugin-market-card/PluginMarketCardVO.ts type IPluginMarketCardVO (line 1) | interface IPluginMarketCardVO { class PluginMarketCardVO (line 15) | class PluginMarketCardVO implements IPluginMarketCardVO { method constructor (line 28) | constructor(prop: IPluginMarketCardVO) { FILE: web/src/app/home/plugins/mcp-server/MCPCardVO.ts class MCPCardVO (line 3) | class MCPCardVO { method constructor (line 11) | constructor(data: MCPServer) { FILE: web/src/app/home/plugins/mcp-server/MCPServerComponent.tsx function MCPComponent (line 11) | function MCPComponent({ FILE: web/src/app/home/plugins/mcp-server/mcp-card/MCPCardComponent.tsx function MCPCardComponent (line 12) | function MCPCardComponent({ FILE: web/src/app/home/plugins/mcp-server/mcp-form/MCPDeleteConfirmDialog.tsx type MCPDeleteConfirmDialogProps (line 17) | interface MCPDeleteConfirmDialogProps { function MCPDeleteConfirmDialog (line 24) | function MCPDeleteConfirmDialog({ FILE: web/src/app/home/plugins/mcp-server/mcp-form/MCPFormDialog.tsx function StatusDisplay (line 53) | function StatusDisplay({ function ToolsList (line 149) | function ToolsList({ tools }: { tools: MCPTool[] }) { type FormValues (line 216) | type FormValues = z.infer> & { type MCPFormDialogProps (line 221) | interface MCPFormDialogProps { function MCPFormDialog (line 230) | function MCPFormDialog({ FILE: web/src/app/home/plugins/page.tsx type PluginInstallStatus (line 59) | enum PluginInstallStatus { type GithubRelease (line 68) | interface GithubRelease { type GithubAsset (line 77) | interface GithubAsset { function PluginConfigPage (line 85) | function PluginConfigPage() { FILE: web/src/app/infra/basic-component/create-card-component/CreateCardComponent.tsx function CreateCardComponent (line 3) | function CreateCardComponent({ FILE: web/src/app/infra/entities/api/index.ts type ApiResponse (line 7) | interface ApiResponse { type AsyncTaskCreatedResp (line 13) | interface AsyncTaskCreatedResp { type ApiRespProviderRequesters (line 17) | interface ApiRespProviderRequesters { type ApiRespProviderRequester (line 21) | interface ApiRespProviderRequester { type Requester (line 25) | interface Requester { type ApiRespProviderLLMModels (line 36) | interface ApiRespProviderLLMModels { type ApiRespProviderLLMModel (line 40) | interface ApiRespProviderLLMModel { type ModelProvider (line 44) | interface ModelProvider { type ApiRespModelProviders (line 56) | interface ApiRespModelProviders { type ApiRespModelProvider (line 60) | interface ApiRespModelProvider { type LLMModel (line 64) | interface LLMModel { type ApiRespProviderEmbeddingModels (line 73) | interface ApiRespProviderEmbeddingModels { type ApiRespProviderEmbeddingModel (line 77) | interface ApiRespProviderEmbeddingModel { type EmbeddingModel (line 81) | interface EmbeddingModel { type ApiRespPipelines (line 89) | interface ApiRespPipelines { type Pipeline (line 93) | interface Pipeline { type ApiRespPlatformAdapters (line 106) | interface ApiRespPlatformAdapters { type ApiRespPlatformAdapter (line 110) | interface ApiRespPlatformAdapter { type Adapter (line 114) | interface Adapter { type ApiRespPlatformBots (line 124) | interface ApiRespPlatformBots { type ApiRespPlatformBot (line 128) | interface ApiRespPlatformBot { type Bot (line 132) | interface Bot { type ApiRespKnowledgeBases (line 146) | interface ApiRespKnowledgeBases { type ApiRespKnowledgeBase (line 150) | interface ApiRespKnowledgeBase { type KnowledgeBase (line 154) | interface KnowledgeBase { type KnowledgeEngineInfo (line 169) | interface KnowledgeEngineInfo { type KnowledgeEngine (line 175) | interface KnowledgeEngine { type ApiRespKnowledgeEngines (line 186) | interface ApiRespKnowledgeEngines { type ParserInfo (line 190) | interface ParserInfo { type ApiRespParsers (line 197) | interface ApiRespParsers { type ApiRespKnowledgeBaseFiles (line 201) | interface ApiRespKnowledgeBaseFiles { type KnowledgeBaseFile (line 205) | interface KnowledgeBaseFile { type ApiRespPlugins (line 212) | interface ApiRespPlugins { type ApiRespPlugin (line 216) | interface ApiRespPlugin { type ApiRespPluginConfig (line 237) | interface ApiRespPluginConfig { type PluginReorderElement (line 241) | interface PluginReorderElement { type SystemLimitation (line 248) | interface SystemLimitation { type ApiRespSystemInfo (line 254) | interface ApiRespSystemInfo { type RagMigrationStatusResp (line 265) | interface RagMigrationStatusResp { type ApiRespPluginSystemStatus (line 271) | interface ApiRespPluginSystemStatus { type ApiRespAsyncTasks (line 277) | interface ApiRespAsyncTasks { type AsyncTaskRuntimeInfo (line 281) | interface AsyncTaskRuntimeInfo { type AsyncTaskTaskContext (line 288) | interface AsyncTaskTaskContext { type AsyncTask (line 293) | interface AsyncTask { type ApiRespUserToken (line 302) | interface ApiRespUserToken { type ApiRespMarketplacePlugins (line 306) | interface ApiRespMarketplacePlugins { type ApiRespMarketplacePluginDetail (line 311) | interface ApiRespMarketplacePluginDetail { type GetPipelineConfig (line 315) | interface GetPipelineConfig { type GetPipeline (line 322) | interface GetPipeline { type GetPipelineResponseData (line 335) | interface GetPipelineResponseData { type GetPipelineMetadataResponseData (line 339) | interface GetPipelineMetadataResponseData { type ApiRespWebChatMessage (line 343) | interface ApiRespWebChatMessage { type ApiRespWebChatMessages (line 347) | interface ApiRespWebChatMessages { type RetrieveResultContent (line 351) | interface RetrieveResultContent { type RetrieveResult (line 360) | interface RetrieveResult { type ApiRespKnowledgeBaseRetrieve (line 372) | interface ApiRespKnowledgeBaseRetrieve { type ApiRespMCPServers (line 377) | interface ApiRespMCPServers { type ApiRespMCPServer (line 381) | interface ApiRespMCPServer { type MCPServerExtraArgsSSE (line 385) | interface MCPServerExtraArgsSSE { type MCPServerExtraArgsStdio (line 392) | interface MCPServerExtraArgsStdio { type MCPServerExtraArgsHttp (line 398) | interface MCPServerExtraArgsHttp { type MCPSessionStatus (line 404) | enum MCPSessionStatus { type MCPServerRuntimeInfo (line 410) | interface MCPServerRuntimeInfo { type MCPServer (line 417) | type MCPServer = type MCPTool (line 449) | interface MCPTool { FILE: web/src/app/infra/entities/common.ts type I18nObject (line 1) | interface I18nObject { type ComponentManifest (line 8) | interface ComponentManifest { type CustomApiError (line 23) | interface CustomApiError { FILE: web/src/app/infra/entities/form/dynamic.ts type IShowIfCondition (line 3) | interface IShowIfCondition { type IDynamicFormItemSchema (line 10) | interface IDynamicFormItemSchema { type DynamicFormItemType (line 26) | enum DynamicFormItemType { type IFileConfig (line 47) | interface IFileConfig { type IDynamicFormItemOption (line 52) | interface IDynamicFormItemOption { FILE: web/src/app/infra/entities/message/index.ts type MessageComponent (line 2) | interface MessageComponent { type Source (line 7) | interface Source extends MessageComponent { type Plain (line 14) | interface Plain extends MessageComponent { type Quote (line 20) | interface Quote extends MessageComponent { type At (line 30) | interface At extends MessageComponent { type AtAll (line 37) | interface AtAll extends MessageComponent { type Image (line 42) | interface Image extends MessageComponent { type Voice (line 51) | interface Voice extends MessageComponent { type File (line 61) | interface File extends MessageComponent { type Unknown (line 70) | interface Unknown extends MessageComponent { type ForwardMessageNode (line 76) | interface ForwardMessageNode { type ForwardMessageDisplay (line 84) | interface ForwardMessageDisplay { type Forward (line 93) | interface Forward extends MessageComponent { type WeChatMiniPrograms (line 100) | interface WeChatMiniPrograms extends MessageComponent { type WeChatEmoji (line 110) | interface WeChatEmoji extends MessageComponent { type WeChatLink (line 116) | interface WeChatLink extends MessageComponent { type MessageChainComponent (line 125) | type MessageChainComponent = type Message (line 141) | interface Message { FILE: web/src/app/infra/entities/pipeline/index.ts type PipelineFormEntity (line 4) | interface PipelineFormEntity { type PipelineConfigTab (line 12) | interface PipelineConfigTab { type PipelineConfigStage (line 18) | interface PipelineConfigStage { FILE: web/src/app/infra/entities/plugin/index.ts type Plugin (line 3) | interface Plugin { type PluginComponent (line 17) | interface PluginComponent { type PluginV4Status (line 25) | enum PluginV4Status { type PluginV4 (line 31) | interface PluginV4 { FILE: web/src/app/infra/http/BackendClient.ts class BackendClient (line 53) | class BackendClient extends BaseHttpClient { method constructor (line 54) | constructor(baseURL: string) { method getProviderRequesters (line 59) | public getProviderRequesters( method getProviderRequester (line 65) | public getProviderRequester(name: string): Promise { method getModelProvider (line 86) | public getModelProvider(uuid: string): Promise { method createModelProvider (line 90) | public createModelProvider( method updateModelProvider (line 96) | public updateModelProvider( method deleteModelProvider (line 103) | public deleteModelProvider(uuid: string): Promise { method getProviderLLMModels (line 108) | public getProviderLLMModels( method getProviderLLMModel (line 115) | public getProviderLLMModel(uuid: string): Promise { method deleteProviderLLMModel (line 123) | public deleteProviderLLMModel(uuid: string): Promise { method updateProviderLLMModel (line 127) | public updateProviderLLMModel( method testLLMModel (line 134) | public testLLMModel(uuid: string, model: LLMModel): Promise { method getProviderEmbeddingModels (line 139) | public getProviderEmbeddingModels( method getProviderEmbeddingModel (line 146) | public getProviderEmbeddingModel( method createProviderEmbeddingModel (line 152) | public createProviderEmbeddingModel(model: EmbeddingModel): Promise { method updateProviderEmbeddingModel (line 160) | public updateProviderEmbeddingModel( method testEmbeddingModel (line 167) | public testEmbeddingModel( method getGeneralPipelineMetadata (line 175) | public getGeneralPipelineMetadata(): Promise { method createPipeline (line 195) | public createPipeline(pipeline: Pipeline): Promise<{ method updatePipeline (line 201) | public updatePipeline(uuid: string, pipeline: Pipeline): Promise { method copyPipeline (line 209) | public copyPipeline(uuid: string): Promise<{ uuid: string }> { method getPipelineExtensions (line 213) | public getPipelineExtensions(uuid: string): Promise<{ method updatePipelineExtensions (line 224) | public updatePipelineExtensions( method getWebSocketHistoryMessages (line 240) | public getWebSocketHistoryMessages( method uploadWebSocketImage (line 249) | public async uploadWebSocketImage( method resetWebSocketSession (line 259) | public resetWebSocketSession( method getWebSocketConnections (line 266) | public getWebSocketConnections(pipelineId: string): Promise<{ method broadcastWebSocketMessage (line 284) | public broadcastWebSocketMessage( method getAdapters (line 294) | public getAdapters(): Promise { method getAdapter (line 298) | public getAdapter(name: string): Promise { method getAdapterIconURL (line 302) | public getAdapterIconURL(name: string): string { method getBots (line 315) | public getBots(): Promise { method getBot (line 319) | public getBot(uuid: string): Promise { method createBot (line 323) | public createBot(bot: Bot): Promise<{ uuid: string }> { method updateBot (line 327) | public updateBot(uuid: string, bot: Bot): Promise { method deleteBot (line 331) | public deleteBot(uuid: string): Promise { method getBotLogs (line 335) | public getBotLogs( method getBotSessions (line 342) | public getBotSessions( method getSessionMessages (line 370) | public getSessionMessages( method uploadDocumentFile (line 403) | public uploadDocumentFile(file: File): Promise<{ file_id: string }> { method getKnowledgeBases (line 418) | public getKnowledgeBases(): Promise { method getKnowledgeBase (line 422) | public getKnowledgeBase(uuid: string): Promise { method createKnowledgeBase (line 426) | public createKnowledgeBase(base: KnowledgeBase): Promise<{ uuid: strin... method updateKnowledgeBase (line 430) | public updateKnowledgeBase( method uploadKnowledgeBaseFile (line 437) | public uploadKnowledgeBaseFile( method getKnowledgeBaseFiles (line 448) | public getKnowledgeBaseFiles( method deleteKnowledgeBaseFile (line 454) | public deleteKnowledgeBaseFile( method deleteKnowledgeBase (line 461) | public deleteKnowledgeBase(uuid: string): Promise { method retrieveKnowledgeBase (line 465) | public retrieveKnowledgeBase( method getKnowledgeEngines (line 477) | public getKnowledgeEngines(): Promise { method listParsers (line 482) | public listParsers(mimeType?: string): Promise { method getPlugins (line 488) | public getPlugins(): Promise { method getPlugin (line 492) | public getPlugin(author: string, name: string): Promise { method getPluginConfig (line 496) | public getPluginConfig( method updatePluginConfig (line 503) | public updatePluginConfig( method uploadPluginConfigFile (line 511) | public uploadPluginConfigFile(file: File): Promise<{ file_key: string ... method deletePluginConfigFile (line 525) | public deletePluginConfigFile( method getPluginReadme (line 531) | public getPluginReadme( method getPluginAssetURL (line 541) | public getPluginAssetURL( method getPluginIconURL (line 552) | public getPluginIconURL(author: string, name: string): string { method installPluginFromGithub (line 563) | public installPluginFromGithub( method getGithubReleases (line 577) | public getGithubReleases(repoUrl: string): Promise<{ method getGithubReleaseAssets (line 592) | public getGithubReleaseAssets( method installPluginFromLocal (line 612) | public installPluginFromLocal(file: File): Promise { method getMCPServer (line 652) | public getMCPServer(serverName: string): Promise { method createMCPServer (line 656) | public createMCPServer(server: MCPServer): Promise { method getAsyncTasks (line 704) | public getAsyncTasks(): Promise { method getAsyncTask (line 708) | public getAsyncTask(id: number): Promise { method getPluginSystemStatus (line 712) | public getPluginSystemStatus(): Promise { method getRagMigrationStatus (line 717) | public getRagMigrationStatus(): Promise { method executeRagMigration (line 721) | public executeRagMigration( method dismissRagMigration (line 729) | public dismissRagMigration(): Promise { method getPluginDebugInfo (line 733) | public getPluginDebugInfo(): Promise<{ method checkIfInited (line 741) | public checkIfInited(): Promise<{ initialized: boolean }> { method initUser (line 745) | public initUser(user: string, password: string): Promise { method authUser (line 749) | public authUser(user: string, password: string): Promise { method resetPassword (line 757) | public resetPassword( method changePassword (line 769) | public changePassword( method getUserInfo (line 779) | public getUserInfo(): Promise<{ method getSpaceCredits (line 787) | public getSpaceCredits(): Promise<{ credits: number | null }> { method getAccountInfo (line 791) | public getAccountInfo(): Promise<{ method setPassword (line 799) | public setPassword( method bindSpaceAccount (line 809) | public async bindSpaceAccount( method getSpaceAuthorizeUrl (line 831) | public getSpaceAuthorizeUrl( method exchangeSpaceOAuthCode (line 844) | public async exchangeSpaceOAuthCode(code: string): Promise<{ method getMonitoringData (line 861) | public getMonitoringData(params: { method getMonitoringOverview (line 978) | public getMonitoringOverview(params: { method getSurveyPending (line 1007) | public getSurveyPending(): Promise<{ method submitSurveyResponse (line 1019) | public submitSurveyResponse( method dismissSurvey (line 1031) | public dismissSurvey(surveyId: string): Promise { type SurveyQuestion (line 1036) | interface SurveyQuestion { type SurveyOption (line 1047) | interface SurveyOption { FILE: web/src/app/infra/http/BaseHttpClient.ts type JSONValue (line 8) | type JSONValue = string | number | boolean | JSONObject | JSONArray | null; type JSONObject (line 9) | interface JSONObject { type JSONArray (line 12) | type JSONArray = Array; type ResponseData (line 14) | interface ResponseData { type RequestConfig (line 21) | interface RequestConfig extends AxiosRequestConfig { method constructor (line 35) | constructor(baseURL: string, disableToken?: boolean) { method getBaseUrl (line 51) | public getBaseUrl(): string { method updateBaseURL (line 56) | public updateBaseURL(newBaseURL: string): void { method getSessionSync (line 62) | protected getSessionSync(): string | null { method initInterceptors (line 70) | protected initInterceptors(): void { method convertKeysToCamel (line 132) | protected convertKeysToCamel(obj: JSONValue): JSONValue { method handleError (line 148) | protected handleError(error: object): never { method request (line 156) | public async request(config: RequestConfig): Promise { method get (line 166) | public get( method post (line 174) | public post( method put (line 182) | public put( method delete (line 190) | public delete(url: string, config?: RequestConfig): Promise... method postFile (line 194) | public postFile( method downloadFile (line 210) | public async downloadFile( FILE: web/src/app/infra/http/CloudServiceClient.ts class CloudServiceClient (line 13) | class CloudServiceClient extends BaseHttpClient { method constructor (line 14) | constructor(baseURL: string = '') { method getMarketplacePlugins (line 19) | public getMarketplacePlugins( method searchMarketplacePlugins (line 33) | public searchMarketplacePlugins( method getPluginDetail (line 56) | public getPluginDetail( method getPluginREADME (line 65) | public getPluginREADME( method getPluginIconURL (line 76) | public getPluginIconURL(author: string, name: string): string { method getPluginAssetURL (line 80) | public getPluginAssetURL( method getPluginMarketplaceURL (line 88) | public getPluginMarketplaceURL( method getLangBotReleases (line 96) | public getLangBotReleases(): Promise { method getAllTags (line 100) | public getAllTags(): Promise<{ tags: PluginTag[] }> { method getRecommendationLists (line 104) | public getRecommendationLists(): Promise<{ lists: RecommendationList[]... type RecommendationList (line 111) | interface RecommendationList { type PluginTag (line 118) | interface PluginTag { type GitHubRelease (line 128) | interface GitHubRelease { FILE: web/src/app/infra/http/requestParam/bots/GetBotLogsRequest.ts type GetBotLogsRequest (line 1) | interface GetBotLogsRequest { FILE: web/src/app/infra/http/requestParam/bots/GetBotLogsResponse.ts type GetBotLogsResponse (line 1) | interface GetBotLogsResponse { type BotLog (line 6) | interface BotLog { FILE: web/src/app/infra/websocket/WebSocketClient.ts type WebSocketMessage (line 5) | interface WebSocketMessage { type WebSocketResponse (line 15) | interface WebSocketResponse { class WebSocketClient (line 31) | class WebSocketClient { method constructor (line 48) | constructor( method connect (line 57) | public connect(): Promise { method handleMessage (line 147) | private handleMessage(data: WebSocketResponse) { method sendMessage (line 205) | public sendMessage( method sendHeartbeat (line 225) | private sendHeartbeat() { method startHeartbeat (line 236) | private startHeartbeat() { method stopHeartbeat (line 246) | private stopHeartbeat() { method disconnect (line 256) | public disconnect() { method getConnectionId (line 278) | public getConnectionId(): string | null { method isConnected (line 285) | public isConnected(): boolean { method onConnected (line 291) | public onConnected(callback: (data: WebSocketResponse) => void) { method onMessage (line 296) | public onMessage(callback: (data: WebSocketMessage) => void) { method onError (line 301) | public onError(callback: (error: Error) => void) { method onClose (line 306) | public onClose(callback: () => void) { method onBroadcast (line 311) | public onBroadcast(callback: (message: string) => void) { FILE: web/src/app/layout.tsx function RootLayout (line 14) | function RootLayout({ FILE: web/src/app/login/layout.tsx function LoginLayout (line 5) | function LoginLayout({ FILE: web/src/app/login/page.tsx type AccountType (line 40) | type AccountType = 'local' | 'space'; function Login (line 42) | function Login() { FILE: web/src/app/page.tsx function Home (line 6) | function Home() { FILE: web/src/app/register/layout.tsx function RegisterLayout (line 5) | function RegisterLayout({ FILE: web/src/app/register/page.tsx function Register (line 44) | function Register() { FILE: web/src/app/reset-password/layout.tsx function ResetPasswordLayout (line 5) | function ResetPasswordLayout({ FILE: web/src/app/reset-password/page.tsx constant REGEXP_ONLY_DIGITS_AND_CHARS (line 38) | const REGEXP_ONLY_DIGITS_AND_CHARS = /^[0-9a-zA-Z]+$/; function ResetPassword (line 47) | function ResetPassword() { FILE: web/src/app/utils/versionCompare.ts function isNewerVersion (line 9) | function isNewerVersion(version1: string, version2: string): boolean { FILE: web/src/components/providers/theme-provider.tsx function ThemeProvider (line 6) | function ThemeProvider({ children, ...props }: ThemeProviderProps) { FILE: web/src/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({ FILE: web/src/components/ui/badge.tsx function Badge (line 28) | function Badge({ FILE: web/src/components/ui/breadcrumb.tsx function Breadcrumb (line 7) | function Breadcrumb({ ...props }: React.ComponentProps<'nav'>) { function BreadcrumbList (line 11) | function BreadcrumbList({ className, ...props }: React.ComponentProps<'o... function BreadcrumbItem (line 24) | function BreadcrumbItem({ className, ...props }: React.ComponentProps<'l... function BreadcrumbLink (line 34) | function BreadcrumbLink({ function BreadcrumbPage (line 52) | function BreadcrumbPage({ className, ...props }: React.ComponentProps<'s... function BreadcrumbSeparator (line 65) | function BreadcrumbSeparator({ function BreadcrumbEllipsis (line 83) | function BreadcrumbEllipsis({ FILE: web/src/components/ui/button.tsx function Button (line 38) | function Button({ FILE: web/src/components/ui/card.tsx function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<'div'>) { function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<'... function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<'div'>) { function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<'div'... function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { FILE: web/src/components/ui/checkbox.tsx function Checkbox (line 9) | function Checkbox({ FILE: web/src/components/ui/collapsible.tsx function Collapsible (line 5) | function Collapsible({ function CollapsibleTrigger (line 11) | function CollapsibleTrigger({ function CollapsibleContent (line 22) | function CollapsibleContent({ FILE: web/src/components/ui/context-menu.tsx function ContextMenu (line 9) | function ContextMenu({ function ContextMenuTrigger (line 15) | function ContextMenuTrigger({ function ContextMenuGroup (line 23) | function ContextMenuGroup({ function ContextMenuPortal (line 31) | function ContextMenuPortal({ function ContextMenuSub (line 39) | function ContextMenuSub({ function ContextMenuRadioGroup (line 45) | function ContextMenuRadioGroup({ function ContextMenuSubTrigger (line 56) | function ContextMenuSubTrigger({ function ContextMenuSubContent (line 80) | function ContextMenuSubContent({ function ContextMenuContent (line 96) | function ContextMenuContent({ function ContextMenuItem (line 114) | function ContextMenuItem({ function ContextMenuCheckboxItem (line 137) | function ContextMenuCheckboxItem({ function ContextMenuRadioItem (line 163) | function ContextMenuRadioItem({ function ContextMenuLabel (line 187) | function ContextMenuLabel({ function ContextMenuSeparator (line 207) | function ContextMenuSeparator({ function ContextMenuShortcut (line 220) | function ContextMenuShortcut({ FILE: web/src/components/ui/dialog.tsx function Dialog (line 9) | function Dialog({ function DialogTrigger (line 77) | function DialogTrigger({ function DialogPortal (line 83) | function DialogPortal({ function DialogClose (line 89) | function DialogClose({ function DialogOverlay (line 95) | function DialogOverlay({ function DialogContent (line 111) | function DialogContent({ function DialogHeader (line 137) | function DialogHeader({ className, ...props }: React.ComponentProps<'div... function DialogFooter (line 147) | function DialogFooter({ className, ...props }: React.ComponentProps<'div... function DialogTitle (line 160) | function DialogTitle({ function DialogDescription (line 173) | function DialogDescription({ FILE: web/src/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 54) | function DropdownMenuGroup({ function DropdownMenuItem (line 62) | function DropdownMenuItem({ function DropdownMenuCheckboxItem (line 85) | function DropdownMenuCheckboxItem({ function DropdownMenuRadioGroup (line 111) | function DropdownMenuRadioGroup({ function DropdownMenuRadioItem (line 122) | function DropdownMenuRadioItem({ function DropdownMenuLabel (line 146) | function DropdownMenuLabel({ function DropdownMenuSeparator (line 166) | function DropdownMenuSeparator({ function DropdownMenuShortcut (line 179) | function DropdownMenuShortcut({ function DropdownMenuSub (line 195) | function DropdownMenuSub({ function DropdownMenuSubTrigger (line 201) | function DropdownMenuSubTrigger({ function DropdownMenuSubContent (line 225) | function DropdownMenuSubContent({ FILE: web/src/components/ui/emoji-picker.tsx type EmojiPickerProps (line 9) | interface EmojiPickerProps { constant EMOJI_CATEGORIES (line 16) | const EMOJI_CATEGORIES = { constant CATEGORY_LABELS (line 155) | const CATEGORY_LABELS: { [key: string]: string } = { constant CATEGORY_ICONS (line 167) | const CATEGORY_ICONS: { [key: string]: string } = { function EmojiPicker (line 178) | function EmojiPicker({ FILE: web/src/components/ui/form.tsx type FormFieldContextValue (line 21) | type FormFieldContextValue< type FormItemContextValue (line 68) | type FormItemContextValue = { function FormItem (line 76) | function FormItem({ className, ...props }: React.ComponentProps<'div'>) { function FormLabel (line 90) | function FormLabel({ function FormControl (line 107) | function FormControl({ ...props }: React.ComponentProps) { function FormDescription (line 126) | function FormDescription({ className, ...props }: React.ComponentProps<'... function FormMessage (line 139) | function FormMessage({ className, ...props }: React.ComponentProps<'p'>) { FILE: web/src/components/ui/hover-card.tsx function HoverCard (line 8) | function HoverCard({ function HoverCardTrigger (line 14) | function HoverCardTrigger({ function HoverCardContent (line 22) | function HoverCardContent({ FILE: web/src/components/ui/input-otp.tsx function InputOTP (line 9) | function InputOTP({ function InputOTPGroup (line 29) | function InputOTPGroup({ className, ...props }: React.ComponentProps<'di... function InputOTPSlot (line 39) | function InputOTPSlot({ function InputOTPSeparator (line 69) | function InputOTPSeparator({ ...props }: React.ComponentProps<'div'>) { FILE: web/src/components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<'inpu... FILE: web/src/components/ui/item.tsx function ItemGroup (line 8) | function ItemGroup({ className, ...props }: React.ComponentProps<'div'>) { function ItemSeparator (line 19) | function ItemSeparator({ function Item (line 54) | function Item({ function ItemMedia (line 91) | function ItemMedia({ function ItemContent (line 106) | function ItemContent({ className, ...props }: React.ComponentProps<'div'... function ItemTitle (line 119) | function ItemTitle({ className, ...props }: React.ComponentProps<'div'>) { function ItemDescription (line 132) | function ItemDescription({ className, ...props }: React.ComponentProps<'... function ItemActions (line 146) | function ItemActions({ className, ...props }: React.ComponentProps<'div'... function ItemHeader (line 156) | function ItemHeader({ className, ...props }: React.ComponentProps<'div'>) { function ItemFooter (line 169) | function ItemFooter({ className, ...props }: React.ComponentProps<'div'>) { FILE: web/src/components/ui/label.tsx function Label (line 8) | function Label({ FILE: web/src/components/ui/language-selector.tsx type LanguageSelectorProps (line 15) | interface LanguageSelectorProps { function LanguageSelector (line 21) | function LanguageSelector({ FILE: web/src/components/ui/loading-spinner.tsx type LoadingSpinnerProps (line 4) | interface LoadingSpinnerProps { function LoadingSpinner (line 37) | function LoadingSpinner({ function LoadingPage (line 68) | function LoadingPage({ text }: { text?: string }) { function LoadingInline (line 75) | function LoadingInline({ FILE: web/src/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: web/src/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({ FILE: web/src/components/ui/scroll-area.tsx function ScrollArea (line 8) | function ScrollArea({ function ScrollBar (line 31) | function ScrollBar({ FILE: web/src/components/ui/select.tsx function Select (line 9) | function Select({ function SelectGroup (line 15) | function SelectGroup({ function SelectValue (line 21) | function SelectValue({ function SelectTrigger (line 27) | function SelectTrigger({ function SelectContent (line 53) | function SelectContent({ function SelectLabel (line 88) | function SelectLabel({ function SelectItem (line 101) | function SelectItem({ function SelectSeparator (line 125) | function SelectSeparator({ function SelectScrollUpButton (line 138) | function SelectScrollUpButton({ function SelectScrollDownButton (line 156) | function SelectScrollDownButton({ FILE: web/src/components/ui/separator.tsx function Separator (line 8) | function Separator({ FILE: web/src/components/ui/sheet.tsx function Sheet (line 9) | function Sheet({ ...props }: React.ComponentProps) { function SidebarMenuItem (line 465) | function SidebarMenuItem({ className, ...props }: React.ComponentProps<'... function SidebarMenuButton (line 498) | function SidebarMenuButton({ function SidebarMenuAction (line 548) | function SidebarMenuAction({ function SidebarMenuBadge (line 580) | function SidebarMenuBadge({ function SidebarMenuSkeleton (line 602) | function SidebarMenuSkeleton({ function SidebarMenuSub (line 640) | function SidebarMenuSub({ className, ...props }: React.ComponentProps<'u... function SidebarMenuSubItem (line 655) | function SidebarMenuSubItem({ function SidebarMenuSubButton (line 669) | function SidebarMenuSubButton({ FILE: web/src/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ className, ...props }: React.ComponentProps<'div'>) { FILE: web/src/components/ui/switch.tsx function Switch (line 8) | function Switch({ FILE: web/src/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: web/src/components/ui/tabs.tsx function Tabs (line 8) | function Tabs({ function TabsList (line 21) | function TabsList({ function TabsTrigger (line 37) | function TabsTrigger({ function TabsContent (line 53) | function TabsContent({ FILE: web/src/components/ui/textarea.tsx function Textarea (line 5) | function Textarea({ className, ...props }: React.ComponentProps<'textare... FILE: web/src/components/ui/theme-toggle.tsx function ThemeToggle (line 9) | function ThemeToggle() { FILE: web/src/components/ui/toggle-group.tsx function ToggleGroup (line 20) | function ToggleGroup({ function ToggleGroupItem (line 51) | function ToggleGroupItem({ FILE: web/src/components/ui/toggle.tsx function Toggle (line 31) | function Toggle({ FILE: web/src/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: web/src/hooks/use-mobile.ts constant MOBILE_BREAKPOINT (line 3) | const MOBILE_BREAKPOINT = 768; function useIsMobile (line 5) | function useIsMobile() { FILE: web/src/hooks/useAsyncTask.ts type AsyncTaskStatus (line 5) | enum AsyncTaskStatus { type UseAsyncTaskOptions (line 12) | interface UseAsyncTaskOptions { type UseAsyncTaskResult (line 18) | interface UseAsyncTaskResult { function useAsyncTask (line 25) | function useAsyncTask( FILE: web/src/i18n/I18nProvider.tsx type I18nProviderProps (line 8) | interface I18nProviderProps { function I18nProvider (line 12) | function I18nProvider({ children }: I18nProviderProps) { FILE: web/src/i18next.d.ts type CustomTypeOptions (line 4) | interface CustomTypeOptions { FILE: web/src/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) {