e2m2e.api.mcp.envelope#
统一信封:MCP 传输层输出形状(ADR 0014 §4)。
所有工具调用的返回都包成 {status, data, error, meta}:成功时
status="ok"、data 为 Response 模型的 JSON 序列化;失败时
status="error"、error 为结构化错误(错误码 + message + details)。
异常在 api/ 边界翻译,不向 Agent 泄漏原始 traceback。
Attributes#
Functions#
|
构造成功信封。 |
|
构造失败信封。 |
|
未知工具(placeholder 或未暴露的方法不注册)的失败信封。 |
|
校验参数并执行工具方法,返回 |
|
执行一个 Facade 工具方法并包成信封。 |
Module Contents#
- e2m2e.api.mcp.envelope.Envelope#
- e2m2e.api.mcp.envelope.error_envelope(code: str, message: str, details: dict[str, Any] | None = None) Envelope#
构造失败信封。
- e2m2e.api.mcp.envelope.tool_not_found(name: str) Envelope#
未知工具(placeholder 或未暴露的方法不注册)的失败信封。
进程内(handle_call_tool)与 worker 子进程(run_request)同名同义: 消息单一来源,两边不漂移。
- e2m2e.api.mcp.envelope.dispatch_tool(method: Any, arguments: dict[str, Any], *, extra_kwargs: dict[str, Any] | None = None) tuple[Any, Envelope | None]#
校验参数并执行工具方法,返回
(原始结果, None)或(None, 错误信封)。与
invoke_tool()同一套校验与错误翻译,但不做结果的 JSON 化—— 需要在转储前处理原始结果的传输层(如 sidecar 的二进制帧抽取,ADR 0035) 用这个。失败时返回错误信封,不抛异常。extra_kwargs是传输层注入的 额外协作者(如进度回调),按方法签名过滤后并入调用关键字。
- e2m2e.api.mcp.envelope.invoke_tool(method: Any, arguments: dict[str, Any], *, extra_kwargs: dict[str, Any] | None = None) Envelope#
执行一个 Facade 工具方法并包成信封。
入参经
request_model校验(ValidationError →INVALID_PARAMS),OrbitError原样翻译,其余异常归为 ``INTERNAL_ERROR``(只保留异常类型 名,不泄漏 traceback)。校验与错误翻译见dispatch_tool()。