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#

preflight(→ e2m2e.api.mcp.envelope.Envelope | None)

执行前置校验:未知工具(含 placeholder)与非法 dtype。

execute_tool(→ tuple[e2m2e.api.mcp.envelope.Envelope, ...)

执行一个工具调用,返回 (统一信封, 二进制帧序列)。

worker_request_payload(→ dict[str, Any])

worker 子进程请求行载荷({"tool", "arguments", "config"})。

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 解析共用。