Add transport policy config

This commit is contained in:
jwinterm
2026-07-05 20:30:33 -04:00
parent 237d1e4fcb
commit ba620e32ca
14 changed files with 406 additions and 20 deletions
+13 -6
View File
@@ -4,6 +4,7 @@ import argparse
from pathlib import Path
import sys
from .config import load_config
from .docsgen import generate_docs
from .launch import prepare_open
from .plan import plan_url
@@ -20,9 +21,11 @@ def main(argv: list[str] | None = None) -> int:
plan_parser = subcommands.add_parser("plan", help="Plan how a URL would be opened.")
plan_parser.add_argument("url")
plan_parser.add_argument("--config", type=Path, help="Path to an AMPB config file.")
open_parser = subcommands.add_parser("open", help="Prepare a transport-aware open plan.")
open_parser.add_argument("url")
open_parser.add_argument("--config", type=Path, help="Path to an AMPB config file.")
open_parser.add_argument(
"--yes",
action="store_true",
@@ -47,9 +50,9 @@ def main(argv: list[str] | None = None) -> int:
if args.command == "route":
return _cmd_route(args.url)
if args.command == "plan":
return _cmd_plan(args.url)
return _cmd_plan(args.url, config_path=args.config)
if args.command == "open":
return _cmd_open(args.url, consent=args.yes, dry_run=args.dry_run)
return _cmd_open(args.url, consent=args.yes, dry_run=args.dry_run, config_path=args.config)
if args.command == "inspect":
return _cmd_inspect()
if args.command == "docs":
@@ -72,8 +75,9 @@ def _cmd_route(url: str) -> int:
return 0
def _cmd_plan(url: str) -> int:
plan = plan_url(url)
def _cmd_plan(url: str, *, config_path: Path | None) -> int:
config = load_config(Path.cwd(), config_path)
plan = plan_url(url, config=config)
endpoint = plan.status.endpoint if plan.status else "-"
running = str(plan.status.running).lower() if plan.status else "false"
installed = str(plan.status.installed).lower() if plan.status else "false"
@@ -86,6 +90,7 @@ def _cmd_plan(url: str) -> int:
f"installed={installed} "
f"running={running} "
f"endpoint={endpoint} "
f"policy={plan.policy_mode} "
f"requires_consent={str(plan.requires_consent).lower()} "
f"action=\"{plan.action}\" "
f"prompt=\"{prompt}\""
@@ -93,8 +98,9 @@ def _cmd_plan(url: str) -> int:
return 0
def _cmd_open(url: str, *, consent: bool, dry_run: bool) -> int:
open_plan = prepare_open(url, consent=consent, dry_run=dry_run)
def _cmd_open(url: str, *, consent: bool, dry_run: bool, config_path: Path | None) -> int:
config = load_config(Path.cwd(), config_path)
open_plan = prepare_open(url, consent=consent, dry_run=dry_run, config=config)
browse_plan = open_plan.browse_plan
setup_steps = "|".join(open_plan.setup_steps) if open_plan.setup_steps else "-"
message = _safe(open_plan.message)
@@ -105,6 +111,7 @@ def _cmd_open(url: str, *, consent: bool, dry_run: bool) -> int:
f"profile={browse_plan.route.profile} "
f"status={open_plan.status} "
f"dry_run={str(open_plan.dry_run).lower()} "
f"policy={browse_plan.policy_mode} "
f"requires_consent={str(browse_plan.requires_consent).lower()} "
f"consent_granted={str(open_plan.consent_granted).lower()} "
f"profile_path={open_plan.profile_path} "