---
read_when:
    - clawhub package validate را اجرا کرده‌اید و باید یافته‌های Plugin را برطرف کنید
    - ClawHub انتشار یک بستهٔ Plugin را رد کرد یا دربارهٔ آن هشدار داد
    - پیش از انتشار، فرادادهٔ بستهٔ Plugin را به‌روزرسانی می‌کنید
summary: رفع یافته‌های اعتبارسنجی بستهٔ Plugin در ClawHub پیش از انتشار
title: اصلاحات اعتبارسنجی Plugin
x-i18n:
    generated_at: "2026-07-27T15:14:04Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 2cb869e41c9a9f1c0725f514f6b48095eb3838bf61aaf06c2474a18192f0e819
    source_path: clawhub/plugin-validation-fixes.md
    workflow: 16
---

# اصلاحات اعتبارسنجی Plugin

ClawHub بسته‌های Plugin را پیش از انتشار اعتبارسنجی می‌کند و همچنین می‌تواند یافته‌های حاصل از
اسکن‌های خودکار بسته را نمایش دهد. این صفحه یافته‌های مربوط به نویسنده را پوشش می‌دهد؛ یعنی
یافته‌هایی که نویسنده Plugin می‌تواند در فرادادهٔ بسته، مانیفست، importهای SDK
یا آرتیفکت منتشرشدهٔ خود برطرف کند.

این صفحه یافته‌های داخلی پوشش Plugin Inspector را شامل نمی‌شود. اگر گزارشی کامل
حاوی کدهای نگه‌داری اسکنر بدون راهنمای رفع مشکل برای نویسنده باشد، آن موارد
برای نگه‌دارندگان OpenClaw هستند، نه نویسندگان Plugin.

پس از اعمال هر اصلاح، دوباره اجرا کنید:

```bash
clawhub package validate <path-to-plugin>
```

## یافته‌های مربوط به نویسنده

