@webiny/ai-powerups 0.0.0-unstable.0156a4c312

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 (705) hide show
  1. package/AiPowerups.d.ts +14 -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 +49 -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/domain/modelRoles.d.ts +17 -0
  13. package/admin/domain/modelRoles.js +8 -0
  14. package/admin/domain/modelRoles.js.map +1 -0
  15. package/admin/features/compareEntryRevisions/CompareEntryRevisionsGateway.d.ts +12 -0
  16. package/admin/features/compareEntryRevisions/CompareEntryRevisionsGateway.js +46 -0
  17. package/admin/features/compareEntryRevisions/CompareEntryRevisionsGateway.js.map +1 -0
  18. package/admin/features/compareEntryRevisions/CompareEntryRevisionsRepository.d.ts +11 -0
  19. package/admin/features/compareEntryRevisions/CompareEntryRevisionsRepository.js +18 -0
  20. package/admin/features/compareEntryRevisions/CompareEntryRevisionsRepository.js.map +1 -0
  21. package/admin/features/compareEntryRevisions/CompareEntryRevisionsUseCase.d.ts +11 -0
  22. package/admin/features/compareEntryRevisions/CompareEntryRevisionsUseCase.js +18 -0
  23. package/admin/features/compareEntryRevisions/CompareEntryRevisionsUseCase.js.map +1 -0
  24. package/admin/features/compareEntryRevisions/abstractions.d.ts +32 -0
  25. package/admin/features/compareEntryRevisions/abstractions.js +7 -0
  26. package/admin/features/compareEntryRevisions/abstractions.js.map +1 -0
  27. package/admin/features/compareEntryRevisions/feature.d.ts +1 -0
  28. package/admin/features/compareEntryRevisions/feature.js +15 -0
  29. package/admin/features/compareEntryRevisions/feature.js.map +1 -0
  30. package/admin/features/compareEntryRevisions/index.d.ts +2 -0
  31. package/admin/features/compareEntryRevisions/index.js +2 -0
  32. package/admin/features/feature.d.ts +1 -0
  33. package/admin/features/feature.js +26 -0
  34. package/admin/features/feature.js.map +1 -0
  35. package/admin/features/generateEntryContent/GenerateEntryContentGateway.d.ts +12 -0
  36. package/admin/features/generateEntryContent/GenerateEntryContentGateway.js +45 -0
  37. package/admin/features/generateEntryContent/GenerateEntryContentGateway.js.map +1 -0
  38. package/admin/features/generateEntryContent/GenerateEntryContentUseCase.d.ts +11 -0
  39. package/admin/features/generateEntryContent/GenerateEntryContentUseCase.js +18 -0
  40. package/admin/features/generateEntryContent/GenerateEntryContentUseCase.js.map +1 -0
  41. package/admin/features/generateEntryContent/abstractions.d.ts +24 -0
  42. package/admin/features/generateEntryContent/abstractions.js +6 -0
  43. package/admin/features/generateEntryContent/abstractions.js.map +1 -0
  44. package/admin/features/generateEntryContent/feature.d.ts +1 -0
  45. package/admin/features/generateEntryContent/feature.js +13 -0
  46. package/admin/features/generateEntryContent/feature.js.map +1 -0
  47. package/admin/features/generateEntryContent/index.d.ts +3 -0
  48. package/admin/features/generateEntryContent/index.js +2 -0
  49. package/admin/features/generatePageContent/GeneratePageContentGateway.d.ts +12 -0
  50. package/admin/features/generatePageContent/GeneratePageContentGateway.js +47 -0
  51. package/admin/features/generatePageContent/GeneratePageContentGateway.js.map +1 -0
  52. package/admin/features/generatePageContent/GeneratePageContentUseCase.d.ts +11 -0
  53. package/admin/features/generatePageContent/GeneratePageContentUseCase.js +18 -0
  54. package/admin/features/generatePageContent/GeneratePageContentUseCase.js.map +1 -0
  55. package/admin/features/generatePageContent/abstractions.d.ts +25 -0
  56. package/admin/features/generatePageContent/abstractions.js +6 -0
  57. package/admin/features/generatePageContent/abstractions.js.map +1 -0
  58. package/admin/features/generatePageContent/feature.d.ts +1 -0
  59. package/admin/features/generatePageContent/feature.js +13 -0
  60. package/admin/features/generatePageContent/feature.js.map +1 -0
  61. package/admin/features/generatePageContent/index.d.ts +3 -0
  62. package/admin/features/generatePageContent/index.js +2 -0
  63. package/admin/features/listCapabilities/ListCapabilitiesGateway.d.ts +12 -0
  64. package/admin/features/listCapabilities/ListCapabilitiesGateway.js +34 -0
  65. package/admin/features/listCapabilities/ListCapabilitiesGateway.js.map +1 -0
  66. package/admin/features/listCapabilities/ListCapabilitiesRepository.d.ts +13 -0
  67. package/admin/features/listCapabilities/ListCapabilitiesRepository.js +27 -0
  68. package/admin/features/listCapabilities/ListCapabilitiesRepository.js.map +1 -0
  69. package/admin/features/listCapabilities/ListCapabilitiesUseCase.d.ts +10 -0
  70. package/admin/features/listCapabilities/ListCapabilitiesUseCase.js +18 -0
  71. package/admin/features/listCapabilities/ListCapabilitiesUseCase.js.map +1 -0
  72. package/admin/features/listCapabilities/abstractions.d.ts +28 -0
  73. package/admin/features/listCapabilities/abstractions.js +7 -0
  74. package/admin/features/listCapabilities/abstractions.js.map +1 -0
  75. package/admin/features/listCapabilities/feature.d.ts +3 -0
  76. package/admin/features/listCapabilities/feature.js +21 -0
  77. package/admin/features/listCapabilities/feature.js.map +1 -0
  78. package/admin/features/listCapabilities/index.d.ts +3 -0
  79. package/admin/features/listCapabilities/index.js +2 -0
  80. package/admin/features/listModels/ListModelsGateway.d.ts +12 -0
  81. package/admin/features/listModels/ListModelsGateway.js +51 -0
  82. package/admin/features/listModels/ListModelsGateway.js.map +1 -0
  83. package/admin/features/listModels/ListModelsRepository.d.ts +13 -0
  84. package/admin/features/listModels/ListModelsRepository.js +27 -0
  85. package/admin/features/listModels/ListModelsRepository.js.map +1 -0
  86. package/admin/features/listModels/ListModelsUseCase.d.ts +10 -0
  87. package/admin/features/listModels/ListModelsUseCase.js +18 -0
  88. package/admin/features/listModels/ListModelsUseCase.js.map +1 -0
  89. package/admin/features/listModels/abstractions.d.ts +30 -0
  90. package/admin/features/listModels/abstractions.js +7 -0
  91. package/admin/features/listModels/abstractions.js.map +1 -0
  92. package/admin/features/listModels/feature.d.ts +3 -0
  93. package/admin/features/listModels/feature.js +21 -0
  94. package/admin/features/listModels/feature.js.map +1 -0
  95. package/admin/features/listModels/index.d.ts +2 -0
  96. package/admin/features/listModels/index.js +2 -0
  97. package/admin/features/settings/getSettings/GetSettingsGateway.d.ts +12 -0
  98. package/admin/features/settings/getSettings/GetSettingsGateway.js +29 -0
  99. package/admin/features/settings/getSettings/GetSettingsGateway.js.map +1 -0
  100. package/admin/features/settings/getSettings/GetSettingsRepository.d.ts +14 -0
  101. package/admin/features/settings/getSettings/GetSettingsRepository.js +31 -0
  102. package/admin/features/settings/getSettings/GetSettingsRepository.js.map +1 -0
  103. package/admin/features/settings/getSettings/GetSettingsUseCase.d.ts +11 -0
  104. package/admin/features/settings/getSettings/GetSettingsUseCase.js +18 -0
  105. package/admin/features/settings/getSettings/GetSettingsUseCase.js.map +1 -0
  106. package/admin/features/settings/getSettings/abstractions.d.ts +22 -0
  107. package/admin/features/settings/getSettings/abstractions.js +7 -0
  108. package/admin/features/settings/getSettings/abstractions.js.map +1 -0
  109. package/admin/features/settings/getSettings/feature.d.ts +3 -0
  110. package/admin/features/settings/getSettings/feature.js +21 -0
  111. package/admin/features/settings/getSettings/feature.js.map +1 -0
  112. package/admin/features/settings/getSettings/index.d.ts +2 -0
  113. package/admin/features/settings/getSettings/index.js +2 -0
  114. package/admin/features/settings/shared/SettingsCache.d.ts +10 -0
  115. package/admin/features/settings/shared/SettingsCache.js +19 -0
  116. package/admin/features/settings/shared/SettingsCache.js.map +1 -0
  117. package/admin/features/settings/shared/abstractions.d.ts +83 -0
  118. package/admin/features/settings/shared/abstractions.js +5 -0
  119. package/admin/features/settings/shared/abstractions.js.map +1 -0
  120. package/admin/features/settings/shared/feature.d.ts +3 -0
  121. package/admin/features/settings/shared/feature.js +17 -0
  122. package/admin/features/settings/shared/feature.js.map +1 -0
  123. package/admin/features/settings/shared/index.d.ts +2 -0
  124. package/admin/features/settings/shared/index.js +2 -0
  125. package/admin/features/settings/updateSettings/UpdateSettingsGateway.d.ts +12 -0
  126. package/admin/features/settings/updateSettings/UpdateSettingsGateway.js +45 -0
  127. package/admin/features/settings/updateSettings/UpdateSettingsGateway.js.map +1 -0
  128. package/admin/features/settings/updateSettings/UpdateSettingsRepository.d.ts +13 -0
  129. package/admin/features/settings/updateSettings/UpdateSettingsRepository.js +23 -0
  130. package/admin/features/settings/updateSettings/UpdateSettingsRepository.js.map +1 -0
  131. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.d.ts +11 -0
  132. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js +18 -0
  133. package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js.map +1 -0
  134. package/admin/features/settings/updateSettings/abstractions.d.ts +22 -0
  135. package/admin/features/settings/updateSettings/abstractions.js +7 -0
  136. package/admin/features/settings/updateSettings/abstractions.js.map +1 -0
  137. package/admin/features/settings/updateSettings/feature.d.ts +3 -0
  138. package/admin/features/settings/updateSettings/feature.js +21 -0
  139. package/admin/features/settings/updateSettings/feature.js.map +1 -0
  140. package/admin/features/settings/updateSettings/index.d.ts +2 -0
  141. package/admin/features/settings/updateSettings/index.js +2 -0
  142. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.d.ts +4 -0
  143. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js +49 -0
  144. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPage.js.map +1 -0
  145. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.d.ts +26 -0
  146. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js +160 -0
  147. package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js.map +1 -0
  148. package/admin/presentation/AiPowerUpsSettings/abstractions.d.ts +18 -0
  149. package/admin/presentation/AiPowerUpsSettings/abstractions.js +5 -0
  150. package/admin/presentation/AiPowerUpsSettings/abstractions.js.map +1 -0
  151. package/admin/presentation/AiPowerUpsSettings/feature.d.ts +3 -0
  152. package/admin/presentation/AiPowerUpsSettings/feature.js +29 -0
  153. package/admin/presentation/AiPowerUpsSettings/feature.js.map +1 -0
  154. package/admin/presentation/AiPowerUpsSettings/hasUsableModel.d.ts +13 -0
  155. package/admin/presentation/AiPowerUpsSettings/hasUsableModel.js +9 -0
  156. package/admin/presentation/AiPowerUpsSettings/hasUsableModel.js.map +1 -0
  157. package/admin/presentation/AiPowerUpsSettings/index.d.ts +4 -0
  158. package/admin/presentation/AiPowerUpsSettings/index.js +4 -0
  159. package/admin/presentation/AiPowerUpsSettings/settingsGroup.d.ts +26 -0
  160. package/admin/presentation/AiPowerUpsSettings/settingsGroup.js +5 -0
  161. package/admin/presentation/AiPowerUpsSettings/settingsGroup.js.map +1 -0
  162. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.d.ts +4 -0
  163. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js +27 -0
  164. package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js.map +1 -0
  165. package/admin/presentation/AiPromptFormFactory/AiPromptFormFactory.d.ts +20 -0
  166. package/admin/presentation/AiPromptFormFactory/AiPromptFormFactory.js +108 -0
  167. package/admin/presentation/AiPromptFormFactory/AiPromptFormFactory.js.map +1 -0
  168. package/admin/presentation/AiPromptFormFactory/abstractions.d.ts +14 -0
  169. package/admin/presentation/AiPromptFormFactory/abstractions.js +5 -0
  170. package/admin/presentation/AiPromptFormFactory/abstractions.js.map +1 -0
  171. package/admin/presentation/AiPromptFormFactory/feature.d.ts +1 -0
  172. package/admin/presentation/AiPromptFormFactory/feature.js +11 -0
  173. package/admin/presentation/AiPromptFormFactory/feature.js.map +1 -0
  174. package/admin/presentation/CapabilitiesSettings.d.ts +39 -0
  175. package/admin/presentation/CapabilitiesSettings.js +104 -0
  176. package/admin/presentation/CapabilitiesSettings.js.map +1 -0
  177. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDialog.d.ts +9 -0
  178. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDialog.js +118 -0
  179. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDialog.js.map +1 -0
  180. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDrawer.d.ts +9 -0
  181. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDrawer.js +72 -0
  182. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDrawer.js.map +1 -0
  183. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsMenuItem.d.ts +4 -0
  184. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsMenuItem.js +21 -0
  185. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsMenuItem.js.map +1 -0
  186. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsOverlays.d.ts +2 -0
  187. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsOverlays.js +17 -0
  188. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsOverlays.js.map +1 -0
  189. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsPresenter.d.ts +25 -0
  190. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsPresenter.js +90 -0
  191. package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsPresenter.js.map +1 -0
  192. package/admin/presentation/CmsCompareEntryRevisions/Extension.d.ts +2 -0
  193. package/admin/presentation/CmsCompareEntryRevisions/Extension.js +16 -0
  194. package/admin/presentation/CmsCompareEntryRevisions/Extension.js.map +1 -0
  195. package/admin/presentation/CmsCompareEntryRevisions/abstractions.d.ts +29 -0
  196. package/admin/presentation/CmsCompareEntryRevisions/abstractions.js +5 -0
  197. package/admin/presentation/CmsCompareEntryRevisions/abstractions.js.map +1 -0
  198. package/admin/presentation/CmsCompareEntryRevisions/feature.d.ts +3 -0
  199. package/admin/presentation/CmsCompareEntryRevisions/feature.js +17 -0
  200. package/admin/presentation/CmsCompareEntryRevisions/feature.js.map +1 -0
  201. package/admin/presentation/CmsContentGeneration/CmsGenerateContentButton.d.ts +4 -0
  202. package/admin/presentation/CmsContentGeneration/CmsGenerateContentButton.js +27 -0
  203. package/admin/presentation/CmsContentGeneration/CmsGenerateContentButton.js.map +1 -0
  204. package/admin/presentation/CmsContentGeneration/CmsGenerateContentDialog.d.ts +5 -0
  205. package/admin/presentation/CmsContentGeneration/CmsGenerateContentDialog.js +106 -0
  206. package/admin/presentation/CmsContentGeneration/CmsGenerateContentDialog.js.map +1 -0
  207. package/admin/presentation/CmsContentGeneration/CmsGenerateContentPresenter.d.ts +29 -0
  208. package/admin/presentation/CmsContentGeneration/CmsGenerateContentPresenter.js +120 -0
  209. package/admin/presentation/CmsContentGeneration/CmsGenerateContentPresenter.js.map +1 -0
  210. package/admin/presentation/CmsContentGeneration/Extension.d.ts +2 -0
  211. package/admin/presentation/CmsContentGeneration/Extension.js +27 -0
  212. package/admin/presentation/CmsContentGeneration/Extension.js.map +1 -0
  213. package/admin/presentation/CmsContentGeneration/abstractions.d.ts +20 -0
  214. package/admin/presentation/CmsContentGeneration/abstractions.js +5 -0
  215. package/admin/presentation/CmsContentGeneration/abstractions.js.map +1 -0
  216. package/admin/presentation/CmsContentGeneration/feature.d.ts +3 -0
  217. package/admin/presentation/CmsContentGeneration/feature.js +17 -0
  218. package/admin/presentation/CmsContentGeneration/feature.js.map +1 -0
  219. package/admin/presentation/CmsEntryWizard/CmsEntryWizard.d.ts +4 -0
  220. package/admin/presentation/CmsEntryWizard/CmsEntryWizard.js +113 -0
  221. package/admin/presentation/CmsEntryWizard/CmsEntryWizard.js.map +1 -0
  222. package/admin/presentation/CmsEntryWizard/CmsEntryWizardGate.d.ts +4 -0
  223. package/admin/presentation/CmsEntryWizard/CmsEntryWizardGate.js +22 -0
  224. package/admin/presentation/CmsEntryWizard/CmsEntryWizardGate.js.map +1 -0
  225. package/admin/presentation/CmsEntryWizard/Extension.d.ts +2 -0
  226. package/admin/presentation/CmsEntryWizard/Extension.js +10 -0
  227. package/admin/presentation/CmsEntryWizard/Extension.js.map +1 -0
  228. package/admin/presentation/ConnectionsSettings.d.ts +25 -0
  229. package/admin/presentation/ConnectionsSettings.js +52 -0
  230. package/admin/presentation/ConnectionsSettings.js.map +1 -0
  231. package/admin/presentation/ModelRolesSettings.d.ts +29 -0
  232. package/admin/presentation/ModelRolesSettings.js +67 -0
  233. package/admin/presentation/ModelRolesSettings.js.map +1 -0
  234. package/admin/presentation/ProjectsSettings.d.ts +11 -0
  235. package/admin/presentation/ProjectsSettings.js +56 -0
  236. package/admin/presentation/ProjectsSettings.js.map +1 -0
  237. package/admin/presentation/ProvidersSettings.d.ts +16 -0
  238. package/admin/presentation/ProvidersSettings.js +46 -0
  239. package/admin/presentation/ProvidersSettings.js.map +1 -0
  240. package/admin/presentation/ReaderPersonasSettings.d.ts +11 -0
  241. package/admin/presentation/ReaderPersonasSettings.js +37 -0
  242. package/admin/presentation/ReaderPersonasSettings.js.map +1 -0
  243. package/admin/presentation/WbContentGeneration/Extension.d.ts +2 -0
  244. package/admin/presentation/WbContentGeneration/Extension.js +22 -0
  245. package/admin/presentation/WbContentGeneration/Extension.js.map +1 -0
  246. package/admin/presentation/WbContentGeneration/GenerateContentButton.d.ts +2 -0
  247. package/admin/presentation/WbContentGeneration/GenerateContentButton.js +19 -0
  248. package/admin/presentation/WbContentGeneration/GenerateContentButton.js.map +1 -0
  249. package/admin/presentation/WbContentGeneration/GenerateContentDialog.d.ts +21 -0
  250. package/admin/presentation/WbContentGeneration/GenerateContentDialog.js +125 -0
  251. package/admin/presentation/WbContentGeneration/GenerateContentDialog.js.map +1 -0
  252. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.d.ts +33 -0
  253. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js +161 -0
  254. package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js.map +1 -0
  255. package/admin/presentation/WbContentGeneration/PROCESS_IDEA.md +190 -0
  256. package/admin/presentation/WbContentGeneration/abstractions.d.ts +31 -0
  257. package/admin/presentation/WbContentGeneration/abstractions.js +5 -0
  258. package/admin/presentation/WbContentGeneration/abstractions.js.map +1 -0
  259. package/admin/presentation/WbContentGeneration/decompressGzipBase64.d.ts +1 -0
  260. package/admin/presentation/WbContentGeneration/decompressGzipBase64.js +13 -0
  261. package/admin/presentation/WbContentGeneration/decompressGzipBase64.js.map +1 -0
  262. package/admin/presentation/WbContentGeneration/feature.d.ts +3 -0
  263. package/admin/presentation/WbContentGeneration/feature.js +17 -0
  264. package/admin/presentation/WbContentGeneration/feature.js.map +1 -0
  265. package/admin/presentation/WriterPersonasSettings.d.ts +11 -0
  266. package/admin/presentation/WriterPersonasSettings.js +37 -0
  267. package/admin/presentation/WriterPersonasSettings.js.map +1 -0
  268. package/admin/presentation/modelRoles.d.ts +10 -0
  269. package/admin/presentation/modelRoles.js +23 -0
  270. package/admin/presentation/modelRoles.js.map +1 -0
  271. package/admin/routes.d.ts +4 -0
  272. package/admin/routes.js +10 -0
  273. package/admin/routes.js.map +1 -0
  274. package/api/Extension.d.ts +4 -0
  275. package/api/Extension.js +68 -0
  276. package/api/Extension.js.map +1 -0
  277. package/api/constants.d.ts +1 -0
  278. package/api/constants.js +4 -0
  279. package/api/constants.js.map +1 -0
  280. package/api/features/AdminAssistant/AdminAssistantStreamRoute.d.ts +34 -0
  281. package/api/features/AdminAssistant/AdminAssistantStreamRoute.js +42 -0
  282. package/api/features/AdminAssistant/AdminAssistantStreamRoute.js.map +1 -0
  283. package/api/features/AdminAssistant/AdminAssistantUseCase.d.ts +42 -0
  284. package/api/features/AdminAssistant/AdminAssistantUseCase.js +170 -0
  285. package/api/features/AdminAssistant/AdminAssistantUseCase.js.map +1 -0
  286. package/api/features/AdminAssistant/abstractions.d.ts +38 -0
  287. package/api/features/AdminAssistant/abstractions.js +6 -0
  288. package/api/features/AdminAssistant/abstractions.js.map +1 -0
  289. package/api/features/AdminAssistant/approvals.d.ts +29 -0
  290. package/api/features/AdminAssistant/approvals.js +30 -0
  291. package/api/features/AdminAssistant/approvals.js.map +1 -0
  292. package/api/features/AdminAssistant/capability.d.ts +31 -0
  293. package/api/features/AdminAssistant/capability.js +19 -0
  294. package/api/features/AdminAssistant/capability.js.map +1 -0
  295. package/api/features/AdminAssistant/events.d.ts +54 -0
  296. package/api/features/AdminAssistant/events.js +0 -0
  297. package/api/features/AdminAssistant/feature.d.ts +12 -0
  298. package/api/features/AdminAssistant/feature.js +23 -0
  299. package/api/features/AdminAssistant/feature.js.map +1 -0
  300. package/api/features/AdminAssistant/index.d.ts +5 -0
  301. package/api/features/AdminAssistant/index.js +3 -0
  302. package/api/features/AdminAssistant/parseChatBody.d.ts +14 -0
  303. package/api/features/AdminAssistant/parseChatBody.js +33 -0
  304. package/api/features/AdminAssistant/parseChatBody.js.map +1 -0
  305. package/api/features/AdminAssistant/systemPrompt.d.ts +7 -0
  306. package/api/features/AdminAssistant/systemPrompt.js +24 -0
  307. package/api/features/AdminAssistant/systemPrompt.js.map +1 -0
  308. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.d.ts +11 -0
  309. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js +27 -0
  310. package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js.map +1 -0
  311. package/api/features/AiImageEnrichment/AiImageEnrichmentStreamRoute.d.ts +36 -0
  312. package/api/features/AiImageEnrichment/AiImageEnrichmentStreamRoute.js +92 -0
  313. package/api/features/AiImageEnrichment/AiImageEnrichmentStreamRoute.js.map +1 -0
  314. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.d.ts +41 -0
  315. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js +95 -0
  316. package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js.map +1 -0
  317. package/api/features/AiImageEnrichment/ApplyImageEnrichmentUseCase.d.ts +18 -0
  318. package/api/features/AiImageEnrichment/ApplyImageEnrichmentUseCase.js +50 -0
  319. package/api/features/AiImageEnrichment/ApplyImageEnrichmentUseCase.js.map +1 -0
  320. package/api/features/AiImageEnrichment/EnrichmentCapabilityDisabledError.d.ts +9 -0
  321. package/api/features/AiImageEnrichment/EnrichmentCapabilityDisabledError.js +8 -0
  322. package/api/features/AiImageEnrichment/EnrichmentCapabilityDisabledError.js.map +1 -0
  323. package/api/features/AiImageEnrichment/PrepareImageEnrichmentUseCase.d.ts +17 -0
  324. package/api/features/AiImageEnrichment/PrepareImageEnrichmentUseCase.js +47 -0
  325. package/api/features/AiImageEnrichment/PrepareImageEnrichmentUseCase.js.map +1 -0
  326. package/api/features/AiImageEnrichment/abstractions.d.ts +66 -0
  327. package/api/features/AiImageEnrichment/abstractions.js +12 -0
  328. package/api/features/AiImageEnrichment/abstractions.js.map +1 -0
  329. package/api/features/AiImageEnrichment/buildEnrichmentAiRequest.d.ts +12 -0
  330. package/api/features/AiImageEnrichment/buildEnrichmentAiRequest.js +30 -0
  331. package/api/features/AiImageEnrichment/buildEnrichmentAiRequest.js.map +1 -0
  332. package/api/features/AiImageEnrichment/capability.d.ts +18 -0
  333. package/api/features/AiImageEnrichment/capability.js +19 -0
  334. package/api/features/AiImageEnrichment/capability.js.map +1 -0
  335. package/api/features/AiImageEnrichment/errors.d.ts +33 -0
  336. package/api/features/AiImageEnrichment/errors.js +29 -0
  337. package/api/features/AiImageEnrichment/errors.js.map +1 -0
  338. package/api/features/AiImageEnrichment/feature.d.ts +4 -0
  339. package/api/features/AiImageEnrichment/feature.js +24 -0
  340. package/api/features/AiImageEnrichment/feature.js.map +1 -0
  341. package/api/features/AiImageEnrichment/imageEnrichmentErrorStatusCode.d.ts +6 -0
  342. package/api/features/AiImageEnrichment/imageEnrichmentErrorStatusCode.js +10 -0
  343. package/api/features/AiImageEnrichment/imageEnrichmentErrorStatusCode.js.map +1 -0
  344. package/api/features/AiImageEnrichment/readEnrichmentPartial.d.ts +8 -0
  345. package/api/features/AiImageEnrichment/readEnrichmentPartial.js +16 -0
  346. package/api/features/AiImageEnrichment/readEnrichmentPartial.js.map +1 -0
  347. package/api/features/AiImageEnrichment/streamEvents.d.ts +36 -0
  348. package/api/features/AiImageEnrichment/streamEvents.js +0 -0
  349. package/api/features/AiPromptContext/AiPromptContextBuilder.d.ts +19 -0
  350. package/api/features/AiPromptContext/AiPromptContextBuilder.js +147 -0
  351. package/api/features/AiPromptContext/AiPromptContextBuilder.js.map +1 -0
  352. package/api/features/AiPromptContext/ProjectFileAssembler.d.ts +22 -0
  353. package/api/features/AiPromptContext/ProjectFileAssembler.js +76 -0
  354. package/api/features/AiPromptContext/ProjectFileAssembler.js.map +1 -0
  355. package/api/features/AiPromptContext/ProjectFileCache.d.ts +16 -0
  356. package/api/features/AiPromptContext/ProjectFileCache.js +61 -0
  357. package/api/features/AiPromptContext/ProjectFileCache.js.map +1 -0
  358. package/api/features/AiPromptContext/ProjectSection.d.ts +4 -0
  359. package/api/features/AiPromptContext/ProjectSection.js +35 -0
  360. package/api/features/AiPromptContext/ProjectSection.js.map +1 -0
  361. package/api/features/AiPromptContext/ReadProjectFileTool.d.ts +3 -0
  362. package/api/features/AiPromptContext/ReadProjectFileTool.js +36 -0
  363. package/api/features/AiPromptContext/ReadProjectFileTool.js.map +1 -0
  364. package/api/features/AiPromptContext/ReaderPersonaSection.d.ts +4 -0
  365. package/api/features/AiPromptContext/ReaderPersonaSection.js +10 -0
  366. package/api/features/AiPromptContext/ReaderPersonaSection.js.map +1 -0
  367. package/api/features/AiPromptContext/WriterPersonaSection.d.ts +4 -0
  368. package/api/features/AiPromptContext/WriterPersonaSection.js +10 -0
  369. package/api/features/AiPromptContext/WriterPersonaSection.js.map +1 -0
  370. package/api/features/AiPromptContext/abstractions.d.ts +71 -0
  371. package/api/features/AiPromptContext/abstractions.js +15 -0
  372. package/api/features/AiPromptContext/abstractions.js.map +1 -0
  373. package/api/features/AiPromptContext/feature.d.ts +4 -0
  374. package/api/features/AiPromptContext/feature.js +15 -0
  375. package/api/features/AiPromptContext/feature.js.map +1 -0
  376. package/api/features/AiPromptContext/index.d.ts +1 -0
  377. package/api/features/AiPromptContext/index.js +1 -0
  378. package/api/features/Capabilities/AiCapabilityDisabledError.d.ts +16 -0
  379. package/api/features/Capabilities/AiCapabilityDisabledError.js +8 -0
  380. package/api/features/Capabilities/AiCapabilityDisabledError.js.map +1 -0
  381. package/api/features/Capabilities/AiModelNotAvailableError.d.ts +13 -0
  382. package/api/features/Capabilities/AiModelNotAvailableError.js +8 -0
  383. package/api/features/Capabilities/AiModelNotAvailableError.js.map +1 -0
  384. package/api/features/Capabilities/CapabilitiesHandler.d.ts +28 -0
  385. package/api/features/Capabilities/CapabilitiesHandler.js +56 -0
  386. package/api/features/Capabilities/CapabilitiesHandler.js.map +1 -0
  387. package/api/features/Capabilities/ListAiCapabilitiesUseCase.d.ts +18 -0
  388. package/api/features/Capabilities/ListAiCapabilitiesUseCase.js +28 -0
  389. package/api/features/Capabilities/ListAiCapabilitiesUseCase.js.map +1 -0
  390. package/api/features/Capabilities/ResolveAiCapabilityUseCase.d.ts +33 -0
  391. package/api/features/Capabilities/ResolveAiCapabilityUseCase.js +114 -0
  392. package/api/features/Capabilities/ResolveAiCapabilityUseCase.js.map +1 -0
  393. package/api/features/Capabilities/abstractions.d.ts +90 -0
  394. package/api/features/Capabilities/abstractions.js +7 -0
  395. package/api/features/Capabilities/abstractions.js.map +1 -0
  396. package/api/features/Capabilities/composeSystemPrompt.d.ts +14 -0
  397. package/api/features/Capabilities/composeSystemPrompt.js +13 -0
  398. package/api/features/Capabilities/composeSystemPrompt.js.map +1 -0
  399. package/api/features/Capabilities/feature.d.ts +4 -0
  400. package/api/features/Capabilities/feature.js +15 -0
  401. package/api/features/Capabilities/feature.js.map +1 -0
  402. package/api/features/Capabilities/index.d.ts +7 -0
  403. package/api/features/Capabilities/index.js +5 -0
  404. package/api/features/Capabilities/types.d.ts +86 -0
  405. package/api/features/Capabilities/types.js +4 -0
  406. package/api/features/Capabilities/types.js.map +1 -0
  407. package/api/features/CmsCompareEntryRevisions/CmsCompareEntryRevisionsUseCase.d.ts +20 -0
  408. package/api/features/CmsCompareEntryRevisions/CmsCompareEntryRevisionsUseCase.js +82 -0
  409. package/api/features/CmsCompareEntryRevisions/CmsCompareEntryRevisionsUseCase.js.map +1 -0
  410. package/api/features/CmsCompareEntryRevisions/abstractions.d.ts +18 -0
  411. package/api/features/CmsCompareEntryRevisions/abstractions.js +5 -0
  412. package/api/features/CmsCompareEntryRevisions/abstractions.js.map +1 -0
  413. package/api/features/CmsCompareEntryRevisions/capability.d.ts +13 -0
  414. package/api/features/CmsCompareEntryRevisions/capability.js +64 -0
  415. package/api/features/CmsCompareEntryRevisions/capability.js.map +1 -0
  416. package/api/features/CmsCompareEntryRevisions/feature.d.ts +4 -0
  417. package/api/features/CmsCompareEntryRevisions/feature.js +13 -0
  418. package/api/features/CmsCompareEntryRevisions/feature.js.map +1 -0
  419. package/api/features/CmsCompareEntryRevisions/index.d.ts +2 -0
  420. package/api/features/CmsCompareEntryRevisions/index.js +2 -0
  421. package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentTask.d.ts +38 -0
  422. package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentTask.js +93 -0
  423. package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentTask.js.map +1 -0
  424. package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentUseCase.d.ts +27 -0
  425. package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentUseCase.js +133 -0
  426. package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentUseCase.js.map +1 -0
  427. package/api/features/CmsGenerateEntryContent/abstractions.d.ts +36 -0
  428. package/api/features/CmsGenerateEntryContent/abstractions.js +5 -0
  429. package/api/features/CmsGenerateEntryContent/abstractions.js.map +1 -0
  430. package/api/features/CmsGenerateEntryContent/buildPrompt.d.ts +2 -0
  431. package/api/features/CmsGenerateEntryContent/buildPrompt.js +61 -0
  432. package/api/features/CmsGenerateEntryContent/buildPrompt.js.map +1 -0
  433. package/api/features/CmsGenerateEntryContent/capability.d.ts +17 -0
  434. package/api/features/CmsGenerateEntryContent/capability.js +17 -0
  435. package/api/features/CmsGenerateEntryContent/capability.js.map +1 -0
  436. package/api/features/CmsGenerateEntryContent/feature.d.ts +4 -0
  437. package/api/features/CmsGenerateEntryContent/feature.js +15 -0
  438. package/api/features/CmsGenerateEntryContent/feature.js.map +1 -0
  439. package/api/features/CmsGenerateEntryContent/index.d.ts +1 -0
  440. package/api/features/CmsGenerateEntryContent/index.js +1 -0
  441. package/api/features/CmsGenerateEntryContent/injectDynamicZoneTypenames.d.ts +2 -0
  442. package/api/features/CmsGenerateEntryContent/injectDynamicZoneTypenames.js +30 -0
  443. package/api/features/CmsGenerateEntryContent/injectDynamicZoneTypenames.js.map +1 -0
  444. package/api/features/CmsResolveImageTool/CmsResolveImageTool.d.ts +14 -0
  445. package/api/features/CmsResolveImageTool/CmsResolveImageTool.js +27 -0
  446. package/api/features/CmsResolveImageTool/CmsResolveImageTool.js.map +1 -0
  447. package/api/features/CmsResolveImageTool/feature.d.ts +4 -0
  448. package/api/features/CmsResolveImageTool/feature.js +11 -0
  449. package/api/features/CmsResolveImageTool/feature.js.map +1 -0
  450. package/api/features/ConfiguredAiModels/ConfiguredAiModelsService.d.ts +18 -0
  451. package/api/features/ConfiguredAiModels/ConfiguredAiModelsService.js +92 -0
  452. package/api/features/ConfiguredAiModels/ConfiguredAiModelsService.js.map +1 -0
  453. package/api/features/ConfiguredAiModels/abstractions.d.ts +32 -0
  454. package/api/features/ConfiguredAiModels/abstractions.js +5 -0
  455. package/api/features/ConfiguredAiModels/abstractions.js.map +1 -0
  456. package/api/features/ConfiguredAiModels/feature.d.ts +4 -0
  457. package/api/features/ConfiguredAiModels/feature.js +11 -0
  458. package/api/features/ConfiguredAiModels/feature.js.map +1 -0
  459. package/api/features/ConfiguredAiModels/index.d.ts +2 -0
  460. package/api/features/ConfiguredAiModels/index.js +1 -0
  461. package/api/features/Connections/ConnectionsGraphQLMapper.d.ts +20 -0
  462. package/api/features/Connections/ConnectionsGraphQLMapper.js +37 -0
  463. package/api/features/Connections/ConnectionsGraphQLMapper.js.map +1 -0
  464. package/api/features/Connections/ConnectionsHandler.d.ts +25 -0
  465. package/api/features/Connections/ConnectionsHandler.js +84 -0
  466. package/api/features/Connections/ConnectionsHandler.js.map +1 -0
  467. package/api/features/Connections/feature.d.ts +4 -0
  468. package/api/features/Connections/feature.js +13 -0
  469. package/api/features/Connections/feature.js.map +1 -0
  470. package/api/features/Connections/index.d.ts +2 -0
  471. package/api/features/Connections/index.js +1 -0
  472. package/api/features/Connections/legacyProviders.d.ts +26 -0
  473. package/api/features/Connections/legacyProviders.js +9 -0
  474. package/api/features/Connections/legacyProviders.js.map +1 -0
  475. package/api/features/Connections/types.d.ts +36 -0
  476. package/api/features/Connections/types.js +0 -0
  477. package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.d.ts +11 -0
  478. package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.js +34 -0
  479. package/api/features/ExtractFrontmatter/ExtractFrontmatterBeforeCreateHandler.js.map +1 -0
  480. package/api/features/ExtractFrontmatter/feature.d.ts +4 -0
  481. package/api/features/ExtractFrontmatter/feature.js +11 -0
  482. package/api/features/ExtractFrontmatter/feature.js.map +1 -0
  483. package/api/features/GetSettings/GetSettingsRepository.d.ts +16 -0
  484. package/api/features/GetSettings/GetSettingsRepository.js +40 -0
  485. package/api/features/GetSettings/GetSettingsRepository.js.map +1 -0
  486. package/api/features/GetSettings/GetSettingsUseCase.d.ts +10 -0
  487. package/api/features/GetSettings/GetSettingsUseCase.js +18 -0
  488. package/api/features/GetSettings/GetSettingsUseCase.js.map +1 -0
  489. package/api/features/GetSettings/abstractions.d.ts +16 -0
  490. package/api/features/GetSettings/abstractions.js +6 -0
  491. package/api/features/GetSettings/abstractions.js.map +1 -0
  492. package/api/features/GetSettings/feature.d.ts +4 -0
  493. package/api/features/GetSettings/feature.js +13 -0
  494. package/api/features/GetSettings/feature.js.map +1 -0
  495. package/api/features/GetSettings/index.d.ts +2 -0
  496. package/api/features/GetSettings/index.js +2 -0
  497. package/api/features/ModelRoles/ModelRolesHandler.d.ts +15 -0
  498. package/api/features/ModelRoles/ModelRolesHandler.js +74 -0
  499. package/api/features/ModelRoles/ModelRolesHandler.js.map +1 -0
  500. package/api/features/ModelRoles/feature.d.ts +4 -0
  501. package/api/features/ModelRoles/feature.js +11 -0
  502. package/api/features/ModelRoles/feature.js.map +1 -0
  503. package/api/features/ModelRoles/index.d.ts +4 -0
  504. package/api/features/ModelRoles/index.js +2 -0
  505. package/api/features/ModelRoles/roles.d.ts +16 -0
  506. package/api/features/ModelRoles/roles.js +9 -0
  507. package/api/features/ModelRoles/roles.js.map +1 -0
  508. package/api/features/ModelRoles/types.d.ts +21 -0
  509. package/api/features/ModelRoles/types.js +7 -0
  510. package/api/features/ModelRoles/types.js.map +1 -0
  511. package/api/features/Projects/ProjectsHandler.d.ts +31 -0
  512. package/api/features/Projects/ProjectsHandler.js +103 -0
  513. package/api/features/Projects/ProjectsHandler.js.map +1 -0
  514. package/api/features/Projects/feature.d.ts +4 -0
  515. package/api/features/Projects/feature.js +11 -0
  516. package/api/features/Projects/feature.js.map +1 -0
  517. package/api/features/Projects/types.d.ts +50 -0
  518. package/api/features/Projects/types.js +0 -0
  519. package/api/features/Providers/ProvidersGraphQLMapper.d.ts +21 -0
  520. package/api/features/Providers/ProvidersGraphQLMapper.js +39 -0
  521. package/api/features/Providers/ProvidersGraphQLMapper.js.map +1 -0
  522. package/api/features/Providers/ProvidersHandler.d.ts +26 -0
  523. package/api/features/Providers/ProvidersHandler.js +79 -0
  524. package/api/features/Providers/ProvidersHandler.js.map +1 -0
  525. package/api/features/Providers/feature.d.ts +4 -0
  526. package/api/features/Providers/feature.js +13 -0
  527. package/api/features/Providers/feature.js.map +1 -0
  528. package/api/features/Providers/index.d.ts +1 -0
  529. package/api/features/Providers/index.js +0 -0
  530. package/api/features/Providers/types.d.ts +29 -0
  531. package/api/features/Providers/types.js +0 -0
  532. package/api/features/ReaderPersonas/ReaderPersonasHandler.d.ts +20 -0
  533. package/api/features/ReaderPersonas/ReaderPersonasHandler.js +43 -0
  534. package/api/features/ReaderPersonas/ReaderPersonasHandler.js.map +1 -0
  535. package/api/features/ReaderPersonas/feature.d.ts +4 -0
  536. package/api/features/ReaderPersonas/feature.js +11 -0
  537. package/api/features/ReaderPersonas/feature.js.map +1 -0
  538. package/api/features/ReaderPersonas/index.d.ts +2 -0
  539. package/api/features/ReaderPersonas/index.js +1 -0
  540. package/api/features/ReaderPersonas/types.d.ts +24 -0
  541. package/api/features/ReaderPersonas/types.js +0 -0
  542. package/api/features/UpdateSettings/UpdateSettingsRepository.d.ts +16 -0
  543. package/api/features/UpdateSettings/UpdateSettingsRepository.js +71 -0
  544. package/api/features/UpdateSettings/UpdateSettingsRepository.js.map +1 -0
  545. package/api/features/UpdateSettings/UpdateSettingsUseCase.d.ts +13 -0
  546. package/api/features/UpdateSettings/UpdateSettingsUseCase.js +30 -0
  547. package/api/features/UpdateSettings/UpdateSettingsUseCase.js.map +1 -0
  548. package/api/features/UpdateSettings/abstractions.d.ts +36 -0
  549. package/api/features/UpdateSettings/abstractions.js +8 -0
  550. package/api/features/UpdateSettings/abstractions.js.map +1 -0
  551. package/api/features/UpdateSettings/errors.d.ts +10 -0
  552. package/api/features/UpdateSettings/errors.js +14 -0
  553. package/api/features/UpdateSettings/errors.js.map +1 -0
  554. package/api/features/UpdateSettings/events.d.ts +10 -0
  555. package/api/features/UpdateSettings/events.js +21 -0
  556. package/api/features/UpdateSettings/events.js.map +1 -0
  557. package/api/features/UpdateSettings/feature.d.ts +4 -0
  558. package/api/features/UpdateSettings/feature.js +13 -0
  559. package/api/features/UpdateSettings/feature.js.map +1 -0
  560. package/api/features/UpdateSettings/index.d.ts +1 -0
  561. package/api/features/UpdateSettings/index.js +1 -0
  562. package/api/features/WbGeneratePageContent/ComponentFilter.d.ts +18 -0
  563. package/api/features/WbGeneratePageContent/ComponentFilter.js +69 -0
  564. package/api/features/WbGeneratePageContent/ComponentFilter.js.map +1 -0
  565. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.d.ts +39 -0
  566. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js +94 -0
  567. package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js.map +1 -0
  568. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.d.ts +21 -0
  569. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js +113 -0
  570. package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js.map +1 -0
  571. package/api/features/WbGeneratePageContent/abstractions.d.ts +31 -0
  572. package/api/features/WbGeneratePageContent/abstractions.js +5 -0
  573. package/api/features/WbGeneratePageContent/abstractions.js.map +1 -0
  574. package/api/features/WbGeneratePageContent/buildPrompt.d.ts +3 -0
  575. package/api/features/WbGeneratePageContent/buildPrompt.js +158 -0
  576. package/api/features/WbGeneratePageContent/buildPrompt.js.map +1 -0
  577. package/api/features/WbGeneratePageContent/capability.d.ts +16 -0
  578. package/api/features/WbGeneratePageContent/capability.js +17 -0
  579. package/api/features/WbGeneratePageContent/capability.js.map +1 -0
  580. package/api/features/WbGeneratePageContent/feature.d.ts +4 -0
  581. package/api/features/WbGeneratePageContent/feature.js +15 -0
  582. package/api/features/WbGeneratePageContent/feature.js.map +1 -0
  583. package/api/features/WbGeneratePageContent/index.d.ts +1 -0
  584. package/api/features/WbGeneratePageContent/index.js +1 -0
  585. package/api/features/WbTranslatePage/LexicalParser.d.ts +10 -0
  586. package/api/features/WbTranslatePage/LexicalParser.js +37 -0
  587. package/api/features/WbTranslatePage/LexicalParser.js.map +1 -0
  588. package/api/features/WbTranslatePage/WbTranslateLayoutDecorator.d.ts +44 -0
  589. package/api/features/WbTranslatePage/WbTranslateLayoutDecorator.js +185 -0
  590. package/api/features/WbTranslatePage/WbTranslateLayoutDecorator.js.map +1 -0
  591. package/api/features/WbTranslatePage/WbTranslatePageDecorator.d.ts +38 -0
  592. package/api/features/WbTranslatePage/WbTranslatePageDecorator.js +163 -0
  593. package/api/features/WbTranslatePage/WbTranslatePageDecorator.js.map +1 -0
  594. package/api/features/WbTranslatePage/abstractions/LexicalParser.d.ts +7 -0
  595. package/api/features/WbTranslatePage/abstractions/LexicalParser.js +5 -0
  596. package/api/features/WbTranslatePage/abstractions/LexicalParser.js.map +1 -0
  597. package/api/features/WbTranslatePage/capability.d.ts +13 -0
  598. package/api/features/WbTranslatePage/capability.js +19 -0
  599. package/api/features/WbTranslatePage/capability.js.map +1 -0
  600. package/api/features/WbTranslatePage/feature.d.ts +4 -0
  601. package/api/features/WbTranslatePage/feature.js +20 -0
  602. package/api/features/WbTranslatePage/feature.js.map +1 -0
  603. package/api/features/WbTranslatePage/index.d.ts +2 -0
  604. package/api/features/WbTranslatePage/index.js +2 -0
  605. package/api/features/WbTranslatePage/translatableBindings.d.ts +21 -0
  606. package/api/features/WbTranslatePage/translatableBindings.js +57 -0
  607. package/api/features/WbTranslatePage/translatableBindings.js.map +1 -0
  608. package/api/features/WbTranslatePage/translatableGlobals.d.ts +21 -0
  609. package/api/features/WbTranslatePage/translatableGlobals.js +29 -0
  610. package/api/features/WbTranslatePage/translatableGlobals.js.map +1 -0
  611. package/api/features/WorkflowReview/AiStepRunner/AiStepRunner.d.ts +41 -0
  612. package/api/features/WorkflowReview/AiStepRunner/AiStepRunner.js +253 -0
  613. package/api/features/WorkflowReview/AiStepRunner/AiStepRunner.js.map +1 -0
  614. package/api/features/WorkflowReview/AiStepRunner/aiRunFailureReasons.d.ts +4 -0
  615. package/api/features/WorkflowReview/AiStepRunner/aiRunFailureReasons.js +7 -0
  616. package/api/features/WorkflowReview/AiStepRunner/aiRunFailureReasons.js.map +1 -0
  617. package/api/features/WorkflowReview/AiStepRunner/feature.d.ts +5 -0
  618. package/api/features/WorkflowReview/AiStepRunner/feature.js +11 -0
  619. package/api/features/WorkflowReview/AiStepRunner/feature.js.map +1 -0
  620. package/api/features/WorkflowReview/AiStepType/AiStepType.d.ts +53 -0
  621. package/api/features/WorkflowReview/AiStepType/AiStepType.js +121 -0
  622. package/api/features/WorkflowReview/AiStepType/AiStepType.js.map +1 -0
  623. package/api/features/WorkflowReview/ListWorkflowAiModels/ListWorkflowAiModelsUseCase.d.ts +17 -0
  624. package/api/features/WorkflowReview/ListWorkflowAiModels/ListWorkflowAiModelsUseCase.js +61 -0
  625. package/api/features/WorkflowReview/ListWorkflowAiModels/ListWorkflowAiModelsUseCase.js.map +1 -0
  626. package/api/features/WorkflowReview/ListWorkflowAiModels/abstractions.d.ts +32 -0
  627. package/api/features/WorkflowReview/ListWorkflowAiModels/abstractions.js +5 -0
  628. package/api/features/WorkflowReview/ListWorkflowAiModels/abstractions.js.map +1 -0
  629. package/api/features/WorkflowReview/ListWorkflowAiModels/feature.d.ts +4 -0
  630. package/api/features/WorkflowReview/ListWorkflowAiModels/feature.js +11 -0
  631. package/api/features/WorkflowReview/ListWorkflowAiModels/feature.js.map +1 -0
  632. package/api/features/WorkflowReview/ListWorkflowAiModels/index.d.ts +2 -0
  633. package/api/features/WorkflowReview/ListWorkflowAiModels/index.js +1 -0
  634. package/api/features/WorkflowReview/WorkflowsReviewCapability.d.ts +12 -0
  635. package/api/features/WorkflowReview/WorkflowsReviewCapability.js +38 -0
  636. package/api/features/WorkflowReview/WorkflowsReviewCapability.js.map +1 -0
  637. package/api/features/WorkflowReview/aiFailureReasons.d.ts +11 -0
  638. package/api/features/WorkflowReview/aiFailureReasons.js +9 -0
  639. package/api/features/WorkflowReview/aiFailureReasons.js.map +1 -0
  640. package/api/features/WorkflowReview/aiReviewOutputSchema.d.ts +29 -0
  641. package/api/features/WorkflowReview/aiReviewOutputSchema.js +28 -0
  642. package/api/features/WorkflowReview/aiReviewOutputSchema.js.map +1 -0
  643. package/api/features/WorkflowReview/aiStepConfigSchema.d.ts +13 -0
  644. package/api/features/WorkflowReview/aiStepConfigSchema.js +11 -0
  645. package/api/features/WorkflowReview/aiStepConfigSchema.js.map +1 -0
  646. package/api/features/WorkflowReview/buildAiStepPrompt.d.ts +35 -0
  647. package/api/features/WorkflowReview/buildAiStepPrompt.js +47 -0
  648. package/api/features/WorkflowReview/buildAiStepPrompt.js.map +1 -0
  649. package/api/features/WorkflowReview/constants.d.ts +8 -0
  650. package/api/features/WorkflowReview/constants.js +7 -0
  651. package/api/features/WorkflowReview/constants.js.map +1 -0
  652. package/api/features/WorkflowReview/toLoggedAiError.d.ts +13 -0
  653. package/api/features/WorkflowReview/toLoggedAiError.js +27 -0
  654. package/api/features/WorkflowReview/toLoggedAiError.js.map +1 -0
  655. package/api/features/WriterPersonas/WriterPersonasHandler.d.ts +20 -0
  656. package/api/features/WriterPersonas/WriterPersonasHandler.js +43 -0
  657. package/api/features/WriterPersonas/WriterPersonasHandler.js.map +1 -0
  658. package/api/features/WriterPersonas/feature.d.ts +4 -0
  659. package/api/features/WriterPersonas/feature.js +11 -0
  660. package/api/features/WriterPersonas/feature.js.map +1 -0
  661. package/api/features/WriterPersonas/index.d.ts +2 -0
  662. package/api/features/WriterPersonas/index.js +1 -0
  663. package/api/features/WriterPersonas/types.d.ts +24 -0
  664. package/api/features/WriterPersonas/types.js +0 -0
  665. package/api/features/shared/SettingsCache.d.ts +12 -0
  666. package/api/features/shared/SettingsCache.js +22 -0
  667. package/api/features/shared/SettingsCache.js.map +1 -0
  668. package/api/features/shared/abstractions.d.ts +38 -0
  669. package/api/features/shared/abstractions.js +7 -0
  670. package/api/features/shared/abstractions.js.map +1 -0
  671. package/api/features/shared/index.d.ts +3 -0
  672. package/api/features/shared/index.js +1 -0
  673. package/api/features/shared/modelId.d.ts +11 -0
  674. package/api/features/shared/modelId.js +4 -0
  675. package/api/features/shared/modelId.js.map +1 -0
  676. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.d.ts +13 -0
  677. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js +44 -0
  678. package/api/graphql/AiPowerUpsSettingsGraphQLMapper.js.map +1 -0
  679. package/api/graphql/BaseGraphQLSchema.d.ts +9 -0
  680. package/api/graphql/BaseGraphQLSchema.js +194 -0
  681. package/api/graphql/BaseGraphQLSchema.js.map +1 -0
  682. package/api/graphql/CmsCompareEntryRevisionsSchema.d.ts +9 -0
  683. package/api/graphql/CmsCompareEntryRevisionsSchema.js +72 -0
  684. package/api/graphql/CmsCompareEntryRevisionsSchema.js.map +1 -0
  685. package/api/graphql/ListWorkflowAiModelsSchema.d.ts +15 -0
  686. package/api/graphql/ListWorkflowAiModelsSchema.js +48 -0
  687. package/api/graphql/ListWorkflowAiModelsSchema.js.map +1 -0
  688. package/api/graphql/abstractions.d.ts +9 -0
  689. package/api/graphql/abstractions.js +5 -0
  690. package/api/graphql/abstractions.js.map +1 -0
  691. package/api/types.d.ts +8 -0
  692. package/api/types.js +6 -0
  693. package/domain/LlmJsonResponse.d.ts +8 -0
  694. package/domain/LlmJsonResponse.js +38 -0
  695. package/domain/LlmJsonResponse.js.map +1 -0
  696. package/domain/TranslatableBindingKey.d.ts +17 -0
  697. package/domain/TranslatableBindingKey.js +23 -0
  698. package/domain/TranslatableBindingKey.js.map +1 -0
  699. package/exports/admin/ai-powerups.d.ts +1 -0
  700. package/exports/admin/ai-powerups.js +1 -0
  701. package/exports/api/ai-powerups.d.ts +7 -0
  702. package/exports/api/ai-powerups.js +5 -0
  703. package/index.d.ts +1 -0
  704. package/index.js +1 -0
  705. package/package.json +72 -0
