用途:根据用户需求或已有 Apex 支持的 Lightning Type,生成完整的 WidgetBundle,包含 UEM 组件树(tile/widget)、描述输入契约的 schema.json,以及注册用的 .uiwidget-meta.xml。适用于 widget、mosaic、fragment、卡片式富 UI;不适用于自定义 LWC 渲染器或 Custom Lightning Type 内的 renderer.json。
主要能力:输入 widgetName(camelCase,作为 uiWidgets/ 下目录名)与数据形状(shape)。形状来源优先为 lightningTypeSchema(含 path、apexClassFqn),否则从用户提示中的 JSON、字段列表或描述性文字推断;两者都无则停止并询问用户。通过 discoverUiComponents 与 getUiComponentSchemas 元数据动作发现并获取可用块及其 JSON Schema,再按布局与样式规范组装 UEM 树。
使用方式:先解析 widget 规格(有序的 name/type/required 列表),调用 discoverUiComponents 发现块,选择块后调用 getUiComponentSchemas 获取 schema,阅读匹配的 examples/ 示例(single-object、list-with-foreach、conditional、formulas),再构建 UEM 树、编写 schema.json 与 meta.xml,最后自校验。属性绑定用 {!$attrs.<attrName>},forEach 内用 {!$item.name}。按钮需带 actions.click,仅支持 action/openLink 与 action/sendMessage。
限制:块定义必须与 discoverUiComponents 输出一致;不得向 getUiComponentSchemas 传 tile/widget;每个 {!$attrs.X} 必须解析到 schema 属性;公式函数须在 references/widget-formulas.md 支持列表内;三个文件须同时写入,缺一不可部署;Bash 调用中禁止 $(…)、反引号、<(…)、花括号展开及 eval/exec。若发现或取 schema 失败,应停止并原样上报错误,不得凭记忆臆造块名。