| کد                                    | از اینجا شروع کنید                                                                                                                  |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `package-json-missing`                  | [افزودن فرادادهٔ بسته](/fa/clawhub/plugin-validation-fixes#package-json-missing)                                                   |
| `package-openclaw-metadata-missing`     | [افزودن بلوک openclaw بسته](/fa/clawhub/plugin-validation-fixes#package-openclaw-metadata-missing)                            |
| `package-openclaw-entry-missing`        | [اعلام نقاط ورود بستهٔ OpenClaw](/fa/clawhub/plugin-validation-fixes#package-openclaw-entry-missing)                         |
| `package-entrypoint-missing`            | [انتشار نقطهٔ ورود اعلام‌شده](/fa/clawhub/plugin-validation-fixes#package-entrypoint-missing)                                  |
| `package-install-metadata-incomplete`   | [تکمیل فرادادهٔ نصب](/fa/clawhub/plugin-validation-fixes#package-install-metadata-incomplete)                               |
| `package-plugin-api-compat-missing`     | [اعلام سازگاری API ‏Plugin](/fa/clawhub/plugin-validation-fixes#package-plugin-api-compat-missing)                          |
| `package-min-host-version-drift`        | [هم‌تراز کردن حداقل نسخهٔ میزبان](/fa/clawhub/plugin-validation-fixes#package-min-host-version-drift)                                   |
| `package-manifest-version-drift`        | [هم‌تراز کردن نسخه‌های بسته و مانیفست](/fa/clawhub/plugin-validation-fixes#package-manifest-version-drift)                          |
| `package-openclaw-unsupported-metadata` | [حذف فرادادهٔ پشتیبانی‌نشدهٔ بستهٔ OpenClaw](/fa/clawhub/plugin-validation-fixes#package-openclaw-unsupported-metadata)          |
| `package-npm-pack-unavailable`          | [قابل‌بسته‌بندی کردن آرتیفکت npm](/fa/clawhub/plugin-validation-fixes#package-npm-pack-unavailable)                                 |
| `package-npm-pack-entrypoint-missing`   | [گنجاندن نقاط ورود در خروجی بسته‌بندی npm](/fa/clawhub/plugin-validation-fixes#package-npm-pack-entrypoint-missing)                  |
| `package-npm-pack-metadata-missing`     | [گنجاندن فراداده در خروجی بسته‌بندی npm](/fa/clawhub/plugin-validation-fixes#package-npm-pack-metadata-missing)                       |
| `manifest-name-missing`                 | [افزودن نام نمایشی مانیفست](/fa/clawhub/plugin-validation-fixes#manifest-name-missing)                                           |
| `manifest-unknown-fields`               | [حذف فیلدهای پشتیبانی‌نشدهٔ مانیفست](/fa/clawhub/plugin-validation-fixes#manifest-unknown-fields)                                  |
| `manifest-unknown-contracts`            | [حذف کلیدهای قرارداد پشتیبانی‌نشده](/fa/clawhub/plugin-validation-fixes#manifest-unknown-contracts)                                 |
| `legacy-root-sdk-import`                | [جایگزینی importهای ریشهٔ SDK](/fa/clawhub/plugin-validation-fixes#legacy-root-sdk-import)                                             |
| `reserved-sdk-import`                   | [حذف importهای رزروشدهٔ SDK](/fa/clawhub/plugin-validation-fixes#reserved-sdk-import)                                             |
| `sdk-load-session-store`                | [جایگزینی دسترسی به کل مخزن نشست](/fa/clawhub/plugin-validation-fixes#sdk-load-session-store)                                   |
| `sdk-session-store-write`               | [جایگزینی نوشتن در کل مخزن نشست](/fa/clawhub/plugin-validation-fixes#sdk-session-store-write)                                  |
| `sdk-session-file-helper`               | [جایگزینی توابع کمکی مسیر فایل نشست](/fa/clawhub/plugin-validation-fixes#sdk-session-file-helper)                                   |
| `sdk-session-transcript-file-target`    | [جایگزینی مقصدهای قدیمی فایل رونوشت](/fa/clawhub/plugin-validation-fixes#sdk-session-transcript-file-target)                   |
| `sdk-session-transcript-low-level`      | [جایگزینی توابع کمکی سطح‌پایین رونوشت](/fa/clawhub/plugin-validation-fixes#sdk-session-transcript-low-level)                       |
| `legacy-before-agent-start`             | [جایگزینی before_agent_start](/fa/clawhub/plugin-validation-fixes#legacy-before-agent-start)                                        |
| `provider-auth-env-vars`                | [انتقال متغیرهای محیطی ارائه‌دهنده به فرادادهٔ راه‌اندازی](/fa/clawhub/plugin-validation-fixes#provider-auth-env-vars)                             |
| `channel-env-vars`                      | [بازتاب متغیرهای محیطی کانال در فرادادهٔ کنونی](/fa/clawhub/plugin-validation-fixes#channel-env-vars)                                |
| `security-manifest-schema-unavailable`  | [حذف ارجاع‌های در دسترس نبودن شِمای مانیفست امنیتی](/fa/clawhub/plugin-validation-fixes#security-manifest-schema-unavailable) |
| `unrecognized-security-manifest`        | [حذف فایل‌های پشتیبانی‌نشدهٔ مانیفست امنیتی](/fa/clawhub/plugin-validation-fixes#unrecognized-security-manifest)                   |

## فرادادهٔ بسته

### package-json-missing

ریشهٔ بسته شامل `package.json` نیست، بنابراین ClawHub نمی‌تواند
بستهٔ npm، نسخه، نقاط ورود یا فرادادهٔ OpenClaw را شناسایی کند.

- `package.json` را با `name`، `version` و `type` اضافه کنید.
- هنگامی که بسته یک Plugin ‏OpenClaw ارائه می‌کند، یک بلوک `openclaw` اضافه کنید.
- برای نمونه‌ای حداقلی از بسته، از [ساخت Pluginها](/fa/plugins/building-plugins)
  و برای تفکیک بسته از مانیفست، از [مانیفست Plugin](/fa/plugins/manifest#manifest-versus-packagejson)
  استفاده کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-openclaw-metadata-missing

بسته دارای `package.json` است، اما فرادادهٔ بستهٔ
OpenClaw را اعلام نمی‌کند.

- `package.json#openclaw` را اضافه کنید.
- فرادادهٔ نقطهٔ ورود مانند `openclaw.extensions` یا
  `openclaw.runtimeExtensions` را وارد کنید.
- اگر بسته از طریق ClawHub منتشر یا نصب خواهد شد، فرادادهٔ سازگاری و نصب را اضافه کنید.
- به [فیلدهای package.json مؤثر بر کشف](/fa/plugins/manifest#packagejson-fields-that-affect-discovery) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-openclaw-entry-missing

فرادادهٔ بسته وجود دارد، اما نقطهٔ ورود زمان اجرای OpenClaw را
اعلام نمی‌کند.

- برای نقاط ورود بومی Plugin، ‏`openclaw.extensions` را اضافه کنید.
- هنگامی که بستهٔ منتشرشده باید JavaScript ساخته‌شده را بارگذاری کند،
  `openclaw.runtimeExtensions` را اضافه کنید.
- همهٔ مسیرهای نقطهٔ ورود را داخل پوشهٔ بسته نگه دارید.
- به [نقاط ورود Plugin](/fa/plugins/sdk-entrypoints) و
  [فیلدهای package.json مؤثر بر کشف](/fa/plugins/manifest#packagejson-fields-that-affect-discovery) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-entrypoint-missing

بسته یک نقطهٔ ورود OpenClaw را اعلام می‌کند، اما فایل ارجاع‌شده
در بسته‌ای که اعتبارسنجی می‌شود وجود ندارد.

- هر مسیر را در `openclaw.extensions`، `openclaw.runtimeExtensions`،
  `openclaw.setupEntry` و `openclaw.runtimeSetupEntry` بررسی کنید.
- اگر نقطهٔ ورود در `dist` تولید می‌شود، بسته را بسازید.
- اگر نقطهٔ ورود جابه‌جا شده است، فراداده را به‌روزرسانی کنید.
- به [نقاط ورود Plugin](/fa/plugins/sdk-entrypoints) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-install-metadata-incomplete

ClawHub نمی‌تواند تشخیص دهد بسته چگونه باید نصب یا به‌روزرسانی شود.

- `openclaw.install` را با منبع نصب پشتیبانی‌شده، مانند
  `clawhubSpec`، `npmSpec` یا `localPath` تکمیل کنید.
- هنگامی که بیش از یک منبع نصب در دسترس است،
  `openclaw.install.defaultChoice` را تنظیم کنید.
- برای حداقل نسخهٔ میزبان OpenClaw از `openclaw.install.minHostVersion` استفاده کنید.
- به [فیلدهای package.json مؤثر بر کشف](/fa/plugins/manifest#packagejson-fields-that-affect-discovery) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-plugin-api-compat-missing

بسته محدودهٔ API ‏Plugin ‏OpenClaw مورد پشتیبانی خود را اعلام نمی‌کند.

- `openclaw.compat.pluginApi` را به `package.json` اضافه کنید.
- از نسخهٔ API ‏Plugin ‏OpenClaw یا کف semver که بسته را بر مبنای آن ساخته و آزمایش کرده‌اید
  استفاده کنید.
- این مورد را از نسخهٔ بسته جدا نگه دارید. نسخهٔ بسته انتشار Plugin را توصیف می‌کند؛
  `openclaw.compat.pluginApi` قرارداد API میزبان را توصیف می‌کند.
- به [فیلدهای package.json مؤثر بر کشف](/fa/plugins/manifest#packagejson-fields-that-affect-discovery) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-min-host-version-drift

حداقل نسخهٔ میزبان بسته با فرادادهٔ نسخهٔ OpenClaw که
بسته بر مبنای آن ساخته شده است مطابقت ندارد.

- `openclaw.install.minHostVersion` را بررسی کنید.
- هرگونه فرادادهٔ ساخت OpenClaw در بسته، مانند نسخهٔ OpenClaw
  استفاده‌شده هنگام انتشار، را بررسی کنید.
- حداقل نسخهٔ میزبان را با محدودهٔ نسخهٔ میزبانی که بسته
  واقعاً پشتیبانی می‌کند هم‌تراز کنید.
- به [فیلدهای package.json مؤثر بر کشف](/fa/plugins/manifest#packagejson-fields-that-affect-discovery) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-manifest-version-drift

نسخهٔ بسته و نسخهٔ مانیفست Plugin با یکدیگر مغایرت دارند.

- `package.json#version` را به‌عنوان نسخهٔ انتشار بسته ترجیح دهید.
- اگر `openclaw.plugin.json` نیز دارای `version` است، آن را برای مطابقت به‌روزرسانی کنید یا
  وقتی فرادادهٔ بسته مرجع اصلی است، فرادادهٔ قدیمی نسخهٔ مانیفست را حذف کنید.
- پس از تغییر فرادادهٔ منتشرشده، نسخهٔ جدیدی از بسته منتشر کنید.
- به [مانیفست Plugin](/fa/plugins/manifest) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-openclaw-unsupported-metadata

بلوک `package.json#openclaw` حاوی فیلدهایی است که به‌عنوان
فرادادهٔ بستهٔ OpenClaw پشتیبانی نمی‌شوند.

- فیلدهای پشتیبانی‌نشده مانند `openclaw.bundle` را حذف کنید.
- فرادادهٔ Plugin بومی را در `openclaw.plugin.json` نگه دارید.
- نقاط ورود بسته، فرادادهٔ سازگاری، نصب، راه‌اندازی و کاتالوگ را
  در فیلدهای پشتیبانی‌شدهٔ `package.json#openclaw` نگه دارید.
- به [فیلدهای package.json مؤثر بر کشف](/fa/plugins/manifest#packagejson-fields-that-affect-discovery) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

## آرتیفکت منتشرشده

### package-npm-pack-unavailable

بسته را نمی‌توان در آرتیفکتی بسته‌بندی کرد که ClawHub آن را بازرسی یا
منتشر می‌کند.

- `npm pack --dry-run` را از ریشهٔ بسته اجرا کنید.
- فرادادهٔ نامعتبر بسته، اسکریپت‌های چرخهٔ عمر خراب یا ورودی‌های files را که
  باعث شکست بسته‌بندی می‌شوند، اصلاح کنید.
- اگر این بسته برای انتشار عمومی در نظر گرفته شده است، `private: true` را حذف کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-npm-pack-entrypoint-missing

بسته قابل‌بسته‌بندی است، اما آرتیفکت بسته‌بندی‌شده فایل‌های
نقطهٔ ورود اعلام‌شده در `package.json#openclaw` را شامل نمی‌شود.

- `npm pack --dry-run` را اجرا و فایل‌هایی را که گنجانده خواهند شد بررسی کنید.
- پیش از بسته‌بندی، نقاط ورود تولیدشده را بسازید.
- `files`، `.npmignore` یا خروجی ساخت را به‌روزرسانی کنید تا نقاط ورود اعلام‌شده
  گنجانده شوند.
- به [نقاط ورود Plugin](/fa/plugins/sdk-entrypoints) مراجعه کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### package-npm-pack-metadata-missing

آرتیفکت بسته‌بندی‌شده فاقد فرادادهٔ OpenClaw موجود در بستهٔ
منبع شما است.

- `npm pack --dry-run` را اجرا کنید و فایل‌های فرادادهٔ موجود را بررسی کنید.
- مطمئن شوید `package.json` بلوک `openclaw` را در مصنوع بسته‌بندی‌شده شامل می‌شود.
- هنگامی که بسته یک plugin بومی OpenClaw است، مطمئن شوید
  `openclaw.plugin.json` در آن گنجانده شده است.
- `files` یا `.npmignore` را به‌روزرسانی کنید تا فرادادهٔ بسته مستثنا نشود.
- [ساخت pluginها](/fa/plugins/building-plugins) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

## فرادادهٔ مانیفست

### manifest-name-missing

مانیفست plugin بومی شامل نام نمایشی نیست.

- یک فیلد غیرخالی `name` به `openclaw.plugin.json` اضافه کنید.
- `name` را خوانا برای انسان نگه دارید و `id` را به‌عنوان شناسهٔ پایدار ماشین حفظ کنید.
- [مانیفست Plugin](/fa/plugins/manifest) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### manifest-unknown-fields

مانیفست plugin دارای فیلدهای سطح بالایی است که OpenClaw از آن‌ها پشتیبانی نمی‌کند.

- هر فیلد سطح بالا را با
  [مرجع فیلدهای مانیفست](/fa/plugins/manifest#top-level-field-reference) مقایسه کنید.
- فیلدهای سفارشی را از `openclaw.plugin.json` حذف کنید.
- فرادادهٔ بسته یا نصب را به‌جای مانیفست، به فیلدهای پشتیبانی‌شدهٔ `package.json#openclaw`
  منتقل کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### manifest-unknown-contracts

مانیفست کلیدهای پشتیبانی‌نشده‌ای را درون `contracts` اعلام می‌کند.

- هر کلید زیر `contracts` را با
  [مرجع قراردادها](/fa/plugins/manifest#contracts-reference) مقایسه کنید.
- کلیدهای قرارداد پشتیبانی‌نشده را حذف کنید.
- رفتار زمان اجرا را به کد ثبت plugin منتقل کنید و `contracts` را
  به فرادادهٔ ایستای مالکیت قابلیت محدود نگه دارید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

## مهاجرت SDK و سازگاری

### legacy-root-sdk-import

plugin از barrel ریشهٔ منسوخ‌شدهٔ SDK وارد می‌کند:
`openclaw/plugin-sdk`.

- واردسازی‌های barrel ریشه را با واردسازی‌های متمرکز از زیرمسیرهای عمومی جایگزین کنید.
- برای `definePluginEntry` از `openclaw/plugin-sdk/plugin-entry` استفاده کنید.
- برای کمک‌تابع‌های نقطهٔ ورود کانال از `openclaw/plugin-sdk/channel-core` استفاده کنید.
- برای یافتن واردسازی محدود، از [قراردادهای واردسازی](/fa/plugins/building-plugins#import-conventions) و
  [زیرمسیرهای SDK مربوط به Plugin](/fa/plugins/sdk-subpaths) استفاده کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### reserved-sdk-import

plugin یک مسیر SDK را وارد می‌کند که برای pluginهای همراه یا سازگاری داخلی
رزرو شده است.

- واردسازی‌های رزروشدهٔ SDK داخلی OpenClaw را با زیرمسیرهای عمومی و مستندشدهٔ
  `openclaw/plugin-sdk/*` جایگزین کنید.
- اگر این رفتار SDK عمومی ندارد، کمک‌تابع را درون بستهٔ خود نگه دارید یا
  یک API عمومی OpenClaw درخواست کنید.
- برای انتخاب واردسازی پشتیبانی‌شده، از [زیرمسیرهای SDK مربوط به Plugin](/fa/plugins/sdk-subpaths) و
  [مهاجرت SDK](/fa/plugins/sdk-migration) استفاده کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### sdk-load-session-store

plugin همچنان از کمک‌تابع منسوخ‌شدهٔ کل مخزن نشست
`loadSessionStore` استفاده می‌کند.

- هنگام خواندن وضعیت نشست، از `getSessionEntry(...)` یا `listSessionEntries(...)`
  استفاده کنید.
- هنگام نوشتن وضعیت نشست، از `patchSessionEntry(...)` یا `upsertSessionEntry(...)`
  استفاده کنید.
- از بارگذاری، تغییر و ذخیره‌سازی کل شیء مخزن نشست خودداری کنید.
- `loadSessionStore(...)` را فقط تا زمانی نگه دارید که محدودهٔ سازگاری اعلام‌شدهٔ شما
  همچنان از نسخه‌های قدیمی‌تر OpenClaw که به آن نیاز دارند پشتیبانی می‌کند.
- [API زمان اجرا](/fa/plugins/sdk-runtime#agent-session-state) و
  [زیرمسیرهای SDK مربوط به Plugin](/fa/plugins/sdk-subpaths) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### sdk-session-store-write

plugin همچنان از یک کمک‌تابع منسوخ‌شدهٔ نوشتن کل مخزن نشست مانند
`saveSessionStore` یا `updateSessionStore` استفاده می‌کند.

- هنگام به‌روزرسانی فیلدهای یک ورودی نشست موجود، از `patchSessionEntry(...)`
  استفاده کنید.
- هنگام جایگزینی یا ایجاد یک ورودی نشست، از `upsertSessionEntry(...)` استفاده کنید.
- از بارگذاری، تغییر و ذخیره‌سازی کل شیء مخزن نشست خودداری کنید.
- کمک‌تابع‌های نوشتن کل مخزن را فقط تا زمانی نگه دارید که محدودهٔ سازگاری اعلام‌شدهٔ شما
  همچنان از نسخه‌های قدیمی‌تر OpenClaw که به آن‌ها نیاز دارند پشتیبانی می‌کند.
- [API زمان اجرا](/fa/plugins/sdk-runtime#agent-session-state) و
  [زیرمسیرهای SDK مربوط به Plugin](/fa/plugins/sdk-subpaths) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### sdk-session-file-helper

plugin همچنان از کمک‌تابع‌های منسوخ‌شدهٔ مسیر فایل نشست مانند
`resolveSessionFilePath` یا `resolveAndPersistSessionFile` استفاده می‌کند.

- برای خواندن فرادادهٔ نشست بر اساس هویت عامل و نشست، از `getSessionEntry(...)`
  استفاده کنید.
- برای ماندگار کردن فرادادهٔ نشست، از `patchSessionEntry(...)` یا `upsertSessionEntry(...)`
  استفاده کنید.
- هنگامی که کد یک عملیات رونوشت را آماده می‌کند، از هویت رونوشت یا کمک‌تابع‌های هدف
  استفاده کنید.
- مسیرهای فایل رونوشت قدیمی را ماندگار نکنید و به آن‌ها وابسته نباشید.
- [API زمان اجرا](/fa/plugins/sdk-runtime#agent-session-state) و
  [زیرمسیرهای SDK مربوط به Plugin](/fa/plugins/sdk-subpaths) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### sdk-session-transcript-file-target

plugin همچنان از کمک‌تابع منسوخ‌شدهٔ هدف فایل رونوشت
`resolveSessionTranscriptLegacyFileTarget` استفاده می‌کند.

- هنگامی که کد فقط به هویت عمومی نشست نیاز دارد، از `resolveSessionTranscriptIdentity(...)`
  استفاده کنید.
- هنگامی که کد به یک هدف ساخت‌یافته برای عملیات رونوشت نیاز دارد، از `resolveSessionTranscriptTarget(...)`
  استفاده کنید.
- از خواندن یا ساخت مستقیم هدف‌های قدیمی فایل رونوشت خودداری کنید.
- کمک‌تابع قدیمی را فقط تا زمانی نگه دارید که محدودهٔ سازگاری اعلام‌شدهٔ شما همچنان
  از نسخه‌های قدیمی‌تر OpenClaw که به آن نیاز دارند پشتیبانی می‌کند.
- [API زمان اجرا](/fa/plugins/sdk-runtime#agent-session-state) و
  [زیرمسیرهای SDK مربوط به Plugin](/fa/plugins/sdk-subpaths) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### sdk-session-transcript-low-level

plugin همچنان از کمک‌تابع‌های سطح پایین منسوخ‌شدهٔ رونوشت مانند
`appendSessionTranscriptMessage` یا `emitSessionTranscriptUpdate` استفاده می‌کند.

- برای افزودن به رونوشت از `appendSessionTranscriptMessageByIdentity(...)` استفاده کنید.
- برای اعلان‌های به‌روزرسانی رونوشت از `publishSessionTranscriptUpdateByIdentity(...)`
  استفاده کنید.
- سطح ساخت‌یافتهٔ زمان اجرای رونوشت را ترجیح دهید تا OpenClaw بتواند
  مرزهای صحیح تراکنش و مدیریت هویت را اعمال کند.
- کمک‌تابع‌های سطح پایین رونوشت را فقط تا زمانی نگه دارید که محدودهٔ سازگاری اعلام‌شدهٔ شما
  همچنان از نسخه‌های قدیمی‌تر OpenClaw که به آن‌ها نیاز دارند پشتیبانی می‌کند.
- [API زمان اجرا](/fa/plugins/sdk-runtime#agent-session-state) و
  [زیرمسیرهای SDK مربوط به Plugin](/fa/plugins/sdk-subpaths) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### legacy-before-agent-start

plugin همچنان از hook قدیمی `before_agent_start` استفاده می‌کند.

- کارهای بازنویسی مدل یا ارائه‌دهنده را به `before_model_resolve` منتقل کنید.
- کارهای تغییر prompt یا context را به `before_prompt_build` منتقل کنید.
- `before_agent_start` را فقط تا زمانی نگه دارید که محدودهٔ سازگاری اعلام‌شدهٔ شما همچنان
  از نسخه‌های قدیمی‌تر OpenClaw که به آن نیاز دارند پشتیبانی می‌کند.
- [Hookها](/fa/plugins/hooks) و
  [سازگاری Plugin](/fa/plugins/compatibility) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### provider-auth-env-vars

مانیفست همچنان از فرادادهٔ قدیمی احراز هویت ارائه‌دهندهٔ `providerAuthEnvVars` استفاده می‌کند.

- فرادادهٔ متغیر محیطی ارائه‌دهنده را در `setup.providers[].envVars` نیز بازتاب دهید.
- `providerAuthEnvVars` را فقط به‌عنوان فرادادهٔ سازگاری نگه دارید، مادامی که محدودهٔ پشتیبانی‌شدهٔ
  OpenClaw شما همچنان به آن نیاز دارد.
- [مرجع راه‌اندازی](/fa/plugins/manifest#setup-reference) و
  [مهاجرت SDK](/fa/plugins/sdk-migration) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### channel-env-vars

مانیفست از فرادادهٔ قدیمی یا پیشین متغیر محیطی کانال، بدون فرادادهٔ کنونی
راه‌اندازی یا پیکربندی مورد انتظار ClawHub استفاده می‌کند.

- فرادادهٔ متغیر محیطی کانال را اعلانی نگه دارید تا OpenClaw بتواند وضعیت راه‌اندازی را
  بدون بارگذاری زمان اجرای کانال بررسی کند.
- راه‌اندازی کانال مبتنی بر متغیر محیطی را در فرادادهٔ کنونی راه‌اندازی، پیکربندی کانال یا
  کانال بسته که شکل plugin شما استفاده می‌کند نیز بازتاب دهید.
- `channelEnvVars` را فقط به‌عنوان فرادادهٔ سازگاری نگه دارید، مادامی که نسخه‌های قدیمی‌تر پشتیبانی‌شدهٔ
  OpenClaw همچنان به آن نیاز دارند.
- [مانیفست Plugin](/fa/plugins/manifest) و
  [pluginهای کانال](/plugins/sdk-channel-plugins) را ببینید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

## مانیفست امنیتی

### security-manifest-schema-unavailable

بسته، `openclaw.security.json` را با ارجاعی به schema ارائه می‌کند که ClawHub
آن را در دسترس تشخیص نمی‌دهد.

- اگر URL مربوط به schema فقط جنبهٔ توصیه‌ای دارد، آن را حذف کنید.
- فقط پس از انتشار یک schema نسخه‌بندی‌شده توسط OpenClaw، از آن استفاده کنید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

### unrecognized-security-manifest

بسته یک فایل مانیفست امنیتی پشتیبانی‌نشده ارائه می‌کند.

- `openclaw.security.json` را حذف کنید تا زمانی که OpenClaw یک schema نسخه‌بندی‌شدهٔ مانیفست امنیتی
  و رفتار ClawHub را مستند کند.
- تا زمان ایجاد قرارداد مانیفست، رفتار حساس به امنیت را در مستندات عمومی بسته یا
  README خود مستند نگه دارید.
- `clawhub package validate <path-to-plugin>` را دوباره اجرا کنید.

## مرتبط

- [CLI مربوط به ClawHub](/fa/clawhub/cli)
- [انتشار در ClawHub](/fa/clawhub/publishing)
- [ساخت pluginها](/fa/plugins/building-plugins)
- [مانیفست Plugin](/fa/plugins/manifest)
- [نقاط ورود Plugin](/fa/plugins/sdk-entrypoints)
- [سازگاری Plugin](/fa/plugins/compatibility)
