@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,28 @@
1
+ import { StructuredMode } from '../enums.js';
2
+ import type { Schema } from '../schema/index.js';
3
+ import { TextPendingRequest } from '../text/pending-request.js';
4
+ import { StructuredRequest } from './request.js';
5
+ import type { StructuredResponse } from './response.js';
6
+ export type StructuredResponseCallback = (pending: StructuredPendingRequest, response: StructuredResponse) => void | Promise<void>;
7
+ /**
8
+ * The fluent builder for structured output.
9
+ *
10
+ * EXTENDS the text builder, so every method that shapes a request — `using`,
11
+ * `withMessages`, `usingTemperature`, `withTools`, all of them — is the same
12
+ * method with the same spelling, not a parallel set that drifts. A caller
13
+ * moving a call from `Prism.text()` to `Prism.structured()` changes two lines.
14
+ */
15
+ export declare class StructuredPendingRequest extends TextPendingRequest {
16
+ #private;
17
+ withSchema(schema: Schema): this;
18
+ usingStructuredMode(mode: StructuredMode): this;
19
+ /**
20
+ * @throws PrismError code `missing_schema` when no schema was set — a
21
+ * structured request without one is a text request that has not said so,
22
+ * and defaulting to "any object" would return something that parses and
23
+ * means nothing.
24
+ */
25
+ toRequest(): StructuredRequest;
26
+ asStructured(callback?: StructuredResponseCallback): Promise<StructuredResponse>;
27
+ }
28
+ //# sourceMappingURL=pending-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-request.d.ts","sourceRoot":"","sources":["../../src/structured/pending-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,kBAAkB,KACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;;;GAOG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;;IAK9D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAM/C;;;;;OAKG;IACM,SAAS,IAAI,iBAAiB;IAYjC,YAAY,CAAC,QAAQ,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,kBAAkB,CAAC;CASvF"}
@@ -0,0 +1,48 @@
1
+ import { PrismError } from '../errors.js';
2
+ import { StructuredMode } from '../enums.js';
3
+ import { TextPendingRequest } from '../text/pending-request.js';
4
+ import { StructuredRequest } from './request.js';
5
+ /**
6
+ * The fluent builder for structured output.
7
+ *
8
+ * EXTENDS the text builder, so every method that shapes a request — `using`,
9
+ * `withMessages`, `usingTemperature`, `withTools`, all of them — is the same
10
+ * method with the same spelling, not a parallel set that drifts. A caller
11
+ * moving a call from `Prism.text()` to `Prism.structured()` changes two lines.
12
+ */
13
+ export class StructuredPendingRequest extends TextPendingRequest {
14
+ #schema = null;
15
+ #mode = StructuredMode.Auto;
16
+ withSchema(schema) {
17
+ this.#schema = schema;
18
+ return this;
19
+ }
20
+ usingStructuredMode(mode) {
21
+ this.#mode = mode;
22
+ return this;
23
+ }
24
+ /**
25
+ * @throws PrismError code `missing_schema` when no schema was set — a
26
+ * structured request without one is a text request that has not said so,
27
+ * and defaulting to "any object" would return something that parses and
28
+ * means nothing.
29
+ */
30
+ toRequest() {
31
+ if (this.#schema === null) {
32
+ throw PrismError.missingSchema();
33
+ }
34
+ return new StructuredRequest({
35
+ ...this.requestOptions(),
36
+ schema: this.#schema,
37
+ mode: this.#mode,
38
+ });
39
+ }
40
+ async asStructured(callback) {
41
+ const response = await this.provider().structured(this.toRequest());
42
+ if (callback !== undefined) {
43
+ await callback(this, response);
44
+ }
45
+ return response;
46
+ }
47
+ }
48
+ //# sourceMappingURL=pending-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-request.js","sourceRoot":"","sources":["../../src/structured/pending-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQjD;;;;;;;GAOG;AACH,MAAM,OAAO,wBAAyB,SAAQ,kBAAkB;IAC9D,OAAO,GAAkB,IAAI,CAAC;IAE9B,KAAK,GAAmB,cAAc,CAAC,IAAI,CAAC;IAE5C,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,IAAoB;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACM,SAAS;QAChB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC;YAC3B,GAAG,IAAI,CAAC,cAAc,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAqC;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAEpE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import type { Schema } from '../schema/index.js';
2
+ import type { StructuredMode } from '../enums.js';
3
+ import { TextRequest, type TextRequestOptions } from '../text/request.js';
4
+ export interface StructuredRequestOptions extends TextRequestOptions {
5
+ schema: Schema;
6
+ mode: StructuredMode;
7
+ }
8
+ /**
9
+ * A text request that must come back shaped.
10
+ *
11
+ * EXTENDS `TextRequest` rather than restating it. The reference keeps two
12
+ * separate request classes that carry the same twenty fields, which is a fair
13
+ * choice in PHP where the duplication is visible and reviewed. Here it would be
14
+ * a second copy nobody diffs: a field added to one and forgotten in the other
15
+ * produces a request that builds fine and silently drops `topK` on structured
16
+ * calls only. Everything a text request carries, a structured request carries
17
+ * identically — by construction, not by agreement.
18
+ *
19
+ * What it adds is the pair that makes it structured: the SCHEMA the output must
20
+ * satisfy, and the MODE describing how to ask the provider for it.
21
+ */
22
+ export declare class StructuredRequest extends TextRequest {
23
+ #private;
24
+ constructor(options: StructuredRequestOptions);
25
+ schema(): Schema;
26
+ mode(): StructuredMode;
27
+ }
28
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/structured/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;;gBAKpC,OAAO,EAAE,wBAAwB;IAO7C,MAAM,IAAI,MAAM;IAIhB,IAAI,IAAI,cAAc;CAGvB"}
@@ -0,0 +1,31 @@
1
+ import { TextRequest } from '../text/request.js';
2
+ /**
3
+ * A text request that must come back shaped.
4
+ *
5
+ * EXTENDS `TextRequest` rather than restating it. The reference keeps two
6
+ * separate request classes that carry the same twenty fields, which is a fair
7
+ * choice in PHP where the duplication is visible and reviewed. Here it would be
8
+ * a second copy nobody diffs: a field added to one and forgotten in the other
9
+ * produces a request that builds fine and silently drops `topK` on structured
10
+ * calls only. Everything a text request carries, a structured request carries
11
+ * identically — by construction, not by agreement.
12
+ *
13
+ * What it adds is the pair that makes it structured: the SCHEMA the output must
14
+ * satisfy, and the MODE describing how to ask the provider for it.
15
+ */
16
+ export class StructuredRequest extends TextRequest {
17
+ #schema;
18
+ #mode;
19
+ constructor(options) {
20
+ super(options);
21
+ this.#schema = options.schema;
22
+ this.#mode = options.mode;
23
+ }
24
+ schema() {
25
+ return this.#schema;
26
+ }
27
+ mode() {
28
+ return this.#mode;
29
+ }
30
+ }
31
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/structured/request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA2B,MAAM,oBAAoB,CAAC;AAO1E;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACvC,OAAO,CAAS;IAEhB,KAAK,CAAiB;IAE/B,YAAY,OAAiC;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,44 @@
1
+ import type { JsonObject } from '../json.js';
2
+ import type { FinishReason } from '../enums.js';
3
+ import type { Meta } from '../value-objects/meta.js';
4
+ import type { Usage } from '../value-objects/usage.js';
5
+ import type { TextStep } from '../text/step.js';
6
+ export interface StructuredResponseOptions {
7
+ steps: readonly TextStep[];
8
+ text: string;
9
+ structured: JsonObject | null;
10
+ finishReason: FinishReason;
11
+ usage: Usage;
12
+ meta: Meta;
13
+ additionalContent?: Readonly<JsonObject>;
14
+ raw?: JsonObject | null;
15
+ }
16
+ /**
17
+ * The answer, and the answer parsed.
18
+ *
19
+ * `text` and `structured` are BOTH kept, and the pairing is the point: `text`
20
+ * is what the model actually said, `structured` is what could be made of it.
21
+ *
22
+ * `structured` IS NULLABLE, AND NULL IS NOT AN ERROR. A model asked for JSON can
23
+ * return prose — a refusal, an apology, a fenced block with commentary around it
24
+ * — and the reference reports that by leaving `structured` null while `text`
25
+ * still carries what came back. Collapsing the two, or throwing on unparseable
26
+ * output, would take away the one artifact that explains WHY it did not parse.
27
+ *
28
+ * So a caller checks `structured` before using it, and reads `text` when it is
29
+ * null. The type says so; `JsonObject | null` cannot be indexed without the
30
+ * check.
31
+ */
32
+ export declare class StructuredResponse {
33
+ readonly steps: readonly TextStep[];
34
+ readonly text: string;
35
+ readonly structured: JsonObject | null;
36
+ readonly finishReason: FinishReason;
37
+ readonly usage: Usage;
38
+ readonly meta: Meta;
39
+ readonly additionalContent: Readonly<JsonObject>;
40
+ readonly raw: JsonObject | null;
41
+ constructor(options: StructuredResponseOptions);
42
+ toObject(): JsonObject;
43
+ }
44
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/structured/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAEpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAEvC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAEpC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEjD,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;gBAEpB,OAAO,EAAE,yBAAyB;IAW9C,QAAQ,IAAI,UAAU;CAYvB"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The answer, and the answer parsed.
3
+ *
4
+ * `text` and `structured` are BOTH kept, and the pairing is the point: `text`
5
+ * is what the model actually said, `structured` is what could be made of it.
6
+ *
7
+ * `structured` IS NULLABLE, AND NULL IS NOT AN ERROR. A model asked for JSON can
8
+ * return prose — a refusal, an apology, a fenced block with commentary around it
9
+ * — and the reference reports that by leaving `structured` null while `text`
10
+ * still carries what came back. Collapsing the two, or throwing on unparseable
11
+ * output, would take away the one artifact that explains WHY it did not parse.
12
+ *
13
+ * So a caller checks `structured` before using it, and reads `text` when it is
14
+ * null. The type says so; `JsonObject | null` cannot be indexed without the
15
+ * check.
16
+ */
17
+ export class StructuredResponse {
18
+ steps;
19
+ text;
20
+ structured;
21
+ finishReason;
22
+ usage;
23
+ meta;
24
+ additionalContent;
25
+ raw;
26
+ constructor(options) {
27
+ this.steps = options.steps;
28
+ this.text = options.text;
29
+ this.structured = options.structured;
30
+ this.finishReason = options.finishReason;
31
+ this.usage = options.usage;
32
+ this.meta = options.meta;
33
+ this.additionalContent = options.additionalContent ?? {};
34
+ this.raw = options.raw ?? null;
35
+ }
36
+ toObject() {
37
+ return {
38
+ steps: this.steps.map((step) => step.toObject()),
39
+ text: this.text,
40
+ structured: this.structured === null ? null : { ...this.structured },
41
+ finish_reason: this.finishReason,
42
+ usage: this.usage.toObject(),
43
+ meta: this.meta.toObject(),
44
+ additional_content: { ...this.additionalContent },
45
+ raw: this.raw === null ? null : { ...this.raw },
46
+ };
47
+ }
48
+ }
49
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/structured/response.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,kBAAkB;IACpB,KAAK,CAAsB;IAE3B,IAAI,CAAS;IAEb,UAAU,CAAoB;IAE9B,YAAY,CAAe;IAE3B,KAAK,CAAQ;IAEb,IAAI,CAAO;IAEX,iBAAiB,CAAuB;IAExC,GAAG,CAAoB;IAEhC,YAAY,OAAkC;QAC5C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACzD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;YACpE,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1B,kBAAkB,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACjD,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;SAChD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,77 @@
1
+ import type { JsonObject } from '../json.js';
2
+ import type { ToolChoice } from '../enums.js';
3
+ import { Tool } from '../tool.js';
4
+ import type { Provider } from '../providers/provider.js';
5
+ import { SystemMessage } from '../value-objects/messages/index.js';
6
+ import type { Message } from '../value-objects/messages/index.js';
7
+ import type { MessagePart } from '../value-objects/media/part.js';
8
+ import type { ProviderTool } from '../value-objects/provider-tool.js';
9
+ import { TextRequest, type TextRequestOptions } from './request.js';
10
+ import type { TextResponse } from './response.js';
11
+ import type { StreamEvent } from '../streaming/events.js';
12
+ export type TextResponseCallback = (pending: TextPendingRequest, response: TextResponse) => void | Promise<void>;
13
+ /**
14
+ * The fluent builder.
15
+ *
16
+ * Method names match the reference's spelling exactly, so a call script written
17
+ * against one reads the same against the other.
18
+ */
19
+ export declare class TextPendingRequest {
20
+ #private;
21
+ using(provider: string, model?: string, providerConfig?: Record<string, unknown>): this;
22
+ /**
23
+ * The single user turn this request asks about.
24
+ *
25
+ * `additionalContent` takes any message PART, not only text — an `Image` or a
26
+ * `Document` passed here reaches whichever provider the request resolves to,
27
+ * in that provider's own spelling.
28
+ */
29
+ withPrompt(prompt: string, additionalContent?: readonly MessagePart[]): this;
30
+ /** APPENDS. Two calls give two system messages, in call order. */
31
+ withSystemPrompt(message: string | SystemMessage): this;
32
+ /** REPLACES, unlike `withSystemPrompt`. */
33
+ withSystemPrompts(messages: readonly SystemMessage[]): this;
34
+ withMessages(messages: readonly Message[]): this;
35
+ withMaxTokens(maxTokens: number | null): this;
36
+ usingTemperature(temperature: number | null): this;
37
+ usingTopP(topP: number): this;
38
+ usingTopK(topK: number): this;
39
+ withTools(tools: readonly Tool[]): this;
40
+ withToolChoice(toolChoice: string | ToolChoice | Tool): this;
41
+ withProviderOptions(options?: Readonly<JsonObject>): this;
42
+ withProviderTools(providerTools: readonly ProviderTool[]): this;
43
+ withReasoning(enabled?: boolean): this;
44
+ withClientOptions(options: Record<string, unknown>): this;
45
+ withMaxSteps(steps: number): this;
46
+ providerKey(): string;
47
+ model(): string;
48
+ provider(): Provider;
49
+ /**
50
+ * Resolve the builder into a request, without sending it.
51
+ *
52
+ * @throws PrismError code `prompt_and_messages` when both were set — they are
53
+ * two ways of saying the same thing and the reference cannot merge them.
54
+ */
55
+ toRequest(): TextRequest;
56
+ /**
57
+ * Every field this builder has collected, as request options.
58
+ *
59
+ * Extracted so a SUBCLASS can build a different request from the same
60
+ * twenty fields — see `StructuredPendingRequest`. The fields are `#private`,
61
+ * so a subclass cannot read them directly and the alternative is a second
62
+ * copy of this list that nobody diffs: add a field to one and forget the
63
+ * other, and the request builds fine while silently dropping it.
64
+ */
65
+ protected requestOptions(): TextRequestOptions;
66
+ /**
67
+ * The same generation, delivered as it arrives.
68
+ *
69
+ * Yields the provider's events and accumulates NOTHING. A caller that wants
70
+ * the finished text collects the deltas it is already being handed; a builder
71
+ * that quietly buffered them would double the memory of every stream to serve
72
+ * the callers who do not need it.
73
+ */
74
+ asStream(): AsyncGenerator<StreamEvent>;
75
+ asText(callback?: TextResponseCallback): Promise<TextResponse>;
76
+ }
77
+ //# sourceMappingURL=pending-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-request.d.ts","sourceRoot":"","sources":["../../src/text/pending-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,YAAY,KACnB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;GAKG;AACH,qBAAa,kBAAkB;;IAqC7B,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI;IAQvF;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,SAAS,WAAW,EAAO,GAAG,IAAI;IAOhF,kEAAkE;IAClE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAMvD,2CAA2C;IAC3C,iBAAiB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI;IAM3D,YAAY,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAMhD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAM7C,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMlD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM7B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM7B,SAAS,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI;IAMvC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI;IAM5D,mBAAmB,CAAC,OAAO,GAAE,QAAQ,CAAC,UAAU,CAAM,GAAG,IAAI;IAM7D,iBAAiB,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI;IAM/D,aAAa,CAAC,OAAO,UAAO,GAAG,IAAI;IAMnC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMzD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMjC,WAAW,IAAI,MAAM;IAIrB,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,QAAQ;IAQpB;;;;;OAKG;IACH,SAAS,IAAI,WAAW;IAIxB;;;;;;;;OAQG;IACH,SAAS,CAAC,cAAc,IAAI,kBAAkB;IAoC9C;;;;;;;OAOG;IACH,QAAQ,IAAI,cAAc,CAAC,WAAW,CAAC;IAIjC,MAAM,CAAC,QAAQ,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;CASrE"}
@@ -0,0 +1,189 @@
1
+ import { PrismError } from '../errors.js';
2
+ import { Tool } from '../tool.js';
3
+ import { resolveProvider } from '../providers/registry.js';
4
+ import { SystemMessage } from '../value-objects/messages/index.js';
5
+ import { UserMessage } from '../value-objects/messages/index.js';
6
+ import { TextRequest } from './request.js';
7
+ /**
8
+ * The fluent builder.
9
+ *
10
+ * Method names match the reference's spelling exactly, so a call script written
11
+ * against one reads the same against the other.
12
+ */
13
+ export class TextPendingRequest {
14
+ #provider = null;
15
+ #providerKey = '';
16
+ #model = '';
17
+ #prompt = null;
18
+ #additionalContent = [];
19
+ #systemPrompts = [];
20
+ #messages = [];
21
+ #maxSteps = 1;
22
+ #maxTokens = null;
23
+ #temperature = null;
24
+ #topP = null;
25
+ #topK = null;
26
+ #tools = [];
27
+ #toolChoice = null;
28
+ #providerOptions = {};
29
+ #providerTools = [];
30
+ #reasoningEnabled = null;
31
+ #clientOptions = {};
32
+ using(provider, model = '', providerConfig = {}) {
33
+ this.#providerKey = provider;
34
+ this.#model = model;
35
+ this.#provider = resolveProvider(provider, providerConfig);
36
+ return this;
37
+ }
38
+ /**
39
+ * The single user turn this request asks about.
40
+ *
41
+ * `additionalContent` takes any message PART, not only text — an `Image` or a
42
+ * `Document` passed here reaches whichever provider the request resolves to,
43
+ * in that provider's own spelling.
44
+ */
45
+ withPrompt(prompt, additionalContent = []) {
46
+ this.#prompt = prompt;
47
+ this.#additionalContent = additionalContent;
48
+ return this;
49
+ }
50
+ /** APPENDS. Two calls give two system messages, in call order. */
51
+ withSystemPrompt(message) {
52
+ this.#systemPrompts.push(typeof message === 'string' ? new SystemMessage(message) : message);
53
+ return this;
54
+ }
55
+ /** REPLACES, unlike `withSystemPrompt`. */
56
+ withSystemPrompts(messages) {
57
+ this.#systemPrompts = [...messages];
58
+ return this;
59
+ }
60
+ withMessages(messages) {
61
+ this.#messages = messages;
62
+ return this;
63
+ }
64
+ withMaxTokens(maxTokens) {
65
+ this.#maxTokens = maxTokens;
66
+ return this;
67
+ }
68
+ usingTemperature(temperature) {
69
+ this.#temperature = temperature;
70
+ return this;
71
+ }
72
+ usingTopP(topP) {
73
+ this.#topP = topP;
74
+ return this;
75
+ }
76
+ usingTopK(topK) {
77
+ this.#topK = topK;
78
+ return this;
79
+ }
80
+ withTools(tools) {
81
+ this.#tools = tools;
82
+ return this;
83
+ }
84
+ withToolChoice(toolChoice) {
85
+ this.#toolChoice = toolChoice instanceof Tool ? toolChoice.name() : toolChoice;
86
+ return this;
87
+ }
88
+ withProviderOptions(options = {}) {
89
+ this.#providerOptions = { ...options };
90
+ return this;
91
+ }
92
+ withProviderTools(providerTools) {
93
+ this.#providerTools = providerTools;
94
+ return this;
95
+ }
96
+ withReasoning(enabled = true) {
97
+ this.#reasoningEnabled = enabled;
98
+ return this;
99
+ }
100
+ withClientOptions(options) {
101
+ this.#clientOptions = { ...options };
102
+ return this;
103
+ }
104
+ withMaxSteps(steps) {
105
+ this.#maxSteps = steps;
106
+ return this;
107
+ }
108
+ providerKey() {
109
+ return this.#providerKey;
110
+ }
111
+ model() {
112
+ return this.#model;
113
+ }
114
+ provider() {
115
+ if (this.#provider === null) {
116
+ throw PrismError.unsupportedProviderAction('Sending a request', 'a pending request with no provider — call using() first');
117
+ }
118
+ return this.#provider;
119
+ }
120
+ /**
121
+ * Resolve the builder into a request, without sending it.
122
+ *
123
+ * @throws PrismError code `prompt_and_messages` when both were set — they are
124
+ * two ways of saying the same thing and the reference cannot merge them.
125
+ */
126
+ toRequest() {
127
+ return new TextRequest(this.requestOptions());
128
+ }
129
+ /**
130
+ * Every field this builder has collected, as request options.
131
+ *
132
+ * Extracted so a SUBCLASS can build a different request from the same
133
+ * twenty fields — see `StructuredPendingRequest`. The fields are `#private`,
134
+ * so a subclass cannot read them directly and the alternative is a second
135
+ * copy of this list that nobody diffs: add a field to one and forget the
136
+ * other, and the request builds fine while silently dropping it.
137
+ */
138
+ requestOptions() {
139
+ if (this.#messages.length > 0 && this.#prompt !== null) {
140
+ throw PrismError.promptAndMessages();
141
+ }
142
+ const messages = [...this.#messages];
143
+ // DELIBERATE DIVERGENCE FROM THE REFERENCE. The reference gates this on
144
+ // truthiness, so a prompt of "" or "0" is dropped and the request carries no
145
+ // user message at all — the caller's turn never reaches the model. That is a
146
+ // defect (prism-parity finding F-2); an empty prompt is a prompt. The gate
147
+ // here is on ABSENCE, so only a prompt that was never set is skipped.
148
+ if (this.#prompt !== null) {
149
+ messages.push(new UserMessage(this.#prompt, this.#additionalContent));
150
+ }
151
+ return {
152
+ model: this.#model,
153
+ providerKey: this.#providerKey,
154
+ systemPrompts: [...this.#systemPrompts],
155
+ prompt: this.#prompt,
156
+ messages,
157
+ maxSteps: this.#maxSteps,
158
+ maxTokens: this.#maxTokens,
159
+ temperature: this.#temperature,
160
+ topP: this.#topP,
161
+ topK: this.#topK,
162
+ tools: this.#tools,
163
+ clientOptions: this.#clientOptions,
164
+ toolChoice: this.#toolChoice,
165
+ providerOptions: this.#providerOptions,
166
+ providerTools: this.#providerTools,
167
+ reasoningEnabled: this.#reasoningEnabled,
168
+ };
169
+ }
170
+ /**
171
+ * The same generation, delivered as it arrives.
172
+ *
173
+ * Yields the provider's events and accumulates NOTHING. A caller that wants
174
+ * the finished text collects the deltas it is already being handed; a builder
175
+ * that quietly buffered them would double the memory of every stream to serve
176
+ * the callers who do not need it.
177
+ */
178
+ asStream() {
179
+ return this.provider().stream(this.toRequest());
180
+ }
181
+ async asText(callback) {
182
+ const response = await this.provider().text(this.toRequest());
183
+ if (callback !== undefined) {
184
+ await callback(this, response);
185
+ }
186
+ return response;
187
+ }
188
+ }
189
+ //# sourceMappingURL=pending-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-request.js","sourceRoot":"","sources":["../../src/text/pending-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { JsonObject, JsonValue } from '../json.js';
2
+ import { ToolChoice } from '../enums.js';
3
+ import type { Tool } from '../tool.js';
4
+ import type { Message } from '../value-objects/messages/index.js';
5
+ import type { SystemMessage } from '../value-objects/messages/index.js';
6
+ import type { ProviderTool } from '../value-objects/provider-tool.js';
7
+ export interface TextRequestOptions {
8
+ model: string;
9
+ providerKey?: string | null;
10
+ systemPrompts?: readonly SystemMessage[];
11
+ prompt?: string | null;
12
+ messages?: readonly Message[];
13
+ maxSteps?: number;
14
+ maxTokens?: number | null;
15
+ temperature?: number | null;
16
+ topP?: number | null;
17
+ topK?: number | null;
18
+ tools?: readonly Tool[];
19
+ clientOptions?: Readonly<Record<string, unknown>>;
20
+ toolChoice?: string | ToolChoice | null;
21
+ providerOptions?: Readonly<JsonObject>;
22
+ providerTools?: readonly ProviderTool[];
23
+ reasoningEnabled?: boolean | null;
24
+ }
25
+ /**
26
+ * A resolved text request: everything the provider needs, and nothing that only
27
+ * the builder needed.
28
+ *
29
+ * Accessors are methods rather than properties so the shape mirrors the
30
+ * reference exactly, and so `messages()` can stay a method while `addMessage()`
31
+ * mutates the list beneath it.
32
+ */
33
+ export declare class TextRequest {
34
+ #private;
35
+ constructor(options: TextRequestOptions);
36
+ model(): string;
37
+ provider(): string | null;
38
+ systemPrompts(): readonly SystemMessage[];
39
+ prompt(): string | null;
40
+ messages(): readonly Message[];
41
+ maxSteps(): number;
42
+ maxTokens(): number | null;
43
+ temperature(): number | null;
44
+ topP(): number | null;
45
+ topK(): number | null;
46
+ tools(): readonly Tool[];
47
+ clientOptions(): Readonly<Record<string, unknown>>;
48
+ toolChoice(): string | ToolChoice | null;
49
+ providerTools(): readonly ProviderTool[];
50
+ reasoningEnabled(): boolean | null;
51
+ providerOptions(): JsonObject;
52
+ providerOptions(path: string): JsonValue | undefined;
53
+ withProviderOptions(options?: Readonly<JsonObject>): this;
54
+ addMessage(message: Message): this;
55
+ setMessages(messages: readonly Message[]): this;
56
+ /**
57
+ * After a tool has been called once, a forced choice must relax to `Auto` or
58
+ * the model would be pinned to that tool for every remaining step.
59
+ */
60
+ resetToolChoice(): this;
61
+ }
62
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/text/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW;;gBAiCV,OAAO,EAAE,kBAAkB;IAmBvC,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,aAAa,IAAI,SAAS,aAAa,EAAE;IAIzC,MAAM,IAAI,MAAM,GAAG,IAAI;IAIvB,QAAQ,IAAI,SAAS,OAAO,EAAE;IAI9B,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,IAAI,IAAI,MAAM,GAAG,IAAI;IAIrB,IAAI,IAAI,MAAM,GAAG,IAAI;IAIrB,KAAK,IAAI,SAAS,IAAI,EAAE;IAIxB,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIlD,UAAU,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI;IAIxC,aAAa,IAAI,SAAS,YAAY,EAAE;IAIxC,gBAAgB,IAAI,OAAO,GAAG,IAAI;IAIlC,eAAe,IAAI,UAAU;IAC7B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAKpD,mBAAmB,CAAC,OAAO,GAAE,QAAQ,CAAC,UAAU,CAAM,GAAG,IAAI;IAM7D,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMlC,WAAW,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAM/C;;;OAGG;IACH,eAAe,IAAI,IAAI;CAOxB"}