@lastbrain/ai-ui-core 1.0.33 → 1.0.35

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.
@@ -49,14 +49,14 @@ function buildUrl(baseUrl, endpoint) {
49
49
  // Map endpoints for internal vs external context
50
50
  const endpointMap = {
51
51
  // Text and image generation
52
- "text-ai": { internal: "/generate-text", external: "/text-ai" },
53
- "image-ai": { internal: "/generate-image", external: "/image-ai" },
54
- // Auth endpoints need /auth/ prefix for internal
55
- status: { internal: "/auth/status", external: "/status" },
56
- provider: { internal: "/auth/provider", external: "/provider" },
52
+ "text-ai": { internal: "/generate-text", external: "/ai/auth/text-ai" },
53
+ "image-ai": { internal: "/generate-image", external: "/ai/auth/image-ai" },
54
+ // Auth endpoints - LastBrain routes are /api/ai/auth/* pas /api/ai/*
55
+ status: { internal: "/auth/status", external: "/auth/status" },
56
+ provider: { internal: "/auth/provider", external: "/auth/provider" },
57
57
  "gateway-models": {
58
58
  internal: "/public/gateway-models",
59
- external: "/gateway-models",
59
+ external: "/public/gateway-models",
60
60
  },
61
61
  // Other endpoints
62
62
  "track-usage": { internal: "/track-usage", external: "/track-usage" },
@@ -1 +1 @@
1
- {"version":3,"file":"lb-proxy.d.ts","sourceRoot":"","sources":["../../../src/route-handlers/nextjs/lb-proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,aAAkB;mBAiBlD,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;oBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;mBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;sBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;qBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;EAkHzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAe,GACzB,YAAY,CAYd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAGzE"}
1
+ {"version":3,"file":"lb-proxy.d.ts","sourceRoot":"","sources":["../../../src/route-handlers/nextjs/lb-proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,aAAkB;mBA6BlD,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;oBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;mBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;sBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;qBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;EA0HzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAe,GACzB,YAAY,CAYd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAGzE"}
@@ -19,11 +19,21 @@ import { NextResponse } from "next/server";
19
19
  */
20
20
  export function createLBProxyHandler(config = {}) {
21
21
  const { baseUrl = process.env.LB_BASE_URL || "https://prompt.lastbrain.io", apiKey = process.env.LB_API_KEY, sessionCookieName = "lb_session", } = config;
22
- // Déterminer le chemin de base API
23
- // Si baseUrl contient déjà /api/public/v1, l'utiliser tel quel
24
- // Sinon, pour les nouvelles routes d'auth, utiliser /api/ai
22
+ // Déterminer le chemin de base API selon le format de baseUrl et le path
25
23
  const isLegacyBaseUrl = baseUrl.includes("/api/public/v1");
26
- const apiBasePath = isLegacyBaseUrl ? "" : "/api/ai";
24
+ /**
25
+ * Détermine le préfixe API à ajouter selon le path
26
+ * - Legacy : pas de préfixe si baseUrl contient déjà /api/public/v1
27
+ * - Sinon : toujours /api/ai (le client envoie les bons paths)
28
+ */
29
+ function getApiPrefix(path) {
30
+ if (isLegacyBaseUrl) {
31
+ return ""; // Legacy: baseUrl contient déjà le préfixe
32
+ }
33
+ // Pour le nouveau format, toujours /api/ai
34
+ // Le client envoie déjà les bons paths (auth/*, public/*, ai/*)
35
+ return "/api/ai";
36
+ }
27
37
  /**
28
38
  * Handler unique pour toutes les méthodes HTTP et tous les paths
29
39
  */
@@ -45,12 +55,19 @@ export function createLBProxyHandler(config = {}) {
45
55
  const publicPaths = [
46
56
  "auth/login",
47
57
  "auth/session/create",
58
+ "auth/session",
48
59
  "public/user/api-keys",
49
60
  ];
50
61
  const isPublicPath = publicPaths.some((p) => path.startsWith(p));
51
62
  // Construire l'URL complète vers LastBrain
52
- // Si legacy baseUrl (avec /api/public/v1), ne pas ajouter apiBasePath
53
- const targetUrl = `${baseUrl}${apiBasePath}/${path}`;
63
+ const apiPrefix = getApiPrefix(path);
64
+ const targetUrl = `${baseUrl}${apiPrefix}/${path}`;
65
+ console.log("[LB Proxy] Request:", {
66
+ path,
67
+ apiPrefix,
68
+ targetUrl,
69
+ isLegacy: isLegacyBaseUrl,
70
+ });
54
71
  // Préparer les headers
55
72
  const headers = {};
56
73
  // Copier les headers pertinents de la requête originale
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lastbrain/ai-ui-core",
3
- "version": "1.0.33",
3
+ "version": "1.0.35",
4
4
  "description": "Framework-agnostic core library for LastBrain AI UI Kit",
5
5
  "private": false,
6
6
  "type": "module",
@@ -84,14 +84,14 @@ function buildUrl(baseUrl: string, endpoint: string): string {
84
84
  // Map endpoints for internal vs external context
85
85
  const endpointMap: Record<string, { internal: string; external: string }> = {
86
86
  // Text and image generation
87
- "text-ai": { internal: "/generate-text", external: "/text-ai" },
88
- "image-ai": { internal: "/generate-image", external: "/image-ai" },
89
- // Auth endpoints need /auth/ prefix for internal
90
- status: { internal: "/auth/status", external: "/status" },
91
- provider: { internal: "/auth/provider", external: "/provider" },
87
+ "text-ai": { internal: "/generate-text", external: "/ai/auth/text-ai" },
88
+ "image-ai": { internal: "/generate-image", external: "/ai/auth/image-ai" },
89
+ // Auth endpoints - LastBrain routes are /api/ai/auth/* pas /api/ai/*
90
+ status: { internal: "/auth/status", external: "/auth/status" },
91
+ provider: { internal: "/auth/provider", external: "/auth/provider" },
92
92
  "gateway-models": {
93
93
  internal: "/public/gateway-models",
94
- external: "/gateway-models",
94
+ external: "/public/gateway-models",
95
95
  },
96
96
  // Other endpoints
97
97
  "track-usage": { internal: "/track-usage", external: "/track-usage" },
@@ -38,11 +38,23 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
38
38
  sessionCookieName = "lb_session",
39
39
  } = config;
40
40
 
41
- // Déterminer le chemin de base API
42
- // Si baseUrl contient déjà /api/public/v1, l'utiliser tel quel
43
- // Sinon, pour les nouvelles routes d'auth, utiliser /api/ai
41
+ // Déterminer le chemin de base API selon le format de baseUrl et le path
44
42
  const isLegacyBaseUrl = baseUrl.includes("/api/public/v1");
45
- const apiBasePath = isLegacyBaseUrl ? "" : "/api/ai";
43
+
44
+ /**
45
+ * Détermine le préfixe API à ajouter selon le path
46
+ * - Legacy : pas de préfixe si baseUrl contient déjà /api/public/v1
47
+ * - Sinon : toujours /api/ai (le client envoie les bons paths)
48
+ */
49
+ function getApiPrefix(path: string): string {
50
+ if (isLegacyBaseUrl) {
51
+ return ""; // Legacy: baseUrl contient déjà le préfixe
52
+ }
53
+
54
+ // Pour le nouveau format, toujours /api/ai
55
+ // Le client envoie déjà les bons paths (auth/*, public/*, ai/*)
56
+ return "/api/ai";
57
+ }
46
58
 
47
59
  /**
48
60
  * Handler unique pour toutes les méthodes HTTP et tous les paths
@@ -68,13 +80,21 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
68
80
  const publicPaths = [
69
81
  "auth/login",
70
82
  "auth/session/create",
83
+ "auth/session",
71
84
  "public/user/api-keys",
72
85
  ];
73
86
  const isPublicPath = publicPaths.some((p) => path.startsWith(p));
74
87
 
75
88
  // Construire l'URL complète vers LastBrain
76
- // Si legacy baseUrl (avec /api/public/v1), ne pas ajouter apiBasePath
77
- const targetUrl = `${baseUrl}${apiBasePath}/${path}`;
89
+ const apiPrefix = getApiPrefix(path);
90
+ const targetUrl = `${baseUrl}${apiPrefix}/${path}`;
91
+
92
+ console.log("[LB Proxy] Request:", {
93
+ path,
94
+ apiPrefix,
95
+ targetUrl,
96
+ isLegacy: isLegacyBaseUrl,
97
+ });
78
98
 
79
99
  // Préparer les headers
80
100
  const headers: Record<string, string> = {};