محرّر الرسائل
محرر محادثة الذكاء الاصطناعي من قالب AI Chat كوحدة مستقلة: إدخال على شكل حبة مع قوائم مرفقات ونماذج تعمل، وعناصر تحكم في الصوت والإرسال، وشريط الحالة مع الفرع والمشروع ووضع الوكيل وعداد السياق، وتأثير زجاج سائل يستحوذ على عناصر التحكم أثناء عمل الوكيل.
التثبيت
الوضع الداكن جاهز - هذا مكوّن يتبع رموز التصميم الدلالية لـ BoardUI تلقائياً. إعداد تبديل السمة.
هل تستخدم حزمة واجهة مستخدم مشتركة أو أسماء استيراد مختصرة مخصصة؟ تهيئة مسارات التثبيت قبل تشغيل CLI. تستخدم أمثلة النسخ واللصق الاستيرادات الافتراضية.
حالة التشغيل
معالجة العميل الكاملة قيد التشغيل، في حلقة: الـ AgentThinking يفكر فوق الحبة، المجاني ComposerLoader يدور حوله ضوء، و GlassComposer يحوّل عناصر التحكم في المرفق والنموذج والميكروفون إلى زجاج سائل. يتلاشى كل شيء عند وصول الرد.
const [working, setWorking] = useState(false);
{working && <AgentThinking variant="infinity" />}<ComposerLoader active={working}> {/* the controls morph to liquid glass while the agent works */} <GlassComposer glass={working} /></ComposerLoader><StatusBar />الإشارات والأوامر
مرّر triggers ليصبح حقل الكبسولة TokenInput من سطر واحد: يفتح @ ملفاتك و/ أوامرك في قائمة عند المؤشر، ويصبح الاختيار شريحة، ويرسل Enter. يظل onSubmit يتلقى نصًا مكتوبًا مثل [@label](type:value)، يعيده fromText إلى رموز.
import { Composer } from "@/components/application/ai-chat/ai-chat-composer";import { fromText } from "@/components/base/token-input/token-input";
<Composer triggers={triggers} onSubmit={(text) => { // "Review [@sidebar.tsx](file:components/sidebar.tsx)" send(fromText(text)); // text and { type, value, label } tokens }}/>
{/* GlassComposer and AiChatComposerPreview take triggers too */}<GlassComposer glass={working} triggers={triggers} />الأجزاء
كل شيء يُشحن كتصديرات منفصلة حتى تتكامل الأجزاء: الحبة، وشريط الحالة، والمعاينة المجمّعة، والغلاف الزجاجي. قوائم المرفقات والنماذج هي نوافذ منبثقة تعمل بالكامل، بما في ذلك شبكة الإضافات.
{/* The pill alone - attachment menu, input, model picker, mic, send */}<Composer />
{/* Status row - branch, project folder menu, agent mode, context meter */}<StatusBar />
{/* Both assembled, as in the AI chat template */}<AiChatComposerPreview />