Add host bootstrap and repair helpers
Add a dedicated pyro host surface for supported chat hosts so Claude Code, Codex, and OpenCode users can connect or repair the canonical MCP setup without hand-writing raw commands or config edits. Implement the shared host helper layer and wire it through the CLI with connect, print-config, doctor, and repair, all generated from the same canonical pyro mcp serve command shape and project-source flags. Update the docs, public contract, examples, changelog, and roadmap so the helper flow becomes the primary onramp while raw host-specific commands remain as reference material. Harden the verification path that this milestone exposed: temp git repos in tests now disable commit signing, socket-based port tests skip cleanly when the sandbox forbids those primitives, and make test still uses multiple cores by default but caps xdist workers to a stable value so make check stays fast and deterministic here. Validation: - uv lock - UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make check - UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make dist-check
This commit is contained in:
parent
535efc6919
commit
899a6760c4
25 changed files with 1658 additions and 58 deletions
|
|
@ -16,6 +16,11 @@ from pyro_mcp.contract import (
|
|||
PUBLIC_CLI_COMMANDS,
|
||||
PUBLIC_CLI_DEMO_SUBCOMMANDS,
|
||||
PUBLIC_CLI_ENV_SUBCOMMANDS,
|
||||
PUBLIC_CLI_HOST_CONNECT_FLAGS,
|
||||
PUBLIC_CLI_HOST_DOCTOR_FLAGS,
|
||||
PUBLIC_CLI_HOST_PRINT_CONFIG_FLAGS,
|
||||
PUBLIC_CLI_HOST_REPAIR_FLAGS,
|
||||
PUBLIC_CLI_HOST_SUBCOMMANDS,
|
||||
PUBLIC_CLI_MCP_SERVE_FLAGS,
|
||||
PUBLIC_CLI_MCP_SUBCOMMANDS,
|
||||
PUBLIC_CLI_RUN_FLAGS,
|
||||
|
|
@ -102,6 +107,29 @@ def test_public_cli_help_lists_commands_and_run_flags() -> None:
|
|||
env_help_text = _subparser_choice(parser, "env").format_help()
|
||||
for subcommand_name in PUBLIC_CLI_ENV_SUBCOMMANDS:
|
||||
assert subcommand_name in env_help_text
|
||||
host_help_text = _subparser_choice(parser, "host").format_help()
|
||||
for subcommand_name in PUBLIC_CLI_HOST_SUBCOMMANDS:
|
||||
assert subcommand_name in host_help_text
|
||||
host_connect_help_text = _subparser_choice(
|
||||
_subparser_choice(parser, "host"), "connect"
|
||||
).format_help()
|
||||
for flag in PUBLIC_CLI_HOST_CONNECT_FLAGS:
|
||||
assert flag in host_connect_help_text
|
||||
host_doctor_help_text = _subparser_choice(
|
||||
_subparser_choice(parser, "host"), "doctor"
|
||||
).format_help()
|
||||
for flag in PUBLIC_CLI_HOST_DOCTOR_FLAGS:
|
||||
assert flag in host_doctor_help_text
|
||||
host_print_config_help_text = _subparser_choice(
|
||||
_subparser_choice(parser, "host"), "print-config"
|
||||
).format_help()
|
||||
for flag in PUBLIC_CLI_HOST_PRINT_CONFIG_FLAGS:
|
||||
assert flag in host_print_config_help_text
|
||||
host_repair_help_text = _subparser_choice(
|
||||
_subparser_choice(parser, "host"), "repair"
|
||||
).format_help()
|
||||
for flag in PUBLIC_CLI_HOST_REPAIR_FLAGS:
|
||||
assert flag in host_repair_help_text
|
||||
mcp_help_text = _subparser_choice(parser, "mcp").format_help()
|
||||
for subcommand_name in PUBLIC_CLI_MCP_SUBCOMMANDS:
|
||||
assert subcommand_name in mcp_help_text
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue