@cloudflare/tanstack-ai 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +282 -0
  3. package/dist/_tsup-dts-rollup.d.cts +820 -0
  4. package/dist/_tsup-dts-rollup.d.ts +820 -0
  5. package/dist/adapters/anthropic.cjs +13 -0
  6. package/dist/adapters/anthropic.cjs.map +1 -0
  7. package/dist/adapters/anthropic.d.cts +5 -0
  8. package/dist/adapters/anthropic.d.ts +5 -0
  9. package/dist/adapters/anthropic.js +13 -0
  10. package/dist/adapters/anthropic.js.map +1 -0
  11. package/dist/adapters/gemini.cjs +22 -0
  12. package/dist/adapters/gemini.cjs.map +1 -0
  13. package/dist/adapters/gemini.d.cts +14 -0
  14. package/dist/adapters/gemini.d.ts +14 -0
  15. package/dist/adapters/gemini.js +22 -0
  16. package/dist/adapters/gemini.js.map +1 -0
  17. package/dist/adapters/grok.cjs +17 -0
  18. package/dist/adapters/grok.cjs.map +1 -0
  19. package/dist/adapters/grok.d.cts +9 -0
  20. package/dist/adapters/grok.d.ts +9 -0
  21. package/dist/adapters/grok.js +17 -0
  22. package/dist/adapters/grok.js.map +1 -0
  23. package/dist/adapters/openai.cjs +29 -0
  24. package/dist/adapters/openai.cjs.map +1 -0
  25. package/dist/adapters/openai.d.cts +17 -0
  26. package/dist/adapters/openai.d.ts +17 -0
  27. package/dist/adapters/openai.js +29 -0
  28. package/dist/adapters/openai.js.map +1 -0
  29. package/dist/adapters/openrouter.cjs +13 -0
  30. package/dist/adapters/openrouter.cjs.map +1 -0
  31. package/dist/adapters/openrouter.d.cts +7 -0
  32. package/dist/adapters/openrouter.d.ts +7 -0
  33. package/dist/adapters/openrouter.js +13 -0
  34. package/dist/adapters/openrouter.js.map +1 -0
  35. package/dist/adapters/workers-ai-image.cjs +13 -0
  36. package/dist/adapters/workers-ai-image.cjs.map +1 -0
  37. package/dist/adapters/workers-ai-image.d.cts +3 -0
  38. package/dist/adapters/workers-ai-image.d.ts +3 -0
  39. package/dist/adapters/workers-ai-image.js +13 -0
  40. package/dist/adapters/workers-ai-image.js.map +1 -0
  41. package/dist/adapters/workers-ai-summarize.cjs +12 -0
  42. package/dist/adapters/workers-ai-summarize.cjs.map +1 -0
  43. package/dist/adapters/workers-ai-summarize.d.cts +3 -0
  44. package/dist/adapters/workers-ai-summarize.d.ts +3 -0
  45. package/dist/adapters/workers-ai-summarize.js +12 -0
  46. package/dist/adapters/workers-ai-summarize.js.map +1 -0
  47. package/dist/adapters/workers-ai-transcription.cjs +13 -0
  48. package/dist/adapters/workers-ai-transcription.cjs.map +1 -0
  49. package/dist/adapters/workers-ai-transcription.d.cts +3 -0
  50. package/dist/adapters/workers-ai-transcription.d.ts +3 -0
  51. package/dist/adapters/workers-ai-transcription.js +13 -0
  52. package/dist/adapters/workers-ai-transcription.js.map +1 -0
  53. package/dist/adapters/workers-ai-tts.cjs +13 -0
  54. package/dist/adapters/workers-ai-tts.cjs.map +1 -0
  55. package/dist/adapters/workers-ai-tts.d.cts +3 -0
  56. package/dist/adapters/workers-ai-tts.d.ts +3 -0
  57. package/dist/adapters/workers-ai-tts.js +13 -0
  58. package/dist/adapters/workers-ai-tts.js.map +1 -0
  59. package/dist/adapters/workers-ai.cjs +11 -0
  60. package/dist/adapters/workers-ai.cjs.map +1 -0
  61. package/dist/adapters/workers-ai.d.cts +3 -0
  62. package/dist/adapters/workers-ai.d.ts +3 -0
  63. package/dist/adapters/workers-ai.js +11 -0
  64. package/dist/adapters/workers-ai.js.map +1 -0
  65. package/dist/chunk-2AJ6LV2D.js +84 -0
  66. package/dist/chunk-2AJ6LV2D.js.map +1 -0
  67. package/dist/chunk-2VII5BK2.js +42 -0
  68. package/dist/chunk-2VII5BK2.js.map +1 -0
  69. package/dist/chunk-3VQDXJLW.cjs +46 -0
  70. package/dist/chunk-3VQDXJLW.cjs.map +1 -0
  71. package/dist/chunk-4DE2IREA.cjs +8 -0
  72. package/dist/chunk-4DE2IREA.cjs.map +1 -0
  73. package/dist/chunk-7AEFXYJG.js +65 -0
  74. package/dist/chunk-7AEFXYJG.js.map +1 -0
  75. package/dist/chunk-7HSUHP63.cjs +42 -0
  76. package/dist/chunk-7HSUHP63.cjs.map +1 -0
  77. package/dist/chunk-7T4CVHKD.cjs +84 -0
  78. package/dist/chunk-7T4CVHKD.cjs.map +1 -0
  79. package/dist/chunk-BD4CRW3Q.js +389 -0
  80. package/dist/chunk-BD4CRW3Q.js.map +1 -0
  81. package/dist/chunk-BPWGWJJV.cjs +389 -0
  82. package/dist/chunk-BPWGWJJV.cjs.map +1 -0
  83. package/dist/chunk-F5YJMXZR.js +315 -0
  84. package/dist/chunk-F5YJMXZR.js.map +1 -0
  85. package/dist/chunk-GOU66I5T.cjs +315 -0
  86. package/dist/chunk-GOU66I5T.cjs.map +1 -0
  87. package/dist/chunk-IWZJCLOE.cjs +31 -0
  88. package/dist/chunk-IWZJCLOE.cjs.map +1 -0
  89. package/dist/chunk-LBYDBPHY.cjs +109 -0
  90. package/dist/chunk-LBYDBPHY.cjs.map +1 -0
  91. package/dist/chunk-LIUHRGEK.cjs +96 -0
  92. package/dist/chunk-LIUHRGEK.cjs.map +1 -0
  93. package/dist/chunk-M6NETFDR.cjs +48 -0
  94. package/dist/chunk-M6NETFDR.cjs.map +1 -0
  95. package/dist/chunk-O2C4CR57.cjs +54 -0
  96. package/dist/chunk-O2C4CR57.cjs.map +1 -0
  97. package/dist/chunk-PLTFCUMO.js +216 -0
  98. package/dist/chunk-PLTFCUMO.js.map +1 -0
  99. package/dist/chunk-QRHKPL75.js +54 -0
  100. package/dist/chunk-QRHKPL75.js.map +1 -0
  101. package/dist/chunk-RGDUK5KX.cjs +65 -0
  102. package/dist/chunk-RGDUK5KX.cjs.map +1 -0
  103. package/dist/chunk-RQT7M6MU.js +96 -0
  104. package/dist/chunk-RQT7M6MU.js.map +1 -0
  105. package/dist/chunk-U5YJQYLZ.cjs +57 -0
  106. package/dist/chunk-U5YJQYLZ.cjs.map +1 -0
  107. package/dist/chunk-V6TY7KAL.js +8 -0
  108. package/dist/chunk-V6TY7KAL.js.map +1 -0
  109. package/dist/chunk-VTDJEUFS.js +57 -0
  110. package/dist/chunk-VTDJEUFS.js.map +1 -0
  111. package/dist/chunk-XCNU7EEC.js +48 -0
  112. package/dist/chunk-XCNU7EEC.js.map +1 -0
  113. package/dist/chunk-XI2BOYEI.js +109 -0
  114. package/dist/chunk-XI2BOYEI.js.map +1 -0
  115. package/dist/chunk-XKSFDPDY.cjs +216 -0
  116. package/dist/chunk-XKSFDPDY.cjs.map +1 -0
  117. package/dist/chunk-XU7YEPML.js +46 -0
  118. package/dist/chunk-XU7YEPML.js.map +1 -0
  119. package/dist/chunk-YIA5B3QT.js +31 -0
  120. package/dist/chunk-YIA5B3QT.js.map +1 -0
  121. package/dist/index.cjs +97 -0
  122. package/dist/index.cjs.map +1 -0
  123. package/dist/index.d.cts +64 -0
  124. package/dist/index.d.ts +64 -0
  125. package/dist/index.js +97 -0
  126. package/dist/index.js.map +1 -0
  127. package/package.json +119 -10
