@webiny/ai-powerups 0.0.0-unstable.7be00a75a9

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 (311) hide show
  1. package/AiPowerups.d.ts +2 -0
  2. package/AiPowerups.js +11 -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 +33 -0
  8. package/admin/Extension.js.map +1 -0
  9. package/admin/domain/errors.d.ts +12 -0
  10. package/admin/domain/errors.js +21 -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 +22 -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 +45 -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 +18 -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 +6 -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 +13 -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 +2 -0
  29. package/admin/features/listModels/ListModelsGateway.d.ts +12 -0
  30. package/admin/features/listModels/ListModelsGateway.js +34 -0
  31. package/admin/features/listModels/ListModelsGateway.js.map +1 -0
  32. package/admin/features/listModels/ListModelsRepository.d.ts +13 -0
  33. package/admin/features/listModels/ListModelsRepository.js +27 -0
  34. package/admin/features/listModels/ListModelsRepository.js.map +1 -0
  35. package/admin/features/listModels/ListModelsUseCase.d.ts +10 -0
  36. package/admin/features/listModels/ListModelsUseCase.js +18 -0
  37. package/admin/features/listModels/ListModelsUseCase.js.map +1 -0
  38. package/admin/features/listModels/abstractions.d.ts +28 -0
  39. package/admin/features/listModels/abstractions.js +7 -0
  40. package/admin/features/listModels/abstractions.js.map +1 -0
  41. package/admin/features/listModels/feature.d.ts +3 -0
  42. package/admin/features/listModels/feature.js +21 -0
  43. package/admin/features/listModels/feature.js.map +1 -0
  44. package/admin/features/listModels/index.d.ts +2 -0
  45. package/admin/features/listModels/index.js +2 -0
  46. package/admin/features/settings/getSettings/GetSettingsGateway.d.ts +12 -0
  47. package/admin/features/settings/getSettings/GetSettingsGateway.js +29 -0
  48. package/admin/features/settings/getSettings/GetSettingsGateway.js.map +1 -0
  49. package/admin/features/settings/getSettings/GetSettingsRepository.d.ts +14 -0
  50. package/admin/features/settings/getSettings/GetSettingsRepository.js +31 -0
  51. package/admin/features/settings/getSettings/GetSettingsRepository.js.map +1 -0
  52. package/admin/features/settings/getSettings/GetSettingsUseCase.d.ts +11 -0
  53. package/admin/features/settings/getSettings/GetSettingsUseCase.js +18 -0
  54. package/admin/features/settings/getSettings/GetSettingsUseCase.js.map +1 -0
  55. package/admin/features/settings/getSettings/abstractions.d.ts +22 -0
  56. package/admin/features/settings/getSettings/abstractions.js +7 -0
  57. package/admin/features/settings/getSettings/abstractions.js.map +1 -0
  58. package/admin/features/settings/getSettings/feature.d.ts +3 -0
  59. package/admin/features/settings/getSettings/feature.js +21 -0
  60. package/admin/features/settings/getSettings/feature.js.map +1 -0
  61. package/admin/features/settings/getSettings/index.d.ts +2 -0
  62. package/admin/features/settings/getSettings/index.js +2 -0
  63. package/admin/features/settings/shared/SettingsCache.d.ts +10 -0
  64. package/admin/features/settings/shared/SettingsCache.js +19 -0
  65. package/admin/features/settings/shared/SettingsCache.js.map +1 -0
  66. package/admin/features/settings/shared/abstractions.d.ts +50 -0
  67. package/admin/features/settings/shared/abstractions.js +5 -0
  68. package/admin/features/settings/shared/abstractions.js.map +1 -0
  69. package/admin/features/settings/shared/feature.d.ts +3 -0
  70. package/admin/features/settings/shared/feature.js +17 -0
  71. package/admin/features/settings/shared/feature.js.map +1 -0
  72. package/admin/features/settings/shared/index.d.ts +2 -0
  73. package/admin/features/settings/shared/index.js +2 -0
  74. package/admin/features/settings/updateSettings/UpdateSettingsGateway.d.ts +12 -0
  75. package/admin/features/settings/updateSettings/UpdateSettingsGateway.js +45 -0
  76. package/admin/features/settings/updateSettings/UpdateSettingsGateway.js.map +1 -0
  77. package/admin/features/settings/updateSettings/UpdateSettingsRepository.d.ts +13 -0
  78. package/admin/features/settings/updateSettings/UpdateSettingsRepository.js +23 -0
  79. package/admin/features/settings/updateSettings/UpdateSettingsRepository.js.map +1 -0
  80. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.d.ts +11 -0
  81. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js +18 -0
  82. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js.map +1 -0
  83. package/admin/features/settings/updateSettings/abstractions.d.ts +22 -0
  84. package/admin/features/settings/updateSettings/abstractions.js +7 -0
  85. package/admin/features/settings/updateSettings/abstractions.js.map +1 -0
  86. package/admin/features/settings/updateSettings/feature.d.ts +3 -0
  87. package/admin/features/settings/updateSettings/feature.js +21 -0
  88. package/admin/features/settings/updateSettings/feature.js.map +1 -0
  89. package/admin/features/settings/updateSettings/index.d.ts +2 -0
  90. package/admin/features/settings/updateSettings/index.js +2 -0
  91. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.d.ts +4 -0
  92. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js +50 -0
  93. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js.map +1 -0
  94. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.d.ts +26 -0
  95. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js +148 -0
  96. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js.map +1 -0
  97. package/admin/presentation/AiPowerUpsSettings/abstractions.d.ts +18 -0
  98. package/admin/presentation/AiPowerUpsSettings/abstractions.js +5 -0
  99. package/admin/presentation/AiPowerUpsSettings/abstractions.js.map +1 -0
  100. package/admin/presentation/AiPowerUpsSettings/feature.d.ts +3 -0
  101. package/admin/presentation/AiPowerUpsSettings/feature.js +25 -0
  102. package/admin/presentation/AiPowerUpsSettings/feature.js.map +1 -0
  103. package/admin/presentation/AiPowerUpsSettings/index.d.ts +3 -0
  104. package/admin/presentation/AiPowerUpsSettings/index.js +3 -0
  105. package/admin/presentation/AiPowerUpsSettings/settingsGroup.d.ts +17 -0
  106. package/admin/presentation/AiPowerUpsSettings/settingsGroup.js +5 -0
  107. package/admin/presentation/AiPowerUpsSettings/settingsGroup.js.map +1 -0
  108. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.d.ts +4 -0
  109. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js +27 -0
  110. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js.map +1 -0
  111. package/admin/presentation/ProjectsSettings.d.ts +11 -0
  112. package/admin/presentation/ProjectsSettings.js +56 -0
  113. package/admin/presentation/ProjectsSettings.js.map +1 -0
  114. package/admin/presentation/ProvidersSettings.d.ts +16 -0
  115. package/admin/presentation/ProvidersSettings.js +46 -0
  116. package/admin/presentation/ProvidersSettings.js.map +1 -0
  117. package/admin/presentation/ReaderPersonasSettings.d.ts +11 -0
  118. package/admin/presentation/ReaderPersonasSettings.js +37 -0
  119. package/admin/presentation/ReaderPersonasSettings.js.map +1 -0
  120. package/admin/presentation/WbContentGeneration/Extension.d.ts +2 -0
  121. package/admin/presentation/WbContentGeneration/Extension.js +22 -0
  122. package/admin/presentation/WbContentGeneration/Extension.js.map +1 -0
  123. package/admin/presentation/WbContentGeneration/GenerateContentButton.d.ts +2 -0
  124. package/admin/presentation/WbContentGeneration/GenerateContentButton.js +19 -0
  125. package/admin/presentation/WbContentGeneration/GenerateContentButton.js.map +1 -0
  126. package/admin/presentation/WbContentGeneration/GenerateContentDialog.d.ts +21 -0
  127. package/admin/presentation/WbContentGeneration/GenerateContentDialog.js +105 -0
  128. package/admin/presentation/WbContentGeneration/GenerateContentDialog.js.map +1 -0
  129. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.d.ts +38 -0
  130. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js +228 -0
  131. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js.map +1 -0
  132. package/admin/presentation/WbContentGeneration/PROCESS_IDEA.md +190 -0
  133. package/admin/presentation/WbContentGeneration/abstractions.d.ts +30 -0
  134. package/admin/presentation/WbContentGeneration/abstractions.js +5 -0
  135. package/admin/presentation/WbContentGeneration/abstractions.js.map +1 -0
  136. package/admin/presentation/WbContentGeneration/decompressGzipBase64.d.ts +1 -0
  137. package/admin/presentation/WbContentGeneration/decompressGzipBase64.js +13 -0
  138. package/admin/presentation/WbContentGeneration/decompressGzipBase64.js.map +1 -0
  139. package/admin/presentation/WbContentGeneration/feature.d.ts +3 -0
  140. package/admin/presentation/WbContentGeneration/feature.js +17 -0
  141. package/admin/presentation/WbContentGeneration/feature.js.map +1 -0
  142. package/admin/presentation/WriterPersonasSettings.d.ts +11 -0
  143. package/admin/presentation/WriterPersonasSettings.js +37 -0
  144. package/admin/presentation/WriterPersonasSettings.js.map +1 -0
  145. package/admin/routes.d.ts +4 -0
  146. package/admin/routes.js +10 -0
  147. package/admin/routes.js.map +1 -0
  148. package/api/Extension.d.ts +4 -0
  149. package/api/Extension.js +37 -0
  150. package/api/Extension.js.map +1 -0
  151. package/api/constants.d.ts +1 -0
  152. package/api/constants.js +4 -0
  153. package/api/constants.js.map +1 -0
  154. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.d.ts +11 -0
  155. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js +27 -0
  156. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js.map +1 -0
  157. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.d.ts +34 -0
  158. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js +140 -0
  159. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js.map +1 -0
  160. package/api/features/AiImageEnrichment/feature.d.ts +4 -0
  161. package/api/features/AiImageEnrichment/feature.js +13 -0
  162. package/api/features/AiImageEnrichment/feature.js.map +1 -0
  163. package/api/features/AiPromptContext/AiPromptContextBuilder.d.ts +12 -0
  164. package/api/features/AiPromptContext/AiPromptContextBuilder.js +103 -0
  165. package/api/features/AiPromptContext/AiPromptContextBuilder.js.map +1 -0
  166. package/api/features/AiPromptContext/ProjectFileAssembler.d.ts +22 -0
  167. package/api/features/AiPromptContext/ProjectFileAssembler.js +76 -0
  168. package/api/features/AiPromptContext/ProjectFileAssembler.js.map +1 -0
  169. package/api/features/AiPromptContext/ProjectFileCache.d.ts +16 -0
  170. package/api/features/AiPromptContext/ProjectFileCache.js +61 -0
  171. package/api/features/AiPromptContext/ProjectFileCache.js.map +1 -0
  172. package/api/features/AiPromptContext/ProjectSection.d.ts +4 -0
  173. package/api/features/AiPromptContext/ProjectSection.js +35 -0
  174. package/api/features/AiPromptContext/ProjectSection.js.map +1 -0
  175. package/api/features/AiPromptContext/ReadProjectFileTool.d.ts +3 -0
  176. package/api/features/AiPromptContext/ReadProjectFileTool.js +36 -0
  177. package/api/features/AiPromptContext/ReadProjectFileTool.js.map +1 -0
  178. package/api/features/AiPromptContext/ReaderPersonaSection.d.ts +4 -0
  179. package/api/features/AiPromptContext/ReaderPersonaSection.js +10 -0
  180. package/api/features/AiPromptContext/ReaderPersonaSection.js.map +1 -0
  181. package/api/features/AiPromptContext/WriterPersonaSection.d.ts +4 -0
  182. package/api/features/AiPromptContext/WriterPersonaSection.js +10 -0
  183. package/api/features/AiPromptContext/WriterPersonaSection.js.map +1 -0
  184. package/api/features/AiPromptContext/abstractions.d.ts +68 -0
  185. package/api/features/AiPromptContext/abstractions.js +7 -0
  186. package/api/features/AiPromptContext/abstractions.js.map +1 -0
  187. package/api/features/AiPromptContext/feature.d.ts +4 -0
  188. package/api/features/AiPromptContext/feature.js +15 -0
  189. package/api/features/AiPromptContext/feature.js.map +1 -0
  190. package/api/features/AiPromptContext/index.d.ts +1 -0
  191. package/api/features/AiPromptContext/index.js +1 -0
  192. package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.d.ts +11 -0
  193. package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.js +34 -0
  194. package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.js.map +1 -0
  195. package/api/features/ExtractFrontmatter/feature.d.ts +4 -0
  196. package/api/features/ExtractFrontmatter/feature.js +11 -0
  197. package/api/features/ExtractFrontmatter/feature.js.map +1 -0
  198. package/api/features/GetSettings/GetSettingsRepository.d.ts +16 -0
  199. package/api/features/GetSettings/GetSettingsRepository.js +40 -0
  200. package/api/features/GetSettings/GetSettingsRepository.js.map +1 -0
  201. package/api/features/GetSettings/GetSettingsUseCase.d.ts +10 -0
  202. package/api/features/GetSettings/GetSettingsUseCase.js +18 -0
  203. package/api/features/GetSettings/GetSettingsUseCase.js.map +1 -0
  204. package/api/features/GetSettings/abstractions.d.ts +16 -0
  205. package/api/features/GetSettings/abstractions.js +6 -0
  206. package/api/features/GetSettings/abstractions.js.map +1 -0
  207. package/api/features/GetSettings/feature.d.ts +4 -0
  208. package/api/features/GetSettings/feature.js +13 -0
  209. package/api/features/GetSettings/feature.js.map +1 -0
  210. package/api/features/GetSettings/index.d.ts +1 -0
  211. package/api/features/GetSettings/index.js +1 -0
  212. package/api/features/Projects/ProjectsHandler.d.ts +31 -0
  213. package/api/features/Projects/ProjectsHandler.js +103 -0
  214. package/api/features/Projects/ProjectsHandler.js.map +1 -0
  215. package/api/features/Projects/feature.d.ts +4 -0
  216. package/api/features/Projects/feature.js +11 -0
  217. package/api/features/Projects/feature.js.map +1 -0
  218. package/api/features/Projects/types.d.ts +50 -0
  219. package/api/features/Projects/types.js +0 -0
  220. package/api/features/Providers/ProvidersGraphQLMapper.d.ts +21 -0
  221. package/api/features/Providers/ProvidersGraphQLMapper.js +39 -0
  222. package/api/features/Providers/ProvidersGraphQLMapper.js.map +1 -0
  223. package/api/features/Providers/ProvidersHandler.d.ts +26 -0
  224. package/api/features/Providers/ProvidersHandler.js +79 -0
  225. package/api/features/Providers/ProvidersHandler.js.map +1 -0
  226. package/api/features/Providers/feature.d.ts +4 -0
  227. package/api/features/Providers/feature.js +13 -0
  228. package/api/features/Providers/feature.js.map +1 -0
  229. package/api/features/Providers/index.d.ts +1 -0
  230. package/api/features/Providers/index.js +0 -0
  231. package/api/features/Providers/types.d.ts +29 -0
  232. package/api/features/Providers/types.js +0 -0
  233. package/api/features/ReaderPersonas/ReaderPersonasHandler.d.ts +20 -0
  234. package/api/features/ReaderPersonas/ReaderPersonasHandler.js +43 -0
  235. package/api/features/ReaderPersonas/ReaderPersonasHandler.js.map +1 -0
  236. package/api/features/ReaderPersonas/feature.d.ts +4 -0
  237. package/api/features/ReaderPersonas/feature.js +11 -0
  238. package/api/features/ReaderPersonas/feature.js.map +1 -0
  239. package/api/features/ReaderPersonas/index.d.ts +2 -0
  240. package/api/features/ReaderPersonas/index.js +1 -0
  241. package/api/features/ReaderPersonas/types.d.ts +24 -0
  242. package/api/features/ReaderPersonas/types.js +0 -0
  243. package/api/features/UpdateSettings/UpdateSettingsRepository.d.ts +16 -0
  244. package/api/features/UpdateSettings/UpdateSettingsRepository.js +71 -0
  245. package/api/features/UpdateSettings/UpdateSettingsRepository.js.map +1 -0
  246. package/api/features/UpdateSettings/UpdateSettingsUseCase.d.ts +13 -0
  247. package/api/features/UpdateSettings/UpdateSettingsUseCase.js +30 -0
  248. package/api/features/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  249. package/api/features/UpdateSettings/abstractions.d.ts +36 -0
  250. package/api/features/UpdateSettings/abstractions.js +8 -0
  251. package/api/features/UpdateSettings/abstractions.js.map +1 -0
  252. package/api/features/UpdateSettings/errors.d.ts +10 -0
  253. package/api/features/UpdateSettings/errors.js +14 -0
  254. package/api/features/UpdateSettings/errors.js.map +1 -0
  255. package/api/features/UpdateSettings/events.d.ts +10 -0
  256. package/api/features/UpdateSettings/events.js +21 -0
  257. package/api/features/UpdateSettings/events.js.map +1 -0
  258. package/api/features/UpdateSettings/feature.d.ts +4 -0
  259. package/api/features/UpdateSettings/feature.js +13 -0
  260. package/api/features/UpdateSettings/feature.js.map +1 -0
  261. package/api/features/UpdateSettings/index.d.ts +1 -0
  262. package/api/features/UpdateSettings/index.js +1 -0
  263. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.d.ts +33 -0
  264. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js +75 -0
  265. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js.map +1 -0
  266. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.d.ts +21 -0
  267. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js +106 -0
  268. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js.map +1 -0
  269. package/api/features/WbGeneratePageContent/abstractions.d.ts +28 -0
  270. package/api/features/WbGeneratePageContent/abstractions.js +5 -0
  271. package/api/features/WbGeneratePageContent/abstractions.js.map +1 -0
  272. package/api/features/WbGeneratePageContent/buildPrompt.d.ts +1 -0
  273. package/api/features/WbGeneratePageContent/buildPrompt.js +143 -0
  274. package/api/features/WbGeneratePageContent/buildPrompt.js.map +1 -0
  275. package/api/features/WbGeneratePageContent/feature.d.ts +4 -0
  276. package/api/features/WbGeneratePageContent/feature.js +13 -0
  277. package/api/features/WbGeneratePageContent/feature.js.map +1 -0
  278. package/api/features/WbGeneratePageContent/index.d.ts +1 -0
  279. package/api/features/WbGeneratePageContent/index.js +1 -0
  280. package/api/features/WriterPersonas/WriterPersonasHandler.d.ts +20 -0
  281. package/api/features/WriterPersonas/WriterPersonasHandler.js +43 -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 +11 -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 +1 -0
  288. package/api/features/WriterPersonas/types.d.ts +24 -0
  289. package/api/features/WriterPersonas/types.js +0 -0
  290. package/api/features/shared/SettingsCache.d.ts +12 -0
  291. package/api/features/shared/SettingsCache.js +22 -0
  292. package/api/features/shared/SettingsCache.js.map +1 -0
  293. package/api/features/shared/abstractions.d.ts +33 -0
  294. package/api/features/shared/abstractions.js +7 -0
  295. package/api/features/shared/abstractions.js.map +1 -0
  296. package/api/features/shared/index.d.ts +3 -0
  297. package/api/features/shared/index.js +1 -0
  298. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.d.ts +13 -0
  299. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js +44 -0
  300. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js.map +1 -0
  301. package/api/graphql/BaseGraphQLSchema.d.ts +8 -0
  302. package/api/graphql/BaseGraphQLSchema.js +133 -0
  303. package/api/graphql/BaseGraphQLSchema.js.map +1 -0
  304. package/api/graphql/abstractions.d.ts +9 -0
  305. package/api/graphql/abstractions.js +5 -0
  306. package/api/graphql/abstractions.js.map +1 -0
  307. package/api/types.d.ts +5 -0
  308. package/api/types.js +3 -0
  309. package/index.d.ts +1 -0
  310. package/index.js +1 -0
  311. package/package.json +60 -0
