Skip to content

App Server 宿主契约

App Server 是 Lime runtime current 写入边界。Desktop Host 和 产品应用 只能通过 host capability 或 App Server client 接入。

Host 职责

  • 启动、停止、监控 App Server sidecar。
  • 提供 Host Snapshot:runtime readiness、Provider readiness、capabilities、data root。
  • 转发 JSON-RPC 或 capability invoke。
  • 拥有 Provider settings UI、账号、billing、host policy。
  • 不复制 runtime business logic。

App Server 职责

  • 拥有 Provider store。
  • 拥有 RuntimeCore facts。
  • 提供 agentSession/turn/startagentSession/eventagentSession/read 等 current API。
  • 写入 runtime events、read models、artifact/evidence refs。
  • 对 产品应用 fail closed,不从本地 key/env key 偷读凭证。

Current JSON-RPC 面

方法方向说明
agentSession/turn/startproduct -> runtime提交用户 intent、业务 refs、provider/model preference。
agentSession/turn/cancelproduct -> runtime取消 turn 或 active run。
agentSession/action/respondproduct -> action owner回复审批、结构化输入、plan review。
agentSession/event/subscriberuntime -> client订阅 RuntimeEvent stream。
agentSession/read/threadclient -> runtime读取 ThreadReadModel。
agentSession/read/taskclient -> runtime读取 TaskSnapshot。
agentSession/evidence/exportclient -> evidence owner导出 evidence pack。

具体命名可随 Lime App Server 当前协议调整,但语义必须保持:写入事实走 RuntimeCore / owner service,读取状态走 read model,UI 不直接写 DB。

方法分组

分组方法语义owner
Session / turncreate session、start turn、cancel turn、resume turnRuntimeCore
Eventssubscribe、cursor repair、stream heartbeatRuntimeCore event store
Read modelsread thread、read task、read session、read artifact summaryRuntimeCore / owner services
Actionsrespond action、cancel action、expire actionaction owner
Tools / capabilitieslist available tools、resolve capability、check policycapability gateway / policy service
Providerread readiness、update settings、validate modelProvider store
Evidenceexport pack、read review/replay refsevidence owner

App Server 可以把具体方法命名成 Lime 当前协议,但不能让产品应用绕过这些 owner 直接写 facts。

Transport contract

传输用途要求
Desktop Host bridgeLime 桌面主路径转发到 App Server,不在 Electron 里复制 runtime logic。
HTTP JSON-RPChosted / remote与 bridge 保持同一 method semantic 和错误模型。
SSE / event streamRuntimeEvent 订阅保留 sequence、cursor、repair 语义。
Fixture replay测试只能用于 conformance,不作为 production fallback。

@limecloud/agent-runtime-client 负责隐藏这些 transport 差异;@limecloud/agent-runtime-ui 不直接接触 transport。

产品应用 responsibilities

  • 提供业务上下文。
  • 发起 turn、cancel、resume、respond action。
  • 消费 AgentUI 投影。
  • 在 hosted mode 下迁移旧 key 后清除本地 key。

Host Snapshot

Host Snapshot 至少应暴露:

字段用途
appServer.ready判断 runtime 是否可用。
provider.ready判断是否需要进入设置。
capabilities判断模型、工具、文件、网络、浏览器等能力是否可用。
policy判断 sandbox、permission、hosted mode 限制。
dataRoot只用于显示和 diagnostics,不让产品应用拼路径读写。

Host Snapshot 不是 runtime read model。它描述平台宿主状态,不描述 turn/tool/action/artifact 的业务事实。

必需失败模式

失败必需行为
Provider not ready返回 needs-setup / blocked,不读取 产品应用 local key。
Host capability missing标记 unavailable,提示进入平台设置或 standalone fallback。
Runtime stream interruptedUI 标记 stale 并走 read model repair。
Action unresolved保持 waiting,不当作 approved。
Mock backend only生产路径 fail closed。

Mock 与 hosted mode

Mock 只能出现在 fixture、conformance 和本地显式测试中。Hosted mode 下,如果 Provider 尚未迁到 App Server Provider Store,产品应用必须显示 setup / blocked 状态,不能继续读取本地 key、环境变量或嵌入式测试 provider。

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