@ckeditor/ckeditor5-ai 48.8.1-alpha.3 → 49.0.0-alpha.0

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 +3948 -3291
  230. package/dist/index.css +3959 -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,53 @@
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/aicore/aicore
7
+ * @publicApi
8
+ */
9
+ import { ContextPlugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
10
+ import { AIConnector } from "./aiconnector.js";
11
+ import { AIModels } from "./model/aimodels.js";
12
+ import { AIContextLibrary } from "./model/aicontextlibrary.js";
13
+ /**
14
+ * A shared, context-level home for cross-feature AI state.
15
+ *
16
+ * It owns a single {@link module:ai/aicore/model/aimodels~AIModels} instance so the model list is
17
+ * fetched once and shared across all AI features (chat, quick actions, review mode, gateway) instead
18
+ * of each feature building its own. Access it via {@link #models}.
19
+ *
20
+ * It owns a single {@link module:ai/aicore/model/aicontextlibrary~AIContextLibrary} instance
21
+ * so the list of contexts available to the current token is fetched once and shared. Access it via
22
+ * {@link #contextLibrary}.
23
+ */
24
+ export declare class AICore extends ContextPlugin {
25
+ /**
26
+ * The shared model registry — fetched once and shared across all AI features.
27
+ */
28
+ models: AIModels;
29
+ /**
30
+ * The shared context library, fetched once and shared across all AI features.
31
+ */
32
+ contextLibrary: AIContextLibrary;
33
+ /**
34
+ * @inheritDoc
35
+ */
36
+ static get pluginName(): "AICore";
37
+ /**
38
+ * @inheritDoc
39
+ */
40
+ static override get isOfficialPlugin(): true;
41
+ /**
42
+ * @inheritDoc
43
+ */
44
+ static override get isPremiumPlugin(): true;
45
+ /**
46
+ * @inheritDoc
47
+ */
48
+ static get requires(): PluginDependenciesOf<[AIConnector]>;
49
+ /**
50
+ * @inheritDoc
51
+ */
52
+ init(): void;
53
+ }
@@ -1,99 +1,114 @@
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/aicore/aiediting
7
- */
8
- import { type ModelRange, type ModelDocumentFragment } from '@ckeditor/ckeditor5-engine';
9
- import { ContextPlugin, type Context, Editor } from '@ckeditor/ckeditor5-core';
6
+ * @module ai/aicore/aiediting
7
+ */
8
+ import { type ModelRange, type ModelDocumentFragment } from "@ckeditor/ckeditor5-engine";
9
+ import { ContextPlugin, type Context, Editor } from "@ckeditor/ckeditor5-core";
10
+ import { type AIEditorConfig } from "./utils/geteditorconfig.js";
10
11
  export declare const AI_VISUAL_SELECTION_MARKER_NAME = "ai-selection";
11
12
  export declare class AIEditing extends ContextPlugin {
12
- /**
13
- * @inheritDoc
14
- */
15
- constructor(context: Context | Editor);
16
- /**
17
- * @inheritDoc
18
- */
19
- static get pluginName(): "AIEditing";
20
- /**
21
- * @inheritDoc
22
- */
23
- static get isOfficialPlugin(): true;
24
- /**
25
- * @inheritDoc
26
- */
27
- static get isPremiumPlugin(): true;
28
- /**
29
- * Gets the current session ID. If RTC plugin is available, uses its sessionId.
30
- * Otherwise, generates a random ID for the current (non-RTC) session.
31
- */
32
- get sessionId(): string;
33
- /**
34
- * Returns the data and version of each document (one entry per editor root, excluding `$graveyard`).
35
- *
36
- * `rootName` and `channelId` identify the source of each entry so callers can remap AI modifications back to the editor and root
37
- * they came from.
38
- */
39
- getDocumentData(): Promise<Array<AIEditingDocumentData>>;
40
- afterInit(): Promise<void>;
41
- /**
42
- * Displays a fake visual selection on given ranges.
43
- *
44
- * Since multiple features may want to show and hide the selection, while at the same time, only one fake selection should be shown,
45
- * it is necessary to provide an `id` when showing fake selection. Then, when the fake selection should be hidden, `id` must be
46
- * passed as well. This mechanism prevents a feature from mistakenly hiding a fake selection set by another feature.
47
- */
48
- showFakeVisualSelection(fakeSelectionData: FakeSelectionData): void;
49
- /**
50
- * Removes a fake visual selection from the document.
51
- *
52
- * @param id ID of the fake visual selection to remove.
53
- */
54
- hideFakeVisualSelection(id: string): void;
55
- modelToDataWithIds(modelFragment: ModelDocumentFragment): Promise<string>;
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ constructor(context: Context | Editor);
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ static get pluginName(): "AIEditing";
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ static override get isOfficialPlugin(): true;
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ static override get isPremiumPlugin(): true;
29
+ /**
30
+ * Returns the session ID for the given editor. If the editor has the
31
+ * {@link module:real-time-collaboration/realtimecollaborativeediting/realtimecollaborationclient~RealTimeCollaborationClient}
32
+ * plugin its `sessionId` is reused; otherwise a random id is generated on first call and cached for the editor's lifetime.
33
+ *
34
+ * The session id is used to determine whether AI chat changes were created in the same editing session (and therefore
35
+ * can be safely applied) or in a different one. Each editor in the context has its own session id, so multi-editor and
36
+ * multi-root setups can route the mismatch check against the editor that actually produced the change.
37
+ */
38
+ getSessionId(editor: Editor): string;
39
+ /**
40
+ * Returns the data and version of each document (one entry per editor root, excluding `$graveyard`).
41
+ *
42
+ * `rootName` and `channelId` identify the source of each entry so callers can remap AI modifications back to the editor and root
43
+ * they came from.
44
+ *
45
+ * Note, that this method is async and does significant processing if the editor data is big or custom output processor is registered.
46
+ * If you just want to fetch the session id or document version, use {@link #getSessionId} and {@link #getEditorsVersions}.
47
+ */
48
+ getDocumentData(channelIds?: Set<string>): Promise<Array<AIEditingDocumentData>>;
49
+ afterInit(): void;
50
+ /**
51
+ * Displays a fake visual selection on given ranges.
52
+ *
53
+ * Since multiple features may want to show and hide the selection, while at the same time, only one fake selection should be shown,
54
+ * it is necessary to provide an `id` when showing fake selection. Then, when the fake selection should be hidden, `id` must be
55
+ * passed as well. This mechanism prevents a feature from mistakenly hiding a fake selection set by another feature.
56
+ */
57
+ showFakeVisualSelection(fakeSelectionData: FakeSelectionData): void;
58
+ /**
59
+ * Removes a fake visual selection from the document.
60
+ *
61
+ * @param id ID of the fake visual selection to remove.
62
+ */
63
+ hideFakeVisualSelection(id: string): void;
64
+ modelToDataWithIds(modelFragment: ModelDocumentFragment, editor: Editor, rootName?: string): Promise<string>;
56
65
  }
57
66
  /**
58
- * A single document entry returned by {@link module:ai/aicore/aiediting~AIEditing#getDocumentData `AIEditing#getDocumentData()`}. One
59
- * entry per editor model root (excluding `$graveyard`); `editor` + `rootName` identify the source root so callers can route AI
60
- * modifications back to the correct place.
61
- */
67
+ * A single document entry returned by {@link module:ai/aicore/aiediting~AIEditing#getDocumentData `AIEditing#getDocumentData()`}. One
68
+ * entry per editor model root (excluding `$graveyard`); `editor` + `rootName` identify the source root so callers can route AI
69
+ * modifications back to the correct place.
70
+ */
62
71
  export type AIEditingDocumentData = {
63
- editor: Editor;
64
- rootName: string;
65
- content: string;
66
- version: number;
67
- sessionId: string;
68
- channelId: string;
69
- selections: Array<{
70
- markerName: string;
71
- start: number;
72
- end: number;
73
- htmlFragment: string;
74
- }>;
75
- name?: string;
76
- description?: string;
72
+ editor: Editor;
73
+ rootName: string;
74
+ content: string;
75
+ version: number;
76
+ sessionId: string;
77
+ channelId: string;
78
+ selections: Array<{
79
+ markerName: string;
80
+ start: number;
81
+ end: number;
82
+ htmlFragment: string;
83
+ }>;
84
+ selectionSignature: string;
85
+ editorConfig: AIEditorConfig;
86
+ name?: string;
87
+ description?: string;
77
88
  };
78
89
  type FakeSelectionData = {
79
- /**
80
- * Ranges on which fake selection should be shown.
81
- */
82
- ranges: Array<ModelRange>;
83
- /**
84
- * Fake selection ID.
85
- *
86
- * Used when removing fake selection.
87
- *
88
- * Used as a part of CSS class set on fake selection DOM elements (`ck-fake-ai-selection-${ id }`).
89
- */
90
- id: string;
91
- /**
92
- * Fake selection priority.
93
- *
94
- * There can be only one fake selection displayed at once. Priority is used to inform which fake selection should be displayed when
95
- * multiple features asked to show fake selection on different ranges.
96
- */
97
- priority: number;
90
+ /**
91
+ * Ranges on which fake selection should be shown.
92
+ */
93
+ ranges: Array<ModelRange>;
94
+ /**
95
+ * Fake selection ID.
96
+ *
97
+ * Used when removing fake selection.
98
+ *
99
+ * Used as a part of CSS class set on fake selection DOM elements (`ck-fake-ai-selection-${ id }`).
100
+ */
101
+ id: string;
102
+ /**
103
+ * Fake selection priority.
104
+ *
105
+ * There can be only one fake selection displayed at once. Priority is used to inform which fake selection should be displayed when
106
+ * multiple features asked to show fake selection on different ranges.
107
+ */
108
+ priority: number;
109
+ /**
110
+ * Editor instance in which the fake selection is created.
111
+ */
112
+ editor: Editor;
98
113
  };
99
114
  export {};
@@ -0,0 +1,101 @@
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/aicore/aierrorreporter
7
+ * @publicApi
8
+ */
9
+ import { ContextPlugin } from "@ckeditor/ckeditor5-core";
10
+ import { type AICoreErrorSeverity, type AICoreErrorType } from "./errors/aicoreerror.js";
11
+ /**
12
+ * Payload of the {@link module:ai/aicore/aierrorreporter~AIErrorSinkErrorEvent} sink event.
13
+ *
14
+ * Error reporting services serialize only `name`, `message` and `stack` of an `Error`, so everything a
15
+ * reported {@link module:ai/aicore/errors/aicoreerror~AICoreError} carries as its own properties is
16
+ * flattened here. A subscriber can therefore classify and forward the failure without inspecting the
17
+ * error itself.
18
+ */
19
+ export interface AIErrorSinkEventData {
20
+ error: unknown;
21
+ component: string;
22
+ /**
23
+ * {@link module:ai/aicore/errors/aicoreerror~AICoreError#code Code} of the reported error, for example
24
+ * `'ai-chat-file-upload-failed'`. `undefined` for errors that are not an `AICoreError`.
25
+ */
26
+ code?: string;
27
+ /**
28
+ * {@link module:ai/aicore/errors/aicoreerror~AICoreError#type Classification} of the reported error.
29
+ * Use it to skip the failures that are not actionable telemetry: `'user'` (surfaced via UI) and
30
+ * `'network'` (transient). `undefined` for errors that are not an `AICoreError`.
31
+ */
32
+ type?: AICoreErrorType;
33
+ /**
34
+ * {@link module:ai/aicore/errors/aicoreerror~AICoreError#severity Severity} of the reported error.
35
+ * `undefined` for errors that are not an `AICoreError`.
36
+ */
37
+ severity?: AICoreErrorSeverity;
38
+ /**
39
+ * Metadata carried by the reported {@link module:ai/aicore/errors/aicoreerror~AICoreError#context error}
40
+ * merged with the catch-site {@link module:ai/aicore/aierrorreporter~AIErrorReporterOptions#context context},
41
+ * the latter winning on key conflicts. `undefined` when neither is present.
42
+ */
43
+ context?: Record<string, unknown>;
44
+ }
45
+ /**
46
+ * Options accepted by {@link module:ai/aicore/aierrorreporter~AIErrorReporter} report calls.
47
+ */
48
+ export interface AIErrorReporterOptions {
49
+ /**
50
+ * Catch-site context (operation labels, interaction/conversation IDs, etc.). Merged over the
51
+ * context of the reported error.
52
+ */
53
+ context?: Record<string, unknown>;
54
+ }
55
+ /**
56
+ * Event fired by {@link module:ai/aicore/aierrorreporter~AIErrorSink} whenever a non-abort AI
57
+ * error is reported.
58
+ */
59
+ export interface AIErrorSinkErrorEvent {
60
+ name: "error";
61
+ args: [data: AIErrorSinkEventData];
62
+ }
63
+ /**
64
+ * Centralized event sink for AI-related errors. Thin event emitter — each feature creates its
65
+ * own {@link module:ai/aicore/aierrorreporter~AIErrorReporter} via
66
+ * {@link module:ai/aicore/aierrorreporter~AIErrorSink#createReporter} and routes failures
67
+ * through that.
68
+ */
69
+ export declare class AIErrorSink extends ContextPlugin {
70
+ static get pluginName(): "AIErrorSink";
71
+ static override get isOfficialPlugin(): true;
72
+ static override get isPremiumPlugin(): true;
73
+ /**
74
+ * Creates a per-feature {@link module:ai/aicore/aierrorreporter~AIErrorReporter} tagged
75
+ * with the given `component`.
76
+ *
77
+ * ```ts
78
+ * this._reporter = this.editor.plugins.get( AIErrorSink ).createReporter( 'aichat' );
79
+ * this._reporter.logError( err );
80
+ * ```
81
+ */
82
+ createReporter(component: string): AIErrorReporter;
83
+ }
84
+ /**
85
+ * Per-feature reporter created via {@link
86
+ * module:ai/aicore/aierrorreporter~AIErrorSink#createReporter}.
87
+ */
88
+ export declare class AIErrorReporter {
89
+ /**
90
+ * Created via {@link module:ai/aicore/aierrorreporter~AIErrorSink#createReporter}.
91
+ */
92
+ constructor(sink: AIErrorSink, component: string);
93
+ /**
94
+ * Forwards the error to the sink and writes it to the console. Aborts are dropped.
95
+ */
96
+ logError(error: unknown, options?: AIErrorReporterOptions): void;
97
+ /**
98
+ * Forwards the error to the sink without writing to the console. Aborts are dropped.
99
+ */
100
+ reportError(error: unknown, options?: AIErrorReporterOptions): void;
101
+ }
@@ -0,0 +1,135 @@
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/aicore/aigateway
7
+ * @publicApi
8
+ */
9
+ import { ContextPlugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
10
+ import { DocumentChanges } from "../aisdk/documentchanges.js";
11
+ import { AICore } from "./aicore.js";
12
+ import { type AIModels } from "./model/aimodels.js";
13
+ import { AIResponseApplier } from "./pipeline/airesponseapplier.js";
14
+ import { type AIEditorRoot } from "./model/aieditorroot.js";
15
+ import { type AIOperationSource } from "./utils/markoperationsasai.js";
16
+ import type { AIRunResult } from "./model/airunresult.js";
17
+ import { type AIContextRef } from "./model/aicontextref.js";
18
+ /**
19
+ * How AI run changes are applied to the editor when using {@link module:ai/aicore/aigateway~AIGateway#apply}.
20
+ */
21
+ export type AIRunApplyMethod = "suggest" | "insert";
22
+ /**
23
+ * A single AI suggestion.
24
+ *
25
+ * The suggestion refers to a single block element modified by AI. The `id` is a unique identifier of the modified element. It is the same
26
+ * as `data-id` attribute for this element in the initial content. The `content` is the HTML content of the modified
27
+ * block element with all AI changes applied.
28
+ */
29
+ export type AIRunChangeData = {
30
+ id: string;
31
+ content: string;
32
+ };
33
+ /**
34
+ * Base options for running an AI operation via various available gateways.
35
+ */
36
+ export type AIRunBaseOptions = {
37
+ /**
38
+ * An `AbortSignal` that cancels the run when aborted. Aborted runs resolve with `status: 'aborted'`.
39
+ */
40
+ signal?: AbortSignal;
41
+ /**
42
+ * Context references attached to the request.
43
+ *
44
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
45
+ * without the standard deprecation policy. Check the changelog for migration guidance.
46
+ */
47
+ contexts?: Array<AIContextRef>;
48
+ };
49
+ export type AIGatewayApplyOptions = {
50
+ /**
51
+ * How AI run changes are applied to the editor content.
52
+ *
53
+ * With `'insert'` the changes are written directly into the editor content. With `'suggest'` they are wrapped as
54
+ * track-changes suggestions — this requires the `TrackChanges` plugin to be loaded on the editor.
55
+ */
56
+ applyMethod: AIRunApplyMethod;
57
+ /**
58
+ * AI source identifier stamped on every operation produced for this run.
59
+ *
60
+ * Defaults to `'api'`.
61
+ *
62
+ * Note that when `applyMethod` is `'suggest'`, every created suggestion also receives the `@ai`
63
+ * {@link module:track-changes/suggestion~Suggestion#attributes attribute} with the same identifier. The track changes
64
+ * plugin uses this attribute to display the suggestion as AI-generated.
65
+ */
66
+ aiSource?: AIOperationSource;
67
+ /**
68
+ * Restrict the apply to a subset of the result's per-root entries. Each entry's `channelId` and `rootName` must match
69
+ * a per-root sub-result in the passed `AIRunResult`. When omitted, every entry in `result.results` is applied.
70
+ */
71
+ roots?: Array<AIEditorRoot>;
72
+ };
73
+ /**
74
+ * Base plugin exposing common methods for end-to-end public AI API.
75
+ */
76
+ export declare class AIGateway extends ContextPlugin {
77
+ /**
78
+ * @inheritDoc
79
+ */
80
+ static get pluginName(): "AIGateway";
81
+ /**
82
+ * @inheritDoc
83
+ */
84
+ static get requires(): PluginDependenciesOf<[DocumentChanges, AICore]>;
85
+ /**
86
+ * The shared model registry. Exposed here so headless gateways are self-sufficient — integrators can
87
+ * discover and resolve models (`getAvailableModels()`, `getModel()`, `resolveModel()`, …) without
88
+ * reaching for the `AICore` plugin directly.
89
+ *
90
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
91
+ * without the standard deprecation policy. Check the changelog for migration guidance.
92
+ */
93
+ get models(): AIModels;
94
+ /**
95
+ * @inheritDoc
96
+ */
97
+ static override get isOfficialPlugin(): true;
98
+ /**
99
+ * @inheritDoc
100
+ */
101
+ static override get isPremiumPlugin(): true;
102
+ /**
103
+ * Applies an AI run result to editor content. Accepts the whole `AIRunResult` — per-root sub-results targeting
104
+ * the same editor are batched into one `model.change()` block, so all of that editor's roots become a single
105
+ * undoable step. An optional `options.roots` filter restricts the apply to a subset of the sub-results without the
106
+ * caller having to unpack or repack the result.
107
+ *
108
+ * Refuses the call up front only on whole-run failures (`result.error` set or empty `result.results`). Per-root
109
+ * failures on an otherwise successful run are validated after the filter, so the caller can filter around the
110
+ * failed roots via `options.roots` and still apply the completed ones. If any *included* sub-result fails
111
+ * validation the whole call throws before touching any editor, so partial applies can't leave content in a
112
+ * mixed state.
113
+ *
114
+ * `options.roots` is validated at the call boundary — an explicitly empty array throws
115
+ * `ai-gateway-apply-empty-roots`, and any entry that does not match a per-root sub-result in
116
+ * `result.results` throws `ai-gateway-apply-root-not-found`.
117
+ *
118
+ * Also throws `ai-gateway-apply-invalid-status` when the whole run failed or when any included sub-result's
119
+ * `status` is not `'completed'`, and `ai-no-track-changes` when `options.applyMethod` is `'suggest'` and any
120
+ * targeted editor is missing the `TrackChanges` plugin.
121
+ *
122
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
123
+ * without the standard deprecation policy. Check the changelog for migration guidance.
124
+ * @param result The result of a completed AI run.
125
+ * @param options Additional options.
126
+ */
127
+ apply(result: AIRunResult, options: AIGatewayApplyOptions): void;
128
+ /**
129
+ * Merges the AI changes with the original content, creating the final document content with all AI changes applied.
130
+ *
131
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
132
+ * without the standard deprecation policy. Check the changelog for migration guidance.
133
+ */
134
+ mergeChangesIntoContent(changes: ReadonlyArray<AIRunChangeData>, content: string): ReturnType<AIResponseApplier["merge"]>["parsedContent"];
135
+ }
@@ -0,0 +1,67 @@
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
+ * Severity of an AI error.
7
+ */
8
+ export type AICoreErrorSeverity = "error" | "warning";
9
+ /**
10
+ * Classification of the error.
11
+ *
12
+ * * `system` — application or integrator setup is wrong; fix in code or configuration.
13
+ * * `runtime` — runtime state / invariant violation; investigate the path.
14
+ * * `network` — external / temporary; expected to recover.
15
+ * * `user` — invalid user input or action; surfaced via UI.
16
+ */
17
+ export type AICoreErrorType = "system" | "runtime" | "network" | "user";
18
+ /**
19
+ * Initialization object for {@link module:ai/aicore/errors/aicoreerror~AICoreError}.
20
+ */
21
+ export interface AICoreErrorInit {
22
+ /**
23
+ * Short identifier for the error (e.g. `'ai-applying-suggestion-failed'`).
24
+ */
25
+ code: string;
26
+ /**
27
+ * Error that triggered this one. Exposed via the native `Error.cause` chain and used
28
+ * to infer abort state.
29
+ */
30
+ cause?: unknown;
31
+ /**
32
+ * Defaults to `'error'`.
33
+ */
34
+ severity?: AICoreErrorSeverity;
35
+ /**
36
+ * Defaults to `'system'`.
37
+ */
38
+ type?: AICoreErrorType;
39
+ /**
40
+ * Metadata (identifiers, codes, sizes).
41
+ */
42
+ context?: Record<string, unknown>;
43
+ /**
44
+ * User-initiated cancellation. Defaults to whatever is inferred from `cause`.
45
+ */
46
+ isAbort?: boolean;
47
+ }
48
+ /**
49
+ * AI-specific error class. Intentionally does **not** extend `CKEditorError`:
50
+ *
51
+ * * `data` is not stringified into the message.
52
+ * * AI failures are not reported to the editor error callbacks.
53
+ * * Uses the native `cause` chain to preserve the original error.
54
+ */
55
+ export declare class AICoreError extends Error {
56
+ readonly code: string;
57
+ readonly severity: AICoreErrorSeverity;
58
+ readonly type: AICoreErrorType;
59
+ readonly context?: Record<string, unknown>;
60
+ readonly isAbort: boolean;
61
+ /**
62
+ * Creates a new AI core error.
63
+ *
64
+ * @param init Initialization fields. See {@link module:ai/aicore/errors/aicoreerror~AICoreErrorInit}.
65
+ */
66
+ constructor(init: AICoreErrorInit);
67
+ }
@@ -0,0 +1,17 @@
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
+ * Returns the error code regardless of the error class. Reads `error.code` from an
7
+ * {@link AICoreError}; for any other `Error` (such as `CKEditorError`) returns the leading
8
+ * non-whitespace token of `error.message`. Returns `undefined` for non-Error inputs or empty
9
+ * messages.
10
+ *
11
+ * The whitespace-aware split matters for `CKEditorError`, whose message is
12
+ * `<code>\nRead more: …` — a plain space split would return `<code>\nRead`.
13
+ *
14
+ * Use this at call sites that branch on the error code so they keep working as throw sites
15
+ * migrate from `CKEditorError` to {@link AICoreError}.
16
+ */
17
+ export declare function getErrorCode(error: unknown): string | undefined;
@@ -0,0 +1,12 @@
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/aicore/errors/isaborterror
7
+ */
8
+ /**
9
+ * Returns `true` if the given value represents an abort: a DOM `AbortError`, an `AICoreError`
10
+ * with `isAbort` set, or an `Error` whose message starts with `'ai-request-aborted'`.
11
+ */
12
+ export declare function isAbortError(error: unknown): boolean;
@@ -0,0 +1,23 @@
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/aicore/errors/normalizeerror
7
+ */
8
+ import { CKEditorError } from "@ckeditor/ckeditor5-utils";
9
+ /**
10
+ * Wraps an arbitrary thrown value in a {@link module:utils/ckeditorerror~CKEditorError} with the given `errorName`,
11
+ * unless it already is a `CKEditorError`.
12
+ *
13
+ * If the thrown value carries a `data` field (as backend API errors do — see {@link module:ai/aicore/aiconnector~AIConnector}),
14
+ * it is attached to the wrapped error as `data.backendData` so consumers can inspect the backend's structured response
15
+ * (for example `issues[]` describing which fields failed validation).
16
+ *
17
+ * @param error The thrown value to normalize.
18
+ * @param errorName The `error-name` used when wrapping a non-`CKEditorError`.
19
+ * @param context The error context (typically the plugin instance) by which error reporting works out which
20
+ * editor the error came from.
21
+ * @param contextInfo Additional data describing the error.
22
+ */
23
+ export declare function normalizeError(error: any, errorName: string, context: object | null, contextInfo?: Record<string, unknown>): CKEditorError;