Tools
نمایش ویجت
show_widget یک قطعهٔ مستقل SVG یا HTML را بهصورت درونخطی در رونوشت گفتوگوی رابط کنترل رندر میکند. Plugin همراه Canvas مالک این ابزار است و هر نتیجه را بهعنوان یک سند Canvas هممبدأ میزبانی میکند.
این ابزار فقط زمانی در دسترس است که کلاینت Gateway مبدأ، قابلیت inline-widgets را اعلام کند. رابط کنترل این قابلیت را بهطور خودکار اعلام میکند. اجراهای کانالهایی مانند Telegram و WhatsApp به show_widget دسترسی ندارند.
انتقال قابلیت، بکاندهای مدل توکار، سرور برنامهٔ Codex و مبتنی بر CLI را پوشش میدهد. فراخوانندگان MCP احراز هویتشده با مجوز و فراخوانندگان مستقیم ابزار از طریق HTTP همچنان بهصورت امن بسته میمانند، زیرا قابلیتهای کلاینت را اعلام نمیکنند.
استفاده از ابزار
عامل دو رشتهٔ الزامی ارائه میکند:
titlestringrequiredعنوان کوتاهی که همراه پیشنمایش درونخطی و در عنوان سند میزبانیشده نمایش داده میشود.
widget_codestringrequiredقطعهٔ مستقل SVG یا HTML. ورودیای که پس از حذف فاصلههای ابتدا و انتها با <svg آغاز شود، در حالت SVG رندر میشود؛ تمام ورودیهای دیگر بهعنوان قطعهٔ HTML در نظر گرفته میشوند. حداکثر طول: ۲۶۲٬۱۴۴ نویسه.
نتیجهٔ ابزار شامل یک دستگیرهٔ پیشنمایش Canvas است؛ بنابراین گفتوگوی وب ویجت را مستقیماً از فراخوانی ابزار رندر میکند و پس از بارگذاری مجدد تاریخچه، آن را بازیابی میکند. رونوشتهایی که پیشنمایشها را رندر نمیکنند، همچنان مسیر Canvas میزبانیشده را نشان میدهند.
امنیت و ذخیرهسازی
اسناد ویجت از یک خطمشی امنیت محتوا با محدودیتهای سختگیرانه استفاده میکنند: سبک و اسکریپت درونخطی مجاز هستند، تصاویر میتوانند از نشانیهای data: استفاده کنند و واکشیهای خارجی و بارگذاری منابع مسدود میشوند. تمام نشانهگذاریها، سبکها، اسکریپتها و دادههای تصویر را درون widget_code نگه دارید.
iframe همیشه allow-same-origin را حذف میکند، حتی زمانی که حالت سراسری جاسازی رابط کنترل روی trusted تنظیم شده باشد؛ بنابراین اسکریپتهای ویجت نمیتوانند مبدأ برنامهٔ والد را بخوانند. میزبان Canvas همچنین اسناد ویجت را با سرآیند پاسخ Content-Security-Policy: sandbox allow-scripts ارائه میکند؛ بنابراین حتی با باز کردن مستقیم نشانی میزبانیشده، ویجت بهجای مبدأ رابط کنترل در یک مبدأ مبهم اجرا میشود. سندباکس مرورگر مانع از آن نمیشود که یک اسکریپت iframe خودش را پیمایش کند؛ فقط کد ویجتی را رندر کنید که مایلید در آن قاب ایزوله اجرا شود.
iframe همچنین از gateway.controlUi.embedSandbox پیروی میکند. سطح پیشفرض scripts ضمن حفظ جداسازی مبدأ، از ویجتهای تعاملی پشتیبانی میکند.
Canvas در هر نشست حداکثر ۳۲ ویجت نگه میدارد (یا اگر نشستی در دسترس نباشد، بهازای هر عامل). ایجاد ویجتی دیگر، قدیمیترین سند را در آن محدوده حذف میکند.