@cyanheads/interpro-mcp-server 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/AGENTS.md +5 -4
  2. package/CLAUDE.md +5 -4
  3. package/Dockerfile +3 -3
  4. package/README.md +59 -7
  5. package/changelog/0.1.x/0.1.2.md +27 -0
  6. package/changelog/0.1.x/0.1.3.md +24 -0
  7. package/dist/index.js +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/interpro-find-proteins-by-domain.tool.d.ts +47 -2
  10. package/dist/mcp-server/tools/definitions/interpro-find-proteins-by-domain.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/interpro-find-proteins-by-domain.tool.js +87 -15
  12. package/dist/mcp-server/tools/definitions/interpro-find-proteins-by-domain.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/interpro-get-clan.tool.d.ts.map +1 -1
  14. package/dist/mcp-server/tools/definitions/interpro-get-clan.tool.js +11 -11
  15. package/dist/mcp-server/tools/definitions/interpro-get-clan.tool.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/interpro-get-entry.tool.d.ts +60 -0
  17. package/dist/mcp-server/tools/definitions/interpro-get-entry.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/interpro-get-entry.tool.js +146 -7
  19. package/dist/mcp-server/tools/definitions/interpro-get-entry.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/interpro-get-protein-domains.tool.d.ts +20 -2
  21. package/dist/mcp-server/tools/definitions/interpro-get-protein-domains.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/interpro-get-protein-domains.tool.js +98 -22
  23. package/dist/mcp-server/tools/definitions/interpro-get-protein-domains.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/interpro-search-entries.tool.d.ts +12 -0
  25. package/dist/mcp-server/tools/definitions/interpro-search-entries.tool.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/interpro-search-entries.tool.js +34 -15
  27. package/dist/mcp-server/tools/definitions/interpro-search-entries.tool.js.map +1 -1
  28. package/dist/services/interpro/description-text.d.ts +3 -0
  29. package/dist/services/interpro/description-text.d.ts.map +1 -0
  30. package/dist/services/interpro/description-text.js +179 -0
  31. package/dist/services/interpro/description-text.js.map +1 -0
  32. package/dist/services/interpro/format.d.ts.map +1 -1
  33. package/dist/services/interpro/format.js +8 -17
  34. package/dist/services/interpro/format.js.map +1 -1
  35. package/dist/services/interpro/schemas.d.ts +25 -0
  36. package/dist/services/interpro/schemas.d.ts.map +1 -1
  37. package/dist/services/interpro/schemas.js +20 -1
  38. package/dist/services/interpro/schemas.js.map +1 -1
  39. package/package.json +6 -5
  40. package/server.json +9 -3
@@ -8,7 +8,7 @@ import { BUDGET_LABEL, fitWithinBudget, jsonByteLength, RESPONSE_BYTE_BUDGET, }
8
8
  import { compareText, continuation, cursorScope, decodePositionCursor, encodePositionCursor, } from '../../../services/interpro/cursors.js';
9
9
  import { formatInterpro, normalizeImages } from '../../../services/interpro/format.js';
10
10
  import { getInterproService } from '../../../services/interpro/interpro-service.js';
11
- import { detailSchema, ExtraFeaturesSchema, isAccession, listSchema, MatchSchema, optionalString, ProteinAccessionSchema, ProteinMetadataSchema, } from '../../../services/interpro/schemas.js';
11
+ import { detailSchema, ExtraFeaturesSchema, isAccession, listSchema, MatchSchema, optionalString, ProteinAccessionSchema, ProteinMetadataSchema, ResidueAnnotationsSchema, } from '../../../services/interpro/schemas.js';
12
12
  import { UPSTREAM_ERRORS } from '../../../services/interpro/upstream-errors.js';
13
13
  const OPERATION = 'interpro_get_protein_domains';
14
14
  const PAGE_SIZE = 200;
@@ -21,13 +21,17 @@ const SelectionSchema = z.object({
21
21
  .optional()
22
22
  .describe('Selected 1-based inclusive residue position.'),
23
23
  includeExtraFeatures: z.boolean().describe('Whether extra predicted features were requested.'),
24
+ includeResidueAnnotations: z
25
+ .literal(true)
26
+ .optional()
27
+ .describe('Present only when residue rules were requested.'),
24
28
  });
