إنتقل إلى المحتوى الرئيسي

مرجع البيان

كل برنامج مصغر أو إضافة أو plugin يتطلب ملف manifest.json يصف بيانات الامتداد الوصفية والأذونات ونقاط الدخول. يتبع البيان مخطط البيان v2.

مثال بسيط​

أبسط بيان صالح لبرنامج مصغر:

{
"name": "my-app",
"version": "1.0.0",
"abi": 1,
"type": "mini-program",
"entry": "index.html",
"base_url": "https://cdn.example.com/my-app/"
}

مثال كامل​

بيان كامل بجميع الحقول الشائعة:

{
"name": "word-counter",
"version": "1.2.0",
"abi": 1,
"type": "mini-program",
"title": "عداد الكلمات",
"description": "عد الكلمات في سجل محادثاتك حسب الدور وتصور الاتجاهات",
"icon": "https://cdn.example.com/word-counter/icon.png",
"author": {
"name": "Jane Developer",
"url": "https://janedev.com"
},
"entry": "index.html",
"base_url": "https://cdn.example.com/word-counter/",
"permissions": ["storage", "chat:read", "ui:toast"],
"keywords": ["إحصائيات", "أداة مساعدة", "عدد-الكلمات"],
"license": "MIT",
"repository": "https://github.com/janedev/word-counter",
"min_platform_version": "1.0.0"
}

مرجع الحقول​

الحقول المطلوبة​

name​

اسم الحزمة الفريد. يُستخدم كمعرف داخلي لعزل التخزين وفحوصات التثبيت وبحوث السجل.

الخاصيةالقيمة
النوعstring
النمط^[a-z0-9-]+$ (أحرف صغيرة، أرقام، واصلات فقط)
الحد الأقصى للطول64 حرفاً
مطلوبنعم
"name": "word-counter"
حذر

يجب أن يكون الاسم فريداً عالمياً داخل السجل. اختر اسماً وصفياً. لا يمكنك تغييره بعد النشر دون إنشاء إدخال حزمة جديد.

version​

سلسلة الإصدار الدلالي. يجب أن تتبع تنسيق semver.

الخاصيةالقيمة
النوعstring
النمط^\d+\.\d+\.\d+ (رئيسي.ثانوي.تصحيح، إصدار أولي اختياري)
مطلوبنعم
"version": "1.0.0"

عند تحديث تطبيقك في السجل، قم بزيادة الإصدار في كل من البيان وإدخال registry/packages.json.

الحقول الموصى بها بشدة​

abi​

إصدار ABI (واجهة البناء الثنائية) الذي يستهدفه هذا البيان. يجب أن يكون 1 للمنصة الحالية.

الخاصيةالقيمة
النوعinteger
ثابت1
مطلوبتقنياً اختياري، لكن موصى به بشدة
"abi": 1

ترفض المنصة البيانات بقيم abi غير 1. إذا حُذف، تفترض المنصة ABI 1 لكن الإعلان الصريح مُفضل للتوافق المستقبلي.

type​

نوع الامتداد. يحدد بيئة التشغيل والقدرات المتاحة.

الخاصيةالقيمة
النوعstring
قيم مقبولة"plugin"، "addon"، "mini-program"
الافتراضي"plugin"
"type": "mini-program"
النوعوقت التشغيلسطح واجهة المستخدمالمتطلبات
pluginWASM (فتحات kernel 4-7)لا شيء (خطافات فقط)wasm + wasm_sha256
addonWASM أو JSفتحات واجهة مستخدم مُسمّاةwasm أو entry
mini-programiframe معزل (أصل null)لوحة كاملة (يستبدل المحادثة)entry + base_url

entry​

المسار إلى ملف HTML للمدخل، نسبي لـ base_url.

الخاصيةالقيمة
النوعstring
مطلوبنعم للبرامج المصغرة وإضافات HTML
"entry": "index.html"

تجلب المنصة {base_url}{entry} وقت التثبيت وتخزن HTML مؤقتاً للاستخدام دون اتصال.

base_url​

URL الأساسي لحل ملف المدخل ومسارات الأصول النسبية (الصور، السكربتات، أوراق الأنماط).

الخاصيةالقيمة
النوعstring (URI)
مطلوبنعم للبرامج المصغرة
"base_url": "https://cdn.example.com/word-counter/"

يتم حقن علامة <base href="{base_url}"> في iframe بحيث تحل المسارات النسبية في HTML الخاص بك بشكل صحيح.

