Structured, agent-facing error envelope for the oraclemcp Oracle MCP
server (plan §8.2, bead P0-1).
The contract: agent-facing failures are returned as an MCP tool result
with isError: true and an actionable [ErrorEnvelope] — never as an
opaque JSON-RPC numeric error code. Every envelope names a machine-stable
[ErrorClass], a human/LLM-readable message, and a concrete next step
(suggested_tool, fuzzy_matches, or next_steps). For example, an
Oracle ORA-00942 becomes
{ "isError": true, "error_class": "OBJECT_NOT_FOUND", "suggested_tool": "oracle_schema_inspect", "fuzzy_matches": [...] }.
This crate is a leaf of the oraclemcp-* core (it imports no other
workspace crate) so every layer can produce the same envelope shape
without a dependency cycle.