Left and right of directional vector3

So I have code which spawns out a room in a given direction and my code works but only for positive directions of X or Y.
What I am struggling with is how to get the left and right of another vector, assuming that other vector is forward.
For example, the left and right of (0,0,1) are (-1,0,0) and (1,0,0)
The left and right of (1,0,0) are (0,0,-1) and (0,0,1)
I tried something like subtraction, since I am iterating to the left and right,

        Vector3 unadjustedPos = new Vector3(1,0,1);
        Vector3 unadjustedNeg = new Vector3(-1,0,-1);
        Vector3 adjustedPosDir = unadjustedPos - direction;
        Vector3 adjustedNegDir = unadjustedNeg + direction;

but again this only works for positive directions of X and Z. At this moment I am not concerned about the Y direction, assuming that is always 0.

So again - given a directional vector (0,0,-1) or any vector, how can I find the left and right positional vectors? I feel like I am missing a builtin or something with simple maths…

Thank you.

Sorry if I use incorrect terms in some places, but I think you can get the idea…
Ah, so, the way to think about rotation and directional vectors relative to object rotation in a world scope is not by thinking that each rotation of an object is rotated relative to Quaternion.identify, as an unmodified Vector3, though that IS true of identity…

The way to work with the rotation of objects relative to a vector which is directional i.e. (1,0,0), is to set the transform.right or left, .forward, etc of the object you want to rotate to be that vector, as in

      wall.transform.right = new Vector3(0,0,1);