@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.
Files changed (316) hide show
  1. package/AiPowerups.d.ts +2 -0
  2. package/AiPowerups.js +12 -0
  3. package/AiPowerups.js.map +1 -0
  4. package/LICENSE +36 -0
  5. package/README.md +11 -0
  6. package/admin/Extension.d.ts +2 -0
  7. package/admin/Extension.js +39 -0
  8. package/admin/Extension.js.map +1 -0
  9. package/admin/domain/errors.d.ts +12 -0
  10. package/admin/domain/errors.js +22 -0
  11. package/admin/domain/errors.js.map +1 -0
  12. package/admin/features/feature.d.ts +1 -0
  13. package/admin/features/feature.js +21 -0
  14. package/admin/features/feature.js.map +1 -0
  15. package/admin/features/generatePageContent/GeneratePageContentGateway.d.ts +12 -0
  16. package/admin/features/generatePageContent/GeneratePageContentGateway.js +42 -0
  17. package/admin/features/generatePageContent/GeneratePageContentGateway.js.map +1 -0
  18. package/admin/features/generatePageContent/GeneratePageContentUseCase.d.ts +11 -0
  19. package/admin/features/generatePageContent/GeneratePageContentUseCase.js +15 -0
  20. package/admin/features/generatePageContent/GeneratePageContentUseCase.js.map +1 -0
  21. package/admin/features/generatePageContent/abstractions.d.ts +24 -0
  22. package/admin/features/generatePageContent/abstractions.js +5 -0
  23. package/admin/features/generatePageContent/abstractions.js.map +1 -0
  24. package/admin/features/generatePageContent/feature.d.ts +1 -0
  25. package/admin/features/generatePageContent/feature.js +12 -0
  26. package/admin/features/generatePageContent/feature.js.map +1 -0
  27. package/admin/features/generatePageContent/index.d.ts +3 -0
  28. package/admin/features/generatePageContent/index.js +4 -0
  29. package/admin/features/generatePageContent/index.js.map +1 -0
  30. package/admin/features/listModels/ListModelsGateway.d.ts +12 -0
  31. package/admin/features/listModels/ListModelsGateway.js +31 -0
  32. package/admin/features/listModels/ListModelsGateway.js.map +1 -0
  33. package/admin/features/listModels/ListModelsRepository.d.ts +13 -0
  34. package/admin/features/listModels/ListModelsRepository.js +24 -0
  35. package/admin/features/listModels/ListModelsRepository.js.map +1 -0
  36. package/admin/features/listModels/ListModelsUseCase.d.ts +10 -0
  37. package/admin/features/listModels/ListModelsUseCase.js +15 -0
  38. package/admin/features/listModels/ListModelsUseCase.js.map +1 -0
  39. package/admin/features/listModels/abstractions.d.ts +28 -0
  40. package/admin/features/listModels/abstractions.js +6 -0
  41. package/admin/features/listModels/abstractions.js.map +1 -0
  42. package/admin/features/listModels/feature.d.ts +3 -0
  43. package/admin/features/listModels/feature.js +20 -0
  44. package/admin/features/listModels/feature.js.map +1 -0
  45. package/admin/features/listModels/index.d.ts +2 -0
  46. package/admin/features/listModels/index.js +4 -0
  47. package/admin/features/listModels/index.js.map +1 -0
  48. package/admin/features/settings/getSettings/GetSettingsGateway.d.ts +12 -0
  49. package/admin/features/settings/getSettings/GetSettingsGateway.js +26 -0
  50. package/admin/features/settings/getSettings/GetSettingsGateway.js.map +1 -0
  51. package/admin/features/settings/getSettings/GetSettingsRepository.d.ts +14 -0
  52. package/admin/features/settings/getSettings/GetSettingsRepository.js +31 -0
  53. package/admin/features/settings/getSettings/GetSettingsRepository.js.map +1 -0
  54. package/admin/features/settings/getSettings/GetSettingsUseCase.d.ts +11 -0
  55. package/admin/features/settings/getSettings/GetSettingsUseCase.js +15 -0
  56. package/admin/features/settings/getSettings/GetSettingsUseCase.js.map +1 -0
  57. package/admin/features/settings/getSettings/abstractions.d.ts +22 -0
  58. package/admin/features/settings/getSettings/abstractions.js +6 -0
  59. package/admin/features/settings/getSettings/abstractions.js.map +1 -0
  60. package/admin/features/settings/getSettings/feature.d.ts +3 -0
  61. package/admin/features/settings/getSettings/feature.js +20 -0
  62. package/admin/features/settings/getSettings/feature.js.map +1 -0
  63. package/admin/features/settings/getSettings/index.d.ts +2 -0
  64. package/admin/features/settings/getSettings/index.js +4 -0
  65. package/admin/features/settings/getSettings/index.js.map +1 -0
  66. package/admin/features/settings/shared/SettingsCache.d.ts +10 -0
  67. package/admin/features/settings/shared/SettingsCache.js +18 -0
  68. package/admin/features/settings/shared/SettingsCache.js.map +1 -0
  69. package/admin/features/settings/shared/abstractions.d.ts +50 -0
  70. package/admin/features/settings/shared/abstractions.js +4 -0
  71. package/admin/features/settings/shared/abstractions.js.map +1 -0
  72. package/admin/features/settings/shared/feature.d.ts +3 -0
  73. package/admin/features/settings/shared/feature.js +16 -0
  74. package/admin/features/settings/shared/feature.js.map +1 -0
  75. package/admin/features/settings/shared/index.d.ts +2 -0
  76. package/admin/features/settings/shared/index.js +4 -0
  77. package/admin/features/settings/shared/index.js.map +1 -0
  78. package/admin/features/settings/updateSettings/UpdateSettingsGateway.d.ts +12 -0
  79. package/admin/features/settings/updateSettings/UpdateSettingsGateway.js +44 -0
  80. package/admin/features/settings/updateSettings/UpdateSettingsGateway.js.map +1 -0
  81. package/admin/features/settings/updateSettings/UpdateSettingsRepository.d.ts +13 -0
  82. package/admin/features/settings/updateSettings/UpdateSettingsRepository.js +19 -0
  83. package/admin/features/settings/updateSettings/UpdateSettingsRepository.js.map +1 -0
  84. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.d.ts +11 -0
  85. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js +15 -0
  86. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js.map +1 -0
  87. package/admin/features/settings/updateSettings/abstractions.d.ts +22 -0
  88. package/admin/features/settings/updateSettings/abstractions.js +6 -0
  89. package/admin/features/settings/updateSettings/abstractions.js.map +1 -0
  90. package/admin/features/settings/updateSettings/feature.d.ts +3 -0
  91. package/admin/features/settings/updateSettings/feature.js +20 -0
  92. package/admin/features/settings/updateSettings/feature.js.map +1 -0
  93. package/admin/features/settings/updateSettings/index.d.ts +2 -0
  94. package/admin/features/settings/updateSettings/index.js +4 -0
  95. package/admin/features/settings/updateSettings/index.js.map +1 -0
  96. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.d.ts +4 -0
  97. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js +53 -0
  98. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js.map +1 -0
  99. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.d.ts +26 -0
  100. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js +158 -0
  101. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js.map +1 -0
  102. package/admin/presentation/AiPowerUpsSettings/abstractions.d.ts +18 -0
  103. package/admin/presentation/AiPowerUpsSettings/abstractions.js +4 -0
  104. package/admin/presentation/AiPowerUpsSettings/abstractions.js.map +1 -0
  105. package/admin/presentation/AiPowerUpsSettings/feature.d.ts +3 -0
  106. package/admin/presentation/AiPowerUpsSettings/feature.js +24 -0
  107. package/admin/presentation/AiPowerUpsSettings/feature.js.map +1 -0
  108. package/admin/presentation/AiPowerUpsSettings/index.d.ts +3 -0
  109. package/admin/presentation/AiPowerUpsSettings/index.js +5 -0
  110. package/admin/presentation/AiPowerUpsSettings/index.js.map +1 -0
  111. package/admin/presentation/AiPowerUpsSettings/settingsGroup.d.ts +17 -0
  112. package/admin/presentation/AiPowerUpsSettings/settingsGroup.js +4 -0
  113. package/admin/presentation/AiPowerUpsSettings/settingsGroup.js.map +1 -0
  114. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.d.ts +4 -0
  115. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js +28 -0
  116. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js.map +1 -0
  117. package/admin/presentation/ProjectsSettings.d.ts +11 -0
  118. package/admin/presentation/ProjectsSettings.js +55 -0
  119. package/admin/presentation/ProjectsSettings.js.map +1 -0
  120. package/admin/presentation/ProvidersSettings.d.ts +16 -0
  121. package/admin/presentation/ProvidersSettings.js +40 -0
  122. package/admin/presentation/ProvidersSettings.js.map +1 -0
  123. package/admin/presentation/ReaderPersonasSettings.d.ts +11 -0
  124. package/admin/presentation/ReaderPersonasSettings.js +32 -0
  125. package/admin/presentation/ReaderPersonasSettings.js.map +1 -0
  126. package/admin/presentation/WbContentGeneration/Extension.d.ts +2 -0
  127. package/admin/presentation/WbContentGeneration/Extension.js +23 -0
  128. package/admin/presentation/WbContentGeneration/Extension.js.map +1 -0
  129. package/admin/presentation/WbContentGeneration/GenerateContentButton.d.ts +2 -0
  130. package/admin/presentation/WbContentGeneration/GenerateContentButton.js +24 -0
  131. package/admin/presentation/WbContentGeneration/GenerateContentButton.js.map +1 -0
  132. package/admin/presentation/WbContentGeneration/GenerateContentDialog.d.ts +21 -0
  133. package/admin/presentation/WbContentGeneration/GenerateContentDialog.js +107 -0
  134. package/admin/presentation/WbContentGeneration/GenerateContentDialog.js.map +1 -0
  135. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.d.ts +38 -0
  136. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js +231 -0
  137. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js.map +1 -0
  138. package/admin/presentation/WbContentGeneration/PROCESS_IDEA.md +190 -0
  139. package/admin/presentation/WbContentGeneration/abstractions.d.ts +30 -0
  140. package/admin/presentation/WbContentGeneration/abstractions.js +4 -0
  141. package/admin/presentation/WbContentGeneration/abstractions.js.map +1 -0
  142. package/admin/presentation/WbContentGeneration/decompressGzipBase64.d.ts +1 -0
  143. package/admin/presentation/WbContentGeneration/decompressGzipBase64.js +14 -0
  144. package/admin/presentation/WbContentGeneration/decompressGzipBase64.js.map +1 -0
  145. package/admin/presentation/WbContentGeneration/feature.d.ts +3 -0
  146. package/admin/presentation/WbContentGeneration/feature.js +16 -0
  147. package/admin/presentation/WbContentGeneration/feature.js.map +1 -0
  148. package/admin/presentation/WriterPersonasSettings.d.ts +11 -0
  149. package/admin/presentation/WriterPersonasSettings.js +32 -0
  150. package/admin/presentation/WriterPersonasSettings.js.map +1 -0
  151. package/admin/routes.d.ts +4 -0
  152. package/admin/routes.js +9 -0
  153. package/admin/routes.js.map +1 -0
  154. package/api/Extension.d.ts +4 -0
  155. package/api/Extension.js +36 -0
  156. package/api/Extension.js.map +1 -0
  157. package/api/constants.d.ts +1 -0
  158. package/api/constants.js +3 -0
  159. package/api/constants.js.map +1 -0
  160. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.d.ts +11 -0
  161. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js +28 -0
  162. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js.map +1 -0
  163. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.d.ts +34 -0
  164. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js +132 -0
  165. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js.map +1 -0
  166. package/api/features/AiImageEnrichment/feature.d.ts +4 -0
  167. package/api/features/AiImageEnrichment/feature.js +12 -0
  168. package/api/features/AiImageEnrichment/feature.js.map +1 -0
  169. package/api/features/AiPromptContext/AiPromptContextBuilder.d.ts +19 -0
  170. package/api/features/AiPromptContext/AiPromptContextBuilder.js +154 -0
  171. package/api/features/AiPromptContext/AiPromptContextBuilder.js.map +1 -0
  172. package/api/features/AiPromptContext/ProjectSection.d.ts +4 -0
  173. package/api/features/AiPromptContext/ProjectSection.js +22 -0
  174. package/api/features/AiPromptContext/ProjectSection.js.map +1 -0
  175. package/api/features/AiPromptContext/ReaderPersonaSection.d.ts +4 -0
  176. package/api/features/AiPromptContext/ReaderPersonaSection.js +11 -0
  177. package/api/features/AiPromptContext/ReaderPersonaSection.js.map +1 -0
  178. package/api/features/AiPromptContext/WriterPersonaSection.d.ts +4 -0
  179. package/api/features/AiPromptContext/WriterPersonaSection.js +11 -0
  180. package/api/features/AiPromptContext/WriterPersonaSection.js.map +1 -0
  181. package/api/features/AiPromptContext/abstractions.d.ts +37 -0
  182. package/api/features/AiPromptContext/abstractions.js +4 -0
  183. package/api/features/AiPromptContext/abstractions.js.map +1 -0
  184. package/api/features/AiPromptContext/feature.d.ts +4 -0
  185. package/api/features/AiPromptContext/feature.js +10 -0
  186. package/api/features/AiPromptContext/feature.js.map +1 -0
  187. package/api/features/AiPromptContext/index.d.ts +1 -0
  188. package/api/features/AiPromptContext/index.js +3 -0
  189. package/api/features/AiPromptContext/index.js.map +1 -0
  190. package/api/features/GetSettings/GetSettingsRepository.d.ts +16 -0
  191. package/api/features/GetSettings/GetSettingsRepository.js +40 -0
  192. package/api/features/GetSettings/GetSettingsRepository.js.map +1 -0
  193. package/api/features/GetSettings/GetSettingsUseCase.d.ts +10 -0
  194. package/api/features/GetSettings/GetSettingsUseCase.js +15 -0
  195. package/api/features/GetSettings/GetSettingsUseCase.js.map +1 -0
  196. package/api/features/GetSettings/abstractions.d.ts +16 -0
  197. package/api/features/GetSettings/abstractions.js +5 -0
  198. package/api/features/GetSettings/abstractions.js.map +1 -0
  199. package/api/features/GetSettings/feature.d.ts +4 -0
  200. package/api/features/GetSettings/feature.js +12 -0
  201. package/api/features/GetSettings/feature.js.map +1 -0
  202. package/api/features/GetSettings/index.d.ts +1 -0
  203. package/api/features/GetSettings/index.js +3 -0
  204. package/api/features/GetSettings/index.js.map +1 -0
  205. package/api/features/Projects/ProjectsHandler.d.ts +31 -0
  206. package/api/features/Projects/ProjectsHandler.js +101 -0
  207. package/api/features/Projects/ProjectsHandler.js.map +1 -0
  208. package/api/features/Projects/feature.d.ts +4 -0
  209. package/api/features/Projects/feature.js +10 -0
  210. package/api/features/Projects/feature.js.map +1 -0
  211. package/api/features/Projects/types.d.ts +50 -0
  212. package/api/features/Projects/types.js +3 -0
  213. package/api/features/Projects/types.js.map +1 -0
  214. package/api/features/Providers/ProvidersGraphQLMapper.d.ts +21 -0
  215. package/api/features/Providers/ProvidersGraphQLMapper.js +36 -0
  216. package/api/features/Providers/ProvidersGraphQLMapper.js.map +1 -0
  217. package/api/features/Providers/ProvidersHandler.d.ts +26 -0
  218. package/api/features/Providers/ProvidersHandler.js +76 -0
  219. package/api/features/Providers/ProvidersHandler.js.map +1 -0
  220. package/api/features/Providers/feature.d.ts +4 -0
  221. package/api/features/Providers/feature.js +12 -0
  222. package/api/features/Providers/feature.js.map +1 -0
  223. package/api/features/Providers/index.d.ts +1 -0
  224. package/api/features/Providers/index.js +3 -0
  225. package/api/features/Providers/index.js.map +1 -0
  226. package/api/features/Providers/types.d.ts +29 -0
  227. package/api/features/Providers/types.js +3 -0
  228. package/api/features/Providers/types.js.map +1 -0
  229. package/api/features/ReaderPersonas/ReaderPersonasHandler.d.ts +20 -0
  230. package/api/features/ReaderPersonas/ReaderPersonasHandler.js +42 -0
  231. package/api/features/ReaderPersonas/ReaderPersonasHandler.js.map +1 -0
  232. package/api/features/ReaderPersonas/feature.d.ts +4 -0
  233. package/api/features/ReaderPersonas/feature.js +10 -0
  234. package/api/features/ReaderPersonas/feature.js.map +1 -0
  235. package/api/features/ReaderPersonas/index.d.ts +2 -0
  236. package/api/features/ReaderPersonas/index.js +3 -0
  237. package/api/features/ReaderPersonas/index.js.map +1 -0
  238. package/api/features/ReaderPersonas/types.d.ts +24 -0
  239. package/api/features/ReaderPersonas/types.js +3 -0
  240. package/api/features/ReaderPersonas/types.js.map +1 -0
  241. package/api/features/UpdateSettings/UpdateSettingsRepository.d.ts +16 -0
  242. package/api/features/UpdateSettings/UpdateSettingsRepository.js +77 -0
  243. package/api/features/UpdateSettings/UpdateSettingsRepository.js.map +1 -0
  244. package/api/features/UpdateSettings/UpdateSettingsUseCase.d.ts +13 -0
  245. package/api/features/UpdateSettings/UpdateSettingsUseCase.js +28 -0
  246. package/api/features/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  247. package/api/features/UpdateSettings/abstractions.d.ts +36 -0
  248. package/api/features/UpdateSettings/abstractions.js +10 -0
  249. package/api/features/UpdateSettings/abstractions.js.map +1 -0
  250. package/api/features/UpdateSettings/errors.d.ts +10 -0
  251. package/api/features/UpdateSettings/errors.js +14 -0
  252. package/api/features/UpdateSettings/errors.js.map +1 -0
  253. package/api/features/UpdateSettings/events.d.ts +10 -0
  254. package/api/features/UpdateSettings/events.js +16 -0
  255. package/api/features/UpdateSettings/events.js.map +1 -0
  256. package/api/features/UpdateSettings/feature.d.ts +4 -0
  257. package/api/features/UpdateSettings/feature.js +12 -0
  258. package/api/features/UpdateSettings/feature.js.map +1 -0
  259. package/api/features/UpdateSettings/index.d.ts +1 -0
  260. package/api/features/UpdateSettings/index.js +3 -0
  261. package/api/features/UpdateSettings/index.js.map +1 -0
  262. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.d.ts +33 -0
  263. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js +76 -0
  264. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js.map +1 -0
  265. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.d.ts +21 -0
  266. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js +79 -0
  267. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js.map +1 -0
  268. package/api/features/WbGeneratePageContent/abstractions.d.ts +18 -0
  269. package/api/features/WbGeneratePageContent/abstractions.js +4 -0
  270. package/api/features/WbGeneratePageContent/abstractions.js.map +1 -0
  271. package/api/features/WbGeneratePageContent/buildPrompt.d.ts +1 -0
  272. package/api/features/WbGeneratePageContent/buildPrompt.js +142 -0
  273. package/api/features/WbGeneratePageContent/buildPrompt.js.map +1 -0
  274. package/api/features/WbGeneratePageContent/feature.d.ts +4 -0
  275. package/api/features/WbGeneratePageContent/feature.js +12 -0
  276. package/api/features/WbGeneratePageContent/feature.js.map +1 -0
  277. package/api/features/WbGeneratePageContent/index.d.ts +1 -0
  278. package/api/features/WbGeneratePageContent/index.js +3 -0
  279. package/api/features/WbGeneratePageContent/index.js.map +1 -0
  280. package/api/features/WriterPersonas/WriterPersonasHandler.d.ts +20 -0
  281. package/api/features/WriterPersonas/WriterPersonasHandler.js +42 -0
  282. package/api/features/WriterPersonas/WriterPersonasHandler.js.map +1 -0
  283. package/api/features/WriterPersonas/feature.d.ts +4 -0
  284. package/api/features/WriterPersonas/feature.js +10 -0
  285. package/api/features/WriterPersonas/feature.js.map +1 -0
  286. package/api/features/WriterPersonas/index.d.ts +2 -0
  287. package/api/features/WriterPersonas/index.js +3 -0
  288. package/api/features/WriterPersonas/index.js.map +1 -0
  289. package/api/features/WriterPersonas/types.d.ts +24 -0
  290. package/api/features/WriterPersonas/types.js +3 -0
  291. package/api/features/WriterPersonas/types.js.map +1 -0
  292. package/api/features/shared/SettingsCache.d.ts +12 -0
  293. package/api/features/shared/SettingsCache.js +19 -0
  294. package/api/features/shared/SettingsCache.js.map +1 -0
  295. package/api/features/shared/abstractions.d.ts +33 -0
  296. package/api/features/shared/abstractions.js +6 -0
  297. package/api/features/shared/abstractions.js.map +1 -0
  298. package/api/features/shared/index.d.ts +3 -0
  299. package/api/features/shared/index.js +5 -0
  300. package/api/features/shared/index.js.map +1 -0
  301. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.d.ts +13 -0
  302. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js +35 -0
  303. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js.map +1 -0
  304. package/api/graphql/BaseGraphQLSchema.d.ts +8 -0
  305. package/api/graphql/BaseGraphQLSchema.js +141 -0
  306. package/api/graphql/BaseGraphQLSchema.js.map +1 -0
  307. package/api/graphql/abstractions.d.ts +9 -0
  308. package/api/graphql/abstractions.js +4 -0
  309. package/api/graphql/abstractions.js.map +1 -0
  310. package/api/types.d.ts +5 -0
  311. package/api/types.js +7 -0
  312. package/api/types.js.map +1 -0
  313. package/index.d.ts +1 -0
  314. package/index.js +3 -0
  315. package/index.js.map +1 -0
  316. 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,4 @@
1
+ export declare const ProjectsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -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,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -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,4 @@
1
+ export declare const ProvidersFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -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,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -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,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -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,4 @@
1
+ export declare const ReaderPersonasFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -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,2 @@
1
+ export type { ReaderPersonaPreset, ReaderPersonasSettings } from "./types.js";
2
+ import "~/api/features/ReaderPersonas/types.js";
@@ -0,0 +1,3 @@
1
+ import "./types.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -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
+ }