Using ClawHub

انتشار

انتشار

انتشار در ClawHub محدود به مالک است: هر انتشار یک ناشر را هدف می‌گیرد، و سرور تصمیم می‌گیرد که آیا کاربر واردشده مجاز است آنجا منتشر کند یا نه.

مالکان

مالک، شناسهٔ ناشر در ClawHub است، مانند @alice یا @openclaw. مالکان شخصی برای کاربران ساخته می‌شوند. مالکان سازمانی می‌توانند چندین عضو داشته باشند.

وقتی منتشر می‌کنید، یا از مالک شخصی خود استفاده می‌کنید یا یک مالک سازمانی را انتخاب می‌کنید که در آن دسترسی ناشر دارید.

Skills

Skills از یک پوشهٔ Skills منتشر می‌شوند. صفحهٔ عمومی این است:

https://clawhub.ai/<owner>/<slug>

نمونه:

https://clawhub.ai/alice/review-helper

درخواست انتشار شامل مالک انتخاب‌شده، slug، نسخه، تغییرات نسخه، و فایل‌ها است. سرور پیش از ساختن انتشار بررسی می‌کند که کنشگر بتواند به‌عنوان آن مالک منتشر کند.

برای انتقال یک Skills موجود به مالک دیگر هنگام انتشار نسخهٔ جدید، مالک جدید را انتخاب کنید و انتقال مالکیت را صریحا تایید کنید. در CLI/API، مالک هدف را همراه با موافقت با مهاجرت وارد کنید:

clawhub skill publish ./review-helper --owner openclaw --migrate-owner --version 1.2.0

مهاجرت مالک Skills به دسترسی مدیر یا مالک در هر دو مالک فعلی و مالک مقصد نیاز دارد. این کار Skills، تاریخچهٔ نسخه‌ها، آمار، دیدگاه‌ها، forkها، aliasها، و مسیر ممیزی را حفظ می‌کند؛ URLهای مالک قدیمی از طریق مسیر alias/redirect ادامه پیدا می‌کنند.

Pluginها

Pluginها از نام‌های بسته به سبک npm استفاده می‌کنند. نام‌های بستهٔ scoped، مالک را در بخش اول نام شامل می‌شوند:

@owner/package-name

scope باید با مالک انتشار انتخاب‌شده مطابقت داشته باشد. اگر نام بستهٔ شما @openclaw/dronzer است، فقط می‌تواند به‌عنوان @openclaw منتشر شود. اگر به‌عنوان @vintageayu منتشر می‌کنید، نام بسته را به @vintageayu/dronzer تغییر دهید.

این کار جلوی بسته‌ای را می‌گیرد که بخواهد namespace سازمانی‌ای را ادعا کند که ناشر کنترلی روی آن ندارد.

جریان انتشار

  1. UI، CLI، یا گردش‌کار GitHub فرادادهٔ بسته و فایل‌ها را جمع‌آوری می‌کند.
  2. درخواست انتشار با مالک انتخاب‌شده به ClawHub فرستاده می‌شود.
  3. سرور مجوزهای مالک، scope بسته، نام بسته، نسخه، محدودیت‌های فایل، و فرادادهٔ منبع را اعتبارسنجی می‌کند.
  4. ClawHub انتشار را ذخیره می‌کند و بررسی‌های امنیتی خودکار را شروع می‌کند.
  5. انتشارهای جدید تا پایان بازبینی و راستی‌آزمایی از سطوح نصب/دانلود عادی پنهان می‌مانند.

اگر اعتبارسنجی شکست بخورد، انتشار ساخته نمی‌شود.

پرسش‌های متداول

scope بسته باید با مالک انتخاب‌شده مطابقت داشته باشد

اگر scope بسته و مالک انتخاب‌شده مطابقت نداشته باشند، ClawHub انتشار را رد می‌کند:

Package scope "@openclaw" must match selected owner "@vintageayu".
Publish as "@openclaw" or rename this package to "@vintageayu/dronzer".

برای رفع آن، یا مالکی را انتخاب کنید که scope بسته نام برده است، یا نام بسته را طوری تغییر دهید که scope با مالکی که می‌توانید به‌عنوان آن منتشر کنید مطابقت داشته باشد.

اگر نام بسته از قبل scope درست را دارد اما بسته متعلق به ناشر اشتباه است، به‌جای آن مالکیت را منتقل کنید:

clawhub package transfer @opik/opik-openclaw --to opik

فقط وقتی از انتقال بسته یا Skills استفاده کنید که به هر دو مالک فعلی و ناشر مقصد دسترسی مدیر دارید. انتقال بسته به شما اجازه نمی‌دهد در scopeی منتشر کنید که نمی‌توانید مدیریت کنید.

این کار از namespaceهای سازمانی محافظت می‌کند. بسته‌ای با نام @openclaw/dronzer، namespace @openclaw را ادعا می‌کند، بنابراین فقط ناشرانی که به مالک @openclaw دسترسی دارند می‌توانند آن را منتشر کنند.