@ckeditor/ckeditor5-ai 48.8.1-alpha.4 → 49.0.0-alpha.1

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 (388) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/aiactions/aiactions.d.ts +109 -73
  3. package/dist/aiactions/model/aiactionsinteraction.d.ts +58 -50
  4. package/dist/aiactions/model/aiactionsreply.d.ts +18 -11
  5. package/dist/aiassistant/adapters/aiadapter.d.ts +48 -48
  6. package/dist/aiassistant/adapters/aitextadapter.d.ts +133 -133
  7. package/dist/aiassistant/adapters/awstextadapter.d.ts +42 -42
  8. package/dist/aiassistant/adapters/openaitextadapter.d.ts +184 -184
  9. package/dist/aiassistant/aiassistant.d.ts +425 -436
  10. package/dist/aiassistant/aiassistantediting.d.ts +51 -51
  11. package/dist/aiassistant/aiassistantui.d.ts +50 -53
  12. package/dist/aiassistant/legacyerrors.d.ts +0 -4
  13. package/dist/aiassistant/ui/aiassistantcontroller.d.ts +106 -105
  14. package/dist/aiassistant/ui/form/aiformcontentarea.d.ts +43 -43
  15. package/dist/aiassistant/ui/form/aiformerrorview.d.ts +19 -19
  16. package/dist/aiassistant/ui/form/aiformpromptview.d.ts +38 -38
  17. package/dist/aiassistant/ui/form/aiformtoolbarview.d.ts +50 -50
  18. package/dist/aiassistant/ui/form/aiformview.d.ts +121 -121
  19. package/dist/aiassistant/ui/form/aihistorylistitemview.d.ts +13 -13
  20. package/dist/aiassistant/ui/form/aihistorylistview.d.ts +27 -27
  21. package/dist/aiassistant/ui/form/prompthistory.d.ts +15 -15
  22. package/dist/aiassistant/ui/showaiassistantcommand.d.ts +35 -35
  23. package/dist/aiassistant/utils/common-translations.d.ts +6 -6
  24. package/dist/aiassistant/utils/normalizecommandsconfig.d.ts +9 -9
  25. package/dist/aiballoon/aiballoon.d.ts +85 -89
  26. package/dist/aiballoon/ui/aiballoondisclaimerview.d.ts +17 -0
  27. package/dist/aiballoon/ui/aiballoontoolbarview.d.ts +56 -0
  28. package/dist/aiballoon/ui/aiballoonview.d.ts +74 -27
  29. package/dist/aiballoon/utils/contentwidth.d.ts +1 -0
  30. package/dist/aichat/aichat.d.ts +88 -87
  31. package/dist/aichat/aichatballoon.d.ts +88 -79
  32. package/dist/aichat/aichatcontroller.d.ts +284 -258
  33. package/dist/aichat/aichatui.d.ts +352 -328
  34. package/dist/aichat/model/aichatcontext.d.ts +655 -654
  35. package/dist/aichat/model/aichatconversation.d.ts +270 -269
  36. package/dist/aichat/model/aichatinteraction.d.ts +45 -49
  37. package/dist/aichat/ui/aichatballoonview.d.ts +73 -101
  38. package/dist/aichat/ui/aichatcontrolsview.d.ts +121 -125
  39. package/dist/aichat/ui/aichatfeedview.d.ts +145 -128
  40. package/dist/aichat/ui/aichatview.d.ts +42 -40
  41. package/dist/aichat/ui/controls/aichatchipsoverflowmanager.d.ts +73 -63
  42. package/dist/aichat/ui/controls/aichatcontextitembuttonview.d.ts +41 -41
  43. package/dist/aichat/ui/controls/aichatcontextpanelurlinputview.d.ts +79 -79
  44. package/dist/aichat/ui/controls/aichatcontextpanelview.d.ts +110 -100
  45. package/dist/aichat/ui/controls/aichatdropzoneview.d.ts +30 -0
  46. package/dist/aichat/ui/controls/aichatpromptcapabilitiesview.d.ts +72 -81
  47. package/dist/aichat/ui/controls/aichatpromptinputview.d.ts +50 -44
  48. package/dist/aichat/ui/controls/aichatpromptsuggestionslistview.d.ts +13 -13
  49. package/dist/aichat/ui/controls/resources/aichatcontextresourceslistview.d.ts +44 -44
  50. package/dist/aichat/ui/controls/resources/aichatcontextresourcesview.d.ts +52 -52
  51. package/dist/aichat/ui/controls/resources/aichatresourcelistitemview.d.ts +57 -56
  52. package/dist/aichat/ui/controls/resources/aichatresourcesballoonview.d.ts +104 -100
  53. package/dist/aichat/ui/controls/resources/aichatresourcessearchinputview.d.ts +53 -53
  54. package/dist/aichat/ui/feed/aichatfeedcontextchipsview.d.ts +22 -22
  55. package/dist/aichat/ui/feed/aichatfeedcustomelementview.d.ts +30 -34
  56. package/dist/aichat/ui/feed/aichatfeederroritemview.d.ts +30 -33
  57. package/dist/aichat/ui/feed/aichatfeedinteractionheaderview.d.ts +24 -24
  58. package/dist/aichat/ui/feed/aichatfeeditemview.d.ts +39 -39
  59. package/dist/aichat/ui/feed/aichatfeedreplyitemview.d.ts +40 -40
  60. package/dist/aichat/ui/feed/aichatfeedsuggestionitemactionsview.d.ts +62 -63
  61. package/dist/aichat/ui/feed/aichatfeedsuggestionitemview.d.ts +87 -82
  62. package/dist/aichat/ui/feed/aichatfeedusermessageitem.d.ts +33 -33
  63. package/dist/aichat/utils/eventnames.d.ts +8 -4
  64. package/dist/aichat/utils/parsesingleurl.d.ts +1 -0
  65. package/dist/aichat/utils/promisequeue.d.ts +26 -25
  66. package/dist/aichat/utils/readdatatransferfiles.d.ts +14 -0
  67. package/dist/aichat/utils/resolvepaste.d.ts +71 -0
  68. package/dist/aichathistory/aichathistory.d.ts +26 -26
  69. package/dist/aichathistory/aichathistorycontroller.d.ts +36 -35
  70. package/dist/aichathistory/aichathistoryui.d.ts +80 -89
  71. package/dist/aichathistory/model/aichathistoryconversations.d.ts +95 -102
  72. package/dist/aichathistory/model/aichathistoryitem.d.ts +52 -53
  73. package/dist/aichathistory/ui/aichathistorylistitemview.d.ts +41 -40
  74. package/dist/aichathistory/ui/aichathistorylistview.d.ts +28 -28
  75. package/dist/aichathistory/ui/aichathistorysectionlistview.d.ts +16 -16
  76. package/dist/aichathistory/ui/aichathistoryview.d.ts +33 -33
  77. package/dist/aichatshortcuts/aichatshortcuts.d.ts +295 -295
  78. package/dist/aichatshortcuts/ui/aichatshortcutsview.d.ts +24 -18
  79. package/dist/aichatshortcuts/ui/aichatshortcutview.d.ts +18 -18
  80. package/dist/aiconfig.d.ts +362 -227
  81. package/dist/aicore/aiconnector.d.ts +428 -334
  82. package/dist/aicore/aicore.d.ts +53 -0
  83. package/dist/aicore/aiediting.d.ts +103 -88
  84. package/dist/aicore/aierrorreporter.d.ts +101 -0
  85. package/dist/aicore/aigateway.d.ts +135 -0
  86. package/dist/aicore/errors/aicoreerror.d.ts +67 -0
  87. package/dist/aicore/errors/geterrorcode.d.ts +17 -0
  88. package/dist/aicore/errors/isaborterror.d.ts +12 -0
  89. package/dist/aicore/errors/normalizeerror.d.ts +23 -0
  90. package/dist/aicore/model/aicapabilities.d.ts +69 -53
  91. package/dist/aicore/model/aicontext.d.ts +116 -77
  92. package/dist/aicore/model/aicontextlibrary.d.ts +71 -0
  93. package/dist/aicore/model/aicontextref.d.ts +37 -0
  94. package/dist/aicore/model/aidefaultcontext.d.ts +83 -0
  95. package/dist/aicore/model/aieditorroot.d.ts +26 -0
  96. package/dist/aicore/model/aiinteraction.d.ts +162 -162
  97. package/dist/aicore/model/aimodels.d.ts +80 -76
  98. package/dist/aicore/model/aireply.d.ts +129 -121
  99. package/dist/aicore/model/airunresult.d.ts +43 -0
  100. package/dist/aicore/model/airunsinglerootresult.d.ts +104 -0
  101. package/dist/aicore/pipeline/airesponseapplier.d.ts +284 -296
  102. package/dist/aicore/pipeline/airesponseparser.d.ts +24 -23
  103. package/dist/aicore/ui/aidisclaimerview.d.ts +12 -13
  104. package/dist/aicore/ui/aidotsloader.d.ts +18 -0
  105. package/dist/aicore/ui/aiheaderview.d.ts +27 -28
  106. package/dist/aicore/ui/aimodelselectorview.d.ts +151 -0
  107. package/dist/aicore/ui/aiseparatorview.d.ts +25 -0
  108. package/dist/aicore/ui/aiskeleton.d.ts +43 -32
  109. package/dist/aicore/ui/aispinner.d.ts +10 -11
  110. package/dist/aicore/ui/suggestioncontainer/aiminitoolbarview.d.ts +55 -56
  111. package/dist/aicore/ui/suggestioncontainer/aisuggestionbodyview.d.ts +95 -80
  112. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontainerview.d.ts +45 -46
  113. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontentpartheaderview.d.ts +67 -37
  114. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontentpartstateview.d.ts +21 -31
  115. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontentparttoolbarview.d.ts +46 -21
  116. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontentpartview.d.ts +91 -58
  117. package/dist/aicore/ui/suggestioncontainer/aisuggestionheaderview.d.ts +26 -35
  118. package/dist/aicore/ui/suggestioncontainer/aisuggestionstreamablecontentview.d.ts +30 -27
  119. package/dist/aicore/ui/suggestioncontainer/aiwebsourcesview.d.ts +24 -24
  120. package/dist/aicore/utils/abortabletimeout.d.ts +11 -11
  121. package/dist/aicore/utils/aitabids.d.ts +11 -0
  122. package/dist/aicore/utils/builddocumentsuggestionsmap.d.ts +30 -0
  123. package/dist/aicore/utils/buttonclasses.d.ts +17 -8
  124. package/dist/aicore/utils/cleanupstreamingartifacts.d.ts +12 -0
  125. package/dist/aicore/utils/common-translations.d.ts +6 -6
  126. package/dist/aicore/utils/contentparttranslationkeys.d.ts +27 -0
  127. package/dist/aicore/utils/createresizebutton.d.ts +8 -9
  128. package/dist/aicore/utils/createstartconversationbutton.d.ts +7 -8
  129. package/dist/aicore/utils/documentposition.d.ts +37 -37
  130. package/dist/aicore/utils/documentrange.d.ts +41 -41
  131. package/dist/aicore/utils/eventnames.d.ts +5 -5
  132. package/dist/aicore/utils/geteditorconfig.d.ts +107 -0
  133. package/dist/aicore/utils/geteditorsfromcontext.d.ts +18 -0
  134. package/dist/aicore/utils/getmodeldisplaymode.d.ts +21 -0
  135. package/dist/aicore/utils/getoperationsfordocumentsuggestions.d.ts +20 -0
  136. package/dist/aicore/utils/getrootinfo.d.ts +45 -0
  137. package/dist/aicore/utils/getsuggestionpartsfromreply.d.ts +24 -18
  138. package/dist/aicore/utils/htmlparser.d.ts +23 -16
  139. package/dist/aicore/utils/htmlstreamer.d.ts +79 -79
  140. package/dist/aicore/utils/inlineroot.d.ts +1 -0
  141. package/dist/aicore/utils/istrackchangesenabled.d.ts +23 -0
  142. package/dist/aicore/utils/markoperationsasai.d.ts +21 -0
  143. package/dist/aicore/utils/replyactions.d.ts +13 -0
  144. package/dist/aicore/utils/scrollmanager.d.ts +24 -23
  145. package/dist/aicore/utils/showaitab.d.ts +1 -0
  146. package/dist/aidocumentprocessing/aidocumentprocessinggateway.d.ts +110 -0
  147. package/dist/aidocumentprocessing/model/aidocumentprocessingrunresult.d.ts +19 -0
  148. package/dist/aieditorintegration/aieditorintegration.d.ts +42 -32
  149. package/dist/aieditorintegration/aitogglebutton/aitogglebuttonui.d.ts +33 -34
  150. package/dist/aieditorintegration/aitogglebutton/toggleaicommand.d.ts +12 -12
  151. package/dist/aiquickactions/aiquickactions.d.ts +303 -252
  152. package/dist/aiquickactions/aiquickactionscommand.d.ts +10 -10
  153. package/dist/aiquickactions/aiquickactionsediting.d.ts +22 -22
  154. package/dist/aiquickactions/aiquickactionsui.d.ts +131 -124
  155. package/dist/aiquickactions/ui/aiquickactionsbuttoncreator.d.ts +57 -57
  156. package/dist/aiquickactions/ui/aiquickactionsdropdowncontentview.d.ts +45 -45
  157. package/dist/aiquickactions/ui/aiquickactionsdropdowncreator.d.ts +59 -59
  158. package/dist/aiquickactions/ui/aiquickactionsfilteredlistview.d.ts +0 -4
  159. package/dist/aiquickactions/ui/balloon/aiactionsballoonview.d.ts +73 -136
  160. package/dist/aiquickactions/ui/dropdownmenubuttonwithhighlightview.d.ts +24 -24
  161. package/dist/aireviewcore/aireviewcorecheckregistry.d.ts +37 -0
  162. package/dist/aireviewcore/aireviewcorecontroller.d.ts +48 -23
  163. package/dist/aireviewcore/aireviewcoreediting.d.ts +296 -224
  164. package/dist/aireviewcore/aireviewcoreui.d.ts +109 -85
  165. package/dist/aireviewcore/model/aichecksinglerootresult.d.ts +22 -0
  166. package/dist/aireviewcore/model/aireviewcheck.d.ts +49 -49
  167. package/dist/aireviewcore/model/aireviewchecklist.d.ts +29 -28
  168. package/dist/aireviewcore/model/aireviewcheckresult.d.ts +36 -35
  169. package/dist/aireviewcore/model/aireviewcheckresultchange.d.ts +62 -50
  170. package/dist/aireviewcore/model/aireviewcheckrun.d.ts +174 -147
  171. package/dist/aireviewcore/model/aireviewsystemcheckrun.d.ts +16 -16
  172. package/dist/aireviewcore/types.d.ts +30 -24
  173. package/dist/aireviewcore/ui/aireviewcoreabstractchecklistview.d.ts +50 -0
  174. package/dist/aireviewcore/ui/aireviewcorechecklistitemresultview.d.ts +53 -76
  175. package/dist/aireviewcore/ui/aireviewcorecompletereviewdropdown.d.ts +29 -0
  176. package/dist/aireviewcore/ui/aireviewcorecustomcheckview.d.ts +38 -56
  177. package/dist/aireviewcore/ui/aireviewcorefinishreviewbuttonview.d.ts +8 -9
  178. package/dist/aireviewcore/ui/aireviewcoregeneralerrorview.d.ts +20 -20
  179. package/dist/aireviewcore/ui/aireviewcorenavigationpanelview.d.ts +169 -0
  180. package/dist/aireviewcore/ui/aireviewcoreprogressbarview.d.ts +32 -0
  181. package/dist/aireviewcore/ui/aireviewcorepromptinputview.d.ts +25 -25
  182. package/dist/aireviewcore/ui/aireviewcorereviewchecklistview.d.ts +42 -23
  183. package/dist/aireviewcore/ui/aireviewcorereviewcommandlistitemview.d.ts +49 -39
  184. package/dist/aireviewcore/ui/aireviewcorereviewcompletedview.d.ts +13 -14
  185. package/dist/aireviewcore/ui/aireviewcoreuicheckresultsview.d.ts +114 -87
  186. package/dist/aireviewcore/ui/aireviewcoreview.d.ts +54 -50
  187. package/dist/aireviewcore/ui/changeevents.d.ts +49 -0
  188. package/dist/aireviewcore/ui/form/aireviewcoreformdropdown.d.ts +16 -16
  189. package/dist/aireviewcore/ui/form/aireviewcoreformmanager.d.ts +12 -12
  190. package/dist/aireviewcore/utils/openleaveconfirmationdialog.d.ts +21 -0
  191. package/dist/aireviewcore/utils/reviewcontentpart.d.ts +25 -0
  192. package/dist/aireviewmode/aireviewcheckdefinitions.d.ts +12 -12
  193. package/dist/aireviewmode/aireviewgateway.d.ts +172 -0
  194. package/dist/aireviewmode/aireviewmode.d.ts +260 -126
  195. package/dist/aireviewmode/aireviewmodecheckregistry.d.ts +46 -0
  196. package/dist/aireviewmode/aireviewmodecontroller.d.ts +24 -17
  197. package/dist/aireviewmode/aireviewmodeui.d.ts +17 -17
  198. package/dist/aireviewmode/model/aireviewcheckcustom.d.ts +16 -16
  199. package/dist/aireviewmode/model/aireviewcheckextra.d.ts +35 -30
  200. package/dist/aireviewmode/model/aireviewcustomcheckrun.d.ts +18 -17
  201. package/dist/aireviewmode/model/aireviewextracheckrun.d.ts +15 -15
  202. package/dist/aireviewmode/model/aireviewmodechecklist.d.ts +22 -18
  203. package/dist/aireviewmode/ui/aireviewmodecheckresultsview.d.ts +41 -0
  204. package/dist/aisdk/dataidassigner.d.ts +20 -0
  205. package/dist/aisdk/documentchanges.d.ts +165 -0
  206. package/dist/aisdk/documentchangesutils.d.ts +15 -0
  207. package/dist/aisdk/documentcompare.d.ts +171 -0
  208. package/dist/aisdk/documentcompareutils.d.ts +16 -0
  209. package/dist/aisdk/documentsnapshot.d.ts +48 -0
  210. package/dist/aisdk/extractselectionfromhtml.d.ts +27 -0
  211. package/dist/aisdk/validateoperations.d.ts +43 -0
  212. package/dist/aitabs/aitabs.d.ts +104 -84
  213. package/dist/aitabs/aitabsmainview.d.ts +70 -46
  214. package/dist/aitabs/tabs/aitabsview.d.ts +191 -188
  215. package/dist/aitranslate/aitranslate.d.ts +165 -129
  216. package/dist/aitranslate/aitranslatecheckregistry.d.ts +27 -0
  217. package/dist/aitranslate/aitranslatecontroller.d.ts +18 -15
  218. package/dist/aitranslate/aitranslategateway.d.ts +89 -0
  219. package/dist/aitranslate/aitranslateui.d.ts +17 -18
  220. package/dist/aitranslate/model/aitranslatecheck.d.ts +12 -12
  221. package/dist/aitranslate/model/aitranslatechecklist.d.ts +11 -11
  222. package/dist/aitranslate/model/aitranslatecheckrun.d.ts +24 -23
  223. package/dist/aitranslate/ui/aitranslatechecklistview.d.ts +28 -7
  224. package/dist/aitranslate/ui/aitranslatecheckresultsview.d.ts +11 -11
  225. package/dist/augmentation.d.ts +79 -63
  226. package/dist/errors.d.ts +0 -4
  227. package/dist/errorsmap.d.ts +5 -5
  228. package/dist/index-content.css +0 -96
  229. package/dist/index-editor.css +3932 -3291
  230. package/dist/index.css +3943 -3307
  231. package/dist/index.d.ts +83 -59
  232. package/dist/index.js +19 -6
  233. package/dist/translations/af.js +1 -1
  234. package/dist/translations/af.umd.js +1 -1
  235. package/dist/translations/ar.js +1 -1
  236. package/dist/translations/ar.umd.js +1 -1
  237. package/dist/translations/ast.js +1 -1
  238. package/dist/translations/ast.umd.js +1 -1
  239. package/dist/translations/az.js +1 -1
  240. package/dist/translations/az.umd.js +1 -1
  241. package/dist/translations/be.js +1 -1
  242. package/dist/translations/be.umd.js +1 -1
  243. package/dist/translations/bg.js +1 -1
  244. package/dist/translations/bg.umd.js +1 -1
  245. package/dist/translations/bn.js +1 -1
  246. package/dist/translations/bn.umd.js +1 -1
  247. package/dist/translations/bs.js +1 -1
  248. package/dist/translations/bs.umd.js +1 -1
  249. package/dist/translations/ca.js +1 -1
  250. package/dist/translations/ca.umd.js +1 -1
  251. package/dist/translations/cs.js +1 -1
  252. package/dist/translations/cs.umd.js +1 -1
  253. package/dist/translations/da.js +1 -1
  254. package/dist/translations/da.umd.js +1 -1
  255. package/dist/translations/de-ch.js +1 -1
  256. package/dist/translations/de-ch.umd.js +1 -1
  257. package/dist/translations/de.js +1 -1
  258. package/dist/translations/de.umd.js +1 -1
  259. package/dist/translations/el.js +1 -1
  260. package/dist/translations/el.umd.js +1 -1
  261. package/dist/translations/en-au.js +1 -1
  262. package/dist/translations/en-au.umd.js +1 -1
  263. package/dist/translations/en-gb.js +1 -1
  264. package/dist/translations/en-gb.umd.js +1 -1
  265. package/dist/translations/en.js +1 -1
  266. package/dist/translations/en.umd.js +1 -1
  267. package/dist/translations/eo.js +1 -1
  268. package/dist/translations/eo.umd.js +1 -1
  269. package/dist/translations/es-co.js +1 -1
  270. package/dist/translations/es-co.umd.js +1 -1
  271. package/dist/translations/es.js +1 -1
  272. package/dist/translations/es.umd.js +1 -1
  273. package/dist/translations/et.js +1 -1
  274. package/dist/translations/et.umd.js +1 -1
  275. package/dist/translations/eu.js +1 -1
  276. package/dist/translations/eu.umd.js +1 -1
  277. package/dist/translations/fa.js +1 -1
  278. package/dist/translations/fa.umd.js +1 -1
  279. package/dist/translations/fi.js +1 -1
  280. package/dist/translations/fi.umd.js +1 -1
  281. package/dist/translations/fr.js +1 -1
  282. package/dist/translations/fr.umd.js +1 -1
  283. package/dist/translations/gl.js +1 -1
  284. package/dist/translations/gl.umd.js +1 -1
  285. package/dist/translations/gu.js +1 -1
  286. package/dist/translations/gu.umd.js +1 -1
  287. package/dist/translations/he.js +1 -1
  288. package/dist/translations/he.umd.js +1 -1
  289. package/dist/translations/hi.js +1 -1
  290. package/dist/translations/hi.umd.js +1 -1
  291. package/dist/translations/hr.js +1 -1
  292. package/dist/translations/hr.umd.js +1 -1
  293. package/dist/translations/hu.js +1 -1
  294. package/dist/translations/hu.umd.js +1 -1
  295. package/dist/translations/hy.js +1 -1
  296. package/dist/translations/hy.umd.js +1 -1
  297. package/dist/translations/id.js +1 -1
  298. package/dist/translations/id.umd.js +1 -1
  299. package/dist/translations/it.js +1 -1
  300. package/dist/translations/it.umd.js +1 -1
  301. package/dist/translations/ja.js +1 -1
  302. package/dist/translations/ja.umd.js +1 -1
  303. package/dist/translations/jv.js +1 -1
  304. package/dist/translations/jv.umd.js +1 -1
  305. package/dist/translations/kk.js +1 -1
  306. package/dist/translations/kk.umd.js +1 -1
  307. package/dist/translations/km.js +1 -1
  308. package/dist/translations/km.umd.js +1 -1
  309. package/dist/translations/kn.js +1 -1
  310. package/dist/translations/kn.umd.js +1 -1
  311. package/dist/translations/ko.js +1 -1
  312. package/dist/translations/ko.umd.js +1 -1
  313. package/dist/translations/ku.js +1 -1
  314. package/dist/translations/ku.umd.js +1 -1
  315. package/dist/translations/lt.js +1 -1
  316. package/dist/translations/lt.umd.js +1 -1
  317. package/dist/translations/lv.js +1 -1
  318. package/dist/translations/lv.umd.js +1 -1
  319. package/dist/translations/ms.js +1 -1
  320. package/dist/translations/ms.umd.js +1 -1
  321. package/dist/translations/nb.js +1 -1
  322. package/dist/translations/nb.umd.js +1 -1
  323. package/dist/translations/ne.js +1 -1
  324. package/dist/translations/ne.umd.js +1 -1
  325. package/dist/translations/nl.js +1 -1
  326. package/dist/translations/nl.umd.js +1 -1
  327. package/dist/translations/no.js +1 -1
  328. package/dist/translations/no.umd.js +1 -1
  329. package/dist/translations/oc.js +1 -1
  330. package/dist/translations/oc.umd.js +1 -1
  331. package/dist/translations/pl.js +1 -1
  332. package/dist/translations/pl.umd.js +1 -1
  333. package/dist/translations/pt-br.js +1 -1
  334. package/dist/translations/pt-br.umd.js +1 -1
  335. package/dist/translations/pt.js +1 -1
  336. package/dist/translations/pt.umd.js +1 -1
  337. package/dist/translations/ro.js +1 -1
  338. package/dist/translations/ro.umd.js +1 -1
  339. package/dist/translations/ru.js +1 -1
  340. package/dist/translations/ru.umd.js +1 -1
  341. package/dist/translations/si.js +1 -1
  342. package/dist/translations/si.umd.js +1 -1
  343. package/dist/translations/sk.js +1 -1
  344. package/dist/translations/sk.umd.js +1 -1
  345. package/dist/translations/sl.js +1 -1
  346. package/dist/translations/sl.umd.js +1 -1
  347. package/dist/translations/sq.js +1 -1
  348. package/dist/translations/sq.umd.js +1 -1
  349. package/dist/translations/sr-latn.js +1 -1
  350. package/dist/translations/sr-latn.umd.js +1 -1
  351. package/dist/translations/sr.js +1 -1
  352. package/dist/translations/sr.umd.js +1 -1
  353. package/dist/translations/sv.js +1 -1
  354. package/dist/translations/sv.umd.js +1 -1
  355. package/dist/translations/th.js +1 -1
  356. package/dist/translations/th.umd.js +1 -1
  357. package/dist/translations/ti.js +1 -1
  358. package/dist/translations/ti.umd.js +1 -1
  359. package/dist/translations/tk.js +1 -1
  360. package/dist/translations/tk.umd.js +1 -1
  361. package/dist/translations/tr.js +1 -1
  362. package/dist/translations/tr.umd.js +1 -1
  363. package/dist/translations/tt.js +1 -1
  364. package/dist/translations/tt.umd.js +1 -1
  365. package/dist/translations/ug.js +1 -1
  366. package/dist/translations/ug.umd.js +1 -1
  367. package/dist/translations/uk.js +1 -1
  368. package/dist/translations/uk.umd.js +1 -1
  369. package/dist/translations/ur.js +1 -1
  370. package/dist/translations/ur.umd.js +1 -1
  371. package/dist/translations/uz.js +1 -1
  372. package/dist/translations/uz.umd.js +1 -1
  373. package/dist/translations/vi.js +1 -1
  374. package/dist/translations/vi.umd.js +1 -1
  375. package/dist/translations/zh-cn.js +1 -1
  376. package/dist/translations/zh-cn.umd.js +1 -1
  377. package/dist/translations/zh.js +1 -1
  378. package/dist/translations/zh.umd.js +1 -1
  379. package/package.json +32 -13
  380. package/dist/aichat/ui/controls/aichatcontrolsloaderview.d.ts +0 -12
  381. package/dist/aicore/ui/suggestioncontainer/aisuggestionloaderview.d.ts +0 -16
  382. package/dist/aicore/utils/geteditorfromcontext.d.ts +0 -19
  383. package/dist/aicore/utils/getoperationsfromreply.d.ts +0 -24
  384. package/dist/aiquickactions/ui/balloon/aiactionsballoondisclaimerview.d.ts +0 -17
  385. package/dist/aiquickactions/ui/balloon/aiactionsballoontoolbarview.d.ts +0 -37
  386. package/dist/aireviewcore/ui/aireviewcoreballoonsuggestionview.d.ts +0 -38
  387. package/dist/aitabs/tabs/tabbuttonview.d.ts +0 -47
  388. package/dist/aitabs/tabs/tabpanelview.d.ts +0 -44
