// ---------------------------------------------------------------------------
// Wire-level HTTP errors. Lives in the SDK so plugin `HttpApiGroup`
// definitions (which sit on the SDK side of the dependency graph and
// must stay publishable) can declare them without dragging in the
// server-only `@executor-js/api` package. The HTTP edge in
// `@executor-js/api` re-exports these and pairs them with the
// translation/capture helpers used by handlers.
// ---------------------------------------------------------------------------

import { Schema } from "effect";

/** Public 500 surface. Opaque by schema — only `traceId` crosses the wire. */
export class InternalError extends Schema.TaggedErrorClass<InternalError>()(
  "InternalError",
  {
    /** Opaque correlation id for backend lookup (Sentry event id, log line, etc.). */
    traceId: Schema.String,
  },
  { httpApiStatus: 500 },
) {}
