نظام IDE الفرعي وإدارة مساحات العمل
نظام IDE الفرعي وإدارة مساحات العمل
Section titled “نظام IDE الفرعي وإدارة مساحات العمل”نظام IDE الفرعي (kazma_core/ide/) هو خلفية برمجة محايدة للنقل تدعم واجهة الويب، TUI، CLI، وروبوتات الدردشة متعددة المنصات (Telegram، Discord، Slack). يعمل مصدر حقيقة واحد لعمليات الملفات، التنفيذ، إدارة Git، وحل مسار مساحة العمل.
1. أولوية حل مساحة العمل
Section titled “1. أولوية حل مساحة العمل”تُحلّ مسارات جذر مساحة العمل ديناميكيًا بأولوية صارمة لمنع الوصول خارج الحدود:
- نطاق ContextVar:
workspace_scopeلكل سياق مهمة async. - مساحة العمل النشطة العامة: عبر
configure_workspace(). - متغير البيئة:
KAZMA_WORKSPACE. - صف WorkspaceStore النشط: المسار النشط في
workspaces.db. - الافتراضي:
cwd/kazma-data/workspace.
تُحجب هجمات اجتياز المسار عبر تطبيع على مستوى السلسلة وفحوصات احتواء realpath.
منح المسارات (الوصول خارج مساحة العمل)
Section titled “منح المسارات (الوصول خارج مساحة العمل)”الوصول خارج مساحة العمل النشطة مرفوض افتراضياً، لكن يمكن فتحه بإذن. مصدر
الحقيقة: kazma_core/workspace/path_policy.py + workspace/path_grants.py،
موصول عبر IdeService.resolve وfile_read / file_write وبحث/قائمة/حذف/إلحاق
الملفات وفحوصات مسار الـshell.
| الكيفية | الأثر |
|---|---|
| محادثة (سلسة) | عند فشل أداة ملفات على مسار خارج المساحة، يستدعي الوكيل request_path_access (بطاقة HITL من فئة الخطر). عند الموافقة يُنشأ منح جلسة (مهلة ~ساعة) وتُعيد الأداة المحاولة. |
| الإعدادات / API | جذور إضافية دائمة عبر workspace.extra_roots + GET/PUT /api/workspace/extra_roots (path، mode: read | write، label). تستمر حتى الإزالة. |
منح القراءة لا تسمح بالكتابة أبداً. رسائل الرفض تخبر الوكيل كيف يطلب منحاً، فالحلقة سلسة لا فشلاً قاسياً.
2. استهداف مساحة العمل لكل مهمة
Section titled “2. استهداف مساحة العمل لكل مهمة”مهام السرب المتزامنة أو أدوار المستخدم يمكنها استهداف مستودعات مختلفة في آنٍ واحد باستخدام workspace_scope(workspace_id).
from kazma_core.ide.workspace_scope import workspace_scope
async with workspace_scope(workspace_id="repo-b"): # أدوات الملفات تستهدف جذر repo-b تلقائيًا await file_write("src/index.py", content)3. حقن الوعي (env_context.py)
Section titled “3. حقن الوعي (env_context.py)”في بداية كل دور، يولّد build_env_context() كتلة metadata بصيغة Markdown تتضمن:
- المسار المطلق لجذر مساحة العمل
- هوية المستودع (مالك/مستودع GitHub)
- فرع Git الحالي والبعيد
- قدرات الأدوات المتاحة
تُحقَن كتلة الوعي في موجّه المُشرف، ودفق SSE للدردشة لكل دور، وسياق كل عامل سرب مُرسَل.