@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,16 @@
1
+ import type { JsonObject } from '../json.js';
2
+ /**
3
+ * What an embeddings call cost.
4
+ *
5
+ * Separate from `Usage` rather than reusing it: an embeddings response has no
6
+ * completion tokens, and a shared type would report `completionTokens: 0` as
7
+ * though none had been generated rather than because the concept does not
8
+ * apply. Nullable for the same reason — a provider that reports nothing is
9
+ * different from one that reports zero.
10
+ */
11
+ export declare class EmbeddingsUsage {
12
+ readonly tokens: number | null;
13
+ constructor(tokens: number | null);
14
+ toObject(): JsonObject;
15
+ }
16
+ //# sourceMappingURL=embeddings-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings-usage.d.ts","sourceRoot":"","sources":["../../src/value-objects/embeddings-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;GAQG;AACH,qBAAa,eAAe;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;gBAArB,MAAM,EAAE,MAAM,GAAG,IAAI;IAE1C,QAAQ,IAAI,UAAU;CAGvB"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * What an embeddings call cost.
3
+ *
4
+ * Separate from `Usage` rather than reusing it: an embeddings response has no
5
+ * completion tokens, and a shared type would report `completionTokens: 0` as
6
+ * though none had been generated rather than because the concept does not
7
+ * apply. Nullable for the same reason — a provider that reports nothing is
8
+ * different from one that reports zero.
9
+ */
10
+ export class EmbeddingsUsage {
11
+ tokens;
12
+ constructor(tokens) {
13
+ this.tokens = tokens;
14
+ }
15
+ toObject() {
16
+ return { tokens: this.tokens };
17
+ }
18
+ }
19
+ //# sourceMappingURL=embeddings-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings-usage.js","sourceRoot":"","sources":["../../src/value-objects/embeddings-usage.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,OAAO,eAAe;IACL;IAArB,YAAqB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE9C,QAAQ;QACN,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import type { JsonObject } from '../json.js';
2
+ import { Audio } from './media/audio.js';
3
+ /**
4
+ * Speech a provider generated.
5
+ *
6
+ * Extends `Audio`, so it answers the same questions every other payload does —
7
+ * `base64()`, `rawContent()`, `mimeType()`. It exists as its own type only
8
+ * because the reference has one, and because `type` (the provider's own format
9
+ * name, e.g. `mp3`) is not the same thing as a mime type and should not be
10
+ * quietly stored as one.
11
+ */
12
+ export declare class GeneratedAudio extends Audio {
13
+ /** The provider's format name — `mp3`, `wav`, `opus`. Not a mime type. */
14
+ readonly type: string | null;
15
+ constructor(base64?: string | null,
16
+ /** The provider's format name — `mp3`, `wav`, `opus`. Not a mime type. */
17
+ type?: string | null, mimeType?: string | null);
18
+ toObject(): JsonObject;
19
+ }
20
+ //# sourceMappingURL=generated-audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-audio.d.ts","sourceRoot":"","sources":["../../src/value-objects/generated-audio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,KAAK;IAGrC,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;gBAF5B,MAAM,GAAE,MAAM,GAAG,IAAW;IAC5B,0EAA0E;IACjE,IAAI,GAAE,MAAM,GAAG,IAAW,EACnC,QAAQ,GAAE,MAAM,GAAG,IAAW;IAKvB,QAAQ,IAAI,UAAU;CAGhC"}
@@ -0,0 +1,23 @@
1
+ import { Audio } from './media/audio.js';
2
+ /**
3
+ * Speech a provider generated.
4
+ *
5
+ * Extends `Audio`, so it answers the same questions every other payload does —
6
+ * `base64()`, `rawContent()`, `mimeType()`. It exists as its own type only
7
+ * because the reference has one, and because `type` (the provider's own format
8
+ * name, e.g. `mp3`) is not the same thing as a mime type and should not be
9
+ * quietly stored as one.
10
+ */
11
+ export class GeneratedAudio extends Audio {
12
+ type;
13
+ constructor(base64 = null,
14
+ /** The provider's format name — `mp3`, `wav`, `opus`. Not a mime type. */
15
+ type = null, mimeType = null) {
16
+ super(null, base64, mimeType);
17
+ this.type = type;
18
+ }
19
+ toObject() {
20
+ return { ...super.toObject(), type: this.type };
21
+ }
22
+ }
23
+ //# sourceMappingURL=generated-audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-audio.js","sourceRoot":"","sources":["../../src/value-objects/generated-audio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAI5B;IAHX,YACE,SAAwB,IAAI;IAC5B,0EAA0E;IACjE,OAAsB,IAAI,EACnC,WAA0B,IAAI;QAE9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAHrB,SAAI,GAAJ,IAAI,CAAsB;IAIrC,CAAC;IAEQ,QAAQ;QACf,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import type { JsonObject } from '../json.js';
2
+ import { Image } from './media/image.js';
3
+ /**
4
+ * An image a provider generated, and what it generated from.
5
+ *
6
+ * EXTENDS `Image` now that a Media base exists. It previously restated the
7
+ * url / base64 / mimeType triple itself, which was correct while it was the
8
+ * only binary type in the port and wrong the moment audio arrived — three
9
+ * standalone copies is how a package ends up with three answers to "is this a
10
+ * file". This was the first, so it moved first.
11
+ *
12
+ * What it adds is the one thing a generated image has and a supplied one does
13
+ * not: the prompt the provider actually used.
14
+ */
15
+ export declare class GeneratedImage extends Image {
16
+ /**
17
+ * What the provider actually generated from.
18
+ *
19
+ * OpenAI rewrites prompts for safety and quality, often substantially. Kept
20
+ * because a caller comparing an image against its prompt is comparing it
21
+ * against THIS one, not the one they typed.
22
+ */
23
+ readonly revisedPrompt: string | null;
24
+ constructor(url?: string | null, base64?: string | null,
25
+ /**
26
+ * What the provider actually generated from.
27
+ *
28
+ * OpenAI rewrites prompts for safety and quality, often substantially. Kept
29
+ * because a caller comparing an image against its prompt is comparing it
30
+ * against THIS one, not the one they typed.
31
+ */
32
+ revisedPrompt?: string | null, mimeType?: string | null);
33
+ hasRevisedPrompt(): boolean;
34
+ toObject(): JsonObject;
35
+ }
36
+ //# sourceMappingURL=generated-image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-image.d.ts","sourceRoot":"","sources":["../../src/value-objects/generated-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,KAAK;IAIrC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;gBATrC,GAAG,GAAE,MAAM,GAAG,IAAW,EACzB,MAAM,GAAE,MAAM,GAAG,IAAW;IAC5B;;;;;;OAMG;IACM,aAAa,GAAE,MAAM,GAAG,IAAW,EAC5C,QAAQ,GAAE,MAAM,GAAG,IAAW;IAKhC,gBAAgB,IAAI,OAAO;IAIlB,QAAQ,IAAI,UAAU;CAGhC"}
@@ -0,0 +1,35 @@
1
+ import { Image } from './media/image.js';
2
+ /**
3
+ * An image a provider generated, and what it generated from.
4
+ *
5
+ * EXTENDS `Image` now that a Media base exists. It previously restated the
6
+ * url / base64 / mimeType triple itself, which was correct while it was the
7
+ * only binary type in the port and wrong the moment audio arrived — three
8
+ * standalone copies is how a package ends up with three answers to "is this a
9
+ * file". This was the first, so it moved first.
10
+ *
11
+ * What it adds is the one thing a generated image has and a supplied one does
12
+ * not: the prompt the provider actually used.
13
+ */
14
+ export class GeneratedImage extends Image {
15
+ revisedPrompt;
16
+ constructor(url = null, base64 = null,
17
+ /**
18
+ * What the provider actually generated from.
19
+ *
20
+ * OpenAI rewrites prompts for safety and quality, often substantially. Kept
21
+ * because a caller comparing an image against its prompt is comparing it
22
+ * against THIS one, not the one they typed.
23
+ */
24
+ revisedPrompt = null, mimeType = null) {
25
+ super(url, base64, mimeType);
26
+ this.revisedPrompt = revisedPrompt;
27
+ }
28
+ hasRevisedPrompt() {
29
+ return this.revisedPrompt !== null;
30
+ }
31
+ toObject() {
32
+ return { ...super.toObject(), revised_prompt: this.revisedPrompt };
33
+ }
34
+ }
35
+ //# sourceMappingURL=generated-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-image.js","sourceRoot":"","sources":["../../src/value-objects/generated-image.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAW5B;IAVX,YACE,MAAqB,IAAI,EACzB,SAAwB,IAAI;IAC5B;;;;;;OAMG;IACM,gBAA+B,IAAI,EAC5C,WAA0B,IAAI;QAE9B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAHpB,kBAAa,GAAb,aAAa,CAAsB;IAI9C,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;IACrC,CAAC;IAEQ,QAAQ;QACf,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;IACrE,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ export { Text } from './media/text.js';
2
+ export { AssistantMessage, SystemMessage, ToolResultMessage, UserMessage, messageFromObject, } from './messages/index.js';
3
+ export type { Message, MessageType } from './messages/index.js';
4
+ export { Artifact } from './artifact.js';
5
+ export { Meta } from './meta.js';
6
+ export { ProviderRateLimit } from './provider-rate-limit.js';
7
+ export { ProviderTool } from './provider-tool.js';
8
+ export { ToolCall } from './tool-call.js';
9
+ export type { ToolCallArguments } from './tool-call.js';
10
+ export { ToolResult } from './tool-result.js';
11
+ export type { ToolResultValue } from './tool-result.js';
12
+ export { Usage } from './usage.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { Text } from './media/text.js';
2
+ export { AssistantMessage, SystemMessage, ToolResultMessage, UserMessage, messageFromObject, } from './messages/index.js';
3
+ export { Artifact } from './artifact.js';
4
+ export { Meta } from './meta.js';
5
+ export { ProviderRateLimit } from './provider-rate-limit.js';
6
+ export { ProviderTool } from './provider-tool.js';
7
+ export { ToolCall } from './tool-call.js';
8
+ export { ToolResult } from './tool-result.js';
9
+ export { Usage } from './usage.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { JsonObject } from '../../json.js';
2
+ import { Media } from './media.js';
3
+ /** An audio payload — a recording to transcribe, or speech that was generated. */
4
+ export declare class Audio extends Media {
5
+ readonly kind: "audio";
6
+ static fromObject(object: JsonObject): Audio;
7
+ }
8
+ //# sourceMappingURL=audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../src/value-objects/media/audio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,kFAAkF;AAClF,qBAAa,KAAM,SAAQ,KAAK;IAC9B,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK;CAG7C"}
@@ -0,0 +1,9 @@
1
+ import { Media } from './media.js';
2
+ /** An audio payload — a recording to transcribe, or speech that was generated. */
3
+ export class Audio extends Media {
4
+ kind = 'audio';
5
+ static fromObject(object) {
6
+ return Audio.restoreInto(new Audio(...Audio.constructorArgs(object)), object);
7
+ }
8
+ }
9
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../src/value-objects/media/audio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,kFAAkF;AAClF,MAAM,OAAO,KAAM,SAAQ,KAAK;IACrB,IAAI,GAAG,OAAgB,CAAC;IAEjC,MAAM,CAAC,UAAU,CAAC,MAAkB;QAClC,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -0,0 +1,44 @@
1
+ import type { JsonObject } from '../../json.js';
2
+ import { Media } from './media.js';
3
+ /**
4
+ * A document — a PDF, a text file, or text supplied directly as chunks.
5
+ *
6
+ * Two things a plain `Media` does not have, both because every provider that
7
+ * accepts a document asks for them:
8
+ *
9
+ * - a TITLE, sent as `document_name` by Mistral, `filename` by OpenAI and
10
+ * `title` by Anthropic;
11
+ * - CHUNKS, pre-split text sent as a `content` source. Anthropic is the only
12
+ * provider here that takes them.
13
+ *
14
+ * ONE DELIBERATE DIVERGENCE FROM THE REFERENCE. The reference threads the title
15
+ * through every factory as the SECOND positional argument — `Document::fromUrl(
16
+ * $url, $title)` — where the same position on the `Media` base means the mime
17
+ * type. So `Document::fromUrl($url, 'application/pdf')` silently sets the title
18
+ * to "application/pdf" and leaves the mime type unset. Inheriting that here
19
+ * would be inheriting a trap the type system cannot see, since both are
20
+ * `string`. The factories keep their base meaning and the title is set by
21
+ * {@link titled}, which cannot be confused with anything.
22
+ */
23
+ export declare class Document extends Media {
24
+ #private;
25
+ readonly kind: "document";
26
+ /**
27
+ * A document supplied as pre-split text.
28
+ *
29
+ * Carries no bytes and no mime type — the chunks ARE the document. Only
30
+ * Anthropic accepts this form; the other two mappers reject it by name rather
31
+ * than sending an empty payload.
32
+ */
33
+ static fromChunks(chunks: readonly string[], title?: string | null): Document;
34
+ /** Text as a document, rather than as part of the prompt. */
35
+ static fromText(text: string, title?: string | null): Document;
36
+ static fromObject(object: JsonObject): Document;
37
+ /** Name this document for the provider. Returns itself, so it chains onto a factory. */
38
+ titled(title: string): this;
39
+ documentTitle(): string | null;
40
+ chunks(): readonly string[] | null;
41
+ isChunks(): boolean;
42
+ toObject(): JsonObject;
43
+ }
44
+ //# sourceMappingURL=document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/value-objects/media/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,QAAS,SAAQ,KAAK;;IACjC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAMpC;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,GAAG,QAAQ;IAOnF,6DAA6D;IAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,GAAG,QAAQ;IAMpE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ;IAc/C,wFAAwF;IACxF,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM3B,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG,IAAI;IAIlC,QAAQ,IAAI,OAAO;IAIV,QAAQ,IAAI,UAAU;CAOhC"}
@@ -0,0 +1,75 @@
1
+ import { Media } from './media.js';
2
+ /**
3
+ * A document — a PDF, a text file, or text supplied directly as chunks.
4
+ *
5
+ * Two things a plain `Media` does not have, both because every provider that
6
+ * accepts a document asks for them:
7
+ *
8
+ * - a TITLE, sent as `document_name` by Mistral, `filename` by OpenAI and
9
+ * `title` by Anthropic;
10
+ * - CHUNKS, pre-split text sent as a `content` source. Anthropic is the only
11
+ * provider here that takes them.
12
+ *
13
+ * ONE DELIBERATE DIVERGENCE FROM THE REFERENCE. The reference threads the title
14
+ * through every factory as the SECOND positional argument — `Document::fromUrl(
15
+ * $url, $title)` — where the same position on the `Media` base means the mime
16
+ * type. So `Document::fromUrl($url, 'application/pdf')` silently sets the title
17
+ * to "application/pdf" and leaves the mime type unset. Inheriting that here
18
+ * would be inheriting a trap the type system cannot see, since both are
19
+ * `string`. The factories keep their base meaning and the title is set by
20
+ * {@link titled}, which cannot be confused with anything.
21
+ */
22
+ export class Document extends Media {
23
+ kind = 'document';
24
+ #documentTitle = null;
25
+ #chunks = null;
26
+ /**
27
+ * A document supplied as pre-split text.
28
+ *
29
+ * Carries no bytes and no mime type — the chunks ARE the document. Only
30
+ * Anthropic accepts this form; the other two mappers reject it by name rather
31
+ * than sending an empty payload.
32
+ */
33
+ static fromChunks(chunks, title = null) {
34
+ const document = new Document();
35
+ document.#chunks = [...chunks];
36
+ return title === null ? document : document.titled(title);
37
+ }
38
+ /** Text as a document, rather than as part of the prompt. */
39
+ static fromText(text, title = null) {
40
+ const document = Document.fromRawContent(new TextEncoder().encode(text), 'text/plain');
41
+ return title === null ? document : document.titled(title);
42
+ }
43
+ static fromObject(object) {
44
+ const document = Document.restoreInto(new Document(...Document.constructorArgs(object)), object);
45
+ if (typeof object.document_title === 'string') {
46
+ document.titled(object.document_title);
47
+ }
48
+ if (Array.isArray(object.chunks)) {
49
+ document.#chunks = object.chunks.filter((chunk) => typeof chunk === 'string');
50
+ }
51
+ return document;
52
+ }
53
+ /** Name this document for the provider. Returns itself, so it chains onto a factory. */
54
+ titled(title) {
55
+ this.#documentTitle = title;
56
+ return this;
57
+ }
58
+ documentTitle() {
59
+ return this.#documentTitle;
60
+ }
61
+ chunks() {
62
+ return this.#chunks;
63
+ }
64
+ isChunks() {
65
+ return this.#chunks !== null;
66
+ }
67
+ toObject() {
68
+ return {
69
+ ...super.toObject(),
70
+ document_title: this.#documentTitle,
71
+ chunks: this.#chunks === null ? null : [...this.#chunks],
72
+ };
73
+ }
74
+ }
75
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/value-objects/media/document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,GAAG,UAAmB,CAAC;IAEpC,cAAc,GAAkB,IAAI,CAAC;IAErC,OAAO,GAA6B,IAAI,CAAC;IAEzC;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAyB,EAAE,QAAuB,IAAI;QACtE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAE/B,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAuB,IAAI;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;QAEvF,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAkB;QAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEjG,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC9C,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;QACjG,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wFAAwF;IACxF,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IAC/B,CAAC;IAEQ,QAAQ;QACf,OAAO;YACL,GAAG,KAAK,CAAC,QAAQ,EAAE;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;SACzD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { JsonObject } from '../../json.js';
2
+ import { Media } from './media.js';
3
+ /**
4
+ * An image.
5
+ *
6
+ * Adds nothing to `Media` but a name, deliberately: an image and an audio file
7
+ * differ in what a provider does with them, not in what they are.
8
+ */
9
+ export declare class Image extends Media {
10
+ readonly kind: "image";
11
+ static fromObject(object: JsonObject): Image;
12
+ }
13
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/value-objects/media/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,KAAK;IAC9B,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK;CAG7C"}
@@ -0,0 +1,14 @@
1
+ import { Media } from './media.js';
2
+ /**
3
+ * An image.
4
+ *
5
+ * Adds nothing to `Media` but a name, deliberately: an image and an audio file
6
+ * differ in what a provider does with them, not in what they are.
7
+ */
8
+ export class Image extends Media {
9
+ kind = 'image';
10
+ static fromObject(object) {
11
+ return Image.restoreInto(new Image(...Image.constructorArgs(object)), object);
12
+ }
13
+ }
14
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/value-objects/media/image.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,KAAM,SAAQ,KAAK;IACrB,IAAI,GAAG,OAAgB,CAAC;IAEjC,MAAM,CAAC,UAAU,CAAC,MAAkB;QAClC,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -0,0 +1,119 @@
1
+ import type { JsonObject } from '../../json.js';
2
+ /** The kinds of payload a message part can be, minus text. */
3
+ export type MediaKind = 'image' | 'audio' | 'document' | 'video';
4
+ /**
5
+ * A binary payload, however it was given to us.
6
+ *
7
+ * One type behind five ways of naming the same bytes — a url, a base64 string,
8
+ * a local file, raw content, or a provider-side file id. Subclasses add nothing
9
+ * but a name; `Image` and `Audio` differ in what a provider does with them, not
10
+ * in what they are.
11
+ *
12
+ * The alternative was three standalone classes each restating url / base64 /
13
+ * mimeType, which is how a package ends up with three subtly different answers
14
+ * to "is this a file". `GeneratedImage` was the first of those and is now
15
+ * `Image`'s sibling under this base.
16
+ *
17
+ * TWO DELIBERATE DIVERGENCES FROM THE REFERENCE, both recorded in the port gaps
18
+ * register:
19
+ *
20
+ * - `fromStoragePath` is absent. It resolves through Laravel's filesystem, and
21
+ * there is no equivalent here to resolve through.
22
+ * - A url is NEVER fetched implicitly. The reference reads url content on
23
+ * demand inside `rawContent()`, so touching a property performs an outbound
24
+ * request; here `fetch()` is explicit and separate. A value object that
25
+ * reaches the network when you read it turns a stored locator into a request
26
+ * at replay time, which is the exact hazard prism-harness documents about
27
+ * replaying threads.
28
+ */
29
+ export declare abstract class Media {
30
+ #private;
31
+ readonly url: string | null;
32
+ /**
33
+ * The discriminator in the serialized form, under the key `kind`.
34
+ *
35
+ * NOT `type`. `GeneratedAudio` already serializes `type` as the provider's
36
+ * own format name (`mp3`, `wav`), so a discriminator spelled `type` would be
37
+ * overwritten by it on exactly one subclass — the kind of collision that
38
+ * round-trips fine in every test that does not happen to use that class.
39
+ *
40
+ * A subclass of a subclass keeps its parent's kind: `GeneratedImage` is an
41
+ * `image`, and reading one back as `Image` loses only the revised prompt,
42
+ * which is not something a user message carries.
43
+ */
44
+ abstract readonly kind: MediaKind;
45
+ constructor(url?: string | null, base64?: string | null, mimeType?: string | null);
46
+ static fromFileId<T extends Media>(this: new () => T, fileId: string): T;
47
+ static fromUrl<T extends Media>(this: new (url?: string | null) => T, url: string, mimeType?: string | null): T;
48
+ static fromBase64<T extends Media>(this: new (url?: string | null, base64?: string | null, mimeType?: string | null) => T, base64: string, mimeType?: string | null): T;
49
+ static fromRawContent<T extends Media>(this: new () => T, content: Uint8Array, mimeType?: string | null): T;
50
+ /**
51
+ * Read a file from disk.
52
+ *
53
+ * Refuses an EMPTY file, matching the reference. A zero-byte upload is almost
54
+ * always a mistake upstream, and a provider's error for it is far less useful
55
+ * than one naming the path.
56
+ */
57
+ static fromLocalPath<T extends Media>(this: new () => T, path: string, mimeType?: string | null): T;
58
+ /** Alias, matching the reference's spelling. */
59
+ static fromPath<T extends Media>(this: new () => T, path: string): T;
60
+ /** Name this payload for a provider that wants a filename. */
61
+ as(name: string): this;
62
+ filename(): string | null;
63
+ fileId(): string | null;
64
+ localPath(): string | null;
65
+ isFileId(): boolean;
66
+ isFile(): boolean;
67
+ isUrl(): boolean;
68
+ hasBase64(): boolean;
69
+ hasMimeType(): boolean;
70
+ hasRawContent(): boolean;
71
+ mimeType(): string | null;
72
+ rawContent(): Uint8Array | null;
73
+ /**
74
+ * The payload as base64, or null when only a url or file id is known.
75
+ *
76
+ * Computed once and kept, because encoding a large file on every access is a
77
+ * cost a caller cannot see.
78
+ */
79
+ base64(): string | null;
80
+ /**
81
+ * Fetch a url's bytes into this payload. EXPLICIT, never automatic.
82
+ *
83
+ * Separate from `rawContent()` so that reading a property never performs an
84
+ * outbound request — a stored locator becoming a request the moment something
85
+ * replays it is the hazard, not the fetch itself.
86
+ */
87
+ fetch(): Promise<this>;
88
+ /**
89
+ * The serialized form.
90
+ *
91
+ * `base64()`, not the base64 FIELD: a payload built from raw content or from
92
+ * a local file has bytes and an empty `#base64` until something asks for it,
93
+ * so reading the field would serialize a full image as `base64: null` and the
94
+ * round trip would silently return an empty one. Encoding here costs one pass
95
+ * over bytes the caller has already decided to persist.
96
+ */
97
+ toObject(): JsonObject;
98
+ /**
99
+ * Put a serialized payload's fields back on a fresh instance.
100
+ *
101
+ * Protected and static so each subclass's own `fromObject` can call it
102
+ * without every one of them restating the five keys — and without the
103
+ * setters becoming public, which would make a value object mutable from
104
+ * anywhere for the sake of one code path.
105
+ *
106
+ * The local path is NOT restored: it names a file on the machine that
107
+ * serialized this, and a path that resolves to a different file elsewhere is
108
+ * worse than no path at all. The bytes travel as base64 instead.
109
+ */
110
+ protected static restoreInto<T extends Media>(media: T, object: JsonObject): T;
111
+ /** The url, base64 and mime type a serialized payload carries, as constructor arguments. */
112
+ protected static constructorArgs(object: JsonObject): [string | null, string | null, string | null];
113
+ protected setRawContent(content: Uint8Array, mimeType: string | null): void;
114
+ protected setMimeType(mimeType: string): void;
115
+ protected setLocalPath(path: string): void;
116
+ protected setFileId(fileId: string): void;
117
+ }
118
+ export declare function guessMimeType(path: string): string | null;
119
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/value-objects/media/media.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,8DAA8D;AAC9D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,8BAAsB,KAAK;;IA4BvB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA3B7B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAevB,GAAG,GAAE,MAAM,GAAG,IAAW,EAClC,MAAM,GAAE,MAAM,GAAG,IAAW,EAC5B,QAAQ,GAAE,MAAM,GAAG,IAAW;IAMhC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;IAOxE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,GAAG,CAAC;IAUrH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,KAAK,EAC/B,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,CAAC,EACtF,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,GAAG,IAAW,GAC7B,CAAC;IAIJ,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,GAAG,CAAC;IAOjH;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,GAAG,CAAC;IAqBzG,gDAAgD;IAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAIpE,8DAA8D;IAC9D,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMtB,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,MAAM,IAAI,MAAM,GAAG,IAAI;IAIvB,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,QAAQ,IAAI,OAAO;IAInB,MAAM,IAAI,OAAO;IAIjB,KAAK,IAAI,OAAO;IAIhB,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,OAAO;IAIxB,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,UAAU,IAAI,UAAU,GAAG,IAAI;IAkB/B;;;;;OAKG;IACH,MAAM,IAAI,MAAM,GAAG,IAAI;IAcvB;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B;;;;;;;;OAQG;IACH,QAAQ,IAAI,UAAU;IAWtB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,CAAC;IAY9E,4FAA4F;IAC5F,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAQnG,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQ3E,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI7C,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1C,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAG1C;AA6BD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzD"}