@cloudflare/tanstack-ai 0.1.5 → 0.1.7

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 (176) hide show
  1. package/README.md +6 -6
  2. package/dist/adapters/anthropic.cjs +32 -11
  3. package/dist/adapters/anthropic.cjs.map +1 -1
  4. package/dist/adapters/anthropic.d.cts +23 -5
  5. package/dist/adapters/anthropic.d.mts +23 -0
  6. package/dist/adapters/anthropic.mjs +30 -0
  7. package/dist/adapters/anthropic.mjs.map +1 -0
  8. package/dist/adapters/gemini.cjs +83 -20
  9. package/dist/adapters/gemini.cjs.map +1 -1
  10. package/dist/adapters/gemini.d.cts +52 -14
  11. package/dist/adapters/gemini.d.mts +52 -0
  12. package/dist/adapters/gemini.mjs +76 -0
  13. package/dist/adapters/gemini.mjs.map +1 -0
  14. package/dist/adapters/grok.cjs +44 -15
  15. package/dist/adapters/grok.cjs.map +1 -1
  16. package/dist/adapters/grok.d.cts +26 -9
  17. package/dist/adapters/grok.d.mts +26 -0
  18. package/dist/adapters/grok.mjs +40 -0
  19. package/dist/adapters/grok.mjs.map +1 -0
  20. package/dist/adapters/openai.cjs +76 -27
  21. package/dist/adapters/openai.cjs.map +1 -1
  22. package/dist/adapters/openai.d.cts +45 -17
  23. package/dist/adapters/openai.d.mts +45 -0
  24. package/dist/adapters/openai.mjs +66 -0
  25. package/dist/adapters/openai.mjs.map +1 -0
  26. package/dist/adapters/openrouter.cjs +83 -11
  27. package/dist/adapters/openrouter.cjs.map +1 -1
  28. package/dist/adapters/openrouter.d.cts +39 -7
  29. package/dist/adapters/openrouter.d.mts +39 -0
  30. package/dist/adapters/openrouter.mjs +81 -0
  31. package/dist/adapters/openrouter.mjs.map +1 -0
  32. package/dist/adapters/workers-ai-image.cjs +97 -11
  33. package/dist/adapters/workers-ai-image.cjs.map +1 -1
  34. package/dist/adapters/workers-ai-image.d.cts +41 -3
  35. package/dist/adapters/workers-ai-image.d.mts +41 -0
  36. package/dist/adapters/workers-ai-image.mjs +96 -0
  37. package/dist/adapters/workers-ai-image.mjs.map +1 -0
  38. package/dist/adapters/workers-ai-summarize.cjs +86 -10
  39. package/dist/adapters/workers-ai-summarize.cjs.map +1 -1
  40. package/dist/adapters/workers-ai-summarize.d.cts +42 -3
  41. package/dist/adapters/workers-ai-summarize.d.mts +42 -0
  42. package/dist/adapters/workers-ai-summarize.mjs +85 -0
  43. package/dist/adapters/workers-ai-summarize.mjs.map +1 -0
  44. package/dist/adapters/workers-ai-transcription.cjs +200 -11
  45. package/dist/adapters/workers-ai-transcription.cjs.map +1 -1
  46. package/dist/adapters/workers-ai-transcription.d.cts +74 -3
  47. package/dist/adapters/workers-ai-transcription.d.mts +74 -0
  48. package/dist/adapters/workers-ai-transcription.mjs +199 -0
  49. package/dist/adapters/workers-ai-transcription.mjs.map +1 -0
  50. package/dist/adapters/workers-ai-tts.cjs +112 -11
  51. package/dist/adapters/workers-ai-tts.cjs.map +1 -1
  52. package/dist/adapters/workers-ai-tts.d.cts +54 -3
  53. package/dist/adapters/workers-ai-tts.d.mts +54 -0
  54. package/dist/adapters/workers-ai-tts.mjs +111 -0
  55. package/dist/adapters/workers-ai-tts.mjs.map +1 -0
  56. package/dist/adapters/workers-ai.cjs +4 -11
  57. package/dist/adapters/workers-ai.d.cts +18 -3
  58. package/dist/adapters/workers-ai.d.mts +18 -0
  59. package/dist/adapters/workers-ai.mjs +470 -0
  60. package/dist/adapters/workers-ai.mjs.map +1 -0
  61. package/dist/binary-C9FAYwZj.cjs +70 -0
  62. package/dist/binary-C9FAYwZj.cjs.map +1 -0
  63. package/dist/binary-p4H_N_3M.mjs +59 -0
  64. package/dist/binary-p4H_N_3M.mjs.map +1 -0
  65. package/dist/create-fetcher-5iL34e6H.cjs +310 -0
  66. package/dist/create-fetcher-5iL34e6H.cjs.map +1 -0
  67. package/dist/create-fetcher-6p6heb85.d.mts +93 -0
  68. package/dist/create-fetcher-DY7wfYYy.mjs +281 -0
  69. package/dist/create-fetcher-DY7wfYYy.mjs.map +1 -0
  70. package/dist/create-fetcher-vAQ8WW-p.d.cts +93 -0
  71. package/dist/defineProperty-CbyrzcbA.mjs +39 -0
  72. package/dist/defineProperty-DQoAg20E.cjs +44 -0
  73. package/dist/index.cjs +50 -97
  74. package/dist/index.d.cts +12 -64
  75. package/dist/index.d.mts +12 -0
  76. package/dist/index.mjs +11 -0
  77. package/dist/workers-ai-Bm7Up4or.cjs +510 -0
  78. package/dist/workers-ai-Bm7Up4or.cjs.map +1 -0
  79. package/dist/workers-ai-rest-CkNCtBwv.cjs +85 -0
  80. package/dist/workers-ai-rest-CkNCtBwv.cjs.map +1 -0
  81. package/dist/workers-ai-rest-GKy2r7eG.mjs +74 -0
  82. package/dist/workers-ai-rest-GKy2r7eG.mjs.map +1 -0
  83. package/package.json +73 -40
  84. package/dist/_tsup-dts-rollup.d.cts +0 -837
  85. package/dist/_tsup-dts-rollup.d.ts +0 -837
  86. package/dist/adapters/anthropic.d.ts +0 -5
  87. package/dist/adapters/anthropic.js +0 -13
  88. package/dist/adapters/anthropic.js.map +0 -1
  89. package/dist/adapters/gemini.d.ts +0 -14
  90. package/dist/adapters/gemini.js +0 -22
  91. package/dist/adapters/gemini.js.map +0 -1
  92. package/dist/adapters/grok.d.ts +0 -9
  93. package/dist/adapters/grok.js +0 -17
  94. package/dist/adapters/grok.js.map +0 -1
  95. package/dist/adapters/openai.d.ts +0 -17
  96. package/dist/adapters/openai.js +0 -29
  97. package/dist/adapters/openai.js.map +0 -1
  98. package/dist/adapters/openrouter.d.ts +0 -7
  99. package/dist/adapters/openrouter.js +0 -13
  100. package/dist/adapters/openrouter.js.map +0 -1
  101. package/dist/adapters/workers-ai-image.d.ts +0 -3
  102. package/dist/adapters/workers-ai-image.js +0 -13
  103. package/dist/adapters/workers-ai-image.js.map +0 -1
  104. package/dist/adapters/workers-ai-summarize.d.ts +0 -3
  105. package/dist/adapters/workers-ai-summarize.js +0 -12
  106. package/dist/adapters/workers-ai-summarize.js.map +0 -1
  107. package/dist/adapters/workers-ai-transcription.d.ts +0 -3
  108. package/dist/adapters/workers-ai-transcription.js +0 -13
  109. package/dist/adapters/workers-ai-transcription.js.map +0 -1
  110. package/dist/adapters/workers-ai-tts.d.ts +0 -3
  111. package/dist/adapters/workers-ai-tts.js +0 -13
  112. package/dist/adapters/workers-ai-tts.js.map +0 -1
  113. package/dist/adapters/workers-ai.cjs.map +0 -1
  114. package/dist/adapters/workers-ai.d.ts +0 -3
  115. package/dist/adapters/workers-ai.js +0 -11
  116. package/dist/adapters/workers-ai.js.map +0 -1
  117. package/dist/chunk-2VII5BK2.js +0 -42
  118. package/dist/chunk-2VII5BK2.js.map +0 -1
  119. package/dist/chunk-2YEF5YWC.cjs +0 -111
  120. package/dist/chunk-2YEF5YWC.cjs.map +0 -1
  121. package/dist/chunk-3L6IRVAV.cjs +0 -327
  122. package/dist/chunk-3L6IRVAV.cjs.map +0 -1
  123. package/dist/chunk-3VQDXJLW.cjs +0 -46
  124. package/dist/chunk-3VQDXJLW.cjs.map +0 -1
  125. package/dist/chunk-4DE2IREA.cjs +0 -8
  126. package/dist/chunk-4DE2IREA.cjs.map +0 -1
  127. package/dist/chunk-5WAK4STT.cjs +0 -98
  128. package/dist/chunk-5WAK4STT.cjs.map +0 -1
  129. package/dist/chunk-72MGG2FX.cjs +0 -218
  130. package/dist/chunk-72MGG2FX.cjs.map +0 -1
  131. package/dist/chunk-73UI5P36.js +0 -48
  132. package/dist/chunk-73UI5P36.js.map +0 -1
  133. package/dist/chunk-7HSUHP63.cjs +0 -42
  134. package/dist/chunk-7HSUHP63.cjs.map +0 -1
  135. package/dist/chunk-CEQA4ZVD.cjs +0 -48
  136. package/dist/chunk-CEQA4ZVD.cjs.map +0 -1
  137. package/dist/chunk-GT3TZXZX.cjs +0 -57
  138. package/dist/chunk-GT3TZXZX.cjs.map +0 -1
  139. package/dist/chunk-HPMTYA35.cjs +0 -86
  140. package/dist/chunk-HPMTYA35.cjs.map +0 -1
  141. package/dist/chunk-IQAGFHRT.cjs +0 -521
  142. package/dist/chunk-IQAGFHRT.cjs.map +0 -1
  143. package/dist/chunk-J5DSSZTO.js +0 -71
  144. package/dist/chunk-J5DSSZTO.js.map +0 -1
  145. package/dist/chunk-JDDH3EZD.js +0 -57
  146. package/dist/chunk-JDDH3EZD.js.map +0 -1
  147. package/dist/chunk-JHZAPIW5.cjs +0 -57
  148. package/dist/chunk-JHZAPIW5.cjs.map +0 -1
  149. package/dist/chunk-JK4WXQVL.js +0 -31
  150. package/dist/chunk-JK4WXQVL.js.map +0 -1
  151. package/dist/chunk-KQ3JSPII.js +0 -521
  152. package/dist/chunk-KQ3JSPII.js.map +0 -1
  153. package/dist/chunk-MBDHL2I4.js +0 -111
  154. package/dist/chunk-MBDHL2I4.js.map +0 -1
  155. package/dist/chunk-MM5TKP3U.js +0 -218
  156. package/dist/chunk-MM5TKP3U.js.map +0 -1
  157. package/dist/chunk-NGOJB274.js +0 -327
  158. package/dist/chunk-NGOJB274.js.map +0 -1
  159. package/dist/chunk-OU57O7JK.js +0 -98
  160. package/dist/chunk-OU57O7JK.js.map +0 -1
  161. package/dist/chunk-RQLWAWHC.js +0 -86
  162. package/dist/chunk-RQLWAWHC.js.map +0 -1
  163. package/dist/chunk-V4LKHWJA.cjs +0 -71
  164. package/dist/chunk-V4LKHWJA.cjs.map +0 -1
  165. package/dist/chunk-V6TY7KAL.js +0 -8
  166. package/dist/chunk-V6TY7KAL.js.map +0 -1
  167. package/dist/chunk-W24YURD6.js +0 -57
  168. package/dist/chunk-W24YURD6.js.map +0 -1
  169. package/dist/chunk-XU7YEPML.js +0 -46
  170. package/dist/chunk-XU7YEPML.js.map +0 -1
  171. package/dist/chunk-ZLPTIWRB.cjs +0 -31
  172. package/dist/chunk-ZLPTIWRB.cjs.map +0 -1
  173. package/dist/index.cjs.map +0 -1
  174. package/dist/index.d.ts +0 -64
  175. package/dist/index.js +0 -97
  176. package/dist/index.js.map +0 -1
