@lastbrain/module-ai 0.1.19 → 1.0.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/api/admin/user-token.d.ts +1 -1
- package/dist/api/admin/user-token.d.ts.map +1 -1
- package/dist/api/admin/user-token.js +1 -2
- package/dist/api/auth/generate-image.d.ts.map +1 -1
- package/dist/api/auth/generate-image.js +11 -4
- package/dist/api/auth/generate-text.d.ts.map +1 -1
- package/dist/api/auth/generate-text.js +11 -4
- package/dist/index.d.ts +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -9
- package/dist/web/admin/AdminTokenPacksPage.d.ts.map +1 -1
- package/dist/web/components/TextareaGenerative.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-token.d.ts","sourceRoot":"","sources":["../../../src/api/admin/user-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKxD,wBAAsB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"user-token.d.ts","sourceRoot":"","sources":["../../../src/api/admin/user-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKxD,wBAAsB,GAAG,CAAC,QAAQ,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;IA2H9C;AAGD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW;;;;;;IA+C9C"}
|
|
@@ -2,7 +2,7 @@ import { NextResponse } from "next/server";
|
|
|
2
2
|
import { getSupabaseServiceClient } from "@lastbrain/core/server";
|
|
3
3
|
import { addTokens } from "../../server";
|
|
4
4
|
// GET /api/ai/admin/user-token - Liste tous les utilisateurs avec leur balance et transactions
|
|
5
|
-
export async function GET(
|
|
5
|
+
export async function GET(_request) {
|
|
6
6
|
try {
|
|
7
7
|
const supabase = getSupabaseServiceClient();
|
|
8
8
|
// L'authentification et les droits superadmin sont déjà vérifiés par le middleware
|
|
@@ -101,7 +101,6 @@ export async function GET(request) {
|
|
|
101
101
|
// POST /api/ai/admin/user-token - Ajouter/retirer des tokens à un utilisateur
|
|
102
102
|
export async function POST(request) {
|
|
103
103
|
try {
|
|
104
|
-
const supabase = getSupabaseServiceClient();
|
|
105
104
|
// L'authentification et les droits superadmin sont déjà vérifiés par le middleware
|
|
106
105
|
const body = await request.json();
|
|
107
106
|
const { userId, amount, type, reason } = body;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-image.d.ts","sourceRoot":"","sources":["../../../src/api/auth/generate-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-image.d.ts","sourceRoot":"","sources":["../../../src/api/auth/generate-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiDxD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW;;;;;;;;IA0L9C"}
|
|
@@ -2,9 +2,15 @@ import { NextResponse } from "next/server";
|
|
|
2
2
|
import { getSupabaseServerClient } from "@lastbrain/core/server";
|
|
3
3
|
import { deductTokens, getTokenBalance } from "../../server";
|
|
4
4
|
import OpenAI from "openai";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
let openai = null;
|
|
6
|
+
function getOpenAIClient() {
|
|
7
|
+
if (!openai) {
|
|
8
|
+
openai = new OpenAI({
|
|
9
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return openai;
|
|
13
|
+
}
|
|
8
14
|
// Coûts des images selon le modèle et la taille
|
|
9
15
|
const IMAGE_COSTS = {
|
|
10
16
|
"dall-e-2-256x256": 0.016,
|
|
@@ -80,7 +86,8 @@ export async function POST(request) {
|
|
|
80
86
|
};
|
|
81
87
|
}
|
|
82
88
|
// Appeler OpenAI
|
|
83
|
-
const
|
|
89
|
+
const openaiClient = getOpenAIClient();
|
|
90
|
+
const response = await openaiClient.images.generate(imageParams);
|
|
84
91
|
const imageUrl = response.data?.[0]?.url;
|
|
85
92
|
let supabaseImageUrl = null;
|
|
86
93
|
if (imageUrl && uploadPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-text.d.ts","sourceRoot":"","sources":["../../../src/api/auth/generate-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-text.d.ts","sourceRoot":"","sources":["../../../src/api/auth/generate-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAwBxD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW;;;;;;;;IAqI9C"}
|
|
@@ -2,9 +2,15 @@ import { NextResponse } from "next/server";
|
|
|
2
2
|
import { getSupabaseServerClient } from "@lastbrain/core/server";
|
|
3
3
|
import { deductTokens, getTokenBalance } from "../../server";
|
|
4
4
|
import OpenAI from "openai";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
let openai = null;
|
|
6
|
+
function getOpenAIClient() {
|
|
7
|
+
if (!openai) {
|
|
8
|
+
openai = new OpenAI({
|
|
9
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return openai;
|
|
13
|
+
}
|
|
8
14
|
export async function POST(request) {
|
|
9
15
|
try {
|
|
10
16
|
const supabase = await getSupabaseServerClient();
|
|
@@ -42,7 +48,8 @@ export async function POST(request) {
|
|
|
42
48
|
content: prompt,
|
|
43
49
|
});
|
|
44
50
|
// Appeler OpenAI
|
|
45
|
-
const
|
|
51
|
+
const openaiClient = getOpenAIClient();
|
|
52
|
+
const completion = await openaiClient.chat.completions.create({
|
|
46
53
|
model,
|
|
47
54
|
messages,
|
|
48
55
|
temperature,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { TextareaGenerative } from "./web/components/TextareaGenerative
|
|
2
|
-
export { ImageGenerative } from "./web/components/ImageGenerative
|
|
3
|
-
export { TokenPage } from "./web/auth/TokenPage
|
|
4
|
-
export { UserTokenPage } from "./web/admin/UserTokenPage
|
|
5
|
-
export { AdminTokenPacksPage } from "./web/admin/AdminTokenPacksPage
|
|
6
|
-
export { UserTokenTab } from "./components/admin/UserTokenTab
|
|
7
|
-
export { Doc } from "./components/Doc
|
|
8
|
-
export { Doc as AiModuleDoc } from "./components/Doc
|
|
9
|
-
export type { GenerativeResponse, TextareaGenerativeProps, } from "./web/components/TextareaGenerative
|
|
10
|
-
export type { GenerativeImageResponse, ImageGenerativeProps, } from "./web/components/ImageGenerative
|
|
11
|
-
export { default as buildConfig } from "./ai.build.config
|
|
1
|
+
export { TextareaGenerative } from "./web/components/TextareaGenerative";
|
|
2
|
+
export { ImageGenerative } from "./web/components/ImageGenerative";
|
|
3
|
+
export { TokenPage } from "./web/auth/TokenPage";
|
|
4
|
+
export { UserTokenPage } from "./web/admin/UserTokenPage";
|
|
5
|
+
export { AdminTokenPacksPage } from "./web/admin/AdminTokenPacksPage";
|
|
6
|
+
export { UserTokenTab } from "./components/admin/UserTokenTab";
|
|
7
|
+
export { Doc } from "./components/Doc";
|
|
8
|
+
export { Doc as AiModuleDoc } from "./components/Doc";
|
|
9
|
+
export type { GenerativeResponse, TextareaGenerativeProps, } from "./web/components/TextareaGenerative";
|
|
10
|
+
export type { GenerativeImageResponse, ImageGenerativeProps, } from "./web/components/ImageGenerative";
|
|
11
|
+
export { default as buildConfig } from "./ai.build.config";
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGtD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAE7C,YAAY,EACV,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// Client Components - Composants réutilisables
|
|
2
|
-
export { TextareaGenerative } from "./web/components/TextareaGenerative
|
|
3
|
-
export { ImageGenerative } from "./web/components/ImageGenerative
|
|
2
|
+
export { TextareaGenerative } from "./web/components/TextareaGenerative";
|
|
3
|
+
export { ImageGenerative } from "./web/components/ImageGenerative";
|
|
4
4
|
// Pages Auth
|
|
5
|
-
export { TokenPage } from "./web/auth/TokenPage
|
|
5
|
+
export { TokenPage } from "./web/auth/TokenPage";
|
|
6
6
|
// Pages Admin
|
|
7
|
-
export { UserTokenPage } from "./web/admin/UserTokenPage
|
|
8
|
-
export { AdminTokenPacksPage } from "./web/admin/AdminTokenPacksPage
|
|
7
|
+
export { UserTokenPage } from "./web/admin/UserTokenPage";
|
|
8
|
+
export { AdminTokenPacksPage } from "./web/admin/AdminTokenPacksPage";
|
|
9
9
|
// Admin Components - User Tabs
|
|
10
|
-
export { UserTokenTab } from "./components/admin/UserTokenTab
|
|
10
|
+
export { UserTokenTab } from "./components/admin/UserTokenTab";
|
|
11
11
|
// Documentation
|
|
12
|
-
export { Doc } from "./components/Doc
|
|
13
|
-
export { Doc as AiModuleDoc } from "./components/Doc
|
|
12
|
+
export { Doc } from "./components/Doc";
|
|
13
|
+
export { Doc as AiModuleDoc } from "./components/Doc";
|
|
14
14
|
// Configuration de build
|
|
15
|
-
export { default as buildConfig } from "./ai.build.config
|
|
15
|
+
export { default as buildConfig } from "./ai.build.config";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminTokenPacksPage.d.ts","sourceRoot":"","sources":["../../../src/web/admin/AdminTokenPacksPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AdminTokenPacksPage.d.ts","sourceRoot":"","sources":["../../../src/web/admin/AdminTokenPacksPage.tsx"],"names":[],"mappings":"AAyCA,wBAAgB,mBAAmB,4CAyTlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextareaGenerative.d.ts","sourceRoot":"","sources":["../../../src/web/components/TextareaGenerative.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TextareaGenerative.d.ts","sourceRoot":"","sources":["../../../src/web/components/TextareaGenerative.tsx"],"names":[],"mappings":"AAoBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,aAAkB,EAClB,KAAqB,EACrB,WAA6D,EAC7D,YAAiB,EACjB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAgB,EAChB,OAAW,EACX,OAAY,EACZ,WAAqC,EACrC,gBAAuB,EACvB,KAAK,EACL,WAAW,EACX,gBAAwB,EACxB,sBAA8B,GAC/B,EAAE,uBAAuB,2CAqRzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lastbrain/module-ai",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Module de génération IA (texte et images) avec gestion de tokens pour LastBrain",
|
|
5
5
|
"private": false,
|
|
6
6
|
"release": {
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"@lastbrain/core": "^0.1.0",
|
|
40
40
|
"@lastbrain/ui": "^0.1.0",
|
|
41
41
|
"lucide-react": "^0.554.0",
|
|
42
|
-
"next": "^16.0.
|
|
42
|
+
"next": "^16.0.7",
|
|
43
43
|
"openai": "^6.9.1",
|
|
44
|
-
"react": "^19.
|
|
45
|
-
"react-dom": "^19.
|
|
44
|
+
"react": "^19.2.1",
|
|
45
|
+
"react-dom": "^19.2.1",
|
|
46
46
|
"zod": "^3.23.8"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|