@@ -0,0 +1,172 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module ai/aireviewmode/aireviewgateway
7
+ * @publicApi
8
+ */
9
+ import { ContextPlugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
10
+ import { AIConnector } from "../aicore/aiconnector.js";
11
+ import { AIReviewCoreEditing } from "../aireviewcore/aireviewcoreediting.js";
12
+ import { AIReviewModeCheckRegistry } from "./aireviewmodecheckregistry.js";
13
+ import { AIEditing } from "../aicore/aiediting.js";
14
+ import { type AIRunResult } from "../aicore/model/airunresult.js";
15
+ import { type AICheckRunSingleRootResult } from "../aireviewcore/model/aichecksinglerootresult.js";
16
+ import { AIGateway, type AIRunBaseOptions, type AIGatewayApplyOptions } from "../aicore/aigateway.js";
17
+ import { AICore } from "../aicore/aicore.js";
18
+ import { type AIModels } from "../aicore/model/aimodels.js";
19
+ import { type AIEditorRoot } from "../aicore/model/aieditorroot.js";
20
+ /**
21
+ * Review command data.
22
+ */
23
+ export interface AIReviewCommandData {
24
+ /**
25
+ * Id of the review command.
26
+ */
27
+ id: string;
28
+ /**
29
+ * Human-readable command title.
30
+ */
31
+ title: string;
32
+ /**
33
+ * Human-readable description of what the command does.
34
+ */
35
+ description: string;
36
+ /**
37
+ * Selectable parameters for parameterized commands (e.g. `length`, `tone`). One of these IDs can be
38
+ * passed as `options.parameterId` when invoking the command.
39
+ */
40
+ parameters?: Array<{
41
+ id: string;
42
+ label: string;
43
+ }>;
44
+ }
45
+ /**
46
+ * Roots filter shared by both `AIReviewRunOptions` and `AIReviewCustomRunOptions`.
47
+ */
48
+ export type AIReviewRootsOption = {
49
+ /**
50
+ * The roots to run the review against. When omitted, every visible root across every editor in the current
51
+ * {@link module:core/context~Context `Context`} is reviewed. When provided, only the listed roots are reviewed;
52
+ * the order of entries in `roots` is treated as a set-membership filter and does not affect the payload order.
53
+ *
54
+ * Each entry's `channelId` must match an editor's `collaboration.channelId`; `rootName` must match a live,
55
+ * visible (non-`$graveyard`) root within that editor.
56
+ */
57
+ roots?: Array<AIEditorRoot>;
58
+ };
59
+ export type AIReviewRunOptions = AIReviewRootsOption & {
60
+ /**
61
+ * Id of one of the values in {@link module:ai/aireviewmode/aireviewgateway~AIReviewCommandData#parameters}.
62
+ * Applicable to parameterized commands (e.g. `length`, `tone`), ignored otherwise.
63
+ */
64
+ parameterId?: string;
65
+ };
66
+ export type AIReviewCustomRunOptions = AIReviewRootsOption & {
67
+ /**
68
+ * The model that will be used to run the custom command.
69
+ * The IDs of an AI models can be acquired via {@link module:ai/aicore/model/aimodels~AIModels#getAvailableModels}.
70
+ */
71
+ model?: string;
72
+ };
73
+ export type AIReviewHeadlessRunOptions = AIReviewRunOptions & AIRunBaseOptions;
74
+ export type AIReviewHeadlessCustomRunOptions = AIReviewCustomRunOptions & AIRunBaseOptions;
75
+ /**
76
+ * Headless, stateless public API for running AI reviews end-to-end.
77
+ *
78
+ * This plugin can be loaded standalone (without `AIReviewMode` plugin) to expose a programmatic
79
+ * review API. It is also transparently loaded by `AIReviewMode` to back the UI-driven flow.
80
+ */
81
+ export declare class AIReviewGateway extends ContextPlugin {
82
+ /**
83
+ * @inheritDoc
84
+ */
85
+ static get pluginName(): "AIReviewGateway";
86
+ /**
87
+ * @inheritDoc
88
+ */
89
+ static get requires(): PluginDependenciesOf<[AIReviewCoreEditing, AIReviewModeCheckRegistry, AIConnector, AIEditing, AIGateway, AICore]>;
90
+ /**
91
+ * The shared model registry. Exposed here so headless gateways are self-sufficient — integrators can
92
+ * discover and resolve models (`getAvailableModels()`, `getModel()`, `resolveModel()`, …) without
93
+ * reaching for the `AICore` plugin directly.
94
+ *
95
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
96
+ * without the standard deprecation policy. Check the changelog for migration guidance.
97
+ */
98
+ get models(): AIModels;
99
+ /**
100
+ * @inheritDoc
101
+ */
102
+ static override get isOfficialPlugin(): true;
103
+ /**
104
+ * @inheritDoc
105
+ */
106
+ static override get isPremiumPlugin(): true;
107
+ /**
108
+ * Returns the list of review commands that can be run with {@link #runReview}.
109
+ *
110
+ * The list combines built-in system checks with any extra checks declared
111
+ * via the {@link module:ai/aireviewmode/aireviewmode~AIReviewModeConfig#extraCommands `ai.review.extraCommands`}
112
+ * configuration.
113
+ *
114
+ * The method returns all review commands regardless of the editor configuration (which affects the UI only), meaning the commands
115
+ * that are not visible in the UI can be still invoked via the {@link module:ai/aireviewmode/aireviewgateway~AIReviewGateway} API.
116
+ *
117
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
118
+ * without the standard deprecation policy. Check the changelog for migration guidance.
119
+ */
120
+ getAllCommands(): Promise<Array<AIReviewCommandData>>;
121
+ /**
122
+ * Runs the given review command against every visible root across every editor in the current
123
+ * {@link module:core/context~Context `Context`} and returns an
124
+ * {@link module:ai/aicore/model/airunresult~AIRunResult} — a container with one
125
+ * {@link module:ai/aireviewcore/model/aichecksinglerootresult~AICheckRunSingleRootResult} per root and whole-run
126
+ * `status` / `error`. Accepts built-in commands and extra commands configured via
127
+ * {@link module:ai/aireviewmode/aireviewmode~AIReviewModeConfig#extraCommands `ai.review.extraCommands`}.
128
+ *
129
+ * To insert or suggest changes back to the editor, pass the returned result to {@link #applyReview}.
130
+ *
131
+ * When the `roots` option is provided, its entries are validated at the call boundary; an entry that does not
132
+ * resolve to a live, visible (non-`$graveyard`) root throws `ai-reviewcoreediting-root-not-found`, and an
133
+ * explicitly empty `roots` array throws `ai-reviewcoreediting-empty-roots`.
134
+ *
135
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
136
+ * without the standard deprecation policy. Check the changelog for migration guidance.
137
+ * @param commandId Id of a command returned by {@link #getAllCommands}.
138
+ * @param options Optional `parameterId`, `roots` filter, and `signal` to allow aborting the run.
139
+ */
140
+ runReview(commandId: string, options?: AIReviewHeadlessRunOptions): Promise<AIRunResult<AICheckRunSingleRootResult>>;
141
+ /**
142
+ * Runs the `custom` review command against every visible root across every editor in the current
143
+ * {@link module:core/context~Context `Context`} and returns an
144
+ * {@link module:ai/aicore/model/airunresult~AIRunResult}.
145
+ *
146
+ * The command requires a prompt to run, and optional model ID. The list of available models can be discovered
147
+ * via {@link module:ai/aicore/model/aimodels~AIModels#getAvailableModels}.
148
+ *
149
+ * Analogical to {@link #runReview} but restricted to the `custom` command only.
150
+ *
151
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
152
+ * without the standard deprecation policy. Check the changelog for migration guidance.
153
+ * @param prompt The prompt to run the `custom` command with.
154
+ * @param options Optional `model` (optional override), `roots` filter, and `signal` to allow aborting the run.
155
+ */
156
+ runCustomReview(prompt: string, options?: AIReviewHeadlessCustomRunOptions): Promise<AIRunResult<AICheckRunSingleRootResult>>;
157
+ /**
158
+ * Applies a review run result (produced by {@link #runReview} or {@link #runCustomReview}) to the editor content,
159
+ * either as direct changes or as track-changes suggestions. Each per-root sub-result is applied to the root
160
+ * identified by its own `channelId` and `rootName`. Pass `options.roots` to restrict the apply to a subset of
161
+ * roots — the filter is symmetric with the one accepted by {@link #runReview} / {@link #runCustomReview}.
162
+ *
163
+ * By default the apply is stamped with `aiSource: 'review'`; pass `options.aiSource` to override.
164
+ *
165
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
166
+ * without the standard deprecation policy. Check the changelog for migration guidance.
167
+ * @param result The result returned by {@link #runReview} or {@link #runCustomReview}.
168
+ * @param options Apply options forwarded to {@link module:ai/aicore/aigateway~AIGateway#apply}, including the
169
+ * `applyMethod` and an optional `roots` filter.
170
+ */
171
+ applyReview(result: AIRunResult<AICheckRunSingleRootResult>, options: AIGatewayApplyOptions): void;
172
+ }
@@ -1,135 +1,269 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module ai/aireviewmode/aireviewmode
7
- * @publicApi
8
- */
9
- import { ContextPlugin } from '@ckeditor/ckeditor5-core';
10
- import { AIReviewModeUI } from './aireviewmodeui.js';
11
- import { AIReviewCoreEditing } from '../aireviewcore/aireviewcoreediting.js';
12
- import { AIReviewModeController } from './aireviewmodecontroller.js';
6
+ * @module ai/aireviewmode/aireviewmode
7
+ * @publicApi
8
+ */
9
+ import { ContextPlugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
10
+ import { AIReviewModeUI } from "./aireviewmodeui.js";
11
+ import { AIReviewCoreEditing } from "../aireviewcore/aireviewcoreediting.js";
12
+ import { AIReviewModeController } from "./aireviewmodecontroller.js";
13
+ import { type AIReviewCommandData, type AIReviewCustomRunOptions, AIReviewGateway, type AIReviewRunOptions } from "./aireviewgateway.js";
14
+ import { type AIContextRef } from "../aicore/model/aicontextref.js";
13
15
  /**
14
- * The AI Review Mode feature.
15
- *
16
- * The Review feature provides users with AI-powered quality assurance for their content by automatically running checks
17
- * for grammar, style, tone, and more.
18
- *
19
- * Learn more about AI features in CKEditor in the {@glink features/ai/ckeditor-ai-overview AI Overview} documentation.
20
- */
16
+ * The AI Review Mode feature.
17
+ *
18
+ * The Review feature provides users with AI-powered quality assurance for their content by automatically running commands
19
+ * for grammar, style, tone, and more.
20
+ *
21
+ * Learn more about AI features in CKEditor in the {@glink features/ai/ckeditor-ai-overview AI Overview} documentation.
22
+ */
21
23
  export declare class AIReviewMode extends ContextPlugin {
22
- /**
23
- * @inheritDoc
24
- */
25
- static get requires(): readonly [typeof AIReviewModeController, typeof AIReviewModeUI, typeof AIReviewCoreEditing];
26
- /**
27
- * @inheritDoc
28
- */
29
- static get pluginName(): "AIReviewMode";
30
- /**
31
- * @inheritDoc
32
- */
33
- static get isOfficialPlugin(): true;
34
- /**
35
- * @inheritDoc
36
- */
37
- static get isPremiumPlugin(): true;
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get requires(): PluginDependenciesOf<[AIReviewModeController, AIReviewModeUI, AIReviewCoreEditing, AIReviewGateway]>;
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ static get pluginName(): "AIReviewMode";
32
+ /**
33
+ * @inheritDoc
34
+ */
35
+ static override get isOfficialPlugin(): true;
36
+ /**
37
+ * @inheritDoc
38
+ */
39
+ static override get isPremiumPlugin(): true;
40
+ /**
41
+ * Launches a review command on the UI — the programmatic equivalent of clicking a command in the review panel.
42
+ *
43
+ * Unlike the headless {@link module:ai/aireviewmode/aireviewgateway~AIReviewGateway} API, this method drives
44
+ * the full UI-driven flow.
45
+ *
46
+ * Preconditions:
47
+ * - The command must be available in the UI. Not available commands or unknown IDs throw `ai-reviewmode-unknown-command`.
48
+ * - The `commandId` must point at a built-in system command or an extra command configured via
49
+ * {@link module:ai/aireviewmode/aireviewmode~AIReviewModeConfig#extraCommands `ai.review.extraCommands`}.
50
+ * The built-in `custom` command throws `ai-reviewmode-not-a-system-command`. Use {@link #startCustomReview} instead
51
+ * to run the `custom` command.
52
+ * - No other review check can already be running. Otherwise the method throws `ai-reviewmode-review-already-running`.
53
+ * - Activating the Review tab must not be vetoed by a listener (for example another AI tab has an unresolved
54
+ * run and the user declines the confirmation dialog asking to leave it). Otherwise the method throws
55
+ * `ai-reviewmode-review-vetoed`.
56
+ *
57
+ * The returned promise resolves once the review run is dispatched to the controller. The command itself continues
58
+ * to run asynchronously and the UI reflects its progress. Stream-phase failures surface via the existing UI error
59
+ * views, not via this promise.
60
+ *
61
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
62
+ * without the standard deprecation policy. Check the changelog for migration guidance.
63
+ * @param commandId Id of a command returned by {@link #getAvailableCommands}.
64
+ * @param options Optional `parameterId` (for parameterized system commands like `length` or `tone`).
65
+ */
66
+ startReview(commandId: string, options?: AIReviewRunOptions): Promise<void>;
67
+ /**
68
+ * Launches the built-in `custom` review command on the UI — the programmatic equivalent of clicking the
69
+ * `custom` command (and submitting the prompt modal) in the review panel.
70
+ *
71
+ * Analogical to {@link #startReview}, but restricted to the built-in `custom` command only.
72
+ *
73
+ * Preconditions:
74
+ * - The `custom` command must be available in the UI. If not, the method throws `ai-reviewmode-unknown-command`.
75
+ * - A model must be resolvable from `options.model` or the command's default. Otherwise the method throws
76
+ * `ai-reviewmode-missing-custom-command-model`. Use {@link module:ai/aicore/model/aimodels~AIModels#getAvailableModels}
77
+ * for valid model IDs.
78
+ * - No other review check can already be running. Otherwise the method throws `ai-reviewmode-review-already-running`.
79
+ * - Activating the Review tab must not be vetoed by a listener (for example another AI tab has an unresolved
80
+ * run and the user declines the confirmation dialog asking to leave it). Otherwise the method throws
81
+ * `ai-reviewmode-review-vetoed`.
82
+ *
83
+ * The returned promise resolves once the review run is dispatched to the controller. The command itself
84
+ * continues to run asynchronously and the UI reflects its progress. Stream-phase failures surface via
85
+ * the existing UI error views, not via this promise.
86
+ *
87
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
88
+ * without the standard deprecation policy. Check the changelog for migration guidance.
89
+ * @param prompt The prompt to run the `custom` command with.
90
+ * @param options Optional `model` to run command with this specific model, instead of the default one.
91
+ * Use {@link module:ai/aicore/model/aimodels~AIModels#getAvailableModels} for valid model IDs.
92
+ */
93
+ startCustomReview(prompt: string, options?: AIReviewCustomRunOptions): Promise<void>;
94
+ /**
95
+ * Returns the list of review commands that can be run via {@link #startReview} and are visible in the UI.
96
+ * The list will include `custom` command if it's available (meaning {@link #startCustomReview} can be used).
97
+ *
98
+ * The list combines built-in system commands with any extra commands declared
99
+ * via the {@link module:ai/aireviewmode/aireviewmode~AIReviewModeConfig#extraCommands `ai.review.extraCommands`} configuration.
100
+ *
101
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
102
+ * without the standard deprecation policy. Check the changelog for migration guidance.
103
+ */
104
+ getAvailableCommands(): Array<AIReviewCommandData>;
38
105
  }
39
106
  export interface AIReviewModeConfig {
40
- /**
41
- * List of IDs of review commands that will be available in the AI Review feature UI. If not set, all available
42
- * predefined commands will be used. The order of IDs defines the order of commands in the UI.
43
- *
44
- * The list of all predefined commands, used by default:
45
- * - `custom`
46
- * - `correctness`
47
- * - `clarity`
48
- * - `readability`
49
- * - `length`
50
- * - `tone`
51
- *
52
- * The commands can be used selectively and rearranged with this configuration option. For example:
53
- *
54
- * ```ts
55
- * ClassicEditor
56
- * .create( {
57
- * ai: {
58
- * review: {
59
- * availableCommands: [
60
- * 'length', 'tone', 'clarity', 'readability'
61
- * ]
62
- * }
63
- * }
64
- * } )
65
- * .then( ... )
66
- * .catch( ... );
67
- * ```
68
- *
69
- * @default [ 'custom', 'correctness', 'clarity', 'readability', 'length', 'tone' ]
70
- */
71
- availableCommands?: Array<string>;
72
- /**
73
- * List of extra review commands that can be added to the AI Review feature.
74
- *
75
- * Keep in mind that each command should have a unique ID that does not collide with predefined commands.
76
- * The `custom` command ID is reserved and cannot be used as an ID for extra command.
77
- *
78
- * To add a command and expose it in the UI, first a command definition needs to be provided:
79
- *
80
- * ```ts
81
- * ClassicEditor
82
- * .create( {
83
- * ai: {
84
- * review: {
85
- * extraCommands: [
86
- * {
87
- * id: 'improve-captions',
88
- * label: 'Improve Captions',
89
- * description: 'Improve image captions in the document.',
90
- * prompt: 'Suggest improvements for the image captions in the document.',
91
- * },
92
- * {
93
- * id: 'expand-abbreviations',
94
- * label: 'Expand Abbreviations',
95
- * description: 'Expand abbreviations in the document.',
96
- * prompt: 'Suggest expansions for abbreviations in the document.',
97
- * model: 'gpt-5-2' // Optional, if not set, default model will be used.
98
- * }
99
- * ]
100
- * }
101
- * }
102
- * } )
103
- * .then( ... )
104
- * .catch( ... );
105
- * ```
106
- *
107
- * Then if {@link #availableCommands} is not set, the extra commands will be added to the end of the list of available
108
- * commands and visible in the UI by default. Otherwise, the extra commands need to be explicitly added to the list
109
- * of available commands to be exposed in the UI:
110
- *
111
- * ```ts
112
- * ClassicEditor
113
- * .create( {
114
- * ai: {
115
- * review: {
116
- * extraCommands: [ ... ],
117
- * availableCommands: [
118
- * 'custom', 'correctness', 'clarity', 'readability', 'length', 'tone', 'improve-captions', 'expand-abbreviations'
119
- * ]
120
- * }
121
- * }
122
- * } )
123
- * .then( ... )
124
- * .catch( ... );
125
- * ```
126
- */
127
- extraCommands?: Array<AIReviewCustomCommand>;
107
+ /**
108
+ * List of IDs of review commands that will be available in the AI Review feature UI. If not set, all available
109
+ * predefined commands will be used. The order of IDs defines the order of commands in the UI.
110
+ *
111
+ * The list of all predefined commands, used by default:
112
+ * - `custom`
113
+ * - `correctness`
114
+ * - `clarity`
115
+ * - `readability`
116
+ * - `length`
117
+ * - `tone`
118
+ *
119
+ * The commands can be used selectively and rearranged with this configuration option. For example:
120
+ *
121
+ * ```ts
122
+ * ClassicEditor
123
+ * .create( {
124
+ * ai: {
125
+ * review: {
126
+ * availableCommands: [
127
+ * 'length', 'tone', 'clarity', 'readability'
128
+ * ]
129
+ * }
130
+ * }
131
+ * } )
132
+ * .then( ... )
133
+ * .catch( ... );
134
+ * ```
135
+ *
136
+ * @default [ 'custom', 'correctness', 'clarity', 'readability', 'length', 'tone' ]
137
+ */
138
+ availableCommands?: Array<string>;
139
+ /**
140
+ * List of extra review commands that can be added to the AI Review feature.
141
+ *
142
+ * Keep in mind that each command should have a unique ID that does not collide with predefined commands.
143
+ * The `custom` command ID is reserved and cannot be used as an ID for extra command.
144
+ *
145
+ * To add a command and expose it in the UI, first a command definition needs to be provided:
146
+ *
147
+ * ```ts
148
+ * ClassicEditor
149
+ * .create( {
150
+ * ai: {
151
+ * review: {
152
+ * extraCommands: [
153
+ * {
154
+ * id: 'improve-captions',
155
+ * label: 'Improve Captions',
156
+ * description: 'Improve image captions in the document.',
157
+ * prompt: 'Suggest improvements for the image captions in the document.',
158
+ * },
159
+ * {
160
+ * id: 'expand-abbreviations',
161
+ * label: 'Expand Abbreviations',
162
+ * description: 'Expand abbreviations in the document.',
163
+ * prompt: 'Suggest expansions for abbreviations in the document.',
164
+ * model: 'gpt-5-2' // Optional, if not set, default model will be used.
165
+ * },
166
+ * {
167
+ * id: 'style-guide',
168
+ * label: 'Style Guide',
169
+ * description: 'Check the document against the style guide.',
170
+ * context: { id: 'style-guide', promptId: 'review-rules' }
171
+ * }
172
+ * ]
173
+ * }
174
+ * }
175
+ * } )
176
+ * .then( ... )
177
+ * .catch( ... );
178
+ * ```
179
+ *
180
+ * Then if {@link #availableCommands} is not set, the extra commands will be added to the end of the list of available
181
+ * commands and visible in the UI by default. Otherwise, the extra commands need to be explicitly added to the list
182
+ * of available commands to be exposed in the UI:
183
+ *
184
+ * ```ts
185
+ * ClassicEditor
186
+ * .create( {
187
+ * ai: {
188
+ * review: {
189
+ * extraCommands: [ ... ],
190
+ * availableCommands: [
191
+ * 'custom', 'correctness', 'clarity', 'readability', 'length', 'tone', 'improve-captions', 'expand-abbreviations'
192
+ * ]
193
+ * }
194
+ * }
195
+ * } )
196
+ * .then( ... )
197
+ * .catch( ... );
198
+ * ```
199
+ */
200
+ extraCommands?: Array<AIReviewCustomCommand>;
128
201
  }
202
+ /**
203
+ * An extra review command definition.
204
+ *
205
+ * The command needs a prompt source, provided in one of three ways:
206
+ *
207
+ * * an inline `prompt` string - sent as the prompt,
208
+ * * a `context` reference - the referenced context drives the command (for example through a prompt it contains),
209
+ * * both - the inline `prompt` is used and the `context` is attached as additional reference material (for example a file).
210
+ *
211
+ * The `model` property is optional. If not specified, the default model is used.
212
+ *
213
+ * ```ts
214
+ * {
215
+ * id: 'improve-captions',
216
+ * label: 'Improve Captions',
217
+ * description: 'Improve image captions in the document.',
218
+ * prompt: 'Suggest improvements for the image captions in the document.'
219
+ * }
220
+ * ```
221
+ *
222
+ * The same command using a `context` reference instead of an inline `prompt`:
223
+ *
224
+ * ```ts
225
+ * {
226
+ * id: 'improve-captions',
227
+ * label: 'Improve Captions',
228
+ * description: 'Improve image captions in the document.',
229
+ * context: { id: 'style-guide', promptId: 'improve-captions' }
230
+ * }
231
+ * ```
232
+ *
233
+ * An inline `prompt` combined with a `context` that attaches a single file as reference material:
234
+ *
235
+ * ```ts
236
+ * {
237
+ * id: 'improve-captions',
238
+ * label: 'Improve Captions',
239
+ * description: 'Improve image captions in the document.',
240
+ * prompt: 'Suggest improvements for the image captions in the document.',
241
+ * context: { id: 'style-guide', fileId: 'caption-examples' }
242
+ * }
243
+ * ```
244
+ */
129
245
  export type AIReviewCustomCommand = {
130
- id: string;
131
- label: string;
132
- description: string;
133
- prompt: string;
134
- model?: string;
246
+ id: string;
247
+ label: string;
248
+ description: string;
249
+ model?: string;
250
+ /**
251
+ * The prompt to be sent to the AI model when the command is executed.
252
+ *
253
+ * At least one prompt source is required: an inline `prompt`, a `context` that carries a prompt (a whole context
254
+ * or a `promptId` reference), or both. A `context` that references only a single file (`fileId`) cannot drive the
255
+ * command on its own and must be combined with an inline `prompt`.
256
+ */
257
+ readonly prompt?: string;
258
+ /**
259
+ * A context reference attached to the command.
260
+ *
261
+ * When no inline `prompt` is provided, the referenced context drives the command (a whole context or a `promptId`
262
+ * reference). When combined with an inline `prompt`, it is attached as additional reference material (for example
263
+ * a single file).
264
+ *
265
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
266
+ * without the standard deprecation policy. Check the changelog for migration guidance.
267
+ */
268
+ readonly context?: AIContextRef;
135
269
  };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module ai/aireviewmode/aireviewmodecheckregistry
7
+ */
8
+ import { type Context, type Editor, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
9
+ import { CKEditorError } from "@ckeditor/ckeditor5-utils";
10
+ import { AICore } from "../aicore/aicore.js";
11
+ import { AIConnector } from "../aicore/aiconnector.js";
12
+ import { AIErrorSink } from "../aicore/aierrorreporter.js";
13
+ import { AIReviewCoreCheckRegistry } from "../aireviewcore/aireviewcorecheckregistry.js";
14
+ import { type AIReviewCheckExtraDefinition } from "../aireviewcore/types.js";
15
+ import { AIReviewModeCheckList } from "./model/aireviewmodechecklist.js";
16
+ /**
17
+ * Headless registry for the AI review check list. Owns the merge of built-in checks with `ai.review.extraCommands`,
18
+ * the model list fetch required by custom/extra checks, and caching.
19
+ *
20
+ * Used by both `AIReviewModeController` (UI-driven flow) and `AIReviewGateway` (headless API) so they share the same source of truth
21
+ * without the gateway depending on the UI controller.
22
+ */
23
+ export declare class AIReviewModeCheckRegistry extends AIReviewCoreCheckRegistry<AIReviewModeCheckList> {
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get pluginName(): "AIReviewModeCheckRegistry";
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ static override get requires(): PluginDependenciesOf<[AIConnector, AIErrorSink, AICore]>;
32
+ /**
33
+ * @inheritDoc
34
+ */
35
+ constructor(context: Context | Editor);
36
+ /**
37
+ * The error captured during the last models fetch, or `null` if the fetch succeeded
38
+ * (or was not required because no custom/extra check was in scope).
39
+ */
40
+ get modelsLoadError(): CKEditorError | null;
41
+ /**
42
+ * Reads the extra commands definitions from the configuration and returns
43
+ * them as an array of `AIReviewCheckExtraDefinition` objects.
44
+ */
45
+ getExtraChecks(): Array<AIReviewCheckExtraDefinition>;
46
+ }
@@ -1,20 +1,27 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
5
- import { type Context, type Editor } from '@ckeditor/ckeditor5-core';
6
- import { AIReviewCoreController } from '../aireviewcore/aireviewcorecontroller.js';
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ import { AIReviewCoreController } from "../aireviewcore/aireviewcorecontroller.js";
6
+ import { AIErrorSink } from "../aicore/aierrorreporter.js";
7
+ import { AICore } from "../aicore/aicore.js";
8
+ import { AIReviewModeCheckRegistry } from "./aireviewmodecheckregistry.js";
9
+ import type { PluginDependenciesOf, Context, Editor } from "@ckeditor/ckeditor5-core";
7
10
  export declare class AIReviewModeController extends AIReviewCoreController {
8
- /**
9
- * @inheritDoc
10
- */
11
- static get pluginName(): "AIReviewModeController";
12
- /**
13
- * @inheritDoc
14
- */
15
- constructor(context: Context | Editor);
16
- /**
17
- * @inheritDoc
18
- */
19
- init(): Promise<void>;
11
+ /**
12
+ * @inheritDoc
13
+ */
14
+ static get pluginName(): "AIReviewModeController";
15
+ /**
16
+ * @inheritDoc
17
+ */
18
+ static get requires(): PluginDependenciesOf<[AIErrorSink, AIReviewModeCheckRegistry, AICore]>;
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ constructor(context: Context | Editor);
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ override init(): void;
20
27
  }