diff --git a/telegram-agy-bot/bot.py b/telegram-agy-bot/bot.py index 74c3aa1..521058d 100644 --- a/telegram-agy-bot/bot.py +++ b/telegram-agy-bot/bot.py @@ -2762,13 +2762,20 @@ async def process_agent_turn_by_chat_id( model_to_use = getattr(curr_proj, "model", None) or getattr(session, "model", None) or settings.default_model or "gemini-3.7-flash-auto" effort_to_use = getattr(curr_proj, "reasoning_effort", None) or getattr(session, "reasoning_effort", None) model_display = get_model_display_name(model_to_use, effort_to_use) - initial_status = ( - f"๐Ÿ“ ูพุฑูˆฺ˜ู‡: {escape_html(curr_proj.name)}\n\n" - f"๐Ÿ’ญ {escape_html(model_display)}" - if is_fa else - f"๐Ÿ“ Project: {escape_html(curr_proj.name)}\n\n" - f"๐Ÿ’ญ {escape_html(model_display)}" - ) + curr_cid = getattr(curr_proj, "conversation_id", None) + conv_title = getattr(curr_proj, "conversation_titles", {}).get(curr_cid) if curr_cid and hasattr(curr_proj, "conversation_titles") else None + if is_fa: + topic_str = f" โ€ข ๐Ÿท๏ธ ยซ{escape_html(conv_title)}ยป" if conv_title else "" + initial_status = ( + f"๐Ÿ“ ูพุฑูˆฺ˜ู‡: {escape_html(curr_proj.name)}{topic_str}\n\n" + f"๐Ÿ’ญ {escape_html(model_display)}" + ) + else: + topic_str = f" โ€ข ๐Ÿท๏ธ \"{escape_html(conv_title)}\"" if conv_title else "" + initial_status = ( + f"๐Ÿ“ Project: {escape_html(curr_proj.name)}{topic_str}\n\n" + f"๐Ÿ’ญ {escape_html(model_display)}" + ) status_msg = await app.bot.send_message( chat_id=chat_id, text=initial_status, @@ -6532,14 +6539,18 @@ async def process_agent_turn( if status_msg_to_reuse: status_msg = status_msg_to_reuse else: + curr_cid = getattr(curr_proj, "conversation_id", None) + conv_title = getattr(curr_proj, "conversation_titles", {}).get(curr_cid) if curr_cid and hasattr(curr_proj, "conversation_titles") else None if is_fa: + topic_str = f" โ€ข ๐Ÿท๏ธ ยซ{escape_html(conv_title)}ยป" if conv_title else "" initial_status = ( - f"๐Ÿ“ ูพุฑูˆฺ˜ู‡: {escape_html(curr_proj.name)}\n\n" + f"๐Ÿ“ ูพุฑูˆฺ˜ู‡: {escape_html(curr_proj.name)}{topic_str}\n\n" f"๐Ÿ’ญ {escape_html(model_display)}" ) else: + topic_str = f" โ€ข ๐Ÿท๏ธ \"{escape_html(conv_title)}\"" if conv_title else "" initial_status = ( - f"๐Ÿ“ Project: {escape_html(curr_proj.name)}\n\n" + f"๐Ÿ“ Project: {escape_html(curr_proj.name)}{topic_str}\n\n" f"๐Ÿ’ญ {escape_html(model_display)}" ) @@ -6583,6 +6594,11 @@ async def process_agent_turn( session.last_response = raw_text curr_proj.last_response = raw_text + # Get dynamic conversation topic if set or updated + curr_cid = getattr(curr_proj, "conversation_id", None) + conv_title = getattr(curr_proj, "conversation_titles", {}).get(curr_cid) if curr_cid and hasattr(curr_proj, "conversation_titles") else None + topic_badge = f" โ€ข ๐Ÿท๏ธ {escape_html(conv_title)}" if conv_title else "" + # Suffix at the BOTTOM of the message bottom_parts = [] @@ -6595,9 +6611,9 @@ async def process_agent_turn( if settings.enable_tool_notifications and tools: bottom_parts.append("\n".join(tools[-2:]).strip()) - # 3. Status indicator at the bottom stating which model is being used + # 3. Status indicator at the bottom stating which model is being used and active topic if not final: - bottom_parts.append(f"๐Ÿ’ญ {escape_html(model_display)} โ–Œ") + bottom_parts.append(f"๐Ÿ’ญ {escape_html(model_display)}{topic_badge} โ–Œ") if raw_text.strip(): formatted_body = markdown_to_telegram_html(raw_text) @@ -6607,11 +6623,15 @@ async def process_agent_turn( full_html = formatted_body + (" โ–Œ" if not final else "") else: # Still waiting for response text - show project header and thinking at the bottom - proj_header = f"๐Ÿ“ ูพุฑูˆฺ˜ู‡: {escape_html(curr_proj.name)}" if is_fa else f"๐Ÿ“ Project: {escape_html(curr_proj.name)}" + proj_header = ( + f"๐Ÿ“ ูพุฑูˆฺ˜ู‡: {escape_html(curr_proj.name)}{topic_badge}" + if is_fa else + f"๐Ÿ“ Project: {escape_html(curr_proj.name)}{topic_badge}" + ) if bottom_parts: full_html = proj_header + "\n\n" + "\n\n".join(bottom_parts) else: - thinking_msg = f"๐Ÿ’ญ {escape_html(model_display)} โ–Œ" + thinking_msg = f"๐Ÿ’ญ {escape_html(model_display)}{topic_badge} โ–Œ" full_html = proj_header + "\n\n" + thinking_msg if len(full_html) > settings.max_message_length: diff --git a/telegram-agy-bot/sessions.json b/telegram-agy-bot/sessions.json index 58a4a53..f5461d9 100644 --- a/telegram-agy-bot/sessions.json +++ b/telegram-agy-bot/sessions.json @@ -18,14 +18,15 @@ "model": "gemini-3.7-flash-auto", "effort": "high", "language": "fa", - "last_context_length": 17888, - "last_total_tokens": 197031, - "last_response": "\u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 **\u0645\u0648\u0636\u0648\u0639 \u0645\u06a9\u0627\u0644\u0645\u0647 (Conversation Topic)** \u062f\u0631 \u067e\u06cc\u0627\u0645 \u0632\u0646\u062f\u0647 \u0648 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0622\u0645\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:\n\n---\n\n### \ud83d\udccb \u0634\u0631\u062d \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u062f\u0631 \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 ([`bot.py`](file:///root/telegram-agy-bot/bot.py)):\n\n1. **\u067e\u06cc\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0627\u0648\u0644\u06cc\u0647 (Initial Status):**\n - \u062f\u0631 \u0644\u062d\u0638\u0647 \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645 \u0648 \u0634\u0631\u0648\u0639 \u067e\u0631\u062f\u0627\u0632\u0634\u060c \u0639\u0646\u0648\u0627\u0646 \u0648 \u0645\u0648\u0636\u0648\u0639 \u062c\u0627\u0631\u06cc \u06af\u0641\u062a\u06af\u0648 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0634\u062f\u0647 \u0648 \u062f\u0631 \u0647\u062f\u0631 \u067e\u06cc\u0627\u0645 \u0632\u0646\u062f\u0647 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f:\n ```html\n \ud83d\udcc1 \u067e\u0631\u0648\u0698\u0647: default\n \ud83c\udff7\ufe0f \u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648: \u00ab\u0639\u0646\u0648\u0627\u0646 \u0645\u06a9\u0627\u0644\u0645\u0647\u00bb\n \ud83d\udcad \u0645\u062f\u0644: Gemini 3.7 Flash Auto\n ```\n\n2. **\u0646\u0645\u0627\u06cc\u0634 \u062f\u0631 \u062c\u0631\u06cc\u0627\u0646 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 (Live Stream Display):**\n - \u062f\u0631 \u0646\u0648\u0627\u0631 \u0648\u0636\u0639\u06cc\u062a \u0627\u0646\u062a\u0647\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 (\u062f\u0631 \u062d\u06cc\u0646 \u062a\u0641\u06a9\u0631 \u0648 \u0627\u062c\u0631\u0627\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627)\u060c \u062a\u06af \u0645\u0648\u0636\u0648\u0639 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u0627\u0645 \u0645\u062f\u0644 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f:\n `\ud83d\udcad \u0645\u062f\u0644 \u258c \u2022 \ud83c\udff7\ufe0f \u00ab\u0639\u0646\u0648\u0627\u0646 \u0645\u06a9\u0627\u0644\u0645\u0647\u00bb`\n - \u0627\u06af\u0631 \u0645\u0648\u0636\u0648\u0639 \u062f\u0631 \u062d\u06cc\u0646 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0628\u0627 \u0627\u06a9\u0634\u0646\u200c\u062a\u06af `[[SET_CONVERSATION_TITLE]]` \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0646\u062f\u060c \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627 \u0646\u0634\u0627\u0646 \u062a\u0627\u06cc\u06cc\u062f \u0645\u0648\u0636\u0648\u0639 \u062c\u062f\u06cc\u062f \u062f\u0631 \u0645\u062a\u0646 \u067e\u0627\u0633\u062e \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062e\u0648\u0627\u0647\u062f \u0634\u062f.\n\n3. **\u0628\u0631\u0631\u0633\u06cc \u0635\u062d\u062a \u0648 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0627\u0645\u0646:**\n - \u062a\u0633\u062a \u0633\u06cc\u0646\u062a\u06a9\u0633 (`py_compile`) \u0648 \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0627 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0627\u0645\u0646 \u0628\u062f\u0648\u0646 \u0648\u0642\u0641\u0647 \u062f\u0631 \u0633\u0631\u0648\u06cc\u0633.\n\n---\n\n\u2753 **\u0622\u06cc\u0627 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u0646\u0645\u0627\u06cc\u0634 \u0645\u0648\u0631\u062f \u062a\u0627\u06cc\u06cc\u062f \u0634\u0645\u0627\u0633\u062a \u062a\u0627 \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0631\u0648\u06cc \u06a9\u062f\u0647\u0627\u06cc \u0631\u0628\u0627\u062a \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u0646\u062f\u061f**\n\n[[BUTTON: text=\"\u2705 \u062a\u0627\u06cc\u06cc\u062f \u0648 \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\", prompt=\"\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0645\u0648\u0631\u062f \u062a\u0627\u06cc\u06cc\u062f \u0627\u0633\u062a\u060c \u0644\u0637\u0641\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646.\", row=1]]\n[[BUTTON: text=\"\u274c \u0644\u063a\u0648\", prompt=\"\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0644\u063a\u0648 \u0634\u0648\u062f.\", row=1]]\n\n---\n\u2022 \u0646\u0627\u0645 \u067e\u0631\u0648\u0698\u0647: default \n\u2022 \u0622\u062f\u0631\u0633 \u0645\u062e\u0632\u0646: https://git.msa.artacloud.ir/root/default\n", + "last_context_length": 24506, + "last_total_tokens": 237679, + "last_response": "[[SET_CONVERSATION_TITLE: title=\"\u0646\u0645\u0627\u06cc\u0634 \u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648 \u062f\u0631 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647\"]]\n[[RESTART_BOT]]\n\n\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0631\u0648\u06cc \u0633\u0648\u0631\u0633\u200c\u06a9\u062f \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 ([`bot.py`](file:///root/telegram-agy-bot/bot.py)) \u0627\u0639\u0645\u0627\u0644 \u06af\u0631\u062f\u06cc\u062f \u0648 \u0635\u062d\u062a \u06a9\u062f\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 `py_compile` \u062a\u0627\u06cc\u06cc\u062f \u0634\u062f.\n\n---\n\n### \u2728 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u0639\u0645\u0627\u0644\u200c\u0634\u062f\u0647:\n\n1. **\u067e\u06cc\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0627\u0648\u0644\u06cc\u0647 (Initial Status Header):**\n - \u062f\u0631 \u0644\u062d\u0638\u0647 \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627\u0631\u0628\u0631\u060c \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0646\u0627\u0645 \u067e\u0631\u0648\u0698\u0647\u060c \u0639\u0646\u0648\u0627\u0646/\u0645\u0648\u0636\u0648\u0639 \u0641\u0639\u0627\u0644 \u06af\u0641\u062a\u06af\u0648 \u0628\u0647 \u0635\u0648\u0631\u062a `\ud83c\udff7\ufe0f \u00ab\u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648\u00bb` \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.\n\n2. **\u0646\u0648\u0627\u0631 \u0648\u0636\u0639\u06cc\u062a \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 (Live Stream Indicator):**\n - \u062f\u0631 \u062d\u06cc\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u062a\u0641\u06a9\u0631 \u0645\u062f\u0644\u060c \u0628\u0631\u0686\u0633\u0628 \u0645\u0648\u0636\u0648\u0639 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0645\u062f\u0644 \u062c\u0627\u0631\u06cc \u062f\u0631 \u0627\u0646\u062a\u0647\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0632\u0646\u062f\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f:\n `\ud83d\udcad \u0645\u062f\u0644 \u258c \u2022 \ud83c\udff7\ufe0f \u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648`\n - \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u06cc\u0646\u0627\u0645\u06cc\u06a9 \u0645\u0648\u0636\u0648\u0639 \u062a\u0648\u0633\u0637 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc\u060c \u0639\u0646\u0648\u0627\u0646 \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.\n\n\u0631\u0628\u0627\u062a \u0628\u0627 \u062a\u06af `[[RESTART_BOT]]` \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u0628\u062f\u0648\u0646 \u0648\u0642\u0641\u0647 \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0627\u06cc\u0646 \u067e\u06cc\u0627\u0645 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0633\u0631\u06cc\u0639\u0627\u064b \u0641\u0639\u0627\u0644 \u06af\u0631\u062f\u0646\u062f.\n\n---\n\u2022 \u0646\u0627\u0645 \u067e\u0631\u0648\u0698\u0647: default \n\u2022 \u0622\u062f\u0631\u0633 \u0645\u062e\u0632\u0646: https://git.msa.artacloud.ir/root/default\n", "created_at": 1787995349.975879, "description": "", "conversation_titles": { "4acc374a-5742-40fe-b5ec-b8b3d1b14e68": "\u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0645\u062f\u0644", - "b0235b6f-a4af-4526-a344-b48e92fd1a08": "\u0634\u062e\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc \u06a9\u06cc\u0628\u0648\u0631\u062f \u0648 \u0645\u0646\u0648\u0647\u0627\u06cc \u0631\u0628\u0627\u062a" + "b0235b6f-a4af-4526-a344-b48e92fd1a08": "\u0634\u062e\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc \u06a9\u06cc\u0628\u0648\u0631\u062f \u0648 \u0645\u0646\u0648\u0647\u0627\u06cc \u0631\u0628\u0627\u062a", + "ad39c983-09f1-4042-889f-681049b0de26": "\u0646\u0645\u0627\u06cc\u0634 \u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648 \u062f\u0631 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647" } }, "copykar": { @@ -94,19 +95,19 @@ } }, "turn_in_progress": false, - "last_prompt": "\u062e\u0628 \u062d\u0627\u0644\u0627 \u062a\u0648\u06cc \u067e\u06cc\u0627\u0645 \u0632\u0646\u062f\u0647 \u06a9\u0647 \u0628\u0647\u0645 \u0646\u0634\u0648\u0646 \u0645\u06cc\u062f\u06cc\n\u0645\u0648\u0636\u0648\u0639 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0631\u0648 \u0647\u0645 \u0630\u06a9\u0631 \u06a9\u0646\n\u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0648\u0636\u0648\u0639 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0645\u06cc\u062e\u0648\u0627\u0645 \u0645\u062a\u0648\u062c\u0647 \u0628\u0634\u0645", - "last_response": "\u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 **\u0645\u0648\u0636\u0648\u0639 \u0645\u06a9\u0627\u0644\u0645\u0647 (Conversation Topic)** \u062f\u0631 \u067e\u06cc\u0627\u0645 \u0632\u0646\u062f\u0647 \u0648 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0622\u0645\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:\n\n---\n\n### \ud83d\udccb \u0634\u0631\u062d \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u062f\u0631 \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 ([`bot.py`](file:///root/telegram-agy-bot/bot.py)):\n\n1. **\u067e\u06cc\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0627\u0648\u0644\u06cc\u0647 (Initial Status):**\n - \u062f\u0631 \u0644\u062d\u0638\u0647 \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645 \u0648 \u0634\u0631\u0648\u0639 \u067e\u0631\u062f\u0627\u0632\u0634\u060c \u0639\u0646\u0648\u0627\u0646 \u0648 \u0645\u0648\u0636\u0648\u0639 \u062c\u0627\u0631\u06cc \u06af\u0641\u062a\u06af\u0648 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0634\u062f\u0647 \u0648 \u062f\u0631 \u0647\u062f\u0631 \u067e\u06cc\u0627\u0645 \u0632\u0646\u062f\u0647 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f:\n ```html\n \ud83d\udcc1 \u067e\u0631\u0648\u0698\u0647: default\n \ud83c\udff7\ufe0f \u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648: \u00ab\u0639\u0646\u0648\u0627\u0646 \u0645\u06a9\u0627\u0644\u0645\u0647\u00bb\n \ud83d\udcad \u0645\u062f\u0644: Gemini 3.7 Flash Auto\n ```\n\n2. **\u0646\u0645\u0627\u06cc\u0634 \u062f\u0631 \u062c\u0631\u06cc\u0627\u0646 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 (Live Stream Display):**\n - \u062f\u0631 \u0646\u0648\u0627\u0631 \u0648\u0636\u0639\u06cc\u062a \u0627\u0646\u062a\u0647\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 (\u062f\u0631 \u062d\u06cc\u0646 \u062a\u0641\u06a9\u0631 \u0648 \u0627\u062c\u0631\u0627\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627)\u060c \u062a\u06af \u0645\u0648\u0636\u0648\u0639 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u0627\u0645 \u0645\u062f\u0644 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f:\n `\ud83d\udcad \u0645\u062f\u0644 \u258c \u2022 \ud83c\udff7\ufe0f \u00ab\u0639\u0646\u0648\u0627\u0646 \u0645\u06a9\u0627\u0644\u0645\u0647\u00bb`\n - \u0627\u06af\u0631 \u0645\u0648\u0636\u0648\u0639 \u062f\u0631 \u062d\u06cc\u0646 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0628\u0627 \u0627\u06a9\u0634\u0646\u200c\u062a\u06af `[[SET_CONVERSATION_TITLE]]` \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0646\u062f\u060c \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627 \u0646\u0634\u0627\u0646 \u062a\u0627\u06cc\u06cc\u062f \u0645\u0648\u0636\u0648\u0639 \u062c\u062f\u06cc\u062f \u062f\u0631 \u0645\u062a\u0646 \u067e\u0627\u0633\u062e \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062e\u0648\u0627\u0647\u062f \u0634\u062f.\n\n3. **\u0628\u0631\u0631\u0633\u06cc \u0635\u062d\u062a \u0648 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0627\u0645\u0646:**\n - \u062a\u0633\u062a \u0633\u06cc\u0646\u062a\u06a9\u0633 (`py_compile`) \u0648 \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0627 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0627\u0645\u0646 \u0628\u062f\u0648\u0646 \u0648\u0642\u0641\u0647 \u062f\u0631 \u0633\u0631\u0648\u06cc\u0633.\n\n---\n\n\u2753 **\u0622\u06cc\u0627 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u0646\u0645\u0627\u06cc\u0634 \u0645\u0648\u0631\u062f \u062a\u0627\u06cc\u06cc\u062f \u0634\u0645\u0627\u0633\u062a \u062a\u0627 \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0631\u0648\u06cc \u06a9\u062f\u0647\u0627\u06cc \u0631\u0628\u0627\u062a \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u0646\u062f\u061f**\n\n[[BUTTON: text=\"\u2705 \u062a\u0627\u06cc\u06cc\u062f \u0648 \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\", prompt=\"\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0645\u0648\u0631\u062f \u062a\u0627\u06cc\u06cc\u062f \u0627\u0633\u062a\u060c \u0644\u0637\u0641\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646.\", row=1]]\n[[BUTTON: text=\"\u274c \u0644\u063a\u0648\", prompt=\"\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0644\u063a\u0648 \u0634\u0648\u062f.\", row=1]]\n\n---\n\u2022 \u0646\u0627\u0645 \u067e\u0631\u0648\u0698\u0647: default \n\u2022 \u0622\u062f\u0631\u0633 \u0645\u062e\u0632\u0646: https://git.msa.artacloud.ir/root/default\n", + "last_prompt": "\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0645\u0648\u0631\u062f \u062a\u0627\u06cc\u06cc\u062f \u0627\u0633\u062a\u060c \u0644\u0637\u0641\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646.", + "last_response": "[[SET_CONVERSATION_TITLE: title=\"\u0646\u0645\u0627\u06cc\u0634 \u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648 \u062f\u0631 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647\"]]\n[[RESTART_BOT]]\n\n\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0631\u0648\u06cc \u0633\u0648\u0631\u0633\u200c\u06a9\u062f \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 ([`bot.py`](file:///root/telegram-agy-bot/bot.py)) \u0627\u0639\u0645\u0627\u0644 \u06af\u0631\u062f\u06cc\u062f \u0648 \u0635\u062d\u062a \u06a9\u062f\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 `py_compile` \u062a\u0627\u06cc\u06cc\u062f \u0634\u062f.\n\n---\n\n### \u2728 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u0639\u0645\u0627\u0644\u200c\u0634\u062f\u0647:\n\n1. **\u067e\u06cc\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0627\u0648\u0644\u06cc\u0647 (Initial Status Header):**\n - \u062f\u0631 \u0644\u062d\u0638\u0647 \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627\u0631\u0628\u0631\u060c \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0646\u0627\u0645 \u067e\u0631\u0648\u0698\u0647\u060c \u0639\u0646\u0648\u0627\u0646/\u0645\u0648\u0636\u0648\u0639 \u0641\u0639\u0627\u0644 \u06af\u0641\u062a\u06af\u0648 \u0628\u0647 \u0635\u0648\u0631\u062a `\ud83c\udff7\ufe0f \u00ab\u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648\u00bb` \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.\n\n2. **\u0646\u0648\u0627\u0631 \u0648\u0636\u0639\u06cc\u062a \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 (Live Stream Indicator):**\n - \u062f\u0631 \u062d\u06cc\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u062a\u0641\u06a9\u0631 \u0645\u062f\u0644\u060c \u0628\u0631\u0686\u0633\u0628 \u0645\u0648\u0636\u0648\u0639 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0645\u062f\u0644 \u062c\u0627\u0631\u06cc \u062f\u0631 \u0627\u0646\u062a\u0647\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0632\u0646\u062f\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f:\n `\ud83d\udcad \u0645\u062f\u0644 \u258c \u2022 \ud83c\udff7\ufe0f \u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648`\n - \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u06cc\u0646\u0627\u0645\u06cc\u06a9 \u0645\u0648\u0636\u0648\u0639 \u062a\u0648\u0633\u0637 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc\u060c \u0639\u0646\u0648\u0627\u0646 \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0632\u0646\u062f\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.\n\n\u0631\u0628\u0627\u062a \u0628\u0627 \u062a\u06af `[[RESTART_BOT]]` \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u0628\u062f\u0648\u0646 \u0648\u0642\u0641\u0647 \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0627\u06cc\u0646 \u067e\u06cc\u0627\u0645 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0633\u0631\u06cc\u0639\u0627\u064b \u0641\u0639\u0627\u0644 \u06af\u0631\u062f\u0646\u062f.\n\n---\n\u2022 \u0646\u0627\u0645 \u067e\u0631\u0648\u0698\u0647: default \n\u2022 \u0622\u062f\u0631\u0633 \u0645\u062e\u0632\u0646: https://git.msa.artacloud.ir/root/default\n", "last_status_msg_id": null, "restart_pending": false, "last_delivered": true, - "last_update_time": 1788092365.4376326, + "last_update_time": 1788092450.8663747, "workspace": "/root", "conversation_id": "ad39c983-09f1-4042-889f-681049b0de26", "model": "gemini-3.7-flash-auto", "effort": "high", "language": "fa", - "last_context_length": 17888, - "last_total_tokens": 197031 + "last_context_length": 24506, + "last_total_tokens": 237679 }, "232801087": { "chat_id": 232801087,