Skip to content

Provider Boundary ​

@limecloud/agent-runtime-ui 当前标准不是 Provider / hook runtime,而是受控 React surface。公共 API 只接收 AgentUiProjectionState、callbacks 和 labels。

当前标准 ​

tsx
<AgentUiProjectionView
  state={state}
  onResolveAction={handleResolveAction}
  onSelectArtifactRef={handleOpenArtifact}
  onSelectEvidenceRef={handleOpenEvidence}
  labels={labels}
/>

这个设计是刻意的:runtime transport、projection reducer、React presentation 分别属于不同包,产品应用必须显式决定每一层的 owner。

为什么不提供公共 Provider ​

原因说明
避免隐式 transportProvider 很容易顺手创建 runtime client,导致 UI 包拥有 transport。
避免 session store 膨胀产品应用已有自己的 session、workspace、artifact store。
避免 mock fallback 回流Provider 若内置 fixture fallback,会破坏 production fail-closed。
保持测试分层reducer 在 projection 包测,React 只测渲染和 callback。

允许的本地 Provider ​

产品应用可以在自己的业务壳层写本地 Provider,例如保存展开/折叠、focus、selected tab、右栏布局等 presentation state。但它不能:

  • 创建 runtime transport。
  • 订阅 App Server event stream。
  • 修改 AgentUiProjectionState 里的 runtime facts。
  • 从 assistant text 解析 tool/action/artifact 状态。
  • 读取 Provider key 或 App Server DB。

未来 facade ​

未来如果需要 @limecloud/agent-ui facade,它只能 re-export contracts、projection 和 runtime-ui 的 UI 侧能力。它不得导出 runtime transport,也不得把 Provider 变成新的 runtime owner。

验证入口 ​

bash
npm --prefix packages/agent-runtime-ui run test

Lime Agent Workbench 是面向 Lime AgentRuntime 与 AgentUI 的治理优先标准。