@particle-academy/prism 0.0.0

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 (447) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +155 -0
  3. package/dist/audio/pending-request.d.ts +37 -0
  4. package/dist/audio/pending-request.d.ts.map +1 -0
  5. package/dist/audio/pending-request.js +91 -0
  6. package/dist/audio/pending-request.js.map +1 -0
  7. package/dist/audio/request.d.ts +37 -0
  8. package/dist/audio/request.d.ts.map +1 -0
  9. package/dist/audio/request.js +50 -0
  10. package/dist/audio/request.js.map +1 -0
  11. package/dist/audio/response.d.ts +24 -0
  12. package/dist/audio/response.d.ts.map +1 -0
  13. package/dist/audio/response.js +36 -0
  14. package/dist/audio/response.js.map +1 -0
  15. package/dist/batch/batch-job.d.ts +91 -0
  16. package/dist/batch/batch-job.d.ts.map +1 -0
  17. package/dist/batch/batch-job.js +156 -0
  18. package/dist/batch/batch-job.js.map +1 -0
  19. package/dist/batch/pending-request.d.ts +29 -0
  20. package/dist/batch/pending-request.d.ts.map +1 -0
  21. package/dist/batch/pending-request.js +73 -0
  22. package/dist/batch/pending-request.js.map +1 -0
  23. package/dist/batch/request.d.ts +73 -0
  24. package/dist/batch/request.d.ts.map +1 -0
  25. package/dist/batch/request.js +79 -0
  26. package/dist/batch/request.js.map +1 -0
  27. package/dist/embeddings/pending-request.d.ts +38 -0
  28. package/dist/embeddings/pending-request.d.ts.map +1 -0
  29. package/dist/embeddings/pending-request.js +86 -0
  30. package/dist/embeddings/pending-request.js.map +1 -0
  31. package/dist/embeddings/request.d.ts +27 -0
  32. package/dist/embeddings/request.d.ts.map +1 -0
  33. package/dist/embeddings/request.js +38 -0
  34. package/dist/embeddings/request.js.map +1 -0
  35. package/dist/embeddings/response.d.ts +19 -0
  36. package/dist/embeddings/response.d.ts.map +1 -0
  37. package/dist/embeddings/response.js +21 -0
  38. package/dist/embeddings/response.js.map +1 -0
  39. package/dist/enums.d.ts +52 -0
  40. package/dist/enums.d.ts.map +1 -0
  41. package/dist/enums.js +69 -0
  42. package/dist/enums.js.map +1 -0
  43. package/dist/errors.d.ts +119 -0
  44. package/dist/errors.d.ts.map +1 -0
  45. package/dist/errors.js +115 -0
  46. package/dist/errors.js.map +1 -0
  47. package/dist/files/file-data.d.ts +53 -0
  48. package/dist/files/file-data.d.ts.map +1 -0
  49. package/dist/files/file-data.js +79 -0
  50. package/dist/files/file-data.js.map +1 -0
  51. package/dist/files/pending-request.d.ts +38 -0
  52. package/dist/files/pending-request.d.ts.map +1 -0
  53. package/dist/files/pending-request.js +96 -0
  54. package/dist/files/pending-request.js.map +1 -0
  55. package/dist/files/request.d.ts +77 -0
  56. package/dist/files/request.d.ts.map +1 -0
  57. package/dist/files/request.js +81 -0
  58. package/dist/files/request.js.map +1 -0
  59. package/dist/fim/pending-request.d.ts +31 -0
  60. package/dist/fim/pending-request.d.ts.map +1 -0
  61. package/dist/fim/pending-request.js +89 -0
  62. package/dist/fim/pending-request.js.map +1 -0
  63. package/dist/fim/request.d.ts +39 -0
  64. package/dist/fim/request.d.ts.map +1 -0
  65. package/dist/fim/request.js +65 -0
  66. package/dist/fim/request.js.map +1 -0
  67. package/dist/fim/response.d.ts +21 -0
  68. package/dist/fim/response.d.ts.map +1 -0
  69. package/dist/fim/response.js +30 -0
  70. package/dist/fim/response.js.map +1 -0
  71. package/dist/http/header-names.d.ts +36 -0
  72. package/dist/http/header-names.d.ts.map +1 -0
  73. package/dist/http/header-names.js +44 -0
  74. package/dist/http/header-names.js.map +1 -0
  75. package/dist/http/transport.d.ts +94 -0
  76. package/dist/http/transport.d.ts.map +1 -0
  77. package/dist/http/transport.js +131 -0
  78. package/dist/http/transport.js.map +1 -0
  79. package/dist/images/pending-request.d.ts +30 -0
  80. package/dist/images/pending-request.d.ts.map +1 -0
  81. package/dist/images/pending-request.js +66 -0
  82. package/dist/images/pending-request.js.map +1 -0
  83. package/dist/images/request.d.ts +19 -0
  84. package/dist/images/request.d.ts.map +1 -0
  85. package/dist/images/request.js +30 -0
  86. package/dist/images/request.js.map +1 -0
  87. package/dist/images/response.d.ts +29 -0
  88. package/dist/images/response.d.ts.map +1 -0
  89. package/dist/images/response.js +34 -0
  90. package/dist/images/response.js.map +1 -0
  91. package/dist/index.d.ts +108 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +84 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/internal/filters.d.ts +40 -0
  96. package/dist/internal/filters.d.ts.map +1 -0
  97. package/dist/internal/filters.js +83 -0
  98. package/dist/internal/filters.js.map +1 -0
  99. package/dist/json.d.ts +41 -0
  100. package/dist/json.d.ts.map +1 -0
  101. package/dist/json.js +75 -0
  102. package/dist/json.js.map +1 -0
  103. package/dist/moderation/pending-request.d.ts +24 -0
  104. package/dist/moderation/pending-request.d.ts.map +1 -0
  105. package/dist/moderation/pending-request.js +60 -0
  106. package/dist/moderation/pending-request.js.map +1 -0
  107. package/dist/moderation/request.d.ts +20 -0
  108. package/dist/moderation/request.d.ts.map +1 -0
  109. package/dist/moderation/request.js +31 -0
  110. package/dist/moderation/request.js.map +1 -0
  111. package/dist/moderation/response.d.ts +26 -0
  112. package/dist/moderation/response.d.ts.map +1 -0
  113. package/dist/moderation/response.js +34 -0
  114. package/dist/moderation/response.js.map +1 -0
  115. package/dist/prism.d.ts +43 -0
  116. package/dist/prism.d.ts.map +1 -0
  117. package/dist/prism.js +79 -0
  118. package/dist/prism.js.map +1 -0
  119. package/dist/providers/anthropic/anthropic.d.ts +67 -0
  120. package/dist/providers/anthropic/anthropic.d.ts.map +1 -0
  121. package/dist/providers/anthropic/anthropic.js +172 -0
  122. package/dist/providers/anthropic/anthropic.js.map +1 -0
  123. package/dist/providers/anthropic/build-request-body.d.ts +15 -0
  124. package/dist/providers/anthropic/build-request-body.d.ts.map +1 -0
  125. package/dist/providers/anthropic/build-request-body.js +51 -0
  126. package/dist/providers/anthropic/build-request-body.js.map +1 -0
  127. package/dist/providers/anthropic/maps/finish-reason-map.d.ts +14 -0
  128. package/dist/providers/anthropic/maps/finish-reason-map.d.ts.map +1 -0
  129. package/dist/providers/anthropic/maps/finish-reason-map.js +30 -0
  130. package/dist/providers/anthropic/maps/finish-reason-map.js.map +1 -0
  131. package/dist/providers/anthropic/maps/media-map.d.ts +25 -0
  132. package/dist/providers/anthropic/maps/media-map.d.ts.map +1 -0
  133. package/dist/providers/anthropic/maps/media-map.js +87 -0
  134. package/dist/providers/anthropic/maps/media-map.js.map +1 -0
  135. package/dist/providers/anthropic/maps/message-map.d.ts +31 -0
  136. package/dist/providers/anthropic/maps/message-map.d.ts.map +1 -0
  137. package/dist/providers/anthropic/maps/message-map.js +121 -0
  138. package/dist/providers/anthropic/maps/message-map.js.map +1 -0
  139. package/dist/providers/anthropic/maps/tool-choice-map.d.ts +11 -0
  140. package/dist/providers/anthropic/maps/tool-choice-map.d.ts.map +1 -0
  141. package/dist/providers/anthropic/maps/tool-choice-map.js +25 -0
  142. package/dist/providers/anthropic/maps/tool-choice-map.js.map +1 -0
  143. package/dist/providers/anthropic/maps/tool-map.d.ts +14 -0
  144. package/dist/providers/anthropic/maps/tool-map.d.ts.map +1 -0
  145. package/dist/providers/anthropic/maps/tool-map.js +22 -0
  146. package/dist/providers/anthropic/maps/tool-map.js.map +1 -0
  147. package/dist/providers/anthropic/parse-response.d.ts +21 -0
  148. package/dist/providers/anthropic/parse-response.d.ts.map +1 -0
  149. package/dist/providers/anthropic/parse-response.js +109 -0
  150. package/dist/providers/anthropic/parse-response.js.map +1 -0
  151. package/dist/providers/anthropic/rate-limits.d.ts +4 -0
  152. package/dist/providers/anthropic/rate-limits.d.ts.map +1 -0
  153. package/dist/providers/anthropic/rate-limits.js +47 -0
  154. package/dist/providers/anthropic/rate-limits.js.map +1 -0
  155. package/dist/providers/anthropic/stream-events.d.ts +27 -0
  156. package/dist/providers/anthropic/stream-events.d.ts.map +1 -0
  157. package/dist/providers/anthropic/stream-events.js +147 -0
  158. package/dist/providers/anthropic/stream-events.js.map +1 -0
  159. package/dist/providers/mistral/build-request-body.d.ts +32 -0
  160. package/dist/providers/mistral/build-request-body.d.ts.map +1 -0
  161. package/dist/providers/mistral/build-request-body.js +69 -0
  162. package/dist/providers/mistral/build-request-body.js.map +1 -0
  163. package/dist/providers/mistral/embeddings.d.ts +14 -0
  164. package/dist/providers/mistral/embeddings.d.ts.map +1 -0
  165. package/dist/providers/mistral/embeddings.js +41 -0
  166. package/dist/providers/mistral/embeddings.js.map +1 -0
  167. package/dist/providers/mistral/fim.d.ts +32 -0
  168. package/dist/providers/mistral/fim.d.ts.map +1 -0
  169. package/dist/providers/mistral/fim.js +70 -0
  170. package/dist/providers/mistral/fim.js.map +1 -0
  171. package/dist/providers/mistral/maps/finish-reason-map.d.ts +15 -0
  172. package/dist/providers/mistral/maps/finish-reason-map.d.ts.map +1 -0
  173. package/dist/providers/mistral/maps/finish-reason-map.js +32 -0
  174. package/dist/providers/mistral/maps/finish-reason-map.js.map +1 -0
  175. package/dist/providers/mistral/maps/media-map.d.ts +24 -0
  176. package/dist/providers/mistral/maps/media-map.d.ts.map +1 -0
  177. package/dist/providers/mistral/maps/media-map.js +41 -0
  178. package/dist/providers/mistral/maps/media-map.js.map +1 -0
  179. package/dist/providers/mistral/maps/message-map.d.ts +20 -0
  180. package/dist/providers/mistral/maps/message-map.d.ts.map +1 -0
  181. package/dist/providers/mistral/maps/message-map.js +83 -0
  182. package/dist/providers/mistral/maps/message-map.js.map +1 -0
  183. package/dist/providers/mistral/maps/tool-choice-map.d.ts +12 -0
  184. package/dist/providers/mistral/maps/tool-choice-map.d.ts.map +1 -0
  185. package/dist/providers/mistral/maps/tool-choice-map.js +25 -0
  186. package/dist/providers/mistral/maps/tool-choice-map.js.map +1 -0
  187. package/dist/providers/mistral/maps/tool-map.d.ts +15 -0
  188. package/dist/providers/mistral/maps/tool-map.d.ts.map +1 -0
  189. package/dist/providers/mistral/maps/tool-map.js +26 -0
  190. package/dist/providers/mistral/maps/tool-map.js.map +1 -0
  191. package/dist/providers/mistral/mistral.d.ts +90 -0
  192. package/dist/providers/mistral/mistral.d.ts.map +1 -0
  193. package/dist/providers/mistral/mistral.js +210 -0
  194. package/dist/providers/mistral/mistral.js.map +1 -0
  195. package/dist/providers/mistral/parse-response.d.ts +35 -0
  196. package/dist/providers/mistral/parse-response.d.ts.map +1 -0
  197. package/dist/providers/mistral/parse-response.js +114 -0
  198. package/dist/providers/mistral/parse-response.js.map +1 -0
  199. package/dist/providers/mistral/rate-limits.d.ts +24 -0
  200. package/dist/providers/mistral/rate-limits.d.ts.map +1 -0
  201. package/dist/providers/mistral/rate-limits.js +55 -0
  202. package/dist/providers/mistral/rate-limits.js.map +1 -0
  203. package/dist/providers/mistral/stream-events.d.ts +29 -0
  204. package/dist/providers/mistral/stream-events.d.ts.map +1 -0
  205. package/dist/providers/mistral/stream-events.js +142 -0
  206. package/dist/providers/mistral/stream-events.js.map +1 -0
  207. package/dist/providers/openai/audio.d.ts +16 -0
  208. package/dist/providers/openai/audio.d.ts.map +1 -0
  209. package/dist/providers/openai/audio.js +105 -0
  210. package/dist/providers/openai/audio.js.map +1 -0
  211. package/dist/providers/openai/batch.d.ts +29 -0
  212. package/dist/providers/openai/batch.d.ts.map +1 -0
  213. package/dist/providers/openai/batch.js +181 -0
  214. package/dist/providers/openai/batch.js.map +1 -0
  215. package/dist/providers/openai/build-request-body.d.ts +25 -0
  216. package/dist/providers/openai/build-request-body.d.ts.map +1 -0
  217. package/dist/providers/openai/build-request-body.js +66 -0
  218. package/dist/providers/openai/build-request-body.js.map +1 -0
  219. package/dist/providers/openai/build-structured-body.d.ts +16 -0
  220. package/dist/providers/openai/build-structured-body.d.ts.map +1 -0
  221. package/dist/providers/openai/build-structured-body.js +47 -0
  222. package/dist/providers/openai/build-structured-body.js.map +1 -0
  223. package/dist/providers/openai/embeddings.d.ts +6 -0
  224. package/dist/providers/openai/embeddings.d.ts.map +1 -0
  225. package/dist/providers/openai/embeddings.js +61 -0
  226. package/dist/providers/openai/embeddings.js.map +1 -0
  227. package/dist/providers/openai/files.d.ts +16 -0
  228. package/dist/providers/openai/files.d.ts.map +1 -0
  229. package/dist/providers/openai/files.js +80 -0
  230. package/dist/providers/openai/files.js.map +1 -0
  231. package/dist/providers/openai/images.d.ts +6 -0
  232. package/dist/providers/openai/images.d.ts.map +1 -0
  233. package/dist/providers/openai/images.js +55 -0
  234. package/dist/providers/openai/images.js.map +1 -0
  235. package/dist/providers/openai/maps/finish-reason-map.d.ts +21 -0
  236. package/dist/providers/openai/maps/finish-reason-map.d.ts.map +1 -0
  237. package/dist/providers/openai/maps/finish-reason-map.js +56 -0
  238. package/dist/providers/openai/maps/finish-reason-map.js.map +1 -0
  239. package/dist/providers/openai/maps/media-map.d.ts +25 -0
  240. package/dist/providers/openai/maps/media-map.d.ts.map +1 -0
  241. package/dist/providers/openai/maps/media-map.js +53 -0
  242. package/dist/providers/openai/maps/media-map.js.map +1 -0
  243. package/dist/providers/openai/maps/message-map.d.ts +21 -0
  244. package/dist/providers/openai/maps/message-map.d.ts.map +1 -0
  245. package/dist/providers/openai/maps/message-map.js +128 -0
  246. package/dist/providers/openai/maps/message-map.js.map +1 -0
  247. package/dist/providers/openai/maps/tool-choice-map.d.ts +14 -0
  248. package/dist/providers/openai/maps/tool-choice-map.d.ts.map +1 -0
  249. package/dist/providers/openai/maps/tool-choice-map.js +27 -0
  250. package/dist/providers/openai/maps/tool-choice-map.js.map +1 -0
  251. package/dist/providers/openai/maps/tool-map.d.ts +16 -0
  252. package/dist/providers/openai/maps/tool-map.d.ts.map +1 -0
  253. package/dist/providers/openai/maps/tool-map.js +34 -0
  254. package/dist/providers/openai/maps/tool-map.js.map +1 -0
  255. package/dist/providers/openai/moderation.d.ts +6 -0
  256. package/dist/providers/openai/moderation.d.ts.map +1 -0
  257. package/dist/providers/openai/moderation.js +26 -0
  258. package/dist/providers/openai/moderation.js.map +1 -0
  259. package/dist/providers/openai/openai.d.ts +103 -0
  260. package/dist/providers/openai/openai.d.ts.map +1 -0
  261. package/dist/providers/openai/openai.js +385 -0
  262. package/dist/providers/openai/openai.js.map +1 -0
  263. package/dist/providers/openai/parse-response.d.ts +21 -0
  264. package/dist/providers/openai/parse-response.d.ts.map +1 -0
  265. package/dist/providers/openai/parse-response.js +114 -0
  266. package/dist/providers/openai/parse-response.js.map +1 -0
  267. package/dist/providers/openai/rate-limits.d.ts +4 -0
  268. package/dist/providers/openai/rate-limits.d.ts.map +1 -0
  269. package/dist/providers/openai/rate-limits.js +47 -0
  270. package/dist/providers/openai/rate-limits.js.map +1 -0
  271. package/dist/providers/openai/stream-events.d.ts +13 -0
  272. package/dist/providers/openai/stream-events.d.ts.map +1 -0
  273. package/dist/providers/openai/stream-events.js +79 -0
  274. package/dist/providers/openai/stream-events.js.map +1 -0
  275. package/dist/providers/openai/structured-mode-resolver.d.ts +3 -0
  276. package/dist/providers/openai/structured-mode-resolver.d.ts.map +1 -0
  277. package/dist/providers/openai/structured-mode-resolver.js +41 -0
  278. package/dist/providers/openai/structured-mode-resolver.js.map +1 -0
  279. package/dist/providers/provider.d.ts +55 -0
  280. package/dist/providers/provider.d.ts.map +1 -0
  281. package/dist/providers/provider.js +73 -0
  282. package/dist/providers/provider.js.map +1 -0
  283. package/dist/providers/registry.d.ts +10 -0
  284. package/dist/providers/registry.d.ts.map +1 -0
  285. package/dist/providers/registry.js +27 -0
  286. package/dist/providers/registry.js.map +1 -0
  287. package/dist/providers/support/media.d.ts +16 -0
  288. package/dist/providers/support/media.d.ts.map +1 -0
  289. package/dist/providers/support/media.js +26 -0
  290. package/dist/providers/support/media.js.map +1 -0
  291. package/dist/schema/index.d.ts +114 -0
  292. package/dist/schema/index.d.ts.map +1 -0
  293. package/dist/schema/index.js +192 -0
  294. package/dist/schema/index.js.map +1 -0
  295. package/dist/streaming/events.d.ts +90 -0
  296. package/dist/streaming/events.d.ts.map +1 -0
  297. package/dist/streaming/events.js +152 -0
  298. package/dist/streaming/events.js.map +1 -0
  299. package/dist/streaming/sse.d.ts +17 -0
  300. package/dist/streaming/sse.d.ts.map +1 -0
  301. package/dist/streaming/sse.js +50 -0
  302. package/dist/streaming/sse.js.map +1 -0
  303. package/dist/structured/extract.d.ts +23 -0
  304. package/dist/structured/extract.d.ts.map +1 -0
  305. package/dist/structured/extract.js +43 -0
  306. package/dist/structured/extract.js.map +1 -0
  307. package/dist/structured/from-text.d.ts +16 -0
  308. package/dist/structured/from-text.d.ts.map +1 -0
  309. package/dist/structured/from-text.js +27 -0
  310. package/dist/structured/from-text.js.map +1 -0
  311. package/dist/structured/pending-request.d.ts +28 -0
  312. package/dist/structured/pending-request.d.ts.map +1 -0
  313. package/dist/structured/pending-request.js +48 -0
  314. package/dist/structured/pending-request.js.map +1 -0
  315. package/dist/structured/request.d.ts +28 -0
  316. package/dist/structured/request.d.ts.map +1 -0
  317. package/dist/structured/request.js +31 -0
  318. package/dist/structured/request.js.map +1 -0
  319. package/dist/structured/response.d.ts +44 -0
  320. package/dist/structured/response.d.ts.map +1 -0
  321. package/dist/structured/response.js +49 -0
  322. package/dist/structured/response.js.map +1 -0
  323. package/dist/text/pending-request.d.ts +77 -0
  324. package/dist/text/pending-request.d.ts.map +1 -0
  325. package/dist/text/pending-request.js +189 -0
  326. package/dist/text/pending-request.js.map +1 -0
  327. package/dist/text/request.d.ts +62 -0
  328. package/dist/text/request.d.ts.map +1 -0
  329. package/dist/text/request.js +117 -0
  330. package/dist/text/request.js.map +1 -0
  331. package/dist/text/response-builder.d.ts +16 -0
  332. package/dist/text/response-builder.d.ts.map +1 -0
  333. package/dist/text/response-builder.js +52 -0
  334. package/dist/text/response-builder.js.map +1 -0
  335. package/dist/text/response.d.ts +36 -0
  336. package/dist/text/response.d.ts.map +1 -0
  337. package/dist/text/response.js +40 -0
  338. package/dist/text/response.js.map +1 -0
  339. package/dist/text/step.d.ts +41 -0
  340. package/dist/text/step.d.ts.map +1 -0
  341. package/dist/text/step.js +46 -0
  342. package/dist/text/step.js.map +1 -0
  343. package/dist/tool.d.ts +34 -0
  344. package/dist/tool.d.ts.map +1 -0
  345. package/dist/tool.js +86 -0
  346. package/dist/tool.js.map +1 -0
  347. package/dist/value-objects/artifact.d.ts +14 -0
  348. package/dist/value-objects/artifact.d.ts.map +1 -0
  349. package/dist/value-objects/artifact.js +32 -0
  350. package/dist/value-objects/artifact.js.map +1 -0
  351. package/dist/value-objects/embedding.d.ts +24 -0
  352. package/dist/value-objects/embedding.d.ts.map +1 -0
  353. package/dist/value-objects/embedding.js +29 -0
  354. package/dist/value-objects/embedding.js.map +1 -0
  355. package/dist/value-objects/embeddings-usage.d.ts +16 -0
  356. package/dist/value-objects/embeddings-usage.d.ts.map +1 -0
  357. package/dist/value-objects/embeddings-usage.js +19 -0
  358. package/dist/value-objects/embeddings-usage.js.map +1 -0
  359. package/dist/value-objects/generated-audio.d.ts +20 -0
  360. package/dist/value-objects/generated-audio.d.ts.map +1 -0
  361. package/dist/value-objects/generated-audio.js +23 -0
  362. package/dist/value-objects/generated-audio.js.map +1 -0
  363. package/dist/value-objects/generated-image.d.ts +36 -0
  364. package/dist/value-objects/generated-image.d.ts.map +1 -0
  365. package/dist/value-objects/generated-image.js +35 -0
  366. package/dist/value-objects/generated-image.js.map +1 -0
  367. package/dist/value-objects/index.d.ts +13 -0
  368. package/dist/value-objects/index.d.ts.map +1 -0
  369. package/dist/value-objects/index.js +10 -0
  370. package/dist/value-objects/index.js.map +1 -0
  371. package/dist/value-objects/media/audio.d.ts +8 -0
  372. package/dist/value-objects/media/audio.d.ts.map +1 -0
  373. package/dist/value-objects/media/audio.js +9 -0
  374. package/dist/value-objects/media/audio.js.map +1 -0
  375. package/dist/value-objects/media/document.d.ts +44 -0
  376. package/dist/value-objects/media/document.d.ts.map +1 -0
  377. package/dist/value-objects/media/document.js +75 -0
  378. package/dist/value-objects/media/document.js.map +1 -0
  379. package/dist/value-objects/media/image.d.ts +13 -0
  380. package/dist/value-objects/media/image.d.ts.map +1 -0
  381. package/dist/value-objects/media/image.js +14 -0
  382. package/dist/value-objects/media/image.js.map +1 -0
  383. package/dist/value-objects/media/media.d.ts +119 -0
  384. package/dist/value-objects/media/media.d.ts.map +1 -0
  385. package/dist/value-objects/media/media.js +267 -0
  386. package/dist/value-objects/media/media.js.map +1 -0
  387. package/dist/value-objects/media/part.d.ts +25 -0
  388. package/dist/value-objects/media/part.d.ts.map +1 -0
  389. package/dist/value-objects/media/part.js +41 -0
  390. package/dist/value-objects/media/part.js.map +1 -0
  391. package/dist/value-objects/media/text.d.ts +24 -0
  392. package/dist/value-objects/media/text.d.ts.map +1 -0
  393. package/dist/value-objects/media/text.js +33 -0
  394. package/dist/value-objects/media/text.js.map +1 -0
  395. package/dist/value-objects/media/video.d.ts +7 -0
  396. package/dist/value-objects/media/video.d.ts.map +1 -0
  397. package/dist/value-objects/media/video.js +8 -0
  398. package/dist/value-objects/media/video.js.map +1 -0
  399. package/dist/value-objects/messages/assistant-message.d.ts +26 -0
  400. package/dist/value-objects/messages/assistant-message.d.ts.map +1 -0
  401. package/dist/value-objects/messages/assistant-message.js +37 -0
  402. package/dist/value-objects/messages/assistant-message.js.map +1 -0
  403. package/dist/value-objects/messages/index.d.ts +27 -0
  404. package/dist/value-objects/messages/index.d.ts.map +1 -0
  405. package/dist/value-objects/messages/index.js +32 -0
  406. package/dist/value-objects/messages/index.js.map +1 -0
  407. package/dist/value-objects/messages/system-message.d.ts +9 -0
  408. package/dist/value-objects/messages/system-message.d.ts.map +1 -0
  409. package/dist/value-objects/messages/system-message.js +17 -0
  410. package/dist/value-objects/messages/system-message.js.map +1 -0
  411. package/dist/value-objects/messages/tool-result-message.d.ts +14 -0
  412. package/dist/value-objects/messages/tool-result-message.d.ts.map +1 -0
  413. package/dist/value-objects/messages/tool-result-message.js +26 -0
  414. package/dist/value-objects/messages/tool-result-message.js.map +1 -0
  415. package/dist/value-objects/messages/user-message.d.ts +47 -0
  416. package/dist/value-objects/messages/user-message.d.ts.map +1 -0
  417. package/dist/value-objects/messages/user-message.js +87 -0
  418. package/dist/value-objects/messages/user-message.js.map +1 -0
  419. package/dist/value-objects/meta.d.ts +12 -0
  420. package/dist/value-objects/meta.d.ts.map +1 -0
  421. package/dist/value-objects/meta.js +28 -0
  422. package/dist/value-objects/meta.js.map +1 -0
  423. package/dist/value-objects/moderation-result.d.ts +20 -0
  424. package/dist/value-objects/moderation-result.d.ts.map +1 -0
  425. package/dist/value-objects/moderation-result.js +64 -0
  426. package/dist/value-objects/moderation-result.js.map +1 -0
  427. package/dist/value-objects/provider-rate-limit.d.ts +11 -0
  428. package/dist/value-objects/provider-rate-limit.d.ts.map +1 -0
  429. package/dist/value-objects/provider-rate-limit.js +34 -0
  430. package/dist/value-objects/provider-rate-limit.js.map +1 -0
  431. package/dist/value-objects/provider-tool.d.ts +19 -0
  432. package/dist/value-objects/provider-tool.d.ts.map +1 -0
  433. package/dist/value-objects/provider-tool.js +31 -0
  434. package/dist/value-objects/provider-tool.js.map +1 -0
  435. package/dist/value-objects/tool-call.d.ts +29 -0
  436. package/dist/value-objects/tool-call.d.ts.map +1 -0
  437. package/dist/value-objects/tool-call.js +112 -0
  438. package/dist/value-objects/tool-call.js.map +1 -0
  439. package/dist/value-objects/tool-result.d.ts +25 -0
  440. package/dist/value-objects/tool-result.d.ts.map +1 -0
  441. package/dist/value-objects/tool-result.js +45 -0
  442. package/dist/value-objects/tool-result.js.map +1 -0
  443. package/dist/value-objects/usage.d.ts +13 -0
  444. package/dist/value-objects/usage.d.ts.map +1 -0
  445. package/dist/value-objects/usage.js +31 -0
  446. package/dist/value-objects/usage.js.map +1 -0
  447. package/package.json +46 -0
