@5ss/ai-tools 2.11.1

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 (342) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/LICENSE +21 -0
  3. package/README.md +221 -0
  4. package/dist/ai-sdk/index.d.ts +15 -0
  5. package/dist/ai-sdk/index.d.ts.map +1 -0
  6. package/dist/ai-sdk/index.js +24 -0
  7. package/dist/ai-sdk/index.js.map +1 -0
  8. package/dist/artifact-D064mHfK.js +44 -0
  9. package/dist/artifact-D064mHfK.js.map +1 -0
  10. package/dist/artifacts-O8g-40Pw.js +404 -0
  11. package/dist/artifacts-O8g-40Pw.js.map +1 -0
  12. package/dist/aws-json-CecFqzqX.js +23 -0
  13. package/dist/aws-json-CecFqzqX.js.map +1 -0
  14. package/dist/aws-service-msttbPrz.js +58 -0
  15. package/dist/aws-service-msttbPrz.js.map +1 -0
  16. package/dist/batch-BMM5dXqL.d.ts +22 -0
  17. package/dist/batch-BMM5dXqL.d.ts.map +1 -0
  18. package/dist/batch-Co1ujeAW.js +67 -0
  19. package/dist/batch-Co1ujeAW.js.map +1 -0
  20. package/dist/bedrock-agentcore-browser-a_qOs-NR.js +182 -0
  21. package/dist/bedrock-agentcore-browser-a_qOs-NR.js.map +1 -0
  22. package/dist/bedrock-agentcore-code-interpreter-MWK-8RhA.js +357 -0
  23. package/dist/bedrock-agentcore-code-interpreter-MWK-8RhA.js.map +1 -0
  24. package/dist/bytes-BxpimpQx.js +45 -0
  25. package/dist/bytes-BxpimpQx.js.map +1 -0
  26. package/dist/client-CCKGsTeI.js +743 -0
  27. package/dist/client-CCKGsTeI.js.map +1 -0
  28. package/dist/cloudflare/index.d.ts +37 -0
  29. package/dist/cloudflare/index.d.ts.map +1 -0
  30. package/dist/cloudflare/index.js +41 -0
  31. package/dist/cloudflare/index.js.map +1 -0
  32. package/dist/cloudflare-browser-B6Yolpin.js +428 -0
  33. package/dist/cloudflare-browser-B6Yolpin.js.map +1 -0
  34. package/dist/cloudflare-email-Dy0KHeDf.js +197 -0
  35. package/dist/cloudflare-email-Dy0KHeDf.js.map +1 -0
  36. package/dist/cloudflare-sandbox-Dp_uNaqW.js +982 -0
  37. package/dist/cloudflare-sandbox-Dp_uNaqW.js.map +1 -0
  38. package/dist/content-type-CORxaxcv.js +49 -0
  39. package/dist/content-type-CORxaxcv.js.map +1 -0
  40. package/dist/core/index.d.ts +4 -0
  41. package/dist/core/index.js +204 -0
  42. package/dist/core/index.js.map +1 -0
  43. package/dist/define-CvpJ_pNP.js +115 -0
  44. package/dist/define-CvpJ_pNP.js.map +1 -0
  45. package/dist/errors-DoSpNHvs.js +20 -0
  46. package/dist/errors-DoSpNHvs.js.map +1 -0
  47. package/dist/errors-aKhko9T1.d.ts +18 -0
  48. package/dist/errors-aKhko9T1.d.ts.map +1 -0
  49. package/dist/eventbridge-scheduler-Bh6GqZY2.js +349 -0
  50. package/dist/eventbridge-scheduler-Bh6GqZY2.js.map +1 -0
  51. package/dist/framework-context-DVIIY8ZO.js +24 -0
  52. package/dist/framework-context-DVIIY8ZO.js.map +1 -0
  53. package/dist/gotenberg-NuJjxyln.js +291 -0
  54. package/dist/gotenberg-NuJjxyln.js.map +1 -0
  55. package/dist/http/index.d.ts +47 -0
  56. package/dist/http/index.d.ts.map +1 -0
  57. package/dist/http/index.js +3 -0
  58. package/dist/http-service-DDNCO1s4.js +254 -0
  59. package/dist/http-service-DDNCO1s4.js.map +1 -0
  60. package/dist/http-service-T7E5UjP8.d.ts +80 -0
  61. package/dist/http-service-T7E5UjP8.d.ts.map +1 -0
  62. package/dist/imessage-BSAFOI8Z.js +154 -0
  63. package/dist/imessage-BSAFOI8Z.js.map +1 -0
  64. package/dist/index-BU4gmYO8.d.ts +254 -0
  65. package/dist/index-BU4gmYO8.d.ts.map +1 -0
  66. package/dist/index-CCivzmxO.d.ts +188 -0
  67. package/dist/index-CCivzmxO.d.ts.map +1 -0
  68. package/dist/index-CLmTrcu5.d.ts +22 -0
  69. package/dist/index-CLmTrcu5.d.ts.map +1 -0
  70. package/dist/index-CZX5OeOF.d.ts +235 -0
  71. package/dist/index-CZX5OeOF.d.ts.map +1 -0
  72. package/dist/index-CdFmEfZO.d.ts +359 -0
  73. package/dist/index-CdFmEfZO.d.ts.map +1 -0
  74. package/dist/index-Cuh6eMWc.d.ts +285 -0
  75. package/dist/index-Cuh6eMWc.d.ts.map +1 -0
  76. package/dist/index-DuOGj7vc.d.ts +107 -0
  77. package/dist/index-DuOGj7vc.d.ts.map +1 -0
  78. package/dist/index-ccZ1XOHw.d.ts +69 -0
  79. package/dist/index-ccZ1XOHw.d.ts.map +1 -0
  80. package/dist/index-n8JTpNf1.d.ts +247 -0
  81. package/dist/index-n8JTpNf1.d.ts.map +1 -0
  82. package/dist/index-pwW1OsOx.d.ts +134 -0
  83. package/dist/index-pwW1OsOx.d.ts.map +1 -0
  84. package/dist/index-zK1ZwS4m.d.ts +347 -0
  85. package/dist/index-zK1ZwS4m.d.ts.map +1 -0
  86. package/dist/limits-hjrO8zUG.js +80 -0
  87. package/dist/limits-hjrO8zUG.js.map +1 -0
  88. package/dist/mastra/index.d.ts +14 -0
  89. package/dist/mastra/index.d.ts.map +1 -0
  90. package/dist/mastra/index.js +26 -0
  91. package/dist/mastra/index.js.map +1 -0
  92. package/dist/mastra-vector-Dhc6XZ8l.js +234 -0
  93. package/dist/mastra-vector-Dhc6XZ8l.js.map +1 -0
  94. package/dist/mcp/index.d.ts +80 -0
  95. package/dist/mcp/index.d.ts.map +1 -0
  96. package/dist/mcp/index.js +97 -0
  97. package/dist/mcp/index.js.map +1 -0
  98. package/dist/modules/artifacts/index.d.ts +337 -0
  99. package/dist/modules/artifacts/index.d.ts.map +1 -0
  100. package/dist/modules/artifacts/index.js +348 -0
  101. package/dist/modules/artifacts/index.js.map +1 -0
  102. package/dist/modules/browser/index.d.ts +516 -0
  103. package/dist/modules/browser/index.d.ts.map +1 -0
  104. package/dist/modules/browser/index.js +475 -0
  105. package/dist/modules/browser/index.js.map +1 -0
  106. package/dist/modules/calendar/index.d.ts +93 -0
  107. package/dist/modules/calendar/index.d.ts.map +1 -0
  108. package/dist/modules/calendar/index.js +131 -0
  109. package/dist/modules/calendar/index.js.map +1 -0
  110. package/dist/modules/code-sandbox/index.d.ts +317 -0
  111. package/dist/modules/code-sandbox/index.d.ts.map +1 -0
  112. package/dist/modules/code-sandbox/index.js +537 -0
  113. package/dist/modules/code-sandbox/index.js.map +1 -0
  114. package/dist/modules/content-type/index.d.ts +22 -0
  115. package/dist/modules/content-type/index.d.ts.map +1 -0
  116. package/dist/modules/content-type/index.js +66 -0
  117. package/dist/modules/content-type/index.js.map +1 -0
  118. package/dist/modules/crypto/index.d.ts +115 -0
  119. package/dist/modules/crypto/index.d.ts.map +1 -0
  120. package/dist/modules/crypto/index.js +139 -0
  121. package/dist/modules/crypto/index.js.map +1 -0
  122. package/dist/modules/document/index.d.ts +575 -0
  123. package/dist/modules/document/index.d.ts.map +1 -0
  124. package/dist/modules/document/index.js +444 -0
  125. package/dist/modules/document/index.js.map +1 -0
  126. package/dist/modules/document-extract/index.d.ts +438 -0
  127. package/dist/modules/document-extract/index.d.ts.map +1 -0
  128. package/dist/modules/document-extract/index.js +127 -0
  129. package/dist/modules/document-extract/index.js.map +1 -0
  130. package/dist/modules/document-render/index.d.ts +336 -0
  131. package/dist/modules/document-render/index.d.ts.map +1 -0
  132. package/dist/modules/document-render/index.js +155 -0
  133. package/dist/modules/document-render/index.js.map +1 -0
  134. package/dist/modules/email/index.d.ts +311 -0
  135. package/dist/modules/email/index.d.ts.map +1 -0
  136. package/dist/modules/email/index.js +167 -0
  137. package/dist/modules/email/index.js.map +1 -0
  138. package/dist/modules/email-message/index.d.ts +95 -0
  139. package/dist/modules/email-message/index.d.ts.map +1 -0
  140. package/dist/modules/email-message/index.js +264 -0
  141. package/dist/modules/email-message/index.js.map +1 -0
  142. package/dist/modules/file-convert/index.d.ts +273 -0
  143. package/dist/modules/file-convert/index.d.ts.map +1 -0
  144. package/dist/modules/file-convert/index.js +103 -0
  145. package/dist/modules/file-convert/index.js.map +1 -0
  146. package/dist/modules/files/index.d.ts +452 -0
  147. package/dist/modules/files/index.d.ts.map +1 -0
  148. package/dist/modules/files/index.js +733 -0
  149. package/dist/modules/files/index.js.map +1 -0
  150. package/dist/modules/image/index.d.ts +342 -0
  151. package/dist/modules/image/index.d.ts.map +1 -0
  152. package/dist/modules/image/index.js +281 -0
  153. package/dist/modules/image/index.js.map +1 -0
  154. package/dist/modules/messaging/index.d.ts +608 -0
  155. package/dist/modules/messaging/index.d.ts.map +1 -0
  156. package/dist/modules/messaging/index.js +1067 -0
  157. package/dist/modules/messaging/index.js.map +1 -0
  158. package/dist/modules/pdf/index.d.ts +287 -0
  159. package/dist/modules/pdf/index.d.ts.map +1 -0
  160. package/dist/modules/pdf/index.js +259 -0
  161. package/dist/modules/pdf/index.js.map +1 -0
  162. package/dist/modules/presentation/index.d.ts +247 -0
  163. package/dist/modules/presentation/index.d.ts.map +1 -0
  164. package/dist/modules/presentation/index.js +12657 -0
  165. package/dist/modules/presentation/index.js.map +1 -0
  166. package/dist/modules/queue/index.d.ts +129 -0
  167. package/dist/modules/queue/index.d.ts.map +1 -0
  168. package/dist/modules/queue/index.js +131 -0
  169. package/dist/modules/queue/index.js.map +1 -0
  170. package/dist/modules/rag/index.d.ts +250 -0
  171. package/dist/modules/rag/index.d.ts.map +1 -0
  172. package/dist/modules/rag/index.js +366 -0
  173. package/dist/modules/rag/index.js.map +1 -0
  174. package/dist/modules/scheduler/index.d.ts +216 -0
  175. package/dist/modules/scheduler/index.d.ts.map +1 -0
  176. package/dist/modules/scheduler/index.js +153 -0
  177. package/dist/modules/scheduler/index.js.map +1 -0
  178. package/dist/modules/skills/index.d.ts +205 -0
  179. package/dist/modules/skills/index.d.ts.map +1 -0
  180. package/dist/modules/skills/index.js +203 -0
  181. package/dist/modules/skills/index.js.map +1 -0
  182. package/dist/modules/tasks/index.d.ts +287 -0
  183. package/dist/modules/tasks/index.d.ts.map +1 -0
  184. package/dist/modules/tasks/index.js +207 -0
  185. package/dist/modules/tasks/index.js.map +1 -0
  186. package/dist/modules/vector-store/index.d.ts +3 -0
  187. package/dist/modules/vector-store/index.js +3 -0
  188. package/dist/modules/web-fetch/index.d.ts +99 -0
  189. package/dist/modules/web-fetch/index.d.ts.map +1 -0
  190. package/dist/modules/web-fetch/index.js +242 -0
  191. package/dist/modules/web-fetch/index.js.map +1 -0
  192. package/dist/object-artifact-store-CMTzCm_G.d.ts +7 -0
  193. package/dist/object-artifact-store-CMTzCm_G.d.ts.map +1 -0
  194. package/dist/object-artifact-store-wZ2j9cto.js +28 -0
  195. package/dist/object-artifact-store-wZ2j9cto.js.map +1 -0
  196. package/dist/pinecone-umY4t6OF.js +190 -0
  197. package/dist/pinecone-umY4t6OF.js.map +1 -0
  198. package/dist/provider-CgDAlg6K.js +34 -0
  199. package/dist/provider-CgDAlg6K.js.map +1 -0
  200. package/dist/qdrant-DMp4NhKR.js +253 -0
  201. package/dist/qdrant-DMp4NhKR.js.map +1 -0
  202. package/dist/resend-BAC38_dA.js +155 -0
  203. package/dist/resend-BAC38_dA.js.map +1 -0
  204. package/dist/s3-CsOaPWMP.js +955 -0
  205. package/dist/s3-CsOaPWMP.js.map +1 -0
  206. package/dist/schemas-ChOAhdo9.js +192 -0
  207. package/dist/schemas-ChOAhdo9.js.map +1 -0
  208. package/dist/slack-Di5BBNpt.js +1455 -0
  209. package/dist/slack-Di5BBNpt.js.map +1 -0
  210. package/dist/sqs-DCwS1i2N.js +225 -0
  211. package/dist/sqs-DCwS1i2N.js.map +1 -0
  212. package/dist/supabase-vector-Dpp9mmJR.js +218 -0
  213. package/dist/supabase-vector-Dpp9mmJR.js.map +1 -0
  214. package/dist/tanstack/index.d.ts +15 -0
  215. package/dist/tanstack/index.d.ts.map +1 -0
  216. package/dist/tanstack/index.js +28 -0
  217. package/dist/tanstack/index.js.map +1 -0
  218. package/dist/teams-DYAHNb39.js +835 -0
  219. package/dist/teams-DYAHNb39.js.map +1 -0
  220. package/dist/telegram-DDXWzkfL.js +734 -0
  221. package/dist/telegram-DDXWzkfL.js.map +1 -0
  222. package/dist/textract-CPLiB22H.js +554 -0
  223. package/dist/textract-CPLiB22H.js.map +1 -0
  224. package/dist/transport-B4vn-XiQ.js +157 -0
  225. package/dist/transport-B4vn-XiQ.js.map +1 -0
  226. package/dist/transport-i96ACAI_.d.ts +46 -0
  227. package/dist/transport-i96ACAI_.d.ts.map +1 -0
  228. package/dist/types-Ccb0DXY9.d.ts +150 -0
  229. package/dist/types-Ccb0DXY9.d.ts.map +1 -0
  230. package/dist/unique-EwBH1JPB.js +19 -0
  231. package/dist/unique-EwBH1JPB.js.map +1 -0
  232. package/dist/vector-store-C3nEO80e.js +193 -0
  233. package/dist/vector-store-C3nEO80e.js.map +1 -0
  234. package/dist/vendors/amazon-sp-api/index.d.ts +526 -0
  235. package/dist/vendors/amazon-sp-api/index.d.ts.map +1 -0
  236. package/dist/vendors/amazon-sp-api/index.js +975 -0
  237. package/dist/vendors/amazon-sp-api/index.js.map +1 -0
  238. package/dist/vendors/bedrock-agentcore-browser/index.d.ts +2 -0
  239. package/dist/vendors/bedrock-agentcore-browser/index.js +2 -0
  240. package/dist/vendors/bedrock-agentcore-code-interpreter/index.d.ts +228 -0
  241. package/dist/vendors/bedrock-agentcore-code-interpreter/index.d.ts.map +1 -0
  242. package/dist/vendors/bedrock-agentcore-code-interpreter/index.js +2 -0
  243. package/dist/vendors/cloudflare-browser/index.d.ts +2 -0
  244. package/dist/vendors/cloudflare-browser/index.js +2 -0
  245. package/dist/vendors/cloudflare-email/index.d.ts +260 -0
  246. package/dist/vendors/cloudflare-email/index.d.ts.map +1 -0
  247. package/dist/vendors/cloudflare-email/index.js +3 -0
  248. package/dist/vendors/cloudflare-sandbox/index.d.ts +565 -0
  249. package/dist/vendors/cloudflare-sandbox/index.d.ts.map +1 -0
  250. package/dist/vendors/cloudflare-sandbox/index.js +2 -0
  251. package/dist/vendors/eventbridge-scheduler/index.d.ts +2 -0
  252. package/dist/vendors/eventbridge-scheduler/index.js +2 -0
  253. package/dist/vendors/gotenberg/index.d.ts +306 -0
  254. package/dist/vendors/gotenberg/index.d.ts.map +1 -0
  255. package/dist/vendors/gotenberg/index.js +2 -0
  256. package/dist/vendors/imessage/index.d.ts +420 -0
  257. package/dist/vendors/imessage/index.d.ts.map +1 -0
  258. package/dist/vendors/imessage/index.js +4 -0
  259. package/dist/vendors/katana/index.d.ts +1570 -0
  260. package/dist/vendors/katana/index.d.ts.map +1 -0
  261. package/dist/vendors/katana/index.js +1639 -0
  262. package/dist/vendors/katana/index.js.map +1 -0
  263. package/dist/vendors/mastra-vector/index.d.ts +120 -0
  264. package/dist/vendors/mastra-vector/index.d.ts.map +1 -0
  265. package/dist/vendors/mastra-vector/index.js +3 -0
  266. package/dist/vendors/pinecone/index.d.ts +75 -0
  267. package/dist/vendors/pinecone/index.d.ts.map +1 -0
  268. package/dist/vendors/pinecone/index.js +3 -0
  269. package/dist/vendors/qdrant/index.d.ts +75 -0
  270. package/dist/vendors/qdrant/index.d.ts.map +1 -0
  271. package/dist/vendors/qdrant/index.js +3 -0
  272. package/dist/vendors/resend/index.d.ts +3 -0
  273. package/dist/vendors/resend/index.js +3 -0
  274. package/dist/vendors/s3/index.d.ts +2 -0
  275. package/dist/vendors/s3/index.js +2 -0
  276. package/dist/vendors/slack/index.d.ts +576 -0
  277. package/dist/vendors/slack/index.d.ts.map +1 -0
  278. package/dist/vendors/slack/index.js +3 -0
  279. package/dist/vendors/sqs/index.d.ts +2 -0
  280. package/dist/vendors/sqs/index.js +2 -0
  281. package/dist/vendors/supabase-vector/index.d.ts +89 -0
  282. package/dist/vendors/supabase-vector/index.d.ts.map +1 -0
  283. package/dist/vendors/supabase-vector/index.js +3 -0
  284. package/dist/vendors/teams/index.d.ts +303 -0
  285. package/dist/vendors/teams/index.d.ts.map +1 -0
  286. package/dist/vendors/teams/index.js +3 -0
  287. package/dist/vendors/telegram/index.d.ts +319 -0
  288. package/dist/vendors/telegram/index.d.ts.map +1 -0
  289. package/dist/vendors/telegram/index.js +3 -0
  290. package/dist/vendors/textract/index.d.ts +2 -0
  291. package/dist/vendors/textract/index.js +2 -0
  292. package/dist/vendors/woocommerce/index.d.ts +1700 -0
  293. package/dist/vendors/woocommerce/index.d.ts.map +1 -0
  294. package/dist/vendors/woocommerce/index.js +1427 -0
  295. package/dist/vendors/woocommerce/index.js.map +1 -0
  296. package/dist/with-auth-CpKqTrGK.js +240 -0
  297. package/dist/with-auth-CpKqTrGK.js.map +1 -0
  298. package/logos/LUCIDE-ATTRIBUTION.txt +4 -0
  299. package/logos/README.md +89 -0
  300. package/logos/amazon.svg +6 -0
  301. package/logos/artifacts.svg +9 -0
  302. package/logos/browser.svg +9 -0
  303. package/logos/calendar.svg +15 -0
  304. package/logos/cloudflare-browser.svg +5 -0
  305. package/logos/cloudflare-email.svg +5 -0
  306. package/logos/cloudflare.svg +4 -0
  307. package/logos/code-sandbox.svg +8 -0
  308. package/logos/content-type.svg +10 -0
  309. package/logos/crypto.svg +7 -0
  310. package/logos/document-extract.svg +12 -0
  311. package/logos/document-render.svg +8 -0
  312. package/logos/document.svg +10 -0
  313. package/logos/email-message.svg +8 -0
  314. package/logos/email.svg +7 -0
  315. package/logos/file-convert.svg +9 -0
  316. package/logos/files.svg +6 -0
  317. package/logos/gotenberg.svg +340 -0
  318. package/logos/image.svg +8 -0
  319. package/logos/imessage.svg +7 -0
  320. package/logos/katana.svg +13 -0
  321. package/logos/mastra.svg +7 -0
  322. package/logos/messaging.svg +7 -0
  323. package/logos/pack-logos.json +48 -0
  324. package/logos/pdf.svg +10 -0
  325. package/logos/pinecone.svg +25 -0
  326. package/logos/presentation.svg +8 -0
  327. package/logos/qdrant.svg +4 -0
  328. package/logos/queue.svg +11 -0
  329. package/logos/rag.svg +18 -0
  330. package/logos/resend.svg +5 -0
  331. package/logos/scheduler.svg +7 -0
  332. package/logos/skills.svg +10 -0
  333. package/logos/slack.svg +14 -0
  334. package/logos/supabase.svg +4 -0
  335. package/logos/tasks.svg +10 -0
  336. package/logos/teams.svg +6 -0
  337. package/logos/telegram.svg +10 -0
  338. package/logos/textract.svg +5 -0
  339. package/logos/vector-store.svg +8 -0
  340. package/logos/web-fetch.svg +8 -0
  341. package/logos/woocommerce.svg +4 -0
  342. package/package.json +373 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-service-DDNCO1s4.js","names":["#http","#defaultLabel","#defaultSignal","#raw"],"sources":["../src/transport/errors.ts","../src/transport/http-service.ts"],"sourcesContent":["/**\n * HTTP status / network → ToolError for HttpService and AwsService.\n */\n\nimport { isError, isNumber } from 'es-toolkit'\nimport { FetchError } from 'ofetch'\n\nimport { ToolError } from '../core/errors'\nimport type { ToolErrorCode } from '../core/errors'\n\nexport type StatusThrowOptions = {\n\tallowStatuses?: readonly number[]\n\t/** When true, non-2xx does not throw. */\n\tnoThrow?: boolean\n}\n\n/** Map common HTTP status codes to stable ToolError codes. */\nexport function httpErrorCode(status: number): ToolErrorCode {\n\tif (status === 401) return 'bad_auth'\n\tif (status === 403) return 'forbidden'\n\tif (status === 404) return 'not_found'\n\tif (status === 429) return 'rate_limited'\n\tif (status === 413) return 'too_large'\n\treturn 'upstream'\n}\n\nexport function throwHttpStatus(operation: string, status: number, retryAfterMs?: number): never {\n\tconst code = httpErrorCode(status)\n\tthrow new ToolError(`${operation} failed with HTTP ${status}`, {\n\t\tcode,\n\t\tretryable: status >= 500 || status === 429,\n\t\tdetails: {\n\t\t\tstatus,\n\t\t\t...(retryAfterMs !== undefined && { retry_after_ms: retryAfterMs })\n\t\t}\n\t})\n}\n\n/** Parse Retry-After header (seconds or HTTP-date) into milliseconds when possible. */\nexport function retryAfterMsFromHeader(value: string | null): number | undefined {\n\tif (value === null || value.length === 0) return undefined\n\tconst asSeconds = Number.parseInt(value, 10)\n\tif (Number.isFinite(asSeconds) && asSeconds >= 0) return asSeconds * 1000\n\tconst asDate = Date.parse(value)\n\tif (Number.isFinite(asDate)) {\n\t\tconst delta = asDate - Date.now()\n\t\treturn delta > 0 ? delta : 0\n\t}\n\treturn undefined\n}\n\n/** Default: throw ToolError on non-2xx (404 → not_found). */\nexport function assertHttpStatusOk(\n\tlabel: string,\n\tstatus: number,\n\theaders: Headers,\n\toptions: StatusThrowOptions = {}\n): void {\n\tif (options.noThrow === true) return\n\tif (status >= 200 && status < 300) return\n\tif (options.allowStatuses && options.allowStatuses.includes(status)) return\n\tif (status === 404) {\n\t\tthrow new ToolError('Not found', { code: 'not_found', details: { status } })\n\t}\n\tthrowHttpStatus(label, status, retryAfterMsFromHeader(headers.get('retry-after')))\n}\n\n/** True if error or any nested `cause` is an AbortError (ofetch wraps abort in FetchError). */\nexport function isAbortErrorChain(error: unknown): boolean {\n\tlet current: unknown = error\n\tconst seen = new Set<unknown>()\n\twhile (current !== undefined && current !== null && !seen.has(current)) {\n\t\tseen.add(current)\n\t\tif (isError(current) && (current.name === 'AbortError' || current.name === 'TimeoutError')) {\n\t\t\treturn true\n\t\t}\n\t\tif (isError(current) && 'cause' in current) {\n\t\t\tcurrent = current.cause\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\treturn false\n}\n\n/** Map ofetch / AbortError / unknown network failures to ToolError. */\nexport function mapTransportNetworkError(error: unknown, label: string): never {\n\tif (error instanceof ToolError) throw error\n\tif (isAbortErrorChain(error)) {\n\t\tthrow new ToolError(`${label} request was aborted`, {\n\t\t\tcode: 'timeout',\n\t\t\tretryable: true,\n\t\t\tcause: error\n\t\t})\n\t}\n\tif (error instanceof FetchError) {\n\t\tconst status = error.statusCode ?? error.response?.status\n\t\tif (isNumber(status) && Number.isFinite(status)) {\n\t\t\tconst retryAfter = retryAfterMsFromHeader(error.response?.headers.get('retry-after') ?? null)\n\t\t\tthrowHttpStatus(label, status, retryAfter)\n\t\t}\n\t\tthrow new ToolError(error.message || `${label} request failed`, {\n\t\t\tcode: 'upstream',\n\t\t\tretryable: true,\n\t\t\tcause: error\n\t\t})\n\t}\n\tthrow new ToolError(`${label} request failed`, {\n\t\tcode: 'upstream',\n\t\tretryable: true,\n\t\tcause: error\n\t})\n}\n","/**\n * Shared HTTP transport (ofetch under the hood).\n * Product clients construct this and call query/bytes/get/post/….\n */\n\nimport { createFetch } from 'ofetch'\nimport type { CreateFetchOptions, FetchOptions } from 'ofetch'\nimport { trimEnd } from 'es-toolkit'\n\nimport { ToolError } from '../core/errors'\nimport type { FetchLike } from '../core/types'\nimport { assertHttpStatusOk, mapTransportNetworkError } from './errors'\n\nexport type HttpServiceOptions = {\n\t/** Absolute origin or base path. Omit for free-form absolute URLs. */\n\tbaseURL?: string\n\t/** Default headers (Authorization, Content-Type, …). */\n\theaders?: Record<string, string>\n\t/** Default timeout ms. */\n\ttimeout?: number\n\t/**\n\t * Injectable fetch (tests via ToolContext / runTool).\n\t * Passed straight to ofetch — no preconnect wrapper.\n\t */\n\tfetch?: FetchLike\n\t/** Default abort signal. */\n\tsignal?: AbortSignal\n\t/** Prefix for ToolError messages (e.g. \"Resend\"). */\n\tlabel?: string\n}\n\n/**\n * Bodies ofetch accepts. `object` covers plain JSON payloads from tool input\n * (including empty objects); FormData/Blob/string live under BodyInit.\n */\nexport type HttpBody = BodyInit | object | null\n\nexport type HttpCallOptions = {\n\tquery?: Record<string, string | number | boolean | undefined>\n\tbody?: HttpBody\n\theaders?: Record<string, string>\n\t/** Status codes returned without throwing. */\n\tallowStatuses?: readonly number[]\n\t/** When true, non-2xx is returned instead of throwing. Default false. */\n\tnoThrow?: boolean\n\ttimeout?: number\n\tsignal?: AbortSignal\n\t/** Override error label for this call. */\n\tlabel?: string\n}\n\nexport type HttpBytesOptions = HttpCallOptions & {\n\t/** Stop reading and throw `too_large` once the response exceeds this many bytes. */\n\tmaxBytes?: number\n}\n\nexport type HttpQueryResult = {\n\tstatus: number\n\tok: boolean\n\theaders: Headers\n\turl: string\n\t/** Parsed body (JSON/text per ofetch). */\n\tdata: unknown\n}\n\nexport type HttpBytesResult = {\n\tstatus: number\n\tok: boolean\n\theaders: Headers\n\turl: string\n\tbytes: Uint8Array\n}\n\ntype OfetchInstance = ReturnType<typeof createFetch>\n\n/**\n * HTTP client: query (parsed), bytes, get/post/put/patch/delete/head.\n * Non-2xx → ToolError by default.\n */\nexport class HttpService {\n\treadonly #http: OfetchInstance\n\treadonly #defaultLabel: string\n\treadonly #defaultSignal: AbortSignal | undefined\n\n\tconstructor(options: HttpServiceOptions = {}) {\n\t\tthis.#defaultLabel = options.label ?? 'HTTP'\n\t\tthis.#defaultSignal = options.signal\n\t\tthis.#http = createOfetch(options)\n\t}\n\n\t/** Shared ofetch.raw + status assert + error map. */\n\tasync #raw(method: string, path: string, options: HttpCallOptions, extra?: FetchOptions) {\n\t\tconst label = options.label ?? this.#defaultLabel\n\t\ttry {\n\t\t\tconst res = await this.#http.raw(path, {\n\t\t\t\tsignal: this.#defaultSignal ?? null,\n\t\t\t\tmethod,\n\t\t\t\t...options,\n\t\t\t\t...extra\n\t\t\t})\n\t\t\tassertHttpStatusOk(label, res.status, res.headers, options)\n\t\t\treturn { status: res.status, ok: res.ok, headers: res.headers, url: res.url, data: res._data }\n\t\t} catch (error) {\n\t\t\tmapTransportNetworkError(error, label)\n\t\t}\n\t}\n\n\t/** Parsed body (JSON/text). ofetch parses JSON responses by default. */\n\tasync query(method: string, path: string, options: HttpCallOptions = {}): Promise<HttpQueryResult> {\n\t\treturn this.#raw(method, path, options)\n\t}\n\n\t/**\n\t * Binary body. `maxBytes` switches to streaming and cancels before an\n\t * oversized response is materialized.\n\t */\n\tasync bytes(method: string, path: string, options: HttpBytesOptions = {}): Promise<HttpBytesResult> {\n\t\tconst { maxBytes, ...requestOptions } = options\n\t\tif (maxBytes !== undefined && (!Number.isSafeInteger(maxBytes) || maxBytes < 0)) {\n\t\t\tthrow new ToolError('Response byte limit must be a non-negative safe integer', { code: 'bad_input' })\n\t\t}\n\n\t\tconst res = await this.#raw(method, path, requestOptions, {\n\t\t\tresponseType: maxBytes === undefined ? 'arrayBuffer' : 'stream'\n\t\t})\n\t\tif (maxBytes === undefined) {\n\t\t\treturn {\n\t\t\t\t...res,\n\t\t\t\tbytes: new Uint8Array(res.data)\n\t\t\t}\n\t\t}\n\n\t\tconst label = options.label ?? this.#defaultLabel\n\t\ttry {\n\t\t\tconst bytes = await readBoundedBytes(res.data, res.headers, maxBytes, label)\n\t\t\treturn { ...res, bytes }\n\t\t} catch (error) {\n\t\t\tmapTransportNetworkError(error, label)\n\t\t}\n\t}\n\n\tget(path: string, options: HttpCallOptions = {}): Promise<HttpQueryResult> {\n\t\treturn this.query('GET', path, options)\n\t}\n\n\tpost(path: string, body?: HttpBody, options: HttpCallOptions = {}): Promise<HttpQueryResult> {\n\t\treturn this.query('POST', path, body === undefined ? options : { ...options, body })\n\t}\n\n\tput(path: string, body?: HttpBody, options: HttpCallOptions = {}): Promise<HttpQueryResult> {\n\t\treturn this.query('PUT', path, body === undefined ? options : { ...options, body })\n\t}\n\n\tpatch(path: string, body?: HttpBody, options: HttpCallOptions = {}): Promise<HttpQueryResult> {\n\t\treturn this.query('PATCH', path, body === undefined ? options : { ...options, body })\n\t}\n\n\tdelete(path: string, options: HttpCallOptions = {}): Promise<HttpQueryResult> {\n\t\treturn this.query('DELETE', path, options)\n\t}\n\n\thead(path: string, options: HttpCallOptions = {}): Promise<HttpQueryResult> {\n\t\treturn this.query('HEAD', path, options)\n\t}\n}\n\nfunction isReadableByteStream(value: unknown): value is ReadableStream<unknown> {\n\treturn value instanceof ReadableStream\n}\n\nfunction contentLength(headers: Headers): number | undefined {\n\tconst value = headers.get('content-length')\n\tif (value === null || !/^\\d+$/.test(value)) return undefined\n\tconst parsed = Number(value)\n\treturn Number.isSafeInteger(parsed) ? parsed : undefined\n}\n\nfunction responseTooLarge(label: string, maxBytes: number, observedBytes: number): never {\n\tthrow new ToolError(`${label} response exceeds byte limit`, {\n\t\tcode: 'too_large',\n\t\tdetails: { max_bytes: maxBytes, content_length: observedBytes }\n\t})\n}\n\nasync function readBoundedBytes(data: unknown, headers: Headers, maxBytes: number, label: string): Promise<Uint8Array> {\n\tconst declaredLength = contentLength(headers)\n\tif (declaredLength !== undefined && declaredLength > maxBytes) {\n\t\tif (isReadableByteStream(data)) {\n\t\t\ttry {\n\t\t\t\tawait data.cancel()\n\t\t\t} catch {\n\t\t\t\t// Preserve the stable too_large error.\n\t\t\t}\n\t\t}\n\t\tresponseTooLarge(label, maxBytes, declaredLength)\n\t}\n\tif (data === null || data === undefined) return new Uint8Array()\n\tif (!isReadableByteStream(data)) {\n\t\tthrow new ToolError(`${label} returned an invalid byte stream`, { code: 'upstream' })\n\t}\n\n\tconst reader = data.getReader()\n\tconst chunks: Uint8Array[] = []\n\tlet total = 0\n\ttry {\n\t\twhile (true) {\n\t\t\tconst chunk = await reader.read()\n\t\t\tif (chunk.done) break\n\t\t\tif (!(chunk.value instanceof Uint8Array)) {\n\t\t\t\tthrow new ToolError(`${label} returned an invalid byte chunk`, { code: 'upstream' })\n\t\t\t}\n\t\t\ttotal += chunk.value.byteLength\n\t\t\tif (total > maxBytes) {\n\t\t\t\ttry {\n\t\t\t\t\tawait reader.cancel()\n\t\t\t\t} catch {\n\t\t\t\t\t// Preserve the stable too_large error.\n\t\t\t\t}\n\t\t\t\tresponseTooLarge(label, maxBytes, declaredLength ?? total)\n\t\t\t}\n\t\t\tchunks.push(chunk.value)\n\t\t}\n\t} finally {\n\t\treader.releaseLock()\n\t}\n\n\tconst bytes = new Uint8Array(total)\n\tlet offset = 0\n\tfor (const chunk of chunks) {\n\t\tbytes.set(chunk, offset)\n\t\toffset += chunk.byteLength\n\t}\n\treturn bytes\n}\n\nfunction createOfetch(options: HttpServiceOptions): OfetchInstance {\n\tconst defaults: FetchOptions = {\n\t\t...options,\n\t\tretry: false,\n\t\tignoreResponseError: true\n\t}\n\tif (defaults.baseURL) {\n\t\tdefaults.baseURL = trimEnd(defaults.baseURL, '/')\n\t}\n\tconst createOptions: CreateFetchOptions = { defaults }\n\tif (options.fetch) {\n\t\tObject.assign(createOptions, { fetch: options.fetch })\n\t}\n\treturn createFetch(createOptions)\n}\n"],"mappings":";;;;;;;;AAiBA,SAAgB,cAAc,QAA+B;CAC5D,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,IAAI,WAAW,KAAK,OAAO;CAC3B,OAAO;AACR;AAEA,SAAgB,gBAAgB,WAAmB,QAAgB,cAA8B;CAChG,MAAM,OAAO,cAAc,MAAM;CACjC,MAAM,IAAI,UAAU,GAAG,UAAU,oBAAoB,UAAU;EAC9D;EACA,WAAW,UAAU,OAAO,WAAW;EACvC,SAAS;GACR;GACA,GAAI,iBAAiB,KAAA,KAAa,EAAE,gBAAgB,aAAa;EAClE;CACD,CAAC;AACF;;AAGA,SAAgB,uBAAuB,OAA0C;CAChF,IAAI,UAAU,QAAQ,MAAM,WAAW,GAAG,OAAO,KAAA;CACjD,MAAM,YAAY,OAAO,SAAS,OAAO,EAAE;CAC3C,IAAI,OAAO,SAAS,SAAS,KAAK,aAAa,GAAG,OAAO,YAAY;CACrE,MAAM,SAAS,KAAK,MAAM,KAAK;CAC/B,IAAI,OAAO,SAAS,MAAM,GAAG;EAC5B,MAAM,QAAQ,SAAS,KAAK,IAAI;EAChC,OAAO,QAAQ,IAAI,QAAQ;CAC5B;AAED;;AAGA,SAAgB,mBACf,OACA,QACA,SACA,UAA8B,CAAC,GACxB;CACP,IAAI,QAAQ,YAAY,MAAM;CAC9B,IAAI,UAAU,OAAO,SAAS,KAAK;CACnC,IAAI,QAAQ,iBAAiB,QAAQ,cAAc,SAAS,MAAM,GAAG;CACrE,IAAI,WAAW,KACd,MAAM,IAAI,UAAU,aAAa;EAAE,MAAM;EAAa,SAAS,EAAE,OAAO;CAAE,CAAC;CAE5E,gBAAgB,OAAO,QAAQ,uBAAuB,QAAQ,IAAI,aAAa,CAAC,CAAC;AAClF;;AAGA,SAAgB,kBAAkB,OAAyB;CAC1D,IAAI,UAAmB;CACvB,MAAM,uBAAO,IAAI,IAAa;CAC9B,OAAO,YAAY,KAAA,KAAa,YAAY,QAAQ,CAAC,KAAK,IAAI,OAAO,GAAG;EACvE,KAAK,IAAI,OAAO;EAChB,IAAI,QAAQ,OAAO,MAAM,QAAQ,SAAS,gBAAgB,QAAQ,SAAS,iBAC1E,OAAO;EAER,IAAI,QAAQ,OAAO,KAAK,WAAW,SAAS;GAC3C,UAAU,QAAQ;GAClB;EACD;EACA;CACD;CACA,OAAO;AACR;;AAGA,SAAgB,yBAAyB,OAAgB,OAAsB;CAC9E,IAAI,iBAAiB,WAAW,MAAM;CACtC,IAAI,kBAAkB,KAAK,GAC1B,MAAM,IAAI,UAAU,GAAG,MAAM,uBAAuB;EACnD,MAAM;EACN,WAAW;EACX,OAAO;CACR,CAAC;CAEF,IAAI,iBAAiB,YAAY;EAChC,MAAM,SAAS,MAAM,cAAc,MAAM,UAAU;EACnD,IAAI,SAAS,MAAM,KAAK,OAAO,SAAS,MAAM,GAE7C,gBAAgB,OAAO,QADJ,uBAAuB,MAAM,UAAU,QAAQ,IAAI,aAAa,KAAK,IAChD,CAAC;EAE1C,MAAM,IAAI,UAAU,MAAM,WAAW,GAAG,MAAM,kBAAkB;GAC/D,MAAM;GACN,WAAW;GACX,OAAO;EACR,CAAC;CACF;CACA,MAAM,IAAI,UAAU,GAAG,MAAM,kBAAkB;EAC9C,MAAM;EACN,WAAW;EACX,OAAO;CACR,CAAC;AACF;;;;;;;;;;;ACjCA,IAAa,cAAb,MAAyB;CACxB;CACA;CACA;CAEA,YAAY,UAA8B,CAAC,GAAG;EAC7C,KAAKC,gBAAgB,QAAQ,SAAS;EACtC,KAAKC,iBAAiB,QAAQ;EAC9B,KAAKF,QAAQ,aAAa,OAAO;CAClC;;CAGA,MAAMG,KAAK,QAAgB,MAAc,SAA0B,OAAsB;EACxF,MAAM,QAAQ,QAAQ,SAAS,KAAKF;EACpC,IAAI;GACH,MAAM,MAAM,MAAM,KAAKD,MAAM,IAAI,MAAM;IACtC,QAAQ,KAAKE,kBAAkB;IAC/B;IACA,GAAG;IACH,GAAG;GACJ,CAAC;GACD,mBAAmB,OAAO,IAAI,QAAQ,IAAI,SAAS,OAAO;GAC1D,OAAO;IAAE,QAAQ,IAAI;IAAQ,IAAI,IAAI;IAAI,SAAS,IAAI;IAAS,KAAK,IAAI;IAAK,MAAM,IAAI;GAAM;EAC9F,SAAS,OAAO;GACf,yBAAyB,OAAO,KAAK;EACtC;CACD;;CAGA,MAAM,MAAM,QAAgB,MAAc,UAA2B,CAAC,GAA6B;EAClG,OAAO,KAAKC,KAAK,QAAQ,MAAM,OAAO;CACvC;;;;;CAMA,MAAM,MAAM,QAAgB,MAAc,UAA4B,CAAC,GAA6B;EACnG,MAAM,EAAE,UAAU,GAAG,mBAAmB;EACxC,IAAI,aAAa,KAAA,MAAc,CAAC,OAAO,cAAc,QAAQ,KAAK,WAAW,IAC5E,MAAM,IAAI,UAAU,2DAA2D,EAAE,MAAM,YAAY,CAAC;EAGrG,MAAM,MAAM,MAAM,KAAKA,KAAK,QAAQ,MAAM,gBAAgB,EACzD,cAAc,aAAa,KAAA,IAAY,gBAAgB,SACxD,CAAC;EACD,IAAI,aAAa,KAAA,GAChB,OAAO;GACN,GAAG;GACH,OAAO,IAAI,WAAW,IAAI,IAAI;EAC/B;EAGD,MAAM,QAAQ,QAAQ,SAAS,KAAKF;EACpC,IAAI;GACH,MAAM,QAAQ,MAAM,iBAAiB,IAAI,MAAM,IAAI,SAAS,UAAU,KAAK;GAC3E,OAAO;IAAE,GAAG;IAAK;GAAM;EACxB,SAAS,OAAO;GACf,yBAAyB,OAAO,KAAK;EACtC;CACD;CAEA,IAAI,MAAc,UAA2B,CAAC,GAA6B;EAC1E,OAAO,KAAK,MAAM,OAAO,MAAM,OAAO;CACvC;CAEA,KAAK,MAAc,MAAiB,UAA2B,CAAC,GAA6B;EAC5F,OAAO,KAAK,MAAM,QAAQ,MAAM,SAAS,KAAA,IAAY,UAAU;GAAE,GAAG;GAAS;EAAK,CAAC;CACpF;CAEA,IAAI,MAAc,MAAiB,UAA2B,CAAC,GAA6B;EAC3F,OAAO,KAAK,MAAM,OAAO,MAAM,SAAS,KAAA,IAAY,UAAU;GAAE,GAAG;GAAS;EAAK,CAAC;CACnF;CAEA,MAAM,MAAc,MAAiB,UAA2B,CAAC,GAA6B;EAC7F,OAAO,KAAK,MAAM,SAAS,MAAM,SAAS,KAAA,IAAY,UAAU;GAAE,GAAG;GAAS;EAAK,CAAC;CACrF;CAEA,OAAO,MAAc,UAA2B,CAAC,GAA6B;EAC7E,OAAO,KAAK,MAAM,UAAU,MAAM,OAAO;CAC1C;CAEA,KAAK,MAAc,UAA2B,CAAC,GAA6B;EAC3E,OAAO,KAAK,MAAM,QAAQ,MAAM,OAAO;CACxC;AACD;AAEA,SAAS,qBAAqB,OAAkD;CAC/E,OAAO,iBAAiB;AACzB;AAEA,SAAS,cAAc,SAAsC;CAC5D,MAAM,QAAQ,QAAQ,IAAI,gBAAgB;CAC1C,IAAI,UAAU,QAAQ,CAAC,QAAQ,KAAK,KAAK,GAAG,OAAO,KAAA;CACnD,MAAM,SAAS,OAAO,KAAK;CAC3B,OAAO,OAAO,cAAc,MAAM,IAAI,SAAS,KAAA;AAChD;AAEA,SAAS,iBAAiB,OAAe,UAAkB,eAA8B;CACxF,MAAM,IAAI,UAAU,GAAG,MAAM,+BAA+B;EAC3D,MAAM;EACN,SAAS;GAAE,WAAW;GAAU,gBAAgB;EAAc;CAC/D,CAAC;AACF;AAEA,eAAe,iBAAiB,MAAe,SAAkB,UAAkB,OAAoC;CACtH,MAAM,iBAAiB,cAAc,OAAO;CAC5C,IAAI,mBAAmB,KAAA,KAAa,iBAAiB,UAAU;EAC9D,IAAI,qBAAqB,IAAI,GAC5B,IAAI;GACH,MAAM,KAAK,OAAO;EACnB,QAAQ,CAER;EAED,iBAAiB,OAAO,UAAU,cAAc;CACjD;CACA,IAAI,SAAS,QAAQ,SAAS,KAAA,GAAW,uBAAO,IAAI,WAAW;CAC/D,IAAI,CAAC,qBAAqB,IAAI,GAC7B,MAAM,IAAI,UAAU,GAAG,MAAM,mCAAmC,EAAE,MAAM,WAAW,CAAC;CAGrF,MAAM,SAAS,KAAK,UAAU;CAC9B,MAAM,SAAuB,CAAC;CAC9B,IAAI,QAAQ;CACZ,IAAI;EACH,OAAO,MAAM;GACZ,MAAM,QAAQ,MAAM,OAAO,KAAK;GAChC,IAAI,MAAM,MAAM;GAChB,IAAI,EAAE,MAAM,iBAAiB,aAC5B,MAAM,IAAI,UAAU,GAAG,MAAM,kCAAkC,EAAE,MAAM,WAAW,CAAC;GAEpF,SAAS,MAAM,MAAM;GACrB,IAAI,QAAQ,UAAU;IACrB,IAAI;KACH,MAAM,OAAO,OAAO;IACrB,QAAQ,CAER;IACA,iBAAiB,OAAO,UAAU,kBAAkB,KAAK;GAC1D;GACA,OAAO,KAAK,MAAM,KAAK;EACxB;CACD,UAAU;EACT,OAAO,YAAY;CACpB;CAEA,MAAM,QAAQ,IAAI,WAAW,KAAK;CAClC,IAAI,SAAS;CACb,KAAK,MAAM,SAAS,QAAQ;EAC3B,MAAM,IAAI,OAAO,MAAM;EACvB,UAAU,MAAM;CACjB;CACA,OAAO;AACR;AAEA,SAAS,aAAa,SAA6C;CAClE,MAAM,WAAyB;EAC9B,GAAG;EACH,OAAO;EACP,qBAAqB;CACtB;CACA,IAAI,SAAS,SACZ,SAAS,UAAU,QAAQ,SAAS,SAAS,GAAG;CAEjD,MAAM,gBAAoC,EAAE,SAAS;CACrD,IAAI,QAAQ,OACX,OAAO,OAAO,eAAe,EAAE,OAAO,QAAQ,MAAM,CAAC;CAEtD,OAAO,YAAY,aAAa;AACjC"}
