Skip to main content
Glama

Munjiz OS Controller (munjiz-os-controller) — v2.0

محرك توجيه هجين ثلاثي الطبقات (3-Layer Context-Aware Hybrid Execution Engine) وخادم بروتوكول سياق النماذج (MCP Server) مصمم خصيصاً لتمكين وكلاء تطبيق مُنجز (Munjiz) من التحكم الكامل والبصري في نظام التشغيل Windows والويب، مع تتبع حي لمؤشر الفأرة ودعم أصلي للكتابة باللغة العربية.

يستلهم هذا المشروع معماريته الهندسية من أقوى الأطر البحثية والعملية مفتوحة المصدر ليتجاوز قيود مشاريع النقر البصري التقليدية مثل Open Computer Use وSelf-Operating Computer، جامعاً بين واجهة الوكيل والحاسوب في Simular AI Agent-S ونظام الوكلاء الهجين لبيئة ويندوز في Microsoft UFO ومحرك الرؤية وتحليل عناصر الشاشة Microsoft OmniParser V2.

المعمارية الهجينة ثلاثية الطبقات (The 3-Layer Execution Engine)

يختار محرك munjiz-os-controller طبقة التنفيذ المثلى تلقائياً بناءً على سياق المهمة لتوفير أقصى سرعة وأقل استهلاك لتوكنز الصور:

الطبقة (حسب الأولوية)

متى يختارها "مُنجز" تلقائياً؟

الأداة التقنية في الخلفية

السرعة والدقة واستهلاك التوكنز

1. التحكم المباشر بالنظام (System / CLI Layer)

قراءة ملفات Excel وCSV، إدارة المجلدات، تشغيل البرامج، استعلامات النظام وأوامر Git.

PowerShell + Python Subprocess + pandas

فورية (أجزاء من الثانية) — دقة 100% دون استهلاك توكنز صور.

2. التحكم الهيكلي بالواجهات والويب (Structural UI & DOM)

التفاعل مع برامج Windows القياسية (Office, Explorer, Settings) أو أتمتة المتصفح والويب.

uiautomation / pywinauto (لويندوز) + browser-use / Playwright (للويب)

سريعة جداً — يقرأ الأزرار والحقول كبيانات JSON وينقر عليها برمجياً عبر InvokePattern وValuePattern.

3. التحكم البصري الخالص وتتبع الماوس (Pure Vision & Live Cursor)

الأنظمة المحاسبية القديمة، لوحات التصميم، عناصر Canvas، أو عند عدم ظهور العناصر في شجرة UIA.

OmniParser V2 (أو كاشف OpenCV الاحتياطي) + PyAutoGUI + pyperclip

تمنح الوكيل عيناً بصرية ترسم صناديق مرقمة (Set-of-Mark) مع تتبع حي لمؤشر الماوس وحلقة نقر مرئية.

Related MCP server: Extra

أبرز المزايا الهندسية في الإصدار 2.0

  • المشاهدة المرئية الحية وتتبع مؤشر الماوس (capture_live_view): يعالج مشكلة اختفاء أيقونة الفأرة في لقطات الشاشة القياسية عبر قراءة موقع المؤشر الحقيقي (user32.GetCursorPos) ورسم مؤشر واضح (Crosshair + Halo) مع خط مسار الحركة (Trajectory) من موقع الماوس الحالي إلى العنصر المستهدف.

  • الوميض البصري المباشر على شاشة المستخدم (show_live_click_ripple): يعرض حلقة ضوئية شفافة عابرة للنقرات (Click-Through HUD) فوق شاشة Windows في موضع نقر الوكيل ليشاهد المستخدم بالعين المجردة أين يتفاعل "مُنجز" لحظياً.

  • دعم أصلي وكامل للغة العربية (keyboard_input): يتجاوز قصور دالة pyautogui.write() مع الحروف العربية عبر نسخ النص العربي برمجياً إلى الحافظة (pyperclip) وإرسال اختصار اللصق Ctrl+V، مع حفظ واستعادة محتوى حافظة المستخدم السابق تلقائياً.

  • معالجة انحراف أبعاد الشاشة (Per-Monitor DPI Awareness V2): يضبط وعي العملية بدقة الشاشة الحقيقية فور التشغيل لمنع أي انحراف في إحداثيات النقر (X, Y) على الشاشات ذات التكبير 125% أو 150% أو 4K.

  • التصعيد التلقائي الذكي (smart_interact): يحاول التفاعل مع العنصر بالاسم عبر الطبقة الثانية (Windows UI Automation) أولاً، وإذا كانت الواجهة مغلقة برمجياً ينتقل تلقائياً إلى الطبقة الثالثة لتحليل الشاشة بصرياً والنقر عبر رقم الصندوق box_id.

هيكل ملفات المستودع

munjiz-os-controller/
├── munjiz_os_controller.py   # المحرك الهجين الكامل وخادم FastMCP
├── pyproject.toml            # إعدادات الحزمة والاعتماديات ونقاط التشغيل
└── README.md                 # التوثيق المعماري ودليل الربط مع مُنجز

التثبيت والتجهيز السريع

1. تثبيت الحزمة الأساسية

git clone https://github.com/<your-org>/munjiz-os-controller.git
cd munjiz-os-controller
pip install -e .

لتثبيت دعم أتمتة المتصفح والويب الاختياري عبر browser-use وPlaywright:

