Does Quantrocket know if its making an order to open or close a position?

Question is in the title.

Context on application, we are writing some custom logging to stitch together the dataframes from signals, orders, executions, etc to produce an end to end perspective on what we're calling a "trade."

Currently, I am having a lot of difficulty attempting to figure out if an order is opening or closing a position. I can make some assumptions programmatically, but when multiple orders (due to day trading limit orders) happen to open and close a position, the complexity skyrockets.

Any advice on how to correlate an orderID with "opening" or "closing" a position would be greatly appreciated!

You can query positions from the blotter. If there's a position and it has the opposite sign as the order, the order is closing (or reducing) the position, otherwise it's opening (or increasing) the position.

Is there historical information available from blotter? Lets say I would like to produce a report at the EOD instead of real time.

Yes. You can use the API Reference to find this information.

I see how I can get historical data of orders, but there doesn't appear to be historical data for positions. I am assuming I would need to reconstruct the positions taken and closed using the order data?

You're correct, historical positions aren't recorded. You could reconstruct them from orders or executions, or you could look at the NetExposure field of the PNL file run with details=True.