
التحكم في الإصدارات القائم على الرسم البياني الدلالي للشيفرة المكتوبة بواسطة الذكاء الاصطناعي. يتتبع الكيانات والعلاقات بدلاً من فروقات الملفات، مما يتيح تحليل نطاق التأثير، ومراجعة الدمج الظلي، وسياق الوكيل المدعوم بـ MCP لبرمجيات موثوقة مولّدة بالذكاء الاصطناعي.
<p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12665/55686ad4696e166589300e948ce2ed89f45622266654371a433a31c612829ec8.png" alt="Kin، مستودع برمجي لوكلاء الذكاء الاصطناعي والأشخاص الذين يبنون معهم" width="100%" /> </p> <h3 align="center">أساس جديد للشيفرة البرمجية.</h3> <p align="center"> <a href="https://github.com/firelock-ai/kin/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="Apache-2.0" /></a> <a href="https://github.com/kinlab-ai/kin/releases/latest"><img src="https://img.shields.io/badge/release-latest-6E56CF.svg" alt="أحدث إصدار" /></a> </p> **Kin هو مستودع برمجي أصيل بالرسم البياني لوكلاء الذكاء الاصطناعي والأشخاص الذين يبنون معهم.** يخزّن الشيفرة المصدرية، والعلاقات المسجّلة بين الشيفرات، والتاريخ المُصدَّر بإصدارات كحالة للمستودع. الرسم البياني هو نموذج المستودع، وليس فهرس بحث يُصان إلى جانب مستودع آخر. الدوال والأنواع والعلاقات بينها هي بيانات تُثبّتها وتُنشئ لها فروعًا وتدمجها. تُحفظ الشيفرة المصدرية الدقيقة بايتًا ببايت، وتتيح إسقاطات نظام الملفات للأدوات المدعومة الاستمرار في العمل مع الملفات العادية. **نسخة تجريبية عامة.** جرّب Kin على مشروع حقيقي تعرفه جيدًا. توقّع بعض الخشونة. [البدء السريع](#quickstart) · [التوثيق](https://github.com/firelock-ai/kin/blob/main/docs/quickstart.md) · [عرض توضيحي في المتصفح](https://kinlab.ai/demo) <p align="center"> <img src="https://raw.githubusercontent.com/firelock-ai/kin/main/docs/assets/kin-impact-human-bytes.gif" alt="kin impact human_bytes --file crates/kin-cli/src/commands/cache.rs --kind function --depth 1، يُظهر مستدعيها المباشرين في قاعدة شيفرة Kin نفسها إلى جانب بحث git grep عن الاسم نفسه" width="100%" /> </p> تساعد النجمة أشخاصًا آخرين على إيجاد Kin، و[المناقشات](https://github.com/kinlab-ai/kin/discussions) هي المكان الذي يمكنك طرح سؤال حوله فيه. ## اكتشف ما يترابط قبل تغيير دالة مشتركة، ما الذي ينبغي عليك فحصه أيضًا؟ يتيح لك Kin البحث عن مستدعيها المسجّلين واستكشاف الشيفرة ذات الصلة. يستعلم كلٌّ من CLI وخادم MCP من الرسم البياني نفسه، بحيث يمكنك أنت ووكيلك العمل انطلاقًا من السجل نفسه. <img src="https://assets.kitploit.com/production/public/readmes/12665/43f73477ba09d6aa7a5bb446cadaea9c36981cc1d093faacaa03b9b61346b955.png" alt="استعلام kin impact مسجّل على ripgrep، يُظهر الكيانات ذات الصلة لتغيير في التوقيع" width="100%" /> *مسجّل على رسم بياني مُهيَّأ لـ ripgrep عند `e89fff89ac9af12e8d4ce9d5fd07beb408ca730f`. مخرجات التشغيل الخام ليست عامة. هذا يوضّح سير عمل، وليس مقياسًا للأداء.* ## استخدمه من Claude Code أو Codex أو Cursor بالنسبة إلى Claude Code: ``` /plugin marketplace add kinlab-ai/kin /plugin install kin@kin ``` بالنسبة إلى [Codex](https://github.com/firelock-ai/kin/blob/main/plugins/kin-codex/README.md#install)، أضف السوق وثبّت الإضافة، أو دع `kin setup --intent agent` يكتب خادم MCP في `~/.codex/config.toml` نيابةً عنك. بالنسبة إلى Cursor، أضف خادم MCP يدويًا؛ راجع [plugins/kin-cursor](https://github.com/firelock-ai/kin/blob/main/plugins/kin-cursor/README.md#install) للحصول على المقتطف الدقيق. بعد التثبيت، شغّل `kin init .` في نسخة استنساخ جديدة لمشروع تعرفه جيدًا؛ ترشدك مهارة `kin-setup` خلال بقية الخطوات. Kin غير منشور على crates.io. حزمة `kin` الموجودة هناك مشروع غير ذي صلة. ## البدء السريع ابدأ في نسخة استنساخ جديدة وكاملة لمشروع تعرفه جيدًا. يقرأ `kin init` سجل Git لديك دون تغييره أو تغيير ملفاتك المتتبَّعة. يحتفظ بمخزنه خارج نسخة العمل لديك، في `~/.kin/stores`، ولا يكتب شيئًا داخل المستودع؛ ويطبع `kin store path` مكان مخزن نسخة العمل. افتراضيًا، يقبل أولًا الالتزام المستخرَج، فتُجاب الأسئلة بمجرد قراءة تلك الشجرة، ثم يستورد كل التزام تصل إليه فروعك ووسومك في الخلفية، بأولوية منخفضة؛ ويستورد `kin init --history full` السجل كاملًا مسبقًا، بينما لا يستورده `--history none` أبدًا. يستغرق استيراد السجل وقتًا وذاكرة ومساحة قرص تنمو مع السجل لا مع حجم نسخة العمل. قبل أن يبدأ، يتحقق `kin init` من الذاكرة والمساحة الحرة على القرص ويتوقف مع عرض الأرقام عندما يستطيع أن يتبيّن مسبقًا أن الجهاز يعاني نقصًا. **لا تقبل نسخة الاستنساخ السطحية (shallow clone) سوى الالتزام المستخرَج، ولا تُدعم الوحدات الفرعية وGit LFS**، كما أن خطافات Git أو نسخة العمل المتفرقة (sparse checkout) أو عملية دمج أو إعادة تأسيس غير مكتملة توقف الاستيراد أيضًا. يذكر `kin init` الحل لكل منها، وتتجنب نسخة الاستنساخ الجديدة معظمها. ### 1. التثبيت على macOS وLinux وWSL2، يثبّت أمر واحد Kin ويوصل أدوات البرمجة بالذكاء الاصطناعي التي يجدها. يتطلب Node.js 20 أو أحدث: ```sh npx -y @kinlab/kin setup ``` على جهاز بدون Node، شغّل المُثبّت بدلاً من ذلك. يقدّم `get.kinlab.ai` و`get.kinlab.dev` النص البرمجي نفسه: ```sh curl -fsSL https://get.kinlab.dev/install | sh ``` على أي حال، أعد تحميل shell الخاص بك كأمر منفصل، لأن عملية التثبيت تضع `kin` في `~/.kin/bin` وتضيف ذلك الدليل إلى ملف تعريف shell الخاص بك للجلسات الجديدة: ```sh exec "$SHELL" -l ``` على Windows x64 الأصلي، ثبّت من PowerShell باستخدام `irm https://get.kinlab.dev/install.ps1 | iex`. يثبّت هذا الأمر أداة `kin` CLI ولا يربط أدوات البرمجة بالذكاء الاصطناعي، لأن WSL2 يبقى المسار الموصى به على Windows. يوضّح إدخال Windows ضمن [حدود الإصدار التجريبي](#beta-limits) ما الذي يعمل هناك. لا يُنشر إصدار Windows ARM64 أصلي. على جهاز ARM64، شغّل ذلك السطر من PowerShell x64 لتثبيت إصدار x86_64 تحت المحاكاة، أو استخدم WSL2. يضيف المثبّت `kin` إلى PATH الخاص بالمستخدم، لذا افتح نافذة PowerShell جديدة بدلًا من `exec "$SHELL" -l` قبل الخطوة التالية. للحصول على مثبّتات أخرى أو لاستكشاف الأخطاء وإصلاحها، راجع [الدليل السريع الكامل](https://github.com/firelock-ai/kin/blob/main/docs/quickstart.md#1-install). ### 2. تهيئة المستودع عند المطالبة الجديدة، استنسخ مستودعًا باستخدام Kin: ```sh kin clone https://github.com/pallets/itsdangerous ``` أو قم بتهيئة واحد لديك بالفعل، مع استبدال المسار أدناه: ```sh cd /path/to/your/repository && kin init . && kin overview && kin status ``` كلاهما ينتهي بالأمر التالي الذي يجب تشغيله، وهو سؤال `kin refs` عن دالة في ذلك المستودع. كما يربطان Codex CLI وGrok CLI به عندما سمحت بذلك أثناء الإعداد، لأن تلك العملاء يحتفظون بمدخل واحد يسمّي مستودعًا. لا يحتوي Windows PowerShell 5.1 على `&&`، لذا على Windows الأصلي شغّل الأوامر نفسها واحدًا تلو الآخر وتوقّف إذا فشل أحدها: ```powershell cd C:\path\to\your\repository kin init . kin overview kin status ``` `kin overview` يعرض الكيانات التي استوردها Kin. `kin status` يعرض ما تم قبوله وحالة شجرة العمل مقابل ذلك. `kin graph status` يبلّغ عن رسم الاستعلامات الحيّ للخادم الخفي وتغطيته. التغييرات غير المُودَعة وغير المتتبَّعة ليست جزءًا من تاريخ Git المستورد؛ ويبلّغ `kin init` عمّا استبعده. ### 3. اطرح سؤالًا يمكنك التحقق منه ابحث عن شيء تعرف مسبقًا أنه موجود في الشيفرة: ```sh kin locate "<something you already know is in this repository>" ``` استبدل `ExactEntityName` أدناه برمز من النتيجة: ```sh kin refs ExactEntityName kin trace ExactEntityName kin impact ExactEntityName ``` تُرجع `refs` المراجع المسجّلة، ويجلب `trace` السياق المجاور، ويستكشف `impact` التأثيرات المحتملة عبر الرسم البياني. تحقّق من النتائج مقابل المصدر. ### 4. أدوات البرمجة بالذكاء الاصطناعي والبحث الدلالي لديك سأل `kin setup` مسبقًا قبل الاتصال بأدوات البرمجة بالذكاء الاصطناعي التي وجدها، واتصل بها إذا وافقت. لا توجد خطوة ربط منفصلة. بعد تثبيت أداة أخرى، شغّل `kin setup` مرة أخرى، ويُظهر `kin setup status` ما هو متصل. على Windows، اتصل بأدوات الذكاء الاصطناعي داخل WSL2. يتحقق `kin runtime status --json` من التثبيت المشترك لواجهة سطر الأوامر (CLI) والخدمة الخلفية (daemon)، بما في ذلك هوية المصدر الدقيقة لهما. ترفض الأوامر العادية الأزواج غير المتطابقة؛ وتستخدم إصدارات التطوير حالة معزولة. راجع [تثبيت وقت التشغيل](https://github.com/firelock-ai/kin/blob/main/docs/runtime-installation.md). يعمل الاسترجاع البياني والمعجمي دون نموذج. التضمينات وإعادة الترتيب اختيارية، ومزوّدو النماذج الخاصة بها افتراضيًا على `none`. تتضمن إصدارات CLI والخدمة الخلفية القياسية دعم نماذج HTTP الخارجية. تتطلب النماذج المدمجة إصدارًا بُني مع تمكين الاستدلال المحلي الاختياري. لبناء فهرس تضمينات باستخدام نقطة نهاية متوافقة مع OpenAI تشغّلها أنت: ```sh KIN_MODEL_EMBEDDINGS_PROVIDER=external \ KIN_MODEL_EMBEDDINGS_BASE_URL=http://localhost:1234/v1 \ KIN_MODEL_EMBEDDINGS_MODEL=your-served-embedding-model kin embed ``` تتلقى نقاط نهاية النموذج نص الكيان المحدد اللازم لمرحلتها. تصف [إعدادات النموذج](https://github.com/firelock-ai/kin/blob/main/docs/env-vars.md) المزوّدين وهويات النماذج وأسماء متغيرات البيئة الخاصة ببيانات الاعتماد. يدعم Kin كلاً من Claude Code وCodex وCursor وGemini وعملاء MCP الآخرين. استخدم `kin setup --intent editor` لـ VS Code. يتضمن Kin أيضاً `kin agent run` لنقاط نهاية النماذج المتوافقة مع OpenAI المحلية أو المستضافة. [إعداد العميل](https://github.com/firelock-ai/kin/blob/main/docs/readme-reference.md#works-with-your-agent) · [أدوات MCP](https://github.com/firelock-ai/kin/blob/main/docs/mcp-tools.md) · [الوكيل المدمج](https://github.com/firelock-ai/kin/blob/main/docs/cli-reference.md#kin-agent) تعمل عمليات الاستيراد المحلية والتخزين واستعلامات الرسم البياني على جهازك. يتطلب تثبيت Kin الوصول إلى الشبكة؛ ولا يحتاج مسار استرجاع الرسم البياني الافتراضي إلى تنزيل أي نموذج. عند اختيار مزوّد تضمين، تُبلّغ الاستعلامات عن تغطية المتجهات وأي فجوات. ## مراجعة تغيير بعد تشغيل `kin init` على فرع Git الذي تريد مراجعته، قارن معرّفات الالتزام (commit SHAs) الصريحة مقابل `main`: ```sh kin review shadow "$(git rev-parse main)..$(git rev-parse HEAD)" ``` يُعيد التقرير `PASS` أو `NEEDS ATTENTION` أو `WOULD BLOCK`، مع تأثير مستمد من الرسم البياني وأدلة داعمة. **التقرير استشاري:** فهو لا يحجب الدمج ولا يغيّر حالة الرسم البياني. يتم الإعلان عن التأليف، ولا يتم التحقق منه بشكل مستقل. ## استخدم Kin مع Git أو بدونه يمتلك Kin التزاماته وفروعه وعمليات الدمج الخاصة به وفروقه وسجلّه، بما في ذلك في المستودعات التي لا يوجد Git تحتها. يمكن استيراد مستودعات Git الموجودة، ويمكن لسير العمل المدعومة تصدير مستودع Git جديد. [جولة في التحكم الأصلي بالإصدارات](https://github.com/firelock-ai/kin/blob/main/docs/readme-reference.md#version-control-without-git) · [التوافق مع Git وحدود التصدير](https://github.com/firelock-ai/kin/blob/main/docs/readme-reference.md#how-kin-relates-to-git) ## حدود النسخة التجريبية **التغطية غير مكتملة.** يتم تحليل اللغات المدعومة إلى كيانات وعلاقات؛ وتبقى الملفات الأخرى متاحة كمحتوى وسجل. النتيجة الفارغة لا تثبت عدم وجود مستدعين أو تبعيات. استمر في استخدام المترجم والاختبارات والمراجعة. راجع [دعم اللغات](https://github.com/firelock-ai/kin/blob/main/docs/language-support.md). **التوافق متفاوت.** لا تتضمن أرشيفات الإصدار إسقاط نظام الملفات المهمَل `kin-vfs`، لذا لا يوجد إسقاط شفاف يمكن الاعتماد عليه. راجع [ملاحظات المنصات](https://github.com/firelock-ai/kin/blob/main/docs/readme-reference.md#platform-and-maturity) لمعرفة ما تدعمه كل منصة. **احتفظ بنسخة احتياطية من الحالة الخاصة بـ Kin فقط.** الالتزامات والفروع والمراجعات والمواصفات التي تسجّلها باستخدام Kin تعيش في مخزن Kin الخاص بالمستودع، وليس في Git. حذف المخزن وإعادة الاستيراد من Git لا يستعيدها، لذا شغّل `kin backup create` أولاً. يحذف `kin store prune` المخازن فقط عند تمرير `--yes`، وللسبب نفسه. اقرأ [ملاحظات الاستيراد والاستعادة والترقية](https://github.com/firelock-ai/kin/blob/main/docs/readme-reference.md#what-is-real-today-and-what-is-beta). **Windows.** دعم Windows x86_64 الأصلي في مرحلة مبكرة. قبول المستودعات يعمل: يستورد `kin init` مستودع Git وينشر سلطة الرسم البياني، وتُجيب استعلامات الرسم البياني والمعجمية والمدعومة بالخادم الخفي أصليًا. كما يشغّل إثبات التثبيت من البداية إلى النهاية إعداد الوكيل على Windows الأصلي ويحصل على إجابات مدعومة بالرسم البياني من خادم MCP المثبّت. لا يتم شحن إسقاط نظام الملفات الشفاف على Windows، ولم تُختبر سير عمل المراجعة هناك بعد، لذا يبقى WSL2 المسار الموصى به لتجربة Kin الكاملة. ## لماذا بنيت Kin ظللت أشاهد وكلاء البرمجة يجمعون أجزاءً من قاعدة شيفرة كنا قد عملنا عليها بالفعل. ثم كنت أقوم بنسخة من ذلك العمل بنفسي لمراجعة تغييراتهم. بدأت أتساءل لماذا لا يكون المزيد من ذلك الفهم البنيوي جزءًا من المستودع نفسه. هذا ما أبنيه مع Kin. Troy ## اعرف المزيد وساهم [مرجع CLI](https://github.com/firelock-ai/kin/blob/main/docs/cli-reference.md) · [البنية والحدود التفصيلية](https://github.com/firelock-ai/kin/blob/main/docs/readme-reference.md) · [المساهمة](https://github.com/firelock-ai/kin/blob/main/CONTRIBUTING.md) · [المشكلات](https://github.com/kinlab-ai/kin/issues/new/choose) · [الأمان](https://github.com/firelock-ai/kin/blob/main/SECURITY.md) Kin وحزمته المحلية، بما في ذلك [kin-db](https://github.com/kinlab-ai/kin-db)، مرخّصة بموجب [Apache-2.0](https://github.com/firelock-ai/kin/blob/main/LICENSE). [KinLab](https://kinlab.ai) هو المنتج المستضاف الاحتكاري المنفصل. لا يزال تأهيل المستودع العام قيد التطوير.