@thewhateverapp/platform 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/index.d.ts +12 -5
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +38 -6
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/namespace.d.ts +115 -0
- package/dist/ai/namespace.d.ts.map +1 -0
- package/dist/ai/namespace.js +128 -0
- package/dist/ai/namespace.js.map +1 -0
- package/dist/ai/workers.d.ts +77 -0
- package/dist/ai/workers.d.ts.map +1 -0
- package/dist/ai/workers.js +171 -0
- package/dist/ai/workers.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/ai/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Edge AI Service
|
|
3
3
|
*
|
|
4
4
|
* Provides AI capabilities for user-generated tiles running on Cloudflare Workers/Pages.
|
|
5
|
-
*
|
|
5
|
+
* Supports both direct Cloudflare Workers AI (via env.AI binding) and platform API fallback.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* // Configure env once per request
|
|
14
14
|
* configurePlatformEnv(() => getCloudflareContext().env);
|
|
15
15
|
*
|
|
16
|
-
* const ai =
|
|
16
|
+
* const ai = getAI();
|
|
17
17
|
*
|
|
18
18
|
* // Simple text generation
|
|
19
19
|
* const answer = await ai.ask("Summarize this text: ...");
|
|
@@ -31,24 +31,31 @@
|
|
|
31
31
|
* images: [{ type: 'url', data: imageUrl }]
|
|
32
32
|
* });
|
|
33
33
|
*
|
|
34
|
+
* // Advanced: direct model access
|
|
35
|
+
* const embeddings = await ai.embed("text to embed");
|
|
36
|
+
* const image = await ai.generateImage("a beautiful sunset");
|
|
37
|
+
*
|
|
34
38
|
* return NextResponse.json({ answer });
|
|
35
39
|
* }
|
|
36
40
|
* ```
|
|
37
41
|
*/
|
|
38
42
|
import type { AIServiceProvider, AIRequest, AIEnv } from './types';
|
|
43
|
+
import { type WorkersAIHelpers, type WorkersAIEnv } from './workers';
|
|
39
44
|
export type * from './types';
|
|
45
|
+
export type { WorkersAIHelpers, WorkersAIEnv } from './workers';
|
|
40
46
|
/**
|
|
41
47
|
* Get an AI service instance for the current request
|
|
42
48
|
*
|
|
43
49
|
* Automatically retrieves configuration from the environment.
|
|
50
|
+
* Prefers direct Workers AI (env.AI) if available, falls back to platform API.
|
|
44
51
|
*
|
|
45
52
|
* @param req - Optional: NextRequest, object with env property, or env object directly.
|
|
46
53
|
* If not provided, uses the env configured via configurePlatformEnv().
|
|
47
|
-
* @returns AI service provider instance
|
|
54
|
+
* @returns AI service provider instance (WorkersAIHelpers if using Workers AI)
|
|
48
55
|
*/
|
|
49
56
|
export declare function getAI(req?: AIRequest | {
|
|
50
|
-
env: AIEnv;
|
|
51
|
-
} | AIEnv):
|
|
57
|
+
env: AIEnv & WorkersAIEnv;
|
|
58
|
+
} | (AIEnv & WorkersAIEnv)): WorkersAIHelpers;
|
|
52
59
|
/**
|
|
53
60
|
* Create an AI service instance directly with config
|
|
54
61
|
*
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,KAAK,EAIN,MAAM,SAAS,CAAC;AAEjB,OAAO,EAA8B,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAGjG,mBAAmB,SAAS,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKhE;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CACnB,GAAG,CAAC,EAAE,SAAS,GAAG;IAAE,GAAG,EAAE,KAAK,GAAG,YAAY,CAAA;CAAE,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,GACvE,gBAAgB,CA+DlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAGvF"}
|
package/dist/ai/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Edge AI Service
|
|
3
3
|
*
|
|
4
4
|
* Provides AI capabilities for user-generated tiles running on Cloudflare Workers/Pages.
|
|
5
|
-
*
|
|
5
|
+
* Supports both direct Cloudflare Workers AI (via env.AI binding) and platform API fallback.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* // Configure env once per request
|
|
14
14
|
* configurePlatformEnv(() => getCloudflareContext().env);
|
|
15
15
|
*
|
|
16
|
-
* const ai =
|
|
16
|
+
* const ai = getAI();
|
|
17
17
|
*
|
|
18
18
|
* // Simple text generation
|
|
19
19
|
* const answer = await ai.ask("Summarize this text: ...");
|
|
@@ -31,21 +31,27 @@
|
|
|
31
31
|
* images: [{ type: 'url', data: imageUrl }]
|
|
32
32
|
* });
|
|
33
33
|
*
|
|
34
|
+
* // Advanced: direct model access
|
|
35
|
+
* const embeddings = await ai.embed("text to embed");
|
|
36
|
+
* const image = await ai.generateImage("a beautiful sunset");
|
|
37
|
+
*
|
|
34
38
|
* return NextResponse.json({ answer });
|
|
35
39
|
* }
|
|
36
40
|
* ```
|
|
37
41
|
*/
|
|
38
42
|
import { getPlatformEnv, isPlatformEnvConfigured } from '../env';
|
|
43
|
+
import { createWorkersAIWithHelpers } from './workers';
|
|
39
44
|
// Default platform API URL
|
|
40
45
|
const DEFAULT_PLATFORM_API = 'https://api.thewhatever.app';
|
|
41
46
|
/**
|
|
42
47
|
* Get an AI service instance for the current request
|
|
43
48
|
*
|
|
44
49
|
* Automatically retrieves configuration from the environment.
|
|
50
|
+
* Prefers direct Workers AI (env.AI) if available, falls back to platform API.
|
|
45
51
|
*
|
|
46
52
|
* @param req - Optional: NextRequest, object with env property, or env object directly.
|
|
47
53
|
* If not provided, uses the env configured via configurePlatformEnv().
|
|
48
|
-
* @returns AI service provider instance
|
|
54
|
+
* @returns AI service provider instance (WorkersAIHelpers if using Workers AI)
|
|
49
55
|
*/
|
|
50
56
|
export function getAI(req) {
|
|
51
57
|
let env;
|
|
@@ -60,7 +66,7 @@ export function getAI(req) {
|
|
|
60
66
|
else if ('env' in req) {
|
|
61
67
|
env = req.env;
|
|
62
68
|
}
|
|
63
|
-
else if ('PLATFORM_API_KEY' in req || 'PLATFORM_API_URL' in req || 'TILE_ID' in req) {
|
|
69
|
+
else if ('PLATFORM_API_KEY' in req || 'PLATFORM_API_URL' in req || 'TILE_ID' in req || 'AI' in req) {
|
|
64
70
|
// Direct env object
|
|
65
71
|
env = req;
|
|
66
72
|
}
|
|
@@ -70,12 +76,38 @@ export function getAI(req) {
|
|
|
70
76
|
if (!env) {
|
|
71
77
|
throw new Error('No environment found in request. Ensure you are running in edge runtime.');
|
|
72
78
|
}
|
|
79
|
+
// Prefer Workers AI if available
|
|
80
|
+
if (env.AI) {
|
|
81
|
+
return createWorkersAIWithHelpers(env.AI);
|
|
82
|
+
}
|
|
83
|
+
// Fall back to platform API
|
|
73
84
|
const apiUrl = env.PLATFORM_API_URL || DEFAULT_PLATFORM_API;
|
|
74
85
|
const apiKey = env.PLATFORM_API_KEY;
|
|
75
86
|
if (!apiKey) {
|
|
76
|
-
throw new Error('No
|
|
87
|
+
throw new Error('No AI binding or PLATFORM_API_KEY found. ' +
|
|
88
|
+
'Add AI binding to wrangler.jsonc or set PLATFORM_API_KEY secret.');
|
|
77
89
|
}
|
|
78
|
-
|
|
90
|
+
// Platform API doesn't support all helper methods, so we need to create a compatible wrapper
|
|
91
|
+
const baseProvider = createAIProvider(apiUrl, apiKey);
|
|
92
|
+
// Return with stub implementations for helpers (not supported via platform API)
|
|
93
|
+
return {
|
|
94
|
+
...baseProvider,
|
|
95
|
+
async embed() {
|
|
96
|
+
throw new Error('embed() requires Workers AI binding (env.AI). Platform API does not support embeddings.');
|
|
97
|
+
},
|
|
98
|
+
async generateImage() {
|
|
99
|
+
throw new Error('generateImage() requires Workers AI binding (env.AI). Platform API does not support image generation.');
|
|
100
|
+
},
|
|
101
|
+
async transcribe() {
|
|
102
|
+
throw new Error('transcribe() requires Workers AI binding (env.AI). Platform API does not support speech recognition.');
|
|
103
|
+
},
|
|
104
|
+
async translate() {
|
|
105
|
+
throw new Error('translate() requires Workers AI binding (env.AI). Platform API does not support translation.');
|
|
106
|
+
},
|
|
107
|
+
async run() {
|
|
108
|
+
throw new Error('run() requires Workers AI binding (env.AI). Use ask() or prompt() instead.');
|
|
109
|
+
},
|
|
110
|
+
};
|
|
79
111
|
}
|
|
80
112
|
/**
|
|
81
113
|
* Create an AI service instance directly with config
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAUH,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAA4C,MAAM,WAAW,CAAC;AAMjG,2BAA2B;AAC3B,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CACnB,GAAwE;IAExE,IAAI,GAAuC,CAAC;IAE5C,2DAA2D;IAC3D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,wEAAwE;gBACtE,gHAAgH,CACnH,CAAC;QACJ,CAAC;QACD,GAAG,GAAG,cAAc,EAA0B,CAAC;IACjD,CAAC;SAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IAChB,CAAC;SAAM,IAAI,kBAAkB,IAAI,GAAG,IAAI,kBAAkB,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QACrG,oBAAoB;QACpB,GAAG,GAAG,GAA2B,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,GAAG,GAAI,GAAW,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IAED,iCAAiC;IACjC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACX,OAAO,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,4BAA4B;IAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,IAAI,oBAAoB,CAAC;IAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,2CAA2C;YACzC,kEAAkE,CACrE,CAAC;IACJ,CAAC;IAED,6FAA6F;IAC7F,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtD,gFAAgF;IAChF,OAAO;QACL,GAAG,YAAY;QACf,KAAK,CAAC,KAAK;YACT,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;QAC7G,CAAC;QACD,KAAK,CAAC,aAAa;YACjB,MAAM,IAAI,KAAK,CAAC,uGAAuG,CAAC,CAAC;QAC3H,CAAC;QACD,KAAK,CAAC,UAAU;YACd,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAC;QAC1H,CAAC;QACD,KAAK,CAAC,SAAS;YACb,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAClH,CAAC;QACD,KAAK,CAAC,GAAG;YACP,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,MAA2C;IAClE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAAC;IACrD,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAc,EAAE,MAAc;IACtD,KAAK,UAAU,OAAO,CAAI,QAAgB,EAAE,IAAS;QACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,eAAe,QAAQ,EAAE,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,MAAM;aACpB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAuB,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,qBAAqB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,OAAoB;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAiB,SAAS,EAAE;gBACtD,MAAM;gBACN,QAAQ,EAAE,OAAO,EAAE,QAAQ;gBAC3B,YAAY,EAAE,OAAO,EAAE,YAAY;gBACnC,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,WAAW,EAAE,OAAO,EAAE,WAAW;aAClC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,GAAkB;YAC7B,OAAO,OAAO,CAAiB,SAAS,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Namespace API - Convenience wrappers
|
|
3
|
+
*
|
|
4
|
+
* Provides a clean namespace-based API for common AI tasks
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { ai } from '@thewhateverapp/platform';
|
|
9
|
+
*
|
|
10
|
+
* // Simple text generation
|
|
11
|
+
* const answer = await ai.chat("What is TypeScript?");
|
|
12
|
+
*
|
|
13
|
+
* // Generate embeddings
|
|
14
|
+
* const vectors = await ai.embed(["hello world", "foo bar"]);
|
|
15
|
+
*
|
|
16
|
+
* // Generate image
|
|
17
|
+
* const imageBuffer = await ai.generateImage("a sunset over mountains");
|
|
18
|
+
*
|
|
19
|
+
* // Advanced usage with full control
|
|
20
|
+
* const ai = getAI();
|
|
21
|
+
* const response = await ai.prompt({ ... });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import type { AskOptions, PromptRequest } from './types';
|
|
25
|
+
/**
|
|
26
|
+
* AI namespace with convenient helper methods
|
|
27
|
+
*/
|
|
28
|
+
export declare const ai: {
|
|
29
|
+
/**
|
|
30
|
+
* Simple chat/text generation
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const answer = await ai.chat("Explain quantum computing in simple terms");
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
chat(prompt: string, options?: AskOptions): Promise<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Generate text embeddings for semantic search
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const embeddings = await ai.embed("search query");
|
|
44
|
+
* const multipleEmbeddings = await ai.embed(["query 1", "query 2"]);
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
embed(text: string | string[]): Promise<number[][]>;
|
|
48
|
+
/**
|
|
49
|
+
* Generate an image from a text prompt
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const imageBuffer = await ai.generateImage("a beautiful sunset over mountains");
|
|
54
|
+
* const blob = new Blob([imageBuffer], { type: 'image/png' });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
generateImage(prompt: string, options?: {
|
|
58
|
+
model?: string;
|
|
59
|
+
width?: number;
|
|
60
|
+
height?: number;
|
|
61
|
+
steps?: number;
|
|
62
|
+
}): Promise<ArrayBuffer>;
|
|
63
|
+
/**
|
|
64
|
+
* Transcribe audio to text
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const audioBlob = await fetch('/audio.mp3').then(r => r.blob());
|
|
69
|
+
* const transcript = await ai.transcribe(audioBlob);
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
transcribe(audio: ArrayBuffer | Blob, options?: {
|
|
73
|
+
model?: string;
|
|
74
|
+
language?: string;
|
|
75
|
+
}): Promise<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Translate text between languages
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const spanish = await ai.translate("Hello, world!", "es");
|
|
82
|
+
* const french = await ai.translate("Hello, world!", "fr", "en");
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
translate(text: string, targetLang: string, sourceLang?: string): Promise<string>;
|
|
86
|
+
/**
|
|
87
|
+
* Advanced: Full prompt with detailed options and response
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const response = await ai.prompt({
|
|
92
|
+
* prompt: "Describe this image",
|
|
93
|
+
* capabilities: ['vision'],
|
|
94
|
+
* images: [{ type: 'url', data: 'https://example.com/image.jpg' }],
|
|
95
|
+
* maxTokens: 500
|
|
96
|
+
* });
|
|
97
|
+
* console.log(response.text);
|
|
98
|
+
* console.log(response.tokensUsed);
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
prompt(request: PromptRequest): Promise<import("./types").PromptResponse>;
|
|
102
|
+
/**
|
|
103
|
+
* Run a specific model directly with custom options
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const result = await ai.run('@cf/meta/llama-3.1-8b-instruct', {
|
|
108
|
+
* prompt: "Hello!",
|
|
109
|
+
* max_tokens: 100
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
run<T = any>(model: string, options: any): Promise<T>;
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/ai/namespace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,EAAE;IACb;;;;;;;OAOG;iBACgB,MAAM,YAAY,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjE;;;;;;;;OAQG;gBACe,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAKzD;;;;;;;;OAQG;0BAEO,MAAM,YACJ;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,WAAW,CAAC;IAKvB;;;;;;;;OAQG;sBAEM,WAAW,GAAG,IAAI,YACf;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,OAAO,CAAC,MAAM,CAAC;IAKlB;;;;;;;;OAQG;oBAEK,MAAM,cACA,MAAM,eACL,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IAKlB;;;;;;;;;;;;;;OAcG;oBACmB,aAAa;IAKnC;;;;;;;;;;OAUG;QACO,CAAC,eAAe,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;CAI5D,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Namespace API - Convenience wrappers
|
|
3
|
+
*
|
|
4
|
+
* Provides a clean namespace-based API for common AI tasks
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { ai } from '@thewhateverapp/platform';
|
|
9
|
+
*
|
|
10
|
+
* // Simple text generation
|
|
11
|
+
* const answer = await ai.chat("What is TypeScript?");
|
|
12
|
+
*
|
|
13
|
+
* // Generate embeddings
|
|
14
|
+
* const vectors = await ai.embed(["hello world", "foo bar"]);
|
|
15
|
+
*
|
|
16
|
+
* // Generate image
|
|
17
|
+
* const imageBuffer = await ai.generateImage("a sunset over mountains");
|
|
18
|
+
*
|
|
19
|
+
* // Advanced usage with full control
|
|
20
|
+
* const ai = getAI();
|
|
21
|
+
* const response = await ai.prompt({ ... });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import { getAI } from './index';
|
|
25
|
+
/**
|
|
26
|
+
* AI namespace with convenient helper methods
|
|
27
|
+
*/
|
|
28
|
+
export const ai = {
|
|
29
|
+
/**
|
|
30
|
+
* Simple chat/text generation
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const answer = await ai.chat("Explain quantum computing in simple terms");
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
async chat(prompt, options) {
|
|
38
|
+
const provider = getAI();
|
|
39
|
+
return provider.ask(prompt, options);
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Generate text embeddings for semantic search
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const embeddings = await ai.embed("search query");
|
|
47
|
+
* const multipleEmbeddings = await ai.embed(["query 1", "query 2"]);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
async embed(text) {
|
|
51
|
+
const provider = getAI();
|
|
52
|
+
return provider.embed(text);
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Generate an image from a text prompt
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const imageBuffer = await ai.generateImage("a beautiful sunset over mountains");
|
|
60
|
+
* const blob = new Blob([imageBuffer], { type: 'image/png' });
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
async generateImage(prompt, options) {
|
|
64
|
+
const provider = getAI();
|
|
65
|
+
return provider.generateImage(prompt, options);
|
|
66
|
+
},
|
|
67
|
+
/**
|
|
68
|
+
* Transcribe audio to text
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const audioBlob = await fetch('/audio.mp3').then(r => r.blob());
|
|
73
|
+
* const transcript = await ai.transcribe(audioBlob);
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
async transcribe(audio, options) {
|
|
77
|
+
const provider = getAI();
|
|
78
|
+
return provider.transcribe(audio, options);
|
|
79
|
+
},
|
|
80
|
+
/**
|
|
81
|
+
* Translate text between languages
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* const spanish = await ai.translate("Hello, world!", "es");
|
|
86
|
+
* const french = await ai.translate("Hello, world!", "fr", "en");
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
async translate(text, targetLang, sourceLang) {
|
|
90
|
+
const provider = getAI();
|
|
91
|
+
return provider.translate(text, targetLang, sourceLang);
|
|
92
|
+
},
|
|
93
|
+
/**
|
|
94
|
+
* Advanced: Full prompt with detailed options and response
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const response = await ai.prompt({
|
|
99
|
+
* prompt: "Describe this image",
|
|
100
|
+
* capabilities: ['vision'],
|
|
101
|
+
* images: [{ type: 'url', data: 'https://example.com/image.jpg' }],
|
|
102
|
+
* maxTokens: 500
|
|
103
|
+
* });
|
|
104
|
+
* console.log(response.text);
|
|
105
|
+
* console.log(response.tokensUsed);
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
async prompt(request) {
|
|
109
|
+
const provider = getAI();
|
|
110
|
+
return provider.prompt(request);
|
|
111
|
+
},
|
|
112
|
+
/**
|
|
113
|
+
* Run a specific model directly with custom options
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* const result = await ai.run('@cf/meta/llama-3.1-8b-instruct', {
|
|
118
|
+
* prompt: "Hello!",
|
|
119
|
+
* max_tokens: 100
|
|
120
|
+
* });
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
async run(model, options) {
|
|
124
|
+
const provider = getAI();
|
|
125
|
+
return provider.run(model, options);
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/ai/namespace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAAoB;QAC7C,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,CAAC,IAAuB;QACjC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,OAKC;QAED,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CACd,KAAyB,EACzB,OAGC;QAED,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,UAAkB,EAClB,UAAmB;QAEnB,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAU,KAAa,EAAE,OAAY;QAC5C,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,GAAG,CAAI,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Workers AI Provider
|
|
3
|
+
*
|
|
4
|
+
* Direct access to Cloudflare's AI models via env.AI.run()
|
|
5
|
+
* Supports text generation, embeddings, image generation, speech recognition, etc.
|
|
6
|
+
*/
|
|
7
|
+
import type { AIServiceProvider } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Cloudflare AI binding interface
|
|
10
|
+
*/
|
|
11
|
+
interface CloudflareAI {
|
|
12
|
+
run<T = any>(model: string, options: any): Promise<T>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Extended environment with Cloudflare AI binding
|
|
16
|
+
*/
|
|
17
|
+
export interface WorkersAIEnv {
|
|
18
|
+
AI?: CloudflareAI;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create Workers AI provider
|
|
22
|
+
*/
|
|
23
|
+
export declare function createWorkersAI(ai: CloudflareAI): AIServiceProvider;
|
|
24
|
+
/**
|
|
25
|
+
* High-level AI namespace with helper functions
|
|
26
|
+
*/
|
|
27
|
+
export interface WorkersAIHelpers extends AIServiceProvider {
|
|
28
|
+
/**
|
|
29
|
+
* Generate text embeddings for semantic search
|
|
30
|
+
* @param text - Text or array of texts to embed
|
|
31
|
+
* @returns Array of embedding vectors
|
|
32
|
+
*/
|
|
33
|
+
embed(text: string | string[]): Promise<number[][]>;
|
|
34
|
+
/**
|
|
35
|
+
* Generate an image from a text prompt
|
|
36
|
+
* @param prompt - Description of the image to generate
|
|
37
|
+
* @param options - Image generation options
|
|
38
|
+
* @returns Image as ArrayBuffer
|
|
39
|
+
*/
|
|
40
|
+
generateImage(prompt: string, options?: {
|
|
41
|
+
model?: string;
|
|
42
|
+
width?: number;
|
|
43
|
+
height?: number;
|
|
44
|
+
steps?: number;
|
|
45
|
+
}): Promise<ArrayBuffer>;
|
|
46
|
+
/**
|
|
47
|
+
* Transcribe audio to text
|
|
48
|
+
* @param audio - Audio file as ArrayBuffer or Blob
|
|
49
|
+
* @param options - Transcription options
|
|
50
|
+
* @returns Transcribed text
|
|
51
|
+
*/
|
|
52
|
+
transcribe(audio: ArrayBuffer | Blob, options?: {
|
|
53
|
+
model?: string;
|
|
54
|
+
language?: string;
|
|
55
|
+
}): Promise<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Translate text between languages
|
|
58
|
+
* @param text - Text to translate
|
|
59
|
+
* @param targetLang - Target language code (e.g., 'es', 'fr', 'de')
|
|
60
|
+
* @param sourceLang - Source language code (auto-detected if not provided)
|
|
61
|
+
* @returns Translated text
|
|
62
|
+
*/
|
|
63
|
+
translate(text: string, targetLang: string, sourceLang?: string): Promise<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Run a model directly with custom options
|
|
66
|
+
* @param model - Model ID (e.g., '@cf/meta/llama-3.1-8b-instruct')
|
|
67
|
+
* @param options - Model-specific options
|
|
68
|
+
* @returns Model response
|
|
69
|
+
*/
|
|
70
|
+
run<T = any>(model: string, options: any): Promise<T>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create enhanced Workers AI provider with helper functions
|
|
74
|
+
*/
|
|
75
|
+
export declare function createWorkersAIWithHelpers(ai: CloudflareAI): WorkersAIHelpers;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=workers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/ai/workers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,UAAU,YAAY;IACpB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,YAAY,CAAC;CACnB;AAoDD;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,iBAAiB,CAkFnE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB;;;;;OAKG;IACH,UAAU,CACR,KAAK,EAAE,WAAW,GAAG,IAAI,EACzB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;OAMG;IACH,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;OAKG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,YAAY,GAAG,gBAAgB,CA6E7E"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Workers AI Provider
|
|
3
|
+
*
|
|
4
|
+
* Direct access to Cloudflare's AI models via env.AI.run()
|
|
5
|
+
* Supports text generation, embeddings, image generation, speech recognition, etc.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Model selection based on capabilities
|
|
9
|
+
*/
|
|
10
|
+
function selectModel(capabilities) {
|
|
11
|
+
if (!capabilities || capabilities.length === 0) {
|
|
12
|
+
// Default: fast general-purpose model
|
|
13
|
+
return '@cf/meta/llama-3.1-8b-instruct-fast';
|
|
14
|
+
}
|
|
15
|
+
const caps = new Set(capabilities);
|
|
16
|
+
// Vision models
|
|
17
|
+
if (caps.has('vision')) {
|
|
18
|
+
return '@cf/meta/llama-3.2-11b-vision-instruct';
|
|
19
|
+
}
|
|
20
|
+
// Coding models
|
|
21
|
+
if (caps.has('coding')) {
|
|
22
|
+
return '@cf/qwen/qwen2.5-coder-32b-instruct';
|
|
23
|
+
}
|
|
24
|
+
// Reasoning models
|
|
25
|
+
if (caps.has('reasoning')) {
|
|
26
|
+
return '@cf/qwen/qwq-32b';
|
|
27
|
+
}
|
|
28
|
+
// Fast models
|
|
29
|
+
if (caps.has('fast')) {
|
|
30
|
+
return '@cf/meta/llama-3.1-8b-instruct-fast';
|
|
31
|
+
}
|
|
32
|
+
// Long context models
|
|
33
|
+
if (caps.has('long-context')) {
|
|
34
|
+
return '@cf/meta/llama-3.1-70b-instruct';
|
|
35
|
+
}
|
|
36
|
+
// Cost-effective models
|
|
37
|
+
if (caps.has('cost-effective')) {
|
|
38
|
+
return '@cf/meta/llama-3.2-1b-instruct';
|
|
39
|
+
}
|
|
40
|
+
// Creative models
|
|
41
|
+
if (caps.has('creative')) {
|
|
42
|
+
return '@cf/meta/llama-3.1-8b-instruct';
|
|
43
|
+
}
|
|
44
|
+
// Default fallback
|
|
45
|
+
return '@cf/meta/llama-3.1-8b-instruct-fast';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create Workers AI provider
|
|
49
|
+
*/
|
|
50
|
+
export function createWorkersAI(ai) {
|
|
51
|
+
return {
|
|
52
|
+
async ask(prompt, options) {
|
|
53
|
+
const model = selectModel(options?.capabilities);
|
|
54
|
+
const response = await ai.run(model, {
|
|
55
|
+
prompt,
|
|
56
|
+
max_tokens: options?.maxTokens,
|
|
57
|
+
temperature: options?.temperature,
|
|
58
|
+
});
|
|
59
|
+
return response.response || '';
|
|
60
|
+
},
|
|
61
|
+
async prompt(request) {
|
|
62
|
+
const model = request.model || selectModel(request.capabilities);
|
|
63
|
+
// Build messages array
|
|
64
|
+
const messages = [];
|
|
65
|
+
// Add system message if provided
|
|
66
|
+
if (request.systemPrompt) {
|
|
67
|
+
messages.push({
|
|
68
|
+
role: 'system',
|
|
69
|
+
content: request.systemPrompt,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
// Add user message with optional images
|
|
73
|
+
if (request.images && request.images.length > 0) {
|
|
74
|
+
// Vision model - include images
|
|
75
|
+
const content = [{ type: 'text', text: request.prompt }];
|
|
76
|
+
for (const img of request.images) {
|
|
77
|
+
if (img.type === 'url') {
|
|
78
|
+
content.push({
|
|
79
|
+
type: 'image_url',
|
|
80
|
+
image_url: { url: img.data },
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else if (img.type === 'base64') {
|
|
84
|
+
content.push({
|
|
85
|
+
type: 'image_url',
|
|
86
|
+
image_url: {
|
|
87
|
+
url: `data:${img.mimeType || 'image/jpeg'};base64,${img.data}`,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
messages.push({ role: 'user', content });
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// Text-only
|
|
96
|
+
messages.push({ role: 'user', content: request.prompt });
|
|
97
|
+
}
|
|
98
|
+
// Run the model
|
|
99
|
+
const response = await ai.run(model, {
|
|
100
|
+
messages,
|
|
101
|
+
max_tokens: request.maxTokens,
|
|
102
|
+
temperature: request.temperature,
|
|
103
|
+
});
|
|
104
|
+
// Extract text from response (different models return different formats)
|
|
105
|
+
let text = '';
|
|
106
|
+
if (response.response) {
|
|
107
|
+
text = response.response;
|
|
108
|
+
}
|
|
109
|
+
else if (response.choices && response.choices.length > 0) {
|
|
110
|
+
text = response.choices[0].message?.content || response.choices[0].text || '';
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
text,
|
|
114
|
+
provider: 'cloudflare',
|
|
115
|
+
model,
|
|
116
|
+
tokensUsed: {
|
|
117
|
+
input: 0, // Workers AI doesn't return token counts
|
|
118
|
+
output: 0,
|
|
119
|
+
total: 0,
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create enhanced Workers AI provider with helper functions
|
|
127
|
+
*/
|
|
128
|
+
export function createWorkersAIWithHelpers(ai) {
|
|
129
|
+
const baseProvider = createWorkersAI(ai);
|
|
130
|
+
return {
|
|
131
|
+
...baseProvider,
|
|
132
|
+
async embed(text) {
|
|
133
|
+
const texts = Array.isArray(text) ? text : [text];
|
|
134
|
+
const model = '@cf/baai/bge-large-en-v1.5';
|
|
135
|
+
const results = await Promise.all(texts.map((t) => ai.run(model, { text: t })));
|
|
136
|
+
return results.map((r) => r.data[0]);
|
|
137
|
+
},
|
|
138
|
+
async generateImage(prompt, options) {
|
|
139
|
+
const model = options?.model || '@cf/black-forest-labs/flux-1-schnell';
|
|
140
|
+
const response = await ai.run(model, {
|
|
141
|
+
prompt,
|
|
142
|
+
num_steps: options?.steps || 4,
|
|
143
|
+
});
|
|
144
|
+
return response;
|
|
145
|
+
},
|
|
146
|
+
async transcribe(audio, options) {
|
|
147
|
+
const model = options?.model || '@cf/openai/whisper-large-v3-turbo';
|
|
148
|
+
// Convert Blob to ArrayBuffer if needed
|
|
149
|
+
const audioBuffer = audio instanceof Blob ? await audio.arrayBuffer() : audio;
|
|
150
|
+
const response = await ai.run(model, {
|
|
151
|
+
audio: Array.from(new Uint8Array(audioBuffer)),
|
|
152
|
+
language: options?.language,
|
|
153
|
+
});
|
|
154
|
+
return response.text || response.vtt || '';
|
|
155
|
+
},
|
|
156
|
+
async translate(text, targetLang, sourceLang) {
|
|
157
|
+
// Use multilingual translation model
|
|
158
|
+
const model = '@cf/meta/m2m100-1.2b';
|
|
159
|
+
const response = await ai.run(model, {
|
|
160
|
+
text,
|
|
161
|
+
source_lang: sourceLang || 'en',
|
|
162
|
+
target_lang: targetLang,
|
|
163
|
+
});
|
|
164
|
+
return response.translated_text;
|
|
165
|
+
},
|
|
166
|
+
async run(model, options) {
|
|
167
|
+
return ai.run(model, options);
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=workers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/ai/workers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -37,7 +37,8 @@ export type { StorageProvider, StorageObject, StorageMetadata, ListOptions as St
|
|
|
37
37
|
export { getPublicStorage, createPublicStorage, resetPublicStorage, } from './public-storage';
|
|
38
38
|
export type { PublicStorageProvider, PublicStorageUploadOptions, PublicStorageUploadResult, } from './public-storage';
|
|
39
39
|
export { getAI, createAI } from './ai';
|
|
40
|
-
export
|
|
40
|
+
export { ai } from './ai/namespace';
|
|
41
|
+
export type { AIServiceProvider, AIProvider, AICapability, AskOptions, PromptRequest, PromptResponse, ImageInput, WorkersAIHelpers, WorkersAIEnv, } from './ai';
|
|
41
42
|
export { getTileState } from './tile-state';
|
|
42
43
|
export type { TileStateProvider, Comment, Report, } from './tile-state/types';
|
|
43
44
|
export { getTileContext, clearTileContextCache } from './tile-context';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9D,mBAAmB,SAAS,CAAC;AAO7B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACvC,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACjD,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,IAAI,kBAAkB,EACjC,UAAU,IAAI,iBAAiB,EAC/B,UAAU,IAAI,iBAAiB,EAC/B,SAAS,IAAI,gBAAgB,EAC7B,UAAU,IAAI,iBAAiB,GAChC,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACvC,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -39,8 +39,9 @@ export { getKV, createKV } from './kv';
|
|
|
39
39
|
export { getStorage, createStorage } from './r2';
|
|
40
40
|
// Public Storage - Public file uploads via platform-api (CDN-backed)
|
|
41
41
|
export { getPublicStorage, createPublicStorage, resetPublicStorage, } from './public-storage';
|
|
42
|
-
// AI - Artificial Intelligence (
|
|
42
|
+
// AI - Artificial Intelligence (Cloudflare Workers AI + Platform API)
|
|
43
43
|
export { getAI, createAI } from './ai';
|
|
44
|
+
export { ai } from './ai/namespace';
|
|
44
45
|
// Tile State - Durable Objects for real-time state
|
|
45
46
|
export { getTileState } from './tile-state';
|
|
46
47
|
// Tile Context - Server-side authentication for tile API routes
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,0EAA0E;AAC1E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AAGf,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9D,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAEhF,mDAAmD;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAazD,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAWvC,gCAAgC;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAYjD,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAO1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,0EAA0E;AAC1E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AAGf,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9D,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAEhF,mDAAmD;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAazD,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAWvC,gCAAgC;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAYjD,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAO1B,sEAAsE;AACtE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAapC,mDAAmD;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,gEAAgE;AAChE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAOvE,mDAAmD;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAetG,0FAA0F;AAC1F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAsB7E,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|