@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,26 @@
1
+ import { isJsonObject } from '../../json.js';
2
+ import { ToolResult } from '../tool-result.js';
3
+ export class ToolResultMessage {
4
+ toolResults;
5
+ toolApprovalResponses;
6
+ type = 'tool_result';
7
+ constructor(toolResults = [],
8
+ /** Carried verbatim; see the note on `AssistantMessage.toolApprovalRequests`. */
9
+ toolApprovalResponses = []) {
10
+ this.toolResults = toolResults;
11
+ this.toolApprovalResponses = toolApprovalResponses;
12
+ }
13
+ toObject() {
14
+ return {
15
+ type: 'tool_result',
16
+ tool_results: this.toolResults.map((toolResult) => toolResult.toObject()),
17
+ tool_approval_responses: this.toolApprovalResponses.map((response) => ({ ...response })),
18
+ };
19
+ }
20
+ static fromObject(object) {
21
+ return new ToolResultMessage((Array.isArray(object.tool_results) ? object.tool_results : [])
22
+ .filter(isJsonObject)
23
+ .map((toolResult) => ToolResult.fromObject(toolResult)), (Array.isArray(object.tool_approval_responses) ? object.tool_approval_responses : []).filter(isJsonObject));
24
+ }
25
+ }
26
+ //# sourceMappingURL=tool-result-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-result-message.js","sourceRoot":"","sources":["../../../src/value-objects/messages/tool-result-message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,iBAAiB;IAIjB;IAEA;IALF,IAAI,GAAG,aAAsB,CAAC;IAEvC,YACW,cAAqC,EAAE;IAChD,iFAAiF;IACxE,wBAA+C,EAAE;QAFjD,gBAAW,GAAX,WAAW,CAA4B;QAEvC,0BAAqB,GAArB,qBAAqB,CAA4B;IACzD,CAAC;IAEJ,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzE,uBAAuB,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;SACzF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAkB;QAClC,OAAO,IAAI,iBAAiB,CAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D,MAAM,CAAC,YAAY,CAAC;aACpB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EACzD,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAC3G,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ import type { JsonObject } from '../../json.js';
2
+ import { Audio } from '../media/audio.js';
3
+ import { Document } from '../media/document.js';
4
+ import { Image } from '../media/image.js';
5
+ import { Media } from '../media/media.js';
6
+ import type { MessagePart } from '../media/part.js';
7
+ import { Video } from '../media/video.js';
8
+ export declare class UserMessage {
9
+ readonly type: "user";
10
+ readonly content: string;
11
+ /**
12
+ * Every part of this turn, with the turn's own `content` appended as a text
13
+ * part at the END — the reference does the same, and `text()` depends on it.
14
+ */
15
+ readonly additionalContent: readonly MessagePart[];
16
+ /**
17
+ * Attributes that are SPREAD at item level when the message is mapped, so
18
+ * they land as siblings of `role` and `content` rather than nested under a
19
+ * key of their own.
20
+ */
21
+ readonly additionalAttributes: Readonly<JsonObject>;
22
+ constructor(content: string, additionalContent?: readonly MessagePart[], additionalAttributes?: Readonly<JsonObject>);
23
+ /**
24
+ * The TEXT parts, concatenated.
25
+ *
26
+ * Filtered, not mapped over everything: once a turn can carry an image, a
27
+ * blind `.map(part => part.text)` would read `undefined` off it and put the
28
+ * string "undefined" in front of the model.
29
+ */
30
+ text(): string;
31
+ images(): Image[];
32
+ documents(): Document[];
33
+ audios(): Audio[];
34
+ videos(): Video[];
35
+ /**
36
+ * Every NON-TEXT part.
37
+ *
38
+ * Images and documents included. The reference's equivalent tests for
39
+ * `Audio || Video || Media` and the first two are redundant — both extend
40
+ * `Media` — so what it returns is every media part, and this returns the
41
+ * same. Worth saying out loud, because the name reads narrower than it is.
42
+ */
43
+ media(): Media[];
44
+ toObject(): JsonObject;
45
+ static fromObject(object: JsonObject): UserMessage;
46
+ }
47
+ //# sourceMappingURL=user-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-message.d.ts","sourceRoot":"","sources":["../../../src/value-objects/messages/user-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAEhC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,SAAS,WAAW,EAAE,CAAC;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAGlD,OAAO,EAAE,MAAM,EACf,iBAAiB,GAAE,SAAS,WAAW,EAAO,EAC9C,oBAAoB,GAAE,QAAQ,CAAC,UAAU,CAAM;IAOjD;;;;;;OAMG;IACH,IAAI,IAAI,MAAM;IAOd,MAAM,IAAI,KAAK,EAAE;IAIjB,SAAS,IAAI,QAAQ,EAAE;IAIvB,MAAM,IAAI,KAAK,EAAE;IAIjB,MAAM,IAAI,KAAK,EAAE;IAIjB;;;;;;;OAOG;IACH,KAAK,IAAI,KAAK,EAAE;IAIhB,QAAQ,IAAI,UAAU;IAStB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW;CAqBnD"}
@@ -0,0 +1,87 @@
1
+ import { isJsonObject } from '../../json.js';
2
+ import { Audio } from '../media/audio.js';
3
+ import { Document } from '../media/document.js';
4
+ import { Image } from '../media/image.js';
5
+ import { Media } from '../media/media.js';
6
+ import { partFromObject } from '../media/part.js';
7
+ import { Text } from '../media/text.js';
8
+ import { Video } from '../media/video.js';
9
+ export class UserMessage {
10
+ type = 'user';
11
+ content;
12
+ /**
13
+ * Every part of this turn, with the turn's own `content` appended as a text
14
+ * part at the END — the reference does the same, and `text()` depends on it.
15
+ */
16
+ additionalContent;
17
+ /**
18
+ * Attributes that are SPREAD at item level when the message is mapped, so
19
+ * they land as siblings of `role` and `content` rather than nested under a
20
+ * key of their own.
21
+ */
22
+ additionalAttributes;
23
+ constructor(content, additionalContent = [], additionalAttributes = {}) {
24
+ this.content = content;
25
+ this.additionalContent = [...additionalContent, new Text(content)];
26
+ this.additionalAttributes = { ...additionalAttributes };
27
+ }
28
+ /**
29
+ * The TEXT parts, concatenated.
30
+ *
31
+ * Filtered, not mapped over everything: once a turn can carry an image, a
32
+ * blind `.map(part => part.text)` would read `undefined` off it and put the
33
+ * string "undefined" in front of the model.
34
+ */
35
+ text() {
36
+ return this.additionalContent
37
+ .filter((part) => part instanceof Text)
38
+ .map((part) => part.text)
39
+ .join('');
40
+ }
41
+ images() {
42
+ return this.additionalContent.filter((part) => part instanceof Image);
43
+ }
44
+ documents() {
45
+ return this.additionalContent.filter((part) => part instanceof Document);
46
+ }
47
+ audios() {
48
+ return this.additionalContent.filter((part) => part instanceof Audio);
49
+ }
50
+ videos() {
51
+ return this.additionalContent.filter((part) => part instanceof Video);
52
+ }
53
+ /**
54
+ * Every NON-TEXT part.
55
+ *
56
+ * Images and documents included. The reference's equivalent tests for
57
+ * `Audio || Video || Media` and the first two are redundant — both extend
58
+ * `Media` — so what it returns is every media part, and this returns the
59
+ * same. Worth saying out loud, because the name reads narrower than it is.
60
+ */
61
+ media() {
62
+ return this.additionalContent.filter((part) => part instanceof Media);
63
+ }
64
+ toObject() {
65
+ return {
66
+ type: 'user',
67
+ content: this.content,
68
+ additional_content: this.additionalContent.map((part) => part.toObject()),
69
+ additional_attributes: { ...this.additionalAttributes },
70
+ };
71
+ }
72
+ static fromObject(object) {
73
+ const content = typeof object.content === 'string' ? object.content : '';
74
+ const parts = (Array.isArray(object.additional_content) ? object.additional_content : [])
75
+ .filter(isJsonObject)
76
+ .map(partFromObject);
77
+ // The constructor re-appends `Text(content)`, so the trailing part the
78
+ // serialized form carries has to come back off or every round trip would
79
+ // duplicate the turn's own text. Only a trailing TEXT part that actually
80
+ // MATCHES the content is dropped; anything else is a caller-supplied part
81
+ // and stays.
82
+ const last = parts.at(-1);
83
+ const supplied = last instanceof Text && last.text === content ? parts.slice(0, -1) : parts;
84
+ return new UserMessage(content, supplied, isJsonObject(object.additional_attributes) ? object.additional_attributes : {});
85
+ }
86
+ }
87
+ //# sourceMappingURL=user-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-message.js","sourceRoot":"","sources":["../../../src/value-objects/messages/user-message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { JsonObject } from '../json.js';
2
+ import { ProviderRateLimit } from './provider-rate-limit.js';
3
+ export declare class Meta {
4
+ readonly id: string;
5
+ readonly model: string;
6
+ readonly rateLimits: readonly ProviderRateLimit[];
7
+ readonly serviceTier: string | null;
8
+ constructor(id: string, model: string, rateLimits?: readonly ProviderRateLimit[], serviceTier?: string | null);
9
+ toObject(): JsonObject;
10
+ static fromObject(object: JsonObject): Meta;
11
+ }
12
+ //# sourceMappingURL=meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/value-objects/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,qBAAa,IAAI;IAEb,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;gBAH1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,SAAS,iBAAiB,EAAO,EAC7C,WAAW,GAAE,MAAM,GAAG,IAAW;IAG5C,QAAQ,IAAI,UAAU;IAStB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;CAU5C"}
@@ -0,0 +1,28 @@
1
+ import { isJsonObject } from '../json.js';
2
+ import { ProviderRateLimit } from './provider-rate-limit.js';
3
+ export class Meta {
4
+ id;
5
+ model;
6
+ rateLimits;
7
+ serviceTier;
8
+ constructor(id, model, rateLimits = [], serviceTier = null) {
9
+ this.id = id;
10
+ this.model = model;
11
+ this.rateLimits = rateLimits;
12
+ this.serviceTier = serviceTier;
13
+ }
14
+ toObject() {
15
+ return {
16
+ id: this.id,
17
+ model: this.model,
18
+ rate_limits: this.rateLimits.map((rateLimit) => rateLimit.toObject()),
19
+ service_tier: this.serviceTier,
20
+ };
21
+ }
22
+ static fromObject(object) {
23
+ return new Meta(typeof object.id === 'string' ? object.id : '', typeof object.model === 'string' ? object.model : '', (Array.isArray(object.rate_limits) ? object.rate_limits : [])
24
+ .filter(isJsonObject)
25
+ .map((rateLimit) => ProviderRateLimit.fromObject(rateLimit)), typeof object.service_tier === 'string' ? object.service_tier : null);
26
+ }
27
+ }
28
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/value-objects/meta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,OAAO,IAAI;IAEJ;IACA;IACA;IACA;IAJX,YACW,EAAU,EACV,KAAa,EACb,aAA2C,EAAE,EAC7C,cAA6B,IAAI;QAHjC,OAAE,GAAF,EAAE,CAAQ;QACV,UAAK,GAAL,KAAK,CAAQ;QACb,eAAU,GAAV,UAAU,CAAmC;QAC7C,gBAAW,GAAX,WAAW,CAAsB;IACzC,CAAC;IAEJ,QAAQ;QACN,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrE,YAAY,EAAE,IAAI,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAkB;QAClC,OAAO,IAAI,IAAI,CACb,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAC9C,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EACpD,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D,MAAM,CAAC,YAAY,CAAC;aACpB,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAC9D,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CACrE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { type JsonObject } from '../json.js';
2
+ /**
3
+ * One input's moderation verdict.
4
+ *
5
+ * `flagged` is the answer; `categories` and `categoryScores` are why. All three
6
+ * are kept because a caller that acts on the boolean alone cannot explain the
7
+ * decision to the person it was made about, and "your message was blocked" with
8
+ * no reason is the worst version of this feature.
9
+ */
10
+ export declare class ModerationResult {
11
+ readonly flagged: boolean;
12
+ readonly categories: Readonly<Record<string, boolean>>;
13
+ readonly categoryScores: Readonly<Record<string, number>>;
14
+ constructor(flagged: boolean, categories?: Readonly<Record<string, boolean>>, categoryScores?: Readonly<Record<string, number>>);
15
+ static fromObject(data: unknown): ModerationResult;
16
+ /** The categories that tripped, without the ones that did not. */
17
+ flaggedCategories(): readonly string[];
18
+ toObject(): JsonObject;
19
+ }
20
+ //# sourceMappingURL=moderation-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation-result.d.ts","sourceRoot":"","sources":["../../src/value-objects/moderation-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAEzB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAFhD,OAAO,EAAE,OAAO,EAChB,UAAU,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,EAClD,cAAc,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAGhE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB;IAUlD,kEAAkE;IAClE,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAMtC,QAAQ,IAAI,UAAU;CAOvB"}
@@ -0,0 +1,64 @@
1
+ import { isJsonObject } from '../json.js';
2
+ /**
3
+ * One input's moderation verdict.
4
+ *
5
+ * `flagged` is the answer; `categories` and `categoryScores` are why. All three
6
+ * are kept because a caller that acts on the boolean alone cannot explain the
7
+ * decision to the person it was made about, and "your message was blocked" with
8
+ * no reason is the worst version of this feature.
9
+ */
10
+ export class ModerationResult {
11
+ flagged;
12
+ categories;
13
+ categoryScores;
14
+ constructor(flagged, categories = {}, categoryScores = {}) {
15
+ this.flagged = flagged;
16
+ this.categories = categories;
17
+ this.categoryScores = categoryScores;
18
+ }
19
+ static fromObject(data) {
20
+ const source = isJsonObject(data) ? data : {};
21
+ return new ModerationResult(source.flagged === true, readBooleans(source.categories), readNumbers(source.category_scores));
22
+ }
23
+ /** The categories that tripped, without the ones that did not. */
24
+ flaggedCategories() {
25
+ return Object.entries(this.categories)
26
+ .filter(([, tripped]) => tripped)
27
+ .map(([name]) => name);
28
+ }
29
+ toObject() {
30
+ return {
31
+ flagged: this.flagged,
32
+ categories: { ...this.categories },
33
+ category_scores: { ...this.categoryScores },
34
+ };
35
+ }
36
+ }
37
+ /**
38
+ * Non-boolean and non-numeric members are DROPPED, not coerced.
39
+ *
40
+ * A category whose value arrived as a string would become `true` under
41
+ * coercion — including the string `"false"` — and this is the one value object
42
+ * in the port where a wrong `true` means content gets blocked.
43
+ */
44
+ function readBooleans(value) {
45
+ const source = isJsonObject(value) ? value : {};
46
+ const result = {};
47
+ for (const [key, entry] of Object.entries(source)) {
48
+ if (typeof entry === 'boolean') {
49
+ result[key] = entry;
50
+ }
51
+ }
52
+ return result;
53
+ }
54
+ function readNumbers(value) {
55
+ const source = isJsonObject(value) ? value : {};
56
+ const result = {};
57
+ for (const [key, entry] of Object.entries(source)) {
58
+ if (typeof entry === 'number') {
59
+ result[key] = entry;
60
+ }
61
+ }
62
+ return result;
63
+ }
64
+ //# sourceMappingURL=moderation-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation-result.js","sourceRoot":"","sources":["../../src/value-objects/moderation-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IAEhB;IACA;IACA;IAHX,YACW,OAAgB,EAChB,aAAgD,EAAE,EAClD,iBAAmD,EAAE;QAFrD,YAAO,GAAP,OAAO,CAAS;QAChB,eAAU,GAAV,UAAU,CAAwC;QAClD,mBAAc,GAAd,cAAc,CAAuC;IAC7D,CAAC;IAEJ,MAAM,CAAC,UAAU,CAAC,IAAa;QAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9C,OAAO,IAAI,gBAAgB,CACzB,MAAM,CAAC,OAAO,KAAK,IAAI,EACvB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,EAC/B,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CACpC,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,iBAAiB;QACf,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;YAClC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE;SAC5C,CAAC;IACJ,CAAC;CACF;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { JsonObject } from '../json.js';
2
+ export declare class ProviderRateLimit {
3
+ readonly name: string;
4
+ readonly limit: number | null;
5
+ readonly remaining: number | null;
6
+ readonly resetsAt: Date | null;
7
+ constructor(name: string, limit?: number | null, remaining?: number | null, resetsAt?: Date | null);
8
+ toObject(): JsonObject;
9
+ static fromObject(object: JsonObject): ProviderRateLimit;
10
+ }
11
+ //# sourceMappingURL=provider-rate-limit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-rate-limit.d.ts","sourceRoot":"","sources":["../../src/value-objects/provider-rate-limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,qBAAa,iBAAiB;IAE1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IACjC,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;gBAHrB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAM,GAAG,IAAW,EAC3B,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,QAAQ,GAAE,IAAI,GAAG,IAAW;IAGvC,QAAQ,IAAI,UAAU;IAStB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,iBAAiB;CAUzD"}
@@ -0,0 +1,34 @@
1
+ import { readNullableNumber } from '../internal/filters.js';
2
+ export class ProviderRateLimit {
3
+ name;
4
+ limit;
5
+ remaining;
6
+ resetsAt;
7
+ constructor(name, limit = null, remaining = null, resetsAt = null) {
8
+ this.name = name;
9
+ this.limit = limit;
10
+ this.remaining = remaining;
11
+ this.resetsAt = resetsAt;
12
+ }
13
+ toObject() {
14
+ return {
15
+ name: this.name,
16
+ limit: this.limit,
17
+ remaining: this.remaining,
18
+ resets_at: this.resetsAt === null ? null : toIso8601(this.resetsAt),
19
+ };
20
+ }
21
+ static fromObject(object) {
22
+ const resetsAt = typeof object.resets_at === 'string' ? new Date(object.resets_at) : null;
23
+ return new ProviderRateLimit(typeof object.name === 'string' ? object.name : '', readNullableNumber(object.limit), readNullableNumber(object.remaining), resetsAt !== null && !Number.isNaN(resetsAt.getTime()) ? resetsAt : null);
24
+ }
25
+ }
26
+ /**
27
+ * ISO-8601 with an explicit UTC offset and no fractional seconds, matching what
28
+ * the reference's date library emits (`2026-08-25T11:15:00+00:00`) rather than
29
+ * JavaScript's `toISOString()` (`2026-08-25T11:15:00.000Z`).
30
+ */
31
+ function toIso8601(date) {
32
+ return date.toISOString().replace(/\.\d{3}Z$/, '+00:00');
33
+ }
34
+ //# sourceMappingURL=provider-rate-limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-rate-limit.js","sourceRoot":"","sources":["../../src/value-objects/provider-rate-limit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,OAAO,iBAAiB;IAEjB;IACA;IACA;IACA;IAJX,YACW,IAAY,EACZ,QAAuB,IAAI,EAC3B,YAA2B,IAAI,EAC/B,WAAwB,IAAI;QAH5B,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAsB;QAC3B,cAAS,GAAT,SAAS,CAAsB;QAC/B,aAAQ,GAAR,QAAQ,CAAoB;IACpC,CAAC;IAEJ,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;SACpE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAkB;QAClC,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1F,OAAO,IAAI,iBAAiB,CAC1B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAClD,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAChC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,EACpC,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CACzE,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAU;IAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { JsonObject } from '../json.js';
2
+ /**
3
+ * A tool the PROVIDER runs itself (web search, code interpreter, …) rather than
4
+ * one the caller implements.
5
+ *
6
+ * The reference has no `toArray()` for this object; the shape below is this
7
+ * port's, chosen to mirror the constructor. Note that `name` is deliberately
8
+ * NOT part of what reaches the wire — the OpenAI mapper emits `type` plus the
9
+ * `options` spread and nothing else.
10
+ */
11
+ export declare class ProviderTool {
12
+ readonly type: string;
13
+ readonly name: string | null;
14
+ readonly options: Readonly<JsonObject>;
15
+ constructor(type: string, name?: string | null, options?: Readonly<JsonObject>);
16
+ toObject(): JsonObject;
17
+ static fromObject(object: JsonObject): ProviderTool;
18
+ }
19
+ //# sourceMappingURL=provider-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-tool.d.ts","sourceRoot":"","sources":["../../src/value-objects/provider-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAErB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC5B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;gBAF7B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,GAAG,IAAW,EAC1B,OAAO,GAAE,QAAQ,CAAC,UAAU,CAAM;IAG7C,QAAQ,IAAI,UAAU;IAQtB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;CAOpD"}
@@ -0,0 +1,31 @@
1
+ import { isJsonObject } from '../json.js';
2
+ /**
3
+ * A tool the PROVIDER runs itself (web search, code interpreter, …) rather than
4
+ * one the caller implements.
5
+ *
6
+ * The reference has no `toArray()` for this object; the shape below is this
7
+ * port's, chosen to mirror the constructor. Note that `name` is deliberately
8
+ * NOT part of what reaches the wire — the OpenAI mapper emits `type` plus the
9
+ * `options` spread and nothing else.
10
+ */
11
+ export class ProviderTool {
12
+ type;
13
+ name;
14
+ options;
15
+ constructor(type, name = null, options = {}) {
16
+ this.type = type;
17
+ this.name = name;
18
+ this.options = options;
19
+ }
20
+ toObject() {
21
+ return {
22
+ type: this.type,
23
+ name: this.name,
24
+ options: { ...this.options },
25
+ };
26
+ }
27
+ static fromObject(object) {
28
+ return new ProviderTool(typeof object.type === 'string' ? object.type : '', typeof object.name === 'string' ? object.name : null, isJsonObject(object.options) ? object.options : {});
29
+ }
30
+ }
31
+ //# sourceMappingURL=provider-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-tool.js","sourceRoot":"","sources":["../../src/value-objects/provider-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IAEZ;IACA;IACA;IAHX,YACW,IAAY,EACZ,OAAsB,IAAI,EAC1B,UAAgC,EAAE;QAFlC,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAsB;QAC1B,YAAO,GAAP,OAAO,CAA2B;IAC1C,CAAC;IAEJ,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAkB;QAClC,OAAO,IAAI,YAAY,CACrB,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAClD,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpD,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACnD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import type { JsonObject, JsonValue } from '../json.js';
2
+ /**
3
+ * A tool call's arguments arrive either already decoded, or as the raw JSON
4
+ * string the provider streamed. Both are kept as-is; `parsedArguments()` is the
5
+ * one place the string form is decoded.
6
+ */
7
+ export type ToolCallArguments = string | JsonObject;
8
+ export declare class ToolCall {
9
+ readonly id: string;
10
+ readonly name: string;
11
+ readonly arguments: ToolCallArguments;
12
+ readonly resultId: string | null;
13
+ readonly reasoningId: string | null;
14
+ readonly reasoningSummary: JsonValue[] | null;
15
+ constructor(id: string, name: string, args: ToolCallArguments, resultId?: string | null, reasoningId?: string | null, reasoningSummary?: JsonValue[] | null);
16
+ /**
17
+ * The arguments as an object.
18
+ *
19
+ * An empty string and the string `'0'` both decode to `{}` — the reference
20
+ * short-circuits on falsiness before it ever calls its JSON decoder, and both
21
+ * of those are falsy there.
22
+ *
23
+ * @throws PrismError code `malformed_tool_call_arguments`
24
+ */
25
+ parsedArguments(): JsonObject;
26
+ toObject(): JsonObject;
27
+ static fromObject(object: JsonObject): ToolCall;
28
+ }
29
+ //# sourceMappingURL=tool-call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call.d.ts","sourceRoot":"","sources":["../../src/value-objects/tool-call.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIxD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEpD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAEtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;gBAG5C,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iBAAiB,EACvB,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,WAAW,GAAE,MAAM,GAAG,IAAW,EACjC,gBAAgB,GAAE,SAAS,EAAE,GAAG,IAAW;IAa7C;;;;;;;;OAQG;IACH,eAAe,IAAI,UAAU;IA4B7B,QAAQ,IAAI,UAAU;IAWtB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ;CAYhD"}
@@ -0,0 +1,112 @@
1
+ import { isJsonObject } from '../json.js';
2
+ import { PrismError } from '../errors.js';
3
+ export class ToolCall {
4
+ id;
5
+ name;
6
+ arguments;
7
+ resultId;
8
+ reasoningId;
9
+ reasoningSummary;
10
+ constructor(id, name, args, resultId = null, reasoningId = null, reasoningSummary = null) {
11
+ // `arguments` cannot be a constructor parameter name — class bodies are
12
+ // always strict mode, where `arguments` is not a legal binding — so the
13
+ // field is assigned rather than declared as a parameter property.
14
+ this.id = id;
15
+ this.name = name;
16
+ this.arguments = args;
17
+ this.resultId = resultId;
18
+ this.reasoningId = reasoningId;
19
+ this.reasoningSummary = reasoningSummary;
20
+ }
21
+ /**
22
+ * The arguments as an object.
23
+ *
24
+ * An empty string and the string `'0'` both decode to `{}` — the reference
25
+ * short-circuits on falsiness before it ever calls its JSON decoder, and both
26
+ * of those are falsy there.
27
+ *
28
+ * @throws PrismError code `malformed_tool_call_arguments`
29
+ */
30
+ parsedArguments() {
31
+ if (typeof this.arguments !== 'string') {
32
+ return this.arguments;
33
+ }
34
+ if (this.arguments === '' || this.arguments === '0') {
35
+ return {};
36
+ }
37
+ let decoded;
38
+ try {
39
+ decoded = JSON.parse(this.arguments);
40
+ }
41
+ catch (error) {
42
+ // Some providers emit raw control characters inside string values, which
43
+ // RFC 8259 requires to be escaped. Escape them in place — rather than
44
+ // stripping them, which would corrupt intentional newlines and tabs — and
45
+ // decode again.
46
+ try {
47
+ decoded = JSON.parse(escapeControlCharactersInStrings(this.arguments));
48
+ }
49
+ catch (retryError) {
50
+ throw PrismError.malformedToolCallArguments(this.name, retryError ?? error);
51
+ }
52
+ }
53
+ return isJsonObject(decoded) ? decoded : {};
54
+ }
55
+ toObject() {
56
+ return {
57
+ id: this.id,
58
+ name: this.name,
59
+ arguments: this.arguments,
60
+ result_id: this.resultId,
61
+ reasoning_id: this.reasoningId,
62
+ reasoning_summary: this.reasoningSummary,
63
+ };
64
+ }
65
+ static fromObject(object) {
66
+ const args = object.arguments;
67
+ return new ToolCall(typeof object.id === 'string' ? object.id : '', typeof object.name === 'string' ? object.name : '', typeof args === 'string' || isJsonObject(args) ? args : '', typeof object.result_id === 'string' ? object.result_id : null, typeof object.reasoning_id === 'string' ? object.reasoning_id : null, Array.isArray(object.reasoning_summary) ? object.reasoning_summary : null);
68
+ }
69
+ }
70
+ /**
71
+ * Escape raw control characters (0x00–0x1F) that appear inside JSON string
72
+ * literals, and drop the ones that appear outside strings where they can never
73
+ * be valid (raw tab, newline and carriage return between tokens are legal
74
+ * whitespace and are kept).
75
+ */
76
+ function escapeControlCharactersInStrings(json) {
77
+ let result = '';
78
+ let inString = false;
79
+ let escaped = false;
80
+ for (const char of json) {
81
+ const code = char.codePointAt(0) ?? 0;
82
+ if (code <= 0x1f) {
83
+ if (inString) {
84
+ result += CONTROL_ESCAPES[char] ?? `\\u${code.toString(16).padStart(4, '0')}`;
85
+ }
86
+ else if (char === '\t' || char === '\n' || char === '\r') {
87
+ result += char;
88
+ }
89
+ escaped = false;
90
+ continue;
91
+ }
92
+ result += char;
93
+ if (escaped) {
94
+ escaped = false;
95
+ }
96
+ else if (inString && char === '\\') {
97
+ escaped = true;
98
+ }
99
+ else if (char === '"') {
100
+ inString = !inString;
101
+ }
102
+ }
103
+ return result;
104
+ }
105
+ const CONTROL_ESCAPES = {
106
+ '\b': '\\b',
107
+ '\t': '\\t',
108
+ '\n': '\\n',
109
+ '\f': '\\f',
110
+ '\r': '\\r',
111
+ };
112
+ //# sourceMappingURL=tool-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call.js","sourceRoot":"","sources":["../../src/value-objects/tool-call.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { JsonObject, JsonValue } from '../json.js';
2
+ import { Artifact } from './artifact.js';
3
+ export type ToolResultValue = string | number | JsonValue[] | JsonObject | null;
4
+ export declare class ToolResult {
5
+ readonly toolCallId: string;
6
+ readonly toolName: string;
7
+ readonly args: Readonly<JsonObject>;
8
+ readonly result: ToolResultValue;
9
+ /**
10
+ * The id the PROVIDER expects the result to be keyed by, which is not the
11
+ * same as the id of the tool call that produced it.
12
+ */
13
+ readonly toolCallResultId: string | null;
14
+ readonly artifacts: readonly Artifact[];
15
+ constructor(toolCallId: string, toolName: string, args: Readonly<JsonObject>, result: ToolResultValue,
16
+ /**
17
+ * The id the PROVIDER expects the result to be keyed by, which is not the
18
+ * same as the id of the tool call that produced it.
19
+ */
20
+ toolCallResultId?: string | null, artifacts?: readonly Artifact[]);
21
+ hasArtifacts(): boolean;
22
+ toObject(): JsonObject;
23
+ static fromObject(object: JsonObject): ToolResult;
24
+ }
25
+ //# sourceMappingURL=tool-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-result.d.ts","sourceRoot":"","sources":["../../src/value-objects/tool-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;AAEhF,qBAAa,UAAU;IAEnB,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,eAAe;IAChC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE;gBAT9B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,MAAM,EAAE,eAAe;IAChC;;;OAGG;IACM,gBAAgB,GAAE,MAAM,GAAG,IAAW,EACtC,SAAS,GAAE,SAAS,QAAQ,EAAO;IAG9C,YAAY,IAAI,OAAO;IAIvB,QAAQ,IAAI,UAAU;IAWtB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;CAgBlD"}