25
29
  const CoverageSchema = z.object({
26
30
  totalMatches: z
27
31
  .number()
28
32
  .int()
29
33
  .nonnegative()
30
- .describe('Upstream unfiltered total match count; a segment holding only extra features repeats the count the match list reported.'),
34
+ .describe('Upstream unfiltered total match count; extra-feature-only and residue-rule-only segments repeat the count reported by the match list.'),
31
35
  scannedMatches: z
32
36
  .number()
33
37
  .int()
@@ -50,22 +54,34 @@ const CoverageSchema = z.object({
50
54
  .nonnegative()
51
55
  .optional()
52
56
  .describe('Extra features in this segment; present with extraFeatures.'),
57
+ totalResidueAnnotations: z
58
+ .number()
59
+ .int()
60
+ .nonnegative()
61
+ .optional()
62
+ .describe('Selected residue rules; present only when the residue stage is reached.'),
63
+ returnedResidueAnnotations: z
64
+ .number()
65
+ .int()
66
+ .nonnegative()
67
+ .optional()
68
+ .describe('Whole residue rules returned in this segment.'),
53
69
  complete: z
54
70
  .boolean()
55
- .describe('True only when this call starts without a cursor and returns the whole map: every match and every requested extra feature.'),
71
+ .describe('True only when this call starts without a cursor and returns every match, requested extra feature, and requested residue rule.'),
56
72
  hasMore: z
57
73
  .boolean()
58
- .describe('Whether another segment remains, holding more matches or requested extra features.'),
74
+ .describe('Whether another segment remains, holding matches, requested extras, or requested residue rules.'),
59
75
  nextCursor: z
60
76
  .string()
61
77
  .optional()
62
- .describe('Opaque cursor resuming at the next whole match or extra feature, for the same protein and selection.'),
78
+ .describe('Opaque cursor resuming at the next whole match, extra feature, or residue rule for the same protein and selection.'),
63
79
  });
64
80
  /**
65
81
  * Where a continuation resumes: `skip` records into an upstream match page (`page` is that
66
82
  * page's upstream cursor, absent for the first page), or `features` selected extra features into
67
- * the feature list that follows the last match. `after` names the last record an earlier segment
68
- * covered, so a page or feature list that changed since the cursor was minted is rejected.
83
+ * the feature list that follows the last match, or `residues` selected rules after the extras.
84
+ * `after` names the last record an earlier segment covered, so changed lists are rejected.
69
85
  */
70
86
  const PositionSchema = z.union([
71
87
  z
@@ -85,6 +101,14 @@ const PositionSchema = z.union([
85
101
  })
86
102
  .strict()
87
103
  .refine((point) => point.features > 0 === (point.after !== undefined)),
104
+ z
105
+ .object({
106
+ residues: z.number().int().nonnegative(),
107
+ after: z.string().min(1).optional(),
108
+ totalMatches: z.number().int().nonnegative(),
109
+ })
110
+ .strict()
111
+ .refine((point) => point.residues > 0 === (point.after !== undefined)),
88
112
  ]);
89
113
  function contains(locations, position) {
90
114
  return locations.some((location) => location.fragments.some((fragment) => fragment.start <= position && position <= fragment.end));
@@ -101,7 +125,7 @@ function byCoordinate(left, right) {
101
125
  /** Map signatures to sequence coordinates in budget-bounded segments with explicit coverage. */
102
126
  export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
103
127
  title: 'Map protein domains',
104
- description: 'Retrieve InterPro and member-signature matches on a canonical UniProt protein, preserving every location and discontinuous fragment. Optionally retain matches covering a residue and include extra predicted features. Large maps arrive in segments of whole matches that fit the response budget: the first segment carries the protein metadata, requested extra features follow the last match, and coverage.nextCursor continues until hasMore is false.',
128
+ description: 'Retrieve InterPro and member-signature matches on a canonical UniProt protein, preserving every location and discontinuous fragment. Optionally select records covering a residue, include extra predicted features, and include functional residue rules with provenance. Budgeted segments hold whole records in order: matches, requested extras, then requested residue rules sorted by key. The first segment carries protein metadata; continue coverage.nextCursor until hasMore is false.',
105
129
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
106
130
  auth: ['tool:interpro_get_protein_domains:read'],
107
131
  input: z.object({
@@ -116,7 +140,11 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
116
140
  .boolean()
117
141
  .default(false)
118
142
  .describe('Include complete extra predicted features, returned after the last match; defaults to false.'),
119
- cursor: optionalString(z.string().trim().max(4096)).describe('Opaque coverage.nextCursor with unchanged accession, residuePosition, and includeExtraFeatures.'),
143
+ includeResidueAnnotations: z
144
+ .boolean()
145
+ .default(false)
146
+ .describe('Include complete functional residue rules after matches and requested extras; defaults to false.'),
147
+ cursor: optionalString(z.string().trim().max(4096)).describe('Opaque coverage.nextCursor with unchanged accession, residuePosition, includeExtraFeatures, and includeResidueAnnotations.'),
120
148
  }),
121
149
  output: z.object({
122
150
  accession: z.string().describe('Canonical UniProt accession.'),
@@ -125,8 +153,9 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
125
153
  .array(MatchSchema.describe('Complete entry match record.'))
126
154
  .describe('Whole selected match records in this segment, sorted by earliest coordinate then accession; a match is never split across segments.'),
127
155
  extraFeatures: ExtraFeaturesSchema.optional().describe('Whole selected extra features in this segment, in feature-key order; {} when none are selected. Omitted when not requested or when this segment ends before the features that follow the last match.'),
128
- selection: SelectionSchema.describe('Applied residue and extra-feature selection.'),
129
- coverage: CoverageSchema.describe('Where this segment sits in the protein map: every match, then requested extra features.'),
156
+ residueAnnotations: ResidueAnnotationsSchema.optional().describe('Whole selected residue rules sorted by key; {} means the stage was reached with no selected rules. Omitted when unrequested or unreached.'),
157
+ selection: SelectionSchema.describe('Applied residue, extra-feature, and residue-rule selection.'),
158
+ coverage: CoverageSchema.describe('Where this segment sits in the protein map: matches, requested extra features, then requested residue rules.'),
130
159
  url: z.string().describe('Canonical protein website URL.'),
131
160
  sourceUrl: z.string().describe('Official protein API source URL.'),
132
161
  }),
@@ -146,9 +175,9 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
146
175
  {
147
176
  reason: 'retry_deadline_exceeded',
148
177
  code: JsonRpcErrorCode.Timeout,
149
- when: 'The shared fifty-second budget expires across protein metadata, match pages, and extra features.',
178
+ when: 'The shared fifty-second budget expires across metadata, match pages, extra features, and residue rules.',
150
179
  retryable: true,
151
- recovery: 'Retry interpro_get_protein_domains after waiting; omit extra features when they are not needed.',
180
+ recovery: 'Retry interpro_get_protein_domains after waiting; omit optional annotations when they are not needed.',
152
181
  thrownBy: 'service',
153
182
  },
154
183
  {
@@ -198,12 +227,15 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
198
227
  const selection = {
199
228
  ...(residue !== undefined ? { residuePosition: residue } : {}),
200
229
  includeExtraFeatures: input.includeExtraFeatures,
230
+ ...(input.includeResidueAnnotations ? { includeResidueAnnotations: true } : {}),
201
231
  };
202
232
  const scope = { accession, ...selection };
203
233
  const start = decodePositionCursor(input.cursor, OPERATION, scope, PositionSchema);
204
234
  const stale = () => ctx.fail('invalid_cursor', 'Cursor no longer matches the InterPro records it resumes inside.');
205
235
  if (start && 'features' in start && !input.includeExtraFeatures)
206
236
  throw stale();
237
+ if (start && 'residues' in start && !input.includeResidueAnnotations)
238
+ throw stale();
207
239
  const resumed = start !== undefined;
208
240
  const covers = (locations) => residue === undefined || contains(locations, residue);
209
241
  const service = getInterproService();
@@ -214,11 +246,12 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
214
246
  const protein = normalizeImages(detail.data.metadata);
215
247
  if (residue !== undefined && residue > protein.length)
216
248
  throw ctx.fail('residue_out_of_range', `Residue ${residue} exceeds the ${protein.length}-residue length of ${accession}.`, { accession, proteinLength: protein.length, residuePosition: residue });
217
- /** Whole candidate items in walk order: every match, then every selected extra feature. */
249
+ /** Whole candidate items: matches, selected extra features, then selected residue rules. */
218
250
  const items = [];
219
251
  let scanned = 0;
220
- let totalMatches = start && 'features' in start ? start.totalMatches : 0;
252
+ let totalMatches = start && !('skip' in start) ? start.totalMatches : 0;
221
253
  let totalFeatures;
254
+ let totalResidueAnnotations;
222
255
  /** Where the walk resumes after the last gathered item; undefined once the walk ends. */
223
256
  let end;
224
257
  const segment = (count) => {
@@ -226,18 +259,24 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
226
259
  const resume = stop ? stop.at : end;
227
260
  const matches = [];
228
261
  const features = [];
262
+ const residues = [];
229
263
  for (const item of items.slice(0, count))
230
264
  if (item.kind === 'match')
231
265
  matches.push(item.match);
232
- else
266
+ else if (item.kind === 'feature')
233
267
  features.push([item.key, item.feature]);
268
+ else
269
+ residues.push([item.key, item.rule]);
234
270
  const featureTotal = totalFeatures;
235
- const reachedFeatures = featureTotal !== undefined && (features.length > 0 || resume === undefined);
271
+ const reachedFeatures = featureTotal !== undefined &&
272
+ (features.length > 0 || resume === undefined || 'residues' in resume);
273
+ const reachedResidues = totalResidueAnnotations !== undefined && (residues.length > 0 || resume === undefined);
236
274
  return {
237
275
  accession,
238
276
  ...(resumed ? {} : { protein }),
239
277
  matches: matches.toSorted(byCoordinate),
240
278
  ...(reachedFeatures ? { extraFeatures: Object.fromEntries(features) } : {}),
279
+ ...(reachedResidues ? { residueAnnotations: Object.fromEntries(residues) } : {}),
241
280
  selection,
242
281
  coverage: {
243
282
  totalMatches,
@@ -246,6 +285,9 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
246
285
  ...(reachedFeatures
247
286
  ? { totalFeatures: featureTotal, returnedFeatures: features.length }
248
287
  : {}),
288
+ ...(reachedResidues
289
+ ? { totalResidueAnnotations, returnedResidueAnnotations: residues.length }
290
+ : {}),
249
291
  complete: !resumed && resume === undefined,
250
292
  hasMore: resume !== undefined,
251
293
  ...(resume ? { nextCursor: encodePositionCursor(OPERATION, scope, resume) } : {}),
@@ -293,7 +335,7 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
293
335
  break;
294
336
  }
295
337
  }
296
- if (input.includeExtraFeatures && end === undefined) {
338
+ if (input.includeExtraFeatures && !(start && 'residues' in start) && end === undefined) {
297
339
  // Read extras only when the matches fit beside the cursor that would resume at them.
298
340
  end = { features: 0, totalMatches };
299
341
  if (!overflows()) {
@@ -325,20 +367,53 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
325
367
  }
326
368
  }
327
369
  }
370
+ if (input.includeResidueAnnotations && end === undefined) {
371
+ end = { residues: 0, totalMatches };
372
+ if (!overflows()) {
373
+ end = undefined;
374
+ const response = await service.request(call, ['protein', 'uniprot', accession], { residues: '' }, ResidueAnnotationsSchema);
375
+ if (!response.data)
376
+ throw ctx.fail('upstream_shape_invalid', 'Residue annotation response is missing.');
377
+ const selected = Object.entries(normalizeImages(response.data))
378
+ .filter(([, rule]) => covers(rule.locations))
379
+ .toSorted(([a], [b]) => compareText(a, b));
380
+ const resumeAt = start && 'residues' in start ? start : undefined;
381
+ const skip = resumeAt?.residues ?? 0;
382
+ if (skip > 0 && (skip >= selected.length || selected[skip - 1]?.[0] !== resumeAt?.after))
383
+ throw stale();
384
+ totalResidueAnnotations = selected.length;
385
+ for (let index = skip; index < selected.length; index++) {
386
+ const [key, rule] = selected[index];
387
+ items.push({
388
+ kind: 'residue',
389
+ key,
390
+ rule,
391
+ scannedBefore: scanned,
392
+ at: {
393
+ residues: index,
394
+ ...(index ? { after: selected[index - 1][0] } : {}),
395
+ totalMatches,
396
+ },
397
+ });
398
+ }
399
+ }
400
+ }
328
401
  const { count, output, oversized } = fitWithinBudget(items.length, segment);
329
402
  const { coverage } = output;
330
403
  const stop = items[count];
331
404
  const notices = [];
332
405
  if (oversized) {
333
406
  const only = items[0];
334
- const [named, unnamed, id] = only.kind === 'feature'
335
- ? ['Extra feature', 'This extra feature', only.key]
407
+ const [named, unnamed, id] = only.kind !== 'match'
408
+ ? only.kind === 'feature'
409
+ ? ['Extra feature', 'This extra feature', only.key]
410
+ : ['Residue rule', 'This residue rule', only.key]
336
411
  : ['Match', 'This match', only.match.metadata.accession];
337
412
  notices.push(`${isAccession(id) ? `${named} ${id}` : unnamed} cannot be split, so this segment holds it alone and exceeds the ${BUDGET_LABEL}.`);
338
413
  }
339
414
  if (coverage.nextCursor) {
340
415
  const reason = stop
341
- ? ` and stopped at the ${BUDGET_LABEL} before the next whole ${stop.kind === 'match' ? 'match' : 'extra feature'}`
416
+ ? ` and stopped at the ${BUDGET_LABEL} before the next whole ${stop.kind === 'match' ? 'match' : stop.kind === 'feature' ? 'extra feature' : 'residue rule'}`
342
417
  : oversized
343
418
  ? ''
344
419
  : ` and reached the ${MAX_PAGES}-page read limit after ${coverage.scannedMatches} match records`;
@@ -346,13 +421,14 @@ export const interproGetProteinDomains = tool('interpro_get_protein_domains', {
346
421
  accession,
347
422
  ...(residue !== undefined ? { residuePosition: residue } : {}),
348
423
  ...(input.includeExtraFeatures ? { includeExtraFeatures: true } : {}),
424
+ ...(input.includeResidueAnnotations ? { includeResidueAnnotations: true } : {}),
349
425
  cursor: coverage.nextCursor,
350
426
  };
351
427
  notices.push(`This segment covers part of the protein map${reason}. Continue with interpro_get_protein_domains ${JSON.stringify(nextCall)} before concluding that a residue has no annotation.`);
352
428
  }
353
429
  else if (resumed)
354
430
  notices.push('This is the final resumed segment. Only the combined segments cover the traversal; upstream pagination is not a snapshot.' +
355
- (coverage.returnedMatches || 'features' in start
431
+ (coverage.returnedMatches || !('skip' in start)
356
432
  ? ''
357
433
  : ' No match was selected in this segment.'));
358
434
  else if (!coverage.returnedMatches)
@@ -1 +1 @@
1
- {"version":3,"file":"interpro-get-protein-domains.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/interpro-get-protein-domains.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpro-get-protein-domains.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/interpro-get-protein-domains.tool.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,18 @@ export declare const interproSearchEntries: import("@cyanheads/mcp-ts-core").Too
112
112
  }, z.core.$strip>;
113
113
  sourceUrl: z.ZodString;
114
114
  }, z.core.$strip>, readonly [{
115
+ readonly reason: "incompatible_go_filters";
116
+ readonly code: JsonRpcErrorCode.ValidationError;
117
+ readonly when: "Both goTerm and goCategory are supplied.";
118
+ readonly retryable: false;
119
+ readonly recovery: "Search with goTerm alone or goCategory alone; either supports query and entryType filters.";
120
+ }, {
121
+ readonly reason: "go_filters_require_interpro";
122
+ readonly code: JsonRpcErrorCode.ValidationError;
123
+ readonly when: "goTerm or goCategory is supplied for a member sourceDatabase.";
124
+ readonly retryable: false;
125
+ readonly recovery: "Search interpro_search_entries with sourceDatabase interpro and the GO filter, then read each result's member_databases with interpro_get_entry or search the member database with integratedInto set to that InterPro accession.";
126
+ }, {
115
127
  readonly reason: "database_mismatch";
116
128
  readonly code: JsonRpcErrorCode.ValidationError;
117
129
  readonly when: "Integration filtering is requested on the integrating database.";
@@ -1 +1 @@
1
- {"version":3,"file":"interpro-search-entries.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/interpro-search-entries.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmCjE,wEAAwE;AACxE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4JhC,CAAC"}
1
+ {"version":3,"file":"interpro-search-entries.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/interpro-search-entries.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmCjE,wEAAwE;AACxE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuLhC,CAAC"}
@@ -25,7 +25,7 @@ const RowSchema = z
25
25
  /** Search or browse one database without per-record detail requests. */
26
26
  export const interproSearchEntries = tool('interpro_search_entries', {
27
27
  title: 'Search InterPro entries',
28
- description: 'Search InterPro entries or member signatures by text, entry type, GO annotation, or integrated InterPro accession. Results are cursor-paged; use interpro_get_entry for full metadata.',
28
+ description: 'Search InterPro entries or member signatures by text or entry type. GO filters require sourceDatabase interpro; integratedInto selects member signatures for an InterPro accession. Results are cursor-paged; use interpro_get_entry for full metadata.',
29
29
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
30
30
  auth: ['tool:interpro_search_entries:read'],
31
31
  input: z.object({
@@ -35,8 +35,8 @@ export const interproSearchEntries = tool('interpro_search_entries', {
35
35
  goTerm: optionalString(z
36
36
  .string()
37
37
  .trim()
38
- .regex(/^GO:\d{7}$/)).describe('GO annotation identifier such as GO:0003677.'),
39
- goCategory: optionalString(z.enum(['P', 'F', 'C'])).describe('GO category: P biological process, F molecular function, C cellular component.'),
38
+ .regex(/^GO:\d{7}$/)).describe('GO annotation identifier such as GO:0003677; requires sourceDatabase interpro and cannot combine with goCategory.'),
39
+ goCategory: optionalString(z.enum(['P', 'F', 'C'])).describe('GO category: P biological process, F molecular function, C cellular component; requires sourceDatabase interpro and cannot combine with goTerm.'),
40
40
  integratedInto: optionalString(z
41
41
  .string()
42
42
  .trim()
@@ -45,9 +45,8 @@ export const interproSearchEntries = tool('interpro_search_entries', {
45
45
  .number()
46
46
  .int()
47
47
  .min(1)
48
- .max(MAX_LIMIT)
49
48
  .default(20)
50
- .describe('Page size, from 1 to 100; defaults to 20.'),
49
+ .describe('Positive integer page size; values above 100 are clamped to 100 with a notice; defaults to 20.'),
51
50
  cursor: optionalString(z.string().trim().max(4096)).describe('Opaque nextCursor from this tool with unchanged filters; limit may change.'),
52
51
  }),
53
52
  output: z.object({
@@ -63,10 +62,24 @@ export const interproSearchEntries = tool('interpro_search_entries', {
63
62
  totalCount: z.number().optional().describe('Upstream total matching records.'),
64
63
  truncated: z.boolean().optional().describe('More records remain.'),
65
64
  shown: z.number().int().optional().describe('Records returned in this page.'),
66
- cap: z.number().int().optional().describe('Requested page size.'),
65
+ cap: z.number().int().optional().describe('Effective page size after clamping.'),
67
66
  effectiveQuery: z.string().optional().describe('Applied filters as JSON.'),
68
67
  },
69
68
  errors: [
69
+ {
70
+ reason: 'incompatible_go_filters',
71
+ code: JsonRpcErrorCode.ValidationError,
72
+ when: 'Both goTerm and goCategory are supplied.',
73
+ retryable: false,
74
+ recovery: 'Search with goTerm alone or goCategory alone; either supports query and entryType filters.',
75
+ },
76
+ {
77
+ reason: 'go_filters_require_interpro',
78
+ code: JsonRpcErrorCode.ValidationError,
79
+ when: 'goTerm or goCategory is supplied for a member sourceDatabase.',
80
+ retryable: false,
81
+ recovery: "Search interpro_search_entries with sourceDatabase interpro and the GO filter, then read each result's member_databases with interpro_get_entry or search the member database with integratedInto set to that InterPro accession.",
82
+ },
70
83
  {
71
84
  reason: 'database_mismatch',
72
85
  code: JsonRpcErrorCode.ValidationError,
@@ -101,6 +114,12 @@ export const interproSearchEntries = tool('interpro_search_entries', {
101
114
  ...UPSTREAM_ERRORS,
102
115
  ],
103
116
  async handler(input, ctx) {
117
+ if (input.sourceDatabase !== 'interpro' && (input.goTerm || input.goCategory))
118
+ throw ctx.fail('go_filters_require_interpro', 'GO filters select InterPro annotations and require sourceDatabase interpro.');
119
+ if (input.goTerm && input.goCategory)
120
+ throw ctx.fail('incompatible_go_filters', 'goTerm and goCategory cannot be combined.');
121
+ const limit = Math.min(input.limit, MAX_LIMIT);
122
+ const notices = input.limit > limit ? [`Requested limit ${input.limit} was clamped to ${limit}.`] : [];
104
123
  if (input.integratedInto && input.sourceDatabase === 'interpro')
105
124
  throw ctx.fail('database_mismatch', 'integratedInto requires a member sourceDatabase.');
106
125
  const query = {
@@ -119,7 +138,7 @@ export const interproSearchEntries = tool('interpro_search_entries', {
119
138
  go_term: query.goTerm,
120
139
  go_category: query.goCategory,
121
140
  integrated: query.integratedInto,
122
- page_size: input.limit,
141
+ page_size: limit,
123
142
  cursor,
124
143
  }, listSchema(RowSchema), { continuation: cursor !== undefined });
125
144
  const entries = normalizeImages(response.data?.results.map((row) => row.metadata) ?? []);
@@ -127,27 +146,27 @@ export const interproSearchEntries = tool('interpro_search_entries', {
127
146
  const page = {
128
147
  total: response.data?.count ?? 0,
129
148
  returned: entries.length,
130
- limit: input.limit,
149
+ limit,
131
150
  hasMore: next !== undefined,
132
151
  ...(next ? { nextCursor: encodeCursor('interpro_search_entries', query, next) } : {}),
133
152
  };
134
153
  ctx.enrich.total(page.total);
135
154
  ctx.enrich.echo(JSON.stringify(query));
136
- if (next)
137
- ctx.enrich.truncated({
138
- shown: entries.length,
139
- cap: input.limit,
140
- guidance: pageGuidance('interpro_search_entries', 'entries', input.limit, MAX_LIMIT),
141
- });
142
155
  if (!entries.length) {
143
156
  const memberText = input.sourceDatabase === 'interpro' &&
144
157
  input.query &&
145
158
  ENTRY_ROUTES.some((route) => route.source !== 'interpro' && route.pattern.test(input.query ?? ''));
146
- ctx.enrich.notice('No entries matched the applied filters. Remove query, entryType, goTerm, goCategory, or integratedInto filters that are present; call interpro_list_reference with topic databases to check sourceDatabase.' +
159
+ notices.push('No entries matched the applied filters. Remove query, entryType, goTerm, goCategory, or integratedInto filters that are present; call interpro_list_reference with topic databases to check sourceDatabase.' +
147
160
  (memberText
148
161
  ? ' Use interpro_get_entry with the accession to infer its member database.'
149
162
  : ''));
150
163
  }
164
+ if (next) {
165
+ notices.push(pageGuidance('interpro_search_entries', 'entries', limit, MAX_LIMIT));
166
+ ctx.enrich.truncated({ shown: entries.length, cap: limit, guidance: notices.join(' ') });
167
+ }
168
+ else if (notices.length)
169
+ ctx.enrich.notice(notices.join(' '));
151
170
  return { query, entries, page, sourceUrl: response.sourceUrl };
152
171
  },
153
172
  format: formatInterpro,
@@ -1 +1 @@
1
- {"version":3,"file":"interpro-search-entries.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/interpro-search-entries.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpro-search-entries.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/interpro-search-entries.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,UAAU,EACV,cAAc,EACd,UAAU,EACV,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,cAAc,EAAE,oBAAoB;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC7D,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACrE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAChE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC/E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CAC1F,CAAC,CAAC;AACH,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;KACnE,QAAQ,CAAC,eAAe,CAAC,CAAC;AAE7B,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,EAAE;IACnE,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,yPAAyP;IAC3P,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,IAAI,EAAE,CAAC,mCAAmC,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,cAAc,EAAE,eAAe,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAChF,2CAA2C,CAC5C;QACD,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAC/D,0DAA0D,CAC3D;QACD,SAAS,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC7E,MAAM,EAAE,cAAc,CACpB,CAAC;aACE,MAAM,EAAE;aACR,IAAI,EAAE;aACN,KAAK,CAAC,YAAY,CAAC,CACvB,CAAC,QAAQ,CACR,mHAAmH,CACpH;QACD,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC1D,iJAAiJ,CAClJ;QACD,cAAc,EAAE,cAAc,CAC5B,CAAC;aACE,MAAM,EAAE;aACR,IAAI,EAAE;aACN,KAAK,CAAC,aAAa,CAAC,CACxB,CAAC,QAAQ,CAAC,mEAAmE,CAAC;QAC/E,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,gGAAgG,CACjG;QACH,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAC1D,4EAA4E,CAC7E;KACF,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzD,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;aAC7D,QAAQ,CAAC,0CAA0C,CAAC;QACvD,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAC3D,CAAC;IACF,UAAU,EAAE;QACV,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC9E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC9E,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC7E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAC3E;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,yBAAyB;YACjC,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,0CAA0C;YAChD,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,4FAA4F;SAC/F;QACD;YACE,MAAM,EAAE,6BAA6B;YACrC,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,+DAA+D;YACrE,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,mOAAmO;SACtO;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,iEAAiE;YACvE,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,0GAA0G;SAC7G;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,mEAAmE;YACzE,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,0FAA0F;YAC5F,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,iBAAiB;YACzB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,0EAA0E;YAChF,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,+KAA+K;YACjL,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,wBAAwB;YAChC,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,4DAA4D;YAClE,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,4GAA4G;YAC9G,QAAQ,EAAE,SAAS;SACpB;QACD,GAAG,eAAe;KACnB;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,IAAI,KAAK,CAAC,cAAc,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;YAC3E,MAAM,GAAG,CAAC,IAAI,CACZ,6BAA6B,EAC7B,6EAA6E,CAC9E,CAAC;QACJ,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU;YAClC,MAAM,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,2CAA2C,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,OAAO,GACX,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,KAAK,mBAAmB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,UAAU;YAC7D,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,kDAAkD,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAG;YACZ,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxF,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CACpC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAClB,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,EAC/B;YACE,MAAM,EAAE,KAAK,CAAC,KAAK;YACnB,IAAI,EAAE,KAAK,CAAC,SAAS;YACrB,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,UAAU,EAAE,KAAK,CAAC,cAAc;YAChC,SAAS,EAAE,KAAK;YAChB,MAAM;SACP,EACD,UAAU,CAAC,SAAS,CAAC,EACrB,EAAE,YAAY,EAAE,MAAM,KAAK,SAAS,EAAE,CACvC,CAAC;QACF,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC,MAAM;YACxB,KAAK;YACL,OAAO,EAAE,IAAI,KAAK,SAAS;YAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,yBAAyB,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,UAAU,GACd,KAAK,CAAC,cAAc,KAAK,UAAU;gBACnC,KAAK,CAAC,KAAK;gBACX,YAAY,CAAC,IAAI,CACf,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAChF,CAAC;YACJ,OAAO,CAAC,IAAI,CACV,6MAA6M;gBAC3M,CAAC,UAAU;oBACT,CAAC,CAAC,0EAA0E;oBAC5E,CAAC,CAAC,EAAE,CAAC,CACV,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YACnF,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,EAAE,cAAc;CACvB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Decode description fragments without executing markup or changing the source description. */
2
+ export declare function descriptionText(description: unknown): string | undefined;
3
+ //# sourceMappingURL=description-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description-text.d.ts","sourceRoot":"","sources":["../../../src/services/interpro/description-text.ts"],"names":[],"mappings":"AAwBA,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA0IxE"}