# 独立工作台 Demo(面向 0.3.0,未发布) 这是面向 **0.3.0** 的交互预览,用来展示“选图与填写要求 → 查看状态 → 比较 → 选择与下载”的操作方向。**当前 Demo 保留作为参考,界面、文案和交互细节将在 0.3.0 阶段统一润色,尚未定稿。** Demo 可在源码树中独立预览,无需 DSH;使用内存演示与内置样图,不连接模型、不计费,也不写入 Core 数据。真实生成目前使用现有 DSH 工作台或 CLI;npm 0.2.7 不携带源码树的 prototypes/ 和预览脚本。 ## 启动预览 在 Git 源码树中,使用现有 Node.js ≥22,无须安装新依赖: ```bash node scripts/preview-workbench.mjs ``` 终端打印 `http://127.0.0.1:<随机端口>/`,在本机浏览器中打开。可显式指定 `--port 4173`,端口占用会报错,不自动替换。Ctrl+C 关闭。预览器只监听 loopback 并提供固定静态资源,不能读取任意仓库文件、Core 数据、Provider 配置或 `.internal/`,不会启动 DSH。 不要用仓库根上的通用文件服务器代替这个入口,避免把内部资料一并提供给浏览器。页面使用 JavaScript 模块,直接双击 HTML 并不等价于上述预览。 ## 可体验的流程 1. 使用内置鸢尾花样图,或选择/拖放本地 PNG、JPEG、WebP;本地文件只生成标签页内的 Blob 预览,不上传。 2. 选择演示模型、填写修改要求,点击“开始演示”。本次输入随后固定;修改输入需明确新建流程。 3. 查看原图与示例结果,切换并排/叠图,明确选择原图或结果,再下载。 4. 展开“运行详情与演示场景”,体验原任务进行中、受理未知、生成成功但交付中断、等待本地比较等状态。场景对新流程生效。 **示例结果始终是内置样图,不是对上传图片或提示词的真实修改**。原图和示例结果可能相同;原型不伪造像素差异、模型质量分数、计费价格或进度百分比。下载原图取本地原字节,下载结果取内置样图;“已选择”和“下载请求已交给浏览器”分别显示,不声称文件已保存。 状态名称和白名单 DTO 依据真实 [固定流程](IMAGE_FLOW.md);投影有实际 Core/受控 Provider 测试。演示传输不读写磁盘 Run,不保证服务重启恢复。新建后可从详情中的流程列表只读切回本标签页旧记录;整页刷新清空演示状态,并且不会自动开始。未将文件、提示词或主题写入 localStorage。 “停止本次等待”只中止当前演示操作,原任务事实保留;真实 API 的远端取消须有独立能力与确认,不能把停止等待写成取消成功。展开详情、重新读取状态、切换历史与比较方式均不驱动生成。 ## 实现和下一步 原型位于 `prototypes/workbench/`,使用原生 HTML/CSS/JavaScript,复用现有图标和示例图片,没有新框架或生产依赖。运行详情默认折叠,关闭显示“展开”、打开显示“收起”;提供浅/深色、键盘焦点与 320/390px 布局。 0.2.7 已有 [默认只读 API](LOCAL_API.md)及显式开启的 [本地上传/Run 创建](LOCAL_CREATION.md),带持久请求意图和身份接回;当前 Demo 保持原样,尚未连接它们。后续补执行/取消、Operation 与恢复边界,再在 0.3.0 阶段结合实际接口统一完善页面。Demo 的当前布局、提示词和样例效果仅用于说明方向,不代表最终界面或模型能力。 [本地 API 契约](LOCAL_API_CONTRACT.md)区分已实现的只读/本地创建切片与待实现的执行、选择和取消。相同 Run 的 Task 复用与 HTTP 创建幂等分别验证;执行接口安全和中断测试通过后,再替换演示传输并完成无 DSH 的实际端到端验收。 源码树可运行下面的检查;浏览器检查需显式提供已经安装的 Chromium,不下载或安装浏览器。无沙箱仅在受控测试环境确有需要时显式追加 `--no-sandbox`,不改变生产浏览器策略。 ```bash node tests/web-prototype.mjs node scripts/verify-workbench-prototype.mjs --browser-executable /absolute/path/to/chromium --output /absolute/path/to/new-evidence-directory ``` 浏览器检查保存交互结果与桌面/手机截图;这是隔离 Chromium 验收,不是 Android 真机触控或日常 DSH 装载证明。