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 的自動補全功能,能夠快速達成共識。確認後的規劃以標準化的載荷回傳給模型,推動項目繼續進行。

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

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

小夜