@cyanheads/protein-mcp-server 0.8.2 → 0.8.4

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 (51) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +13 -10
  4. package/changelog/0.8.x/0.8.2.md +7 -7
  5. package/changelog/0.8.x/0.8.3.md +23 -0
  6. package/changelog/0.8.x/0.8.4.md +13 -0
  7. package/dist/config/server-config.d.ts +2 -0
  8. package/dist/config/server-config.d.ts.map +1 -1
  9. package/dist/config/server-config.js +13 -1
  10. package/dist/config/server-config.js.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/analyze-collection.tool.js +2 -2
  14. package/dist/mcp-server/tools/definitions/analyze-collection.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/compare-structures.tool.d.ts +10 -0
  16. package/dist/mcp-server/tools/definitions/compare-structures.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/compare-structures.tool.js +77 -11
  18. package/dist/mcp-server/tools/definitions/compare-structures.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/find-similar.tool.d.ts +14 -4
  20. package/dist/mcp-server/tools/definitions/find-similar.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/find-similar.tool.js +79 -20
  22. package/dist/mcp-server/tools/definitions/find-similar.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/get-structure.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-structure.tool.js +84 -36
  25. package/dist/mcp-server/tools/definitions/get-structure.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/search-structures.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/search-structures.tool.js +22 -17
  28. package/dist/mcp-server/tools/definitions/search-structures.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/track-ligands.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/track-ligands.tool.js +5 -2
  31. package/dist/mcp-server/tools/definitions/track-ligands.tool.js.map +1 -1
  32. package/dist/services/alignment/alignment-service.d.ts +17 -4
  33. package/dist/services/alignment/alignment-service.d.ts.map +1 -1
  34. package/dist/services/alignment/alignment-service.js +31 -21
  35. package/dist/services/alignment/alignment-service.js.map +1 -1
  36. package/dist/services/foldseek/foldseek-service.d.ts +28 -9
  37. package/dist/services/foldseek/foldseek-service.d.ts.map +1 -1
  38. package/dist/services/foldseek/foldseek-service.js +83 -36
  39. package/dist/services/foldseek/foldseek-service.js.map +1 -1
  40. package/dist/services/rcsb/rcsb-service.d.ts +13 -3
  41. package/dist/services/rcsb/rcsb-service.d.ts.map +1 -1
  42. package/dist/services/rcsb/rcsb-service.js +35 -5
  43. package/dist/services/rcsb/rcsb-service.js.map +1 -1
  44. package/dist/services/rcsb/types.d.ts +21 -0
  45. package/dist/services/rcsb/types.d.ts.map +1 -1
  46. package/dist/services/shared/identifiers.d.ts +8 -1
  47. package/dist/services/shared/identifiers.d.ts.map +1 -1
  48. package/dist/services/shared/identifiers.js +12 -1
  49. package/dist/services/shared/identifiers.js.map +1 -1
  50. package/package.json +1 -1
  51. package/server.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"track-ligands.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/track-ligands.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"track-ligands.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/track-ligands.tool.ts"],"names":[],"mappings":"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"}
@@ -31,11 +31,24 @@ export interface PairScores {
31
31
  sequenceIdentity?: number;
32
32
  tmScore?: number;
33
33
  }
34
+ /**
35
+ * What the alignment job itself records, echoed back by the results poll: the
36
+ * pair in the order it was submitted and the method it ran. Every per-structure
37
+ * value in {@link PairScores} — and the TM-score, normalized by the first
38
+ * structure's length — is oriented to `structures`, which can differ from the
39
+ * order of a later call resuming the job. Each field is absent when the payload
40
+ * doesn't carry it in the expected shape.
41
+ */
42
+ export interface AlignmentJob {
43
+ method?: string;
44
+ structures?: [CompareStructure, CompareStructure];
45
+ }
34
46
  /** Outcome of one pairwise alignment. */
