Skip to content

Repository files navigation

SplitSight

You see. I act. Neither escapes alone.

你看见,我操作;缺一方都无法逃脱。

SplitSight 是一个为 WebMCP 演示设计的三关人机协作密室。人类看到 Canvas 中的现场线索,Agent 只能通过页面工具读取机关与人类主动共享的观察。任何一方都无法独自通关。

Why this demonstrates WebMCP

这不是让 Agent 独自解题、最后请人点确认:

  • HUMAN EYES 中的视觉谜底不会出现在 WebMCP 状态或工具返回值中。
  • 人类每关都要亲自观察并点击答案,共产生三次决定。
  • AGENT TOOLS 可以扫描和改变机关,但在缺少人类观察时会确定性阻断。
  • 最终出口必须同时匹配 Agent 提案与人类选择。
  • HUMAN / AGENT / ROOM 的全部读取、等待、失败与成功都显示在共享因果轨迹里。

Canvas 隔离是明确的游戏能力边界,不是浏览器安全边界;项目不宣称能阻止拥有完整屏幕视觉能力的 Agent 作弊。

Run locally

Static hosting is required because the app uses JavaScript modules.

cd feast-board
npx serve .

Then open the printed http://127.0.0.1:PORT/ URL in the ChatGPT desktop in-app browser. The header should show WebMCP READY · 8 TOOLS.

Language / 语言

The interface defaults to English. Use EN / 中文 in the header to switch the entire experience, including the Canvas clues, live instructions, mechanism status, causal trail, toast messages, and localized WebMCP results. The preference is stored locally and switching languages never resets room progress.

页面默认使用英文。可通过顶栏的 EN / 中文 切换完整界面;Canvas 线索、实时提示、机关状态、因果轨迹、Toast 和 WebMCP 返回内容都会同步切换。语言偏好保存在本地,切换语言不会重置密室进度。工具名称和参数值保持英文,以保证 WebMCP 调用稳定。

Judge flow

  1. Click Reset all three rooms(中文界面:重置三关密室).

  2. Send the prompt shown at the bottom of the page:

    Use get_room_state and scan_room. You cannot see clues in HUMAN EYES. Work stage by stage: when a human observation is required, stop and ask me to click it. Read my shared observation, operate the mechanism, and never choose the final exit for me.
    
  3. When the Agent stops at the mirror room, watch the Canvas, click Triangle(三角), then say continue.

  4. In the portrait gallery, watch for the blink, click Archivist(档案员), then say continue.

  5. In the exit hall, compare the live guardian mark with the two doors, click Moon Door(月门), then say continue.

  6. Confirm the room reaches ESCAPED, the human decision counter reads 3 / 3, and the causal trail contains HUMAN / AGENT / ROOM events.

The fixed path is deliberate so judges can reproduce the same interaction quickly.

WebMCP tools

Tool Role
get_room_state Read shared progress; never returns visual answers
scan_room Inspect the current mechanism and reveal the next human task
read_human_observation Read only what the human deliberately clicked
align_mirrors Apply the shared symbol observation
open_compartment Open the compartment behind the shared portrait
analyze_exits Compare structural facts without seeing the live guardian mark
propose_exit Record a reversible Agent recommendation
execute_escape Open only the door selected by the human and proposed by the Agent

Test

npm test

The deterministic suite covers secret redaction, missing-human-input blocks, correction after a wrong observation, explicit sharing, exit override, causal events, and the complete three-decision path.

Stack

Static HTML, CSS, Canvas, and JavaScript modules. State is stored in localStorage. There is no backend, model API, in-page chat box, or external asset dependency.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages