e2m2e.api.execution#
传输中立执行核心:工具执行的单一入口(#601,ADR 0014 增补)。
工具面派生(mcp/tools.py)、执行策略(LONG_RUNNING_TOOLS)、二进制
帧画布契约(本模块 _BINARY_TOOLS 一族)在此各只有一份定义;MCP server
与 sidecar 退成薄适配器——前者包 CallToolResult,后者包 JSON 行加帧。
worker 子进程本体(mcp/worker.py)同样经 execute_tool() 执行。
本模块不 import mcp SDK、不 import anyio(worker 与 sidecar 同款约束,缺
[mcp] extra 也能跑);异步 spawn 的泵在 mcp/server.py。
Attributes#
Functions#
|
执行前置校验:未知工具(含 placeholder)与非法 dtype。 |
|
执行一个工具调用,返回 |
|
worker 子进程请求行载荷( |
Module Contents#
- e2m2e.api.execution.LONG_RUNNING_TOOLS#
- e2m2e.api.execution.BINARY_DTYPES = ('f32', 'f64')#
- e2m2e.api.execution.WORKER_ARGV#
- e2m2e.api.execution.BINARY_FRAME_TOOLS#
- e2m2e.api.execution.preflight(facade: e2m2e.facade.Facade, tool: str, binary_dtype: Any = None) e2m2e.api.mcp.envelope.Envelope | None#
执行前置校验:未知工具(含 placeholder)与非法 dtype。
合法返回 None;非法返回错误信封(不执行)。调用方(sidecar)在产出 进度行之前用它决定是否短路——规则单一来源在此,行数策略归适配器。
- e2m2e.api.execution.execute_tool(facade: e2m2e.facade.Facade, tool: str, arguments: dict[str, Any], *, progress_callback: Any = None, binary_dtype: Any = None) tuple[e2m2e.api.mcp.envelope.Envelope, list[bytes]]#
执行一个工具调用,返回
(统一信封, 二进制帧序列)。唯一执行入口(#601):规格查找、校验、错误翻译、画布帧抽取都只在 此。
binary_dtype缺省或工具不在帧清单内时走信封内联降级(MCP 纯 文本通道);声明 dtype 且工具在帧清单内时数组出帧,信封里的对应字段 置 None 占位(binary_frames计数是 sidecar 协议字段,由适配器补)。progress_callback按方法签名过滤(见envelope.dispatch_tool()), 未接受的工具零影响。
- e2m2e.api.execution.worker_request_payload(tool: str, arguments: dict[str, Any], config: e2m2e.api.config.Config) dict[str, Any]#
worker 子进程请求行载荷(
{"tool", "arguments", "config"})。注入的
Config随请求下发(#601):worker 用它重建 Facade, 不从环境变量静默重建;载荷形状的唯一定义在此,server 构建与 worker 解析共用。