diff --git a/telegram-agy-bot/data/memory.db b/telegram-agy-bot/data/memory.db index 3fe8173..7e9bd3a 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 4da7c85..54c71b1 100644 --- a/telegram-agy-bot/sessions.json +++ b/telegram-agy-bot/sessions.json @@ -23,7 +23,7 @@ "language": "fa", "last_context_length": 61787, "last_total_tokens": 549349, - "last_response": "\u0633\u0644\u0627\u0645 \u0648 \u0627\u062d\u062a\u0631\u0627\u0645\u061b\n\n### \ud83d\udd0d \u0628\u0631\u0631\u0633\u06cc \u0639\u0644\u062a \u0648 \u0646\u062d\u0648\u0647 \u0627\u0635\u0644\u0627\u062d \u0645\u0634\u06a9\u0644 \u062a\u0635\u0648\u06cc\u0631 \u0627\u0631\u0633\u0627\u0644\u06cc\n\n#### \u06f1. \u0639\u0644\u062a \u0648\u0642\u0648\u0639:\n1. **\u067e\u0627\u06cc\u0627\u0646 \u0646\u0648\u0628\u062a \u062f\u0631 \u0645\u06cc\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627:** \u062f\u0631 \u067e\u0627\u0633\u062e \u0642\u0628\u0644\u06cc\u060c \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0648 \u0627\u0639\u0645\u0627\u0644 \u06a9\u062f\u0647\u0627\u06cc \u0628\u062e\u0634 SSH \u0631\u0648\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0646\u062c\u0627\u0645 \u0628\u0648\u062f \u0648 \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u0645\u062a\u0646 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0646\u0647\u0627\u06cc\u06cc\u060c \u0627\u062c\u0631\u0627\u06cc \u0646\u0648\u0628\u062a \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f.\n2. **\u0641\u0639\u0627\u0644 \u0634\u062f\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 Fallback \u062f\u0631 \u0631\u0628\u0627\u062a:** \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u067e\u0627\u0633\u062e\u06cc \u0645\u062a\u0646\u06cc \u062a\u0648\u0644\u06cc\u062f \u0646\u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0631\u0628\u0627\u062a \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0644\u06cc\u0633\u062a \u0622\u062e\u0631\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06af\u0632\u0627\u0631\u0634 \u0648\u0636\u0639\u06cc\u062a \u0627\u0632 \u0644\u0627\u06af \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u06cc\u200c\u06a9\u0646\u062f.\n3. **\u0646\u0645\u0627\u06cc\u0634 \u062e\u0627\u0645 \u062a\u06af\u200c\u0647\u0627\u06cc ``:** \u062f\u0631 \u0645\u062a\u0646 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0641\u0627\u0644\u200c\u0628\u06a9\u060c \u062a\u06af\u200c\u0647\u0627\u06cc `` \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0627\u0645 \u062f\u0631\u062c \u0634\u062f\u0647 \u0628\u0648\u062f\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0628\u062f\u06cc\u0644 \u0628\u0647 HTML \u062a\u0644\u06af\u0631\u0627\u0645\u060c \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc `<` \u0648 `>` \u0628\u0647 `<` \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0648 \u062f\u0631 \u067e\u06cc\u0627\u0645 \u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0647 \u062c\u0627\u06cc \u06a9\u062f\u060c \u0645\u062a\u0646 \u062e\u0627\u0645 `` \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u062f.\n\n---\n\n### \ud83d\udee0\ufe0f \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u062c\u0627\u0645\u200c\u0634\u062f\u0647 \u0648 \u0627\u0635\u0644\u0627\u062d\u0627\u062a:\n\n1. **\u0627\u0635\u0644\u0627\u062d \u0633\u06cc\u0633\u062a\u0645 \u0641\u0631\u0645\u062a\u200c\u0628\u0646\u062f\u06cc \u0641\u0627\u0644\u200c\u0628\u06a9 (`agy_engine.py`):** \u0633\u0627\u062e\u062a\u0627\u0631 \u0641\u0627\u0644\u200c\u0628\u06a9 \u0627\u0635\u0644\u0627\u062d \u0634\u062f \u062a\u0627 \u0627\u0632 \u0645\u0627\u0631\u06a9\u200c\u062f\u0627\u0648\u0646 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u06cc\u06af\u0631 \u062a\u06af\u200c\u0647\u0627\u06cc \u062e\u0627\u0645 HTML \u062f\u0631 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0638\u0627\u0647\u0631 \u0646\u0634\u0648\u0646\u062f.\n2. **\u062a\u06a9\u0645\u06cc\u0644 \u0648 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06f1\u06f0\u06f0\u066a \u0642\u0627\u0628\u0644\u06cc\u062a SSH Remote Dev \u0648 \u062c\u062f\u0648\u0644 \u0644\u0627\u06af\u200c\u0647\u0627:**\n * **\u0645\u0627\u0698\u0648\u0644 `ssh_manager.py`:** \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0645\u06a9\u0627\u0646 \u0627\u062a\u0635\u0627\u0644 \u0628\u0627 \u067e\u0633\u0648\u0631\u062f \u0648 \u06a9\u0644\u06cc\u062f \u062e\u0635\u0648\u0635\u06cc SSH\u060c \u062a\u0633\u062a \u0627\u062a\u0635\u0627\u0644\u060c \u067e\u0648\u0634 \u0628\u0647 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 (`Push`)\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u062f\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 (`Pull`) \u0648 \u0627\u062c\u0631\u0627\u06cc \u0641\u0631\u0627\u0645\u06cc\u0646 \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 (`Exec`).\n * **\u062d\u0641\u0627\u0638\u062a \u0627\u0632 \u062f\u06cc\u062a\u0627\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646:** \u0642\u0641\u0644 \u0634\u062f\u0646 \u0627\u0631\u0633\u0627\u0644 \u06a9\u062f\u0647\u0627 \u0645\u0646\u062d\u0635\u0631\u0627\u064b \u0631\u0648\u06cc \u0634\u0627\u062e\u0647 `production` \u0648 \u0645\u062d\u0627\u0641\u0638\u062a \u06f1\u06f0\u06f0\u066a \u0627\u0632 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 (SQLite)\u060c \u067e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc \u0622\u067e\u0644\u0648\u062f \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u0633\u0634\u0646\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a.\n * **\u062c\u062f\u0648\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627 (`remote_audit.py`):** \u0627\u06cc\u062c\u0627\u062f \u062c\u062f\u0648\u0644 `remote_audit_logs` \u062f\u0631 SQLite \u062c\u0647\u062a \u062b\u0628\u062a \u062f\u0627\u0626\u0645\u06cc \u062a\u0645\u0627\u0645\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u060c \u0639\u0645\u0644\u06cc\u0627\u062a\u200c\u0647\u0627\u06cc \u067e\u0648\u0634/\u067e\u0648\u0644\u060c \u062a\u0633\u062a\u200c\u0647\u0627 \u0648 \u0641\u0631\u0627\u0645\u06cc\u0646 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u0632\u0645\u0627\u0646\u060c \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0648\u0636\u0639\u06cc\u062a.\n * **\u0627\u0645\u0646\u06cc\u062a \u06a9\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Zero-Knowledge):** \u0639\u062f\u0645 \u0627\u0631\u0633\u0627\u0644 \u0631\u0645\u0632\u0647\u0627 \u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0628\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0645\u0644 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0628\u06a9\u200c\u0627\u0646\u062f \u0631\u0628\u0627\u062a.\n * **\u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u062a\u0644\u06af\u0631\u0627\u0645 (`bot.py`):** \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u062f\u0633\u062a\u0648\u0631 `/ssh`\u060c \u0645\u0646\u0648\u06cc \u0634\u06cc\u0634\u0647\u200c\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631 \u0648 \u0644\u0627\u06af\u200c\u0647\u0627\u060c \u0648 \u0627\u0641\u0632\u0648\u062f\u0646 \u062f\u06a9\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0647 \u062f\u0627\u0634\u0628\u0648\u0631\u062f \u067e\u0631\u0648\u0698\u0647.\n3. **\u0628\u0631\u0631\u0633\u06cc \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc:** \u062a\u0645\u0627\u0645\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0628\u0627 `py_compile` \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0648 \u0628\u062f\u0648\u0646 \u0647\u06cc\u0686 \u062e\u0637\u0627\u06cc\u06cc \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0648 \u062a\u0633\u062a \u0634\u062f\u0646\u062f.\n\n---\n\n[[SAVE_MEMORY: type=\"project\", key=\"ssh_remote_dev_and_audit\", category=\"tech_stack\", content=\"\u0642\u0627\u0628\u0644\u06cc\u062a SSH Remote Dev \u0648 Audit Logging \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u061b \u0634\u0627\u0645\u0644 ssh_manager.py \u0628\u0631\u0627\u06cc \u067e\u0648\u0634 \u0648 \u067e\u0648\u0644 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0634\u0627\u062e\u0647 production \u0628\u0627 \u062d\u0641\u0638 \u06a9\u0627\u0645\u0644 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0648 \u0622\u067e\u0644\u0648\u062f \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646\u060c remote_audit.py \u062c\u0647\u062a \u062b\u0628\u062a \u062f\u0627\u0626\u0645\u06cc \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u062f\u0631 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 SQLite\u060c \u062f\u0633\u062a\u0648\u0631 /ssh \u0648 \u0627\u06a9\u0634\u0646\u200c\u062a\u06af\u200c\u0647\u0627\u06cc SSH_PUSH\u060c SSH_PULL \u0648 SSH_EXEC \u0628\u062f\u0648\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u062d\u0631\u0645\u0627\u0646\u0647.\"]]\n\n[[RESTART_BOT]]\n\n[[BUTTON: text=\"\ud83d\udcbb \u0645\u0646\u0648\u06cc \u0631\u06cc\u0645\u0648\u062a SSH\", cmd=\"/ssh\", row=1]]\n[[BUTTON: text=\"\ud83d\udc19 \u0645\u0646\u0648\u06cc \u06af\u06cc\u062a \u0648 \u0628\u0631\u0646\u0686\u200c\u0647\u0627\", cmd=\"/git\", row=1]]\n[[BUTTON: text=\"\ud83d\udcca \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_response": "", "created_at": 1787995349.975879, "description": "", "conversation_titles": { @@ -35,7 +35,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" }, "copykar": { "name": "copykar", @@ -84,7 +90,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" }, "hamed-site": { "name": "hamed-site", @@ -110,7 +122,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" }, "gasemi_tier": { "name": "gasemi_tier", @@ -139,7 +157,13 @@ "ftp_user": "tier@tier.artacloud.ir", "ftp_password": "Mj1994Iranboy2", "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" }, "bildirchin": { "name": "bildirchin", @@ -167,16 +191,22 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" } }, "turn_in_progress": false, - "last_prompt": "[User uploaded file to `/root/uploads/photo_1788160782.jpg`]\nCaption: \u0686\u0631\u0627 \u0627\u06cc\u0646 \u067e\u0627\u0633\u062e \u0627\u06cc\u0646\u062c\u0648\u0631\u06cc \u0627\u0648\u062e\u062f\u061f\n\u0686\u0637\u0648\u0631\u06cc \u0627\u0635\u0644\u0627\u062d\u0634 \u06a9\u0646\u06cc\u0645\u061f", - "last_response": "\u0633\u0644\u0627\u0645 \u0648 \u0627\u062d\u062a\u0631\u0627\u0645\u061b\n\n### \ud83d\udd0d \u0628\u0631\u0631\u0633\u06cc \u0639\u0644\u062a \u0648 \u0646\u062d\u0648\u0647 \u0627\u0635\u0644\u0627\u062d \u0645\u0634\u06a9\u0644 \u062a\u0635\u0648\u06cc\u0631 \u0627\u0631\u0633\u0627\u0644\u06cc\n\n#### \u06f1. \u0639\u0644\u062a \u0648\u0642\u0648\u0639:\n1. **\u067e\u0627\u06cc\u0627\u0646 \u0646\u0648\u0628\u062a \u062f\u0631 \u0645\u06cc\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627:** \u062f\u0631 \u067e\u0627\u0633\u062e \u0642\u0628\u0644\u06cc\u060c \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0648 \u0627\u0639\u0645\u0627\u0644 \u06a9\u062f\u0647\u0627\u06cc \u0628\u062e\u0634 SSH \u0631\u0648\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0646\u062c\u0627\u0645 \u0628\u0648\u062f \u0648 \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u0645\u062a\u0646 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0646\u0647\u0627\u06cc\u06cc\u060c \u0627\u062c\u0631\u0627\u06cc \u0646\u0648\u0628\u062a \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f.\n2. **\u0641\u0639\u0627\u0644 \u0634\u062f\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 Fallback \u062f\u0631 \u0631\u0628\u0627\u062a:** \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u067e\u0627\u0633\u062e\u06cc \u0645\u062a\u0646\u06cc \u062a\u0648\u0644\u06cc\u062f \u0646\u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0631\u0628\u0627\u062a \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0644\u06cc\u0633\u062a \u0622\u062e\u0631\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06af\u0632\u0627\u0631\u0634 \u0648\u0636\u0639\u06cc\u062a \u0627\u0632 \u0644\u0627\u06af \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u06cc\u200c\u06a9\u0646\u062f.\n3. **\u0646\u0645\u0627\u06cc\u0634 \u062e\u0627\u0645 \u062a\u06af\u200c\u0647\u0627\u06cc ``:** \u062f\u0631 \u0645\u062a\u0646 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0641\u0627\u0644\u200c\u0628\u06a9\u060c \u062a\u06af\u200c\u0647\u0627\u06cc `` \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0627\u0645 \u062f\u0631\u062c \u0634\u062f\u0647 \u0628\u0648\u062f\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0628\u062f\u06cc\u0644 \u0628\u0647 HTML \u062a\u0644\u06af\u0631\u0627\u0645\u060c \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc `<` \u0648 `>` \u0628\u0647 `<` \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0648 \u062f\u0631 \u067e\u06cc\u0627\u0645 \u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0647 \u062c\u0627\u06cc \u06a9\u062f\u060c \u0645\u062a\u0646 \u062e\u0627\u0645 `` \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u062f.\n\n---\n\n### \ud83d\udee0\ufe0f \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u062c\u0627\u0645\u200c\u0634\u062f\u0647 \u0648 \u0627\u0635\u0644\u0627\u062d\u0627\u062a:\n\n1. **\u0627\u0635\u0644\u0627\u062d \u0633\u06cc\u0633\u062a\u0645 \u0641\u0631\u0645\u062a\u200c\u0628\u0646\u062f\u06cc \u0641\u0627\u0644\u200c\u0628\u06a9 (`agy_engine.py`):** \u0633\u0627\u062e\u062a\u0627\u0631 \u0641\u0627\u0644\u200c\u0628\u06a9 \u0627\u0635\u0644\u0627\u062d \u0634\u062f \u062a\u0627 \u0627\u0632 \u0645\u0627\u0631\u06a9\u200c\u062f\u0627\u0648\u0646 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u06cc\u06af\u0631 \u062a\u06af\u200c\u0647\u0627\u06cc \u062e\u0627\u0645 HTML \u062f\u0631 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0638\u0627\u0647\u0631 \u0646\u0634\u0648\u0646\u062f.\n2. **\u062a\u06a9\u0645\u06cc\u0644 \u0648 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06f1\u06f0\u06f0\u066a \u0642\u0627\u0628\u0644\u06cc\u062a SSH Remote Dev \u0648 \u062c\u062f\u0648\u0644 \u0644\u0627\u06af\u200c\u0647\u0627:**\n * **\u0645\u0627\u0698\u0648\u0644 `ssh_manager.py`:** \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0645\u06a9\u0627\u0646 \u0627\u062a\u0635\u0627\u0644 \u0628\u0627 \u067e\u0633\u0648\u0631\u062f \u0648 \u06a9\u0644\u06cc\u062f \u062e\u0635\u0648\u0635\u06cc SSH\u060c \u062a\u0633\u062a \u0627\u062a\u0635\u0627\u0644\u060c \u067e\u0648\u0634 \u0628\u0647 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 (`Push`)\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u062f\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 (`Pull`) \u0648 \u0627\u062c\u0631\u0627\u06cc \u0641\u0631\u0627\u0645\u06cc\u0646 \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 (`Exec`).\n * **\u062d\u0641\u0627\u0638\u062a \u0627\u0632 \u062f\u06cc\u062a\u0627\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646:** \u0642\u0641\u0644 \u0634\u062f\u0646 \u0627\u0631\u0633\u0627\u0644 \u06a9\u062f\u0647\u0627 \u0645\u0646\u062d\u0635\u0631\u0627\u064b \u0631\u0648\u06cc \u0634\u0627\u062e\u0647 `production` \u0648 \u0645\u062d\u0627\u0641\u0638\u062a \u06f1\u06f0\u06f0\u066a \u0627\u0632 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 (SQLite)\u060c \u067e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc \u0622\u067e\u0644\u0648\u062f \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648 \u0633\u0634\u0646\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a.\n * **\u062c\u062f\u0648\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627 (`remote_audit.py`):** \u0627\u06cc\u062c\u0627\u062f \u062c\u062f\u0648\u0644 `remote_audit_logs` \u062f\u0631 SQLite \u062c\u0647\u062a \u062b\u0628\u062a \u062f\u0627\u0626\u0645\u06cc \u062a\u0645\u0627\u0645\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u060c \u0639\u0645\u0644\u06cc\u0627\u062a\u200c\u0647\u0627\u06cc \u067e\u0648\u0634/\u067e\u0648\u0644\u060c \u062a\u0633\u062a\u200c\u0647\u0627 \u0648 \u0641\u0631\u0627\u0645\u06cc\u0646 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u0632\u0645\u0627\u0646\u060c \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0648\u0636\u0639\u06cc\u062a.\n * **\u0627\u0645\u0646\u06cc\u062a \u06a9\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Zero-Knowledge):** \u0639\u062f\u0645 \u0627\u0631\u0633\u0627\u0644 \u0631\u0645\u0632\u0647\u0627 \u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0628\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0645\u0644 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0628\u06a9\u200c\u0627\u0646\u062f \u0631\u0628\u0627\u062a.\n * **\u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u062a\u0644\u06af\u0631\u0627\u0645 (`bot.py`):** \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u062f\u0633\u062a\u0648\u0631 `/ssh`\u060c \u0645\u0646\u0648\u06cc \u0634\u06cc\u0634\u0647\u200c\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631 \u0648 \u0644\u0627\u06af\u200c\u0647\u0627\u060c \u0648 \u0627\u0641\u0632\u0648\u062f\u0646 \u062f\u06a9\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0647 \u062f\u0627\u0634\u0628\u0648\u0631\u062f \u067e\u0631\u0648\u0698\u0647.\n3. **\u0628\u0631\u0631\u0633\u06cc \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc:** \u062a\u0645\u0627\u0645\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0628\u0627 `py_compile` \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0648 \u0628\u062f\u0648\u0646 \u0647\u06cc\u0686 \u062e\u0637\u0627\u06cc\u06cc \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0648 \u062a\u0633\u062a \u0634\u062f\u0646\u062f.\n\n---\n\n[[SAVE_MEMORY: type=\"project\", key=\"ssh_remote_dev_and_audit\", category=\"tech_stack\", content=\"\u0642\u0627\u0628\u0644\u06cc\u062a SSH Remote Dev \u0648 Audit Logging \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u061b \u0634\u0627\u0645\u0644 ssh_manager.py \u0628\u0631\u0627\u06cc \u067e\u0648\u0634 \u0648 \u067e\u0648\u0644 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0634\u0627\u062e\u0647 production \u0628\u0627 \u062d\u0641\u0638 \u06a9\u0627\u0645\u0644 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0648 \u0622\u067e\u0644\u0648\u062f \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646\u060c remote_audit.py \u062c\u0647\u062a \u062b\u0628\u062a \u062f\u0627\u0626\u0645\u06cc \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u062f\u0631 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 SQLite\u060c \u062f\u0633\u062a\u0648\u0631 /ssh \u0648 \u0627\u06a9\u0634\u0646\u200c\u062a\u06af\u200c\u0647\u0627\u06cc SSH_PUSH\u060c SSH_PULL \u0648 SSH_EXEC \u0628\u062f\u0648\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u062d\u0631\u0645\u0627\u0646\u0647.\"]]\n\n[[RESTART_BOT]]\n\n[[BUTTON: text=\"\ud83d\udcbb \u0645\u0646\u0648\u06cc \u0631\u06cc\u0645\u0648\u062a SSH\", cmd=\"/ssh\", row=1]]\n[[BUTTON: text=\"\ud83d\udc19 \u0645\u0646\u0648\u06cc \u06af\u06cc\u062a \u0648 \u0628\u0631\u0646\u0686\u200c\u0647\u0627\", cmd=\"/git\", row=1]]\n[[BUTTON: text=\"\ud83d\udcca \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": null, + "last_prompt": "\u0628\u0627\u0632\u06cc \u067e\u0631\u0646\u062f\u0647", + "last_response": "", + "last_status_msg_id": 2150, "restart_pending": false, "last_delivered": true, - "last_update_time": 1788160960.1128178, + "last_update_time": 1788163039.4468436, "workspace": "/root", "conversation_id": "2bfe938e-45d8-4238-a286-7be78e449a39", "model": "gemini-3.7-flash-auto", @@ -211,7 +241,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" }, "project1": { "name": "project1", @@ -235,7 +271,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" }, "myapp": { "name": "myapp", @@ -264,7 +306,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" } }, "turn_in_progress": false, @@ -311,7 +359,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" }, "lt-project_name-gt": { "name": "lt-project_name-gt", @@ -335,7 +389,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" }, "blog": { "name": "blog", @@ -359,7 +419,13 @@ "ftp_user": null, "ftp_password": null, "ftp_path": "/", - "ftp_tls": false + "ftp_tls": false, + "ssh_host": null, + "ssh_port": 22, + "ssh_user": null, + "ssh_password": null, + "ssh_key": null, + "ssh_path": "/" } }, "turn_in_progress": false,