@@ -0,0 +1,80 @@
1
+ import { r as FetchLike } from "./types-Ccb0DXY9.js";
2
+ //#region src/transport/http-service.d.ts
3
+ type HttpServiceOptions = {
4
+ /** Absolute origin or base path. Omit for free-form absolute URLs. */
5
+ baseURL?: string;
6
+ /** Default headers (Authorization, Content-Type, …). */
7
+ headers?: Record<string, string>;
8
+ /** Default timeout ms. */
9
+ timeout?: number;
10
+ /**
11
+ * Injectable fetch (tests via ToolContext / runTool).
12
+ * Passed straight to ofetch — no preconnect wrapper.
13
+ */
14
+ fetch?: FetchLike;
15
+ /** Default abort signal. */
16
+ signal?: AbortSignal;
17
+ /** Prefix for ToolError messages (e.g. "Resend"). */
18
+ label?: string;
19
+ };
20
+ /**
21
+ * Bodies ofetch accepts. `object` covers plain JSON payloads from tool input
22
+ * (including empty objects); FormData/Blob/string live under BodyInit.
23
+ */
24
+ type HttpBody = BodyInit | object | null;
25
+ type HttpCallOptions = {
26
+ query?: Record<string, string | number | boolean | undefined>;
27
+ body?: HttpBody;
28
+ headers?: Record<string, string>;
29
+ /** Status codes returned without throwing. */
30
+ allowStatuses?: readonly number[];
31
+ /** When true, non-2xx is returned instead of throwing. Default false. */
32
+ noThrow?: boolean;
33
+ timeout?: number;
34
+ signal?: AbortSignal;
35
+ /** Override error label for this call. */
36
+ label?: string;
37
+ };
38
+ type HttpBytesOptions = HttpCallOptions & {
39
+ /** Stop reading and throw `too_large` once the response exceeds this many bytes. */
40
+ maxBytes?: number;
41
+ };
42
+ type HttpQueryResult = {
43
+ status: number;
44
+ ok: boolean;
45
+ headers: Headers;
46
+ url: string;
47
+ /** Parsed body (JSON/text per ofetch). */
48
+ data: unknown;
49
+ };
50
+ type HttpBytesResult = {
51
+ status: number;
52
+ ok: boolean;
53
+ headers: Headers;
54
+ url: string;
55
+ bytes: Uint8Array;
56
+ };
57
+ /**
58
+ * HTTP client: query (parsed), bytes, get/post/put/patch/delete/head.
59
+ * Non-2xx → ToolError by default.
60
+ */
61
+ declare class HttpService {
62
+ #private;
63
+ constructor(options?: HttpServiceOptions);
64
+ /** Parsed body (JSON/text). ofetch parses JSON responses by default. */
65
+ query(method: string, path: string, options?: HttpCallOptions): Promise<HttpQueryResult>;
66
+ /**
67
+ * Binary body. `maxBytes` switches to streaming and cancels before an
68
+ * oversized response is materialized.
69
+ */
70
+ bytes(method: string, path: string, options?: HttpBytesOptions): Promise<HttpBytesResult>;
71
+ get(path: string, options?: HttpCallOptions): Promise<HttpQueryResult>;
72
+ post(path: string, body?: HttpBody, options?: HttpCallOptions): Promise<HttpQueryResult>;
73
+ put(path: string, body?: HttpBody, options?: HttpCallOptions): Promise<HttpQueryResult>;
74
+ patch(path: string, body?: HttpBody, options?: HttpCallOptions): Promise<HttpQueryResult>;
75
+ delete(path: string, options?: HttpCallOptions): Promise<HttpQueryResult>;
76
+ head(path: string, options?: HttpCallOptions): Promise<HttpQueryResult>;
77
+ }
78
+ //#endregion
79
+ export { HttpQueryResult as a, HttpCallOptions as i, HttpBytesOptions as n, HttpService as o, HttpBytesResult as r, HttpServiceOptions as s, HttpBody as t };
80
+ //# sourceMappingURL=http-service-T7E5UjP8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-service-T7E5UjP8.d.ts","names":[],"sources":["../src/transport/http-service.ts"],"mappings":";;KAaY;;EAEX;;EAEA,UAAU;;EAEV;;;;;EAKA,QAAQ;;EAER,SAAS;;EAET;;;;;;KAOW,WAAW;KAEX;EACX,QAAQ;EACR,OAAO;EACP,UAAU;;EAEV;;EAEA;EACA;EACA,SAAS;;EAET;;KAGW,mBAAmB;;EAE9B;;KAGW;EACX;EACA;EACA,SAAS;EACT;;EAEA;;KAGW;EACX;EACA;EACA,SAAS;EACT;EACA,OAAO;;;;;;cASK;;EAKZ,YAAY,UAAS;;EAwBf,MAAM,gBAAgB,cAAc,UAAS,kBAAuB,QAAQ;;;;;EAQ5E,MAAM,gBAAgB,cAAc,UAAS,mBAAwB,QAAQ;EAyBnF,IAAI,cAAc,UAAS,kBAAuB,QAAQ;EAI1D,KAAK,cAAc,OAAO,UAAU,UAAS,kBAAuB,QAAQ;EAI5E,IAAI,cAAc,OAAO,UAAU,UAAS,kBAAuB,QAAQ;EAI3E,MAAM,cAAc,OAAO,UAAU,UAAS,kBAAuB,QAAQ;EAI7E,OAAO,cAAc,UAAS,kBAAuB,QAAQ;EAI7D,KAAK,cAAc,UAAS,kBAAuB,QAAQ"}
@@ -0,0 +1,154 @@
1
+ import { A as imessageSetReactionInputSchema, C as imessageMessageOutputSchema, D as imessageSendChatActionInputSchema, E as imessageReadInputSchema, M as imessageUnsendInputSchema, O as imessageSendMediaInputSchema, T as imessageOkOutputSchema, _ as imessageDownloadFileInputSchema, g as imessageClearReactionInputSchema, h as imessageAuthSchema, k as imessageSendTextInputSchema, t as ImessageClient, v as imessageDownloadFileOutputSchema, y as imessageEditTextInputSchema } from "./client-CCKGsTeI.js";
2
+ import { n as defineModule, r as defineTool } from "./define-CvpJ_pNP.js";
3
+ //#region src/vendors/imessage/module.ts
4
+ const imessageSendTextTool = defineTool({
5
+ id: "imessage-send-text",
6
+ name: "imessageSendText",
7
+ description: "Send a text message to an iMessage chat. chat_id is the chat guid (e.g. any;-;+1555…). Returns message_id (guid) for later edits, reactions, or unsend.",
8
+ inputSchema: imessageSendTextInputSchema,
9
+ outputSchema: imessageMessageOutputSchema,
10
+ sideEffect: "send",
11
+ runtime: "node",
12
+ network: true,
13
+ execute: async (input, ctx) => ImessageClient.fromContext(ctx).sendText(input)
14
+ });
15
+ const imessageEditTextTool = defineTool({
16
+ id: "imessage-edit-text",
17
+ name: "imessageEditText",
18
+ description: "Edit the text of a previously sent iMessage. Requires chat guid and message guid.",
19
+ inputSchema: imessageEditTextInputSchema,
20
+ outputSchema: imessageMessageOutputSchema,
21
+ sideEffect: "write",
22
+ runtime: "node",
23
+ network: true,
24
+ execute: async (input, ctx) => ImessageClient.fromContext(ctx).editText(input)
25
+ });
26
+ const imessageSendChatActionTool = defineTool({
27
+ id: "imessage-send-chat-action",
28
+ name: "imessageSendChatAction",
29
+ description: "Show a typing indicator in an iMessage chat while a response is being prepared.",
30
+ inputSchema: imessageSendChatActionInputSchema,
31
+ outputSchema: imessageOkOutputSchema,
32
+ sideEffect: "none",
33
+ runtime: "node",
34
+ network: true,
35
+ execute: async (input, ctx) => {
36
+ await ImessageClient.fromContext(ctx).sendChatAction(input);
37
+ return {
38
+ ok: true,
39
+ space_id: input.chat_id
40
+ };
41
+ }
42
+ });
43
+ const imessageSetReactionTool = defineTool({
44
+ id: "imessage-set-reaction",
45
+ name: "imessageSetReaction",
46
+ description: "React to an iMessage with a tapback (love, like, dislike, laugh, emphasize, question) or free emoji. Returns a message guid for journaling. To clear, call clear-reaction with the same target message_id and emoji.",
47
+ inputSchema: imessageSetReactionInputSchema,
48
+ outputSchema: imessageMessageOutputSchema,
49
+ sideEffect: "write",
50
+ runtime: "node",
51
+ network: true,
52
+ execute: async (input, ctx) => ImessageClient.fromContext(ctx).setReaction(input)
53
+ });
54
+ const imessageClearReactionTool = defineTool({
55
+ id: "imessage-clear-reaction",
56
+ name: "imessageClearReaction",
57
+ description: "Clear an iMessage reaction. message_id is the target message that was reacted to; emoji must match set-reaction (tapback name or emoji character).",
58
+ inputSchema: imessageClearReactionInputSchema,
59
+ outputSchema: imessageOkOutputSchema,
60
+ sideEffect: "delete",
61
+ runtime: "node",
62
+ network: true,
63
+ execute: async (input, ctx) => {
64
+ await ImessageClient.fromContext(ctx).clearReaction(input);
65
+ return {
66
+ ok: true,
67
+ space_id: input.chat_id
68
+ };
69
+ }
70
+ });
71
+ const imessageUnsendTool = defineTool({
72
+ id: "imessage-unsend",
73
+ name: "imessageUnsend",
74
+ description: "Unsend a previously sent iMessage using its chat guid and message guid.",
75
+ inputSchema: imessageUnsendInputSchema,
76
+ outputSchema: imessageOkOutputSchema,
77
+ sideEffect: "delete",
78
+ runtime: "node",
79
+ network: true,
80
+ execute: async (input, ctx) => {
81
+ await ImessageClient.fromContext(ctx).unsend(input);
82
+ return {
83
+ ok: true,
84
+ space_id: input.chat_id
85
+ };
86
+ }
87
+ });
88
+ const imessageReadTool = defineTool({
89
+ id: "imessage-read",
90
+ name: "imessageRead",
91
+ description: "Mark an iMessage conversation as read (whole chat).",
92
+ inputSchema: imessageReadInputSchema,
93
+ outputSchema: imessageOkOutputSchema,
94
+ sideEffect: "write",
95
+ runtime: "node",
96
+ network: true,
97
+ execute: async (input, ctx) => {
98
+ await ImessageClient.fromContext(ctx).read(input);
99
+ return {
100
+ ok: true,
101
+ space_id: input.chat_id
102
+ };
103
+ }
104
+ });
105
+ const imessageSendMediaTool = defineTool({
106
+ id: "imessage-send-media",
107
+ name: "imessageSendMedia",
108
+ description: "Upload and send one photo or document to an iMessage chat from base64 bytes. Optional caption is sent as a follow-up text message.",
109
+ inputSchema: imessageSendMediaInputSchema,
110
+ outputSchema: imessageMessageOutputSchema,
111
+ sideEffect: "send",
112
+ runtime: "node",
113
+ network: true,
114
+ execute: async (input, ctx) => ImessageClient.fromContext(ctx).sendMedia(input)
115
+ });
116
+ const imessageDownloadFileTool = defineTool({
117
+ id: "imessage-download-file",
118
+ name: "imessageDownloadFile",
119
+ description: "Download attachment bytes by attachment guid (file_id from inbound or upload).",
120
+ inputSchema: imessageDownloadFileInputSchema,
121
+ outputSchema: imessageDownloadFileOutputSchema,
122
+ sideEffect: "none",
123
+ runtime: "node",
124
+ network: true,
125
+ execute: async (input, ctx) => ImessageClient.fromContext(ctx).downloadFile(input)
126
+ });
127
+ const imessageModule = defineModule({
128
+ id: "imessage",
129
+ title: "iMessage",
130
+ description: "iMessage tools for sending and editing text or media, typing indicators, reactions, unsend, read state, and attachment download via Photon Spectrum Cloud + Advanced iMessage gRPC (Node only).",
131
+ runtime: "node",
132
+ auth: {
133
+ type: "custom",
134
+ schema: imessageAuthSchema
135
+ },
136
+ categories: ["messaging", "chat"],
137
+ classification: "pii",
138
+ tags: ["imessage", "photon"],
139
+ tools: [
140
+ imessageSendTextTool,
141
+ imessageEditTextTool,
142
+ imessageSendChatActionTool,
143
+ imessageSetReactionTool,
144
+ imessageClearReactionTool,
145
+ imessageUnsendTool,
146
+ imessageReadTool,
147
+ imessageSendMediaTool,
148
+ imessageDownloadFileTool
149
+ ]
150
+ });
151
+ //#endregion
152
+ export { imessageReadTool as a, imessageSendTextTool as c, imessageModule as i, imessageSetReactionTool as l, imessageDownloadFileTool as n, imessageSendChatActionTool as o, imessageEditTextTool as r, imessageSendMediaTool as s, imessageClearReactionTool as t, imessageUnsendTool as u };
153
+
154
+ //# sourceMappingURL=imessage-BSAFOI8Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imessage-BSAFOI8Z.js","names":[],"sources":["../src/vendors/imessage/module.ts"],"sourcesContent":["import { defineModule, defineTool } from '../../core/define'\nimport { ImessageClient } from './client'\nimport {\n\timessageAuthSchema,\n\timessageClearReactionInputSchema,\n\timessageDownloadFileInputSchema,\n\timessageDownloadFileOutputSchema,\n\timessageEditTextInputSchema,\n\timessageMessageOutputSchema,\n\timessageOkOutputSchema,\n\timessageReadInputSchema,\n\timessageSendChatActionInputSchema,\n\timessageSendMediaInputSchema,\n\timessageSendTextInputSchema,\n\timessageSetReactionInputSchema,\n\timessageUnsendInputSchema\n} from './contracts'\n\nexport const imessageSendTextTool = defineTool({\n\tid: 'imessage-send-text',\n\tname: 'imessageSendText',\n\tdescription:\n\t\t'Send a text message to an iMessage chat. chat_id is the chat guid (e.g. any;-;+1555…). Returns message_id (guid) for later edits, reactions, or unsend.',\n\tinputSchema: imessageSendTextInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'send',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).sendText(input)\n})\n\nexport const imessageEditTextTool = defineTool({\n\tid: 'imessage-edit-text',\n\tname: 'imessageEditText',\n\tdescription: 'Edit the text of a previously sent iMessage. Requires chat guid and message guid.',\n\tinputSchema: imessageEditTextInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).editText(input)\n})\n\nexport const imessageSendChatActionTool = defineTool({\n\tid: 'imessage-send-chat-action',\n\tname: 'imessageSendChatAction',\n\tdescription: 'Show a typing indicator in an iMessage chat while a response is being prepared.',\n\tinputSchema: imessageSendChatActionInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'none',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).sendChatAction(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageSetReactionTool = defineTool({\n\tid: 'imessage-set-reaction',\n\tname: 'imessageSetReaction',\n\tdescription:\n\t\t'React to an iMessage with a tapback (love, like, dislike, laugh, emphasize, question) or free emoji. Returns a message guid for journaling. To clear, call clear-reaction with the same target message_id and emoji.',\n\tinputSchema: imessageSetReactionInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).setReaction(input)\n})\n\nexport const imessageClearReactionTool = defineTool({\n\tid: 'imessage-clear-reaction',\n\tname: 'imessageClearReaction',\n\tdescription:\n\t\t'Clear an iMessage reaction. message_id is the target message that was reacted to; emoji must match set-reaction (tapback name or emoji character).',\n\tinputSchema: imessageClearReactionInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).clearReaction(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageUnsendTool = defineTool({\n\tid: 'imessage-unsend',\n\tname: 'imessageUnsend',\n\tdescription: 'Unsend a previously sent iMessage using its chat guid and message guid.',\n\tinputSchema: imessageUnsendInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).unsend(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageReadTool = defineTool({\n\tid: 'imessage-read',\n\tname: 'imessageRead',\n\tdescription: 'Mark an iMessage conversation as read (whole chat).',\n\tinputSchema: imessageReadInputSchema,\n\toutputSchema: imessageOkOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => {\n\t\tawait ImessageClient.fromContext(ctx).read(input)\n\t\treturn { ok: true, space_id: input.chat_id }\n\t}\n})\n\nexport const imessageSendMediaTool = defineTool({\n\tid: 'imessage-send-media',\n\tname: 'imessageSendMedia',\n\tdescription:\n\t\t'Upload and send one photo or document to an iMessage chat from base64 bytes. Optional caption is sent as a follow-up text message.',\n\tinputSchema: imessageSendMediaInputSchema,\n\toutputSchema: imessageMessageOutputSchema,\n\tsideEffect: 'send',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).sendMedia(input)\n})\n\nexport const imessageDownloadFileTool = defineTool({\n\tid: 'imessage-download-file',\n\tname: 'imessageDownloadFile',\n\tdescription: 'Download attachment bytes by attachment guid (file_id from inbound or upload).',\n\tinputSchema: imessageDownloadFileInputSchema,\n\toutputSchema: imessageDownloadFileOutputSchema,\n\tsideEffect: 'none',\n\truntime: 'node',\n\tnetwork: true,\n\texecute: async (input, ctx) => ImessageClient.fromContext(ctx).downloadFile(input)\n})\n\nexport const imessageModule = defineModule({\n\tid: 'imessage',\n\ttitle: 'iMessage',\n\tdescription:\n\t\t'iMessage tools for sending and editing text or media, typing indicators, reactions, unsend, read state, and attachment download via Photon Spectrum Cloud + Advanced iMessage gRPC (Node only).',\n\truntime: 'node',\n\tauth: { type: 'custom', schema: imessageAuthSchema },\n\tcategories: ['messaging', 'chat'],\n\tclassification: 'pii',\n\ttags: ['imessage', 'photon'],\n\ttools: [\n\t\timessageSendTextTool,\n\t\timessageEditTextTool,\n\t\timessageSendChatActionTool,\n\t\timessageSetReactionTool,\n\t\timessageClearReactionTool,\n\t\timessageUnsendTool,\n\t\timessageReadTool,\n\t\timessageSendMediaTool,\n\t\timessageDownloadFileTool\n\t]\n})\n"],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ import { a as ModuleDefinition, o as ToolContext, s as ToolDefinition } from "./types-Ccb0DXY9.js";
2
+ import "./index-CZX5OeOF.js";
3
+ import { s as HttpServiceOptions } from "./http-service-T7E5UjP8.js";
4
+ import "./index-CLmTrcu5.js";
5
+ import { z } from "zod";
6
+ //#region src/vendors/resend/contracts.d.ts
7
+ declare const resendAuthSchema: z.ZodObject<{
8
+ api_key: z.ZodString;
9
+ }, z.core.$strip>;
10
+ type ResendAuth = z.infer<typeof resendAuthSchema>;
11
+ declare const resendSendInputSchema: z.ZodObject<{
12
+ to: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
13
+ email: z.ZodEmail;
14
+ name: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
16
+ email: z.ZodEmail;
17
+ name: z.ZodOptional<z.ZodString>;
18
+ }, z.core.$strip>]>>]>;
19
+ from: z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
20
+ email: z.ZodEmail;
21
+ name: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>]>;
23
+ subject: z.ZodString;
24
+ html: z.ZodOptional<z.ZodString>;
25
+ text: z.ZodOptional<z.ZodString>;
26
+ cc: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
27
+ email: z.ZodEmail;
28
+ name: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
30
+ email: z.ZodEmail;
31
+ name: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$strip>]>>]>>;
33
+ bcc: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
34
+ email: z.ZodEmail;
35
+ name: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strip>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
37
+ email: z.ZodEmail;
38
+ name: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strip>]>>]>>;
40
+ reply_to: z.ZodOptional<z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
41
+ email: z.ZodEmail;
42
+ name: z.ZodOptional<z.ZodString>;
43
+ }, z.core.$strip>]>>;
44
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
45
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
46
+ content: z.ZodString;
47
+ filename: z.ZodString;
48
+ type: z.ZodString;
49
+ disposition: z.ZodOptional<z.ZodEnum<{
50
+ attachment: "attachment";
51
+ inline: "inline";
52
+ }>>;
53
+ content_id: z.ZodOptional<z.ZodString>;
54
+ }, z.core.$strip>>>;
55
+ }, z.core.$strip>;
56
+ declare const resendSendOutputSchema: z.ZodObject<{
57
+ success: z.ZodBoolean;
58
+ id: z.ZodOptional<z.ZodString>;
59
+ }, z.core.$strip>;
60
+ declare const resendSendBatchInputSchema: z.ZodObject<{
61
+ messages: z.ZodArray<z.ZodObject<{
62
+ to: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
63
+ email: z.ZodEmail;
64
+ name: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$strip>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
66
+ email: z.ZodEmail;
67
+ name: z.ZodOptional<z.ZodString>;
68
+ }, z.core.$strip>]>>]>;
69
+ from: z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
70
+ email: z.ZodEmail;
71
+ name: z.ZodOptional<z.ZodString>;
72
+ }, z.core.$strip>]>;
73
+ subject: z.ZodString;
74
+ html: z.ZodOptional<z.ZodString>;
75
+ text: z.ZodOptional<z.ZodString>;
76
+ cc: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
77
+ email: z.ZodEmail;
78
+ name: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
80
+ email: z.ZodEmail;
81
+ name: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strip>]>>]>>;
83
+ bcc: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
84
+ email: z.ZodEmail;
85
+ name: z.ZodOptional<z.ZodString>;
86
+ }, z.core.$strip>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
87
+ email: z.ZodEmail;
88
+ name: z.ZodOptional<z.ZodString>;
89
+ }, z.core.$strip>]>>]>>;
90
+ reply_to: z.ZodOptional<z.ZodUnion<readonly [z.ZodEmail, z.ZodObject<{
91
+ email: z.ZodEmail;
92
+ name: z.ZodOptional<z.ZodString>;
93
+ }, z.core.$strip>]>>;
94
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
95
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
96
+ content: z.ZodString;
97
+ filename: z.ZodString;
98
+ type: z.ZodString;
99
+ disposition: z.ZodOptional<z.ZodEnum<{
100
+ attachment: "attachment";
101
+ inline: "inline";
102
+ }>>;
103
+ content_id: z.ZodOptional<z.ZodString>;
104
+ }, z.core.$strip>>>;
105
+ }, z.core.$strip>>;
106
+ }, z.core.$strip>;
107
+ declare const resendSendBatchOutputSchema: z.ZodObject<{
108
+ results: z.ZodArray<z.ZodObject<{
109
+ index: z.ZodInt;
110
+ ok: z.ZodBoolean;
111
+ value: z.ZodOptional<z.ZodObject<{
112
+ success: z.ZodBoolean;
113
+ id: z.ZodOptional<z.ZodString>;
114
+ }, z.core.$strip>>;
115
+ error: z.ZodOptional<z.ZodObject<{
116
+ code: z.ZodString;
117
+ message: z.ZodString;
118
+ retryable: z.ZodOptional<z.ZodBoolean>;
119
+ }, z.core.$strip>>;
120
+ }, z.core.$strip>>;
121
+ succeeded: z.ZodInt;
122
+ failed: z.ZodInt;
123
+ }, z.core.$strip>;
124
+ type ResendSendInput = z.infer<typeof resendSendInputSchema>;
125
+ type ResendSendOutput = z.infer<typeof resendSendOutputSchema>;
126
+ type ResendSendBatchInput = z.infer<typeof resendSendBatchInputSchema>;
127
+ type ResendSendBatchOutput = z.infer<typeof resendSendBatchOutputSchema>;
128
+ //#endregion
129
+ //#region src/vendors/resend/client.d.ts
130
+ type ResendClientOptions = Pick<HttpServiceOptions, 'fetch' | 'signal'>;
131
+ declare class ResendClient {
132
+ #private;
133
+ constructor(auth: ResendAuth, options?: ResendClientOptions);
134
+ static fromContext(ctx: ToolContext): ResendClient;
135
+ /** POST /emails */
136
+ send(input: ResendSendInput): Promise<ResendSendOutput>;
137
+ /** Sequential batch of independent sends (partial failure OK). */
138
+ sendBatch(input: ResendSendBatchInput): Promise<ResendSendBatchOutput>;
139
+ }
140
+ //#endregion
141
+ //#region src/vendors/resend/module.d.ts
142
+ /** Single-email send tool. Host binds auth via withAuth. */
143
+ declare const resendSendTool: ToolDefinition<{
144
+ to: string | (string | {
145
+ email: string;
146
+ name?: string | undefined;
147
+ })[] | {
148
+ email: string;
149
+ name?: string | undefined;
150
+ };
151
+ from: string | {
152
+ email: string;
153
+ name?: string | undefined;
154
+ };
155
+ subject: string;
156
+ html?: string | undefined;
157
+ text?: string | undefined;
158
+ cc?: string | (string | {
159
+ email: string;
160
+ name?: string | undefined;
161
+ })[] | {
162
+ email: string;
163
+ name?: string | undefined;
164
+ } | undefined;
165
+ bcc?: string | (string | {
166
+ email: string;
167
+ name?: string | undefined;
168
+ })[] | {
169
+ email: string;
170
+ name?: string | undefined;
171
+ } | undefined;
172
+ reply_to?: string | {
173
+ email: string;
174
+ name?: string | undefined;
175
+ } | undefined;
176
+ headers?: Record<string, string> | undefined;
177
+ attachments?: {
178
+ content: string;
179
+ filename: string;
180
+ type: string;
181
+ disposition?: "attachment" | "inline" | undefined;
182
+ content_id?: string | undefined;
183
+ }[] | undefined;
184
+ }, {
185
+ success: boolean;
186
+ id?: string | undefined;
187
+ }>;
188
+ /** Batch send (max 20). Per-message success/error; does not abort the batch. */
189
+ declare const resendSendBatchTool: ToolDefinition<{
190
+ messages: {
191
+ to: string | (string | {
192
+ email: string;
193
+ name?: string | undefined;
194
+ })[] | {
195
+ email: string;
196
+ name?: string | undefined;
197
+ };
198
+ from: string | {
199
+ email: string;
200
+ name?: string | undefined;
201
+ };
202
+ subject: string;
203
+ html?: string | undefined;
204
+ text?: string | undefined;
205
+ cc?: string | (string | {
206
+ email: string;
207
+ name?: string | undefined;
208
+ })[] | {
209
+ email: string;
210
+ name?: string | undefined;
211
+ } | undefined;
212
+ bcc?: string | (string | {
213
+ email: string;
214
+ name?: string | undefined;
215
+ })[] | {
216
+ email: string;
217
+ name?: string | undefined;
218
+ } | undefined;
219
+ reply_to?: string | {
220
+ email: string;
221
+ name?: string | undefined;
222
+ } | undefined;
223
+ headers?: Record<string, string> | undefined;
224
+ attachments?: {
225
+ content: string;
226
+ filename: string;
227
+ type: string;
228
+ disposition?: "attachment" | "inline" | undefined;
229
+ content_id?: string | undefined;
230
+ }[] | undefined;
231
+ }[];
232
+ }, {
233
+ results: {
234
+ index: number;
235
+ ok: boolean;
236
+ value?: {
237
+ success: boolean;
238
+ id?: string | undefined;
239
+ } | undefined;
240
+ error?: {
241
+ code: string;
242
+ message: string;
243
+ retryable?: boolean | undefined;
244
+ } | undefined;
245
+ }[];
246
+ succeeded: number;
247
+ failed: number;
248
+ }>;
249
+ declare const resendModule: ModuleDefinition<{
250
+ api_key: string;
251
+ }>;
252
+ //#endregion
253
+ export { ResendClientOptions as a, ResendSendBatchOutput as c, resendAuthSchema as d, resendSendBatchInputSchema as f, resendSendOutputSchema as h, ResendClient as i, ResendSendInput as l, resendSendInputSchema as m, resendSendBatchTool as n, ResendAuth as o, resendSendBatchOutputSchema as p, resendSendTool as r, ResendSendBatchInput as s, resendModule as t, ResendSendOutput as u };
254
+ //# sourceMappingURL=index-BU4gmYO8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BU4gmYO8.d.ts","names":[],"sources":["../src/vendors/resend/contracts.ts","../src/vendors/resend/client.ts","../src/vendors/resend/module.ts"],"mappings":";;;;;;cASa,kBAAgB,EAAA;;GAE3B,EAAA,KAAA;KAEU,aAAa,EAAE,aAAa;cAE3B,uBAAqB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2B/B,EAAA,KAAA;cAEU,wBAAsB,EAAA;;;GAGjC,EAAA,KAAA;cAEW,4BAA0B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAErC,EAAA,KAAA;cAEW,6BAA2B,EAAA;;;;;;;;;;;;;;;;GAA4C,EAAA,KAAA;KAExE,kBAAkB,EAAE,aAAa;KACjC,mBAAmB,EAAE,aAAa;KAClC,uBAAuB,EAAE,aAAa;KACtC,wBAAwB,EAAE,aAAa;;;KCrCvC,sBAAsB,KAAK;cAE1B;;EAGZ,YAAY,MAAM,YAAY,UAAS;SAmBhC,YAAY,KAAK,cAAc;;EAShC,KAAK,OAAO,kBAAkB,QAAQ;;EAOtC,UAAU,OAAO,uBAAuB,QAAQ;;;;;cClD1C,gBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAA;;;;;;;;;;;;;cAaA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;cAWA,cAAA;EAAY"}