/** * Sentry incident adapter — real implementation. * * The Sentry REST API gives us issues with first/last seen timestamps and * culprit/frames. We fetch the issue list, optionally fetch the latest event * for each to get stack frames, and map every result onto the Mneme `Incident` * shape so the temporal correlation engine can rank against commits. * * Endpoint reference: * GET /api/0/projects/{org}/{project}/issues/?statsPeriod=... * GET /api/0/issues/{id}/events/latest/ * * Auth: Bearer . Token must have `event:read` and `project:read`. * * This adapter is opt-in. The token never touches disk. Rate-limit handling * matches the GitHub adapter (Retry-After + exponential backoff on 429/5xx). */ import type { Incident, correlate as CorrelateNS } from "@mneme-ai/core"; export interface SentryAdapterOptions { orgSlug: string; projectSlug: string; apiToken: string; /** https://sentry.io for SaaS, https://sentry.your-co.com for self-hosted. */ baseUrl?: string; /** Concurrent event-detail requests. Default 4. */ concurrency?: number; /** Per-request timeout (ms). */ timeoutMs?: number; /** Pull stack frames from the most recent event of each issue. Default true. */ fetchStackFrames?: boolean; /** Cap on issues fetched. Default 1000. */ maxIssues?: number; } export declare class SentryAdapter implements CorrelateNS.IncidentAdapter { readonly source: "sentry"; private readonly base; private readonly token; private readonly orgSlug; private readonly projectSlug; private readonly concurrency; private readonly timeoutMs; private readonly fetchStackFrames; private readonly maxIssues; constructor(opts: SentryAdapterOptions); fetch(opts: CorrelateNS.FetchIncidentOptions): Promise; private listIssues; private mapIssue; private fetchLatestEventFrames; private requestWithLink; } //# sourceMappingURL=sentry.d.ts.map