@@ -1,5 +0,0 @@
1
- export { createAnthropicChat_alias_1 as createAnthropicChat } from '../_tsup-dts-rollup.js';
2
- export { createAnthropicSummarize_alias_1 as createAnthropicSummarize } from '../_tsup-dts-rollup.js';
3
- export { AnthropicGatewayConfig_alias_1 as AnthropicGatewayConfig } from '../_tsup-dts-rollup.js';
4
- export { ANTHROPIC_MODELS_alias_1 as ANTHROPIC_MODELS } from '../_tsup-dts-rollup.js';
5
- export { AnthropicChatModel_alias_1 as AnthropicChatModel } from '../_tsup-dts-rollup.js';
@@ -1,13 +0,0 @@
1
- import {
2
- ANTHROPIC_MODELS,
3
- createAnthropicChat,
4
- createAnthropicSummarize
5
- } from "../chunk-JK4WXQVL.js";
6
- import "../chunk-NGOJB274.js";
7
- import "../chunk-V6TY7KAL.js";
8
- export {
9
- ANTHROPIC_MODELS,
10
- createAnthropicChat,
11
- createAnthropicSummarize
12
- };
13
- //# sourceMappingURL=anthropic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,14 +0,0 @@
1
- export { createGeminiChat_alias_1 as createGeminiChat } from '../_tsup-dts-rollup.js';
2
- export { createGeminiImage_alias_1 as createGeminiImage } from '../_tsup-dts-rollup.js';
3
- export { createGeminiSummarize_alias_1 as createGeminiSummarize } from '../_tsup-dts-rollup.js';
4
- export { createGeminiTts_alias_1 as createGeminiTts } from '../_tsup-dts-rollup.js';
5
- export { GeminiTTSModel_alias_1 as GeminiTTSModel } from '../_tsup-dts-rollup.js';
6
- export { GeminiGatewayConfig_alias_1 as GeminiGatewayConfig } from '../_tsup-dts-rollup.js';
7
- export { GeminiChatModel_alias_1 as GeminiChatModel } from '../_tsup-dts-rollup.js';
8
- export { GeminiTextModels_alias_1 as GeminiTextModels } from '../_tsup-dts-rollup.js';
9
- export { GeminiImageModels_alias_1 as GeminiImageModels } from '../_tsup-dts-rollup.js';
10
- export { GeminiSummarizeModels_alias_1 as GeminiSummarizeModels } from '../_tsup-dts-rollup.js';
11
- export { GeminiTTSModels_alias_1 as GeminiTTSModels } from '../_tsup-dts-rollup.js';
12
- export { GeminiTextModel_alias_1 as GeminiTextModel } from '../_tsup-dts-rollup.js';
13
- export { GeminiImageModel_alias_1 as GeminiImageModel } from '../_tsup-dts-rollup.js';
14
- export { GeminiSummarizeModel_alias_1 as GeminiSummarizeModel } from '../_tsup-dts-rollup.js';
@@ -1,22 +0,0 @@
1
- import {
2
- GeminiImageModels,
3
- GeminiSummarizeModels,
4
- GeminiTTSModels,
5
- GeminiTextModels,
6
- createGeminiChat,
7
- createGeminiImage,
8
- createGeminiSummarize,
9
- createGeminiTts
10
- } from "../chunk-J5DSSZTO.js";
11
- import "../chunk-V6TY7KAL.js";
12
- export {
13
- GeminiImageModels,
14
- GeminiSummarizeModels,
15
- GeminiTTSModels,
16
- GeminiTextModels,
17
- createGeminiChat,
18
- createGeminiImage,
19
- createGeminiSummarize,
20
- createGeminiTts
21
- };
22
- //# sourceMappingURL=gemini.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,9 +0,0 @@
1
- export { createGrokChat_alias_1 as createGrokChat } from '../_tsup-dts-rollup.js';
2
- export { createGrokImage_alias_1 as createGrokImage } from '../_tsup-dts-rollup.js';
3
- export { createGrokSummarize_alias_1 as createGrokSummarize } from '../_tsup-dts-rollup.js';
4
- export { GrokGatewayConfig_alias_1 as GrokGatewayConfig } from '../_tsup-dts-rollup.js';
5
- export { GROK_CHAT_MODELS_alias_1 as GROK_CHAT_MODELS } from '../_tsup-dts-rollup.js';
6
- export { GROK_IMAGE_MODELS_alias_1 as GROK_IMAGE_MODELS } from '../_tsup-dts-rollup.js';
7
- export { GrokChatModel_alias_1 as GrokChatModel } from '../_tsup-dts-rollup.js';
8
- export { GrokImageModel_alias_1 as GrokImageModel } from '../_tsup-dts-rollup.js';
9
- export { GrokSummarizeModel_alias_1 as GrokSummarizeModel } from '../_tsup-dts-rollup.js';
@@ -1,17 +0,0 @@
1
- import {
2
- GROK_CHAT_MODELS,
3
- GROK_IMAGE_MODELS,
4
- createGrokChat,
5
- createGrokImage,
6
- createGrokSummarize
7
- } from "../chunk-73UI5P36.js";
8
- import "../chunk-NGOJB274.js";
9
- import "../chunk-V6TY7KAL.js";
10
- export {
11
- GROK_CHAT_MODELS,
12
- GROK_IMAGE_MODELS,
13
- createGrokChat,
14
- createGrokImage,
15
- createGrokSummarize
16
- };
17
- //# sourceMappingURL=grok.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,17 +0,0 @@
1
- export { createOpenAiChat_alias_1 as createOpenAiChat } from '../_tsup-dts-rollup.js';
2
- export { createOpenAiSummarize_alias_1 as createOpenAiSummarize } from '../_tsup-dts-rollup.js';
3
- export { createOpenAiImage_alias_1 as createOpenAiImage } from '../_tsup-dts-rollup.js';
4
- export { createOpenAiTranscription_alias_1 as createOpenAiTranscription } from '../_tsup-dts-rollup.js';
5
- export { createOpenAiTts_alias_1 as createOpenAiTts } from '../_tsup-dts-rollup.js';
6
- export { createOpenAiVideo_alias_1 as createOpenAiVideo } from '../_tsup-dts-rollup.js';
7
- export { OpenAiGatewayConfig_alias_1 as OpenAiGatewayConfig } from '../_tsup-dts-rollup.js';
8
- export { OPENAI_CHAT_MODELS_alias_1 as OPENAI_CHAT_MODELS } from '../_tsup-dts-rollup.js';
9
- export { OPENAI_IMAGE_MODELS_alias_1 as OPENAI_IMAGE_MODELS } from '../_tsup-dts-rollup.js';
10
- export { OPENAI_TRANSCRIPTION_MODELS_alias_1 as OPENAI_TRANSCRIPTION_MODELS } from '../_tsup-dts-rollup.js';
11
- export { OPENAI_TTS_MODELS_alias_1 as OPENAI_TTS_MODELS } from '../_tsup-dts-rollup.js';
12
- export { OPENAI_VIDEO_MODELS_alias_1 as OPENAI_VIDEO_MODELS } from '../_tsup-dts-rollup.js';
13
- export { OpenAIChatModel_alias_1 as OpenAIChatModel } from '../_tsup-dts-rollup.js';
14
- export { OpenAIImageModel_alias_1 as OpenAIImageModel } from '../_tsup-dts-rollup.js';
15
- export { OpenAITranscriptionModel_alias_1 as OpenAITranscriptionModel } from '../_tsup-dts-rollup.js';
16
- export { OpenAITTSModel_alias_1 as OpenAITTSModel } from '../_tsup-dts-rollup.js';
17
- export { OpenAIVideoModel_alias_1 as OpenAIVideoModel } from '../_tsup-dts-rollup.js';
@@ -1,29 +0,0 @@
1
- import {
2
- OPENAI_CHAT_MODELS,
3
- OPENAI_IMAGE_MODELS,
4
- OPENAI_TRANSCRIPTION_MODELS,
5
- OPENAI_TTS_MODELS,
6
- OPENAI_VIDEO_MODELS,
7
- createOpenAiChat,
8
- createOpenAiImage,
9
- createOpenAiSummarize,
10
- createOpenAiTranscription,
11
- createOpenAiTts,
12
- createOpenAiVideo
13
- } from "../chunk-JDDH3EZD.js";
14
- import "../chunk-NGOJB274.js";
15
- import "../chunk-V6TY7KAL.js";
16
- export {
17
- OPENAI_CHAT_MODELS,
18
- OPENAI_IMAGE_MODELS,
19
- OPENAI_TRANSCRIPTION_MODELS,
20
- OPENAI_TTS_MODELS,
21
- OPENAI_VIDEO_MODELS,
22
- createOpenAiChat,
23
- createOpenAiImage,
24
- createOpenAiSummarize,
25
- createOpenAiTranscription,
26
- createOpenAiTts,
27
- createOpenAiVideo
28
- };
29
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,7 +0,0 @@
1
- export { createOpenRouterChat_alias_1 as createOpenRouterChat } from '../_tsup-dts-rollup.js';
2
- export { createOpenRouterImage_alias_1 as createOpenRouterImage } from '../_tsup-dts-rollup.js';
3
- export { createOpenRouterSummarize_alias_1 as createOpenRouterSummarize } from '../_tsup-dts-rollup.js';
4
- export { OpenRouterGatewayConfig_alias_1 as OpenRouterGatewayConfig } from '../_tsup-dts-rollup.js';
5
- export { OpenRouterChatModel_alias_1 as OpenRouterChatModel } from '../_tsup-dts-rollup.js';
6
- export { OpenRouterImageModel_alias_1 as OpenRouterImageModel } from '../_tsup-dts-rollup.js';
7
- export { OpenRouterSummarizeModel_alias_1 as OpenRouterSummarizeModel } from '../_tsup-dts-rollup.js';
@@ -1,13 +0,0 @@
1
- import {
2
- createOpenRouterChat,
3
- createOpenRouterImage,
4
- createOpenRouterSummarize
5
- } from "../chunk-W24YURD6.js";
6
- import "../chunk-NGOJB274.js";
7
- import "../chunk-V6TY7KAL.js";
8
- export {
9
- createOpenRouterChat,
10
- createOpenRouterImage,
11
- createOpenRouterSummarize
12
- };
13
- //# sourceMappingURL=openrouter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +0,0 @@
1
- export { createWorkersAiImage_alias_1 as createWorkersAiImage } from '../_tsup-dts-rollup.js';
2
- export { WorkersAiImageModel_alias_1 as WorkersAiImageModel } from '../_tsup-dts-rollup.js';
3
- export { WorkersAiImageAdapter } from '../_tsup-dts-rollup.js';
@@ -1,13 +0,0 @@
1
- import {
2
- WorkersAiImageAdapter,
3
- createWorkersAiImage
4
- } from "../chunk-OU57O7JK.js";
5
- import "../chunk-XU7YEPML.js";
6
- import "../chunk-2VII5BK2.js";
7
- import "../chunk-NGOJB274.js";
8
- import "../chunk-V6TY7KAL.js";
9
- export {
10
- WorkersAiImageAdapter,
11
- createWorkersAiImage
12
- };
13
- //# sourceMappingURL=workers-ai-image.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +0,0 @@
1
- export { createWorkersAiSummarize_alias_1 as createWorkersAiSummarize } from '../_tsup-dts-rollup.js';
2
- export { WorkersAiSummarizeModel_alias_1 as WorkersAiSummarizeModel } from '../_tsup-dts-rollup.js';
3
- export { WorkersAiSummarizeAdapter } from '../_tsup-dts-rollup.js';
@@ -1,12 +0,0 @@
1
- import {
2
- WorkersAiSummarizeAdapter,
3
- createWorkersAiSummarize
4
- } from "../chunk-RQLWAWHC.js";
5
- import "../chunk-2VII5BK2.js";
6
- import "../chunk-NGOJB274.js";
7
- import "../chunk-V6TY7KAL.js";
8
- export {
9
- WorkersAiSummarizeAdapter,
10
- createWorkersAiSummarize
11
- };
12
- //# sourceMappingURL=workers-ai-summarize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +0,0 @@
1
- export { createWorkersAiTranscription_alias_1 as createWorkersAiTranscription } from '../_tsup-dts-rollup.js';
2
- export { WorkersAiTranscriptionModel_alias_1 as WorkersAiTranscriptionModel } from '../_tsup-dts-rollup.js';
3
- export { WorkersAiTranscriptionAdapter } from '../_tsup-dts-rollup.js';
@@ -1,13 +0,0 @@
1
- import {
2
- WorkersAiTranscriptionAdapter,
3
- createWorkersAiTranscription
4
- } from "../chunk-MM5TKP3U.js";
5
- import "../chunk-XU7YEPML.js";
6
- import "../chunk-2VII5BK2.js";
7
- import "../chunk-NGOJB274.js";
8
- import "../chunk-V6TY7KAL.js";
9
- export {
10
- WorkersAiTranscriptionAdapter,
11
- createWorkersAiTranscription
12
- };
13
- //# sourceMappingURL=workers-ai-transcription.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +0,0 @@
1
- export { createWorkersAiTts_alias_1 as createWorkersAiTts } from '../_tsup-dts-rollup.js';
2
- export { WorkersAiTTSModel_alias_1 as WorkersAiTTSModel } from '../_tsup-dts-rollup.js';
3
- export { WorkersAiTTSAdapter } from '../_tsup-dts-rollup.js';
@@ -1,13 +0,0 @@
1
- import {
2
- WorkersAiTTSAdapter,
3
- createWorkersAiTts
4
- } from "../chunk-MBDHL2I4.js";
5
- import "../chunk-XU7YEPML.js";
6
- import "../chunk-2VII5BK2.js";
7
- import "../chunk-NGOJB274.js";
8
- import "../chunk-V6TY7KAL.js";
9
- export {
10
- WorkersAiTTSAdapter,
11
- createWorkersAiTts
12
- };
13
- //# sourceMappingURL=workers-ai-tts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/ai/ai/packages/tanstack-ai/dist/adapters/workers-ai.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACF,2IAAC","file":"/home/runner/work/ai/ai/packages/tanstack-ai/dist/adapters/workers-ai.cjs"}
@@ -1,3 +0,0 @@
1
- export { createWorkersAiChat_alias_1 as createWorkersAiChat } from '../_tsup-dts-rollup.js';
2
- export { WorkersAiTextModel_alias_1 as WorkersAiTextModel } from '../_tsup-dts-rollup.js';
3
- export { WorkersAiTextAdapter } from '../_tsup-dts-rollup.js';
@@ -1,11 +0,0 @@
1
- import {
2
- WorkersAiTextAdapter,
3
- createWorkersAiChat
4
- } from "../chunk-KQ3JSPII.js";
5
- import "../chunk-NGOJB274.js";
6
- import "../chunk-V6TY7KAL.js";
7
- export {
8
- WorkersAiTextAdapter,
9
- createWorkersAiChat
10
- };
11
- //# sourceMappingURL=workers-ai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,42 +0,0 @@
1
- // src/utils/workers-ai-rest.ts
2
- var WORKERS_AI_REST_BASE = "https://api.cloudflare.com/client/v4/accounts";
3
- async function workersAiRestFetch(config, model, body, options) {
4
- const response = await fetch(`${WORKERS_AI_REST_BASE}/${config.accountId}/ai/run/${model}`, {
5
- method: "POST",
6
- headers: {
7
- Authorization: `Bearer ${config.apiKey}`,
8
- "Content-Type": "application/json"
9
- },
10
- body: JSON.stringify(body),
11
- signal: options?.signal
12
- });
13
- if (!response.ok) {
14
- const errorText = await response.text();
15
- const label = options?.label ?? "Workers AI";
16
- throw new Error(`${label} request failed (${response.status}): ${errorText}`);
17
- }
18
- return response;
19
- }
20
- async function workersAiRestFetchBinary(config, model, audioBytes, contentType, options) {
21
- const response = await fetch(`${WORKERS_AI_REST_BASE}/${config.accountId}/ai/run/${model}`, {
22
- method: "POST",
23
- headers: {
24
- Authorization: `Bearer ${config.apiKey}`,
25
- "Content-Type": contentType
26
- },
27
- body: audioBytes,
28
- signal: options?.signal
29
- });
30
- if (!response.ok) {
31
- const errorText = await response.text();
32
- const label = options?.label ?? "Workers AI";
33
- throw new Error(`${label} request failed (${response.status}): ${errorText}`);
34
- }
35
- return response;
36
- }
37
-
38
- export {
39
- workersAiRestFetch,
40
- workersAiRestFetchBinary
41
- };
42
- //# sourceMappingURL=chunk-2VII5BK2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/workers-ai-rest.ts"],"sourcesContent":["import type { WorkersAiDirectCredentialsConfig } from \"./create-fetcher\";\n\n/**\n * Workers AI REST API base URL.\n * All model endpoints follow the pattern: `${BASE_URL}/${accountId}/ai/run/${model}`\n */\nconst WORKERS_AI_REST_BASE = \"https://api.cloudflare.com/client/v4/accounts\";\n\n/**\n * Make a REST API call to Workers AI.\n *\n * Handles the common pattern shared by all Workers AI adapters:\n * - Build the URL from account ID and model name\n * - Set Authorization and Content-Type headers\n * - Check response.ok and throw a descriptive error on failure\n *\n * @param config Credentials config with accountId and apiKey\n * @param model Workers AI model name (e.g. \"@cf/stabilityai/stable-diffusion-xl-base-1.0\")\n * @param body JSON request body\n * @param options Optional settings:\n * - `label` — human-readable label for error messages (default: \"Workers AI\")\n * - `signal` — AbortSignal for request cancellation / timeout\n * @returns The raw Response object — caller is responsible for parsing\n */\nexport async function workersAiRestFetch(\n\tconfig: WorkersAiDirectCredentialsConfig,\n\tmodel: string,\n\tbody: Record<string, unknown>,\n\toptions?: { label?: string; signal?: AbortSignal },\n): Promise<Response> {\n\tconst response = await fetch(`${WORKERS_AI_REST_BASE}/${config.accountId}/ai/run/${model}`, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\tAuthorization: `Bearer ${config.apiKey}`,\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t},\n\t\tbody: JSON.stringify(body),\n\t\tsignal: options?.signal,\n\t});\n\n\tif (!response.ok) {\n\t\tconst errorText = await response.text();\n\t\tconst label = options?.label ?? \"Workers AI\";\n\t\tthrow new Error(`${label} request failed (${response.status}): ${errorText}`);\n\t}\n\n\treturn response;\n}\n\n/**\n * Make a binary REST API call to Workers AI.\n *\n * Some models (e.g. `@cf/deepgram/nova-3`) require raw binary audio with an\n * appropriate `Content-Type` header instead of JSON. This function sends the\n * audio bytes directly as the request body.\n *\n * @param config Credentials config with accountId and apiKey\n * @param model Workers AI model name\n * @param audioBytes Raw audio bytes\n * @param contentType MIME type of the audio (e.g. \"audio/wav\")\n * @param options Optional settings\n * @returns The raw Response object\n */\nexport async function workersAiRestFetchBinary(\n\tconfig: WorkersAiDirectCredentialsConfig,\n\tmodel: string,\n\taudioBytes: Uint8Array,\n\tcontentType: string,\n\toptions?: { label?: string; signal?: AbortSignal },\n): Promise<Response> {\n\tconst response = await fetch(`${WORKERS_AI_REST_BASE}/${config.accountId}/ai/run/${model}`, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\tAuthorization: `Bearer ${config.apiKey}`,\n\t\t\t\"Content-Type\": contentType,\n\t\t},\n\t\tbody: audioBytes,\n\t\tsignal: options?.signal,\n\t});\n\n\tif (!response.ok) {\n\t\tconst errorText = await response.text();\n\t\tconst label = options?.label ?? \"Workers AI\";\n\t\tthrow new Error(`${label} request failed (${response.status}): ${errorText}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":";AAMA,IAAM,uBAAuB;AAkB7B,eAAsB,mBACrB,QACA,OACA,MACA,SACoB;AACpB,QAAM,WAAW,MAAM,MAAM,GAAG,oBAAoB,IAAI,OAAO,SAAS,WAAW,KAAK,IAAI;AAAA,IAC3F,QAAQ;AAAA,IACR,SAAS;AAAA,MACR,eAAe,UAAU,OAAO,MAAM;AAAA,MACtC,gBAAgB;AAAA,IACjB;AAAA,IACA,MAAM,KAAK,UAAU,IAAI;AAAA,IACzB,QAAQ,SAAS;AAAA,EAClB,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AACjB,UAAM,YAAY,MAAM,SAAS,KAAK;AACtC,UAAM,QAAQ,SAAS,SAAS;AAChC,UAAM,IAAI,MAAM,GAAG,KAAK,oBAAoB,SAAS,MAAM,MAAM,SAAS,EAAE;AAAA,EAC7E;AAEA,SAAO;AACR;AAgBA,eAAsB,yBACrB,QACA,OACA,YACA,aACA,SACoB;AACpB,QAAM,WAAW,MAAM,MAAM,GAAG,oBAAoB,IAAI,OAAO,SAAS,WAAW,KAAK,IAAI;AAAA,IAC3F,QAAQ;AAAA,IACR,SAAS;AAAA,MACR,eAAe,UAAU,OAAO,MAAM;AAAA,MACtC,gBAAgB;AAAA,IACjB;AAAA,IACA,MAAM;AAAA,IACN,QAAQ,SAAS;AAAA,EAClB,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AACjB,UAAM,YAAY,MAAM,SAAS,KAAK;AACtC,UAAM,QAAQ,SAAS,SAAS;AAChC,UAAM,IAAI,MAAM,GAAG,KAAK,oBAAoB,SAAS,MAAM,MAAM,SAAS,EAAE;AAAA,EAC7E;AAEA,SAAO;AACR;","names":[]}
@@ -1,111 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
-
3
-
4
- var _chunk3VQDXJLWcjs = require('./chunk-3VQDXJLW.cjs');
5
-
6
-
7
- var _chunk7HSUHP63cjs = require('./chunk-7HSUHP63.cjs');
8
-
9
-
10
-
11
-
12
-
13
- var _chunk3L6IRVAVcjs = require('./chunk-3L6IRVAV.cjs');
14
-
15
-
16
- var _chunk4DE2IREAcjs = require('./chunk-4DE2IREA.cjs');
17
-
18
- // src/adapters/workers-ai-tts.ts
19
- var _adapters = require('@tanstack/ai/adapters');
20
- var WorkersAiTTSAdapter = class extends _adapters.BaseTTSAdapter {
21
- constructor(config, model) {
22
- super({}, model);
23
- _chunk4DE2IREAcjs.__publicField.call(void 0, this, "name", "workers-ai-tts");
24
- _chunk4DE2IREAcjs.__publicField.call(void 0, this, "adapterConfig");
25
- _chunk3L6IRVAVcjs.validateWorkersAiConfig.call(void 0, config);
26
- this.adapterConfig = config;
27
- }
28
- async generateSpeech(options) {
29
- const { text, voice, format, speed, modelOptions } = options;
30
- const extra = { ...modelOptions };
31
- if (voice) extra.voice = voice;
32
- if (speed != null) extra.speed = speed;
33
- if (_chunk3L6IRVAVcjs.isDirectBindingConfig.call(void 0, this.adapterConfig)) {
34
- return this.generateViaBinding(text, format, extra);
35
- }
36
- if (_chunk3L6IRVAVcjs.isDirectCredentialsConfig.call(void 0, this.adapterConfig)) {
37
- return this.generateViaRest(text, format, extra);
38
- }
39
- return this.generateViaGateway(text, format, extra);
40
- }
41
- async generateViaBinding(text, format, options) {
42
- const ai = this.adapterConfig.binding;
43
- const result = await ai.run(this.model, { text, ...options });
44
- return this.normalizeResult(result, format);
45
- }
46
- async generateViaRest(text, format, options) {
47
- const config = this.adapterConfig;
48
- const response = await _chunk7HSUHP63cjs.workersAiRestFetch.call(void 0,
49
- config,
50
- this.model,
51
- { text, ...options },
52
- { label: "Workers AI TTS", signal: options.signal }
53
- );
54
- const buffer = await response.arrayBuffer();
55
- return this.wrapAudioResult(new Uint8Array(buffer), format);
56
- }
57
- async generateViaGateway(text, format, options) {
58
- const gatewayConfig = this.adapterConfig;
59
- const gatewayFetch = _chunk3L6IRVAVcjs.createGatewayFetch.call(void 0, "workers-ai", gatewayConfig);
60
- const response = await gatewayFetch("https://api.cloudflare.com/v1/audio/speech", {
61
- method: "POST",
62
- body: JSON.stringify({
63
- model: this.model,
64
- text,
65
- ...options
66
- })
67
- });
68
- if (!response.ok) {
69
- const errorText = await response.text();
70
- throw new Error(
71
- `Workers AI TTS gateway request failed (${response.status}): ${errorText}`
72
- );
73
- }
74
- const buffer = await response.arrayBuffer();
75
- return this.wrapAudioResult(new Uint8Array(buffer), format);
76
- }
77
- /**
78
- * Normalize binding results. Workers AI TTS can return:
79
- * - Uint8Array / ArrayBuffer (raw audio bytes)
80
- * - ReadableStream<Uint8Array> (streamed audio bytes)
81
- * - { audio: "base64..." } (JSON wrapper)
82
- */
83
- async normalizeResult(result, format) {
84
- const b64 = await _chunk3VQDXJLWcjs.binaryToBase64.call(void 0, result, "audio");
85
- return {
86
- id: this.generateId(),
87
- model: this.model,
88
- audio: b64,
89
- format: _nullishCoalesce(format, () => ( "mp3")),
90
- contentType: `audio/${_nullishCoalesce(format, () => ( "mp3"))}`
91
- };
92
- }
93
- wrapAudioResult(bytes, format) {
94
- return {
95
- id: this.generateId(),
96
- model: this.model,
97
- audio: _chunk3VQDXJLWcjs.uint8ArrayToBase64.call(void 0, bytes),
98
- format: _nullishCoalesce(format, () => ( "mp3")),
99
- contentType: `audio/${_nullishCoalesce(format, () => ( "mp3"))}`
100
- };
101
- }
102
- };
103
- function createWorkersAiTts(model, config) {
104
- return new WorkersAiTTSAdapter(config, model);
105
- }
106
-
107
-
108
-
109
-
110
- exports.WorkersAiTTSAdapter = WorkersAiTTSAdapter; exports.createWorkersAiTts = createWorkersAiTts;
111
- //# sourceMappingURL=chunk-2YEF5YWC.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/ai/ai/packages/tanstack-ai/dist/chunk-2YEF5YWC.cjs","../src/adapters/workers-ai-tts.ts"],"names":[],"mappings":"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","file":"/home/runner/work/ai/ai/packages/tanstack-ai/dist/chunk-2YEF5YWC.cjs","sourcesContent":[null,"import { BaseTTSAdapter } from \"@tanstack/ai/adapters\";\nimport type { TTSOptions, TTSResult } from \"@tanstack/ai\";\nimport {\n\ttype WorkersAiAdapterConfig,\n\ttype WorkersAiDirectBindingConfig,\n\ttype WorkersAiDirectCredentialsConfig,\n\ttype AiGatewayAdapterConfig,\n\tcreateGatewayFetch,\n\tisDirectBindingConfig,\n\tisDirectCredentialsConfig,\n\tvalidateWorkersAiConfig,\n} from \"../utils/create-fetcher\";\nimport { workersAiRestFetch } from \"../utils/workers-ai-rest\";\nimport { binaryToBase64, uint8ArrayToBase64 } from \"../utils/binary\";\n\n// ---------------------------------------------------------------------------\n// Model types\n// ---------------------------------------------------------------------------\n\n/**\n * Workers AI models that support text-to-speech generation.\n *\n * Note: the typed `AiModels` interface in `@cloudflare/workers-types` may lag\n * behind what's deployed. We use a string union here that matches the known\n * models including Deepgram partner models.\n */\nexport type WorkersAiTTSModel =\n\t| \"@cf/deepgram/aura-1\"\n\t| \"@cf/deepgram/aura-2-en\"\n\t| \"@cf/deepgram/aura-2-es\"\n\t| (string & {});\n\n// ---------------------------------------------------------------------------\n// WorkersAiTTSAdapter\n// ---------------------------------------------------------------------------\n\nexport class WorkersAiTTSAdapter extends BaseTTSAdapter<WorkersAiTTSModel> {\n\treadonly name = \"workers-ai-tts\" as const;\n\tprivate adapterConfig: WorkersAiAdapterConfig;\n\n\tconstructor(config: WorkersAiAdapterConfig, model: WorkersAiTTSModel) {\n\t\tsuper({}, model);\n\t\tvalidateWorkersAiConfig(config);\n\t\tthis.adapterConfig = config;\n\t}\n\n\tasync generateSpeech(options: TTSOptions): Promise<TTSResult> {\n\t\tconst { text, voice, format, speed, modelOptions } = options;\n\n\t\t// Workers AI TTS models (Deepgram aura-1) accept { text, lang? }\n\t\tconst extra: Record<string, unknown> = { ...modelOptions };\n\t\tif (voice) extra.voice = voice;\n\t\tif (speed != null) extra.speed = speed;\n\n\t\tif (isDirectBindingConfig(this.adapterConfig)) {\n\t\t\treturn this.generateViaBinding(text, format, extra);\n\t\t}\n\n\t\tif (isDirectCredentialsConfig(this.adapterConfig)) {\n\t\t\treturn this.generateViaRest(text, format, extra);\n\t\t}\n\n\t\treturn this.generateViaGateway(text, format, extra);\n\t}\n\n\tprivate async generateViaBinding(\n\t\ttext: string,\n\t\tformat: string | undefined,\n\t\toptions: Record<string, unknown>,\n\t): Promise<TTSResult> {\n\t\tconst ai = (this.adapterConfig as WorkersAiDirectBindingConfig).binding;\n\t\tconst result = await ai.run(this.model, { text, ...options });\n\n\t\treturn this.normalizeResult(result, format);\n\t}\n\n\tprivate async generateViaRest(\n\t\ttext: string,\n\t\tformat: string | undefined,\n\t\toptions: Record<string, unknown>,\n\t): Promise<TTSResult> {\n\t\tconst config = this.adapterConfig as WorkersAiDirectCredentialsConfig;\n\t\tconst response = await workersAiRestFetch(\n\t\t\tconfig,\n\t\t\tthis.model,\n\t\t\t{ text, ...options },\n\t\t\t{ label: \"Workers AI TTS\", signal: (options as { signal?: AbortSignal }).signal },\n\t\t);\n\n\t\t// Workers AI TTS returns audio bytes directly\n\t\tconst buffer = await response.arrayBuffer();\n\t\treturn this.wrapAudioResult(new Uint8Array(buffer), format);\n\t}\n\n\tprivate async generateViaGateway(\n\t\ttext: string,\n\t\tformat: string | undefined,\n\t\toptions: Record<string, unknown>,\n\t): Promise<TTSResult> {\n\t\tconst gatewayConfig = this.adapterConfig as AiGatewayAdapterConfig;\n\t\tconst gatewayFetch = createGatewayFetch(\"workers-ai\", gatewayConfig);\n\n\t\t// The URL here is a placeholder — createGatewayFetch for \"workers-ai\" extracts\n\t\t// the model from the body, sets it as the endpoint, and routes through the gateway.\n\t\t// The actual URL path is not used.\n\t\tconst response = await gatewayFetch(\"https://api.cloudflare.com/v1/audio/speech\", {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify({\n\t\t\t\tmodel: this.model,\n\t\t\t\ttext,\n\t\t\t\t...options,\n\t\t\t}),\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\tconst errorText = await response.text();\n\t\t\tthrow new Error(\n\t\t\t\t`Workers AI TTS gateway request failed (${response.status}): ${errorText}`,\n\t\t\t);\n\t\t}\n\n\t\tconst buffer = await response.arrayBuffer();\n\t\treturn this.wrapAudioResult(new Uint8Array(buffer), format);\n\t}\n\n\t/**\n\t * Normalize binding results. Workers AI TTS can return:\n\t * - Uint8Array / ArrayBuffer (raw audio bytes)\n\t * - ReadableStream<Uint8Array> (streamed audio bytes)\n\t * - { audio: \"base64...\" } (JSON wrapper)\n\t */\n\tprivate async normalizeResult(result: unknown, format: string | undefined): Promise<TTSResult> {\n\t\t// Use the shared binaryToBase64 helper for Uint8Array/ArrayBuffer/ReadableStream\n\t\t// and { audio: \"base64...\" } JSON wrapper\n\t\tconst b64 = await binaryToBase64(result, \"audio\");\n\t\treturn {\n\t\t\tid: this.generateId(),\n\t\t\tmodel: this.model,\n\t\t\taudio: b64,\n\t\t\tformat: format ?? \"mp3\",\n\t\t\tcontentType: `audio/${format ?? \"mp3\"}`,\n\t\t};\n\t}\n\n\tprivate wrapAudioResult(bytes: Uint8Array, format: string | undefined): TTSResult {\n\t\treturn {\n\t\t\tid: this.generateId(),\n\t\t\tmodel: this.model,\n\t\t\taudio: uint8ArrayToBase64(bytes),\n\t\t\tformat: format ?? \"mp3\",\n\t\t\tcontentType: `audio/${format ?? \"mp3\"}`,\n\t\t};\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Factory function\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a Workers AI text-to-speech adapter.\n *\n * Works with TanStack AI's `generateSpeech()` activity function:\n * ```ts\n * import { generateSpeech } from \"@tanstack/ai\";\n * import { createWorkersAiTts } from \"@cloudflare/tanstack-ai\";\n *\n * const adapter = createWorkersAiTts(\n * \"@cf/deepgram/aura-1\",\n * { binding: env.AI },\n * );\n *\n * const result = await generateSpeech({ adapter, text: \"Hello world\" });\n * // result.audio — base64-encoded audio\n * ```\n *\n * Note: Factory takes `(model, config)` for ergonomics — the class constructor\n * uses `(config, model)` to match TanStack AI's upstream convention.\n */\nexport function createWorkersAiTts(model: WorkersAiTTSModel, config: WorkersAiAdapterConfig) {\n\treturn new WorkersAiTTSAdapter(config, model);\n}\n"]}