Plugin maintainer reference
API ورودی کانال
مسیرهای دریافت کانال از یک جریان پیروی میکنند:
رویداد پلتفرم -> دادهها/زمینه ورودی -> پاسخ عامل -> تحویل پیامبرای عادیسازی رویداد ورودی، قالببندی، ریشهها و هماهنگسازی از openclaw/plugin-sdk/channel-inbound استفاده کنید.
برای ارسال بومی، رسید، تحویل پایدار و رفتار پیشنمایش زنده از
openclaw/plugin-sdk/channel-outbound استفاده کنید.
توابع کمکی هسته
buildChannelInboundEventContext, runChannelInboundEvent, dispatchChannelInboundReply,} from "openclaw/plugin-sdk/channel-inbound";buildChannelInboundEventContext(...): دادههای عادیسازیشده کانال را به زمینه اعلان/نشست تبدیل میکند. فراداده فرستنده/گفتوگوی متعلق به کانال را از طریقchannelContextمنتقل کنید؛ قلابهای Plugin آن را بهصورتctx.channelContextمشاهده میکنند. برای فیلدهای مختص کانال،PluginHookChannelSenderContextیاPluginHookChannelChatContextرا از این زیرمسیر گسترش دهید.runChannelInboundEvent(...): مراحل دریافت، طبقهبندی، پیشبررسی، حل، ثبت، ارسال و نهاییسازی را برای یک رویداد ورودی پلتفرم اجرا میکند.dispatchChannelInboundReply(...): یک پاسخ ورودی ازپیشساختهشده را با یک آداپتور تحویل ثبت و ارسال میکند.
کانالهای همراه/بومی که از قبل شیء زماناجرای تزریقشده Plugin را دریافت میکنند،
میتوانند بهجای واردکردن مستقیم این زیرمسیر، همان توابع کمکی را از طریق
runtime.channel.inbound.* فراخوانی کنند:
await runtime.channel.inbound.run({ channel: "demo", accountId, raw: platformEvent, adapter: { ingest: normalizePlatformEvent, resolveTurn: resolveInboundReply, },});برای ارسالگرهای سازگاری که تحویل پلتفرم را در آداپتور تحویل نگه میدارند،
ورودیهای dispatchChannelInboundReply(...) را سرهم کنید. مسیرهای ارسال جدید
باید در عوض از آداپتورهای پیام و توابع کمکی پیام پایدار در
channel-outbound استفاده کنند.
مهاجرت
نامهای مستعار زماناجرای runtime.channel.turn.* حذف شدهاند. استفاده کنید از:
runtime.channel.inbound.run(...)برای رویدادهای ورودی خام.runtime.channel.inbound.dispatchReply(...)برای زمینههای پاسخ سرهمشده.runtime.channel.inbound.buildContext(...)برای بارهای زمینه ورودی.runtime.channel.inbound.runPreparedReply(...)، منسوخشده، فقط برای مسیرهای ارسال آماده متعلق به کانال که از قبل بستار ارسال خود را سرهم میکنند.
کد جدید Plugin نباید APIهای کانال با نام turn معرفی کند. واژگان نوبت مدل یا
عامل را در کد عامل/ارائهدهنده نگه دارید؛ Pluginهای کانال از اصطلاحات ورودی،
پیام، تحویل و پاسخ استفاده میکنند.