boltz-api 0.30.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 (579) hide show
  1. package/CHANGELOG.md +708 -0
  2. package/LICENSE +201 -0
  3. package/README.md +466 -0
  4. package/api-promise.d.mts +2 -0
  5. package/api-promise.d.mts.map +1 -0
  6. package/api-promise.d.ts +2 -0
  7. package/api-promise.d.ts.map +1 -0
  8. package/api-promise.js +6 -0
  9. package/api-promise.js.map +1 -0
  10. package/api-promise.mjs +2 -0
  11. package/api-promise.mjs.map +1 -0
  12. package/client.d.mts +219 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +219 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +522 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +518 -0
  19. package/client.mjs.map +1 -0
  20. package/core/api-promise.d.mts +46 -0
  21. package/core/api-promise.d.mts.map +1 -0
  22. package/core/api-promise.d.ts +46 -0
  23. package/core/api-promise.d.ts.map +1 -0
  24. package/core/api-promise.js +74 -0
  25. package/core/api-promise.js.map +1 -0
  26. package/core/api-promise.mjs +70 -0
  27. package/core/api-promise.mjs.map +1 -0
  28. package/core/error.d.mts +46 -0
  29. package/core/error.d.mts.map +1 -0
  30. package/core/error.d.ts +46 -0
  31. package/core/error.d.ts.map +1 -0
  32. package/core/error.js +113 -0
  33. package/core/error.js.map +1 -0
  34. package/core/error.mjs +97 -0
  35. package/core/error.mjs.map +1 -0
  36. package/core/pagination.d.mts +78 -0
  37. package/core/pagination.d.mts.map +1 -0
  38. package/core/pagination.d.ts +78 -0
  39. package/core/pagination.d.ts.map +1 -0
  40. package/core/pagination.js +154 -0
  41. package/core/pagination.js.map +1 -0
  42. package/core/pagination.mjs +147 -0
  43. package/core/pagination.mjs.map +1 -0
  44. package/core/resource.d.mts +6 -0
  45. package/core/resource.d.mts.map +1 -0
  46. package/core/resource.d.ts +6 -0
  47. package/core/resource.d.ts.map +1 -0
  48. package/core/resource.js +11 -0
  49. package/core/resource.js.map +1 -0
  50. package/core/resource.mjs +7 -0
  51. package/core/resource.mjs.map +1 -0
  52. package/core/uploads.d.mts +3 -0
  53. package/core/uploads.d.mts.map +1 -0
  54. package/core/uploads.d.ts +3 -0
  55. package/core/uploads.d.ts.map +1 -0
  56. package/core/uploads.js +6 -0
  57. package/core/uploads.js.map +1 -0
  58. package/core/uploads.mjs +2 -0
  59. package/core/uploads.mjs.map +1 -0
  60. package/error.d.mts +2 -0
  61. package/error.d.mts.map +1 -0
  62. package/error.d.ts +2 -0
  63. package/error.d.ts.map +1 -0
  64. package/error.js +6 -0
  65. package/error.js.map +1 -0
  66. package/error.mjs +2 -0
  67. package/error.mjs.map +1 -0
  68. package/index.d.mts +7 -0
  69. package/index.d.mts.map +1 -0
  70. package/index.d.ts +7 -0
  71. package/index.d.ts.map +1 -0
  72. package/index.js +32 -0
  73. package/index.js.map +1 -0
  74. package/index.mjs +8 -0
  75. package/index.mjs.map +1 -0
  76. package/internal/builtin-types.d.mts +73 -0
  77. package/internal/builtin-types.d.mts.map +1 -0
  78. package/internal/builtin-types.d.ts +73 -0
  79. package/internal/builtin-types.d.ts.map +1 -0
  80. package/internal/builtin-types.js +4 -0
  81. package/internal/builtin-types.js.map +1 -0
  82. package/internal/builtin-types.mjs +3 -0
  83. package/internal/builtin-types.mjs.map +1 -0
  84. package/internal/detect-platform.d.mts +15 -0
  85. package/internal/detect-platform.d.mts.map +1 -0
  86. package/internal/detect-platform.d.ts +15 -0
  87. package/internal/detect-platform.d.ts.map +1 -0
  88. package/internal/detect-platform.js +162 -0
  89. package/internal/detect-platform.js.map +1 -0
  90. package/internal/detect-platform.mjs +157 -0
  91. package/internal/detect-platform.mjs.map +1 -0
  92. package/internal/errors.d.mts +3 -0
  93. package/internal/errors.d.mts.map +1 -0
  94. package/internal/errors.d.ts +3 -0
  95. package/internal/errors.d.ts.map +1 -0
  96. package/internal/errors.js +41 -0
  97. package/internal/errors.js.map +1 -0
  98. package/internal/errors.mjs +36 -0
  99. package/internal/errors.mjs.map +1 -0
  100. package/internal/headers.d.mts +20 -0
  101. package/internal/headers.d.mts.map +1 -0
  102. package/internal/headers.d.ts +20 -0
  103. package/internal/headers.d.ts.map +1 -0
  104. package/internal/headers.js +79 -0
  105. package/internal/headers.js.map +1 -0
  106. package/internal/headers.mjs +74 -0
  107. package/internal/headers.mjs.map +1 -0
  108. package/internal/parse.d.mts +12 -0
  109. package/internal/parse.d.mts.map +1 -0
  110. package/internal/parse.d.ts +12 -0
  111. package/internal/parse.d.ts.map +1 -0
  112. package/internal/parse.js +40 -0
  113. package/internal/parse.js.map +1 -0
  114. package/internal/parse.mjs +37 -0
  115. package/internal/parse.mjs.map +1 -0
  116. package/internal/qs/formats.d.mts +7 -0
  117. package/internal/qs/formats.d.mts.map +1 -0
  118. package/internal/qs/formats.d.ts +7 -0
  119. package/internal/qs/formats.d.ts.map +1 -0
  120. package/internal/qs/formats.js +13 -0
  121. package/internal/qs/formats.js.map +1 -0
  122. package/internal/qs/formats.mjs +9 -0
  123. package/internal/qs/formats.mjs.map +1 -0
  124. package/internal/qs/index.d.mts +10 -0
  125. package/internal/qs/index.d.mts.map +1 -0
  126. package/internal/qs/index.d.ts +10 -0
  127. package/internal/qs/index.d.ts.map +1 -0
  128. package/internal/qs/index.js +14 -0
  129. package/internal/qs/index.js.map +1 -0
  130. package/internal/qs/index.mjs +10 -0
  131. package/internal/qs/index.mjs.map +1 -0
  132. package/internal/qs/stringify.d.mts +3 -0
  133. package/internal/qs/stringify.d.mts.map +1 -0
  134. package/internal/qs/stringify.d.ts +3 -0
  135. package/internal/qs/stringify.d.ts.map +1 -0
  136. package/internal/qs/stringify.js +277 -0
  137. package/internal/qs/stringify.js.map +1 -0
  138. package/internal/qs/stringify.mjs +274 -0
  139. package/internal/qs/stringify.mjs.map +1 -0
  140. package/internal/qs/types.d.mts +57 -0
  141. package/internal/qs/types.d.mts.map +1 -0
  142. package/internal/qs/types.d.ts +57 -0
  143. package/internal/qs/types.d.ts.map +1 -0
  144. package/internal/qs/types.js +3 -0
  145. package/internal/qs/types.js.map +1 -0
  146. package/internal/qs/types.mjs +2 -0
  147. package/internal/qs/types.mjs.map +1 -0
  148. package/internal/qs/utils.d.mts +15 -0
  149. package/internal/qs/utils.d.mts.map +1 -0
  150. package/internal/qs/utils.d.ts +15 -0
  151. package/internal/qs/utils.d.ts.map +1 -0
  152. package/internal/qs/utils.js +230 -0
  153. package/internal/qs/utils.js.map +1 -0
  154. package/internal/qs/utils.mjs +217 -0
  155. package/internal/qs/utils.mjs.map +1 -0
  156. package/internal/request-options.d.mts +75 -0
  157. package/internal/request-options.d.mts.map +1 -0
  158. package/internal/request-options.d.ts +75 -0
  159. package/internal/request-options.d.ts.map +1 -0
  160. package/internal/request-options.js +14 -0
  161. package/internal/request-options.js.map +1 -0
  162. package/internal/request-options.mjs +10 -0
  163. package/internal/request-options.mjs.map +1 -0
  164. package/internal/shim-types.d.mts +17 -0
  165. package/internal/shim-types.d.mts.map +1 -0
  166. package/internal/shim-types.d.ts +17 -0
  167. package/internal/shim-types.d.ts.map +1 -0
  168. package/internal/shim-types.js +4 -0
  169. package/internal/shim-types.js.map +1 -0
  170. package/internal/shim-types.mjs +3 -0
  171. package/internal/shim-types.mjs.map +1 -0
  172. package/internal/shims.d.mts +20 -0
  173. package/internal/shims.d.mts.map +1 -0
  174. package/internal/shims.d.ts +20 -0
  175. package/internal/shims.d.ts.map +1 -0
  176. package/internal/shims.js +92 -0
  177. package/internal/shims.js.map +1 -0
  178. package/internal/shims.mjs +85 -0
  179. package/internal/shims.mjs.map +1 -0
  180. package/internal/to-file.d.mts +45 -0
  181. package/internal/to-file.d.mts.map +1 -0
  182. package/internal/to-file.d.ts +45 -0
  183. package/internal/to-file.d.ts.map +1 -0
  184. package/internal/to-file.js +91 -0
  185. package/internal/to-file.js.map +1 -0
  186. package/internal/to-file.mjs +88 -0
  187. package/internal/to-file.mjs.map +1 -0
  188. package/internal/tslib.js +81 -0
  189. package/internal/tslib.mjs +17 -0
  190. package/internal/types.d.mts +69 -0
  191. package/internal/types.d.mts.map +1 -0
  192. package/internal/types.d.ts +69 -0
  193. package/internal/types.d.ts.map +1 -0
  194. package/internal/types.js +4 -0
  195. package/internal/types.js.map +1 -0
  196. package/internal/types.mjs +3 -0
  197. package/internal/types.mjs.map +1 -0
  198. package/internal/uploads.d.mts +42 -0
  199. package/internal/uploads.d.mts.map +1 -0
  200. package/internal/uploads.d.ts +42 -0
  201. package/internal/uploads.d.ts.map +1 -0
  202. package/internal/uploads.js +141 -0
  203. package/internal/uploads.js.map +1 -0
  204. package/internal/uploads.mjs +131 -0
  205. package/internal/uploads.mjs.map +1 -0
  206. package/internal/utils/base64.d.mts +3 -0
  207. package/internal/utils/base64.d.mts.map +1 -0
  208. package/internal/utils/base64.d.ts +3 -0
  209. package/internal/utils/base64.d.ts.map +1 -0
  210. package/internal/utils/base64.js +38 -0
  211. package/internal/utils/base64.js.map +1 -0
  212. package/internal/utils/base64.mjs +33 -0
  213. package/internal/utils/base64.mjs.map +1 -0
  214. package/internal/utils/bytes.d.mts +4 -0
  215. package/internal/utils/bytes.d.mts.map +1 -0
  216. package/internal/utils/bytes.d.ts +4 -0
  217. package/internal/utils/bytes.d.ts.map +1 -0
  218. package/internal/utils/bytes.js +31 -0
  219. package/internal/utils/bytes.js.map +1 -0
  220. package/internal/utils/bytes.mjs +26 -0
  221. package/internal/utils/bytes.mjs.map +1 -0
  222. package/internal/utils/env.d.mts +9 -0
  223. package/internal/utils/env.d.mts.map +1 -0
  224. package/internal/utils/env.d.ts +9 -0
  225. package/internal/utils/env.d.ts.map +1 -0
  226. package/internal/utils/env.js +22 -0
  227. package/internal/utils/env.js.map +1 -0
  228. package/internal/utils/env.mjs +18 -0
  229. package/internal/utils/env.mjs.map +1 -0
  230. package/internal/utils/log.d.mts +37 -0
  231. package/internal/utils/log.d.mts.map +1 -0
  232. package/internal/utils/log.d.ts +37 -0
  233. package/internal/utils/log.d.ts.map +1 -0
  234. package/internal/utils/log.js +86 -0
  235. package/internal/utils/log.js.map +1 -0
  236. package/internal/utils/log.mjs +80 -0
  237. package/internal/utils/log.mjs.map +1 -0
  238. package/internal/utils/path.d.mts +15 -0
  239. package/internal/utils/path.d.mts.map +1 -0
  240. package/internal/utils/path.d.ts +15 -0
  241. package/internal/utils/path.d.ts.map +1 -0
  242. package/internal/utils/path.js +79 -0
  243. package/internal/utils/path.js.map +1 -0
  244. package/internal/utils/path.mjs +74 -0
  245. package/internal/utils/path.mjs.map +1 -0
  246. package/internal/utils/query.d.mts +2 -0
  247. package/internal/utils/query.d.mts.map +1 -0
  248. package/internal/utils/query.d.ts +2 -0
  249. package/internal/utils/query.d.ts.map +1 -0
  250. package/internal/utils/query.js +10 -0
  251. package/internal/utils/query.js.map +1 -0
  252. package/internal/utils/query.mjs +6 -0
  253. package/internal/utils/query.mjs.map +1 -0
  254. package/internal/utils/sleep.d.mts +2 -0
  255. package/internal/utils/sleep.d.mts.map +1 -0
  256. package/internal/utils/sleep.d.ts +2 -0
  257. package/internal/utils/sleep.d.ts.map +1 -0
  258. package/internal/utils/sleep.js +7 -0
  259. package/internal/utils/sleep.js.map +1 -0
  260. package/internal/utils/sleep.mjs +3 -0
  261. package/internal/utils/sleep.mjs.map +1 -0
  262. package/internal/utils/uuid.d.mts +5 -0
  263. package/internal/utils/uuid.d.mts.map +1 -0
  264. package/internal/utils/uuid.d.ts +5 -0
  265. package/internal/utils/uuid.d.ts.map +1 -0
  266. package/internal/utils/uuid.js +19 -0
  267. package/internal/utils/uuid.js.map +1 -0
  268. package/internal/utils/uuid.mjs +15 -0
  269. package/internal/utils/uuid.mjs.map +1 -0
  270. package/internal/utils/values.d.mts +18 -0
  271. package/internal/utils/values.d.mts.map +1 -0
  272. package/internal/utils/values.d.ts +18 -0
  273. package/internal/utils/values.d.ts.map +1 -0
  274. package/internal/utils/values.js +112 -0
  275. package/internal/utils/values.js.map +1 -0
  276. package/internal/utils/values.mjs +94 -0
  277. package/internal/utils/values.mjs.map +1 -0
  278. package/internal/utils.d.mts +8 -0
  279. package/internal/utils.d.mts.map +1 -0
  280. package/internal/utils.d.ts +8 -0
  281. package/internal/utils.d.ts.map +1 -0
  282. package/internal/utils.js +12 -0
  283. package/internal/utils.js.map +1 -0
  284. package/internal/utils.mjs +9 -0
  285. package/internal/utils.mjs.map +1 -0
  286. package/package.json +153 -0
  287. package/pagination.d.mts +2 -0
  288. package/pagination.d.mts.map +1 -0
  289. package/pagination.d.ts +2 -0
  290. package/pagination.d.ts.map +1 -0
  291. package/pagination.js +6 -0
  292. package/pagination.js.map +1 -0
  293. package/pagination.mjs +2 -0
  294. package/pagination.mjs.map +1 -0
  295. package/resource.d.mts +2 -0
  296. package/resource.d.mts.map +1 -0
  297. package/resource.d.ts +2 -0
  298. package/resource.d.ts.map +1 -0
  299. package/resource.js +6 -0
  300. package/resource.js.map +1 -0
  301. package/resource.mjs +2 -0
  302. package/resource.mjs.map +1 -0
  303. package/resources/admin/admin.d.mts +21 -0
  304. package/resources/admin/admin.d.mts.map +1 -0
  305. package/resources/admin/admin.d.ts +21 -0
  306. package/resources/admin/admin.d.ts.map +1 -0
  307. package/resources/admin/admin.js +28 -0
  308. package/resources/admin/admin.js.map +1 -0
  309. package/resources/admin/admin.mjs +23 -0
  310. package/resources/admin/admin.mjs.map +1 -0
  311. package/resources/admin/api-keys.d.mts +166 -0
  312. package/resources/admin/api-keys.d.mts.map +1 -0
  313. package/resources/admin/api-keys.d.ts +166 -0
  314. package/resources/admin/api-keys.d.ts.map +1 -0
  315. package/resources/admin/api-keys.js +35 -0
  316. package/resources/admin/api-keys.js.map +1 -0
  317. package/resources/admin/api-keys.mjs +31 -0
  318. package/resources/admin/api-keys.mjs.map +1 -0
  319. package/resources/admin/index.d.mts +5 -0
  320. package/resources/admin/index.d.mts.map +1 -0
  321. package/resources/admin/index.d.ts +5 -0
  322. package/resources/admin/index.d.ts.map +1 -0
  323. package/resources/admin/index.js +13 -0
  324. package/resources/admin/index.js.map +1 -0
  325. package/resources/admin/index.mjs +6 -0
  326. package/resources/admin/index.mjs.map +1 -0
  327. package/resources/admin/usage.d.mts +60 -0
  328. package/resources/admin/usage.d.mts.map +1 -0
  329. package/resources/admin/usage.d.ts +60 -0
  330. package/resources/admin/usage.d.ts.map +1 -0
  331. package/resources/admin/usage.js +23 -0
  332. package/resources/admin/usage.js.map +1 -0
  333. package/resources/admin/usage.mjs +19 -0
  334. package/resources/admin/usage.mjs.map +1 -0
  335. package/resources/admin/workspaces.d.mts +278 -0
  336. package/resources/admin/workspaces.d.mts.map +1 -0
  337. package/resources/admin/workspaces.d.ts +278 -0
  338. package/resources/admin/workspaces.d.ts.map +1 -0
  339. package/resources/admin/workspaces.js +48 -0
  340. package/resources/admin/workspaces.js.map +1 -0
  341. package/resources/admin/workspaces.mjs +44 -0
  342. package/resources/admin/workspaces.mjs.map +1 -0
  343. package/resources/admin.d.mts +2 -0
  344. package/resources/admin.d.mts.map +1 -0
  345. package/resources/admin.d.ts +2 -0
  346. package/resources/admin.d.ts.map +1 -0
  347. package/resources/admin.js +6 -0
  348. package/resources/admin.js.map +1 -0
  349. package/resources/admin.mjs +3 -0
  350. package/resources/admin.mjs.map +1 -0
  351. package/resources/auth.d.mts +48 -0
  352. package/resources/auth.d.mts.map +1 -0
  353. package/resources/auth.d.ts +48 -0
  354. package/resources/auth.d.ts.map +1 -0
  355. package/resources/auth.js +25 -0
  356. package/resources/auth.js.map +1 -0
  357. package/resources/auth.mjs +21 -0
  358. package/resources/auth.mjs.map +1 -0
  359. package/resources/cli.d.mts +39 -0
  360. package/resources/cli.d.mts.map +1 -0
  361. package/resources/cli.d.ts +39 -0
  362. package/resources/cli.d.ts.map +1 -0
  363. package/resources/cli.js +23 -0
  364. package/resources/cli.js.map +1 -0
  365. package/resources/cli.mjs +19 -0
  366. package/resources/cli.mjs.map +1 -0
  367. package/resources/index.d.mts +7 -0
  368. package/resources/index.d.mts.map +1 -0
  369. package/resources/index.d.ts +7 -0
  370. package/resources/index.d.ts.map +1 -0
  371. package/resources/index.js +17 -0
  372. package/resources/index.js.map +1 -0
  373. package/resources/index.mjs +8 -0
  374. package/resources/index.mjs.map +1 -0
  375. package/resources/predictions/index.d.mts +3 -0
  376. package/resources/predictions/index.d.mts.map +1 -0
  377. package/resources/predictions/index.d.ts +3 -0
  378. package/resources/predictions/index.d.ts.map +1 -0
  379. package/resources/predictions/index.js +9 -0
  380. package/resources/predictions/index.js.map +1 -0
  381. package/resources/predictions/index.mjs +4 -0
  382. package/resources/predictions/index.mjs.map +1 -0
  383. package/resources/predictions/predictions.d.mts +13 -0
  384. package/resources/predictions/predictions.d.mts.map +1 -0
  385. package/resources/predictions/predictions.d.ts +13 -0
  386. package/resources/predictions/predictions.d.ts.map +1 -0
  387. package/resources/predictions/predictions.js +20 -0
  388. package/resources/predictions/predictions.js.map +1 -0
  389. package/resources/predictions/predictions.mjs +15 -0
  390. package/resources/predictions/predictions.mjs.map +1 -0
  391. package/resources/predictions/structure-and-binding.d.mts +2295 -0
  392. package/resources/predictions/structure-and-binding.d.mts.map +1 -0
  393. package/resources/predictions/structure-and-binding.d.ts +2295 -0
  394. package/resources/predictions/structure-and-binding.d.ts.map +1 -0
  395. package/resources/predictions/structure-and-binding.js +111 -0
  396. package/resources/predictions/structure-and-binding.js.map +1 -0
  397. package/resources/predictions/structure-and-binding.mjs +107 -0
  398. package/resources/predictions/structure-and-binding.mjs.map +1 -0
  399. package/resources/predictions.d.mts +2 -0
  400. package/resources/predictions.d.mts.map +1 -0
  401. package/resources/predictions.d.ts +2 -0
  402. package/resources/predictions.d.ts.map +1 -0
  403. package/resources/predictions.js +6 -0
  404. package/resources/predictions.js.map +1 -0
  405. package/resources/predictions.mjs +3 -0
  406. package/resources/predictions.mjs.map +1 -0
  407. package/resources/protein/design.d.mts +5760 -0
  408. package/resources/protein/design.d.mts.map +1 -0
  409. package/resources/protein/design.d.ts +5760 -0
  410. package/resources/protein/design.d.ts.map +1 -0
  411. package/resources/protein/design.js +157 -0
  412. package/resources/protein/design.js.map +1 -0
  413. package/resources/protein/design.mjs +153 -0
  414. package/resources/protein/design.mjs.map +1 -0
  415. package/resources/protein/index.d.mts +4 -0
  416. package/resources/protein/index.d.mts.map +1 -0
  417. package/resources/protein/index.d.ts +4 -0
  418. package/resources/protein/index.d.ts.map +1 -0
  419. package/resources/protein/index.js +11 -0
  420. package/resources/protein/index.js.map +1 -0
  421. package/resources/protein/index.mjs +5 -0
  422. package/resources/protein/index.mjs.map +1 -0
  423. package/resources/protein/library-screen.d.mts +3428 -0
  424. package/resources/protein/library-screen.d.mts.map +1 -0
  425. package/resources/protein/library-screen.d.ts +3428 -0
  426. package/resources/protein/library-screen.d.ts.map +1 -0
  427. package/resources/protein/library-screen.js +158 -0
  428. package/resources/protein/library-screen.js.map +1 -0
  429. package/resources/protein/library-screen.mjs +154 -0
  430. package/resources/protein/library-screen.mjs.map +1 -0
  431. package/resources/protein/protein.d.mts +17 -0
  432. package/resources/protein/protein.d.mts.map +1 -0
  433. package/resources/protein/protein.d.ts +17 -0
  434. package/resources/protein/protein.d.ts.map +1 -0
  435. package/resources/protein/protein.js +24 -0
  436. package/resources/protein/protein.js.map +1 -0
  437. package/resources/protein/protein.mjs +19 -0
  438. package/resources/protein/protein.mjs.map +1 -0
  439. package/resources/protein.d.mts +2 -0
  440. package/resources/protein.d.mts.map +1 -0
  441. package/resources/protein.d.ts +2 -0
  442. package/resources/protein.d.ts.map +1 -0
  443. package/resources/protein.js +6 -0
  444. package/resources/protein.js.map +1 -0
  445. package/resources/protein.mjs +3 -0
  446. package/resources/protein.mjs.map +1 -0
  447. package/resources/small-molecule/design.d.mts +3428 -0
  448. package/resources/small-molecule/design.d.mts.map +1 -0
  449. package/resources/small-molecule/design.d.ts +3428 -0
  450. package/resources/small-molecule/design.d.ts.map +1 -0
  451. package/resources/small-molecule/design.js +135 -0
  452. package/resources/small-molecule/design.js.map +1 -0
  453. package/resources/small-molecule/design.mjs +131 -0
  454. package/resources/small-molecule/design.mjs.map +1 -0
  455. package/resources/small-molecule/index.d.mts +4 -0
  456. package/resources/small-molecule/index.d.mts.map +1 -0
  457. package/resources/small-molecule/index.d.ts +4 -0
  458. package/resources/small-molecule/index.d.ts.map +1 -0
  459. package/resources/small-molecule/index.js +11 -0
  460. package/resources/small-molecule/index.js.map +1 -0
  461. package/resources/small-molecule/index.mjs +5 -0
  462. package/resources/small-molecule/index.mjs.map +1 -0
  463. package/resources/small-molecule/library-screen.d.mts +3494 -0
  464. package/resources/small-molecule/library-screen.d.mts.map +1 -0
  465. package/resources/small-molecule/library-screen.d.ts +3494 -0
  466. package/resources/small-molecule/library-screen.d.ts.map +1 -0
  467. package/resources/small-molecule/library-screen.js +129 -0
  468. package/resources/small-molecule/library-screen.js.map +1 -0
  469. package/resources/small-molecule/library-screen.mjs +125 -0
  470. package/resources/small-molecule/library-screen.mjs.map +1 -0
  471. package/resources/small-molecule/small-molecule.d.mts +17 -0
  472. package/resources/small-molecule/small-molecule.d.mts.map +1 -0
  473. package/resources/small-molecule/small-molecule.d.ts +17 -0
  474. package/resources/small-molecule/small-molecule.d.ts.map +1 -0
  475. package/resources/small-molecule/small-molecule.js +24 -0
  476. package/resources/small-molecule/small-molecule.js.map +1 -0
  477. package/resources/small-molecule/small-molecule.mjs +19 -0
  478. package/resources/small-molecule/small-molecule.mjs.map +1 -0
  479. package/resources/small-molecule.d.mts +2 -0
  480. package/resources/small-molecule.d.mts.map +1 -0
  481. package/resources/small-molecule.d.ts +2 -0
  482. package/resources/small-molecule.d.ts.map +1 -0
  483. package/resources/small-molecule.js +6 -0
  484. package/resources/small-molecule.js.map +1 -0
  485. package/resources/small-molecule.mjs +3 -0
  486. package/resources/small-molecule.mjs.map +1 -0
  487. package/resources.d.mts +2 -0
  488. package/resources.d.mts.map +1 -0
  489. package/resources.d.ts +2 -0
  490. package/resources.d.ts.map +1 -0
  491. package/resources.js +5 -0
  492. package/resources.js.map +1 -0
  493. package/resources.mjs +2 -0
  494. package/resources.mjs.map +1 -0
  495. package/src/api-promise.ts +2 -0
  496. package/src/client.ts +833 -0
  497. package/src/core/README.md +3 -0
  498. package/src/core/api-promise.ts +92 -0
  499. package/src/core/error.ts +130 -0
  500. package/src/core/pagination.ts +255 -0
  501. package/src/core/resource.ts +11 -0
  502. package/src/core/uploads.ts +2 -0
  503. package/src/error.ts +2 -0
  504. package/src/index.ts +23 -0
  505. package/src/internal/README.md +3 -0
  506. package/src/internal/builtin-types.ts +93 -0
  507. package/src/internal/detect-platform.ts +196 -0
  508. package/src/internal/errors.ts +33 -0
  509. package/src/internal/headers.ts +97 -0
  510. package/src/internal/parse.ts +56 -0
  511. package/src/internal/qs/LICENSE.md +13 -0
  512. package/src/internal/qs/README.md +3 -0
  513. package/src/internal/qs/formats.ts +10 -0
  514. package/src/internal/qs/index.ts +13 -0
  515. package/src/internal/qs/stringify.ts +385 -0
  516. package/src/internal/qs/types.ts +71 -0
  517. package/src/internal/qs/utils.ts +265 -0
  518. package/src/internal/request-options.ts +91 -0
  519. package/src/internal/shim-types.ts +26 -0
  520. package/src/internal/shims.ts +107 -0
  521. package/src/internal/to-file.ts +154 -0
  522. package/src/internal/types.ts +93 -0
  523. package/src/internal/uploads.ts +187 -0
  524. package/src/internal/utils/base64.ts +40 -0
  525. package/src/internal/utils/bytes.ts +32 -0
  526. package/src/internal/utils/env.ts +18 -0
  527. package/src/internal/utils/log.ts +127 -0
  528. package/src/internal/utils/path.ts +88 -0
  529. package/src/internal/utils/query.ts +7 -0
  530. package/src/internal/utils/sleep.ts +3 -0
  531. package/src/internal/utils/uuid.ts +17 -0
  532. package/src/internal/utils/values.ts +105 -0
  533. package/src/internal/utils.ts +9 -0
  534. package/src/lib/.keep +4 -0
  535. package/src/pagination.ts +2 -0
  536. package/src/resource.ts +2 -0
  537. package/src/resources/admin/admin.ts +73 -0
  538. package/src/resources/admin/api-keys.ts +233 -0
  539. package/src/resources/admin/index.ts +30 -0
  540. package/src/resources/admin/usage.ts +107 -0
  541. package/src/resources/admin/workspaces.ts +370 -0
  542. package/src/resources/admin.ts +3 -0
  543. package/src/resources/auth.ts +68 -0
  544. package/src/resources/cli.ts +57 -0
  545. package/src/resources/index.ts +8 -0
  546. package/src/resources/predictions/index.ts +16 -0
  547. package/src/resources/predictions/predictions.ts +43 -0
  548. package/src/resources/predictions/structure-and-binding.ts +2892 -0
  549. package/src/resources/predictions.ts +3 -0
  550. package/src/resources/protein/design.ts +7175 -0
  551. package/src/resources/protein/index.ts +37 -0
  552. package/src/resources/protein/library-screen.ts +4306 -0
  553. package/src/resources/protein/protein.ts +88 -0
  554. package/src/resources/protein.ts +3 -0
  555. package/src/resources/small-molecule/design.ts +4229 -0
  556. package/src/resources/small-molecule/index.ts +37 -0
  557. package/src/resources/small-molecule/library-screen.ts +4312 -0
  558. package/src/resources/small-molecule/small-molecule.ts +88 -0
  559. package/src/resources/small-molecule.ts +3 -0
  560. package/src/resources.ts +1 -0
  561. package/src/tsconfig.json +11 -0
  562. package/src/uploads.ts +2 -0
  563. package/src/version.ts +1 -0
  564. package/uploads.d.mts +2 -0
  565. package/uploads.d.mts.map +1 -0
  566. package/uploads.d.ts +2 -0
  567. package/uploads.d.ts.map +1 -0
  568. package/uploads.js +6 -0
  569. package/uploads.js.map +1 -0
  570. package/uploads.mjs +2 -0
  571. package/uploads.mjs.map +1 -0
  572. package/version.d.mts +2 -0
  573. package/version.d.mts.map +1 -0
  574. package/version.d.ts +2 -0
  575. package/version.d.ts.map +1 -0
  576. package/version.js +5 -0
  577. package/version.js.map +1 -0
  578. package/version.mjs +2 -0
  579. package/version.mjs.map +1 -0
