e2m2e.api.cli.main#

e2m2e 命令入口。

工具子命令与 MCP 工具面对称(ADR 0014 决策 5,#602):每个 mcp_exposed 且已实现的 Facade 方法都有一个同名子命令(下划线转连 字符),参数从同一份 Pydantic 请求模型生成,输出是同一个统一信封。 部署入口:mcp-serve(MCP 部署薄包装)、serve-stdio(GUI sidecar 入口, ADR 0035)。

约定:信封 JSON 写 stdout;进度与 argparse 用法错误写 stderr;信封 status=ok 退出码 0,error 非 0。长任务工具改跑 worker 子进程 (路由清单在执行核心 LONG_RUNNING_TOOLS,#601),Ctrl-C kill 子进程。

Functions#

tool_subcommands(→ dict[str, e2m2e.api.facade.ToolInfo])

CLI 子命令清单:连字符命名 → 工具元数据(placeholder 不注册)。

build_parser(→ argparse.ArgumentParser)

构建命令行解析器。

main(→ int)

Module Contents#

e2m2e.api.cli.main.tool_subcommands(facade: e2m2e.api.facade.Facade) → dict[str, e2m2e.api.facade.ToolInfo]#

CLI 子命令清单:连字符命名 → 工具元数据(placeholder 不注册)。

e2m2e.api.cli.main.build_parser(facade: e2m2e.api.facade.Facade | None = None) → argparse.ArgumentParser#

构建命令行解析器。

Args:
facade: 工具子命令从它的 tool_inventory 派生;None 时只注册

部署子命令(向后兼容既有调用)。

e2m2e.api.cli.main.main(argv: collections.abc.Sequence[str] | None = None) → int#