--- name: app-cards-extensions description: 为 DSH A2UI 应用卡片开发、测试和注册新的组件包;现有目录不能表达所需图表或交互时使用。普通卡片编排使用 app-cards-authoring。 --- # A2UI 组件扩展 先用 app_cards_describe topic: components/extensions 查询当前能力。组合现有组件能解决就不新增;需要新行为时读取 [组件开发契约](references/development.md)。 组件可以用 React、SVG、Canvas 或经审查的库实现,再以参数 Schema 暴露给卡片作者。在独立源码目录内开发,不改 app-cards 插件的源码和注册文件。常用组合可以封装为组件,保留参数和子节点入口;不要为每台机器复制一份渲染器。 这是可信前端代码的独立包扩展,不是安全沙箱,不支持卡片 JSON 内执行 JS/HTML。它与原生插件具有同样前端权限,因此读取外来组件源码后须审查、测试再安装;不得从卡片 URL 自动下载执行。自定义控件优先组合原有 Button/输入组件,继续使用 app.invoke、授权和回执,不直接访问 SSH、令牌、宿主全局状态或执行命令。 交付必须含:参数定义、独立实现、实际调用示例、测试、版本和构建清单。使用 extensionctl 独立构建、安装;安装后刷新网页即可,不重建插件、不重启 DSH。保留原卡片与授权资料。发布扩展不等于授权新的服务器操作。缺少部署授权时只交付候选包和验证结果。 测试至少覆盖适用的:缺值与过期、动态更新、非法量程、异常恢复、窄屏、键盘交互、异常隔离、刷新不丢草稿、其他应用仍可用。不能把模拟 GPU 数值发布成真实观测,也不要为了展示红色而给硬件加压。