用途:Generative UI 在聊天中内联渲染沙箱化的 Alpine.js HTML,属于界面渲染而非源码改动,也不经过 Builder。适合做旋钮、控件、选择器、计算器、临时图表和预览等交互界面。
主要能力与用法:一次性界面用 render-inline-extension;需要保存、复用或在 Extensions 视图可见时用 create-extension,创建后同样内联渲染;用 show-extension-inline 重新打开已保存扩展,用 update-extension 编辑。输入可通过 action context 传入,iframe 从 window.slotContext 读取,并用 window.onSlotContext(fn) 订阅变化。输出方面,被动输出用 agentNative.ui.output(value, opts?) 写入 inline-ui:<extensionId>:output,id 自动限定,HTML 作者不要传入;用户说“用那个值”时用 readAppState("inline-ui:<id>:output") 读取,载荷含 value、updatedAt、extensionId、source 及可选 label、context、meta。需要可见的 Apply/Submit 按钮时用 agentNative.chat.send(message, opts?) 或 sendToAgentChat(message, opts?),并显式传 { submit: true };不得在轮询、刷新或错误处理中调用。
数据与状态:模板数据和操作优先用 appAction(name, params);仅对 /_agent-native/* 下允许的框架端点用 appFetch(path, options),不要调用模板 /api/* 路由;无合适 action 时对已知现有 SQL 表用 dbQuery/dbExec;外部 API 通过沙箱代理和密钥用 extensionFetch。已保存扩展的 extensionData 走认证的数据库 API;临时内联 UI 的 extensionData 是宿主 localStorage,智能体无法读取、不跨设备同步、提升为已保存扩展时不迁移、服务器不回收,仅用于一次性本地 UI 状态。智能体或应用需要观察的内容应使用 agentNative.ui.output、appFetch 应用状态、appAction 或 agentNative.chat.send。
样式与限制:使用语义化 Tailwind 类(如 bg-background、text-foreground、border-border、bg-card、text-card-foreground、bg-primary、text-primary-foreground、text-muted-foreground、bg-accent)以继承父应用主题。不要在生成的 HTML 中硬编码提供方令牌、私有数据或内部密钥,不要从 iframe 直接调用 LLM,AI 工作应经由智能体聊天。其他细节暂未提供。