معلومات

للحزم .ais المثبتة من رفع الملف، يُضبط base_url على local:// تلقائياً حيث يتم تضمين جميع الأصول.

حقول البيانات الوصفية الاختيارية​

title​

اسم العرض البشري المقروء الظاهر في متجر التطبيقات ومربع حوار الأذونات. إذا حُذف، يُستخدم name.

الخاصيةالقيمة
النوعstring
"title": "عداد الكلمات"

description​

وصف قصير لقائمة المتجر ومربع حوار الأذونات.

الخاصيةالقيمة
النوعstring
الحد الأقصى للطول256 حرفاً
"description": "عد الكلمات في سجل محادثاتك حسب الدور وتصور الاتجاهات"

icon​

URL لصورة أيقونة مربعة. الحجم الموصى به: 128x128 PNG. تُعرض في شبكة التطبيقات وقائمة المتجر.

الخاصيةالقيمة
النوعstring (URI)
"icon": "https://cdn.example.com/word-counter/icon.png"
تلميح

استخدم PNG مربع بحجم 128x128 بكسل بخلفية شفافة أو داكنة لتتناسب مع المظهر الداكن للمنصة. SVG مقبول أيضاً.

author​

معلومات المؤلف.

الخاصيةالقيمة
النوعobject
الخصائصname (نص، حد أقصى 100)، url (نص، URI)
"author": {
"name": "Jane Developer",
"url": "https://janedev.com"
}

license​

معرف ترخيص SPDX.

الخاصيةالقيمة
النوعstring
"license": "MIT"

repository​

URL مستودع المصدر.

الخاصيةالقيمة
النوعstring (URI)
"repository": "https://github.com/janedev/word-counter"

keywords​

كلمات مفتاحية للبحث للاكتشاف في متجر التطبيقات.

الخاصيةالقيمة
النوعstring[]
الحد الأقصى للعناصر10
الحد الأقصى لكل كلمة مفتاحية32 حرفاً
"keywords": ["إحصائيات", "أداة مساعدة", "عدد-الكلمات"]

min_platform_version​

الحد الأدنى لإصدار منصة AISCouncil المطلوب لتشغيل هذا الامتداد.

الخاصيةالقيمة
النوعstring (semver)
"min_platform_version": "1.0.0"

الأذونات​

permissions​

مصفوفة سلاسل الأذونات التي يطلبها الامتداد. يجب على المستخدم الموافقة عليها وقت التثبيت.

الخاصيةالقيمة
النوعstring[]
عناصر فريدةنعم
"permissions": ["storage", "chat:read", "ui:toast"]

الأذونات المتاحة​

الإذنالوصفممنوح تلقائياً؟
storageتخزين قيم-مفتاح معزل لكل تطبيقنعم (مسموح دائماً)
chat:readقراءة سجل المحادثة والاشتراك في الرسائل الجديدةلا
chat:writeإرسال رسائل كمستخدم (يحفز استجابات الذكاء الاصطناعي)لا
config:readقراءة إعدادات البوت النشط (الموفر، النموذج، موجه النظام)لا
config:writeتعديل إعدادات البوت النشطلا
auth:readقراءة معلومات المستخدم (الاسم، البريد، صورة الملف الشخصي) ومستوى الاشتراكلا
ui:toastإظهار إشعارات toast في واجهة المستخدم للمنصةلا
ui:modalإظهار مربعات حوار التأكيدلا
hooks:actionتسجيل وإطلاق أحداث الخطافاتلا
hooks:filterتسجيل خطافات التصفيةلا
network:fetchإجراء طلبات شبكية موسطة عبر المنصة (مستقبلاً)لا
secrets:syncقراءة وكتابة مفاتيح API للنقل بين الأجهزةلا
pages:publishنشر صفحات ويب إلى bcz.coلا
تحذير

اطلب فقط الأذونات التي يحتاجها تطبيقك فعلاً. كل إذن إضافي يزيد من عائق التثبيت -- المستخدمون أكثر عرضة للموافقة على تطبيقات بأذونات أقل.

حقول Plugin الخاصة​

تُستخدم هذه الحقول بواسطة plugins وإضافات WASM، وليس البرامج المصغرة.

wasm​

URL للثنائي WASM.

الخاصيةالقيمة
النوعstring (URI)
مطلوبلـ plugins
"wasm": "https://cdn.example.com/my-plugin/plugin.wasm"

wasm_sha256​

ملخص SHA-256 سداسي عشري للثنائي WASM للتحقق من السلامة.