pip install -e ".[web]"
playwright install chromium

2. تشغيل الاختبار التشخيصي الذاتي (Self-Test Demo)

يمكنك التحقق من عمل الطبقات الثلاث وتوليد لقطات الشاشة المرقمة وتتبع المؤشر عبر تشغيل وضع المحاكاة:

python munjiz_os_controller.py --mode demo

الربط مع تطبيق "مُنجز" عبر بروتوكول MCP

يعمل المحرك كخادم MCP قياسي عبر قناة stdio. لربطه مع وكلاء "مُنجز"، أضف الإعداد التالي إلى ملف تكوين جسور الأدوات (mcp_config.json):

{
  "mcpServers": {
    "munjiz-os-controller": {
      "command": "python",
      "args": [
        "C:/path/to/munjiz-os-controller/munjiz_os_controller.py",
        "--mode",
        "mcp"
      ],
      "env": {
        "MUNJIZ_OMNIPARSER_URL": "http://127.0.0.1:8000/parse",
        "MUNJIZ_LLM_MODEL": "gpt-4o"
      }
    }
  }
}

كما يمكنك تشغيله مباشرة بعد تثبيت الحزمة عبر أمر النظام المختصر munjiz-mcp --mode mcp.

دليل الأدوات المتاحة لوكلاء "مُنجز" (MCP Tools Reference)

اسم الأداة

الطبقة المعمارية

الوظيفة التقنية ومتى يستخدمها الوكيل

system_cli

الطبقة 1 (CLI)

تنفيذ أوامر PowerShell بترميز UTF-8 لإدارة الملفات والعمليات بسرعة فائقة مع حماية ضد الأوامر الخطرة.

read_excel_or_csv

الطبقة 1 (CLI)

قراءة ملفات الإكسل (xlsx) وCSV مباشرة في الذاكرة عبر pandas دون فتح واجهة برنامج Excel.

window_manager

الطبقة 2 (UIA)

عرض قائمة النوافذ المفتوحة (list)، تفعيل نافذة في المقدمة (focus)، تكبير (maximize)، تصغير (minimize)، أو إغلاق (close).

inspect_screen

الطبقة 2 و 3 (Auto)

يفحص النافذة النشطة عبر uiautomation أولاً (mode="auto")، وإذا لم تكشف عناصرها برمجياً يحولها تلقائياً إلى Microsoft OmniParser V2 لإرجاع عناصر مرقمة (box_id) وصورة Set-of-Mark مع موقع مؤشر الماوس.

capture_live_view

الطبقة 3 (Live Stream)

يلتقط صورة فورية للشاشة مرسوماً عليها مؤشر الماوس الحالي ومسار الحركة لعرضها داخل شاشة المشاهدة الحية في واجهة "مُنجز".

smart_interact

موجه هجين (2 ← 3)

يتفاعل مع العنصر عبر اسمه (target_label) أو رقم صندوقه (box_id)، مع تصعيد تلقائي من الطبقة الهيكلية إلى النقر البصري والكتابة العربية.

gui_action

الطبقة 3 (Vision)

يحرك مؤشر الفأرة وينفذ (click, double_click, right_click, move, drag, scroll) مع إظهار حلقة النقر المضيئة (Live HUD).

keyboard_input

الطبقة 3 (Vision)

يكتب النصوص العربية والإنجليزية بأمان عبر الحافظة (pyperclip + Ctrl+V) وينفذ اختصارات لوحة المفاتيح (ctrl+s, alt+tab).

browser_task

الطبقة 2 (Web DOM)

يسند مهام التصفح واستخراج بيانات الويب إلى وكيل browser-use المبني على Playwright.

الاستخدام البرمجي المباشر داخل نواة Python في "مُنجز"

بالإضافة إلى تشغيله كخادم MCP، يمكنك استيراد MunjizHybridRouter ومخطط أدوات get_openai_tools_schema() مباشرة داخل كود Python الخاص بنواة "مُنجز" وربطه مع نماذج Azure AI Foundry:

from munjiz_os_controller import (
    MUNJIZ_ACI_SYSTEM_PROMPT,
    MunjizHybridRouter,
    get_openai_tools_schema,
)

router = MunjizHybridRouter(omniparser_endpoint="http://127.0.0.1:8000/parse")

# 1. قراءة سريعة لملف إكسل عبر الطبقة الأولى (بدون فتح Excel بالماوس)
clients = router.cli_layer.read_tabular_file_fast("C:/Projects/clients.xlsx")

# 2. تفعيل نافذة النظام المحاسبي عبر الطبقة الثانية
router.uia_layer.window_manager(operation="focus", title_query="النظام المحاسبي")

# 3. فحص الشاشة التكيفي والتفاعل الذكي (طبقة 2 ثم تصعيد تلقائي للطبقة 3)
screen_state = router.inspect_screen(mode="auto")
router.smart_interact(
    target_label="اسم العميل",
    action="click",
    text_to_type="شركة آفاق التقنية المتقدمة",
    press_enter=True,
)

الرخصة

مرخص بموجب رخصة MIT.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to autonomously control Windows 11 and 10 desktops via sub-10ms screen capture, native UI Automation element inspection, and zero-lag keyboard and mouse input. Combines a visual plane with a semantic plane and stall detection so agents can operate real applications reliably without vision-only guessing.
    4 npm
    45 PyPI
    5
    MIT