@blade-hq/agent-react 2612.0.0-beta.5 → 2612.0.0-beta.6

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 (1139) hide show
  1. package/README.md +8 -0
  2. package/dist/chat/ChatPanel.d.ts +1 -3
  3. package/dist/chat/LightComposer.d.ts +1 -1
  4. package/dist/chat/ai-elements/reasoning.d.ts +4 -4
  5. package/dist/chat/customization.d.ts +1 -5
  6. package/dist/chat/lib/citations.d.ts +6 -2
  7. package/dist/chat/runtime/actions.d.ts +1 -0
  8. package/dist/chat/runtime/input-cache-reset.d.ts +1 -1
  9. package/dist/chat/runtime/input-history-storage.d.ts +2 -0
  10. package/dist/{chunk-7IPINZHT.js → chunk-IRBOKMF5.js} +2 -2
  11. package/dist/{chunk-XULCQP3Q.js → chunk-UKQFSXGC.js} +147 -35
  12. package/dist/chunk-UKQFSXGC.js.map +1 -0
  13. package/dist/{chunk-T5WGKZN4.js → chunk-XJLFFRQP.js} +299 -183
  14. package/dist/chunk-XJLFFRQP.js.map +1 -0
  15. package/dist/components/ChatInput.d.ts +3 -1
  16. package/dist/components/plugin-connector.d.ts +1 -0
  17. package/dist/embed/entry.d.ts +1 -0
  18. package/dist/index.js +2 -2
  19. package/dist/internal.js +3 -3
  20. package/dist/internal.js.map +1 -1
  21. package/dist/lib/agent-computer-command.d.ts +1 -3
  22. package/dist/rich-input/ChatInput.d.ts +1 -1
  23. package/dist/rich-input/FileCompletionMenu.d.ts +3 -2
  24. package/dist/rich-input/SkillStatusBar.d.ts +2 -4
  25. package/dist/rich-input/extensions/plugin-mention.d.ts +15 -0
  26. package/dist/rich-input/extensions/skill-mention.d.ts +0 -1
  27. package/dist/rich-input/index.d.ts +4 -0
  28. package/dist/rich-input/lib/composer-content.d.ts +5 -1
  29. package/dist/rich-input/lib/input-history-document.d.ts +3 -0
  30. package/dist/rich-input/lib/plugin-suggestions.d.ts +7 -0
  31. package/dist/rich-input/lib/reference-candidates.d.ts +30 -0
  32. package/dist/rich-input/use-input-history.d.ts +8 -10
  33. package/dist/rich-input/use-reference-candidates.d.ts +8 -0
  34. package/dist/rich-input.js +559 -323
  35. package/dist/rich-input.js.map +1 -1
  36. package/node_modules/@floating-ui/core/LICENSE +20 -0
  37. package/node_modules/@floating-ui/core/README.md +4 -0
  38. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs +1 -0
  39. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.mjs +1184 -0
  40. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +531 -0
  41. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.ts +531 -0
  42. package/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js +1058 -0
  43. package/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +1058 -0
  44. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.js +1203 -0
  45. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.min.js +1 -0
  46. package/node_modules/@floating-ui/core/package.json +63 -0
  47. package/node_modules/@floating-ui/dom/LICENSE +20 -0
  48. package/node_modules/@floating-ui/dom/README.md +4 -0
  49. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs +1 -0
  50. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.mjs +956 -0
  51. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +358 -0
  52. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts +358 -0
  53. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +781 -0
  54. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +781 -0
  55. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js +975 -0
  56. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.min.js +1 -0
  57. package/node_modules/@floating-ui/dom/package.json +71 -0
  58. package/node_modules/@floating-ui/utils/LICENSE +20 -0
  59. package/node_modules/@floating-ui/utils/README.md +4 -0
  60. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +103 -0
  61. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.ts +103 -0
  62. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +47 -0
  63. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.ts +47 -0
  64. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.esm.js +165 -0
  65. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +165 -0
  66. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.js +192 -0
  67. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.min.js +1 -0
  68. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js +136 -0
  69. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +136 -0
  70. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.js +167 -0
  71. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.min.js +1 -0
  72. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.d.ts +47 -0
  73. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js +165 -0
  74. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.umd.js +192 -0
  75. package/node_modules/@floating-ui/utils/dom/package.json +6 -0
  76. package/node_modules/@floating-ui/utils/package.json +70 -0
  77. package/node_modules/@radix-ui/primitive/LICENSE +21 -0
  78. package/node_modules/@radix-ui/primitive/README.md +3 -0
  79. package/node_modules/@radix-ui/primitive/dist/index.d.mts +20 -0
  80. package/node_modules/@radix-ui/primitive/dist/index.d.ts +20 -0
  81. package/node_modules/@radix-ui/primitive/dist/index.js +76 -0
  82. package/node_modules/@radix-ui/primitive/dist/index.js.map +7 -0
  83. package/node_modules/@radix-ui/primitive/dist/index.mjs +53 -0
  84. package/node_modules/@radix-ui/primitive/dist/index.mjs.map +7 -0
  85. package/node_modules/@radix-ui/primitive/package.json +47 -0
  86. package/node_modules/@radix-ui/react-collapsible/LICENSE +21 -0
  87. package/node_modules/@radix-ui/react-collapsible/README.md +3 -0
  88. package/node_modules/@radix-ui/react-collapsible/dist/index.d.mts +33 -0
  89. package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts +33 -0
  90. package/node_modules/@radix-ui/react-collapsible/dist/index.js +187 -0
  91. package/node_modules/@radix-ui/react-collapsible/dist/index.js.map +7 -0
  92. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs +155 -0
  93. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +7 -0
  94. package/node_modules/@radix-ui/react-collapsible/package.json +75 -0
  95. package/node_modules/@radix-ui/react-compose-refs/README.md +13 -0
  96. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.mts +15 -0
  97. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts +15 -0
  98. package/node_modules/@radix-ui/react-compose-refs/dist/index.js +74 -0
  99. package/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +7 -0
  100. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +41 -0
  101. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +7 -0
  102. package/node_modules/@radix-ui/react-compose-refs/package.json +75 -0
  103. package/node_modules/@radix-ui/react-context/README.md +13 -0
  104. package/node_modules/@radix-ui/react-context/dist/index.d.mts +21 -0
  105. package/node_modules/@radix-ui/react-context/dist/index.d.ts +21 -0
  106. package/node_modules/@radix-ui/react-context/dist/index.js +114 -0
  107. package/node_modules/@radix-ui/react-context/dist/index.js.map +7 -0
  108. package/node_modules/@radix-ui/react-context/dist/index.mjs +81 -0
  109. package/node_modules/@radix-ui/react-context/dist/index.mjs.map +7 -0
  110. package/node_modules/@radix-ui/react-context/package.json +75 -0
  111. package/node_modules/@radix-ui/react-id/README.md +13 -0
  112. package/node_modules/@radix-ui/react-id/dist/index.d.mts +3 -0
  113. package/node_modules/@radix-ui/react-id/dist/index.d.ts +3 -0
  114. package/node_modules/@radix-ui/react-id/dist/index.js +49 -0
  115. package/node_modules/@radix-ui/react-id/dist/index.js.map +7 -0
  116. package/node_modules/@radix-ui/react-id/dist/index.mjs +16 -0
  117. package/node_modules/@radix-ui/react-id/dist/index.mjs.map +7 -0
  118. package/node_modules/@radix-ui/react-id/package.json +78 -0
  119. package/node_modules/@radix-ui/react-presence/LICENSE +21 -0
  120. package/node_modules/@radix-ui/react-presence/README.md +3 -0
  121. package/node_modules/@radix-ui/react-presence/dist/index.d.mts +12 -0
  122. package/node_modules/@radix-ui/react-presence/dist/index.d.ts +12 -0
  123. package/node_modules/@radix-ui/react-presence/dist/index.js +171 -0
  124. package/node_modules/@radix-ui/react-presence/dist/index.js.map +7 -0
  125. package/node_modules/@radix-ui/react-presence/dist/index.mjs +139 -0
  126. package/node_modules/@radix-ui/react-presence/dist/index.mjs.map +7 -0
  127. package/node_modules/@radix-ui/react-presence/package.json +69 -0
  128. package/node_modules/@radix-ui/react-primitive/LICENSE +21 -0
  129. package/node_modules/@radix-ui/react-primitive/README.md +3 -0
  130. package/node_modules/@radix-ui/react-primitive/dist/index.d.mts +52 -0
  131. package/node_modules/@radix-ui/react-primitive/dist/index.d.ts +52 -0
  132. package/node_modules/@radix-ui/react-primitive/dist/index.js +80 -0
  133. package/node_modules/@radix-ui/react-primitive/dist/index.js.map +7 -0
  134. package/node_modules/@radix-ui/react-primitive/dist/index.mjs +47 -0
  135. package/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +7 -0
  136. package/node_modules/@radix-ui/react-primitive/package.json +68 -0
  137. package/node_modules/@radix-ui/react-slot/LICENSE +21 -0
  138. package/node_modules/@radix-ui/react-slot/README.md +3 -0
  139. package/node_modules/@radix-ui/react-slot/dist/index.d.mts +17 -0
  140. package/node_modules/@radix-ui/react-slot/dist/index.d.ts +17 -0
  141. package/node_modules/@radix-ui/react-slot/dist/index.js +138 -0
  142. package/node_modules/@radix-ui/react-slot/dist/index.js.map +7 -0
  143. package/node_modules/@radix-ui/react-slot/dist/index.mjs +105 -0
  144. package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +7 -0
  145. package/node_modules/@radix-ui/react-slot/package.json +63 -0
  146. package/node_modules/@radix-ui/react-use-controllable-state/LICENSE +21 -0
  147. package/node_modules/@radix-ui/react-use-controllable-state/README.md +3 -0
  148. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.mts +40 -0
  149. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts +40 -0
  150. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +169 -0
  151. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +7 -0
  152. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +136 -0
  153. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +7 -0
  154. package/node_modules/@radix-ui/react-use-controllable-state/package.json +64 -0
  155. package/node_modules/@radix-ui/react-use-effect-event/LICENSE +21 -0
  156. package/node_modules/@radix-ui/react-use-effect-event/README.md +5 -0
  157. package/node_modules/@radix-ui/react-use-effect-event/dist/index.d.mts +8 -0
  158. package/node_modules/@radix-ui/react-use-effect-event/dist/index.d.ts +8 -0
  159. package/node_modules/@radix-ui/react-use-effect-event/dist/index.js +60 -0
  160. package/node_modules/@radix-ui/react-use-effect-event/dist/index.js.map +7 -0
  161. package/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs +27 -0
  162. package/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs.map +7 -0
  163. package/node_modules/@radix-ui/react-use-effect-event/package.json +65 -0
  164. package/node_modules/@radix-ui/react-use-effect-event/src/index.ts +1 -0
  165. package/node_modules/@radix-ui/react-use-effect-event/src/use-effect-event.tsx +36 -0
  166. package/node_modules/@radix-ui/react-use-layout-effect/README.md +13 -0
  167. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.mts +12 -0
  168. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts +12 -0
  169. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +41 -0
  170. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +7 -0
  171. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +8 -0
  172. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +7 -0
  173. package/node_modules/@radix-ui/react-use-layout-effect/package.json +75 -0
  174. package/node_modules/@remirror/core-constants/LICENSE +21 -0
  175. package/node_modules/@remirror/core-constants/dist/_tsup-dts-rollup.d.cts +612 -0
  176. package/node_modules/@remirror/core-constants/dist/_tsup-dts-rollup.d.ts +612 -0
  177. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.cjs +314 -0
  178. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.d.cts +20 -0
  179. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.d.ts +20 -0
  180. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.js +269 -0
  181. package/node_modules/@remirror/core-constants/dist-types/core-constants.d.ts +431 -0
  182. package/node_modules/@remirror/core-constants/dist-types/error-constants.d.ts +119 -0
  183. package/node_modules/@remirror/core-constants/dist-types/index.d.ts +2 -0
  184. package/node_modules/@remirror/core-constants/dist-types/tsconfig.tsbuildinfo +1 -0
  185. package/node_modules/@remirror/core-constants/package.json +45 -0
  186. package/node_modules/@remirror/core-constants/readme.md +17 -0
  187. package/node_modules/@tiptap/core/LICENSE.md +21 -0
  188. package/node_modules/@tiptap/core/README.md +18 -0
  189. package/node_modules/@tiptap/core/dist/index.cjs +7126 -0
  190. package/node_modules/@tiptap/core/dist/index.cjs.map +1 -0
  191. package/node_modules/@tiptap/core/dist/index.d.cts +4954 -0
  192. package/node_modules/@tiptap/core/dist/index.d.ts +4954 -0
  193. package/node_modules/@tiptap/core/dist/index.js +6992 -0
  194. package/node_modules/@tiptap/core/dist/index.js.map +1 -0
  195. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.cjs +56 -0
  196. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.cjs.map +1 -0
  197. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.d.cts +23 -0
  198. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.d.ts +23 -0
  199. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js +26 -0
  200. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js.map +1 -0
  201. package/node_modules/@tiptap/core/jsx-dev-runtime/index.cjs +1 -0
  202. package/node_modules/@tiptap/core/jsx-dev-runtime/index.d.cts +1 -0
  203. package/node_modules/@tiptap/core/jsx-dev-runtime/index.d.ts +1 -0
  204. package/node_modules/@tiptap/core/jsx-dev-runtime/index.js +1 -0
  205. package/node_modules/@tiptap/core/jsx-runtime/index.cjs +1 -0
  206. package/node_modules/@tiptap/core/jsx-runtime/index.d.cts +1 -0
  207. package/node_modules/@tiptap/core/jsx-runtime/index.d.ts +1 -0
  208. package/node_modules/@tiptap/core/jsx-runtime/index.js +1 -0
  209. package/node_modules/@tiptap/core/package.json +70 -0
  210. package/node_modules/@tiptap/core/src/CommandManager.ts +138 -0
  211. package/node_modules/@tiptap/core/src/Editor.ts +806 -0
  212. package/node_modules/@tiptap/core/src/EventEmitter.ts +58 -0
  213. package/node_modules/@tiptap/core/src/Extendable.ts +602 -0
  214. package/node_modules/@tiptap/core/src/Extension.ts +55 -0
  215. package/node_modules/@tiptap/core/src/ExtensionManager.ts +440 -0
  216. package/node_modules/@tiptap/core/src/InputRule.ts +290 -0
  217. package/node_modules/@tiptap/core/src/Mark.ts +211 -0
  218. package/node_modules/@tiptap/core/src/MarkView.ts +122 -0
  219. package/node_modules/@tiptap/core/src/Node.ts +377 -0
  220. package/node_modules/@tiptap/core/src/NodePos.ts +257 -0
  221. package/node_modules/@tiptap/core/src/NodeView.ts +339 -0
  222. package/node_modules/@tiptap/core/src/PasteRule.ts +373 -0
  223. package/node_modules/@tiptap/core/src/Tracker.ts +36 -0
  224. package/node_modules/@tiptap/core/src/__tests__/transformPastedHTML.test.ts +575 -0
  225. package/node_modules/@tiptap/core/src/commands/blur.ts +29 -0
  226. package/node_modules/@tiptap/core/src/commands/clearContent.ts +25 -0
  227. package/node_modules/@tiptap/core/src/commands/clearNodes.ts +57 -0
  228. package/node_modules/@tiptap/core/src/commands/command.ts +22 -0
  229. package/node_modules/@tiptap/core/src/commands/createParagraphNear.ts +21 -0
  230. package/node_modules/@tiptap/core/src/commands/cut.ts +36 -0
  231. package/node_modules/@tiptap/core/src/commands/deleteCurrentNode.ts +44 -0
  232. package/node_modules/@tiptap/core/src/commands/deleteNode.ts +41 -0
  233. package/node_modules/@tiptap/core/src/commands/deleteRange.ts +26 -0
  234. package/node_modules/@tiptap/core/src/commands/deleteSelection.ts +21 -0
  235. package/node_modules/@tiptap/core/src/commands/enter.ts +19 -0
  236. package/node_modules/@tiptap/core/src/commands/exitCode.ts +21 -0
  237. package/node_modules/@tiptap/core/src/commands/extendMarkRange.ts +51 -0
  238. package/node_modules/@tiptap/core/src/commands/first.ts +26 -0
  239. package/node_modules/@tiptap/core/src/commands/focus.ts +108 -0
  240. package/node_modules/@tiptap/core/src/commands/forEach.ts +24 -0
  241. package/node_modules/@tiptap/core/src/commands/index.ts +57 -0
  242. package/node_modules/@tiptap/core/src/commands/insertContent.ts +46 -0
  243. package/node_modules/@tiptap/core/src/commands/insertContentAt.ts +212 -0
  244. package/node_modules/@tiptap/core/src/commands/join.ts +69 -0
  245. package/node_modules/@tiptap/core/src/commands/joinItemBackward.ts +37 -0
  246. package/node_modules/@tiptap/core/src/commands/joinItemForward.ts +37 -0
  247. package/node_modules/@tiptap/core/src/commands/joinTextblockBackward.ts +20 -0
  248. package/node_modules/@tiptap/core/src/commands/joinTextblockForward.ts +20 -0
  249. package/node_modules/@tiptap/core/src/commands/keyboardShortcut.ts +100 -0
  250. package/node_modules/@tiptap/core/src/commands/lift.ts +34 -0
  251. package/node_modules/@tiptap/core/src/commands/liftEmptyBlock.ts +21 -0
  252. package/node_modules/@tiptap/core/src/commands/liftListItem.ts +26 -0
  253. package/node_modules/@tiptap/core/src/commands/newlineInCode.ts +21 -0
  254. package/node_modules/@tiptap/core/src/commands/resetAttributes.ts +73 -0
  255. package/node_modules/@tiptap/core/src/commands/scrollIntoView.ts +23 -0
  256. package/node_modules/@tiptap/core/src/commands/selectAll.ts +27 -0
  257. package/node_modules/@tiptap/core/src/commands/selectNodeBackward.ts +21 -0
  258. package/node_modules/@tiptap/core/src/commands/selectNodeForward.ts +21 -0
  259. package/node_modules/@tiptap/core/src/commands/selectParentNode.ts +21 -0
  260. package/node_modules/@tiptap/core/src/commands/selectTextblockEnd.ts +23 -0
  261. package/node_modules/@tiptap/core/src/commands/selectTextblockStart.ts +23 -0
  262. package/node_modules/@tiptap/core/src/commands/setContent.ts +76 -0
  263. package/node_modules/@tiptap/core/src/commands/setMark.ts +118 -0
  264. package/node_modules/@tiptap/core/src/commands/setMeta.ts +25 -0
  265. package/node_modules/@tiptap/core/src/commands/setNode.ts +57 -0
  266. package/node_modules/@tiptap/core/src/commands/setNodeSelection.ts +31 -0
  267. package/node_modules/@tiptap/core/src/commands/setTextDirection.ts +51 -0
  268. package/node_modules/@tiptap/core/src/commands/setTextSelection.ts +35 -0
  269. package/node_modules/@tiptap/core/src/commands/sinkListItem.ts +26 -0
  270. package/node_modules/@tiptap/core/src/commands/splitBlock.ts +115 -0
  271. package/node_modules/@tiptap/core/src/commands/splitListItem.ts +149 -0
  272. package/node_modules/@tiptap/core/src/commands/toggleList.ts +159 -0
  273. package/node_modules/@tiptap/core/src/commands/toggleMark.ts +51 -0
  274. package/node_modules/@tiptap/core/src/commands/toggleNode.ts +47 -0
  275. package/node_modules/@tiptap/core/src/commands/toggleWrap.ts +32 -0
  276. package/node_modules/@tiptap/core/src/commands/undoInputRule.ts +49 -0
  277. package/node_modules/@tiptap/core/src/commands/unsetAllMarks.ts +32 -0
  278. package/node_modules/@tiptap/core/src/commands/unsetMark.ts +65 -0
  279. package/node_modules/@tiptap/core/src/commands/unsetTextDirection.ts +51 -0
  280. package/node_modules/@tiptap/core/src/commands/updateAttributes.ts +150 -0
  281. package/node_modules/@tiptap/core/src/commands/wrapIn.ts +27 -0
  282. package/node_modules/@tiptap/core/src/commands/wrapInList.ts +27 -0
  283. package/node_modules/@tiptap/core/src/extensions/clipboardTextSerializer.ts +44 -0
  284. package/node_modules/@tiptap/core/src/extensions/commands.ts +14 -0
  285. package/node_modules/@tiptap/core/src/extensions/delete.ts +89 -0
  286. package/node_modules/@tiptap/core/src/extensions/drop.ts +26 -0
  287. package/node_modules/@tiptap/core/src/extensions/editable.ts +18 -0
  288. package/node_modules/@tiptap/core/src/extensions/focusEvents.ts +41 -0
  289. package/node_modules/@tiptap/core/src/extensions/index.ts +10 -0
  290. package/node_modules/@tiptap/core/src/extensions/keymap.ts +160 -0
  291. package/node_modules/@tiptap/core/src/extensions/paste.ts +25 -0
  292. package/node_modules/@tiptap/core/src/extensions/tabindex.ts +18 -0
  293. package/node_modules/@tiptap/core/src/extensions/textDirection.ts +86 -0
  294. package/node_modules/@tiptap/core/src/helpers/MappablePosition.ts +66 -0
  295. package/node_modules/@tiptap/core/src/helpers/combineTransactionSteps.ts +21 -0
  296. package/node_modules/@tiptap/core/src/helpers/createChainableState.ts +39 -0
  297. package/node_modules/@tiptap/core/src/helpers/createDocument.ts +24 -0
  298. package/node_modules/@tiptap/core/src/helpers/createNodeFromContent.ts +119 -0
  299. package/node_modules/@tiptap/core/src/helpers/defaultBlockAt.ts +18 -0
  300. package/node_modules/@tiptap/core/src/helpers/findChildren.ts +24 -0
  301. package/node_modules/@tiptap/core/src/helpers/findChildrenInRange.ts +36 -0
  302. package/node_modules/@tiptap/core/src/helpers/findParentNode.ts +18 -0
  303. package/node_modules/@tiptap/core/src/helpers/findParentNodeClosestToPos.ts +37 -0
  304. package/node_modules/@tiptap/core/src/helpers/flattenExtensions.ts +30 -0
  305. package/node_modules/@tiptap/core/src/helpers/generateHTML.ts +18 -0
  306. package/node_modules/@tiptap/core/src/helpers/generateJSON.ts +18 -0
  307. package/node_modules/@tiptap/core/src/helpers/generateText.ts +34 -0
  308. package/node_modules/@tiptap/core/src/helpers/getAttributes.ts +29 -0
  309. package/node_modules/@tiptap/core/src/helpers/getAttributesFromExtensions.ts +122 -0
  310. package/node_modules/@tiptap/core/src/helpers/getChangedRanges.ts +85 -0
  311. package/node_modules/@tiptap/core/src/helpers/getDebugJSON.ts +54 -0
  312. package/node_modules/@tiptap/core/src/helpers/getExtensionField.ts +32 -0
  313. package/node_modules/@tiptap/core/src/helpers/getHTMLFromFragment.ts +13 -0
  314. package/node_modules/@tiptap/core/src/helpers/getMarkAttributes.ts +30 -0
  315. package/node_modules/@tiptap/core/src/helpers/getMarkRange.ts +90 -0
  316. package/node_modules/@tiptap/core/src/helpers/getMarkType.ts +13 -0
  317. package/node_modules/@tiptap/core/src/helpers/getMarksBetween.ts +44 -0
  318. package/node_modules/@tiptap/core/src/helpers/getNodeAtPosition.ts +29 -0
  319. package/node_modules/@tiptap/core/src/helpers/getNodeAttributes.ts +22 -0
  320. package/node_modules/@tiptap/core/src/helpers/getNodeType.ts +13 -0
  321. package/node_modules/@tiptap/core/src/helpers/getRenderedAttributes.ts +23 -0
  322. package/node_modules/@tiptap/core/src/helpers/getSchema.ts +12 -0
  323. package/node_modules/@tiptap/core/src/helpers/getSchemaByResolvedExtensions.ts +183 -0
  324. package/node_modules/@tiptap/core/src/helpers/getSchemaTypeByName.ts +11 -0
  325. package/node_modules/@tiptap/core/src/helpers/getSchemaTypeNameByName.ts +19 -0
  326. package/node_modules/@tiptap/core/src/helpers/getSplittedAttributes.ts +28 -0
  327. package/node_modules/@tiptap/core/src/helpers/getText.ts +28 -0
  328. package/node_modules/@tiptap/core/src/helpers/getTextBetween.ts +52 -0
  329. package/node_modules/@tiptap/core/src/helpers/getTextContentFromNodes.ts +29 -0
  330. package/node_modules/@tiptap/core/src/helpers/getTextSerializersFromSchema.ts +16 -0
  331. package/node_modules/@tiptap/core/src/helpers/index.ts +55 -0
  332. package/node_modules/@tiptap/core/src/helpers/injectExtensionAttributesToParseRule.ts +47 -0
  333. package/node_modules/@tiptap/core/src/helpers/isActive.ts +23 -0
  334. package/node_modules/@tiptap/core/src/helpers/isAtEndOfNode.ts +29 -0
  335. package/node_modules/@tiptap/core/src/helpers/isAtStartOfNode.ts +11 -0
  336. package/node_modules/@tiptap/core/src/helpers/isExtensionRulesEnabled.ts +13 -0
  337. package/node_modules/@tiptap/core/src/helpers/isList.ts +27 -0
  338. package/node_modules/@tiptap/core/src/helpers/isMarkActive.ts +94 -0
  339. package/node_modules/@tiptap/core/src/helpers/isNodeActive.ts +51 -0
  340. package/node_modules/@tiptap/core/src/helpers/isNodeEmpty.ts +62 -0
  341. package/node_modules/@tiptap/core/src/helpers/isNodeSelection.ts +5 -0
  342. package/node_modules/@tiptap/core/src/helpers/isTextSelection.ts +5 -0
  343. package/node_modules/@tiptap/core/src/helpers/posToDOMRect.ts +35 -0
  344. package/node_modules/@tiptap/core/src/helpers/resolveExtensions.ts +25 -0
  345. package/node_modules/@tiptap/core/src/helpers/resolveFocusPosition.ts +31 -0
  346. package/node_modules/@tiptap/core/src/helpers/rewriteUnknownContent.ts +149 -0
  347. package/node_modules/@tiptap/core/src/helpers/selectionToInsertionEnd.ts +29 -0
  348. package/node_modules/@tiptap/core/src/helpers/sortExtensions.ts +26 -0
  349. package/node_modules/@tiptap/core/src/helpers/splitExtensions.ts +16 -0
  350. package/node_modules/@tiptap/core/src/index.ts +28 -0
  351. package/node_modules/@tiptap/core/src/inputRules/index.ts +5 -0
  352. package/node_modules/@tiptap/core/src/inputRules/markInputRule.ts +68 -0
  353. package/node_modules/@tiptap/core/src/inputRules/nodeInputRule.ts +73 -0
  354. package/node_modules/@tiptap/core/src/inputRules/textInputRule.ts +35 -0
  355. package/node_modules/@tiptap/core/src/inputRules/textblockTypeInputRule.ts +35 -0
  356. package/node_modules/@tiptap/core/src/inputRules/wrappingInputRule.ts +82 -0
  357. package/node_modules/@tiptap/core/src/jsx-runtime.ts +65 -0
  358. package/node_modules/@tiptap/core/src/lib/ResizableNodeView.ts +1060 -0
  359. package/node_modules/@tiptap/core/src/lib/index.ts +1 -0
  360. package/node_modules/@tiptap/core/src/pasteRules/index.ts +3 -0
  361. package/node_modules/@tiptap/core/src/pasteRules/markPasteRule.ts +71 -0
  362. package/node_modules/@tiptap/core/src/pasteRules/nodePasteRule.ts +44 -0
  363. package/node_modules/@tiptap/core/src/pasteRules/textPasteRule.ts +34 -0
  364. package/node_modules/@tiptap/core/src/style.ts +71 -0
  365. package/node_modules/@tiptap/core/src/types.ts +1058 -0
  366. package/node_modules/@tiptap/core/src/utilities/callOrReturn.ts +21 -0
  367. package/node_modules/@tiptap/core/src/utilities/canInsertNode.ts +30 -0
  368. package/node_modules/@tiptap/core/src/utilities/createStyleTag.ts +21 -0
  369. package/node_modules/@tiptap/core/src/utilities/deleteProps.ts +16 -0
  370. package/node_modules/@tiptap/core/src/utilities/elementFromString.ts +27 -0
  371. package/node_modules/@tiptap/core/src/utilities/escapeForRegEx.ts +4 -0
  372. package/node_modules/@tiptap/core/src/utilities/findDuplicates.ts +8 -0
  373. package/node_modules/@tiptap/core/src/utilities/fromString.ts +19 -0
  374. package/node_modules/@tiptap/core/src/utilities/index.ts +26 -0
  375. package/node_modules/@tiptap/core/src/utilities/isAndroid.ts +3 -0
  376. package/node_modules/@tiptap/core/src/utilities/isEmptyObject.ts +3 -0
  377. package/node_modules/@tiptap/core/src/utilities/isFirefox.ts +11 -0
  378. package/node_modules/@tiptap/core/src/utilities/isFunction.ts +4 -0
  379. package/node_modules/@tiptap/core/src/utilities/isMacOS.ts +3 -0
  380. package/node_modules/@tiptap/core/src/utilities/isNumber.ts +3 -0
  381. package/node_modules/@tiptap/core/src/utilities/isPlainObject.ts +13 -0
  382. package/node_modules/@tiptap/core/src/utilities/isRegExp.ts +3 -0
  383. package/node_modules/@tiptap/core/src/utilities/isSafari.ts +11 -0
  384. package/node_modules/@tiptap/core/src/utilities/isString.ts +3 -0
  385. package/node_modules/@tiptap/core/src/utilities/isiOS.ts +7 -0
  386. package/node_modules/@tiptap/core/src/utilities/markdown/attributeUtils.ts +130 -0
  387. package/node_modules/@tiptap/core/src/utilities/markdown/createAtomBlockMarkdownSpec.ts +141 -0
  388. package/node_modules/@tiptap/core/src/utilities/markdown/createBlockMarkdownSpec.ts +225 -0
  389. package/node_modules/@tiptap/core/src/utilities/markdown/createInlineMarkdownSpec.ts +282 -0
  390. package/node_modules/@tiptap/core/src/utilities/markdown/index.ts +13 -0
  391. package/node_modules/@tiptap/core/src/utilities/markdown/parseIndentedBlocks.ts +194 -0
  392. package/node_modules/@tiptap/core/src/utilities/markdown/renderNestedMarkdownContent.ts +96 -0
  393. package/node_modules/@tiptap/core/src/utilities/mergeAttributes.ts +109 -0
  394. package/node_modules/@tiptap/core/src/utilities/mergeDeep.ts +17 -0
  395. package/node_modules/@tiptap/core/src/utilities/minMax.ts +3 -0
  396. package/node_modules/@tiptap/core/src/utilities/objectIncludes.ts +30 -0
  397. package/node_modules/@tiptap/core/src/utilities/removeDuplicates.ts +13 -0
  398. package/node_modules/@tiptap/extension-bubble-menu/LICENSE.md +21 -0
  399. package/node_modules/@tiptap/extension-bubble-menu/README.md +18 -0
  400. package/node_modules/@tiptap/extension-bubble-menu/dist/index.cjs +462 -0
  401. package/node_modules/@tiptap/extension-bubble-menu/dist/index.cjs.map +1 -0
  402. package/node_modules/@tiptap/extension-bubble-menu/dist/index.d.cts +169 -0
  403. package/node_modules/@tiptap/extension-bubble-menu/dist/index.d.ts +169 -0
  404. package/node_modules/@tiptap/extension-bubble-menu/dist/index.js +443 -0
  405. package/node_modules/@tiptap/extension-bubble-menu/dist/index.js.map +1 -0
  406. package/node_modules/@tiptap/extension-bubble-menu/package.json +54 -0
  407. package/node_modules/@tiptap/extension-bubble-menu/src/bubble-menu-plugin.ts +650 -0
  408. package/node_modules/@tiptap/extension-bubble-menu/src/bubble-menu.ts +50 -0
  409. package/node_modules/@tiptap/extension-bubble-menu/src/index.ts +6 -0
  410. package/node_modules/@tiptap/extension-floating-menu/LICENSE.md +21 -0
  411. package/node_modules/@tiptap/extension-floating-menu/README.md +18 -0
  412. package/node_modules/@tiptap/extension-floating-menu/dist/index.cjs +380 -0
  413. package/node_modules/@tiptap/extension-floating-menu/dist/index.cjs.map +1 -0
  414. package/node_modules/@tiptap/extension-floating-menu/dist/index.d.cts +179 -0
  415. package/node_modules/@tiptap/extension-floating-menu/dist/index.d.ts +179 -0
  416. package/node_modules/@tiptap/extension-floating-menu/dist/index.js +361 -0
  417. package/node_modules/@tiptap/extension-floating-menu/dist/index.js.map +1 -0
  418. package/node_modules/@tiptap/extension-floating-menu/package.json +53 -0
  419. package/node_modules/@tiptap/extension-floating-menu/src/floating-menu-plugin.ts +525 -0
  420. package/node_modules/@tiptap/extension-floating-menu/src/floating-menu.ts +77 -0
  421. package/node_modules/@tiptap/extension-floating-menu/src/index.ts +6 -0
  422. package/node_modules/@tiptap/extension-mention/LICENSE.md +21 -0
  423. package/node_modules/@tiptap/extension-mention/README.md +18 -0
  424. package/node_modules/@tiptap/extension-mention/dist/index.cjs +277 -0
  425. package/node_modules/@tiptap/extension-mention/dist/index.cjs.map +1 -0
  426. package/node_modules/@tiptap/extension-mention/dist/index.d.cts +93 -0
  427. package/node_modules/@tiptap/extension-mention/dist/index.d.ts +93 -0
  428. package/node_modules/@tiptap/extension-mention/dist/index.js +250 -0
  429. package/node_modules/@tiptap/extension-mention/dist/index.js.map +1 -0
  430. package/node_modules/@tiptap/extension-mention/package.json +52 -0
  431. package/node_modules/@tiptap/extension-mention/src/index.ts +5 -0
  432. package/node_modules/@tiptap/extension-mention/src/mention.ts +357 -0
  433. package/node_modules/@tiptap/extension-mention/src/utils/get-default-suggestion-attributes.ts +89 -0
  434. package/node_modules/@tiptap/pm/LICENSE.md +21 -0
  435. package/node_modules/@tiptap/pm/README.md +22 -0
  436. package/node_modules/@tiptap/pm/changeset/index.ts +1 -0
  437. package/node_modules/@tiptap/pm/collab/index.ts +1 -0
  438. package/node_modules/@tiptap/pm/commands/index.ts +1 -0
  439. package/node_modules/@tiptap/pm/dist/changeset/index.cjs +2 -0
  440. package/node_modules/@tiptap/pm/dist/changeset/index.d.cts +18 -0
  441. package/node_modules/@tiptap/pm/dist/changeset/index.d.ts +18 -0
  442. package/node_modules/@tiptap/pm/dist/changeset/index.js +2 -0
  443. package/node_modules/@tiptap/pm/dist/collab/index.cjs +2 -0
  444. package/node_modules/@tiptap/pm/dist/collab/index.d.cts +1 -0
  445. package/node_modules/@tiptap/pm/dist/collab/index.d.ts +1 -0
  446. package/node_modules/@tiptap/pm/dist/collab/index.js +2 -0
  447. package/node_modules/@tiptap/pm/dist/commands/index.cjs +2 -0
  448. package/node_modules/@tiptap/pm/dist/commands/index.d.cts +1 -0
  449. package/node_modules/@tiptap/pm/dist/commands/index.d.ts +1 -0
  450. package/node_modules/@tiptap/pm/dist/commands/index.js +2 -0
  451. package/node_modules/@tiptap/pm/dist/dropcursor/index.cjs +2 -0
  452. package/node_modules/@tiptap/pm/dist/dropcursor/index.d.cts +1 -0
  453. package/node_modules/@tiptap/pm/dist/dropcursor/index.d.ts +1 -0
  454. package/node_modules/@tiptap/pm/dist/dropcursor/index.js +2 -0
  455. package/node_modules/@tiptap/pm/dist/gapcursor/index.cjs +2 -0
  456. package/node_modules/@tiptap/pm/dist/gapcursor/index.d.cts +1 -0
  457. package/node_modules/@tiptap/pm/dist/gapcursor/index.d.ts +1 -0
  458. package/node_modules/@tiptap/pm/dist/gapcursor/index.js +2 -0
  459. package/node_modules/@tiptap/pm/dist/history/index.cjs +2 -0
  460. package/node_modules/@tiptap/pm/dist/history/index.d.cts +1 -0
  461. package/node_modules/@tiptap/pm/dist/history/index.d.ts +1 -0
  462. package/node_modules/@tiptap/pm/dist/history/index.js +2 -0
  463. package/node_modules/@tiptap/pm/dist/inputrules/index.cjs +2 -0
  464. package/node_modules/@tiptap/pm/dist/inputrules/index.d.cts +1 -0
  465. package/node_modules/@tiptap/pm/dist/inputrules/index.d.ts +1 -0
  466. package/node_modules/@tiptap/pm/dist/inputrules/index.js +2 -0
  467. package/node_modules/@tiptap/pm/dist/keymap/index.cjs +2 -0
  468. package/node_modules/@tiptap/pm/dist/keymap/index.d.cts +1 -0
  469. package/node_modules/@tiptap/pm/dist/keymap/index.d.ts +1 -0
  470. package/node_modules/@tiptap/pm/dist/keymap/index.js +2 -0
  471. package/node_modules/@tiptap/pm/dist/markdown/index.cjs +2 -0
  472. package/node_modules/@tiptap/pm/dist/markdown/index.d.cts +1 -0
  473. package/node_modules/@tiptap/pm/dist/markdown/index.d.ts +1 -0
  474. package/node_modules/@tiptap/pm/dist/markdown/index.js +2 -0
  475. package/node_modules/@tiptap/pm/dist/menu/index.cjs +2 -0
  476. package/node_modules/@tiptap/pm/dist/menu/index.d.cts +1 -0
  477. package/node_modules/@tiptap/pm/dist/menu/index.d.ts +1 -0
  478. package/node_modules/@tiptap/pm/dist/menu/index.js +2 -0
  479. package/node_modules/@tiptap/pm/dist/model/index.cjs +2 -0
  480. package/node_modules/@tiptap/pm/dist/model/index.d.cts +1 -0
  481. package/node_modules/@tiptap/pm/dist/model/index.d.ts +1 -0
  482. package/node_modules/@tiptap/pm/dist/model/index.js +2 -0
  483. package/node_modules/@tiptap/pm/dist/schema-basic/index.cjs +2 -0
  484. package/node_modules/@tiptap/pm/dist/schema-basic/index.d.cts +1 -0
  485. package/node_modules/@tiptap/pm/dist/schema-basic/index.d.ts +1 -0
  486. package/node_modules/@tiptap/pm/dist/schema-basic/index.js +2 -0
  487. package/node_modules/@tiptap/pm/dist/schema-list/index.cjs +2 -0
  488. package/node_modules/@tiptap/pm/dist/schema-list/index.d.cts +1 -0
  489. package/node_modules/@tiptap/pm/dist/schema-list/index.d.ts +1 -0
  490. package/node_modules/@tiptap/pm/dist/schema-list/index.js +2 -0
  491. package/node_modules/@tiptap/pm/dist/state/index.cjs +2 -0
  492. package/node_modules/@tiptap/pm/dist/state/index.d.cts +1 -0
  493. package/node_modules/@tiptap/pm/dist/state/index.d.ts +1 -0
  494. package/node_modules/@tiptap/pm/dist/state/index.js +2 -0
  495. package/node_modules/@tiptap/pm/dist/tables/index.cjs +2 -0
  496. package/node_modules/@tiptap/pm/dist/tables/index.d.cts +1 -0
  497. package/node_modules/@tiptap/pm/dist/tables/index.d.ts +1 -0
  498. package/node_modules/@tiptap/pm/dist/tables/index.js +2 -0
  499. package/node_modules/@tiptap/pm/dist/trailing-node/index.cjs +2 -0
  500. package/node_modules/@tiptap/pm/dist/trailing-node/index.d.cts +1 -0
  501. package/node_modules/@tiptap/pm/dist/trailing-node/index.d.ts +1 -0
  502. package/node_modules/@tiptap/pm/dist/trailing-node/index.js +2 -0
  503. package/node_modules/@tiptap/pm/dist/transform/index.cjs +2 -0
  504. package/node_modules/@tiptap/pm/dist/transform/index.d.cts +1 -0
  505. package/node_modules/@tiptap/pm/dist/transform/index.d.ts +1 -0
  506. package/node_modules/@tiptap/pm/dist/transform/index.js +2 -0
  507. package/node_modules/@tiptap/pm/dist/view/index.cjs +2 -0
  508. package/node_modules/@tiptap/pm/dist/view/index.d.cts +1 -0
  509. package/node_modules/@tiptap/pm/dist/view/index.d.ts +1 -0
  510. package/node_modules/@tiptap/pm/dist/view/index.js +2 -0
  511. package/node_modules/@tiptap/pm/dropcursor/index.ts +1 -0
  512. package/node_modules/@tiptap/pm/gapcursor/index.ts +1 -0
  513. package/node_modules/@tiptap/pm/history/index.ts +1 -0
  514. package/node_modules/@tiptap/pm/inputrules/index.ts +1 -0
  515. package/node_modules/@tiptap/pm/keymap/index.ts +1 -0
  516. package/node_modules/@tiptap/pm/markdown/index.ts +1 -0
  517. package/node_modules/@tiptap/pm/menu/index.ts +1 -0
  518. package/node_modules/@tiptap/pm/model/index.ts +1 -0
  519. package/node_modules/@tiptap/pm/package.json +211 -0
  520. package/node_modules/@tiptap/pm/schema-basic/index.ts +1 -0
  521. package/node_modules/@tiptap/pm/schema-list/index.ts +1 -0
  522. package/node_modules/@tiptap/pm/state/index.ts +1 -0
  523. package/node_modules/@tiptap/pm/tables/index.ts +1 -0
  524. package/node_modules/@tiptap/pm/trailing-node/index.ts +1 -0
  525. package/node_modules/@tiptap/pm/transform/index.ts +1 -0
  526. package/node_modules/@tiptap/pm/view/index.ts +1 -0
  527. package/node_modules/@tiptap/react/LICENSE.md +21 -0
  528. package/node_modules/@tiptap/react/README.md +18 -0
  529. package/node_modules/@tiptap/react/dist/index.cjs +1195 -0
  530. package/node_modules/@tiptap/react/dist/index.cjs.map +1 -0
  531. package/node_modules/@tiptap/react/dist/index.d.cts +534 -0
  532. package/node_modules/@tiptap/react/dist/index.d.ts +534 -0
  533. package/node_modules/@tiptap/react/dist/index.js +1131 -0
  534. package/node_modules/@tiptap/react/dist/index.js.map +1 -0
  535. package/node_modules/@tiptap/react/dist/menus/index.cjs +499 -0
  536. package/node_modules/@tiptap/react/dist/menus/index.cjs.map +1 -0
  537. package/node_modules/@tiptap/react/dist/menus/index.d.cts +19 -0
  538. package/node_modules/@tiptap/react/dist/menus/index.d.ts +19 -0
  539. package/node_modules/@tiptap/react/dist/menus/index.js +461 -0
  540. package/node_modules/@tiptap/react/dist/menus/index.js.map +1 -0
  541. package/node_modules/@tiptap/react/package.json +76 -0
  542. package/node_modules/@tiptap/react/src/Context.tsx +60 -0
  543. package/node_modules/@tiptap/react/src/Editor.ts +13 -0
  544. package/node_modules/@tiptap/react/src/EditorContent.tsx +229 -0
  545. package/node_modules/@tiptap/react/src/NodeViewContent.tsx +30 -0
  546. package/node_modules/@tiptap/react/src/NodeViewWrapper.tsx +27 -0
  547. package/node_modules/@tiptap/react/src/ReactMarkViewRenderer.tsx +106 -0
  548. package/node_modules/@tiptap/react/src/ReactNodeViewRenderer.tsx +387 -0
  549. package/node_modules/@tiptap/react/src/ReactRenderer.tsx +282 -0
  550. package/node_modules/@tiptap/react/src/Tiptap.tsx +224 -0
  551. package/node_modules/@tiptap/react/src/index.ts +13 -0
  552. package/node_modules/@tiptap/react/src/menus/BubbleMenu.spec.ts +174 -0
  553. package/node_modules/@tiptap/react/src/menus/BubbleMenu.tsx +153 -0
  554. package/node_modules/@tiptap/react/src/menus/FloatingMenu.spec.ts +164 -0
  555. package/node_modules/@tiptap/react/src/menus/FloatingMenu.tsx +137 -0
  556. package/node_modules/@tiptap/react/src/menus/getAutoPluginKey.ts +5 -0
  557. package/node_modules/@tiptap/react/src/menus/index.ts +2 -0
  558. package/node_modules/@tiptap/react/src/menus/useMenuElementProps.ts +354 -0
  559. package/node_modules/@tiptap/react/src/types.ts +6 -0
  560. package/node_modules/@tiptap/react/src/useEditor.ts +382 -0
  561. package/node_modules/@tiptap/react/src/useEditorState.ts +173 -0
  562. package/node_modules/@tiptap/react/src/useReactNodeView.ts +28 -0
  563. package/node_modules/@tiptap/suggestion/LICENSE.md +21 -0
  564. package/node_modules/@tiptap/suggestion/README.md +18 -0
  565. package/node_modules/@tiptap/suggestion/dist/index.cjs +369 -0
  566. package/node_modules/@tiptap/suggestion/dist/index.cjs.map +1 -0
  567. package/node_modules/@tiptap/suggestion/dist/index.d.cts +213 -0
  568. package/node_modules/@tiptap/suggestion/dist/index.d.ts +213 -0
  569. package/node_modules/@tiptap/suggestion/dist/index.js +339 -0
  570. package/node_modules/@tiptap/suggestion/dist/index.js.map +1 -0
  571. package/node_modules/@tiptap/suggestion/package.json +50 -0
  572. package/node_modules/@tiptap/suggestion/src/__tests__/suggestion.test.ts +127 -0
  573. package/node_modules/@tiptap/suggestion/src/findSuggestionMatch.ts +79 -0
  574. package/node_modules/@tiptap/suggestion/src/index.ts +8 -0
  575. package/node_modules/@tiptap/suggestion/src/suggestion.ts +585 -0
  576. package/node_modules/@types/linkify-it/LICENSE +21 -0
  577. package/node_modules/@types/linkify-it/README.md +15 -0
  578. package/node_modules/@types/linkify-it/build/index.cjs.d.ts +178 -0
  579. package/node_modules/@types/linkify-it/index.d.mts +174 -0
  580. package/node_modules/@types/linkify-it/index.d.ts +3 -0
  581. package/node_modules/@types/linkify-it/package.json +50 -0
  582. package/node_modules/@types/markdown-it/LICENSE +21 -0
  583. package/node_modules/@types/markdown-it/README.md +15 -0
  584. package/node_modules/@types/markdown-it/dist/index.cjs.d.ts +1236 -0
  585. package/node_modules/@types/markdown-it/dist/markdown-it.d.ts +5 -0
  586. package/node_modules/@types/markdown-it/dist/markdown-it.min.d.ts +5 -0
  587. package/node_modules/@types/markdown-it/index.d.mts +1 -0
  588. package/node_modules/@types/markdown-it/index.d.ts +3 -0
  589. package/node_modules/@types/markdown-it/lib/common/html_blocks.d.mts +7 -0
  590. package/node_modules/@types/markdown-it/lib/common/html_re.d.mts +2 -0
  591. package/node_modules/@types/markdown-it/lib/common/utils.d.mts +62 -0
  592. package/node_modules/@types/markdown-it/lib/helpers/index.d.mts +5 -0
  593. package/node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.mts +7 -0
  594. package/node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.mts +3 -0
  595. package/node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.mts +29 -0
  596. package/node_modules/@types/markdown-it/lib/index.d.mts +404 -0
  597. package/node_modules/@types/markdown-it/lib/parser_block.d.mts +25 -0
  598. package/node_modules/@types/markdown-it/lib/parser_core.d.mts +18 -0
  599. package/node_modules/@types/markdown-it/lib/parser_inline.d.mts +38 -0
  600. package/node_modules/@types/markdown-it/lib/renderer.d.mts +96 -0
  601. package/node_modules/@types/markdown-it/lib/ruler.d.mts +158 -0
  602. package/node_modules/@types/markdown-it/lib/rules_block/state_block.d.mts +124 -0
  603. package/node_modules/@types/markdown-it/lib/rules_core/state_core.d.mts +18 -0
  604. package/node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.mts +73 -0
  605. package/node_modules/@types/markdown-it/lib/token.d.mts +108 -0
  606. package/node_modules/@types/markdown-it/package.json +54 -0
  607. package/node_modules/@types/mdurl/LICENSE +21 -0
  608. package/node_modules/@types/mdurl/README.md +15 -0
  609. package/node_modules/@types/mdurl/build/index.cjs.d.ts +52 -0
  610. package/node_modules/@types/mdurl/index.d.mts +6 -0
  611. package/node_modules/@types/mdurl/index.d.ts +3 -0
  612. package/node_modules/@types/mdurl/lib/decode.d.mts +10 -0
  613. package/node_modules/@types/mdurl/lib/encode.d.mts +15 -0
  614. package/node_modules/@types/mdurl/lib/format.d.mts +3 -0
  615. package/node_modules/@types/mdurl/lib/parse.d.mts +18 -0
  616. package/node_modules/@types/mdurl/package.json +36 -0
  617. package/node_modules/@types/use-sync-external-store/LICENSE +21 -0
  618. package/node_modules/@types/use-sync-external-store/README.md +15 -0
  619. package/node_modules/@types/use-sync-external-store/index.d.ts +5 -0
  620. package/node_modules/@types/use-sync-external-store/package.json +30 -0
  621. package/node_modules/@types/use-sync-external-store/shim/index.d.ts +1 -0
  622. package/node_modules/@types/use-sync-external-store/shim/with-selector.d.ts +1 -0
  623. package/node_modules/@types/use-sync-external-store/with-selector.d.ts +7 -0
  624. package/node_modules/argparse/LICENSE +254 -0
  625. package/node_modules/argparse/README.md +84 -0
  626. package/node_modules/argparse/argparse.js +3707 -0
  627. package/node_modules/argparse/lib/sub.js +67 -0
  628. package/node_modules/argparse/lib/textwrap.js +440 -0
  629. package/node_modules/argparse/package.json +31 -0
  630. package/node_modules/crelt/LICENSE +19 -0
  631. package/node_modules/crelt/README.md +23 -0
  632. package/node_modules/crelt/dist/index.cjs +31 -0
  633. package/node_modules/crelt/dist/index.d.cts +4 -0
  634. package/node_modules/crelt/index.d.ts +4 -0
  635. package/node_modules/crelt/index.js +28 -0
  636. package/node_modules/crelt/package.json +35 -0
  637. package/node_modules/crelt/rollup.config.js +13 -0
  638. package/node_modules/entities/LICENSE +11 -0
  639. package/node_modules/entities/lib/decode.d.ts +211 -0
  640. package/node_modules/entities/lib/decode.d.ts.map +1 -0
  641. package/node_modules/entities/lib/decode.js +536 -0
  642. package/node_modules/entities/lib/decode.js.map +1 -0
  643. package/node_modules/entities/lib/decode_codepoint.d.ts +19 -0
  644. package/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
  645. package/node_modules/entities/lib/decode_codepoint.js +76 -0
  646. package/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  647. package/node_modules/entities/lib/encode.d.ts +22 -0
  648. package/node_modules/entities/lib/encode.d.ts.map +1 -0
  649. package/node_modules/entities/lib/encode.js +77 -0
  650. package/node_modules/entities/lib/encode.js.map +1 -0
  651. package/node_modules/entities/lib/escape.d.ts +43 -0
  652. package/node_modules/entities/lib/escape.d.ts.map +1 -0
  653. package/node_modules/entities/lib/escape.js +122 -0
  654. package/node_modules/entities/lib/escape.js.map +1 -0
  655. package/node_modules/entities/lib/esm/decode.d.ts +211 -0
  656. package/node_modules/entities/lib/esm/decode.d.ts.map +1 -0
  657. package/node_modules/entities/lib/esm/decode.js +496 -0
  658. package/node_modules/entities/lib/esm/decode.js.map +1 -0
  659. package/node_modules/entities/lib/esm/decode_codepoint.d.ts +19 -0
  660. package/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +1 -0
  661. package/node_modules/entities/lib/esm/decode_codepoint.js +71 -0
  662. package/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
  663. package/node_modules/entities/lib/esm/encode.d.ts +22 -0
  664. package/node_modules/entities/lib/esm/encode.d.ts.map +1 -0
  665. package/node_modules/entities/lib/esm/encode.js +69 -0
  666. package/node_modules/entities/lib/esm/encode.js.map +1 -0
  667. package/node_modules/entities/lib/esm/escape.d.ts +43 -0
  668. package/node_modules/entities/lib/esm/escape.d.ts.map +1 -0
  669. package/node_modules/entities/lib/esm/escape.js +116 -0
  670. package/node_modules/entities/lib/esm/escape.js.map +1 -0
  671. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +3 -0
  672. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +1 -0
  673. package/node_modules/entities/lib/esm/generated/decode-data-html.js +7 -0
  674. package/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
  675. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +3 -0
  676. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +1 -0
  677. package/node_modules/entities/lib/esm/generated/decode-data-xml.js +7 -0
  678. package/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
  679. package/node_modules/entities/lib/esm/generated/encode-html.d.ts +8 -0
  680. package/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +1 -0
  681. package/node_modules/entities/lib/esm/generated/encode-html.js +10 -0
  682. package/node_modules/entities/lib/esm/generated/encode-html.js.map +1 -0
  683. package/node_modules/entities/lib/esm/index.d.ts +96 -0
  684. package/node_modules/entities/lib/esm/index.d.ts.map +1 -0
  685. package/node_modules/entities/lib/esm/index.js +99 -0
  686. package/node_modules/entities/lib/esm/index.js.map +1 -0
  687. package/node_modules/entities/lib/esm/package.json +1 -0
  688. package/node_modules/entities/lib/generated/decode-data-html.d.ts +3 -0
  689. package/node_modules/entities/lib/generated/decode-data-html.d.ts.map +1 -0
  690. package/node_modules/entities/lib/generated/decode-data-html.js +9 -0
  691. package/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  692. package/node_modules/entities/lib/generated/decode-data-xml.d.ts +3 -0
  693. package/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +1 -0
  694. package/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
  695. package/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  696. package/node_modules/entities/lib/generated/encode-html.d.ts +8 -0
  697. package/node_modules/entities/lib/generated/encode-html.d.ts.map +1 -0
  698. package/node_modules/entities/lib/generated/encode-html.js +12 -0
  699. package/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  700. package/node_modules/entities/lib/index.d.ts +96 -0
  701. package/node_modules/entities/lib/index.d.ts.map +1 -0
  702. package/node_modules/entities/lib/index.js +126 -0
  703. package/node_modules/entities/lib/index.js.map +1 -0
  704. package/node_modules/entities/package.json +90 -0
  705. package/node_modules/entities/readme.md +122 -0
  706. package/node_modules/escape-string-regexp/index.d.ts +18 -0
  707. package/node_modules/escape-string-regexp/index.js +13 -0
  708. package/node_modules/escape-string-regexp/license +9 -0
  709. package/node_modules/escape-string-regexp/package.json +38 -0
  710. package/node_modules/escape-string-regexp/readme.md +34 -0
  711. package/node_modules/fast-equals/LICENSE +21 -0
  712. package/node_modules/fast-equals/README.md +477 -0
  713. package/node_modules/fast-equals/dist/cjs/comparator.d.cts +60 -0
  714. package/node_modules/fast-equals/dist/cjs/equals.d.cts +62 -0
  715. package/node_modules/fast-equals/dist/cjs/index.cjs +653 -0
  716. package/node_modules/fast-equals/dist/cjs/index.cjs.map +1 -0
  717. package/node_modules/fast-equals/dist/cjs/index.d.cts +66 -0
  718. package/node_modules/fast-equals/dist/cjs/internalTypes.d.cts +178 -0
  719. package/node_modules/fast-equals/dist/cjs/utils.d.cts +33 -0
  720. package/node_modules/fast-equals/dist/es/comparator.d.mts +60 -0
  721. package/node_modules/fast-equals/dist/es/equals.d.mts +62 -0
  722. package/node_modules/fast-equals/dist/es/index.d.mts +66 -0
  723. package/node_modules/fast-equals/dist/es/index.mjs +642 -0
  724. package/node_modules/fast-equals/dist/es/index.mjs.map +1 -0
  725. package/node_modules/fast-equals/dist/es/internalTypes.d.mts +178 -0
  726. package/node_modules/fast-equals/dist/es/utils.d.mts +33 -0
  727. package/node_modules/fast-equals/dist/umd/comparator.d.ts +26 -0
  728. package/node_modules/fast-equals/dist/umd/equals.d.ts +62 -0
  729. package/node_modules/fast-equals/dist/umd/index.d.ts +47 -0
  730. package/node_modules/fast-equals/dist/umd/index.js +659 -0
  731. package/node_modules/fast-equals/dist/umd/index.js.map +1 -0
  732. package/node_modules/fast-equals/dist/umd/internalTypes.d.ts +159 -0
  733. package/node_modules/fast-equals/dist/umd/utils.d.ts +28 -0
  734. package/node_modules/fast-equals/index.d.ts +260 -0
  735. package/node_modules/fast-equals/package.json +113 -0
  736. package/node_modules/linkify-it/LICENSE +22 -0
  737. package/node_modules/linkify-it/README.md +196 -0
  738. package/node_modules/linkify-it/build/index.cjs.js +832 -0
  739. package/node_modules/linkify-it/index.mjs +642 -0
  740. package/node_modules/linkify-it/lib/re.mjs +189 -0
  741. package/node_modules/linkify-it/package.json +58 -0
  742. package/node_modules/markdown-it/LICENSE +22 -0
  743. package/node_modules/markdown-it/README.md +324 -0
  744. package/node_modules/markdown-it/bin/markdown-it.mjs +107 -0
  745. package/node_modules/markdown-it/dist/index.cjs.js +5547 -0
  746. package/node_modules/markdown-it/dist/markdown-it.js +6969 -0
  747. package/node_modules/markdown-it/dist/markdown-it.min.js +2 -0
  748. package/node_modules/markdown-it/index.mjs +1 -0
  749. package/node_modules/markdown-it/lib/common/html_blocks.mjs +67 -0
  750. package/node_modules/markdown-it/lib/common/html_re.mjs +25 -0
  751. package/node_modules/markdown-it/lib/common/utils.mjs +304 -0
  752. package/node_modules/markdown-it/lib/helpers/index.mjs +11 -0
  753. package/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +77 -0
  754. package/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +49 -0
  755. package/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +66 -0
  756. package/node_modules/markdown-it/lib/index.mjs +565 -0
  757. package/node_modules/markdown-it/lib/parser_block.mjs +134 -0
  758. package/node_modules/markdown-it/lib/parser_core.mjs +62 -0
  759. package/node_modules/markdown-it/lib/parser_inline.mjs +197 -0
  760. package/node_modules/markdown-it/lib/presets/commonmark.mjs +88 -0
  761. package/node_modules/markdown-it/lib/presets/default.mjs +47 -0
  762. package/node_modules/markdown-it/lib/presets/zero.mjs +70 -0
  763. package/node_modules/markdown-it/lib/renderer.mjs +322 -0
  764. package/node_modules/markdown-it/lib/ruler.mjs +340 -0
  765. package/node_modules/markdown-it/lib/rules_block/blockquote.mjs +209 -0
  766. package/node_modules/markdown-it/lib/rules_block/code.mjs +30 -0
  767. package/node_modules/markdown-it/lib/rules_block/fence.mjs +94 -0
  768. package/node_modules/markdown-it/lib/rules_block/heading.mjs +51 -0
  769. package/node_modules/markdown-it/lib/rules_block/hr.mjs +40 -0
  770. package/node_modules/markdown-it/lib/rules_block/html_block.mjs +69 -0
  771. package/node_modules/markdown-it/lib/rules_block/lheading.mjs +82 -0
  772. package/node_modules/markdown-it/lib/rules_block/list.mjs +331 -0
  773. package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +46 -0
  774. package/node_modules/markdown-it/lib/rules_block/reference.mjs +212 -0
  775. package/node_modules/markdown-it/lib/rules_block/state_block.mjs +220 -0
  776. package/node_modules/markdown-it/lib/rules_block/table.mjs +228 -0
  777. package/node_modules/markdown-it/lib/rules_core/block.mjs +13 -0
  778. package/node_modules/markdown-it/lib/rules_core/inline.mjs +11 -0
  779. package/node_modules/markdown-it/lib/rules_core/linkify.mjs +134 -0
  780. package/node_modules/markdown-it/lib/rules_core/normalize.mjs +17 -0
  781. package/node_modules/markdown-it/lib/rules_core/replacements.mjs +101 -0
  782. package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +193 -0
  783. package/node_modules/markdown-it/lib/rules_core/state_core.mjs +17 -0
  784. package/node_modules/markdown-it/lib/rules_core/text_join.mjs +43 -0
  785. package/node_modules/markdown-it/lib/rules_inline/autolink.mjs +72 -0
  786. package/node_modules/markdown-it/lib/rules_inline/backticks.mjs +60 -0
  787. package/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +124 -0
  788. package/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +123 -0
  789. package/node_modules/markdown-it/lib/rules_inline/entity.mjs +51 -0
  790. package/node_modules/markdown-it/lib/rules_inline/escape.mjs +69 -0
  791. package/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +38 -0
  792. package/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +50 -0
  793. package/node_modules/markdown-it/lib/rules_inline/image.mjs +138 -0
  794. package/node_modules/markdown-it/lib/rules_inline/link.mjs +139 -0
  795. package/node_modules/markdown-it/lib/rules_inline/linkify.mjs +63 -0
  796. package/node_modules/markdown-it/lib/rules_inline/newline.mjs +42 -0
  797. package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +123 -0
  798. package/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +127 -0
  799. package/node_modules/markdown-it/lib/rules_inline/text.mjs +86 -0
  800. package/node_modules/markdown-it/lib/token.mjs +191 -0
  801. package/node_modules/markdown-it/package.json +92 -0
  802. package/node_modules/mdurl/LICENSE +45 -0
  803. package/node_modules/mdurl/README.md +102 -0
  804. package/node_modules/mdurl/build/index.cjs.js +534 -0
  805. package/node_modules/mdurl/index.mjs +11 -0
  806. package/node_modules/mdurl/lib/decode.mjs +112 -0
  807. package/node_modules/mdurl/lib/encode.mjs +89 -0
  808. package/node_modules/mdurl/lib/format.mjs +21 -0
  809. package/node_modules/mdurl/lib/parse.mjs +308 -0
  810. package/node_modules/mdurl/package.json +37 -0
  811. package/node_modules/orderedmap/LICENSE +19 -0
  812. package/node_modules/orderedmap/README.md +69 -0
  813. package/node_modules/orderedmap/dist/index.cjs +139 -0
  814. package/node_modules/orderedmap/dist/index.d.cts +33 -0
  815. package/node_modules/orderedmap/dist/index.d.ts +33 -0
  816. package/node_modules/orderedmap/dist/index.js +137 -0
  817. package/node_modules/orderedmap/package.json +39 -0
  818. package/node_modules/prosemirror-changeset/CHANGELOG.md +147 -0
  819. package/node_modules/prosemirror-changeset/LICENSE +19 -0
  820. package/node_modules/prosemirror-changeset/README.md +175 -0
  821. package/node_modules/prosemirror-changeset/dist/index.cjs +585 -0
  822. package/node_modules/prosemirror-changeset/dist/index.d.cts +186 -0
  823. package/node_modules/prosemirror-changeset/dist/index.d.ts +186 -0
  824. package/node_modules/prosemirror-changeset/dist/index.js +715 -0
  825. package/node_modules/prosemirror-changeset/package.json +40 -0
  826. package/node_modules/prosemirror-changeset/src/README.md +32 -0
  827. package/node_modules/prosemirror-changeset/src/change.ts +189 -0
  828. package/node_modules/prosemirror-changeset/src/changeset.ts +212 -0
  829. package/node_modules/prosemirror-changeset/src/diff.ts +151 -0
  830. package/node_modules/prosemirror-changeset/src/simplify.ts +132 -0
  831. package/node_modules/prosemirror-changeset/test/test-changed-range.ts +48 -0
  832. package/node_modules/prosemirror-changeset/test/test-changes.ts +211 -0
  833. package/node_modules/prosemirror-changeset/test/test-diff.ts +69 -0
  834. package/node_modules/prosemirror-changeset/test/test-merge.ts +56 -0
  835. package/node_modules/prosemirror-changeset/test/test-simplify.ts +71 -0
  836. package/node_modules/prosemirror-collab/.tern-project +8 -0
  837. package/node_modules/prosemirror-collab/CHANGELOG.md +77 -0
  838. package/node_modules/prosemirror-collab/CONTRIBUTING.md +104 -0
  839. package/node_modules/prosemirror-collab/LICENSE +19 -0
  840. package/node_modules/prosemirror-collab/README.md +28 -0
  841. package/node_modules/prosemirror-collab/dist/index.cjs +155 -0
  842. package/node_modules/prosemirror-collab/dist/index.d.cts +60 -0
  843. package/node_modules/prosemirror-collab/dist/index.d.ts +60 -0
  844. package/node_modules/prosemirror-collab/dist/index.js +156 -0
  845. package/node_modules/prosemirror-collab/package.json +40 -0
  846. package/node_modules/prosemirror-collab/src/README.md +11 -0
  847. package/node_modules/prosemirror-collab/src/collab.ts +184 -0
  848. package/node_modules/prosemirror-commands/.tern-project +8 -0
  849. package/node_modules/prosemirror-commands/CHANGELOG.md +322 -0
  850. package/node_modules/prosemirror-commands/CONTRIBUTING.md +104 -0
  851. package/node_modules/prosemirror-commands/LICENSE +19 -0
  852. package/node_modules/prosemirror-commands/README.md +28 -0
  853. package/node_modules/prosemirror-commands/dist/index.cjs +687 -0
  854. package/node_modules/prosemirror-commands/dist/index.d.cts +215 -0
  855. package/node_modules/prosemirror-commands/dist/index.d.ts +215 -0
  856. package/node_modules/prosemirror-commands/dist/index.js +850 -0
  857. package/node_modules/prosemirror-commands/package.json +39 -0
  858. package/node_modules/prosemirror-commands/src/README.md +40 -0
  859. package/node_modules/prosemirror-commands/src/commands.ts +783 -0
  860. package/node_modules/prosemirror-dropcursor/CHANGELOG.md +137 -0
  861. package/node_modules/prosemirror-dropcursor/CONTRIBUTING.md +100 -0
  862. package/node_modules/prosemirror-dropcursor/LICENSE +19 -0
  863. package/node_modules/prosemirror-dropcursor/README.md +50 -0
  864. package/node_modules/prosemirror-dropcursor/dist/index.cjs +185 -0
  865. package/node_modules/prosemirror-dropcursor/dist/index.d.cts +38 -0
  866. package/node_modules/prosemirror-dropcursor/dist/index.d.ts +38 -0
  867. package/node_modules/prosemirror-dropcursor/dist/index.js +146 -0
  868. package/node_modules/prosemirror-dropcursor/package.json +38 -0
  869. package/node_modules/prosemirror-dropcursor/src/dropcursor.ts +170 -0
  870. package/node_modules/prosemirror-gapcursor/CHANGELOG.md +122 -0
  871. package/node_modules/prosemirror-gapcursor/CONTRIBUTING.md +104 -0
  872. package/node_modules/prosemirror-gapcursor/LICENSE +19 -0
  873. package/node_modules/prosemirror-gapcursor/README.md +31 -0
  874. package/node_modules/prosemirror-gapcursor/dist/index.cjs +239 -0
  875. package/node_modules/prosemirror-gapcursor/dist/index.d.cts +31 -0
  876. package/node_modules/prosemirror-gapcursor/dist/index.d.ts +31 -0
  877. package/node_modules/prosemirror-gapcursor/dist/index.js +239 -0
  878. package/node_modules/prosemirror-gapcursor/package.json +43 -0
  879. package/node_modules/prosemirror-gapcursor/src/README.md +21 -0
  880. package/node_modules/prosemirror-gapcursor/src/gapcursor.ts +141 -0
  881. package/node_modules/prosemirror-gapcursor/src/index.ts +91 -0
  882. package/node_modules/prosemirror-gapcursor/style/gapcursor.css +25 -0
  883. package/node_modules/prosemirror-history/.tern-project +8 -0
  884. package/node_modules/prosemirror-history/CHANGELOG.md +170 -0
  885. package/node_modules/prosemirror-history/CONTRIBUTING.md +104 -0
  886. package/node_modules/prosemirror-history/LICENSE +19 -0
  887. package/node_modules/prosemirror-history/README.md +27 -0
  888. package/node_modules/prosemirror-history/dist/index.cjs +382 -0
  889. package/node_modules/prosemirror-history/dist/index.d.cts +64 -0
  890. package/node_modules/prosemirror-history/dist/index.d.ts +64 -0
  891. package/node_modules/prosemirror-history/dist/index.js +453 -0
  892. package/node_modules/prosemirror-history/package.json +40 -0
  893. package/node_modules/prosemirror-history/src/README.md +23 -0
  894. package/node_modules/prosemirror-history/src/history.ts +465 -0
  895. package/node_modules/prosemirror-inputrules/.tern-project +8 -0
  896. package/node_modules/prosemirror-inputrules/CHANGELOG.md +127 -0
  897. package/node_modules/prosemirror-inputrules/CONTRIBUTING.md +104 -0
  898. package/node_modules/prosemirror-inputrules/LICENSE +19 -0
  899. package/node_modules/prosemirror-inputrules/README.md +29 -0
  900. package/node_modules/prosemirror-inputrules/dist/index.cjs +194 -0
  901. package/node_modules/prosemirror-inputrules/dist/index.d.cts +131 -0
  902. package/node_modules/prosemirror-inputrules/dist/index.d.ts +131 -0
  903. package/node_modules/prosemirror-inputrules/dist/index.js +239 -0
  904. package/node_modules/prosemirror-inputrules/package.json +36 -0
  905. package/node_modules/prosemirror-inputrules/src/README.md +23 -0
  906. package/node_modules/prosemirror-inputrules/src/index.ts +4 -0
  907. package/node_modules/prosemirror-inputrules/src/inputrules.ts +167 -0
  908. package/node_modules/prosemirror-inputrules/src/rulebuilders.ts +59 -0
  909. package/node_modules/prosemirror-inputrules/src/rules.ts +17 -0
  910. package/node_modules/prosemirror-keymap/.tern-project +8 -0
  911. package/node_modules/prosemirror-keymap/CHANGELOG.md +104 -0
  912. package/node_modules/prosemirror-keymap/CONTRIBUTING.md +104 -0
  913. package/node_modules/prosemirror-keymap/LICENSE +19 -0
  914. package/node_modules/prosemirror-keymap/README.md +27 -0
  915. package/node_modules/prosemirror-keymap/dist/index.cjs +65 -0
  916. package/node_modules/prosemirror-keymap/dist/index.d.cts +47 -0
  917. package/node_modules/prosemirror-keymap/dist/index.d.ts +47 -0
  918. package/node_modules/prosemirror-keymap/dist/index.js +128 -0
  919. package/node_modules/prosemirror-keymap/package.json +38 -0
  920. package/node_modules/prosemirror-keymap/src/README.md +5 -0
  921. package/node_modules/prosemirror-keymap/src/keymap.ts +105 -0
  922. package/node_modules/prosemirror-markdown/.tern-project +8 -0
  923. package/node_modules/prosemirror-markdown/CHANGELOG.md +311 -0
  924. package/node_modules/prosemirror-markdown/CONTRIBUTING.md +100 -0
  925. package/node_modules/prosemirror-markdown/LICENSE +19 -0
  926. package/node_modules/prosemirror-markdown/README.md +276 -0
  927. package/node_modules/prosemirror-markdown/dist/index.cjs +966 -0
  928. package/node_modules/prosemirror-markdown/dist/index.d.cts +335 -0
  929. package/node_modules/prosemirror-markdown/dist/index.d.ts +335 -0
  930. package/node_modules/prosemirror-markdown/dist/index.js +878 -0
  931. package/node_modules/prosemirror-markdown/package.json +40 -0
  932. package/node_modules/prosemirror-markdown/src/README.md +42 -0
  933. package/node_modules/prosemirror-markdown/src/from_markdown.ts +272 -0
  934. package/node_modules/prosemirror-markdown/src/index.ts +5 -0
  935. package/node_modules/prosemirror-markdown/src/schema.ts +156 -0
  936. package/node_modules/prosemirror-markdown/src/to_markdown.ts +483 -0
  937. package/node_modules/prosemirror-menu/.tern-project +8 -0
  938. package/node_modules/prosemirror-menu/CHANGELOG.md +107 -0
  939. package/node_modules/prosemirror-menu/CONTRIBUTING.md +100 -0
  940. package/node_modules/prosemirror-menu/LICENSE +19 -0
  941. package/node_modules/prosemirror-menu/README.md +235 -0
  942. package/node_modules/prosemirror-menu/dist/index.cjs +798 -0
  943. package/node_modules/prosemirror-menu/dist/index.d.cts +281 -0
  944. package/node_modules/prosemirror-menu/dist/index.d.ts +281 -0
  945. package/node_modules/prosemirror-menu/dist/index.js +795 -0
  946. package/node_modules/prosemirror-menu/package.json +42 -0
  947. package/node_modules/prosemirror-menu/src/README.md +60 -0
  948. package/node_modules/prosemirror-menu/src/icons.ts +53 -0
  949. package/node_modules/prosemirror-menu/src/index.ts +4 -0
  950. package/node_modules/prosemirror-menu/src/menu.ts +628 -0
  951. package/node_modules/prosemirror-menu/src/menubar.ts +210 -0
  952. package/node_modules/prosemirror-menu/style/menu.css +169 -0
  953. package/node_modules/prosemirror-model/.tern-project +8 -0
  954. package/node_modules/prosemirror-model/CHANGELOG.md +730 -0
  955. package/node_modules/prosemirror-model/CONTRIBUTING.md +104 -0
  956. package/node_modules/prosemirror-model/LICENSE +19 -0
  957. package/node_modules/prosemirror-model/README.md +29 -0
  958. package/node_modules/prosemirror-model/dist/index.cjs +2898 -0
  959. package/node_modules/prosemirror-model/dist/index.d.cts +1679 -0
  960. package/node_modules/prosemirror-model/dist/index.d.ts +1679 -0
  961. package/node_modules/prosemirror-model/dist/index.js +3464 -0
  962. package/node_modules/prosemirror-model/package.json +38 -0
  963. package/node_modules/prosemirror-model/src/README.md +62 -0
  964. package/node_modules/prosemirror-model/src/comparedeep.ts +15 -0
  965. package/node_modules/prosemirror-model/src/content.ts +413 -0
  966. package/node_modules/prosemirror-model/src/diff.ts +52 -0
  967. package/node_modules/prosemirror-model/src/dom.ts +1 -0
  968. package/node_modules/prosemirror-model/src/fragment.ts +268 -0
  969. package/node_modules/prosemirror-model/src/from_dom.ts +848 -0
  970. package/node_modules/prosemirror-model/src/index.ts +11 -0
  971. package/node_modules/prosemirror-model/src/mark.ts +111 -0
  972. package/node_modules/prosemirror-model/src/node.ts +402 -0
  973. package/node_modules/prosemirror-model/src/replace.ts +225 -0
  974. package/node_modules/prosemirror-model/src/resolvedpos.ts +289 -0
  975. package/node_modules/prosemirror-model/src/schema.ts +705 -0
  976. package/node_modules/prosemirror-model/src/to_dom.ts +238 -0
  977. package/node_modules/prosemirror-schema-basic/.tern-project +8 -0
  978. package/node_modules/prosemirror-schema-basic/CHANGELOG.md +81 -0
  979. package/node_modules/prosemirror-schema-basic/CONTRIBUTING.md +100 -0
  980. package/node_modules/prosemirror-schema-basic/LICENSE +19 -0
  981. package/node_modules/prosemirror-schema-basic/README.md +28 -0
  982. package/node_modules/prosemirror-schema-basic/dist/index.cjs +246 -0
  983. package/node_modules/prosemirror-schema-basic/dist/index.d.cts +87 -0
  984. package/node_modules/prosemirror-schema-basic/dist/index.d.ts +87 -0
  985. package/node_modules/prosemirror-schema-basic/dist/index.js +183 -0
  986. package/node_modules/prosemirror-schema-basic/package.json +37 -0
  987. package/node_modules/prosemirror-schema-basic/src/README.md +8 -0
  988. package/node_modules/prosemirror-schema-basic/src/schema-basic.ts +166 -0
  989. package/node_modules/prosemirror-schema-list/.tern-project +8 -0
  990. package/node_modules/prosemirror-schema-list/CHANGELOG.md +140 -0
  991. package/node_modules/prosemirror-schema-list/CONTRIBUTING.md +100 -0
  992. package/node_modules/prosemirror-schema-list/LICENSE +19 -0
  993. package/node_modules/prosemirror-schema-list/README.md +28 -0
  994. package/node_modules/prosemirror-schema-list/dist/index.cjs +253 -0
  995. package/node_modules/prosemirror-schema-list/dist/index.d.cts +71 -0
  996. package/node_modules/prosemirror-schema-list/dist/index.d.ts +71 -0
  997. package/node_modules/prosemirror-schema-list/dist/index.js +289 -0
  998. package/node_modules/prosemirror-schema-list/package.json +40 -0
  999. package/node_modules/prosemirror-schema-list/src/README.md +29 -0
  1000. package/node_modules/prosemirror-schema-list/src/schema-list.ts +267 -0
  1001. package/node_modules/prosemirror-state/.tern-project +8 -0
  1002. package/node_modules/prosemirror-state/CHANGELOG.md +296 -0
  1003. package/node_modules/prosemirror-state/CONTRIBUTING.md +104 -0
  1004. package/node_modules/prosemirror-state/LICENSE +19 -0
  1005. package/node_modules/prosemirror-state/README.md +28 -0
  1006. package/node_modules/prosemirror-state/dist/index.cjs +884 -0
  1007. package/node_modules/prosemirror-state/dist/index.d.cts +709 -0
  1008. package/node_modules/prosemirror-state/dist/index.d.ts +709 -0
  1009. package/node_modules/prosemirror-state/dist/index.js +1002 -0
  1010. package/node_modules/prosemirror-state/package.json +39 -0
  1011. package/node_modules/prosemirror-state/src/README.md +42 -0
  1012. package/node_modules/prosemirror-state/src/index.ts +7 -0
  1013. package/node_modules/prosemirror-state/src/plugin.ts +142 -0
  1014. package/node_modules/prosemirror-state/src/selection.ts +462 -0
  1015. package/node_modules/prosemirror-state/src/state.ts +266 -0
  1016. package/node_modules/prosemirror-state/src/transaction.ts +215 -0
  1017. package/node_modules/prosemirror-tables/LICENSE +19 -0
  1018. package/node_modules/prosemirror-tables/README.md +254 -0
  1019. package/node_modules/prosemirror-tables/dist/index.cjs +2683 -0
  1020. package/node_modules/prosemirror-tables/dist/index.d.cts +751 -0
  1021. package/node_modules/prosemirror-tables/dist/index.d.cts.map +1 -0
  1022. package/node_modules/prosemirror-tables/dist/index.d.ts +751 -0
  1023. package/node_modules/prosemirror-tables/dist/index.d.ts.map +1 -0
  1024. package/node_modules/prosemirror-tables/dist/index.js +2626 -0
  1025. package/node_modules/prosemirror-tables/dist/index.js.map +1 -0
  1026. package/node_modules/prosemirror-tables/package.json +80 -0
  1027. package/node_modules/prosemirror-tables/style/tables.css +48 -0
  1028. package/node_modules/prosemirror-trailing-node/LICENSE +21 -0
  1029. package/node_modules/prosemirror-trailing-node/dist/_tsup-dts-rollup.d.cts +41 -0
  1030. package/node_modules/prosemirror-trailing-node/dist/_tsup-dts-rollup.d.ts +41 -0
  1031. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.cjs +70 -0
  1032. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.d.cts +2 -0
  1033. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.d.ts +2 -0
  1034. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.js +43 -0
  1035. package/node_modules/prosemirror-trailing-node/dist-types/index.d.ts +2 -0
  1036. package/node_modules/prosemirror-trailing-node/dist-types/trailing-node-plugin.d.ts +33 -0
  1037. package/node_modules/prosemirror-trailing-node/dist-types/tsconfig.tsbuildinfo +1 -0
  1038. package/node_modules/prosemirror-trailing-node/package.json +57 -0
  1039. package/node_modules/prosemirror-trailing-node/readme.md +55 -0
  1040. package/node_modules/prosemirror-transform/.tern-project +8 -0
  1041. package/node_modules/prosemirror-transform/CHANGELOG.md +502 -0
  1042. package/node_modules/prosemirror-transform/CONTRIBUTING.md +104 -0
  1043. package/node_modules/prosemirror-transform/LICENSE +19 -0
  1044. package/node_modules/prosemirror-transform/README.md +29 -0
  1045. package/node_modules/prosemirror-transform/dist/index.cjs +1888 -0
  1046. package/node_modules/prosemirror-transform/dist/index.d.cts +847 -0
  1047. package/node_modules/prosemirror-transform/dist/index.d.ts +847 -0
  1048. package/node_modules/prosemirror-transform/dist/index.js +2181 -0
  1049. package/node_modules/prosemirror-transform/package.json +37 -0
  1050. package/node_modules/prosemirror-transform/src/README.md +59 -0
  1051. package/node_modules/prosemirror-transform/src/attr_step.ts +98 -0
  1052. package/node_modules/prosemirror-transform/src/index.ts +11 -0
  1053. package/node_modules/prosemirror-transform/src/map.ts +284 -0
  1054. package/node_modules/prosemirror-transform/src/mark.ts +106 -0
  1055. package/node_modules/prosemirror-transform/src/mark_step.ts +224 -0
  1056. package/node_modules/prosemirror-transform/src/replace.ts +460 -0
  1057. package/node_modules/prosemirror-transform/src/replace_step.ts +178 -0
  1058. package/node_modules/prosemirror-transform/src/step.ts +97 -0
  1059. package/node_modules/prosemirror-transform/src/structure.ts +349 -0
  1060. package/node_modules/prosemirror-transform/src/transform.ts +271 -0
  1061. package/node_modules/prosemirror-view/.tern-project +8 -0
  1062. package/node_modules/prosemirror-view/CHANGELOG.md +2447 -0
  1063. package/node_modules/prosemirror-view/CONTRIBUTING.md +104 -0
  1064. package/node_modules/prosemirror-view/LICENSE +19 -0
  1065. package/node_modules/prosemirror-view/README.md +28 -0
  1066. package/node_modules/prosemirror-view/dist/index.cjs +5381 -0
  1067. package/node_modules/prosemirror-view/dist/index.d.cts +904 -0
  1068. package/node_modules/prosemirror-view/dist/index.d.ts +904 -0
  1069. package/node_modules/prosemirror-view/dist/index.js +5900 -0
  1070. package/node_modules/prosemirror-view/package.json +43 -0
  1071. package/node_modules/prosemirror-view/src/README.md +38 -0
  1072. package/node_modules/prosemirror-view/src/browser.ts +24 -0
  1073. package/node_modules/prosemirror-view/src/capturekeys.ts +345 -0
  1074. package/node_modules/prosemirror-view/src/clipboard.ts +263 -0
  1075. package/node_modules/prosemirror-view/src/decoration.ts +793 -0
  1076. package/node_modules/prosemirror-view/src/dom.ts +159 -0
  1077. package/node_modules/prosemirror-view/src/domchange.ts +383 -0
  1078. package/node_modules/prosemirror-view/src/domcoords.ts +515 -0
  1079. package/node_modules/prosemirror-view/src/domobserver.ts +392 -0
  1080. package/node_modules/prosemirror-view/src/index.ts +825 -0
  1081. package/node_modules/prosemirror-view/src/input.ts +830 -0
  1082. package/node_modules/prosemirror-view/src/selection.ts +216 -0
  1083. package/node_modules/prosemirror-view/src/viewdesc.ts +1590 -0
  1084. package/node_modules/prosemirror-view/style/prosemirror.css +54 -0
  1085. package/node_modules/punycode.js/LICENSE-MIT.txt +20 -0
  1086. package/node_modules/punycode.js/README.md +148 -0
  1087. package/node_modules/punycode.js/package.json +58 -0
  1088. package/node_modules/punycode.js/punycode.es6.js +444 -0
  1089. package/node_modules/punycode.js/punycode.js +443 -0
  1090. package/node_modules/rope-sequence/LICENSE +19 -0
  1091. package/node_modules/rope-sequence/README.md +63 -0
  1092. package/node_modules/rope-sequence/dist/index.cjs +209 -0
  1093. package/node_modules/rope-sequence/dist/index.d.cts +11 -0
  1094. package/node_modules/rope-sequence/dist/index.d.ts +11 -0
  1095. package/node_modules/rope-sequence/dist/index.js +207 -0
  1096. package/node_modules/rope-sequence/index.js +190 -0
  1097. package/node_modules/rope-sequence/package.json +34 -0
  1098. package/node_modules/rope-sequence/test.js +78 -0
  1099. package/node_modules/uc.micro/LICENSE.txt +20 -0
  1100. package/node_modules/uc.micro/README.md +14 -0
  1101. package/node_modules/uc.micro/build/index.cjs.js +20 -0
  1102. package/node_modules/uc.micro/categories/Cc/regex.mjs +1 -0
  1103. package/node_modules/uc.micro/categories/Cf/regex.mjs +1 -0
  1104. package/node_modules/uc.micro/categories/P/regex.mjs +1 -0
  1105. package/node_modules/uc.micro/categories/S/regex.mjs +1 -0
  1106. package/node_modules/uc.micro/categories/Z/regex.mjs +1 -0
  1107. package/node_modules/uc.micro/index.mjs +8 -0
  1108. package/node_modules/uc.micro/package.json +37 -0
  1109. package/node_modules/uc.micro/properties/Any/regex.mjs +1 -0
  1110. package/node_modules/use-sync-external-store/LICENSE +21 -0
  1111. package/node_modules/use-sync-external-store/README.md +5 -0
  1112. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +97 -0
  1113. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +85 -0
  1114. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +95 -0
  1115. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js +88 -0
  1116. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.js +59 -0
  1117. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +66 -0
  1118. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +96 -0
  1119. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +84 -0
  1120. package/node_modules/use-sync-external-store/cjs/use-sync-external-store.development.js +27 -0
  1121. package/node_modules/use-sync-external-store/cjs/use-sync-external-store.production.js +13 -0
  1122. package/node_modules/use-sync-external-store/index.js +7 -0
  1123. package/node_modules/use-sync-external-store/package.json +43 -0
  1124. package/node_modules/use-sync-external-store/shim/index.js +7 -0
  1125. package/node_modules/use-sync-external-store/shim/index.native.js +7 -0
  1126. package/node_modules/use-sync-external-store/shim/with-selector.js +7 -0
  1127. package/node_modules/use-sync-external-store/with-selector.js +7 -0
  1128. package/node_modules/w3c-keyname/.tern-port +1 -0
  1129. package/node_modules/w3c-keyname/LICENSE +19 -0
  1130. package/node_modules/w3c-keyname/README.md +18 -0
  1131. package/node_modules/w3c-keyname/index.cjs +127 -0
  1132. package/node_modules/w3c-keyname/index.d.cts +5 -0
  1133. package/node_modules/w3c-keyname/index.d.ts +5 -0
  1134. package/node_modules/w3c-keyname/index.js +119 -0
  1135. package/node_modules/w3c-keyname/package.json +37 -0
  1136. package/package.json +120 -3
  1137. package/dist/chunk-T5WGKZN4.js.map +0 -1
  1138. package/dist/chunk-XULCQP3Q.js.map +0 -1
  1139. /package/dist/{chunk-7IPINZHT.js.map → chunk-IRBOKMF5.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  PluginTriggerStack,
4
4
  selectionFromItem,
5
5
  triggerSummary
6
- } from "./chunk-7IPINZHT.js";
6
+ } from "./chunk-IRBOKMF5.js";
7
7
  import {
8
8
  Archive,
9
9
  BookOpen,
@@ -34,7 +34,6 @@ import {
34
34
  Play,
35
35
  Plug,
36
36
  Plus,
37
- RefreshCw,
38
37
  Rocket,
39
38
  RotateCcw,
40
39
  Scissors,
@@ -48,7 +47,11 @@ import {
48
47
  cn,
49
48
  cn2,
50
49
  dist_exports2 as dist_exports,
50
+ getInputHistoryGeneration,
51
+ getPluginSuggestionItems,
51
52
  notifyChat,
53
+ onInputCachesReset,
54
+ pluginRefsForSend,
52
55
  sendToSession,
53
56
  useBladeClient,
54
57
  useChatEnvironment,
@@ -59,7 +62,7 @@ import {
59
62
  usePortalContainer,
60
63
  useSessionHandle,
61
64
  useSessionState
62
- } from "./chunk-XULCQP3Q.js";
65
+ } from "./chunk-UKQFSXGC.js";
63
66
  import {
64
67
  __commonJS,
65
68
  __require,
@@ -89,7 +92,7 @@ var require_use_sync_external_store_shim_development = __commonJS({
89
92
  inst: { value, getSnapshot }
90
93
  });
91
94
  var inst = cachedValue[0].inst, forceUpdate = cachedValue[1];
92
- useLayoutEffect2(
95
+ useLayoutEffect3(
93
96
  function() {
94
97
  inst.value = value;
95
98
  inst.getSnapshot = getSnapshot;
@@ -123,7 +126,7 @@ var require_use_sync_external_store_shim_development = __commonJS({
123
126
  return getSnapshot();
124
127
  }
125
128
  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
126
- var React2 = __require("react"), objectIs = "function" === typeof Object.is ? Object.is : is, useState12 = React2.useState, useEffect10 = React2.useEffect, useLayoutEffect2 = React2.useLayoutEffect, useDebugValue3 = React2.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
129
+ var React2 = __require("react"), objectIs = "function" === typeof Object.is ? Object.is : is, useState12 = React2.useState, useEffect10 = React2.useEffect, useLayoutEffect3 = React2.useLayoutEffect, useDebugValue3 = React2.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
127
130
  exports.useSyncExternalStore = void 0 !== React2.useSyncExternalStore ? React2.useSyncExternalStore : shim;
128
131
  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
129
132
  })();
@@ -151,9 +154,9 @@ var require_with_selector_development = __commonJS({
151
154
  return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
152
155
  }
153
156
  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
154
- var React2 = __require("react"), shim = require_shim(), objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore5 = shim.useSyncExternalStore, useRef9 = React2.useRef, useEffect10 = React2.useEffect, useMemo9 = React2.useMemo, useDebugValue3 = React2.useDebugValue;
157
+ var React2 = __require("react"), shim = require_shim(), objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore5 = shim.useSyncExternalStore, useRef10 = React2.useRef, useEffect10 = React2.useEffect, useMemo9 = React2.useMemo, useDebugValue3 = React2.useDebugValue;
155
158
  exports.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
156
- var instRef = useRef9(null);
159
+ var instRef = useRef10(null);
157
160
  if (null === instRef.current) {
158
161
  var inst = { hasValue: false, value: null };
159
162
  instRef.current = inst;
@@ -290,19 +293,6 @@ function useRichInputServices() {
290
293
 
291
294
  // src/rich-input/lib/client-query.ts
292
295
  import { useCallback, useEffect, useSyncExternalStore as useSyncExternalStore2 } from "react";
293
-
294
- // src/chat/runtime/input-cache-reset.ts
295
- var resetters = /* @__PURE__ */ new WeakMap();
296
- function onInputCachesReset(client, reset2) {
297
- let set = resetters.get(client);
298
- if (!set) {
299
- set = /* @__PURE__ */ new Set();
300
- resetters.set(client, set);
301
- }
302
- set.add(reset2);
303
- }
304
-
305
- // src/rich-input/lib/client-query.ts
306
296
  var EMPTY = { data: void 0, error: null, isLoading: false, isFetching: false };
307
297
  var caches = /* @__PURE__ */ new WeakMap();
308
298
  function entryFor(client, key) {
@@ -18931,6 +18921,237 @@ var Mention = Node3.create({
18931
18921
  });
18932
18922
  var index_default = Mention;
18933
18923
 
18924
+ // src/rich-input/extensions/plugin-mention.ts
18925
+ function isPluginSuggestionError(value) {
18926
+ return Boolean(value && typeof value === "object" && value.kind === "pluginError");
18927
+ }
18928
+ function isPluginSuggestionItem(value) {
18929
+ return Boolean(value && typeof value === "object" && value.kind === "plugin");
18930
+ }
18931
+ var PluginMention = index_default.extend({
18932
+ name: "pluginMention",
18933
+ addOptions() {
18934
+ return {
18935
+ ...this.parent?.(),
18936
+ deleteTriggerWithBackspace: true,
18937
+ suggestions: this.parent?.().suggestions ?? [],
18938
+ suggestion: { ...this.parent?.().suggestion, char: "@" },
18939
+ HTMLAttributes: { class: "file-mention-pill" },
18940
+ renderText: ({ node }) => `@${node.attrs.label}`,
18941
+ renderHTML: ({ node }) => ["span", { class: "file-mention-pill", "data-plugin-ref": JSON.stringify(node.attrs) }, `@${node.attrs.label}`]
18942
+ };
18943
+ },
18944
+ addAttributes() {
18945
+ return Object.fromEntries(["provider", "plugin", "server", "id", "label"].map((key) => [key, {
18946
+ default: key === "provider" ? "plugin" : "",
18947
+ parseHTML: (element) => {
18948
+ try {
18949
+ return JSON.parse(element.getAttribute("data-plugin-ref") ?? "{}")[key] ?? "";
18950
+ } catch {
18951
+ return "";
18952
+ }
18953
+ }
18954
+ }]));
18955
+ },
18956
+ parseHTML() {
18957
+ return [{ tag: "span[data-plugin-ref]" }];
18958
+ },
18959
+ addProseMirrorPlugins() {
18960
+ return [];
18961
+ }
18962
+ });
18963
+
18964
+ // src/rich-input/lib/composer-content.ts
18965
+ import { normalizePluginRefs, normalizeTopicAssetRefs } from "@blade-hq/agent-client";
18966
+ function serializeEditorContent(node) {
18967
+ if (!node) return "";
18968
+ if (node.type === "text") {
18969
+ return node.text ?? "";
18970
+ }
18971
+ if (node.type === "hardBreak") {
18972
+ return "\n";
18973
+ }
18974
+ if (node.type === "fileMention") {
18975
+ const path = typeof node.attrs?.path === "string" ? node.attrs.path : "";
18976
+ return path ? `\`${path}\`` : "";
18977
+ }
18978
+ if (node.type === "skillMention") {
18979
+ const skillId = typeof node.attrs?.skillId === "string" ? node.attrs.skillId : "";
18980
+ return skillId ? `<skill>${skillId}</skill>` : "";
18981
+ }
18982
+ if (node.type === "workflowMention") {
18983
+ const name = typeof node.attrs?.name === "string" ? node.attrs.name : "";
18984
+ return name ? `\u8FD0\u884C\u5DE5\u4F5C\u6D41 ${name}` : "";
18985
+ }
18986
+ if (node.type === "pluginMention") return `@${node.attrs?.label ?? ""}`;
18987
+ if (node.type === "topicAssetMention") {
18988
+ const path = typeof node.attrs?.path === "string" ? node.attrs.path : "";
18989
+ return path ? `@${path}` : "";
18990
+ }
18991
+ if (node.type === "kbMention") {
18992
+ const name = kbMentionName(node);
18993
+ return name ? `@${name}` : "";
18994
+ }
18995
+ const children = (node.content ?? []).map((child) => serializeEditorContent(child));
18996
+ if (node.type === "doc") {
18997
+ return children.join("\n");
18998
+ }
18999
+ return children.join("");
19000
+ }
19001
+ function scanLeadingSkillMention(node, seenContent) {
19002
+ if (!node) {
19003
+ return { skill: null, seenContent };
19004
+ }
19005
+ if (node.type === "text") {
19006
+ return { skill: null, seenContent: seenContent || /\S/.test(node.text ?? "") };
19007
+ }
19008
+ if (node.type === "hardBreak" || node.type === "fileMention" || node.type === "workflowMention") {
19009
+ return { skill: null, seenContent: true };
19010
+ }
19011
+ if (node.type === "pluginMention") return { skill: null, seenContent };
19012
+ if (node.type === "topicAssetMention") return { skill: null, seenContent };
19013
+ if (node.type === "kbMention") {
19014
+ return { skill: null, seenContent };
19015
+ }
19016
+ if (node.type === "skillMention") {
19017
+ const skillId = typeof node.attrs?.skillId === "string" ? node.attrs.skillId : null;
19018
+ return {
19019
+ skill: seenContent || !skillId ? null : {
19020
+ skillId,
19021
+ local: node.attrs?.local !== false,
19022
+ installed: node.attrs?.installed !== false
19023
+ },
19024
+ seenContent: true
19025
+ };
19026
+ }
19027
+ let nextSeenContent = seenContent;
19028
+ for (const child of node.content ?? []) {
19029
+ const result = scanLeadingSkillMention(child, nextSeenContent);
19030
+ if (result.skill) {
19031
+ return result;
19032
+ }
19033
+ nextSeenContent = result.seenContent;
19034
+ }
19035
+ return { skill: null, seenContent: nextSeenContent };
19036
+ }
19037
+ function findLeadingSkillMention(node) {
19038
+ return scanLeadingSkillMention(node, false).skill;
19039
+ }
19040
+ function kbMentionName(node) {
19041
+ const name = typeof node.attrs?.name === "string" ? node.attrs.name.trim() : "";
19042
+ if (name) return name;
19043
+ const kbId = node.attrs?.kbId;
19044
+ return typeof kbId === "number" && kbId > 0 ? `\u77E5\u8BC6\u5E93 #${kbId}` : "";
19045
+ }
19046
+ function collectKbMentions(node) {
19047
+ const result = [];
19048
+ const seen = /* @__PURE__ */ new Set();
19049
+ const visit = (current) => {
19050
+ if (!current) return;
19051
+ if (current.type === "kbMention") {
19052
+ const kbId = current.attrs?.kbId;
19053
+ if (typeof kbId === "number" && Number.isInteger(kbId) && kbId > 0 && !seen.has(kbId)) {
19054
+ seen.add(kbId);
19055
+ result.push({ kbId, name: kbMentionName(current) });
19056
+ }
19057
+ return;
19058
+ }
19059
+ for (const child of current.content ?? []) visit(child);
19060
+ };
19061
+ visit(node);
19062
+ return result;
19063
+ }
19064
+ function buildEditorDocumentWithKbMentions(text, kbMentions) {
19065
+ return {
19066
+ type: "doc",
19067
+ content: text.split("\n").map((line) => ({
19068
+ type: "paragraph",
19069
+ content: line ? buildLineContentWithKbMentions(line, kbMentions) : []
19070
+ }))
19071
+ };
19072
+ }
19073
+ function buildLineContentWithKbMentions(line, kbMentions) {
19074
+ if (kbMentions.length === 0) {
19075
+ return [{ type: "text", text: line }];
19076
+ }
19077
+ const matches2 = [];
19078
+ for (const mention of kbMentions) {
19079
+ if (!mention.name) continue;
19080
+ const marker = `@${mention.name}`;
19081
+ const index = line.indexOf(marker);
19082
+ if (index === -1) continue;
19083
+ if (matches2.some((m) => index < m.end && index + marker.length > m.start)) continue;
19084
+ matches2.push({ start: index, end: index + marker.length, kbId: mention.kbId, name: mention.name });
19085
+ }
19086
+ if (matches2.length === 0) {
19087
+ return [{ type: "text", text: line }];
19088
+ }
19089
+ matches2.sort((a, b) => a.start - b.start);
19090
+ const content = [];
19091
+ let cursor = 0;
19092
+ for (const match of matches2) {
19093
+ if (match.start > cursor) {
19094
+ content.push({ type: "text", text: line.slice(cursor, match.start) });
19095
+ }
19096
+ content.push({ type: "kbMention", attrs: { kbId: match.kbId, name: match.name } });
19097
+ cursor = match.end;
19098
+ }
19099
+ if (cursor < line.length) {
19100
+ content.push({ type: "text", text: line.slice(cursor) });
19101
+ }
19102
+ return content;
19103
+ }
19104
+ function collectTopicAssetMentions(node) {
19105
+ const refs = [];
19106
+ const visit = (current) => {
19107
+ if (!current) return;
19108
+ if (current.type === "topicAssetMention") refs.push(current.attrs);
19109
+ for (const child of current.content ?? []) visit(child);
19110
+ };
19111
+ visit(node);
19112
+ return normalizeTopicAssetRefs(refs);
19113
+ }
19114
+ function buildEditorDocumentWithMentions(text, kbMentions = [], topicAssetRefs = []) {
19115
+ const doc3 = buildEditorDocumentWithKbMentions(text, kbMentions);
19116
+ const replace2 = (node) => {
19117
+ if (node.type !== "text") return [{ ...node, ...node.content ? { content: node.content.flatMap(replace2) } : {} }];
19118
+ let nodes = [node];
19119
+ for (const ref of topicAssetRefs) {
19120
+ nodes = nodes.flatMap((part) => {
19121
+ if (part.type !== "text" || !part.text) return [part];
19122
+ const marker = `@${ref.path}`;
19123
+ const index = part.text.indexOf(marker);
19124
+ if (index < 0) return [part];
19125
+ return [
19126
+ ...index ? [{ type: "text", text: part.text.slice(0, index) }] : [],
19127
+ { type: "topicAssetMention", attrs: { topic_id: ref.topic_id, path: ref.path } },
19128
+ ...index + marker.length < part.text.length ? [{ type: "text", text: part.text.slice(index + marker.length) }] : []
19129
+ ];
19130
+ });
19131
+ }
19132
+ return nodes;
19133
+ };
19134
+ return replace2(doc3)[0];
19135
+ }
19136
+ function retainTopicAssetMentions(node, topicId) {
19137
+ return {
19138
+ ...node,
19139
+ ...node.content ? {
19140
+ content: node.content.filter((child) => child.type !== "topicAssetMention" || child.attrs?.topic_id === topicId).map((child) => retainTopicAssetMentions(child, topicId))
19141
+ } : {}
19142
+ };
19143
+ }
19144
+ function collectPluginMentions(node) {
19145
+ const refs = [];
19146
+ const visit = (current) => {
19147
+ if (!current) return;
19148
+ if (current.type === "pluginMention") refs.push(current.attrs);
19149
+ current.content?.forEach(visit);
19150
+ };
19151
+ visit(node);
19152
+ return normalizePluginRefs(refs);
19153
+ }
19154
+
18934
19155
  // src/rich-input/extensions/topic-asset-mention.ts
18935
19156
  function isTopicAssetSuggestionItem(value) {
18936
19157
  return typeof value === "object" && value !== null && value.kind === "topicAsset";
@@ -18969,7 +19190,7 @@ var TopicAssetMention = index_default.extend({
18969
19190
  });
18970
19191
 
18971
19192
  // src/chat/runtime/composer-channels.ts
18972
- import { normalizeTopicAssetRefs } from "@blade-hq/agent-client";
19193
+ import { normalizeTopicAssetRefs as normalizeTopicAssetRefs2 } from "@blade-hq/agent-client";
18973
19194
  import { useSyncExternalStore as useSyncExternalStore3 } from "react";
18974
19195
  function buildSignalId() {
18975
19196
  if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
@@ -19007,7 +19228,7 @@ function consume(key, sessionId) {
19007
19228
  var composerChannels = {
19008
19229
  getState: () => state2,
19009
19230
  addTopicAssetReference(sessionId, ref) {
19010
- setState((current) => ({ ...current, topicAssetReferences: { ...current.topicAssetReferences, [sessionId]: normalizeTopicAssetRefs([...current.topicAssetReferences[sessionId] ?? [], ref]) } }));
19231
+ setState((current) => ({ ...current, topicAssetReferences: { ...current.topicAssetReferences, [sessionId]: normalizeTopicAssetRefs2([...current.topicAssetReferences[sessionId] ?? [], ref]) } }));
19011
19232
  },
19012
19233
  consumeTopicAssetReferences: (sessionId) => consume("topicAssetReferences", sessionId),
19013
19234
  subscribe(listener) {
@@ -19138,14 +19359,6 @@ function workflowParamsTail(item) {
19138
19359
  function workflowRunText(item) {
19139
19360
  return `\u8FD0\u884C\u5DE5\u4F5C\u6D41 ${item.name}${workflowParamsTail(item)}`.trimEnd();
19140
19361
  }
19141
- var COMMANDS = [
19142
- {
19143
- type: "command",
19144
- id: "resync",
19145
- label: "\u540C\u6B65\u6280\u80FD",
19146
- description: "\u4ECE\u914D\u7F6E\u7684\u6280\u80FD\u76EE\u5F55\u62C9\u53D6\u6700\u65B0\u5185\u5BB9"
19147
- }
19148
- ];
19149
19362
  var skillMentionSuggestionKey = new PluginKey("skillMentionSuggestion");
19150
19363
  function getSkillMentionName(attrs) {
19151
19364
  return attrs.displayName || attrs.skillId || "";
@@ -25265,7 +25478,7 @@ var index_default2 = StarterKit;
25265
25478
  // src/rich-input/ChatInput.tsx
25266
25479
  import {
25267
25480
  useEffect as useEffect9,
25268
- useRef as useRef8,
25481
+ useRef as useRef9,
25269
25482
  useState as useState11
25270
25483
  } from "react";
25271
25484
  import { createRoot } from "react-dom/client";
@@ -25972,8 +26185,6 @@ function HoverPanel({
25972
26185
  }
25973
26186
  function SkillStatusBar({
25974
26187
  sessionId,
25975
- onResync,
25976
- isResyncing = false,
25977
26188
  vertical = false,
25978
26189
  className,
25979
26190
  innerClassName,
@@ -26080,17 +26291,6 @@ function SkillStatusBar({
26080
26291
  /* @__PURE__ */ jsx14("span", { className: `inline-block h-1.5 w-1.5 rounded-full ${item.dotClass}` }),
26081
26292
  item.key === "loaded" ? /* @__PURE__ */ jsxs5("div", { className: "group/skill relative flex items-center gap-1.5", children: [
26082
26293
  /* @__PURE__ */ jsx14("span", { className: "font-mono", children: item.text }),
26083
- onResync ? /* @__PURE__ */ jsx14(
26084
- "button",
26085
- {
26086
- type: "button",
26087
- onClick: onResync,
26088
- disabled: isResyncing,
26089
- "aria-label": "\u540C\u6B65\u6280\u80FD",
26090
- className: "inline-flex h-5 w-5 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--background))] text-[hsl(var(--muted-foreground))] transition-colors hover:border-[hsl(var(--ring))] hover:text-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50",
26091
- children: /* @__PURE__ */ jsx14(RefreshCw, { size: 12, className: isResyncing ? "animate-spin" : "" })
26092
- }
26093
- ) : null,
26094
26294
  loadedReady && sessionSkills.length > 0 ? /* @__PURE__ */ jsx14(HoverPanel, { title: "\u5DF2\u52A0\u8F7D\u6280\u80FD", children: sessionSkills.length > 0 ? /* @__PURE__ */ jsx14("div", { className: "max-h-40 overflow-y-auto", children: sessionSkills.map((skill) => /* @__PURE__ */ jsxs5("div", { className: "flex items-start gap-2 py-1 leading-relaxed", children: [
26095
26295
  /* @__PURE__ */ jsx14("span", { className: "mt-1.5 inline-block h-2 w-2 shrink-0 rounded-full border border-[hsl(var(--swf-success))] bg-transparent" }),
26096
26296
  /* @__PURE__ */ jsx14("span", { className: "break-words", children: skillDisplayName(skill) })
@@ -26719,200 +26919,186 @@ function useVoiceInput(options) {
26719
26919
  return { status, error, level, start, stop };
26720
26920
  }
26721
26921
 
26722
- // src/rich-input/lib/composer-content.ts
26723
- import { normalizeTopicAssetRefs as normalizeTopicAssetRefs2 } from "@blade-hq/agent-client";
26724
- function serializeEditorContent(node) {
26725
- if (!node) return "";
26726
- if (node.type === "text") {
26727
- return node.text ?? "";
26728
- }
26729
- if (node.type === "hardBreak") {
26730
- return "\n";
26731
- }
26732
- if (node.type === "fileMention") {
26733
- const path = typeof node.attrs?.path === "string" ? node.attrs.path : "";
26734
- return path ? `\`${path}\`` : "";
26735
- }
26736
- if (node.type === "skillMention") {
26737
- const skillId = typeof node.attrs?.skillId === "string" ? node.attrs.skillId : "";
26738
- return skillId ? `<skill>${skillId}</skill>` : "";
26739
- }
26740
- if (node.type === "workflowMention") {
26741
- const name = typeof node.attrs?.name === "string" ? node.attrs.name : "";
26742
- return name ? `\u8FD0\u884C\u5DE5\u4F5C\u6D41 ${name}` : "";
26743
- }
26744
- if (node.type === "topicAssetMention") {
26745
- const path = typeof node.attrs?.path === "string" ? node.attrs.path : "";
26746
- return path ? `@${path}` : "";
26747
- }
26748
- if (node.type === "kbMention") {
26749
- const name = kbMentionName(node);
26750
- return name ? `@${name}` : "";
26751
- }
26752
- const children = (node.content ?? []).map((child) => serializeEditorContent(child));
26753
- if (node.type === "doc") {
26754
- return children.join("\n");
26755
- }
26756
- return children.join("");
26757
- }
26758
- function scanLeadingSkillMention(node, seenContent) {
26759
- if (!node) {
26760
- return { skill: null, seenContent };
26761
- }
26762
- if (node.type === "text") {
26763
- return { skill: null, seenContent: seenContent || /\S/.test(node.text ?? "") };
26764
- }
26765
- if (node.type === "hardBreak" || node.type === "fileMention" || node.type === "workflowMention") {
26766
- return { skill: null, seenContent: true };
26767
- }
26768
- if (node.type === "topicAssetMention") return { skill: null, seenContent };
26769
- if (node.type === "kbMention") {
26770
- return { skill: null, seenContent };
26771
- }
26772
- if (node.type === "skillMention") {
26773
- const skillId = typeof node.attrs?.skillId === "string" ? node.attrs.skillId : null;
26774
- return {
26775
- skill: seenContent || !skillId ? null : {
26776
- skillId,
26777
- local: node.attrs?.local !== false,
26778
- installed: node.attrs?.installed !== false
26779
- },
26780
- seenContent: true
26781
- };
26782
- }
26783
- let nextSeenContent = seenContent;
26784
- for (const child of node.content ?? []) {
26785
- const result = scanLeadingSkillMention(child, nextSeenContent);
26786
- if (result.skill) {
26922
+ // src/rich-input/use-reference-candidates.ts
26923
+ import { useLayoutEffect as useLayoutEffect2, useRef as useRef8 } from "react";
26924
+
26925
+ // src/rich-input/lib/reference-candidates.ts
26926
+ function createReferenceCandidateController(getScope, sources, timeoutMs = KB_SUGGESTION_TIMEOUT_MS) {
26927
+ const requests = /* @__PURE__ */ new WeakMap();
26928
+ let current;
26929
+ const isCurrent = (request) => {
26930
+ const scope = getScope();
26931
+ return current === request && request.scope.length === scope.length && request.scope.every((part, index) => Object.is(part, scope[index]));
26932
+ };
26933
+ const cancel = () => {
26934
+ const previous = current;
26935
+ current = void 0;
26936
+ previous?.finish();
26937
+ previous?.listener?.({
26938
+ groups: { plugins: [], kbs: [], topics: [], files: [] },
26939
+ items: [],
26940
+ loading: { plugins: false, kbs: false, topics: false, files: false },
26941
+ errors: {}
26942
+ });
26943
+ if (previous) previous.listener = void 0;
26944
+ };
26945
+ return {
26946
+ cancel,
26947
+ query(query) {
26948
+ cancel();
26949
+ const snapshot = {
26950
+ groups: { plugins: [], kbs: [], topics: [], files: [] },
26951
+ items: [],
26952
+ loading: { plugins: Boolean(sources.plugins), kbs: true, topics: true, files: true },
26953
+ errors: {}
26954
+ };
26955
+ let resolve;
26956
+ let finished = false;
26957
+ const result = new Promise((done) => {
26958
+ resolve = done;
26959
+ });
26960
+ const request = {
26961
+ scope: [...getScope()],
26962
+ snapshot,
26963
+ finish: () => {
26964
+ if (finished) return;
26965
+ finished = true;
26966
+ clearTimeout(timer);
26967
+ const items = isCurrent(request) ? snapshot.items : [];
26968
+ requests.set(items, request);
26969
+ resolve(items);
26970
+ }
26971
+ };
26972
+ current = request;
26973
+ const timer = setTimeout(request.finish, timeoutMs);
26974
+ const publish = () => {
26975
+ if (!isCurrent(request)) return;
26976
+ snapshot.items = [...snapshot.groups.plugins, ...snapshot.groups.kbs, ...snapshot.groups.topics, ...snapshot.groups.files];
26977
+ request.listener?.(snapshot);
26978
+ if (!Object.values(snapshot.loading).some(Boolean)) request.finish();
26979
+ };
26980
+ for (const key of ["plugins", "kbs", "topics", "files"]) {
26981
+ void Promise.resolve().then(async () => {
26982
+ if (key === "plugins") await new Promise((done) => setTimeout(done, 150));
26983
+ return isCurrent(request) ? sources[key]?.(query) ?? [] : [];
26984
+ }).then((items) => {
26985
+ if (!isCurrent(request)) return;
26986
+ Object.assign(snapshot.groups, { [key]: items });
26987
+ snapshot.loading[key] = false;
26988
+ publish();
26989
+ }, (error) => {
26990
+ if (!isCurrent(request)) return;
26991
+ snapshot.errors[key] = error;
26992
+ snapshot.loading[key] = false;
26993
+ publish();
26994
+ });
26995
+ }
26787
26996
  return result;
26788
- }
26789
- nextSeenContent = result.seenContent;
26790
- }
26791
- return { skill: null, seenContent: nextSeenContent };
26792
- }
26793
- function findLeadingSkillMention(node) {
26794
- return scanLeadingSkillMention(node, false).skill;
26795
- }
26796
- function kbMentionName(node) {
26797
- const name = typeof node.attrs?.name === "string" ? node.attrs.name.trim() : "";
26798
- if (name) return name;
26799
- const kbId = node.attrs?.kbId;
26800
- return typeof kbId === "number" && kbId > 0 ? `\u77E5\u8BC6\u5E93 #${kbId}` : "";
26801
- }
26802
- function collectKbMentions(node) {
26803
- const result = [];
26804
- const seen = /* @__PURE__ */ new Set();
26805
- const visit = (current) => {
26806
- if (!current) return;
26807
- if (current.type === "kbMention") {
26808
- const kbId = current.attrs?.kbId;
26809
- if (typeof kbId === "number" && Number.isInteger(kbId) && kbId > 0 && !seen.has(kbId)) {
26810
- seen.add(kbId);
26811
- result.push({ kbId, name: kbMentionName(current) });
26997
+ },
26998
+ /** Bind by result identity, never by label/query: closing and reopening @ is a new request. */
26999
+ observe(items, listener) {
27000
+ const request = requests.get(items);
27001
+ if (!request || !isCurrent(request)) {
27002
+ listener({
27003
+ groups: { plugins: [], kbs: [], topics: [], files: [] },
27004
+ items: [],
27005
+ loading: { plugins: false, kbs: false, topics: false, files: false },
27006
+ errors: {}
27007
+ });
27008
+ return;
26812
27009
  }
26813
- return;
27010
+ request.listener = listener;
27011
+ listener(request.snapshot);
26814
27012
  }
26815
- for (const child of current.content ?? []) visit(child);
26816
- };
26817
- visit(node);
26818
- return result;
26819
- }
26820
- function buildEditorDocumentWithKbMentions(text, kbMentions) {
26821
- return {
26822
- type: "doc",
26823
- content: text.split("\n").map((line) => ({
26824
- type: "paragraph",
26825
- content: line ? buildLineContentWithKbMentions(line, kbMentions) : []
26826
- }))
26827
27013
  };
26828
27014
  }
26829
- function buildLineContentWithKbMentions(line, kbMentions) {
26830
- if (kbMentions.length === 0) {
26831
- return [{ type: "text", text: line }];
26832
- }
26833
- const matches2 = [];
26834
- for (const mention of kbMentions) {
26835
- if (!mention.name) continue;
26836
- const marker = `@${mention.name}`;
26837
- const index = line.indexOf(marker);
26838
- if (index === -1) continue;
26839
- if (matches2.some((m) => index < m.end && index + marker.length > m.start)) continue;
26840
- matches2.push({ start: index, end: index + marker.length, kbId: mention.kbId, name: mention.name });
26841
- }
26842
- if (matches2.length === 0) {
26843
- return [{ type: "text", text: line }];
26844
- }
26845
- matches2.sort((a, b) => a.start - b.start);
26846
- const content = [];
26847
- let cursor = 0;
26848
- for (const match of matches2) {
26849
- if (match.start > cursor) {
26850
- content.push({ type: "text", text: line.slice(cursor, match.start) });
26851
- }
26852
- content.push({ type: "kbMention", attrs: { kbId: match.kbId, name: match.name } });
26853
- cursor = match.end;
26854
- }
26855
- if (cursor < line.length) {
26856
- content.push({ type: "text", text: line.slice(cursor) });
26857
- }
26858
- return content;
26859
- }
26860
- function collectTopicAssetMentions(node) {
26861
- const refs = [];
26862
- const visit = (current) => {
26863
- if (!current) return;
26864
- if (current.type === "topicAssetMention") refs.push(current.attrs);
26865
- for (const child of current.content ?? []) visit(child);
26866
- };
26867
- visit(node);
26868
- return normalizeTopicAssetRefs2(refs);
27015
+
27016
+ // src/rich-input/use-reference-candidates.ts
27017
+ function useReferenceCandidates(getScope, sources) {
27018
+ const readScope = useEffectEvent(getScope);
27019
+ const plugins = useEffectEvent((query) => sources.plugins?.(query) ?? Promise.resolve([]));
27020
+ const kbs = useEffectEvent(sources.kbs);
27021
+ const topics = useEffectEvent(sources.topics);
27022
+ const files = useEffectEvent(sources.files);
27023
+ const ref = useRef8(null);
27024
+ if (!ref.current) ref.current = createReferenceCandidateController(readScope, { plugins, kbs, topics, files });
27025
+ const controller = ref.current;
27026
+ const [client, identity, session, topic] = getScope();
27027
+ useLayoutEffect2(() => onInputCachesReset(client, controller.cancel), [client, controller]);
27028
+ useLayoutEffect2(() => () => controller.cancel(), [controller, client, identity, session, topic]);
27029
+ return controller;
26869
27030
  }
26870
- function buildEditorDocumentWithMentions(text, kbMentions = [], topicAssetRefs = []) {
26871
- const doc3 = buildEditorDocumentWithKbMentions(text, kbMentions);
26872
- const replace2 = (node) => {
26873
- if (node.type !== "text") return [{ ...node, ...node.content ? { content: node.content.flatMap(replace2) } : {} }];
26874
- let nodes = [node];
26875
- for (const ref of topicAssetRefs) {
26876
- nodes = nodes.flatMap((part) => {
26877
- if (part.type !== "text" || !part.text) return [part];
26878
- const marker = `@${ref.path}`;
26879
- const index = part.text.indexOf(marker);
26880
- if (index < 0) return [part];
26881
- return [
26882
- ...index ? [{ type: "text", text: part.text.slice(0, index) }] : [],
26883
- { type: "topicAssetMention", attrs: { topic_id: ref.topic_id, path: ref.path } },
26884
- ...index + marker.length < part.text.length ? [{ type: "text", text: part.text.slice(index + marker.length) }] : []
26885
- ];
26886
- });
26887
- }
26888
- return nodes;
27031
+
27032
+ // src/rich-input/use-input-history.ts
27033
+ import { useCallback as useCallback4, useEffect as useEffect8, useMemo as useMemo7, useState as useState8 } from "react";
27034
+
27035
+ // src/rich-input/lib/input-history-document.ts
27036
+ import { normalizeTopicAssetRefs as normalizeTopicAssetRefs3 } from "@blade-hq/agent-client";
27037
+ function copyEditorDocument(value) {
27038
+ const attributes = {
27039
+ pluginMention: { provider: "string", plugin: "string", server: "string", id: "string", label: "string" },
27040
+ fileMention: { path: "string", name: "string" },
27041
+ kbMention: { kbId: "number", name: "string" },
27042
+ topicAssetMention: { topic_id: "string", path: "string" },
27043
+ skillMention: { skillId: "string", displayName: "string", description: "string", local: "boolean", installed: "boolean" },
27044
+ workflowMention: { name: "string" }
26889
27045
  };
26890
- return replace2(doc3)[0];
26891
- }
26892
- function retainTopicAssetMentions(node, topicId) {
26893
- return {
26894
- ...node,
26895
- ...node.content ? {
26896
- content: node.content.filter((child) => child.type !== "topicAssetMention" || child.attrs?.topic_id === topicId).map((child) => retainTopicAssetMentions(child, topicId))
26897
- } : {}
27046
+ const copy2 = (input, parent) => {
27047
+ if (!input || typeof input !== "object" || Array.isArray(input)) return null;
27048
+ const node = input;
27049
+ const type = node.type;
27050
+ if (!type || (parent === null ? type !== "doc" : parent === "doc" ? type !== "paragraph" : !["text", "hardBreak", ...Object.keys(attributes)].includes(type))) return null;
27051
+ if (type === "doc" || type === "paragraph") {
27052
+ if (!Array.isArray(node.content) && node.content !== void 0) return null;
27053
+ const content = [];
27054
+ for (const child of node.content ?? []) {
27055
+ const copied = copy2(child, type);
27056
+ if (!copied) return null;
27057
+ content.push(copied);
27058
+ }
27059
+ return { type, content };
27060
+ }
27061
+ if (node.content !== void 0) return null;
27062
+ if (type === "text") {
27063
+ if (typeof node.text !== "string" || !node.text) return null;
27064
+ const marks = node.marks?.filter((mark) => ["bold", "italic", "strike", "code", "underline"].includes(mark.type)).map((mark) => ({ type: mark.type }));
27065
+ return { type, text: node.text, ...marks?.length ? { marks } : {} };
27066
+ }
27067
+ if (type === "hardBreak") return { type };
27068
+ const attrs = {};
27069
+ if (!node.attrs || typeof node.attrs !== "object" || Array.isArray(node.attrs)) return null;
27070
+ for (const [key, expected] of Object.entries(attributes[type])) {
27071
+ const attr = node.attrs[key];
27072
+ if (attr === void 0) continue;
27073
+ if (expected === "string" && typeof attr !== "string" || expected === "number" && typeof attr !== "number" || expected === "boolean" && typeof attr !== "boolean") return null;
27074
+ attrs[key] = attr;
27075
+ }
27076
+ if (type === "kbMention" && !(Number.isInteger(attrs.kbId) && attrs.kbId > 0)) return null;
27077
+ if (type === "topicAssetMention" && normalizeTopicAssetRefs3([attrs]).length !== 1) return null;
27078
+ return { type, attrs };
26898
27079
  };
27080
+ try {
27081
+ return copy2(value, null);
27082
+ } catch {
27083
+ return null;
27084
+ }
26899
27085
  }
26900
27086
 
26901
27087
  // src/rich-input/use-input-history.ts
26902
- import { normalizeTopicAssetRefs as normalizeTopicAssetRefs3 } from "@blade-hq/agent-client";
26903
- import { useCallback as useCallback4, useEffect as useEffect8, useMemo as useMemo7, useState as useState8 } from "react";
26904
27088
  var MAX_HISTORY_ENTRIES = 50;
27089
+ var HISTORY_VERSION = 2;
26905
27090
  function getStorageKey(sessionId) {
26906
27091
  return sessionId ? `input-history:${sessionId}` : null;
26907
27092
  }
26908
- function isKbMentionRef(value) {
26909
- return typeof value === "object" && value !== null && typeof value.kbId === "number" && typeof value.name === "string";
27093
+ function copyEntry(value) {
27094
+ if (!value || typeof value !== "object") return null;
27095
+ const entry = value;
27096
+ if (entry.version !== HISTORY_VERSION) return null;
27097
+ const document2 = copyEditorDocument(entry.document);
27098
+ return document2 ? { version: HISTORY_VERSION, document: document2 } : null;
26910
27099
  }
26911
- function isHistoryEntry(value) {
26912
- if (typeof value !== "object" || value === null) return false;
26913
- const candidate = value;
26914
- if (typeof candidate.text !== "string") return false;
26915
- return candidate.kbMentions === void 0 || Array.isArray(candidate.kbMentions) && candidate.kbMentions.every(isKbMentionRef);
27100
+ function emptyEntry() {
27101
+ return { version: HISTORY_VERSION, document: { type: "doc", content: [{ type: "paragraph", content: [] }] } };
26916
27102
  }
26917
27103
  function readEntries(storageKey) {
26918
27104
  if (typeof window === "undefined" || !storageKey) {
@@ -26927,24 +27113,38 @@ function readEntries(storageKey) {
26927
27113
  if (!Array.isArray(parsed)) {
26928
27114
  return [];
26929
27115
  }
26930
- return parsed.filter(isHistoryEntry).map((entry) => ({ text: entry.text, kbMentions: entry.kbMentions ?? [], topicAssetRefs: normalizeTopicAssetRefs3(entry.topicAssetRefs) })).slice(0, MAX_HISTORY_ENTRIES);
27116
+ return parsed.flatMap((value) => {
27117
+ const entry = copyEntry(value);
27118
+ return entry ? [entry] : [];
27119
+ }).slice(0, MAX_HISTORY_ENTRIES);
26931
27120
  } catch {
26932
27121
  return [];
26933
27122
  }
26934
27123
  }
26935
- function useInputHistory(sessionId) {
27124
+ function useInputHistory(sessionId, client) {
27125
+ const [generation, setGeneration] = useState8(getInputHistoryGeneration);
26936
27126
  const storageKey = useMemo7(() => getStorageKey(sessionId), [sessionId]);
26937
27127
  const [entries, setEntries] = useState8([]);
26938
27128
  const [cursor, setCursor] = useState8(null);
26939
- const [draft, setDraft] = useState8("");
27129
+ const [draft, setDraft] = useState8(emptyEntry);
26940
27130
  useEffect8(() => {
27131
+ setGeneration(getInputHistoryGeneration());
26941
27132
  setEntries(readEntries(storageKey));
26942
27133
  setCursor(null);
26943
- setDraft("");
26944
- }, [storageKey]);
27134
+ setDraft(emptyEntry());
27135
+ }, [storageKey, client]);
27136
+ useEffect8(() => {
27137
+ if (!client) return;
27138
+ return onInputCachesReset(client, () => {
27139
+ setGeneration(getInputHistoryGeneration());
27140
+ setEntries([]);
27141
+ setCursor(null);
27142
+ setDraft(emptyEntry());
27143
+ });
27144
+ }, [client]);
26945
27145
  const persistEntries = useCallback4(
26946
27146
  (nextEntries) => {
26947
- if (typeof window === "undefined" || !storageKey) {
27147
+ if (generation !== getInputHistoryGeneration() || typeof window === "undefined" || !storageKey) {
26948
27148
  return;
26949
27149
  }
26950
27150
  try {
@@ -26952,50 +27152,51 @@ function useInputHistory(sessionId) {
26952
27152
  } catch {
26953
27153
  }
26954
27154
  },
26955
- [storageKey]
27155
+ [storageKey, generation]
26956
27156
  );
26957
27157
  const addEntry = useCallback4(
26958
- (value, kbMentions = [], topicAssetRefs = []) => {
26959
- if (!value.trim()) {
26960
- return;
26961
- }
27158
+ (value) => {
27159
+ if (generation !== getInputHistoryGeneration()) return;
27160
+ const document2 = copyEditorDocument(value);
27161
+ if (!document2 || !serializeEditorContent(document2).trim()) return;
26962
27162
  setEntries((prev) => {
26963
- const nextEntries = [{ text: value, kbMentions, topicAssetRefs }, ...prev].slice(0, MAX_HISTORY_ENTRIES);
27163
+ if (generation !== getInputHistoryGeneration()) return prev;
27164
+ const nextEntries = [{ version: HISTORY_VERSION, document: document2 }, ...prev].slice(0, MAX_HISTORY_ENTRIES);
26964
27165
  persistEntries(nextEntries);
26965
27166
  return nextEntries;
26966
27167
  });
26967
27168
  setCursor(null);
26968
- setDraft("");
27169
+ setDraft(emptyEntry());
26969
27170
  },
26970
- [persistEntries]
27171
+ [persistEntries, generation]
26971
27172
  );
26972
27173
  const navigateUp = useCallback4(
26973
- (currentDraft = "") => {
26974
- if (entries.length === 0) {
27174
+ (currentDraft = emptyEntry().document) => {
27175
+ if (generation !== getInputHistoryGeneration() || entries.length === 0) {
26975
27176
  return null;
26976
27177
  }
26977
27178
  if (cursor == null) {
26978
- setDraft(currentDraft);
27179
+ setDraft(copyEntry({ version: HISTORY_VERSION, document: currentDraft }) ?? emptyEntry());
26979
27180
  }
26980
27181
  const nextCursor = cursor == null ? 0 : Math.min(cursor + 1, entries.length - 1);
26981
27182
  setCursor(nextCursor);
26982
- return entries[nextCursor] ?? null;
27183
+ return copyEntry(entries[nextCursor]);
26983
27184
  },
26984
- [cursor, entries]
27185
+ [cursor, entries, generation]
26985
27186
  );
26986
27187
  const navigateDown = useCallback4(() => {
26987
- if (cursor == null) {
27188
+ if (generation !== getInputHistoryGeneration() || cursor == null) {
26988
27189
  return null;
26989
27190
  }
26990
27191
  if (cursor <= 0) {
26991
27192
  setCursor(null);
26992
- return { text: draft, kbMentions: [] };
27193
+ return copyEntry(draft);
26993
27194
  }
26994
27195
  const nextCursor = cursor - 1;
26995
27196
  setCursor(nextCursor);
26996
- return entries[nextCursor] ?? { text: draft, kbMentions: [] };
26997
- }, [cursor, draft, entries]);
26998
- const currentEntry = cursor == null ? { text: draft, kbMentions: [] } : entries[cursor] ?? { text: draft, kbMentions: [] };
27197
+ return copyEntry(entries[nextCursor]) ?? copyEntry(draft);
27198
+ }, [cursor, draft, entries, generation]);
27199
+ const currentEntry = cursor == null ? copyEntry(draft) : copyEntry(entries[cursor]) ?? copyEntry(draft);
26999
27200
  return {
27000
27201
  addEntry,
27001
27202
  navigateUp,
@@ -27305,18 +27506,22 @@ var FileCompletionMenu = forwardRef2(
27305
27506
  () => scope === "userHome" ? { dirPath: query, filterQuery: "" } : parseSuggestionQuery(query),
27306
27507
  [query, scope]
27307
27508
  );
27308
- const { kbItems, fileItems, topicItems, topicError } = useMemo8(() => {
27509
+ const { pluginItems, pluginError, kbItems, fileItems, topicItems, topicError } = useMemo8(() => {
27510
+ let pluginError2;
27511
+ const pluginItems2 = [];
27309
27512
  const kbs = [];
27310
27513
  const files = [];
27311
27514
  const topicItems2 = [];
27312
27515
  let topicError2;
27313
27516
  for (const item of items) {
27314
- if (isTopicAssetSuggestionItem(item)) topicItems2.push(item);
27517
+ if (isPluginSuggestionError(item)) pluginError2 = item.message;
27518
+ else if (isPluginSuggestionItem(item)) pluginItems2.push(item);
27519
+ else if (isTopicAssetSuggestionItem(item)) topicItems2.push(item);
27315
27520
  else if (isTopicAssetSuggestionError(item)) topicError2 = item.message;
27316
27521
  else if (isKbSuggestionItem(item)) kbs.push(item);
27317
27522
  else files.push(item);
27318
27523
  }
27319
- return { kbItems: filterKbSuggestions(kbs, query), fileItems: files, topicItems: topicItems2, topicError: topicError2 };
27524
+ return { pluginItems: pluginItems2, pluginError: pluginError2, kbItems: filterKbSuggestions(kbs, query), fileItems: files, topicItems: topicItems2, topicError: topicError2 };
27320
27525
  }, [items, query]);
27321
27526
  return /* @__PURE__ */ jsx16(
27322
27527
  FileCompletionMenuContent,
@@ -27326,6 +27531,8 @@ var FileCompletionMenu = forwardRef2(
27326
27531
  editor,
27327
27532
  filterQuery,
27328
27533
  items: fileItems,
27534
+ pluginError,
27535
+ pluginItems,
27329
27536
  kbItems,
27330
27537
  topicItems,
27331
27538
  topicError,
@@ -27338,17 +27545,17 @@ var FileCompletionMenu = forwardRef2(
27338
27545
  );
27339
27546
  }
27340
27547
  );
27341
- var FileCompletionMenuContent = forwardRef2(function FileCompletionMenuContent2({ command: command2, editor, filterQuery, items, kbItems, topicItems, topicError, onExit, range, scope, sessionId }, ref) {
27548
+ var FileCompletionMenuContent = forwardRef2(function FileCompletionMenuContent2({ command: command2, editor, filterQuery, items, pluginItems, pluginError, kbItems, topicItems, topicError, onExit, range, scope, sessionId }, ref) {
27342
27549
  const [rawSelectedIndex, setRawSelectedIndex] = useState9(0);
27343
27550
  const filteredEntries = useMemo8(() => filterEntries(items, filterQuery), [filterQuery, items]);
27344
27551
  const navigableItems = useMemo8(
27345
- () => [...kbItems, ...topicItems, ...filteredEntries],
27346
- [filteredEntries, kbItems, topicItems]
27552
+ () => [...pluginItems, ...kbItems, ...topicItems, ...filteredEntries],
27553
+ [filteredEntries, pluginItems, kbItems, topicItems]
27347
27554
  );
27348
27555
  const selectedIndex = navigableItems.length === 0 ? 0 : Math.min(rawSelectedIndex, navigableItems.length - 1);
27349
27556
  const handleSelect = useCallback5(
27350
27557
  (entry) => {
27351
- if (isKbSuggestionItem(entry) || isTopicAssetSuggestionItem(entry)) {
27558
+ if (isPluginSuggestionItem(entry) || isKbSuggestionItem(entry) || isTopicAssetSuggestionItem(entry)) {
27352
27559
  command2(entry);
27353
27560
  return;
27354
27561
  }
@@ -27410,21 +27617,40 @@ var FileCompletionMenuContent = forwardRef2(function FileCompletionMenuContent2(
27410
27617
  element.scrollIntoView({ block: "nearest" });
27411
27618
  }
27412
27619
  };
27413
- const showGroupLabels = kbItems.length > 0 || topicItems.length > 0 || Boolean(topicError);
27620
+ const showGroupLabels = pluginItems.length > 0 || kbItems.length > 0 || topicItems.length > 0 || Boolean(topicError);
27414
27621
  const fileEmptyLabel = scope === "session" && !sessionId ? "\u6682\u65E0\u4F1A\u8BDD" : filteredEntries.length === 0 ? "\u6CA1\u6709\u6587\u4EF6" : null;
27415
27622
  return /* @__PURE__ */ jsxs7("div", { className: "max-h-64 overflow-y-auto rounded-xl border border-[hsl(var(--border))] bg-[hsl(var(--popover))] py-1 shadow-[var(--swf-shadow-overlay)]", children: [
27623
+ pluginError ? /* @__PURE__ */ jsx16("output", { className: "block px-3 py-2 text-xs text-muted-foreground", children: pluginError }) : null,
27624
+ pluginItems.map((item, index) => /* @__PURE__ */ jsxs7(
27625
+ "button",
27626
+ {
27627
+ ref: selectedRef(index),
27628
+ type: "button",
27629
+ className: rowClassName(index),
27630
+ onMouseDown: (event) => {
27631
+ event.preventDefault();
27632
+ handleSelect(item);
27633
+ },
27634
+ children: [
27635
+ item.icon ? /* @__PURE__ */ jsx16("img", { src: item.icon, alt: "", width: 16, height: 16, className: "shrink-0" }) : /* @__PURE__ */ jsx16(BookOpen, { size: 14 }),
27636
+ /* @__PURE__ */ jsx16("span", { className: "truncate", children: item.label }),
27637
+ /* @__PURE__ */ jsx16("span", { className: "ml-auto truncate text-xs text-muted-foreground", children: item.display_name })
27638
+ ]
27639
+ },
27640
+ `${item.plugin}:${item.server}:${item.id}`
27641
+ )),
27416
27642
  kbItems.length > 0 ? /* @__PURE__ */ jsxs7(Fragment4, { children: [
27417
27643
  /* @__PURE__ */ jsx16("div", { className: "px-3 pt-1 pb-0.5 text-[10px] font-medium uppercase tracking-wider text-[hsl(var(--muted-foreground))]", children: "\u77E5\u8BC6\u5E93" }),
27418
27644
  kbItems.map((item, index) => /* @__PURE__ */ jsxs7(
27419
27645
  "button",
27420
27646
  {
27421
- ref: selectedRef(index),
27647
+ ref: selectedRef(pluginItems.length + index),
27422
27648
  type: "button",
27423
27649
  onMouseDown: (event) => {
27424
27650
  event.preventDefault();
27425
27651
  handleSelect(item);
27426
27652
  },
27427
- className: rowClassName(index),
27653
+ className: rowClassName(pluginItems.length + index),
27428
27654
  children: [
27429
27655
  /* @__PURE__ */ jsx16(BookOpen, { size: 14, className: "shrink-0 text-[hsl(var(--primary))]" }),
27430
27656
  /* @__PURE__ */ jsx16("span", { className: "truncate", children: item.name }),
@@ -27438,7 +27664,7 @@ var FileCompletionMenuContent = forwardRef2(function FileCompletionMenuContent2(
27438
27664
  /* @__PURE__ */ jsx16("div", { className: "px-3 pt-1 pb-0.5 text-xs font-medium text-muted-foreground", children: "\u4E3B\u9898\u8D44\u4EA7" }),
27439
27665
  topicError ? /* @__PURE__ */ jsx16("output", { className: "block px-3 py-2 text-xs text-muted-foreground", children: topicError }) : null,
27440
27666
  topicItems.map((item, topicIndex) => {
27441
- const index = kbItems.length + topicIndex;
27667
+ const index = pluginItems.length + kbItems.length + topicIndex;
27442
27668
  return /* @__PURE__ */ jsxs7("button", { ref: selectedRef(index), type: "button", title: item.path, className: rowClassName(index), onMouseDown: (event) => {
27443
27669
  event.preventDefault();
27444
27670
  handleSelect(item);
@@ -27450,7 +27676,7 @@ var FileCompletionMenuContent = forwardRef2(function FileCompletionMenuContent2(
27450
27676
  ] }) : null,
27451
27677
  showGroupLabels ? /* @__PURE__ */ jsx16("div", { className: "px-3 pt-1 pb-0.5 text-[10px] font-medium uppercase tracking-wider text-[hsl(var(--muted-foreground))]", children: "\u6587\u4EF6" }) : null,
27452
27678
  fileEmptyLabel ? /* @__PURE__ */ jsx16("div", { className: "px-3 py-2 text-xs text-[hsl(var(--muted-foreground))]", children: fileEmptyLabel }) : filteredEntries.map((entry, fileIndex) => {
27453
- const index = kbItems.length + topicItems.length + fileIndex;
27679
+ const index = pluginItems.length + kbItems.length + topicItems.length + fileIndex;
27454
27680
  return /* @__PURE__ */ jsxs7(
27455
27681
  "button",
27456
27682
  {
@@ -27867,7 +28093,7 @@ var DOUBLE_ESCAPE_MS = 450;
27867
28093
  function getEditorText(editor) {
27868
28094
  return editor?.getText({ blockSeparator: "\n" }) ?? "";
27869
28095
  }
27870
- function replaceEditorText(editor, text, kbMentions = [], topicAssetRefs = []) {
28096
+ function replaceEditorText(editor, text) {
27871
28097
  if (!editor) {
27872
28098
  return;
27873
28099
  }
@@ -27876,7 +28102,7 @@ function replaceEditorText(editor, text, kbMentions = [], topicAssetRefs = []) {
27876
28102
  editor.commands.focus("end");
27877
28103
  return;
27878
28104
  }
27879
- editor.commands.setContent(buildEditorDocumentWithMentions(text, kbMentions, topicAssetRefs));
28105
+ editor.commands.setContent(buildEditorDocumentWithKbMentions(text, []));
27880
28106
  editor.commands.focus("end");
27881
28107
  }
27882
28108
  function getFileCardIcon(attachment) {
@@ -28454,8 +28680,6 @@ function ChatInput({
28454
28680
  SkillStatusBarComponent: SkillStatusBarOverride,
28455
28681
  skillStatusBarClassName,
28456
28682
  skillStatusBarInnerClassName,
28457
- onResyncSkills,
28458
- isResyncingSkills = false,
28459
28683
  onOpenSkills,
28460
28684
  inputLabel = "\u8F93\u5165\u6D88\u606F",
28461
28685
  placeholderText,
@@ -28478,9 +28702,9 @@ function ChatInput({
28478
28702
  externalDraft?.setValue(value);
28479
28703
  });
28480
28704
  const externalDraftValue = externalDraft?.value;
28481
- const inputRef = useRef8(input);
28705
+ const inputRef = useRef9(input);
28482
28706
  inputRef.current = input;
28483
- const appliedInitialDraftKeyRef = useRef8(null);
28707
+ const appliedInitialDraftKeyRef = useRef9(null);
28484
28708
  useEffect9(() => {
28485
28709
  if (externalDraftValue == null) return;
28486
28710
  if (inputRef.current === externalDraftValue) return;
@@ -28513,7 +28737,7 @@ function ChatInput({
28513
28737
  }
28514
28738
  );
28515
28739
  const externalAttachmentsValue = externalAttachments?.value;
28516
- const composerAttachmentsRef = useRef8(composerAttachments);
28740
+ const composerAttachmentsRef = useRef9(composerAttachments);
28517
28741
  composerAttachmentsRef.current = composerAttachments;
28518
28742
  useEffect9(() => {
28519
28743
  if (externalAttachmentsValue == null) return;
@@ -28529,16 +28753,16 @@ function ChatInput({
28529
28753
  const invalidation = useSessionDataInvalidation();
28530
28754
  const SkillStatusBarComponent = SkillStatusBarOverride ?? SkillStatusBar;
28531
28755
  const [actionMenuOpen, setActionMenuOpen] = useState11(false);
28532
- const actionMenuOpenRef = useRef8(false);
28756
+ const actionMenuOpenRef = useRef9(false);
28533
28757
  useEffect9(() => {
28534
28758
  actionMenuOpenRef.current = actionMenuOpen;
28535
28759
  }, [actionMenuOpen]);
28536
28760
  const [connectMenuOpen, setConnectMenuOpen] = useState11(false);
28537
- const fileInputRef = useRef8(null);
28538
- const folderInputRef = useRef8(null);
28539
- const editorRef = useRef8(null);
28540
- const lastEscapeAtRef = useRef8(0);
28541
- const localImageUrlsRef = useRef8(/* @__PURE__ */ new Map());
28761
+ const fileInputRef = useRef9(null);
28762
+ const folderInputRef = useRef9(null);
28763
+ const editorRef = useRef9(null);
28764
+ const lastEscapeAtRef = useRef9(0);
28765
+ const localImageUrlsRef = useRef9(/* @__PURE__ */ new Map());
28542
28766
  const currentChatSessionId = useCurrentChatSessionId();
28543
28767
  const activeSessionId = sessionIdProp ?? currentChatSessionId;
28544
28768
  const currentSession = useChatSessionDetail(activeSessionId);
@@ -28566,7 +28790,7 @@ function ChatInput({
28566
28790
  );
28567
28791
  const connectionStatus = useComposerConnection(activeSessionId);
28568
28792
  const loadKnowledgeBases2 = useKnowledgeBaseLoader();
28569
- const inputHistory = useInputHistory(activeSessionId);
28793
+ const inputHistory = useInputHistory(activeSessionId, client);
28570
28794
  const queuedTopicRefs = useComposerChannels((state3) => activeSessionId ? state3.topicAssetReferences[activeSessionId] : void 0);
28571
28795
  const getTopicSuggestions = useEffectEvent(async (query) => {
28572
28796
  if (!activeSessionId) return [];
@@ -28586,23 +28810,24 @@ function ChatInput({
28586
28810
  return [];
28587
28811
  }
28588
28812
  });
28589
- const pendingKbRefreshRef = useRef8(null);
28813
+ const referenceCandidates = useReferenceCandidates(
28814
+ () => [client, client.token, activeSessionId, currentSession?.chat_group_id],
28815
+ {
28816
+ plugins: (query) => getPluginSuggestionItems(client, getSessionId(), query),
28817
+ kbs: getKbSuggestionItems,
28818
+ topics: getTopicSuggestions,
28819
+ files: (query) => getFileSuggestionItems(client, getSessionId(), query)
28820
+ }
28821
+ );
28590
28822
  const [localImageUrls, setLocalImageUrls] = useState11({});
28591
28823
  const getMentionSuggestionItems = useEffectEvent(
28592
28824
  async (query) => {
28593
- const normalizedQuery = query.trim().toLowerCase();
28594
- const commandItems = COMMANDS.filter((item) => {
28595
- if (!normalizedQuery) {
28596
- return true;
28597
- }
28598
- return item.id.toLowerCase().startsWith(normalizedQuery) || item.label.toLowerCase().startsWith(normalizedQuery);
28599
- });
28600
28825
  const skillItems = await getSlashSuggestions(query, {
28601
28826
  client,
28602
28827
  sessionId: getSessionId(),
28603
28828
  renderMode: environment.renderMode ?? "normal"
28604
28829
  }).catch(() => []);
28605
- return [...commandItems, ...skillItems];
28830
+ return skillItems;
28606
28831
  }
28607
28832
  );
28608
28833
  const appendFiles = async (files) => {
@@ -28638,6 +28863,7 @@ function ChatInput({
28638
28863
  const getEditorState = useEffectEvent(() => ({
28639
28864
  input,
28640
28865
  connectionStatus,
28866
+ topicId: currentSession?.chat_group_id ?? null,
28641
28867
  navigateUp: inputHistory.navigateUp,
28642
28868
  navigateDown: inputHistory.navigateDown,
28643
28869
  isNavigatingHistory: inputHistory.isNavigating,
@@ -28672,29 +28898,11 @@ function ChatInput({
28672
28898
  suggestion: {
28673
28899
  char: "@",
28674
28900
  pluginKey: fileMentionSuggestionKey,
28675
- // 知识库和文件两路各自降级:任一路失败不拖垮整个 @ 菜单;知识库还额外
28676
- // 限了个短超时(withKbSuggestionTimeout),Hub 慢或不可达时不拖着本来
28677
- // 秒回的文件候选一起等它。超时只是"这次先不等了",不是"没有知识库"——
28678
- // 真结果迟到后如果菜单还开在同一个 query 上,靠 pendingKbRefreshRef
28679
- // (render() 那边挂的)把知识库分组补进去,不然用户输入 @ 之后不再
28680
- // 打字,菜单就永远空着知识库那组,得关掉重开或改查询词才能看见。
28681
- items: async ({ query }) => {
28682
- const kbPromise = getKbSuggestionItems();
28683
- const topicsPromise = getTopicSuggestions(query);
28684
- const filesPromise = getFileSuggestionItems(client, getSessionId(), query).catch(() => []);
28685
- const kbs = await withKbSuggestionTimeout(kbPromise);
28686
- notifyWhenKbSuggestionsArriveLate(kbPromise, kbs, (lateKbs) => {
28687
- if (pendingKbRefreshRef.current?.query === query) {
28688
- pendingKbRefreshRef.current.applyLateKbs(lateKbs);
28689
- }
28690
- });
28691
- const files = await filesPromise;
28692
- return [...kbs, ...await topicsPromise, ...files];
28693
- },
28901
+ items: ({ query }) => referenceCandidates.query(query),
28694
28902
  command: ({ editor: suggestionEditor, props, range }) => {
28695
28903
  const item = props;
28696
28904
  suggestionEditor.chain().focus().insertContentAt(range, [
28697
- isTopicAssetSuggestionItem(item) ? { type: "topicAssetMention", attrs: { topic_id: item.topic_id, path: item.path } } : isKbSuggestionItem(item) ? { type: "kbMention", attrs: { kbId: item.kbId, name: item.name } } : { type: "fileMention", attrs: { name: item.name, path: item.path } },
28905
+ isPluginSuggestionItem(item) ? { type: "pluginMention", attrs: { provider: item.provider, plugin: item.plugin, server: item.server, id: item.id, label: item.label } } : isTopicAssetSuggestionItem(item) ? { type: "topicAssetMention", attrs: { topic_id: item.topic_id, path: item.path } } : isKbSuggestionItem(item) ? { type: "kbMention", attrs: { kbId: item.kbId, name: item.name } } : { type: "fileMention", attrs: { name: item.name, path: item.path } },
28698
28906
  {
28699
28907
  type: "text",
28700
28908
  text: " "
@@ -28712,7 +28920,7 @@ function ChatInput({
28712
28920
  exitSuggestion(view, fileMentionSuggestionKey);
28713
28921
  }
28714
28922
  };
28715
- const renderMenu = (props) => {
28923
+ const paintMenu = (props) => {
28716
28924
  if (!container || !root) return;
28717
28925
  updateSuggestionPosition(container, props.clientRect);
28718
28926
  root.render(
@@ -28728,13 +28936,11 @@ function ChatInput({
28728
28936
  }
28729
28937
  )
28730
28938
  );
28731
- pendingKbRefreshRef.current = {
28732
- query: props.query,
28733
- applyLateKbs: (kbs) => {
28734
- if (kbs.length === 0) return;
28735
- renderMenu({ ...props, items: [...kbs, ...props.items] });
28736
- }
28737
- };
28939
+ };
28940
+ const renderMenu = (props) => {
28941
+ referenceCandidates.observe(props.items, (snapshot) => {
28942
+ paintMenu({ ...props, items: snapshot.items });
28943
+ });
28738
28944
  };
28739
28945
  return {
28740
28946
  onStart: (props) => {
@@ -28758,7 +28964,7 @@ function ChatInput({
28758
28964
  container?.remove();
28759
28965
  root = null;
28760
28966
  container = null;
28761
- pendingKbRefreshRef.current = null;
28967
+ referenceCandidates.cancel();
28762
28968
  },
28763
28969
  onKeyDown: ({ event, view }) => {
28764
28970
  if (event.key === "Escape") {
@@ -28774,6 +28980,7 @@ function ChatInput({
28774
28980
  }),
28775
28981
  WorkflowMention,
28776
28982
  KbMention,
28983
+ PluginMention,
28777
28984
  TopicAssetMention,
28778
28985
  SkillMention.configure({
28779
28986
  suggestion: {
@@ -28901,12 +29108,13 @@ function ChatInput({
28901
29108
  }
28902
29109
  const actionMenuOpen2 = actionMenuOpenRef.current;
28903
29110
  if (shouldHandleHistoryKey(event, actionMenuOpen2) && event.key === "ArrowUp" && (state3.input.trim().length === 0 || state3.isNavigatingHistory)) {
28904
- const previousEntry = state3.navigateUp(state3.input);
29111
+ const previousEntry = state3.navigateUp(editorRef.current?.getJSON());
28905
29112
  if (!previousEntry) {
28906
29113
  return false;
28907
29114
  }
28908
29115
  event.preventDefault();
28909
- replaceEditorText(editorRef.current, previousEntry.text, previousEntry.kbMentions, previousEntry.topicAssetRefs);
29116
+ editorRef.current?.commands.setContent(retainTopicAssetMentions(previousEntry.document, state3.topicId));
29117
+ editorRef.current?.commands.focus("end");
28910
29118
  return true;
28911
29119
  }
28912
29120
  if (shouldHandleHistoryKey(event, actionMenuOpen2) && event.key === "ArrowDown") {
@@ -28915,7 +29123,8 @@ function ChatInput({
28915
29123
  return false;
28916
29124
  }
28917
29125
  event.preventDefault();
28918
- replaceEditorText(editorRef.current, nextEntry.text, nextEntry.kbMentions, nextEntry.topicAssetRefs);
29126
+ editorRef.current?.commands.setContent(retainTopicAssetMentions(nextEntry.document, state3.topicId));
29127
+ editorRef.current?.commands.focus("end");
28919
29128
  return true;
28920
29129
  }
28921
29130
  if (state3.onDoubleEscape && event.key === "Escape" && !isImeCompositionKey(event) && !event.repeat) {
@@ -28969,7 +29178,7 @@ function ChatInput({
28969
29178
  editor.commands.focus("end");
28970
29179
  composerChannels.setRewindDraft(activeSessionId, null);
28971
29180
  }, [activeSessionId, editor, rewindDraft]);
28972
- const submittingRef = useRef8(false);
29181
+ const submittingRef = useRef9(false);
28973
29182
  const [isSubmitting, setIsSubmitting] = useState11(false);
28974
29183
  useEffect9(() => {
28975
29184
  let changed = false;
@@ -29005,6 +29214,22 @@ function ChatInput({
29005
29214
  };
29006
29215
  }, []);
29007
29216
  const sessionHandle = useSessionHandle(activeSessionId);
29217
+ const restoredPluginSelection = useRef9(null);
29218
+ useEffect9(() => {
29219
+ if (!sessionHandle || !activeSessionId || !editor) return;
29220
+ const restore = () => {
29221
+ if (restoredPluginSelection.current === activeSessionId) return;
29222
+ const turns = sessionHandle.getState().turns;
29223
+ const latest = [...turns].reverse().find((turn) => turn.role === "user");
29224
+ if (!latest || latest.turn_id.startsWith("local-user-")) return;
29225
+ restoredPluginSelection.current = activeSessionId;
29226
+ if (!getEditorText(editor).trim() && latest.refs?.length) {
29227
+ editor.commands.setContent({ type: "doc", content: [{ type: "paragraph", content: latest.refs.flatMap((ref) => [{ type: "pluginMention", attrs: { ...ref } }, { type: "text", text: " " }]) }] });
29228
+ }
29229
+ };
29230
+ restore();
29231
+ return sessionHandle.subscribe(restore);
29232
+ }, [sessionHandle, activeSessionId, editor]);
29008
29233
  useEffect9(() => {
29009
29234
  if (!sessionHandle || !activeSessionId) return;
29010
29235
  const offInsert = sessionHandle.on("insertTextRequested", ({ text }) => {
@@ -29071,9 +29296,9 @@ ${append2.text}` : append2.text;
29071
29296
  });
29072
29297
  const { isRecording, level: voiceLevel } = voice;
29073
29298
  const isVoiceStarting = voice.status === "starting";
29074
- const voiceStopRef = useRef8(voice.stop);
29299
+ const voiceStopRef = useRef9(voice.stop);
29075
29300
  voiceStopRef.current = voice.stop;
29076
- const prevSessionIdRef = useRef8(activeSessionId);
29301
+ const prevSessionIdRef = useRef9(activeSessionId);
29077
29302
  useEffect9(() => {
29078
29303
  if (prevSessionIdRef.current !== activeSessionId) {
29079
29304
  prevSessionIdRef.current = activeSessionId;
@@ -29099,7 +29324,7 @@ ${append2.text}` : append2.text;
29099
29324
  }
29100
29325
  if (isStreaming) {
29101
29326
  const json = editor?.getJSON();
29102
- if (composerAttachments.length > 0 || collectKbMentions(json).length > 0 || collectTopicAssetMentions(json).length > 0) {
29327
+ if (composerAttachments.length > 0 || collectPluginMentions(json).length > 0 || collectKbMentions(json).length > 0 || collectTopicAssetMentions(json).length > 0) {
29103
29328
  notifyChat(environment, "info", "\u5F53\u524D\u56DE\u590D\u5C1A\u672A\u7ED3\u675F\uFF0C\u5E26\u9644\u4EF6\u6216\u5F15\u7528\u7684\u6D88\u606F\u8BF7\u7B49\u5F85\u672C\u8F6E\u7ED3\u675F\u540E\u518D\u53D1\u9001");
29104
29329
  return;
29105
29330
  }
@@ -29134,6 +29359,11 @@ ${append2.text}` : append2.text;
29134
29359
  const skill = findLeadingSkillMention(json);
29135
29360
  const kbMentions = collectKbMentions(json);
29136
29361
  const kbIds = kbMentions.map((item) => item.kbId);
29362
+ const refs = collectPluginMentions(json);
29363
+ if (refs.length > 20) {
29364
+ notifyChat(environment, "error", "\u6BCF\u6761\u6D88\u606F\u6700\u591A\u9009\u62E9 20 \u4E2A\u63D2\u4EF6\u6761\u76EE");
29365
+ return;
29366
+ }
29137
29367
  const topicAssetRefs = collectTopicAssetMentions(json);
29138
29368
  if (topicAssetRefs.length > 20) {
29139
29369
  notifyChat(environment, "error", "\u6BCF\u6761\u6D88\u606F\u6700\u591A\u5F15\u7528 20 \u4E2A\u4E3B\u9898\u8D44\u4EA7");
@@ -29278,6 +29508,7 @@ ${append2.text}` : append2.text;
29278
29508
  thinkingOverride: thinkingAvailable && selectedReasoningLevel ? true : void 0,
29279
29509
  reasoningLevel: thinkingAvailable ? selectedReasoningLevel || void 0 : void 0,
29280
29510
  // 只有用户显式 @ 知识库才传选择;纯文本不附加知识库指令。
29511
+ refs: pluginRefsForSend(refs, sessionHandle?.getState().turns),
29281
29512
  kbIds: kbIds.length > 0 ? kbIds : void 0,
29282
29513
  topicAssetRefs: topicAssetRefs.length > 0 ? topicAssetRefs : void 0
29283
29514
  });
@@ -29294,11 +29525,14 @@ ${append2.text}` : append2.text;
29294
29525
  }
29295
29526
  return;
29296
29527
  }
29528
+ if (refs.length && editor && !getEditorText(editor).trim()) {
29529
+ editor.commands.setContent({ type: "doc", content: [{ type: "paragraph", content: refs.flatMap((ref) => [{ type: "pluginMention", attrs: { ...ref } }, { type: "text", text: " " }]) }] });
29530
+ }
29297
29531
  if (activeSessionId && activePendingContexts.length > 0) {
29298
29532
  composerChannels.consumePendingContexts(activeSessionId);
29299
29533
  }
29300
29534
  if (text.trim()) {
29301
- inputHistory.addEntry(text, kbMentions, topicAssetRefs);
29535
+ inputHistory.addEntry(json);
29302
29536
  }
29303
29537
  } finally {
29304
29538
  submittingRef.current = false;
@@ -29325,8 +29559,8 @@ ${append2.text}` : append2.text;
29325
29559
  const reduceMotion = typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;
29326
29560
  return reduceMotion ? fullPlaceholder : "";
29327
29561
  });
29328
- const typewriterPlayedRef = useRef8(false);
29329
- const isTypingRef = useRef8(false);
29562
+ const typewriterPlayedRef = useRef9(false);
29563
+ const isTypingRef = useRef9(false);
29330
29564
  useEffect9(() => {
29331
29565
  if (!typewriterPlaceholder || typewriterPlayedRef.current) return;
29332
29566
  typewriterPlayedRef.current = true;
@@ -29754,8 +29988,6 @@ ${append2.text}` : append2.text;
29754
29988
  SkillStatusBarComponent,
29755
29989
  {
29756
29990
  sessionId: activeSessionId,
29757
- onResync: onResyncSkills,
29758
- isResyncing: isResyncingSkills,
29759
29991
  onOpenSkills,
29760
29992
  vertical: true,
29761
29993
  className: skillStatusBarClassName,
@@ -29873,7 +30105,6 @@ export {
29873
30105
  ATTACHMENT_SIZE_LIMIT_BYTES,
29874
30106
  ATTENTION_STATUSES,
29875
30107
  BackgroundTasksPill,
29876
- COMMANDS,
29877
30108
  ChatInput,
29878
30109
  ComposerAttachmentViewport,
29879
30110
  ConnectButton,
@@ -29889,6 +30120,7 @@ export {
29889
30120
  ModelSelector,
29890
30121
  PREFERRED_MODEL_KEY,
29891
30122
  PlanningToggle,
30123
+ PluginMention,
29892
30124
  ProgressCircle,
29893
30125
  ReasoningModeSelect,
29894
30126
  RichInputServicesProvider,
@@ -29905,6 +30137,7 @@ export {
29905
30137
  buildSubmitPayload,
29906
30138
  buildVoiceInputUnavailableError,
29907
30139
  collectKbMentions,
30140
+ collectPluginMentions,
29908
30141
  collectTopicAssetMentions,
29909
30142
  entryLabel,
29910
30143
  estimateTokenCount,
@@ -29918,6 +30151,7 @@ export {
29918
30151
  getFileSuggestionItems,
29919
30152
  getInputModalities,
29920
30153
  getLastUserHomeRuntime,
30154
+ getPluginSuggestionItems,
29921
30155
  getSkillSuggestions,
29922
30156
  getSlashSuggestions,
29923
30157
  getTopicAssetSuggestionItems,
@@ -29929,6 +30163,7 @@ export {
29929
30163
  isImageFile,
29930
30164
  isImeCompositionKey,
29931
30165
  isKbSuggestionItem,
30166
+ isPluginSuggestionItem,
29932
30167
  isSubmittedComposerStillCurrent,
29933
30168
  isTopicAssetSuggestionError,
29934
30169
  isTopicAssetSuggestionItem,
@@ -29974,6 +30209,7 @@ export {
29974
30209
  useModelCatalog,
29975
30210
  useModelPreferences,
29976
30211
  useReasoningLevelPreference,
30212
+ useReferenceCandidates,
29977
30213
  useRefreshWhenRunEnds,
29978
30214
  useResolvedModel,
29979
30215
  useRichInputServices,