/** * @fileoverview The not-found answer for a DOI or prefix Crossref holds nothing for, branched on * which registration agency the DOI registry says holds it. A DOI another agency registered * (DataCite, JaLC, mEDRA, …) is valid and simply absent from Crossref, a DOI no agency registered * is mistyped or invented, and the two call for opposite next moves; without the registry's * answer both get the same advice. The agency is named in the message and the hint as well as * on `data.registrationAgency`, since `error.data` never reaches a client that reads only * `content[]`. When the registry gives no readable answer, the message and hint are exactly the * ones the tool gave before the lookup existed. * @module mcp-server/tools/registration-agency */ import type { RegistrationLookup } from '../../services/crossref/crossref-service.js'; /** What the throw site passes to `ctx.fail`: the message, and the fields to spread into `data`. */ export type NotFoundDetail = { message: string; data: { registrationAgency?: string; recovery?: { hint: string; }; }; }; /** * Build the not-found message, hint, and agency for one registry answer. `message` and `recovery` * are the tool's own not-found text and declared recovery: the message leads every branch, and an * absent `data.recovery` leaves the declared recovery as the hint the framework sends. */ export declare function notFoundDetail(args: { subject: 'doi' | 'prefix'; message: string; recovery: string; lookup: RegistrationLookup; }): NotFoundDetail; //# sourceMappingURL=registration-agency.d.ts.map