
peerd v0.2.8
أول أداة ربط وكيل ذكاء اصطناعي أصلية للمتصفح. إضافة متصفح تدير حلقة وكيل كاملة حيث تعمل بالفعل: تقود علامات التبويب الخاصة بك، وتدير حوسبة معزولة (دفاتر JS، أجهزة WASM Linux الافتراضية، تطبيقات جانب العميل)، وتشارك ما تبنيه نظير إلى نظير. BYOK، لا خادم خلفي، لا تتبع.
peerd هو إضافة متصفح تشغّل وكيل ذكاء اصطناعي داخل المتصفح. يمكنها العمل مع التبويبات، وإنشاء بيئات حوسبة معزولة، وبناء تطبيقات متصفح محلية. أنت تختار موفّر النموذج وتزوّد بأي مفتاح مطلوب. لا يمتلك peerd أي حساب، أو خلفية وكيل مُستضافة، أو قياس عن بُعد (telemetry). تذهب طلبات النماذج مباشرةً من الإضافة إلى الموفّر الذي تختاره.
الحالة
peerd هو إصدار 0.x تجريبي. من المحتمل حدوث تغييرات جذرية. صيغ التخزين وسلوك المنتج قد تتغير. يمكنه قيادة صفحات المتصفح واستخدام مفاتيح API، لذا راجع نموذج الأمان قبل استخدامه مع بيانات حساسة.
الكود هو مصدر الحقيقة للسلوك الحالي. ابدأ بـ
CLAUDE.md، ثم اقرأ الوحدة ذات الصلة ضمن extension/.
ماذا يفعل
- يشغّل حلقة وكيل (agent loop) في إضافة Chrome أو Firefox.
- يقرأ تبويبات المتصفح ويقودها عبر كيانات (actors) مخصصة لكل بيئة.
- يشغّل WebVMs لينكس، ودفاتر JavaScript، وتطبيقات المتصفح، والسكربتات الرأسية (headless scripts).
- يدعم موفّري النماذج السحابية والمحليين. القائمة الحية موجودة في
extension/peerd-provider/registry.js. - يخزّن أسرار الموفّرين في خزنة مشفّرة محلية.
- يتضمن شبكة dweb ندّية (peer-to-peer) اختيارية في إصدارات المعاينة (preview).
التطبيقات وWebVMs تعمل حالياً على Chrome فقط. لا تملك التطبيقات وصولاً شبكياً محيطياً. الموارد البعيدة، والجلب (fetches)، وWebRTC، والنماذج، والتنقل إلى مستندات خارجية محظورة. تتطلب روابط HTTP وHTTPS الخارجية تأكيداً من المستخدم.
نموذج الأمان
يستخدم peerd عزل المتصفح، وتعريض أدوات ضيق، وبوابات سياسة عامل الخدمة، وضوابط صريحة للاتصال الصادر (egress). الوكيل الرئيسي يفوض عمل البيئة إلى كيانات بلا مفاتيح. على Chrome، تعمل حلقات الوكيل غير المنسِّقة في أكوام عمال منفصلة. يستخدم Firefox بديلاً أكثر محدودية حيث لا توفر واجهات المتصفح نفس ميزات العزل.
يعتمد السلوك الشبكي على العملية. استدعاءات النماذج، وقراءات الويب، وتحميل موارد وقت التشغيل،
وحركة مرور بيئة الحماية (sandbox)، وحركة مرور dweb للمعاينة تستخدم مسارات وسياسات
محددة النطاق. راجع SECURITY.md و
نموذج التهديدات للحدود الحالية
والقيود المعروفة.
التثبيت
Chrome من المصدر
- استنسِخ المستودع.
- افتح
chrome://extensions. - فعّل وضع المطوّر.
- اختر تحميل غير مضغوط وحدد مجلد
extension/.
أعد تحميل الإضافة من chrome://extensions بعد تغييرات المصدر.
Firefox من المصدر
يتطلب Firefox حزمة خاصة به. لا تحمّل بيان تطوير Chrome المُضمّن في المستودع.
bun run package -- --channel=preview --browser=firefox --no-sign
افتح about:debugging#/runtime/this-firefox، واختر تحميل إضافة مؤقتة،
وحدد artifacts/peerd-preview-firefox.xpi. يجب إعادة تحميل الإضافات المؤقتة
بعد إعادة تشغيل Firefox. يتم تعريف تحويلات المتصفح والقناة
بواسطة سكربتات التغليف.
حزم الإصدارات
راجع GitHub Releases للحصول على القطع الحالية. تختلف إصدارات المتجر (Store) وإصدارات المعاينة (preview). تحذف إصدارات المتجر dweb. إصدارات المعاينة تتضمنه وقد تفعّل ميزات أتمتة إضافية. كود التغليف هو المرجع لكل متصفح وقناة.
التشغيل الأول
- افتح peerd من شريط أدوات المتصفح.
- أنشئ الخزنة المحلية وافتحها. إلغاء القفل بكلمة المرور متاح دائماً. يعتمد إلغاء القفل بمفتاح الوصول (passkey) على دعم WebAuthn PRF في المتصفح والجهاز.
- افتح الإعدادات، ثم أضف مفتاح موفّر أو اختر موفّراً محلياً مدعوماً.
- اختر نموذجاً وابدأ محادثة.
فقط أسرار الخزنة وسجلات الأمان المحمية مغطاة بحدود تشفير الخزنة. تتبع حالة الإضافة المحلية الأخرى قواعد التخزين في وثائق الأمان.
البنية
تتكون الإضافة من خمس وحدات رئيسية. كل وحدة تعرض واجهتها العامة عبر
ملف index.js الخاص بها.
| الوحدة | الدور |
|---|---|
peerd-provider | محوّلات النماذج وتنسيق الاستجابات |
peerd-egress | الخزنة، وسياسة الشبكة، وقائمة الحظر، والتدقيق |
peerd-engine | تنفيذ WebVM وNotebook وApp والتنفيذ الرأسي (headless) |
peerd-runtime | حلقة الوكيل، والكيانات (actors)، والأدوات، والجلسات، والذاكرة، والأذونات |
peerd-distributed | شبكة ندّية (peer-to-peer) وتطبيقات dwapps للمعاينة فقط |
هيكل الإضافة موجود في background/، وoffscreen/، وsidepanel/،
وengine-tabs/، وpermissions/، وshared/، وأدلة الدعم ذات الصلة.
التطوير
الإضافة المُصدَّرة هي JavaScript خام مع وحدات ES وبدون تجميع (bundling) أو تحويل (transpilation). تُستخدم Bun للاختبارات والتوليد والتغليف وفحوصات الإصدارات.
bun install
bun run gen:dev
bun test ./tests
bun scripts/cdp/run-inbrowser-tests.mjs
bun run typecheck
bun run lint
bun run e2e:verify
bun run preflight
هناك ثلاثة أسطح اختبار:
- اختبارات Bun للمنطق الخالص.
- اختبارات داخل المتصفح لتكامل الإضافة والمتصفح.
- E2E مباشر على Chrome وتحقق بصري للتدفقات الكاملة.
لتغييرات الواجهة، شغّل bun run e2e:verify، وافحص
scripts/cdp/artifacts/result.json، وافحص لقطات الشاشة المولّدة.
يجب عدم تعديل الملفات المولّدة يدوياً. بشكل خاص،
يأتي extension/manifest.json وextension/shared/channel-config.js من
مصادر البيان والتغليف. يتحقق CI من عدم انحرافهما.
اقرأ CONTRIBUTING.md قبل تغيير الكود.
التوثيق
CLAUDE.md: بنية المشروع، والاتفاقيات، والوضع الحاليSECURITY.md: سياسة الأمان والإبلاغdocs/security/THREAT-MODEL.md: حدود الثقة والمخاطر المتبقيةdocs/security/RED-TEAM-RESULTS.md: تغطية الفريق الأحمرdocs/store/: تغليف المتجر، والأذونات، والخصوصية، وملاحظات المراجعينscripts/cdp/GALLERY.md: حالات E2E والبصرية
سجلات التصميم ضمن docs/design/ هي مقترحات تعكس نقطة زمنية محددة. تشرح
القرارات السابقة والعمل المخطط له. لا تتجاوز الكود الحالي.
التبعيات والترخيص
تبعيات وقت التشغيل مضمّنة (vendored) ضمن extension/vendor/. مصدرها،
وإصدارها، وترخيصها، وسجلات التكامل موجودة في ملفات SOURCE.txt المجاورة
وextension/vendor/vendor.lock.json.
peerd مرخّص بموجب رخصة Apache 2.0. تحتفظ المكونات المضمّنة بتراخيصها الخاصة. CheerpX هو وقت تشغيل مملوك توفّره Leaning Technologies ولا يشمله ترخيص Apache الخاص بـ peerd.