fix(cli): scope worker wire codec option

This commit is contained in:
letr
2026-03-14 20:34:23 +08:00
parent a979e92568
commit 5bcf259fb6
2 changed files with 14 additions and 8 deletions

View File

@@ -868,23 +868,29 @@ def cli(ctx, verbose: bool) -> None:
help="Directory containing plugin folders",
)
@click.option(
"--wire-codec",
"--worker-wire-codec",
default="json",
show_default=True,
type=click.Choice(["json", "msgpack"]),
help="Wire codec for supervisor/worker transport",
help="Wire codec for supervisor-to-worker transport",
)
def run(plugins_dir: Path, wire_codec: str) -> None:
def run(plugins_dir: Path, worker_wire_codec: str) -> None:
"""Start the plugin supervisor over stdio."""
entrypoint = (
run_supervisor(plugins_dir=plugins_dir)
if wire_codec == "json"
else run_supervisor(plugins_dir=plugins_dir, wire_codec=wire_codec)
if worker_wire_codec == "json"
else run_supervisor(
plugins_dir=plugins_dir,
worker_wire_codec=worker_wire_codec,
)
)
_run_async_entrypoint(
entrypoint,
log_message=f"启动插件主管进程,插件目录:{plugins_dir}",
context={"plugins_dir": plugins_dir, "wire_codec": wire_codec},
context={
"plugins_dir": plugins_dir,
"worker_wire_codec": worker_wire_codec,
},
)

View File

@@ -53,7 +53,7 @@ async def run_supervisor(
stdin: IO[str] | IO[bytes] | None = None,
stdout: IO[str] | IO[bytes] | None = None,
env_manager: PluginEnvironmentManager | None = None,
wire_codec: str = "json",
worker_wire_codec: str = "json",
) -> None:
transport_stdin, transport_stdout, original_stdout = _prepare_stdio_transport(
stdin,
@@ -64,7 +64,7 @@ async def run_supervisor(
transport=transport,
plugins_dir=plugins_dir,
env_manager=env_manager,
worker_wire_codec_name=wire_codec,
worker_wire_codec_name=worker_wire_codec,
)
try: