capsocket — one narrow socket per capabilitycapsocket——一个能力一条窄 socket
Parent: capabilities
沙箱化的内置插件(summarize / retrieval / booker / mail-sender;ask-visitor 同样在沙箱里,但没有声明任何 host op,所以根本没有 socket)在网络隔离(--unshare-net)下运行,通过每个能力一条 unix socket(/run/standmeet/<id>.sock,由 hostop.SocketPath 推导——internal/infra/hostop/op.go)触达宿主数据,走 newline-JSON 线协议(internal/capabilities/capsocket/server.go)。要点在于窄:每个能力只看得见自己那一小片 API 面,而不是一个通用后端——被攻破插件的爆炸半径就是一条 socket 上的那几个动词。对比:通用 HTTP 回环会把整个管理面拱手交给每个插件。
自 2026-08-01(5cb8d8464)起,动词不再按能力手工接线:manifest 从一份固定词表里按名字点单(host_ops,如 conversation.read、connector.invoke、capstore.*),入站收口点 internal/routes/hostdesk 按这份声明为每条 socket 提供服务——不认识的名字在启动时就失败,而不是等 owner 点到才失败。
Cross-links: sandbox-js-hardening, mcp-capability-plugins.