dsh-partition-board:AI 认为需要跟人确认「怎么分区」时自主调用的画板插件

前言

DSH 理念是「一切皆插件」。在处理空间布局、版式设计或数据分段时,模型有时无法仅凭文字描述出边界。需要一个浏览器弹出的交互式画板,让用户直接参与绘制,同时将结果标准化地回传给模型。

插件简介

  • 名称:dsh-partition-board
  • 所有者:gst20060726
  • 定位:AI 认为需要跟人确认「怎么分区」时自主调用的 DSH 插件。它在浏览器里弹出一块画板。
  • 核心价值:通过色卡、绘图工具和约束标注,将模糊的布局需求转化为精确的矢量分区,并回传给 AI 进行后续解读。

安装与启用

在本地环境安装此插件,需进行目录联结并在配置文件中声明依赖。

# 1) 目录联结(等价于 `dsh plugin --profile web add link:<dir>` 建的链接)
New-Item -ItemType Junction `
  -Path   "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-partition-board" `
  -Target "$env:USERPROFILE\.dsh\plugins\dsh-partition-board"

# 2) 在 ~/.dsh/profiles/web/package.json 里加两处:
#    dependencies:  "dsh-partition-board": "link:C:/Users/<你>/.dsh/plugins/dsh-partition-board"
#    dsh.profile.bundles: 追加 "dsh-partition-board"

# 3) 验证安装(可选)
cd "$env:USERPROFILE\.dsh\plugins\dsh-partition-board"
npm test          # 72 项:35 项纯函数 + 37 项无头渲染
npm run verify    # 8 项安装期契约自检

核心功能

该画板提供以下交互能力:

  1. 色卡与标注:提供色卡控件,用于标注「颜色 ↔ 含义」(如红=主区、蓝=侧栏),颜色本身无意义,图例才是语义。
  2. 绘图工具:支持矩形、套索、软笔刷、橡皮四种绘制模式,每块分区可调整边界羽化(模糊分区)。
  3. 边画边写:图形说不清的约束(如「这块要能并排看两张卡」)可直接写在右栏,随消息回传给 AI。
  4. 缩放与平移:
    • Ctrl/⌘ + 滚轮:以光标为锚点缩放(1–8 倍),普通滚轮仍滚动页面。
    • 抓手拖动:平移画布。
    • 0 键:视图复位。
    • 装饰性线宽/字号/标签门槛都按缩放抵消,放大后不会糊。
  5. AI 辅助补全:未标注与细小分区由 AI 补全,方案以虚线叠加展示,用户可确认或返工。
  6. 结果回传:确认后的完整规划(图例 + 几何 + 羽化度 + 栅格矩阵)回传给 AI,AI 按 purpose 解读并推进项目。

协作流程

插件采用消息式通信,工具调用不阻塞。

  1. 工具调用:模型调用 partition_board({purpose, legend, ...}),画板立即弹出。
  2. 用户操作:用户在画板上标注、绘画、调整羽化或书写说明。
  3. 消息回传:用户操作通过 conversation.send("[partition-board] {...}") 发送给宿主。
  4. 模型处理:
    • 收到 kind = plan-request 或 rework:同一 boardId、revision+1、mode="review",再调一次工具展示方案。
    • 收到 kind = confirmed:拿到 plan,按 purpose 解读并推进项目。

技术细节与边界

  • 存储机制:画板状态存在 localStorage(键 dsh.partitionBoard.v1:<sessionId>:<boardId>)。换浏览器或清缓存会丢失;隐私模式下画板可用但不跨刷新记忆。
  • 无状态宿主:没有宿主侧的画板存储,这是刻意的(安全/鉴权原因)。规划事实来源是对话本身。
  • 栅格编码:栅格是 32 列,grid.cells 用 base36 单字符编码。
  • 载荷预算:矢量总点数封顶 600,分区不会因超预算被丢掉。
  • 无障碍支持:画布是 role="application",支持 aria-label 和 aria-describedby(状态条)。
  • 双语界面:界面文案按 navigator.language 切换(有信号但不是中文 → 英文;完全没信号 → 中文)。
  • 已知缺失:触摸屏双指捏合/旋转、分区布尔运算、分区排序与图层调整。

结语

插件通过浏览器弹出的画板解决了 AI 在处理空间布局时无法精确界定边界的问题。用户可以直接参与绘制和约束标注,配合 AI 的自动补全功能,能够快速达成共识。确认后的规划以标准化的载荷回传给模型,推动项目继续进行。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye