@webiny/ai-powerups 0.0.0-unstable.e6f0dc8ca7
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/AiPowerups.d.ts +2 -0
- package/AiPowerups.js +12 -0
- package/AiPowerups.js.map +1 -0
- package/LICENSE +36 -0
- package/README.md +11 -0
- package/admin/Extension.d.ts +2 -0
- package/admin/Extension.js +39 -0
- package/admin/Extension.js.map +1 -0
- package/admin/domain/errors.d.ts +12 -0
- package/admin/domain/errors.js +22 -0
- package/admin/domain/errors.js.map +1 -0
- package/admin/features/feature.d.ts +1 -0
- package/admin/features/feature.js +21 -0
- package/admin/features/feature.js.map +1 -0
- package/admin/features/generatePageContent/GeneratePageContentGateway.d.ts +12 -0
- package/admin/features/generatePageContent/GeneratePageContentGateway.js +42 -0
- package/admin/features/generatePageContent/GeneratePageContentGateway.js.map +1 -0
- package/admin/features/generatePageContent/GeneratePageContentUseCase.d.ts +11 -0
- package/admin/features/generatePageContent/GeneratePageContentUseCase.js +15 -0
- package/admin/features/generatePageContent/GeneratePageContentUseCase.js.map +1 -0
- package/admin/features/generatePageContent/abstractions.d.ts +24 -0
- package/admin/features/generatePageContent/abstractions.js +5 -0
- package/admin/features/generatePageContent/abstractions.js.map +1 -0
- package/admin/features/generatePageContent/feature.d.ts +1 -0
- package/admin/features/generatePageContent/feature.js +12 -0
- package/admin/features/generatePageContent/feature.js.map +1 -0
- package/admin/features/generatePageContent/index.d.ts +3 -0
- package/admin/features/generatePageContent/index.js +4 -0
- package/admin/features/generatePageContent/index.js.map +1 -0
- package/admin/features/listModels/ListModelsGateway.d.ts +12 -0
- package/admin/features/listModels/ListModelsGateway.js +31 -0
- package/admin/features/listModels/ListModelsGateway.js.map +1 -0
- package/admin/features/listModels/ListModelsRepository.d.ts +13 -0
- package/admin/features/listModels/ListModelsRepository.js +24 -0
- package/admin/features/listModels/ListModelsRepository.js.map +1 -0
- package/admin/features/listModels/ListModelsUseCase.d.ts +10 -0
- package/admin/features/listModels/ListModelsUseCase.js +15 -0
- package/admin/features/listModels/ListModelsUseCase.js.map +1 -0
- package/admin/features/listModels/abstractions.d.ts +28 -0
- package/admin/features/listModels/abstractions.js +6 -0
- package/admin/features/listModels/abstractions.js.map +1 -0
- package/admin/features/listModels/feature.d.ts +3 -0
- package/admin/features/listModels/feature.js +20 -0
- package/admin/features/listModels/feature.js.map +1 -0
- package/admin/features/listModels/index.d.ts +2 -0
- package/admin/features/listModels/index.js +4 -0
- package/admin/features/listModels/index.js.map +1 -0
- package/admin/features/settings/getSettings/GetSettingsGateway.d.ts +12 -0
- package/admin/features/settings/getSettings/GetSettingsGateway.js +26 -0
- package/admin/features/settings/getSettings/GetSettingsGateway.js.map +1 -0
- package/admin/features/settings/getSettings/GetSettingsRepository.d.ts +14 -0
- package/admin/features/settings/getSettings/GetSettingsRepository.js +31 -0
- package/admin/features/settings/getSettings/GetSettingsRepository.js.map +1 -0
- package/admin/features/settings/getSettings/GetSettingsUseCase.d.ts +11 -0
- package/admin/features/settings/getSettings/GetSettingsUseCase.js +15 -0
- package/admin/features/settings/getSettings/GetSettingsUseCase.js.map +1 -0
- package/admin/features/settings/getSettings/abstractions.d.ts +22 -0
- package/admin/features/settings/getSettings/abstractions.js +6 -0
- package/admin/features/settings/getSettings/abstractions.js.map +1 -0
- package/admin/features/settings/getSettings/feature.d.ts +3 -0
- package/admin/features/settings/getSettings/feature.js +20 -0
- package/admin/features/settings/getSettings/feature.js.map +1 -0
- package/admin/features/settings/getSettings/index.d.ts +2 -0
- package/admin/features/settings/getSettings/index.js +4 -0
- package/admin/features/settings/getSettings/index.js.map +1 -0
- package/admin/features/settings/shared/SettingsCache.d.ts +10 -0
- package/admin/features/settings/shared/SettingsCache.js +18 -0
- package/admin/features/settings/shared/SettingsCache.js.map +1 -0
- package/admin/features/settings/shared/abstractions.d.ts +50 -0
- package/admin/features/settings/shared/abstractions.js +4 -0
- package/admin/features/settings/shared/abstractions.js.map +1 -0
- package/admin/features/settings/shared/feature.d.ts +3 -0
- package/admin/features/settings/shared/feature.js +16 -0
- package/admin/features/settings/shared/feature.js.map +1 -0
- package/admin/features/settings/shared/index.d.ts +2 -0
- package/admin/features/settings/shared/index.js +4 -0
- package/admin/features/settings/shared/index.js.map +1 -0
- package/admin/features/settings/updateSettings/UpdateSettingsGateway.d.ts +12 -0
- package/admin/features/settings/updateSettings/UpdateSettingsGateway.js +44 -0
- package/admin/features/settings/updateSettings/UpdateSettingsGateway.js.map +1 -0
- package/admin/features/settings/updateSettings/UpdateSettingsRepository.d.ts +13 -0
- package/admin/features/settings/updateSettings/UpdateSettingsRepository.js +19 -0
- package/admin/features/settings/updateSettings/UpdateSettingsRepository.js.map +1 -0
- package/admin/features/settings/updateSettings/UpdateSettingsUseCase.d.ts +11 -0
- package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js +15 -0
- package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js.map +1 -0
- package/admin/features/settings/updateSettings/abstractions.d.ts +22 -0
- package/admin/features/settings/updateSettings/abstractions.js +6 -0
- package/admin/features/settings/updateSettings/abstractions.js.map +1 -0
- package/admin/features/settings/updateSettings/feature.d.ts +3 -0
- package/admin/features/settings/updateSettings/feature.js +20 -0
- package/admin/features/settings/updateSettings/feature.js.map +1 -0
- package/admin/features/settings/updateSettings/index.d.ts +2 -0
- package/admin/features/settings/updateSettings/index.js +4 -0
- package/admin/features/settings/updateSettings/index.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.d.ts +4 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js +53 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.d.ts +26 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js +158 -0
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/abstractions.d.ts +18 -0
- package/admin/presentation/AiPowerUpsSettings/abstractions.js +4 -0
- package/admin/presentation/AiPowerUpsSettings/abstractions.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/feature.d.ts +3 -0
- package/admin/presentation/AiPowerUpsSettings/feature.js +24 -0
- package/admin/presentation/AiPowerUpsSettings/feature.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/index.d.ts +3 -0
- package/admin/presentation/AiPowerUpsSettings/index.js +5 -0
- package/admin/presentation/AiPowerUpsSettings/index.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/settingsGroup.d.ts +17 -0
- package/admin/presentation/AiPowerUpsSettings/settingsGroup.js +4 -0
- package/admin/presentation/AiPowerUpsSettings/settingsGroup.js.map +1 -0
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.d.ts +4 -0
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js +28 -0
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js.map +1 -0
- package/admin/presentation/ProjectsSettings.d.ts +11 -0
- package/admin/presentation/ProjectsSettings.js +55 -0
- package/admin/presentation/ProjectsSettings.js.map +1 -0
- package/admin/presentation/ProvidersSettings.d.ts +16 -0
- package/admin/presentation/ProvidersSettings.js +40 -0
- package/admin/presentation/ProvidersSettings.js.map +1 -0
- package/admin/presentation/ReaderPersonasSettings.d.ts +11 -0
- package/admin/presentation/ReaderPersonasSettings.js +32 -0
- package/admin/presentation/ReaderPersonasSettings.js.map +1 -0
- package/admin/presentation/WbContentGeneration/Extension.d.ts +2 -0
- package/admin/presentation/WbContentGeneration/Extension.js +23 -0
- package/admin/presentation/WbContentGeneration/Extension.js.map +1 -0
- package/admin/presentation/WbContentGeneration/GenerateContentButton.d.ts +2 -0
- package/admin/presentation/WbContentGeneration/GenerateContentButton.js +24 -0
- package/admin/presentation/WbContentGeneration/GenerateContentButton.js.map +1 -0
- package/admin/presentation/WbContentGeneration/GenerateContentDialog.d.ts +21 -0
- package/admin/presentation/WbContentGeneration/GenerateContentDialog.js +107 -0
- package/admin/presentation/WbContentGeneration/GenerateContentDialog.js.map +1 -0
- package/admin/presentation/WbContentGeneration/GenerateContentPresenter.d.ts +38 -0
- package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js +231 -0
- package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js.map +1 -0
- package/admin/presentation/WbContentGeneration/PROCESS_IDEA.md +190 -0
- package/admin/presentation/WbContentGeneration/abstractions.d.ts +30 -0
- package/admin/presentation/WbContentGeneration/abstractions.js +4 -0
- package/admin/presentation/WbContentGeneration/abstractions.js.map +1 -0
- package/admin/presentation/WbContentGeneration/decompressGzipBase64.d.ts +1 -0
- package/admin/presentation/WbContentGeneration/decompressGzipBase64.js +14 -0
- package/admin/presentation/WbContentGeneration/decompressGzipBase64.js.map +1 -0
- package/admin/presentation/WbContentGeneration/feature.d.ts +3 -0
- package/admin/presentation/WbContentGeneration/feature.js +16 -0
- package/admin/presentation/WbContentGeneration/feature.js.map +1 -0
- package/admin/presentation/WriterPersonasSettings.d.ts +11 -0
- package/admin/presentation/WriterPersonasSettings.js +32 -0
- package/admin/presentation/WriterPersonasSettings.js.map +1 -0
- package/admin/routes.d.ts +4 -0
- package/admin/routes.js +9 -0
- package/admin/routes.js.map +1 -0
- package/api/Extension.d.ts +4 -0
- package/api/Extension.js +36 -0
- package/api/Extension.js.map +1 -0
- package/api/constants.d.ts +1 -0
- package/api/constants.js +3 -0
- package/api/constants.js.map +1 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.d.ts +11 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js +28 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js.map +1 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentTask.d.ts +34 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js +132 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js.map +1 -0
- package/api/features/AiImageEnrichment/feature.d.ts +4 -0
- package/api/features/AiImageEnrichment/feature.js +12 -0
- package/api/features/AiImageEnrichment/feature.js.map +1 -0
- package/api/features/AiPromptContext/AiPromptContextBuilder.d.ts +19 -0
- package/api/features/AiPromptContext/AiPromptContextBuilder.js +154 -0
- package/api/features/AiPromptContext/AiPromptContextBuilder.js.map +1 -0
- package/api/features/AiPromptContext/ProjectSection.d.ts +4 -0
- package/api/features/AiPromptContext/ProjectSection.js +22 -0
- package/api/features/AiPromptContext/ProjectSection.js.map +1 -0
- package/api/features/AiPromptContext/ReaderPersonaSection.d.ts +4 -0
- package/api/features/AiPromptContext/ReaderPersonaSection.js +11 -0
- package/api/features/AiPromptContext/ReaderPersonaSection.js.map +1 -0
- package/api/features/AiPromptContext/WriterPersonaSection.d.ts +4 -0
- package/api/features/AiPromptContext/WriterPersonaSection.js +11 -0
- package/api/features/AiPromptContext/WriterPersonaSection.js.map +1 -0
- package/api/features/AiPromptContext/abstractions.d.ts +37 -0
- package/api/features/AiPromptContext/abstractions.js +4 -0
- package/api/features/AiPromptContext/abstractions.js.map +1 -0
- package/api/features/AiPromptContext/feature.d.ts +4 -0
- package/api/features/AiPromptContext/feature.js +10 -0
- package/api/features/AiPromptContext/feature.js.map +1 -0
- package/api/features/AiPromptContext/index.d.ts +1 -0
- package/api/features/AiPromptContext/index.js +3 -0
- package/api/features/AiPromptContext/index.js.map +1 -0
- package/api/features/GetSettings/GetSettingsRepository.d.ts +16 -0
- package/api/features/GetSettings/GetSettingsRepository.js +40 -0
- package/api/features/GetSettings/GetSettingsRepository.js.map +1 -0
- package/api/features/GetSettings/GetSettingsUseCase.d.ts +10 -0
- package/api/features/GetSettings/GetSettingsUseCase.js +15 -0
- package/api/features/GetSettings/GetSettingsUseCase.js.map +1 -0
- package/api/features/GetSettings/abstractions.d.ts +16 -0
- package/api/features/GetSettings/abstractions.js +5 -0
- package/api/features/GetSettings/abstractions.js.map +1 -0
- package/api/features/GetSettings/feature.d.ts +4 -0
- package/api/features/GetSettings/feature.js +12 -0
- package/api/features/GetSettings/feature.js.map +1 -0
- package/api/features/GetSettings/index.d.ts +1 -0
- package/api/features/GetSettings/index.js +3 -0
- package/api/features/GetSettings/index.js.map +1 -0
- package/api/features/Projects/ProjectsHandler.d.ts +31 -0
- package/api/features/Projects/ProjectsHandler.js +101 -0
- package/api/features/Projects/ProjectsHandler.js.map +1 -0
- package/api/features/Projects/feature.d.ts +4 -0
- package/api/features/Projects/feature.js +10 -0
- package/api/features/Projects/feature.js.map +1 -0
- package/api/features/Projects/types.d.ts +50 -0
- package/api/features/Projects/types.js +3 -0
- package/api/features/Projects/types.js.map +1 -0
- package/api/features/Providers/ProvidersGraphQLMapper.d.ts +21 -0
- package/api/features/Providers/ProvidersGraphQLMapper.js +36 -0
- package/api/features/Providers/ProvidersGraphQLMapper.js.map +1 -0
- package/api/features/Providers/ProvidersHandler.d.ts +26 -0
- package/api/features/Providers/ProvidersHandler.js +76 -0
- package/api/features/Providers/ProvidersHandler.js.map +1 -0
- package/api/features/Providers/feature.d.ts +4 -0
- package/api/features/Providers/feature.js +12 -0
- package/api/features/Providers/feature.js.map +1 -0
- package/api/features/Providers/index.d.ts +1 -0
- package/api/features/Providers/index.js +3 -0
- package/api/features/Providers/index.js.map +1 -0
- package/api/features/Providers/types.d.ts +29 -0
- package/api/features/Providers/types.js +3 -0
- package/api/features/Providers/types.js.map +1 -0
- package/api/features/ReaderPersonas/ReaderPersonasHandler.d.ts +20 -0
- package/api/features/ReaderPersonas/ReaderPersonasHandler.js +42 -0
- package/api/features/ReaderPersonas/ReaderPersonasHandler.js.map +1 -0
- package/api/features/ReaderPersonas/feature.d.ts +4 -0
- package/api/features/ReaderPersonas/feature.js +10 -0
- package/api/features/ReaderPersonas/feature.js.map +1 -0
- package/api/features/ReaderPersonas/index.d.ts +2 -0
- package/api/features/ReaderPersonas/index.js +3 -0
- package/api/features/ReaderPersonas/index.js.map +1 -0
- package/api/features/ReaderPersonas/types.d.ts +24 -0
- package/api/features/ReaderPersonas/types.js +3 -0
- package/api/features/ReaderPersonas/types.js.map +1 -0
- package/api/features/UpdateSettings/UpdateSettingsRepository.d.ts +16 -0
- package/api/features/UpdateSettings/UpdateSettingsRepository.js +77 -0
- package/api/features/UpdateSettings/UpdateSettingsRepository.js.map +1 -0
- package/api/features/UpdateSettings/UpdateSettingsUseCase.d.ts +13 -0
- package/api/features/UpdateSettings/UpdateSettingsUseCase.js +28 -0
- package/api/features/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
- package/api/features/UpdateSettings/abstractions.d.ts +36 -0
- package/api/features/UpdateSettings/abstractions.js +10 -0
- package/api/features/UpdateSettings/abstractions.js.map +1 -0
- package/api/features/UpdateSettings/errors.d.ts +10 -0
- package/api/features/UpdateSettings/errors.js +14 -0
- package/api/features/UpdateSettings/errors.js.map +1 -0
- package/api/features/UpdateSettings/events.d.ts +10 -0
- package/api/features/UpdateSettings/events.js +16 -0
- package/api/features/UpdateSettings/events.js.map +1 -0
- package/api/features/UpdateSettings/feature.d.ts +4 -0
- package/api/features/UpdateSettings/feature.js +12 -0
- package/api/features/UpdateSettings/feature.js.map +1 -0
- package/api/features/UpdateSettings/index.d.ts +1 -0
- package/api/features/UpdateSettings/index.js +3 -0
- package/api/features/UpdateSettings/index.js.map +1 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.d.ts +33 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js +76 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js.map +1 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.d.ts +21 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js +79 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js.map +1 -0
- package/api/features/WbGeneratePageContent/abstractions.d.ts +18 -0
- package/api/features/WbGeneratePageContent/abstractions.js +4 -0
- package/api/features/WbGeneratePageContent/abstractions.js.map +1 -0
- package/api/features/WbGeneratePageContent/buildPrompt.d.ts +1 -0
- package/api/features/WbGeneratePageContent/buildPrompt.js +142 -0
- package/api/features/WbGeneratePageContent/buildPrompt.js.map +1 -0
- package/api/features/WbGeneratePageContent/feature.d.ts +4 -0
- package/api/features/WbGeneratePageContent/feature.js +12 -0
- package/api/features/WbGeneratePageContent/feature.js.map +1 -0
- package/api/features/WbGeneratePageContent/index.d.ts +1 -0
- package/api/features/WbGeneratePageContent/index.js +3 -0
- package/api/features/WbGeneratePageContent/index.js.map +1 -0
- package/api/features/WriterPersonas/WriterPersonasHandler.d.ts +20 -0
- package/api/features/WriterPersonas/WriterPersonasHandler.js +42 -0
- package/api/features/WriterPersonas/WriterPersonasHandler.js.map +1 -0
- package/api/features/WriterPersonas/feature.d.ts +4 -0
- package/api/features/WriterPersonas/feature.js +10 -0
- package/api/features/WriterPersonas/feature.js.map +1 -0
- package/api/features/WriterPersonas/index.d.ts +2 -0
- package/api/features/WriterPersonas/index.js +3 -0
- package/api/features/WriterPersonas/index.js.map +1 -0
- package/api/features/WriterPersonas/types.d.ts +24 -0
- package/api/features/WriterPersonas/types.js +3 -0
- package/api/features/WriterPersonas/types.js.map +1 -0
- package/api/features/shared/SettingsCache.d.ts +12 -0
- package/api/features/shared/SettingsCache.js +19 -0
- package/api/features/shared/SettingsCache.js.map +1 -0
- package/api/features/shared/abstractions.d.ts +33 -0
- package/api/features/shared/abstractions.js +6 -0
- package/api/features/shared/abstractions.js.map +1 -0
- package/api/features/shared/index.d.ts +3 -0
- package/api/features/shared/index.js +5 -0
- package/api/features/shared/index.js.map +1 -0
- package/api/graphql/AiPowerUpsSettingsGraphQLMapper.d.ts +13 -0
- package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js +35 -0
- package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js.map +1 -0
- package/api/graphql/BaseGraphQLSchema.d.ts +8 -0
- package/api/graphql/BaseGraphQLSchema.js +141 -0
- package/api/graphql/BaseGraphQLSchema.js.map +1 -0
- package/api/graphql/abstractions.d.ts +9 -0
- package/api/graphql/abstractions.js +4 -0
- package/api/graphql/abstractions.js.map +1 -0
- package/api/types.d.ts +5 -0
- package/api/types.js +7 -0
- package/api/types.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +3 -0
- package/index.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiPowerUpsSettingsGroupHandler } from "../../../api/features/shared/index.js";
|
|
3
|
+
import type { PersistedProjects, ProjectsSettings } from "./types.js";
|
|
4
|
+
declare class ProjectsHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {
|
|
5
|
+
readonly name = "projects";
|
|
6
|
+
readonly inputSchema: z.ZodObject<{
|
|
7
|
+
presets: z.ZodArray<z.ZodObject<{
|
|
8
|
+
id: z.ZodString;
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
description: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
11
|
+
instructions: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
12
|
+
defaultReaderPersonaId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
13
|
+
defaultWriterPersonaId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
14
|
+
files: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
15
|
+
id: z.ZodString;
|
|
16
|
+
name: z.ZodString;
|
|
17
|
+
size: z.ZodNumber;
|
|
18
|
+
mimeType: z.ZodString;
|
|
19
|
+
src: z.ZodString;
|
|
20
|
+
}, z.core.$strip>>>>>;
|
|
21
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
}, z.core.$strip>>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
mapFromStorage(persisted: unknown): ProjectsSettings;
|
|
25
|
+
mapToStorage(internal: unknown, existing: unknown | null): Promise<PersistedProjects>;
|
|
26
|
+
private projectChanged;
|
|
27
|
+
}
|
|
28
|
+
declare const _default: typeof ProjectsHandlerImpl & {
|
|
29
|
+
__abstraction: import("@webiny/di").Abstraction<import("../shared/abstractions.js").IAiPowerUpsSettingsGroupHandler>;
|
|
30
|
+
};
|
|
31
|
+
export default _default;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiPowerUpsSettingsGroupHandler } from "../shared/index.js";
|
|
3
|
+
const fileItemSchema = z.object({
|
|
4
|
+
id: z.string().min(1),
|
|
5
|
+
name: z.string().min(1),
|
|
6
|
+
size: z.number(),
|
|
7
|
+
mimeType: z.string().min(1),
|
|
8
|
+
src: z.string().min(1)
|
|
9
|
+
});
|
|
10
|
+
const TOKEN_BUDGET = 150_000;
|
|
11
|
+
const CHARS_PER_TOKEN = 4;
|
|
12
|
+
const MAX_CONTEXT_BYTES = TOKEN_BUDGET * CHARS_PER_TOKEN;
|
|
13
|
+
const presetSchema = z.object({
|
|
14
|
+
id: z.string().min(1),
|
|
15
|
+
name: z.string().min(1),
|
|
16
|
+
description: z.string().nullish().optional(),
|
|
17
|
+
instructions: z.string().nullish().optional(),
|
|
18
|
+
defaultReaderPersonaId: z.string().nullish().optional(),
|
|
19
|
+
defaultWriterPersonaId: z.string().nullish().optional(),
|
|
20
|
+
files: z.array(fileItemSchema).nullish().optional(),
|
|
21
|
+
version: z.number().optional()
|
|
22
|
+
}).superRefine((preset, ctx) => {
|
|
23
|
+
const instructionsBytes = preset.instructions?.length ?? 0;
|
|
24
|
+
const files = preset.files ?? [];
|
|
25
|
+
const totalFileBytes = files.reduce((sum, f) => sum + f.size, 0);
|
|
26
|
+
const totalBytes = instructionsBytes + totalFileBytes;
|
|
27
|
+
if (totalBytes <= MAX_CONTEXT_BYTES) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const estimatedTokens = Math.ceil(totalBytes / CHARS_PER_TOKEN);
|
|
31
|
+
const sorted = [...files].sort((a, b) => b.size - a.size);
|
|
32
|
+
const top = sorted.slice(0, 3).map(f => `${f.name} (~${Math.ceil(f.size / CHARS_PER_TOKEN).toLocaleString()} tokens)`);
|
|
33
|
+
ctx.addIssue({
|
|
34
|
+
code: z.ZodIssueCode.custom,
|
|
35
|
+
path: ["files"],
|
|
36
|
+
message: `Project "${preset.name}" exceeds the ${TOKEN_BUDGET.toLocaleString()} token budget (~${estimatedTokens.toLocaleString()} tokens). Largest files: ${top.join(", ")}.`
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
const inputSchema = z.object({
|
|
40
|
+
presets: z.array(presetSchema)
|
|
41
|
+
});
|
|
42
|
+
class ProjectsHandlerImpl {
|
|
43
|
+
name = "projects";
|
|
44
|
+
inputSchema = inputSchema;
|
|
45
|
+
mapFromStorage(persisted) {
|
|
46
|
+
if (!persisted || typeof persisted !== "object") {
|
|
47
|
+
return {
|
|
48
|
+
presets: []
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const data = persisted;
|
|
52
|
+
return {
|
|
53
|
+
presets: data.presets ?? []
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async mapToStorage(internal, existing) {
|
|
57
|
+
const input = internal;
|
|
58
|
+
const prev = existing;
|
|
59
|
+
const prevById = new Map((prev?.presets ?? []).map(p => [p.id, p]));
|
|
60
|
+
return {
|
|
61
|
+
presets: input.presets.map(p => {
|
|
62
|
+
const prevProject = prevById.get(p.id);
|
|
63
|
+
const prevVersion = prevProject?.version ?? 0;
|
|
64
|
+
const changed = this.projectChanged(p, prevProject);
|
|
65
|
+
return {
|
|
66
|
+
id: p.id,
|
|
67
|
+
name: p.name,
|
|
68
|
+
description: p.description,
|
|
69
|
+
instructions: p.instructions,
|
|
70
|
+
defaultReaderPersonaId: p.defaultReaderPersonaId,
|
|
71
|
+
defaultWriterPersonaId: p.defaultWriterPersonaId,
|
|
72
|
+
files: (p.files ?? []).map(f => ({
|
|
73
|
+
id: f.id,
|
|
74
|
+
name: f.name,
|
|
75
|
+
size: f.size,
|
|
76
|
+
mimeType: f.mimeType,
|
|
77
|
+
src: f.src
|
|
78
|
+
})),
|
|
79
|
+
version: changed ? prevVersion + 1 : prevVersion
|
|
80
|
+
};
|
|
81
|
+
})
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
projectChanged(current, prev) {
|
|
85
|
+
if (!prev) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
if (current.instructions !== prev.instructions) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
const currentFileIds = (current.files ?? []).map(f => f.id).join(",");
|
|
92
|
+
const prevFileIds = (prev.files ?? []).map(f => f.id).join(",");
|
|
93
|
+
return currentFileIds !== prevFileIds;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export default AiPowerUpsSettingsGroupHandler.createImplementation({
|
|
97
|
+
implementation: ProjectsHandlerImpl,
|
|
98
|
+
dependencies: []
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=ProjectsHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["z","AiPowerUpsSettingsGroupHandler","fileItemSchema","object","id","string","min","name","size","number","mimeType","src","TOKEN_BUDGET","CHARS_PER_TOKEN","MAX_CONTEXT_BYTES","presetSchema","description","nullish","optional","instructions","defaultReaderPersonaId","defaultWriterPersonaId","files","array","version","superRefine","preset","ctx","instructionsBytes","length","totalFileBytes","reduce","sum","f","totalBytes","estimatedTokens","Math","ceil","sorted","sort","a","b","top","slice","map","toLocaleString","addIssue","code","ZodIssueCode","custom","path","message","join","inputSchema","presets","ProjectsHandlerImpl","mapFromStorage","persisted","data","mapToStorage","internal","existing","input","prev","prevById","Map","p","prevProject","get","prevVersion","changed","projectChanged","current","currentFileIds","prevFileIds","createImplementation","implementation","dependencies"],"sources":["ProjectsHandler.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { AiPowerUpsSettingsGroupHandler } from \"~/api/features/shared/index.js\";\nimport type {\n PersistedProjectPreset,\n PersistedProjects,\n ProjectPreset,\n ProjectsSettings\n} from \"./types.js\";\n\nconst fileItemSchema = z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n size: z.number(),\n mimeType: z.string().min(1),\n src: z.string().min(1)\n});\n\nconst TOKEN_BUDGET = 150_000;\nconst CHARS_PER_TOKEN = 4;\nconst MAX_CONTEXT_BYTES = TOKEN_BUDGET * CHARS_PER_TOKEN;\n\nconst presetSchema = z\n .object({\n id: z.string().min(1),\n name: z.string().min(1),\n description: z.string().nullish().optional(),\n instructions: z.string().nullish().optional(),\n defaultReaderPersonaId: z.string().nullish().optional(),\n defaultWriterPersonaId: z.string().nullish().optional(),\n files: z.array(fileItemSchema).nullish().optional(),\n version: z.number().optional()\n })\n .superRefine((preset, ctx) => {\n const instructionsBytes = preset.instructions?.length ?? 0;\n const files = preset.files ?? [];\n const totalFileBytes = files.reduce((sum, f) => sum + f.size, 0);\n const totalBytes = instructionsBytes + totalFileBytes;\n\n if (totalBytes <= MAX_CONTEXT_BYTES) {\n return;\n }\n\n const estimatedTokens = Math.ceil(totalBytes / CHARS_PER_TOKEN);\n const sorted = [...files].sort((a, b) => b.size - a.size);\n const top = sorted\n .slice(0, 3)\n .map(\n f => `${f.name} (~${Math.ceil(f.size / CHARS_PER_TOKEN).toLocaleString()} tokens)`\n );\n\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"files\"],\n message: `Project \"${preset.name}\" exceeds the ${TOKEN_BUDGET.toLocaleString()} token budget (~${estimatedTokens.toLocaleString()} tokens). Largest files: ${top.join(\", \")}.`\n });\n });\n\nconst inputSchema = z.object({\n presets: z.array(presetSchema)\n});\n\nclass ProjectsHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {\n readonly name = \"projects\";\n readonly inputSchema = inputSchema;\n\n mapFromStorage(persisted: unknown): ProjectsSettings {\n if (!persisted || typeof persisted !== \"object\") {\n return { presets: [] };\n }\n\n const data = persisted as PersistedProjects;\n return { presets: data.presets ?? [] };\n }\n\n async mapToStorage(internal: unknown, existing: unknown | null): Promise<PersistedProjects> {\n const input = internal as ProjectsSettings;\n const prev = existing as PersistedProjects | null;\n const prevById = new Map((prev?.presets ?? []).map(p => [p.id, p]));\n\n return {\n presets: input.presets.map(p => {\n const prevProject = prevById.get(p.id);\n const prevVersion = prevProject?.version ?? 0;\n const changed = this.projectChanged(p, prevProject);\n\n return {\n id: p.id,\n name: p.name,\n description: p.description,\n instructions: p.instructions,\n defaultReaderPersonaId: p.defaultReaderPersonaId,\n defaultWriterPersonaId: p.defaultWriterPersonaId,\n files: (p.files ?? []).map(f => ({\n id: f.id,\n name: f.name,\n size: f.size,\n mimeType: f.mimeType,\n src: f.src\n })),\n version: changed ? prevVersion + 1 : prevVersion\n };\n })\n };\n }\n\n private projectChanged(\n current: ProjectPreset,\n prev: PersistedProjectPreset | undefined\n ): boolean {\n if (!prev) {\n return true;\n }\n if (current.instructions !== prev.instructions) {\n return true;\n }\n const currentFileIds = (current.files ?? []).map(f => f.id).join(\",\");\n const prevFileIds = (prev.files ?? []).map(f => f.id).join(\",\");\n return currentFileIds !== prevFileIds;\n }\n}\n\nexport default AiPowerUpsSettingsGroupHandler.createImplementation({\n implementation: ProjectsHandlerImpl,\n dependencies: []\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import ProjectsHandler from "./ProjectsHandler.js";
|
|
3
|
+
export const ProjectsFeature = createFeature({
|
|
4
|
+
name: "AiPowerUpsProjects",
|
|
5
|
+
register(container) {
|
|
6
|
+
container.register(ProjectsHandler);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","ProjectsHandler","ProjectsFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport ProjectsHandler from \"./ProjectsHandler.js\";\n\nexport const ProjectsFeature = createFeature({\n name: \"AiPowerUpsProjects\",\n register(container) {\n container.register(ProjectsHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,eAAe;AAEtB,OAAO,MAAMC,eAAe,GAAGF,aAAa,CAAC;EACzCG,IAAI,EAAE,oBAAoB;EAC1BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,eAAe,CAAC;EACvC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
2
|
+
export interface ProjectFileItem {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
size: number;
|
|
6
|
+
mimeType: string;
|
|
7
|
+
src: string;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ProjectPreset {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
instructions?: string;
|
|
16
|
+
defaultReaderPersonaId?: string;
|
|
17
|
+
defaultWriterPersonaId?: string;
|
|
18
|
+
files?: ProjectFileItem[];
|
|
19
|
+
version: number;
|
|
20
|
+
}
|
|
21
|
+
declare module "~/api/types.js" {
|
|
22
|
+
interface IAiPowerUpsSettings {
|
|
23
|
+
projects: {
|
|
24
|
+
presets: ProjectPreset[];
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export type ProjectsSettings = IAiPowerUpsSettings["projects"];
|
|
29
|
+
export interface PersistedProjectFileItem {
|
|
30
|
+
id: string;
|
|
31
|
+
name: string;
|
|
32
|
+
size: number;
|
|
33
|
+
mimeType: string;
|
|
34
|
+
src: string;
|
|
35
|
+
width?: number;
|
|
36
|
+
height?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface PersistedProjectPreset {
|
|
39
|
+
id: string;
|
|
40
|
+
name: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
instructions?: string;
|
|
43
|
+
defaultReaderPersonaId?: string;
|
|
44
|
+
defaultWriterPersonaId?: string;
|
|
45
|
+
files?: PersistedProjectFileItem[];
|
|
46
|
+
version: number;
|
|
47
|
+
}
|
|
48
|
+
export interface PersistedProjects {
|
|
49
|
+
presets: PersistedProjectPreset[];
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IAiPowerUpsSettings } from \"~/api/types.js\";\n\nexport interface ProjectFileItem {\n id: string;\n name: string;\n size: number;\n mimeType: string;\n src: string;\n width?: number;\n height?: number;\n}\n\nexport interface ProjectPreset {\n id: string;\n name: string;\n description?: string;\n instructions?: string;\n defaultReaderPersonaId?: string;\n defaultWriterPersonaId?: string;\n files?: ProjectFileItem[];\n version: number;\n}\n\ndeclare module \"~/api/types.js\" {\n interface IAiPowerUpsSettings {\n projects: {\n presets: ProjectPreset[];\n };\n }\n}\n\nexport type ProjectsSettings = IAiPowerUpsSettings[\"projects\"];\n\nexport interface PersistedProjectFileItem {\n id: string;\n name: string;\n size: number;\n mimeType: string;\n src: string;\n width?: number;\n height?: number;\n}\n\nexport interface PersistedProjectPreset {\n id: string;\n name: string;\n description?: string;\n instructions?: string;\n defaultReaderPersonaId?: string;\n defaultWriterPersonaId?: string;\n files?: PersistedProjectFileItem[];\n version: number;\n}\n\nexport interface PersistedProjects {\n presets: PersistedProjectPreset[];\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AiPowerUpsSettingsGroupGraphQLMapper } from "../../../api/features/shared/index.js";
|
|
2
|
+
import type { ProvidersSettings } from "./types.js";
|
|
3
|
+
interface ApiProviderPreset {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
model: string;
|
|
8
|
+
apiKey: string | null;
|
|
9
|
+
}
|
|
10
|
+
interface ApiProviders {
|
|
11
|
+
presets: ApiProviderPreset[];
|
|
12
|
+
}
|
|
13
|
+
declare class ProvidersGraphQLMapperImpl implements AiPowerUpsSettingsGroupGraphQLMapper.Interface {
|
|
14
|
+
readonly name = "providers";
|
|
15
|
+
toApi(internal: unknown): ApiProviders;
|
|
16
|
+
fromApi(api: unknown): ProvidersSettings;
|
|
17
|
+
}
|
|
18
|
+
declare const _default: typeof ProvidersGraphQLMapperImpl & {
|
|
19
|
+
__abstraction: import("@webiny/di").Abstraction<import("../shared/abstractions.js").IAiPowerUpsSettingsGroupGraphQLMapper>;
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AiPowerUpsSettingsGroupGraphQLMapper } from "../shared/index.js";
|
|
2
|
+
class ProvidersGraphQLMapperImpl {
|
|
3
|
+
name = "providers";
|
|
4
|
+
toApi(internal) {
|
|
5
|
+
const data = internal;
|
|
6
|
+
return {
|
|
7
|
+
presets: data.presets.map(p => ({
|
|
8
|
+
id: p.id,
|
|
9
|
+
name: p.name,
|
|
10
|
+
description: p.description,
|
|
11
|
+
model: p.model,
|
|
12
|
+
apiKey: p.apiKeyMasked ?? null
|
|
13
|
+
}))
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
fromApi(api) {
|
|
17
|
+
const data = api;
|
|
18
|
+
return {
|
|
19
|
+
presets: data.presets.map(p => ({
|
|
20
|
+
id: p.id,
|
|
21
|
+
name: p.name,
|
|
22
|
+
description: p.description,
|
|
23
|
+
model: p.model,
|
|
24
|
+
apiKey: p.apiKey,
|
|
25
|
+
apiKeyMasked: "",
|
|
26
|
+
apiKeyEncrypted: ""
|
|
27
|
+
}))
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export default AiPowerUpsSettingsGroupGraphQLMapper.createImplementation({
|
|
32
|
+
implementation: ProvidersGraphQLMapperImpl,
|
|
33
|
+
dependencies: []
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=ProvidersGraphQLMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AiPowerUpsSettingsGroupGraphQLMapper","ProvidersGraphQLMapperImpl","name","toApi","internal","data","presets","map","p","id","description","model","apiKey","apiKeyMasked","fromApi","api","apiKeyEncrypted","createImplementation","implementation","dependencies"],"sources":["ProvidersGraphQLMapper.ts"],"sourcesContent":["import { AiPowerUpsSettingsGroupGraphQLMapper } from \"~/api/features/shared/index.js\";\nimport type { ProvidersSettings } from \"./types.js\";\n\ninterface ApiProviderPreset {\n id: string;\n name: string;\n description?: string;\n model: string;\n apiKey: string | null;\n}\n\ninterface ApiProviders {\n presets: ApiProviderPreset[];\n}\n\ninterface ApiInputProviderPreset {\n id: string;\n name: string;\n description?: string;\n model: string;\n apiKey?: string;\n}\n\ninterface ApiInputProviders {\n presets: ApiInputProviderPreset[];\n}\n\nclass ProvidersGraphQLMapperImpl implements AiPowerUpsSettingsGroupGraphQLMapper.Interface {\n readonly name = \"providers\";\n\n toApi(internal: unknown): ApiProviders {\n const data = internal as ProvidersSettings;\n return {\n presets: data.presets.map(p => ({\n id: p.id,\n name: p.name,\n description: p.description,\n model: p.model,\n apiKey: p.apiKeyMasked ?? null\n }))\n };\n }\n\n fromApi(api: unknown): ProvidersSettings {\n const data = api as ApiInputProviders;\n return {\n presets: data.presets.map(p => ({\n id: p.id,\n name: p.name,\n description: p.description,\n model: p.model,\n apiKey: p.apiKey,\n apiKeyMasked: \"\",\n apiKeyEncrypted: \"\"\n }))\n };\n }\n}\n\nexport default AiPowerUpsSettingsGroupGraphQLMapper.createImplementation({\n implementation: ProvidersGraphQLMapperImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oCAAoC;AA2B7C,MAAMC,0BAA0B,CAA2D;EAC9EC,IAAI,GAAG,WAAW;EAE3BC,KAAKA,CAACC,QAAiB,EAAgB;IACnC,MAAMC,IAAI,GAAGD,QAA6B;IAC1C,OAAO;MACHE,OAAO,EAAED,IAAI,CAACC,OAAO,CAACC,GAAG,CAACC,CAAC,KAAK;QAC5BC,EAAE,EAAED,CAAC,CAACC,EAAE;QACRP,IAAI,EAAEM,CAAC,CAACN,IAAI;QACZQ,WAAW,EAAEF,CAAC,CAACE,WAAW;QAC1BC,KAAK,EAAEH,CAAC,CAACG,KAAK;QACdC,MAAM,EAAEJ,CAAC,CAACK,YAAY,IAAI;MAC9B,CAAC,CAAC;IACN,CAAC;EACL;EAEAC,OAAOA,CAACC,GAAY,EAAqB;IACrC,MAAMV,IAAI,GAAGU,GAAwB;IACrC,OAAO;MACHT,OAAO,EAAED,IAAI,CAACC,OAAO,CAACC,GAAG,CAACC,CAAC,KAAK;QAC5BC,EAAE,EAAED,CAAC,CAACC,EAAE;QACRP,IAAI,EAAEM,CAAC,CAACN,IAAI;QACZQ,WAAW,EAAEF,CAAC,CAACE,WAAW;QAC1BC,KAAK,EAAEH,CAAC,CAACG,KAAK;QACdC,MAAM,EAAEJ,CAAC,CAACI,MAAM;QAChBC,YAAY,EAAE,EAAE;QAChBG,eAAe,EAAE;MACrB,CAAC,CAAC;IACN,CAAC;EACL;AACJ;AAEA,eAAehB,oCAAoC,CAACiB,oBAAoB,CAAC;EACrEC,cAAc,EAAEjB,0BAA0B;EAC1CkB,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Encryption } from "@webiny/api-core/features/encryption/index.js";
|
|
3
|
+
import { Masker } from "@webiny/api-core/features/masker/index.js";
|
|
4
|
+
import { AiPowerUpsSettingsGroupHandler } from "../../../api/features/shared/index.js";
|
|
5
|
+
import type { PersistedProviders, ProvidersSettings } from "./types.js";
|
|
6
|
+
declare class ProvidersHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {
|
|
7
|
+
private encryption;
|
|
8
|
+
private masker;
|
|
9
|
+
readonly name = "providers";
|
|
10
|
+
readonly inputSchema: z.ZodObject<{
|
|
11
|
+
presets: z.ZodArray<z.ZodObject<{
|
|
12
|
+
id: z.ZodString;
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
description: z.ZodOptional<z.ZodString>;
|
|
15
|
+
model: z.ZodString;
|
|
16
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
constructor(encryption: Encryption.Interface, masker: Masker.Interface);
|
|
20
|
+
mapFromStorage(persisted: unknown): ProvidersSettings;
|
|
21
|
+
mapToStorage(internal: unknown, existing: unknown | null): Promise<PersistedProviders>;
|
|
22
|
+
}
|
|
23
|
+
declare const _default: typeof ProvidersHandlerImpl & {
|
|
24
|
+
__abstraction: import("@webiny/di").Abstraction<import("../shared/abstractions.js").IAiPowerUpsSettingsGroupHandler>;
|
|
25
|
+
};
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Encryption } from "@webiny/api-core/features/encryption/index.js";
|
|
3
|
+
import { Masker } from "@webiny/api-core/features/masker/index.js";
|
|
4
|
+
import { AiPowerUpsSettingsGroupHandler } from "../shared/index.js";
|
|
5
|
+
const inputSchema = z.object({
|
|
6
|
+
presets: z.array(z.object({
|
|
7
|
+
id: z.string().min(1),
|
|
8
|
+
name: z.string().min(1),
|
|
9
|
+
description: z.string().optional(),
|
|
10
|
+
model: z.string().min(1),
|
|
11
|
+
apiKey: z.string().optional()
|
|
12
|
+
}))
|
|
13
|
+
});
|
|
14
|
+
class ProvidersHandlerImpl {
|
|
15
|
+
name = "providers";
|
|
16
|
+
inputSchema = inputSchema;
|
|
17
|
+
constructor(encryption, masker) {
|
|
18
|
+
this.encryption = encryption;
|
|
19
|
+
this.masker = masker;
|
|
20
|
+
}
|
|
21
|
+
mapFromStorage(persisted) {
|
|
22
|
+
if (!persisted || typeof persisted !== "object") {
|
|
23
|
+
return {
|
|
24
|
+
presets: []
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const data = persisted;
|
|
28
|
+
const presets = (data.presets ?? []).map(p => ({
|
|
29
|
+
id: p.id,
|
|
30
|
+
name: p.name,
|
|
31
|
+
description: p.description,
|
|
32
|
+
model: p.model,
|
|
33
|
+
apiKeyMasked: p.apiKeyMasked ?? "",
|
|
34
|
+
apiKeyEncrypted: p.apiKeyEncrypted ?? ""
|
|
35
|
+
}));
|
|
36
|
+
return {
|
|
37
|
+
presets
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
async mapToStorage(internal, existing) {
|
|
41
|
+
const input = internal;
|
|
42
|
+
const existingData = existing;
|
|
43
|
+
const existingPresets = existingData?.presets ?? [];
|
|
44
|
+
const presets = await Promise.all(input.presets.map(async preset => {
|
|
45
|
+
const existingMatch = existingPresets.find(ep => ep.id === preset.id);
|
|
46
|
+
let apiKeyEncrypted;
|
|
47
|
+
let apiKeyMasked;
|
|
48
|
+
if (!preset.apiKey || preset.apiKey === existingMatch?.apiKeyMasked) {
|
|
49
|
+
// Carry forward existing encrypted key
|
|
50
|
+
apiKeyEncrypted = existingMatch?.apiKeyEncrypted ?? "";
|
|
51
|
+
apiKeyMasked = existingMatch?.apiKeyMasked ?? "";
|
|
52
|
+
} else {
|
|
53
|
+
// New plaintext key — encrypt and mask
|
|
54
|
+
apiKeyEncrypted = this.encryption.encrypt(preset.apiKey);
|
|
55
|
+
apiKeyMasked = this.masker.mask(preset.apiKey, [8, 4]);
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
id: preset.id,
|
|
59
|
+
name: preset.name,
|
|
60
|
+
description: preset.description,
|
|
61
|
+
model: preset.model,
|
|
62
|
+
apiKeyEncrypted,
|
|
63
|
+
apiKeyMasked
|
|
64
|
+
};
|
|
65
|
+
}));
|
|
66
|
+
return {
|
|
67
|
+
presets
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export default AiPowerUpsSettingsGroupHandler.createImplementation({
|
|
72
|
+
implementation: ProvidersHandlerImpl,
|
|
73
|
+
dependencies: [Encryption, Masker]
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=ProvidersHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["z","Encryption","Masker","AiPowerUpsSettingsGroupHandler","inputSchema","object","presets","array","id","string","min","name","description","optional","model","apiKey","ProvidersHandlerImpl","constructor","encryption","masker","mapFromStorage","persisted","data","map","p","apiKeyMasked","apiKeyEncrypted","mapToStorage","internal","existing","input","existingData","existingPresets","Promise","all","preset","existingMatch","find","ep","encrypt","mask","createImplementation","implementation","dependencies"],"sources":["ProvidersHandler.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Encryption } from \"@webiny/api-core/features/encryption/index.js\";\nimport { Masker } from \"@webiny/api-core/features/masker/index.js\";\nimport { AiPowerUpsSettingsGroupHandler } from \"~/api/features/shared/index.js\";\nimport type { PersistedProviderPreset, PersistedProviders, ProvidersSettings } from \"./types.js\";\n\nconst inputSchema = z.object({\n presets: z.array(\n z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n model: z.string().min(1),\n apiKey: z.string().optional()\n })\n )\n});\n\nclass ProvidersHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {\n readonly name = \"providers\";\n readonly inputSchema = inputSchema;\n\n constructor(\n private encryption: Encryption.Interface,\n private masker: Masker.Interface\n ) {}\n\n mapFromStorage(persisted: unknown): ProvidersSettings {\n if (!persisted || typeof persisted !== \"object\") {\n return { presets: [] };\n }\n\n const data = persisted as PersistedProviders;\n const presets = (data.presets ?? []).map(p => ({\n id: p.id,\n name: p.name,\n description: p.description,\n model: p.model,\n apiKeyMasked: p.apiKeyMasked ?? \"\",\n apiKeyEncrypted: p.apiKeyEncrypted ?? \"\"\n }));\n\n return { presets };\n }\n\n async mapToStorage(internal: unknown, existing: unknown | null): Promise<PersistedProviders> {\n const input = internal as ProvidersSettings;\n const existingData = existing as ProvidersSettings | null;\n const existingPresets = existingData?.presets ?? [];\n\n const presets: PersistedProviderPreset[] = await Promise.all(\n input.presets.map(async preset => {\n const existingMatch = existingPresets.find(ep => ep.id === preset.id);\n\n let apiKeyEncrypted: string;\n let apiKeyMasked: string;\n\n if (!preset.apiKey || preset.apiKey === existingMatch?.apiKeyMasked) {\n // Carry forward existing encrypted key\n apiKeyEncrypted = existingMatch?.apiKeyEncrypted ?? \"\";\n apiKeyMasked = existingMatch?.apiKeyMasked ?? \"\";\n } else {\n // New plaintext key — encrypt and mask\n apiKeyEncrypted = this.encryption.encrypt(preset.apiKey);\n apiKeyMasked = this.masker.mask(preset.apiKey, [8, 4]);\n }\n\n return {\n id: preset.id,\n name: preset.name,\n description: preset.description,\n model: preset.model,\n apiKeyEncrypted,\n apiKeyMasked\n };\n })\n );\n\n return { presets };\n }\n}\n\nexport default AiPowerUpsSettingsGroupHandler.createImplementation({\n implementation: ProvidersHandlerImpl,\n dependencies: [Encryption, Masker]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import ProvidersHandler from "./ProvidersHandler.js";
|
|
3
|
+
import ProvidersGraphQLMapper from "./ProvidersGraphQLMapper.js";
|
|
4
|
+
export const ProvidersFeature = createFeature({
|
|
5
|
+
name: "AiPowerUpsProviders",
|
|
6
|
+
register(container) {
|
|
7
|
+
container.register(ProvidersHandler);
|
|
8
|
+
container.register(ProvidersGraphQLMapper);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","ProvidersHandler","ProvidersGraphQLMapper","ProvidersFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport ProvidersHandler from \"./ProvidersHandler.js\";\nimport ProvidersGraphQLMapper from \"./ProvidersGraphQLMapper.js\";\n\nexport const ProvidersFeature = createFeature({\n name: \"AiPowerUpsProviders\",\n register(container) {\n container.register(ProvidersHandler);\n container.register(ProvidersGraphQLMapper);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,gBAAgB;AACvB,OAAOC,sBAAsB;AAE7B,OAAO,MAAMC,gBAAgB,GAAGH,aAAa,CAAC;EAC1CI,IAAI,EAAE,qBAAqB;EAC3BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,gBAAgB,CAAC;IACpCK,SAAS,CAACD,QAAQ,CAACH,sBAAsB,CAAC;EAC9C;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { ProviderPreset, ProvidersSettings } from "./types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export type { ProviderPreset, ProvidersSettings } from \"./types.js\";\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
2
|
+
export interface ProviderPreset {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
model: string;
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
apiKeyMasked: string;
|
|
9
|
+
apiKeyEncrypted: string;
|
|
10
|
+
}
|
|
11
|
+
declare module "~/api/types.js" {
|
|
12
|
+
interface IAiPowerUpsSettings {
|
|
13
|
+
providers: {
|
|
14
|
+
presets: ProviderPreset[];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export type ProvidersSettings = IAiPowerUpsSettings["providers"];
|
|
19
|
+
export interface PersistedProviderPreset {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
model: string;
|
|
24
|
+
apiKeyEncrypted: string;
|
|
25
|
+
apiKeyMasked: string;
|
|
26
|
+
}
|
|
27
|
+
export interface PersistedProviders {
|
|
28
|
+
presets: PersistedProviderPreset[];
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IAiPowerUpsSettings } from \"~/api/types.js\";\n\nexport interface ProviderPreset {\n id: string;\n name: string;\n description?: string;\n model: string;\n apiKey?: string;\n apiKeyMasked: string;\n apiKeyEncrypted: string;\n}\n\ndeclare module \"~/api/types.js\" {\n interface IAiPowerUpsSettings {\n providers: {\n presets: ProviderPreset[];\n };\n }\n}\n\nexport type ProvidersSettings = IAiPowerUpsSettings[\"providers\"];\n\nexport interface PersistedProviderPreset {\n id: string;\n name: string;\n description?: string;\n model: string;\n apiKeyEncrypted: string;\n apiKeyMasked: string;\n}\n\nexport interface PersistedProviders {\n presets: PersistedProviderPreset[];\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiPowerUpsSettingsGroupHandler } from "../../../api/features/shared/index.js";
|
|
3
|
+
import type { PersistedReaderPersonas, ReaderPersonasSettings } from "./types.js";
|
|
4
|
+
declare class ReaderPersonasHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {
|
|
5
|
+
readonly name = "readerPersonas";
|
|
6
|
+
readonly inputSchema: z.ZodObject<{
|
|
7
|
+
presets: z.ZodArray<z.ZodObject<{
|
|
8
|
+
id: z.ZodString;
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
description: z.ZodString;
|
|
11
|
+
style: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
12
|
+
}, z.core.$strip>>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
mapFromStorage(persisted: unknown): ReaderPersonasSettings;
|
|
15
|
+
mapToStorage(internal: unknown): Promise<PersistedReaderPersonas>;
|
|
16
|
+
}
|
|
17
|
+
declare const _default: typeof ReaderPersonasHandlerImpl & {
|
|
18
|
+
__abstraction: import("@webiny/di").Abstraction<import("../shared/abstractions.js").IAiPowerUpsSettingsGroupHandler>;
|
|
19
|
+
};
|
|
20
|
+
export default _default;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiPowerUpsSettingsGroupHandler } from "../shared/index.js";
|
|
3
|
+
const inputSchema = z.object({
|
|
4
|
+
presets: z.array(z.object({
|
|
5
|
+
id: z.string().min(1),
|
|
6
|
+
name: z.string().min(1),
|
|
7
|
+
description: z.string().min(1),
|
|
8
|
+
style: z.string().nullish().optional()
|
|
9
|
+
}))
|
|
10
|
+
});
|
|
11
|
+
class ReaderPersonasHandlerImpl {
|
|
12
|
+
name = "readerPersonas";
|
|
13
|
+
inputSchema = inputSchema;
|
|
14
|
+
mapFromStorage(persisted) {
|
|
15
|
+
if (!persisted || typeof persisted !== "object") {
|
|
16
|
+
return {
|
|
17
|
+
presets: []
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const data = persisted;
|
|
21
|
+
return {
|
|
22
|
+
presets: data.presets ?? []
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async mapToStorage(internal) {
|
|
26
|
+
const input = internal;
|
|
27
|
+
return {
|
|
28
|
+
presets: input.presets.map(p => ({
|
|
29
|
+
id: p.id,
|
|
30
|
+
name: p.name,
|
|
31
|
+
description: p.description,
|
|
32
|
+
style: p.style
|
|
33
|
+
}))
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export default AiPowerUpsSettingsGroupHandler.createImplementation({
|
|
38
|
+
implementation: ReaderPersonasHandlerImpl,
|
|
39
|
+
dependencies: []
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=ReaderPersonasHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["z","AiPowerUpsSettingsGroupHandler","inputSchema","object","presets","array","id","string","min","name","description","style","nullish","optional","ReaderPersonasHandlerImpl","mapFromStorage","persisted","data","mapToStorage","internal","input","map","p","createImplementation","implementation","dependencies"],"sources":["ReaderPersonasHandler.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { AiPowerUpsSettingsGroupHandler } from \"~/api/features/shared/index.js\";\nimport type { PersistedReaderPersonas, ReaderPersonasSettings } from \"./types.js\";\n\nconst inputSchema = z.object({\n presets: z.array(\n z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n description: z.string().min(1),\n style: z.string().nullish().optional()\n })\n )\n});\n\nclass ReaderPersonasHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {\n readonly name = \"readerPersonas\";\n readonly inputSchema = inputSchema;\n\n mapFromStorage(persisted: unknown): ReaderPersonasSettings {\n if (!persisted || typeof persisted !== \"object\") {\n return { presets: [] };\n }\n\n const data = persisted as PersistedReaderPersonas;\n return { presets: data.presets ?? [] };\n }\n\n async mapToStorage(internal: unknown): Promise<PersistedReaderPersonas> {\n const input = internal as ReaderPersonasSettings;\n return {\n presets: input.presets.map(p => ({\n id: p.id,\n name: p.name,\n description: p.description,\n style: p.style\n }))\n };\n }\n}\n\nexport default AiPowerUpsSettingsGroupHandler.createImplementation({\n implementation: ReaderPersonasHandlerImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AACvB,SAASC,8BAA8B;AAGvC,MAAMC,WAAW,GAAGF,CAAC,CAACG,MAAM,CAAC;EACzBC,OAAO,EAAEJ,CAAC,CAACK,KAAK,CACZL,CAAC,CAACG,MAAM,CAAC;IACLG,EAAE,EAAEN,CAAC,CAACO,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;IACrBC,IAAI,EAAET,CAAC,CAACO,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;IACvBE,WAAW,EAAEV,CAAC,CAACO,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;IAC9BG,KAAK,EAAEX,CAAC,CAACO,MAAM,CAAC,CAAC,CAACK,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC;EACzC,CAAC,CACL;AACJ,CAAC,CAAC;AAEF,MAAMC,yBAAyB,CAAqD;EACvEL,IAAI,GAAG,gBAAgB;EACvBP,WAAW,GAAGA,WAAW;EAElCa,cAAcA,CAACC,SAAkB,EAA0B;IACvD,IAAI,CAACA,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;MAC7C,OAAO;QAAEZ,OAAO,EAAE;MAAG,CAAC;IAC1B;IAEA,MAAMa,IAAI,GAAGD,SAAoC;IACjD,OAAO;MAAEZ,OAAO,EAAEa,IAAI,CAACb,OAAO,IAAI;IAAG,CAAC;EAC1C;EAEA,MAAMc,YAAYA,CAACC,QAAiB,EAAoC;IACpE,MAAMC,KAAK,GAAGD,QAAkC;IAChD,OAAO;MACHf,OAAO,EAAEgB,KAAK,CAAChB,OAAO,CAACiB,GAAG,CAACC,CAAC,KAAK;QAC7BhB,EAAE,EAAEgB,CAAC,CAAChB,EAAE;QACRG,IAAI,EAAEa,CAAC,CAACb,IAAI;QACZC,WAAW,EAAEY,CAAC,CAACZ,WAAW;QAC1BC,KAAK,EAAEW,CAAC,CAACX;MACb,CAAC,CAAC;IACN,CAAC;EACL;AACJ;AAEA,eAAeV,8BAA8B,CAACsB,oBAAoB,CAAC;EAC/DC,cAAc,EAAEV,yBAAyB;EACzCW,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import ReaderPersonasHandler from "./ReaderPersonasHandler.js";
|
|
3
|
+
export const ReaderPersonasFeature = createFeature({
|
|
4
|
+
name: "AiPowerUpsReaderPersonas",
|
|
5
|
+
register(container) {
|
|
6
|
+
container.register(ReaderPersonasHandler);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","ReaderPersonasHandler","ReaderPersonasFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport ReaderPersonasHandler from \"./ReaderPersonasHandler.js\";\n\nexport const ReaderPersonasFeature = createFeature({\n name: \"AiPowerUpsReaderPersonas\",\n register(container) {\n container.register(ReaderPersonasHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,qBAAqB;AAE5B,OAAO,MAAMC,qBAAqB,GAAGF,aAAa,CAAC;EAC/CG,IAAI,EAAE,0BAA0B;EAChCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,qBAAqB,CAAC;EAC7C;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export type { ReaderPersonaPreset, ReaderPersonasSettings } from \"./types.js\";\nimport \"~/api/features/ReaderPersonas/types.js\";\n"],"mappings":"AACA","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
2
|
+
export interface ReaderPersonaPreset {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
style?: string;
|
|
7
|
+
}
|
|
8
|
+
declare module "~/api/types.js" {
|
|
9
|
+
interface IAiPowerUpsSettings {
|
|
10
|
+
readerPersonas: {
|
|
11
|
+
presets: ReaderPersonaPreset[];
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export type ReaderPersonasSettings = IAiPowerUpsSettings["readerPersonas"];
|
|
16
|
+
export interface PersistedReaderPersonaPreset {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
style?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface PersistedReaderPersonas {
|
|
23
|
+
presets: PersistedReaderPersonaPreset[];
|
|
24
|
+
}
|