@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,96 @@
1
+ import { PrismError } from '../errors.js';
2
+ import { resolveProvider } from '../providers/registry.js';
3
+ import { DeleteFileRequest, DownloadFileRequest, GetFileMetadataRequest, ListFilesRequest, UploadFileRequest, } from './request.js';
4
+ /**
5
+ * The builder for provider-side file storage.
6
+ *
7
+ * FIVE terminals rather than one, because these are five different operations
8
+ * on a store, not five renderings of one request. `using()` is the only thing
9
+ * they share — there is no model, no prompt, and nothing to accumulate between
10
+ * calls, so the builder is thin by nature rather than by omission.
11
+ */
12
+ export class FilesPendingRequest {
13
+ #provider = null;
14
+ #providerKey = '';
15
+ #providerOptions = {};
16
+ #clientOptions = {};
17
+ using(provider, providerConfig = {}) {
18
+ this.#providerKey = provider;
19
+ this.#provider = resolveProvider(provider, providerConfig);
20
+ return this;
21
+ }
22
+ withProviderOptions(options = {}) {
23
+ this.#providerOptions = { ...options };
24
+ return this;
25
+ }
26
+ withClientOptions(options) {
27
+ this.#clientOptions = { ...options };
28
+ return this;
29
+ }
30
+ provider() {
31
+ if (this.#provider === null) {
32
+ throw PrismError.unsupportedProviderAction('Sending a request', 'a pending request with no provider — call using() first');
33
+ }
34
+ return this.#provider;
35
+ }
36
+ async upload(content, filename, mimeType = null) {
37
+ return this.provider().uploadFile(this.toUploadRequest(content, filename, mimeType));
38
+ }
39
+ async list(limit = null, afterId = null, beforeId = null) {
40
+ return this.provider().listFiles(this.toListRequest(limit, afterId, beforeId));
41
+ }
42
+ async getMetadata(fileId) {
43
+ return this.provider().getFileMetadata(this.toGetMetadataRequest(fileId));
44
+ }
45
+ async delete(fileId) {
46
+ return this.provider().deleteFile(this.toDeleteRequest(fileId));
47
+ }
48
+ /**
49
+ * The file's bytes.
50
+ *
51
+ * The reference returns a PHP string, which is a byte array. `Uint8Array`
52
+ * here for the same reason `UploadFileRequest.content` takes one: decoding a
53
+ * PDF as UTF-16 to hand back a JavaScript string corrupts it, and the caller
54
+ * has no way to tell.
55
+ */
56
+ async download(fileId) {
57
+ return this.provider().downloadFile(this.toDownloadRequest(fileId));
58
+ }
59
+ toUploadRequest(content, filename, mimeType = null) {
60
+ return new UploadFileRequest({
61
+ providerKey: this.#providerKey,
62
+ filename,
63
+ content,
64
+ mimeType,
65
+ clientOptions: this.#clientOptions,
66
+ providerOptions: this.#providerOptions,
67
+ });
68
+ }
69
+ toListRequest(limit = null, afterId = null, beforeId = null) {
70
+ return new ListFilesRequest({
71
+ providerKey: this.#providerKey,
72
+ limit,
73
+ afterId,
74
+ beforeId,
75
+ clientOptions: this.#clientOptions,
76
+ providerOptions: this.#providerOptions,
77
+ });
78
+ }
79
+ toGetMetadataRequest(fileId) {
80
+ return new GetFileMetadataRequest({ ...this.#base(), fileId });
81
+ }
82
+ toDeleteRequest(fileId) {
83
+ return new DeleteFileRequest({ ...this.#base(), fileId });
84
+ }
85
+ toDownloadRequest(fileId) {
86
+ return new DownloadFileRequest({ ...this.#base(), fileId });
87
+ }
88
+ #base() {
89
+ return {
90
+ providerKey: this.#providerKey,
91
+ clientOptions: this.#clientOptions,
92
+ providerOptions: this.#providerOptions,
93
+ };
94
+ }
95
+ }
96
+ //# sourceMappingURL=pending-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-request.js","sourceRoot":"","sources":["../../src/files/pending-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAmB;IAC9B,SAAS,GAAoB,IAAI,CAAC;IAElC,YAAY,GAAG,EAAE,CAAC;IAElB,gBAAgB,GAAe,EAAE,CAAC;IAElC,cAAc,GAA4B,EAAE,CAAC;IAE7C,KAAK,CAAC,QAAgB,EAAE,iBAA0C,EAAE;QAClE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,UAAgC,EAAE;QACpD,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAEvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,OAAgC;QAChD,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAErC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,UAAU,CAAC,yBAAyB,CACxC,mBAAmB,EACnB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAmB,EAAE,QAAgB,EAAE,WAA0B,IAAI;QAChF,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,IAAI,CACR,QAAuB,IAAI,EAC3B,UAAyB,IAAI,EAC7B,WAA0B,IAAI;QAE9B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,eAAe,CAAC,OAAmB,EAAE,QAAgB,EAAE,WAA0B,IAAI;QACnF,OAAO,IAAI,iBAAiB,CAAC;YAC3B,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,eAAe,EAAE,IAAI,CAAC,gBAAgB;SACvC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,QAAuB,IAAI,EAC3B,UAAyB,IAAI,EAC7B,WAA0B,IAAI;QAE9B,OAAO,IAAI,gBAAgB,CAAC;YAC1B,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,KAAK;YACL,OAAO;YACP,QAAQ;YACR,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,eAAe,EAAE,IAAI,CAAC,gBAAgB;SACvC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,MAAc;QACjC,OAAO,IAAI,sBAAsB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,OAAO,IAAI,iBAAiB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK;QACH,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,eAAe,EAAE,IAAI,CAAC,gBAAgB;SACvC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,77 @@
1
+ import type { JsonObject, JsonValue } from '../json.js';
2
+ interface BaseOptions {
3
+ providerKey: string;
4
+ clientOptions?: Readonly<Record<string, unknown>>;
5
+ providerOptions?: Readonly<JsonObject>;
6
+ }
7
+ /**
8
+ * What every file request carries.
9
+ *
10
+ * No `model`, unlike every other capability: a file is not generated by one and
11
+ * the endpoints take none. Carrying the field anyway would invite a caller to
12
+ * set it and expect it to matter.
13
+ */
14
+ declare abstract class FileRequestBase {
15
+ #private;
16
+ constructor(options: BaseOptions);
17
+ providerKey(): string;
18
+ clientOptions(): Readonly<Record<string, unknown>>;
19
+ providerOptions(): JsonObject;
20
+ providerOptions(path: string): JsonValue | undefined;
21
+ }
22
+ export interface UploadFileRequestOptions extends BaseOptions {
23
+ filename: string;
24
+ content: Uint8Array;
25
+ mimeType?: string | null;
26
+ }
27
+ export declare class UploadFileRequest extends FileRequestBase {
28
+ readonly filename: string;
29
+ /**
30
+ * BYTES, where the reference takes a PHP string.
31
+ *
32
+ * A PHP string is a byte array; a JavaScript one is UTF-16 text, and passing
33
+ * a PDF through it corrupts the file silently. The types diverge because the
34
+ * languages do.
35
+ */
36
+ readonly content: Uint8Array;
37
+ readonly mimeType: string | null;
38
+ constructor(options: UploadFileRequestOptions);
39
+ }
40
+ export interface ListFilesRequestOptions extends BaseOptions {
41
+ limit?: number | null;
42
+ afterId?: string | null;
43
+ beforeId?: string | null;
44
+ }
45
+ export declare class ListFilesRequest extends FileRequestBase {
46
+ readonly limit: number | null;
47
+ readonly afterId: string | null;
48
+ /**
49
+ * Carried, and NOT sent to OpenAI, because OpenAI's files endpoint has no
50
+ * `before` parameter — only `after`. Kept on the request because the
51
+ * reference has it and a provider that paginates both ways can read it;
52
+ * dropping it silently in the mapper is where it belongs, not here.
53
+ */
54
+ readonly beforeId: string | null;
55
+ constructor(options: ListFilesRequestOptions);
56
+ }
57
+ export interface FileIdRequestOptions extends BaseOptions {
58
+ fileId: string;
59
+ }
60
+ /**
61
+ * The three requests that are nothing but an id.
62
+ *
63
+ * One class behind three names rather than three identical ones — they differ
64
+ * in which method takes them, not in what they hold.
65
+ */
66
+ declare class FileIdRequest extends FileRequestBase {
67
+ readonly fileId: string;
68
+ constructor(options: FileIdRequestOptions);
69
+ }
70
+ export declare class GetFileMetadataRequest extends FileIdRequest {
71
+ }
72
+ export declare class DeleteFileRequest extends FileIdRequest {
73
+ }
74
+ export declare class DownloadFileRequest extends FileIdRequest {
75
+ }
76
+ export {};
77
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/files/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;CACxC;AAED;;;;;;GAMG;AACH,uBAAe,eAAe;;gBAOhB,OAAO,EAAE,WAAW;IAMhC,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIlD,eAAe,IAAI,UAAU;IAC7B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;CAIrD;AAED,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAE7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;gBAErB,OAAO,EAAE,wBAAwB;CAM9C;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;gBAErB,OAAO,EAAE,uBAAuB;CAM7C;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,cAAM,aAAc,SAAQ,eAAe;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,oBAAoB;CAI1C;AAED,qBAAa,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,qBAAa,iBAAkB,SAAQ,aAAa;CAAG;AAEvD,qBAAa,mBAAoB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * What every file request carries.
3
+ *
4
+ * No `model`, unlike every other capability: a file is not generated by one and
5
+ * the endpoints take none. Carrying the field anyway would invite a caller to
6
+ * set it and expect it to matter.
7
+ */
8
+ class FileRequestBase {
9
+ #providerKey;
10
+ #clientOptions;
11
+ #providerOptions;
12
+ constructor(options) {
13
+ this.#providerKey = options.providerKey;
14
+ this.#clientOptions = options.clientOptions ?? {};
15
+ this.#providerOptions = { ...(options.providerOptions ?? {}) };
16
+ }
17
+ providerKey() {
18
+ return this.#providerKey;
19
+ }
20
+ clientOptions() {
21
+ return this.#clientOptions;
22
+ }
23
+ providerOptions(path) {
24
+ return path === undefined ? this.#providerOptions : this.#providerOptions[path];
25
+ }
26
+ }
27
+ export class UploadFileRequest extends FileRequestBase {
28
+ filename;
29
+ /**
30
+ * BYTES, where the reference takes a PHP string.
31
+ *
32
+ * A PHP string is a byte array; a JavaScript one is UTF-16 text, and passing
33
+ * a PDF through it corrupts the file silently. The types diverge because the
34
+ * languages do.
35
+ */
36
+ content;
37
+ mimeType;
38
+ constructor(options) {
39
+ super(options);
40
+ this.filename = options.filename;
41
+ this.content = options.content;
42
+ this.mimeType = options.mimeType ?? null;
43
+ }
44
+ }
45
+ export class ListFilesRequest extends FileRequestBase {
46
+ limit;
47
+ afterId;
48
+ /**
49
+ * Carried, and NOT sent to OpenAI, because OpenAI's files endpoint has no
50
+ * `before` parameter — only `after`. Kept on the request because the
51
+ * reference has it and a provider that paginates both ways can read it;
52
+ * dropping it silently in the mapper is where it belongs, not here.
53
+ */
54
+ beforeId;
55
+ constructor(options) {
56
+ super(options);
57
+ this.limit = options.limit ?? null;
58
+ this.afterId = options.afterId ?? null;
59
+ this.beforeId = options.beforeId ?? null;
60
+ }
61
+ }
62
+ /**
63
+ * The three requests that are nothing but an id.
64
+ *
65
+ * One class behind three names rather than three identical ones — they differ
66
+ * in which method takes them, not in what they hold.
67
+ */
68
+ class FileIdRequest extends FileRequestBase {
69
+ fileId;
70
+ constructor(options) {
71
+ super(options);
72
+ this.fileId = options.fileId;
73
+ }
74
+ }
75
+ export class GetFileMetadataRequest extends FileIdRequest {
76
+ }
77
+ export class DeleteFileRequest extends FileIdRequest {
78
+ }
79
+ export class DownloadFileRequest extends FileIdRequest {
80
+ }
81
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/files/request.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAe,eAAe;IACnB,YAAY,CAAS;IAErB,cAAc,CAAoC;IAElD,gBAAgB,CAAa;IAEtC,YAAY,OAAoB;QAC9B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAID,eAAe,CAAC,IAAa;QAC3B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC;CACF;AAQD,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IAC3C,QAAQ,CAAS;IAE1B;;;;;;OAMG;IACM,OAAO,CAAa;IAEpB,QAAQ,CAAgB;IAEjC,YAAY,OAAiC;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC3C,CAAC;CACF;AAQD,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IAC1C,KAAK,CAAgB;IAErB,OAAO,CAAgB;IAEhC;;;;;OAKG;IACM,QAAQ,CAAgB;IAEjC,YAAY,OAAgC;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC3C,CAAC;CACF;AAMD;;;;;GAKG;AACH,MAAM,aAAc,SAAQ,eAAe;IAChC,MAAM,CAAS;IAExB,YAAY,OAA6B;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,MAAM,OAAO,iBAAkB,SAAQ,aAAa;CAAG;AAEvD,MAAM,OAAO,mBAAoB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,31 @@
1
+ import type { JsonObject } from '../json.js';
2
+ import type { Provider } from '../providers/provider.js';
3
+ import { FimRequest } from './request.js';
4
+ import type { FimResponse } from './response.js';
5
+ /**
6
+ * The builder for fill-in-the-middle.
7
+ *
8
+ * Deliberately NOT a subclass of the text builder, for the same reason
9
+ * `embeddings` is not: a FIM request has no messages, no tools and no step
10
+ * budget, and inheriting those would advertise controls that do nothing. What
11
+ * it does have that no other builder does is a SUFFIX.
12
+ */
13
+ export declare class FimPendingRequest {
14
+ #private;
15
+ using(provider: string, model?: string, providerConfig?: Record<string, unknown>): this;
16
+ /** The text BEFORE the gap. REPLACES; a FIM call has one prompt. */
17
+ withPrompt(prompt: string): this;
18
+ /** The text AFTER the gap. Omit it and the model completes to the end. */
19
+ withSuffix(suffix: string | null): this;
20
+ withMaxTokens(maxTokens: number): this;
21
+ withTemperature(temperature: number): this;
22
+ withTopP(topP: number): this;
23
+ /** A single stop string or several. A string is wrapped, matching the reference. */
24
+ withStop(stop: string | readonly string[]): this;
25
+ withProviderOptions(options?: Readonly<JsonObject>): this;
26
+ withClientOptions(options: Record<string, unknown>): this;
27
+ provider(): Provider;
28
+ asText(): Promise<FimResponse>;
29
+ toRequest(): FimRequest;
30
+ }
31
+ //# sourceMappingURL=pending-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-request.d.ts","sourceRoot":"","sources":["../../src/fim/pending-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;;;GAOG;AACH,qBAAa,iBAAiB;;IAuB5B,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI;IAQvF,oEAAoE;IACpE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC,0EAA0E;IAC1E,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMvC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMtC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAM1C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM5B,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI;IAMhD,mBAAmB,CAAC,OAAO,GAAE,QAAQ,CAAC,UAAU,CAAM,GAAG,IAAI;IAM7D,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMzD,QAAQ,IAAI,QAAQ;IAWd,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAIpC,SAAS,IAAI,UAAU;CAcxB"}
@@ -0,0 +1,89 @@
1
+ import { PrismError } from '../errors.js';
2
+ import { resolveProvider } from '../providers/registry.js';
3
+ import { FimRequest } from './request.js';
4
+ /**
5
+ * The builder for fill-in-the-middle.
6
+ *
7
+ * Deliberately NOT a subclass of the text builder, for the same reason
8
+ * `embeddings` is not: a FIM request has no messages, no tools and no step
9
+ * budget, and inheriting those would advertise controls that do nothing. What
10
+ * it does have that no other builder does is a SUFFIX.
11
+ */
12
+ export class FimPendingRequest {
13
+ #provider = null;
14
+ #providerKey = '';
15
+ #model = '';
16
+ #prompt = '';
17
+ #suffix = null;
18
+ #maxTokens = null;
19
+ #temperature = null;
20
+ #topP = null;
21
+ #stop = [];
22
+ #providerOptions = {};
23
+ #clientOptions = {};
24
+ using(provider, model = '', providerConfig = {}) {
25
+ this.#providerKey = provider;
26
+ this.#model = model;
27
+ this.#provider = resolveProvider(provider, providerConfig);
28
+ return this;
29
+ }
30
+ /** The text BEFORE the gap. REPLACES; a FIM call has one prompt. */
31
+ withPrompt(prompt) {
32
+ this.#prompt = prompt;
33
+ return this;
34
+ }
35
+ /** The text AFTER the gap. Omit it and the model completes to the end. */
36
+ withSuffix(suffix) {
37
+ this.#suffix = suffix;
38
+ return this;
39
+ }
40
+ withMaxTokens(maxTokens) {
41
+ this.#maxTokens = maxTokens;
42
+ return this;
43
+ }
44
+ withTemperature(temperature) {
45
+ this.#temperature = temperature;
46
+ return this;
47
+ }
48
+ withTopP(topP) {
49
+ this.#topP = topP;
50
+ return this;
51
+ }
52
+ /** A single stop string or several. A string is wrapped, matching the reference. */
53
+ withStop(stop) {
54
+ this.#stop = typeof stop === 'string' ? [stop] : [...stop];
55
+ return this;
56
+ }
57
+ withProviderOptions(options = {}) {
58
+ this.#providerOptions = { ...options };
59
+ return this;
60
+ }
61
+ withClientOptions(options) {
62
+ this.#clientOptions = { ...options };
63
+ return this;
64
+ }
65
+ provider() {
66
+ if (this.#provider === null) {
67
+ throw PrismError.unsupportedProviderAction('Sending a request', 'a pending request with no provider — call using() first');
68
+ }
69
+ return this.#provider;
70
+ }
71
+ async asText() {
72
+ return this.provider().fim(this.toRequest());
73
+ }
74
+ toRequest() {
75
+ return new FimRequest({
76
+ model: this.#model,
77
+ providerKey: this.#providerKey,
78
+ prompt: this.#prompt,
79
+ suffix: this.#suffix,
80
+ maxTokens: this.#maxTokens,
81
+ temperature: this.#temperature,
82
+ topP: this.#topP,
83
+ stop: this.#stop,
84
+ clientOptions: this.#clientOptions,
85
+ providerOptions: this.#providerOptions,
86
+ });
87
+ }
88
+ }
89
+ //# sourceMappingURL=pending-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-request.js","sourceRoot":"","sources":["../../src/fim/pending-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { JsonObject, JsonValue } from '../json.js';
2
+ export interface FimRequestOptions {
3
+ model: string;
4
+ providerKey: string;
5
+ prompt: string;
6
+ suffix?: string | null;
7
+ maxTokens?: number | null;
8
+ temperature?: number | null;
9
+ topP?: number | null;
10
+ stop?: readonly string[];
11
+ clientOptions?: Readonly<Record<string, unknown>>;
12
+ providerOptions?: Readonly<JsonObject>;
13
+ }
14
+ /**
15
+ * A fill-in-the-middle request: a prefix, an optional suffix, and a gap.
16
+ *
17
+ * No messages and no tools, unlike every other generation request. FIM is a
18
+ * COMPLETION, not a conversation — the model is given code either side of a
19
+ * hole and writes what goes in it, which is why an editor is the natural caller
20
+ * and a chat transcript is not.
21
+ */
22
+ export declare class FimRequest {
23
+ #private;
24
+ constructor(options: FimRequestOptions);
25
+ model(): string;
26
+ providerKey(): string;
27
+ /** The text BEFORE the gap. */
28
+ prompt(): string;
29
+ /** The text AFTER the gap, or null when the model should complete to the end. */
30
+ suffix(): string | null;
31
+ maxTokens(): number | null;
32
+ temperature(): number | null;
33
+ topP(): number | null;
34
+ stop(): readonly string[];
35
+ clientOptions(): Readonly<Record<string, unknown>>;
36
+ providerOptions(): JsonObject;
37
+ providerOptions(path: string): JsonValue | undefined;
38
+ }
39
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/fim/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,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,SAAS,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,qBAAa,UAAU;;gBAqBT,OAAO,EAAE,iBAAiB;IAatC,KAAK,IAAI,MAAM;IAIf,WAAW,IAAI,MAAM;IAIrB,+BAA+B;IAC/B,MAAM,IAAI,MAAM;IAIhB,iFAAiF;IACjF,MAAM,IAAI,MAAM,GAAG,IAAI;IAIvB,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,IAAI,IAAI,MAAM,GAAG,IAAI;IAIrB,IAAI,IAAI,SAAS,MAAM,EAAE;IAIzB,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIlD,eAAe,IAAI,UAAU;IAC7B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;CAIrD"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * A fill-in-the-middle request: a prefix, an optional suffix, and a gap.
3
+ *
4
+ * No messages and no tools, unlike every other generation request. FIM is a
5
+ * COMPLETION, not a conversation — the model is given code either side of a
6
+ * hole and writes what goes in it, which is why an editor is the natural caller
7
+ * and a chat transcript is not.
8
+ */
9
+ export class FimRequest {
10
+ #model;
11
+ #providerKey;
12
+ #prompt;
13
+ #suffix;
14
+ #maxTokens;
15
+ #temperature;
16
+ #topP;
17
+ #stop;
18
+ #clientOptions;
19
+ #providerOptions;
20
+ constructor(options) {
21
+ this.#model = options.model;
22
+ this.#providerKey = options.providerKey;
23
+ this.#prompt = options.prompt;
24
+ this.#suffix = options.suffix ?? null;
25
+ this.#maxTokens = options.maxTokens ?? null;
26
+ this.#temperature = options.temperature ?? null;
27
+ this.#topP = options.topP ?? null;
28
+ this.#stop = options.stop ?? [];
29
+ this.#clientOptions = options.clientOptions ?? {};
30
+ this.#providerOptions = { ...(options.providerOptions ?? {}) };
31
+ }
32
+ model() {
33
+ return this.#model;
34
+ }
35
+ providerKey() {
36
+ return this.#providerKey;
37
+ }
38
+ /** The text BEFORE the gap. */
39
+ prompt() {
40
+ return this.#prompt;
41
+ }
42
+ /** The text AFTER the gap, or null when the model should complete to the end. */
43
+ suffix() {
44
+ return this.#suffix;
45
+ }
46
+ maxTokens() {
47
+ return this.#maxTokens;
48
+ }
49
+ temperature() {
50
+ return this.#temperature;
51
+ }
52
+ topP() {
53
+ return this.#topP;
54
+ }
55
+ stop() {
56
+ return this.#stop;
57
+ }
58
+ clientOptions() {
59
+ return this.#clientOptions;
60
+ }
61
+ providerOptions(path) {
62
+ return path === undefined ? this.#providerOptions : this.#providerOptions[path];
63
+ }
64
+ }
65
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/fim/request.ts"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IACZ,MAAM,CAAS;IAEf,YAAY,CAAS;IAErB,OAAO,CAAS;IAEhB,OAAO,CAAgB;IAEvB,UAAU,CAAgB;IAE1B,YAAY,CAAgB;IAE5B,KAAK,CAAgB;IAErB,KAAK,CAAoB;IAEzB,cAAc,CAAoC;IAElD,gBAAgB,CAAa;IAEtC,YAAY,OAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,+BAA+B;IAC/B,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,iFAAiF;IACjF,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAID,eAAe,CAAC,IAAa;QAC3B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC;CACF"}
@@ -0,0 +1,21 @@
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
+ /**
6
+ * What the model wrote into the gap.
7
+ *
8
+ * Flat, with no `steps` and no `messages`, unlike `TextResponse`. A FIM call is
9
+ * one round trip that cannot call a tool, so there is nothing to accumulate and
10
+ * modelling it with a step list would advertise a loop that does not exist.
11
+ */
12
+ export declare class FimResponse {
13
+ readonly text: string;
14
+ readonly finishReason: FinishReason;
15
+ readonly usage: Usage;
16
+ readonly meta: Meta;
17
+ readonly raw: JsonObject | null;
18
+ constructor(text: string, finishReason: FinishReason, usage: Usage, meta: Meta, raw?: JsonObject | null);
19
+ toObject(): JsonObject;
20
+ }
21
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/fim/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;AAEvD;;;;;;GAMG;AACH,qBAAa,WAAW;IAEpB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,YAAY,EAAE,YAAY;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI;IACnB,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;gBAJtB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,GAAG,GAAE,UAAU,GAAG,IAAW;IAGxC,QAAQ,IAAI,UAAU;CAQvB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * What the model wrote into the gap.
3
+ *
4
+ * Flat, with no `steps` and no `messages`, unlike `TextResponse`. A FIM call is
5
+ * one round trip that cannot call a tool, so there is nothing to accumulate and
6
+ * modelling it with a step list would advertise a loop that does not exist.
7
+ */
8
+ export class FimResponse {
9
+ text;
10
+ finishReason;
11
+ usage;
12
+ meta;
13
+ raw;
14
+ constructor(text, finishReason, usage, meta, raw = null) {
15
+ this.text = text;
16
+ this.finishReason = finishReason;
17
+ this.usage = usage;
18
+ this.meta = meta;
19
+ this.raw = raw;
20
+ }
21
+ toObject() {
22
+ return {
23
+ text: this.text,
24
+ finish_reason: this.finishReason,
25
+ usage: this.usage.toObject(),
26
+ meta: this.meta.toObject(),
27
+ };
28
+ }
29
+ }
30
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/fim/response.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IAEX;IACA;IACA;IACA;IACA;IALX,YACW,IAAY,EACZ,YAA0B,EAC1B,KAAY,EACZ,IAAU,EACV,MAAyB,IAAI;QAJ7B,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAO;QACZ,SAAI,GAAJ,IAAI,CAAM;QACV,QAAG,GAAH,GAAG,CAA0B;IACrC,CAAC;IAEJ,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;SAC3B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Comparing an HTTP field name the way HTTP defines it: without regard to case.
3
+ *
4
+ * Field names are case-insensitive (RFC 9110 §5.1), and a gateway that
5
+ * title-cases them is ordinary rather than hostile. Every rate-limit reader
6
+ * here looks its headers up as exact object keys, so a single such proxy in
7
+ * front of the provider made `parseRateLimits` return an EMPTY ARRAY — which is
8
+ * also exactly what a response that legitimately carried no quota headers looks
9
+ * like. The failure was therefore invisible when it happened and permanent
10
+ * afterwards.
11
+ *
12
+ * **The fold is deliberately ASCII-only, and that is the whole subtlety here.**
13
+ * `String.prototype.toLowerCase()` is Unicode-aware: `K` (U+212A KELVIN SIGN)
14
+ * folds to a plain `k`, so `anthropic-ratelimit-to<U+212A>ens-limit` would come
15
+ * back as a bucket named `tokens` — the name a caller matches on to decide
16
+ * whether it has token quota left, manufactured from a header the provider
17
+ * never sent. `İ` (U+0130) folds to TWO codepoints, changing the string's
18
+ * length under the offset arithmetic that splits a bucket from a field.
19
+ *
20
+ * An HTTP field name is a `token` — ASCII by grammar — so a codepoint range
21
+ * over the 26 ASCII letters is both the correct fold and the only one the
22
+ * sibling ports (`prism`, `prism-py`) can reproduce byte for byte.
23
+ */
24
+ /** One field name, folded to lower case as ASCII and nothing else. */
25
+ export declare function foldHeaderName(name: string): string;
26
+ /**
27
+ * A header map re-keyed by folded name, values untouched.
28
+ *
29
+ * Insertion order survives, because a reader that names its buckets in header
30
+ * order would otherwise hand a caller reading `rateLimits[0]` a different
31
+ * bucket — a divergence nothing errors on. Later duplicates win, which is the
32
+ * answer a case-insensitive lookup would give for a name a server spelled two
33
+ * ways in one response.
34
+ */
35
+ export declare function foldHeaderNames(headers: Readonly<Record<string, string>>): Record<string, string>;
36
+ //# sourceMappingURL=header-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-names.d.ts","sourceRoot":"","sources":["../../src/http/header-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB"}