@interware/content-generator 0.5.0 → 0.6.0
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/_chunks/{App-DVTFrZvf.js → App-CJxSC8yt.js} +5 -4
- package/dist/_chunks/{App-DPVBu7QB.mjs → App-qbgUXlOZ.mjs} +4 -3
- package/dist/_chunks/{ImageStudioTabs-mlNL6aQ2.mjs → ImageStudioTabs-BLAH3KYv.mjs} +8 -36
- package/dist/_chunks/{ImageStudioTabs-B2UbKYq7.js → ImageStudioTabs-DtusqpQO.js} +7 -35
- package/dist/_chunks/PluginProviders-D79TeGSE.js +34 -0
- package/dist/_chunks/PluginProviders-DWMpcAIh.mjs +35 -0
- package/dist/_chunks/{Settings-DziRY70a.js → Settings-BQXxV3LO.js} +93 -6
- package/dist/_chunks/{Settings-RrBQdijj.mjs → Settings-o2GngLaW.mjs} +94 -7
- package/dist/_chunks/{StudioApp-Cswkzh7F.js → StudioApp-BaySMwrk.js} +4 -3
- package/dist/_chunks/{StudioApp-AUyPNhh2.mjs → StudioApp-C_znlQRo.mjs} +3 -2
- package/dist/_chunks/{getTranslation-DfxaP_TC.mjs → getTranslation-B6Bsu-uq.mjs} +1 -1
- package/dist/_chunks/{getTranslation-D88uLXGd.js → getTranslation-BRVMWSf8.js} +1 -1
- package/dist/_chunks/{index-Ddp0Qvqo.js → index-BKhe-Jyx.js} +3 -3
- package/dist/_chunks/{index-CqDdi211.mjs → index-BKigRXm3.mjs} +3 -3
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/PluginProviders.d.ts +6 -2
- package/dist/admin/src/components/settings/VertexSettings.d.ts +18 -0
- package/dist/admin/src/hooks/useAdminTheme.d.ts +1 -1
- package/dist/admin/src/lib/use-cases/settings/index.d.ts +1 -0
- package/dist/server/index.js +94 -26
- package/dist/server/index.mjs +95 -27
- package/dist/server/src/controllers/config.d.ts +10 -2
- package/dist/server/src/controllers/index.d.ts +1 -0
- package/dist/server/src/image-studio/models.d.ts +2 -1
- package/dist/server/src/index.d.ts +4 -0
- package/dist/server/src/services/image-studio.d.ts +9 -5
- package/dist/server/src/services/index.d.ts +3 -0
- package/dist/server/src/services/service.d.ts +10 -0
- package/dist/server/src/utils/geminiClient.d.ts +24 -0
- package/dist/server/src/utils/serviceAccount.d.ts +29 -0
- package/package.json +2 -1
|
@@ -23,13 +23,17 @@ export interface GeneratedImage {
|
|
|
23
23
|
}[];
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
+
/** Cliente del Estudio: los modelos y el backend con que se creó (Gemini API o Vertex AI, S5.1). */
|
|
27
|
+
export interface StudioClient {
|
|
28
|
+
models: ModelsApi;
|
|
29
|
+
backend: Backend;
|
|
30
|
+
}
|
|
26
31
|
/**
|
|
27
|
-
* Generador del Estudio de imágenes (diseño S4.2). Recibe el cliente
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* `'vertex'` (S4.14).
|
|
32
|
+
* Generador del Estudio de imágenes (diseño S4.2). Recibe el cliente por inyección para probarse sin red;
|
|
33
|
+
* las credenciales nunca salen del servidor. El cliente se pide en cada operación: si un admin configura o
|
|
34
|
+
* quita la cuenta de servicio en Ajustes, la siguiente petición ya usa el otro backend (S5.1).
|
|
31
35
|
*/
|
|
32
|
-
export declare const createImageStudio: (
|
|
36
|
+
export declare const createImageStudio: (getClient: () => Promise<StudioClient>, read?: ReadFile) => {
|
|
33
37
|
models(): Promise<{
|
|
34
38
|
models: import("../image-studio/models").ImageModelInfo[];
|
|
35
39
|
verified: boolean;
|
|
@@ -4,6 +4,9 @@ declare const _default: {
|
|
|
4
4
|
service: ({ strapi }: {
|
|
5
5
|
strapi: import("@strapi/types/dist/core").Strapi;
|
|
6
6
|
}) => {
|
|
7
|
+
geminiClient({ allowVertex }?: {
|
|
8
|
+
allowVertex?: boolean;
|
|
9
|
+
}): Promise<import("../utils/geminiClient").GeminiClient>;
|
|
7
10
|
geminiConfig(): Promise<import("@google/genai").GoogleGenAI>;
|
|
8
11
|
getArticulos(sanitizedQueryParams: any): Promise<{
|
|
9
12
|
id: import("@strapi/types/dist/data").ID;
|
|
@@ -2,9 +2,19 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import type { Core } from '@strapi/strapi';
|
|
4
4
|
import { GoogleGenAI, Video } from '@google/genai';
|
|
5
|
+
import type { GeminiClient } from '../utils/geminiClient';
|
|
5
6
|
declare const service: ({ strapi }: {
|
|
6
7
|
strapi: Core.Strapi;
|
|
7
8
|
}) => {
|
|
9
|
+
/**
|
|
10
|
+
* Cliente de Google y su backend (S5.1): con la cuenta de servicio de Ajustes, Vertex AI en `global`; si
|
|
11
|
+
* no, la llave (`GOOGLE_API_KEY` del entorno gana a la del store, como antes; D10). El video pide
|
|
12
|
+
* `allowVertex: false` (D7).
|
|
13
|
+
*/
|
|
14
|
+
geminiClient({ allowVertex }?: {
|
|
15
|
+
allowVertex?: boolean;
|
|
16
|
+
}): Promise<GeminiClient>;
|
|
17
|
+
/** Atajo para los usos que solo necesitan el cliente (artículos). */
|
|
8
18
|
geminiConfig(): Promise<GoogleGenAI>;
|
|
9
19
|
getArticulos(sanitizedQueryParams: any): Promise<{
|
|
10
20
|
id: import("@strapi/types/dist/data").ID;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { GoogleGenAI } from '@google/genai';
|
|
2
|
+
import type { Backend } from '../image-studio/geminiConfig';
|
|
3
|
+
/** Región de Vertex AI: `global` (decisión de Israel, S5.1). Nano Banana 2 no está en la región de México. */
|
|
4
|
+
export declare const VERTEX_LOCATION = "global";
|
|
5
|
+
export interface GeminiClient {
|
|
6
|
+
ai: GoogleGenAI;
|
|
7
|
+
backend: Backend;
|
|
8
|
+
}
|
|
9
|
+
interface ClientInput {
|
|
10
|
+
/** JSON guardado en el plugin store (`VERTEX_SERVICE_ACCOUNT`), o null. */
|
|
11
|
+
serviceAccount: unknown;
|
|
12
|
+
/** Llave de la Gemini API (entorno o plugin store), o null. */
|
|
13
|
+
apiKey: unknown;
|
|
14
|
+
/** El video (Veo) usa la llave aunque haya cuenta de servicio (D7). */
|
|
15
|
+
allowVertex?: boolean;
|
|
16
|
+
}
|
|
17
|
+
type GenAIConstructor = new (options: ConstructorParameters<typeof GoogleGenAI>[0]) => GoogleGenAI;
|
|
18
|
+
/**
|
|
19
|
+
* Crea el cliente de Google y dice con qué backend (S5.1): con cuenta de servicio, Vertex AI en `global`; si no,
|
|
20
|
+
* la llave de la Gemini API. Las credenciales nunca aparecen en los errores. Si Vertex falla después, el error
|
|
21
|
+
* llega tal cual: no se cae a la llave en silencio (D9).
|
|
22
|
+
*/
|
|
23
|
+
export declare const createGeminiClient: ({ serviceAccount, apiKey, allowVertex }: ClientInput, Ctor?: GenAIConstructor) => GeminiClient;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cuenta de servicio de Google Cloud para Vertex AI (S5.1). Un admin pega su JSON en Ajustes y se guarda
|
|
3
|
+
* en el plugin store (decisión de Israel). Se conserva solo lo que usa el cliente; los mensajes de error
|
|
4
|
+
* nombran campos, nunca repiten el contenido: la llave privada es un secreto.
|
|
5
|
+
*/
|
|
6
|
+
/** Clave de la cuenta de servicio en el plugin store (S5.1, D8). */
|
|
7
|
+
export declare const VERTEX_KEY = "VERTEX_SERVICE_ACCOUNT";
|
|
8
|
+
export interface ServiceAccount {
|
|
9
|
+
projectId: string;
|
|
10
|
+
clientEmail: string;
|
|
11
|
+
privateKey: string;
|
|
12
|
+
}
|
|
13
|
+
export type ParseResult = {
|
|
14
|
+
ok: true;
|
|
15
|
+
account: ServiceAccount;
|
|
16
|
+
} | {
|
|
17
|
+
ok: false;
|
|
18
|
+
message: string;
|
|
19
|
+
};
|
|
20
|
+
/** Estado público para `GET /config`: proyecto y correo, nunca la llave. */
|
|
21
|
+
export interface PublicServiceAccount {
|
|
22
|
+
configured: boolean;
|
|
23
|
+
projectId: string | null;
|
|
24
|
+
clientEmail: string | null;
|
|
25
|
+
}
|
|
26
|
+
export declare const parseServiceAccount: (value: unknown) => ParseResult;
|
|
27
|
+
/** JSON mínimo que se guarda en el store: lo que `parseServiceAccount` vuelve a leer. */
|
|
28
|
+
export declare const storedServiceAccount: (account: ServiceAccount) => string;
|
|
29
|
+
export declare const publicServiceAccount: (stored: unknown) => PublicServiceAccount;
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.6.0",
|
|
3
3
|
"keywords": [],
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"publishConfig": {
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@google/genai": "^1.49.0",
|
|
46
|
+
"@radix-ui/react-tooltip": "1.0.7",
|
|
46
47
|
"@reduxjs/toolkit": "^1.9.7",
|
|
47
48
|
"@strapi/design-system": "^2.2.3",
|
|
48
49
|
"@strapi/icons": "^2.2.3",
|