35
47
  export type PairOutcome = {
36
48
  status: 'complete';
37
49
  uuid: string;
38
50
  scores: PairScores;
51
+ job?: AlignmentJob;
39
52
  } | {
40
53
  status: 'computing';
41
54
  uuid: string;
@@ -57,10 +70,10 @@ export declare class AlignmentService {
57
70
  comparePair(a: CompareStructure, b: CompareStructure, method: AlignmentMethod, timeoutMs: number, ctx: Context): Promise<PairOutcome>;
58
71
  /**
59
72
  * Resume an existing job: bounded-poll a UUID returned by a prior `comparePair`
60
- * without resubmitting. Reuses the same `pollResult` step, so a `404` which the
61
- * RCSB API returns identically for an expired UUID and a job still computing —
62
- * degrades to `{ status: 'computing' }` on timeout rather than a false `failed`.
63
- * A legitimately in-flight job is never mistaken for a dead one. Never throws.
73
+ * without resubmitting. A `404` which the RCSB API returns identically for an
74
+ * expired UUID and a job still computing — degrades to `{ status: 'computing' }`
75
+ * on timeout rather than a false `failed`, so a legitimately in-flight job is
76
+ * never mistaken for a dead one. Never throws.
64
77
  */
65
78
  resumePair(uuid: string, timeoutMs: number, ctx: Context): Promise<PairOutcome>;
66
79
  /** Single poll of a job's results. 404 = still computing; a result body = ready. */
@@ -1 +1 @@
1
- {"version":3,"file":"alignment-service.d.ts","sourceRoot":"","sources":["../../../src/services/alignment/alignment-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE9E,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yCAAyC;AACzC,MAAM,MAAM,WAAW,GACnB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAGnF;IAED,6DAA6D;IACvD,MAAM,CACV,CAAC,EAAE,gBAAgB,EACnB,CAAC,EAAE,gBAAgB,EACnB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,MAAM,CAAC,CAoBjB;IAED;;;;OAIG;IACG,WAAW,CACf,CAAC,EAAE,gBAAgB,EACnB,CAAC,EAAE,gBAAgB,EACnB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,WAAW,CAAC,CAqBtB;IAED;;;;;;OAMG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAepF;IAED,oFAAoF;YACtE,UAAU;CAazB;AAuED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,YAAY,GACzB,IAAI,CAEN;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAItD"}
1
+ {"version":3,"file":"alignment-service.d.ts","sourceRoot":"","sources":["../../../src/services/alignment/alignment-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE9E,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACnD;AAED,yCAAyC;AACzC,MAAM,MAAM,WAAW,GACnB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,GAAG,CAAC,EAAE,YAAY,CAAA;CAAE,GAC5E;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAQxC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAGnF;IAED,6DAA6D;IACvD,MAAM,CACV,CAAC,EAAE,gBAAgB,EACnB,CAAC,EAAE,gBAAgB,EACnB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,MAAM,CAAC,CAoBjB;IAED;;;;OAIG;IACG,WAAW,CACf,CAAC,EAAE,gBAAgB,EACnB,CAAC,EAAE,gBAAgB,EACnB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,WAAW,CAAC,CAQtB;IAED;;;;;;OAMG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAepF;IAED,oFAAoF;YACtE,UAAU;CAczB;AAuGD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,YAAY,GACzB,IAAI,CAEN;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAItD"}
@@ -50,28 +50,14 @@ export class AlignmentService {
50
50
  catch (err) {
51
51
  return { status: 'failed', error: err instanceof Error ? err.message : String(err) };
52
52
  }
53
- try {
54
- const outcome = await withAsyncPoll({
55
- step: () => this.pollResult(uuid, ctx),
56
- timeoutMs,
57
- ctx,
58
- intervalMs: 1500,
59
- maxIntervalMs: 2500,
60
- });
61
- return outcome.status === 'complete'
62
- ? { status: 'complete', uuid, scores: outcome.value }
63
- : { status: 'computing', uuid };
64
- }
65
- catch (err) {
66
- return { status: 'failed', error: err instanceof Error ? err.message : String(err) };
67
- }
53
+ return this.resumePair(uuid, timeoutMs, ctx);
68
54
  }
69
55
  /**
70
56
  * Resume an existing job: bounded-poll a UUID returned by a prior `comparePair`
71
- * without resubmitting. Reuses the same `pollResult` step, so a `404` which the
72
- * RCSB API returns identically for an expired UUID and a job still computing —
73
- * degrades to `{ status: 'computing' }` on timeout rather than a false `failed`.
74
- * A legitimately in-flight job is never mistaken for a dead one. Never throws.
57
+ * without resubmitting. A `404` which the RCSB API returns identically for an
58
+ * expired UUID and a job still computing — degrades to `{ status: 'computing' }`
59
+ * on timeout rather than a false `failed`, so a legitimately in-flight job is
60
+ * never mistaken for a dead one. Never throws.
75
61
  */
76
62
  async resumePair(uuid, timeoutMs, ctx) {
77
63
  try {
@@ -83,7 +69,7 @@ export class AlignmentService {
83
69
  maxIntervalMs: 2500,
84
70
  });
85
71
  return outcome.status === 'complete'
86
- ? { status: 'complete', uuid, scores: outcome.value }
72
+ ? { status: 'complete', uuid, ...outcome.value }
87
73
  : { status: 'computing', uuid };
88
74
  }
89
75
  catch (err) {
@@ -105,7 +91,8 @@ export class AlignmentService {
105
91
  const first = raw.results?.[0];
106
92
  if (!first)
107
93
  return { ready: false };
108
- return { ready: true, value: normalizeScores(first) };
94
+ const job = parseJob(raw.meta?.alignment_method, first.structures);
95
+ return { ready: true, value: { scores: normalizeScores(first), ...(job ? { job } : {}) } };
109
96
  }
110
97
  }
111
98
  function toQueryStructure(s) {
@@ -160,6 +147,29 @@ function numberPair(value) {
160
147
  return;
161
148
  return [a, b];
162
149
  }
150
+ /**
151
+ * Read the job record from a completed poll. The method is kept only as a
152
+ * string; the pair only as exactly two structures, each with a string
153
+ * `entry_id` — anything else is upstream drift and drops that field alone.
154
+ */
155
+ function parseJob(method, structures) {
156
+ const job = {};
157
+ if (typeof method === 'string')
158
+ job.method = method;
159
+ if (Array.isArray(structures) && structures.length === 2) {
160
+ const [a, b] = structures.map(parseStructure);
161
+ if (a && b)
162
+ job.structures = [a, b];
163
+ }
164
+ return job.method || job.structures ? job : undefined;
165
+ }
166
+ function parseStructure(value) {
167
+ const raw = value;
168
+ if (typeof raw?.entry_id !== 'string')
169
+ return;
170
+ const asymId = raw.selection?.asym_id;
171
+ return { entryId: raw.entry_id, ...(typeof asymId === 'string' ? { asymId } : {}) };
172
+ }
163
173
  let _service;
164
174
  export function initAlignmentService(config, storage, serverConfig) {
165
175
  _service = new AlignmentService(config, storage, serverConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"alignment-service.js","sourceRoot":"","sources":["../../../src/services/alignment/alignment-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alignment-service.js","sourceRoot":"","sources":["../../../src/services/alignment/alignment-service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * @fileoverview Foldseek service — wraps the public Foldseek structural-search
3
- * ticket API (`/api/ticket` → poll `/api/ticket/{id}` → `/api/result/{id}/{n}`).
4
- * Submits a query coordinate file against experimental + predicted databases and
5
- * returns a page of fold-similarity hits alongside the full hit count, so a
6
- * completed ticket can be re-paged instead of resubmitted. Backs
7
- * `protein_find_similar` (`by: structure`).
3
+ * ticket API (`/api/ticket` → poll `/api/ticket/{id}` → `/api/result/queries/{id}/…`
4
+ * + `/api/result/{id}/{query}`). Submits a query coordinate file against
5
+ * experimental + predicted databases; Foldseek splits a multichain file into one
6
+ * query per chain, so a completed ticket is read one query at a time. Returns a
7
+ * page of that query's fold-similarity hits, ranked by score across databases,
8
+ * alongside the full hit count and the ticket's query count, so a completed
9
+ * ticket can be re-paged or re-read at another query instead of resubmitted.
10
+ * Backs `protein_find_similar` (`by: structure`).
8
11
  * Async: the ticket status field drives completion, not the HTTP code.
9
12
  * @module services/foldseek/foldseek-service
10
13
  */
@@ -41,8 +44,17 @@ export interface FoldseekHit {
41
44
  export type FoldseekOutcome = {
42
45
  status: 'complete';
43
46
  ticketId: string;
47
+ /** Zero-based query index the hits belong to. */
48
+ query: number;
49
+ /** Number of queries (one per chain of the submitted file) the ticket holds. */
50
+ queryCount: number;
44
51
  hits: FoldseekHit[];
45
52
  total: number;
53
+ } | {
54
+ status: 'query_out_of_range';
55
+ ticketId: string;
56
+ query: number;
57
+ queryCount: number;
46
58
  } | {
47
59
  status: 'computing';
48
60
  ticketId: string;
@@ -66,6 +78,8 @@ export declare class FoldseekService {
66
78
  databases: string[];
67
79
  mode: string;
68
80
  limit: number;
81
+ /** Zero-based query index to read; defaults to 0. */
82
+ query?: number;
69
83
  start: number;
70
84
  timeoutMs: number;
71
85
  }, ctx: Context): Promise<FoldseekOutcome>;
@@ -78,16 +92,21 @@ export declare class FoldseekService {
78
92
  resume(params: {
79
93
  ticketId: string;
80
94
  limit: number;
95
+ query?: number;
81
96
  start: number;
82
97
  timeoutMs: number;
83
98
  }, ctx: Context): Promise<FoldseekOutcome>;
84
99
  private submit;
100
+ /** Bounded-poll a ticket and map the read to an outcome. Throws on poll failure. */
101
+ private pollToOutcome;
85
102
  private pollTicket;
86
103
  /**
87
- * Read a completed ticket's full alignment set and return the requested page.
88
- * The whole list is parsed before slicing so the caller learns the real hit
89
- * count a page with no total leaves an agent unable to tell a complete result
90
- * from a truncated one, and unable to ask for the rest.
104
+ * Read one query of a completed ticket and return the requested page of its
105
+ * hits. The query index is range-checked against the ticket's query list first:
106
+ * Foldseek answers an out-of-range index with HTTP 200 and empty blocks, which
107
+ * would read as a search with no matches. The whole hit list is parsed and
108
+ * ranked before slicing, so the caller learns the real hit count and pages walk
109
+ * one stable ordering.
91
110
  */
92
111
  private fetchResults;
93
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"foldseek-service.d.ts","sourceRoot":"","sources":["../../../src/services/foldseek/foldseek-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,UAAU,EAAE,KAAK,GAAG,WAAW,GAAG,OAAO,CAAC;IAC1C,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAaD,uDAAuD;AACvD,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAEnF;IAED;;;OAGG;IACG,MAAM,CACV,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,EACD,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,eAAe,CAAC,CA4B1B;IAED;;;;;OAKG;IACG,MAAM,CACV,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAC7E,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,eAAe,CAAC,CAqB1B;YAEa,MAAM;YA4BN,UAAU;IAsBxB;;;;;OAKG;YACW,YAAY;CAuB3B;AA+CD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,YAAY,GACzB,IAAI,CAEN;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAIpD"}
1
+ {"version":3,"file":"foldseek-service.d.ts","sourceRoot":"","sources":["../../../src/services/foldseek/foldseek-service.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,26 @@
1
1
  /**
2
2
  * @fileoverview Foldseek service — wraps the public Foldseek structural-search
3
- * ticket API (`/api/ticket` → poll `/api/ticket/{id}` → `/api/result/{id}/{n}`).
4
- * Submits a query coordinate file against experimental + predicted databases and
5
- * returns a page of fold-similarity hits alongside the full hit count, so a
6
- * completed ticket can be re-paged instead of resubmitted. Backs
7
- * `protein_find_similar` (`by: structure`).
3
+ * ticket API (`/api/ticket` → poll `/api/ticket/{id}` → `/api/result/queries/{id}/…`
4
+ * + `/api/result/{id}/{query}`). Submits a query coordinate file against
5
+ * experimental + predicted databases; Foldseek splits a multichain file into one
6
+ * query per chain, so a completed ticket is read one query at a time. Returns a
7
+ * page of that query's fold-similarity hits, ranked by score across databases,
8
+ * alongside the full hit count and the ticket's query count, so a completed
9
+ * ticket can be re-paged or re-read at another query instead of resubmitted.
10
+ * Backs `protein_find_similar` (`by: structure`).
8
11
  * Async: the ticket status field drives completion, not the HTTP code.
9
12
  * @module services/foldseek/foldseek-service
10
13
  */
11
14
  import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
12
15
  import { withAsyncPoll } from '../shared/async.js';
13
16
  import { fetchJson } from '../shared/http.js';
17
+ /**
18
+ * Page size for the query-list request. The endpoint's `limit`/`offset` paging
19
+ * is off by one upstream (a limit of N returns at most N−1 entries, and
20
+ * `hasNext` can read false while entries remain), so the whole list is read in
21
+ * a single oversized request rather than walked.
22
+ */
23
+ const QUERY_LIST_LIMIT = 10_000;
14
24
  export class FoldseekService {
15
25
  baseUrl;
16
26
  constructor(_config, _storage, serverConfig) {
@@ -29,16 +39,7 @@ export class FoldseekService {
29
39
  return { status: 'failed', error: err instanceof Error ? err.message : String(err) };
30
40
  }
31
41
  try {
32
- const outcome = await withAsyncPoll({
33
- step: () => this.pollTicket(ticketId, params.start, params.limit, ctx),
34
- timeoutMs: params.timeoutMs,
35
- ctx,
36
- intervalMs: 1500,
37
- maxIntervalMs: 2500,
38
- });
39
- return outcome.status === 'complete'
40
- ? { status: 'complete', ticketId, ...outcome.value }
41
- : { status: 'computing', ticketId };
42
+ return await this.pollToOutcome(ticketId, params, ctx);
42
43
  }
43
44
  catch (err) {
44
45
  return { status: 'failed', error: err instanceof Error ? err.message : String(err) };
@@ -52,16 +53,7 @@ export class FoldseekService {
52
53
  */
53
54
  async resume(params, ctx) {
54
55
  try {
55
- const outcome = await withAsyncPoll({
56
- step: () => this.pollTicket(params.ticketId, params.start, params.limit, ctx),
57
- timeoutMs: params.timeoutMs,
58
- ctx,
59
- intervalMs: 1500,
60
- maxIntervalMs: 2500,
61
- });
62
- return outcome.status === 'complete'
63
- ? { status: 'complete', ticketId: params.ticketId, ...outcome.value }
64
- : { status: 'computing', ticketId: params.ticketId };
56
+ return await this.pollToOutcome(params.ticketId, params, ctx);
65
57
  }
66
58
  catch (err) {
67
59
  // A 400 from the ticket/result endpoint is Foldseek's "invalid ID" — the
@@ -92,7 +84,31 @@ export class FoldseekService {
92
84
  throw new Error('Foldseek did not return a ticket ID');
93
85
  return raw.id;
94
86
  }
95
- async pollTicket(ticketId, start, limit, ctx) {
87
+ /** Bounded-poll a ticket and map the read to an outcome. Throws on poll failure. */
88
+ async pollToOutcome(ticketId, page, ctx) {
89
+ const query = page.query ?? 0;
90
+ const outcome = await withAsyncPoll({
91
+ step: () => this.pollTicket(ticketId, query, page.start, page.limit, ctx),
92
+ timeoutMs: page.timeoutMs,
93
+ ctx,
94
+ intervalMs: 1500,
95
+ maxIntervalMs: 2500,
96
+ });
97
+ if (outcome.status !== 'complete')
98
+ return { status: 'computing', ticketId };
99
+ const read = outcome.value;
100
+ return read.kind === 'query_out_of_range'
101
+ ? { status: 'query_out_of_range', ticketId, query, queryCount: read.queryCount }
102
+ : {
103
+ status: 'complete',
104
+ ticketId,
105
+ query,
106
+ queryCount: read.queryCount,
107
+ hits: read.hits,
108
+ total: read.total,
109
+ };
110
+ }
111
+ async pollTicket(ticketId, query, start, limit, ctx) {
96
112
  const ticket = await fetchJson(`${this.baseUrl}/api/ticket/${encodeURIComponent(ticketId)}`, ctx, {
97
113
  operation: 'FoldseekService.pollTicket',
98
114
  label: 'Foldseek',
@@ -104,16 +120,23 @@ export class FoldseekService {
104
120
  throw new Error('Foldseek reported an error processing the structure');
105
121
  if (status !== 'COMPLETE')
106
122
  return { ready: false };
107
- return { ready: true, value: await this.fetchResults(ticketId, start, limit, ctx) };
123
+ return { ready: true, value: await this.fetchResults(ticketId, query, start, limit, ctx) };
108
124
  }
109
125
  /**
110
- * Read a completed ticket's full alignment set and return the requested page.
111
- * The whole list is parsed before slicing so the caller learns the real hit
112
- * count a page with no total leaves an agent unable to tell a complete result
113
- * from a truncated one, and unable to ask for the rest.
126
+ * Read one query of a completed ticket and return the requested page of its
127
+ * hits. The query index is range-checked against the ticket's query list first:
128
+ * Foldseek answers an out-of-range index with HTTP 200 and empty blocks, which
129
+ * would read as a search with no matches. The whole hit list is parsed and
130
+ * ranked before slicing, so the caller learns the real hit count and pages walk
131
+ * one stable ordering.
114
132
  */
115
- async fetchResults(ticketId, start, limit, ctx) {
116
- const raw = await fetchJson(`${this.baseUrl}/api/result/${encodeURIComponent(ticketId)}/0`, ctx, { operation: 'FoldseekService.fetchResults', label: 'Foldseek', baseDelayMs: 400 });
133
+ async fetchResults(ticketId, query, start, limit, ctx) {
134
+ const ticket = encodeURIComponent(ticketId);
135
+ const list = await fetchJson(`${this.baseUrl}/api/result/queries/${ticket}/${QUERY_LIST_LIMIT}/0`, ctx, { operation: 'FoldseekService.fetchQueries', label: 'Foldseek', baseDelayMs: 400 });
136
+ const queryCount = list.lookup?.length ?? 0;
137
+ if (query >= queryCount)
138
+ return { kind: 'query_out_of_range', queryCount };
139
+ const raw = await fetchJson(`${this.baseUrl}/api/result/${ticket}/${query}`, ctx, { operation: 'FoldseekService.fetchResults', label: 'Foldseek', baseDelayMs: 400 });
117
140
  const hits = [];
118
141
  for (const dbResult of raw.results ?? []) {
119
142
  const db = dbResult.db ?? 'unknown';
@@ -125,9 +148,29 @@ export class FoldseekService {
125
148
  }
126
149
  }
127
150
  }
128
- return { total: hits.length, hits: hits.slice(start, start + limit) };
151
+ hits.sort(compareHits);
152
+ return { kind: 'page', queryCount, total: hits.length, hits: hits.slice(start, start + limit) };
129
153
  }
130
154
  }
155
+ /**
156
+ * Best-first order across databases: `score` descending, a hit with no score
157
+ * last, ties broken by database then target so every page of a ticket walks the
158
+ * same sequence. Each database block already arrives score-sorted upstream;
159
+ * `score` is the one field comparable across them.
160
+ */
161
+ function compareHits(a, b) {
162
+ if (a.score !== b.score) {
163
+ if (a.score === undefined)
164
+ return 1;
165
+ if (b.score === undefined)
166
+ return -1;
167
+ return b.score - a.score;
168
+ }
169
+ return compareText(a.database, b.database) || compareText(a.target, b.target);
170
+ }
171
+ function compareText(a, b) {
172
+ return a < b ? -1 : a > b ? 1 : 0;
173
+ }
131
174
  // ─── Normalizers ──────────────────────────────────────────────────────────────
132
175
  function normalizeHit(aln, database) {
133
176
  const target = aln.target;
@@ -148,12 +191,16 @@ function normalizeHit(aln, database) {
148
191
  hit.score = aln.score;
149
192
  return hit;
150
193
  }
151
- /** Resolve a Foldseek target header to an addressable identifier. */
194
+ /**
195
+ * Resolve a Foldseek target header to an addressable identifier. PDB targets
196
+ * arrive either bare (`1abc_A`) or as assembly files (`1abc-assembly1.cif.gz_A`);
197
+ * the chain is the segment after the underscore in both.
198
+ */
152
199
  function parseTarget(target) {
153
200
  const af = /^AF-([A-Za-z0-9]+)-F\d+/.exec(target);
154
201
  if (af)
155
202
  return { targetType: 'alphafold', uniprotAccession: af[1] };
156
- const pdb = /^(\d[A-Za-z0-9]{3})[_-]([A-Za-z0-9]+)/.exec(target);
203
+ const pdb = /^(\d[A-Za-z0-9]{3})(?:-assembly\d+\.cif(?:\.gz)?)?[_-]([A-Za-z0-9]+)/.exec(target);
157
204
  if (pdb)
158
205
  return { targetType: 'pdb', pdbId: pdb[1].toUpperCase(), chain: pdb[2] };
159
206
  return { targetType: 'other' };
@@ -1 +1 @@
1
- {"version":3,"file":"foldseek-service.js","sourceRoot":"","sources":["../../../src/services/foldseek/foldseek-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foldseek-service.js","sourceRoot":"","sources":["../../../src/services/foldseek/foldseek-service.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import type { Context } from '@cyanheads/mcp-ts-core';
11
11
  import type { AppConfig } from '@cyanheads/mcp-ts-core/config';
12
12
  import type { StorageService } from '@cyanheads/mcp-ts-core/storage';
13
13
  import type { ServerConfig } from '../../config/server-config.js';
14
- import type { BindingSite, ChemComp, ContentType, EntryMeta, FacetDimension, SearchResult, StructureSearchParams, UniProtXref } from './types.js';
14
+ import type { BindingSite, ChemComp, ContentType, CoordinateUrls, EntryMeta, FacetDimension, SearchResult, StructureSearchParams, UniProtXref } from './types.js';
15
15
  /** RCSB return types relevant to this server. */
16
16
  export type ReturnType = 'entry' | 'polymer_entity' | 'mol_definition';
17
17
  /** A facet dimension request: friendly name + how RCSB should aggregate it. */
@@ -32,6 +32,7 @@ export declare class RcsbService {
32
32
  private readonly graphqlUrl;
33
33
  private readonly dataRestBase;
34
34
  private readonly filesBase;
35
+ private readonly modelsBase;
35
36
  constructor(_config: AppConfig, _storage: StorageService, serverConfig: ServerConfig);
36
37
  /** Full-text / filtered structure search, optionally with a facet breakdown. */
37
38
  search(params: StructureSearchParams, ctx: Context, facets?: FacetSpec[]): Promise<SearchResult>;
@@ -100,8 +101,17 @@ export declare class RcsbService {
100
101
  getBindingSites(pdbId: string, compId: string | undefined, ctx: Context): Promise<BindingSite[]>;
101
102
  /** Chemical-component metadata (formula, weight, SMILES, InChIKey). */
102
103
  getChemComp(compId: string, ctx: Context): Promise<ChemComp | null>;
103
- /** Construct a coordinate-file download URL for a PDB entry. */
104
- coordinateFileUrl(pdbId: string, format: 'cif' | 'pdb' | 'bcif'): string;
104
+ /**
105
+ * Coordinate-file URLs RCSB serves for an entry. mmCIF and PDB format come from
106
+ * the file-download host, BinaryCIF only from the ModelServer host. The PDB
107
+ * format is omitted when the entry reports it is not PDB-format compatible
108
+ * (large entries archived as mmCIF only); an unreported value keeps it. A
109
+ * computed model is not in the file-download archive at all, so only its
110
+ * BinaryCIF is listed — its provider publishes the text formats.
111
+ */
112
+ coordinateUrls(entry: Pick<EntryMeta, 'id' | 'computedModelProvider' | 'pdbFormatCompatible'>): CoordinateUrls;
113
+ /** mmCIF download URL for an experimental entry — the one text format every entry has. */
114
+ mmcifUrl(pdbId: string): string;
105
115
  private postSearch;
106
116
  private graphql;
107
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rcsb-service.d.ts","sourceRoot":"","sources":["../../../src/services/rcsb/rcsb-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rcsb-service.d.ts","sourceRoot":"","sources":["../../../src/services/rcsb/rcsb-service.ts"],"names":[],"mappings":"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"}