SYMBOL INDEX (774 symbols across 40 files) FILE: TMWebDriver.py class Session (line 7) | class Session: method __init__ (line 8) | def __init__(self, session_id, info, client=None): method url (line 17) | def url(self): return self.info.get('url', '') method is_active (line 18) | def is_active(self): method reconnect (line 21) | def reconnect(self, client, info): method mark_disconnected (line 31) | def mark_disconnected(self): class TMWebDriver (line 36) | class TMWebDriver: method __init__ (line 37) | def __init__(self, host: str = '127.0.0.1', port: int = 18765): method start_http_server (line 49) | def start_http_server(self): method clean_sessions (line 113) | def clean_sessions(self): method start_ws_server (line 120) | def start_ws_server(self) -> None: method _register_client (line 164) | def _register_client(self, session_id: str, client: WebSocket, session... method _unregister_client (line 179) | def _unregister_client(self, client: WebSocket) -> None: method execute_js (line 183) | def execute_js(self, code, timeout=15, session_id=None) -> Any: method _remote_cmd (line 245) | def _remote_cmd(self, cmd): method get_all_sessions (line 250) | def get_all_sessions(self): method get_session_dict (line 256) | def get_session_dict(self): method find_session (line 259) | def find_session(self, url_pattern: str): method set_session (line 270) | def set_session(self, url_pattern: str) -> bool: method jump (line 281) | def jump(self, url, timeout=10): self.execute_js(f"window.location.hre... FILE: agent_loop.py class StepOutcome (line 5) | class StepOutcome: function try_call_generator (line 9) | def try_call_generator(func, *args, **kwargs): class BaseHandler (line 14) | class BaseHandler: method tool_before_callback (line 15) | def tool_before_callback(self, tool_name, args, response): pass method tool_after_callback (line 16) | def tool_after_callback(self, tool_name, args, response, ret): pass method turn_end_callback (line 17) | def turn_end_callback(self, response, tool_calls, tool_results, turn, ... method dispatch (line 18) | def dispatch(self, tool_name, args, response, index=0): function json_default (line 31) | def json_default(o): return list(o) if isinstance(o, set) else str(o) function exhaust (line 32) | def exhaust(g): function get_pretty_json (line 37) | def get_pretty_json(data): function agent_runner_loop (line 42) | def agent_runner_loop(client, system_prompt, user_input, handler, tools_... function _clean_content (line 101) | def _clean_content(text): function _compact_tool_args (line 115) | def _compact_tool_args(name, args): FILE: agentmain.py function load_tool_schema (line 14) | def load_tool_schema(suffix=''): function get_system_prompt (line 36) | def get_system_prompt(): class GenericAgent (line 42) | class GenericAgent: method __init__ (line 43) | def __init__(self): method load_llm_sessions (line 55) | def load_llm_sessions(self): method next_llm (line 78) | def next_llm(self, n=-1): method list_llms (line 89) | def list_llms(self): method get_llm_name (line 92) | def get_llm_name(self, b=None, model=False): method abort (line 98) | def abort(self): method put_task (line 104) | def put_task(self, query, source="user", images=None): method _handle_slash_cmd (line 110) | def _handle_slash_cmd(self, raw_query, display_queue): method run (line 125) | def run(self): FILE: assets/agent_bbs.py function load_boards_if_changed (line 19) | def load_boards_if_changed(): class ApiKeyMiddleware (line 39) | class ApiKeyMiddleware(BaseHTTPMiddleware): method dispatch (line 40) | async def dispatch(self, request: Request, call_next): function readme (line 109) | def readme(): return PlainTextResponse(README_TEXT) function index (line 112) | def index(): return HTML_PAGE function get_db (line 115) | def get_db(db_path): function _db (line 123) | def _db(request): return request.state.board["db"] function init_db (line 125) | def init_db(): function verify_token (line 136) | def verify_token(token, db_path): function startup (line 143) | def startup(): load_boards_if_changed() function register (line 146) | def register(request: Request, name=Body(..., embed=True)): function create_post (line 158) | def create_post(request: Request, token=Body(...), content=Body(...)): function poll (line 167) | def poll(request: Request, since_id=Query(0), limit=Query(50)): function count_posts (line 174) | def count_posts(request: Request, author=Query(None)): function get_authors (line 180) | def get_authors(request: Request): function get_posts (line 185) | def get_posts(request: Request, author=Query(None), limit=Query(50), off... function upload_file (line 196) | def upload_file(request: Request, token=Body(...), file: UploadFile = Fi... function download_file (line 207) | def download_file(rand_id: str, filename: str): FILE: assets/code_run_header.py function _d (line 4) | def _d(b): function _run (line 9) | def _run(*a, **k): function _pinit (line 23) | def _pinit(self, *a, **k): FILE: assets/configure_mykey.py function _read_char (line 288) | def _read_char(): function _masked (line 304) | def _masked(v, reveal, tail): function masked_input (line 312) | def masked_input(prompt, reveal=6, tail=4): function cprint (line 352) | def cprint(text, color=None, bold=False, end='\n'): function banner (line 360) | def banner(): function _check_python (line 371) | def _check_python(): function ask_choice (line 380) | def ask_choice(prompt, choices, allow_multi=False, default=None): function ask_input (line 417) | def ask_input(prompt, default=None, secret=False, hint=None): function ask_yesno (line 437) | def ask_yesno(prompt, default=True): function _get_proxy_handler (line 449) | def _get_proxy_handler(): function probe_models (line 457) | def probe_models(provider, apikey, apibase=None): function _normalize_model_choices (line 495) | def _normalize_model_choices(choices): function _configure_advanced (line 509) | def _configure_advanced(provider, cfg): function configure_llm (line 532) | def configure_llm(provider): function _fallback_model (line 594) | def _fallback_model(provider): function configure_llms (line 601) | def configure_llms(): function configure_platforms (line 632) | def configure_platforms(): function _manual_platform_var (line 680) | def _manual_platform_var(var): function _feishu_scan (line 689) | def _feishu_scan(platform): function _var_type_info (line 762) | def _var_type_info(cfg): function generate_mykey (line 775) | def generate_mykey(llm_cfgs, platform_configs): function _write_config_fields (line 844) | def _write_config_fields(lines, cfg): function _write_platform_value (line 863) | def _write_platform_value(lines, key, val): function main (line 880) | def main(): function _do_llm (line 985) | def _do_llm(): FILE: assets/tmwd_cdp_bridge/background.js function handleExtMessage (line 18) | async function handleExtMessage(msg, sender) { function handleCookies (line 76) | async function handleCookies(msg, sender) { function handleBatch (line 96) | async function handleBatch(msg, sender) { function handleCDP (line 129) | async function handleCDP(msg, sender) { function buildExecScript (line 146) | function buildExecScript(code, errorHandler) { function buildPageScript (line 188) | function buildPageScript(code) { function buildCdpScript (line 196) | function buildCdpScript(code) { constant WS_URL (line 204) | const WS_URL = 'ws://127.0.0.1:18765'; function scheduleProbe (line 206) | function scheduleProbe() { function scheduleKeepalive (line 211) | function scheduleKeepalive() { function isServerAlive (line 216) | async function isServerAlive() { function handleWsExec (line 254) | async function handleWsExec(data) { function connectWS (line 326) | function connectWS() { function sendTabsUpdate (line 393) | async function sendTabsUpdate() { FILE: assets/tmwd_cdp_bridge/content.js function handle (line 26) | async function handle(el) { FILE: assets/tmwd_cdp_bridge/disable_dialogs.js function toast (line 4) | function toast(type, msg) { FILE: assets/tmwd_cdp_bridge/popup.js function fetchCookies (line 8) | async function fetchCookies() { FILE: frontends/btw_cmd.py function _wrapper (line 47) | def _wrapper(): return _WRAPPER_EN if os.environ.get('GA_LANG') == 'en' ... function _strip_cmd (line 50) | def _strip_cmd(query): function _help_text (line 55) | def _help_text(): function _snapshot_history (line 61) | def _snapshot_history(backend): function _build_wire (line 67) | def _build_wire(backend, history, sidequest_msg): function _ask (line 76) | def _ask(agent, question, deadline): function _format (line 90) | def _format(question, body, took): function _run (line 95) | def _run(agent, question, deadline): function handle (line 101) | def handle(agent, query, display_queue) -> Optional[str]: function handle_frontend_command (line 118) | def handle_frontend_command(agent, query) -> str: function install (line 128) | def install(cls): FILE: frontends/chatapp_common.py function build_help_text (line 26) | def build_help_text(commands=HELP_COMMANDS): function clean_reply (line 46) | def clean_reply(text): function extract_files (line 52) | def extract_files(text): function strip_files (line 56) | def strip_files(text): function split_text (line 60) | def split_text(text, limit): function _restore_log_files (line 71) | def _restore_log_files(): function _restore_text_pairs (line 78) | def _restore_text_pairs(content): function _native_prompt_obj (line 89) | def _native_prompt_obj(prompt_body): function _native_prompt_text (line 101) | def _native_prompt_text(prompt): function _native_history_lines (line 111) | def _native_history_lines(prompt_text): function _native_first_user_line (line 123) | def _native_first_user_line(prompt_text): function _native_response_summary (line 134) | def _native_response_summary(response_body): function _restore_native_history (line 151) | def _restore_native_history(content): function format_restore (line 182) | def format_restore(): function build_done_text (line 196) | def build_done_text(raw_text): function public_access (line 204) | def public_access(allowed): function to_allowed_set (line 208) | def to_allowed_set(value): function allowed_label (line 216) | def allowed_label(allowed): function ensure_single_instance (line 220) | def ensure_single_instance(port, label): function require_runtime (line 230) | def require_runtime(agent, label, **required): function redirect_log (line 240) | def redirect_log(script_file, log_name, label, allowed): class AgentChatMixin (line 249) | class AgentChatMixin: method __init__ (line 255) | def __init__(self, agent, user_tasks): method send_text (line 258) | async def send_text(self, chat_id, content, **ctx): method send_done (line 261) | async def send_done(self, chat_id, raw_text, **ctx): method handle_command (line 264) | async def handle_command(self, chat_id, cmd, **ctx): method run_agent (line 309) | async def run_agent(self, chat_id, text, **ctx): FILE: frontends/continue_cmd.py function _rel_time (line 12) | def _rel_time(mtime): function _pairs (line 19) | def _pairs(content): function _first_user (line 27) | def _first_user(pairs): function _last_summary (line 44) | def _last_summary(pairs): function _preview_text (line 66) | def _preview_text(pairs): function _recent_context (line 69) | def _recent_context(my_pid, n=5): function _parse_native_history (line 88) | def _parse_native_history(pairs): function list_sessions (line 101) | def list_sessions(exclude_pid=None): function _escape_md (line 119) | def _escape_md(s): return _MD_ESCAPE_RE.sub(r'\\\1', s) function _agent_clients (line 122) | def _agent_clients(agent): function _replace_backend_history (line 133) | def _replace_backend_history(agent, history): function _current_log_path (line 139) | def _current_log_path(pid=None): function _snapshot_current_log (line 144) | def _snapshot_current_log(pid=None): function reset_conversation (line 167) | def reset_conversation(agent, message='🆕 已开启新对话,当前上下文已清空'): function format_list (line 186) | def format_list(sessions, limit=20): function restore (line 194) | def restore(agent, path): function handle (line 216) | def handle(agent, query, display_queue): function _user_text (line 236) | def _user_text(prompt_body): function _assistant_text (line 248) | def _assistant_text(response_body): function extract_ui_messages (line 261) | def extract_ui_messages(path): function handle_frontend_command (line 287) | def handle_frontend_command(agent, query, exclude_pid=None): function install (line 305) | def install(cls): FILE: frontends/dcapp.py function _extract_discord_progress (line 39) | def _extract_discord_progress(text): function _strip_discord_transcript (line 48) | def _strip_discord_transcript(text): function _display_done_text (line 59) | def _display_done_text(text): class DiscordApp (line 69) | class DiscordApp(AgentChatMixin): method __init__ (line 72) | def __init__(self): method _chat_id (line 95) | def _chat_id(self, message): method _load_active_channels (line 101) | def _load_active_channels(self): method _save_active_channels (line 122) | def _save_active_channels(self): method _is_active_channel (line 132) | def _is_active_channel(self, chat_id, now=None): method _touch_active_channel (line 145) | def _touch_active_channel(self, chat_id, now=None): method _deactivate_channel (line 152) | def _deactivate_channel(self, chat_id): method _get_agent (line 165) | def _get_agent(self, chat_id): method _download_attachments (line 180) | async def _download_attachments(self, message): method send_text (line 194) | async def send_text(self, chat_id, content, **ctx): method send_done (line 216) | async def send_done(self, chat_id, raw_text, **ctx): method handle_command (line 239) | async def handle_command(self, chat_id, cmd, **ctx): method run_agent (line 283) | async def run_agent(self, chat_id, text, **ctx): method _handle_message (line 323) | async def _handle_message(self, message): method start (line 387) | async def start(self): FILE: frontends/dingtalkapp.py class DingTalkApp (line 23) | class DingTalkApp(AgentChatMixin): method __init__ (line 26) | def __init__(self): method _get_access_token (line 30) | async def _get_access_token(self): method _send_batch_message (line 53) | async def _send_batch_message(self, chat_id, msg_key, msg_param): method send_text (line 82) | async def send_text(self, chat_id, content): method on_message (line 86) | async def on_message(self, content, sender_id, sender_name, conversati... method start (line 106) | async def start(self): class _DingTalkHandler (line 125) | class _DingTalkHandler(CallbackHandler): method __init__ (line 126) | def __init__(self, app): method process (line 130) | async def process(self, message): FILE: frontends/fsapp.py function _clean (line 40) | def _clean(text): function _extract_files (line 46) | def _extract_files(text): function _strip_files (line 50) | def _strip_files(text): function _display_text (line 54) | def _display_text(text): function _to_allowed_set (line 62) | def _to_allowed_set(value): function _parse_json (line 70) | def _parse_json(raw): function _extract_share_card_content (line 79) | def _extract_share_card_content(content_json, msg_type): function _extract_interactive_content (line 96) | def _extract_interactive_content(content): function _extract_element_content (line 133) | def _extract_element_content(element): function _extract_post_content (line 187) | def _extract_post_content(content_json): function create_client (line 243) | def create_client(): function _card_raw (line 247) | def _card_raw(elements): function _card (line 255) | def _card(text): function _send_raw (line 259) | def _send_raw(receive_id, payload, msg_type, rtype): function _patch_card (line 273) | def _patch_card(message_id, card_json): function _patch_card_result (line 277) | def _patch_card_result(message_id, card_json): function send_message (line 292) | def send_message(receive_id, content, msg_type="text", use_card=False, r... function update_message (line 300) | def update_message(message_id, content): function _upload_image_sync (line 304) | def _upload_image_sync(file_path): function _upload_file_sync (line 319) | def _upload_file_sync(file_path): function _download_image_sync (line 337) | def _download_image_sync(message_id, image_key): function _download_file_sync (line 350) | def _download_file_sync(message_id, file_key, resource_type="file"): function _download_and_save_media (line 365) | def _download_and_save_media(msg_type, content_json, message_id): function _describe_media (line 389) | def _describe_media(msg_type, file_path, filename): function _send_local_file (line 399) | def _send_local_file(receive_id, file_path, receive_id_type="open_id"): function _send_generated_files (line 419) | def _send_generated_files(receive_id, raw_text, receive_id_type="open_id"): function _build_user_message (line 424) | def _build_user_message(message): function _fmt_tool_call (line 459) | def _fmt_tool_call(tc): function _build_step_detail (line 465) | def _build_step_detail(resp, tool_calls): class _TaskCard (line 479) | class _TaskCard: method __init__ (line 484) | def __init__(self, receive_id, rid_type): method _step_panel (line 495) | def _step_panel(self, idx, summary, detail): method _build (line 505) | def _build(self): method _push (line 518) | def _push(self): method _rollover (line 526) | def _rollover(self): method start (line 534) | def start(self): method step (line 537) | def step(self, summary, detail=""): method done (line 550) | def done(self, text): method fail (line 561) | def fail(self, msg): function _make_task_hook (line 566) | def _make_task_hook(card, done_event, on_final): function handle_message (line 584) | def handle_message(data): function handle_command (line 635) | def handle_command(open_id, cmd, chat_id=None): function main (line 683) | def main(): FILE: frontends/genericagent_acp_bridge.py class _StdoutToStderrRouter (line 30) | class _StdoutToStderrRouter(io.TextIOBase): method writable (line 32) | def writable(self): return True method write (line 33) | def write(self, s): method flush (line 38) | def flush(self): sys.stderr.flush() function eprint (line 57) | def eprint(*args: Any) -> None: function make_text_block (line 61) | def make_text_block(text: str) -> Dict[str, Any]: function make_session_update (line 65) | def make_session_update(session_id: str, update: Dict[str, Any]) -> Dict... function compact_json (line 73) | def compact_json(obj: Dict[str, Any]) -> str: function parse_jsonrpc_line (line 77) | def parse_jsonrpc_line(line: str) -> Optional[Dict[str, Any]]: function content_blocks_to_text (line 88) | def content_blocks_to_text(blocks: List[Dict[str, Any]]) -> str: function jsonrpc_error (line 118) | def jsonrpc_error(code: int, message: str, req_id: Any = None, data: Any... function jsonrpc_result (line 125) | def jsonrpc_result(req_id: Any, result: Any) -> Dict[str, Any]: class SessionState (line 130) | class SessionState: class GenericAgentAcpBridge (line 138) | class GenericAgentAcpBridge: method __init__ (line 139) | def __init__(self, llm_no: int = 0): method write_message (line 146) | def write_message(self, msg: Dict[str, Any]) -> None: method new_agent (line 158) | def new_agent(self) -> GeneraticAgent: method handle_initialize (line 166) | def handle_initialize(self, req_id: Any, params: Dict[str, Any]) -> None: method handle_session_new (line 190) | def handle_session_new(self, req_id: Any, params: Dict[str, Any]) -> N... method handle_session_prompt (line 212) | def handle_session_prompt(self, req_id: Any, params: Dict[str, Any]) -... method _drain_agent_queue (line 267) | def _drain_agent_queue(self, session: SessionState, dq: "queue.Queue[D... method handle_session_cancel (line 311) | def handle_session_cancel(self, params: Dict[str, Any]) -> None: method handle_message (line 319) | def handle_message(self, msg: Dict[str, Any]) -> None: method serve (line 352) | def serve(self) -> None: function main (line 365) | def main() -> int: FILE: frontends/qqapp.py function _next_msg_seq (line 24) | def _next_msg_seq(): function _build_intents (line 31) | def _build_intents(): function _make_bot_class (line 45) | def _make_bot_class(app): class QQApp (line 65) | class QQApp(AgentChatMixin): method __init__ (line 68) | def __init__(self): method send_text (line 72) | async def send_text(self, chat_id, content, *, msg_id=None, is_group=F... method on_message (line 80) | async def on_message(self, data, is_group=False): method start (line 104) | async def start(self): FILE: frontends/qtapp.py class FloatingButton (line 39) | class FloatingButton(QWidget): method __init__ (line 44) | def __init__(self, chat_panel: QWidget): method _tick (line 79) | def _tick(self): method paintEvent (line 99) | def paintEvent(self, _event): method enterEvent (line 211) | def enterEvent(self, event): method leaveEvent (line 216) | def leaveEvent(self, event): method mousePressEvent (line 222) | def mousePressEvent(self, event): method mouseMoveEvent (line 228) | def mouseMoveEvent(self, event): method mouseDoubleClickEvent (line 240) | def mouseDoubleClickEvent(self, event): method mouseReleaseEvent (line 247) | def mouseReleaseEvent(self, event): method _toggle (line 255) | def _toggle(self): method _position_panel (line 269) | def _position_panel(self): function _md_to_html (line 369) | def _md_to_html(text: str) -> str: function _svg_icon (line 420) | def _svg_icon(key: str, svg_template: str, color: str = "#a1a1aa", function _make_session_id (line 440) | def _make_session_id() -> str: function _load_history (line 444) | def _load_history() -> list: function _save_history (line 454) | def _save_history(history: list): function _build_prompt_with_uploads (line 460) | def _build_prompt_with_uploads(prompt: str, files: list) -> tuple: class _Separator (line 521) | class _Separator(QFrame): method __init__ (line 522) | def __init__(self, parent=None): class _Badge (line 528) | class _Badge(QLabel): method __init__ (line 529) | def __init__(self, text: str, parent=None): class _StreamingBadge (line 538) | class _StreamingBadge(QLabel): method __init__ (line 539) | def __init__(self, parent=None): class _FoldableTextBrowser (line 549) | class _FoldableTextBrowser(QTextBrowser): method __init__ (line 551) | def __init__(self, parent=None): method eventFilter (line 555) | def eventFilter(self, obj, event): class _MsgRow (line 571) | class _MsgRow(QWidget): method __init__ (line 580) | def __init__(self, text: str, role: str, parent=None, on_resend=None, ... method _copy_text (line 809) | def _copy_text(self): method _do_resend (line 812) | def _do_resend(self): method _do_delete (line 816) | def _do_delete(self): method _do_rewrite (line 820) | def _do_rewrite(self): method _export_as_md (line 824) | def _export_as_md(self): method enterEvent (line 840) | def enterEvent(self, event): method leaveEvent (line 845) | def leaveEvent(self, event): method resizeEvent (line 850) | def resizeEvent(self, event): method set_finished (line 855) | def set_finished(self, done: bool): method _adjust_browser_height (line 860) | def _adjust_browser_height(self): method set_text (line 868) | def set_text(self, text: str): method highlight (line 878) | def highlight(self, keyword: str): method clear_highlight (line 912) | def clear_highlight(self): method _parse_foldable_blocks (line 921) | def _parse_foldable_blocks(self, text: str): method _auto_fold_new_blocks (line 956) | def _auto_fold_new_blocks(self, text: str): method _render_with_folds (line 962) | def _render_with_folds(self, text: str) -> str: method _toggle_fold (line 986) | def _toggle_fold(self, title): class _TabButton (line 996) | class _TabButton(QPushButton): method __init__ (line 1011) | def __init__(self, text: str, parent=None): function _action_btn (line 1018) | def _action_btn(label: str, color: str, icon: QIcon | None = None) -> QP... class ChatPanel (line 1039) | class ChatPanel(QWidget): method __init__ (line 1042) | def __init__(self, agent): method paintEvent (line 1076) | def paintEvent(self, _event): method resizeEvent (line 1086) | def resizeEvent(self, event): method _build_ui (line 1093) | def _build_ui(self): method _build_titlebar (line 1116) | def _build_titlebar(self) -> QWidget: method _toggle_search (line 1222) | def _toggle_search(self): method _show_search (line 1228) | def _show_search(self): method _hide_search (line 1235) | def _hide_search(self): method _hide_search_if_no_focus (line 1244) | def _hide_search_if_no_focus(self): method _on_search_changed (line 1248) | def _on_search_changed(self, text): method _clear_all_highlights (line 1260) | def _clear_all_highlights(self): method _search_current_chat (line 1266) | def _search_current_chat(self, keyword: str): method _scroll_to_widget (line 1283) | def _scroll_to_widget(self, w, keyword_y=0): method _search_history (line 1297) | def _search_history(self, keyword: str): method _reset_history_items_style (line 1313) | def _reset_history_items_style(self): method _tb_press (line 1327) | def _tb_press(self, e): method _tb_move (line 1331) | def _tb_move(self, e): method _tb_release (line 1335) | def _tb_release(self, _e): method _toggle_maximize (line 1338) | def _toggle_maximize(self): method _build_statusbar (line 1347) | def _build_statusbar(self) -> QWidget: method _show_model_menu (line 1374) | def _show_model_menu(self, _e): method _build_tabbar (line 1398) | def _build_tabbar(self) -> QWidget: method _switch_tab (line 1440) | def _switch_tab(self, idx: int): method _build_chat_page (line 1458) | def _build_chat_page(self) -> QWidget: method _build_input_area (line 1534) | def _build_input_area(self) -> QWidget: method _build_history_page (line 1625) | def _build_history_page(self) -> QWidget: method _build_sop_page (line 1668) | def _build_sop_page(self) -> QWidget: method _build_settings_page (line 1706) | def _build_settings_page(self) -> QWidget: method _build_model_rows (line 1781) | def _build_model_rows(self): method _refresh_model_rows_style (line 1814) | def _refresh_model_rows_style(self): method _do_switch_to (line 1828) | def _do_switch_to(self, idx: int): method _start_health_checks (line 1838) | def _start_health_checks(self): method _poll_health_results (line 1854) | def _poll_health_results(self): method _check_backend (line 1865) | def _check_backend(self, idx: int, backend): method eventFilter (line 1883) | def eventFilter(self, obj, event): method _on_text_changed (line 1898) | def _on_text_changed(self): method _attach_files (line 1903) | def _attach_files(self): method _refresh_chips (line 1930) | def _refresh_chips(self): method _set_send_mode (line 1961) | def _set_send_mode(self): method _set_stop_mode (line 1968) | def _set_stop_mode(self): method _on_send_btn_click (line 1975) | def _on_send_btn_click(self): method _handle_send (line 1981) | def _handle_send(self): method _handle_command (line 2031) | def _handle_command(self, cmd: str): method _poll_queue (line 2071) | def _poll_queue(self): method _add_msg_row (line 2128) | def _add_msg_row(self, role: str, text: str, created_at: str = None, o... method _regenerate_response (line 2141) | def _regenerate_response(self): method _delete_message (line 2151) | def _delete_message(self, index: int): method _rewrite_message (line 2163) | def _rewrite_message(self, index: int): method _on_scroll (line 2179) | def _on_scroll(self, value): method _update_nav_visibility (line 2184) | def _update_nav_visibility(self): method _scroll_to_top (line 2198) | def _scroll_to_top(self): method _scroll_to_bottom (line 2202) | def _scroll_to_bottom(self): method _scroll_bottom (line 2208) | def _scroll_bottom(self): method inject_message (line 2216) | def inject_message(self, text: str): method _refresh_history (line 2222) | def _refresh_history(self): method _restore_selected (line 2231) | def _restore_selected(self, item=None): method _delete_selected (line 2246) | def _delete_selected(self): method _rebuild_messages (line 2256) | def _rebuild_messages(self): method _update_token_usage (line 2272) | def _update_token_usage(self): method _refresh_sop (line 2287) | def _refresh_sop(self): method _load_sop (line 2299) | def _load_sop(self, item): method _model_name (line 2310) | def _model_name(self) -> str: method _add_system_notice (line 2318) | def _add_system_notice(self, text: str): method _do_stop (line 2330) | def _do_stop(self): method _do_reset_prompt (line 2341) | def _do_reset_prompt(self): method _auto_save (line 2345) | def _auto_save(self): method _do_save (line 2356) | def _do_save(self): method _do_clear (line 2370) | def _do_clear(self): method _new_session (line 2377) | def _new_session(self): method _do_toggle_auto (line 2382) | def _do_toggle_auto(self): method _do_trigger_auto (line 2388) | def _do_trigger_auto(self): method _small_btn_style (line 2395) | def _small_btn_style(color: str) -> str: function main (line 2407) | def main(): FILE: frontends/stapp.py function T (line 37) | def T(key): return I18N.get(LANG, I18N['zh']).get(key, key) function init (line 40) | def init(): function render_sidebar (line 55) | def render_sidebar(): function fold_turns (line 112) | def fold_turns(text): function render_segments (line 145) | def render_segments(segments, suffix=''): function agent_backend_stream (line 159) | def agent_backend_stream(prompt=None): function render_main_stream (line 191) | def render_main_stream(prompt=None): function _reset_and_rerun (line 254) | def _reset_and_rerun(): FILE: frontends/stapp2.py function init (line 801) | def init(): function build_dynamic_font_css (line 811) | def build_dynamic_font_css(scale_percent: float) -> str: function build_dynamic_font_update_script (line 831) | def build_dynamic_font_update_script(scale_percent: float) -> str: function build_header_agent_badge_script (line 853) | def build_header_agent_badge_script() -> str: function init_session_state (line 946) | def init_session_state(): function render_sidebar (line 968) | def render_sidebar(): function start_agent_task (line 988) | def start_agent_task(prompt): function poll_agent_output (line 995) | def poll_agent_output(max_items=20): function _get_response_segments (line 1015) | def _get_response_segments(text): function render_message (line 1018) | def render_message(role, content, ts='', unsafe_allow_html=True): function finish_streaming_message (line 1023) | def finish_streaming_message(): function render_streaming_area (line 1029) | def render_streaming_area(): FILE: frontends/tgapp.py function _make_draft_id (line 71) | def _make_draft_id(): function _visible_segments (line 74) | def _visible_segments(text): function _markdown_safe_segments (line 83) | def _markdown_safe_segments(text, limit=None): function _line_complete (line 112) | def _line_complete(line): function _turn_marker_number (line 115) | def _turn_marker_number(line): function _maybe_partial_turn_marker (line 119) | def _maybe_partial_turn_marker(line): function _maybe_partial_code_fence (line 126) | def _maybe_partial_code_fence(line): function _extract_turn_summary (line 129) | def _extract_turn_summary(raw_text): function _quote_tag (line 139) | def _quote_tag(text): function _inject_turn_summary (line 143) | def _inject_turn_summary(body, summary): function _resolve_files (line 156) | def _resolve_files(paths): function _render_file_markers (line 168) | def _render_file_markers(text): function _files_from_text (line 173) | def _files_from_text(text): function _send_files (line 177) | async def _send_files(root_msg, files): function _send_files_from_text (line 192) | async def _send_files_from_text(root_msg, text): function _escape_pre (line 195) | def _escape_pre(text): function _escape_code (line 198) | def _escape_code(text): function _escape_link_target (line 201) | def _escape_link_target(text): function _quote_to_markdown_v2 (line 204) | def _quote_to_markdown_v2(text): function _to_markdown_v2 (line 208) | def _to_markdown_v2(text): function _is_not_modified_error (line 239) | def _is_not_modified_error(exc): function _extract_ask_user_event (line 242) | def _extract_ask_user_event(ctx): function _register_ask_user_hook (line 269) | def _register_ask_user_hook(): function _drain_latest_ask_user_event (line 278) | def _drain_latest_ask_user_event(): function _build_ask_user_markup (line 287) | def _build_ask_user_markup(menu_id, candidates): function _parse_ask_callback_data (line 297) | def _parse_ask_callback_data(data): function _build_text_prompt (line 306) | def _build_text_prompt(text): function _normalize_ask_menu_event (line 309) | def _normalize_ask_menu_event(stored): function _render_ask_user_result (line 323) | def _render_ask_user_result(event, selected=None, cancelled=False): function _clear_ask_reply_markup (line 340) | async def _clear_ask_reply_markup(query): function _edit_ask_user_result (line 346) | async def _edit_ask_user_result(query, event, selected=None, cancelled=F... function _send_ask_user_menu (line 356) | async def _send_ask_user_menu(root_msg, event): class _TelegramStreamSession (line 371) | class _TelegramStreamSession: method __init__ (line 372) | def __init__(self, root_msg): method _now (line 387) | def _now(self): method _retry_after_seconds (line 390) | def _retry_after_seconds(self, exc): method _set_retry_after (line 401) | def _set_retry_after(self, exc): method _is_retrying (line 405) | def _is_retrying(self): method _wait_for_retry (line 408) | async def _wait_for_retry(self): method _should_stream_update (line 413) | def _should_stream_update(self, display): method _mark_stream_update (line 422) | def _mark_stream_update(self, display): method _stream_display (line 428) | def _stream_display(self, text): method prime (line 439) | async def prime(self): method add_chunk (line 455) | async def add_chunk(self, chunk): method finalize (line 461) | async def finalize(self, full_text=None, send_files=True): method finish_with_notice (line 466) | async def finish_with_notice(self, notice): method _refresh (line 479) | async def _refresh(self, done, send_files): method _stream_active (line 500) | async def _stream_active(self, text): method _finalize_segment (line 520) | async def _finalize_segment(self, text): method _send_files (line 531) | async def _send_files(self): method _send_draft (line 534) | async def _send_draft(self, text): method _retry_call (line 553) | async def _retry_call(self, func, *args): method _reply_text_once (line 561) | async def _reply_text_once(self, text): method _reply_text (line 577) | async def _reply_text(self, text, wait_retry=True): method _edit_text_once (line 586) | async def _edit_text_once(self, msg, text): method _edit_text (line 603) | async def _edit_text(self, msg, text, wait_retry=True): method _upsert_live_message (line 613) | async def _upsert_live_message(self, text, wait_retry=True): class _TelegramTurnStreamCoordinator (line 620) | class _TelegramTurnStreamCoordinator: method __init__ (line 621) | def __init__(self, root_msg): method prime (line 628) | async def prime(self): method add_chunk (line 631) | async def add_chunk(self, chunk): method finalize (line 644) | async def finalize(self, done_text="", send_files=True): method finish_with_notice (line 659) | async def finish_with_notice(self, notice): method _ensure_session (line 664) | async def _ensure_session(self): method _start_turn (line 669) | async def _start_turn(self, marker): method _add_to_current (line 676) | async def _add_to_current(self, text): method _process_line (line 682) | async def _process_line(self, line): method _flush_pending_line (line 691) | async def _flush_pending_line(self): method _update_code_fence (line 698) | def _update_code_fence(self, line): function _stream (line 709) | async def _stream(dq, msg): function _normalized_command (line 749) | def _normalized_command(text): function _cancel_stream_task (line 756) | def _cancel_stream_task(ctx): function _sync_commands (line 760) | async def _sync_commands(application): function handle_msg (line 763) | async def handle_msg(update, ctx): function handle_ask_callback (line 772) | async def handle_ask_callback(update, ctx): function cmd_abort (line 807) | async def cmd_abort(update, ctx): function cmd_llm (line 812) | async def cmd_llm(update, ctx): function handle_photo (line 825) | async def handle_photo(update, ctx): function handle_command (line 847) | async def handle_command(update, ctx): function _error_handler (line 894) | async def _error_handler(update, context: ContextTypes.DEFAULT_TYPE): FILE: frontends/tuiapp.py class ChatMessage (line 53) | class ChatMessage: class AgentSession (line 62) | class AgentSession: function fold_turns (line 75) | def fold_turns(text: str) -> list[dict[str, str]]: function render_folded_text (line 126) | def render_folded_text(text: str) -> str: function parse_local_command (line 141) | def parse_local_command(raw: str) -> tuple[str, list[str]] | None: function default_agent_factory (line 154) | def default_agent_factory() -> Any: class GenericAgentTUI (line 162) | class GenericAgentTUI(App[None]): method __init__ (line 185) | def __init__(self, agent_factory: Optional[AgentFactory] = None) -> None: method compose (line 195) | def compose(self) -> ComposeResult: method on_mount (line 205) | def on_mount(self) -> None: method on_resize (line 210) | def on_resize(self, event) -> None: method current (line 215) | def current(self) -> AgentSession: method add_session (line 220) | def add_session(self, name: Optional[str] = None) -> AgentSession: method action_prev_session (line 236) | def action_prev_session(self) -> None: method action_next_session (line 245) | def action_next_session(self) -> None: method action_switch_session (line 254) | def action_switch_session(self, n: int) -> None: method action_new_session (line 262) | def action_new_session(self) -> None: method action_stop_current (line 266) | def action_stop_current(self) -> None: method on_input_submitted (line 269) | def on_input_submitted(self, event: Input.Submitted) -> None: method _dispatch_command (line 282) | def _dispatch_command(self, cmd: str, args: list[str]) -> None: method submit_user_message (line 300) | def submit_user_message(self, text: str) -> int: method _consume_display_queue (line 328) | def _consume_display_queue(self, agent_id: int, task_id: int, display_... method _on_stream_update (line 343) | def _on_stream_update(self, agent_id: int, task_id: int, text: str, do... method _set_assistant_message (line 356) | def _set_assistant_message(self, agent_id: int, task_id: int, text: st... method _cmd_help (line 372) | def _cmd_help(self, args: list[str]) -> None: method _cmd_new (line 391) | def _cmd_new(self, args: list[str]) -> None: method _cmd_branch (line 396) | def _cmd_branch(self, args: list[str]) -> None: method _cmd_rewind (line 415) | def _cmd_rewind(self, args: list[str]) -> None: method _cmd_clear (line 475) | def _cmd_clear(self, args: list[str]) -> None: method _cmd_close (line 478) | def _cmd_close(self, args: list[str]) -> None: method _cmd_switch (line 485) | def _cmd_switch(self, args: list[str]) -> None: method _cmd_sessions (line 505) | def _cmd_sessions(self, args: list[str]) -> None: method _cmd_status (line 512) | def _cmd_status(self, args: list[str]) -> None: method _cmd_stop (line 515) | def _cmd_stop(self, args: list[str]) -> None: method _cmd_llm (line 525) | def _cmd_llm(self, args: list[str]) -> None: method _system (line 540) | def _system(self, text: str) -> None: method _refresh_all (line 545) | def _refresh_all(self) -> None: method _session_last_user_query (line 552) | def _session_last_user_query(self, session: AgentSession) -> str: method _session_last_summary (line 560) | def _session_last_summary(self, session: AgentSession) -> str: method _truncate_display (line 571) | def _truncate_display(text: str, max_width: int) -> str: method _refresh_sidebar (line 585) | def _refresh_sidebar(self) -> None: method _refresh_status (line 609) | def _refresh_status(self) -> None: method action_toggle_fold (line 624) | def action_toggle_fold(self) -> None: method _refresh_log (line 635) | def _refresh_log(self) -> None: function build_arg_parser (line 673) | def build_arg_parser() -> argparse.ArgumentParser: function main (line 678) | def main(argv: Optional[list[str]] = None) -> int: FILE: frontends/wechatapp.py function _uin (line 23) | def _uin(): class WxBotClient (line 26) | class WxBotClient: method __init__ (line 27) | def __init__(self, token=None, token_file=None): method _load (line 34) | def _load(self): method _save (line 39) | def _save(self, **kw): method _post (line 44) | def _post(self, ep, body, timeout=15): method login_qr (line 57) | def login_qr(self, poll_interval=2): method get_updates (line 81) | def get_updates(self, timeout=30): method send_text (line 97) | def send_text(self, to_user_id, text, context_token=''): method send_typing (line 105) | def send_typing(self, to_user_id, typing_ticket='', cancel=False): method get_typing_ticket (line 111) | def get_typing_ticket(self, to_user_id, context_token=''): method _enc (line 116) | def _enc(self, raw, aes_key): method _upload (line 120) | def _upload(self, filekey, upload_param, raw, aes_key, timeout=120, up... method _send_media (line 143) | def _send_media(self, to_user_id, file_path, media_type, item_type, it... method send_file (line 201) | def send_file(self, to_user_id, file_path, context_token=''): method send_image (line 204) | def send_image(self, to_user_id, file_path, context_token=''): method send_video (line 207) | def send_video(self, to_user_id, file_path, context_token=''): method extract_text (line 211) | def extract_text(msg): method is_user_msg (line 217) | def is_user_msg(msg): return msg.get('message_type') == MSG_USER method run_loop (line 219) | def run_loop(self, on_message, poll_timeout=30): function _dl_media (line 237) | def _dl_media(items): function _strip_md (line 267) | def _strip_md(t): function _clean (line 293) | def _clean(t): function _turn_parts (line 301) | def _turn_parts(t): function on_message (line 310) | def on_message(bot, msg): FILE: frontends/wecomapp.py class TurnContext (line 7) | class TurnContext(TypedDict, total=False): function _ts (line 43) | def _ts(): function _tprint (line 46) | def _tprint(*a, **kw): function _fmt_tool (line 52) | def _fmt_tool(tc): class WeComApp (line 58) | class WeComApp(AgentChatMixin): method __init__ (line 61) | def __init__(self, agent): method _register_hook (line 73) | def _register_hook(self, key: str, fn: TurnHookFn) -> None: method _unregister_hook (line 77) | def _unregister_hook(self, key: str) -> None: method _accept (line 82) | def _accept(self, frame): method _save_media (line 98) | async def _save_media(self, url, aes_key, default_name): method send_text (line 111) | async def send_text(self, chat_id, content, **_): method send_media (line 118) | async def send_media(self, chat_id, file_path): method send_done (line 137) | async def send_done(self, chat_id, raw_text): method run_agent (line 153) | async def run_agent(self, chat_id, text, **_): method on_text (line 218) | async def on_text(self, frame): method _on_media (line 232) | async def _on_media(self, frame, key, icon): method on_image (line 254) | async def on_image(self, frame): method on_file (line 257) | async def on_file(self, frame): method on_enter_chat (line 261) | async def on_enter_chat(self, frame): method on_connected (line 268) | async def on_connected(self, *_): _tprint("[WeCom] connected") method on_authenticated (line 269) | async def on_authenticated(self, *_): _tprint("[WeCom] authenticated, ... method on_disconnected (line 270) | async def on_disconnected(self, *_): _tprint("[WeCom] disconnected") method on_error (line 271) | async def on_error(self, frame): _tprint(f"[WeCom] error: {frame}") method _terminal_loop (line 274) | def _terminal_loop(self): method start (line 320) | async def start(self, client=None): FILE: ga.py function code_run (line 12) | def code_run(code, code_type="python", timeout=60, cwd=None, code_cwd=No... function ask_user (line 93) | def ask_user(question, candidates=None): function first_init_driver (line 100) | def first_init_driver(): function web_scan (line 113) | def web_scan(tabs_only=False, switch_tab_id=None, text_only=False): function format_error (line 144) | def format_error(e): function log_memory_access (line 153) | def log_memory_access(path): function web_execute_js (line 163) | def web_execute_js(script, switch_tab_id=None, no_monitor=False): function expand_file_refs (line 174) | def expand_file_refs(text, base_dir=None): function file_patch (line 188) | def file_patch(path: str, old_content: str, new_content: str): function _scan_files (line 204) | def _scan_files(base, depth=2): function file_read (line 210) | def file_read(path, start=1, keyword=None, count=200, show_linenos=True): function smart_format (line 250) | def smart_format(data, max_str_len=100, omit_str=' ... '): function consume_file (line 255) | def consume_file(dr, file): class GenericAgentHandler (line 261) | class GenericAgentHandler(BaseHandler): method __init__ (line 263) | def __init__(self, parent, last_history=None, cwd='./temp'): method _get_abs_path (line 271) | def _get_abs_path(self, path): method _extract_code_block (line 275) | def _extract_code_block(self, response, code_type): method do_code_run (line 280) | def do_code_run(self, args, response): method do_ask_user (line 306) | def do_ask_user(self, args, response): method do_web_scan (line 313) | def do_web_scan(self, args, response): method do_web_execute_js (line 327) | def do_web_execute_js(self, args, response): method do_file_patch (line 355) | def do_file_patch(self, args, response): method do_file_write (line 369) | def do_file_write(self, args, response): method do_file_read (line 402) | def do_file_read(self, args, response): method _in_plan_mode (line 421) | def _in_plan_mode(self): return self.working.get('in_plan_mode') method _exit_plan_mode (line 422) | def _exit_plan_mode(self): self.working.pop('in_plan_mode', None) method enter_plan_mode (line 423) | def enter_plan_mode(self, plan_path): method _check_plan_completion (line 426) | def _check_plan_completion(self): method do_update_working_checkpoint (line 431) | def do_update_working_checkpoint(self, args, response): method _retry_or_exit (line 443) | def _retry_or_exit(self, prompt): method do_no_tool (line 448) | def do_no_tool(self, args, response): method do_start_long_term_update (line 498) | def do_start_long_term_update(self, args, response): method _fold_earlier (line 515) | def _fold_earlier(self, lines): method _get_anchor_prompt (line 529) | def _get_anchor_prompt(self, skip=False): method turn_end_callback (line 543) | def turn_end_callback(self, response, tool_calls, tool_results, turn, ... function get_global_memory (line 574) | def get_global_memory(): FILE: llmcore.py function _load_mykeys (line 6) | def _load_mykeys(): function reload_mykeys (line 17) | def reload_mykeys(): function __getattr__ (line 29) | def __getattr__(name): # once guard in PEP 562 function compress_history_tags (line 33) | def compress_history_tags(messages, keep_recent=10, max_len=800, force=F... function _sanitize_leading_user_msg (line 66) | def _sanitize_leading_user_msg(msg): function safeprint (line 85) | def safeprint(*argv): function trim_messages_history (line 90) | def trim_messages_history(history, context_win): function auto_make_url (line 104) | def auto_make_url(base, path): function _parse_claude_json (line 110) | def _parse_claude_json(data): function _parse_claude_sse (line 118) | def _parse_claude_sse(resp_lines): function _try_parse_tool_args (line 186) | def _try_parse_tool_args(raw): function _parse_openai_sse (line 201) | def _parse_openai_sse(resp_lines, api_mode="chat_completions"): function _record_usage (line 295) | def _record_usage(usage, api_mode): function _parse_openai_json (line 309) | def _parse_openai_json(data, api_mode="chat_completions"): function _stamp_oai_cache_markers (line 339) | def _stamp_oai_cache_markers(messages, model): function _stream_with_retry (line 352) | def _stream_with_retry(sess, url, headers, payload, parse_fn): function _openai_stream (line 387) | def _openai_stream(sess, messages): function _prepare_oai_tools (line 415) | def _prepare_oai_tools(tools, api_mode="chat_completions"): function _to_responses_input (line 426) | def _to_responses_input(messages): function _msgs_claude2oai (line 462) | def _msgs_claude2oai(messages): class BaseSession (line 508) | class BaseSession: method __init__ (line 509) | def __init__(self, cfg): method _apply_claude_thinking (line 537) | def _apply_claude_thinking(self, payload): method ask (line 549) | def ask(self, prompt): function _keep_claude_block (line 568) | def _keep_claude_block(b): return not isinstance(b, dict) or b.get("type... function _drop_unsigned_thinking (line 569) | def _drop_unsigned_thinking(messages): function _ensure_thinking_blocks (line 575) | def _ensure_thinking_blocks(messages, model): class ClaudeSession (line 586) | class ClaudeSession(BaseSession): method raw_ask (line 587) | def raw_ask(self, messages): method make_messages (line 598) | def make_messages(self, raw_list): class LLMSession (line 605) | class LLMSession(BaseSession): method raw_ask (line 606) | def raw_ask(self, messages): return (yield from _openai_stream(self, m... method make_messages (line 607) | def make_messages(self, raw_list): return _msgs_claude2oai(_fix_messag... function _fix_messages (line 609) | def _fix_messages(messages): class NativeClaudeSession (line 628) | class NativeClaudeSession(BaseSession): method __init__ (line 629) | def __init__(self, cfg): method raw_ask (line 637) | def raw_ask(self, messages): method ask (line 670) | def ask(self, msg): class NativeOAISession (line 698) | class NativeOAISession(NativeClaudeSession): method raw_ask (line 699) | def raw_ask(self, messages): function openai_tools_to_claude (line 704) | def openai_tools_to_claude(tools): class MockFunction (line 714) | class MockFunction: method __init__ (line 715) | def __init__(self, name, arguments): self.name, self.arguments = name,... class MockToolCall (line 717) | class MockToolCall: method __init__ (line 718) | def __init__(self, name, args, id=''): class MockResponse (line 722) | class MockResponse: method __init__ (line 723) | def __init__(self, thinking, content, tool_calls, raw, stop_reason='en... method __repr__ (line 727) | def __repr__(self): class ToolClient (line 730) | class ToolClient: method __init__ (line 731) | def __init__(self, backend, auto_save_tokens=True): method chat (line 739) | def chat(self, messages, tools=None): method _prepare_tool_instruction (line 759) | def _prepare_tool_instruction(self, tools): method _build_protocol_prompt (line 787) | def _build_protocol_prompt(self, messages, tools): method _parse_mixed_response (line 804) | def _parse_mixed_response(self, text): function _parse_text_tool_calls (line 841) | def _parse_text_tool_calls(content): function _ensure_text_block (line 863) | def _ensure_text_block(blocks): function _write_llm_log (line 873) | def _write_llm_log(label, content, log_path=None): function tryparse (line 881) | def tryparse(json_str): class MixinSession (line 892) | class MixinSession: method __init__ (line 894) | def __init__(self, all_sessions, cfg): method __getattr__ (line 909) | def __getattr__(self, name): return getattr(self._sessions[0], name) method __setattr__ (line 911) | def __setattr__(self, name, value): method primary (line 918) | def primary(self): return self._sessions[0] method _pick (line 919) | def _pick(self): method _raw_ask (line 922) | def _raw_ask(self, *args, **kwargs): class NativeToolClient (line 964) | class NativeToolClient: method _thinking_prompt (line 966) | def _thinking_prompt(): return THINKING_PROMPT_EN if os.environ.get('G... method __init__ (line 967) | def __init__(self, backend): method set_system (line 973) | def set_system(self, extra_system): method chat (line 977) | def chat(self, messages, tools=None): function resolve_session (line 1012) | def resolve_session(cfg_name): function resolve_client (line 1019) | def resolve_client(cfg_name): function fast_ask (line 1023) | def fast_ask(prompt, cfg_name): FILE: memory/adb_ui.py function _dump_u2 (line 10) | def _dump_u2(): function _dump_native (line 21) | def _dump_native(): function _parse_xml (line 31) | def _parse_xml(xml_str, keyword=None, clickable_only=False, raw=False): function ui (line 58) | def ui(keyword=None, clickable_only=False, raw=False): function tap (line 79) | def tap(x, y): FILE: memory/keychain.py function _xor (line 9) | def _xor(data: bytes) -> bytes: class SecretStr (line 12) | class SecretStr: method __init__ (line 13) | def __init__(self, name: str, val: str): method use (line 15) | def use(self) -> str: method __repr__ (line 17) | def __repr__(self): class _Keys (line 26) | class _Keys: method __init__ (line 27) | def __init__(self): method __getattr__ (line 36) | def __getattr__(self, k): method set (line 40) | def set(self, k, v=None, *, file=None): method ls (line 44) | def ls(self): return list(self._d.keys()) function __getattr__ (line 48) | def __getattr__(name): return getattr(keys, name) FILE: memory/ljqCtrl.py function MouseDown (line 32) | def MouseDown(): win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0) function MouseUp (line 33) | def MouseUp(): win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0) function MouseClick (line 35) | def MouseClick(staytime=0.05): function MouseDClick (line 39) | def MouseDClick(staytime=0.05): function SetCursorPos (line 44) | def SetCursorPos(z): function Click (line 49) | def Click(x, y=None): function Press (line 55) | def Press(cmd, staytime=0): function GrabWindow (line 69) | def GrabWindow(hwnd): function imshow (line 74) | def imshow(mt, sec=0): function GetWRect (line 78) | def GetWRect(sr): function FindBlock (line 87) | def FindBlock(fn, wrect=None, verbose=0, threshold=0.8): FILE: memory/ocr_utils.py function _get_rapid (line 15) | def _get_rapid(): function _preprocess (line 22) | def _preprocess(img, scale=3, contrast=3.0): function _strip_cjk_spaces (line 27) | def _strip_cjk_spaces(t): function _ocr_rapid (line 30) | def _ocr_rapid(img): function ocr_image (line 42) | def ocr_image(image_input, lang=_LANG, enhance=False, engine=None): function ocr_screen (line 59) | def ocr_screen(bbox=None, lang=_LANG, enhance=False, engine=None): function ocr_window (line 68) | def ocr_window(hwnd, lang=_LANG, enhance=False, engine=None): FILE: memory/procmem_scanner.py class MEMORY_BASIC_INFORMATION (line 15) | class MEMORY_BASIC_INFORMATION(ctypes.Structure): function is_hex_pattern (line 37) | def is_hex_pattern(pattern): function build_rules (line 41) | def build_rules(pattern, mode='auto'): function format_llm_context (line 50) | def format_llm_context(data, offset, base_addr, length=64): function scan_memory (line 63) | def scan_memory(pid, pattern, context_size=256, mode='auto', llm_mode=Fa... FILE: memory/ui_detect.py function detect_ui_elements (line 23) | def detect_ui_elements(image_path, model_path=None, conf_threshold=0.25): function ocr_text (line 48) | def ocr_text(image_path): function visualize (line 67) | def visualize(image_path, detections, ocr_results=None, output_path=None): function main (line 90) | def main(): FILE: memory/vision_api.template.py function ask_vision (line 19) | def ask_vision(image_input, prompt="详细描述这张图片的内容", timeout=60, max_pixels... function _prepare_image (line 49) | def _prepare_image(image_input, max_pixels=1440000): function _load_config (line 74) | def _load_config(): function _call_claude (line 78) | def _call_claude(b64, prompt, timeout, max_tokens=1024): function _call_openai_compat (line 96) | def _call_openai_compat(b64, prompt, timeout, *, apibase, apikey, model,... FILE: plugins/langfuse_tracing.py function _patched_log (line 23) | def _patched_log(label, content): function _extract_usage (line 35) | def _extract_usage(buf): function _wrap_parser (line 68) | def _wrap_parser(orig): function _patched_before (line 85) | def _patched_before(self, tool_name, args, response): function _patched_after (line 93) | def _patched_after(self, tool_name, args, response, ret): function _patched_loop (line 106) | def _patched_loop(client, system_prompt, user_input, handler, tools_sche... FILE: reflect/agent_team_worker.py function check (line 16) | def check(): function on_done (line 29) | def on_done(result): function _prompt (line 33) | def _prompt(): FILE: reflect/autonomous.py function check (line 5) | def check(): FILE: reflect/goal_mode.py function _load (line 15) | def _load(): function _save (line 20) | def _save(state): function check (line 55) | def check(): function on_done (line 88) | def on_done(result): FILE: reflect/scheduler.py function _parse_cooldown (line 32) | def _parse_cooldown(repeat): function _last_run (line 51) | def _last_run(tid, done_files): function check (line 62) | def check(): FILE: simphtml.py function optimize_html_for_tokens (line 596) | def optimize_html_for_tokens(html): function start_temp_monitor (line 636) | def start_temp_monitor(driver): function get_temp_texts (line 640) | def get_temp_texts(driver): function get_main_block (line 663) | def get_main_block(driver, extra_js="", text_only=False): function find_changed_elements (line 672) | def find_changed_elements(before_html, after_html): function get_html (line 705) | def get_html(driver, cutlist=False, maxchars=35000, instruction="", extr... function smart_truncate (line 744) | def smart_truncate(soup, budget, _depth=0): function execute_js_rich (line 820) | def execute_js_rich(script, driver, no_monitor=False):