@@ -0,0 +1,128 @@
1
+ import { canonicalJson, isJsonObject } from '../../../json.js';
2
+ import { PrismError } from '../../../errors.js';
3
+ import { mapDocument, mapImage } from './media-map.js';
4
+ /**
5
+ * Map messages onto the Responses API's flat `input` array.
6
+ *
7
+ * Three things about this mapping are easy to get subtly wrong:
8
+ *
9
+ * 1. System prompts are PREPENDED to the message list rather than carried in
10
+ * a field of their own, and a system message maps to a BARE STRING content
11
+ * while a user message maps to a parts ARRAY. Two roles, two shapes, one
12
+ * payload.
13
+ * 2. An assistant message's tool calls do not stay attached to it. Each one
14
+ * becomes its own top-level `function_call` item whose `arguments` is a
15
+ * JSON STRING — a JSON document nested inside a JSON document.
16
+ * 3. A tool result is keyed by the RESULT id, not by the id of the call that
17
+ * produced it.
18
+ *
19
+ * @throws PrismError code `unknown_message_type`
20
+ */
21
+ export function mapMessages(messages, systemPrompts = []) {
22
+ const items = [];
23
+ for (const message of [...systemPrompts, ...messages]) {
24
+ switch (message.type) {
25
+ case 'system':
26
+ items.push({ role: 'system', content: message.content });
27
+ break;
28
+ case 'user':
29
+ items.push({
30
+ role: 'user',
31
+ content: [
32
+ { type: 'input_text', text: message.text() },
33
+ ...message.images().map(mapImage),
34
+ ...message.documents().map(mapDocument),
35
+ ],
36
+ // Spread at ITEM level: siblings of `role` and `content`, not nested.
37
+ ...message.additionalAttributes,
38
+ });
39
+ break;
40
+ case 'assistant':
41
+ mapAssistantMessage(message, items);
42
+ break;
43
+ case 'tool_result':
44
+ mapToolResultMessage(message, items);
45
+ break;
46
+ default:
47
+ throw PrismError.unknownMessageType(describeMessage(message));
48
+ }
49
+ }
50
+ return items;
51
+ }
52
+ function mapAssistantMessage(message, items) {
53
+ if (message.toolCalls.length > 0) {
54
+ for (const [reasoningId, toolCalls] of groupByReasoningId(message.toolCalls)) {
55
+ const first = toolCalls[0];
56
+ if (reasoningId !== '' && first !== undefined) {
57
+ items.push({
58
+ type: 'reasoning',
59
+ id: first.reasoningId,
60
+ summary: first.reasoningSummary,
61
+ });
62
+ }
63
+ for (const toolCall of toolCalls) {
64
+ items.push({
65
+ id: toolCall.id,
66
+ call_id: toolCall.resultId,
67
+ type: 'function_call',
68
+ name: toolCall.name,
69
+ arguments: canonicalJson(toolCall.parsedArguments()),
70
+ });
71
+ }
72
+ }
73
+ }
74
+ // An assistant turn that carried only tool calls contributes NO assistant
75
+ // item: an empty `output_text` part is rejected by the API.
76
+ if (message.content !== '') {
77
+ items.push({
78
+ role: 'assistant',
79
+ content: [{ type: 'output_text', text: message.content }],
80
+ });
81
+ }
82
+ }
83
+ function mapToolResultMessage(message, items) {
84
+ for (const toolResult of message.toolResults) {
85
+ items.push({
86
+ type: 'function_call_output',
87
+ call_id: toolResult.toolCallResultId,
88
+ output: stringifyToolOutput(toolResult.result),
89
+ });
90
+ }
91
+ }
92
+ /** Calls that share a reasoning id travel together, behind one reasoning item. */
93
+ function groupByReasoningId(toolCalls) {
94
+ const groups = new Map();
95
+ for (const toolCall of toolCalls) {
96
+ const key = toolCall.reasoningId ?? '';
97
+ const group = groups.get(key);
98
+ if (group === undefined) {
99
+ groups.set(key, [toolCall]);
100
+ }
101
+ else {
102
+ group.push(toolCall);
103
+ }
104
+ }
105
+ return groups;
106
+ }
107
+ /**
108
+ * A string result is passed through UNTOUCHED — re-encoding it would wrap it in
109
+ * quotes the model then has to see through. Only structured results are encoded.
110
+ */
111
+ function stringifyToolOutput(result) {
112
+ if (typeof result === 'string') {
113
+ return result;
114
+ }
115
+ if (result === null) {
116
+ return '';
117
+ }
118
+ if (Array.isArray(result) || isJsonObject(result)) {
119
+ return canonicalJson(result);
120
+ }
121
+ return String(result);
122
+ }
123
+ /** Name whatever arrived, so the failure says which value it choked on. */
124
+ function describeMessage(message) {
125
+ const type = isJsonObject(message) ? message.type : undefined;
126
+ return typeof type === 'string' ? type : String(type);
127
+ }
128
+ //# sourceMappingURL=message-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-map.js","sourceRoot":"","sources":["../../../../src/providers/openai/maps/message-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { JsonValue } from '../../../json.js';
2
+ import { ToolChoice } from '../../../enums.js';
3
+ /**
4
+ * Map a tool choice onto its wire form.
5
+ *
6
+ * A choice given as a STRING is a tool name and becomes an object; a choice
7
+ * given as an enum member becomes a bare string. Same argument, two JSON types.
8
+ *
9
+ * `Any` maps to `"required"` — the one member whose wire name differs from its
10
+ * own name, and the reason serializing the enum directly would send `"any"` and
11
+ * be rejected.
12
+ */
13
+ export declare function mapToolChoice(toolChoice: string | ToolChoice | null): JsonValue | null;
14
+ //# sourceMappingURL=tool-choice-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-choice-map.d.ts","sourceRoot":"","sources":["../../../../src/providers/openai/maps/tool-choice-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAetF"}
@@ -0,0 +1,27 @@
1
+ import { ToolChoice } from '../../../enums.js';
2
+ /**
3
+ * Map a tool choice onto its wire form.
4
+ *
5
+ * A choice given as a STRING is a tool name and becomes an object; a choice
6
+ * given as an enum member becomes a bare string. Same argument, two JSON types.
7
+ *
8
+ * `Any` maps to `"required"` — the one member whose wire name differs from its
9
+ * own name, and the reason serializing the enum directly would send `"any"` and
10
+ * be rejected.
11
+ */
12
+ export function mapToolChoice(toolChoice) {
13
+ if (typeof toolChoice === 'string') {
14
+ return { type: 'function', name: toolChoice };
15
+ }
16
+ switch (toolChoice) {
17
+ case ToolChoice.Auto:
18
+ return 'auto';
19
+ case ToolChoice.Any:
20
+ return 'required';
21
+ case ToolChoice.None:
22
+ return 'none';
23
+ default:
24
+ return null;
25
+ }
26
+ }
27
+ //# sourceMappingURL=tool-choice-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-choice-map.js","sourceRoot":"","sources":["../../../../src/providers/openai/maps/tool-choice-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,UAAsC;IAClE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAChD,CAAC;IAED,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,IAAI;YAClB,OAAO,MAAM,CAAC;QAChB,KAAK,UAAU,CAAC,GAAG;YACjB,OAAO,UAAU,CAAC;QACpB,KAAK,UAAU,CAAC,IAAI;YAClB,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { JsonObject } from '../../../json.js';
2
+ import type { Tool } from '../../../tool.js';
3
+ /**
4
+ * Map tools onto the Responses API's `tools` array.
5
+ *
6
+ * The whole mapped tool goes through a FALSINESS filter, not a not-null filter.
7
+ * That is why `strict: false` never reaches the wire even though `store: false`
8
+ * (a provider option, filtered on null) does. The inconsistency belongs to the
9
+ * reference and is reproduced rather than tidied: tidying it would change the
10
+ * bytes.
11
+ *
12
+ * Declaration order is preserved. Tool order reaches the model and influences
13
+ * which tool it picks.
14
+ */
15
+ export declare function mapTools(tools: readonly Tool[]): JsonObject[];
16
+ //# sourceMappingURL=tool-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-map.d.ts","sourceRoot":"","sources":["../../../../src/providers/openai/maps/tool-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,UAAU,EAAE,CAsB7D"}
@@ -0,0 +1,34 @@
1
+ import { dropFalsy } from '../../../internal/filters.js';
2
+ /**
3
+ * Map tools onto the Responses API's `tools` array.
4
+ *
5
+ * The whole mapped tool goes through a FALSINESS filter, not a not-null filter.
6
+ * That is why `strict: false` never reaches the wire even though `store: false`
7
+ * (a provider option, filtered on null) does. The inconsistency belongs to the
8
+ * reference and is reproduced rather than tidied: tidying it would change the
9
+ * bytes.
10
+ *
11
+ * Declaration order is preserved. Tool order reaches the model and influences
12
+ * which tool it picks.
13
+ */
14
+ export function mapTools(tools) {
15
+ return tools.map((tool) => {
16
+ const mapped = {
17
+ type: 'function',
18
+ name: tool.name(),
19
+ description: tool.description(),
20
+ };
21
+ if (tool.hasParameters()) {
22
+ mapped.parameters = {
23
+ type: 'object',
24
+ properties: tool.parametersAsObject(),
25
+ // `required` may legitimately be empty — the falsiness filter only ever
26
+ // runs over the TOP level of the mapped tool, never inside it.
27
+ required: [...tool.requiredParameters()],
28
+ };
29
+ }
30
+ mapped.strict = Boolean(tool.providerOptions('strict'));
31
+ return dropFalsy(mapped);
32
+ });
33
+ }
34
+ //# sourceMappingURL=tool-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-map.js","sourceRoot":"","sources":["../../../../src/providers/openai/maps/tool-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAsB;IAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,MAAM,GAA0C;YACpD,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;SAChC,CAAC;QAEF,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,UAAU,GAAG;gBAClB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE;gBACrC,wEAAwE;gBACxE,+DAA+D;gBAC/D,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;aACzC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QAExD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type JsonObject } from '../../json.js';
2
+ import type { ModerationRequest } from '../../moderation/request.js';
3
+ import { ModerationResponse } from '../../moderation/response.js';
4
+ export declare function buildModerationBody(request: ModerationRequest): JsonObject;
5
+ export declare function parseModerationResponse(rawBody: unknown, model: string): ModerationResponse;
6
+ //# sourceMappingURL=moderation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/moderation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIlE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAE1E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAe3F"}
@@ -0,0 +1,26 @@
1
+ import { isJsonObject } from '../../json.js';
2
+ import { PrismError } from '../../errors.js';
3
+ import { ModerationResponse } from '../../moderation/response.js';
4
+ import { Meta } from '../../value-objects/meta.js';
5
+ import { ModerationResult } from '../../value-objects/moderation-result.js';
6
+ export function buildModerationBody(request) {
7
+ return { model: request.model(), input: [...request.inputs()] };
8
+ }
9
+ export function parseModerationResponse(rawBody, model) {
10
+ if (!isJsonObject(rawBody)) {
11
+ // Refused rather than returning an empty response. An empty response has
12
+ // `isFlagged() === false`, so a caller gating on it would let the content
13
+ // through — a safety check that fails open on a malformed reply.
14
+ throw PrismError.providerResponseError('OpenAI returned an empty or non-object moderation response.');
15
+ }
16
+ const results = Array.isArray(rawBody.results) ? rawBody.results : [];
17
+ return new ModerationResponse({
18
+ results: results.map((result) => ModerationResult.fromObject(result)),
19
+ meta: new Meta(readString(rawBody.id), readString(rawBody.model) || model),
20
+ raw: rawBody,
21
+ });
22
+ }
23
+ function readString(value) {
24
+ return typeof value === 'string' ? value : '';
25
+ }
26
+ //# sourceMappingURL=moderation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../src/providers/openai/moderation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,MAAM,UAAU,mBAAmB,CAAC,OAA0B;IAC5D,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,KAAa;IACrE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,yEAAyE;QACzE,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,UAAU,CAAC,qBAAqB,CAAC,6DAA6D,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,OAAO,IAAI,kBAAkB,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAC1E,GAAG,EAAE,OAAO;KACb,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,103 @@
1
+ import type { StructuredRequest } from '../../structured/request.js';
2
+ import type { StructuredResponse } from '../../structured/response.js';
3
+ import type { EmbeddingsRequest } from '../../embeddings/request.js';
4
+ import type { EmbeddingsResponse } from '../../embeddings/response.js';
5
+ import type { ImagesRequest } from '../../images/request.js';
6
+ import type { ImagesResponse } from '../../images/response.js';
7
+ import type { ModerationRequest } from '../../moderation/request.js';
8
+ import type { ModerationResponse } from '../../moderation/response.js';
9
+ import type { SpeechToTextRequest, TextToSpeechRequest } from '../../audio/request.js';
10
+ import type { AudioResponse, AudioTextResponse } from '../../audio/response.js';
11
+ import type { DeleteFileRequest, GetFileMetadataRequest, ListFilesRequest } from '../../files/request.js';
12
+ import type { DeleteFileResult, FileData, FileListResult } from '../../files/file-data.js';
13
+ import { DownloadFileRequest, UploadFileRequest } from '../../files/request.js';
14
+ import type { BatchRequest, CancelBatchRequest, GetBatchResultsRequest, ListBatchesRequest } from '../../batch/request.js';
15
+ import { RetrieveBatchRequest } from '../../batch/request.js';
16
+ import type { BatchJob, BatchListResult, BatchResultItem } from '../../batch/batch-job.js';
17
+ import type { HttpTransport } from '../../http/transport.js';
18
+ import type { HttpBinaryTransport, HttpStreamTransport } from '../../http/transport.js';
19
+ import type { StreamEvent } from '../../streaming/events.js';
20
+ import type { TextRequest } from '../../text/request.js';
21
+ import type { TextResponse } from '../../text/response.js';
22
+ import { Provider } from '../provider.js';
23
+ export interface OpenAIConfig {
24
+ apiKey?: string;
25
+ url?: string;
26
+ organization?: string | null;
27
+ project?: string | null;
28
+ /** Only `'responses'` is implemented; the chat-completions format is not ported. */
29
+ apiFormat?: string;
30
+ transport?: HttpTransport;
31
+ streamTransport?: HttpStreamTransport;
32
+ binaryTransport?: HttpBinaryTransport;
33
+ }
34
+ /**
35
+ * The OpenAI provider, Responses API only.
36
+ *
37
+ * Configuration is explicit first and environment second, so a test can pin
38
+ * every field and a deployment can set none of them.
39
+ */
40
+ export declare class OpenAI extends Provider {
41
+ #private;
42
+ readonly providerName = "OpenAI";
43
+ readonly apiKey: string;
44
+ readonly url: string;
45
+ readonly organization: string | null;
46
+ readonly project: string | null;
47
+ readonly apiFormat: string;
48
+ constructor(config?: OpenAIConfig);
49
+ text(request: TextRequest): Promise<TextResponse>;
50
+ structured(request: StructuredRequest): Promise<StructuredResponse>;
51
+ /**
52
+ * The same generation, delivered as it arrives.
53
+ *
54
+ * `stream: true` is set here rather than in `buildRequestBody`, so the body a
55
+ * streamed call sends is provably the non-streamed body plus one key — the
56
+ * two cannot drift apart into different requests that happen to look alike.
57
+ */
58
+ stream(request: TextRequest): AsyncGenerator<StreamEvent>;
59
+ /**
60
+ * Vectors for one or more inputs.
61
+ *
62
+ * A different endpoint from the rest of this provider, so it does not go
63
+ * through `#send`: that helper posts to `/responses` and parses a text reply,
64
+ * and bending it to also mean `/embeddings` would make both harder to read
65
+ * than two short methods.
66
+ */
67
+ embeddings(request: EmbeddingsRequest): Promise<EmbeddingsResponse>;
68
+ images(request: ImagesRequest): Promise<ImagesResponse>;
69
+ moderation(request: ModerationRequest): Promise<ModerationResponse>;
70
+ textToSpeech(request: TextToSpeechRequest): Promise<AudioResponse>;
71
+ speechToText(request: SpeechToTextRequest): Promise<AudioTextResponse>;
72
+ uploadFile(request: UploadFileRequest): Promise<FileData>;
73
+ listFiles(request: ListFilesRequest): Promise<FileListResult>;
74
+ getFileMetadata(request: GetFileMetadataRequest): Promise<FileData>;
75
+ deleteFile(request: DeleteFileRequest): Promise<DeleteFileResult>;
76
+ /**
77
+ * The file's bytes, returned WITHOUT being decoded.
78
+ *
79
+ * The only file operation that does not go through `#file`, because that
80
+ * helper's job is to decode JSON and this one must not: a downloaded PDF run
81
+ * through a JSON parse comes back as null, and the failure would look like an
82
+ * empty file rather than a decode that should never have happened.
83
+ */
84
+ downloadFile(request: DownloadFileRequest): Promise<Uint8Array>;
85
+ batch(request: BatchRequest): Promise<BatchJob>;
86
+ retrieveBatch(request: RetrieveBatchRequest): Promise<BatchJob>;
87
+ listBatches(request: ListBatchesRequest): Promise<BatchListResult>;
88
+ cancelBatch(request: CancelBatchRequest): Promise<BatchJob>;
89
+ /**
90
+ * Every result in a batch, from the files it wrote.
91
+ *
92
+ * BOTH files are read, output and error, because a batch where some requests
93
+ * succeeded and others failed writes to both — reading only the output file
94
+ * would silently drop every failure and report a clean run.
95
+ *
96
+ * An unfinished batch has neither, and answers with an empty list rather than
97
+ * an error: nothing went wrong, there is just nothing yet.
98
+ */
99
+ getBatchResults(request: GetBatchResultsRequest): Promise<readonly BatchResultItem[]>;
100
+ /** Optional headers are OMITTED rather than sent empty when unconfigured. */
101
+ headers(): Record<string, string>;
102
+ }
103
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/openai.ts"],"names":[],"mappings":"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"}