Files
codeg/docs/readme/README.ar.md
2026-03-29 18:36:30 +08:00

239 lines
10 KiB
Markdown

# Codeg
[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases)
[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE)
[![Tauri](https://img.shields.io/badge/Tauri-2.x-24C8DB)](https://tauri.app/)
[![Next.js](https://img.shields.io/badge/Next.js-16-black)](https://nextjs.org/)
[![Docker](https://img.shields.io/badge/Docker-ready-2496ED)](../../Dockerfile)
<p>
<a href="../../README.md">English</a> |
<a href="./README.zh-CN.md">简体中文</a> |
<a href="./README.zh-TW.md">繁體中文</a> |
<a href="./README.ja.md">日本語</a> |
<a href="./README.ko.md">한국어</a> |
<a href="./README.es.md">Español</a> |
<a href="./README.de.md">Deutsch</a> |
<a href="./README.fr.md">Français</a> |
<a href="./README.pt.md">Português</a> |
<strong>العربية</strong>
</p>
Codeg (Code Generation) هو مساحة عمل مؤسسية متعددة الوكلاء للبرمجة.
يوحّد وكلاء البرمجة المحليين بالذكاء الاصطناعي (Claude Code، Codex CLI، OpenCode، Gemini CLI،
OpenClaw، وغيرها) في تطبيق سطح مكتب وخدمة ويب — مما يتيح التطوير عن بُعد من أي متصفح — مع تجميع الجلسات، والتطوير المتوازي
عبر `git worktree`، وإدارة MCP/Skills، وسير عمل متكامل لـ Git/الملفات/الطرفية.
## الواجهة الرئيسية
![Codeg Light](../images/main-light.png#gh-light-mode-only)
![Codeg Dark](../images/main-dark.png#gh-dark-mode-only)
## عرض الجلسات كبلاطات
![Codeg Light](../images/main2-light.png#gh-light-mode-only)
![Codeg Dark](../images/main2-dark.png#gh-dark-mode-only)
## الإعدادات
| الوكلاء | MCP | Skills | التحكم في الإصدارات | خدمة الويب |
| :---: | :---: | :---: | :---: | :---: |
| ![Agents](../images/1-light.png#gh-light-mode-only) ![Agents](../images/1-dark.png#gh-dark-mode-only) | ![MCP](../images/2-light.png#gh-light-mode-only) ![MCP](../images/2-dark.png#gh-dark-mode-only) | ![Skills](../images/3-light.png#gh-light-mode-only) ![Skills](../images/3-dark.png#gh-dark-mode-only) | ![Version Control](../images/4-light.png#gh-light-mode-only) ![Version Control](../images/4-dark.png#gh-dark-mode-only) | ![Web Service](../images/5-light.png#gh-light-mode-only) ![Web Service](../images/5-dark.png#gh-dark-mode-only) |
## أبرز المزايا
- مساحة عمل موحّدة متعددة الوكلاء في نفس المشروع
- استيعاب محلي للجلسات مع عرض منظّم
- تطوير متوازي مع تدفقات `git worktree` مدمجة
- **مُنشئ المشروع** — إنشاء مشاريع جديدة بصريًا مع معاينة حية
- إدارة MCP (فحص محلي + بحث/تثبيت من السجل)
- إدارة Skills (نطاق عام ونطاق المشروع)
- إدارة حسابات Git البعيدة (GitHub وخوادم Git الأخرى)
- وضع خدمة الويب — الوصول إلى Codeg من أي متصفح للعمل عن بُعد
- **نشر خادم مستقل** — شغّل `codeg-server` على أي خادم Linux/macOS، والوصول عبر المتصفح
- **دعم Docker** — انشر باستخدام `docker compose up` لإعداد الخادم بدون تكوين
- حلقة هندسية متكاملة (شجرة الملفات، الفروقات، تغييرات git، الإيداع، الطرفية)
## مُنشئ المشروع
أنشئ مشاريع جديدة بصريًا من خلال واجهة مقسّمة: التكوين على اليسار، والمعاينة الحية على اليمين.
![Project Boot Light](../images/project-boot-light.png#gh-light-mode-only)
![Project Boot Dark](../images/project-boot-dark.png#gh-dark-mode-only)
### الميزات
- **تكوين بصري** — اختر النمط وسمة الألوان ومكتبة الأيقونات والخط ونصف قطر الحدود والمزيد من القوائم المنسدلة؛ تتحدث المعاينة فورًا
- **معاينة حية** — شاهد المظهر الذي اخترته مُصيَّرًا في الوقت الفعلي قبل إنشاء أي شيء
- **إنشاء بنقرة واحدة** — اضغط "إنشاء مشروع" ويقوم المُشغّل بتنفيذ `shadcn init` مع إعداداتك المسبقة وقالب الإطار (Next.js / Vite / React Router / Astro / Laravel) ومدير الحزم (pnpm / npm / yarn / bun)
- **اكتشاف مدير الحزم** — يتحقق تلقائيًا من مديري الحزم المثبتين ويعرض إصداراتهم
- **تكامل سلس** — يُفتح المشروع المُنشأ حديثًا مباشرة في مساحة عمل Codeg
يدعم حاليًا إنشاء مشاريع **shadcn/ui**، مع تصميم قائم على علامات التبويب جاهز لدعم المزيد من أنواع المشاريع في المستقبل.
## النطاق المدعوم
### 1) استيعاب الجلسات (الجلسات التاريخية)
| الوكيل | مسار متغير البيئة | الافتراضي في macOS / Linux | الافتراضي في Windows |
| --- | --- | --- | --- |
| Claude Code | `$CLAUDE_CONFIG_DIR/projects` | `~/.claude/projects` | `%USERPROFILE%\\.claude\\projects` |
| Codex CLI | `$CODEX_HOME/sessions` | `~/.codex/sessions` | `%USERPROFILE%\\.codex\\sessions` |
| OpenCode | `$XDG_DATA_HOME/opencode/opencode.db` | `~/.local/share/opencode/opencode.db` | `%USERPROFILE%\\.local\\share\\opencode\\opencode.db` |
| Gemini CLI | `$GEMINI_CLI_HOME/.gemini` | `~/.gemini` | `%USERPROFILE%\\.gemini` |
| OpenClaw | — | `~/.openclaw/agents` | `%USERPROFILE%\\.openclaw\\agents` |
| Cline | `$CLINE_DIR` | `~/.cline/data/tasks` | `%USERPROFILE%\\.cline\\data\\tasks` |
> ملاحظة: متغيرات البيئة لها الأولوية على المسارات الافتراضية.
### 2) جلسات ACP في الوقت الفعلي
يدعم حاليًا 5 وكلاء: Claude Code وCodex CLI وGemini CLI وOpenCode وOpenClaw.
### 3) دعم إعدادات Skills
- مدعوم: `Claude Code / Codex / OpenCode / Gemini CLI / OpenClaw / Cline`
- سيتم إضافة المزيد من المحولات تدريجيًا
### 4) التطبيقات المستهدفة لـ MCP
الأهداف القابلة للكتابة حاليًا:
- Claude Code
- Codex
- OpenCode
## البدء السريع
### المتطلبات
- Node.js `>=22` (مُوصى به)
- pnpm `>=10`
- Rust stable (2021 edition)
- تبعيات بناء Tauri 2 (وضع سطح المكتب فقط)
مثال على Linux (Debian/Ubuntu):
```bash
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf
```
### التطوير
```bash
pnpm install
# تصدير ثابت للواجهة الأمامية إلى out/
pnpm build
# تطبيق سطح المكتب الكامل (Tauri + Next.js)
pnpm tauri dev
# الواجهة الأمامية فقط
pnpm dev
# بناء تطبيق سطح المكتب
pnpm tauri build
# خادم مستقل (بدون Tauri/واجهة رسومية)
pnpm server:dev
# بناء الملف التنفيذي للخادم
pnpm server:build
# فحص الأكواد
pnpm eslint .
# فحوصات Rust (تنفيذ في src-tauri/)
cargo check
cargo clippy
cargo build
```
### نشر الخادم
يمكن تشغيل Codeg كخادم ويب مستقل بدون بيئة سطح مكتب.
#### الخيار 1: الملف التنفيذي المباشر
```bash
# بناء الملف التنفيذي للخادم
cd src-tauri
cargo build --release --bin codeg-server --no-default-features
# التشغيل
CODEG_PORT=3080 CODEG_STATIC_DIR=../out ./target/release/codeg-server
```
متغيرات البيئة:
| المتغير | الافتراضي | الوصف |
| --- | --- | --- |
| `CODEG_PORT` | `3080` | منفذ HTTP |
| `CODEG_HOST` | `0.0.0.0` | عنوان الربط |
| `CODEG_TOKEN` | *(عشوائي)* | رمز المصادقة (يُطبع في stderr عند البدء) |
| `CODEG_DATA_DIR` | `~/.local/share/codeg` | دليل قاعدة بيانات SQLite |
| `CODEG_STATIC_DIR` | `./web` أو `./out` | دليل التصدير الثابت لـ Next.js |
#### الخيار 2: Docker
```bash
# البناء والتشغيل
docker compose up -d
# أو البناء يدويًا
docker build -t codeg .
docker run -p 3080:3080 -v codeg-data:/data codeg
```
## الهندسة المعمارية
```text
Next.js 16 (Static Export) + React 19
|
| invoke() (desktop) / fetch() + WebSocket (web)
v
┌─────────────────────────┐
│ Transport Abstraction │
│ (Tauri IPC or HTTP/WS) │
└─────────────────────────┘
|
v
┌─── Tauri Desktop ───┐ ┌─── codeg-server ───┐
│ Tauri 2 Commands │ │ Axum HTTP + WS │
│ (window management) │ │ (standalone mode) │
└──────────┬───────────┘ └──────────┬──────────┘
└──────────┬───────────────┘
v
Shared Rust Core
|- AppState
|- ACP Manager
|- Parsers (session ingestion)
|- Git / File Tree / Terminal
|- MCP marketplace + config
|- SeaORM + SQLite
|
v
Local Filesystem / Git Repos
```
## القيود
- الواجهة الأمامية تستخدم التصدير الثابت (`output: "export"`)
- لا توجد مسارات ديناميكية في Next.js (`[param]`)؛ استخدم معاملات الاستعلام بدلاً من ذلك
- معاملات أوامر Tauri: `camelCase` في الواجهة الأمامية، `snake_case` في Rust
- TypeScript في الوضع الصارم
## الخصوصية والأمان
- محلي أولاً بشكل افتراضي للتحليل والتخزين وعمليات المشروع
- الوصول إلى الشبكة يحدث فقط عند الإجراءات التي يبدأها المستخدم
- دعم بروكسي النظام لبيئات المؤسسات
- وضع خدمة الويب يستخدم مصادقة قائمة على الرموز
## الترخيص
Apache-2.0. راجع `LICENSE`.