@@ -0,0 +1,46 @@
1
+ // src/utils/binary.ts
2
+ function uint8ArrayToBase64(bytes) {
3
+ let binary = "";
4
+ for (let i = 0; i < bytes.length; i++) {
5
+ binary += String.fromCharCode(bytes[i]);
6
+ }
7
+ return btoa(binary);
8
+ }
9
+ async function collectStream(stream) {
10
+ const reader = stream.getReader();
11
+ const chunks = [];
12
+ while (true) {
13
+ const { done, value } = await reader.read();
14
+ if (done) break;
15
+ chunks.push(value);
16
+ }
17
+ const totalLength = chunks.reduce((acc, c) => acc + c.length, 0);
18
+ const combined = new Uint8Array(totalLength);
19
+ let offset = 0;
20
+ for (const chunk of chunks) {
21
+ combined.set(chunk, offset);
22
+ offset += chunk.length;
23
+ }
24
+ return combined;
25
+ }
26
+ async function binaryToBase64(result, binaryKey = "image") {
27
+ if (result instanceof ReadableStream) {
28
+ return uint8ArrayToBase64(await collectStream(result));
29
+ }
30
+ if (result instanceof Uint8Array || result instanceof ArrayBuffer) {
31
+ const bytes = result instanceof ArrayBuffer ? new Uint8Array(result) : result;
32
+ return uint8ArrayToBase64(bytes);
33
+ }
34
+ if (typeof result === "object" && result !== null && binaryKey in result) {
35
+ return result[binaryKey];
36
+ }
37
+ throw new Error(
38
+ `Unexpected binary response format from Workers AI (expected Uint8Array, ArrayBuffer, ReadableStream, or { ${binaryKey}: string })`
39
+ );
40
+ }
41
+
42
+ export {
43
+ uint8ArrayToBase64,
44
+ binaryToBase64
45
+ };
46
+ //# sourceMappingURL=chunk-XU7YEPML.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/binary.ts"],"sourcesContent":["/**\n * Shared binary-data utilities for Workers AI adapters.\n *\n * Workers AI returns binary data (images, audio) in various formats —\n * Uint8Array, ArrayBuffer, ReadableStream, or JSON objects with a base64 field.\n * These helpers normalise everything into base64 strings for the TanStack AI\n * result types.\n */\n\n/**\n * Convert a Uint8Array to a base64 string.\n */\nexport function uint8ArrayToBase64(bytes: Uint8Array): string {\n\tlet binary = \"\";\n\tfor (let i = 0; i < bytes.length; i++) {\n\t\tbinary += String.fromCharCode(bytes[i]!);\n\t}\n\treturn btoa(binary);\n}\n\n/**\n * Collect all chunks from a ReadableStream<Uint8Array> into a single Uint8Array.\n */\nexport async function collectStream(stream: ReadableStream<Uint8Array>): Promise<Uint8Array> {\n\tconst reader = stream.getReader();\n\tconst chunks: Uint8Array[] = [];\n\twhile (true) {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) break;\n\t\tchunks.push(value);\n\t}\n\tconst totalLength = chunks.reduce((acc, c) => acc + c.length, 0);\n\tconst combined = new Uint8Array(totalLength);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tcombined.set(chunk, offset);\n\t\toffset += chunk.length;\n\t}\n\treturn combined;\n}\n\n/**\n * Normalise a Workers AI binary response to a base64 string.\n *\n * Handles:\n * - `Uint8Array` / `ArrayBuffer` — raw bytes\n * - `ReadableStream<Uint8Array>` — streamed bytes\n * - `{ [binaryKey]: \"base64...\" }` — JSON wrapper (e.g. `{ image: \"...\" }`)\n *\n * @param result The raw value returned from Workers AI\n * @param binaryKey The JSON field to look for when the result is an object\n * (defaults to `\"image\"`; pass `\"audio\"` for TTS responses)\n */\nexport async function binaryToBase64(\n\tresult: unknown,\n\tbinaryKey: string = \"image\",\n): Promise<string> {\n\tif (result instanceof ReadableStream) {\n\t\treturn uint8ArrayToBase64(await collectStream(result));\n\t}\n\n\tif (result instanceof Uint8Array || result instanceof ArrayBuffer) {\n\t\tconst bytes = result instanceof ArrayBuffer ? new Uint8Array(result) : result;\n\t\treturn uint8ArrayToBase64(bytes);\n\t}\n\n\t// Some models return { image: \"base64...\" } or { audio: \"base64...\" }\n\tif (typeof result === \"object\" && result !== null && binaryKey in result) {\n\t\treturn (result as Record<string, string>)[binaryKey]!;\n\t}\n\n\tthrow new Error(\n\t\t`Unexpected binary response format from Workers AI (expected Uint8Array, ArrayBuffer, ReadableStream, or { ${binaryKey}: string })`,\n\t);\n}\n"],"mappings":";AAYO,SAAS,mBAAmB,OAA2B;AAC7D,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,cAAU,OAAO,aAAa,MAAM,CAAC,CAAE;AAAA,EACxC;AACA,SAAO,KAAK,MAAM;AACnB;AAKA,eAAsB,cAAc,QAAyD;AAC5F,QAAM,SAAS,OAAO,UAAU;AAChC,QAAM,SAAuB,CAAC;AAC9B,SAAO,MAAM;AACZ,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,QAAI,KAAM;AACV,WAAO,KAAK,KAAK;AAAA,EAClB;AACA,QAAM,cAAc,OAAO,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,QAAQ,CAAC;AAC/D,QAAM,WAAW,IAAI,WAAW,WAAW;AAC3C,MAAI,SAAS;AACb,aAAW,SAAS,QAAQ;AAC3B,aAAS,IAAI,OAAO,MAAM;AAC1B,cAAU,MAAM;AAAA,EACjB;AACA,SAAO;AACR;AAcA,eAAsB,eACrB,QACA,YAAoB,SACF;AAClB,MAAI,kBAAkB,gBAAgB;AACrC,WAAO,mBAAmB,MAAM,cAAc,MAAM,CAAC;AAAA,EACtD;AAEA,MAAI,kBAAkB,cAAc,kBAAkB,aAAa;AAClE,UAAM,QAAQ,kBAAkB,cAAc,IAAI,WAAW,MAAM,IAAI;AACvE,WAAO,mBAAmB,KAAK;AAAA,EAChC;AAGA,MAAI,OAAO,WAAW,YAAY,WAAW,QAAQ,aAAa,QAAQ;AACzE,WAAQ,OAAkC,SAAS;AAAA,EACpD;AAEA,QAAM,IAAI;AAAA,IACT,6GAA6G,SAAS;AAAA,EACvH;AACD;","names":[]}
@@ -0,0 +1,31 @@
1
+ import {
2
+ createGatewayFetch
3
+ } from "./chunk-F5YJMXZR.js";
4
+
5
+ // src/adapters/anthropic.ts
6
+ import {
7
+ AnthropicTextAdapter,
8
+ AnthropicSummarizeAdapter,
9
+ ANTHROPIC_MODELS
10
+ } from "@tanstack/ai-anthropic";
11
+ function buildAnthropicConfig(config) {
12
+ return {
13
+ apiKey: config.apiKey ?? "unused",
14
+ fetch: createGatewayFetch("anthropic", config, {
15
+ "anthropic-version": config.anthropicVersion ?? "2023-06-01"
16
+ })
17
+ };
18
+ }
19
+ function createAnthropicChat(model, config) {
20
+ return new AnthropicTextAdapter(buildAnthropicConfig(config), model);
21
+ }
22
+ function createAnthropicSummarize(model, config) {
23
+ return new AnthropicSummarizeAdapter(buildAnthropicConfig(config), model);
24
+ }
25
+
26
+ export {
27
+ ANTHROPIC_MODELS,
28
+ createAnthropicChat,
29
+ createAnthropicSummarize
30
+ };
31
+ //# sourceMappingURL=chunk-YIA5B3QT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/adapters/anthropic.ts"],"sourcesContent":["import {\n\tAnthropicTextAdapter,\n\tAnthropicSummarizeAdapter,\n\tANTHROPIC_MODELS,\n\ttype AnthropicChatModel,\n} from \"@tanstack/ai-anthropic\";\nimport type { AnyTextAdapter } from \"@tanstack/ai\";\nimport { createGatewayFetch, type AiGatewayAdapterConfig } from \"../utils/create-fetcher\";\n\nexport type AnthropicGatewayConfig = AiGatewayAdapterConfig & { anthropicVersion?: string };\n\nfunction buildAnthropicConfig(config: AnthropicGatewayConfig) {\n\treturn {\n\t\tapiKey: config.apiKey ?? \"unused\",\n\t\tfetch: createGatewayFetch(\"anthropic\", config, {\n\t\t\t\"anthropic-version\": config.anthropicVersion ?? \"2023-06-01\",\n\t\t}),\n\t};\n}\n\n/**\n * Creates an Anthropic chat adapter which uses Cloudflare AI Gateway.\n * Supports both binding and credential-based configurations.\n *\n * Since AnthropicTextConfig extends the Anthropic SDK's ClientOptions,\n * we can inject the gateway fetch directly — no subclassing needed.\n */\nexport function createAnthropicChat(\n\tmodel: AnthropicChatModel,\n\tconfig: AnthropicGatewayConfig,\n): AnyTextAdapter {\n\treturn new AnthropicTextAdapter(buildAnthropicConfig(config), model);\n}\n\n/**\n * Creates an Anthropic summarize adapter which uses Cloudflare AI Gateway.\n * Supports both binding and credential-based configurations.\n */\nexport function createAnthropicSummarize(\n\tmodel: AnthropicChatModel,\n\tconfig: AnthropicGatewayConfig,\n) {\n\treturn new AnthropicSummarizeAdapter(buildAnthropicConfig(config), model);\n}\n\nexport { ANTHROPIC_MODELS, type AnthropicChatModel };\n"],"mappings":";;;;;AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OAEM;AAMP,SAAS,qBAAqB,QAAgC;AAC7D,SAAO;AAAA,IACN,QAAQ,OAAO,UAAU;AAAA,IACzB,OAAO,mBAAmB,aAAa,QAAQ;AAAA,MAC9C,qBAAqB,OAAO,oBAAoB;AAAA,IACjD,CAAC;AAAA,EACF;AACD;AASO,SAAS,oBACf,OACA,QACiB;AACjB,SAAO,IAAI,qBAAqB,qBAAqB,MAAM,GAAG,KAAK;AACpE;AAMO,SAAS,yBACf,OACA,QACC;AACD,SAAO,IAAI,0BAA0B,qBAAqB,MAAM,GAAG,KAAK;AACzE;","names":[]}
package/dist/index.cjs ADDED
@@ -0,0 +1,97 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkXKSFDPDYcjs = require('./chunk-XKSFDPDY.cjs');
4
+
5
+
6
+ var _chunkLBYDBPHYcjs = require('./chunk-LBYDBPHY.cjs');
7
+
8
+
9
+ var _chunkBPWGWJJVcjs = require('./chunk-BPWGWJJV.cjs');
10
+
11
+
12
+
13
+
14
+ var _chunkIWZJCLOEcjs = require('./chunk-IWZJCLOE.cjs');
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+ var _chunkRGDUK5KXcjs = require('./chunk-RGDUK5KX.cjs');
25
+
26
+
27
+
28
+
29
+
30
+
31
+ var _chunkM6NETFDRcjs = require('./chunk-M6NETFDR.cjs');
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+ var _chunkU5YJQYLZcjs = require('./chunk-U5YJQYLZ.cjs');
45
+
46
+
47
+
48
+
49
+ var _chunkO2C4CR57cjs = require('./chunk-O2C4CR57.cjs');
50
+
51
+
52
+ var _chunkLIUHRGEKcjs = require('./chunk-LIUHRGEK.cjs');
53
+ require('./chunk-3VQDXJLW.cjs');
54
+
55
+
56
+ var _chunk7T4CVHKDcjs = require('./chunk-7T4CVHKD.cjs');
57
+ require('./chunk-7HSUHP63.cjs');
58
+ require('./chunk-GOU66I5T.cjs');
59
+ require('./chunk-4DE2IREA.cjs');
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ exports.ANTHROPIC_MODELS = _chunkIWZJCLOEcjs.ANTHROPIC_MODELS; exports.GROK_CHAT_MODELS = _chunkM6NETFDRcjs.GROK_CHAT_MODELS; exports.GROK_IMAGE_MODELS = _chunkM6NETFDRcjs.GROK_IMAGE_MODELS; exports.GeminiImageModels = _chunkRGDUK5KXcjs.GeminiImageModels; exports.GeminiSummarizeModels = _chunkRGDUK5KXcjs.GeminiSummarizeModels; exports.GeminiTTSModels = _chunkRGDUK5KXcjs.GeminiTTSModels; exports.GeminiTextModels = _chunkRGDUK5KXcjs.GeminiTextModels; exports.OPENAI_CHAT_MODELS = _chunkU5YJQYLZcjs.OPENAI_CHAT_MODELS; exports.OPENAI_IMAGE_MODELS = _chunkU5YJQYLZcjs.OPENAI_IMAGE_MODELS; exports.OPENAI_TRANSCRIPTION_MODELS = _chunkU5YJQYLZcjs.OPENAI_TRANSCRIPTION_MODELS; exports.OPENAI_TTS_MODELS = _chunkU5YJQYLZcjs.OPENAI_TTS_MODELS; exports.OPENAI_VIDEO_MODELS = _chunkU5YJQYLZcjs.OPENAI_VIDEO_MODELS; exports.createAnthropicChat = _chunkIWZJCLOEcjs.createAnthropicChat; exports.createAnthropicSummarize = _chunkIWZJCLOEcjs.createAnthropicSummarize; exports.createGeminiChat = _chunkRGDUK5KXcjs.createGeminiChat; exports.createGeminiImage = _chunkRGDUK5KXcjs.createGeminiImage; exports.createGeminiSummarize = _chunkRGDUK5KXcjs.createGeminiSummarize; exports.createGeminiTts = _chunkRGDUK5KXcjs.createGeminiTts; exports.createGrokChat = _chunkM6NETFDRcjs.createGrokChat; exports.createGrokImage = _chunkM6NETFDRcjs.createGrokImage; exports.createGrokSummarize = _chunkM6NETFDRcjs.createGrokSummarize; exports.createOpenAiChat = _chunkU5YJQYLZcjs.createOpenAiChat; exports.createOpenAiImage = _chunkU5YJQYLZcjs.createOpenAiImage; exports.createOpenAiSummarize = _chunkU5YJQYLZcjs.createOpenAiSummarize; exports.createOpenAiTranscription = _chunkU5YJQYLZcjs.createOpenAiTranscription; exports.createOpenAiTts = _chunkU5YJQYLZcjs.createOpenAiTts; exports.createOpenAiVideo = _chunkU5YJQYLZcjs.createOpenAiVideo; exports.createOpenRouterChat = _chunkO2C4CR57cjs.createOpenRouterChat; exports.createOpenRouterImage = _chunkO2C4CR57cjs.createOpenRouterImage; exports.createOpenRouterSummarize = _chunkO2C4CR57cjs.createOpenRouterSummarize; exports.createWorkersAiChat = _chunkBPWGWJJVcjs.createWorkersAiChat; exports.createWorkersAiImage = _chunkLIUHRGEKcjs.createWorkersAiImage; exports.createWorkersAiSummarize = _chunk7T4CVHKDcjs.createWorkersAiSummarize; exports.createWorkersAiTranscription = _chunkXKSFDPDYcjs.createWorkersAiTranscription; exports.createWorkersAiTts = _chunkLBYDBPHYcjs.createWorkersAiTts;
97
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ai/ai/packages/tanstack-ai/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,42EAAC","file":"/home/runner/work/ai/ai/packages/tanstack-ai/dist/index.cjs"}
@@ -0,0 +1,64 @@
1
+ export { createAnthropicChat } from './_tsup-dts-rollup.cjs';
2
+ export { createAnthropicSummarize } from './_tsup-dts-rollup.cjs';
3
+ export { AnthropicGatewayConfig } from './_tsup-dts-rollup.cjs';
4
+ export { ANTHROPIC_MODELS } from './_tsup-dts-rollup.cjs';
5
+ export { AnthropicChatModel } from './_tsup-dts-rollup.cjs';
6
+ export { createGeminiChat } from './_tsup-dts-rollup.cjs';
7
+ export { createGeminiImage } from './_tsup-dts-rollup.cjs';
8
+ export { createGeminiSummarize } from './_tsup-dts-rollup.cjs';
9
+ export { createGeminiTts } from './_tsup-dts-rollup.cjs';
10
+ export { GeminiGatewayConfig } from './_tsup-dts-rollup.cjs';
11
+ export { GeminiTextModels } from './_tsup-dts-rollup.cjs';
12
+ export { GeminiImageModels } from './_tsup-dts-rollup.cjs';
13
+ export { GeminiSummarizeModels } from './_tsup-dts-rollup.cjs';
14
+ export { GeminiTTSModels } from './_tsup-dts-rollup.cjs';
15
+ export { GeminiChatModel } from './_tsup-dts-rollup.cjs';
16
+ export { GeminiTextModel } from './_tsup-dts-rollup.cjs';
17
+ export { GeminiImageModel } from './_tsup-dts-rollup.cjs';
18
+ export { GeminiSummarizeModel } from './_tsup-dts-rollup.cjs';
19
+ export { GeminiTTSModel } from './_tsup-dts-rollup.cjs';
20
+ export { createGrokChat } from './_tsup-dts-rollup.cjs';
21
+ export { createGrokImage } from './_tsup-dts-rollup.cjs';
22
+ export { createGrokSummarize } from './_tsup-dts-rollup.cjs';
23
+ export { GrokGatewayConfig } from './_tsup-dts-rollup.cjs';
24
+ export { GROK_CHAT_MODELS } from './_tsup-dts-rollup.cjs';
25
+ export { GROK_IMAGE_MODELS } from './_tsup-dts-rollup.cjs';
26
+ export { GrokChatModel } from './_tsup-dts-rollup.cjs';
27
+ export { GrokImageModel } from './_tsup-dts-rollup.cjs';
28
+ export { GrokSummarizeModel } from './_tsup-dts-rollup.cjs';
29
+ export { createOpenAiChat } from './_tsup-dts-rollup.cjs';
30
+ export { createOpenAiImage } from './_tsup-dts-rollup.cjs';
31
+ export { createOpenAiSummarize } from './_tsup-dts-rollup.cjs';
32
+ export { createOpenAiTranscription } from './_tsup-dts-rollup.cjs';
33
+ export { createOpenAiTts } from './_tsup-dts-rollup.cjs';
34
+ export { createOpenAiVideo } from './_tsup-dts-rollup.cjs';
35
+ export { OpenAiGatewayConfig } from './_tsup-dts-rollup.cjs';
36
+ export { OPENAI_CHAT_MODELS } from './_tsup-dts-rollup.cjs';
37
+ export { OPENAI_IMAGE_MODELS } from './_tsup-dts-rollup.cjs';
38
+ export { OPENAI_TRANSCRIPTION_MODELS } from './_tsup-dts-rollup.cjs';
39
+ export { OPENAI_TTS_MODELS } from './_tsup-dts-rollup.cjs';
40
+ export { OPENAI_VIDEO_MODELS } from './_tsup-dts-rollup.cjs';
41
+ export { OpenAIChatModel } from './_tsup-dts-rollup.cjs';
42
+ export { OpenAIImageModel } from './_tsup-dts-rollup.cjs';
43
+ export { OpenAITranscriptionModel } from './_tsup-dts-rollup.cjs';
44
+ export { OpenAITTSModel } from './_tsup-dts-rollup.cjs';
45
+ export { OpenAIVideoModel } from './_tsup-dts-rollup.cjs';
46
+ export { createOpenRouterChat } from './_tsup-dts-rollup.cjs';
47
+ export { createOpenRouterImage } from './_tsup-dts-rollup.cjs';
48
+ export { createOpenRouterSummarize } from './_tsup-dts-rollup.cjs';
49
+ export { OpenRouterGatewayConfig } from './_tsup-dts-rollup.cjs';
50
+ export { OpenRouterChatModel } from './_tsup-dts-rollup.cjs';
51
+ export { OpenRouterImageModel } from './_tsup-dts-rollup.cjs';
52
+ export { OpenRouterSummarizeModel } from './_tsup-dts-rollup.cjs';
53
+ export { createWorkersAiChat } from './_tsup-dts-rollup.cjs';
54
+ export { WorkersAiTextModel } from './_tsup-dts-rollup.cjs';
55
+ export { createWorkersAiImage } from './_tsup-dts-rollup.cjs';
56
+ export { WorkersAiImageModel } from './_tsup-dts-rollup.cjs';
57
+ export { createWorkersAiTranscription } from './_tsup-dts-rollup.cjs';
58
+ export { WorkersAiTranscriptionModel } from './_tsup-dts-rollup.cjs';
59
+ export { createWorkersAiTts } from './_tsup-dts-rollup.cjs';
60
+ export { WorkersAiTTSModel } from './_tsup-dts-rollup.cjs';
61
+ export { createWorkersAiSummarize } from './_tsup-dts-rollup.cjs';
62
+ export { WorkersAiSummarizeModel } from './_tsup-dts-rollup.cjs';
63
+ export { AiGatewayAdapterConfig } from './_tsup-dts-rollup.cjs';
64
+ export { WorkersAiAdapterConfig } from './_tsup-dts-rollup.cjs';
@@ -0,0 +1,64 @@
1
+ export { createAnthropicChat } from './_tsup-dts-rollup.js';
2
+ export { createAnthropicSummarize } from './_tsup-dts-rollup.js';
3
+ export { AnthropicGatewayConfig } from './_tsup-dts-rollup.js';
4
+ export { ANTHROPIC_MODELS } from './_tsup-dts-rollup.js';
5
+ export { AnthropicChatModel } from './_tsup-dts-rollup.js';
6
+ export { createGeminiChat } from './_tsup-dts-rollup.js';
7
+ export { createGeminiImage } from './_tsup-dts-rollup.js';
8
+ export { createGeminiSummarize } from './_tsup-dts-rollup.js';
9
+ export { createGeminiTts } from './_tsup-dts-rollup.js';
10
+ export { GeminiGatewayConfig } from './_tsup-dts-rollup.js';
11
+ export { GeminiTextModels } from './_tsup-dts-rollup.js';
12
+ export { GeminiImageModels } from './_tsup-dts-rollup.js';
13
+ export { GeminiSummarizeModels } from './_tsup-dts-rollup.js';
14
+ export { GeminiTTSModels } from './_tsup-dts-rollup.js';
15
+ export { GeminiChatModel } from './_tsup-dts-rollup.js';
16
+ export { GeminiTextModel } from './_tsup-dts-rollup.js';
17
+ export { GeminiImageModel } from './_tsup-dts-rollup.js';
18
+ export { GeminiSummarizeModel } from './_tsup-dts-rollup.js';
19
+ export { GeminiTTSModel } from './_tsup-dts-rollup.js';
20
+ export { createGrokChat } from './_tsup-dts-rollup.js';
21
+ export { createGrokImage } from './_tsup-dts-rollup.js';
22
+ export { createGrokSummarize } from './_tsup-dts-rollup.js';
23
+ export { GrokGatewayConfig } from './_tsup-dts-rollup.js';
24
+ export { GROK_CHAT_MODELS } from './_tsup-dts-rollup.js';
25
+ export { GROK_IMAGE_MODELS } from './_tsup-dts-rollup.js';
26
+ export { GrokChatModel } from './_tsup-dts-rollup.js';
27
+ export { GrokImageModel } from './_tsup-dts-rollup.js';
28
+ export { GrokSummarizeModel } from './_tsup-dts-rollup.js';
29
+ export { createOpenAiChat } from './_tsup-dts-rollup.js';
30
+ export { createOpenAiImage } from './_tsup-dts-rollup.js';
31
+ export { createOpenAiSummarize } from './_tsup-dts-rollup.js';
32
+ export { createOpenAiTranscription } from './_tsup-dts-rollup.js';
33
+ export { createOpenAiTts } from './_tsup-dts-rollup.js';
34
+ export { createOpenAiVideo } from './_tsup-dts-rollup.js';
35
+ export { OpenAiGatewayConfig } from './_tsup-dts-rollup.js';
36
+ export { OPENAI_CHAT_MODELS } from './_tsup-dts-rollup.js';
37
+ export { OPENAI_IMAGE_MODELS } from './_tsup-dts-rollup.js';
38
+ export { OPENAI_TRANSCRIPTION_MODELS } from './_tsup-dts-rollup.js';
39
+ export { OPENAI_TTS_MODELS } from './_tsup-dts-rollup.js';
40
+ export { OPENAI_VIDEO_MODELS } from './_tsup-dts-rollup.js';
41
+ export { OpenAIChatModel } from './_tsup-dts-rollup.js';
42
+ export { OpenAIImageModel } from './_tsup-dts-rollup.js';
43
+ export { OpenAITranscriptionModel } from './_tsup-dts-rollup.js';
44
+ export { OpenAITTSModel } from './_tsup-dts-rollup.js';
45
+ export { OpenAIVideoModel } from './_tsup-dts-rollup.js';
46
+ export { createOpenRouterChat } from './_tsup-dts-rollup.js';
47
+ export { createOpenRouterImage } from './_tsup-dts-rollup.js';
48
+ export { createOpenRouterSummarize } from './_tsup-dts-rollup.js';
49
+ export { OpenRouterGatewayConfig } from './_tsup-dts-rollup.js';
50
+ export { OpenRouterChatModel } from './_tsup-dts-rollup.js';
51
+ export { OpenRouterImageModel } from './_tsup-dts-rollup.js';
52
+ export { OpenRouterSummarizeModel } from './_tsup-dts-rollup.js';
53
+ export { createWorkersAiChat } from './_tsup-dts-rollup.js';
54
+ export { WorkersAiTextModel } from './_tsup-dts-rollup.js';
55
+ export { createWorkersAiImage } from './_tsup-dts-rollup.js';
56
+ export { WorkersAiImageModel } from './_tsup-dts-rollup.js';
57
+ export { createWorkersAiTranscription } from './_tsup-dts-rollup.js';
58
+ export { WorkersAiTranscriptionModel } from './_tsup-dts-rollup.js';
59
+ export { createWorkersAiTts } from './_tsup-dts-rollup.js';
60
+ export { WorkersAiTTSModel } from './_tsup-dts-rollup.js';
61
+ export { createWorkersAiSummarize } from './_tsup-dts-rollup.js';
62
+ export { WorkersAiSummarizeModel } from './_tsup-dts-rollup.js';
63
+ export { AiGatewayAdapterConfig } from './_tsup-dts-rollup.js';
64
+ export { WorkersAiAdapterConfig } from './_tsup-dts-rollup.js';
package/dist/index.js ADDED
@@ -0,0 +1,97 @@
1
+ import {
2
+ createWorkersAiTranscription
3
+ } from "./chunk-PLTFCUMO.js";
4
+ import {
5
+ createWorkersAiTts
6
+ } from "./chunk-XI2BOYEI.js";
7
+ import {
8
+ createWorkersAiChat
9
+ } from "./chunk-BD4CRW3Q.js";
10
+ import {
11
+ ANTHROPIC_MODELS,
12
+ createAnthropicChat,
13
+ createAnthropicSummarize
14
+ } from "./chunk-YIA5B3QT.js";
15
+ import {
16
+ GeminiImageModels,
17
+ GeminiSummarizeModels,
18
+ GeminiTTSModels,
19
+ GeminiTextModels,
20
+ createGeminiChat,
21
+ createGeminiImage,
22
+ createGeminiSummarize,
23
+ createGeminiTts
24
+ } from "./chunk-7AEFXYJG.js";
25
+ import {
26
+ GROK_CHAT_MODELS,
27
+ GROK_IMAGE_MODELS,
28
+ createGrokChat,
29
+ createGrokImage,
30
+ createGrokSummarize
31
+ } from "./chunk-XCNU7EEC.js";
32
+ import {
33
+ OPENAI_CHAT_MODELS,
34
+ OPENAI_IMAGE_MODELS,
35
+ OPENAI_TRANSCRIPTION_MODELS,
36
+ OPENAI_TTS_MODELS,
37
+ OPENAI_VIDEO_MODELS,
38
+ createOpenAiChat,
39
+ createOpenAiImage,
40
+ createOpenAiSummarize,
41
+ createOpenAiTranscription,
42
+ createOpenAiTts,
43
+ createOpenAiVideo
44
+ } from "./chunk-VTDJEUFS.js";
45
+ import {
46
+ createOpenRouterChat,
47
+ createOpenRouterImage,
48
+ createOpenRouterSummarize
49
+ } from "./chunk-QRHKPL75.js";
50
+ import {
51
+ createWorkersAiImage
52
+ } from "./chunk-RQT7M6MU.js";
53
+ import "./chunk-XU7YEPML.js";
54
+ import {
55
+ createWorkersAiSummarize
56
+ } from "./chunk-2AJ6LV2D.js";
57
+ import "./chunk-2VII5BK2.js";
58
+ import "./chunk-F5YJMXZR.js";
59
+ import "./chunk-V6TY7KAL.js";
60
+ export {
61
+ ANTHROPIC_MODELS,
62
+ GROK_CHAT_MODELS,
63
+ GROK_IMAGE_MODELS,
64
+ GeminiImageModels,
65
+ GeminiSummarizeModels,
66
+ GeminiTTSModels,
67
+ GeminiTextModels,
68
+ OPENAI_CHAT_MODELS,
69
+ OPENAI_IMAGE_MODELS,
70
+ OPENAI_TRANSCRIPTION_MODELS,
71
+ OPENAI_TTS_MODELS,
72
+ OPENAI_VIDEO_MODELS,
73
+ createAnthropicChat,
74
+ createAnthropicSummarize,
75
+ createGeminiChat,
76
+ createGeminiImage,
77
+ createGeminiSummarize,
78
+ createGeminiTts,
79
+ createGrokChat,
80
+ createGrokImage,
81
+ createGrokSummarize,
82
+ createOpenAiChat,
83
+ createOpenAiImage,
84
+ createOpenAiSummarize,
85
+ createOpenAiTranscription,
86
+ createOpenAiTts,
87
+ createOpenAiVideo,
88
+ createOpenRouterChat,
89
+ createOpenRouterImage,
90
+ createOpenRouterSummarize,
91
+ createWorkersAiChat,
92
+ createWorkersAiImage,
93
+ createWorkersAiSummarize,
94
+ createWorkersAiTranscription,
95
+ createWorkersAiTts
96
+ };
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,13 +1,122 @@
1
1
  {
2
2
  "name": "@cloudflare/tanstack-ai",
3
- "version": "0.0.0",
4
- "description": "",
5
- "main": "index.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
3
+ "version": "0.1.0",
4
+ "description": "Use TanStack AI with Cloudflare Workers AI and AI Gateway",
5
+ "keywords": [
6
+ "ai",
7
+ "chat",
8
+ "cloudflare",
9
+ "gateway",
10
+ "serverless",
11
+ "tanstack",
12
+ "workers"
13
+ ],
14
+ "bugs": {
15
+ "url": "https://github.com/cloudflare/ai/issues"
16
+ },
17
+ "license": "MIT",
18
+ "author": "Cloudflare Inc.",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+ssh://git@github.com/cloudflare/ai.git"
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "README.md"
26
+ ],
27
+ "type": "module",
28
+ "main": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "import": "./dist/index.js",
34
+ "require": "./dist/index.cjs"
35
+ },
36
+ "./adapters/openai": {
37
+ "types": "./dist/adapters/openai.d.ts",
38
+ "import": "./dist/adapters/openai.js",
39
+ "require": "./dist/adapters/openai.cjs"
40
+ },
41
+ "./adapters/anthropic": {
42
+ "types": "./dist/adapters/anthropic.d.ts",
43
+ "import": "./dist/adapters/anthropic.js",
44
+ "require": "./dist/adapters/anthropic.cjs"
45
+ },
46
+ "./adapters/gemini": {
47
+ "types": "./dist/adapters/gemini.d.ts",
48
+ "import": "./dist/adapters/gemini.js",
49
+ "require": "./dist/adapters/gemini.cjs"
50
+ },
51
+ "./adapters/grok": {
52
+ "types": "./dist/adapters/grok.d.ts",
53
+ "import": "./dist/adapters/grok.js",
54
+ "require": "./dist/adapters/grok.cjs"
55
+ },
56
+ "./adapters/openrouter": {
57
+ "types": "./dist/adapters/openrouter.d.ts",
58
+ "import": "./dist/adapters/openrouter.js",
59
+ "require": "./dist/adapters/openrouter.cjs"
60
+ },
61
+ "./adapters/workers-ai": {
62
+ "types": "./dist/adapters/workers-ai.d.ts",
63
+ "import": "./dist/adapters/workers-ai.js",
64
+ "require": "./dist/adapters/workers-ai.cjs"
65
+ },
66
+ "./adapters/workers-ai-image": {
67
+ "types": "./dist/adapters/workers-ai-image.d.ts",
68
+ "import": "./dist/adapters/workers-ai-image.js",
69
+ "require": "./dist/adapters/workers-ai-image.cjs"
70
+ },
71
+ "./adapters/workers-ai-transcription": {
72
+ "types": "./dist/adapters/workers-ai-transcription.d.ts",
73
+ "import": "./dist/adapters/workers-ai-transcription.js",
74
+ "require": "./dist/adapters/workers-ai-transcription.cjs"
75
+ },
76
+ "./adapters/workers-ai-tts": {
77
+ "types": "./dist/adapters/workers-ai-tts.d.ts",
78
+ "import": "./dist/adapters/workers-ai-tts.js",
79
+ "require": "./dist/adapters/workers-ai-tts.cjs"
80
+ },
81
+ "./adapters/workers-ai-summarize": {
82
+ "types": "./dist/adapters/workers-ai-summarize.d.ts",
83
+ "import": "./dist/adapters/workers-ai-summarize.js",
84
+ "require": "./dist/adapters/workers-ai-summarize.cjs"
85
+ }
86
+ },
87
+ "publishConfig": {
88
+ "access": "public"
89
+ },
90
+ "dependencies": {
91
+ "openai": "^6.16.0"
8
92
  },