@@ -0,0 +1,4312 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
6
+ import { RequestOptions } from '../../internal/request-options';
7
+ import { path } from '../../internal/utils/path';
8
+
9
+ /**
10
+ * Screen an existing library of small molecules against a protein target. Results are scored by binding confidence (likelihood of binding, for hit discovery), optimization score (binding strength ranking, for lead optimization), and structure confidence.
11
+ */
12
+ export class LibraryScreen extends APIResource {
13
+ /**
14
+ * Retrieve a library screen by ID, including progress and status
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const libraryScreen =
19
+ * await client.smallMolecule.libraryScreen.retrieve('id');
20
+ * ```
21
+ */
22
+ retrieve(
23
+ id: string,
24
+ query: LibraryScreenRetrieveParams | null | undefined = {},
25
+ options?: RequestOptions,
26
+ ): APIPromise<LibraryScreenRetrieveResponse> {
27
+ return this._client.get(path`/compute/v1/small-molecule/library-screen/${id}`, { query, ...options });
28
+ }
29
+
30
+ /**
31
+ * List small molecule library screens, optionally filtered by workspace
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * // Automatically fetches more pages as needed.
36
+ * for await (const libraryScreenListResponse of client.smallMolecule.libraryScreen.list()) {
37
+ * // ...
38
+ * }
39
+ * ```
40
+ */
41
+ list(
42
+ query: LibraryScreenListParams | null | undefined = {},
43
+ options?: RequestOptions,
44
+ ): PagePromise<LibraryScreenListResponsesCursorPage, LibraryScreenListResponse> {
45
+ return this._client.getAPIList(
46
+ '/compute/v1/small-molecule/library-screen',
47
+ CursorPage<LibraryScreenListResponse>,
48
+ { query, ...options },
49
+ );
50
+ }
51
+
52
+ /**
53
+ * Permanently delete the input, output, and result data associated with this
54
+ * library screen. The library screen record itself is retained with a
55
+ * `data_deleted_at` timestamp. This action is irreversible.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const response =
60
+ * await client.smallMolecule.libraryScreen.deleteData('id');
61
+ * ```
62
+ */
63
+ deleteData(id: string, options?: RequestOptions): APIPromise<LibraryScreenDeleteDataResponse> {
64
+ return this._client.post(path`/compute/v1/small-molecule/library-screen/${id}/delete-data`, options);
65
+ }
66
+
67
+ /**
68
+ * Estimate the cost of a small molecule library screen without creating any
69
+ * resource or consuming GPU.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * const response =
74
+ * await client.smallMolecule.libraryScreen.estimateCost({
75
+ * molecules: [{ smiles: 'smiles' }],
76
+ * target: {
77
+ * entities: [
78
+ * {
79
+ * chain_ids: ['string'],
80
+ * type: 'protein',
81
+ * value: 'value',
82
+ * },
83
+ * ],
84
+ * },
85
+ * });
86
+ * ```
87
+ */
88
+ estimateCost(
89
+ body: LibraryScreenEstimateCostParams,
90
+ options?: RequestOptions,
91
+ ): APIPromise<LibraryScreenEstimateCostResponse> {
92
+ return this._client.post('/compute/v1/small-molecule/library-screen/estimate-cost', { body, ...options });
93
+ }
94
+
95
+ /**
96
+ * Retrieve paginated results from a library screen
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * // Automatically fetches more pages as needed.
101
+ * for await (const libraryScreenListResultsResponse of client.smallMolecule.libraryScreen.listResults(
102
+ * 'id',
103
+ * )) {
104
+ * // ...
105
+ * }
106
+ * ```
107
+ */
108
+ listResults(
109
+ id: string,
110
+ query: LibraryScreenListResultsParams | null | undefined = {},
111
+ options?: RequestOptions,
112
+ ): PagePromise<LibraryScreenListResultsResponsesCursorPage, LibraryScreenListResultsResponse> {
113
+ return this._client.getAPIList(
114
+ path`/compute/v1/small-molecule/library-screen/${id}/results`,
115
+ CursorPage<LibraryScreenListResultsResponse>,
116
+ { query, ...options },
117
+ );
118
+ }
119
+
120
+ /**
121
+ * Screen a set of small molecule candidates against a protein target
122
+ *
123
+ * @example
124
+ * ```ts
125
+ * const response =
126
+ * await client.smallMolecule.libraryScreen.start({
127
+ * molecules: [{ smiles: 'smiles' }],
128
+ * target: {
129
+ * entities: [
130
+ * {
131
+ * chain_ids: ['string'],
132
+ * type: 'protein',
133
+ * value: 'value',
134
+ * },
135
+ * ],
136
+ * },
137
+ * });
138
+ * ```
139
+ */
140
+ start(body: LibraryScreenStartParams, options?: RequestOptions): APIPromise<LibraryScreenStartResponse> {
141
+ return this._client.post('/compute/v1/small-molecule/library-screen', { body, ...options });
142
+ }
143
+
144
+ /**
145
+ * Stop an in-progress library screen early
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * const response =
150
+ * await client.smallMolecule.libraryScreen.stop('id');
151
+ * ```
152
+ */
153
+ stop(id: string, options?: RequestOptions): APIPromise<LibraryScreenStopResponse> {
154
+ return this._client.post(path`/compute/v1/small-molecule/library-screen/${id}/stop`, options);
155
+ }
156
+ }
157
+
158
+ export type LibraryScreenListResponsesCursorPage = CursorPage<LibraryScreenListResponse>;
159
+
160
+ export type LibraryScreenListResultsResponsesCursorPage = CursorPage<LibraryScreenListResultsResponse>;
161
+
162
+ /**
163
+ * A small molecule library screening engine run
164
+ */
165
+ export interface LibraryScreenRetrieveResponse {
166
+ /**
167
+ * Unique SmScreen identifier
168
+ */
169
+ id: string;
170
+
171
+ completed_at: string | null;
172
+
173
+ created_at: string;
174
+
175
+ /**
176
+ * When the input, output, and result data was permanently deleted. Null if data
177
+ * has not been deleted.
178
+ */
179
+ data_deleted_at: string | null;
180
+
181
+ /**
182
+ * Engine used for small molecule library screen
183
+ */
184
+ engine: 'boltz-sm-screen';
185
+
186
+ /**
187
+ * Engine version used for small molecule library screen
188
+ */
189
+ engine_version: string;
190
+
191
+ error: LibraryScreenRetrieveResponse.Error | null;
192
+
193
+ /**
194
+ * Pipeline input (null if data deleted)
195
+ */
196
+ input: LibraryScreenRetrieveResponse.Input | null;
197
+
198
+ /**
199
+ * Whether this resource was created with a live API key.
200
+ */
201
+ livemode: boolean;
202
+
203
+ progress: LibraryScreenRetrieveResponse.Progress | null;
204
+
205
+ started_at: string | null;
206
+
207
+ status: 'pending' | 'running' | 'succeeded' | 'failed' | 'stopped';
208
+
209
+ stopped_at: string | null;
210
+
211
+ /**
212
+ * Workspace ID
213
+ */
214
+ workspace_id: string;
215
+
216
+ /**
217
+ * Client-provided idempotency key
218
+ */
219
+ idempotency_key?: string;
220
+ }
221
+
222
+ export namespace LibraryScreenRetrieveResponse {
223
+ export interface Error {
224
+ /**
225
+ * Machine-readable error code
226
+ */
227
+ code: string;
228
+
229
+ /**
230
+ * Human-readable error message
231
+ */
232
+ message: string;
233
+
234
+ /**
235
+ * Additional field-level error details keyed by input path, when available.
236
+ */
237
+ details?: unknown;
238
+ }
239
+
240
+ /**
241
+ * Pipeline input (null if data deleted)
242
+ */
243
+ export interface Input {
244
+ molecules: Input.Molecules;
245
+
246
+ /**
247
+ * Target protein with binding pocket for small molecule design or screening
248
+ */
249
+ target: Input.Target;
250
+
251
+ /**
252
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
253
+ * and custom filters.
254
+ */
255
+ molecule_filters?: Input.MoleculeFilters;
256
+ }
257
+
258
+ export namespace Input {
259
+ export interface Molecules {
260
+ /**
261
+ * URL to download the file
262
+ */
263
+ url: string;
264
+
265
+ /**
266
+ * When the presigned URL expires
267
+ */
268
+ url_expires_at: string;
269
+ }
270
+
271
+ /**
272
+ * Target protein with binding pocket for small molecule design or screening
273
+ */
274
+ export interface Target {
275
+ /**
276
+ * Protein entities defining the target structure. Each entity represents a protein
277
+ * chain.
278
+ */
279
+ entities: Array<Target.Entity>;
280
+
281
+ /**
282
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
283
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
284
+ */
285
+ bonds?: Array<Target.Bond>;
286
+
287
+ /**
288
+ * Structural constraints (pocket and contact). Atom-level ligand references
289
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
290
+ */
291
+ constraints?: Array<Target.PocketConstraintResponse | Target.ContactConstraintResponse>;
292
+
293
+ /**
294
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
295
+ * and the value is an array of 0-indexed residue indices that define the binding
296
+ * pocket on that chain. When provided, these residues guide pocket extraction and
297
+ * add a derived pocket constraint during affinity predictions. That derived
298
+ * constraint remains separate from any explicit pocket constraints in
299
+ * target.constraints. When omitted, the model auto-detects the pocket.
300
+ */
301
+ pocket_residues?: { [key: string]: Array<number> };
302
+
303
+ /**
304
+ * Reference ligands as SMILES strings that help the model identify the binding
305
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
306
+ * detection.
307
+ */
308
+ reference_ligands?: Array<string>;
309
+ }
310
+
311
+ export namespace Target {
312
+ export interface Entity {
313
+ /**
314
+ * Chain IDs for this entity
315
+ */
316
+ chain_ids: Array<string>;
317
+
318
+ type: 'protein';
319
+
320
+ /**
321
+ * Amino acid sequence (one-letter codes)
322
+ */
323
+ value: string;
324
+
325
+ /**
326
+ * Whether the sequence is cyclic
327
+ */
328
+ cyclic?: boolean;
329
+
330
+ /**
331
+ * Post-translational modifications. Optional; defaults to an empty list when
332
+ * omitted.
333
+ */
334
+ modifications?: Array<Entity.CcdModificationResponse | Entity.SmilesModificationResponse>;
335
+ }
336
+
337
+ export namespace Entity {
338
+ export interface CcdModificationResponse {
339
+ /**
340
+ * 0-based index of the residue to modify
341
+ */
342
+ residue_index: number;
343
+
344
+ type: 'ccd';
345
+
346
+ /**
347
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
348
+ * phosphoserine)
349
+ */
350
+ value: string;
351
+ }
352
+
353
+ export interface SmilesModificationResponse {
354
+ /**
355
+ * 0-based index of the residue to modify
356
+ */
357
+ residue_index: number;
358
+
359
+ type: 'smiles';
360
+
361
+ /**
362
+ * SMILES string for the modification
363
+ */
364
+ value: string;
365
+ }
366
+ }
367
+
368
+ /**
369
+ * Bond between two atoms. Atom-level ligand references currently support
370
+ * ligand_ccd entities only; ligand_smiles is unsupported.
371
+ */
372
+ export interface Bond {
373
+ /**
374
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
375
+ * entities only; ligand_smiles is unsupported.
376
+ */
377
+ atom1: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
378
+
379
+ /**
380
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
381
+ * entities only; ligand_smiles is unsupported.
382
+ */
383
+ atom2: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
384
+ }
385
+
386
+ export namespace Bond {
387
+ /**
388
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
389
+ * entities only; ligand_smiles is unsupported.
390
+ */
391
+ export interface LigandAtomResponse {
392
+ /**
393
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
394
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
395
+ */
396
+ atom_name: string;
397
+
398
+ /**
399
+ * Chain ID containing the atom
400
+ */
401
+ chain_id: string;
402
+
403
+ type: 'ligand_atom';
404
+ }
405
+
406
+ export interface PolymerAtomResponse {
407
+ /**
408
+ * Standardized atom name (verifiable in CIF file on RCSB)
409
+ */
410
+ atom_name: string;
411
+
412
+ /**
413
+ * Chain ID containing the atom
414
+ */
415
+ chain_id: string;
416
+
417
+ /**
418
+ * 0-based residue index
419
+ */
420
+ residue_index: number;
421
+
422
+ type: 'polymer_atom';
423
+ }
424
+
425
+ /**
426
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
427
+ * entities only; ligand_smiles is unsupported.
428
+ */
429
+ export interface LigandAtomResponse {
430
+ /**
431
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
432
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
433
+ */
434
+ atom_name: string;
435
+
436
+ /**
437
+ * Chain ID containing the atom
438
+ */
439
+ chain_id: string;
440
+
441
+ type: 'ligand_atom';
442
+ }
443
+
444
+ export interface PolymerAtomResponse {
445
+ /**
446
+ * Standardized atom name (verifiable in CIF file on RCSB)
447
+ */
448
+ atom_name: string;
449
+
450
+ /**
451
+ * Chain ID containing the atom
452
+ */
453
+ chain_id: string;
454
+
455
+ /**
456
+ * 0-based residue index
457
+ */
458
+ residue_index: number;
459
+
460
+ type: 'polymer_atom';
461
+ }
462
+ }
463
+
464
+ /**
465
+ * Constrains the binder to interact with specific pocket residues on the target.
466
+ */
467
+ export interface PocketConstraintResponse {
468
+ /**
469
+ * Chain ID of the binder molecule
470
+ */
471
+ binder_chain_id: string;
472
+
473
+ /**
474
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
475
+ * the value is an array of 0-indexed residue indices that define the pocket on
476
+ * that chain.
477
+ */
478
+ contact_residues: { [key: string]: Array<number> };
479
+
480
+ /**
481
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
482
+ * Typical range: 4-8 A.
483
+ */
484
+ max_distance_angstrom: number;
485
+
486
+ type: 'pocket';
487
+
488
+ /**
489
+ * Whether to force the constraint
490
+ */
491
+ force?: boolean;
492
+ }
493
+
494
+ /**
495
+ * Contact constraint between two tokens. Atom-level ligand references currently
496
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
497
+ */
498
+ export interface ContactConstraintResponse {
499
+ /**
500
+ * Maximum distance in Angstroms
501
+ */
502
+ max_distance_angstrom: number;
503
+
504
+ /**
505
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
506
+ * entities only; ligand_smiles is unsupported.
507
+ */
508
+ token1:
509
+ | ContactConstraintResponse.PolymerContactTokenResponse
510
+ | ContactConstraintResponse.LigandContactTokenResponse;
511
+
512
+ /**
513
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
514
+ * entities only; ligand_smiles is unsupported.
515
+ */
516
+ token2:
517
+ | ContactConstraintResponse.PolymerContactTokenResponse
518
+ | ContactConstraintResponse.LigandContactTokenResponse;
519
+
520
+ type: 'contact';
521
+
522
+ /**
523
+ * Whether to force the constraint
524
+ */
525
+ force?: boolean;
526
+ }
527
+
528
+ export namespace ContactConstraintResponse {
529
+ export interface PolymerContactTokenResponse {
530
+ /**
531
+ * Chain ID
532
+ */
533
+ chain_id: string;
534
+
535
+ /**
536
+ * 0-based residue index
537
+ */
538
+ residue_index: number;
539
+
540
+ type: 'polymer_contact';
541
+ }
542
+
543
+ /**
544
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
545
+ * entities only; ligand_smiles is unsupported.
546
+ */
547
+ export interface LigandContactTokenResponse {
548
+ /**
549
+ * Atom name. Atom-level references to ligand_smiles entities are currently
550
+ * unsupported; use ligand_ccd instead.
551
+ */
552
+ atom_name: string;
553
+
554
+ /**
555
+ * Chain ID
556
+ */
557
+ chain_id: string;
558
+
559
+ type: 'ligand_contact';
560
+ }
561
+
562
+ export interface PolymerContactTokenResponse {
563
+ /**
564
+ * Chain ID
565
+ */
566
+ chain_id: string;
567
+
568
+ /**
569
+ * 0-based residue index
570
+ */
571
+ residue_index: number;
572
+
573
+ type: 'polymer_contact';
574
+ }
575
+
576
+ /**
577
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
578
+ * entities only; ligand_smiles is unsupported.
579
+ */
580
+ export interface LigandContactTokenResponse {
581
+ /**
582
+ * Atom name. Atom-level references to ligand_smiles entities are currently
583
+ * unsupported; use ligand_ccd instead.
584
+ */
585
+ atom_name: string;
586
+
587
+ /**
588
+ * Chain ID
589
+ */
590
+ chain_id: string;
591
+
592
+ type: 'ligand_contact';
593
+ }
594
+ }
595
+ }
596
+
597
+ /**
598
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
599
+ * and custom filters.
600
+ */
601
+ export interface MoleculeFilters {
602
+ /**
603
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
604
+ * which removes molecules matching known problematic substructures. 'recommended'
605
+ * (default): applies a curated set of alerts balancing safety and hit rate.
606
+ * 'extra': adds additional alerts beyond the recommended set for stricter
607
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
608
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
609
+ * custom_filters will be applied.
610
+ */
611
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
612
+
613
+ /**
614
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
615
+ */
616
+ custom_filters?: Array<
617
+ | MoleculeFilters.LipinskiFilterResponse
618
+ | MoleculeFilters.RdkitDescriptorFilterResponse
619
+ | MoleculeFilters.SmartsCustomFilterResponse
620
+ | MoleculeFilters.SmartsCatalogFilterResponse
621
+ | MoleculeFilters.SmilesRegexFilterResponse
622
+ >;
623
+ }
624
+
625
+ export namespace MoleculeFilters {
626
+ /**
627
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
628
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
629
+ * bond acceptors.
630
+ */
631
+ export interface LipinskiFilterResponse {
632
+ /**
633
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
634
+ */
635
+ max_hba: number;
636
+
637
+ /**
638
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
639
+ */
640
+ max_hbd: number;
641
+
642
+ /**
643
+ * Maximum LogP. Lipinski threshold: 5
644
+ */
645
+ max_logp: number;
646
+
647
+ /**
648
+ * Maximum molecular weight (Da). Lipinski threshold: 500
649
+ */
650
+ max_mw: number;
651
+
652
+ type: 'lipinski_filter';
653
+
654
+ /**
655
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
656
+ * (all rules must pass).
657
+ */
658
+ allow_single_violation?: boolean;
659
+ }
660
+
661
+ /**
662
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
663
+ * to a min/max range. Only descriptors you provide are checked — omitted
664
+ * descriptors are unconstrained.
665
+ */
666
+ export interface RdkitDescriptorFilterResponse {
667
+ type: 'rdkit_descriptor_filter';
668
+
669
+ /**
670
+ * Min/max range constraint for an RDKit molecular descriptor
671
+ */
672
+ fraction_csp3?: RdkitDescriptorFilterResponse.FractionCsp3;
673
+
674
+ /**
675
+ * Min/max range constraint for an RDKit molecular descriptor
676
+ */
677
+ mol_logp?: RdkitDescriptorFilterResponse.MolLogp;
678
+
679
+ /**
680
+ * Min/max range constraint for an RDKit molecular descriptor
681
+ */
682
+ mol_wt?: RdkitDescriptorFilterResponse.MolWt;
683
+
684
+ /**
685
+ * Min/max range constraint for an RDKit molecular descriptor
686
+ */
687
+ num_aromatic_rings?: RdkitDescriptorFilterResponse.NumAromaticRings;
688
+
689
+ /**
690
+ * Min/max range constraint for an RDKit molecular descriptor
691
+ */
692
+ num_h_acceptors?: RdkitDescriptorFilterResponse.NumHAcceptors;
693
+
694
+ /**
695
+ * Min/max range constraint for an RDKit molecular descriptor
696
+ */
697
+ num_h_donors?: RdkitDescriptorFilterResponse.NumHDonors;
698
+
699
+ /**
700
+ * Min/max range constraint for an RDKit molecular descriptor
701
+ */
702
+ num_heteroatoms?: RdkitDescriptorFilterResponse.NumHeteroatoms;
703
+
704
+ /**
705
+ * Min/max range constraint for an RDKit molecular descriptor
706
+ */
707
+ num_rings?: RdkitDescriptorFilterResponse.NumRings;
708
+
709
+ /**
710
+ * Min/max range constraint for an RDKit molecular descriptor
711
+ */
712
+ num_rotatable_bonds?: RdkitDescriptorFilterResponse.NumRotatableBonds;
713
+
714
+ /**
715
+ * Min/max range constraint for an RDKit molecular descriptor
716
+ */
717
+ tpsa?: RdkitDescriptorFilterResponse.Tpsa;
718
+ }
719
+
720
+ export namespace RdkitDescriptorFilterResponse {
721
+ /**
722
+ * Min/max range constraint for an RDKit molecular descriptor
723
+ */
724
+ export interface FractionCsp3 {
725
+ /**
726
+ * Maximum allowed value (inclusive)
727
+ */
728
+ max?: number;
729
+
730
+ /**
731
+ * Minimum allowed value (inclusive)
732
+ */
733
+ min?: number;
734
+ }
735
+
736
+ /**
737
+ * Min/max range constraint for an RDKit molecular descriptor
738
+ */
739
+ export interface MolLogp {
740
+ /**
741
+ * Maximum allowed value (inclusive)
742
+ */
743
+ max?: number;
744
+
745
+ /**
746
+ * Minimum allowed value (inclusive)
747
+ */
748
+ min?: number;
749
+ }
750
+
751
+ /**
752
+ * Min/max range constraint for an RDKit molecular descriptor
753
+ */
754
+ export interface MolWt {
755
+ /**
756
+ * Maximum allowed value (inclusive)
757
+ */
758
+ max?: number;
759
+
760
+ /**
761
+ * Minimum allowed value (inclusive)
762
+ */
763
+ min?: number;
764
+ }
765
+
766
+ /**
767
+ * Min/max range constraint for an RDKit molecular descriptor
768
+ */
769
+ export interface NumAromaticRings {
770
+ /**
771
+ * Maximum allowed value (inclusive)
772
+ */
773
+ max?: number;
774
+
775
+ /**
776
+ * Minimum allowed value (inclusive)
777
+ */
778
+ min?: number;
779
+ }
780
+
781
+ /**
782
+ * Min/max range constraint for an RDKit molecular descriptor
783
+ */
784
+ export interface NumHAcceptors {
785
+ /**
786
+ * Maximum allowed value (inclusive)
787
+ */
788
+ max?: number;
789
+
790
+ /**
791
+ * Minimum allowed value (inclusive)
792
+ */
793
+ min?: number;
794
+ }
795
+
796
+ /**
797
+ * Min/max range constraint for an RDKit molecular descriptor
798
+ */
799
+ export interface NumHDonors {
800
+ /**
801
+ * Maximum allowed value (inclusive)
802
+ */
803
+ max?: number;
804
+
805
+ /**
806
+ * Minimum allowed value (inclusive)
807
+ */
808
+ min?: number;
809
+ }
810
+
811
+ /**
812
+ * Min/max range constraint for an RDKit molecular descriptor
813
+ */
814
+ export interface NumHeteroatoms {
815
+ /**
816
+ * Maximum allowed value (inclusive)
817
+ */
818
+ max?: number;
819
+
820
+ /**
821
+ * Minimum allowed value (inclusive)
822
+ */
823
+ min?: number;
824
+ }
825
+
826
+ /**
827
+ * Min/max range constraint for an RDKit molecular descriptor
828
+ */
829
+ export interface NumRings {
830
+ /**
831
+ * Maximum allowed value (inclusive)
832
+ */
833
+ max?: number;
834
+
835
+ /**
836
+ * Minimum allowed value (inclusive)
837
+ */
838
+ min?: number;
839
+ }
840
+
841
+ /**
842
+ * Min/max range constraint for an RDKit molecular descriptor
843
+ */
844
+ export interface NumRotatableBonds {
845
+ /**
846
+ * Maximum allowed value (inclusive)
847
+ */
848
+ max?: number;
849
+
850
+ /**
851
+ * Minimum allowed value (inclusive)
852
+ */
853
+ min?: number;
854
+ }
855
+
856
+ /**
857
+ * Min/max range constraint for an RDKit molecular descriptor
858
+ */
859
+ export interface Tpsa {
860
+ /**
861
+ * Maximum allowed value (inclusive)
862
+ */
863
+ max?: number;
864
+
865
+ /**
866
+ * Minimum allowed value (inclusive)
867
+ */
868
+ min?: number;
869
+ }
870
+ }
871
+
872
+ /**
873
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
874
+ * rejected.
875
+ */
876
+ export interface SmartsCustomFilterResponse {
877
+ /**
878
+ * SMARTS patterns. Molecules matching any pattern are rejected.
879
+ */
880
+ patterns: Array<string>;
881
+
882
+ type: 'smarts_custom_filter';
883
+ }
884
+
885
+ /**
886
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
887
+ */
888
+ export interface SmartsCatalogFilterResponse {
889
+ /**
890
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
891
+ * reject known problematic substructures.
892
+ */
893
+ catalog:
894
+ | 'PAINS'
895
+ | 'PAINS_A'
896
+ | 'PAINS_B'
897
+ | 'PAINS_C'
898
+ | 'BRENK'
899
+ | 'CHEMBL'
900
+ | 'CHEMBL_BMS'
901
+ | 'CHEMBL_Dundee'
902
+ | 'CHEMBL_Glaxo'
903
+ | 'CHEMBL_Inpharmatica'
904
+ | 'CHEMBL_LINT'
905
+ | 'CHEMBL_MLSMR'
906
+ | 'CHEMBL_SureChEMBL'
907
+ | 'NIH';
908
+
909
+ type: 'smarts_catalog_filter';
910
+ }
911
+
912
+ /**
913
+ * Filter molecules by regex patterns on their SMILES representation.
914
+ */
915
+ export interface SmilesRegexFilterResponse {
916
+ /**
917
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
918
+ * rejected.
919
+ */
920
+ patterns: Array<string>;
921
+
922
+ type: 'smiles_regex_filter';
923
+ }
924
+ }
925
+ }
926
+
927
+ export interface Progress {
928
+ /**
929
+ * Number of accepted molecules that reached terminal failure during screening.
930
+ */
931
+ num_molecules_failed: number;
932
+
933
+ /**
934
+ * Number of accepted molecules that produced usable screening results.
935
+ */
936
+ num_molecules_screened: number;
937
+
938
+ /**
939
+ * Total number of molecules accepted into screening after server-side validation
940
+ * and filtering.
941
+ */
942
+ total_molecules_to_screen: number;
943
+
944
+ /**
945
+ * ID of the most recently screened result
946
+ */
947
+ latest_result_id?: string;
948
+
949
+ rejection_summary?: Progress.RejectionSummary;
950
+ }
951
+
952
+ export namespace Progress {
953
+ export interface RejectionSummary {
954
+ /**
955
+ * Number of submitted molecules removed by server-side filtering rules.
956
+ */
957
+ filtered_count: number;
958
+
959
+ /**
960
+ * Number of submitted molecules rejected as invalid input.
961
+ */
962
+ invalid_count: number;
963
+ }
964
+ }
965
+ }
966
+
967
+ /**
968
+ * Summary of a small molecule library screening engine run (excludes input)
969
+ */
970
+ export interface LibraryScreenListResponse {
971
+ /**
972
+ * Unique SmScreenSummary identifier
973
+ */
974
+ id: string;
975
+
976
+ completed_at: string | null;
977
+
978
+ created_at: string;
979
+
980
+ /**
981
+ * When the input, output, and result data was permanently deleted. Null if data
982
+ * has not been deleted.
983
+ */
984
+ data_deleted_at: string | null;
985
+
986
+ /**
987
+ * Engine used for small molecule library screen
988
+ */
989
+ engine: 'boltz-sm-screen';
990
+
991
+ /**
992
+ * Engine version used for small molecule library screen
993
+ */
994
+ engine_version: string;
995
+
996
+ error: LibraryScreenListResponse.Error | null;
997
+
998
+ /**
999
+ * Whether this resource was created with a live API key.
1000
+ */
1001
+ livemode: boolean;
1002
+
1003
+ progress: LibraryScreenListResponse.Progress | null;
1004
+
1005
+ started_at: string | null;
1006
+
1007
+ status: 'pending' | 'running' | 'succeeded' | 'failed' | 'stopped';
1008
+
1009
+ stopped_at: string | null;
1010
+
1011
+ /**
1012
+ * Workspace ID
1013
+ */
1014
+ workspace_id: string;
1015
+
1016
+ /**
1017
+ * Client-provided idempotency key
1018
+ */
1019
+ idempotency_key?: string;
1020
+ }
1021
+
1022
+ export namespace LibraryScreenListResponse {
1023
+ export interface Error {
1024
+ /**
1025
+ * Machine-readable error code
1026
+ */
1027
+ code: string;
1028
+
1029
+ /**
1030
+ * Human-readable error message
1031
+ */
1032
+ message: string;
1033
+
1034
+ /**
1035
+ * Additional field-level error details keyed by input path, when available.
1036
+ */
1037
+ details?: unknown;
1038
+ }
1039
+
1040
+ export interface Progress {
1041
+ /**
1042
+ * Number of accepted molecules that reached terminal failure during screening.
1043
+ */
1044
+ num_molecules_failed: number;
1045
+
1046
+ /**
1047
+ * Number of accepted molecules that produced usable screening results.
1048
+ */
1049
+ num_molecules_screened: number;
1050
+
1051
+ /**
1052
+ * Total number of molecules accepted into screening after server-side validation
1053
+ * and filtering.
1054
+ */
1055
+ total_molecules_to_screen: number;
1056
+
1057
+ /**
1058
+ * ID of the most recently screened result
1059
+ */
1060
+ latest_result_id?: string;
1061
+
1062
+ rejection_summary?: Progress.RejectionSummary;
1063
+ }
1064
+
1065
+ export namespace Progress {
1066
+ export interface RejectionSummary {
1067
+ /**
1068
+ * Number of submitted molecules removed by server-side filtering rules.
1069
+ */
1070
+ filtered_count: number;
1071
+
1072
+ /**
1073
+ * Number of submitted molecules rejected as invalid input.
1074
+ */
1075
+ invalid_count: number;
1076
+ }
1077
+ }
1078
+ }
1079
+
1080
+ export interface LibraryScreenDeleteDataResponse {
1081
+ /**
1082
+ * ID of the resource whose data was deleted
1083
+ */
1084
+ id: string;
1085
+
1086
+ data_deleted: true;
1087
+
1088
+ /**
1089
+ * When the data was deleted
1090
+ */
1091
+ data_deleted_at: string;
1092
+ }
1093
+
1094
+ /**
1095
+ * Estimate response with monetary values encoded as decimal strings to preserve
1096
+ * precision.
1097
+ */
1098
+ export interface LibraryScreenEstimateCostResponse {
1099
+ /**
1100
+ * Cost breakdown for the billed application.
1101
+ */
1102
+ breakdown: LibraryScreenEstimateCostResponse.Breakdown;
1103
+
1104
+ disclaimer: string;
1105
+
1106
+ /**
1107
+ * Estimated total cost as a decimal string
1108
+ */
1109
+ estimated_cost_usd: string;
1110
+ }
1111
+
1112
+ export namespace LibraryScreenEstimateCostResponse {
1113
+ /**
1114
+ * Cost breakdown for the billed application.
1115
+ */
1116
+ export interface Breakdown {
1117
+ application:
1118
+ | 'structure_and_binding'
1119
+ | 'small_molecule_design'
1120
+ | 'small_molecule_library_screen'
1121
+ | 'protein_design'
1122
+ | 'protein_library_screen'
1123
+ | 'adme';
1124
+
1125
+ /**
1126
+ * Estimated cost per displayed unit as a decimal string, rounded up to 4 decimal
1127
+ * places. This may include token-size multipliers or generation overhead;
1128
+ * estimated_cost_usd is the authoritative total.
1129
+ */
1130
+ cost_per_unit_usd: string;
1131
+
1132
+ /**
1133
+ * Number of units shown for the estimate. For structure-and-binding, this is the
1134
+ * requested number of samples. For protein and small-molecule design/screen
1135
+ * endpoints, this is the requested number of proteins or molecules.
1136
+ */
1137
+ num_units: number;
1138
+ }
1139
+ }
1140
+
1141
+ /**
1142
+ * Result for a single screened small molecule
1143
+ */
1144
+ export interface LibraryScreenListResultsResponse {
1145
+ /**
1146
+ * Unique result ID
1147
+ */
1148
+ id: string;
1149
+
1150
+ artifacts: LibraryScreenListResultsResponse.Artifacts;
1151
+
1152
+ created_at: string;
1153
+
1154
+ /**
1155
+ * Scoring metrics for a screened small molecule
1156
+ */
1157
+ metrics: LibraryScreenListResultsResponse.Metrics;
1158
+
1159
+ /**
1160
+ * SMILES string of the screened molecule
1161
+ */
1162
+ smiles: string;
1163
+
1164
+ /**
1165
+ * Client-provided identifier for this molecule, if provided
1166
+ */
1167
+ external_id?: string;
1168
+
1169
+ /**
1170
+ * Warnings about potential quality issues with this result.
1171
+ */
1172
+ warnings?: Array<LibraryScreenListResultsResponse.Warning>;
1173
+ }
1174
+
1175
+ export namespace LibraryScreenListResultsResponse {
1176
+ export interface Artifacts {
1177
+ archive: Artifacts.Archive;
1178
+
1179
+ structure: Artifacts.Structure;
1180
+ }
1181
+
1182
+ export namespace Artifacts {
1183
+ export interface Archive {
1184
+ /**
1185
+ * URL to download the file
1186
+ */
1187
+ url: string;
1188
+
1189
+ /**
1190
+ * When the presigned URL expires
1191
+ */
1192
+ url_expires_at: string;
1193
+ }
1194
+
1195
+ export interface Structure {
1196
+ /**
1197
+ * URL to download the file
1198
+ */
1199
+ url: string;
1200
+
1201
+ /**
1202
+ * When the presigned URL expires
1203
+ */
1204
+ url_expires_at: string;
1205
+ }
1206
+ }
1207
+
1208
+ /**
1209
+ * Scoring metrics for a screened small molecule
1210
+ */
1211
+ export interface Metrics {
1212
+ /**
1213
+ * Confidence that the molecule binds the target (0-1). Primary metric for hit
1214
+ * discovery.
1215
+ */
1216
+ binding_confidence: number;
1217
+
1218
+ /**
1219
+ * Interface pLDDT for the complex (0-1 float). Confidence at the binding
1220
+ * interface.
1221
+ */
1222
+ complex_iplddt: number;
1223
+
1224
+ /**
1225
+ * pLDDT for the full complex (0-1 float).
1226
+ */
1227
+ complex_plddt: number;
1228
+
1229
+ /**
1230
+ * Interface predicted TM score (0-1). Confidence in relative positioning of ligand
1231
+ * and protein.
1232
+ */
1233
+ iptm: number;
1234
+
1235
+ /**
1236
+ * Binding strength ranking score for lead optimization. Higher values indicate
1237
+ * stronger predicted binding.
1238
+ */
1239
+ optimization_score: number;
1240
+
1241
+ /**
1242
+ * Predicted TM score (0-1). Global structure quality metric.
1243
+ */
1244
+ ptm: number;
1245
+
1246
+ /**
1247
+ * Confidence in the predicted 3D structure (0-1).
1248
+ */
1249
+ structure_confidence: number;
1250
+ }
1251
+
1252
+ /**
1253
+ * A warning about a potential quality issue with a result
1254
+ */
1255
+ export interface Warning {
1256
+ /**
1257
+ * Machine-readable warning code (e.g. "low_confidence", "unusual_geometry")
1258
+ */
1259
+ code: string;
1260
+
1261
+ /**
1262
+ * Human-readable description of the warning
1263
+ */
1264
+ message: string;
1265
+ }
1266
+ }
1267
+
1268
+ /**
1269
+ * A small molecule library screening engine run
1270
+ */
1271
+ export interface LibraryScreenStartResponse {
1272
+ /**
1273
+ * Unique SmScreen identifier
1274
+ */
1275
+ id: string;
1276
+
1277
+ completed_at: string | null;
1278
+
1279
+ created_at: string;
1280
+
1281
+ /**
1282
+ * When the input, output, and result data was permanently deleted. Null if data
1283
+ * has not been deleted.
1284
+ */
1285
+ data_deleted_at: string | null;
1286
+
1287
+ /**
1288
+ * Engine used for small molecule library screen
1289
+ */
1290
+ engine: 'boltz-sm-screen';
1291
+
1292
+ /**
1293
+ * Engine version used for small molecule library screen
1294
+ */
1295
+ engine_version: string;
1296
+
1297
+ error: LibraryScreenStartResponse.Error | null;
1298
+
1299
+ /**
1300
+ * Pipeline input (null if data deleted)
1301
+ */
1302
+ input: LibraryScreenStartResponse.Input | null;
1303
+
1304
+ /**
1305
+ * Whether this resource was created with a live API key.
1306
+ */
1307
+ livemode: boolean;
1308
+
1309
+ progress: LibraryScreenStartResponse.Progress | null;
1310
+
1311
+ started_at: string | null;
1312
+
1313
+ status: 'pending' | 'running' | 'succeeded' | 'failed' | 'stopped';
1314
+
1315
+ stopped_at: string | null;
1316
+
1317
+ /**
1318
+ * Workspace ID
1319
+ */
1320
+ workspace_id: string;
1321
+
1322
+ /**
1323
+ * Client-provided idempotency key
1324
+ */
1325
+ idempotency_key?: string;
1326
+ }
1327
+
1328
+ export namespace LibraryScreenStartResponse {
1329
+ export interface Error {
1330
+ /**
1331
+ * Machine-readable error code
1332
+ */
1333
+ code: string;
1334
+
1335
+ /**
1336
+ * Human-readable error message
1337
+ */
1338
+ message: string;
1339
+
1340
+ /**
1341
+ * Additional field-level error details keyed by input path, when available.
1342
+ */
1343
+ details?: unknown;
1344
+ }
1345
+
1346
+ /**
1347
+ * Pipeline input (null if data deleted)
1348
+ */
1349
+ export interface Input {
1350
+ molecules: Input.Molecules;
1351
+
1352
+ /**
1353
+ * Target protein with binding pocket for small molecule design or screening
1354
+ */
1355
+ target: Input.Target;
1356
+
1357
+ /**
1358
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
1359
+ * and custom filters.
1360
+ */
1361
+ molecule_filters?: Input.MoleculeFilters;
1362
+ }
1363
+
1364
+ export namespace Input {
1365
+ export interface Molecules {
1366
+ /**
1367
+ * URL to download the file
1368
+ */
1369
+ url: string;
1370
+
1371
+ /**
1372
+ * When the presigned URL expires
1373
+ */
1374
+ url_expires_at: string;
1375
+ }
1376
+
1377
+ /**
1378
+ * Target protein with binding pocket for small molecule design or screening
1379
+ */
1380
+ export interface Target {
1381
+ /**
1382
+ * Protein entities defining the target structure. Each entity represents a protein
1383
+ * chain.
1384
+ */
1385
+ entities: Array<Target.Entity>;
1386
+
1387
+ /**
1388
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
1389
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
1390
+ */
1391
+ bonds?: Array<Target.Bond>;
1392
+
1393
+ /**
1394
+ * Structural constraints (pocket and contact). Atom-level ligand references
1395
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
1396
+ */
1397
+ constraints?: Array<Target.PocketConstraintResponse | Target.ContactConstraintResponse>;
1398
+
1399
+ /**
1400
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
1401
+ * and the value is an array of 0-indexed residue indices that define the binding
1402
+ * pocket on that chain. When provided, these residues guide pocket extraction and
1403
+ * add a derived pocket constraint during affinity predictions. That derived
1404
+ * constraint remains separate from any explicit pocket constraints in
1405
+ * target.constraints. When omitted, the model auto-detects the pocket.
1406
+ */
1407
+ pocket_residues?: { [key: string]: Array<number> };
1408
+
1409
+ /**
1410
+ * Reference ligands as SMILES strings that help the model identify the binding
1411
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
1412
+ * detection.
1413
+ */
1414
+ reference_ligands?: Array<string>;
1415
+ }
1416
+
1417
+ export namespace Target {
1418
+ export interface Entity {
1419
+ /**
1420
+ * Chain IDs for this entity
1421
+ */
1422
+ chain_ids: Array<string>;
1423
+
1424
+ type: 'protein';
1425
+
1426
+ /**
1427
+ * Amino acid sequence (one-letter codes)
1428
+ */
1429
+ value: string;
1430
+
1431
+ /**
1432
+ * Whether the sequence is cyclic
1433
+ */
1434
+ cyclic?: boolean;
1435
+
1436
+ /**
1437
+ * Post-translational modifications. Optional; defaults to an empty list when
1438
+ * omitted.
1439
+ */
1440
+ modifications?: Array<Entity.CcdModificationResponse | Entity.SmilesModificationResponse>;
1441
+ }
1442
+
1443
+ export namespace Entity {
1444
+ export interface CcdModificationResponse {
1445
+ /**
1446
+ * 0-based index of the residue to modify
1447
+ */
1448
+ residue_index: number;
1449
+
1450
+ type: 'ccd';
1451
+
1452
+ /**
1453
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
1454
+ * phosphoserine)
1455
+ */
1456
+ value: string;
1457
+ }
1458
+
1459
+ export interface SmilesModificationResponse {
1460
+ /**
1461
+ * 0-based index of the residue to modify
1462
+ */
1463
+ residue_index: number;
1464
+
1465
+ type: 'smiles';
1466
+
1467
+ /**
1468
+ * SMILES string for the modification
1469
+ */
1470
+ value: string;
1471
+ }
1472
+ }
1473
+
1474
+ /**
1475
+ * Bond between two atoms. Atom-level ligand references currently support
1476
+ * ligand_ccd entities only; ligand_smiles is unsupported.
1477
+ */
1478
+ export interface Bond {
1479
+ /**
1480
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
1481
+ * entities only; ligand_smiles is unsupported.
1482
+ */
1483
+ atom1: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
1484
+
1485
+ /**
1486
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
1487
+ * entities only; ligand_smiles is unsupported.
1488
+ */
1489
+ atom2: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
1490
+ }
1491
+
1492
+ export namespace Bond {
1493
+ /**
1494
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
1495
+ * entities only; ligand_smiles is unsupported.
1496
+ */
1497
+ export interface LigandAtomResponse {
1498
+ /**
1499
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
1500
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
1501
+ */
1502
+ atom_name: string;
1503
+
1504
+ /**
1505
+ * Chain ID containing the atom
1506
+ */
1507
+ chain_id: string;
1508
+
1509
+ type: 'ligand_atom';
1510
+ }
1511
+
1512
+ export interface PolymerAtomResponse {
1513
+ /**
1514
+ * Standardized atom name (verifiable in CIF file on RCSB)
1515
+ */
1516
+ atom_name: string;
1517
+
1518
+ /**
1519
+ * Chain ID containing the atom
1520
+ */
1521
+ chain_id: string;
1522
+
1523
+ /**
1524
+ * 0-based residue index
1525
+ */
1526
+ residue_index: number;
1527
+
1528
+ type: 'polymer_atom';
1529
+ }
1530
+
1531
+ /**
1532
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
1533
+ * entities only; ligand_smiles is unsupported.
1534
+ */
1535
+ export interface LigandAtomResponse {
1536
+ /**
1537
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
1538
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
1539
+ */
1540
+ atom_name: string;
1541
+
1542
+ /**
1543
+ * Chain ID containing the atom
1544
+ */
1545
+ chain_id: string;
1546
+
1547
+ type: 'ligand_atom';
1548
+ }
1549
+
1550
+ export interface PolymerAtomResponse {
1551
+ /**
1552
+ * Standardized atom name (verifiable in CIF file on RCSB)
1553
+ */
1554
+ atom_name: string;
1555
+
1556
+ /**
1557
+ * Chain ID containing the atom
1558
+ */
1559
+ chain_id: string;
1560
+
1561
+ /**
1562
+ * 0-based residue index
1563
+ */
1564
+ residue_index: number;
1565
+
1566
+ type: 'polymer_atom';
1567
+ }
1568
+ }
1569
+
1570
+ /**
1571
+ * Constrains the binder to interact with specific pocket residues on the target.
1572
+ */
1573
+ export interface PocketConstraintResponse {
1574
+ /**
1575
+ * Chain ID of the binder molecule
1576
+ */
1577
+ binder_chain_id: string;
1578
+
1579
+ /**
1580
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
1581
+ * the value is an array of 0-indexed residue indices that define the pocket on
1582
+ * that chain.
1583
+ */
1584
+ contact_residues: { [key: string]: Array<number> };
1585
+
1586
+ /**
1587
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
1588
+ * Typical range: 4-8 A.
1589
+ */
1590
+ max_distance_angstrom: number;
1591
+
1592
+ type: 'pocket';
1593
+
1594
+ /**
1595
+ * Whether to force the constraint
1596
+ */
1597
+ force?: boolean;
1598
+ }
1599
+
1600
+ /**
1601
+ * Contact constraint between two tokens. Atom-level ligand references currently
1602
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
1603
+ */
1604
+ export interface ContactConstraintResponse {
1605
+ /**
1606
+ * Maximum distance in Angstroms
1607
+ */
1608
+ max_distance_angstrom: number;
1609
+
1610
+ /**
1611
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
1612
+ * entities only; ligand_smiles is unsupported.
1613
+ */
1614
+ token1:
1615
+ | ContactConstraintResponse.PolymerContactTokenResponse
1616
+ | ContactConstraintResponse.LigandContactTokenResponse;
1617
+
1618
+ /**
1619
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
1620
+ * entities only; ligand_smiles is unsupported.
1621
+ */
1622
+ token2:
1623
+ | ContactConstraintResponse.PolymerContactTokenResponse
1624
+ | ContactConstraintResponse.LigandContactTokenResponse;
1625
+
1626
+ type: 'contact';
1627
+
1628
+ /**
1629
+ * Whether to force the constraint
1630
+ */
1631
+ force?: boolean;
1632
+ }
1633
+
1634
+ export namespace ContactConstraintResponse {
1635
+ export interface PolymerContactTokenResponse {
1636
+ /**
1637
+ * Chain ID
1638
+ */
1639
+ chain_id: string;
1640
+
1641
+ /**
1642
+ * 0-based residue index
1643
+ */
1644
+ residue_index: number;
1645
+
1646
+ type: 'polymer_contact';
1647
+ }
1648
+
1649
+ /**
1650
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
1651
+ * entities only; ligand_smiles is unsupported.
1652
+ */
1653
+ export interface LigandContactTokenResponse {
1654
+ /**
1655
+ * Atom name. Atom-level references to ligand_smiles entities are currently
1656
+ * unsupported; use ligand_ccd instead.
1657
+ */
1658
+ atom_name: string;
1659
+
1660
+ /**
1661
+ * Chain ID
1662
+ */
1663
+ chain_id: string;
1664
+
1665
+ type: 'ligand_contact';
1666
+ }
1667
+
1668
+ export interface PolymerContactTokenResponse {
1669
+ /**
1670
+ * Chain ID
1671
+ */
1672
+ chain_id: string;
1673
+
1674
+ /**
1675
+ * 0-based residue index
1676
+ */
1677
+ residue_index: number;
1678
+
1679
+ type: 'polymer_contact';
1680
+ }
1681
+
1682
+ /**
1683
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
1684
+ * entities only; ligand_smiles is unsupported.
1685
+ */
1686
+ export interface LigandContactTokenResponse {
1687
+ /**
1688
+ * Atom name. Atom-level references to ligand_smiles entities are currently
1689
+ * unsupported; use ligand_ccd instead.
1690
+ */
1691
+ atom_name: string;
1692
+
1693
+ /**
1694
+ * Chain ID
1695
+ */
1696
+ chain_id: string;
1697
+
1698
+ type: 'ligand_contact';
1699
+ }
1700
+ }
1701
+ }
1702
+
1703
+ /**
1704
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
1705
+ * and custom filters.
1706
+ */
1707
+ export interface MoleculeFilters {
1708
+ /**
1709
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
1710
+ * which removes molecules matching known problematic substructures. 'recommended'
1711
+ * (default): applies a curated set of alerts balancing safety and hit rate.
1712
+ * 'extra': adds additional alerts beyond the recommended set for stricter
1713
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
1714
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
1715
+ * custom_filters will be applied.
1716
+ */
1717
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
1718
+
1719
+ /**
1720
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
1721
+ */
1722
+ custom_filters?: Array<
1723
+ | MoleculeFilters.LipinskiFilterResponse
1724
+ | MoleculeFilters.RdkitDescriptorFilterResponse
1725
+ | MoleculeFilters.SmartsCustomFilterResponse
1726
+ | MoleculeFilters.SmartsCatalogFilterResponse
1727
+ | MoleculeFilters.SmilesRegexFilterResponse
1728
+ >;
1729
+ }
1730
+
1731
+ export namespace MoleculeFilters {
1732
+ /**
1733
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
1734
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
1735
+ * bond acceptors.
1736
+ */
1737
+ export interface LipinskiFilterResponse {
1738
+ /**
1739
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
1740
+ */
1741
+ max_hba: number;
1742
+
1743
+ /**
1744
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
1745
+ */
1746
+ max_hbd: number;
1747
+
1748
+ /**
1749
+ * Maximum LogP. Lipinski threshold: 5
1750
+ */
1751
+ max_logp: number;
1752
+
1753
+ /**
1754
+ * Maximum molecular weight (Da). Lipinski threshold: 500
1755
+ */
1756
+ max_mw: number;
1757
+
1758
+ type: 'lipinski_filter';
1759
+
1760
+ /**
1761
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
1762
+ * (all rules must pass).
1763
+ */
1764
+ allow_single_violation?: boolean;
1765
+ }
1766
+
1767
+ /**
1768
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
1769
+ * to a min/max range. Only descriptors you provide are checked — omitted
1770
+ * descriptors are unconstrained.
1771
+ */
1772
+ export interface RdkitDescriptorFilterResponse {
1773
+ type: 'rdkit_descriptor_filter';
1774
+
1775
+ /**
1776
+ * Min/max range constraint for an RDKit molecular descriptor
1777
+ */
1778
+ fraction_csp3?: RdkitDescriptorFilterResponse.FractionCsp3;
1779
+
1780
+ /**
1781
+ * Min/max range constraint for an RDKit molecular descriptor
1782
+ */
1783
+ mol_logp?: RdkitDescriptorFilterResponse.MolLogp;
1784
+
1785
+ /**
1786
+ * Min/max range constraint for an RDKit molecular descriptor
1787
+ */
1788
+ mol_wt?: RdkitDescriptorFilterResponse.MolWt;
1789
+
1790
+ /**
1791
+ * Min/max range constraint for an RDKit molecular descriptor
1792
+ */
1793
+ num_aromatic_rings?: RdkitDescriptorFilterResponse.NumAromaticRings;
1794
+
1795
+ /**
1796
+ * Min/max range constraint for an RDKit molecular descriptor
1797
+ */
1798
+ num_h_acceptors?: RdkitDescriptorFilterResponse.NumHAcceptors;
1799
+
1800
+ /**
1801
+ * Min/max range constraint for an RDKit molecular descriptor
1802
+ */
1803
+ num_h_donors?: RdkitDescriptorFilterResponse.NumHDonors;
1804
+
1805
+ /**
1806
+ * Min/max range constraint for an RDKit molecular descriptor
1807
+ */
1808
+ num_heteroatoms?: RdkitDescriptorFilterResponse.NumHeteroatoms;
1809
+
1810
+ /**
1811
+ * Min/max range constraint for an RDKit molecular descriptor
1812
+ */
1813
+ num_rings?: RdkitDescriptorFilterResponse.NumRings;
1814
+
1815
+ /**
1816
+ * Min/max range constraint for an RDKit molecular descriptor
1817
+ */
1818
+ num_rotatable_bonds?: RdkitDescriptorFilterResponse.NumRotatableBonds;
1819
+
1820
+ /**
1821
+ * Min/max range constraint for an RDKit molecular descriptor
1822
+ */
1823
+ tpsa?: RdkitDescriptorFilterResponse.Tpsa;
1824
+ }
1825
+
1826
+ export namespace RdkitDescriptorFilterResponse {
1827
+ /**
1828
+ * Min/max range constraint for an RDKit molecular descriptor
1829
+ */
1830
+ export interface FractionCsp3 {
1831
+ /**
1832
+ * Maximum allowed value (inclusive)
1833
+ */
1834
+ max?: number;
1835
+
1836
+ /**
1837
+ * Minimum allowed value (inclusive)
1838
+ */
1839
+ min?: number;
1840
+ }
1841
+
1842
+ /**
1843
+ * Min/max range constraint for an RDKit molecular descriptor
1844
+ */
1845
+ export interface MolLogp {
1846
+ /**
1847
+ * Maximum allowed value (inclusive)
1848
+ */
1849
+ max?: number;
1850
+
1851
+ /**
1852
+ * Minimum allowed value (inclusive)
1853
+ */
1854
+ min?: number;
1855
+ }
1856
+
1857
+ /**
1858
+ * Min/max range constraint for an RDKit molecular descriptor
1859
+ */
1860
+ export interface MolWt {
1861
+ /**
1862
+ * Maximum allowed value (inclusive)
1863
+ */
1864
+ max?: number;
1865
+
1866
+ /**
1867
+ * Minimum allowed value (inclusive)
1868
+ */
1869
+ min?: number;
1870
+ }
1871
+
1872
+ /**
1873
+ * Min/max range constraint for an RDKit molecular descriptor
1874
+ */
1875
+ export interface NumAromaticRings {
1876
+ /**
1877
+ * Maximum allowed value (inclusive)
1878
+ */
1879
+ max?: number;
1880
+
1881
+ /**
1882
+ * Minimum allowed value (inclusive)
1883
+ */
1884
+ min?: number;
1885
+ }
1886
+
1887
+ /**
1888
+ * Min/max range constraint for an RDKit molecular descriptor
1889
+ */
1890
+ export interface NumHAcceptors {
1891
+ /**
1892
+ * Maximum allowed value (inclusive)
1893
+ */
1894
+ max?: number;
1895
+
1896
+ /**
1897
+ * Minimum allowed value (inclusive)
1898
+ */
1899
+ min?: number;
1900
+ }
1901
+
1902
+ /**
1903
+ * Min/max range constraint for an RDKit molecular descriptor
1904
+ */
1905
+ export interface NumHDonors {
1906
+ /**
1907
+ * Maximum allowed value (inclusive)
1908
+ */
1909
+ max?: number;
1910
+
1911
+ /**
1912
+ * Minimum allowed value (inclusive)
1913
+ */
1914
+ min?: number;
1915
+ }
1916
+
1917
+ /**
1918
+ * Min/max range constraint for an RDKit molecular descriptor
1919
+ */
1920
+ export interface NumHeteroatoms {
1921
+ /**
1922
+ * Maximum allowed value (inclusive)
1923
+ */
1924
+ max?: number;
1925
+
1926
+ /**
1927
+ * Minimum allowed value (inclusive)
1928
+ */
1929
+ min?: number;
1930
+ }
1931
+
1932
+ /**
1933
+ * Min/max range constraint for an RDKit molecular descriptor
1934
+ */
1935
+ export interface NumRings {
1936
+ /**
1937
+ * Maximum allowed value (inclusive)
1938
+ */
1939
+ max?: number;
1940
+
1941
+ /**
1942
+ * Minimum allowed value (inclusive)
1943
+ */
1944
+ min?: number;
1945
+ }
1946
+
1947
+ /**
1948
+ * Min/max range constraint for an RDKit molecular descriptor
1949
+ */
1950
+ export interface NumRotatableBonds {
1951
+ /**
1952
+ * Maximum allowed value (inclusive)
1953
+ */
1954
+ max?: number;
1955
+
1956
+ /**
1957
+ * Minimum allowed value (inclusive)
1958
+ */
1959
+ min?: number;
1960
+ }
1961
+
1962
+ /**
1963
+ * Min/max range constraint for an RDKit molecular descriptor
1964
+ */
1965
+ export interface Tpsa {
1966
+ /**
1967
+ * Maximum allowed value (inclusive)
1968
+ */
1969
+ max?: number;
1970
+
1971
+ /**
1972
+ * Minimum allowed value (inclusive)
1973
+ */
1974
+ min?: number;
1975
+ }
1976
+ }
1977
+
1978
+ /**
1979
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
1980
+ * rejected.
1981
+ */
1982
+ export interface SmartsCustomFilterResponse {
1983
+ /**
1984
+ * SMARTS patterns. Molecules matching any pattern are rejected.
1985
+ */
1986
+ patterns: Array<string>;
1987
+
1988
+ type: 'smarts_custom_filter';
1989
+ }
1990
+
1991
+ /**
1992
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
1993
+ */
1994
+ export interface SmartsCatalogFilterResponse {
1995
+ /**
1996
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
1997
+ * reject known problematic substructures.
1998
+ */
1999
+ catalog:
2000
+ | 'PAINS'
2001
+ | 'PAINS_A'
2002
+ | 'PAINS_B'
2003
+ | 'PAINS_C'
2004
+ | 'BRENK'
2005
+ | 'CHEMBL'
2006
+ | 'CHEMBL_BMS'
2007
+ | 'CHEMBL_Dundee'
2008
+ | 'CHEMBL_Glaxo'
2009
+ | 'CHEMBL_Inpharmatica'
2010
+ | 'CHEMBL_LINT'
2011
+ | 'CHEMBL_MLSMR'
2012
+ | 'CHEMBL_SureChEMBL'
2013
+ | 'NIH';
2014
+
2015
+ type: 'smarts_catalog_filter';
2016
+ }
2017
+
2018
+ /**
2019
+ * Filter molecules by regex patterns on their SMILES representation.
2020
+ */
2021
+ export interface SmilesRegexFilterResponse {
2022
+ /**
2023
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
2024
+ * rejected.
2025
+ */
2026
+ patterns: Array<string>;
2027
+
2028
+ type: 'smiles_regex_filter';
2029
+ }
2030
+ }
2031
+ }
2032
+
2033
+ export interface Progress {
2034
+ /**
2035
+ * Number of accepted molecules that reached terminal failure during screening.
2036
+ */
2037
+ num_molecules_failed: number;
2038
+
2039
+ /**
2040
+ * Number of accepted molecules that produced usable screening results.
2041
+ */
2042
+ num_molecules_screened: number;
2043
+
2044
+ /**
2045
+ * Total number of molecules accepted into screening after server-side validation
2046
+ * and filtering.
2047
+ */
2048
+ total_molecules_to_screen: number;
2049
+
2050
+ /**
2051
+ * ID of the most recently screened result
2052
+ */
2053
+ latest_result_id?: string;
2054
+
2055
+ rejection_summary?: Progress.RejectionSummary;
2056
+ }
2057
+
2058
+ export namespace Progress {
2059
+ export interface RejectionSummary {
2060
+ /**
2061
+ * Number of submitted molecules removed by server-side filtering rules.
2062
+ */
2063
+ filtered_count: number;
2064
+
2065
+ /**
2066
+ * Number of submitted molecules rejected as invalid input.
2067
+ */
2068
+ invalid_count: number;
2069
+ }
2070
+ }
2071
+ }
2072
+
2073
+ /**
2074
+ * A small molecule library screening engine run
2075
+ */
2076
+ export interface LibraryScreenStopResponse {
2077
+ /**
2078
+ * Unique SmScreen identifier
2079
+ */
2080
+ id: string;
2081
+
2082
+ completed_at: string | null;
2083
+
2084
+ created_at: string;
2085
+
2086
+ /**
2087
+ * When the input, output, and result data was permanently deleted. Null if data
2088
+ * has not been deleted.
2089
+ */
2090
+ data_deleted_at: string | null;
2091
+
2092
+ /**
2093
+ * Engine used for small molecule library screen
2094
+ */
2095
+ engine: 'boltz-sm-screen';
2096
+
2097
+ /**
2098
+ * Engine version used for small molecule library screen
2099
+ */
2100
+ engine_version: string;
2101
+
2102
+ error: LibraryScreenStopResponse.Error | null;
2103
+
2104
+ /**
2105
+ * Pipeline input (null if data deleted)
2106
+ */
2107
+ input: LibraryScreenStopResponse.Input | null;
2108
+
2109
+ /**
2110
+ * Whether this resource was created with a live API key.
2111
+ */
2112
+ livemode: boolean;
2113
+
2114
+ progress: LibraryScreenStopResponse.Progress | null;
2115
+
2116
+ started_at: string | null;
2117
+
2118
+ status: 'pending' | 'running' | 'succeeded' | 'failed' | 'stopped';
2119
+
2120
+ stopped_at: string | null;
2121
+
2122
+ /**
2123
+ * Workspace ID
2124
+ */
2125
+ workspace_id: string;
2126
+
2127
+ /**
2128
+ * Client-provided idempotency key
2129
+ */
2130
+ idempotency_key?: string;
2131
+ }
2132
+
2133
+ export namespace LibraryScreenStopResponse {
2134
+ export interface Error {
2135
+ /**
2136
+ * Machine-readable error code
2137
+ */
2138
+ code: string;
2139
+
2140
+ /**
2141
+ * Human-readable error message
2142
+ */
2143
+ message: string;
2144
+
2145
+ /**
2146
+ * Additional field-level error details keyed by input path, when available.
2147
+ */
2148
+ details?: unknown;
2149
+ }
2150
+
2151
+ /**
2152
+ * Pipeline input (null if data deleted)
2153
+ */
2154
+ export interface Input {
2155
+ molecules: Input.Molecules;
2156
+
2157
+ /**
2158
+ * Target protein with binding pocket for small molecule design or screening
2159
+ */
2160
+ target: Input.Target;
2161
+
2162
+ /**
2163
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
2164
+ * and custom filters.
2165
+ */
2166
+ molecule_filters?: Input.MoleculeFilters;
2167
+ }
2168
+
2169
+ export namespace Input {
2170
+ export interface Molecules {
2171
+ /**
2172
+ * URL to download the file
2173
+ */
2174
+ url: string;
2175
+
2176
+ /**
2177
+ * When the presigned URL expires
2178
+ */
2179
+ url_expires_at: string;
2180
+ }
2181
+
2182
+ /**
2183
+ * Target protein with binding pocket for small molecule design or screening
2184
+ */
2185
+ export interface Target {
2186
+ /**
2187
+ * Protein entities defining the target structure. Each entity represents a protein
2188
+ * chain.
2189
+ */
2190
+ entities: Array<Target.Entity>;
2191
+
2192
+ /**
2193
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
2194
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
2195
+ */
2196
+ bonds?: Array<Target.Bond>;
2197
+
2198
+ /**
2199
+ * Structural constraints (pocket and contact). Atom-level ligand references
2200
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
2201
+ */
2202
+ constraints?: Array<Target.PocketConstraintResponse | Target.ContactConstraintResponse>;
2203
+
2204
+ /**
2205
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
2206
+ * and the value is an array of 0-indexed residue indices that define the binding
2207
+ * pocket on that chain. When provided, these residues guide pocket extraction and
2208
+ * add a derived pocket constraint during affinity predictions. That derived
2209
+ * constraint remains separate from any explicit pocket constraints in
2210
+ * target.constraints. When omitted, the model auto-detects the pocket.
2211
+ */
2212
+ pocket_residues?: { [key: string]: Array<number> };
2213
+
2214
+ /**
2215
+ * Reference ligands as SMILES strings that help the model identify the binding
2216
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
2217
+ * detection.
2218
+ */
2219
+ reference_ligands?: Array<string>;
2220
+ }
2221
+
2222
+ export namespace Target {
2223
+ export interface Entity {
2224
+ /**
2225
+ * Chain IDs for this entity
2226
+ */
2227
+ chain_ids: Array<string>;
2228
+
2229
+ type: 'protein';
2230
+
2231
+ /**
2232
+ * Amino acid sequence (one-letter codes)
2233
+ */
2234
+ value: string;
2235
+
2236
+ /**
2237
+ * Whether the sequence is cyclic
2238
+ */
2239
+ cyclic?: boolean;
2240
+
2241
+ /**
2242
+ * Post-translational modifications. Optional; defaults to an empty list when
2243
+ * omitted.
2244
+ */
2245
+ modifications?: Array<Entity.CcdModificationResponse | Entity.SmilesModificationResponse>;
2246
+ }
2247
+
2248
+ export namespace Entity {
2249
+ export interface CcdModificationResponse {
2250
+ /**
2251
+ * 0-based index of the residue to modify
2252
+ */
2253
+ residue_index: number;
2254
+
2255
+ type: 'ccd';
2256
+
2257
+ /**
2258
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
2259
+ * phosphoserine)
2260
+ */
2261
+ value: string;
2262
+ }
2263
+
2264
+ export interface SmilesModificationResponse {
2265
+ /**
2266
+ * 0-based index of the residue to modify
2267
+ */
2268
+ residue_index: number;
2269
+
2270
+ type: 'smiles';
2271
+
2272
+ /**
2273
+ * SMILES string for the modification
2274
+ */
2275
+ value: string;
2276
+ }
2277
+ }
2278
+
2279
+ /**
2280
+ * Bond between two atoms. Atom-level ligand references currently support
2281
+ * ligand_ccd entities only; ligand_smiles is unsupported.
2282
+ */
2283
+ export interface Bond {
2284
+ /**
2285
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2286
+ * entities only; ligand_smiles is unsupported.
2287
+ */
2288
+ atom1: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
2289
+
2290
+ /**
2291
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2292
+ * entities only; ligand_smiles is unsupported.
2293
+ */
2294
+ atom2: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
2295
+ }
2296
+
2297
+ export namespace Bond {
2298
+ /**
2299
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2300
+ * entities only; ligand_smiles is unsupported.
2301
+ */
2302
+ export interface LigandAtomResponse {
2303
+ /**
2304
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
2305
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
2306
+ */
2307
+ atom_name: string;
2308
+
2309
+ /**
2310
+ * Chain ID containing the atom
2311
+ */
2312
+ chain_id: string;
2313
+
2314
+ type: 'ligand_atom';
2315
+ }
2316
+
2317
+ export interface PolymerAtomResponse {
2318
+ /**
2319
+ * Standardized atom name (verifiable in CIF file on RCSB)
2320
+ */
2321
+ atom_name: string;
2322
+
2323
+ /**
2324
+ * Chain ID containing the atom
2325
+ */
2326
+ chain_id: string;
2327
+
2328
+ /**
2329
+ * 0-based residue index
2330
+ */
2331
+ residue_index: number;
2332
+
2333
+ type: 'polymer_atom';
2334
+ }
2335
+
2336
+ /**
2337
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2338
+ * entities only; ligand_smiles is unsupported.
2339
+ */
2340
+ export interface LigandAtomResponse {
2341
+ /**
2342
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
2343
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
2344
+ */
2345
+ atom_name: string;
2346
+
2347
+ /**
2348
+ * Chain ID containing the atom
2349
+ */
2350
+ chain_id: string;
2351
+
2352
+ type: 'ligand_atom';
2353
+ }
2354
+
2355
+ export interface PolymerAtomResponse {
2356
+ /**
2357
+ * Standardized atom name (verifiable in CIF file on RCSB)
2358
+ */
2359
+ atom_name: string;
2360
+
2361
+ /**
2362
+ * Chain ID containing the atom
2363
+ */
2364
+ chain_id: string;
2365
+
2366
+ /**
2367
+ * 0-based residue index
2368
+ */
2369
+ residue_index: number;
2370
+
2371
+ type: 'polymer_atom';
2372
+ }
2373
+ }
2374
+
2375
+ /**
2376
+ * Constrains the binder to interact with specific pocket residues on the target.
2377
+ */
2378
+ export interface PocketConstraintResponse {
2379
+ /**
2380
+ * Chain ID of the binder molecule
2381
+ */
2382
+ binder_chain_id: string;
2383
+
2384
+ /**
2385
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
2386
+ * the value is an array of 0-indexed residue indices that define the pocket on
2387
+ * that chain.
2388
+ */
2389
+ contact_residues: { [key: string]: Array<number> };
2390
+
2391
+ /**
2392
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
2393
+ * Typical range: 4-8 A.
2394
+ */
2395
+ max_distance_angstrom: number;
2396
+
2397
+ type: 'pocket';
2398
+
2399
+ /**
2400
+ * Whether to force the constraint
2401
+ */
2402
+ force?: boolean;
2403
+ }
2404
+
2405
+ /**
2406
+ * Contact constraint between two tokens. Atom-level ligand references currently
2407
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
2408
+ */
2409
+ export interface ContactConstraintResponse {
2410
+ /**
2411
+ * Maximum distance in Angstroms
2412
+ */
2413
+ max_distance_angstrom: number;
2414
+
2415
+ /**
2416
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
2417
+ * entities only; ligand_smiles is unsupported.
2418
+ */
2419
+ token1:
2420
+ | ContactConstraintResponse.PolymerContactTokenResponse
2421
+ | ContactConstraintResponse.LigandContactTokenResponse;
2422
+
2423
+ /**
2424
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
2425
+ * entities only; ligand_smiles is unsupported.
2426
+ */
2427
+ token2:
2428
+ | ContactConstraintResponse.PolymerContactTokenResponse
2429
+ | ContactConstraintResponse.LigandContactTokenResponse;
2430
+
2431
+ type: 'contact';
2432
+
2433
+ /**
2434
+ * Whether to force the constraint
2435
+ */
2436
+ force?: boolean;
2437
+ }
2438
+
2439
+ export namespace ContactConstraintResponse {
2440
+ export interface PolymerContactTokenResponse {
2441
+ /**
2442
+ * Chain ID
2443
+ */
2444
+ chain_id: string;
2445
+
2446
+ /**
2447
+ * 0-based residue index
2448
+ */
2449
+ residue_index: number;
2450
+
2451
+ type: 'polymer_contact';
2452
+ }
2453
+
2454
+ /**
2455
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
2456
+ * entities only; ligand_smiles is unsupported.
2457
+ */
2458
+ export interface LigandContactTokenResponse {
2459
+ /**
2460
+ * Atom name. Atom-level references to ligand_smiles entities are currently
2461
+ * unsupported; use ligand_ccd instead.
2462
+ */
2463
+ atom_name: string;
2464
+
2465
+ /**
2466
+ * Chain ID
2467
+ */
2468
+ chain_id: string;
2469
+
2470
+ type: 'ligand_contact';
2471
+ }
2472
+
2473
+ export interface PolymerContactTokenResponse {
2474
+ /**
2475
+ * Chain ID
2476
+ */
2477
+ chain_id: string;
2478
+
2479
+ /**
2480
+ * 0-based residue index
2481
+ */
2482
+ residue_index: number;
2483
+
2484
+ type: 'polymer_contact';
2485
+ }
2486
+
2487
+ /**
2488
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
2489
+ * entities only; ligand_smiles is unsupported.
2490
+ */
2491
+ export interface LigandContactTokenResponse {
2492
+ /**
2493
+ * Atom name. Atom-level references to ligand_smiles entities are currently
2494
+ * unsupported; use ligand_ccd instead.
2495
+ */
2496
+ atom_name: string;
2497
+
2498
+ /**
2499
+ * Chain ID
2500
+ */
2501
+ chain_id: string;
2502
+
2503
+ type: 'ligand_contact';
2504
+ }
2505
+ }
2506
+ }
2507
+
2508
+ /**
2509
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
2510
+ * and custom filters.
2511
+ */
2512
+ export interface MoleculeFilters {
2513
+ /**
2514
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
2515
+ * which removes molecules matching known problematic substructures. 'recommended'
2516
+ * (default): applies a curated set of alerts balancing safety and hit rate.
2517
+ * 'extra': adds additional alerts beyond the recommended set for stricter
2518
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
2519
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
2520
+ * custom_filters will be applied.
2521
+ */
2522
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
2523
+
2524
+ /**
2525
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
2526
+ */
2527
+ custom_filters?: Array<
2528
+ | MoleculeFilters.LipinskiFilterResponse
2529
+ | MoleculeFilters.RdkitDescriptorFilterResponse
2530
+ | MoleculeFilters.SmartsCustomFilterResponse
2531
+ | MoleculeFilters.SmartsCatalogFilterResponse
2532
+ | MoleculeFilters.SmilesRegexFilterResponse
2533
+ >;
2534
+ }
2535
+
2536
+ export namespace MoleculeFilters {
2537
+ /**
2538
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
2539
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
2540
+ * bond acceptors.
2541
+ */
2542
+ export interface LipinskiFilterResponse {
2543
+ /**
2544
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
2545
+ */
2546
+ max_hba: number;
2547
+
2548
+ /**
2549
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
2550
+ */
2551
+ max_hbd: number;
2552
+
2553
+ /**
2554
+ * Maximum LogP. Lipinski threshold: 5
2555
+ */
2556
+ max_logp: number;
2557
+
2558
+ /**
2559
+ * Maximum molecular weight (Da). Lipinski threshold: 500
2560
+ */
2561
+ max_mw: number;
2562
+
2563
+ type: 'lipinski_filter';
2564
+
2565
+ /**
2566
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
2567
+ * (all rules must pass).
2568
+ */
2569
+ allow_single_violation?: boolean;
2570
+ }
2571
+
2572
+ /**
2573
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
2574
+ * to a min/max range. Only descriptors you provide are checked — omitted
2575
+ * descriptors are unconstrained.
2576
+ */
2577
+ export interface RdkitDescriptorFilterResponse {
2578
+ type: 'rdkit_descriptor_filter';
2579
+
2580
+ /**
2581
+ * Min/max range constraint for an RDKit molecular descriptor
2582
+ */
2583
+ fraction_csp3?: RdkitDescriptorFilterResponse.FractionCsp3;
2584
+
2585
+ /**
2586
+ * Min/max range constraint for an RDKit molecular descriptor
2587
+ */
2588
+ mol_logp?: RdkitDescriptorFilterResponse.MolLogp;
2589
+
2590
+ /**
2591
+ * Min/max range constraint for an RDKit molecular descriptor
2592
+ */
2593
+ mol_wt?: RdkitDescriptorFilterResponse.MolWt;
2594
+
2595
+ /**
2596
+ * Min/max range constraint for an RDKit molecular descriptor
2597
+ */
2598
+ num_aromatic_rings?: RdkitDescriptorFilterResponse.NumAromaticRings;
2599
+
2600
+ /**
2601
+ * Min/max range constraint for an RDKit molecular descriptor
2602
+ */
2603
+ num_h_acceptors?: RdkitDescriptorFilterResponse.NumHAcceptors;
2604
+
2605
+ /**
2606
+ * Min/max range constraint for an RDKit molecular descriptor
2607
+ */
2608
+ num_h_donors?: RdkitDescriptorFilterResponse.NumHDonors;
2609
+
2610
+ /**
2611
+ * Min/max range constraint for an RDKit molecular descriptor
2612
+ */
2613
+ num_heteroatoms?: RdkitDescriptorFilterResponse.NumHeteroatoms;
2614
+
2615
+ /**
2616
+ * Min/max range constraint for an RDKit molecular descriptor
2617
+ */
2618
+ num_rings?: RdkitDescriptorFilterResponse.NumRings;
2619
+
2620
+ /**
2621
+ * Min/max range constraint for an RDKit molecular descriptor
2622
+ */
2623
+ num_rotatable_bonds?: RdkitDescriptorFilterResponse.NumRotatableBonds;
2624
+
2625
+ /**
2626
+ * Min/max range constraint for an RDKit molecular descriptor
2627
+ */
2628
+ tpsa?: RdkitDescriptorFilterResponse.Tpsa;
2629
+ }
2630
+
2631
+ export namespace RdkitDescriptorFilterResponse {
2632
+ /**
2633
+ * Min/max range constraint for an RDKit molecular descriptor
2634
+ */
2635
+ export interface FractionCsp3 {
2636
+ /**
2637
+ * Maximum allowed value (inclusive)
2638
+ */
2639
+ max?: number;
2640
+
2641
+ /**
2642
+ * Minimum allowed value (inclusive)
2643
+ */
2644
+ min?: number;
2645
+ }
2646
+
2647
+ /**
2648
+ * Min/max range constraint for an RDKit molecular descriptor
2649
+ */
2650
+ export interface MolLogp {
2651
+ /**
2652
+ * Maximum allowed value (inclusive)
2653
+ */
2654
+ max?: number;
2655
+
2656
+ /**
2657
+ * Minimum allowed value (inclusive)
2658
+ */
2659
+ min?: number;
2660
+ }
2661
+
2662
+ /**
2663
+ * Min/max range constraint for an RDKit molecular descriptor
2664
+ */
2665
+ export interface MolWt {
2666
+ /**
2667
+ * Maximum allowed value (inclusive)
2668
+ */
2669
+ max?: number;
2670
+
2671
+ /**
2672
+ * Minimum allowed value (inclusive)
2673
+ */
2674
+ min?: number;
2675
+ }
2676
+
2677
+ /**
2678
+ * Min/max range constraint for an RDKit molecular descriptor
2679
+ */
2680
+ export interface NumAromaticRings {
2681
+ /**
2682
+ * Maximum allowed value (inclusive)
2683
+ */
2684
+ max?: number;
2685
+
2686
+ /**
2687
+ * Minimum allowed value (inclusive)
2688
+ */
2689
+ min?: number;
2690
+ }
2691
+
2692
+ /**
2693
+ * Min/max range constraint for an RDKit molecular descriptor
2694
+ */
2695
+ export interface NumHAcceptors {
2696
+ /**
2697
+ * Maximum allowed value (inclusive)
2698
+ */
2699
+ max?: number;
2700
+
2701
+ /**
2702
+ * Minimum allowed value (inclusive)
2703
+ */
2704
+ min?: number;
2705
+ }
2706
+
2707
+ /**
2708
+ * Min/max range constraint for an RDKit molecular descriptor
2709
+ */
2710
+ export interface NumHDonors {
2711
+ /**
2712
+ * Maximum allowed value (inclusive)
2713
+ */
2714
+ max?: number;
2715
+
2716
+ /**
2717
+ * Minimum allowed value (inclusive)
2718
+ */
2719
+ min?: number;
2720
+ }
2721
+
2722
+ /**
2723
+ * Min/max range constraint for an RDKit molecular descriptor
2724
+ */
2725
+ export interface NumHeteroatoms {
2726
+ /**
2727
+ * Maximum allowed value (inclusive)
2728
+ */
2729
+ max?: number;
2730
+
2731
+ /**
2732
+ * Minimum allowed value (inclusive)
2733
+ */
2734
+ min?: number;
2735
+ }
2736
+
2737
+ /**
2738
+ * Min/max range constraint for an RDKit molecular descriptor
2739
+ */
2740
+ export interface NumRings {
2741
+ /**
2742
+ * Maximum allowed value (inclusive)
2743
+ */
2744
+ max?: number;
2745
+
2746
+ /**
2747
+ * Minimum allowed value (inclusive)
2748
+ */
2749
+ min?: number;
2750
+ }
2751
+
2752
+ /**
2753
+ * Min/max range constraint for an RDKit molecular descriptor
2754
+ */
2755
+ export interface NumRotatableBonds {
2756
+ /**
2757
+ * Maximum allowed value (inclusive)
2758
+ */
2759
+ max?: number;
2760
+
2761
+ /**
2762
+ * Minimum allowed value (inclusive)
2763
+ */
2764
+ min?: number;
2765
+ }
2766
+
2767
+ /**
2768
+ * Min/max range constraint for an RDKit molecular descriptor
2769
+ */
2770
+ export interface Tpsa {
2771
+ /**
2772
+ * Maximum allowed value (inclusive)
2773
+ */
2774
+ max?: number;
2775
+
2776
+ /**
2777
+ * Minimum allowed value (inclusive)
2778
+ */
2779
+ min?: number;
2780
+ }
2781
+ }
2782
+
2783
+ /**
2784
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
2785
+ * rejected.
2786
+ */
2787
+ export interface SmartsCustomFilterResponse {
2788
+ /**
2789
+ * SMARTS patterns. Molecules matching any pattern are rejected.
2790
+ */
2791
+ patterns: Array<string>;
2792
+
2793
+ type: 'smarts_custom_filter';
2794
+ }
2795
+
2796
+ /**
2797
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
2798
+ */
2799
+ export interface SmartsCatalogFilterResponse {
2800
+ /**
2801
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
2802
+ * reject known problematic substructures.
2803
+ */
2804
+ catalog:
2805
+ | 'PAINS'
2806
+ | 'PAINS_A'
2807
+ | 'PAINS_B'
2808
+ | 'PAINS_C'
2809
+ | 'BRENK'
2810
+ | 'CHEMBL'
2811
+ | 'CHEMBL_BMS'
2812
+ | 'CHEMBL_Dundee'
2813
+ | 'CHEMBL_Glaxo'
2814
+ | 'CHEMBL_Inpharmatica'
2815
+ | 'CHEMBL_LINT'
2816
+ | 'CHEMBL_MLSMR'
2817
+ | 'CHEMBL_SureChEMBL'
2818
+ | 'NIH';
2819
+
2820
+ type: 'smarts_catalog_filter';
2821
+ }
2822
+
2823
+ /**
2824
+ * Filter molecules by regex patterns on their SMILES representation.
2825
+ */
2826
+ export interface SmilesRegexFilterResponse {
2827
+ /**
2828
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
2829
+ * rejected.
2830
+ */
2831
+ patterns: Array<string>;
2832
+
2833
+ type: 'smiles_regex_filter';
2834
+ }
2835
+ }
2836
+ }
2837
+
2838
+ export interface Progress {
2839
+ /**
2840
+ * Number of accepted molecules that reached terminal failure during screening.
2841
+ */
2842
+ num_molecules_failed: number;
2843
+
2844
+ /**
2845
+ * Number of accepted molecules that produced usable screening results.
2846
+ */
2847
+ num_molecules_screened: number;
2848
+
2849
+ /**
2850
+ * Total number of molecules accepted into screening after server-side validation
2851
+ * and filtering.
2852
+ */
2853
+ total_molecules_to_screen: number;
2854
+
2855
+ /**
2856
+ * ID of the most recently screened result
2857
+ */
2858
+ latest_result_id?: string;
2859
+
2860
+ rejection_summary?: Progress.RejectionSummary;
2861
+ }
2862
+
2863
+ export namespace Progress {
2864
+ export interface RejectionSummary {
2865
+ /**
2866
+ * Number of submitted molecules removed by server-side filtering rules.
2867
+ */
2868
+ filtered_count: number;
2869
+
2870
+ /**
2871
+ * Number of submitted molecules rejected as invalid input.
2872
+ */
2873
+ invalid_count: number;
2874
+ }
2875
+ }
2876
+ }
2877
+
2878
+ export interface LibraryScreenRetrieveParams {
2879
+ /**
2880
+ * Workspace ID. Only used with admin API keys. Ignored (or validated) for
2881
+ * workspace-scoped keys.
2882
+ */
2883
+ workspace_id?: string;
2884
+ }
2885
+
2886
+ export interface LibraryScreenListParams extends CursorPageParams {
2887
+ /**
2888
+ * Filter by workspace ID. Only used with admin API keys. If not provided, defaults
2889
+ * to the workspace associated with the API key, or the default workspace for admin
2890
+ * keys.
2891
+ */
2892
+ workspace_id?: string;
2893
+ }
2894
+
2895
+ export interface LibraryScreenEstimateCostParams {
2896
+ /**
2897
+ * List of small molecules to screen.
2898
+ */
2899
+ molecules: Array<LibraryScreenEstimateCostParams.Molecule>;
2900
+
2901
+ /**
2902
+ * Target protein with binding pocket for small molecule design or screening
2903
+ */
2904
+ target: LibraryScreenEstimateCostParams.Target;
2905
+
2906
+ /**
2907
+ * Client-provided key to prevent duplicate submissions on retries
2908
+ */
2909
+ idempotency_key?: string;
2910
+
2911
+ /**
2912
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
2913
+ * and custom filters.
2914
+ */
2915
+ molecule_filters?: LibraryScreenEstimateCostParams.MoleculeFilters;
2916
+
2917
+ /**
2918
+ * Target workspace ID (admin keys only; ignored for workspace keys)
2919
+ */
2920
+ workspace_id?: string;
2921
+ }
2922
+
2923
+ export namespace LibraryScreenEstimateCostParams {
2924
+ /**
2925
+ * A small molecule with SMILES and optional ID
2926
+ */
2927
+ export interface Molecule {
2928
+ /**
2929
+ * SMILES string of the molecule
2930
+ */
2931
+ smiles: string;
2932
+
2933
+ /**
2934
+ * Optional identifier for this molecule
2935
+ */
2936
+ id?: string;
2937
+ }
2938
+
2939
+ /**
2940
+ * Target protein with binding pocket for small molecule design or screening
2941
+ */
2942
+ export interface Target {
2943
+ /**
2944
+ * Protein entities defining the target structure. Each entity represents a protein
2945
+ * chain.
2946
+ */
2947
+ entities: Array<Target.Entity>;
2948
+
2949
+ /**
2950
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
2951
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
2952
+ */
2953
+ bonds?: Array<Target.Bond>;
2954
+
2955
+ /**
2956
+ * Structural constraints (pocket and contact). Atom-level ligand references
2957
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
2958
+ */
2959
+ constraints?: Array<Target.PocketConstraint | Target.ContactConstraint>;
2960
+
2961
+ /**
2962
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
2963
+ * and the value is an array of 0-indexed residue indices that define the binding
2964
+ * pocket on that chain. When provided, these residues guide pocket extraction and
2965
+ * add a derived pocket constraint during affinity predictions. That derived
2966
+ * constraint remains separate from any explicit pocket constraints in
2967
+ * target.constraints. When omitted, the model auto-detects the pocket.
2968
+ */
2969
+ pocket_residues?: { [key: string]: Array<number> };
2970
+
2971
+ /**
2972
+ * Reference ligands as SMILES strings that help the model identify the binding
2973
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
2974
+ * detection.
2975
+ */
2976
+ reference_ligands?: Array<string>;
2977
+ }
2978
+
2979
+ export namespace Target {
2980
+ export interface Entity {
2981
+ /**
2982
+ * Chain IDs for this entity
2983
+ */
2984
+ chain_ids: Array<string>;
2985
+
2986
+ type: 'protein';
2987
+
2988
+ /**
2989
+ * Amino acid sequence (one-letter codes)
2990
+ */
2991
+ value: string;
2992
+
2993
+ /**
2994
+ * Whether the sequence is cyclic
2995
+ */
2996
+ cyclic?: boolean;
2997
+
2998
+ /**
2999
+ * Post-translational modifications. Optional; defaults to an empty list when
3000
+ * omitted.
3001
+ */
3002
+ modifications?: Array<Entity.CcdModification | Entity.SmilesModification>;
3003
+ }
3004
+
3005
+ export namespace Entity {
3006
+ export interface CcdModification {
3007
+ /**
3008
+ * 0-based index of the residue to modify
3009
+ */
3010
+ residue_index: number;
3011
+
3012
+ type: 'ccd';
3013
+
3014
+ /**
3015
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
3016
+ * phosphoserine)
3017
+ */
3018
+ value: string;
3019
+ }
3020
+
3021
+ export interface SmilesModification {
3022
+ /**
3023
+ * 0-based index of the residue to modify
3024
+ */
3025
+ residue_index: number;
3026
+
3027
+ type: 'smiles';
3028
+
3029
+ /**
3030
+ * SMILES string for the modification
3031
+ */
3032
+ value: string;
3033
+ }
3034
+ }
3035
+
3036
+ /**
3037
+ * Bond between two atoms. Atom-level ligand references currently support
3038
+ * ligand_ccd entities only; ligand_smiles is unsupported.
3039
+ */
3040
+ export interface Bond {
3041
+ /**
3042
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3043
+ * entities only; ligand_smiles is unsupported.
3044
+ */
3045
+ atom1: Bond.LigandAtom | Bond.PolymerAtom;
3046
+
3047
+ /**
3048
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3049
+ * entities only; ligand_smiles is unsupported.
3050
+ */
3051
+ atom2: Bond.LigandAtom | Bond.PolymerAtom;
3052
+ }
3053
+
3054
+ export namespace Bond {
3055
+ /**
3056
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3057
+ * entities only; ligand_smiles is unsupported.
3058
+ */
3059
+ export interface LigandAtom {
3060
+ /**
3061
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
3062
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
3063
+ */
3064
+ atom_name: string;
3065
+
3066
+ /**
3067
+ * Chain ID containing the atom
3068
+ */
3069
+ chain_id: string;
3070
+
3071
+ type: 'ligand_atom';
3072
+ }
3073
+
3074
+ export interface PolymerAtom {
3075
+ /**
3076
+ * Standardized atom name (verifiable in CIF file on RCSB)
3077
+ */
3078
+ atom_name: string;
3079
+
3080
+ /**
3081
+ * Chain ID containing the atom
3082
+ */
3083
+ chain_id: string;
3084
+
3085
+ /**
3086
+ * 0-based residue index
3087
+ */
3088
+ residue_index: number;
3089
+
3090
+ type: 'polymer_atom';
3091
+ }
3092
+
3093
+ /**
3094
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3095
+ * entities only; ligand_smiles is unsupported.
3096
+ */
3097
+ export interface LigandAtom {
3098
+ /**
3099
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
3100
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
3101
+ */
3102
+ atom_name: string;
3103
+
3104
+ /**
3105
+ * Chain ID containing the atom
3106
+ */
3107
+ chain_id: string;
3108
+
3109
+ type: 'ligand_atom';
3110
+ }
3111
+
3112
+ export interface PolymerAtom {
3113
+ /**
3114
+ * Standardized atom name (verifiable in CIF file on RCSB)
3115
+ */
3116
+ atom_name: string;
3117
+
3118
+ /**
3119
+ * Chain ID containing the atom
3120
+ */
3121
+ chain_id: string;
3122
+
3123
+ /**
3124
+ * 0-based residue index
3125
+ */
3126
+ residue_index: number;
3127
+
3128
+ type: 'polymer_atom';
3129
+ }
3130
+ }
3131
+
3132
+ /**
3133
+ * Constrains the binder to interact with specific pocket residues on the target.
3134
+ */
3135
+ export interface PocketConstraint {
3136
+ /**
3137
+ * Chain ID of the binder molecule
3138
+ */
3139
+ binder_chain_id: string;
3140
+
3141
+ /**
3142
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
3143
+ * the value is an array of 0-indexed residue indices that define the pocket on
3144
+ * that chain.
3145
+ */
3146
+ contact_residues: { [key: string]: Array<number> };
3147
+
3148
+ /**
3149
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
3150
+ * Typical range: 4-8 A.
3151
+ */
3152
+ max_distance_angstrom: number;
3153
+
3154
+ type: 'pocket';
3155
+
3156
+ /**
3157
+ * Whether to force the constraint
3158
+ */
3159
+ force?: boolean;
3160
+ }
3161
+
3162
+ /**
3163
+ * Contact constraint between two tokens. Atom-level ligand references currently
3164
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
3165
+ */
3166
+ export interface ContactConstraint {
3167
+ /**
3168
+ * Maximum distance in Angstroms
3169
+ */
3170
+ max_distance_angstrom: number;
3171
+
3172
+ /**
3173
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3174
+ * entities only; ligand_smiles is unsupported.
3175
+ */
3176
+ token1: ContactConstraint.PolymerContactToken | ContactConstraint.LigandContactToken;
3177
+
3178
+ /**
3179
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3180
+ * entities only; ligand_smiles is unsupported.
3181
+ */
3182
+ token2: ContactConstraint.PolymerContactToken | ContactConstraint.LigandContactToken;
3183
+
3184
+ type: 'contact';
3185
+
3186
+ /**
3187
+ * Whether to force the constraint
3188
+ */
3189
+ force?: boolean;
3190
+ }
3191
+
3192
+ export namespace ContactConstraint {
3193
+ export interface PolymerContactToken {
3194
+ /**
3195
+ * Chain ID
3196
+ */
3197
+ chain_id: string;
3198
+
3199
+ /**
3200
+ * 0-based residue index
3201
+ */
3202
+ residue_index: number;
3203
+
3204
+ type: 'polymer_contact';
3205
+ }
3206
+
3207
+ /**
3208
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3209
+ * entities only; ligand_smiles is unsupported.
3210
+ */
3211
+ export interface LigandContactToken {
3212
+ /**
3213
+ * Atom name. Atom-level references to ligand_smiles entities are currently
3214
+ * unsupported; use ligand_ccd instead.
3215
+ */
3216
+ atom_name: string;
3217
+
3218
+ /**
3219
+ * Chain ID
3220
+ */
3221
+ chain_id: string;
3222
+
3223
+ type: 'ligand_contact';
3224
+ }
3225
+
3226
+ export interface PolymerContactToken {
3227
+ /**
3228
+ * Chain ID
3229
+ */
3230
+ chain_id: string;
3231
+
3232
+ /**
3233
+ * 0-based residue index
3234
+ */
3235
+ residue_index: number;
3236
+
3237
+ type: 'polymer_contact';
3238
+ }
3239
+
3240
+ /**
3241
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3242
+ * entities only; ligand_smiles is unsupported.
3243
+ */
3244
+ export interface LigandContactToken {
3245
+ /**
3246
+ * Atom name. Atom-level references to ligand_smiles entities are currently
3247
+ * unsupported; use ligand_ccd instead.
3248
+ */
3249
+ atom_name: string;
3250
+
3251
+ /**
3252
+ * Chain ID
3253
+ */
3254
+ chain_id: string;
3255
+
3256
+ type: 'ligand_contact';
3257
+ }
3258
+ }
3259
+ }
3260
+
3261
+ /**
3262
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
3263
+ * and custom filters.
3264
+ */
3265
+ export interface MoleculeFilters {
3266
+ /**
3267
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
3268
+ * which removes molecules matching known problematic substructures. 'recommended'
3269
+ * (default): applies a curated set of alerts balancing safety and hit rate.
3270
+ * 'extra': adds additional alerts beyond the recommended set for stricter
3271
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
3272
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
3273
+ * custom_filters will be applied.
3274
+ */
3275
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
3276
+
3277
+ /**
3278
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
3279
+ */
3280
+ custom_filters?: Array<
3281
+ | MoleculeFilters.LipinskiFilter
3282
+ | MoleculeFilters.RdkitDescriptorFilter
3283
+ | MoleculeFilters.SmartsCustomFilter
3284
+ | MoleculeFilters.SmartsCatalogFilter
3285
+ | MoleculeFilters.SmilesRegexFilter
3286
+ >;
3287
+ }
3288
+
3289
+ export namespace MoleculeFilters {
3290
+ /**
3291
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
3292
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
3293
+ * bond acceptors.
3294
+ */
3295
+ export interface LipinskiFilter {
3296
+ /**
3297
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
3298
+ */
3299
+ max_hba: number;
3300
+
3301
+ /**
3302
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
3303
+ */
3304
+ max_hbd: number;
3305
+
3306
+ /**
3307
+ * Maximum LogP. Lipinski threshold: 5
3308
+ */
3309
+ max_logp: number;
3310
+
3311
+ /**
3312
+ * Maximum molecular weight (Da). Lipinski threshold: 500
3313
+ */
3314
+ max_mw: number;
3315
+
3316
+ type: 'lipinski_filter';
3317
+
3318
+ /**
3319
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
3320
+ * (all rules must pass).
3321
+ */
3322
+ allow_single_violation?: boolean;
3323
+ }
3324
+
3325
+ /**
3326
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
3327
+ * to a min/max range. Only descriptors you provide are checked — omitted
3328
+ * descriptors are unconstrained.
3329
+ */
3330
+ export interface RdkitDescriptorFilter {
3331
+ type: 'rdkit_descriptor_filter';
3332
+
3333
+ /**
3334
+ * Min/max range constraint for an RDKit molecular descriptor
3335
+ */
3336
+ fraction_csp3?: RdkitDescriptorFilter.FractionCsp3;
3337
+
3338
+ /**
3339
+ * Min/max range constraint for an RDKit molecular descriptor
3340
+ */
3341
+ mol_logp?: RdkitDescriptorFilter.MolLogp;
3342
+
3343
+ /**
3344
+ * Min/max range constraint for an RDKit molecular descriptor
3345
+ */
3346
+ mol_wt?: RdkitDescriptorFilter.MolWt;
3347
+
3348
+ /**
3349
+ * Min/max range constraint for an RDKit molecular descriptor
3350
+ */
3351
+ num_aromatic_rings?: RdkitDescriptorFilter.NumAromaticRings;
3352
+
3353
+ /**
3354
+ * Min/max range constraint for an RDKit molecular descriptor
3355
+ */
3356
+ num_h_acceptors?: RdkitDescriptorFilter.NumHAcceptors;
3357
+
3358
+ /**
3359
+ * Min/max range constraint for an RDKit molecular descriptor
3360
+ */
3361
+ num_h_donors?: RdkitDescriptorFilter.NumHDonors;
3362
+
3363
+ /**
3364
+ * Min/max range constraint for an RDKit molecular descriptor
3365
+ */
3366
+ num_heteroatoms?: RdkitDescriptorFilter.NumHeteroatoms;
3367
+
3368
+ /**
3369
+ * Min/max range constraint for an RDKit molecular descriptor
3370
+ */
3371
+ num_rings?: RdkitDescriptorFilter.NumRings;
3372
+
3373
+ /**
3374
+ * Min/max range constraint for an RDKit molecular descriptor
3375
+ */
3376
+ num_rotatable_bonds?: RdkitDescriptorFilter.NumRotatableBonds;
3377
+
3378
+ /**
3379
+ * Min/max range constraint for an RDKit molecular descriptor
3380
+ */
3381
+ tpsa?: RdkitDescriptorFilter.Tpsa;
3382
+ }
3383
+
3384
+ export namespace RdkitDescriptorFilter {
3385
+ /**
3386
+ * Min/max range constraint for an RDKit molecular descriptor
3387
+ */
3388
+ export interface FractionCsp3 {
3389
+ /**
3390
+ * Maximum allowed value (inclusive)
3391
+ */
3392
+ max?: number;
3393
+
3394
+ /**
3395
+ * Minimum allowed value (inclusive)
3396
+ */
3397
+ min?: number;
3398
+ }
3399
+
3400
+ /**
3401
+ * Min/max range constraint for an RDKit molecular descriptor
3402
+ */
3403
+ export interface MolLogp {
3404
+ /**
3405
+ * Maximum allowed value (inclusive)
3406
+ */
3407
+ max?: number;
3408
+
3409
+ /**
3410
+ * Minimum allowed value (inclusive)
3411
+ */
3412
+ min?: number;
3413
+ }
3414
+
3415
+ /**
3416
+ * Min/max range constraint for an RDKit molecular descriptor
3417
+ */
3418
+ export interface MolWt {
3419
+ /**
3420
+ * Maximum allowed value (inclusive)
3421
+ */
3422
+ max?: number;
3423
+
3424
+ /**
3425
+ * Minimum allowed value (inclusive)
3426
+ */
3427
+ min?: number;
3428
+ }
3429
+
3430
+ /**
3431
+ * Min/max range constraint for an RDKit molecular descriptor
3432
+ */
3433
+ export interface NumAromaticRings {
3434
+ /**
3435
+ * Maximum allowed value (inclusive)
3436
+ */
3437
+ max?: number;
3438
+
3439
+ /**
3440
+ * Minimum allowed value (inclusive)
3441
+ */
3442
+ min?: number;
3443
+ }
3444
+
3445
+ /**
3446
+ * Min/max range constraint for an RDKit molecular descriptor
3447
+ */
3448
+ export interface NumHAcceptors {
3449
+ /**
3450
+ * Maximum allowed value (inclusive)
3451
+ */
3452
+ max?: number;
3453
+
3454
+ /**
3455
+ * Minimum allowed value (inclusive)
3456
+ */
3457
+ min?: number;
3458
+ }
3459
+
3460
+ /**
3461
+ * Min/max range constraint for an RDKit molecular descriptor
3462
+ */
3463
+ export interface NumHDonors {
3464
+ /**
3465
+ * Maximum allowed value (inclusive)
3466
+ */
3467
+ max?: number;
3468
+
3469
+ /**
3470
+ * Minimum allowed value (inclusive)
3471
+ */
3472
+ min?: number;
3473
+ }
3474
+
3475
+ /**
3476
+ * Min/max range constraint for an RDKit molecular descriptor
3477
+ */
3478
+ export interface NumHeteroatoms {
3479
+ /**
3480
+ * Maximum allowed value (inclusive)
3481
+ */
3482
+ max?: number;
3483
+
3484
+ /**
3485
+ * Minimum allowed value (inclusive)
3486
+ */
3487
+ min?: number;
3488
+ }
3489
+
3490
+ /**
3491
+ * Min/max range constraint for an RDKit molecular descriptor
3492
+ */
3493
+ export interface NumRings {
3494
+ /**
3495
+ * Maximum allowed value (inclusive)
3496
+ */
3497
+ max?: number;
3498
+
3499
+ /**
3500
+ * Minimum allowed value (inclusive)
3501
+ */
3502
+ min?: number;
3503
+ }
3504
+
3505
+ /**
3506
+ * Min/max range constraint for an RDKit molecular descriptor
3507
+ */
3508
+ export interface NumRotatableBonds {
3509
+ /**
3510
+ * Maximum allowed value (inclusive)
3511
+ */
3512
+ max?: number;
3513
+
3514
+ /**
3515
+ * Minimum allowed value (inclusive)
3516
+ */
3517
+ min?: number;
3518
+ }
3519
+
3520
+ /**
3521
+ * Min/max range constraint for an RDKit molecular descriptor
3522
+ */
3523
+ export interface Tpsa {
3524
+ /**
3525
+ * Maximum allowed value (inclusive)
3526
+ */
3527
+ max?: number;
3528
+
3529
+ /**
3530
+ * Minimum allowed value (inclusive)
3531
+ */
3532
+ min?: number;
3533
+ }
3534
+ }
3535
+
3536
+ /**
3537
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
3538
+ * rejected.
3539
+ */
3540
+ export interface SmartsCustomFilter {
3541
+ /**
3542
+ * SMARTS patterns. Molecules matching any pattern are rejected.
3543
+ */
3544
+ patterns: Array<string>;
3545
+
3546
+ type: 'smarts_custom_filter';
3547
+ }
3548
+
3549
+ /**
3550
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
3551
+ */
3552
+ export interface SmartsCatalogFilter {
3553
+ /**
3554
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
3555
+ * reject known problematic substructures.
3556
+ */
3557
+ catalog:
3558
+ | 'PAINS'
3559
+ | 'PAINS_A'
3560
+ | 'PAINS_B'
3561
+ | 'PAINS_C'
3562
+ | 'BRENK'
3563
+ | 'CHEMBL'
3564
+ | 'CHEMBL_BMS'
3565
+ | 'CHEMBL_Dundee'
3566
+ | 'CHEMBL_Glaxo'
3567
+ | 'CHEMBL_Inpharmatica'
3568
+ | 'CHEMBL_LINT'
3569
+ | 'CHEMBL_MLSMR'
3570
+ | 'CHEMBL_SureChEMBL'
3571
+ | 'NIH';
3572
+
3573
+ type: 'smarts_catalog_filter';
3574
+ }
3575
+
3576
+ /**
3577
+ * Filter molecules by regex patterns on their SMILES representation.
3578
+ */
3579
+ export interface SmilesRegexFilter {
3580
+ /**
3581
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
3582
+ * rejected.
3583
+ */
3584
+ patterns: Array<string>;
3585
+
3586
+ type: 'smiles_regex_filter';
3587
+ }
3588
+ }
3589
+ }
3590
+
3591
+ export interface LibraryScreenListResultsParams extends CursorPageParams {
3592
+ /**
3593
+ * Workspace ID. Only used with admin API keys. Ignored (or validated) for
3594
+ * workspace-scoped keys.
3595
+ */
3596
+ workspace_id?: string;
3597
+ }
3598
+
3599
+ export interface LibraryScreenStartParams {
3600
+ /**
3601
+ * List of small molecules to screen.
3602
+ */
3603
+ molecules: Array<LibraryScreenStartParams.Molecule>;
3604
+
3605
+ /**
3606
+ * Target protein with binding pocket for small molecule design or screening
3607
+ */
3608
+ target: LibraryScreenStartParams.Target;
3609
+
3610
+ /**
3611
+ * Client-provided key to prevent duplicate submissions on retries
3612
+ */
3613
+ idempotency_key?: string;
3614
+
3615
+ /**
3616
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
3617
+ * and custom filters.
3618
+ */
3619
+ molecule_filters?: LibraryScreenStartParams.MoleculeFilters;
3620
+
3621
+ /**
3622
+ * Target workspace ID (admin keys only; ignored for workspace keys)
3623
+ */
3624
+ workspace_id?: string;
3625
+ }
3626
+
3627
+ export namespace LibraryScreenStartParams {
3628
+ /**
3629
+ * A small molecule with SMILES and optional ID
3630
+ */
3631
+ export interface Molecule {
3632
+ /**
3633
+ * SMILES string of the molecule
3634
+ */
3635
+ smiles: string;
3636
+
3637
+ /**
3638
+ * Optional identifier for this molecule
3639
+ */
3640
+ id?: string;
3641
+ }
3642
+
3643
+ /**
3644
+ * Target protein with binding pocket for small molecule design or screening
3645
+ */
3646
+ export interface Target {
3647
+ /**
3648
+ * Protein entities defining the target structure. Each entity represents a protein
3649
+ * chain.
3650
+ */
3651
+ entities: Array<Target.Entity>;
3652
+
3653
+ /**
3654
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
3655
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
3656
+ */
3657
+ bonds?: Array<Target.Bond>;
3658
+
3659
+ /**
3660
+ * Structural constraints (pocket and contact). Atom-level ligand references
3661
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
3662
+ */
3663
+ constraints?: Array<Target.PocketConstraint | Target.ContactConstraint>;
3664
+
3665
+ /**
3666
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
3667
+ * and the value is an array of 0-indexed residue indices that define the binding
3668
+ * pocket on that chain. When provided, these residues guide pocket extraction and
3669
+ * add a derived pocket constraint during affinity predictions. That derived
3670
+ * constraint remains separate from any explicit pocket constraints in
3671
+ * target.constraints. When omitted, the model auto-detects the pocket.
3672
+ */
3673
+ pocket_residues?: { [key: string]: Array<number> };
3674
+
3675
+ /**
3676
+ * Reference ligands as SMILES strings that help the model identify the binding
3677
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
3678
+ * detection.
3679
+ */
3680
+ reference_ligands?: Array<string>;
3681
+ }
3682
+
3683
+ export namespace Target {
3684
+ export interface Entity {
3685
+ /**
3686
+ * Chain IDs for this entity
3687
+ */
3688
+ chain_ids: Array<string>;
3689
+
3690
+ type: 'protein';
3691
+
3692
+ /**
3693
+ * Amino acid sequence (one-letter codes)
3694
+ */
3695
+ value: string;
3696
+
3697
+ /**
3698
+ * Whether the sequence is cyclic
3699
+ */
3700
+ cyclic?: boolean;
3701
+
3702
+ /**
3703
+ * Post-translational modifications. Optional; defaults to an empty list when
3704
+ * omitted.
3705
+ */
3706
+ modifications?: Array<Entity.CcdModification | Entity.SmilesModification>;
3707
+ }
3708
+
3709
+ export namespace Entity {
3710
+ export interface CcdModification {
3711
+ /**
3712
+ * 0-based index of the residue to modify
3713
+ */
3714
+ residue_index: number;
3715
+
3716
+ type: 'ccd';
3717
+
3718
+ /**
3719
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
3720
+ * phosphoserine)
3721
+ */
3722
+ value: string;
3723
+ }
3724
+
3725
+ export interface SmilesModification {
3726
+ /**
3727
+ * 0-based index of the residue to modify
3728
+ */
3729
+ residue_index: number;
3730
+
3731
+ type: 'smiles';
3732
+
3733
+ /**
3734
+ * SMILES string for the modification
3735
+ */
3736
+ value: string;
3737
+ }
3738
+ }
3739
+
3740
+ /**
3741
+ * Bond between two atoms. Atom-level ligand references currently support
3742
+ * ligand_ccd entities only; ligand_smiles is unsupported.
3743
+ */
3744
+ export interface Bond {
3745
+ /**
3746
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3747
+ * entities only; ligand_smiles is unsupported.
3748
+ */
3749
+ atom1: Bond.LigandAtom | Bond.PolymerAtom;
3750
+
3751
+ /**
3752
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3753
+ * entities only; ligand_smiles is unsupported.
3754
+ */
3755
+ atom2: Bond.LigandAtom | Bond.PolymerAtom;
3756
+ }
3757
+
3758
+ export namespace Bond {
3759
+ /**
3760
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3761
+ * entities only; ligand_smiles is unsupported.
3762
+ */
3763
+ export interface LigandAtom {
3764
+ /**
3765
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
3766
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
3767
+ */
3768
+ atom_name: string;
3769
+
3770
+ /**
3771
+ * Chain ID containing the atom
3772
+ */
3773
+ chain_id: string;
3774
+
3775
+ type: 'ligand_atom';
3776
+ }
3777
+
3778
+ export interface PolymerAtom {
3779
+ /**
3780
+ * Standardized atom name (verifiable in CIF file on RCSB)
3781
+ */
3782
+ atom_name: string;
3783
+
3784
+ /**
3785
+ * Chain ID containing the atom
3786
+ */
3787
+ chain_id: string;
3788
+
3789
+ /**
3790
+ * 0-based residue index
3791
+ */
3792
+ residue_index: number;
3793
+
3794
+ type: 'polymer_atom';
3795
+ }
3796
+
3797
+ /**
3798
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3799
+ * entities only; ligand_smiles is unsupported.
3800
+ */
3801
+ export interface LigandAtom {
3802
+ /**
3803
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
3804
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
3805
+ */
3806
+ atom_name: string;
3807
+
3808
+ /**
3809
+ * Chain ID containing the atom
3810
+ */
3811
+ chain_id: string;
3812
+
3813
+ type: 'ligand_atom';
3814
+ }
3815
+
3816
+ export interface PolymerAtom {
3817
+ /**
3818
+ * Standardized atom name (verifiable in CIF file on RCSB)
3819
+ */
3820
+ atom_name: string;
3821
+
3822
+ /**
3823
+ * Chain ID containing the atom
3824
+ */
3825
+ chain_id: string;
3826
+
3827
+ /**
3828
+ * 0-based residue index
3829
+ */
3830
+ residue_index: number;
3831
+
3832
+ type: 'polymer_atom';
3833
+ }
3834
+ }
3835
+
3836
+ /**
3837
+ * Constrains the binder to interact with specific pocket residues on the target.
3838
+ */
3839
+ export interface PocketConstraint {
3840
+ /**
3841
+ * Chain ID of the binder molecule
3842
+ */
3843
+ binder_chain_id: string;
3844
+
3845
+ /**
3846
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
3847
+ * the value is an array of 0-indexed residue indices that define the pocket on
3848
+ * that chain.
3849
+ */
3850
+ contact_residues: { [key: string]: Array<number> };
3851
+
3852
+ /**
3853
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
3854
+ * Typical range: 4-8 A.
3855
+ */
3856
+ max_distance_angstrom: number;
3857
+
3858
+ type: 'pocket';
3859
+
3860
+ /**
3861
+ * Whether to force the constraint
3862
+ */
3863
+ force?: boolean;
3864
+ }
3865
+
3866
+ /**
3867
+ * Contact constraint between two tokens. Atom-level ligand references currently
3868
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
3869
+ */
3870
+ export interface ContactConstraint {
3871
+ /**
3872
+ * Maximum distance in Angstroms
3873
+ */
3874
+ max_distance_angstrom: number;
3875
+
3876
+ /**
3877
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3878
+ * entities only; ligand_smiles is unsupported.
3879
+ */
3880
+ token1: ContactConstraint.PolymerContactToken | ContactConstraint.LigandContactToken;
3881
+
3882
+ /**
3883
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3884
+ * entities only; ligand_smiles is unsupported.
3885
+ */
3886
+ token2: ContactConstraint.PolymerContactToken | ContactConstraint.LigandContactToken;
3887
+
3888
+ type: 'contact';
3889
+
3890
+ /**
3891
+ * Whether to force the constraint
3892
+ */
3893
+ force?: boolean;
3894
+ }
3895
+
3896
+ export namespace ContactConstraint {
3897
+ export interface PolymerContactToken {
3898
+ /**
3899
+ * Chain ID
3900
+ */
3901
+ chain_id: string;
3902
+
3903
+ /**
3904
+ * 0-based residue index
3905
+ */
3906
+ residue_index: number;
3907
+
3908
+ type: 'polymer_contact';
3909
+ }
3910
+
3911
+ /**
3912
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3913
+ * entities only; ligand_smiles is unsupported.
3914
+ */
3915
+ export interface LigandContactToken {
3916
+ /**
3917
+ * Atom name. Atom-level references to ligand_smiles entities are currently
3918
+ * unsupported; use ligand_ccd instead.
3919
+ */
3920
+ atom_name: string;
3921
+
3922
+ /**
3923
+ * Chain ID
3924
+ */
3925
+ chain_id: string;
3926
+
3927
+ type: 'ligand_contact';
3928
+ }
3929
+
3930
+ export interface PolymerContactToken {
3931
+ /**
3932
+ * Chain ID
3933
+ */
3934
+ chain_id: string;
3935
+
3936
+ /**
3937
+ * 0-based residue index
3938
+ */
3939
+ residue_index: number;
3940
+
3941
+ type: 'polymer_contact';
3942
+ }
3943
+
3944
+ /**
3945
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3946
+ * entities only; ligand_smiles is unsupported.
3947
+ */
3948
+ export interface LigandContactToken {
3949
+ /**
3950
+ * Atom name. Atom-level references to ligand_smiles entities are currently
3951
+ * unsupported; use ligand_ccd instead.
3952
+ */
3953
+ atom_name: string;
3954
+
3955
+ /**
3956
+ * Chain ID
3957
+ */
3958
+ chain_id: string;
3959
+
3960
+ type: 'ligand_contact';
3961
+ }
3962
+ }
3963
+ }
3964
+
3965
+ /**
3966
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
3967
+ * and custom filters.
3968
+ */
3969
+ export interface MoleculeFilters {
3970
+ /**
3971
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
3972
+ * which removes molecules matching known problematic substructures. 'recommended'
3973
+ * (default): applies a curated set of alerts balancing safety and hit rate.
3974
+ * 'extra': adds additional alerts beyond the recommended set for stricter
3975
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
3976
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
3977
+ * custom_filters will be applied.
3978
+ */
3979
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
3980
+
3981
+ /**
3982
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
3983
+ */
3984
+ custom_filters?: Array<
3985
+ | MoleculeFilters.LipinskiFilter
3986
+ | MoleculeFilters.RdkitDescriptorFilter
3987
+ | MoleculeFilters.SmartsCustomFilter
3988
+ | MoleculeFilters.SmartsCatalogFilter
3989
+ | MoleculeFilters.SmilesRegexFilter
3990
+ >;
3991
+ }
3992
+
3993
+ export namespace MoleculeFilters {
3994
+ /**
3995
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
3996
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
3997
+ * bond acceptors.
3998
+ */
3999
+ export interface LipinskiFilter {
4000
+ /**
4001
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
4002
+ */
4003
+ max_hba: number;
4004
+
4005
+ /**
4006
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
4007
+ */
4008
+ max_hbd: number;
4009
+
4010
+ /**
4011
+ * Maximum LogP. Lipinski threshold: 5
4012
+ */
4013
+ max_logp: number;
4014
+
4015
+ /**
4016
+ * Maximum molecular weight (Da). Lipinski threshold: 500
4017
+ */
4018
+ max_mw: number;
4019
+
4020
+ type: 'lipinski_filter';
4021
+
4022
+ /**
4023
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
4024
+ * (all rules must pass).
4025
+ */
4026
+ allow_single_violation?: boolean;
4027
+ }
4028
+
4029
+ /**
4030
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
4031
+ * to a min/max range. Only descriptors you provide are checked — omitted
4032
+ * descriptors are unconstrained.
4033
+ */
4034
+ export interface RdkitDescriptorFilter {
4035
+ type: 'rdkit_descriptor_filter';
4036
+
4037
+ /**
4038
+ * Min/max range constraint for an RDKit molecular descriptor
4039
+ */
4040
+ fraction_csp3?: RdkitDescriptorFilter.FractionCsp3;
4041
+
4042
+ /**
4043
+ * Min/max range constraint for an RDKit molecular descriptor
4044
+ */
4045
+ mol_logp?: RdkitDescriptorFilter.MolLogp;
4046
+
4047
+ /**
4048
+ * Min/max range constraint for an RDKit molecular descriptor
4049
+ */
4050
+ mol_wt?: RdkitDescriptorFilter.MolWt;
4051
+
4052
+ /**
4053
+ * Min/max range constraint for an RDKit molecular descriptor
4054
+ */
4055
+ num_aromatic_rings?: RdkitDescriptorFilter.NumAromaticRings;
4056
+
4057
+ /**
4058
+ * Min/max range constraint for an RDKit molecular descriptor
4059
+ */
4060
+ num_h_acceptors?: RdkitDescriptorFilter.NumHAcceptors;
4061
+
4062
+ /**
4063
+ * Min/max range constraint for an RDKit molecular descriptor
4064
+ */
4065
+ num_h_donors?: RdkitDescriptorFilter.NumHDonors;
4066
+
4067
+ /**
4068
+ * Min/max range constraint for an RDKit molecular descriptor
4069
+ */
4070
+ num_heteroatoms?: RdkitDescriptorFilter.NumHeteroatoms;
4071
+
4072
+ /**
4073
+ * Min/max range constraint for an RDKit molecular descriptor
4074
+ */
4075
+ num_rings?: RdkitDescriptorFilter.NumRings;
4076
+
4077
+ /**
4078
+ * Min/max range constraint for an RDKit molecular descriptor
4079
+ */
4080
+ num_rotatable_bonds?: RdkitDescriptorFilter.NumRotatableBonds;
4081
+
4082
+ /**
4083
+ * Min/max range constraint for an RDKit molecular descriptor
4084
+ */
4085
+ tpsa?: RdkitDescriptorFilter.Tpsa;
4086
+ }
4087
+
4088
+ export namespace RdkitDescriptorFilter {
4089
+ /**
4090
+ * Min/max range constraint for an RDKit molecular descriptor
4091
+ */
4092
+ export interface FractionCsp3 {
4093
+ /**
4094
+ * Maximum allowed value (inclusive)
4095
+ */
4096
+ max?: number;
4097
+
4098
+ /**
4099
+ * Minimum allowed value (inclusive)
4100
+ */
4101
+ min?: number;
4102
+ }
4103
+
4104
+ /**
4105
+ * Min/max range constraint for an RDKit molecular descriptor
4106
+ */
4107
+ export interface MolLogp {
4108
+ /**
4109
+ * Maximum allowed value (inclusive)
4110
+ */
4111
+ max?: number;
4112
+
4113
+ /**
4114
+ * Minimum allowed value (inclusive)
4115
+ */
4116
+ min?: number;
4117
+ }
4118
+
4119
+ /**
4120
+ * Min/max range constraint for an RDKit molecular descriptor
4121
+ */
4122
+ export interface MolWt {
4123
+ /**
4124
+ * Maximum allowed value (inclusive)
4125
+ */
4126
+ max?: number;
4127
+
4128
+ /**
4129
+ * Minimum allowed value (inclusive)
4130
+ */
4131
+ min?: number;
4132
+ }
4133
+
4134
+ /**
4135
+ * Min/max range constraint for an RDKit molecular descriptor
4136
+ */
4137
+ export interface NumAromaticRings {
4138
+ /**
4139
+ * Maximum allowed value (inclusive)
4140
+ */
4141
+ max?: number;
4142
+
4143
+ /**
4144
+ * Minimum allowed value (inclusive)
4145
+ */
4146
+ min?: number;
4147
+ }
4148
+
4149
+ /**
4150
+ * Min/max range constraint for an RDKit molecular descriptor
4151
+ */
4152
+ export interface NumHAcceptors {
4153
+ /**
4154
+ * Maximum allowed value (inclusive)
4155
+ */
4156
+ max?: number;
4157
+
4158
+ /**
4159
+ * Minimum allowed value (inclusive)
4160
+ */
4161
+ min?: number;
4162
+ }
4163
+
4164
+ /**
4165
+ * Min/max range constraint for an RDKit molecular descriptor
4166
+ */
4167
+ export interface NumHDonors {
4168
+ /**
4169
+ * Maximum allowed value (inclusive)
4170
+ */
4171
+ max?: number;
4172
+
4173
+ /**
4174
+ * Minimum allowed value (inclusive)
4175
+ */
4176
+ min?: number;
4177
+ }
4178
+
4179
+ /**
4180
+ * Min/max range constraint for an RDKit molecular descriptor
4181
+ */
4182
+ export interface NumHeteroatoms {
4183
+ /**
4184
+ * Maximum allowed value (inclusive)
4185
+ */
4186
+ max?: number;
4187
+
4188
+ /**
4189
+ * Minimum allowed value (inclusive)
4190
+ */
4191
+ min?: number;
4192
+ }
4193
+
4194
+ /**
4195
+ * Min/max range constraint for an RDKit molecular descriptor
4196
+ */
4197
+ export interface NumRings {
4198
+ /**
4199
+ * Maximum allowed value (inclusive)
4200
+ */
4201
+ max?: number;
4202
+
4203
+ /**
4204
+ * Minimum allowed value (inclusive)
4205
+ */
4206
+ min?: number;
4207
+ }
4208
+
4209
+ /**
4210
+ * Min/max range constraint for an RDKit molecular descriptor
4211
+ */
4212
+ export interface NumRotatableBonds {
4213
+ /**
4214
+ * Maximum allowed value (inclusive)
4215
+ */
4216
+ max?: number;
4217
+
4218
+ /**
4219
+ * Minimum allowed value (inclusive)
4220
+ */
4221
+ min?: number;
4222
+ }
4223
+
4224
+ /**
4225
+ * Min/max range constraint for an RDKit molecular descriptor
4226
+ */
4227
+ export interface Tpsa {
4228
+ /**
4229
+ * Maximum allowed value (inclusive)
4230
+ */
4231
+ max?: number;
4232
+
4233
+ /**
4234
+ * Minimum allowed value (inclusive)
4235
+ */
4236
+ min?: number;
4237
+ }
4238
+ }
4239
+
4240
+ /**
4241
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
4242
+ * rejected.
4243
+ */
4244
+ export interface SmartsCustomFilter {
4245
+ /**
4246
+ * SMARTS patterns. Molecules matching any pattern are rejected.
4247
+ */
4248
+ patterns: Array<string>;
4249
+
4250
+ type: 'smarts_custom_filter';
4251
+ }
4252
+
4253
+ /**
4254
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
4255
+ */
4256
+ export interface SmartsCatalogFilter {
4257
+ /**
4258
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
4259
+ * reject known problematic substructures.
4260
+ */
4261
+ catalog:
4262
+ | 'PAINS'
4263
+ | 'PAINS_A'
4264
+ | 'PAINS_B'
4265
+ | 'PAINS_C'
4266
+ | 'BRENK'
4267
+ | 'CHEMBL'
4268
+ | 'CHEMBL_BMS'
4269
+ | 'CHEMBL_Dundee'
4270
+ | 'CHEMBL_Glaxo'
4271
+ | 'CHEMBL_Inpharmatica'
4272
+ | 'CHEMBL_LINT'
4273
+ | 'CHEMBL_MLSMR'
4274
+ | 'CHEMBL_SureChEMBL'
4275
+ | 'NIH';
4276
+
4277
+ type: 'smarts_catalog_filter';
4278
+ }
4279
+
4280
+ /**
4281
+ * Filter molecules by regex patterns on their SMILES representation.
4282
+ */
4283
+ export interface SmilesRegexFilter {
4284
+ /**
4285
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
4286
+ * rejected.
4287
+ */
4288
+ patterns: Array<string>;
4289
+
4290
+ type: 'smiles_regex_filter';
4291
+ }
4292
+ }
4293
+ }
4294
+
4295
+ export declare namespace LibraryScreen {
4296
+ export {
4297
+ type LibraryScreenRetrieveResponse as LibraryScreenRetrieveResponse,
4298
+ type LibraryScreenListResponse as LibraryScreenListResponse,
4299
+ type LibraryScreenDeleteDataResponse as LibraryScreenDeleteDataResponse,
4300
+ type LibraryScreenEstimateCostResponse as LibraryScreenEstimateCostResponse,
4301
+ type LibraryScreenListResultsResponse as LibraryScreenListResultsResponse,
4302
+ type LibraryScreenStartResponse as LibraryScreenStartResponse,
4303
+ type LibraryScreenStopResponse as LibraryScreenStopResponse,
4304
+ type LibraryScreenListResponsesCursorPage as LibraryScreenListResponsesCursorPage,
4305
+ type LibraryScreenListResultsResponsesCursorPage as LibraryScreenListResultsResponsesCursorPage,
4306
+ type LibraryScreenRetrieveParams as LibraryScreenRetrieveParams,
4307
+ type LibraryScreenListParams as LibraryScreenListParams,
4308
+ type LibraryScreenEstimateCostParams as LibraryScreenEstimateCostParams,
4309
+ type LibraryScreenListResultsParams as LibraryScreenListResultsParams,
4310
+ type LibraryScreenStartParams as LibraryScreenStartParams,
4311
+ };
4312
+ }