CMDCGateway.EventTranslator (cmdc_gateway v0.3.0)

Copy Markdown View Source

内部 CMDC.Event.t() → 对外 JSON schema 翻译层。

字段命名统一 camelCase。SDK 和前端消费此格式。

对外事件列表

会话生命周期

事件类型说明
agent_startAgent 开始处理
agent_end本轮完成,含 tokenUsage
agent_abortAgent 被中止
prompt_received收到用户 prompt

流式响应

事件类型说明
message_startLLM 开始生成
message_delta流式 token 片段
thinking_start思考链开始
thinking_delta思考链 token

工具

事件类型说明
tool_calls本轮工具调用数
tool_execution_start工具开始执行
tool_execution_end工具执行完成
tool_call_unknown未知工具被调用
tool_attached(v0.2 RFC C9) 运行时挂载
tool_detached(v0.2 RFC C9) 运行时卸载

HITL

事件类型说明
approval_required等待人类审批
approval_resolved审批已决定
ask_userAgent 向用户提问

v0.2 控制面

事件类型说明
model_switched(RFC C8) 模型切换
memory_flushed(Phase 10C) Memory 落盘
plugin_event(RFC D14) 通用插件事件包络
steering(Phase 10A) 中段注入

错误

事件类型说明
error运行时错误

Summary

Functions

心跳 SSE 注释行,保持连接。

将翻译后的事件编码为 SSE 格式字符串(含 event:data: 行)。

将内部事件翻译为对外 JSON map。

Functions

heartbeat()

@spec heartbeat() :: iodata()

心跳 SSE 注释行,保持连接。

to_sse(event_type, data)

@spec to_sse(String.t(), map()) :: iodata()

将翻译后的事件编码为 SSE 格式字符串(含 event:data: 行)。

translate(arg1)

@spec translate(CMDC.Event.t()) :: {:ok, String.t(), map()} | :skip

将内部事件翻译为对外 JSON map。

返回 {:ok, event_type, json_map}:skip(不对外暴露的事件)。