diff --git a/telegram-agy-bot/data/memory.db b/telegram-agy-bot/data/memory.db index eb132a2..bfaa78d 100644 Binary files a/telegram-agy-bot/data/memory.db and b/telegram-agy-bot/data/memory.db differ diff --git a/telegram-agy-bot/formatters.py b/telegram-agy-bot/formatters.py index 0289fc9..90a611a 100644 --- a/telegram-agy-bot/formatters.py +++ b/telegram-agy-bot/formatters.py @@ -172,10 +172,32 @@ def format_thought( header = "💭 تفکر و استدلال:" if is_fa else "💭 Reasoning / Thinking:" return f"
{header}\n{escaped}\n" +TOOL_EMOJI_MAP: Dict[str, str] = { + "run_command": "💻", + "manage_task": "⚙️", + "view_file": "👁️", + "view_image": "👁️", + "replace_file_content": "✏️", + "write_to_file": "📝", + "list_dir": "📂", + "grep_search": "🔍", + "find_by_name": "📁", + "search_web": "🌐", + "read_url_content": "🔗", + "generate_image": "🎨", + "schedule": "⏰", + "invoke_subagent": "🤖", + "define_subagent": "🧠", + "manage_subagents": "👥", + "send_message": "💬", + "ask_question": "❓", +} + def format_tool_call(tool_name: str, tool_args: Any, lang: str = "fa") -> str: """Formats an active tool execution notification into a clean, concise badge.""" is_fa = (lang or "").lower() in ("fa", "farsi", "persian", "🇮🇷 persian / farsi (فارسی)") label = "ابزار" if is_fa else "Tool" + tool_emoji = TOOL_EMOJI_MAP.get(tool_name, "🔧") # Parse tool arguments if passed as JSON string or dict params = {} @@ -196,18 +218,29 @@ def format_tool_call(tool_name: str, tool_args: Any, lang: str = "fa") -> str: # Tool specific highlights if tool_name == "run_command": cmd = params.get("CommandLine", "") - target = f"
{escape_html(cmd[:120])}" if cmd else ""
- elif tool_name in ("write_to_file", "replace_file_content"):
+ target = f"💻 {escape_html(cmd[:120])}" if cmd else ""
+ elif tool_name == "write_to_file":
file_p = params.get("TargetFile", "")
instr = params.get("Instruction", "")
if file_p:
- target = f"📄 {escape_html(Path(file_p).name if '/' in file_p else file_p)}"
+ target = f"📝 {escape_html(Path(file_p).name if '/' in file_p else file_p)}"
+ if instr and not action:
+ action = instr[:100]
+ elif tool_name == "replace_file_content":
+ file_p = params.get("TargetFile", "")
+ instr = params.get("Instruction", "")
+ if file_p:
+ target = f"✏️ {escape_html(Path(file_p).name if '/' in file_p else file_p)}"
if instr and not action:
action = instr[:100]
elif tool_name in ("view_file", "view_image"):
file_p = params.get("AbsolutePath", "")
if file_p:
- target = f"🔍 {escape_html(Path(file_p).name if '/' in file_p else file_p)}"
+ target = f"👁️ {escape_html(Path(file_p).name if '/' in file_p else file_p)}"
+ elif tool_name == "list_dir":
+ dir_p = params.get("DirectoryPath", "")
+ if dir_p:
+ target = f"📂 {escape_html(dir_p[:80])}"
elif tool_name == "grep_search":
q = params.get("Query", "")
if q:
@@ -216,10 +249,22 @@ def format_tool_call(tool_name: str, tool_args: Any, lang: str = "fa") -> str:
pat = params.get("Pattern", "")
if pat:
target = f"📁 {escape_html(pat[:80])}"
- elif tool_name in ("read_url_content", "search_web"):
- u = params.get("Url") or params.get("query", "")
+ elif tool_name == "search_web":
+ q = params.get("query", "")
+ if q:
+ target = f"🌐 {escape_html(q[:80])}"
+ elif tool_name == "read_url_content":
+ u = params.get("Url", "")
if u:
- target = f"🌐 {escape_html(u[:80])}"
+ target = f"🔗 {escape_html(u[:80])}"
+ elif tool_name == "generate_image":
+ p = params.get("Prompt", "")
+ if p:
+ target = f"🎨 {escape_html(p[:80])}"
+ elif tool_name == "schedule":
+ timing = params.get("CronExpression") or (f"{params.get('DurationSeconds')}s" if params.get("DurationSeconds") else "") or params.get("Prompt", "")
+ if timing:
+ target = f"⏰ {escape_html(str(timing)[:80])}"
elif tool_name == "manage_task":
act = params.get("Action", "")
tid = params.get("TaskId", "")
@@ -229,6 +274,18 @@ def format_tool_call(tool_name: str, tool_args: Any, lang: str = "fa") -> str:
roles = [s.get("Role", s.get("TypeName", "Agent")) for s in subagents if isinstance(s, dict)]
if roles:
target = f"🤖 {escape_html(', '.join(roles)[:80])}"
+ elif tool_name == "define_subagent":
+ name = params.get("name", "")
+ if name:
+ target = f"🧠 {escape_html(name[:80])}"
+ elif tool_name == "manage_subagents":
+ act = params.get("Action", "")
+ target = f"👥 {escape_html(act)}" if act else ""
+ elif tool_name == "send_message":
+ msg = params.get("Message", "")
+ target = f"💬 {escape_html(msg[:80])}" if msg else ""
+ elif tool_name == "ask_question":
+ target = "❓ درخواست تایید / سوال"
if not action and not target and isinstance(tool_args, str) and tool_args.strip():
# Fallback short string preview
@@ -238,7 +295,7 @@ def format_tool_call(tool_name: str, tool_args: Any, lang: str = "fa") -> str:
target = f"{escape_html(short_args)}"
action_text = f" ({escape_html(action)})" if action else ""
- out = f"🔧 {label}: {escape_html(tool_name)}{action_text}"
+ out = f"{tool_emoji} {label}: {escape_html(tool_name)}{action_text}"
if target:
out += f"\n ↳ {target}"
return out + "\n"
diff --git a/telegram-agy-bot/sessions.json b/telegram-agy-bot/sessions.json
index 8fb23d6..55ae369 100644
--- a/telegram-agy-bot/sessions.json
+++ b/telegram-agy-bot/sessions.json
@@ -8,26 +8,29 @@
"workspace": "/root",
"owner_id": 78649634,
"shared_with": [],
- "conversation_id": "fe6e374f-2ba1-41ca-9176-60a724029cfe",
+ "conversation_id": "440b8e3b-5e40-42b6-a3c6-32d32fd0db09",
"conversation_history": [
- "fe6e374f-2ba1-41ca-9176-60a724029cfe"
+ "fe6e374f-2ba1-41ca-9176-60a724029cfe",
+ "440b8e3b-5e40-42b6-a3c6-32d32fd0db09"
],
"model": "gemini-3.7-flash-auto",
"effort": "high",
"language": "fa",
- "last_context_length": 5207,
- "last_total_tokens": 41131,
- "last_response": "\u062f\u0631 \u0627\u062f\u0627\u0645\u0647\u060c \u0644\u06cc\u0633\u062a \u062a\u0645\u0627\u0645 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a **\u0633\u0637\u0631\u06cc \u0648 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0627\u06cc\u0645\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc / \u0645\u0648\u062c\u0648\u062f** \u0622\u0645\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647\u200c\u0627\u0645. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0631 \u0627\u06cc\u0645\u0648\u062c\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u0627\u06cc\u0644 \u0628\u0648\u062f\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u0648 \u0647\u0645\u06cc\u0646 \u0644\u06cc\u0633\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0646 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0641\u0648\u0631\u0627\u064b \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0646\u0645\u0627\u06cc\u0634 \u0632\u0646\u062f\u0647 \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u0645:\n\n```text\n\ud83d\udcbb - run_command : \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0648 \u0634\u0644\n\u2699\ufe0f - manage_task : \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062a\u0633\u06a9\u200c\u0647\u0627\u06cc \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647\n\ud83d\udc41\ufe0f - view_file : \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\n\u270f\ufe0f - replace_file_content : \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u06a9\u062f\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644\n\ud83d\udcdd - write_to_file : \u0627\u06cc\u062c\u0627\u062f \u06cc\u0627 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f\n\ud83d\udcc2 - list_dir : \u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u06cc\u0633\u062a \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u067e\u0648\u0634\u0647\u200c\u0647\u0627\n\ud83d\udd0d - grep_search : \u062c\u0633\u062a\u062c\u0648\u06cc \u0645\u062a\u0646\u06cc \u062f\u0631\u0648\u0646 \u06a9\u062f\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\n\ud83d\udcc1 - find_by_name : \u062c\u0633\u062a\u062c\u0648\u06cc \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u0641\u0648\u0644\u062f\u0631\u0647\u0627\n\ud83c\udf10 - search_web : \u062c\u0633\u062a\u062c\u0648 \u062f\u0631 \u0648\u0628 \u0648 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a\n\ud83d\udd17 - read_url_content : \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0645\u062d\u062a\u0648\u0627\u06cc \u0635\u0641\u062d\u0627\u062a \u0648\u0628\n\ud83c\udfa8 - generate_image : \u062a\u0648\u0644\u06cc\u062f \u0648 \u0633\u0627\u062e\u062a \u062a\u0635\u0648\u06cc\u0631 \u0628\u0627 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc\n\u23f0 - schedule : \u0632\u0645\u0627\u0646\u200c\u0628\u0646\u062f\u06cc \u062a\u0627\u06cc\u0645\u0631\u0647\u0627 \u0648 \u06a9\u0631\u0627\u0646\u200c\u062c\u0627\u0628\u200c\u0647\u0627\n\ud83e\udd16 - invoke_subagent : \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u062c\u0646\u062a\u200c\u0647\u0627\u06cc \u0641\u0631\u0639\u06cc\n\ud83e\udde0 - define_subagent : \u062a\u0639\u0631\u06cc\u0641 \u0627\u06cc\u062c\u0646\u062a \u0641\u0631\u0639\u06cc \u062c\u062f\u06cc\u062f\n\ud83d\udc65 - manage_subagents : \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u06cc\u062c\u0646\u062a\u200c\u0647\u0627\u06cc \u0641\u0639\u0627\u0644\n\ud83d\udcac - send_message : \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645 \u0628\u0647 \u0627\u06cc\u062c\u0646\u062a\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\n\u2753 - ask_question : \u067e\u0631\u0633\u0634 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u062a\u0627\u06cc\u06cc\u062f\u06cc\u0647 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\n```\n\n\u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631\u06cc \u062f\u0631 \u0627\u06cc\u0645\u0648\u062c\u06cc\u200c\u0647\u0627 \u0645\u062f \u0646\u0638\u0631\u062a\u0627\u0646 \u0627\u0633\u062a \u0627\u0639\u0645\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0644\u06cc\u0633\u062a \u0648\u06cc\u0631\u0627\u06cc\u0634\u200c\u0634\u062f\u0647 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0631\u0648\u06cc \u0633\u0648\u0631\u0633 \u06a9\u062f \u0631\u0628\u0627\u062a \u062a\u0646\u0638\u06cc\u0645 \u0634\u0648\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_context_length": 9810,
+ "last_total_tokens": 86622,
+ "last_response": "\u0639\u0644\u062a \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u062f\u0642\u06cc\u0642\u0627\u064b \u0628\u0647 **\u0646\u062d\u0648\u0647 \u062a\u0645\u06cc\u0632\u0633\u0627\u0632\u06cc \u0645\u062a\u0646 \u067e\u06cc\u0627\u0645 \u062f\u0631 \u0628\u0627\u062a (\u062a\u0627\u0628\u0639 `clean_user_prompt`)** \u0645\u0631\u0628\u0648\u0637 \u0645\u06cc\u200c\u0634\u0648\u062f:\n\n---\n\n### \ud83d\udd0d \u0631\u06cc\u0634\u0647\u200c\u06cc\u0627\u0628\u06cc \u0648 \u0639\u0644\u062a \u0645\u0634\u06a9\u0644 (Root Cause Analysis):\n1. **\u062a\u062f\u0627\u062e\u0644 \u062a\u0631\u062a\u06cc\u0628 Regex \u062f\u0631 \u062a\u0645\u06cc\u0632\u0633\u0627\u0632\u06cc \u067e\u06cc\u0627\u0645:**\n \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u067e\u06cc\u0627\u0645 \u0634\u0645\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u067e\u0631\u0627\u0645\u067e\u062a\u200c\u0647\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645\u06cc \u062f\u0627\u062e\u0644\u06cc (\u0645\u0627\u0646\u0646\u062f \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u0631\u0648\u0698\u0647 \u0641\u0639\u0627\u0644\u060c \u0645\u062f\u0644\u060c \u062d\u0627\u0641\u0638\u0647 \u0648...) \u062f\u0631 \u0642\u0627\u0644\u0628 \u0628\u0644\u0627\u06a9\u200c\u0647\u0627\u06cc \u0646\u0634\u0627\u0646\u0647\u200c\u06af\u0630\u0627\u0631\u06cc\u200c\u0634\u062f\u0647 \u0632\u06cc\u0631 \u0628\u0647 \u0645\u0648\u062a\u0648\u0631 AGY \u0641\u0631\u0633\u062a\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f:\n ```html\n \n [SYSTEM INSTRUCTION: ACTIVE PROJECT CONTEXT]\n \u2022 Active Project Name: default\n \u2022 Active Workspace Path: /root\n ...\n \n \u0645\u062a\u0646 \u067e\u06cc\u0627\u0645 \u0634\u0645\u0627\n ```\n2. \u062f\u0631 \u062a\u0627\u0628\u0639 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0639\u0646\u0648\u0627\u0646 \u0648 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u06af\u0641\u062a\u06af\u0648 (`clean_user_prompt`)\u060c \u0627\u0628\u062a\u062f\u0627 \u062a\u0645\u0627\u0645 \u062a\u06af\u200c\u0647\u0627\u06cc `<...>` \u062d\u0630\u0641 \u0645\u06cc\u200c\u0634\u062f\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u062f \u0628\u0631\u0686\u0633\u0628\u200c\u0647\u0627\u06cc \u062a\u0641\u06a9\u06cc\u06a9\u200c\u06a9\u0646\u0646\u062f\u0647 `` \u0648 `` \u067e\u0627\u06a9 \u0634\u0648\u0646\u062f \u0648 \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u062f\u0627\u062e\u0644 \u0622\u0646 (\u0634\u0627\u0645\u0644 `\u2022 Active Project Name: default ...`) \u0628\u0647 \u0627\u0634\u062a\u0628\u0627\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062a\u0646 \u067e\u06cc\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0627\u0642\u06cc \u0628\u0645\u0627\u0646\u062f \u0648 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u06af\u0641\u062a\u06af\u0648 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f.\n\n---\n\n### \ud83d\udee0\ufe0f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0648 \u0627\u0635\u0644\u0627\u062d\u0627\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc:\n1. **\u0627\u0635\u0644\u0627\u062d \u0627\u0648\u0644\u0648\u06cc\u062a \u0648 \u062a\u0631\u062a\u06cc\u0628 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627 \u062f\u0631 `agy_engine.py`:**\n - \u0627\u0628\u062a\u062f\u0627 \u0628\u0644\u0627\u06a9 \u06a9\u0627\u0645\u0644 `...` \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062a\u0645\u0627\u0645\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u06cc\u0633\u062a\u0645\u06cc \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0648 \u062d\u0630\u0641 \u0634\u0648\u062f.\n - \u0633\u067e\u0633 \u062a\u06af\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0648 \u0641\u0631\u0627\u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0634\u0648\u0646\u062f \u062a\u0627 \u0645\u062a\u0646 \u062e\u0627\u0644\u0635 \u067e\u06cc\u0627\u0645 \u0634\u0645\u0627 (\u0645\u0627\u0646\u0646\u062f \u00ab\u0627\u06cc\u0646 \u0645\u062a\u0646 \u0631\u0648 \u0628\u0628\u06cc\u0646 \u06a9\u0647 \u0628\u0631\u0627\u0645 \u0641\u0631\u0633\u062a\u0627\u062f\u06cc\u00bb) \u0628\u0631\u0627\u06cc \u0639\u0646\u0648\u0627\u0646 \u0648 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u06af\u0641\u062a\u06af\u0648 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06af\u0631\u062f\u062f.\n2. **\u0627\u0641\u0632\u0648\u062f\u0646 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644\u06cc:**\n - \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0628\u0631\u0627\u06cc \u062d\u0630\u0641 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc `ACTIVE PROJECT CONTEXT` \u0648 \u0642\u0648\u0627\u0646\u06cc\u0646 \u062d\u0627\u0641\u0638\u0647 \u062c\u0647\u062a \u062a\u0636\u0645\u06cc\u0646 \u067e\u0627\u06a9\u06cc\u0632\u06af\u06cc \u06f1\u06f0\u06f0\u066a \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u062a\u0645\u0627\u0645 \u06af\u0641\u062a\u06af\u0648\u0647\u0627.\n\n---\n\n\u0622\u06cc\u0627 \u0628\u0627 \u0627\u0639\u0645\u0627\u0644 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0648\u06cc \u0631\u0628\u0627\u062a \u0648 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0622\u0646 \u0645\u0648\u0627\u0641\u0642\u06cc\u062f\u061f \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u0623\u06cc\u06cc\u062f\u060c \u0627\u0635\u0644\u0627\u062d\u0627\u062a \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0627\u0639\u0645\u0627\u0644 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f.\n\n[[SET_CONVERSATION_TITLE: title=\"\u0628\u0631\u0631\u0633\u06cc \u0645\u0634\u06a9\u0644 \u0639\u0646\u0648\u0627\u0646 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u06af\u0641\u062a\u06af\u0648\u0647\u0627\"]]\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": {}
+ "conversation_titles": {
+ "440b8e3b-5e40-42b6-a3c6-32d32fd0db09": "\u0628\u0631\u0631\u0633\u06cc \u0645\u0634\u06a9\u0644 \u0639\u0646\u0648\u0627\u0646 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u06af\u0641\u062a\u06af\u0648\u0647\u0627"
+ }
},
"copykar": {
"name": "copykar",
"workspace": "/root/projects/78649634/copykar",
"owner_id": 78649634,
"shared_with": [],
- "conversation_id": "776e723f-1454-428f-9a46-dcf35a86d45c",
+ "conversation_id": null,
"conversation_history": [
"07ad85f2-163c-4264-9a06-ff349c073d5d",
"776e723f-1454-428f-9a46-dcf35a86d45c"
@@ -35,9 +38,9 @@
"model": "gemini-3.7-flash-auto",
"effort": "high",
"language": "fa",
- "last_context_length": 50596,
- "last_total_tokens": 530216,
- "last_response": "\u062f\u0631 \u062d\u0627\u0644 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0633\u0631\u0648\u06cc\u0633 \u062f\u0627\u06a9\u0631...\n\u062f\u0631 \u062d\u0627\u0644 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631...\n\u062f\u0631 \u062d\u0627\u0644 \u0646\u0647\u0627\u06cc\u06cc\u200c\u0633\u0627\u0632\u06cc \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a...\n\u062f\u0631 \u062d\u0627\u0644 \u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631...\n[[SAVE_MEMORY: type=\"project\", key=\"docker_restart_on_changes\", category=\"rule\", content=\"\u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062f\u0627\u06a9\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u067e\u0633 \u0627\u0632 \u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u06a9\u062f\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u0627\u06a9\u0631 \u067e\u0631\u0648\u0698\u0647 \u0628\u0627\u06cc\u062f \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0634\u0648\u062f.\"]]\n\n\u0642\u0627\u0646\u0648\u0646 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u062f\u0627\u06a9\u0631 \u067e\u0633 \u0627\u0632 \u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u06a9\u062f\u0647\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0628\u0647 **\u062d\u0627\u0641\u0638\u0647 \u062f\u0627\u0626\u0645\u06cc \u067e\u0631\u0648\u0698\u0647 (Project Memory)** \u0627\u0636\u0627\u0641\u0647 \u0634\u062f. \n\n\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u0635\u0644\u06cc \u067e\u0631\u0648\u0698\u0647 (`copykar_app`) \u0646\u06cc\u0632 \u0647\u0645\u200c\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u06af\u0631\u062f\u06cc\u062f \u0648 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0628\u0627 \u0622\u062e\u0631\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062f\u0647\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0641\u0639\u0627\u0644 (`Up & Running`) \u062f\u0631 \u0645\u062f\u0627\u0631 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f.\n\n\u0627\u0632 \u0627\u06cc\u0646 \u067e\u0633 \u067e\u0633 \u0627\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u0627\u0635\u0644\u0627\u062d \u0648 \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0648\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u0627\u06a9\u0631 \u0628\u0647\u200c\u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u062e\u0648\u0627\u0647\u062f \u0634\u062f.\n\n[[BUTTON: text=\"\ud83d\udc19 \u0645\u062e\u0632\u0646 \u06af\u06cc\u062a\", url=\"https://git.msa.artacloud.ir/root/copykar\", row=1]]\n[[BUTTON: text=\"\ud83d\udcca \u0648\u0636\u0639\u06cc\u062a \u0645\u0635\u0631\u0641\", cmd=\"/usage\", row=1]]\n\n\u2022 \u0646\u0627\u0645 \u067e\u0631\u0648\u0698\u0647: copykar\n\u2022 \u0622\u062f\u0631\u0633 \u0645\u062e\u0632\u0646: https://git.msa.artacloud.ir/root/copykar\n",
+ "last_context_length": null,
+ "last_total_tokens": null,
+ "last_response": null,
"created_at": 1788031971.6031597,
"description": "",
"conversation_titles": {}
@@ -84,19 +87,19 @@
}
},
"turn_in_progress": false,
- "last_prompt": "\u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0647\u0627 \u0645\u06cc\u062e\u0648\u0627\u0645 \u0627\u06cc\u0645\u0648\u062c\u06cc \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u0645\n\u062d\u0627\u0644\u0627 \u0644\u06cc\u0633\u062a \u0631\u0648 \u0628\u0627 \u0627\u06cc\u0645\u0648\u062c\u06cc \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0648 \u0628\u0647 \u0635\u0648\u0631\u062a\u06cc \u0633\u0637\u0631\u06cc \u0628\u0631\u0627\u0645 \u0628\u0641\u0631\u0633\u062a \u062a\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634\u0634 \u06a9\u0646\u0645 \u0648 \u0628\u0631\u0627\u062a \u0628\u0641\u0631\u0633\u062a\u0645 \u062a\u0627 \u0631\u0648\u06cc \u0631\u0628\u0627\u062a \u0627\u0639\u0645\u0627\u0644\u0634 \u06a9\u0646\u06cc",
- "last_response": "\u062f\u0631 \u0627\u062f\u0627\u0645\u0647\u060c \u0644\u06cc\u0633\u062a \u062a\u0645\u0627\u0645 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a **\u0633\u0637\u0631\u06cc \u0648 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0627\u06cc\u0645\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc / \u0645\u0648\u062c\u0648\u062f** \u0622\u0645\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647\u200c\u0627\u0645. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0631 \u0627\u06cc\u0645\u0648\u062c\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u0627\u06cc\u0644 \u0628\u0648\u062f\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u0648 \u0647\u0645\u06cc\u0646 \u0644\u06cc\u0633\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0646 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0641\u0648\u0631\u0627\u064b \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0646\u0645\u0627\u06cc\u0634 \u0632\u0646\u062f\u0647 \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u0645:\n\n```text\n\ud83d\udcbb - run_command : \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0648 \u0634\u0644\n\u2699\ufe0f - manage_task : \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062a\u0633\u06a9\u200c\u0647\u0627\u06cc \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647\n\ud83d\udc41\ufe0f - view_file : \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\n\u270f\ufe0f - replace_file_content : \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u06a9\u062f\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644\n\ud83d\udcdd - write_to_file : \u0627\u06cc\u062c\u0627\u062f \u06cc\u0627 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f\n\ud83d\udcc2 - list_dir : \u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u06cc\u0633\u062a \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u067e\u0648\u0634\u0647\u200c\u0647\u0627\n\ud83d\udd0d - grep_search : \u062c\u0633\u062a\u062c\u0648\u06cc \u0645\u062a\u0646\u06cc \u062f\u0631\u0648\u0646 \u06a9\u062f\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\n\ud83d\udcc1 - find_by_name : \u062c\u0633\u062a\u062c\u0648\u06cc \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u0641\u0648\u0644\u062f\u0631\u0647\u0627\n\ud83c\udf10 - search_web : \u062c\u0633\u062a\u062c\u0648 \u062f\u0631 \u0648\u0628 \u0648 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a\n\ud83d\udd17 - read_url_content : \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0645\u062d\u062a\u0648\u0627\u06cc \u0635\u0641\u062d\u0627\u062a \u0648\u0628\n\ud83c\udfa8 - generate_image : \u062a\u0648\u0644\u06cc\u062f \u0648 \u0633\u0627\u062e\u062a \u062a\u0635\u0648\u06cc\u0631 \u0628\u0627 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc\n\u23f0 - schedule : \u0632\u0645\u0627\u0646\u200c\u0628\u0646\u062f\u06cc \u062a\u0627\u06cc\u0645\u0631\u0647\u0627 \u0648 \u06a9\u0631\u0627\u0646\u200c\u062c\u0627\u0628\u200c\u0647\u0627\n\ud83e\udd16 - invoke_subagent : \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u062c\u0646\u062a\u200c\u0647\u0627\u06cc \u0641\u0631\u0639\u06cc\n\ud83e\udde0 - define_subagent : \u062a\u0639\u0631\u06cc\u0641 \u0627\u06cc\u062c\u0646\u062a \u0641\u0631\u0639\u06cc \u062c\u062f\u06cc\u062f\n\ud83d\udc65 - manage_subagents : \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u06cc\u062c\u0646\u062a\u200c\u0647\u0627\u06cc \u0641\u0639\u0627\u0644\n\ud83d\udcac - send_message : \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645 \u0628\u0647 \u0627\u06cc\u062c\u0646\u062a\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\n\u2753 - ask_question : \u067e\u0631\u0633\u0634 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u062a\u0627\u06cc\u06cc\u062f\u06cc\u0647 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\n```\n\n\u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631\u06cc \u062f\u0631 \u0627\u06cc\u0645\u0648\u062c\u06cc\u200c\u0647\u0627 \u0645\u062f \u0646\u0638\u0631\u062a\u0627\u0646 \u0627\u0633\u062a \u0627\u0639\u0645\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0644\u06cc\u0633\u062a \u0648\u06cc\u0631\u0627\u06cc\u0634\u200c\u0634\u062f\u0647 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0631\u0648\u06cc \u0633\u0648\u0631\u0633 \u06a9\u062f \u0631\u0628\u0627\u062a \u062a\u0646\u0638\u06cc\u0645 \u0634\u0648\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_prompt": "\u0627\u06cc\u0646 \u0645\u062a\u0646 \u0631\u0648 \u0628\u0628\u06cc\u0646 \u06a9\u0647 \u0628\u0631\u0627\u0645 \u0641\u0631\u0633\u062a\u0627\u062f\u06cc\n\ud83d\udcdc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u06af\u0641\u062a\u06af\u0648\u0647\u0627 (\u067e\u0631\u0648\u0698\u0647: default)\n\n\ud83d\udca1 \u062c\u0647\u062a \u0633\u0648\u06cc\u06cc\u0686 \u06cc\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u0648 \u062d\u0630\u0641 \u0647\u0631 \u06af\u0641\u062a\u06af\u0648\u060c \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u0645\u0631\u0628\u0648\u0637\u0647 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f:\n\n1. #1 fe6e374f (3 \u0646\u0648\u0628\u062a)\n \u2514 \u00ab\u2022 Active Project Name: default \u2022 Active Workspace Path: /root \u2022 Active Conver...\u00bb\n\n\ud83d\udca1 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u062a\u0646\u06cc:\n\u2022 \u0633\u0648\u06cc\u06cc\u0686: /switchconv <\u0634\u0645\u0627\u0631\u0647 \u06cc\u0627 \u0634\u0646\u0627\u0633\u0647>\n\u2022 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0648\u0636\u0648\u0639: /settopic <\u0639\u0646\u0648\u0627\u0646 \u062c\u062f\u06cc\u062f>\n\u2022 \u062d\u0630\u0641: /delconv <\u0634\u0645\u0627\u0631\u0647 \u06cc\u0627 \u0634\u0646\u0627\u0633\u0647>\n\u2022 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0647\u0645\u0647: /clearconvs\n\u0627\u06cc\u0646\u062c\u0627 \u0645\u0648\u0636\u0648\u0639 \u06af\u0641\u062a\u06af\u0648 \u0647\u0627\u0631\u0648 \u0645\u0646 \u0646\u0645\u06cc\u0641\u0647\u0645\u0645",
+ "last_response": "\u0639\u0644\u062a \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u062f\u0642\u06cc\u0642\u0627\u064b \u0628\u0647 **\u0646\u062d\u0648\u0647 \u062a\u0645\u06cc\u0632\u0633\u0627\u0632\u06cc \u0645\u062a\u0646 \u067e\u06cc\u0627\u0645 \u062f\u0631 \u0628\u0627\u062a (\u062a\u0627\u0628\u0639 `clean_user_prompt`)** \u0645\u0631\u0628\u0648\u0637 \u0645\u06cc\u200c\u0634\u0648\u062f:\n\n---\n\n### \ud83d\udd0d \u0631\u06cc\u0634\u0647\u200c\u06cc\u0627\u0628\u06cc \u0648 \u0639\u0644\u062a \u0645\u0634\u06a9\u0644 (Root Cause Analysis):\n1. **\u062a\u062f\u0627\u062e\u0644 \u062a\u0631\u062a\u06cc\u0628 Regex \u062f\u0631 \u062a\u0645\u06cc\u0632\u0633\u0627\u0632\u06cc \u067e\u06cc\u0627\u0645:**\n \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u067e\u06cc\u0627\u0645 \u0634\u0645\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u067e\u0631\u0627\u0645\u067e\u062a\u200c\u0647\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645\u06cc \u062f\u0627\u062e\u0644\u06cc (\u0645\u0627\u0646\u0646\u062f \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u0631\u0648\u0698\u0647 \u0641\u0639\u0627\u0644\u060c \u0645\u062f\u0644\u060c \u062d\u0627\u0641\u0638\u0647 \u0648...) \u062f\u0631 \u0642\u0627\u0644\u0628 \u0628\u0644\u0627\u06a9\u200c\u0647\u0627\u06cc \u0646\u0634\u0627\u0646\u0647\u200c\u06af\u0630\u0627\u0631\u06cc\u200c\u0634\u062f\u0647 \u0632\u06cc\u0631 \u0628\u0647 \u0645\u0648\u062a\u0648\u0631 AGY \u0641\u0631\u0633\u062a\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f:\n ```html\n \n [SYSTEM INSTRUCTION: ACTIVE PROJECT CONTEXT]\n \u2022 Active Project Name: default\n \u2022 Active Workspace Path: /root\n ...\n \n \u0645\u062a\u0646 \u067e\u06cc\u0627\u0645 \u0634\u0645\u0627\n ```\n2. \u062f\u0631 \u062a\u0627\u0628\u0639 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0639\u0646\u0648\u0627\u0646 \u0648 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u06af\u0641\u062a\u06af\u0648 (`clean_user_prompt`)\u060c \u0627\u0628\u062a\u062f\u0627 \u062a\u0645\u0627\u0645 \u062a\u06af\u200c\u0647\u0627\u06cc `<...>` \u062d\u0630\u0641 \u0645\u06cc\u200c\u0634\u062f\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u062f \u0628\u0631\u0686\u0633\u0628\u200c\u0647\u0627\u06cc \u062a\u0641\u06a9\u06cc\u06a9\u200c\u06a9\u0646\u0646\u062f\u0647 `` \u0648 `` \u067e\u0627\u06a9 \u0634\u0648\u0646\u062f \u0648 \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u062f\u0627\u062e\u0644 \u0622\u0646 (\u0634\u0627\u0645\u0644 `\u2022 Active Project Name: default ...`) \u0628\u0647 \u0627\u0634\u062a\u0628\u0627\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062a\u0646 \u067e\u06cc\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0627\u0642\u06cc \u0628\u0645\u0627\u0646\u062f \u0648 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u06af\u0641\u062a\u06af\u0648 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f.\n\n---\n\n### \ud83d\udee0\ufe0f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0648 \u0627\u0635\u0644\u0627\u062d\u0627\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc:\n1. **\u0627\u0635\u0644\u0627\u062d \u0627\u0648\u0644\u0648\u06cc\u062a \u0648 \u062a\u0631\u062a\u06cc\u0628 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627 \u062f\u0631 `agy_engine.py`:**\n - \u0627\u0628\u062a\u062f\u0627 \u0628\u0644\u0627\u06a9 \u06a9\u0627\u0645\u0644 `...` \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062a\u0645\u0627\u0645\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u06cc\u0633\u062a\u0645\u06cc \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0648 \u062d\u0630\u0641 \u0634\u0648\u062f.\n - \u0633\u067e\u0633 \u062a\u06af\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0648 \u0641\u0631\u0627\u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0634\u0648\u0646\u062f \u062a\u0627 \u0645\u062a\u0646 \u062e\u0627\u0644\u0635 \u067e\u06cc\u0627\u0645 \u0634\u0645\u0627 (\u0645\u0627\u0646\u0646\u062f \u00ab\u0627\u06cc\u0646 \u0645\u062a\u0646 \u0631\u0648 \u0628\u0628\u06cc\u0646 \u06a9\u0647 \u0628\u0631\u0627\u0645 \u0641\u0631\u0633\u062a\u0627\u062f\u06cc\u00bb) \u0628\u0631\u0627\u06cc \u0639\u0646\u0648\u0627\u0646 \u0648 \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634 \u06af\u0641\u062a\u06af\u0648 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06af\u0631\u062f\u062f.\n2. **\u0627\u0641\u0632\u0648\u062f\u0646 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644\u06cc:**\n - \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0628\u0631\u0627\u06cc \u062d\u0630\u0641 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc `ACTIVE PROJECT CONTEXT` \u0648 \u0642\u0648\u0627\u0646\u06cc\u0646 \u062d\u0627\u0641\u0638\u0647 \u062c\u0647\u062a \u062a\u0636\u0645\u06cc\u0646 \u067e\u0627\u06a9\u06cc\u0632\u06af\u06cc \u06f1\u06f0\u06f0\u066a \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u062a\u0645\u0627\u0645 \u06af\u0641\u062a\u06af\u0648\u0647\u0627.\n\n---\n\n\u0622\u06cc\u0627 \u0628\u0627 \u0627\u0639\u0645\u0627\u0644 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0648\u06cc \u0631\u0628\u0627\u062a \u0648 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0622\u0646 \u0645\u0648\u0627\u0641\u0642\u06cc\u062f\u061f \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u0623\u06cc\u06cc\u062f\u060c \u0627\u0635\u0644\u0627\u062d\u0627\u062a \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0627\u0639\u0645\u0627\u0644 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f.\n\n[[SET_CONVERSATION_TITLE: title=\"\u0628\u0631\u0631\u0633\u06cc \u0645\u0634\u06a9\u0644 \u0639\u0646\u0648\u0627\u0646 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u06af\u0641\u062a\u06af\u0648\u0647\u0627\"]]\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": 1788095608.300932,
+ "last_update_time": 1788095977.212368,
"workspace": "/root",
- "conversation_id": "fe6e374f-2ba1-41ca-9176-60a724029cfe",
+ "conversation_id": "440b8e3b-5e40-42b6-a3c6-32d32fd0db09",
"model": "gemini-3.7-flash-auto",
"effort": "high",
"language": "fa",
- "last_context_length": 5207,
- "last_total_tokens": 41131
+ "last_context_length": 9810,
+ "last_total_tokens": 86622
},
"232801087": {
"chat_id": 232801087,