diff --git a/projects/78649634/copykar b/projects/78649634/copykar index 6e4b7e3..6d19492 160000 --- a/projects/78649634/copykar +++ b/projects/78649634/copykar @@ -1 +1 @@ -Subproject commit 6e4b7e364df21e20ce8c3654d14d6119689de9b8 +Subproject commit 6d194929e4b388db2851f71a6f8e59761dc98b49 diff --git a/telegram-agy-bot/data/memory.db b/telegram-agy-bot/data/memory.db index 12acf07..0290ecb 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/sessions.json b/telegram-agy-bot/sessions.json index de342b1..8b1c802 100644 --- a/telegram-agy-bot/sessions.json +++ b/telegram-agy-bot/sessions.json @@ -8,21 +8,22 @@ "workspace": "/root", "owner_id": 78649634, "shared_with": [], - "conversation_id": "ce39875a-dec2-41c5-b2fe-54593a48b00c", + "conversation_id": "2bfe938e-45d8-4238-a286-7be78e449a39", "conversation_history": [ "fe6e374f-2ba1-41ca-9176-60a724029cfe", "440b8e3b-5e40-42b6-a3c6-32d32fd0db09", "958ee3df-fe4e-48d1-814a-b4266a73635e", "d9bf5055-13f2-49ed-a828-ca0c71820208", "e58b6c34-0e86-4237-aef5-14699b99f75c", - "ce39875a-dec2-41c5-b2fe-54593a48b00c" + "ce39875a-dec2-41c5-b2fe-54593a48b00c", + "2bfe938e-45d8-4238-a286-7be78e449a39" ], "model": "gemini-3.7-flash-auto", "effort": "high", "language": "fa", - "last_context_length": 122892, - "last_total_tokens": 1678957, - "last_response": "\u062e\u0627\u0637\u0631\u0647 \u0639\u0645\u0648\u0645\u06cc (Global System Rule) \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0644\u0646\u062f\u0645\u062f\u062a \u0633\u06cc\u0633\u062a\u0645 \u062b\u0628\u062a \u0634\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u062c\u0648\u0632 \u062b\u0628\u062a\u060c \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u062d\u0630\u0641 \u062e\u0627\u0637\u0631\u0627\u062a \u0639\u0645\u0648\u0645\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062a\u06af\u200c\u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u062a\u0646\u06cc \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062f\u06cc\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0641\u0639\u0627\u0644 \u06af\u0631\u062f\u06cc\u062f.\n\n---\n\n### \ud83e\udde0 \u0645\u0634\u062e\u0635\u0627\u062a \u062e\u0627\u0637\u0631\u0647 \u0639\u0645\u0648\u0645\u06cc \u062b\u0628\u062a\u200c\u0634\u062f\u0647:\n\n\u2022 \ud83c\udff7\ufe0f **\u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc (Tier):** \u062e\u0627\u0637\u0631\u0647 \u0639\u0645\u0648\u0645\u06cc \u0633\u06cc\u0633\u062a\u0645 (`Tier 1 - Global System Rule`) \n\u2022 \ud83d\udd11 **\u06a9\u0644\u06cc\u062f (Key):** `check_latest_commit_on_error` \n\u2022 \ud83d\udcc2 **\u062f\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc:** `rule` \n\u2022 \ud83d\udcdd **\u0645\u062d\u062a\u0648\u0627:** \u0645\u0648\u0642\u0639 \u0628\u0631\u0648\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u060c \u0628\u0627\u06af \u06cc\u0627 \u06af\u0632\u0627\u0631\u0634 \u0645\u0634\u06a9\u0644 \u062f\u0631 \u062a\u0645\u0627\u0645 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u060c \u0647\u0645\u06cc\u0634\u0647 \u0627\u0628\u062a\u062f\u0627 \u0622\u062e\u0631\u06cc\u0646 \u06a9\u0627\u0645\u06cc\u062a\u200c\u0647\u0627\u06cc \u06af\u06cc\u062a \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u062e\u06cc\u0631 \u06a9\u062f (`git log` \u0648 `git diff`) \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0648\u0644\u06cc\u0646 \u06af\u0627\u0645 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u0628\u0631\u0631\u0633\u06cc \u0634\u0648\u0646\u062f.\n\n---\n\n[[RESTART_BOT]]\n\n[[BUTTONS: layout=[\n [{\"text\": \"\ud83e\udde0 \u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u06cc\u0633\u062a \u062e\u0627\u0637\u0631\u0627\u062a\", \"prompt\": \"\u0644\u06cc\u0633\u062a \u062e\u0627\u0637\u0631\u0627\u062a \u0639\u0645\u0648\u0645\u06cc \u0648 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0628\u062f\u0647\"}],\n [{\"text\": \"\ud83d\udc19 \u0645\u0646\u0648\u06cc \u06af\u06cc\u062a \u0648 \u0628\u0631\u0646\u0686\u200c\u0647\u0627\", \"cmd\": \"/git\"}, {\"text\": \"\ud83d\ude80 \u0645\u0646\u0648\u06cc FTP\", \"cmd\": \"/ftp\"}]\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": 4864, + "last_total_tokens": 47308, + "last_response": "\u0633\u0644\u0627\u0645 \u0648 \u0627\u062d\u062a\u0631\u0627\u0645\u061b\n\n\u0637\u0631\u062d \u062c\u0627\u0645\u0639 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a **\u0631\u06cc\u0645\u0648\u062a \u062f\u0648\u0644\u0648\u067e \u0648 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 SSH** \u0628\u0631\u0631\u0633\u06cc \u0648 \u062a\u062f\u0648\u06cc\u0646 \u0634\u062f. \u0637\u0628\u0642 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0633\u06cc\u0633\u062a\u0645\u060c \u0642\u0628\u0644 \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u0647\u0631\u06af\u0648\u0646\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0628\u0631 \u0631\u0648\u06cc \u06a9\u062f\u0647\u0627\u06cc \u0631\u0628\u0627\u062a\u060c \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u062c\u0647\u062a **\u062a\u0623\u06cc\u06cc\u062f \u0635\u0631\u06cc\u062d \u0634\u0645\u0627** \u062a\u0642\u062f\u06cc\u0645 \u0645\u06cc\u200c\u06af\u0631\u062f\u062f:\n\n---\n\n### \ud83d\udccb \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0639\u0645\u0627\u0631\u06cc \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u0631\u06cc\u0645\u0648\u062a \u062f\u0648\u0644\u0648\u067e (SSH Remote Dev)\n\n#### \u06f1. \u0645\u0627\u0698\u0648\u0644 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a SSH (`ssh_manager.py`)\n* **\u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u062a\u0635\u0627\u0644:** \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0631\u0645\u0632\u0646\u06af\u0627\u0631\u06cc \u0627\u0645\u0646 \u0645\u0634\u062e\u0635\u0627\u062a \u0633\u0631\u0648\u0631 \u0645\u0642\u0635\u062f (\u0622\u062f\u0631\u0633 \u0647\u0627\u0633\u062a\u060c \u067e\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u06f2\u06f2\u060c \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc\u060c \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06cc\u0627 \u06a9\u0644\u06cc\u062f \u0627\u062e\u062a\u0635\u0627\u0635\u06cc SSH Key \u0648 \u0645\u0633\u06cc\u0631 \u0645\u0642\u0635\u062f \u0631\u0648\u06cc \u0633\u0631\u0648\u0631).\n* **\u062a\u0633\u062a \u0627\u062a\u0635\u0627\u0644 \u0647\u0648\u0634\u0645\u0646\u062f:** \u0627\u0645\u06a9\u0627\u0646 \u0633\u0646\u062c\u0634 \u0648 \u0628\u0631\u0631\u0633\u06cc \u0633\u0644\u0627\u0645\u062a \u062f\u0633\u062a\u0631\u0633\u06cc SSH\u060c \u062a\u0627\u062e\u06cc\u0631 \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u0642\u0635\u062f \u0642\u0628\u0644 \u0627\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a.\n* **\u0627\u0631\u0633\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a (SSH Push):**\n - **\u0642\u0641\u0644 \u0631\u0648\u06cc \u0634\u0627\u062e\u0647 `production`:** \u062a\u0645\u0627\u0645\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u067e\u0648\u0634 \u0627\u062e\u062a\u0635\u0627\u0635\u0627\u064b \u0648 \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u062b\u0646\u0627 \u0627\u0632 \u0628\u0631\u0646\u0686 `production` \u067e\u0631\u0648\u0698\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.\n - **\u062d\u0641\u0627\u0638\u062a \u06a9\u0627\u0645\u0644 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646:** \u0627\u0639\u0645\u0627\u0644 \u0641\u06cc\u0644\u062a\u0631 \u0648 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u06a9\u06cc\u062f Exclude (\u0645\u0634\u0627\u0628\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Clean Deployment)\u061b \u0641\u0627\u06cc\u0644\u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 (\u0645\u0627\u0646\u0646\u062f SQLite `*.db`\u060c `*.sqlite`)\u060c \u067e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc \u0622\u067e\u0644\u0648\u062f \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 (`uploads/`)\u060c \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u062d\u0633\u0627\u0633 (`.env`)\u060c \u0633\u0634\u0646\u200c\u0647\u0627\u060c \u0644\u0627\u06af\u200c\u0647\u0627 \u0648 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u0648\u0642\u062a \u0628\u0647 \u0647\u06cc\u0686 \u0639\u0646\u0648\u0627\u0646 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u0642\u0635\u062f \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc \u06cc\u0627 \u062d\u0630\u0641 \u0646\u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0648\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u062f\u0633\u062a\u200c\u0646\u062e\u0648\u0631\u062f\u0647 \u062d\u0641\u0638 \u0645\u06cc\u200c\u0634\u0648\u062f.\n* **\u062f\u0631\u06cc\u0627\u0641\u062a \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a (SSH Pull):** \u0627\u0645\u06a9\u0627\u0646 \u067e\u0648\u0644 \u06a9\u0631\u062f\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06cc\u0627 \u06a9\u062f\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u0632 \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a \u0628\u0647 \u0628\u0631\u0646\u0686 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0645\u062d\u0644\u06cc \u0628\u0627 \u062d\u0641\u0638 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647\u200c\u06af\u0631\u0641\u062a\u0647\u200c\u0634\u062f\u0647 (`.gitignore`).\n* **\u0627\u062c\u0631\u0627\u06cc \u0641\u0631\u0627\u0645\u06cc\u0646 \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 (Remote Command Execution):** \u0641\u0631\u0627\u0647\u0645\u200c\u0633\u0627\u0632\u06cc \u0627\u0645\u06a9\u0627\u0646 \u0627\u062a\u0635\u0627\u0644 \u0648 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u0642\u0635\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u06cc\u0632\u0648\u0644\u0647 \u0648 \u0627\u0645\u0646.\n\n#### \u06f2. \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u0627 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc (AI Tooling & Action Tags)\n\u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u06a9\u0634\u0646\u200c\u062a\u06af\u200c\u0647\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062c\u0647\u062a \u062a\u0639\u0627\u0645\u0644 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0633\u062a\u06cc\u0627\u0631 \u0647\u0648\u0634\u0645\u0646\u062f \u0628\u0627 \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a:\n* `[[SETUP_SSH: host=\"...\", port=22, user=\"...\", remote_path=\"...\"]]` \u062c\u0647\u062a \u062a\u0646\u0638\u06cc\u0645 \u0645\u0634\u062e\u0635\u0627\u062a.\n* `[[SSH_PUSH]]` \u0648 `[[SSH_PULL]]` \u062c\u0647\u062a \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u062f\u0648\u0637\u0631\u0641\u0647 \u06a9\u062f\u0647\u0627.\n* `[[SSH_EXEC: command=\"...\"]]` \u062c\u0647\u062a \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u0631\u0648\u0631\u06cc\u060c \u0628\u06cc\u0644\u062f\u060c \u0628\u0631\u0631\u0633\u06cc \u0644\u0627\u06af\u200c\u0647\u0627 \u06cc\u0627 \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u0642\u0635\u062f \u062a\u0648\u0633\u0637 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc.\n\n#### \u06f3. \u067e\u0646\u0644 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062a\u0644\u06af\u0631\u0627\u0645 \u0648 \u0645\u0646\u0648\u06cc \u062a\u0639\u0627\u0645\u0644\u06cc\n* \u062f\u0633\u062a\u0648\u0631 \u062c\u062f\u06cc\u062f `/ssh` \u0648 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u062f\u06a9\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0647 \u0645\u0646\u0648\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0648\u0698\u0647:\n - \ud83c\udf10 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0647\u0627\u0633\u062a \u0648 \u067e\u0648\u0631\u062a SSH\n - \ud83d\udc64 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \ud83d\udd11 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 / \u06a9\u0644\u06cc\u062f SSH\n - \ud83d\udcc2 \u062a\u0646\u0638\u06cc\u0645 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0645\u0648\u062a \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\n - \ud83d\udd0d \u062a\u0633\u062a \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a\n - \ud83d\ude80 \u067e\u0648\u0634 \u0628\u0647 \u0633\u0631\u0648\u0631 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 (Push to Production)\n - \ud83d\udce5 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u062f\u0647\u0627 \u0627\u0632 \u0633\u0631\u0648\u0631 (Pull from Remote)\n - \ud83d\udcbb \u06a9\u0646\u0633\u0648\u0644 \u0627\u062c\u0631\u0627\u06cc \u0641\u0631\u0645\u0627\u0646 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\n - \ud83d\uddd1\ufe0f \u067e\u0627\u06a9\u200c\u0633\u0627\u0632\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u062a\u0635\u0627\u0644\n\n#### \u06f4. \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u062e\u0648\u0627\u0647\u0646\u062f \u06a9\u0631\u062f:\n1. \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 `ssh_manager.py` (\u0634\u0627\u0645\u0644 \u0644\u0627\u062c\u06cc\u06a9 rsync over ssh / paramiko / asyncssh \u0648 \u062d\u0641\u0638 \u062f\u06cc\u062a\u0627\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646).\n2. \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u062f\u0631 `sessions.json` \u0648 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062c\u0647\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc SSH.\n3. \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u060c \u0645\u0646\u0648\u0647\u0627\u06cc \u0634\u06cc\u0634\u0647\u200c\u0627\u06cc \u0648 \u062f\u0633\u062a\u0648\u0631 `/ssh` \u062f\u0631 `bot.py`.\n4. \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0627\u06a9\u0634\u0646\u200c\u062a\u06af\u200c\u0647\u0627\u06cc SSH \u0628\u0647 \u067e\u0631\u062f\u0627\u0632\u0634\u06af\u0631 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u062f\u0631 `bot_actions.py` \u0648 `formatters.py`.\n\n---\n\n> \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u0623\u06cc\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0648\u0642\u060c \u0628\u0641\u0631\u0645\u0627\u06cc\u06cc\u062f \u062a\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0631\u0648\u06cc \u0633\u0648\u0631\u0633\u200c\u06a9\u062f \u0631\u0628\u0627\u062a \u0627\u0639\u0645\u0627\u0644 \u0646\u0645\u0627\u06cc\u0645.\n\n[[BUTTON: text=\"\u2705 \u062a\u0623\u06cc\u06cc\u062f \u0648 \u0634\u0631\u0648\u0639 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc\", prompt=\"\u0637\u0631\u062d \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc SSH Remote Dev \u0645\u0648\u0631\u062f \u062a\u0623\u06cc\u06cc\u062f \u0627\u0633\u062a\u061b \u0644\u0637\u0641\u0627 \u06a9\u062f\u0647\u0627 \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646.\", row=1]]\n[[BUTTON: text=\"\ud83d\udcca \u0648\u0636\u0639\u06cc\u062a \u0633\u0647\u0645\u06cc\u0647 \u0645\u0635\u0631\u0641\", cmd=\"/usage\", row=2]]\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": { @@ -41,7 +42,7 @@ "workspace": "/root/projects/78649634/copykar", "owner_id": 78649634, "shared_with": [], - "conversation_id": "b6a5221a-fa66-4303-bdb4-78ab5045ae3f", + "conversation_id": null, "conversation_history": [ "07ad85f2-163c-4264-9a06-ff349c073d5d", "776e723f-1454-428f-9a46-dcf35a86d45c", @@ -56,17 +57,27 @@ "0b48b4d2-e926-481b-b42a-4bb85c2d8e8a", "be69e20a-4742-487e-a748-b267b07ec65d", "0d33e782-85cb-42cf-99ee-7d8f5d8b96b7", - "b6a5221a-fa66-4303-bdb4-78ab5045ae3f" + "b6a5221a-fa66-4303-bdb4-78ab5045ae3f", + "0f7abeda-db23-4067-bc31-00d565bf3fd6", + "1314209d-a3a1-4514-af90-8f98486a5919", + "bf335e29-64be-46e1-9fe4-03878dbca7a6", + "97e1ade0-0631-4de5-8ce5-81ec9a78108d", + "b38b4737-f07b-4a78-bf5f-64bfb85624ad", + "bbb1ffc5-6220-4b46-ab7c-922136a6b6da", + "c1e701d9-77d8-4a9e-9b1f-767f45648953", + "ebbe937c-4957-4831-b7ee-3e025d97fa7d" ], "model": "gemini-3.7-flash-auto", "effort": "high", "language": "fa", - "last_context_length": 5203, - "last_total_tokens": 85654, - "last_response": "\u062f\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0633\u06cc\u0633\u062a\u0645 \u062d\u0627\u0641\u0638\u0647 \u0631\u0628\u0627\u062a\u060c \u0633\u0637\u062d **\u062e\u0627\u0637\u0631\u0627\u062a \u0639\u0645\u0648\u0645\u06cc (Tier 1: Global System Rules)** \u0628\u0631\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u0647 \u0635\u0648\u0631\u062a \u0641\u0642\u0637\u200c\u062e\u0648\u0627\u0646\u062f\u0646\u06cc (Read-Only) \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u062a\u06af\u200c\u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0635\u0631\u0641\u0627\u064b \u0627\u0645\u06a9\u0627\u0646 \u062b\u0628\u062a \u0648 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062f\u0631 \u0633\u0637\u0648\u062d `user` (\u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631\u06cc) \u0648 `project` (\u067e\u0631\u0648\u0698\u0647 \u0641\u0639\u0627\u0644) \u0631\u0627 \u062f\u0627\u0631\u0646\u062f.\n\n\u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u0628\u0647 \u062d\u0627\u0641\u0638\u0647 \u0639\u0645\u0648\u0645\u06cc \u0633\u0631\u0627\u0633\u0631\u06cc (\u0628\u0631\u0627\u06cc \u062a\u0645\u0627\u0645\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u06a9\u0644 \u0633\u06cc\u0633\u062a\u0645)\u060c \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 \u067e\u0646\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0631\u0628\u0627\u062a \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f:\n\n1. \u0648\u0631\u0648\u062f \u0628\u0647 \u0628\u062e\u0634 **\u062a\u0646\u0638\u06cc\u0645\u0627\u062a / \u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0627\u062a (Admin Panel)** \u062f\u0631 \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645.\n2. \u0627\u0646\u062a\u062e\u0627\u0628 \u06af\u0632\u06cc\u0646\u0647 **\u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0641\u0638\u0647 (Memory Management) \u2794 \u062d\u0627\u0641\u0638\u0647 \u0639\u0645\u0648\u0645\u06cc (Global Memory)**.\n3. \u062b\u0628\u062a \u06a9\u0644\u06cc\u062f `check_latest_commit_on_error` \u0628\u0627 \u0645\u062a\u0646 \u0642\u0627\u0646\u0648\u0646:\n > *\u0645\u0648\u0642\u0639 \u0628\u0631\u0648\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u060c \u0628\u0627\u06af \u06cc\u0627 \u06af\u0632\u0627\u0631\u0634 \u0645\u0634\u06a9\u0644 \u062f\u0631 \u062a\u0645\u0627\u0645 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u060c \u0647\u0645\u06cc\u0634\u0647 \u0627\u0628\u062a\u062f\u0627 \u0622\u062e\u0631\u06cc\u0646 \u06a9\u0627\u0645\u06cc\u062a\u200c\u0647\u0627\u06cc \u06af\u06cc\u062a \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u062e\u06cc\u0631 \u06a9\u062f (git log \u0648 git diff) \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0648\u0644\u06cc\u0646 \u06af\u0627\u0645 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u0628\u0631\u0631\u0633\u06cc \u0634\u0648\u0646\u062f.*\n\n\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631\u060c \u0627\u06cc\u0646 \u0642\u0627\u0646\u0648\u0646 \u062f\u0631 \u0633\u0637\u062d \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0634\u0645\u0627 (`type=\"user\"`) \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u062b\u0628\u062a \u0634\u062f\u0647 \u0648 \u0628\u0631\u0627\u06cc \u062a\u0645\u0627\u0645\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0647\u0645\u0648\u0627\u0631\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0648 \u0633\u0631\u0627\u0633\u0631\u06cc \u0641\u0639\u0627\u0644 \u0627\u0633\u062a.\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": {}, + "conversation_titles": { + "c1e701d9-77d8-4a9e-9b1f-767f45648953": "\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0627 \u06cc\u0648\u0632\u0631\u0628\u0627\u062a" + }, "active_branch": "dev", "ftp_host": null, "ftp_port": 21, @@ -159,20 +170,20 @@ "ftp_tls": false } }, - "turn_in_progress": false, - "last_prompt": "\u0627\u06cc\u0646 \u062e\u0627\u0637\u0631\u0647 \u0631\u0648 \u0628\u0647 \u0635\u0648\u0631\u062a \u0639\u0645\u0648\u0645\u06cc \u062b\u0628\u062a \u06a9\u0646\n\u0645\u0646 \u0645\u062f\u06cc\u0631 \u0647\u0633\u062a\u0645 \u0648 \u0628\u0627\u06cc\u062f \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u0645\u0646 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f\n\n\ud83d\uddd1\ufe0f \u0622\u06cc\u0627 \u0627\u0632 \u062d\u0630\u0641 \u0627\u06cc\u0646 \u062e\u0627\u0637\u0631\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062f\u0627\u0631\u06cc\u062f\u061f\n\n\u2022 \ud83d\udd11 \u06a9\u0644\u06cc\u062f: check_latest_commit_on_error\n\u2022 \ud83d\udcdd \u0645\u062d\u062a\u0648\u0627: \u0645\u0648\u0642\u0639 \u0628\u0631\u0648\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u060c \u0628\u0627\u06af \u06cc\u0627 \u06af\u0632\u0627\u0631\u0634 \u0645\u0634\u06a9\u0644 \u062f\u0631 \u062a\u0645\u0627\u0645 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u060c \u0647\u0645\u06cc\u0634\u0647 \u0627\u0628\u062a\u062f\u0627 \u0622\u062e\u0631\u06cc\u0646 \u06a9\u0627\u0645\u06cc\u062a\u200c\u0647\u0627\u06cc \u06af\u06cc\u062a \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u062e\u06cc\u0631 \u06a9\u062f (git log \u0648 git diff) \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0648\u0644\u06cc\u0646 \u06af\u0627\u0645 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u0628\u0631\u0631\u0633\u06cc \u0634\u0648\u0646\u062f.", - "last_response": "\u062e\u0627\u0637\u0631\u0647 \u0639\u0645\u0648\u0645\u06cc (Global System Rule) \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0644\u0646\u062f\u0645\u062f\u062a \u0633\u06cc\u0633\u062a\u0645 \u062b\u0628\u062a \u0634\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u062c\u0648\u0632 \u062b\u0628\u062a\u060c \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u062d\u0630\u0641 \u062e\u0627\u0637\u0631\u0627\u062a \u0639\u0645\u0648\u0645\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062a\u06af\u200c\u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u062a\u0646\u06cc \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062f\u06cc\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0641\u0639\u0627\u0644 \u06af\u0631\u062f\u06cc\u062f.\n\n---\n\n### \ud83e\udde0 \u0645\u0634\u062e\u0635\u0627\u062a \u062e\u0627\u0637\u0631\u0647 \u0639\u0645\u0648\u0645\u06cc \u062b\u0628\u062a\u200c\u0634\u062f\u0647:\n\n\u2022 \ud83c\udff7\ufe0f **\u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc (Tier):** \u062e\u0627\u0637\u0631\u0647 \u0639\u0645\u0648\u0645\u06cc \u0633\u06cc\u0633\u062a\u0645 (`Tier 1 - Global System Rule`) \n\u2022 \ud83d\udd11 **\u06a9\u0644\u06cc\u062f (Key):** `check_latest_commit_on_error` \n\u2022 \ud83d\udcc2 **\u062f\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc:** `rule` \n\u2022 \ud83d\udcdd **\u0645\u062d\u062a\u0648\u0627:** \u0645\u0648\u0642\u0639 \u0628\u0631\u0648\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u060c \u0628\u0627\u06af \u06cc\u0627 \u06af\u0632\u0627\u0631\u0634 \u0645\u0634\u06a9\u0644 \u062f\u0631 \u062a\u0645\u0627\u0645 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u060c \u0647\u0645\u06cc\u0634\u0647 \u0627\u0628\u062a\u062f\u0627 \u0622\u062e\u0631\u06cc\u0646 \u06a9\u0627\u0645\u06cc\u062a\u200c\u0647\u0627\u06cc \u06af\u06cc\u062a \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u062e\u06cc\u0631 \u06a9\u062f (`git log` \u0648 `git diff`) \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0648\u0644\u06cc\u0646 \u06af\u0627\u0645 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u0628\u0631\u0631\u0633\u06cc \u0634\u0648\u0646\u062f.\n\n---\n\n[[RESTART_BOT]]\n\n[[BUTTONS: layout=[\n [{\"text\": \"\ud83e\udde0 \u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u06cc\u0633\u062a \u062e\u0627\u0637\u0631\u0627\u062a\", \"prompt\": \"\u0644\u06cc\u0633\u062a \u062e\u0627\u0637\u0631\u0627\u062a \u0639\u0645\u0648\u0645\u06cc \u0648 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0628\u062f\u0647\"}],\n [{\"text\": \"\ud83d\udc19 \u0645\u0646\u0648\u06cc \u06af\u06cc\u062a \u0648 \u0628\u0631\u0646\u0686\u200c\u0647\u0627\", \"cmd\": \"/git\"}, {\"text\": \"\ud83d\ude80 \u0645\u0646\u0648\u06cc FTP\", \"cmd\": \"/ftp\"}]\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, + "turn_in_progress": true, + "last_prompt": "\u0648\u06cc\u0698\u06af\u06cc \u062c\u062f\u06cc\u062f:\n\u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u06cc\u0645\u0648\u062a \u062f\u0648\u0644\u0648\u067e \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0627 \u0627\u0633 \u0627\u0633 \u0627\u0686\n\u0644\u0627\u0632\u0645 \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0633 \u0627\u0633 \u0627\u0686 \u0633\u0631\u0648\u0631 \u0631\u0648 \u0648\u0627\u0631\u062f\u0634 \u06a9\u0646\u06cc\u0645\n\u0628\u062a\u0648\u0646\u06cc\u0645 \u06a9\u062f\u0647\u0627\u0631\u0648 \u0647\u0627\u0631\u0648 \u062a\u0648\u0634 \u067e\u0648\u0634 \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0631\u0639\u06a9\u0633 \u0627\u0632\u0634 \u067e\u0648\u0644 \u06a9\u0646\u06cc\u0645\n\u062f\u0642\u062a \u06a9\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0645\u06cc\u0634\u0647 \u0627\u0632 \u0628\u0631\u0646\u0686 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f\n\u0648 \u0646\u0628\u0627\u06cc\u062f \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0633\u0631\u0648\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0646\u0646\u062f \u0686\u0648\u0646 \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0627\u0633\u062a\n\u0647\u0645\u0686\u0646\u06cc\u0646 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u062a\u0648\u0627\u0646\u062f \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u0633 \u0627\u0633 \u0627\u0686 \u0631\u0627 \u0628\u06af\u06cc\u0631\u062f \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0648\u0635\u0644 \u0634\u0648\u062f \u0648 \u06a9\u0627\u0631 \u06a9\u0646\u062f", + "last_response": "\u0633\u0644\u0627\u0645 \u0648 \u0627\u062d\u062a\u0631\u0627\u0645\u061b\n\n\u0637\u0631\u062d \u062c\u0627\u0645\u0639 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a **\u0631\u06cc\u0645\u0648\u062a \u062f\u0648\u0644\u0648\u067e \u0648 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 SSH** \u0628\u0631\u0631\u0633\u06cc \u0648 \u062a\u062f\u0648\u06cc\u0646 \u0634\u062f. \u0637\u0628\u0642 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0633\u06cc\u0633\u062a\u0645\u060c \u0642\u0628\u0644 \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u0647\u0631\u06af\u0648\u0646\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0628\u0631 \u0631\u0648\u06cc \u06a9\u062f\u0647\u0627\u06cc \u0631\u0628\u0627\u062a\u060c \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u062c\u0647\u062a **\u062a\u0623\u06cc\u06cc\u062f \u0635\u0631\u06cc\u062d \u0634\u0645\u0627** \u062a\u0642\u062f\u06cc\u0645 \u0645\u06cc\u200c\u06af\u0631\u062f\u062f:\n\n---\n\n### \ud83d\udccb \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0639\u0645\u0627\u0631\u06cc \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u0631\u06cc\u0645\u0648\u062a \u062f\u0648\u0644\u0648\u067e (SSH Remote Dev)\n\n#### \u06f1. \u0645\u0627\u0698\u0648\u0644 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a SSH (`ssh_manager.py`)\n* **\u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u062a\u0635\u0627\u0644:** \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0631\u0645\u0632\u0646\u06af\u0627\u0631\u06cc \u0627\u0645\u0646 \u0645\u0634\u062e\u0635\u0627\u062a \u0633\u0631\u0648\u0631 \u0645\u0642\u0635\u062f (\u0622\u062f\u0631\u0633 \u0647\u0627\u0633\u062a\u060c \u067e\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u06f2\u06f2\u060c \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc\u060c \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06cc\u0627 \u06a9\u0644\u06cc\u062f \u0627\u062e\u062a\u0635\u0627\u0635\u06cc SSH Key \u0648 \u0645\u0633\u06cc\u0631 \u0645\u0642\u0635\u062f \u0631\u0648\u06cc \u0633\u0631\u0648\u0631).\n* **\u062a\u0633\u062a \u0627\u062a\u0635\u0627\u0644 \u0647\u0648\u0634\u0645\u0646\u062f:** \u0627\u0645\u06a9\u0627\u0646 \u0633\u0646\u062c\u0634 \u0648 \u0628\u0631\u0631\u0633\u06cc \u0633\u0644\u0627\u0645\u062a \u062f\u0633\u062a\u0631\u0633\u06cc SSH\u060c \u062a\u0627\u062e\u06cc\u0631 \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u0642\u0635\u062f \u0642\u0628\u0644 \u0627\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a.\n* **\u0627\u0631\u0633\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a (SSH Push):**\n - **\u0642\u0641\u0644 \u0631\u0648\u06cc \u0634\u0627\u062e\u0647 `production`:** \u062a\u0645\u0627\u0645\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u067e\u0648\u0634 \u0627\u062e\u062a\u0635\u0627\u0635\u0627\u064b \u0648 \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u062b\u0646\u0627 \u0627\u0632 \u0628\u0631\u0646\u0686 `production` \u067e\u0631\u0648\u0698\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.\n - **\u062d\u0641\u0627\u0638\u062a \u06a9\u0627\u0645\u0644 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646:** \u0627\u0639\u0645\u0627\u0644 \u0641\u06cc\u0644\u062a\u0631 \u0648 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u06a9\u06cc\u062f Exclude (\u0645\u0634\u0627\u0628\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Clean Deployment)\u061b \u0641\u0627\u06cc\u0644\u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 (\u0645\u0627\u0646\u0646\u062f SQLite `*.db`\u060c `*.sqlite`)\u060c \u067e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc \u0622\u067e\u0644\u0648\u062f \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 (`uploads/`)\u060c \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u062d\u0633\u0627\u0633 (`.env`)\u060c \u0633\u0634\u0646\u200c\u0647\u0627\u060c \u0644\u0627\u06af\u200c\u0647\u0627 \u0648 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u0648\u0642\u062a \u0628\u0647 \u0647\u06cc\u0686 \u0639\u0646\u0648\u0627\u0646 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u0642\u0635\u062f \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc \u06cc\u0627 \u062d\u0630\u0641 \u0646\u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0648\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u062f\u0633\u062a\u200c\u0646\u062e\u0648\u0631\u062f\u0647 \u062d\u0641\u0638 \u0645\u06cc\u200c\u0634\u0648\u062f.\n* **\u062f\u0631\u06cc\u0627\u0641\u062a \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a (SSH Pull):** \u0627\u0645\u06a9\u0627\u0646 \u067e\u0648\u0644 \u06a9\u0631\u062f\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06cc\u0627 \u06a9\u062f\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u0632 \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a \u0628\u0647 \u0628\u0631\u0646\u0686 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0645\u062d\u0644\u06cc \u0628\u0627 \u062d\u0641\u0638 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647\u200c\u06af\u0631\u0641\u062a\u0647\u200c\u0634\u062f\u0647 (`.gitignore`).\n* **\u0627\u062c\u0631\u0627\u06cc \u0641\u0631\u0627\u0645\u06cc\u0646 \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 (Remote Command Execution):** \u0641\u0631\u0627\u0647\u0645\u200c\u0633\u0627\u0632\u06cc \u0627\u0645\u06a9\u0627\u0646 \u0627\u062a\u0635\u0627\u0644 \u0648 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u0642\u0635\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u06cc\u0632\u0648\u0644\u0647 \u0648 \u0627\u0645\u0646.\n\n#### \u06f2. \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u0627 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc (AI Tooling & Action Tags)\n\u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u06a9\u0634\u0646\u200c\u062a\u06af\u200c\u0647\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062c\u0647\u062a \u062a\u0639\u0627\u0645\u0644 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0633\u062a\u06cc\u0627\u0631 \u0647\u0648\u0634\u0645\u0646\u062f \u0628\u0627 \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a:\n* `[[SETUP_SSH: host=\"...\", port=22, user=\"...\", remote_path=\"...\"]]` \u062c\u0647\u062a \u062a\u0646\u0638\u06cc\u0645 \u0645\u0634\u062e\u0635\u0627\u062a.\n* `[[SSH_PUSH]]` \u0648 `[[SSH_PULL]]` \u062c\u0647\u062a \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u062f\u0648\u0637\u0631\u0641\u0647 \u06a9\u062f\u0647\u0627.\n* `[[SSH_EXEC: command=\"...\"]]` \u062c\u0647\u062a \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u0631\u0648\u0631\u06cc\u060c \u0628\u06cc\u0644\u062f\u060c \u0628\u0631\u0631\u0633\u06cc \u0644\u0627\u06af\u200c\u0647\u0627 \u06cc\u0627 \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u0642\u0635\u062f \u062a\u0648\u0633\u0637 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc.\n\n#### \u06f3. \u067e\u0646\u0644 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062a\u0644\u06af\u0631\u0627\u0645 \u0648 \u0645\u0646\u0648\u06cc \u062a\u0639\u0627\u0645\u0644\u06cc\n* \u062f\u0633\u062a\u0648\u0631 \u062c\u062f\u06cc\u062f `/ssh` \u0648 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u062f\u06a9\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0647 \u0645\u0646\u0648\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0648\u0698\u0647:\n - \ud83c\udf10 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0647\u0627\u0633\u062a \u0648 \u067e\u0648\u0631\u062a SSH\n - \ud83d\udc64 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \ud83d\udd11 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 / \u06a9\u0644\u06cc\u062f SSH\n - \ud83d\udcc2 \u062a\u0646\u0638\u06cc\u0645 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0645\u0648\u062a \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\n - \ud83d\udd0d \u062a\u0633\u062a \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a\n - \ud83d\ude80 \u067e\u0648\u0634 \u0628\u0647 \u0633\u0631\u0648\u0631 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 (Push to Production)\n - \ud83d\udce5 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u062f\u0647\u0627 \u0627\u0632 \u0633\u0631\u0648\u0631 (Pull from Remote)\n - \ud83d\udcbb \u06a9\u0646\u0633\u0648\u0644 \u0627\u062c\u0631\u0627\u06cc \u0641\u0631\u0645\u0627\u0646 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\n - \ud83d\uddd1\ufe0f \u067e\u0627\u06a9\u200c\u0633\u0627\u0632\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u062a\u0635\u0627\u0644\n\n#### \u06f4. \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u062e\u0648\u0627\u0647\u0646\u062f \u06a9\u0631\u062f:\n1. \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 `ssh_manager.py` (\u0634\u0627\u0645\u0644 \u0644\u0627\u062c\u06cc\u06a9 rsync over ssh / paramiko / asyncssh \u0648 \u062d\u0641\u0638 \u062f\u06cc\u062a\u0627\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646).\n2. \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u062f\u0631 `sessions.json` \u0648 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062c\u0647\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc SSH.\n3. \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u060c \u0645\u0646\u0648\u0647\u0627\u06cc \u0634\u06cc\u0634\u0647\u200c\u0627\u06cc \u0648 \u062f\u0633\u062a\u0648\u0631 `/ssh` \u062f\u0631 `bot.py`.\n4. \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0627\u06a9\u0634\u0646\u200c\u062a\u06af\u200c\u0647\u0627\u06cc SSH \u0628\u0647 \u067e\u0631\u062f\u0627\u0632\u0634\u06af\u0631 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u062f\u0631 `bot_actions.py` \u0648 `formatters.py`.\n\n---\n\n> \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u0623\u06cc\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0648\u0642\u060c \u0628\u0641\u0631\u0645\u0627\u06cc\u06cc\u062f \u062a\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0631\u0648\u06cc \u0633\u0648\u0631\u0633\u200c\u06a9\u062f \u0631\u0628\u0627\u062a \u0627\u0639\u0645\u0627\u0644 \u0646\u0645\u0627\u06cc\u0645.\n\n[[BUTTON: text=\"\u2705 \u062a\u0623\u06cc\u06cc\u062f \u0648 \u0634\u0631\u0648\u0639 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc\", prompt=\"\u0637\u0631\u062d \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc SSH Remote Dev \u0645\u0648\u0631\u062f \u062a\u0623\u06cc\u06cc\u062f \u0627\u0633\u062a\u061b \u0644\u0637\u0641\u0627 \u06a9\u062f\u0647\u0627 \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646.\", row=1]]\n[[BUTTON: text=\"\ud83d\udcca \u0648\u0636\u0639\u06cc\u062a \u0633\u0647\u0645\u06cc\u0647 \u0645\u0635\u0631\u0641\", cmd=\"/usage\", row=2]]\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": 2136, "restart_pending": false, - "last_delivered": true, - "last_update_time": 1788128927.5159326, + "last_delivered": false, + "last_update_time": 1788157340.9232655, "workspace": "/root", - "conversation_id": "ce39875a-dec2-41c5-b2fe-54593a48b00c", + "conversation_id": "2bfe938e-45d8-4238-a286-7be78e449a39", "model": "gemini-3.7-flash-auto", "effort": "high", "language": "fa", - "last_context_length": 122892, - "last_total_tokens": 1678957 + "last_context_length": 4864, + "last_total_tokens": 47308 }, "232801087": { "chat_id": 232801087,