@@ -0,0 +1,190 @@
1
+ # PROMPT (sent to AI via generateObject)
2
+
3
+ ## System Prompt
4
+
5
+ You are a page content generator. Given a user prompt, generate structured page
6
+ content using the provided component catalog and available actions.
7
+
8
+ ### Component Catalog
9
+
10
+ ```json
11
+ {
12
+ "components": {
13
+ "Webiny/Hero": {
14
+ "name": "Webiny/Hero",
15
+ "label": "Hero",
16
+ "inputs": [
17
+ { "type": "text", "name": "title", "required": true },
18
+ { "type": "lexical", "name": "description" },
19
+ { "type": "image", "name": "heroImage" },
20
+ { "type": "lexical", "name": "footerText" }
21
+ ]
22
+ },
23
+ "Webiny/Grid": {
24
+ "name": "Webiny/Grid",
25
+ "label": "Grid",
26
+ "inputs": [
27
+ { "type": "text", "name": "gridLayout" },
28
+ { "type": "number", "name": "rowCount", "minValue": 1 },
29
+ { "type": "number", "name": "columnGap" },
30
+ { "type": "number", "name": "rowGap" },
31
+ {
32
+ "type": "select",
33
+ "name": "stackAtBreakpoint",
34
+ "options": ["tablet", "mobile"]
35
+ },
36
+ { "type": "boolean", "name": "reverseWhenStacked" },
37
+ {
38
+ "type": "object",
39
+ "name": "columns",
40
+ "list": true,
41
+ "fields": [
42
+ {
43
+ "type": "slot",
44
+ "list": false,
45
+ "name": "children",
46
+ "components": ["Webiny/GridColumn"]
47
+ }
48
+ ]
49
+ }
50
+ ]
51
+ },
52
+ "Webiny/GridColumn": {
53
+ "name": "Webiny/GridColumn",
54
+ "label": "Column",
55
+ "inputs": [{ "type": "slot", "list": true, "name": "children" }]
56
+ },
57
+ "Webiny/Lexical": {
58
+ "name": "Webiny/Lexical",
59
+ "label": "Rich Text",
60
+ "inputs": [{ "type": "lexical", "name": "content" }]
61
+ },
62
+ "Webiny/Box": {
63
+ "name": "Webiny/Box",
64
+ "label": "Box",
65
+ "inputs": [{ "type": "slot", "list": true, "name": "children" }]
66
+ },
67
+ "Webiny/ProductCard": {
68
+ "name": "Webiny/ProductCard",
69
+ "label": "Product Card",
70
+ "inputs": [
71
+ { "type": "product", "name": "product" },
72
+ { "type": "boolean", "name": "showPrice" },
73
+ { "type": "boolean", "name": "showRating" }
74
+ ]
75
+ }
76
+ }
77
+ }
78
+ ```
79
+
80
+ Grid layout options: `12`, `6-6`, `4-4-4`, `8-4`, `4-8`, `3-3-3-3`
81
+
82
+ ### Available Tools
83
+
84
+ For input fields that require post-processing, wrap the value in a tool
85
+ envelope: `{ "tool": "<toolName>", "params": { ... } }`.
86
+
87
+ Plain values (text, number, boolean, select) should be set directly without
88
+ an envelope.
89
+
90
+ ```json
91
+ {
92
+ "tools": {
93
+ "htmlToLexical": {
94
+ "description": "Converts an HTML string into Lexical editor state. Use for all 'lexical' type inputs.",
95
+ "inputSchema": {
96
+ "type": "object",
97
+ "properties": {
98
+ "html": { "type": "string", "description": "HTML content" }
99
+ },
100
+ "required": ["html"]
101
+ },
102
+ "outputSchema": {
103
+ "type": "object",
104
+ "description": "Lexical editor state JSON"
105
+ }
106
+ },
107
+ "resolveImage": {
108
+ "description": "Fetches an image from the DAM matching the given tags and constraints.",
109
+ "inputSchema": {
110
+ "type": "object",
111
+ "properties": {
112
+ "tags": {
113
+ "type": "array",
114
+ "items": { "type": "string" },
115
+ "description": "Semantic tags describing the desired image"
116
+ },
117
+ "aspect": {
118
+ "type": "string",
119
+ "description": "Desired aspect ratio, e.g. '16:9', '1:1'"
120
+ }
121
+ },
122
+ "required": ["tags"]
123
+ },
124
+ "outputSchema": {
125
+ "type": "object",
126
+ "properties": {
127
+ "id": { "type": "string" },
128
+ "name": { "type": "string" },
129
+ "src": { "type": "string" },
130
+ "width": { "type": "number" },
131
+ "height": { "type": "number" },
132
+ "mimeType": { "type": "string" }
133
+ }
134
+ }
135
+ },
136
+ "resolveProduct": {
137
+ "description": "Fetches a product reference from the e-commerce catalog.",
138
+ "inputSchema": {
139
+ "type": "object",
140
+ "properties": {
141
+ "query": {
142
+ "type": "string",
143
+ "description": "Search query or product name"
144
+ },
145
+ "sku": { "type": "string", "description": "Exact SKU if known" },
146
+ "category": {
147
+ "type": "string",
148
+ "description": "Product category to filter by"
149
+ }
150
+ }
151
+ },
152
+ "outputSchema": {
153
+ "type": "object",
154
+ "properties": {
155
+ "id": { "type": "string" },
156
+ "name": { "type": "string" },
157
+ "sku": { "type": "string" },
158
+ "price": { "type": "number" },
159
+ "currency": { "type": "string" },
160
+ "imageUrl": { "type": "string" }
161
+ }
162
+ }
163
+ }
164
+ }
165
+ }
166
+ ```
167
+
168
+ ### Page Schema
169
+
170
+ ```typescript
171
+ type ElementSchema = {
172
+ component: string;
173
+ inputs: Record<string, unknown>;
174
+ };
175
+
176
+ type CreateElementAction = {
177
+ action: "CreateElement";
178
+ params: ElementSchema;
179
+ };
180
+
181
+ type PageSchema = ElementSchema[];
182
+ ```
183
+
184
+ For slot inputs, use `{ "action": "CreateElement", "params": { "component": "...", "inputs": { ... } } }`.
185
+ Note: `CreateElement` uses "action" — it is a structural instruction for the page builder, not a tool invocation.
186
+
187
+ ## User Prompt
188
+
189
+ "Create a landing page for Nike Air Max 90 sneakers. Include a hero section
190
+ with a tagline, a features grid, and a section showing 3 related products."
@@ -0,0 +1,30 @@
1
+ import type { IFormVM } from "@webiny/app-admin/features/formModel/abstractions.js";
2
+ export type CreateElementParams = {
3
+ componentName: string;
4
+ parentId: string;
5
+ slot: string;
6
+ index?: number;
7
+ bindings?: {
8
+ inputs?: Record<string, unknown>;
9
+ };
10
+ };
11
+ export type CreateElementsFn = (elements: CreateElementParams[]) => void;
12
+ export interface IGenerateContentVm {
13
+ form: IFormVM | null;
14
+ loading: boolean;
15
+ submitting: boolean;
16
+ processing: boolean;
17
+ timedOut: boolean;
18
+ }
19
+ export interface IGenerateContentPresenter {
20
+ readonly vm: IGenerateContentVm;
21
+ init(components: Record<string, any>[], createElements: CreateElementsFn): void;
22
+ submit(): Promise<void>;
23
+ cancelPrompt(): void;
24
+ processAiResponse(responseText: string): Promise<void>;
25
+ }
26
+ export declare const GenerateContentPresenter: import("@webiny/di").Abstraction<IGenerateContentPresenter>;
27
+ export declare namespace GenerateContentPresenter {
28
+ type Interface = IGenerateContentPresenter;
29
+ type ViewModel = IGenerateContentVm;
30
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const GenerateContentPresenter = createAbstraction("WbContentGeneration/Presenter");
3
+ export { GenerateContentPresenter };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WbContentGeneration/abstractions.js","sources":["../../../../src/admin/presentation/WbContentGeneration/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IFormVM } from \"@webiny/app-admin/features/formModel/abstractions.js\";\n\nexport type CreateElementParams = {\n componentName: string;\n parentId: string;\n slot: string;\n index?: number;\n bindings?: { inputs?: Record<string, unknown> };\n};\n\nexport type CreateElementsFn = (elements: CreateElementParams[]) => void;\n\nexport interface IGenerateContentVm {\n form: IFormVM | null;\n loading: boolean;\n submitting: boolean;\n processing: boolean;\n timedOut: boolean;\n}\n\nexport interface IGenerateContentPresenter {\n readonly vm: IGenerateContentVm;\n init(components: Record<string, any>[], createElements: CreateElementsFn): void;\n submit(): Promise<void>;\n cancelPrompt(): void;\n processAiResponse(responseText: string): Promise<void>;\n}\n\nexport const GenerateContentPresenter = createAbstraction<IGenerateContentPresenter>(\n \"WbContentGeneration/Presenter\"\n);\n\nexport namespace GenerateContentPresenter {\n export type Interface = IGenerateContentPresenter;\n export type ViewModel = IGenerateContentVm;\n}\n"],"names":["GenerateContentPresenter","createAbstraction"],"mappings":";AA6BO,MAAMA,2BAA2BC,kBACpC"}
@@ -0,0 +1 @@
1
+ export declare function decompressGzipBase64(base64: string): Promise<string>;
@@ -0,0 +1,13 @@
1
+ async function decompressGzipBase64(base64) {
2
+ const binary = atob(base64);
3
+ const bytes = new Uint8Array(binary.length);
4
+ for(let i = 0; i < binary.length; i++)bytes[i] = binary.charCodeAt(i);
5
+ const ds = new DecompressionStream("gzip");
6
+ const writer = ds.writable.getWriter();
7
+ writer.write(bytes);
8
+ writer.close();
9
+ return new Response(ds.readable).text();
10
+ }
11
+ export { decompressGzipBase64 };
12
+
13
+ //# sourceMappingURL=decompressGzipBase64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WbContentGeneration/decompressGzipBase64.js","sources":["../../../../src/admin/presentation/WbContentGeneration/decompressGzipBase64.ts"],"sourcesContent":["export async function decompressGzipBase64(base64: string): Promise<string> {\n const binary = atob(base64);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n const ds = new DecompressionStream(\"gzip\");\n const writer = ds.writable.getWriter();\n writer.write(bytes);\n writer.close();\n return new Response(ds.readable).text();\n}\n"],"names":["decompressGzipBase64","base64","binary","atob","bytes","Uint8Array","i","ds","DecompressionStream","writer","Response"],"mappings":"AAAO,eAAeA,qBAAqBC,MAAc;IACrD,MAAMC,SAASC,KAAKF;IACpB,MAAMG,QAAQ,IAAIC,WAAWH,OAAO,MAAM;IAC1C,IAAK,IAAII,IAAI,GAAGA,IAAIJ,OAAO,MAAM,EAAEI,IAC/BF,KAAK,CAACE,EAAE,GAAGJ,OAAO,UAAU,CAACI;IAEjC,MAAMC,KAAK,IAAIC,oBAAoB;IACnC,MAAMC,SAASF,GAAG,QAAQ,CAAC,SAAS;IACpCE,OAAO,KAAK,CAACL;IACbK,OAAO,KAAK;IACZ,OAAO,IAAIC,SAASH,GAAG,QAAQ,EAAE,IAAI;AACzC"}
@@ -0,0 +1,3 @@
1
+ export declare const GenerateContentFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ presenter: import("./abstractions.js").IGenerateContentPresenter;
3
+ }, []>;
@@ -0,0 +1,17 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { GenerateContentPresenter } from "./abstractions.js";
3
+ import { GenerateContentPresenterRegistration } from "./GenerateContentPresenter.js";
4
+ const GenerateContentFeature = createFeature({
5
+ name: "WbContentGeneration/Presenter",
6
+ register (container) {
7
+ container.register(GenerateContentPresenterRegistration);
8
+ },
9
+ resolve (container) {
10
+ return {
11
+ presenter: container.resolve(GenerateContentPresenter)
12
+ };
13
+ }
14
+ });
15
+ export { GenerateContentFeature };
16
+
17
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WbContentGeneration/feature.js","sources":["../../../../src/admin/presentation/WbContentGeneration/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { GenerateContentPresenter } from \"./abstractions.js\";\nimport { GenerateContentPresenterRegistration } from \"./GenerateContentPresenter.js\";\n\nexport const GenerateContentFeature = createFeature({\n name: \"WbContentGeneration/Presenter\",\n register(container) {\n container.register(GenerateContentPresenterRegistration);\n },\n resolve(container) {\n return {\n presenter: container.resolve(GenerateContentPresenter)\n };\n }\n});\n"],"names":["GenerateContentFeature","createFeature","container","GenerateContentPresenterRegistration","GenerateContentPresenter"],"mappings":";;;AAIO,MAAMA,yBAAyBC,cAAc;IAChD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;IACA,SAAQD,SAAS;QACb,OAAO;YACH,WAAWA,UAAU,OAAO,CAACE;QACjC;IACJ;AACJ"}
@@ -0,0 +1,11 @@
1
+ import { AiPowerUpsSettingsGroup } from "./AiPowerUpsSettings/settingsGroup.js";
2
+ declare class WriterPersonasSettingsImpl implements AiPowerUpsSettingsGroup.Interface {
3
+ name: string;
4
+ label: string;
5
+ description: string;
6
+ buildForm(form: AiPowerUpsSettingsGroup.FormBuilder): void;
7
+ }
8
+ export declare const WriterPersonasSettings: typeof WriterPersonasSettingsImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./AiPowerUpsSettings/settingsGroup.js").IAiPowerUpsSettingsGroup>;
10
+ };
11
+ export {};
@@ -0,0 +1,37 @@
1
+ import { generateAlphaNumericId } from "@webiny/utils";
2
+ import { AiPowerUpsSettingsGroup } from "./AiPowerUpsSettings/settingsGroup.js";
3
+ class WriterPersonasSettingsImpl {
4
+ buildForm(form) {
5
+ form.fields((fields)=>({
6
+ presets: fields.object().label("Presets").renderer("objectAccordionMultiple", {
7
+ container: false,
8
+ addItemLabel: "Add writer persona",
9
+ itemTitle: (data, index)=>String(data.name || `Writer Persona #${index + 1}`)
10
+ }).fields((f)=>({
11
+ id: f.text().hidden().defaultValue(()=>generateAlphaNumericId(10)),
12
+ name: f.text().label("Name").required("Name is required").description("This name will be used to identify the writer persona in the UI."),
13
+ description: f.text().label("Description").required("Description is required").description("Describe how this persona writes and communicates. This will be used when prompting AI.").renderer("textarea", {
14
+ rows: 8
15
+ }),
16
+ style: f.text().label("Style").description("Optional hints about the tone or style this persona should adopt when writing.").renderer("textarea", {
17
+ rows: 3
18
+ })
19
+ })).list()
20
+ }));
21
+ form.layout((layout)=>[
22
+ layout.row("presets")
23
+ ]);
24
+ }
25
+ constructor(){
26
+ this.name = "writerPersonas";
27
+ this.label = "Writer Personas";
28
+ this.description = "Define how text should be written.";
29
+ }
30
+ }
31
+ const WriterPersonasSettings = AiPowerUpsSettingsGroup.createImplementation({
32
+ implementation: WriterPersonasSettingsImpl,
33
+ dependencies: []
34
+ });
35
+ export { WriterPersonasSettings };
36
+
37
+ //# sourceMappingURL=WriterPersonasSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WriterPersonasSettings.js","sources":["../../../src/admin/presentation/WriterPersonasSettings.ts"],"sourcesContent":["import { generateAlphaNumericId } from \"@webiny/utils\";\nimport { AiPowerUpsSettingsGroup } from \"./AiPowerUpsSettings/settingsGroup.js\";\n\nclass WriterPersonasSettingsImpl implements AiPowerUpsSettingsGroup.Interface {\n name = \"writerPersonas\";\n label = \"Writer Personas\";\n description = \"Define how text should be written.\";\n\n buildForm(form: AiPowerUpsSettingsGroup.FormBuilder): void {\n form.fields(fields => ({\n presets: fields\n .object()\n .label(\"Presets\")\n .renderer(\"objectAccordionMultiple\", {\n container: false,\n addItemLabel: \"Add writer persona\",\n itemTitle: (data, index) => String(data.name || `Writer Persona #${index + 1}`)\n })\n .fields(f => ({\n id: f\n .text()\n .hidden()\n .defaultValue(() => generateAlphaNumericId(10)),\n name: f\n .text()\n .label(\"Name\")\n .required(\"Name is required\")\n .description(\n \"This name will be used to identify the writer persona in the UI.\"\n ),\n description: f\n .text()\n .label(\"Description\")\n .required(\"Description is required\")\n .description(\n \"Describe how this persona writes and communicates. This will be used when prompting AI.\"\n )\n .renderer(\"textarea\", { rows: 8 }),\n style: f\n .text()\n .label(\"Style\")\n .description(\n \"Optional hints about the tone or style this persona should adopt when writing.\"\n )\n .renderer(\"textarea\", { rows: 3 })\n }))\n .list()\n }));\n\n form.layout(layout => [layout.row(\"presets\")]);\n }\n}\n\nexport const WriterPersonasSettings = AiPowerUpsSettingsGroup.createImplementation({\n implementation: WriterPersonasSettingsImpl,\n dependencies: []\n});\n"],"names":["WriterPersonasSettingsImpl","form","fields","data","index","String","f","generateAlphaNumericId","layout","WriterPersonasSettings","AiPowerUpsSettingsGroup"],"mappings":";;AAGA,MAAMA;IAKF,UAAUC,IAAyC,EAAQ;QACvDA,KAAK,MAAM,CAACC,CAAAA,SAAW;gBACnB,SAASA,OACJ,MAAM,GACN,KAAK,CAAC,WACN,QAAQ,CAAC,2BAA2B;oBACjC,WAAW;oBACX,cAAc;oBACd,WAAW,CAACC,MAAMC,QAAUC,OAAOF,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAEC,QAAQ,GAAG;gBAClF,GACC,MAAM,CAACE,CAAAA,IAAM;wBACV,IAAIA,EACC,IAAI,GACJ,MAAM,GACN,YAAY,CAAC,IAAMC,uBAAuB;wBAC/C,MAAMD,EACD,IAAI,GACJ,KAAK,CAAC,QACN,QAAQ,CAAC,oBACT,WAAW,CACR;wBAER,aAAaA,EACR,IAAI,GACJ,KAAK,CAAC,eACN,QAAQ,CAAC,2BACT,WAAW,CACR,2FAEH,QAAQ,CAAC,YAAY;4BAAE,MAAM;wBAAE;wBACpC,OAAOA,EACF,IAAI,GACJ,KAAK,CAAC,SACN,WAAW,CACR,kFAEH,QAAQ,CAAC,YAAY;4BAAE,MAAM;wBAAE;oBACxC,IACC,IAAI;YACb;QAEAL,KAAK,MAAM,CAACO,CAAAA,SAAU;gBAACA,OAAO,GAAG,CAAC;aAAW;IACjD;;aA9CA,IAAI,GAAG;aACP,KAAK,GAAG;aACR,WAAW,GAAG;;AA6ClB;AAEO,MAAMC,yBAAyBC,wBAAwB,oBAAoB,CAAC;IAC/E,gBAAgBV;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,4 @@
1
+ import { Route } from "@webiny/app-admin";
2
+ export declare const Routes: {
3
+ Settings: Route<undefined>;
4
+ };
@@ -0,0 +1,10 @@
1
+ import { Route } from "@webiny/app-admin";
2
+ const Routes = {
3
+ Settings: new Route({
4
+ name: "AiPowerUps/Settings",
5
+ path: "/settings/ai-powerups"
6
+ })
7
+ };
8
+ export { Routes };
9
+
10
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/routes.js","sources":["../../src/admin/routes.ts"],"sourcesContent":["import { Route } from \"@webiny/app-admin\";\n\nexport const Routes = {\n Settings: new Route({\n name: \"AiPowerUps/Settings\",\n path: \"/settings/ai-powerups\"\n })\n};\n"],"names":["Routes","Route"],"mappings":";AAEO,MAAMA,SAAS;IAClB,UAAU,IAAIC,MAAM;QAChB,MAAM;QACN,MAAM;IACV;AACJ"}
@@ -0,0 +1,4 @@
1
+ export declare const Extension: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,37 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { WcpContext } from "@webiny/api-core/features/wcp/WcpContext/index.js";
3
+ import { BaseGraphQLSchema } from "./graphql/BaseGraphQLSchema.js";
4
+ import AiPowerUpsSettingsGraphQLMapper from "./graphql/AiPowerUpsSettingsGraphQLMapper.js";
5
+ import { AiPowerUpsSettingsCache } from "./features/shared/SettingsCache.js";
6
+ import { GetSettingsFeature } from "./features/GetSettings/feature.js";
7
+ import { UpdateSettingsFeature } from "./features/UpdateSettings/feature.js";
8
+ import { WbGeneratePageContentFeature } from "./features/WbGeneratePageContent/feature.js";
9
+ import { ProvidersFeature } from "./features/Providers/feature.js";
10
+ import { ReaderPersonasFeature } from "./features/ReaderPersonas/feature.js";
11
+ import { WriterPersonasFeature } from "./features/WriterPersonas/feature.js";
12
+ import { ProjectsFeature } from "./features/Projects/feature.js";
13
+ import { AiPromptContextFeature } from "./features/AiPromptContext/feature.js";
14
+ import { AiImageEnrichmentFeature } from "./features/AiImageEnrichment/feature.js";
15
+ import { ExtractFrontmatterFeature } from "./features/ExtractFrontmatter/feature.js";
16
+ const Extension = createFeature({
17
+ name: "AiPowerUps",
18
+ register (container) {
19
+ container.register(AiPowerUpsSettingsCache).inSingletonScope();
20
+ GetSettingsFeature.register(container);
21
+ UpdateSettingsFeature.register(container);
22
+ ProvidersFeature.register(container);
23
+ ReaderPersonasFeature.register(container);
24
+ WriterPersonasFeature.register(container);
25
+ ProjectsFeature.register(container);
26
+ AiPromptContextFeature.register(container);
27
+ WbGeneratePageContentFeature.register(container);
28
+ ExtractFrontmatterFeature.register(container);
29
+ const wcp = container.resolve(WcpContext);
30
+ if (wcp.canUseAiImageEnrichment()) AiImageEnrichmentFeature.register(container);
31
+ container.register(AiPowerUpsSettingsGraphQLMapper).inSingletonScope();
32
+ container.register(BaseGraphQLSchema);
33
+ }
34
+ });
35
+ export { Extension };
36
+
37
+ //# sourceMappingURL=Extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/Extension.js","sources":["../../src/api/Extension.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { WcpContext } from \"@webiny/api-core/features/wcp/WcpContext/index.js\";\nimport { BaseGraphQLSchema } from \"./graphql/BaseGraphQLSchema.js\";\nimport AiPowerUpsSettingsGraphQLMapperImpl from \"./graphql/AiPowerUpsSettingsGraphQLMapper.js\";\nimport { AiPowerUpsSettingsCache } from \"./features/shared/SettingsCache.js\";\nimport { GetSettingsFeature } from \"./features/GetSettings/feature.js\";\nimport { UpdateSettingsFeature } from \"./features/UpdateSettings/feature.js\";\nimport { WbGeneratePageContentFeature } from \"./features/WbGeneratePageContent/feature.js\";\nimport { ProvidersFeature } from \"./features/Providers/feature.js\";\nimport { ReaderPersonasFeature } from \"./features/ReaderPersonas/feature.js\";\nimport { WriterPersonasFeature } from \"./features/WriterPersonas/feature.js\";\nimport { ProjectsFeature } from \"./features/Projects/feature.js\";\nimport { AiPromptContextFeature } from \"./features/AiPromptContext/feature.js\";\nimport { AiImageEnrichmentFeature } from \"./features/AiImageEnrichment/feature.js\";\nimport { ExtractFrontmatterFeature } from \"./features/ExtractFrontmatter/feature.js\";\n\nexport const Extension = createFeature({\n name: \"AiPowerUps\",\n register(container) {\n container.register(AiPowerUpsSettingsCache).inSingletonScope();\n\n GetSettingsFeature.register(container);\n UpdateSettingsFeature.register(container);\n ProvidersFeature.register(container);\n ReaderPersonasFeature.register(container);\n WriterPersonasFeature.register(container);\n ProjectsFeature.register(container);\n AiPromptContextFeature.register(container);\n WbGeneratePageContentFeature.register(container);\n ExtractFrontmatterFeature.register(container);\n\n const wcp = container.resolve(WcpContext);\n if (wcp.canUseAiImageEnrichment()) {\n AiImageEnrichmentFeature.register(container);\n }\n\n container.register(AiPowerUpsSettingsGraphQLMapperImpl).inSingletonScope();\n container.register(BaseGraphQLSchema);\n }\n});\n"],"names":["Extension","createFeature","container","AiPowerUpsSettingsCache","GetSettingsFeature","UpdateSettingsFeature","ProvidersFeature","ReaderPersonasFeature","WriterPersonasFeature","ProjectsFeature","AiPromptContextFeature","WbGeneratePageContentFeature","ExtractFrontmatterFeature","wcp","WcpContext","AiImageEnrichmentFeature","AiPowerUpsSettingsGraphQLMapperImpl","BaseGraphQLSchema"],"mappings":";;;;;;;;;;;;;;;AAgBO,MAAMA,YAAYC,cAAc;IACnC,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,yBAAyB,gBAAgB;QAE5DC,mBAAmB,QAAQ,CAACF;QAC5BG,sBAAsB,QAAQ,CAACH;QAC/BI,iBAAiB,QAAQ,CAACJ;QAC1BK,sBAAsB,QAAQ,CAACL;QAC/BM,sBAAsB,QAAQ,CAACN;QAC/BO,gBAAgB,QAAQ,CAACP;QACzBQ,uBAAuB,QAAQ,CAACR;QAChCS,6BAA6B,QAAQ,CAACT;QACtCU,0BAA0B,QAAQ,CAACV;QAEnC,MAAMW,MAAMX,UAAU,OAAO,CAACY;QAC9B,IAAID,IAAI,uBAAuB,IAC3BE,yBAAyB,QAAQ,CAACb;QAGtCA,UAAU,QAAQ,CAACc,iCAAqC,gBAAgB;QACxEd,UAAU,QAAQ,CAACe;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export declare const AI_POWER_UPS_SETTINGS = "AiPowerUps/Settings";
@@ -0,0 +1,4 @@
1
+ const AI_POWER_UPS_SETTINGS = "AiPowerUps/Settings";
2
+ export { AI_POWER_UPS_SETTINGS };
3
+
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/constants.js","sources":["../../src/api/constants.ts"],"sourcesContent":["export const AI_POWER_UPS_SETTINGS = \"AiPowerUps/Settings\";\n"],"names":["AI_POWER_UPS_SETTINGS"],"mappings":"AAAO,MAAMA,wBAAwB"}
@@ -0,0 +1,11 @@
1
+ import { FileAfterCreateEventHandler } from "@webiny/api-file-manager/features/file/CreateFile/events.js";
2
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ declare class AiImageEnrichmentAfterCreateHandlerImpl implements FileAfterCreateEventHandler.Interface {
4
+ private taskService;
5
+ constructor(taskService: TaskService.Interface);
6
+ handle(event: FileAfterCreateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const AiImageEnrichmentAfterCreateHandler: typeof AiImageEnrichmentAfterCreateHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<import("@webiny/api-file-manager/features/file/CreateFile/events.js").FileAfterCreateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,27 @@
1
+ import { FileAfterCreateEventHandler } from "@webiny/api-file-manager/features/file/CreateFile/events.js";
2
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ import { AI_IMAGE_ENRICHMENT_TASK_ID } from "./AiImageEnrichmentTask.js";
4
+ class AiImageEnrichmentAfterCreateHandlerImpl {
5
+ constructor(taskService){
6
+ this.taskService = taskService;
7
+ }
8
+ async handle(event) {
9
+ const { file } = event.payload;
10
+ if (!file.type.startsWith("image/")) return;
11
+ await this.taskService.trigger({
12
+ definition: AI_IMAGE_ENRICHMENT_TASK_ID,
13
+ input: {
14
+ fileId: file.id
15
+ }
16
+ });
17
+ }
18
+ }
19
+ const AiImageEnrichmentAfterCreateHandler = FileAfterCreateEventHandler.createImplementation({
20
+ implementation: AiImageEnrichmentAfterCreateHandlerImpl,
21
+ dependencies: [
22
+ TaskService
23
+ ]
24
+ });
25
+ export { AiImageEnrichmentAfterCreateHandler };
26
+
27
+ //# sourceMappingURL=AiImageEnrichmentAfterCreateHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js","sources":["../../../../src/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.ts"],"sourcesContent":["import { FileAfterCreateEventHandler } from \"@webiny/api-file-manager/features/file/CreateFile/events.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport type { IAiImageEnrichmentTaskInput } from \"./AiImageEnrichmentTask.js\";\nimport { AI_IMAGE_ENRICHMENT_TASK_ID } from \"./AiImageEnrichmentTask.js\";\n\nclass AiImageEnrichmentAfterCreateHandlerImpl implements FileAfterCreateEventHandler.Interface {\n constructor(private taskService: TaskService.Interface) {}\n\n async handle(event: FileAfterCreateEventHandler.Event): Promise<void> {\n const { file } = event.payload;\n\n if (!file.type.startsWith(\"image/\")) {\n return;\n }\n\n await this.taskService.trigger<IAiImageEnrichmentTaskInput>({\n definition: AI_IMAGE_ENRICHMENT_TASK_ID,\n input: {\n fileId: file.id\n }\n });\n }\n}\n\nexport const AiImageEnrichmentAfterCreateHandler = FileAfterCreateEventHandler.createImplementation(\n {\n implementation: AiImageEnrichmentAfterCreateHandlerImpl,\n dependencies: [TaskService]\n }\n);\n"],"names":["AiImageEnrichmentAfterCreateHandlerImpl","taskService","event","file","AI_IMAGE_ENRICHMENT_TASK_ID","AiImageEnrichmentAfterCreateHandler","FileAfterCreateEventHandler","TaskService"],"mappings":";;;AAKA,MAAMA;IACF,YAAoBC,WAAkC,CAAE;aAApCA,WAAW,GAAXA;IAAqC;IAEzD,MAAM,OAAOC,KAAwC,EAAiB;QAClE,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAM,OAAO;QAE9B,IAAI,CAACC,KAAK,IAAI,CAAC,UAAU,CAAC,WACtB;QAGJ,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAA8B;YACxD,YAAYC;YACZ,OAAO;gBACH,QAAQD,KAAK,EAAE;YACnB;QACJ;IACJ;AACJ;AAEO,MAAME,sCAAsCC,4BAA4B,oBAAoB,CAC/F;IACI,gBAAgBN;IAChB,cAAc;QAACO;KAAY;AAC/B"}
@@ -0,0 +1,34 @@
1
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ import { Ai } from "@webiny/api-core/features/ai/index.js";
3
+ import { Encryption } from "@webiny/api-core/features/encryption/index.js";
4
+ import { GetFileUseCase } from "@webiny/api-file-manager/features/file/GetFile/index.js";
5
+ import { UpdateFileUseCase } from "@webiny/api-file-manager/features/file/UpdateFile/index.js";
6
+ import { GetSettingsUseCase as FmGetSettingsUseCase } from "@webiny/api-file-manager/features/settings/GetSettings/abstractions.js";
7
+ import { WebsocketService } from "@webiny/api-websockets/features/WebsocketService/index.js";
8
+ import { GetSettingsUseCase } from "../../../api/features/GetSettings/index.js";
9
+ export declare const AI_IMAGE_ENRICHMENT_TASK_ID = "fmAiImageEnrichment";
10
+ export interface IAiImageEnrichmentTaskInput {
11
+ fileId: string;
12
+ }
13
+ declare class AiImageEnrichmentTaskImpl implements TaskDefinition.Interface<IAiImageEnrichmentTaskInput> {
14
+ private getFile;
15
+ private fmSettings;
16
+ private updateFile;
17
+ private ai;
18
+ private getSettings;
19
+ private encryption;
20
+ private websocketService?;
21
+ id: string;
22
+ title: string;
23
+ description: string;
24
+ maxIterations: number;
25
+ isPrivate: boolean;
26
+ databaseLogs: boolean;
27
+ readonly selfCleanup: ("onAbort" | "onSuccess")[];
28
+ constructor(getFile: GetFileUseCase.Interface, fmSettings: FmGetSettingsUseCase.Interface, updateFile: UpdateFileUseCase.Interface, ai: Ai.Interface, getSettings: GetSettingsUseCase.Interface, encryption: Encryption.Interface, websocketService?: WebsocketService.Interface | undefined);
29
+ run({ input, controller }: TaskDefinition.RunParams<IAiImageEnrichmentTaskInput>): Promise<TaskDefinition.Result<IAiImageEnrichmentTaskInput>>;
30
+ }
31
+ export declare const AiImageEnrichmentTask: typeof AiImageEnrichmentTaskImpl & {
32
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
33
+ };
34
+ export {};