///|
pub async fn import_packet(
  packet : ExternalProposalPacket,
  packet_path : String,
  moonclaw_root? : String = default_moonclaw_root(),
  home? : String = default_moonclaw_home(),
  cwd? : String = ".",
  confirm? : Bool = false,
  run_inline? : Bool = false,
) -> ProposalImportReceipt {
  let resolved_cwd = resolve_root_path(cwd)
  let resolved_home = resolve_home_path(home, resolved_cwd)
  let resolved_packet_path = resolve_packet_path(packet_path)
  save_packet_file(resolved_packet_path, packet)
  let cli_args = proposal_import_cli_args(
    resolved_packet_path, resolved_cwd, resolved_home, confirm, run_inline,
  )
  let (command_name, args) = moonclaw_runtime_invocation(
    moonclaw_root, cli_args,
  )
  let command = @integration.render_command(command_name, args)
  let output = @integration.run_json(command_name, args)
  let proposal_id = parse_json_string(output, "proposal_id").unwrap_or(
    "proposal-\{packet.packet_id}",
  )
  let run_id = parse_json_string(output, "run_id")
  {
    packet_id: packet.packet_id,
    packet_path: resolved_packet_path,
    proposal_id,
    run_id,
    status: if run_id is Some(_) {
      RunConfirmed
    } else {
      ProposalImported
    },
    command,
    summary: if run_id is Some(run_id) {
      "Imported \{packet.packet_id} into MoonClaw proposal \{proposal_id} and started run \{run_id}."
    } else {
      "Imported \{packet.packet_id} into MoonClaw proposal storage as \{proposal_id}."
    },
  }
}

///|
fn proposal_import_cli_args(
  resolved_packet_path : String,
  resolved_cwd : String,
  resolved_home : String,
  confirm : Bool,
  run_inline : Bool,
) -> Array[String] {
  [
    "proposal",
    "import",
    resolved_packet_path,
    "--json",
    "--cwd",
    resolved_cwd,
    "--home",
    resolved_home,
    ..if confirm {
      ["--confirm"]
    } else {
      []
    },
    ..if confirm && run_inline {
      ["--inline"]
    } else {
      []
    },
  ]
}