The opacity is not provided because in the effect compositor, it will pre-draw the object with its opacity to an offscreen surface, and then run your effect on the object with the opacity already having taken effect. So the opacity is in the alpha component of the foreground texture.
It kind of has to work this way otherwise every single effect would also have to reimplement every part of the default rendering system, including things like the color tint, opacity, and some special handling of depth. And then if the effect is run later in the chain, none of those things apply anyway. So Construct just pre-draws it with the default rendering system and then your shader is processed on the result. (Unless none of the default rendering options affect rendering, in which case it can skip that and process your shader directly, but in that case it means the opacity is definitely 1.)