9
- "keywords": [],
10
- "author": "",
11
- "license": "ISC",
12
- "type": "commonjs"
13
- }
93
+ "devDependencies": {
94
+ "@microsoft/api-extractor": "^7.56.3",
95
+ "@tanstack/ai": "^0.4.2",
96
+ "dotenv": "^17.2.3"
97
+ },
98
+ "peerDependencies": {
99
+ "@tanstack/ai": "^0.4.2"
100
+ },
101
+ "optionalDependencies": {
102
+ "@anthropic-ai/sdk": "^0.71.2",
103
+ "@cloudflare/workers-types": "^4.20260128.0",
104
+ "@google/genai": "^1.35.0",
105
+ "@openrouter/sdk": "^0.3.15",
106
+ "@tanstack/ai-anthropic": "^0.4.2",
107
+ "@tanstack/ai-gemini": "^0.4.1",
108
+ "@tanstack/ai-grok": "^0.4.1",
109
+ "@tanstack/ai-openai": "^0.4.0",
110
+ "@tanstack/ai-openrouter": "^0.4.2"
111
+ },
112
+ "scripts": {
113
+ "build": "rm -rf dist && tsup --config tsup.config.ts",
114
+ "format": "biome format --write",
115
+ "type-check": "tsc --noEmit",
116
+ "test": "vitest",
117
+ "test:ci": "vitest --watch=false",
118
+ "test:e2e": "vitest --config vitest.e2e.config.ts --watch=false",
119
+ "test:e2e:rest": "vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts",
120
+ "test:e2e:binding": "vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"
121
+ }
122
+ }