@@ -0,0 +1,4 @@
1
+ export declare const WbTranslatePageFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,20 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { FeatureFlags } from "@webiny/api-core/features/featureFlags/abstractions.js";
3
+ import { WbTranslatePageDecorator } from "./WbTranslatePageDecorator.js";
4
+ import { WbTranslateLayoutDecorator } from "./WbTranslateLayoutDecorator.js";
5
+ import { LexicalParser } from "./LexicalParser.js";
6
+ import { WbTranslatePageCapability } from "./capability.js";
7
+ const WbTranslatePageFeature = createFeature({
8
+ name: "AiPowerUps/WbTranslatePage",
9
+ register (container) {
10
+ const enabled = container.resolve(FeatureFlags).get().isEnabled("aiPowerups.websiteBuilder.pageTranslation");
11
+ if (!enabled) return;
12
+ container.register(WbTranslatePageCapability);
13
+ container.register(LexicalParser).inSingletonScope();
14
+ container.registerDecorator(WbTranslatePageDecorator);
15
+ container.registerDecorator(WbTranslateLayoutDecorator);
16
+ }
17
+ });
18
+ export { WbTranslatePageFeature };
19
+
20
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/WbTranslatePage/feature.js","sources":["../../../../src/api/features/WbTranslatePage/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { FeatureFlags } from \"@webiny/api-core/features/featureFlags/abstractions.js\";\nimport { WbTranslatePageDecorator } from \"./WbTranslatePageDecorator.js\";\nimport { WbTranslateLayoutDecorator } from \"./WbTranslateLayoutDecorator.js\";\nimport { LexicalParser } from \"./LexicalParser.js\";\nimport { WbTranslatePageCapability } from \"./capability.js\";\n\nexport const WbTranslatePageFeature = createFeature({\n name: \"AiPowerUps/WbTranslatePage\",\n register(container) {\n /*\n * Register-time gate on the effective feature flags (project config && live WCP license),\n * the same as AiImageEnrichmentFeature. Without it, translating a page still copies it into\n * the target language, untranslated.\n */\n const enabled = container\n .resolve(FeatureFlags)\n .get()\n .isEnabled(\"aiPowerups.websiteBuilder.pageTranslation\");\n\n if (!enabled) {\n return;\n }\n\n container.register(WbTranslatePageCapability);\n container.register(LexicalParser).inSingletonScope();\n container.registerDecorator(WbTranslatePageDecorator);\n // Layout language versions are translated under the same \"Page translation\" capability.\n container.registerDecorator(WbTranslateLayoutDecorator);\n }\n});\n"],"names":["WbTranslatePageFeature","createFeature","container","enabled","FeatureFlags","WbTranslatePageCapability","LexicalParser","WbTranslatePageDecorator","WbTranslateLayoutDecorator"],"mappings":";;;;;;AAOO,MAAMA,yBAAyBC,cAAc;IAChD,MAAM;IACN,UAASC,SAAS;QAMd,MAAMC,UAAUD,UACX,OAAO,CAACE,cACR,GAAG,GACH,SAAS,CAAC;QAEf,IAAI,CAACD,SACD;QAGJD,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI,eAAe,gBAAgB;QAClDJ,UAAU,iBAAiB,CAACK;QAE5BL,UAAU,iBAAiB,CAACM;IAChC;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { LexicalParser } from "./abstractions/LexicalParser.js";
2
+ export { WbTranslatePageFeature } from "./feature.js";
@@ -0,0 +1,2 @@
1
+ export { LexicalParser } from "./abstractions/LexicalParser.js";
2
+ export { WbTranslatePageFeature } from "./feature.js";
@@ -0,0 +1,21 @@
1
+ import type { LexicalParser } from "./abstractions/LexicalParser.js";
2
+ /**
3
+ * Collecting the text of a document's bindings for the AI, and writing the translated text back.
4
+ * Shared by page and layout translation. Every binding entry is walked, whatever element it's under:
5
+ * a document's own elements, and its overrides of elements it doesn't own (globals, layout elements).
6
+ */
7
+ export type TranslatableInputType = "text" | "longText" | "lexical";
8
+ export interface TranslatableBinding {
9
+ type: TranslatableInputType;
10
+ value: string;
11
+ }
12
+ export type TranslatableBindings = Record<string, TranslatableBinding>;
13
+ /**
14
+ * The text, long text and rich text inputs of the given bindings, by binding key.
15
+ */
16
+ export declare const extractTranslatableBindings: (bindings: Record<string, any> | null | undefined) => TranslatableBindings;
17
+ /**
18
+ * A copy of the source bindings with the translated values written in. Inputs the AI left out keep
19
+ * their source values; keys that don't name an input are ignored.
20
+ */
21
+ export declare const applyTranslatedBindings: (source: Record<string, any>, translated: Record<string, TranslatableBinding> | null | undefined, lexicalParser: LexicalParser.Interface) => Promise<Record<string, any>>;
@@ -0,0 +1,57 @@
1
+ import set from "lodash/set";
2
+ import { TranslatableBindingKey } from "../../../domain/TranslatableBindingKey.js";
3
+ const extractTranslatableBindings = (bindings)=>{
4
+ const result = {};
5
+ for(const elementId in bindings ?? {}){
6
+ const inputs = bindings[elementId]?.inputs;
7
+ if (inputs) for(const inputName in inputs){
8
+ const input = inputs[inputName];
9
+ const key = TranslatableBindingKey.from(elementId, inputName).toString();
10
+ if (input && false !== input.translatable) {
11
+ if ("text" === input.type || "longText" === input.type) {
12
+ if ("string" != typeof input.static || !input.static) continue;
13
+ result[key] = {
14
+ type: input.type,
15
+ value: input.static
16
+ };
17
+ } else if ("lexical" === input.type && input.static?.html) result[key] = {
18
+ type: input.type,
19
+ value: input.static.html
20
+ };
21
+ }
22
+ }
23
+ }
24
+ return result;
25
+ };
26
+ const applyTranslatedBindings = async (source, translated, lexicalParser)=>{
27
+ const bindings = structuredClone(source ?? {});
28
+ for (const [key, binding] of Object.entries(translated ?? {})){
29
+ const bindingKey = TranslatableBindingKey.parse(key);
30
+ if (!bindingKey || !binding || "string" != typeof binding.value) continue;
31
+ const { elementId, inputName } = bindingKey;
32
+ if (!bindings[elementId]?.inputs?.[inputName]) continue;
33
+ const path = [
34
+ elementId,
35
+ "inputs",
36
+ inputName,
37
+ "static"
38
+ ];
39
+ if ("lexical" === binding.type) {
40
+ const state = await lexicalParser.parse(binding.value);
41
+ if (state) {
42
+ set(bindings, [
43
+ ...path,
44
+ "state"
45
+ ], JSON.stringify(state));
46
+ set(bindings, [
47
+ ...path,
48
+ "html"
49
+ ], binding.value);
50
+ }
51
+ } else set(bindings, path, binding.value);
52
+ }
53
+ return bindings;
54
+ };
55
+ export { applyTranslatedBindings, extractTranslatableBindings };
56
+
57
+ //# sourceMappingURL=translatableBindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/WbTranslatePage/translatableBindings.js","sources":["../../../../src/api/features/WbTranslatePage/translatableBindings.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport type { LexicalParser } from \"./abstractions/LexicalParser.js\";\nimport { TranslatableBindingKey } from \"~/domain/TranslatableBindingKey.js\";\n\n/**\n * Collecting the text of a document's bindings for the AI, and writing the translated text back.\n * Shared by page and layout translation. Every binding entry is walked, whatever element it's under:\n * a document's own elements, and its overrides of elements it doesn't own (globals, layout elements).\n */\n\nexport type TranslatableInputType = \"text\" | \"longText\" | \"lexical\";\n\nexport interface TranslatableBinding {\n type: TranslatableInputType;\n value: string;\n}\n\n// Keyed by `TranslatableBindingKey`.\nexport type TranslatableBindings = Record<string, TranslatableBinding>;\n\n/**\n * The text, long text and rich text inputs of the given bindings, by binding key.\n */\nexport const extractTranslatableBindings = (\n bindings: Record<string, any> | null | undefined\n): TranslatableBindings => {\n const result: TranslatableBindings = {};\n\n for (const elementId in bindings ?? {}) {\n const inputs = bindings![elementId]?.inputs;\n if (!inputs) {\n continue;\n }\n\n for (const inputName in inputs) {\n const input = inputs[inputName];\n const key = TranslatableBindingKey.from(elementId, inputName).toString();\n // An input marked as not translatable keeps its value in every language (e.g., the name of a\n // layout's page content area, which pages' content is stored under).\n if (!input || input.translatable === false) {\n continue;\n }\n if (input.type === \"text\" || input.type === \"longText\") {\n if (typeof input.static !== \"string\" || !input.static) {\n continue;\n }\n result[key] = {\n type: input.type,\n value: input.static\n };\n } else if (input.type === \"lexical\" && input.static?.html) {\n result[key] = {\n type: input.type,\n value: input.static.html\n };\n }\n }\n }\n\n return result;\n};\n\n/**\n * A copy of the source bindings with the translated values written in. Inputs the AI left out keep\n * their source values; keys that don't name an input are ignored.\n */\nexport const applyTranslatedBindings = async (\n source: Record<string, any>,\n translated: Record<string, TranslatableBinding> | null | undefined,\n lexicalParser: LexicalParser.Interface\n): Promise<Record<string, any>> => {\n const bindings: Record<string, any> = structuredClone(source ?? {});\n\n for (const [key, binding] of Object.entries(translated ?? {})) {\n const bindingKey = TranslatableBindingKey.parse(key);\n if (!bindingKey || !binding || typeof binding.value !== \"string\") {\n continue;\n }\n const { elementId, inputName } = bindingKey;\n // Only inputs that are in the source: an invented key must not create bindings.\n if (!bindings[elementId]?.inputs?.[inputName]) {\n continue;\n }\n // An array path, so lodash doesn't read the dots of an element id as nesting.\n const path = [elementId, \"inputs\", inputName, \"static\"];\n if (binding.type === \"lexical\") {\n const state = await lexicalParser.parse(binding.value);\n if (state) {\n set(bindings, [...path, \"state\"], JSON.stringify(state));\n set(bindings, [...path, \"html\"], binding.value);\n }\n } else {\n set(bindings, path, binding.value);\n }\n }\n\n return bindings;\n};\n"],"names":["extractTranslatableBindings","bindings","result","elementId","inputs","inputName","input","key","TranslatableBindingKey","applyTranslatedBindings","source","translated","lexicalParser","structuredClone","binding","Object","bindingKey","path","state","set","JSON"],"mappings":";;AAuBO,MAAMA,8BAA8B,CACvCC;IAEA,MAAMC,SAA+B,CAAC;IAEtC,IAAK,MAAMC,aAAaF,YAAY,CAAC,EAAG;QACpC,MAAMG,SAASH,QAAS,CAACE,UAAU,EAAE;QACrC,IAAKC,QAIL,IAAK,MAAMC,aAAaD,OAAQ;YAC5B,MAAME,QAAQF,MAAM,CAACC,UAAU;YAC/B,MAAME,MAAMC,uBAAuB,IAAI,CAACL,WAAWE,WAAW,QAAQ;YAGtE,IAAI,AAACC,SAASA,AAAuB,UAAvBA,MAAM,YAAY,EAGhC;gBAAA,IAAIA,AAAe,WAAfA,MAAM,IAAI,IAAeA,AAAe,eAAfA,MAAM,IAAI,EAAiB;oBACpD,IAAI,AAAwB,YAAxB,OAAOA,MAAM,MAAM,IAAiB,CAACA,MAAM,MAAM,EACjD;oBAEJJ,MAAM,CAACK,IAAI,GAAG;wBACV,MAAMD,MAAM,IAAI;wBAChB,OAAOA,MAAM,MAAM;oBACvB;gBACJ,OAAO,IAAIA,AAAe,cAAfA,MAAM,IAAI,IAAkBA,MAAM,MAAM,EAAE,MACjDJ,MAAM,CAACK,IAAI,GAAG;oBACV,MAAMD,MAAM,IAAI;oBAChB,OAAOA,MAAM,MAAM,CAAC,IAAI;gBAC5B;YACJ;QACJ;IACJ;IAEA,OAAOJ;AACX;AAMO,MAAMO,0BAA0B,OACnCC,QACAC,YACAC;IAEA,MAAMX,WAAgCY,gBAAgBH,UAAU,CAAC;IAEjE,KAAK,MAAM,CAACH,KAAKO,QAAQ,IAAIC,OAAO,OAAO,CAACJ,cAAc,CAAC,GAAI;QAC3D,MAAMK,aAAaR,uBAAuB,KAAK,CAACD;QAChD,IAAI,CAACS,cAAc,CAACF,WAAW,AAAyB,YAAzB,OAAOA,QAAQ,KAAK,EAC/C;QAEJ,MAAM,EAAEX,SAAS,EAAEE,SAAS,EAAE,GAAGW;QAEjC,IAAI,CAACf,QAAQ,CAACE,UAAU,EAAE,QAAQ,CAACE,UAAU,EACzC;QAGJ,MAAMY,OAAO;YAACd;YAAW;YAAUE;YAAW;SAAS;QACvD,IAAIS,AAAiB,cAAjBA,QAAQ,IAAI,EAAgB;YAC5B,MAAMI,QAAQ,MAAMN,cAAc,KAAK,CAACE,QAAQ,KAAK;YACrD,IAAII,OAAO;gBACPC,IAAIlB,UAAU;uBAAIgB;oBAAM;iBAAQ,EAAEG,KAAK,SAAS,CAACF;gBACjDC,IAAIlB,UAAU;uBAAIgB;oBAAM;iBAAO,EAAEH,QAAQ,KAAK;YAClD;QACJ,OACIK,IAAIlB,UAAUgB,MAAMH,QAAQ,KAAK;IAEzC;IAEA,OAAOb;AACX"}
@@ -0,0 +1,21 @@
1
+ import type { Logger } from "@webiny/api-core/features/logger/index.js";
2
+ import type { GlobalComponent, SaveGlobalComponentRepository } from "@webiny/api-website-builder/exports/api/website-builder/globals.js";
3
+ import type { LexicalParser } from "./abstractions/LexicalParser.js";
4
+ import { type TranslatableBindings } from "./translatableBindings.js";
5
+ /**
6
+ * Creating the target-language records of global components while a page or layout is translated.
7
+ * Shared by page and layout translation. Each global's bindings are sent to the AI grouped by its name,
8
+ * apart from the document's own bindings (which may override the same global).
9
+ */
10
+ export type TranslatableGlobals = Record<string, TranslatableBindings>;
11
+ export declare const extractTranslatableGlobals: (globals: GlobalComponent[]) => TranslatableGlobals;
12
+ interface SaveTranslatedGlobalComponentsParams {
13
+ globals: GlobalComponent[];
14
+ translated: TranslatableGlobals | null | undefined;
15
+ language: string;
16
+ lexicalParser: LexicalParser.Interface;
17
+ repository: SaveGlobalComponentRepository.Interface;
18
+ logger: Logger.Interface;
19
+ }
20
+ export declare const saveTranslatedGlobalComponents: (params: SaveTranslatedGlobalComponentsParams) => Promise<void>;
21
+ export {};
@@ -0,0 +1,29 @@
1
+ import { applyTranslatedBindings, extractTranslatableBindings } from "./translatableBindings.js";
2
+ const extractTranslatableGlobals = (globals)=>{
3
+ const result = {};
4
+ for (const globalComponent of globals){
5
+ const bindings = extractTranslatableBindings(globalComponent.bindings);
6
+ if (Object.keys(bindings).length) result[globalComponent.name] = bindings;
7
+ }
8
+ return result;
9
+ };
10
+ const saveTranslatedGlobalComponents = async (params)=>{
11
+ const { globals, translated, language, lexicalParser, repository, logger } = params;
12
+ for (const globalComponent of globals){
13
+ const bindings = await applyTranslatedBindings(globalComponent.bindings, translated?.[globalComponent.name], lexicalParser);
14
+ const result = await repository.execute({
15
+ name: globalComponent.name,
16
+ language,
17
+ elements: structuredClone(globalComponent.elements),
18
+ bindings
19
+ });
20
+ if (result.isFail()) logger.warn({
21
+ reason: result.error.message,
22
+ name: globalComponent.name,
23
+ language
24
+ }, "Could not save an AI translated global component.");
25
+ }
26
+ };
27
+ export { extractTranslatableGlobals, saveTranslatedGlobalComponents };
28
+
29
+ //# sourceMappingURL=translatableGlobals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/WbTranslatePage/translatableGlobals.js","sources":["../../../../src/api/features/WbTranslatePage/translatableGlobals.ts"],"sourcesContent":["import type { Logger } from \"@webiny/api-core/features/logger/index.js\";\nimport type {\n GlobalComponent,\n SaveGlobalComponentRepository\n} from \"@webiny/api-website-builder/exports/api/website-builder/globals.js\";\nimport type { LexicalParser } from \"./abstractions/LexicalParser.js\";\nimport {\n applyTranslatedBindings,\n extractTranslatableBindings,\n type TranslatableBindings\n} from \"./translatableBindings.js\";\n\n/**\n * Creating the target-language records of global components while a page or layout is translated.\n * Shared by page and layout translation. Each global's bindings are sent to the AI grouped by its name,\n * apart from the document's own bindings (which may override the same global).\n */\n\n// The bindings of each global to create in the target language, by global name.\nexport type TranslatableGlobals = Record<string, TranslatableBindings>;\n\nexport const extractTranslatableGlobals = (globals: GlobalComponent[]): TranslatableGlobals => {\n const result: TranslatableGlobals = {};\n for (const globalComponent of globals) {\n const bindings = extractTranslatableBindings(globalComponent.bindings);\n if (Object.keys(bindings).length) {\n result[globalComponent.name] = bindings;\n }\n }\n return result;\n};\n\ninterface SaveTranslatedGlobalComponentsParams {\n globals: GlobalComponent[];\n translated: TranslatableGlobals | null | undefined;\n language: string;\n lexicalParser: LexicalParser.Interface;\n repository: SaveGlobalComponentRepository.Interface;\n logger: Logger.Interface;\n}\n\nexport const saveTranslatedGlobalComponents = async (\n params: SaveTranslatedGlobalComponentsParams\n) => {\n const { globals, translated, language, lexicalParser, repository, logger } = params;\n\n for (const globalComponent of globals) {\n // Inputs the AI left out keep their source values; a global with no text is copied as is.\n const bindings = await applyTranslatedBindings(\n globalComponent.bindings,\n translated?.[globalComponent.name],\n lexicalParser\n );\n\n // Saved through the repository, as the page or layout is: translating takes create\n // permission, not the edit permission the save use case checks.\n const result = await repository.execute({\n name: globalComponent.name,\n language,\n elements: structuredClone(globalComponent.elements),\n bindings\n });\n\n if (result.isFail()) {\n logger.warn(\n { reason: result.error.message, name: globalComponent.name, language },\n \"Could not save an AI translated global component.\"\n );\n }\n }\n};\n"],"names":["extractTranslatableGlobals","globals","result","globalComponent","bindings","extractTranslatableBindings","Object","saveTranslatedGlobalComponents","params","translated","language","lexicalParser","repository","logger","applyTranslatedBindings","structuredClone"],"mappings":";AAqBO,MAAMA,6BAA6B,CAACC;IACvC,MAAMC,SAA8B,CAAC;IACrC,KAAK,MAAMC,mBAAmBF,QAAS;QACnC,MAAMG,WAAWC,4BAA4BF,gBAAgB,QAAQ;QACrE,IAAIG,OAAO,IAAI,CAACF,UAAU,MAAM,EAC5BF,MAAM,CAACC,gBAAgB,IAAI,CAAC,GAAGC;IAEvC;IACA,OAAOF;AACX;AAWO,MAAMK,iCAAiC,OAC1CC;IAEA,MAAM,EAAEP,OAAO,EAAEQ,UAAU,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,UAAU,EAAEC,MAAM,EAAE,GAAGL;IAE7E,KAAK,MAAML,mBAAmBF,QAAS;QAEnC,MAAMG,WAAW,MAAMU,wBACnBX,gBAAgB,QAAQ,EACxBM,YAAY,CAACN,gBAAgB,IAAI,CAAC,EAClCQ;QAKJ,MAAMT,SAAS,MAAMU,WAAW,OAAO,CAAC;YACpC,MAAMT,gBAAgB,IAAI;YAC1BO;YACA,UAAUK,gBAAgBZ,gBAAgB,QAAQ;YAClDC;QACJ;QAEA,IAAIF,OAAO,MAAM,IACbW,OAAO,IAAI,CACP;YAAE,QAAQX,OAAO,KAAK,CAAC,OAAO;YAAE,MAAMC,gBAAgB,IAAI;YAAEO;QAAS,GACrE;IAGZ;AACJ"}
@@ -0,0 +1,41 @@
1
+ import { Ai } from "@webiny/api-core/features/ai/index.js";
2
+ import { Logger } from "@webiny/api-core/features/logger/index.js";
3
+ import type { Actor } from "@webiny/api-workflows/domain/review/types.js";
4
+ import { WorkflowAiToolRegistryService } from "@webiny/api-workflows/features/aiTools/WorkflowAiToolRegistryService/index.js";
5
+ import { ReviewTargetEditorService } from "@webiny/api-workflows/features/review/ReviewTargetEditorService/index.js";
6
+ import { StepRunner } from "@webiny/api-workflows/features/stepRun/StepRunner/index.js";
7
+ import { StepRunStaleCheckService } from "@webiny/api-workflows/features/stepRun/StepRunStaleCheckService/index.js";
8
+ import { ResolveAiCapabilityUseCase } from "../../../../api/features/Capabilities/index.js";
9
+ /**
10
+ * Runs one `ai` step (R170, R171, R175; spec 7.3): one `generateText` call with the structured
11
+ * decision output and the step's allowlisted tools, then the outcome the handler applies after
12
+ * its own re-guard. It never writes: the only writer is the `updateTargetFields` tool, which
13
+ * re-guards itself (R173). Every failure is a `StepRunFailure` with a fixed text; raw errors are
14
+ * logged here and never stored or shown to the model (R87).
15
+ *
16
+ * The call can run for minutes. A cancel or a restart under another task is noticed through
17
+ * `StepRunStaleCheckService`, called through one per-run closure before every tool execution and
18
+ * in a stop condition, at most once per `STEP_RUN_STALE_CHECK_INTERVAL_MS` and sticky once it said
19
+ * stale, with local state only (the SDK swallows throws from `onStepFinish`, so the flag is read
20
+ * after the call, before any output). A failed read counts as not stale: the post-run guard
21
+ * protects the write.
22
+ */
23
+ declare class AiStepRunnerImpl implements StepRunner.Interface {
24
+ private resolveCapability;
25
+ private ai;
26
+ private editors;
27
+ private tools;
28
+ private staleCheck;
29
+ private logger;
30
+ readonly type = "ai";
31
+ readonly singleRun = true;
32
+ readonly failureReasons: StepRunner.FailureReasons;
33
+ constructor(resolveCapability: ResolveAiCapabilityUseCase.Interface, ai: Ai.Interface, editors: ReviewTargetEditorService.Interface, tools: WorkflowAiToolRegistryService.Interface, staleCheck: StepRunStaleCheckService.Interface, logger: Logger.Interface);
34
+ maxIterationsReason(): string;
35
+ getActor(requester: Actor): Actor;
36
+ run(params: StepRunner.Params): Promise<StepRunner.Outcome>;
37
+ }
38
+ export declare const AiStepRunner: typeof AiStepRunnerImpl & {
39
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-workflows/features/stepRun/StepRunner/abstractions.js").IStepRunner>;
40
+ };
41
+ export {};
@@ -0,0 +1,253 @@
1
+ import { NoObjectGeneratedError, NoOutputGeneratedError, Output, stepCountIs } from "ai";
2
+ import { Ai } from "@webiny/api-core/features/ai/index.js";
3
+ import { Logger } from "@webiny/api-core/features/logger/index.js";
4
+ import { getAiActor } from "@webiny/api-workflows/domain/ai/getAiActor.js";
5
+ import { REJECT_COMMENT_MIN_LENGTH } from "@webiny/api-workflows/domain/review/Review.js";
6
+ import { AI_STEP_TYPE } from "@webiny/api-workflows/domain/workflow/stepTypes.js";
7
+ import { AI_STEP_CONTENT_TOO_LARGE_MESSAGE, AI_TOOL_STEP_NOT_RUNNING_MESSAGE } from "@webiny/api-workflows/features/aiTools/constants.js";
8
+ import { WorkflowAiToolRegistryService } from "@webiny/api-workflows/features/aiTools/WorkflowAiToolRegistryService/index.js";
9
+ import { ReviewTargetEditorService } from "@webiny/api-workflows/features/review/ReviewTargetEditorService/index.js";
10
+ import { StepRunFailure } from "@webiny/api-workflows/features/stepRun/StepRunFailure.js";
11
+ import { STEP_RUN_STALE_CHECK_INTERVAL_MS } from "@webiny/api-workflows/features/stepRun/constants.js";
12
+ import { StepRunner } from "@webiny/api-workflows/features/stepRun/StepRunner/index.js";
13
+ import { StepRunStaleCheckService } from "@webiny/api-workflows/features/stepRun/StepRunStaleCheckService/index.js";
14
+ import { AiCapabilityDisabledError, AiModelNotAvailableError, ResolveAiCapabilityUseCase } from "../../Capabilities/index.js";
15
+ import { AI_STEP_MAX_COMMENT_LENGTH, AI_STEP_MAX_ISSUES, AI_STEP_MAX_TOOL_STEPS, WORKFLOWS_REVIEW_CAPABILITY_ID } from "../constants.js";
16
+ import { aiStepConfigSchema } from "../aiStepConfigSchema.js";
17
+ import { toLoggedAiError } from "../toLoggedAiError.js";
18
+ import { buildAiStepPrompt, exceedsAiInputLimit } from "../buildAiStepPrompt.js";
19
+ import { aiReviewOutputSchema, normalizeAiIssues } from "../aiReviewOutputSchema.js";
20
+ import { AI_CAPABILITY_NOT_AVAILABLE_REASON, AI_REVIEW_FAILED_REASON, AI_STEP_INVALID_CONFIGURATION_REASON, aiModelNotAvailableReason, aiToolNotAvailableReason } from "../aiFailureReasons.js";
21
+ import { AI_REVIEW_NO_DECISION_REASON, AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON, AI_REVIEW_TIMED_OUT_REASON, getAiStepLimitReason } from "./aiRunFailureReasons.js";
22
+ class AiStepRunnerImpl {
23
+ constructor(resolveCapability, ai, editors, tools, staleCheck, logger){
24
+ this.resolveCapability = resolveCapability;
25
+ this.ai = ai;
26
+ this.editors = editors;
27
+ this.tools = tools;
28
+ this.staleCheck = staleCheck;
29
+ this.logger = logger;
30
+ this.type = AI_STEP_TYPE;
31
+ this.singleRun = true;
32
+ this.failureReasons = {
33
+ error: AI_REVIEW_FAILED_REASON,
34
+ aborted: "The AI review was aborted.",
35
+ stuck: "The AI review task ended without a result."
36
+ };
37
+ }
38
+ maxIterationsReason() {
39
+ return this.failureReasons.error;
40
+ }
41
+ getActor(requester) {
42
+ return getAiActor(requester);
43
+ }
44
+ async run(params) {
45
+ const { review, step, requester, task, iteration, signal } = params;
46
+ const logFields = {
47
+ taskId: task.id,
48
+ reviewId: review.id,
49
+ stepId: step.id
50
+ };
51
+ try {
52
+ if (iteration > 1) {
53
+ this.logger.info({
54
+ ...logFields,
55
+ iteration
56
+ }, "Refused to run an AI review task again.");
57
+ throw new StepRunFailure(this.failureReasons.error);
58
+ }
59
+ if (signal.aborted) throw new StepRunFailure(AI_REVIEW_TIMED_OUT_REASON);
60
+ const config = aiStepConfigSchema.safeParse(step.config);
61
+ if (!config.success) throw new StepRunFailure(AI_STEP_INVALID_CONFIGURATION_REASON);
62
+ const allowlisted = [];
63
+ for (const name of config.data.tools){
64
+ const registered = this.tools.get(name);
65
+ if (!registered) throw new StepRunFailure(aiToolNotAvailableReason(name));
66
+ if (!allowlisted.includes(registered)) allowlisted.push(registered);
67
+ }
68
+ const resolved = await this.resolveCapability.execute(WORKFLOWS_REVIEW_CAPABILITY_ID, config.data.model);
69
+ if (resolved.isFail()) {
70
+ if (resolved.error instanceof AiModelNotAvailableError) throw new StepRunFailure(aiModelNotAvailableReason(config.data.model));
71
+ if (!(resolved.error instanceof AiCapabilityDisabledError)) this.logger.error({
72
+ error: toLoggedAiError(resolved.error),
73
+ ...logFields
74
+ }, "Could not resolve the AI review capability.");
75
+ throw new StepRunFailure(AI_CAPABILITY_NOT_AVAILABLE_REASON);
76
+ }
77
+ const capability = resolved.value;
78
+ const content = await this.editors.read({
79
+ model: review.model,
80
+ targetId: review.targetId,
81
+ targetRevisionId: review.targetRevisionId
82
+ });
83
+ if (content.isFail()) {
84
+ this.logger.info({
85
+ ...logFields,
86
+ reason: content.error.message
87
+ }, "The AI review could not read the target.");
88
+ throw new StepRunFailure(this.failureReasons.error);
89
+ }
90
+ const previousComments = [];
91
+ for (const earlier of review.steps){
92
+ if (earlier.id === step.id) break;
93
+ const comment = earlier.comment?.trim() ?? "";
94
+ if (("approved" === earlier.state || "rejected" === earlier.state) && "" !== comment) previousComments.push({
95
+ stepTitle: earlier.title,
96
+ actor: earlier.owner?.displayName ?? "(no name)",
97
+ comment
98
+ });
99
+ }
100
+ const prompt = buildAiStepPrompt({
101
+ systemGuidance: capability.guidance,
102
+ additionalInstructions: capability.additionalInstructions,
103
+ instructions: config.data.instructions,
104
+ content: content.value,
105
+ previousComments
106
+ });
107
+ if (exceedsAiInputLimit(prompt)) throw new StepRunFailure(AI_STEP_CONTENT_TOO_LARGE_MESSAGE);
108
+ let stale = false;
109
+ let lastStaleCheckAt = null;
110
+ const checkStale = async ()=>{
111
+ if (stale) return true;
112
+ if (null !== lastStaleCheckAt && Date.now() - lastStaleCheckAt < STEP_RUN_STALE_CHECK_INTERVAL_MS) return false;
113
+ lastStaleCheckAt = Date.now();
114
+ try {
115
+ const checked = await this.staleCheck.isStale({
116
+ reviewId: review.id,
117
+ stepId: step.id,
118
+ task
119
+ });
120
+ if (checked.isOk() && checked.value) stale = true;
121
+ } catch (error) {
122
+ this.logger.error({
123
+ error: toLoggedAiError(error),
124
+ ...logFields
125
+ }, "Could not check whether the AI step is still running.");
126
+ }
127
+ return stale;
128
+ };
129
+ let toolChain = Promise.resolve();
130
+ const toolSet = {};
131
+ for (const workflowTool of allowlisted)toolSet[workflowTool.name] = {
132
+ description: workflowTool.description,
133
+ inputSchema: workflowTool.inputSchema,
134
+ execute: (input)=>{
135
+ const turn = toolChain.then(async ()=>{
136
+ if (await checkStale()) return {
137
+ ok: false,
138
+ error: AI_TOOL_STEP_NOT_RUNNING_MESSAGE
139
+ };
140
+ try {
141
+ return await workflowTool.execute(input, {
142
+ review,
143
+ step,
144
+ requester,
145
+ task
146
+ });
147
+ } catch (error) {
148
+ this.logger.error({
149
+ error: toLoggedAiError(error),
150
+ ...logFields,
151
+ tool: workflowTool.name
152
+ }, "An AI tool threw.");
153
+ return {
154
+ ok: false,
155
+ error: `The tool "${workflowTool.name}" failed.`
156
+ };
157
+ }
158
+ });
159
+ toolChain = turn.then(()=>void 0, ()=>void 0);
160
+ return turn;
161
+ }
162
+ };
163
+ let result;
164
+ let callError = null;
165
+ try {
166
+ result = await this.ai.generateText({
167
+ model: capability.model,
168
+ connection: capability.connection,
169
+ system: prompt.system,
170
+ prompt: prompt.user,
171
+ abortSignal: signal,
172
+ output: Output.object({
173
+ schema: aiReviewOutputSchema,
174
+ name: "decision"
175
+ }),
176
+ ...allowlisted.length > 0 ? {
177
+ tools: toolSet,
178
+ stopWhen: [
179
+ stepCountIs(AI_STEP_MAX_TOOL_STEPS),
180
+ checkStale
181
+ ]
182
+ } : {}
183
+ });
184
+ } catch (error) {
185
+ callError = error;
186
+ }
187
+ if (stale) throw new StepRunFailure(this.failureReasons.aborted);
188
+ if (!result) {
189
+ if (signal.aborted) throw new StepRunFailure(AI_REVIEW_TIMED_OUT_REASON);
190
+ if (NoObjectGeneratedError.isInstance(callError) || NoOutputGeneratedError.isInstance(callError)) throw new StepRunFailure(AI_REVIEW_NO_DECISION_REASON);
191
+ this.logger.error({
192
+ error: toLoggedAiError(callError),
193
+ ...logFields
194
+ }, "The AI review call failed.");
195
+ throw new StepRunFailure(this.failureReasons.error);
196
+ }
197
+ let output;
198
+ try {
199
+ output = result.output;
200
+ } catch (error) {
201
+ if (NoOutputGeneratedError.isInstance(error) || NoObjectGeneratedError.isInstance(error)) {
202
+ const last = result.steps[result.steps.length - 1];
203
+ const hitStepCap = result.steps.length >= AI_STEP_MAX_TOOL_STEPS && (last?.toolCalls.length ?? 0) > 0;
204
+ throw new StepRunFailure(hitStepCap ? getAiStepLimitReason(AI_STEP_MAX_TOOL_STEPS) : AI_REVIEW_NO_DECISION_REASON);
205
+ }
206
+ throw error;
207
+ }
208
+ const decision = aiReviewOutputSchema.safeParse(output);
209
+ if (!decision.success) throw new StepRunFailure(AI_REVIEW_NO_DECISION_REASON);
210
+ if (decision.data.issues.length > AI_STEP_MAX_ISSUES) this.logger.info({
211
+ ...logFields,
212
+ count: decision.data.issues.length
213
+ }, "Dropped the AI issues over the cap.");
214
+ const issues = normalizeAiIssues(decision.data.issues);
215
+ const comment = decision.data.comment.trim().slice(0, AI_STEP_MAX_COMMENT_LENGTH).trim();
216
+ if (decision.data.approved) return "" === comment ? {
217
+ type: "approved",
218
+ issues
219
+ } : {
220
+ type: "approved",
221
+ comment,
222
+ issues
223
+ };
224
+ if (comment.length < REJECT_COMMENT_MIN_LENGTH) throw new StepRunFailure(AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON);
225
+ return {
226
+ type: "rejected",
227
+ comment,
228
+ issues
229
+ };
230
+ } catch (error) {
231
+ if (error instanceof StepRunFailure) throw error;
232
+ this.logger.error({
233
+ error: toLoggedAiError(error),
234
+ ...logFields
235
+ }, "The AI review threw.");
236
+ throw new StepRunFailure(this.failureReasons.error);
237
+ }
238
+ }
239
+ }
240
+ const AiStepRunner = StepRunner.createImplementation({
241
+ implementation: AiStepRunnerImpl,
242
+ dependencies: [
243
+ ResolveAiCapabilityUseCase,
244
+ Ai,
245
+ ReviewTargetEditorService,
246
+ WorkflowAiToolRegistryService,
247
+ StepRunStaleCheckService,
248
+ Logger
249
+ ]
250
+ });
251
+ export { AiStepRunner };
252
+
253
+ //# sourceMappingURL=AiStepRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/WorkflowReview/AiStepRunner/AiStepRunner.js","sources":["../../../../../src/api/features/WorkflowReview/AiStepRunner/AiStepRunner.ts"],"sourcesContent":["import { NoObjectGeneratedError, NoOutputGeneratedError, Output, stepCountIs } from \"ai\";\nimport type { ToolSet } from \"ai\";\nimport { Ai } from \"@webiny/api-core/features/ai/index.js\";\nimport { Logger } from \"@webiny/api-core/features/logger/index.js\";\nimport { getAiActor } from \"@webiny/api-workflows/domain/ai/getAiActor.js\";\nimport { REJECT_COMMENT_MIN_LENGTH } from \"@webiny/api-workflows/domain/review/Review.js\";\nimport type { Actor } from \"@webiny/api-workflows/domain/review/types.js\";\nimport { AI_STEP_TYPE } from \"@webiny/api-workflows/domain/workflow/stepTypes.js\";\nimport {\n AI_STEP_CONTENT_TOO_LARGE_MESSAGE,\n AI_TOOL_STEP_NOT_RUNNING_MESSAGE\n} from \"@webiny/api-workflows/features/aiTools/constants.js\";\nimport type { WorkflowAiTool } from \"@webiny/api-workflows/features/aiTools/WorkflowAiTool/index.js\";\nimport { WorkflowAiToolRegistryService } from \"@webiny/api-workflows/features/aiTools/WorkflowAiToolRegistryService/index.js\";\nimport { ReviewTargetEditorService } from \"@webiny/api-workflows/features/review/ReviewTargetEditorService/index.js\";\nimport { StepRunFailure } from \"@webiny/api-workflows/features/stepRun/StepRunFailure.js\";\nimport { STEP_RUN_STALE_CHECK_INTERVAL_MS } from \"@webiny/api-workflows/features/stepRun/constants.js\";\nimport { StepRunner } from \"@webiny/api-workflows/features/stepRun/StepRunner/index.js\";\nimport { StepRunStaleCheckService } from \"@webiny/api-workflows/features/stepRun/StepRunStaleCheckService/index.js\";\nimport {\n AiCapabilityDisabledError,\n AiModelNotAvailableError,\n ResolveAiCapabilityUseCase\n} from \"~/api/features/Capabilities/index.js\";\nimport {\n AI_STEP_MAX_COMMENT_LENGTH,\n AI_STEP_MAX_ISSUES,\n AI_STEP_MAX_TOOL_STEPS,\n WORKFLOWS_REVIEW_CAPABILITY_ID\n} from \"../constants.js\";\nimport { aiStepConfigSchema } from \"../aiStepConfigSchema.js\";\nimport { toLoggedAiError } from \"../toLoggedAiError.js\";\nimport { buildAiStepPrompt, exceedsAiInputLimit } from \"../buildAiStepPrompt.js\";\nimport type { AiStepPreviousComment } from \"../buildAiStepPrompt.js\";\nimport { aiReviewOutputSchema, normalizeAiIssues } from \"../aiReviewOutputSchema.js\";\nimport {\n AI_CAPABILITY_NOT_AVAILABLE_REASON,\n AI_REVIEW_FAILED_REASON,\n AI_STEP_INVALID_CONFIGURATION_REASON,\n aiModelNotAvailableReason,\n aiToolNotAvailableReason\n} from \"../aiFailureReasons.js\";\nimport {\n AI_REVIEW_NO_DECISION_REASON,\n AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON,\n AI_REVIEW_TIMED_OUT_REASON,\n getAiStepLimitReason\n} from \"./aiRunFailureReasons.js\";\n\n/**\n * Runs one `ai` step (R170, R171, R175; spec 7.3): one `generateText` call with the structured\n * decision output and the step's allowlisted tools, then the outcome the handler applies after\n * its own re-guard. It never writes: the only writer is the `updateTargetFields` tool, which\n * re-guards itself (R173). Every failure is a `StepRunFailure` with a fixed text; raw errors are\n * logged here and never stored or shown to the model (R87).\n *\n * The call can run for minutes. A cancel or a restart under another task is noticed through\n * `StepRunStaleCheckService`, called through one per-run closure before every tool execution and\n * in a stop condition, at most once per `STEP_RUN_STALE_CHECK_INTERVAL_MS` and sticky once it said\n * stale, with local state only (the SDK swallows throws from `onStepFinish`, so the flag is read\n * after the call, before any output). A failed read counts as not stale: the post-run guard\n * protects the write.\n */\nclass AiStepRunnerImpl implements StepRunner.Interface {\n public readonly type = AI_STEP_TYPE;\n public readonly singleRun = true;\n public readonly failureReasons: StepRunner.FailureReasons = {\n error: AI_REVIEW_FAILED_REASON,\n aborted: \"The AI review was aborted.\",\n stuck: \"The AI review task ended without a result.\"\n };\n\n public constructor(\n private resolveCapability: ResolveAiCapabilityUseCase.Interface,\n private ai: Ai.Interface,\n private editors: ReviewTargetEditorService.Interface,\n private tools: WorkflowAiToolRegistryService.Interface,\n private staleCheck: StepRunStaleCheckService.Interface,\n private logger: Logger.Interface\n ) {}\n\n public maxIterationsReason(): string {\n // The AI task is one iteration (A56): the ceiling is never reached.\n return this.failureReasons.error;\n }\n\n public getActor(requester: Actor): Actor {\n return getAiActor(requester);\n }\n\n public async run(params: StepRunner.Params): Promise<StepRunner.Outcome> {\n const { review, step, requester, task, iteration, signal } = params;\n const logFields = { taskId: task.id, reviewId: review.id, stepId: step.id };\n\n try {\n // 1. One iteration only; the handler refuses a re-entered task too (R170).\n if (iteration > 1) {\n this.logger.info(\n { ...logFields, iteration },\n \"Refused to run an AI review task again.\"\n );\n throw new StepRunFailure(this.failureReasons.error);\n }\n\n // 2. The handler fires the signal at once when the remaining runtime is nearly gone.\n if (signal.aborted) {\n throw new StepRunFailure(AI_REVIEW_TIMED_OUT_REASON);\n }\n\n // 3. Everything comes from the review snapshot, never from the task input (R148).\n const config = aiStepConfigSchema.safeParse(step.config);\n if (!config.success) {\n throw new StepRunFailure(AI_STEP_INVALID_CONFIGURATION_REASON);\n }\n\n // 4. The tool set is the allowlist and nothing else (D55, Review Focus 2).\n // `Interface` defaults `TInput` to `unknown`, which is what `execute` below passes.\n const allowlisted: WorkflowAiTool.Interface[] = [];\n for (const name of config.data.tools) {\n const registered = this.tools.get(name);\n if (!registered) {\n throw new StepRunFailure(aiToolNotAvailableReason(name));\n }\n if (!allowlisted.includes(registered)) {\n allowlisted.push(registered);\n }\n }\n\n // 5. The capability and the model the author picked (R169). Logged as in the step\n // type's `reach`: a model that is not available is an expected typed state and a\n // disabled capability is a decision (D40), neither is logged; any other failure is\n // logged once here. The resolver logs nothing itself (an unreadable settings read is\n // this one log); only a failed read inside `ConfiguredAiModelsService` adds that\n // service's own log of the raw error, so that case logs twice.\n const resolved = await this.resolveCapability.execute(\n WORKFLOWS_REVIEW_CAPABILITY_ID,\n config.data.model\n );\n if (resolved.isFail()) {\n if (resolved.error instanceof AiModelNotAvailableError) {\n throw new StepRunFailure(aiModelNotAvailableReason(config.data.model));\n }\n if (!(resolved.error instanceof AiCapabilityDisabledError)) {\n this.logger.error(\n { error: toLoggedAiError(resolved.error), ...logFields },\n \"Could not resolve the AI review capability.\"\n );\n }\n // A disabled capability, unresolved settings, an unknown capability or a failed\n // model list read: one fixed text (D40). The raw message never reaches the step.\n throw new StepRunFailure(AI_CAPABILITY_NOT_AVAILABLE_REASON);\n }\n const capability = resolved.value;\n\n // 6. The target, from the snapshot (adapters log their real errors).\n const content = await this.editors.read({\n model: review.model,\n targetId: review.targetId,\n targetRevisionId: review.targetRevisionId\n });\n if (content.isFail()) {\n this.logger.info(\n { ...logFields, reason: content.error.message },\n \"The AI review could not read the target.\"\n );\n throw new StepRunFailure(this.failureReasons.error);\n }\n\n // 7. The prompt and the input cap: never truncate (R175).\n const previousComments: AiStepPreviousComment[] = [];\n for (const earlier of review.steps) {\n if (earlier.id === step.id) {\n break;\n }\n const comment = earlier.comment?.trim() ?? \"\";\n if (\n (earlier.state === \"approved\" || earlier.state === \"rejected\") &&\n comment !== \"\"\n ) {\n previousComments.push({\n stepTitle: earlier.title,\n actor: earlier.owner?.displayName ?? \"(no name)\",\n comment\n });\n }\n }\n const prompt = buildAiStepPrompt({\n systemGuidance: capability.guidance,\n additionalInstructions: capability.additionalInstructions,\n instructions: config.data.instructions,\n content: content.value,\n previousComments\n });\n if (exceedsAiInputLimit(prompt)) {\n throw new StepRunFailure(AI_STEP_CONTENT_TOO_LARGE_MESSAGE);\n }\n\n // 8. The stale state of this call (R175, Review Focus 1): one closure per run holding\n // the throttle and the sticky flag. Its callers never overlap: tool calls run one at a\n // time through `toolChain` below, and the SDK evaluates `stopWhen` only after a step's\n // tool results are in.\n let stale = false;\n let lastStaleCheckAt: number | null = null;\n const checkStale = async (): Promise<boolean> => {\n if (stale) {\n return true;\n }\n if (\n lastStaleCheckAt !== null &&\n Date.now() - lastStaleCheckAt < STEP_RUN_STALE_CHECK_INTERVAL_MS\n ) {\n return false;\n }\n lastStaleCheckAt = Date.now();\n try {\n const checked = await this.staleCheck.isStale({\n reviewId: review.id,\n stepId: step.id,\n task\n });\n // A failed read is not stale: keep going (the service logged it).\n if (checked.isOk() && checked.value) {\n stale = true;\n }\n } catch (error) {\n // The service returns Results; a throw is unexpected. Not stale, logged once\n // here, never handed to the AI SDK (R87).\n this.logger.error(\n { error: toLoggedAiError(error), ...logFields },\n \"Could not check whether the AI step is still running.\"\n );\n }\n return stale;\n };\n\n // The AI SDK tool set, one entry per allowlisted tool (the shape `AiSdkTools` builds).\n // The context comes from the run, never from the model's input (Review Focus 2).\n let toolChain: Promise<void> = Promise.resolve();\n const toolSet: ToolSet = {};\n for (const workflowTool of allowlisted) {\n toolSet[workflowTool.name] = {\n description: workflowTool.description,\n inputSchema: workflowTool.inputSchema,\n execute: (input: unknown) => {\n // The SDK runs the tool calls of one model step in parallel, and a write\n // tool reads the entry and writes a merged object: two at once lose one\n // write. Each call waits for the previous one of this run. The chain\n // never rejects, so one failing call cannot break it for the next.\n const turn = toolChain.then(async () => {\n if (await checkStale()) {\n return { ok: false, error: AI_TOOL_STEP_NOT_RUNNING_MESSAGE };\n }\n try {\n return await workflowTool.execute(input, {\n review,\n step,\n requester,\n task\n });\n } catch (error) {\n // A custom tool threw (R87): the SDK would show its raw message\n // to the model.\n this.logger.error(\n {\n error: toLoggedAiError(error),\n ...logFields,\n tool: workflowTool.name\n },\n \"An AI tool threw.\"\n );\n return {\n ok: false,\n error: `The tool \"${workflowTool.name}\" failed.`\n };\n }\n });\n toolChain = turn.then(\n () => undefined,\n () => undefined\n );\n return turn;\n }\n };\n }\n\n // 9. The call.\n let result: Awaited<ReturnType<Ai.Interface[\"generateText\"]>> | undefined;\n let callError: unknown = null;\n try {\n result = await this.ai.generateText({\n model: capability.model,\n connection: capability.connection,\n system: prompt.system,\n prompt: prompt.user,\n abortSignal: signal,\n output: Output.object({ schema: aiReviewOutputSchema, name: \"decision\" }),\n ...(allowlisted.length > 0\n ? {\n tools: toolSet,\n stopWhen: [stepCountIs(AI_STEP_MAX_TOOL_STEPS), checkStale]\n }\n : {})\n });\n } catch (error) {\n callError = error;\n }\n\n // 10. A cancel or restart seen during the call wins over everything the call\n // produced, and is checked before any output is read: a stopped call has none (R175).\n if (stale) {\n throw new StepRunFailure(this.failureReasons.aborted);\n }\n\n // 11. A call that threw.\n if (!result) {\n if (signal.aborted) {\n throw new StepRunFailure(AI_REVIEW_TIMED_OUT_REASON);\n }\n if (\n NoObjectGeneratedError.isInstance(callError) ||\n NoOutputGeneratedError.isInstance(callError)\n ) {\n throw new StepRunFailure(AI_REVIEW_NO_DECISION_REASON);\n }\n this.logger.error(\n { error: toLoggedAiError(callError), ...logFields },\n \"The AI review call failed.\"\n );\n throw new StepRunFailure(this.failureReasons.error);\n }\n\n // 12. The structured output.\n let output: unknown;\n try {\n output = result.output;\n } catch (error) {\n if (\n NoOutputGeneratedError.isInstance(error) ||\n NoObjectGeneratedError.isInstance(error)\n ) {\n const last = result.steps[result.steps.length - 1];\n const hitStepCap =\n result.steps.length >= AI_STEP_MAX_TOOL_STEPS &&\n (last?.toolCalls.length ?? 0) > 0;\n throw new StepRunFailure(\n hitStepCap\n ? getAiStepLimitReason(AI_STEP_MAX_TOOL_STEPS)\n : AI_REVIEW_NO_DECISION_REASON\n );\n }\n throw error;\n }\n const decision = aiReviewOutputSchema.safeParse(output);\n if (!decision.success) {\n throw new StepRunFailure(AI_REVIEW_NO_DECISION_REASON);\n }\n\n // 13. The outcome (R171, D100). The handler applies it after its own re-guard.\n if (decision.data.issues.length > AI_STEP_MAX_ISSUES) {\n this.logger.info(\n { ...logFields, count: decision.data.issues.length },\n \"Dropped the AI issues over the cap.\"\n );\n }\n const issues = normalizeAiIssues(decision.data.issues);\n const comment = decision.data.comment\n .trim()\n .slice(0, AI_STEP_MAX_COMMENT_LENGTH)\n .trim();\n if (decision.data.approved) {\n return comment === \"\"\n ? { type: \"approved\", issues }\n : { type: \"approved\", comment, issues };\n }\n if (comment.length < REJECT_COMMENT_MIN_LENGTH) {\n throw new StepRunFailure(AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON);\n }\n return { type: \"rejected\", comment, issues };\n } catch (error) {\n if (error instanceof StepRunFailure) {\n throw error;\n }\n // 14. Nothing but a `StepRunFailure` leaves this runner (R87).\n this.logger.error(\n { error: toLoggedAiError(error), ...logFields },\n \"The AI review threw.\"\n );\n throw new StepRunFailure(this.failureReasons.error);\n }\n }\n}\n\nexport const AiStepRunner = StepRunner.createImplementation({\n implementation: AiStepRunnerImpl,\n dependencies: [\n ResolveAiCapabilityUseCase,\n Ai,\n ReviewTargetEditorService,\n WorkflowAiToolRegistryService,\n StepRunStaleCheckService,\n Logger\n ]\n});\n"],"names":["AiStepRunnerImpl","resolveCapability","ai","editors","tools","staleCheck","logger","AI_STEP_TYPE","AI_REVIEW_FAILED_REASON","requester","getAiActor","params","review","step","task","iteration","signal","logFields","StepRunFailure","AI_REVIEW_TIMED_OUT_REASON","config","aiStepConfigSchema","AI_STEP_INVALID_CONFIGURATION_REASON","allowlisted","name","registered","aiToolNotAvailableReason","resolved","WORKFLOWS_REVIEW_CAPABILITY_ID","AiModelNotAvailableError","aiModelNotAvailableReason","AiCapabilityDisabledError","toLoggedAiError","AI_CAPABILITY_NOT_AVAILABLE_REASON","capability","content","previousComments","earlier","comment","prompt","buildAiStepPrompt","exceedsAiInputLimit","AI_STEP_CONTENT_TOO_LARGE_MESSAGE","stale","lastStaleCheckAt","checkStale","Date","STEP_RUN_STALE_CHECK_INTERVAL_MS","checked","error","toolChain","Promise","toolSet","workflowTool","input","turn","AI_TOOL_STEP_NOT_RUNNING_MESSAGE","undefined","result","callError","Output","aiReviewOutputSchema","stepCountIs","AI_STEP_MAX_TOOL_STEPS","NoObjectGeneratedError","NoOutputGeneratedError","AI_REVIEW_NO_DECISION_REASON","output","last","hitStepCap","getAiStepLimitReason","decision","AI_STEP_MAX_ISSUES","issues","normalizeAiIssues","AI_STEP_MAX_COMMENT_LENGTH","REJECT_COMMENT_MIN_LENGTH","AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON","AiStepRunner","StepRunner","ResolveAiCapabilityUseCase","Ai","ReviewTargetEditorService","WorkflowAiToolRegistryService","StepRunStaleCheckService","Logger"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+DA,MAAMA;IASF,YACYC,iBAAuD,EACvDC,EAAgB,EAChBC,OAA4C,EAC5CC,KAA8C,EAC9CC,UAA8C,EAC9CC,MAAwB,CAClC;aANUL,iBAAiB,GAAjBA;aACAC,EAAE,GAAFA;aACAC,OAAO,GAAPA;aACAC,KAAK,GAALA;aACAC,UAAU,GAAVA;aACAC,MAAM,GAANA;aAdI,IAAI,GAAGC;aACP,SAAS,GAAG;aACZ,cAAc,GAA8B;YACxD,OAAOC;YACP,SAAS;YACT,OAAO;QACX;IASG;IAEI,sBAA8B;QAEjC,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK;IACpC;IAEO,SAASC,SAAgB,EAAS;QACrC,OAAOC,WAAWD;IACtB;IAEA,MAAa,IAAIE,MAAyB,EAA+B;QACrE,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAEJ,SAAS,EAAEK,IAAI,EAAEC,SAAS,EAAEC,MAAM,EAAE,GAAGL;QAC7D,MAAMM,YAAY;YAAE,QAAQH,KAAK,EAAE;YAAE,UAAUF,OAAO,EAAE;YAAE,QAAQC,KAAK,EAAE;QAAC;QAE1E,IAAI;YAEA,IAAIE,YAAY,GAAG;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ;oBAAE,GAAGE,SAAS;oBAAEF;gBAAU,GAC1B;gBAEJ,MAAM,IAAIG,eAAe,IAAI,CAAC,cAAc,CAAC,KAAK;YACtD;YAGA,IAAIF,OAAO,OAAO,EACd,MAAM,IAAIE,eAAeC;YAI7B,MAAMC,SAASC,mBAAmB,SAAS,CAACR,KAAK,MAAM;YACvD,IAAI,CAACO,OAAO,OAAO,EACf,MAAM,IAAIF,eAAeI;YAK7B,MAAMC,cAA0C,EAAE;YAClD,KAAK,MAAMC,QAAQJ,OAAO,IAAI,CAAC,KAAK,CAAE;gBAClC,MAAMK,aAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAACD;gBAClC,IAAI,CAACC,YACD,MAAM,IAAIP,eAAeQ,yBAAyBF;gBAEtD,IAAI,CAACD,YAAY,QAAQ,CAACE,aACtBF,YAAY,IAAI,CAACE;YAEzB;YAQA,MAAME,WAAW,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CACjDC,gCACAR,OAAO,IAAI,CAAC,KAAK;YAErB,IAAIO,SAAS,MAAM,IAAI;gBACnB,IAAIA,SAAS,KAAK,YAAYE,0BAC1B,MAAM,IAAIX,eAAeY,0BAA0BV,OAAO,IAAI,CAAC,KAAK;gBAExE,IAAI,CAAEO,CAAAA,SAAS,KAAK,YAAYI,yBAAwB,GACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;oBAAE,OAAOC,gBAAgBL,SAAS,KAAK;oBAAG,GAAGV,SAAS;gBAAC,GACvD;gBAKR,MAAM,IAAIC,eAAee;YAC7B;YACA,MAAMC,aAAaP,SAAS,KAAK;YAGjC,MAAMQ,UAAU,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpC,OAAOvB,OAAO,KAAK;gBACnB,UAAUA,OAAO,QAAQ;gBACzB,kBAAkBA,OAAO,gBAAgB;YAC7C;YACA,IAAIuB,QAAQ,MAAM,IAAI;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ;oBAAE,GAAGlB,SAAS;oBAAE,QAAQkB,QAAQ,KAAK,CAAC,OAAO;gBAAC,GAC9C;gBAEJ,MAAM,IAAIjB,eAAe,IAAI,CAAC,cAAc,CAAC,KAAK;YACtD;YAGA,MAAMkB,mBAA4C,EAAE;YACpD,KAAK,MAAMC,WAAWzB,OAAO,KAAK,CAAE;gBAChC,IAAIyB,QAAQ,EAAE,KAAKxB,KAAK,EAAE,EACtB;gBAEJ,MAAMyB,UAAUD,QAAQ,OAAO,EAAE,UAAU;gBAC3C,IACKA,AAAAA,CAAAA,AAAkB,eAAlBA,QAAQ,KAAK,IAAmBA,AAAkB,eAAlBA,QAAQ,KAAK,AAAc,KAC5DC,AAAY,OAAZA,SAEAF,iBAAiB,IAAI,CAAC;oBAClB,WAAWC,QAAQ,KAAK;oBACxB,OAAOA,QAAQ,KAAK,EAAE,eAAe;oBACrCC;gBACJ;YAER;YACA,MAAMC,SAASC,kBAAkB;gBAC7B,gBAAgBN,WAAW,QAAQ;gBACnC,wBAAwBA,WAAW,sBAAsB;gBACzD,cAAcd,OAAO,IAAI,CAAC,YAAY;gBACtC,SAASe,QAAQ,KAAK;gBACtBC;YACJ;YACA,IAAIK,oBAAoBF,SACpB,MAAM,IAAIrB,eAAewB;YAO7B,IAAIC,QAAQ;YACZ,IAAIC,mBAAkC;YACtC,MAAMC,aAAa;gBACf,IAAIF,OACA,OAAO;gBAEX,IACIC,AAAqB,SAArBA,oBACAE,KAAK,GAAG,KAAKF,mBAAmBG,kCAEhC,OAAO;gBAEXH,mBAAmBE,KAAK,GAAG;gBAC3B,IAAI;oBACA,MAAME,UAAU,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;wBAC1C,UAAUpC,OAAO,EAAE;wBACnB,QAAQC,KAAK,EAAE;wBACfC;oBACJ;oBAEA,IAAIkC,QAAQ,IAAI,MAAMA,QAAQ,KAAK,EAC/BL,QAAQ;gBAEhB,EAAE,OAAOM,OAAO;oBAGZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;wBAAE,OAAOjB,gBAAgBiB;wBAAQ,GAAGhC,SAAS;oBAAC,GAC9C;gBAER;gBACA,OAAO0B;YACX;YAIA,IAAIO,YAA2BC,QAAQ,OAAO;YAC9C,MAAMC,UAAmB,CAAC;YAC1B,KAAK,MAAMC,gBAAgB9B,YACvB6B,OAAO,CAACC,aAAa,IAAI,CAAC,GAAG;gBACzB,aAAaA,aAAa,WAAW;gBACrC,aAAaA,aAAa,WAAW;gBACrC,SAAS,CAACC;oBAKN,MAAMC,OAAOL,UAAU,IAAI,CAAC;wBACxB,IAAI,MAAML,cACN,OAAO;4BAAE,IAAI;4BAAO,OAAOW;wBAAiC;wBAEhE,IAAI;4BACA,OAAO,MAAMH,aAAa,OAAO,CAACC,OAAO;gCACrC1C;gCACAC;gCACAJ;gCACAK;4BACJ;wBACJ,EAAE,OAAOmC,OAAO;4BAGZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;gCACI,OAAOjB,gBAAgBiB;gCACvB,GAAGhC,SAAS;gCACZ,MAAMoC,aAAa,IAAI;4BAC3B,GACA;4BAEJ,OAAO;gCACH,IAAI;gCACJ,OAAO,CAAC,UAAU,EAAEA,aAAa,IAAI,CAAC,SAAS,CAAC;4BACpD;wBACJ;oBACJ;oBACAH,YAAYK,KAAK,IAAI,CACjB,IAAME,QACN,IAAMA;oBAEV,OAAOF;gBACX;YACJ;YAIJ,IAAIG;YACJ,IAAIC,YAAqB;YACzB,IAAI;gBACAD,SAAS,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;oBAChC,OAAOxB,WAAW,KAAK;oBACvB,YAAYA,WAAW,UAAU;oBACjC,QAAQK,OAAO,MAAM;oBACrB,QAAQA,OAAO,IAAI;oBACnB,aAAavB;oBACb,QAAQ4C,OAAO,MAAM,CAAC;wBAAE,QAAQC;wBAAsB,MAAM;oBAAW;oBACvE,GAAItC,YAAY,MAAM,GAAG,IACnB;wBACI,OAAO6B;wBACP,UAAU;4BAACU,YAAYC;4BAAyBlB;yBAAW;oBAC/D,IACA,CAAC,CAAC;gBACZ;YACJ,EAAE,OAAOI,OAAO;gBACZU,YAAYV;YAChB;YAIA,IAAIN,OACA,MAAM,IAAIzB,eAAe,IAAI,CAAC,cAAc,CAAC,OAAO;YAIxD,IAAI,CAACwC,QAAQ;gBACT,IAAI1C,OAAO,OAAO,EACd,MAAM,IAAIE,eAAeC;gBAE7B,IACI6C,uBAAuB,UAAU,CAACL,cAClCM,uBAAuB,UAAU,CAACN,YAElC,MAAM,IAAIzC,eAAegD;gBAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;oBAAE,OAAOlC,gBAAgB2B;oBAAY,GAAG1C,SAAS;gBAAC,GAClD;gBAEJ,MAAM,IAAIC,eAAe,IAAI,CAAC,cAAc,CAAC,KAAK;YACtD;YAGA,IAAIiD;YACJ,IAAI;gBACAA,SAAST,OAAO,MAAM;YAC1B,EAAE,OAAOT,OAAO;gBACZ,IACIgB,uBAAuB,UAAU,CAAChB,UAClCe,uBAAuB,UAAU,CAACf,QACpC;oBACE,MAAMmB,OAAOV,OAAO,KAAK,CAACA,OAAO,KAAK,CAAC,MAAM,GAAG,EAAE;oBAClD,MAAMW,aACFX,OAAO,KAAK,CAAC,MAAM,IAAIK,0BACtBK,AAAAA,CAAAA,MAAM,UAAU,UAAU,KAAK;oBACpC,MAAM,IAAIlD,eACNmD,aACMC,qBAAqBP,0BACrBG;gBAEd;gBACA,MAAMjB;YACV;YACA,MAAMsB,WAAWV,qBAAqB,SAAS,CAACM;YAChD,IAAI,CAACI,SAAS,OAAO,EACjB,MAAM,IAAIrD,eAAegD;YAI7B,IAAIK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,GAAGC,oBAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ;gBAAE,GAAGvD,SAAS;gBAAE,OAAOsD,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM;YAAC,GACnD;YAGR,MAAME,SAASC,kBAAkBH,SAAS,IAAI,CAAC,MAAM;YACrD,MAAMjC,UAAUiC,SAAS,IAAI,CAAC,OAAO,CAChC,IAAI,GACJ,KAAK,CAAC,GAAGI,4BACT,IAAI;YACT,IAAIJ,SAAS,IAAI,CAAC,QAAQ,EACtB,OAAOjC,AAAY,OAAZA,UACD;gBAAE,MAAM;gBAAYmC;YAAO,IAC3B;gBAAE,MAAM;gBAAYnC;gBAASmC;YAAO;YAE9C,IAAInC,QAAQ,MAAM,GAAGsC,2BACjB,MAAM,IAAI1D,eAAe2D;YAE7B,OAAO;gBAAE,MAAM;gBAAYvC;gBAASmC;YAAO;QAC/C,EAAE,OAAOxB,OAAO;YACZ,IAAIA,iBAAiB/B,gBACjB,MAAM+B;YAGV,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;gBAAE,OAAOjB,gBAAgBiB;gBAAQ,GAAGhC,SAAS;YAAC,GAC9C;YAEJ,MAAM,IAAIC,eAAe,IAAI,CAAC,cAAc,CAAC,KAAK;QACtD;IACJ;AACJ;AAEO,MAAM4D,eAAeC,WAAW,oBAAoB,CAAC;IACxD,gBAAgB/E;IAChB,cAAc;QACVgF;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,4 @@
1
+ export declare const AI_REVIEW_TIMED_OUT_REASON = "The AI review timed out.";
2
+ export declare const AI_REVIEW_NO_DECISION_REASON = "The AI review returned no decision.";
3
+ export declare const AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON = "The AI review rejected without a comment.";
4
+ export declare const getAiStepLimitReason: (steps: number) => string;
@@ -0,0 +1,7 @@
1
+ const AI_REVIEW_TIMED_OUT_REASON = "The AI review timed out.";
2
+ const AI_REVIEW_NO_DECISION_REASON = "The AI review returned no decision.";
3
+ const AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON = "The AI review rejected without a comment.";
4
+ const getAiStepLimitReason = (steps)=>`The AI review did not finish in ${steps} steps.`;
5
+ export { AI_REVIEW_NO_DECISION_REASON, AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON, AI_REVIEW_TIMED_OUT_REASON, getAiStepLimitReason };
6
+
7
+ //# sourceMappingURL=aiRunFailureReasons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/WorkflowReview/AiStepRunner/aiRunFailureReasons.js","sources":["../../../../../src/api/features/WorkflowReview/AiStepRunner/aiRunFailureReasons.ts"],"sourcesContent":["export const AI_REVIEW_TIMED_OUT_REASON = \"The AI review timed out.\";\nexport const AI_REVIEW_NO_DECISION_REASON = \"The AI review returned no decision.\";\nexport const AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON =\n \"The AI review rejected without a comment.\";\n\nexport const getAiStepLimitReason = (steps: number): string => {\n return `The AI review did not finish in ${steps} steps.`;\n};\n"],"names":["AI_REVIEW_TIMED_OUT_REASON","AI_REVIEW_NO_DECISION_REASON","AI_REVIEW_REJECTED_WITHOUT_COMMENT_REASON","getAiStepLimitReason","steps"],"mappings":"AAAO,MAAMA,6BAA6B;AACnC,MAAMC,+BAA+B;AACrC,MAAMC,4CACT;AAEG,MAAMC,uBAAuB,CAACC,QAC1B,CAAC,gCAAgC,EAAEA,MAAM,OAAO,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** The `StepRunner` for `ai` steps. Registered by `Extension.ts` inside the combined gate (R177, R178). */
2
+ export declare const AiStepRunnerFeature: {
3
+ name: string;
4
+ register(container: import("@webiny/di").Container): void;
5
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { AiStepRunner } from "./AiStepRunner.js";
3
+ const AiStepRunnerFeature = createFeature({
4
+ name: "AiPowerUps/AiStepRunner",
5
+ register (container) {
6
+ container.register(AiStepRunner);
7
+ }
8
+ });
9
+ export { AiStepRunnerFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/WorkflowReview/AiStepRunner/feature.js","sources":["../../../../../src/api/features/WorkflowReview/AiStepRunner/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { AiStepRunner } from \"./AiStepRunner.js\";\n\n/** The `StepRunner` for `ai` steps. Registered by `Extension.ts` inside the combined gate (R177, R178). */\nexport const AiStepRunnerFeature = createFeature({\n name: \"AiPowerUps/AiStepRunner\",\n register(container) {\n container.register(AiStepRunner);\n }\n});\n"],"names":["AiStepRunnerFeature","createFeature","container","AiStepRunner"],"mappings":";;AAIO,MAAMA,sBAAsBC,cAAc;IAC7C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}