插件视图与双轨闭环:aida_plugin_open_view 远端结算与 Local Workbench 原生视图

插件视图与双轨闭环:aida_plugin_open_view 远端结算与 Local Workbench 原生视图 由 Archify 生成的时序图。 调 aida_plugin_open_view → assertWorkPluginView 校验 stateToolId(read) 写 domain_fact(plugin_view:ixId) + 建 plugin_view 交互卡并挂起载体 readTaskView(taskBinding) → callFromLocal(origin=ui, stateToolId) 校验 contractDigest & 仅允许 stateToolId(read) → 拉取视图初始数据 用户点击视图动作 → Kernel settle(actionId, arguments) readWorkPluginActionInTx:反查 readOriginalViewCall + 置 plugin_action_ready 生成 continuation(stepId=settlementId, userActionReceipt) 下发 Host taskInteractions.verify 通过 → origin=ui 调用已声明的视图动作工具 本地视图 submitAction(owner=local) → LocalPluginTaskInteractions 核对原交互 runtime.answer 持久化 answerFactId(拒绝强制校验 {kind:'reject'}) executeLocal 校验 executionDigest → Journal(local:executionId) 执行 阶段 1:aida_plugin_open_view 契约核验、plugin_view 事实封存与视图只读拉取 阶段 2:远端视图提交动作、readOriginalViewCall 血统反查与 UI 动作授权派发 阶段 3:Local Workbench 原生视图(LocalPluginTaskInteractions + executeLocal) PluginMainView · Task Bound UI · 时序参与者 PluginMainView Task Bound UI Desktop PluginHost · Remote & Local · 时序参与者 Desktop PluginHost Remote & Local Plugin Worker · stateTool / action · 时序参与者 Plugin Worker stateTool / action Agent Work Control · PluginView Source · 时序参与者 Agent Work Control PluginView Source PG Events & Kernel · plugin_view Fact · 时序参与者 PG Events & Kernel plugin_view Fact 图例 请求 返回 安全

视图只读拉取与动作复用

  • • stateToolId 强制为 read,Agent 直接调用会被 PLUGIN_VIEW_ONLY 拦截
  • • 视图按钮只要求工具已声明且允许 UI origin(可复用普通工具操作)
  • • userActionOnly 工具禁止模型或 UI 直接调,必须经视图交互卡结算

远端血统反查防模型伪造

  • • readOriginalViewCall 核对 runtime_events 中封存的 plugin_view 事实
  • • buildPluginViewInteractionId 确定性绑定 (runId, toolCallId, invocationId)
  • • stepId 强制等于 settlementId,杜绝模型凭空捏造视图动作

Local Workbench 本地视图闭环

  • • LocalPluginTaskInteractions 绑定 owner=local 与本地 Store 交互事实
  • • 待决视图拒绝仅接受精确 {kind:'reject'},活跃幂等、终态失效
  • • executeLocal 以 local:executionId 写入原 Journal,恢复关联回执不重放