@cloudflare/tanstack-ai 0.1.6 → 0.1.8
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.
- package/README.md +35 -6
- package/dist/adapters/anthropic.cjs +32 -11
- package/dist/adapters/anthropic.cjs.map +1 -1
- package/dist/adapters/anthropic.d.cts +23 -5
- package/dist/adapters/anthropic.d.mts +23 -0
- package/dist/adapters/anthropic.mjs +30 -0
- package/dist/adapters/anthropic.mjs.map +1 -0
- package/dist/adapters/gemini.cjs +83 -20
- package/dist/adapters/gemini.cjs.map +1 -1
- package/dist/adapters/gemini.d.cts +52 -14
- package/dist/adapters/gemini.d.mts +52 -0
- package/dist/adapters/gemini.mjs +76 -0
- package/dist/adapters/gemini.mjs.map +1 -0
- package/dist/adapters/grok.cjs +44 -15
- package/dist/adapters/grok.cjs.map +1 -1
- package/dist/adapters/grok.d.cts +26 -9
- package/dist/adapters/grok.d.mts +26 -0
- package/dist/adapters/grok.mjs +40 -0
- package/dist/adapters/grok.mjs.map +1 -0
- package/dist/adapters/openai.cjs +76 -27
- package/dist/adapters/openai.cjs.map +1 -1
- package/dist/adapters/openai.d.cts +45 -17
- package/dist/adapters/openai.d.mts +45 -0
- package/dist/adapters/openai.mjs +66 -0
- package/dist/adapters/openai.mjs.map +1 -0
- package/dist/adapters/openrouter.cjs +83 -11
- package/dist/adapters/openrouter.cjs.map +1 -1
- package/dist/adapters/openrouter.d.cts +39 -7
- package/dist/adapters/openrouter.d.mts +39 -0
- package/dist/adapters/openrouter.mjs +81 -0
- package/dist/adapters/openrouter.mjs.map +1 -0
- package/dist/adapters/workers-ai-image.cjs +97 -11
- package/dist/adapters/workers-ai-image.cjs.map +1 -1
- package/dist/adapters/workers-ai-image.d.cts +41 -3
- package/dist/adapters/workers-ai-image.d.mts +41 -0
- package/dist/adapters/workers-ai-image.mjs +96 -0
- package/dist/adapters/workers-ai-image.mjs.map +1 -0
- package/dist/adapters/workers-ai-summarize.cjs +86 -10
- package/dist/adapters/workers-ai-summarize.cjs.map +1 -1
- package/dist/adapters/workers-ai-summarize.d.cts +42 -3
- package/dist/adapters/workers-ai-summarize.d.mts +42 -0
- package/dist/adapters/workers-ai-summarize.mjs +85 -0
- package/dist/adapters/workers-ai-summarize.mjs.map +1 -0
- package/dist/adapters/workers-ai-transcription.cjs +200 -11
- package/dist/adapters/workers-ai-transcription.cjs.map +1 -1
- package/dist/adapters/workers-ai-transcription.d.cts +74 -3
- package/dist/adapters/workers-ai-transcription.d.mts +74 -0
- package/dist/adapters/workers-ai-transcription.mjs +199 -0
- package/dist/adapters/workers-ai-transcription.mjs.map +1 -0
- package/dist/adapters/workers-ai-tts.cjs +112 -11
- package/dist/adapters/workers-ai-tts.cjs.map +1 -1
- package/dist/adapters/workers-ai-tts.d.cts +54 -3
- package/dist/adapters/workers-ai-tts.d.mts +54 -0
- package/dist/adapters/workers-ai-tts.mjs +111 -0
- package/dist/adapters/workers-ai-tts.mjs.map +1 -0
- package/dist/adapters/workers-ai.cjs +4 -11
- package/dist/adapters/workers-ai.d.cts +45 -3
- package/dist/adapters/workers-ai.d.mts +45 -0
- package/dist/adapters/workers-ai.mjs +481 -0
- package/dist/adapters/workers-ai.mjs.map +1 -0
- package/dist/binary-C9FAYwZj.cjs +70 -0
- package/dist/binary-C9FAYwZj.cjs.map +1 -0
- package/dist/binary-p4H_N_3M.mjs +59 -0
- package/dist/binary-p4H_N_3M.mjs.map +1 -0
- package/dist/create-fetcher-6p6heb85.d.mts +93 -0
- package/dist/create-fetcher-By-hTiT9.cjs +312 -0
- package/dist/create-fetcher-By-hTiT9.cjs.map +1 -0
- package/dist/create-fetcher-CeUOJgrh.mjs +283 -0
- package/dist/create-fetcher-CeUOJgrh.mjs.map +1 -0
- package/dist/create-fetcher-vAQ8WW-p.d.cts +93 -0
- package/dist/defineProperty-CbyrzcbA.mjs +39 -0
- package/dist/defineProperty-DQoAg20E.cjs +44 -0
- package/dist/index.cjs +50 -97
- package/dist/index.d.cts +12 -64
- package/dist/index.d.mts +12 -0
- package/dist/index.mjs +11 -0
- package/dist/workers-ai-BOZ5iyhY.cjs +521 -0
- package/dist/workers-ai-BOZ5iyhY.cjs.map +1 -0
- package/dist/workers-ai-rest-CkNCtBwv.cjs +85 -0
- package/dist/workers-ai-rest-CkNCtBwv.cjs.map +1 -0
- package/dist/workers-ai-rest-GKy2r7eG.mjs +74 -0
- package/dist/workers-ai-rest-GKy2r7eG.mjs.map +1 -0
- package/package.json +73 -40
- package/dist/_tsup-dts-rollup.d.cts +0 -837
- package/dist/_tsup-dts-rollup.d.ts +0 -837
- package/dist/adapters/anthropic.d.ts +0 -5
- package/dist/adapters/anthropic.js +0 -13
- package/dist/adapters/anthropic.js.map +0 -1
- package/dist/adapters/gemini.d.ts +0 -14
- package/dist/adapters/gemini.js +0 -22
- package/dist/adapters/gemini.js.map +0 -1
- package/dist/adapters/grok.d.ts +0 -9
- package/dist/adapters/grok.js +0 -17
- package/dist/adapters/grok.js.map +0 -1
- package/dist/adapters/openai.d.ts +0 -17
- package/dist/adapters/openai.js +0 -29
- package/dist/adapters/openai.js.map +0 -1
- package/dist/adapters/openrouter.d.ts +0 -7
- package/dist/adapters/openrouter.js +0 -13
- package/dist/adapters/openrouter.js.map +0 -1
- package/dist/adapters/workers-ai-image.d.ts +0 -3
- package/dist/adapters/workers-ai-image.js +0 -13
- package/dist/adapters/workers-ai-image.js.map +0 -1
- package/dist/adapters/workers-ai-summarize.d.ts +0 -3
- package/dist/adapters/workers-ai-summarize.js +0 -12
- package/dist/adapters/workers-ai-summarize.js.map +0 -1
- package/dist/adapters/workers-ai-transcription.d.ts +0 -3
- package/dist/adapters/workers-ai-transcription.js +0 -13
- package/dist/adapters/workers-ai-transcription.js.map +0 -1
- package/dist/adapters/workers-ai-tts.d.ts +0 -3
- package/dist/adapters/workers-ai-tts.js +0 -13
- package/dist/adapters/workers-ai-tts.js.map +0 -1
- package/dist/adapters/workers-ai.cjs.map +0 -1
- package/dist/adapters/workers-ai.d.ts +0 -3
- package/dist/adapters/workers-ai.js +0 -11
- package/dist/adapters/workers-ai.js.map +0 -1
- package/dist/chunk-2VII5BK2.js +0 -42
- package/dist/chunk-2VII5BK2.js.map +0 -1
- package/dist/chunk-3VQDXJLW.cjs +0 -46
- package/dist/chunk-3VQDXJLW.cjs.map +0 -1
- package/dist/chunk-3WK5ZD57.js +0 -57
- package/dist/chunk-3WK5ZD57.js.map +0 -1
- package/dist/chunk-4DE2IREA.cjs +0 -8
- package/dist/chunk-4DE2IREA.cjs.map +0 -1
- package/dist/chunk-53A2QIXV.js +0 -98
- package/dist/chunk-53A2QIXV.js.map +0 -1
- package/dist/chunk-6MEX2ZSM.cjs +0 -48
- package/dist/chunk-6MEX2ZSM.cjs.map +0 -1
- package/dist/chunk-7HSUHP63.cjs +0 -42
- package/dist/chunk-7HSUHP63.cjs.map +0 -1
- package/dist/chunk-AIAJANLC.js +0 -327
- package/dist/chunk-AIAJANLC.js.map +0 -1
- package/dist/chunk-CB3PSZY2.cjs +0 -218
- package/dist/chunk-CB3PSZY2.cjs.map +0 -1
- package/dist/chunk-FQE2UKUU.cjs +0 -57
- package/dist/chunk-FQE2UKUU.cjs.map +0 -1
- package/dist/chunk-GL3HHR4M.js +0 -523
- package/dist/chunk-GL3HHR4M.js.map +0 -1
- package/dist/chunk-J5DSSZTO.js +0 -71
- package/dist/chunk-J5DSSZTO.js.map +0 -1
- package/dist/chunk-JRFPCMSE.js +0 -57
- package/dist/chunk-JRFPCMSE.js.map +0 -1
- package/dist/chunk-KWYOUT2Y.js +0 -111
- package/dist/chunk-KWYOUT2Y.js.map +0 -1
- package/dist/chunk-MJ45L566.cjs +0 -57
- package/dist/chunk-MJ45L566.cjs.map +0 -1
- package/dist/chunk-N6U27RQW.cjs +0 -111
- package/dist/chunk-N6U27RQW.cjs.map +0 -1
- package/dist/chunk-NH3FF5JC.js +0 -86
- package/dist/chunk-NH3FF5JC.js.map +0 -1
- package/dist/chunk-OFUYHQZE.cjs +0 -31
- package/dist/chunk-OFUYHQZE.cjs.map +0 -1
- package/dist/chunk-OUEAAP25.cjs +0 -523
- package/dist/chunk-OUEAAP25.cjs.map +0 -1
- package/dist/chunk-Q33U5I5S.js +0 -31
- package/dist/chunk-Q33U5I5S.js.map +0 -1
- package/dist/chunk-V4LKHWJA.cjs +0 -71
- package/dist/chunk-V4LKHWJA.cjs.map +0 -1
- package/dist/chunk-V6TY7KAL.js +0 -8
- package/dist/chunk-V6TY7KAL.js.map +0 -1
- package/dist/chunk-WBTQKWFN.cjs +0 -327
- package/dist/chunk-WBTQKWFN.cjs.map +0 -1
- package/dist/chunk-XU7YEPML.js +0 -46
- package/dist/chunk-XU7YEPML.js.map +0 -1
- package/dist/chunk-YCGNMVQZ.js +0 -218
- package/dist/chunk-YCGNMVQZ.js.map +0 -1
- package/dist/chunk-Z5ZC5ZOQ.js +0 -48
- package/dist/chunk-Z5ZC5ZOQ.js.map +0 -1
- package/dist/chunk-ZFB72L57.cjs +0 -86
- package/dist/chunk-ZFB72L57.cjs.map +0 -1
- package/dist/chunk-ZGLSJM26.cjs +0 -98
- package/dist/chunk-ZGLSJM26.cjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -64
- package/dist/index.js +0 -97
- 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-Q33U5I5S.js";
|
|
6
|
-
import "../chunk-AIAJANLC.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';
|
package/dist/adapters/gemini.js
DELETED
|
@@ -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":[]}
|
package/dist/adapters/grok.d.ts
DELETED
|
@@ -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';
|
package/dist/adapters/grok.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
GROK_CHAT_MODELS,
|
|
3
|
-
GROK_IMAGE_MODELS,
|
|
4
|
-
createGrokChat,
|
|
5
|
-
createGrokImage,
|
|
6
|
-
createGrokSummarize
|
|
7
|
-
} from "../chunk-Z5ZC5ZOQ.js";
|
|
8
|
-
import "../chunk-AIAJANLC.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';
|
package/dist/adapters/openai.js
DELETED
|
@@ -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-3WK5ZD57.js";
|
|
14
|
-
import "../chunk-AIAJANLC.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-JRFPCMSE.js";
|
|
6
|
-
import "../chunk-AIAJANLC.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,13 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
WorkersAiImageAdapter,
|
|
3
|
-
createWorkersAiImage
|
|
4
|
-
} from "../chunk-53A2QIXV.js";
|
|
5
|
-
import "../chunk-XU7YEPML.js";
|
|
6
|
-
import "../chunk-2VII5BK2.js";
|
|
7
|
-
import "../chunk-AIAJANLC.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,12 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
WorkersAiSummarizeAdapter,
|
|
3
|
-
createWorkersAiSummarize
|
|
4
|
-
} from "../chunk-NH3FF5JC.js";
|
|
5
|
-
import "../chunk-2VII5BK2.js";
|
|
6
|
-
import "../chunk-AIAJANLC.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-YCGNMVQZ.js";
|
|
5
|
-
import "../chunk-XU7YEPML.js";
|
|
6
|
-
import "../chunk-2VII5BK2.js";
|
|
7
|
-
import "../chunk-AIAJANLC.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,13 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
WorkersAiTTSAdapter,
|
|
3
|
-
createWorkersAiTts
|
|
4
|
-
} from "../chunk-KWYOUT2Y.js";
|
|
5
|
-
import "../chunk-XU7YEPML.js";
|
|
6
|
-
import "../chunk-2VII5BK2.js";
|
|
7
|
-
import "../chunk-AIAJANLC.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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-2VII5BK2.js
DELETED
|
@@ -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":[]}
|
package/dist/chunk-3VQDXJLW.cjs
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// 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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
exports.uint8ArrayToBase64 = uint8ArrayToBase64; exports.binaryToBase64 = binaryToBase64;
|
|
46
|
-
//# sourceMappingURL=chunk-3VQDXJLW.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/ai/ai/packages/tanstack-ai/dist/chunk-3VQDXJLW.cjs","../src/utils/binary.ts"],"names":[],"mappings":"AAAA;ACYO,SAAS,kBAAA,CAAmB,KAAA,EAA2B;AAC7D,EAAA,IAAI,OAAA,EAAS,EAAA;AACb,EAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,KAAA,CAAM,MAAA,EAAQ,CAAA,EAAA,EAAK;AACtC,IAAA,OAAA,GAAU,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,CAAC,CAAE,CAAA;AAAA,EACxC;AACA,EAAA,OAAO,IAAA,CAAK,MAAM,CAAA;AACnB;AAKA,MAAA,SAAsB,aAAA,CAAc,MAAA,EAAyD;AAC5F,EAAA,MAAM,OAAA,EAAS,MAAA,CAAO,SAAA,CAAU,CAAA;AAChC,EAAA,MAAM,OAAA,EAAuB,CAAC,CAAA;AAC9B,EAAA,MAAA,CAAO,IAAA,EAAM;AACZ,IAAA,MAAM,EAAE,IAAA,EAAM,MAAM,EAAA,EAAI,MAAM,MAAA,CAAO,IAAA,CAAK,CAAA;AAC1C,IAAA,GAAA,CAAI,IAAA,EAAM,KAAA;AACV,IAAA,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,EAClB;AACA,EAAA,MAAM,YAAA,EAAc,MAAA,CAAO,MAAA,CAAO,CAAC,GAAA,EAAK,CAAA,EAAA,GAAM,IAAA,EAAM,CAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAC/D,EAAA,MAAM,SAAA,EAAW,IAAI,UAAA,CAAW,WAAW,CAAA;AAC3C,EAAA,IAAI,OAAA,EAAS,CAAA;AACb,EAAA,IAAA,CAAA,MAAW,MAAA,GAAS,MAAA,EAAQ;AAC3B,IAAA,QAAA,CAAS,GAAA,CAAI,KAAA,EAAO,MAAM,CAAA;AAC1B,IAAA,OAAA,GAAU,KAAA,CAAM,MAAA;AAAA,EACjB;AACA,EAAA,OAAO,QAAA;AACR;AAcA,MAAA,SAAsB,cAAA,CACrB,MAAA,EACA,UAAA,EAAoB,OAAA,EACF;AAClB,EAAA,GAAA,CAAI,OAAA,WAAkB,cAAA,EAAgB;AACrC,IAAA,OAAO,kBAAA,CAAmB,MAAM,aAAA,CAAc,MAAM,CAAC,CAAA;AAAA,EACtD;AAEA,EAAA,GAAA,CAAI,OAAA,WAAkB,WAAA,GAAc,OAAA,WAAkB,WAAA,EAAa;AAClE,IAAA,MAAM,MAAA,EAAQ,OAAA,WAAkB,YAAA,EAAc,IAAI,UAAA,CAAW,MAAM,EAAA,EAAI,MAAA;AACvE,IAAA,OAAO,kBAAA,CAAmB,KAAK,CAAA;AAAA,EAChC;AAGA,EAAA,GAAA,CAAI,OAAO,OAAA,IAAW,SAAA,GAAY,OAAA,IAAW,KAAA,GAAQ,UAAA,GAAa,MAAA,EAAQ;AACzE,IAAA,OAAQ,MAAA,CAAkC,SAAS,CAAA;AAAA,EACpD;AAEA,EAAA,MAAM,IAAI,KAAA;AAAA,IACT,CAAA,0GAAA,EAA6G,SAAS,CAAA,WAAA;AAAA,EACvH,CAAA;AACD;ADlCA;AACA;AACE;AACA;AACF,yFAAC","file":"/home/runner/work/ai/ai/packages/tanstack-ai/dist/chunk-3VQDXJLW.cjs","sourcesContent":[null,"/**\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"]}
|
package/dist/chunk-3WK5ZD57.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createGatewayFetch
|
|
3
|
-
} from "./chunk-AIAJANLC.js";
|
|
4
|
-
|
|
5
|
-
// src/adapters/openai.ts
|
|
6
|
-
import {
|
|
7
|
-
OpenAIImageAdapter,
|
|
8
|
-
OpenAISummarizeAdapter,
|
|
9
|
-
OpenAITextAdapter,
|
|
10
|
-
OpenAITranscriptionAdapter,
|
|
11
|
-
OpenAITTSAdapter,
|
|
12
|
-
OpenAIVideoAdapter,
|
|
13
|
-
OPENAI_CHAT_MODELS,
|
|
14
|
-
OPENAI_IMAGE_MODELS,
|
|
15
|
-
OPENAI_TRANSCRIPTION_MODELS,
|
|
16
|
-
OPENAI_TTS_MODELS,
|
|
17
|
-
OPENAI_VIDEO_MODELS
|
|
18
|
-
} from "@tanstack/ai-openai";
|
|
19
|
-
function buildOpenAiConfig(provider, config) {
|
|
20
|
-
return {
|
|
21
|
-
apiKey: config.apiKey ?? "unused",
|
|
22
|
-
fetch: createGatewayFetch(provider, config)
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function createOpenAiChat(model, config) {
|
|
26
|
-
return new OpenAITextAdapter(buildOpenAiConfig("openai", config), model);
|
|
27
|
-
}
|
|
28
|
-
function createOpenAiSummarize(model, config) {
|
|
29
|
-
return new OpenAISummarizeAdapter(buildOpenAiConfig("openai", config), model);
|
|
30
|
-
}
|
|
31
|
-
function createOpenAiImage(model, config) {
|
|
32
|
-
return new OpenAIImageAdapter(buildOpenAiConfig("openai", config), model);
|
|
33
|
-
}
|
|
34
|
-
function createOpenAiTranscription(model, config) {
|
|
35
|
-
return new OpenAITranscriptionAdapter(buildOpenAiConfig("openai", config), model);
|
|
36
|
-
}
|
|
37
|
-
function createOpenAiTts(model, config) {
|
|
38
|
-
return new OpenAITTSAdapter(buildOpenAiConfig("openai", config), model);
|
|
39
|
-
}
|
|
40
|
-
function createOpenAiVideo(model, config) {
|
|
41
|
-
return new OpenAIVideoAdapter(buildOpenAiConfig("openai", config), model);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export {
|
|
45
|
-
OPENAI_CHAT_MODELS,
|
|
46
|
-
OPENAI_IMAGE_MODELS,
|
|
47
|
-
OPENAI_TRANSCRIPTION_MODELS,
|
|
48
|
-
OPENAI_TTS_MODELS,
|
|
49
|
-
OPENAI_VIDEO_MODELS,
|
|
50
|
-
createOpenAiChat,
|
|
51
|
-
createOpenAiSummarize,
|
|
52
|
-
createOpenAiImage,
|
|
53
|
-
createOpenAiTranscription,
|
|
54
|
-
createOpenAiTts,
|
|
55
|
-
createOpenAiVideo
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=chunk-3WK5ZD57.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/adapters/openai.ts"],"sourcesContent":["import {\n\tOpenAIImageAdapter,\n\tOpenAISummarizeAdapter,\n\tOpenAITextAdapter,\n\tOpenAITranscriptionAdapter,\n\tOpenAITTSAdapter,\n\tOpenAIVideoAdapter,\n\tOPENAI_CHAT_MODELS,\n\tOPENAI_IMAGE_MODELS,\n\tOPENAI_TRANSCRIPTION_MODELS,\n\tOPENAI_TTS_MODELS,\n\tOPENAI_VIDEO_MODELS,\n\ttype OpenAIChatModel,\n\ttype OpenAIImageModel,\n\ttype OpenAITranscriptionModel,\n\ttype OpenAITTSModel,\n\ttype OpenAIVideoModel,\n} from \"@tanstack/ai-openai\";\nimport { createGatewayFetch, type AiGatewayAdapterConfig } from \"../utils/create-fetcher\";\n\nexport type OpenAiGatewayConfig = AiGatewayAdapterConfig;\n\n/**\n * Builds an OpenAI-compatible config that injects the gateway fetch.\n * OpenAITextConfig extends OpenAI SDK's ClientOptions, which supports a `fetch` parameter.\n */\nfunction buildOpenAiConfig(provider: string, config: OpenAiGatewayConfig) {\n\treturn {\n\t\tapiKey: config.apiKey ?? \"unused\",\n\t\tfetch: createGatewayFetch(provider, config),\n\t};\n}\n\n/**\n * Creates an OpenAI chat adapter which uses Cloudflare AI Gateway.\n * Supports both binding and credential-based configurations.\n * @param model The OpenAI model to use\n * @param config Configuration options\n */\nexport function createOpenAiChat(model: OpenAIChatModel, config: OpenAiGatewayConfig) {\n\treturn new OpenAITextAdapter(buildOpenAiConfig(\"openai\", config), model);\n}\n\n/**\n * Creates an OpenAI summarize adapter which uses Cloudflare AI Gateway.\n * @param model The OpenAI model to use\n * @param config Configuration options\n */\nexport function createOpenAiSummarize(model: OpenAIChatModel, config: OpenAiGatewayConfig) {\n\treturn new OpenAISummarizeAdapter(buildOpenAiConfig(\"openai\", config), model);\n}\n\n/**\n * Creates an OpenAI image adapter which uses Cloudflare AI Gateway.\n * @param model The OpenAI image model to use\n * @param config Configuration options\n */\nexport function createOpenAiImage(model: OpenAIImageModel, config: OpenAiGatewayConfig) {\n\treturn new OpenAIImageAdapter(buildOpenAiConfig(\"openai\", config), model);\n}\n\n/**\n * Creates an OpenAI transcription adapter which uses Cloudflare AI Gateway.\n * @param model The OpenAI transcription model to use\n * @param config Configuration options\n */\nexport function createOpenAiTranscription(\n\tmodel: OpenAITranscriptionModel,\n\tconfig: OpenAiGatewayConfig,\n) {\n\treturn new OpenAITranscriptionAdapter(buildOpenAiConfig(\"openai\", config), model);\n}\n\n/**\n * Creates an OpenAI TTS adapter which uses Cloudflare AI Gateway.\n * @param model The OpenAI TTS model to use\n * @param config Configuration options\n */\nexport function createOpenAiTts(model: OpenAITTSModel, config: OpenAiGatewayConfig) {\n\treturn new OpenAITTSAdapter(buildOpenAiConfig(\"openai\", config), model);\n}\n\n/**\n * Creates an OpenAI video adapter which uses Cloudflare AI Gateway.\n * @param model The OpenAI video model to use\n * @param config Configuration options\n */\nexport function createOpenAiVideo(model: OpenAIVideoModel, config: OpenAiGatewayConfig) {\n\treturn new OpenAIVideoAdapter(buildOpenAiConfig(\"openai\", config), model);\n}\n\nexport {\n\tOPENAI_CHAT_MODELS,\n\tOPENAI_IMAGE_MODELS,\n\tOPENAI_TRANSCRIPTION_MODELS,\n\tOPENAI_TTS_MODELS,\n\tOPENAI_VIDEO_MODELS,\n\ttype OpenAIChatModel,\n\ttype OpenAIImageModel,\n\ttype OpenAITranscriptionModel,\n\ttype OpenAITTSModel,\n\ttype OpenAIVideoModel,\n};\n"],"mappings":";;;;;AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAMM;AASP,SAAS,kBAAkB,UAAkB,QAA6B;AACzE,SAAO;AAAA,IACN,QAAQ,OAAO,UAAU;AAAA,IACzB,OAAO,mBAAmB,UAAU,MAAM;AAAA,EAC3C;AACD;AAQO,SAAS,iBAAiB,OAAwB,QAA6B;AACrF,SAAO,IAAI,kBAAkB,kBAAkB,UAAU,MAAM,GAAG,KAAK;AACxE;AAOO,SAAS,sBAAsB,OAAwB,QAA6B;AAC1F,SAAO,IAAI,uBAAuB,kBAAkB,UAAU,MAAM,GAAG,KAAK;AAC7E;AAOO,SAAS,kBAAkB,OAAyB,QAA6B;AACvF,SAAO,IAAI,mBAAmB,kBAAkB,UAAU,MAAM,GAAG,KAAK;AACzE;AAOO,SAAS,0BACf,OACA,QACC;AACD,SAAO,IAAI,2BAA2B,kBAAkB,UAAU,MAAM,GAAG,KAAK;AACjF;AAOO,SAAS,gBAAgB,OAAuB,QAA6B;AACnF,SAAO,IAAI,iBAAiB,kBAAkB,UAAU,MAAM,GAAG,KAAK;AACvE;AAOO,SAAS,kBAAkB,OAAyB,QAA6B;AACvF,SAAO,IAAI,mBAAmB,kBAAkB,UAAU,MAAM,GAAG,KAAK;AACzE;","names":[]}
|
package/dist/chunk-4DE2IREA.cjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.__publicField = __publicField;
|
|
8
|
-
//# sourceMappingURL=chunk-4DE2IREA.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/ai/ai/packages/tanstack-ai/dist/chunk-4DE2IREA.cjs"],"names":[],"mappings":"AAAA,6EAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK;AAC/J,IAAI,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;AAC9G;AACA;AACE;AACF,sCAAC","file":"/home/runner/work/ai/ai/packages/tanstack-ai/dist/chunk-4DE2IREA.cjs"}
|
package/dist/chunk-53A2QIXV.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
binaryToBase64,
|
|
3
|
-
uint8ArrayToBase64
|
|
4
|
-
} from "./chunk-XU7YEPML.js";
|
|
5
|
-
import {
|
|
6
|
-
workersAiRestFetch
|
|
7
|
-
} from "./chunk-2VII5BK2.js";
|
|
8
|
-
import {
|
|
9
|
-
createGatewayFetch,
|
|
10
|
-
isDirectBindingConfig,
|
|
11
|
-
isDirectCredentialsConfig,
|
|
12
|
-
validateWorkersAiConfig
|
|
13
|
-
} from "./chunk-AIAJANLC.js";
|
|
14
|
-
import {
|
|
15
|
-
__publicField
|
|
16
|
-
} from "./chunk-V6TY7KAL.js";
|
|
17
|
-
|
|
18
|
-
// src/adapters/workers-ai-image.ts
|
|
19
|
-
import { BaseImageAdapter } from "@tanstack/ai/adapters";
|
|
20
|
-
var WorkersAiImageAdapter = class extends BaseImageAdapter {
|
|
21
|
-
constructor(config, model) {
|
|
22
|
-
super({}, model);
|
|
23
|
-
__publicField(this, "name", "workers-ai-image");
|
|
24
|
-
__publicField(this, "adapterConfig");
|
|
25
|
-
validateWorkersAiConfig(config);
|
|
26
|
-
this.adapterConfig = config;
|
|
27
|
-
}
|
|
28
|
-
async generateImages(options) {
|
|
29
|
-
const { prompt, size, modelOptions } = options;
|
|
30
|
-
const extra = { ...modelOptions };
|
|
31
|
-
if (size) {
|
|
32
|
-
const [w, h] = size.split("x");
|
|
33
|
-
if (w) extra.width = Number(w);
|
|
34
|
-
if (h) extra.height = Number(h);
|
|
35
|
-
}
|
|
36
|
-
if (isDirectBindingConfig(this.adapterConfig)) {
|
|
37
|
-
return this.generateViaBinding(prompt, extra);
|
|
38
|
-
}
|
|
39
|
-
if (isDirectCredentialsConfig(this.adapterConfig)) {
|
|
40
|
-
return this.generateViaRest(prompt, extra);
|
|
41
|
-
}
|
|
42
|
-
return this.generateViaGateway(prompt, extra);
|
|
43
|
-
}
|
|
44
|
-
async generateViaBinding(prompt, options) {
|
|
45
|
-
const ai = this.adapterConfig.binding;
|
|
46
|
-
const result = await ai.run(this.model, { prompt, ...options });
|
|
47
|
-
const b64 = await binaryToBase64(result, "image");
|
|
48
|
-
return this.wrapResult(b64);
|
|
49
|
-
}
|
|
50
|
-
async generateViaRest(prompt, options) {
|
|
51
|
-
const config = this.adapterConfig;
|
|
52
|
-
const response = await workersAiRestFetch(
|
|
53
|
-
config,
|
|
54
|
-
this.model,
|
|
55
|
-
{ prompt, ...options },
|
|
56
|
-
{ label: "Workers AI image", signal: options.signal }
|
|
57
|
-
);
|
|
58
|
-
const buffer = await response.arrayBuffer();
|
|
59
|
-
return this.wrapResult(uint8ArrayToBase64(new Uint8Array(buffer)));
|
|
60
|
-
}
|
|
61
|
-
async generateViaGateway(prompt, options) {
|
|
62
|
-
const gatewayConfig = this.adapterConfig;
|
|
63
|
-
const gatewayFetch = createGatewayFetch("workers-ai", gatewayConfig);
|
|
64
|
-
const response = await gatewayFetch("https://api.cloudflare.com/v1/images/generations", {
|
|
65
|
-
method: "POST",
|
|
66
|
-
body: JSON.stringify({
|
|
67
|
-
model: this.model,
|
|
68
|
-
prompt,
|
|
69
|
-
...options
|
|
70
|
-
})
|
|
71
|
-
});
|
|
72
|
-
if (!response.ok) {
|
|
73
|
-
const errorText = await response.text();
|
|
74
|
-
throw new Error(
|
|
75
|
-
`Workers AI image gateway request failed (${response.status}): ${errorText}`
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
const buffer = await response.arrayBuffer();
|
|
79
|
-
return this.wrapResult(uint8ArrayToBase64(new Uint8Array(buffer)));
|
|
80
|
-
}
|
|
81
|
-
/** Wrap a base64 image string into the standard ImageGenerationResult. */
|
|
82
|
-
wrapResult(b64) {
|
|
83
|
-
return {
|
|
84
|
-
id: this.generateId(),
|
|
85
|
-
model: this.model,
|
|
86
|
-
images: [{ b64Json: b64 }]
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
function createWorkersAiImage(model, config) {
|
|
91
|
-
return new WorkersAiImageAdapter(config, model);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export {
|
|
95
|
-
WorkersAiImageAdapter,
|
|
96
|
-
createWorkersAiImage
|
|
97
|
-
};
|
|
98
|
-
//# sourceMappingURL=chunk-53A2QIXV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/adapters/workers-ai-image.ts"],"sourcesContent":["import { BaseImageAdapter } from \"@tanstack/ai/adapters\";\nimport type { ImageGenerationOptions, ImageGenerationResult } from \"@tanstack/ai\";\nimport type { AiModels, BaseAiTextToImage } from \"@cloudflare/workers-types\";\nimport {\n\ttype WorkersAiAdapterConfig,\n\ttype WorkersAiDirectBindingConfig,\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\";\nimport type { WorkersAiDirectCredentialsConfig } from \"../utils/create-fetcher\";\n\n// ---------------------------------------------------------------------------\n// Model type derived from @cloudflare/workers-types\n// ---------------------------------------------------------------------------\n\nexport type WorkersAiImageModel =\n\t| { [K in keyof AiModels]: AiModels[K] extends BaseAiTextToImage ? K : never }[keyof AiModels]\n\t| (string & {});\n\n// ---------------------------------------------------------------------------\n// WorkersAiImageAdapter: image generation via Workers AI\n// Extends BaseImageAdapter so it works with TanStack AI's generateImage()\n// ---------------------------------------------------------------------------\n\nexport class WorkersAiImageAdapter extends BaseImageAdapter<WorkersAiImageModel> {\n\treadonly name = \"workers-ai-image\" as const;\n\tprivate adapterConfig: WorkersAiAdapterConfig;\n\n\tconstructor(config: WorkersAiAdapterConfig, model: WorkersAiImageModel) {\n\t\tsuper({}, model);\n\t\tvalidateWorkersAiConfig(config);\n\t\tthis.adapterConfig = config;\n\t}\n\n\tasync generateImages(options: ImageGenerationOptions): Promise<ImageGenerationResult> {\n\t\tconst { prompt, size, modelOptions } = options;\n\t\tconst extra: Record<string, unknown> = { ...modelOptions };\n\n\t\t// Note: Workers AI Stable Diffusion models only generate a single image\n\t\t// per request — there is no multi-image parameter. `numberOfImages` from\n\t\t// the TanStack AI options is intentionally not forwarded. Use\n\t\t// `modelOptions.num_steps` to control the number of diffusion steps.\n\n\t\tif (size) {\n\t\t\tconst [w, h] = size.split(\"x\");\n\t\t\tif (w) extra.width = Number(w);\n\t\t\tif (h) extra.height = Number(h);\n\t\t}\n\n\t\tif (isDirectBindingConfig(this.adapterConfig)) {\n\t\t\treturn this.generateViaBinding(prompt, extra);\n\t\t}\n\n\t\tif (isDirectCredentialsConfig(this.adapterConfig)) {\n\t\t\treturn this.generateViaRest(prompt, extra);\n\t\t}\n\n\t\t// Gateway mode\n\t\treturn this.generateViaGateway(prompt, extra);\n\t}\n\n\tprivate async generateViaBinding(\n\t\tprompt: string,\n\t\toptions: Record<string, unknown>,\n\t): Promise<ImageGenerationResult> {\n\t\tconst ai = (this.adapterConfig as WorkersAiDirectBindingConfig).binding;\n\t\tconst result = await ai.run(this.model, { prompt, ...options });\n\n\t\tconst b64 = await binaryToBase64(result, \"image\");\n\t\treturn this.wrapResult(b64);\n\t}\n\n\tprivate async generateViaRest(\n\t\tprompt: string,\n\t\toptions: Record<string, unknown>,\n\t): Promise<ImageGenerationResult> {\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{ prompt, ...options },\n\t\t\t{ label: \"Workers AI image\", signal: (options as { signal?: AbortSignal }).signal },\n\t\t);\n\n\t\tconst buffer = await response.arrayBuffer();\n\t\treturn this.wrapResult(uint8ArrayToBase64(new Uint8Array(buffer)));\n\t}\n\n\tprivate async generateViaGateway(\n\t\tprompt: string,\n\t\toptions: Record<string, unknown>,\n\t): Promise<ImageGenerationResult> {\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/images/generations\", {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify({\n\t\t\t\tmodel: this.model,\n\t\t\t\tprompt,\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 image 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.wrapResult(uint8ArrayToBase64(new Uint8Array(buffer)));\n\t}\n\n\t/** Wrap a base64 image string into the standard ImageGenerationResult. */\n\tprivate wrapResult(b64: string): ImageGenerationResult {\n\t\treturn {\n\t\t\tid: this.generateId(),\n\t\t\tmodel: this.model,\n\t\t\timages: [{ b64Json: b64 }],\n\t\t};\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Factory function\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a Workers AI image generation adapter.\n *\n * Works with TanStack AI's `generateImage()` activity function:\n * ```ts\n * import { generateImage } from \"@tanstack/ai\";\n * import { createWorkersAiImage } from \"@cloudflare/tanstack-ai\";\n *\n * const adapter = createWorkersAiImage(\n * \"@cf/stabilityai/stable-diffusion-xl-base-1.0\",\n * { binding: env.AI },\n * );\n *\n * const result = await generateImage({ adapter, prompt: \"a cat in space\" });\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 createWorkersAiImage(model: WorkersAiImageModel, config: WorkersAiAdapterConfig) {\n\treturn new WorkersAiImageAdapter(config, model);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAS,wBAAwB;AA6B1B,IAAM,wBAAN,cAAoC,iBAAsC;AAAA,EAIhF,YAAY,QAAgC,OAA4B;AACvE,UAAM,CAAC,GAAG,KAAK;AAJhB,wBAAS,QAAO;AAChB,wBAAQ;AAIP,4BAAwB,MAAM;AAC9B,SAAK,gBAAgB;AAAA,EACtB;AAAA,EAEA,MAAM,eAAe,SAAiE;AACrF,UAAM,EAAE,QAAQ,MAAM,aAAa,IAAI;AACvC,UAAM,QAAiC,EAAE,GAAG,aAAa;AAOzD,QAAI,MAAM;AACT,YAAM,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,GAAG;AAC7B,UAAI,EAAG,OAAM,QAAQ,OAAO,CAAC;AAC7B,UAAI,EAAG,OAAM,SAAS,OAAO,CAAC;AAAA,IAC/B;AAEA,QAAI,sBAAsB,KAAK,aAAa,GAAG;AAC9C,aAAO,KAAK,mBAAmB,QAAQ,KAAK;AAAA,IAC7C;AAEA,QAAI,0BAA0B,KAAK,aAAa,GAAG;AAClD,aAAO,KAAK,gBAAgB,QAAQ,KAAK;AAAA,IAC1C;AAGA,WAAO,KAAK,mBAAmB,QAAQ,KAAK;AAAA,EAC7C;AAAA,EAEA,MAAc,mBACb,QACA,SACiC;AACjC,UAAM,KAAM,KAAK,cAA+C;AAChE,UAAM,SAAS,MAAM,GAAG,IAAI,KAAK,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;AAE9D,UAAM,MAAM,MAAM,eAAe,QAAQ,OAAO;AAChD,WAAO,KAAK,WAAW,GAAG;AAAA,EAC3B;AAAA,EAEA,MAAc,gBACb,QACA,SACiC;AACjC,UAAM,SAAS,KAAK;AACpB,UAAM,WAAW,MAAM;AAAA,MACtB;AAAA,MACA,KAAK;AAAA,MACL,EAAE,QAAQ,GAAG,QAAQ;AAAA,MACrB,EAAE,OAAO,oBAAoB,QAAS,QAAqC,OAAO;AAAA,IACnF;AAEA,UAAM,SAAS,MAAM,SAAS,YAAY;AAC1C,WAAO,KAAK,WAAW,mBAAmB,IAAI,WAAW,MAAM,CAAC,CAAC;AAAA,EAClE;AAAA,EAEA,MAAc,mBACb,QACA,SACiC;AACjC,UAAM,gBAAgB,KAAK;AAC3B,UAAM,eAAe,mBAAmB,cAAc,aAAa;AAKnE,UAAM,WAAW,MAAM,aAAa,oDAAoD;AAAA,MACvF,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU;AAAA,QACpB,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,GAAG;AAAA,MACJ,CAAC;AAAA,IACF,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AACjB,YAAM,YAAY,MAAM,SAAS,KAAK;AACtC,YAAM,IAAI;AAAA,QACT,4CAA4C,SAAS,MAAM,MAAM,SAAS;AAAA,MAC3E;AAAA,IACD;AAEA,UAAM,SAAS,MAAM,SAAS,YAAY;AAC1C,WAAO,KAAK,WAAW,mBAAmB,IAAI,WAAW,MAAM,CAAC,CAAC;AAAA,EAClE;AAAA;AAAA,EAGQ,WAAW,KAAoC;AACtD,WAAO;AAAA,MACN,IAAI,KAAK,WAAW;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,QAAQ,CAAC,EAAE,SAAS,IAAI,CAAC;AAAA,IAC1B;AAAA,EACD;AACD;AAyBO,SAAS,qBAAqB,OAA4B,QAAgC;AAChG,SAAO,IAAI,sBAAsB,QAAQ,KAAK;AAC/C;","names":[]}
|