Skip to content

Latest commit

 

History

History
196 lines (144 loc) · 14.3 KB

File metadata and controls

196 lines (144 loc) · 14.3 KB

IoTCoWork UI 改造路线图

本路线图替换旧版插件/协议实验室优先路线,当前阶段聚焦“参考 VS Code 智能体界面,但保持 IoTCoWork 的 IoT 工程工作台定位”。

0. 状态图例

标识 含义
已完成
🚧 正在改
待开始
🔁 持续维护
暂停或阻塞

1. 改造原则

  • IoTCoWork 首屏是工程工作台,不是纯聊天页。
  • VS Code 智能体界面只作为信息组织参考:三栏布局、上下文入口、能力中心、头像账户菜单、低噪声高密度。
  • external/IoTCoWork 只承载开源外壳、布局、插件扩展点、本地工程上下文 UI。
  • 多租户、计费、余额、充值、企业 License、Copilot 编排等商业能力不得写入开源外壳;只允许通过上层 IoTSharp.SaaS/src/* 契约或商业插件注入。
  • SaaS 云端不得实现设备管理、业务遥测接收或设备数据落库;设备维度入口只能跳转用户自有 IoTSharp 实例。

2. 视觉与交互基线

  • 视觉论点:克制、工程化、暗色优先,像一张可长时间工作的控制台,而不是营销页。
  • 内容计划:左侧会话与任务,中间工作画布,右侧工程上下文,顶部全局状态,底部智能输入器。
  • 交互论点:面板折叠要稳定,输入器上下文要清楚,账户与设置应轻量弹出再进入完整页面。

3. UI 改造任务

UI-001 ✅ 三栏工作台骨架

  • 目标:把现有两栏工作区升级为“左侧会话 / 中间工作画布 / 右侧工程上下文”的三栏结构。
  • 边界:只做开源 UI 骨架和本地工程上下文占位,不实现租户、计费、余额、云端 Copilot 编排。
  • 验收:桌面端出现稳定三栏;窄屏下右侧上下文自动收到底部;现有生成流程仍可使用。
  • 提示词:
在 external/IoTCoWork 中实现 UI-001。只允许修改 IoTCoWork.Workbench 的开源 UI 外壳。将 Home 页面从两栏改为三栏:左侧会话,中间现有工作画布,右侧新增工程上下文面板。右侧面板只能展示本地 workspace、边缘目标、产物、工具运行等占位信息,不得接入租户、计费、余额、充值、License、商业 Copilot 编排。保持现有生成、账户弹窗、主题切换、窗口控制功能可用。修改后运行 dotnet build 验证。

UI-002 ✅ 头像账户菜单轻量化

  • 目标:参考 VS Code 头像菜单,把顶部“我的账户”收敛为头像按钮 + 轻量 Popover。
  • 边界:开源外壳只展示本地工作台连接状态;余额、充值、预算、用量、租户、License 等商业数据已迁出到上层 IoTSharp.SaaS/src/*
  • 验收:点击头像可看到本地 AI Gateway 状态、设置、主题、退出等入口;未配置 Token 态清楚;不新增真实密钥或硬编码商业配置。
  • 闭环记录:已删除 SaaSAccountClientSaaSAccountModels、QRCoder 依赖、支付/登录弹层和账户充值样式;本地代理已从 SaaSProxy 改为 AiGatewayProxy
  • 提示词:
在 external/IoTCoWork 中实现 UI-002。把 Home 顶部账户按钮改成头像式账户菜单,菜单只负责 UI 展示和调用现有 OpenSettings、SignOut 等本地事件。不得新增计费、余额、充值、租户、License 的业务实现;若需要展示商业字段,只能使用已有模型里的可空数据并提供未配置状态。保持键盘可访问性和暗色主题一致。

UI-003 ✅ 能力中心入口

  • 目标:建立“智能体 / 技能 / 指令 / 挂钩 / MCP 服务器 / 插件”的能力中心入口。
  • 边界:只做分类、搜索、空状态、插件贡献点占位;不得把商业技能、付费模板、企业策略写入开源仓。
  • 验收:左侧或设置中可进入能力中心;各分类有数量、状态和空态;MCP 只显示配置占位。
  • 提示词:
在 external/IoTCoWork 中实现 UI-003。新增能力中心 UI,包含智能体、技能、指令、挂钩、MCP 服务器、插件六类导航。该任务只做开源 UI 和本地配置占位,不连接真实商业服务,不写入付费模板、租户策略或 License 逻辑。MCP 配置只保留本地服务展示和后续扩展点。

UI-004 ✅ 设置中心重组

  • 目标:把外观、快捷键、模型、网络代理、更新、能力中心入口整理成 VS Code 风格设置页。
  • 边界:设置页只管理本地 UI 与本地连接配置;商业账号页通过注入入口或现有账户抽屉承载。
  • 验收:设置分类清楚,搜索可见,当前功能不丢失,移动端不溢出。
  • 提示词:
在 external/IoTCoWork 中实现 UI-004。重组设置抽屉为分类式设置中心:外观、快捷键、模型、本地网络、更新、能力中心。只迁移现有 UI 控件,不新增商业逻辑。网络代理仍为本地连接配置,不能写入生产密钥或真实云端凭据。

UI-005 ✅ 智能输入器上下文芯片

  • 目标:让底部输入器明确显示当前 workspace、目标端、模型、审批模式、输出位置。
  • 边界:芯片只展示或选择本地上下文;云端模型路由、配额、计费由上层服务处理。
  • 验收:用户提交前能看见任务上下文;芯片不会挤压输入区;窄屏可横向滚动。
  • 提示词:
在 external/IoTCoWork 中实现 UI-005。扩展底部 XSender 周围的上下文栏,加入 workspace、边缘目标、模型、审批模式、输出位置芯片。芯片只使用本地状态或占位数据,不实现云端模型路由、配额或计费。保持 Enter 提交流程和附件上传可用。

UI-006 ✅ 任务计划与审批面板

  • 目标:在右侧或中间提供计划步骤、工具调用、审批节点、执行结果的统一视图。
  • 边界:只展示 UI 状态模型;真实工具执行与 Copilot 编排由上层插件注入。
  • 验收:覆盖空白、运行中、待确认、成功、失败、部分成功状态。
  • 提示词:
在 external/IoTCoWork 中实现 UI-006。新增任务计划与审批面板,展示计划步骤、工具调用、审批节点、执行结果。只做开源 UI 状态和模拟数据,不调用商业 Copilot 编排,不执行真实远程工具。状态必须覆盖空白、加载、运行中、待确认、成功、失败、部分成功。

UI-007 ✅ 右侧上下文 Tabs

  • 目标:把右侧上下文面板扩展为工程树、产物、工具运行、日志、风险五个 Tab。
  • 边界:工程树和产物只读本地/占位数据;不得接收或展示真实业务遥测数据。
  • 验收:Tab 切换稳定;长列表滚动不影响主画布;风险提示优先级高于普通摘要。
  • 提示词:
在 external/IoTCoWork 中实现 UI-007。将右侧上下文面板扩展为工程树、产物、工具运行、日志、风险五个 Tab。所有数据必须来自本地占位或公开工程模型,不得接收、转发、落库业务遥测数据,不得实现设备管理 API。

UI-008 ✅ 工作区总览首屏

  • 目标:当没有活跃任务时,中间区域显示 workspace 状态、最近任务、边缘目标、最近产物和建议动作。
  • 边界:总览页是本地工程视图;设备管理入口只能跳转用户 IoTSharp 实例。
  • 验收:首屏不再像空白聊天页;用户能直接发起生成、调试、构建、发布动作。
  • 提示词:
在 external/IoTCoWork 中实现 UI-008。为空会话状态设计工作区总览,展示 workspace 状态、最近任务、边缘目标、最近产物和 AI 建议动作。不得实现 SaaS 设备管理或遥测接收;设备入口只能作为外部 IoTSharp 实例跳转占位。

UI-009 ✅ 插件贡献点对齐

  • 目标:为左侧导航、右侧 Tabs、设置中心、输入器芯片定义插件贡献点。
  • 边界:只定义开源插件 SDK 和 UI 插槽;商业插件只能作为外部消费者。
  • 验收:贡献点命名稳定,文档清楚,默认 UI 无商业依赖。
  • 提示词:
在 external/IoTCoWork 中实现 UI-009。为左侧导航、右侧上下文 Tabs、设置中心分类、输入器上下文芯片定义插件贡献点和最小接口。接口保持开源属性,不包含租户、计费、License、付费模板字段。补充文档说明商业插件只能通过上层仓库注入。

UI-010 ✅ 主题、响应式与可访问性验收

  • 目标:统一暗色/浅色主题、窄屏布局、键盘操作和文本溢出策略。
  • 边界:只做 UI 质量验收和样式修复,不改变业务流程。
  • 验收:桌面、平板、手机宽度下无明显重叠;按钮有 title 或可见文本;主要弹层可关闭。
  • 闭环记录:清理旧认证/支付/充值 CSS,保留确认框、图片预览、设置中心、能力中心等仍在用的弹层响应式规则;本地 AI Gateway 配置未就绪时引导到设置中心网络页。
  • 提示词:
在 external/IoTCoWork 中实现 UI-010。对 UI-001 到 UI-009 做主题、响应式、可访问性收尾。检查暗色/浅色主题、文本溢出、按钮 title、键盘焦点、移动端布局和弹层关闭。不得引入新业务逻辑;只修复 UI 质量问题并运行构建验证。

UI-011 ✅ D1 语义建模 UI 信息架构

  • 目标:把工作台从“点表编辑器”升级为资产、点位、绑定、工艺关系建模。
  • 边界:只修改开源工作台信息架构和文档;不加入余额、充值、租户、License、付费模板逻辑。
  • 验收:左侧出现“语义模型”入口;/semantic-modeling 页面展示资产树、点位语义表、协议绑定、工艺关系;右侧上下文默认展示资产、点位、绑定、工艺四类 Tab。
  • 闭环记录:新增 SemanticModeling 页面与本地草稿模型,补充 语义建模信息架构,并将工作区上下文切换到 Semantic Workspace 口径。

UI-012 ✅ D2 Modbus 点表导入

  • 目标:支持 CSV、Excel 和手工 Modbus 点表导入,生成本地 SemanticPoint 与 Modbus Binding 草稿。
  • 边界:只做开源工作台本地导入与校验;不连接边缘设备,不接收业务遥测,不加入租户、计费、License 或付费模板逻辑。
  • 验收:合法点表可生成点位与绑定;缺字段点表显式标记单位、量纲、资产归属待补全;非法寄存器和重复点位给出结构化错误;覆盖对应测试。
  • 闭环记录:新增 IoTCoWork.Workbench.Core 导入器和测试项目,/semantic-modeling 页面支持 CSV/TSV/TXT、XLSX 第一张工作表和手工文本导入。

UI-013 ✅ D3 MQTT Topic / Payload 导入

  • 目标:支持从 MQTT Topic 样例和 JSON Payload 样例推导本地 SemanticPoint 与 MQTT Binding 草稿。
  • 边界:只做本地文本与 JSON 结构推导;不连接生产 Broker,不接收或保存业务数据样本到 SaaS,不加入租户、计费、License 或付费模板逻辑。
  • 验收:UNS Topic、非标准 Topic、缺 timestamp、嵌套 payload 均有测试覆盖;导入结果生成 assetPath、valueField、timestampField、qualityField 候选;缺失单位、量纲、资产归属时显式标记待补全。
  • 闭环记录:新增 MqttTopicPayloadImporter/semantic-modeling 页面新增 D3 导入区;Payload 样本只在本地输入框参与推导,模型元数据仅记录 payloadSampleStored=false

UI-014 ✅ D4 OPC UA 浏览/导入入口

  • 目标:支持离线 OPC UA NodeSet 导入入口,生成本地资产、SemanticPoint 与 OPC UA Binding 草稿。
  • 边界:只解析本地 NodeSet 文本和样例;不连接真实现场、不接收业务遥测、不加入租户、计费、License 或付费模板逻辑。
  • 验收:导入结果保留 NodeId、BrowseName、DataType、EngineeringUnits、References;缺失工程单位、重复节点和非法 XML 有结构化诊断;覆盖对应测试。
  • 闭环记录:新增 OpcUaNodeSetImporter/semantic-modeling 页面新增 D4 离线导入区,测试覆盖样例导入、追溯字段、缺单位诊断和无效 NodeSet。

UI-015 ✅ D5 工作台触发语义生成任务

  • 目标:工作台可把本地 Semantic Workspace 提交到 SaaS Workspace API,并展示校验结果、生成任务状态和工件引用。
  • 边界:只消费 SaaS Workspace 契约;不在开源工作台实现云端设备管理、遥测接收、计费、License 或商业 Copilot 编排。
  • 验收:覆盖任务创建、运行中刷新、成功返回工件、失败、校验失败和不支持目标预览;设备入口只能跳转用户自有 IoTSharp 实例。
  • 闭环记录:新增 SemanticWorkspaceGenerationCoordinator/semantic-modeling 页面新增生成任务区,测试覆盖任务状态和工件引用。

4. 当前执行顺序

  1. ✅ UI-001:三栏骨架已固定。
  2. ✅ UI-002:账户入口已收敛为本地连接菜单,商业账户/支付逻辑已迁出开源外壳。
  3. ✅ UI-003 与 UI-004:能力中心和设置中心已落地。
  4. ✅ UI-005 到 UI-008:输入器上下文、任务计划、右侧 Tabs、工作区总览已补齐。
  5. ✅ UI-009 与 UI-010:插件贡献点和 UI 质量验收已闭环。
  6. ✅ UI-011 / D1:语义建模 UI 信息架构已落地。
  7. ✅ UI-012 / D2:Modbus 点表导入已落地。
  8. ✅ UI-013 / D3:MQTT Topic / Payload 导入已落地。
  9. ✅ UI-014 / D4:OPC UA 离线 NodeSet 导入已落地。
  10. ✅ UI-015 / D5:Semantic Workspace 生成任务触发已落地。

5. 商业能力迁出记录

  • external/IoTCoWork 不再包含账户余额、充值、支付二维码、订单轮询或 SaaS 账号客户端实现。
  • IoTCoWork.App 仅保留本地 AI Gateway 代理 /api/iotsharp/ai/{**path},请求头统一为 X-IoTCoWork-AI-*
  • 商业账户、钱包、充值订单和用量摘要的扩展骨架位于上层仓库 src/IoTSharp.SaaS/Identity/Workbench
  • 构建验证:dotnet test external\IoTCoWork\tests\IoTCoWork.Workbench.Core.Tests\IoTCoWork.Workbench.Core.Tests.csproj --no-restore 通过,19 passed;此前 dotnet build .\external\IoTCoWork\IoTCoWork.Workbench\IoTCoWork.Workbench.csproj --no-restoredotnet build .\external\IoTCoWork\IoTCoWork.App\IoTCoWork.App.csproj --no-restoredotnet build .\IoTSharp.SaaS.slnx --no-restore -m:1 均已通过;全仓构建仅保留既有 NuGet 版本解析与 System.Security.Cryptography.Xml 漏洞告警。