@lastbrain/ai-ui-core 1.0.25 → 1.0.27
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/client/createClient.d.ts +2 -1
- package/dist/client/createClient.d.ts.map +1 -1
- package/dist/client/createClient.js +22 -0
- package/dist/route-handlers/nextjs/enhanced-gateway.d.ts.map +1 -1
- package/dist/route-handlers/nextjs/enhanced-gateway.js +6 -2
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/createClient.ts +29 -0
- package/src/route-handlers/nextjs/enhanced-gateway.ts +7 -2
- package/src/types/index.ts +26 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { ClientConfig, ModelRef, AiTextRequest, AiTextResponse, AiImageRequest, AiImageResponse, AiEmbedRequest, AiEmbedResponse, AiStatus } from "../types";
|
|
1
|
+
import type { ClientConfig, ModelRef, AiTextRequest, AiTextResponse, AiImageRequest, AiImageResponse, AiEmbedRequest, AiEmbedResponse, AiStatus, GatewayModelsResponse } from "../types";
|
|
2
2
|
export declare function createClient(config: ClientConfig): {
|
|
3
3
|
getModels: () => Promise<ModelRef[]>;
|
|
4
|
+
getAllAvailableModels: () => Promise<GatewayModelsResponse>;
|
|
4
5
|
generateText: (req: AiTextRequest) => Promise<AiTextResponse>;
|
|
5
6
|
generateImage: (req: AiImageRequest) => Promise<AiImageResponse>;
|
|
6
7
|
embed: (req: AiEmbedRequest) => Promise<AiEmbedResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,QAAQ,
|
|
1
|
+
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,QAAQ,EACR,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAwGlB,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;qBAsBnB,OAAO,CAAC,QAAQ,EAAE,CAAC;iCAqKP,OAAO,CAAC,qBAAqB,CAAC;wBAhIrC,aAAa,KAAG,OAAO,CAAC,cAAc,CAAC;yBAoCtC,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC;iBAqDjD,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC;qBAkBvC,OAAO,CAAC,QAAQ,CAAC;EAiD9C"}
|
|
@@ -54,6 +54,10 @@ function buildUrl(baseUrl, endpoint) {
|
|
|
54
54
|
// Auth endpoints need /auth/ prefix for internal
|
|
55
55
|
status: { internal: "/auth/status", external: "/status" },
|
|
56
56
|
provider: { internal: "/auth/provider", external: "/provider" },
|
|
57
|
+
"gateway-models": {
|
|
58
|
+
internal: "/public/gateway-models",
|
|
59
|
+
external: "/gateway-models",
|
|
60
|
+
},
|
|
57
61
|
// Other endpoints
|
|
58
62
|
"track-usage": { internal: "/track-usage", external: "/track-usage" },
|
|
59
63
|
"ai/embed": { internal: "/ai/embed", external: "/ai/embed" },
|
|
@@ -218,8 +222,26 @@ export function createClient(config) {
|
|
|
218
222
|
throw normalizeError(error);
|
|
219
223
|
}
|
|
220
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Get ALL available models from Vercel AI Gateway (not filtered by user settings)
|
|
227
|
+
*/
|
|
228
|
+
async function getAllAvailableModels() {
|
|
229
|
+
try {
|
|
230
|
+
const url = buildUrl(config.baseUrl, "gateway-models");
|
|
231
|
+
const response = await fetchWithRetry(url, {
|
|
232
|
+
method: "GET",
|
|
233
|
+
headers: createHeaders(),
|
|
234
|
+
signal: createAbortSignal(),
|
|
235
|
+
}, { retries, delay: INITIAL_RETRY_DELAY });
|
|
236
|
+
return response;
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
throw normalizeError(error);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
221
242
|
return {
|
|
222
243
|
getModels,
|
|
244
|
+
getAllAvailableModels,
|
|
223
245
|
generateText,
|
|
224
246
|
generateImage,
|
|
225
247
|
embed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhanced-gateway.d.ts","sourceRoot":"","sources":["../../../src/route-handlers/nextjs/enhanced-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"enhanced-gateway.d.ts","sourceRoot":"","sources":["../../../src/route-handlers/nextjs/enhanced-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsKxD,wBAAsB,GAAG,CACvB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,8BAGjD;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,8BAGjD;AAED,wBAAsB,GAAG,CACvB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,8BAGjD;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,8BAGjD"}
|
|
@@ -27,19 +27,24 @@ function mapAuthRouteToPublicRoute(path) {
|
|
|
27
27
|
"auth/prompts/stats": "prompts/stats",
|
|
28
28
|
prompts: "prompts", // Direct mapping for prompts
|
|
29
29
|
"prompts/stats": "prompts/stats", // Direct mapping for stats
|
|
30
|
+
// Gateway models - ALL available models from Vercel AI
|
|
31
|
+
"gateway-models": "gateway-models",
|
|
32
|
+
"public/gateway-models": "gateway-models",
|
|
30
33
|
// AI Models - Available
|
|
31
34
|
"auth/ai-models-available": "ai/models/available",
|
|
32
35
|
"ai-models-available": "ai/models/available",
|
|
33
36
|
"ai/models/available": "ai/models/available", // Direct mapping
|
|
34
|
-
// AI Models - User models
|
|
37
|
+
// AI Models - User models (with both slash and dash variants)
|
|
35
38
|
"auth/ai-models-user": "ai/user/models",
|
|
36
39
|
"auth/user-models": "ai/user/models",
|
|
37
40
|
"ai-models-user": "ai/user/models",
|
|
38
41
|
"user-models": "ai/user/models",
|
|
42
|
+
"user/models": "ai/user/models", // After removing "ai/" prefix
|
|
39
43
|
"ai/user/models": "ai/user/models", // Direct mapping
|
|
40
44
|
// AI Models - Toggle
|
|
41
45
|
"auth/ai-models-toggle": "ai/user/models/toggle",
|
|
42
46
|
"ai-models-toggle": "ai/user/models/toggle",
|
|
47
|
+
"user/models/toggle": "ai/user/models/toggle", // After removing "ai/" prefix
|
|
43
48
|
"ai/user/models/toggle": "ai/user/models/toggle", // Direct mapping
|
|
44
49
|
// Text generation
|
|
45
50
|
"auth/generate-text": "text-ai",
|
|
@@ -50,7 +55,6 @@ function mapAuthRouteToPublicRoute(path) {
|
|
|
50
55
|
// Status and provider
|
|
51
56
|
status: "status",
|
|
52
57
|
provider: "provider",
|
|
53
|
-
"public/gateway-models": "provider",
|
|
54
58
|
"public/status": "status",
|
|
55
59
|
};
|
|
56
60
|
// Try exact match first
|
package/dist/types/index.d.ts
CHANGED
|
@@ -10,6 +10,29 @@ export interface ModelRef {
|
|
|
10
10
|
imageTokens?: number;
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
+
export interface GatewayModel {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
type: "text" | "image" | "embedding" | "audio" | "video" | "language";
|
|
17
|
+
provider: string;
|
|
18
|
+
max_tokens?: number;
|
|
19
|
+
tags?: string[];
|
|
20
|
+
pricing?: {
|
|
21
|
+
input?: number;
|
|
22
|
+
output?: number;
|
|
23
|
+
image?: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface GatewayProvider {
|
|
27
|
+
name: string;
|
|
28
|
+
display_name: string;
|
|
29
|
+
models: GatewayModel[];
|
|
30
|
+
}
|
|
31
|
+
export interface GatewayModelsResponse {
|
|
32
|
+
providers: GatewayProvider[];
|
|
33
|
+
stale?: boolean;
|
|
34
|
+
cached_at?: string;
|
|
35
|
+
}
|
|
13
36
|
export interface AiTextRequest {
|
|
14
37
|
model: string;
|
|
15
38
|
prompt: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
AiEmbedRequest,
|
|
9
9
|
AiEmbedResponse,
|
|
10
10
|
AiStatus,
|
|
11
|
+
GatewayModelsResponse,
|
|
11
12
|
} from "../types";
|
|
12
13
|
import { normalizeError } from "../errors/normalizeError";
|
|
13
14
|
|
|
@@ -88,6 +89,10 @@ function buildUrl(baseUrl: string, endpoint: string): string {
|
|
|
88
89
|
// Auth endpoints need /auth/ prefix for internal
|
|
89
90
|
status: { internal: "/auth/status", external: "/status" },
|
|
90
91
|
provider: { internal: "/auth/provider", external: "/provider" },
|
|
92
|
+
"gateway-models": {
|
|
93
|
+
internal: "/public/gateway-models",
|
|
94
|
+
external: "/gateway-models",
|
|
95
|
+
},
|
|
91
96
|
// Other endpoints
|
|
92
97
|
"track-usage": { internal: "/track-usage", external: "/track-usage" },
|
|
93
98
|
"ai/embed": { internal: "/ai/embed", external: "/ai/embed" },
|
|
@@ -292,8 +297,32 @@ export function createClient(config: ClientConfig) {
|
|
|
292
297
|
}
|
|
293
298
|
}
|
|
294
299
|
|
|
300
|
+
/**
|
|
301
|
+
* Get ALL available models from Vercel AI Gateway (not filtered by user settings)
|
|
302
|
+
*/
|
|
303
|
+
async function getAllAvailableModels(): Promise<GatewayModelsResponse> {
|
|
304
|
+
try {
|
|
305
|
+
const url = buildUrl(config.baseUrl, "gateway-models");
|
|
306
|
+
|
|
307
|
+
const response = await fetchWithRetry<GatewayModelsResponse>(
|
|
308
|
+
url,
|
|
309
|
+
{
|
|
310
|
+
method: "GET",
|
|
311
|
+
headers: createHeaders(),
|
|
312
|
+
signal: createAbortSignal(),
|
|
313
|
+
},
|
|
314
|
+
{ retries, delay: INITIAL_RETRY_DELAY }
|
|
315
|
+
);
|
|
316
|
+
|
|
317
|
+
return response;
|
|
318
|
+
} catch (error) {
|
|
319
|
+
throw normalizeError(error);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
295
323
|
return {
|
|
296
324
|
getModels,
|
|
325
|
+
getAllAvailableModels,
|
|
297
326
|
generateText,
|
|
298
327
|
generateImage,
|
|
299
328
|
embed,
|
|
@@ -37,21 +37,27 @@ function mapAuthRouteToPublicRoute(path: string): string {
|
|
|
37
37
|
prompts: "prompts", // Direct mapping for prompts
|
|
38
38
|
"prompts/stats": "prompts/stats", // Direct mapping for stats
|
|
39
39
|
|
|
40
|
+
// Gateway models - ALL available models from Vercel AI
|
|
41
|
+
"gateway-models": "gateway-models",
|
|
42
|
+
"public/gateway-models": "gateway-models",
|
|
43
|
+
|
|
40
44
|
// AI Models - Available
|
|
41
45
|
"auth/ai-models-available": "ai/models/available",
|
|
42
46
|
"ai-models-available": "ai/models/available",
|
|
43
47
|
"ai/models/available": "ai/models/available", // Direct mapping
|
|
44
48
|
|
|
45
|
-
// AI Models - User models
|
|
49
|
+
// AI Models - User models (with both slash and dash variants)
|
|
46
50
|
"auth/ai-models-user": "ai/user/models",
|
|
47
51
|
"auth/user-models": "ai/user/models",
|
|
48
52
|
"ai-models-user": "ai/user/models",
|
|
49
53
|
"user-models": "ai/user/models",
|
|
54
|
+
"user/models": "ai/user/models", // After removing "ai/" prefix
|
|
50
55
|
"ai/user/models": "ai/user/models", // Direct mapping
|
|
51
56
|
|
|
52
57
|
// AI Models - Toggle
|
|
53
58
|
"auth/ai-models-toggle": "ai/user/models/toggle",
|
|
54
59
|
"ai-models-toggle": "ai/user/models/toggle",
|
|
60
|
+
"user/models/toggle": "ai/user/models/toggle", // After removing "ai/" prefix
|
|
55
61
|
"ai/user/models/toggle": "ai/user/models/toggle", // Direct mapping
|
|
56
62
|
|
|
57
63
|
// Text generation
|
|
@@ -65,7 +71,6 @@ function mapAuthRouteToPublicRoute(path: string): string {
|
|
|
65
71
|
// Status and provider
|
|
66
72
|
status: "status",
|
|
67
73
|
provider: "provider",
|
|
68
|
-
"public/gateway-models": "provider",
|
|
69
74
|
"public/status": "status",
|
|
70
75
|
};
|
|
71
76
|
|
package/src/types/index.ts
CHANGED
|
@@ -11,6 +11,32 @@ export interface ModelRef {
|
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
export interface GatewayModel {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
type: "text" | "image" | "embedding" | "audio" | "video" | "language";
|
|
18
|
+
provider: string;
|
|
19
|
+
max_tokens?: number;
|
|
20
|
+
tags?: string[];
|
|
21
|
+
pricing?: {
|
|
22
|
+
input?: number;
|
|
23
|
+
output?: number;
|
|
24
|
+
image?: number;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface GatewayProvider {
|
|
29
|
+
name: string;
|
|
30
|
+
display_name: string;
|
|
31
|
+
models: GatewayModel[];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface GatewayModelsResponse {
|
|
35
|
+
providers: GatewayProvider[];
|
|
36
|
+
stale?: boolean;
|
|
37
|
+
cached_at?: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
14
40
|
export interface AiTextRequest {
|
|
15
41
|
model: string;
|
|
16
42
|
prompt: string;
|