on-x / emit / waterfall 恒返 E_NOT_CARRIED(-2)(bridge.rs:681-731)。其中 on-x 是唯一无法被 Skill / Hook / MCP 替代的能力——它是插件在工具执行链上「看一眼、改一改」的唯一入口。没有它,插件永远只能做「静态贡献」,做不了「运行时管家」。
on-x
emit
waterfall
E_NOT_CARRIED(-2)
bridge.rs:681-731
三条不可能一次铺全,建议只做 on-x 一个原语、只开三个挂点。
xuanwu-code/xwwasm
v0.1.18
75457fb
crates/xw-plugin-kernel/src/bridge.rs:681
host_on_x
:697
host_emit
:712
host_waterfall
E_NOT_CARRIED
bridge.rs:401
seam.rs
G9_DUAL_TRACK_ADJUDICATION.md
kernel 的事件面是类型门控(编译期 on::<T>()),没有字符串键注册面;在 kernel 侧加「按事件名订阅」等于动它冻结的契约面,排期不可控。
on::<T>()
替代路径:由 xwwasm 的 bridge 自维护订阅表(HashMap<(plugin, event)>),由 xwcode 侧在固定挂点主动回调 guest 的导出函数。三个挂点都在 xwcode 仓内,一仓内几天可闭合,不等 kernel 排期。
xwwasm
HashMap<(plugin, event)>
xwcode
tool:before
tool:after
prompt:build
on_event(event_ptr, event_len, payload_ptr, payload_len) -> i64
0
>0
<0
tool:before 等于给插件一票否决权。谁能装这类插件必须独立开关(默认关),不能与「只读贡献型」插件共用同一信任档。
write_file
/tmp/x
rm -rf
run_shell
prompt-conventions
-2
audit/plugin-capability-2026-11-04/00-CAPABILITY_AUDIT.md §2 · 01-CAPABILITY_PROPOSAL.md §6 L3 与 §7.4
audit/plugin-capability-2026-11-04/00-CAPABILITY_AUDIT.md
01-CAPABILITY_PROPOSAL.md
结论
on-x/emit/waterfall恒返E_NOT_CARRIED(-2)(bridge.rs:681-731)。其中on-x是唯一无法被 Skill / Hook / MCP 替代的能力——它是插件在工具执行链上「看一眼、改一改」的唯一入口。没有它,插件永远只能做「静态贡献」,做不了「运行时管家」。三条不可能一次铺全,建议只做
on-x一个原语、只开三个挂点。钉面
xuanwu-code/xwwasm· tagv0.1.18(75457fb)crates/xw-plugin-kernel/src/bridge.rs:681host_on_x/:697host_emit/:712host_waterfall,三者均E_NOT_CARRIEDbridge.rs:401注释原文:「接口面保留(不删)∧ 实现返回E_NOT_CARRIED(响亮非静默)」seam.rs头注引G9_DUAL_TRACK_ADJUDICATION.md§34 / §61 ——「WIT 首端到端限只读贡献型 seam;waterfall/veto 类热路径不首迁(L3 性能边界)」为什么绕开 kernel
kernel 的事件面是类型门控(编译期
on::<T>()),没有字符串键注册面;在 kernel 侧加「按事件名订阅」等于动它冻结的契约面,排期不可控。替代路径:由
xwwasm的 bridge 自维护订阅表(HashMap<(plugin, event)>),由xwcode侧在固定挂点主动回调 guest 的导出函数。三个挂点都在xwcode仓内,一仓内几天可闭合,不等 kernel 排期。要做
on-x实装,仅三个事件:tool:before—— 入参可改、可拒(拒 = 拦下这次工具调用)tool:after—— 结果可改、只读观测prompt:build—— 可追加段落,不可删改他段on_event(event_ptr, event_len, payload_ptr, payload_len) -> i64,返回0= 放行,>0= 新载荷句柄,<0= 拒绝(tool:before专用)。tool:before有强制超时(建议 50 ms),超时视为放行并记台账,不允许插件卡住工具链。emit/waterfall仍返回E_NOT_CARRIED,不顺手做——waterfall是 L3 性能边界,emit缺消费者。安全红线
tool:before等于给插件一票否决权。谁能装这类插件必须独立开关(默认关),不能与「只读贡献型」插件共用同一信任档。验收
tool:before把write_file的 path 改成/tmp/x,宿主实际写入/tmp/x。rm -rf的run_shell返拒绝 ⇒ 工具未执行,且宿主收到可归因的拒因。prompt-conventions装在同一宿主,工具调用耗时无显著变化。emit/waterfall仍返-2(防止顺手实现导致语义漂移)。关联
audit/plugin-capability-2026-11-04/00-CAPABILITY_AUDIT.md§2 ·01-CAPABILITY_PROPOSAL.md§6 L3 与 §7.4