الخاصيةالقيمة
النوعstring
النمط^[0-9a-f]{64}$
مطلوبلـ plugins
"wasm_sha256": "a1b2c3d4e5f6..."

segment_size​

حجم قطعة ذاكرة وحدة WASM بالبايت.

الخاصيةالقيمة
النوعinteger
الحد الأدنى0
"segment_size": 4194304

الحقول المتقدمة​

pages​

مسارات صفحات إضافية للبرامج المصغرة متعددة الصفحات.

الخاصيةالقيمة
النوعstring[]
"pages": ["settings.html", "about.html"]

hooks​

تسجيلات الخطافات لـ plugins والإضافات. كل خطاف له اسم وأولوية اختيارية.

الخاصيةالقيمة
النوعobject[]
"hooks": [
{ "name": "chat:before-send", "priority": 50 },
{ "name": "message:filter", "priority": 100 }
]

يجب أن تتطابق أسماء الخطافات مع ^[a-z][a-z0-9_.:-]*$ وأن تكون بحد أقصى 128 حرفاً. تتراوح الأولوية من 0 (الأقدم) إلى 999 (الأحدث)، الافتراضي 100.

settings​

إعدادات قابلة للتكوين من قبل المستخدم تظهر في واجهة إعدادات المنصة.

الخاصيةالقيمة
النوعobject (المفاتيح هي أسماء الإعدادات، القيم هي تعريفات الإعدادات)
"settings": {
"theme": {
"type": "select",
"label": "مظهر الألوان",
"default": "dark",
"options": [
{ "value": "dark", "label": "داكن" },
{ "value": "light", "label": "فاتح" }
]
},
"maxMessages": {
"type": "number",
"label": "الحد الأقصى للرسائل للتحليل",
"default": 500,
"description": "تحديد عدد رسائل المحادثة المحملة"
},
"autoRefresh": {
"type": "boolean",
"label": "تحديث تلقائي عند الفتح",
"default": true
}
}

أنواع الإعدادات: string، number، boolean، select.

mcp_tools​

إعلانات أدوات MCP (بروتوكول سياق النموذج) التي يوفرها هذا الامتداد.

الخاصيةالقيمة
النوعobject[]
"mcp_tools": [
{
"name": "count-words",
"description": "عد الكلمات في النص المحدد",
"inputSchema": {
"type": "object",
"properties": {
"text": { "type": "string" }
},
"required": ["text"]
}
}
]

متطلبات خاصة بالنوع​

الحقلPluginإضافةبرنامج مصغر
nameمطلوبمطلوبمطلوب
versionمطلوبمطلوبمطلوب
type"plugin""addon""mini-program"
wasmمطلوبمطلوب إذا لم يكن هناك entryغير مستخدم
wasm_sha256مطلوبمطلوب عند استخدام wasmغير مستخدم
entryغير مستخدممطلوب إذا لم يكن هناك wasmمطلوب
base_urlغير مستخدماختياريمطلوب

التحقق​

استخدم سكربت التحقق المدمج للتحقق من بيانك قبل النشر:

# التحقق من ملف بيان واحد
python3 registry/validate.py manifest path/to/manifest.json

يتحقق المدقق من:

  • الحقول المطلوبة موجودة
  • name يطابق النمط ^[a-z0-9-]+$ وبحد أقصى 64 حرفاً
  • version هو semver صالح
  • abi هو 1 (إذا كان موجوداً)
  • type هو واحد من plugin، addon، mini-program
  • الأذونات من المجموعة المسموحة
  • الحقول المطلوبة الخاصة بالنوع موجودة (مثلاً، entry للبرامج المصغرة)
  • لا حقول غير معروفة (المخطط صارم مع additionalProperties: false)
تلميح

مخطط JSON منشور في registry/manifest-schema.json. يمكنك استخدامه مع أي مدقق JSON Schema للتكامل مع IDE أو خطوط CI.


مرجع المخطط​

مخطط البيان مُعرّف كـ JSON Schema (Draft 2020-12) ومتاح في:

https://aiscouncil.com/schema/manifest/v2

ارجع إليه في بيانك للإكمال التلقائي في المحرر:

{
"$schema": "https://aiscouncil.com/schema/manifest/v2",
"name": "my-app",
"version": "1.0.0"
}

معظم المحررات (VS Code، JetBrains، إلخ) ستوفر الإكمال التلقائي والتحقق عند وجود الحقل $schema.