@blade-hq/agent-react 2612.0.0-beta.1 → 2612.0.0-beta.11

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 (1161) hide show
  1. package/README.md +18 -0
  2. package/dist/chat/ChatPanel.d.ts +1 -3
  3. package/dist/chat/LightComposer.d.ts +1 -1
  4. package/dist/chat/LiteMessageList.d.ts +1 -1
  5. package/dist/chat/MessageList.d.ts +1 -0
  6. package/dist/chat/WorkflowRunBlock.d.ts +19 -3
  7. package/dist/chat/ai-elements/reasoning.d.ts +4 -4
  8. package/dist/chat/customization.d.ts +1 -5
  9. package/dist/chat/index.d.ts +1 -4
  10. package/dist/chat/lib/citations.d.ts +5 -22
  11. package/dist/chat/markdown/MarkdownContent.d.ts +3 -0
  12. package/dist/chat/runtime/actions.d.ts +2 -1
  13. package/dist/chat/runtime/composer-channels.d.ts +4 -0
  14. package/dist/chat/runtime/input-cache-reset.d.ts +1 -1
  15. package/dist/chat/runtime/input-history-storage.d.ts +2 -0
  16. package/dist/chat/runtime/input-services.d.ts +0 -6
  17. package/dist/{chunk-FQQJP2GJ.js → chunk-7TQVTNPL.js} +780 -819
  18. package/dist/chunk-7TQVTNPL.js.map +1 -0
  19. package/dist/{chunk-WCMGQJLE.js → chunk-EYRP6PV3.js} +2 -2
  20. package/dist/{chunk-6ZDOQEWK.js → chunk-JVM2WTTS.js} +898 -638
  21. package/dist/chunk-JVM2WTTS.js.map +1 -0
  22. package/dist/components/ChatInput.d.ts +3 -1
  23. package/dist/components/TopicAssetSubmitDialog.d.ts +14 -0
  24. package/dist/components/plugin-connector.d.ts +1 -0
  25. package/dist/embed/entry.d.ts +2 -0
  26. package/dist/host.d.ts +0 -4
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.js +8 -4
  29. package/dist/internal.d.ts +3 -0
  30. package/dist/internal.js +9 -3
  31. package/dist/internal.js.map +1 -1
  32. package/dist/lib/agent-computer-command.d.ts +1 -3
  33. package/dist/rich-input/ChatInput.d.ts +1 -1
  34. package/dist/rich-input/FileCompletionMenu.d.ts +6 -9
  35. package/dist/rich-input/SkillStatusBar.d.ts +2 -4
  36. package/dist/rich-input/extensions/plugin-mention.d.ts +15 -0
  37. package/dist/rich-input/extensions/skill-mention.d.ts +3 -21
  38. package/dist/rich-input/extensions/topic-asset-mention.d.ts +13 -0
  39. package/dist/rich-input/index.d.ts +6 -3
  40. package/dist/rich-input/lib/composer-content.d.ts +11 -21
  41. package/dist/rich-input/lib/input-history-document.d.ts +3 -0
  42. package/dist/rich-input/lib/plugin-suggestions.d.ts +7 -0
  43. package/dist/rich-input/lib/reference-candidates.d.ts +27 -0
  44. package/dist/rich-input/lib/skill-suggestions.d.ts +1 -1
  45. package/dist/rich-input/lib/topic-asset-suggestions.d.ts +6 -0
  46. package/dist/rich-input/services.d.ts +2 -3
  47. package/dist/rich-input/use-input-history.d.ts +8 -8
  48. package/dist/rich-input/use-reference-candidates.d.ts +8 -0
  49. package/dist/rich-input.js +6409 -6351
  50. package/dist/rich-input.js.map +1 -1
  51. package/dist/style.full.css +1 -1
  52. package/node_modules/@floating-ui/core/LICENSE +20 -0
  53. package/node_modules/@floating-ui/core/README.md +4 -0
  54. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs +1 -0
  55. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.mjs +1184 -0
  56. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +531 -0
  57. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.ts +531 -0
  58. package/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js +1058 -0
  59. package/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +1058 -0
  60. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.js +1203 -0
  61. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.min.js +1 -0
  62. package/node_modules/@floating-ui/core/package.json +63 -0
  63. package/node_modules/@floating-ui/dom/LICENSE +20 -0
  64. package/node_modules/@floating-ui/dom/README.md +4 -0
  65. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs +1 -0
  66. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.mjs +956 -0
  67. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +358 -0
  68. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts +358 -0
  69. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +781 -0
  70. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +781 -0
  71. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js +975 -0
  72. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.min.js +1 -0
  73. package/node_modules/@floating-ui/dom/package.json +71 -0
  74. package/node_modules/@floating-ui/utils/LICENSE +20 -0
  75. package/node_modules/@floating-ui/utils/README.md +4 -0
  76. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +103 -0
  77. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.ts +103 -0
  78. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +47 -0
  79. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.ts +47 -0
  80. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.esm.js +165 -0
  81. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +165 -0
  82. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.js +192 -0
  83. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.min.js +1 -0
  84. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js +136 -0
  85. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +136 -0
  86. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.js +167 -0
  87. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.min.js +1 -0
  88. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.d.ts +47 -0
  89. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js +165 -0
  90. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.umd.js +192 -0
  91. package/node_modules/@floating-ui/utils/dom/package.json +6 -0
  92. package/node_modules/@floating-ui/utils/package.json +70 -0
  93. package/node_modules/@radix-ui/primitive/LICENSE +21 -0
  94. package/node_modules/@radix-ui/primitive/README.md +3 -0
  95. package/node_modules/@radix-ui/primitive/dist/index.d.mts +20 -0
  96. package/node_modules/@radix-ui/primitive/dist/index.d.ts +20 -0
  97. package/node_modules/@radix-ui/primitive/dist/index.js +76 -0
  98. package/node_modules/@radix-ui/primitive/dist/index.js.map +7 -0
  99. package/node_modules/@radix-ui/primitive/dist/index.mjs +53 -0
  100. package/node_modules/@radix-ui/primitive/dist/index.mjs.map +7 -0
  101. package/node_modules/@radix-ui/primitive/package.json +47 -0
  102. package/node_modules/@radix-ui/react-collapsible/LICENSE +21 -0
  103. package/node_modules/@radix-ui/react-collapsible/README.md +3 -0
  104. package/node_modules/@radix-ui/react-collapsible/dist/index.d.mts +33 -0
  105. package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts +33 -0
  106. package/node_modules/@radix-ui/react-collapsible/dist/index.js +187 -0
  107. package/node_modules/@radix-ui/react-collapsible/dist/index.js.map +7 -0
  108. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs +155 -0
  109. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +7 -0
  110. package/node_modules/@radix-ui/react-collapsible/package.json +75 -0
  111. package/node_modules/@radix-ui/react-compose-refs/README.md +13 -0
  112. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.mts +15 -0
  113. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts +15 -0
  114. package/node_modules/@radix-ui/react-compose-refs/dist/index.js +74 -0
  115. package/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +7 -0
  116. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +41 -0
  117. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +7 -0
  118. package/node_modules/@radix-ui/react-compose-refs/package.json +75 -0
  119. package/node_modules/@radix-ui/react-context/README.md +13 -0
  120. package/node_modules/@radix-ui/react-context/dist/index.d.mts +21 -0
  121. package/node_modules/@radix-ui/react-context/dist/index.d.ts +21 -0
  122. package/node_modules/@radix-ui/react-context/dist/index.js +114 -0
  123. package/node_modules/@radix-ui/react-context/dist/index.js.map +7 -0
  124. package/node_modules/@radix-ui/react-context/dist/index.mjs +81 -0
  125. package/node_modules/@radix-ui/react-context/dist/index.mjs.map +7 -0
  126. package/node_modules/@radix-ui/react-context/package.json +75 -0
  127. package/node_modules/@radix-ui/react-id/README.md +13 -0
  128. package/node_modules/@radix-ui/react-id/dist/index.d.mts +3 -0
  129. package/node_modules/@radix-ui/react-id/dist/index.d.ts +3 -0
  130. package/node_modules/@radix-ui/react-id/dist/index.js +49 -0
  131. package/node_modules/@radix-ui/react-id/dist/index.js.map +7 -0
  132. package/node_modules/@radix-ui/react-id/dist/index.mjs +16 -0
  133. package/node_modules/@radix-ui/react-id/dist/index.mjs.map +7 -0
  134. package/node_modules/@radix-ui/react-id/package.json +78 -0
  135. package/node_modules/@radix-ui/react-presence/LICENSE +21 -0
  136. package/node_modules/@radix-ui/react-presence/README.md +3 -0
  137. package/node_modules/@radix-ui/react-presence/dist/index.d.mts +12 -0
  138. package/node_modules/@radix-ui/react-presence/dist/index.d.ts +12 -0
  139. package/node_modules/@radix-ui/react-presence/dist/index.js +171 -0
  140. package/node_modules/@radix-ui/react-presence/dist/index.js.map +7 -0
  141. package/node_modules/@radix-ui/react-presence/dist/index.mjs +139 -0
  142. package/node_modules/@radix-ui/react-presence/dist/index.mjs.map +7 -0
  143. package/node_modules/@radix-ui/react-presence/package.json +69 -0
  144. package/node_modules/@radix-ui/react-primitive/LICENSE +21 -0
  145. package/node_modules/@radix-ui/react-primitive/README.md +3 -0
  146. package/node_modules/@radix-ui/react-primitive/dist/index.d.mts +52 -0
  147. package/node_modules/@radix-ui/react-primitive/dist/index.d.ts +52 -0
  148. package/node_modules/@radix-ui/react-primitive/dist/index.js +80 -0
  149. package/node_modules/@radix-ui/react-primitive/dist/index.js.map +7 -0
  150. package/node_modules/@radix-ui/react-primitive/dist/index.mjs +47 -0
  151. package/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +7 -0
  152. package/node_modules/@radix-ui/react-primitive/package.json +68 -0
  153. package/node_modules/@radix-ui/react-slot/LICENSE +21 -0
  154. package/node_modules/@radix-ui/react-slot/README.md +3 -0
  155. package/node_modules/@radix-ui/react-slot/dist/index.d.mts +17 -0
  156. package/node_modules/@radix-ui/react-slot/dist/index.d.ts +17 -0
  157. package/node_modules/@radix-ui/react-slot/dist/index.js +138 -0
  158. package/node_modules/@radix-ui/react-slot/dist/index.js.map +7 -0
  159. package/node_modules/@radix-ui/react-slot/dist/index.mjs +105 -0
  160. package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +7 -0
  161. package/node_modules/@radix-ui/react-slot/package.json +63 -0
  162. package/node_modules/@radix-ui/react-use-controllable-state/LICENSE +21 -0
  163. package/node_modules/@radix-ui/react-use-controllable-state/README.md +3 -0
  164. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.mts +40 -0
  165. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts +40 -0
  166. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +169 -0
  167. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +7 -0
  168. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +136 -0
  169. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +7 -0
  170. package/node_modules/@radix-ui/react-use-controllable-state/package.json +64 -0
  171. package/node_modules/@radix-ui/react-use-effect-event/LICENSE +21 -0
  172. package/node_modules/@radix-ui/react-use-effect-event/README.md +5 -0
  173. package/node_modules/@radix-ui/react-use-effect-event/dist/index.d.mts +8 -0
  174. package/node_modules/@radix-ui/react-use-effect-event/dist/index.d.ts +8 -0
  175. package/node_modules/@radix-ui/react-use-effect-event/dist/index.js +60 -0
  176. package/node_modules/@radix-ui/react-use-effect-event/dist/index.js.map +7 -0
  177. package/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs +27 -0
  178. package/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs.map +7 -0
  179. package/node_modules/@radix-ui/react-use-effect-event/package.json +65 -0
  180. package/node_modules/@radix-ui/react-use-effect-event/src/index.ts +1 -0
  181. package/node_modules/@radix-ui/react-use-effect-event/src/use-effect-event.tsx +36 -0
  182. package/node_modules/@radix-ui/react-use-layout-effect/README.md +13 -0
  183. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.mts +12 -0
  184. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts +12 -0
  185. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +41 -0
  186. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +7 -0
  187. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +8 -0
  188. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +7 -0
  189. package/node_modules/@radix-ui/react-use-layout-effect/package.json +75 -0
  190. package/node_modules/@remirror/core-constants/LICENSE +21 -0
  191. package/node_modules/@remirror/core-constants/dist/_tsup-dts-rollup.d.cts +612 -0
  192. package/node_modules/@remirror/core-constants/dist/_tsup-dts-rollup.d.ts +612 -0
  193. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.cjs +314 -0
  194. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.d.cts +20 -0
  195. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.d.ts +20 -0
  196. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.js +269 -0
  197. package/node_modules/@remirror/core-constants/dist-types/core-constants.d.ts +431 -0
  198. package/node_modules/@remirror/core-constants/dist-types/error-constants.d.ts +119 -0
  199. package/node_modules/@remirror/core-constants/dist-types/index.d.ts +2 -0
  200. package/node_modules/@remirror/core-constants/dist-types/tsconfig.tsbuildinfo +1 -0
  201. package/node_modules/@remirror/core-constants/package.json +45 -0
  202. package/node_modules/@remirror/core-constants/readme.md +17 -0
  203. package/node_modules/@tiptap/core/LICENSE.md +21 -0
  204. package/node_modules/@tiptap/core/README.md +18 -0
  205. package/node_modules/@tiptap/core/dist/index.cjs +7126 -0
  206. package/node_modules/@tiptap/core/dist/index.cjs.map +1 -0
  207. package/node_modules/@tiptap/core/dist/index.d.cts +4954 -0
  208. package/node_modules/@tiptap/core/dist/index.d.ts +4954 -0
  209. package/node_modules/@tiptap/core/dist/index.js +6992 -0
  210. package/node_modules/@tiptap/core/dist/index.js.map +1 -0
  211. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.cjs +56 -0
  212. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.cjs.map +1 -0
  213. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.d.cts +23 -0
  214. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.d.ts +23 -0
  215. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js +26 -0
  216. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js.map +1 -0
  217. package/node_modules/@tiptap/core/jsx-dev-runtime/index.cjs +1 -0
  218. package/node_modules/@tiptap/core/jsx-dev-runtime/index.d.cts +1 -0
  219. package/node_modules/@tiptap/core/jsx-dev-runtime/index.d.ts +1 -0
  220. package/node_modules/@tiptap/core/jsx-dev-runtime/index.js +1 -0
  221. package/node_modules/@tiptap/core/jsx-runtime/index.cjs +1 -0
  222. package/node_modules/@tiptap/core/jsx-runtime/index.d.cts +1 -0
  223. package/node_modules/@tiptap/core/jsx-runtime/index.d.ts +1 -0
  224. package/node_modules/@tiptap/core/jsx-runtime/index.js +1 -0
  225. package/node_modules/@tiptap/core/package.json +70 -0
  226. package/node_modules/@tiptap/core/src/CommandManager.ts +138 -0
  227. package/node_modules/@tiptap/core/src/Editor.ts +806 -0
  228. package/node_modules/@tiptap/core/src/EventEmitter.ts +58 -0
  229. package/node_modules/@tiptap/core/src/Extendable.ts +602 -0
  230. package/node_modules/@tiptap/core/src/Extension.ts +55 -0
  231. package/node_modules/@tiptap/core/src/ExtensionManager.ts +440 -0
  232. package/node_modules/@tiptap/core/src/InputRule.ts +290 -0
  233. package/node_modules/@tiptap/core/src/Mark.ts +211 -0
  234. package/node_modules/@tiptap/core/src/MarkView.ts +122 -0
  235. package/node_modules/@tiptap/core/src/Node.ts +377 -0
  236. package/node_modules/@tiptap/core/src/NodePos.ts +257 -0
  237. package/node_modules/@tiptap/core/src/NodeView.ts +339 -0
  238. package/node_modules/@tiptap/core/src/PasteRule.ts +373 -0
  239. package/node_modules/@tiptap/core/src/Tracker.ts +36 -0
  240. package/node_modules/@tiptap/core/src/__tests__/transformPastedHTML.test.ts +575 -0
  241. package/node_modules/@tiptap/core/src/commands/blur.ts +29 -0
  242. package/node_modules/@tiptap/core/src/commands/clearContent.ts +25 -0
  243. package/node_modules/@tiptap/core/src/commands/clearNodes.ts +57 -0
  244. package/node_modules/@tiptap/core/src/commands/command.ts +22 -0
  245. package/node_modules/@tiptap/core/src/commands/createParagraphNear.ts +21 -0
  246. package/node_modules/@tiptap/core/src/commands/cut.ts +36 -0
  247. package/node_modules/@tiptap/core/src/commands/deleteCurrentNode.ts +44 -0
  248. package/node_modules/@tiptap/core/src/commands/deleteNode.ts +41 -0
  249. package/node_modules/@tiptap/core/src/commands/deleteRange.ts +26 -0
  250. package/node_modules/@tiptap/core/src/commands/deleteSelection.ts +21 -0
  251. package/node_modules/@tiptap/core/src/commands/enter.ts +19 -0
  252. package/node_modules/@tiptap/core/src/commands/exitCode.ts +21 -0
  253. package/node_modules/@tiptap/core/src/commands/extendMarkRange.ts +51 -0
  254. package/node_modules/@tiptap/core/src/commands/first.ts +26 -0
  255. package/node_modules/@tiptap/core/src/commands/focus.ts +108 -0
  256. package/node_modules/@tiptap/core/src/commands/forEach.ts +24 -0
  257. package/node_modules/@tiptap/core/src/commands/index.ts +57 -0
  258. package/node_modules/@tiptap/core/src/commands/insertContent.ts +46 -0
  259. package/node_modules/@tiptap/core/src/commands/insertContentAt.ts +212 -0
  260. package/node_modules/@tiptap/core/src/commands/join.ts +69 -0
  261. package/node_modules/@tiptap/core/src/commands/joinItemBackward.ts +37 -0
  262. package/node_modules/@tiptap/core/src/commands/joinItemForward.ts +37 -0
  263. package/node_modules/@tiptap/core/src/commands/joinTextblockBackward.ts +20 -0
  264. package/node_modules/@tiptap/core/src/commands/joinTextblockForward.ts +20 -0
  265. package/node_modules/@tiptap/core/src/commands/keyboardShortcut.ts +100 -0
  266. package/node_modules/@tiptap/core/src/commands/lift.ts +34 -0
  267. package/node_modules/@tiptap/core/src/commands/liftEmptyBlock.ts +21 -0
  268. package/node_modules/@tiptap/core/src/commands/liftListItem.ts +26 -0
  269. package/node_modules/@tiptap/core/src/commands/newlineInCode.ts +21 -0
  270. package/node_modules/@tiptap/core/src/commands/resetAttributes.ts +73 -0
  271. package/node_modules/@tiptap/core/src/commands/scrollIntoView.ts +23 -0
  272. package/node_modules/@tiptap/core/src/commands/selectAll.ts +27 -0
  273. package/node_modules/@tiptap/core/src/commands/selectNodeBackward.ts +21 -0
  274. package/node_modules/@tiptap/core/src/commands/selectNodeForward.ts +21 -0
  275. package/node_modules/@tiptap/core/src/commands/selectParentNode.ts +21 -0
  276. package/node_modules/@tiptap/core/src/commands/selectTextblockEnd.ts +23 -0
  277. package/node_modules/@tiptap/core/src/commands/selectTextblockStart.ts +23 -0
  278. package/node_modules/@tiptap/core/src/commands/setContent.ts +76 -0
  279. package/node_modules/@tiptap/core/src/commands/setMark.ts +118 -0
  280. package/node_modules/@tiptap/core/src/commands/setMeta.ts +25 -0
  281. package/node_modules/@tiptap/core/src/commands/setNode.ts +57 -0
  282. package/node_modules/@tiptap/core/src/commands/setNodeSelection.ts +31 -0
  283. package/node_modules/@tiptap/core/src/commands/setTextDirection.ts +51 -0
  284. package/node_modules/@tiptap/core/src/commands/setTextSelection.ts +35 -0
  285. package/node_modules/@tiptap/core/src/commands/sinkListItem.ts +26 -0
  286. package/node_modules/@tiptap/core/src/commands/splitBlock.ts +115 -0
  287. package/node_modules/@tiptap/core/src/commands/splitListItem.ts +149 -0
  288. package/node_modules/@tiptap/core/src/commands/toggleList.ts +159 -0
  289. package/node_modules/@tiptap/core/src/commands/toggleMark.ts +51 -0
  290. package/node_modules/@tiptap/core/src/commands/toggleNode.ts +47 -0
  291. package/node_modules/@tiptap/core/src/commands/toggleWrap.ts +32 -0
  292. package/node_modules/@tiptap/core/src/commands/undoInputRule.ts +49 -0
  293. package/node_modules/@tiptap/core/src/commands/unsetAllMarks.ts +32 -0
  294. package/node_modules/@tiptap/core/src/commands/unsetMark.ts +65 -0
  295. package/node_modules/@tiptap/core/src/commands/unsetTextDirection.ts +51 -0
  296. package/node_modules/@tiptap/core/src/commands/updateAttributes.ts +150 -0
  297. package/node_modules/@tiptap/core/src/commands/wrapIn.ts +27 -0
  298. package/node_modules/@tiptap/core/src/commands/wrapInList.ts +27 -0
  299. package/node_modules/@tiptap/core/src/extensions/clipboardTextSerializer.ts +44 -0
  300. package/node_modules/@tiptap/core/src/extensions/commands.ts +14 -0
  301. package/node_modules/@tiptap/core/src/extensions/delete.ts +89 -0
  302. package/node_modules/@tiptap/core/src/extensions/drop.ts +26 -0
  303. package/node_modules/@tiptap/core/src/extensions/editable.ts +18 -0
  304. package/node_modules/@tiptap/core/src/extensions/focusEvents.ts +41 -0
  305. package/node_modules/@tiptap/core/src/extensions/index.ts +10 -0
  306. package/node_modules/@tiptap/core/src/extensions/keymap.ts +160 -0
  307. package/node_modules/@tiptap/core/src/extensions/paste.ts +25 -0
  308. package/node_modules/@tiptap/core/src/extensions/tabindex.ts +18 -0
  309. package/node_modules/@tiptap/core/src/extensions/textDirection.ts +86 -0
  310. package/node_modules/@tiptap/core/src/helpers/MappablePosition.ts +66 -0
  311. package/node_modules/@tiptap/core/src/helpers/combineTransactionSteps.ts +21 -0
  312. package/node_modules/@tiptap/core/src/helpers/createChainableState.ts +39 -0
  313. package/node_modules/@tiptap/core/src/helpers/createDocument.ts +24 -0
  314. package/node_modules/@tiptap/core/src/helpers/createNodeFromContent.ts +119 -0
  315. package/node_modules/@tiptap/core/src/helpers/defaultBlockAt.ts +18 -0
  316. package/node_modules/@tiptap/core/src/helpers/findChildren.ts +24 -0
  317. package/node_modules/@tiptap/core/src/helpers/findChildrenInRange.ts +36 -0
  318. package/node_modules/@tiptap/core/src/helpers/findParentNode.ts +18 -0
  319. package/node_modules/@tiptap/core/src/helpers/findParentNodeClosestToPos.ts +37 -0
  320. package/node_modules/@tiptap/core/src/helpers/flattenExtensions.ts +30 -0
  321. package/node_modules/@tiptap/core/src/helpers/generateHTML.ts +18 -0
  322. package/node_modules/@tiptap/core/src/helpers/generateJSON.ts +18 -0
  323. package/node_modules/@tiptap/core/src/helpers/generateText.ts +34 -0
  324. package/node_modules/@tiptap/core/src/helpers/getAttributes.ts +29 -0
  325. package/node_modules/@tiptap/core/src/helpers/getAttributesFromExtensions.ts +122 -0
  326. package/node_modules/@tiptap/core/src/helpers/getChangedRanges.ts +85 -0
  327. package/node_modules/@tiptap/core/src/helpers/getDebugJSON.ts +54 -0
  328. package/node_modules/@tiptap/core/src/helpers/getExtensionField.ts +32 -0
  329. package/node_modules/@tiptap/core/src/helpers/getHTMLFromFragment.ts +13 -0
  330. package/node_modules/@tiptap/core/src/helpers/getMarkAttributes.ts +30 -0
  331. package/node_modules/@tiptap/core/src/helpers/getMarkRange.ts +90 -0
  332. package/node_modules/@tiptap/core/src/helpers/getMarkType.ts +13 -0
  333. package/node_modules/@tiptap/core/src/helpers/getMarksBetween.ts +44 -0
  334. package/node_modules/@tiptap/core/src/helpers/getNodeAtPosition.ts +29 -0
  335. package/node_modules/@tiptap/core/src/helpers/getNodeAttributes.ts +22 -0
  336. package/node_modules/@tiptap/core/src/helpers/getNodeType.ts +13 -0
  337. package/node_modules/@tiptap/core/src/helpers/getRenderedAttributes.ts +23 -0
  338. package/node_modules/@tiptap/core/src/helpers/getSchema.ts +12 -0
  339. package/node_modules/@tiptap/core/src/helpers/getSchemaByResolvedExtensions.ts +183 -0
  340. package/node_modules/@tiptap/core/src/helpers/getSchemaTypeByName.ts +11 -0
  341. package/node_modules/@tiptap/core/src/helpers/getSchemaTypeNameByName.ts +19 -0
  342. package/node_modules/@tiptap/core/src/helpers/getSplittedAttributes.ts +28 -0
  343. package/node_modules/@tiptap/core/src/helpers/getText.ts +28 -0
  344. package/node_modules/@tiptap/core/src/helpers/getTextBetween.ts +52 -0
  345. package/node_modules/@tiptap/core/src/helpers/getTextContentFromNodes.ts +29 -0
  346. package/node_modules/@tiptap/core/src/helpers/getTextSerializersFromSchema.ts +16 -0
  347. package/node_modules/@tiptap/core/src/helpers/index.ts +55 -0
  348. package/node_modules/@tiptap/core/src/helpers/injectExtensionAttributesToParseRule.ts +47 -0
  349. package/node_modules/@tiptap/core/src/helpers/isActive.ts +23 -0
  350. package/node_modules/@tiptap/core/src/helpers/isAtEndOfNode.ts +29 -0
  351. package/node_modules/@tiptap/core/src/helpers/isAtStartOfNode.ts +11 -0
  352. package/node_modules/@tiptap/core/src/helpers/isExtensionRulesEnabled.ts +13 -0
  353. package/node_modules/@tiptap/core/src/helpers/isList.ts +27 -0
  354. package/node_modules/@tiptap/core/src/helpers/isMarkActive.ts +94 -0
  355. package/node_modules/@tiptap/core/src/helpers/isNodeActive.ts +51 -0
  356. package/node_modules/@tiptap/core/src/helpers/isNodeEmpty.ts +62 -0
  357. package/node_modules/@tiptap/core/src/helpers/isNodeSelection.ts +5 -0
  358. package/node_modules/@tiptap/core/src/helpers/isTextSelection.ts +5 -0
  359. package/node_modules/@tiptap/core/src/helpers/posToDOMRect.ts +35 -0
  360. package/node_modules/@tiptap/core/src/helpers/resolveExtensions.ts +25 -0
  361. package/node_modules/@tiptap/core/src/helpers/resolveFocusPosition.ts +31 -0
  362. package/node_modules/@tiptap/core/src/helpers/rewriteUnknownContent.ts +149 -0
  363. package/node_modules/@tiptap/core/src/helpers/selectionToInsertionEnd.ts +29 -0
  364. package/node_modules/@tiptap/core/src/helpers/sortExtensions.ts +26 -0
  365. package/node_modules/@tiptap/core/src/helpers/splitExtensions.ts +16 -0
  366. package/node_modules/@tiptap/core/src/index.ts +28 -0
  367. package/node_modules/@tiptap/core/src/inputRules/index.ts +5 -0
  368. package/node_modules/@tiptap/core/src/inputRules/markInputRule.ts +68 -0
  369. package/node_modules/@tiptap/core/src/inputRules/nodeInputRule.ts +73 -0
  370. package/node_modules/@tiptap/core/src/inputRules/textInputRule.ts +35 -0
  371. package/node_modules/@tiptap/core/src/inputRules/textblockTypeInputRule.ts +35 -0
  372. package/node_modules/@tiptap/core/src/inputRules/wrappingInputRule.ts +82 -0
  373. package/node_modules/@tiptap/core/src/jsx-runtime.ts +65 -0
  374. package/node_modules/@tiptap/core/src/lib/ResizableNodeView.ts +1060 -0
  375. package/node_modules/@tiptap/core/src/lib/index.ts +1 -0
  376. package/node_modules/@tiptap/core/src/pasteRules/index.ts +3 -0
  377. package/node_modules/@tiptap/core/src/pasteRules/markPasteRule.ts +71 -0
  378. package/node_modules/@tiptap/core/src/pasteRules/nodePasteRule.ts +44 -0
  379. package/node_modules/@tiptap/core/src/pasteRules/textPasteRule.ts +34 -0
  380. package/node_modules/@tiptap/core/src/style.ts +71 -0
  381. package/node_modules/@tiptap/core/src/types.ts +1058 -0
  382. package/node_modules/@tiptap/core/src/utilities/callOrReturn.ts +21 -0
  383. package/node_modules/@tiptap/core/src/utilities/canInsertNode.ts +30 -0
  384. package/node_modules/@tiptap/core/src/utilities/createStyleTag.ts +21 -0
  385. package/node_modules/@tiptap/core/src/utilities/deleteProps.ts +16 -0
  386. package/node_modules/@tiptap/core/src/utilities/elementFromString.ts +27 -0
  387. package/node_modules/@tiptap/core/src/utilities/escapeForRegEx.ts +4 -0
  388. package/node_modules/@tiptap/core/src/utilities/findDuplicates.ts +8 -0
  389. package/node_modules/@tiptap/core/src/utilities/fromString.ts +19 -0
  390. package/node_modules/@tiptap/core/src/utilities/index.ts +26 -0
  391. package/node_modules/@tiptap/core/src/utilities/isAndroid.ts +3 -0
  392. package/node_modules/@tiptap/core/src/utilities/isEmptyObject.ts +3 -0
  393. package/node_modules/@tiptap/core/src/utilities/isFirefox.ts +11 -0
  394. package/node_modules/@tiptap/core/src/utilities/isFunction.ts +4 -0
  395. package/node_modules/@tiptap/core/src/utilities/isMacOS.ts +3 -0
  396. package/node_modules/@tiptap/core/src/utilities/isNumber.ts +3 -0
  397. package/node_modules/@tiptap/core/src/utilities/isPlainObject.ts +13 -0
  398. package/node_modules/@tiptap/core/src/utilities/isRegExp.ts +3 -0
  399. package/node_modules/@tiptap/core/src/utilities/isSafari.ts +11 -0
  400. package/node_modules/@tiptap/core/src/utilities/isString.ts +3 -0
  401. package/node_modules/@tiptap/core/src/utilities/isiOS.ts +7 -0
  402. package/node_modules/@tiptap/core/src/utilities/markdown/attributeUtils.ts +130 -0
  403. package/node_modules/@tiptap/core/src/utilities/markdown/createAtomBlockMarkdownSpec.ts +141 -0
  404. package/node_modules/@tiptap/core/src/utilities/markdown/createBlockMarkdownSpec.ts +225 -0
  405. package/node_modules/@tiptap/core/src/utilities/markdown/createInlineMarkdownSpec.ts +282 -0
  406. package/node_modules/@tiptap/core/src/utilities/markdown/index.ts +13 -0
  407. package/node_modules/@tiptap/core/src/utilities/markdown/parseIndentedBlocks.ts +194 -0
  408. package/node_modules/@tiptap/core/src/utilities/markdown/renderNestedMarkdownContent.ts +96 -0
  409. package/node_modules/@tiptap/core/src/utilities/mergeAttributes.ts +109 -0
  410. package/node_modules/@tiptap/core/src/utilities/mergeDeep.ts +17 -0
  411. package/node_modules/@tiptap/core/src/utilities/minMax.ts +3 -0
  412. package/node_modules/@tiptap/core/src/utilities/objectIncludes.ts +30 -0
  413. package/node_modules/@tiptap/core/src/utilities/removeDuplicates.ts +13 -0
  414. package/node_modules/@tiptap/extension-bubble-menu/LICENSE.md +21 -0
  415. package/node_modules/@tiptap/extension-bubble-menu/README.md +18 -0
  416. package/node_modules/@tiptap/extension-bubble-menu/dist/index.cjs +462 -0
  417. package/node_modules/@tiptap/extension-bubble-menu/dist/index.cjs.map +1 -0
  418. package/node_modules/@tiptap/extension-bubble-menu/dist/index.d.cts +169 -0
  419. package/node_modules/@tiptap/extension-bubble-menu/dist/index.d.ts +169 -0
  420. package/node_modules/@tiptap/extension-bubble-menu/dist/index.js +443 -0
  421. package/node_modules/@tiptap/extension-bubble-menu/dist/index.js.map +1 -0
  422. package/node_modules/@tiptap/extension-bubble-menu/package.json +54 -0
  423. package/node_modules/@tiptap/extension-bubble-menu/src/bubble-menu-plugin.ts +650 -0
  424. package/node_modules/@tiptap/extension-bubble-menu/src/bubble-menu.ts +50 -0
  425. package/node_modules/@tiptap/extension-bubble-menu/src/index.ts +6 -0
  426. package/node_modules/@tiptap/extension-floating-menu/LICENSE.md +21 -0
  427. package/node_modules/@tiptap/extension-floating-menu/README.md +18 -0
  428. package/node_modules/@tiptap/extension-floating-menu/dist/index.cjs +380 -0
  429. package/node_modules/@tiptap/extension-floating-menu/dist/index.cjs.map +1 -0
  430. package/node_modules/@tiptap/extension-floating-menu/dist/index.d.cts +179 -0
  431. package/node_modules/@tiptap/extension-floating-menu/dist/index.d.ts +179 -0
  432. package/node_modules/@tiptap/extension-floating-menu/dist/index.js +361 -0
  433. package/node_modules/@tiptap/extension-floating-menu/dist/index.js.map +1 -0
  434. package/node_modules/@tiptap/extension-floating-menu/package.json +53 -0
  435. package/node_modules/@tiptap/extension-floating-menu/src/floating-menu-plugin.ts +525 -0
  436. package/node_modules/@tiptap/extension-floating-menu/src/floating-menu.ts +77 -0
  437. package/node_modules/@tiptap/extension-floating-menu/src/index.ts +6 -0
  438. package/node_modules/@tiptap/extension-mention/LICENSE.md +21 -0
  439. package/node_modules/@tiptap/extension-mention/README.md +18 -0
  440. package/node_modules/@tiptap/extension-mention/dist/index.cjs +277 -0
  441. package/node_modules/@tiptap/extension-mention/dist/index.cjs.map +1 -0
  442. package/node_modules/@tiptap/extension-mention/dist/index.d.cts +93 -0
  443. package/node_modules/@tiptap/extension-mention/dist/index.d.ts +93 -0
  444. package/node_modules/@tiptap/extension-mention/dist/index.js +250 -0
  445. package/node_modules/@tiptap/extension-mention/dist/index.js.map +1 -0
  446. package/node_modules/@tiptap/extension-mention/package.json +52 -0
  447. package/node_modules/@tiptap/extension-mention/src/index.ts +5 -0
  448. package/node_modules/@tiptap/extension-mention/src/mention.ts +357 -0
  449. package/node_modules/@tiptap/extension-mention/src/utils/get-default-suggestion-attributes.ts +89 -0
  450. package/node_modules/@tiptap/pm/LICENSE.md +21 -0
  451. package/node_modules/@tiptap/pm/README.md +22 -0
  452. package/node_modules/@tiptap/pm/changeset/index.ts +1 -0
  453. package/node_modules/@tiptap/pm/collab/index.ts +1 -0
  454. package/node_modules/@tiptap/pm/commands/index.ts +1 -0
  455. package/node_modules/@tiptap/pm/dist/changeset/index.cjs +2 -0
  456. package/node_modules/@tiptap/pm/dist/changeset/index.d.cts +18 -0
  457. package/node_modules/@tiptap/pm/dist/changeset/index.d.ts +18 -0
  458. package/node_modules/@tiptap/pm/dist/changeset/index.js +2 -0
  459. package/node_modules/@tiptap/pm/dist/collab/index.cjs +2 -0
  460. package/node_modules/@tiptap/pm/dist/collab/index.d.cts +1 -0
  461. package/node_modules/@tiptap/pm/dist/collab/index.d.ts +1 -0
  462. package/node_modules/@tiptap/pm/dist/collab/index.js +2 -0
  463. package/node_modules/@tiptap/pm/dist/commands/index.cjs +2 -0
  464. package/node_modules/@tiptap/pm/dist/commands/index.d.cts +1 -0
  465. package/node_modules/@tiptap/pm/dist/commands/index.d.ts +1 -0
  466. package/node_modules/@tiptap/pm/dist/commands/index.js +2 -0
  467. package/node_modules/@tiptap/pm/dist/dropcursor/index.cjs +2 -0
  468. package/node_modules/@tiptap/pm/dist/dropcursor/index.d.cts +1 -0
  469. package/node_modules/@tiptap/pm/dist/dropcursor/index.d.ts +1 -0
  470. package/node_modules/@tiptap/pm/dist/dropcursor/index.js +2 -0
  471. package/node_modules/@tiptap/pm/dist/gapcursor/index.cjs +2 -0
  472. package/node_modules/@tiptap/pm/dist/gapcursor/index.d.cts +1 -0
  473. package/node_modules/@tiptap/pm/dist/gapcursor/index.d.ts +1 -0
  474. package/node_modules/@tiptap/pm/dist/gapcursor/index.js +2 -0
  475. package/node_modules/@tiptap/pm/dist/history/index.cjs +2 -0
  476. package/node_modules/@tiptap/pm/dist/history/index.d.cts +1 -0
  477. package/node_modules/@tiptap/pm/dist/history/index.d.ts +1 -0
  478. package/node_modules/@tiptap/pm/dist/history/index.js +2 -0
  479. package/node_modules/@tiptap/pm/dist/inputrules/index.cjs +2 -0
  480. package/node_modules/@tiptap/pm/dist/inputrules/index.d.cts +1 -0
  481. package/node_modules/@tiptap/pm/dist/inputrules/index.d.ts +1 -0
  482. package/node_modules/@tiptap/pm/dist/inputrules/index.js +2 -0
  483. package/node_modules/@tiptap/pm/dist/keymap/index.cjs +2 -0
  484. package/node_modules/@tiptap/pm/dist/keymap/index.d.cts +1 -0
  485. package/node_modules/@tiptap/pm/dist/keymap/index.d.ts +1 -0
  486. package/node_modules/@tiptap/pm/dist/keymap/index.js +2 -0
  487. package/node_modules/@tiptap/pm/dist/markdown/index.cjs +2 -0
  488. package/node_modules/@tiptap/pm/dist/markdown/index.d.cts +1 -0
  489. package/node_modules/@tiptap/pm/dist/markdown/index.d.ts +1 -0
  490. package/node_modules/@tiptap/pm/dist/markdown/index.js +2 -0
  491. package/node_modules/@tiptap/pm/dist/menu/index.cjs +2 -0
  492. package/node_modules/@tiptap/pm/dist/menu/index.d.cts +1 -0
  493. package/node_modules/@tiptap/pm/dist/menu/index.d.ts +1 -0
  494. package/node_modules/@tiptap/pm/dist/menu/index.js +2 -0
  495. package/node_modules/@tiptap/pm/dist/model/index.cjs +2 -0
  496. package/node_modules/@tiptap/pm/dist/model/index.d.cts +1 -0
  497. package/node_modules/@tiptap/pm/dist/model/index.d.ts +1 -0
  498. package/node_modules/@tiptap/pm/dist/model/index.js +2 -0
  499. package/node_modules/@tiptap/pm/dist/schema-basic/index.cjs +2 -0
  500. package/node_modules/@tiptap/pm/dist/schema-basic/index.d.cts +1 -0
  501. package/node_modules/@tiptap/pm/dist/schema-basic/index.d.ts +1 -0
  502. package/node_modules/@tiptap/pm/dist/schema-basic/index.js +2 -0
  503. package/node_modules/@tiptap/pm/dist/schema-list/index.cjs +2 -0
  504. package/node_modules/@tiptap/pm/dist/schema-list/index.d.cts +1 -0
  505. package/node_modules/@tiptap/pm/dist/schema-list/index.d.ts +1 -0
  506. package/node_modules/@tiptap/pm/dist/schema-list/index.js +2 -0
  507. package/node_modules/@tiptap/pm/dist/state/index.cjs +2 -0
  508. package/node_modules/@tiptap/pm/dist/state/index.d.cts +1 -0
  509. package/node_modules/@tiptap/pm/dist/state/index.d.ts +1 -0
  510. package/node_modules/@tiptap/pm/dist/state/index.js +2 -0
  511. package/node_modules/@tiptap/pm/dist/tables/index.cjs +2 -0
  512. package/node_modules/@tiptap/pm/dist/tables/index.d.cts +1 -0
  513. package/node_modules/@tiptap/pm/dist/tables/index.d.ts +1 -0
  514. package/node_modules/@tiptap/pm/dist/tables/index.js +2 -0
  515. package/node_modules/@tiptap/pm/dist/trailing-node/index.cjs +2 -0
  516. package/node_modules/@tiptap/pm/dist/trailing-node/index.d.cts +1 -0
  517. package/node_modules/@tiptap/pm/dist/trailing-node/index.d.ts +1 -0
  518. package/node_modules/@tiptap/pm/dist/trailing-node/index.js +2 -0
  519. package/node_modules/@tiptap/pm/dist/transform/index.cjs +2 -0
  520. package/node_modules/@tiptap/pm/dist/transform/index.d.cts +1 -0
  521. package/node_modules/@tiptap/pm/dist/transform/index.d.ts +1 -0
  522. package/node_modules/@tiptap/pm/dist/transform/index.js +2 -0
  523. package/node_modules/@tiptap/pm/dist/view/index.cjs +2 -0
  524. package/node_modules/@tiptap/pm/dist/view/index.d.cts +1 -0
  525. package/node_modules/@tiptap/pm/dist/view/index.d.ts +1 -0
  526. package/node_modules/@tiptap/pm/dist/view/index.js +2 -0
  527. package/node_modules/@tiptap/pm/dropcursor/index.ts +1 -0
  528. package/node_modules/@tiptap/pm/gapcursor/index.ts +1 -0
  529. package/node_modules/@tiptap/pm/history/index.ts +1 -0
  530. package/node_modules/@tiptap/pm/inputrules/index.ts +1 -0
  531. package/node_modules/@tiptap/pm/keymap/index.ts +1 -0
  532. package/node_modules/@tiptap/pm/markdown/index.ts +1 -0
  533. package/node_modules/@tiptap/pm/menu/index.ts +1 -0
  534. package/node_modules/@tiptap/pm/model/index.ts +1 -0
  535. package/node_modules/@tiptap/pm/package.json +211 -0
  536. package/node_modules/@tiptap/pm/schema-basic/index.ts +1 -0
  537. package/node_modules/@tiptap/pm/schema-list/index.ts +1 -0
  538. package/node_modules/@tiptap/pm/state/index.ts +1 -0
  539. package/node_modules/@tiptap/pm/tables/index.ts +1 -0
  540. package/node_modules/@tiptap/pm/trailing-node/index.ts +1 -0
  541. package/node_modules/@tiptap/pm/transform/index.ts +1 -0
  542. package/node_modules/@tiptap/pm/view/index.ts +1 -0
  543. package/node_modules/@tiptap/react/LICENSE.md +21 -0
  544. package/node_modules/@tiptap/react/README.md +18 -0
  545. package/node_modules/@tiptap/react/dist/index.cjs +1195 -0
  546. package/node_modules/@tiptap/react/dist/index.cjs.map +1 -0
  547. package/node_modules/@tiptap/react/dist/index.d.cts +534 -0
  548. package/node_modules/@tiptap/react/dist/index.d.ts +534 -0
  549. package/node_modules/@tiptap/react/dist/index.js +1131 -0
  550. package/node_modules/@tiptap/react/dist/index.js.map +1 -0
  551. package/node_modules/@tiptap/react/dist/menus/index.cjs +499 -0
  552. package/node_modules/@tiptap/react/dist/menus/index.cjs.map +1 -0
  553. package/node_modules/@tiptap/react/dist/menus/index.d.cts +19 -0
  554. package/node_modules/@tiptap/react/dist/menus/index.d.ts +19 -0
  555. package/node_modules/@tiptap/react/dist/menus/index.js +461 -0
  556. package/node_modules/@tiptap/react/dist/menus/index.js.map +1 -0
  557. package/node_modules/@tiptap/react/package.json +76 -0
  558. package/node_modules/@tiptap/react/src/Context.tsx +60 -0
  559. package/node_modules/@tiptap/react/src/Editor.ts +13 -0
  560. package/node_modules/@tiptap/react/src/EditorContent.tsx +229 -0
  561. package/node_modules/@tiptap/react/src/NodeViewContent.tsx +30 -0
  562. package/node_modules/@tiptap/react/src/NodeViewWrapper.tsx +27 -0
  563. package/node_modules/@tiptap/react/src/ReactMarkViewRenderer.tsx +106 -0
  564. package/node_modules/@tiptap/react/src/ReactNodeViewRenderer.tsx +387 -0
  565. package/node_modules/@tiptap/react/src/ReactRenderer.tsx +282 -0
  566. package/node_modules/@tiptap/react/src/Tiptap.tsx +224 -0
  567. package/node_modules/@tiptap/react/src/index.ts +13 -0
  568. package/node_modules/@tiptap/react/src/menus/BubbleMenu.spec.ts +174 -0
  569. package/node_modules/@tiptap/react/src/menus/BubbleMenu.tsx +153 -0
  570. package/node_modules/@tiptap/react/src/menus/FloatingMenu.spec.ts +164 -0
  571. package/node_modules/@tiptap/react/src/menus/FloatingMenu.tsx +137 -0
  572. package/node_modules/@tiptap/react/src/menus/getAutoPluginKey.ts +5 -0
  573. package/node_modules/@tiptap/react/src/menus/index.ts +2 -0
  574. package/node_modules/@tiptap/react/src/menus/useMenuElementProps.ts +354 -0
  575. package/node_modules/@tiptap/react/src/types.ts +6 -0
  576. package/node_modules/@tiptap/react/src/useEditor.ts +382 -0
  577. package/node_modules/@tiptap/react/src/useEditorState.ts +173 -0
  578. package/node_modules/@tiptap/react/src/useReactNodeView.ts +28 -0
  579. package/node_modules/@tiptap/suggestion/LICENSE.md +21 -0
  580. package/node_modules/@tiptap/suggestion/README.md +18 -0
  581. package/node_modules/@tiptap/suggestion/dist/index.cjs +369 -0
  582. package/node_modules/@tiptap/suggestion/dist/index.cjs.map +1 -0
  583. package/node_modules/@tiptap/suggestion/dist/index.d.cts +213 -0
  584. package/node_modules/@tiptap/suggestion/dist/index.d.ts +213 -0
  585. package/node_modules/@tiptap/suggestion/dist/index.js +339 -0
  586. package/node_modules/@tiptap/suggestion/dist/index.js.map +1 -0
  587. package/node_modules/@tiptap/suggestion/package.json +50 -0
  588. package/node_modules/@tiptap/suggestion/src/__tests__/suggestion.test.ts +127 -0
  589. package/node_modules/@tiptap/suggestion/src/findSuggestionMatch.ts +79 -0
  590. package/node_modules/@tiptap/suggestion/src/index.ts +8 -0
  591. package/node_modules/@tiptap/suggestion/src/suggestion.ts +585 -0
  592. package/node_modules/@types/linkify-it/LICENSE +21 -0
  593. package/node_modules/@types/linkify-it/README.md +15 -0
  594. package/node_modules/@types/linkify-it/build/index.cjs.d.ts +178 -0
  595. package/node_modules/@types/linkify-it/index.d.mts +174 -0
  596. package/node_modules/@types/linkify-it/index.d.ts +3 -0
  597. package/node_modules/@types/linkify-it/package.json +50 -0
  598. package/node_modules/@types/markdown-it/LICENSE +21 -0
  599. package/node_modules/@types/markdown-it/README.md +15 -0
  600. package/node_modules/@types/markdown-it/dist/index.cjs.d.ts +1236 -0
  601. package/node_modules/@types/markdown-it/dist/markdown-it.d.ts +5 -0
  602. package/node_modules/@types/markdown-it/dist/markdown-it.min.d.ts +5 -0
  603. package/node_modules/@types/markdown-it/index.d.mts +1 -0
  604. package/node_modules/@types/markdown-it/index.d.ts +3 -0
  605. package/node_modules/@types/markdown-it/lib/common/html_blocks.d.mts +7 -0
  606. package/node_modules/@types/markdown-it/lib/common/html_re.d.mts +2 -0
  607. package/node_modules/@types/markdown-it/lib/common/utils.d.mts +62 -0
  608. package/node_modules/@types/markdown-it/lib/helpers/index.d.mts +5 -0
  609. package/node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.mts +7 -0
  610. package/node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.mts +3 -0
  611. package/node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.mts +29 -0
  612. package/node_modules/@types/markdown-it/lib/index.d.mts +404 -0
  613. package/node_modules/@types/markdown-it/lib/parser_block.d.mts +25 -0
  614. package/node_modules/@types/markdown-it/lib/parser_core.d.mts +18 -0
  615. package/node_modules/@types/markdown-it/lib/parser_inline.d.mts +38 -0
  616. package/node_modules/@types/markdown-it/lib/renderer.d.mts +96 -0
  617. package/node_modules/@types/markdown-it/lib/ruler.d.mts +158 -0
  618. package/node_modules/@types/markdown-it/lib/rules_block/state_block.d.mts +124 -0
  619. package/node_modules/@types/markdown-it/lib/rules_core/state_core.d.mts +18 -0
  620. package/node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.mts +73 -0
  621. package/node_modules/@types/markdown-it/lib/token.d.mts +108 -0
  622. package/node_modules/@types/markdown-it/package.json +54 -0
  623. package/node_modules/@types/mdurl/LICENSE +21 -0
  624. package/node_modules/@types/mdurl/README.md +15 -0
  625. package/node_modules/@types/mdurl/build/index.cjs.d.ts +52 -0
  626. package/node_modules/@types/mdurl/index.d.mts +6 -0
  627. package/node_modules/@types/mdurl/index.d.ts +3 -0
  628. package/node_modules/@types/mdurl/lib/decode.d.mts +10 -0
  629. package/node_modules/@types/mdurl/lib/encode.d.mts +15 -0
  630. package/node_modules/@types/mdurl/lib/format.d.mts +3 -0
  631. package/node_modules/@types/mdurl/lib/parse.d.mts +18 -0
  632. package/node_modules/@types/mdurl/package.json +36 -0
  633. package/node_modules/@types/use-sync-external-store/LICENSE +21 -0
  634. package/node_modules/@types/use-sync-external-store/README.md +15 -0
  635. package/node_modules/@types/use-sync-external-store/index.d.ts +5 -0
  636. package/node_modules/@types/use-sync-external-store/package.json +30 -0
  637. package/node_modules/@types/use-sync-external-store/shim/index.d.ts +1 -0
  638. package/node_modules/@types/use-sync-external-store/shim/with-selector.d.ts +1 -0
  639. package/node_modules/@types/use-sync-external-store/with-selector.d.ts +7 -0
  640. package/node_modules/argparse/LICENSE +254 -0
  641. package/node_modules/argparse/README.md +84 -0
  642. package/node_modules/argparse/argparse.js +3707 -0
  643. package/node_modules/argparse/lib/sub.js +67 -0
  644. package/node_modules/argparse/lib/textwrap.js +440 -0
  645. package/node_modules/argparse/package.json +31 -0
  646. package/node_modules/crelt/LICENSE +19 -0
  647. package/node_modules/crelt/README.md +23 -0
  648. package/node_modules/crelt/dist/index.cjs +31 -0
  649. package/node_modules/crelt/dist/index.d.cts +4 -0
  650. package/node_modules/crelt/index.d.ts +4 -0
  651. package/node_modules/crelt/index.js +28 -0
  652. package/node_modules/crelt/package.json +35 -0
  653. package/node_modules/crelt/rollup.config.js +13 -0
  654. package/node_modules/entities/LICENSE +11 -0
  655. package/node_modules/entities/lib/decode.d.ts +211 -0
  656. package/node_modules/entities/lib/decode.d.ts.map +1 -0
  657. package/node_modules/entities/lib/decode.js +536 -0
  658. package/node_modules/entities/lib/decode.js.map +1 -0
  659. package/node_modules/entities/lib/decode_codepoint.d.ts +19 -0
  660. package/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
  661. package/node_modules/entities/lib/decode_codepoint.js +76 -0
  662. package/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  663. package/node_modules/entities/lib/encode.d.ts +22 -0
  664. package/node_modules/entities/lib/encode.d.ts.map +1 -0
  665. package/node_modules/entities/lib/encode.js +77 -0
  666. package/node_modules/entities/lib/encode.js.map +1 -0
  667. package/node_modules/entities/lib/escape.d.ts +43 -0
  668. package/node_modules/entities/lib/escape.d.ts.map +1 -0
  669. package/node_modules/entities/lib/escape.js +122 -0
  670. package/node_modules/entities/lib/escape.js.map +1 -0
  671. package/node_modules/entities/lib/esm/decode.d.ts +211 -0
  672. package/node_modules/entities/lib/esm/decode.d.ts.map +1 -0
  673. package/node_modules/entities/lib/esm/decode.js +496 -0
  674. package/node_modules/entities/lib/esm/decode.js.map +1 -0
  675. package/node_modules/entities/lib/esm/decode_codepoint.d.ts +19 -0
  676. package/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +1 -0
  677. package/node_modules/entities/lib/esm/decode_codepoint.js +71 -0
  678. package/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
  679. package/node_modules/entities/lib/esm/encode.d.ts +22 -0
  680. package/node_modules/entities/lib/esm/encode.d.ts.map +1 -0
  681. package/node_modules/entities/lib/esm/encode.js +69 -0
  682. package/node_modules/entities/lib/esm/encode.js.map +1 -0
  683. package/node_modules/entities/lib/esm/escape.d.ts +43 -0
  684. package/node_modules/entities/lib/esm/escape.d.ts.map +1 -0
  685. package/node_modules/entities/lib/esm/escape.js +116 -0
  686. package/node_modules/entities/lib/esm/escape.js.map +1 -0
  687. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +3 -0
  688. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +1 -0
  689. package/node_modules/entities/lib/esm/generated/decode-data-html.js +7 -0
  690. package/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
  691. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +3 -0
  692. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +1 -0
  693. package/node_modules/entities/lib/esm/generated/decode-data-xml.js +7 -0
  694. package/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
  695. package/node_modules/entities/lib/esm/generated/encode-html.d.ts +8 -0
  696. package/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +1 -0
  697. package/node_modules/entities/lib/esm/generated/encode-html.js +10 -0
  698. package/node_modules/entities/lib/esm/generated/encode-html.js.map +1 -0
  699. package/node_modules/entities/lib/esm/index.d.ts +96 -0
  700. package/node_modules/entities/lib/esm/index.d.ts.map +1 -0
  701. package/node_modules/entities/lib/esm/index.js +99 -0
  702. package/node_modules/entities/lib/esm/index.js.map +1 -0
  703. package/node_modules/entities/lib/esm/package.json +1 -0
  704. package/node_modules/entities/lib/generated/decode-data-html.d.ts +3 -0
  705. package/node_modules/entities/lib/generated/decode-data-html.d.ts.map +1 -0
  706. package/node_modules/entities/lib/generated/decode-data-html.js +9 -0
  707. package/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  708. package/node_modules/entities/lib/generated/decode-data-xml.d.ts +3 -0
  709. package/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +1 -0
  710. package/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
  711. package/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  712. package/node_modules/entities/lib/generated/encode-html.d.ts +8 -0
  713. package/node_modules/entities/lib/generated/encode-html.d.ts.map +1 -0
  714. package/node_modules/entities/lib/generated/encode-html.js +12 -0
  715. package/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  716. package/node_modules/entities/lib/index.d.ts +96 -0
  717. package/node_modules/entities/lib/index.d.ts.map +1 -0
  718. package/node_modules/entities/lib/index.js +126 -0
  719. package/node_modules/entities/lib/index.js.map +1 -0
  720. package/node_modules/entities/package.json +90 -0
  721. package/node_modules/entities/readme.md +122 -0
  722. package/node_modules/escape-string-regexp/index.d.ts +18 -0
  723. package/node_modules/escape-string-regexp/index.js +13 -0
  724. package/node_modules/escape-string-regexp/license +9 -0
  725. package/node_modules/escape-string-regexp/package.json +38 -0
  726. package/node_modules/escape-string-regexp/readme.md +34 -0
  727. package/node_modules/fast-equals/LICENSE +21 -0
  728. package/node_modules/fast-equals/README.md +477 -0
  729. package/node_modules/fast-equals/dist/cjs/comparator.d.cts +60 -0
  730. package/node_modules/fast-equals/dist/cjs/equals.d.cts +62 -0
  731. package/node_modules/fast-equals/dist/cjs/index.cjs +653 -0
  732. package/node_modules/fast-equals/dist/cjs/index.cjs.map +1 -0
  733. package/node_modules/fast-equals/dist/cjs/index.d.cts +66 -0
  734. package/node_modules/fast-equals/dist/cjs/internalTypes.d.cts +178 -0
  735. package/node_modules/fast-equals/dist/cjs/utils.d.cts +33 -0
  736. package/node_modules/fast-equals/dist/es/comparator.d.mts +60 -0
  737. package/node_modules/fast-equals/dist/es/equals.d.mts +62 -0
  738. package/node_modules/fast-equals/dist/es/index.d.mts +66 -0
  739. package/node_modules/fast-equals/dist/es/index.mjs +642 -0
  740. package/node_modules/fast-equals/dist/es/index.mjs.map +1 -0
  741. package/node_modules/fast-equals/dist/es/internalTypes.d.mts +178 -0
  742. package/node_modules/fast-equals/dist/es/utils.d.mts +33 -0
  743. package/node_modules/fast-equals/dist/umd/comparator.d.ts +26 -0
  744. package/node_modules/fast-equals/dist/umd/equals.d.ts +62 -0
  745. package/node_modules/fast-equals/dist/umd/index.d.ts +47 -0
  746. package/node_modules/fast-equals/dist/umd/index.js +659 -0
  747. package/node_modules/fast-equals/dist/umd/index.js.map +1 -0
  748. package/node_modules/fast-equals/dist/umd/internalTypes.d.ts +159 -0
  749. package/node_modules/fast-equals/dist/umd/utils.d.ts +28 -0
  750. package/node_modules/fast-equals/index.d.ts +260 -0
  751. package/node_modules/fast-equals/package.json +113 -0
  752. package/node_modules/linkify-it/LICENSE +22 -0
  753. package/node_modules/linkify-it/README.md +196 -0
  754. package/node_modules/linkify-it/build/index.cjs.js +832 -0
  755. package/node_modules/linkify-it/index.mjs +642 -0
  756. package/node_modules/linkify-it/lib/re.mjs +189 -0
  757. package/node_modules/linkify-it/package.json +58 -0
  758. package/node_modules/markdown-it/LICENSE +22 -0
  759. package/node_modules/markdown-it/README.md +324 -0
  760. package/node_modules/markdown-it/bin/markdown-it.mjs +107 -0
  761. package/node_modules/markdown-it/dist/index.cjs.js +5547 -0
  762. package/node_modules/markdown-it/dist/markdown-it.js +6969 -0
  763. package/node_modules/markdown-it/dist/markdown-it.min.js +2 -0
  764. package/node_modules/markdown-it/index.mjs +1 -0
  765. package/node_modules/markdown-it/lib/common/html_blocks.mjs +67 -0
  766. package/node_modules/markdown-it/lib/common/html_re.mjs +25 -0
  767. package/node_modules/markdown-it/lib/common/utils.mjs +304 -0
  768. package/node_modules/markdown-it/lib/helpers/index.mjs +11 -0
  769. package/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +77 -0
  770. package/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +49 -0
  771. package/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +66 -0
  772. package/node_modules/markdown-it/lib/index.mjs +565 -0
  773. package/node_modules/markdown-it/lib/parser_block.mjs +134 -0
  774. package/node_modules/markdown-it/lib/parser_core.mjs +62 -0
  775. package/node_modules/markdown-it/lib/parser_inline.mjs +197 -0
  776. package/node_modules/markdown-it/lib/presets/commonmark.mjs +88 -0
  777. package/node_modules/markdown-it/lib/presets/default.mjs +47 -0
  778. package/node_modules/markdown-it/lib/presets/zero.mjs +70 -0
  779. package/node_modules/markdown-it/lib/renderer.mjs +322 -0
  780. package/node_modules/markdown-it/lib/ruler.mjs +340 -0
  781. package/node_modules/markdown-it/lib/rules_block/blockquote.mjs +209 -0
  782. package/node_modules/markdown-it/lib/rules_block/code.mjs +30 -0
  783. package/node_modules/markdown-it/lib/rules_block/fence.mjs +94 -0
  784. package/node_modules/markdown-it/lib/rules_block/heading.mjs +51 -0
  785. package/node_modules/markdown-it/lib/rules_block/hr.mjs +40 -0
  786. package/node_modules/markdown-it/lib/rules_block/html_block.mjs +69 -0
  787. package/node_modules/markdown-it/lib/rules_block/lheading.mjs +82 -0
  788. package/node_modules/markdown-it/lib/rules_block/list.mjs +331 -0
  789. package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +46 -0
  790. package/node_modules/markdown-it/lib/rules_block/reference.mjs +212 -0
  791. package/node_modules/markdown-it/lib/rules_block/state_block.mjs +220 -0
  792. package/node_modules/markdown-it/lib/rules_block/table.mjs +228 -0
  793. package/node_modules/markdown-it/lib/rules_core/block.mjs +13 -0
  794. package/node_modules/markdown-it/lib/rules_core/inline.mjs +11 -0
  795. package/node_modules/markdown-it/lib/rules_core/linkify.mjs +134 -0
  796. package/node_modules/markdown-it/lib/rules_core/normalize.mjs +17 -0
  797. package/node_modules/markdown-it/lib/rules_core/replacements.mjs +101 -0
  798. package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +193 -0
  799. package/node_modules/markdown-it/lib/rules_core/state_core.mjs +17 -0
  800. package/node_modules/markdown-it/lib/rules_core/text_join.mjs +43 -0
  801. package/node_modules/markdown-it/lib/rules_inline/autolink.mjs +72 -0
  802. package/node_modules/markdown-it/lib/rules_inline/backticks.mjs +60 -0
  803. package/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +124 -0
  804. package/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +123 -0
  805. package/node_modules/markdown-it/lib/rules_inline/entity.mjs +51 -0
  806. package/node_modules/markdown-it/lib/rules_inline/escape.mjs +69 -0
  807. package/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +38 -0
  808. package/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +50 -0
  809. package/node_modules/markdown-it/lib/rules_inline/image.mjs +138 -0
  810. package/node_modules/markdown-it/lib/rules_inline/link.mjs +139 -0
  811. package/node_modules/markdown-it/lib/rules_inline/linkify.mjs +63 -0
  812. package/node_modules/markdown-it/lib/rules_inline/newline.mjs +42 -0
  813. package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +123 -0
  814. package/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +127 -0
  815. package/node_modules/markdown-it/lib/rules_inline/text.mjs +86 -0
  816. package/node_modules/markdown-it/lib/token.mjs +191 -0
  817. package/node_modules/markdown-it/package.json +92 -0
  818. package/node_modules/mdurl/LICENSE +45 -0
  819. package/node_modules/mdurl/README.md +102 -0
  820. package/node_modules/mdurl/build/index.cjs.js +534 -0
  821. package/node_modules/mdurl/index.mjs +11 -0
  822. package/node_modules/mdurl/lib/decode.mjs +112 -0
  823. package/node_modules/mdurl/lib/encode.mjs +89 -0
  824. package/node_modules/mdurl/lib/format.mjs +21 -0
  825. package/node_modules/mdurl/lib/parse.mjs +308 -0
  826. package/node_modules/mdurl/package.json +37 -0
  827. package/node_modules/orderedmap/LICENSE +19 -0
  828. package/node_modules/orderedmap/README.md +69 -0
  829. package/node_modules/orderedmap/dist/index.cjs +139 -0
  830. package/node_modules/orderedmap/dist/index.d.cts +33 -0
  831. package/node_modules/orderedmap/dist/index.d.ts +33 -0
  832. package/node_modules/orderedmap/dist/index.js +137 -0
  833. package/node_modules/orderedmap/package.json +39 -0
  834. package/node_modules/prosemirror-changeset/CHANGELOG.md +147 -0
  835. package/node_modules/prosemirror-changeset/LICENSE +19 -0
  836. package/node_modules/prosemirror-changeset/README.md +175 -0
  837. package/node_modules/prosemirror-changeset/dist/index.cjs +585 -0
  838. package/node_modules/prosemirror-changeset/dist/index.d.cts +186 -0
  839. package/node_modules/prosemirror-changeset/dist/index.d.ts +186 -0
  840. package/node_modules/prosemirror-changeset/dist/index.js +715 -0
  841. package/node_modules/prosemirror-changeset/package.json +40 -0
  842. package/node_modules/prosemirror-changeset/src/README.md +32 -0
  843. package/node_modules/prosemirror-changeset/src/change.ts +189 -0
  844. package/node_modules/prosemirror-changeset/src/changeset.ts +212 -0
  845. package/node_modules/prosemirror-changeset/src/diff.ts +151 -0
  846. package/node_modules/prosemirror-changeset/src/simplify.ts +132 -0
  847. package/node_modules/prosemirror-changeset/test/test-changed-range.ts +48 -0
  848. package/node_modules/prosemirror-changeset/test/test-changes.ts +211 -0
  849. package/node_modules/prosemirror-changeset/test/test-diff.ts +69 -0
  850. package/node_modules/prosemirror-changeset/test/test-merge.ts +56 -0
  851. package/node_modules/prosemirror-changeset/test/test-simplify.ts +71 -0
  852. package/node_modules/prosemirror-collab/.tern-project +8 -0
  853. package/node_modules/prosemirror-collab/CHANGELOG.md +77 -0
  854. package/node_modules/prosemirror-collab/CONTRIBUTING.md +104 -0
  855. package/node_modules/prosemirror-collab/LICENSE +19 -0
  856. package/node_modules/prosemirror-collab/README.md +28 -0
  857. package/node_modules/prosemirror-collab/dist/index.cjs +155 -0
  858. package/node_modules/prosemirror-collab/dist/index.d.cts +60 -0
  859. package/node_modules/prosemirror-collab/dist/index.d.ts +60 -0
  860. package/node_modules/prosemirror-collab/dist/index.js +156 -0
  861. package/node_modules/prosemirror-collab/package.json +40 -0
  862. package/node_modules/prosemirror-collab/src/README.md +11 -0
  863. package/node_modules/prosemirror-collab/src/collab.ts +184 -0
  864. package/node_modules/prosemirror-commands/.tern-project +8 -0
  865. package/node_modules/prosemirror-commands/CHANGELOG.md +322 -0
  866. package/node_modules/prosemirror-commands/CONTRIBUTING.md +104 -0
  867. package/node_modules/prosemirror-commands/LICENSE +19 -0
  868. package/node_modules/prosemirror-commands/README.md +28 -0
  869. package/node_modules/prosemirror-commands/dist/index.cjs +687 -0
  870. package/node_modules/prosemirror-commands/dist/index.d.cts +215 -0
  871. package/node_modules/prosemirror-commands/dist/index.d.ts +215 -0
  872. package/node_modules/prosemirror-commands/dist/index.js +850 -0
  873. package/node_modules/prosemirror-commands/package.json +39 -0
  874. package/node_modules/prosemirror-commands/src/README.md +40 -0
  875. package/node_modules/prosemirror-commands/src/commands.ts +783 -0
  876. package/node_modules/prosemirror-dropcursor/CHANGELOG.md +137 -0
  877. package/node_modules/prosemirror-dropcursor/CONTRIBUTING.md +100 -0
  878. package/node_modules/prosemirror-dropcursor/LICENSE +19 -0
  879. package/node_modules/prosemirror-dropcursor/README.md +50 -0
  880. package/node_modules/prosemirror-dropcursor/dist/index.cjs +185 -0
  881. package/node_modules/prosemirror-dropcursor/dist/index.d.cts +38 -0
  882. package/node_modules/prosemirror-dropcursor/dist/index.d.ts +38 -0
  883. package/node_modules/prosemirror-dropcursor/dist/index.js +146 -0
  884. package/node_modules/prosemirror-dropcursor/package.json +38 -0
  885. package/node_modules/prosemirror-dropcursor/src/dropcursor.ts +170 -0
  886. package/node_modules/prosemirror-gapcursor/CHANGELOG.md +122 -0
  887. package/node_modules/prosemirror-gapcursor/CONTRIBUTING.md +104 -0
  888. package/node_modules/prosemirror-gapcursor/LICENSE +19 -0
  889. package/node_modules/prosemirror-gapcursor/README.md +31 -0
  890. package/node_modules/prosemirror-gapcursor/dist/index.cjs +239 -0
  891. package/node_modules/prosemirror-gapcursor/dist/index.d.cts +31 -0
  892. package/node_modules/prosemirror-gapcursor/dist/index.d.ts +31 -0
  893. package/node_modules/prosemirror-gapcursor/dist/index.js +239 -0
  894. package/node_modules/prosemirror-gapcursor/package.json +43 -0
  895. package/node_modules/prosemirror-gapcursor/src/README.md +21 -0
  896. package/node_modules/prosemirror-gapcursor/src/gapcursor.ts +141 -0
  897. package/node_modules/prosemirror-gapcursor/src/index.ts +91 -0
  898. package/node_modules/prosemirror-gapcursor/style/gapcursor.css +25 -0
  899. package/node_modules/prosemirror-history/.tern-project +8 -0
  900. package/node_modules/prosemirror-history/CHANGELOG.md +170 -0
  901. package/node_modules/prosemirror-history/CONTRIBUTING.md +104 -0
  902. package/node_modules/prosemirror-history/LICENSE +19 -0
  903. package/node_modules/prosemirror-history/README.md +27 -0
  904. package/node_modules/prosemirror-history/dist/index.cjs +382 -0
  905. package/node_modules/prosemirror-history/dist/index.d.cts +64 -0
  906. package/node_modules/prosemirror-history/dist/index.d.ts +64 -0
  907. package/node_modules/prosemirror-history/dist/index.js +453 -0
  908. package/node_modules/prosemirror-history/package.json +40 -0
  909. package/node_modules/prosemirror-history/src/README.md +23 -0
  910. package/node_modules/prosemirror-history/src/history.ts +465 -0
  911. package/node_modules/prosemirror-inputrules/.tern-project +8 -0
  912. package/node_modules/prosemirror-inputrules/CHANGELOG.md +127 -0
  913. package/node_modules/prosemirror-inputrules/CONTRIBUTING.md +104 -0
  914. package/node_modules/prosemirror-inputrules/LICENSE +19 -0
  915. package/node_modules/prosemirror-inputrules/README.md +29 -0
  916. package/node_modules/prosemirror-inputrules/dist/index.cjs +194 -0
  917. package/node_modules/prosemirror-inputrules/dist/index.d.cts +131 -0
  918. package/node_modules/prosemirror-inputrules/dist/index.d.ts +131 -0
  919. package/node_modules/prosemirror-inputrules/dist/index.js +239 -0
  920. package/node_modules/prosemirror-inputrules/package.json +36 -0
  921. package/node_modules/prosemirror-inputrules/src/README.md +23 -0
  922. package/node_modules/prosemirror-inputrules/src/index.ts +4 -0
  923. package/node_modules/prosemirror-inputrules/src/inputrules.ts +167 -0
  924. package/node_modules/prosemirror-inputrules/src/rulebuilders.ts +59 -0
  925. package/node_modules/prosemirror-inputrules/src/rules.ts +17 -0
  926. package/node_modules/prosemirror-keymap/.tern-project +8 -0
  927. package/node_modules/prosemirror-keymap/CHANGELOG.md +104 -0
  928. package/node_modules/prosemirror-keymap/CONTRIBUTING.md +104 -0
  929. package/node_modules/prosemirror-keymap/LICENSE +19 -0
  930. package/node_modules/prosemirror-keymap/README.md +27 -0
  931. package/node_modules/prosemirror-keymap/dist/index.cjs +65 -0
  932. package/node_modules/prosemirror-keymap/dist/index.d.cts +47 -0
  933. package/node_modules/prosemirror-keymap/dist/index.d.ts +47 -0
  934. package/node_modules/prosemirror-keymap/dist/index.js +128 -0
  935. package/node_modules/prosemirror-keymap/package.json +38 -0
  936. package/node_modules/prosemirror-keymap/src/README.md +5 -0
  937. package/node_modules/prosemirror-keymap/src/keymap.ts +105 -0
  938. package/node_modules/prosemirror-markdown/.tern-project +8 -0
  939. package/node_modules/prosemirror-markdown/CHANGELOG.md +311 -0
  940. package/node_modules/prosemirror-markdown/CONTRIBUTING.md +100 -0
  941. package/node_modules/prosemirror-markdown/LICENSE +19 -0
  942. package/node_modules/prosemirror-markdown/README.md +276 -0
  943. package/node_modules/prosemirror-markdown/dist/index.cjs +966 -0
  944. package/node_modules/prosemirror-markdown/dist/index.d.cts +335 -0
  945. package/node_modules/prosemirror-markdown/dist/index.d.ts +335 -0
  946. package/node_modules/prosemirror-markdown/dist/index.js +878 -0
  947. package/node_modules/prosemirror-markdown/package.json +40 -0
  948. package/node_modules/prosemirror-markdown/src/README.md +42 -0
  949. package/node_modules/prosemirror-markdown/src/from_markdown.ts +272 -0
  950. package/node_modules/prosemirror-markdown/src/index.ts +5 -0
  951. package/node_modules/prosemirror-markdown/src/schema.ts +156 -0
  952. package/node_modules/prosemirror-markdown/src/to_markdown.ts +483 -0
  953. package/node_modules/prosemirror-menu/.tern-project +8 -0
  954. package/node_modules/prosemirror-menu/CHANGELOG.md +107 -0
  955. package/node_modules/prosemirror-menu/CONTRIBUTING.md +100 -0
  956. package/node_modules/prosemirror-menu/LICENSE +19 -0
  957. package/node_modules/prosemirror-menu/README.md +235 -0
  958. package/node_modules/prosemirror-menu/dist/index.cjs +798 -0
  959. package/node_modules/prosemirror-menu/dist/index.d.cts +281 -0
  960. package/node_modules/prosemirror-menu/dist/index.d.ts +281 -0
  961. package/node_modules/prosemirror-menu/dist/index.js +795 -0
  962. package/node_modules/prosemirror-menu/package.json +42 -0
  963. package/node_modules/prosemirror-menu/src/README.md +60 -0
  964. package/node_modules/prosemirror-menu/src/icons.ts +53 -0
  965. package/node_modules/prosemirror-menu/src/index.ts +4 -0
  966. package/node_modules/prosemirror-menu/src/menu.ts +628 -0
  967. package/node_modules/prosemirror-menu/src/menubar.ts +210 -0
  968. package/node_modules/prosemirror-menu/style/menu.css +169 -0
  969. package/node_modules/prosemirror-model/.tern-project +8 -0
  970. package/node_modules/prosemirror-model/CHANGELOG.md +730 -0
  971. package/node_modules/prosemirror-model/CONTRIBUTING.md +104 -0
  972. package/node_modules/prosemirror-model/LICENSE +19 -0
  973. package/node_modules/prosemirror-model/README.md +29 -0
  974. package/node_modules/prosemirror-model/dist/index.cjs +2898 -0
  975. package/node_modules/prosemirror-model/dist/index.d.cts +1679 -0
  976. package/node_modules/prosemirror-model/dist/index.d.ts +1679 -0
  977. package/node_modules/prosemirror-model/dist/index.js +3464 -0
  978. package/node_modules/prosemirror-model/package.json +38 -0
  979. package/node_modules/prosemirror-model/src/README.md +62 -0
  980. package/node_modules/prosemirror-model/src/comparedeep.ts +15 -0
  981. package/node_modules/prosemirror-model/src/content.ts +413 -0
  982. package/node_modules/prosemirror-model/src/diff.ts +52 -0
  983. package/node_modules/prosemirror-model/src/dom.ts +1 -0
  984. package/node_modules/prosemirror-model/src/fragment.ts +268 -0
  985. package/node_modules/prosemirror-model/src/from_dom.ts +848 -0
  986. package/node_modules/prosemirror-model/src/index.ts +11 -0
  987. package/node_modules/prosemirror-model/src/mark.ts +111 -0
  988. package/node_modules/prosemirror-model/src/node.ts +402 -0
  989. package/node_modules/prosemirror-model/src/replace.ts +225 -0
  990. package/node_modules/prosemirror-model/src/resolvedpos.ts +289 -0
  991. package/node_modules/prosemirror-model/src/schema.ts +705 -0
  992. package/node_modules/prosemirror-model/src/to_dom.ts +238 -0
  993. package/node_modules/prosemirror-schema-basic/.tern-project +8 -0
  994. package/node_modules/prosemirror-schema-basic/CHANGELOG.md +81 -0
  995. package/node_modules/prosemirror-schema-basic/CONTRIBUTING.md +100 -0
  996. package/node_modules/prosemirror-schema-basic/LICENSE +19 -0
  997. package/node_modules/prosemirror-schema-basic/README.md +28 -0
  998. package/node_modules/prosemirror-schema-basic/dist/index.cjs +246 -0
  999. package/node_modules/prosemirror-schema-basic/dist/index.d.cts +87 -0
  1000. package/node_modules/prosemirror-schema-basic/dist/index.d.ts +87 -0
  1001. package/node_modules/prosemirror-schema-basic/dist/index.js +183 -0
  1002. package/node_modules/prosemirror-schema-basic/package.json +37 -0
  1003. package/node_modules/prosemirror-schema-basic/src/README.md +8 -0
  1004. package/node_modules/prosemirror-schema-basic/src/schema-basic.ts +166 -0
  1005. package/node_modules/prosemirror-schema-list/.tern-project +8 -0
  1006. package/node_modules/prosemirror-schema-list/CHANGELOG.md +140 -0
  1007. package/node_modules/prosemirror-schema-list/CONTRIBUTING.md +100 -0
  1008. package/node_modules/prosemirror-schema-list/LICENSE +19 -0
  1009. package/node_modules/prosemirror-schema-list/README.md +28 -0
  1010. package/node_modules/prosemirror-schema-list/dist/index.cjs +253 -0
  1011. package/node_modules/prosemirror-schema-list/dist/index.d.cts +71 -0
  1012. package/node_modules/prosemirror-schema-list/dist/index.d.ts +71 -0
  1013. package/node_modules/prosemirror-schema-list/dist/index.js +289 -0
  1014. package/node_modules/prosemirror-schema-list/package.json +40 -0
  1015. package/node_modules/prosemirror-schema-list/src/README.md +29 -0
  1016. package/node_modules/prosemirror-schema-list/src/schema-list.ts +267 -0
  1017. package/node_modules/prosemirror-state/.tern-project +8 -0
  1018. package/node_modules/prosemirror-state/CHANGELOG.md +296 -0
  1019. package/node_modules/prosemirror-state/CONTRIBUTING.md +104 -0
  1020. package/node_modules/prosemirror-state/LICENSE +19 -0
  1021. package/node_modules/prosemirror-state/README.md +28 -0
  1022. package/node_modules/prosemirror-state/dist/index.cjs +884 -0
  1023. package/node_modules/prosemirror-state/dist/index.d.cts +709 -0
  1024. package/node_modules/prosemirror-state/dist/index.d.ts +709 -0
  1025. package/node_modules/prosemirror-state/dist/index.js +1002 -0
  1026. package/node_modules/prosemirror-state/package.json +39 -0
  1027. package/node_modules/prosemirror-state/src/README.md +42 -0
  1028. package/node_modules/prosemirror-state/src/index.ts +7 -0
  1029. package/node_modules/prosemirror-state/src/plugin.ts +142 -0
  1030. package/node_modules/prosemirror-state/src/selection.ts +462 -0
  1031. package/node_modules/prosemirror-state/src/state.ts +266 -0
  1032. package/node_modules/prosemirror-state/src/transaction.ts +215 -0
  1033. package/node_modules/prosemirror-tables/LICENSE +19 -0
  1034. package/node_modules/prosemirror-tables/README.md +254 -0
  1035. package/node_modules/prosemirror-tables/dist/index.cjs +2683 -0
  1036. package/node_modules/prosemirror-tables/dist/index.d.cts +751 -0
  1037. package/node_modules/prosemirror-tables/dist/index.d.cts.map +1 -0
  1038. package/node_modules/prosemirror-tables/dist/index.d.ts +751 -0
  1039. package/node_modules/prosemirror-tables/dist/index.d.ts.map +1 -0
  1040. package/node_modules/prosemirror-tables/dist/index.js +2626 -0
  1041. package/node_modules/prosemirror-tables/dist/index.js.map +1 -0
  1042. package/node_modules/prosemirror-tables/package.json +80 -0
  1043. package/node_modules/prosemirror-tables/style/tables.css +48 -0
  1044. package/node_modules/prosemirror-trailing-node/LICENSE +21 -0
  1045. package/node_modules/prosemirror-trailing-node/dist/_tsup-dts-rollup.d.cts +41 -0
  1046. package/node_modules/prosemirror-trailing-node/dist/_tsup-dts-rollup.d.ts +41 -0
  1047. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.cjs +70 -0
  1048. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.d.cts +2 -0
  1049. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.d.ts +2 -0
  1050. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.js +43 -0
  1051. package/node_modules/prosemirror-trailing-node/dist-types/index.d.ts +2 -0
  1052. package/node_modules/prosemirror-trailing-node/dist-types/trailing-node-plugin.d.ts +33 -0
  1053. package/node_modules/prosemirror-trailing-node/dist-types/tsconfig.tsbuildinfo +1 -0
  1054. package/node_modules/prosemirror-trailing-node/package.json +57 -0
  1055. package/node_modules/prosemirror-trailing-node/readme.md +55 -0
  1056. package/node_modules/prosemirror-transform/.tern-project +8 -0
  1057. package/node_modules/prosemirror-transform/CHANGELOG.md +502 -0
  1058. package/node_modules/prosemirror-transform/CONTRIBUTING.md +104 -0
  1059. package/node_modules/prosemirror-transform/LICENSE +19 -0
  1060. package/node_modules/prosemirror-transform/README.md +29 -0
  1061. package/node_modules/prosemirror-transform/dist/index.cjs +1888 -0
  1062. package/node_modules/prosemirror-transform/dist/index.d.cts +847 -0
  1063. package/node_modules/prosemirror-transform/dist/index.d.ts +847 -0
  1064. package/node_modules/prosemirror-transform/dist/index.js +2181 -0
  1065. package/node_modules/prosemirror-transform/package.json +37 -0
  1066. package/node_modules/prosemirror-transform/src/README.md +59 -0
  1067. package/node_modules/prosemirror-transform/src/attr_step.ts +98 -0
  1068. package/node_modules/prosemirror-transform/src/index.ts +11 -0
  1069. package/node_modules/prosemirror-transform/src/map.ts +284 -0
  1070. package/node_modules/prosemirror-transform/src/mark.ts +106 -0
  1071. package/node_modules/prosemirror-transform/src/mark_step.ts +224 -0
  1072. package/node_modules/prosemirror-transform/src/replace.ts +460 -0
  1073. package/node_modules/prosemirror-transform/src/replace_step.ts +178 -0
  1074. package/node_modules/prosemirror-transform/src/step.ts +97 -0
  1075. package/node_modules/prosemirror-transform/src/structure.ts +349 -0
  1076. package/node_modules/prosemirror-transform/src/transform.ts +271 -0
  1077. package/node_modules/prosemirror-view/.tern-project +8 -0
  1078. package/node_modules/prosemirror-view/CHANGELOG.md +2447 -0
  1079. package/node_modules/prosemirror-view/CONTRIBUTING.md +104 -0
  1080. package/node_modules/prosemirror-view/LICENSE +19 -0
  1081. package/node_modules/prosemirror-view/README.md +28 -0
  1082. package/node_modules/prosemirror-view/dist/index.cjs +5381 -0
  1083. package/node_modules/prosemirror-view/dist/index.d.cts +904 -0
  1084. package/node_modules/prosemirror-view/dist/index.d.ts +904 -0
  1085. package/node_modules/prosemirror-view/dist/index.js +5900 -0
  1086. package/node_modules/prosemirror-view/package.json +43 -0
  1087. package/node_modules/prosemirror-view/src/README.md +38 -0
  1088. package/node_modules/prosemirror-view/src/browser.ts +24 -0
  1089. package/node_modules/prosemirror-view/src/capturekeys.ts +345 -0
  1090. package/node_modules/prosemirror-view/src/clipboard.ts +263 -0
  1091. package/node_modules/prosemirror-view/src/decoration.ts +793 -0
  1092. package/node_modules/prosemirror-view/src/dom.ts +159 -0
  1093. package/node_modules/prosemirror-view/src/domchange.ts +383 -0
  1094. package/node_modules/prosemirror-view/src/domcoords.ts +515 -0
  1095. package/node_modules/prosemirror-view/src/domobserver.ts +392 -0
  1096. package/node_modules/prosemirror-view/src/index.ts +825 -0
  1097. package/node_modules/prosemirror-view/src/input.ts +830 -0
  1098. package/node_modules/prosemirror-view/src/selection.ts +216 -0
  1099. package/node_modules/prosemirror-view/src/viewdesc.ts +1590 -0
  1100. package/node_modules/prosemirror-view/style/prosemirror.css +54 -0
  1101. package/node_modules/punycode.js/LICENSE-MIT.txt +20 -0
  1102. package/node_modules/punycode.js/README.md +148 -0
  1103. package/node_modules/punycode.js/package.json +58 -0
  1104. package/node_modules/punycode.js/punycode.es6.js +444 -0
  1105. package/node_modules/punycode.js/punycode.js +443 -0
  1106. package/node_modules/rope-sequence/LICENSE +19 -0
  1107. package/node_modules/rope-sequence/README.md +63 -0
  1108. package/node_modules/rope-sequence/dist/index.cjs +209 -0
  1109. package/node_modules/rope-sequence/dist/index.d.cts +11 -0
  1110. package/node_modules/rope-sequence/dist/index.d.ts +11 -0
  1111. package/node_modules/rope-sequence/dist/index.js +207 -0
  1112. package/node_modules/rope-sequence/index.js +190 -0
  1113. package/node_modules/rope-sequence/package.json +34 -0
  1114. package/node_modules/rope-sequence/test.js +78 -0
  1115. package/node_modules/uc.micro/LICENSE.txt +20 -0
  1116. package/node_modules/uc.micro/README.md +14 -0
  1117. package/node_modules/uc.micro/build/index.cjs.js +20 -0
  1118. package/node_modules/uc.micro/categories/Cc/regex.mjs +1 -0
  1119. package/node_modules/uc.micro/categories/Cf/regex.mjs +1 -0
  1120. package/node_modules/uc.micro/categories/P/regex.mjs +1 -0
  1121. package/node_modules/uc.micro/categories/S/regex.mjs +1 -0
  1122. package/node_modules/uc.micro/categories/Z/regex.mjs +1 -0
  1123. package/node_modules/uc.micro/index.mjs +8 -0
  1124. package/node_modules/uc.micro/package.json +37 -0
  1125. package/node_modules/uc.micro/properties/Any/regex.mjs +1 -0
  1126. package/node_modules/use-sync-external-store/LICENSE +21 -0
  1127. package/node_modules/use-sync-external-store/README.md +5 -0
  1128. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +97 -0
  1129. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +85 -0
  1130. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +95 -0
  1131. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js +88 -0
  1132. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.js +59 -0
  1133. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +66 -0
  1134. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +96 -0
  1135. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +84 -0
  1136. package/node_modules/use-sync-external-store/cjs/use-sync-external-store.development.js +27 -0
  1137. package/node_modules/use-sync-external-store/cjs/use-sync-external-store.production.js +13 -0
  1138. package/node_modules/use-sync-external-store/index.js +7 -0
  1139. package/node_modules/use-sync-external-store/package.json +43 -0
  1140. package/node_modules/use-sync-external-store/shim/index.js +7 -0
  1141. package/node_modules/use-sync-external-store/shim/index.native.js +7 -0
  1142. package/node_modules/use-sync-external-store/shim/with-selector.js +7 -0
  1143. package/node_modules/use-sync-external-store/with-selector.js +7 -0
  1144. package/node_modules/w3c-keyname/.tern-port +1 -0
  1145. package/node_modules/w3c-keyname/LICENSE +19 -0
  1146. package/node_modules/w3c-keyname/README.md +18 -0
  1147. package/node_modules/w3c-keyname/index.cjs +127 -0
  1148. package/node_modules/w3c-keyname/index.d.cts +5 -0
  1149. package/node_modules/w3c-keyname/index.d.ts +5 -0
  1150. package/node_modules/w3c-keyname/index.js +119 -0
  1151. package/node_modules/w3c-keyname/package.json +37 -0
  1152. package/package.json +120 -3
  1153. package/public-api.md +23 -2
  1154. package/dist/chat/tool-renderers/KbSearchRenderer.d.ts +0 -2
  1155. package/dist/chat/tool-renderers/kb-search-result.d.ts +0 -19
  1156. package/dist/chunk-6ZDOQEWK.js.map +0 -1
  1157. package/dist/chunk-FQQJP2GJ.js.map +0 -1
  1158. package/dist/rich-input/extensions/kb-mention.d.ts +0 -18
  1159. package/dist/rich-input/extensions/workflow-mention.d.ts +0 -10
  1160. package/dist/rich-input/lib/kb-suggestions.d.ts +0 -37
  1161. /package/dist/{chunk-WCMGQJLE.js.map → chunk-EYRP6PV3.js.map} +0 -0
@@ -1894,6 +1894,12 @@ var CirclePause = createLucideIcon("CirclePause", [
1894
1894
  ["line", { x1: "14", x2: "14", y1: "15", y2: "9", key: "h65svq" }]
1895
1895
  ]);
1896
1896
 
1897
+ // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle-slash.js
1898
+ var CircleSlash = createLucideIcon("CircleSlash", [
1899
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1900
+ ["line", { x1: "9", x2: "15", y1: "15", y2: "9", key: "1dfufj" }]
1901
+ ]);
1902
+
1897
1903
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle-x.js
1898
1904
  var CircleX = createLucideIcon("CircleX", [
1899
1905
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
@@ -2303,14 +2309,6 @@ var RefreshCcw = createLucideIcon("RefreshCcw", [
2303
2309
  ["path", { d: "M16 16h5v5", key: "ccwih5" }]
2304
2310
  ]);
2305
2311
 
2306
- // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/refresh-cw.js
2307
- var RefreshCw = createLucideIcon("RefreshCw", [
2308
- ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
2309
- ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
2310
- ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
2311
- ["path", { d: "M8 16H3v5", key: "1cv678" }]
2312
- ]);
2313
-
2314
2312
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/rocket.js
2315
2313
  var Rocket = createLucideIcon("Rocket", [
2316
2314
  [
@@ -2429,13 +2427,6 @@ var TriangleAlert = createLucideIcon("TriangleAlert", [
2429
2427
  ["path", { d: "M12 17h.01", key: "p32p05" }]
2430
2428
  ]);
2431
2429
 
2432
- // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/workflow.js
2433
- var Workflow = createLucideIcon("Workflow", [
2434
- ["rect", { width: "8", height: "8", x: "3", y: "3", rx: "2", key: "by2w9f" }],
2435
- ["path", { d: "M7 11v4a2 2 0 0 0 2 2h4", key: "xkn7yn" }],
2436
- ["rect", { width: "8", height: "8", x: "13", y: "13", rx: "2", key: "1cgmvn" }]
2437
- ]);
2438
-
2439
2430
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/wrench.js
2440
2431
  var Wrench = createLucideIcon("Wrench", [
2441
2432
  [
@@ -2453,8 +2444,19 @@ var X = createLucideIcon("X", [
2453
2444
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
2454
2445
  ]);
2455
2446
 
2447
+ // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/zap.js
2448
+ var Zap = createLucideIcon("Zap", [
2449
+ [
2450
+ "path",
2451
+ {
2452
+ d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
2453
+ key: "1xq2db"
2454
+ }
2455
+ ]
2456
+ ]);
2457
+
2456
2458
  // src/components/PlanUpdateBlock.tsx
2457
- import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
2459
+ import { useEffect, useRef, useState } from "react";
2458
2460
 
2459
2461
  // ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
2460
2462
  function r(e2) {
@@ -5674,382 +5676,6 @@ async function copyToClipboard(text) {
5674
5676
  }
5675
5677
  }
5676
5678
 
5677
- // src/chat/lib/code-language.ts
5678
- var FILE_EXTENSION_ALIASES = {
5679
- ".bash": "bash",
5680
- ".css": "css",
5681
- ".go": "go",
5682
- ".htm": "html",
5683
- ".html": "html",
5684
- ".js": "javascript",
5685
- ".json": "json",
5686
- ".jsonc": "json",
5687
- ".jsx": "jsx",
5688
- ".md": "markdown",
5689
- ".mdx": "markdown",
5690
- ".py": "python",
5691
- ".rs": "rust",
5692
- ".scss": "css",
5693
- ".sh": "bash",
5694
- ".ts": "typescript",
5695
- ".tsx": "tsx",
5696
- ".yaml": "yaml",
5697
- ".yml": "yaml",
5698
- ".zsh": "bash"
5699
- };
5700
- function getCodeLanguageFromFilename(filePath) {
5701
- if (!filePath) return null;
5702
- const dotIndex = filePath.lastIndexOf(".");
5703
- if (dotIndex < 0) return null;
5704
- return FILE_EXTENSION_ALIASES[filePath.slice(dotIndex).toLowerCase()] ?? null;
5705
- }
5706
-
5707
- // src/chat/runtime/environment.tsx
5708
- import { createContext as createContext3, useContext as useContext3, useMemo as useMemo2 } from "react";
5709
-
5710
- // src/chat/runtime/session-source.tsx
5711
- import { createInitialSessionState } from "@blade-hq/agent-client/internal";
5712
- import {
5713
- createContext as createContext2,
5714
- useContext as useContext2,
5715
- useEffect,
5716
- useLayoutEffect,
5717
- useMemo,
5718
- useRef,
5719
- useState,
5720
- useSyncExternalStore
5721
- } from "react";
5722
- import { jsx as jsx2 } from "react/jsx-runtime";
5723
- var EMPTY_SOURCE = {
5724
- subscribe: () => () => {
5725
- },
5726
- getSession: () => void 0,
5727
- isHistoryLoading: () => false,
5728
- planRevealRevision: () => 0
5729
- };
5730
- var SessionSourceContext = createContext2(EMPTY_SOURCE);
5731
- function SessionSourceProvider({ source, children }) {
5732
- return /* @__PURE__ */ jsx2(SessionSourceContext.Provider, { value: source, children });
5733
- }
5734
- function useSessionSource() {
5735
- return useContext2(SessionSourceContext);
5736
- }
5737
- var SingleSessionSource = class {
5738
- session = null;
5739
- loading = false;
5740
- listeners = /* @__PURE__ */ new Set();
5741
- revisions = /* @__PURE__ */ new Map();
5742
- subscribe = (listener) => {
5743
- this.listeners.add(listener);
5744
- return () => {
5745
- this.listeners.delete(listener);
5746
- };
5747
- };
5748
- getSession = (sessionId) => {
5749
- const current = this.session;
5750
- return current && (!sessionId || current.sessionId === sessionId) ? current : void 0;
5751
- };
5752
- isHistoryLoading = (sessionId) => {
5753
- if (!this.session) return this.loading;
5754
- return (!sessionId || this.session.sessionId === sessionId) && this.loading;
5755
- };
5756
- planRevealRevision = (sessionId) => sessionId ? this.revisions.get(sessionId) ?? 0 : 0;
5757
- update(session, loading) {
5758
- if (this.session === session && this.loading === loading) return;
5759
- this.session = session;
5760
- this.loading = loading;
5761
- this.notify();
5762
- }
5763
- /** 只认实时成功的根回路 update_plan:历史加载与断线补数不算「新揭示」。 */
5764
- watchPlan(session) {
5765
- return session.on("toolResult", ({ toolCall, turn, source }) => {
5766
- if (source === "reconnect_replay" || (turn.loop_id || "root") !== "root" || toolCall.status !== "done" || !isPlanUpdateTool(toolCall) || !parsePlanUpdate(toolCall.arguments)) {
5767
- return;
5768
- }
5769
- this.revisions.set(session.sessionId, (this.revisions.get(session.sessionId) ?? 0) + 1);
5770
- this.notify();
5771
- });
5772
- }
5773
- notify() {
5774
- for (const listener of [...this.listeners]) listener();
5775
- }
5776
- };
5777
- function useSingleSessionSource(session, loading) {
5778
- const [source] = useState(() => new SingleSessionSource());
5779
- useLayoutEffect(() => {
5780
- source.update(session, loading);
5781
- }, [source, session, loading]);
5782
- useEffect(() => session ? source.watchPlan(session) : void 0, [source, session]);
5783
- return source;
5784
- }
5785
- var EMPTY_STATE = createInitialSessionState("");
5786
- var noopSubscribe = () => () => {
5787
- };
5788
- function useSessionHandle(sessionId) {
5789
- const source = useSessionSource();
5790
- return useSyncExternalStore(
5791
- source.subscribe,
5792
- () => source.getSession(sessionId) ?? null,
5793
- () => source.getSession(sessionId) ?? null
5794
- );
5795
- }
5796
- function useSessionState(sessionId, selector) {
5797
- const session = useSessionHandle(sessionId);
5798
- const selectorRef = useRef(selector);
5799
- selectorRef.current = selector;
5800
- const store = useMemo(() => {
5801
- let lastState = null;
5802
- let lastSelector = null;
5803
- let lastSelected;
5804
- const getSnapshot = () => {
5805
- const state = session ? session.getState() : EMPTY_STATE;
5806
- const current = selectorRef.current;
5807
- if (state !== lastState || current !== lastSelector) {
5808
- const next = current(state);
5809
- if (!(lastState !== null && Object.is(next, lastSelected))) lastSelected = next;
5810
- lastState = state;
5811
- lastSelector = current;
5812
- }
5813
- return lastSelected;
5814
- };
5815
- return {
5816
- subscribe: session ? (listener) => session.subscribe(listener) : noopSubscribe,
5817
- getSnapshot
5818
- };
5819
- }, [session]);
5820
- return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
5821
- }
5822
- function useIsSessionHistoryLoading(sessionId) {
5823
- const source = useSessionSource();
5824
- return useSyncExternalStore(
5825
- source.subscribe,
5826
- () => source.isHistoryLoading(sessionId),
5827
- () => source.isHistoryLoading(sessionId)
5828
- );
5829
- }
5830
- function usePlanRevealRevision(sessionId) {
5831
- const source = useSessionSource();
5832
- return useSyncExternalStore(
5833
- source.subscribe,
5834
- () => source.planRevealRevision(sessionId),
5835
- () => source.planRevealRevision(sessionId)
5836
- );
5837
- }
5838
- var CurrentChatSessionContext = createContext2(null);
5839
- function CurrentChatSessionProvider({ sessionId, children }) {
5840
- return /* @__PURE__ */ jsx2(CurrentChatSessionContext.Provider, { value: sessionId, children });
5841
- }
5842
- function useCurrentChatSessionId() {
5843
- return useContext2(CurrentChatSessionContext);
5844
- }
5845
-
5846
- // src/chat/runtime/environment.tsx
5847
- import { jsx as jsx3 } from "react/jsx-runtime";
5848
- var EMPTY_ENVIRONMENT = {};
5849
- var ChatEnvironmentContext = createContext3(EMPTY_ENVIRONMENT);
5850
- function ChatEnvironmentProvider({ value, children }) {
5851
- return /* @__PURE__ */ jsx3(ChatEnvironmentContext.Provider, { value, children });
5852
- }
5853
- function useChatEnvironment() {
5854
- return useContext3(ChatEnvironmentContext);
5855
- }
5856
- var NO_HIGHLIGHT = { highlightedHtml: null };
5857
- function usePlainCode() {
5858
- return NO_HIGHLIGHT;
5859
- }
5860
- function useHighlightedCode(code, language) {
5861
- const use = useChatEnvironment().useHighlightedCode ?? usePlainCode;
5862
- return use(code, language);
5863
- }
5864
- function useNoDetail() {
5865
- return null;
5866
- }
5867
- function useChatSessionDetail(sessionId) {
5868
- const use = useChatEnvironment().useSessionDetail ?? useNoDetail;
5869
- return use(sessionId);
5870
- }
5871
- function useShowTodo() {
5872
- return false;
5873
- }
5874
- function useHideTodo() {
5875
- const use = useChatEnvironment().useHideTodo ?? useShowTodo;
5876
- return use();
5877
- }
5878
- function useChatRenderMode() {
5879
- return useChatEnvironment().renderMode ?? "normal";
5880
- }
5881
- function notifyChat(environment, kind, message, options) {
5882
- if (environment.notify) environment.notify(kind, message, options);
5883
- else if (kind === "error") console.error(message);
5884
- }
5885
- function useComposerBridge(sessionId) {
5886
- const environment = useChatEnvironment();
5887
- const session = useSessionHandle(sessionId);
5888
- return useMemo2(
5889
- () => ({
5890
- appendText(text, separate = false) {
5891
- if (!sessionId) return;
5892
- if (environment.appendToComposer) environment.appendToComposer(sessionId, text, separate);
5893
- else session?.insertText(separate ? `
5894
-
5895
- ${text}` : text);
5896
- },
5897
- addContext(context) {
5898
- if (!sessionId) return;
5899
- if (environment.addComposerContext) environment.addComposerContext(sessionId, context);
5900
- else session?.attach(context.label, context.content);
5901
- }
5902
- }),
5903
- [environment, session, sessionId]
5904
- );
5905
- }
5906
- var NO_VIRTUAL_ITEMS = [];
5907
- var NO_VIRTUALIZER = {
5908
- getVirtualItems: () => NO_VIRTUAL_ITEMS,
5909
- getTotalSize: () => 0,
5910
- measureElement: () => {
5911
- },
5912
- scrollToIndex: () => {
5913
- },
5914
- getOffsetForIndex: () => void 0
5915
- };
5916
- function useNoVirtualizer() {
5917
- return NO_VIRTUALIZER;
5918
- }
5919
- function useChatVirtualizer(options) {
5920
- const injected = useChatEnvironment().useVirtualizer;
5921
- const use = injected ?? useNoVirtualizer;
5922
- const virtualizer = use(options);
5923
- return { virtualizer, enabled: Boolean(injected) };
5924
- }
5925
-
5926
- // src/chat/tool-renderers/shared.tsx
5927
- import { jsx as jsx4 } from "react/jsx-runtime";
5928
- function getResultText(result) {
5929
- if (typeof result === "string") return result;
5930
- if (Array.isArray(result)) {
5931
- const texts = result.filter(
5932
- (p2) => typeof p2 === "object" && p2 !== null && p2.type === "text" && typeof p2.text === "string"
5933
- ).map((p2) => p2.text);
5934
- return texts.length > 0 ? texts.join("\n") : null;
5935
- }
5936
- return result != null ? String(result) : null;
5937
- }
5938
- function getResultImages(result) {
5939
- if (!Array.isArray(result)) return [];
5940
- return result.filter(
5941
- (p2) => typeof p2 === "object" && p2 !== null && p2.type === "image_url" && typeof p2.image_url?.url === "string"
5942
- ).map((p2) => p2.image_url);
5943
- }
5944
- function parseJsonValue(value) {
5945
- if (!value) return null;
5946
- try {
5947
- return JSON.parse(value);
5948
- } catch {
5949
- return null;
5950
- }
5951
- }
5952
- function isPlainObject(value) {
5953
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
5954
- }
5955
- function getStringValue(data, key) {
5956
- const value = data?.[key];
5957
- return typeof value === "string" && value.trim() ? value.trim() : null;
5958
- }
5959
- function getNumberValue(data, key) {
5960
- const value = data?.[key];
5961
- return typeof value === "number" && Number.isFinite(value) ? value : null;
5962
- }
5963
- function getBooleanValue(data, key) {
5964
- return data?.[key] === true;
5965
- }
5966
- function extractErrorMessage(value) {
5967
- const text = typeof value === "string" ? value : getResultText(value);
5968
- if (!text?.trim()) return null;
5969
- const parsed = parseJsonValue(text);
5970
- if (!isPlainObject(parsed)) return null;
5971
- return typeof parsed.error === "string" && parsed.error.trim() ? parsed.error.trim() : null;
5972
- }
5973
- function getFileName(filePath) {
5974
- if (!filePath) return "\u672A\u547D\u540D\u6587\u4EF6";
5975
- return filePath.split(/[\\/]/).pop() ?? filePath;
5976
- }
5977
- function getCodeLanguage(filePath) {
5978
- return getCodeLanguageFromFilename(filePath);
5979
- }
5980
- function formatBytes(size4) {
5981
- if (typeof size4 !== "number" || !Number.isFinite(size4) || size4 < 0) return null;
5982
- if (size4 < 1024) return `${size4} B`;
5983
- if (size4 < 1024 * 1024) return `${(size4 / 1024).toFixed(1)} KB`;
5984
- return `${(size4 / (1024 * 1024)).toFixed(1)} MB`;
5985
- }
5986
- function CodePreview({
5987
- content,
5988
- filePath,
5989
- emptyLabel = "\uFF08\u6682\u65E0\u5185\u5BB9\uFF09",
5990
- className
5991
- }) {
5992
- const { highlightedHtml } = useHighlightedCode(content, getCodeLanguage(filePath));
5993
- if (!content.trim()) {
5994
- return /* @__PURE__ */ jsx4(
5995
- "pre",
5996
- {
5997
- className: cn(
5998
- "overflow-auto rounded-lg border border-[hsl(var(--border))]",
5999
- "bg-[hsl(var(--muted))]/35 p-3 font-mono text-[11px] text-[hsl(var(--muted-foreground))]",
6000
- className
6001
- ),
6002
- children: /* @__PURE__ */ jsx4("code", { children: emptyLabel })
6003
- }
6004
- );
6005
- }
6006
- return /* @__PURE__ */ jsx4(
6007
- "pre",
6008
- {
6009
- className: cn(
6010
- "overflow-auto rounded-lg border border-[hsl(var(--border))]",
6011
- "bg-[hsl(var(--muted))]/35 p-3 text-[11px]",
6012
- className
6013
- ),
6014
- children: highlightedHtml ? /* @__PURE__ */ jsx4(
6015
- "code",
6016
- {
6017
- className: "font-mono",
6018
- dangerouslySetInnerHTML: { __html: highlightedHtml }
6019
- }
6020
- ) : /* @__PURE__ */ jsx4("code", { className: "whitespace-pre-wrap break-words font-mono text-[hsl(var(--foreground))]", children: content })
6021
- }
6022
- );
6023
- }
6024
-
6025
- // src/chat/tool-renderers/kb-search-result.ts
6026
- function parseKbSearchResult(result) {
6027
- const value = parseJsonValue(getResultText(result));
6028
- if (!isPlainObject(value) || !Array.isArray(value.hits)) return null;
6029
- const hits = value.hits.filter(isPlainObject).map((hit, index2) => ({
6030
- n: typeof hit.n === "number" ? hit.n : index2 + 1,
6031
- kbName: getStringValue(hit, "kb_name") ?? "",
6032
- title: getStringValue(hit, "title") ?? getStringValue(hit, "path") ?? "\u672A\u547D\u540D\u6587\u6863",
6033
- path: getStringValue(hit, "path") ?? "",
6034
- page: typeof hit.page === "number" ? hit.page : null,
6035
- heading: getStringValue(hit, "heading"),
6036
- text: getStringValue(hit, "text") ?? "",
6037
- previewUrl: getStringValue(hit, "preview_url")
6038
- }));
6039
- return {
6040
- summary: getStringValue(value, "summary"),
6041
- query: getStringValue(value, "query"),
6042
- hits
6043
- };
6044
- }
6045
- function formatKbSearchLabel(result) {
6046
- const parsed = parseKbSearchResult(result);
6047
- if (!parsed) return null;
6048
- const names = [...new Set(parsed.hits.map((hit) => hit.kbName).filter(Boolean))];
6049
- const scope = names.length > 0 ? names.map((name) => `\u300A${name}\u300B`).join("") : "\u77E5\u8BC6\u5E93";
6050
- return `\u{1F50D} \u5728${scope}\u68C0\u7D22\u5230 ${parsed.hits.length} \u6761`;
6051
- }
6052
-
6053
5679
  // src/chat/display-utils.ts
6054
5680
  var TOOL_NAME_ALIASES = {
6055
5681
  agent: "Agent",
@@ -6064,7 +5690,6 @@ var TOOL_NAME_ALIASES = {
6064
5690
  finish_task: "FinishTask",
6065
5691
  glob: "Glob",
6066
5692
  grep: "Grep",
6067
- kb_search: "KbSearch",
6068
5693
  ls: "Ls",
6069
5694
  multi_edit: "MultiEdit",
6070
5695
  read: "Read",
@@ -6084,7 +5709,6 @@ var TOOL_DISPLAY_LABELS = {
6084
5709
  Ls: "\u5217\u51FA\u76EE\u5F55",
6085
5710
  Glob: "\u5339\u914D\u6587\u4EF6",
6086
5711
  Grep: "\u641C\u7D22\u6587\u672C",
6087
- KbSearch: "\u68C0\u7D22\u77E5\u8BC6\u5E93",
6088
5712
  WebSearch: "\u641C\u7D22\u7F51\u9875",
6089
5713
  WebFetch: "\u6574\u7406\u7F51\u9875\u5185\u5BB9",
6090
5714
  Agent: "\u6D3E\u751F\u5B50\u667A\u80FD\u4F53",
@@ -6122,7 +5746,7 @@ function safeParseJson(value) {
6122
5746
  return null;
6123
5747
  }
6124
5748
  }
6125
- function isPlainObject2(value) {
5749
+ function isPlainObject(value) {
6126
5750
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
6127
5751
  }
6128
5752
  function getStringArgValue(args, key) {
@@ -6134,7 +5758,7 @@ function getCommandDescription(args) {
6134
5758
  }
6135
5759
  function getToolDescription(toolCall) {
6136
5760
  const args = safeParseJson(toolCall.arguments);
6137
- if (!isPlainObject2(args)) return null;
5761
+ if (!isPlainObject(args)) return null;
6138
5762
  return getCommandDescription(args) || null;
6139
5763
  }
6140
5764
  function formatFileName(filePath) {
@@ -6192,12 +5816,6 @@ function getToolDisplayLabel(toolCall) {
6192
5816
  const title = args && typeof args.title === "string" ? args.title : "";
6193
5817
  return title ? `${baseLabel}\uFF1A${title}` : baseLabel;
6194
5818
  }
6195
- if (normalized === "KbSearch") {
6196
- const resultLabel = formatKbSearchLabel(toolCall.result);
6197
- if (resultLabel) return resultLabel;
6198
- const query = getStringArgValue(args, "query");
6199
- return query ? `${baseLabel}\uFF1A${query}` : baseLabel;
6200
- }
6201
5819
  return description || baseLabel;
6202
5820
  }
6203
5821
  function getToolTone(status) {
@@ -6234,7 +5852,7 @@ function extractToolFilePaths(toolCall) {
6234
5852
  for (const item of value) collect(item, depth + 1, allowPlainString);
6235
5853
  return;
6236
5854
  }
6237
- if (!isPlainObject2(value)) return;
5855
+ if (!isPlainObject(value)) return;
6238
5856
  for (const key of PRIORITY_FILE_KEYS) collect(value[key], depth + 1, true);
6239
5857
  for (const [key, nested] of Object.entries(value)) {
6240
5858
  if (!PRIORITY_FILE_KEYS.includes(key) && nested && typeof nested === "object") collect(nested, depth + 1, false);
@@ -6249,7 +5867,7 @@ function extractToolFilePaths(toolCall) {
6249
5867
  }
6250
5868
  } else if (Array.isArray(value)) {
6251
5869
  for (const item of value) collectPatchHeaders(item);
6252
- } else if (isPlainObject2(value)) {
5870
+ } else if (isPlainObject(value)) {
6253
5871
  for (const [key, nested] of Object.entries(value)) {
6254
5872
  if (key.toLowerCase().includes("patch") || key.toLowerCase().includes("diff")) collectPatchHeaders(nested);
6255
5873
  }
@@ -6273,7 +5891,7 @@ function getToolOutputTag(toolCall) {
6273
5891
  }
6274
5892
 
6275
5893
  // src/components/PlanUpdateBlock.tsx
6276
- import { jsx as jsx5, jsxs } from "react/jsx-runtime";
5894
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
6277
5895
  var PLAN_STEP_STATUSES = /* @__PURE__ */ new Set(["pending", "in_progress", "completed"]);
6278
5896
  var PLAN_AUTO_COLLAPSE_MS = 5e3;
6279
5897
  function isPlanUpdateTool(toolCall) {
@@ -6328,12 +5946,12 @@ function PlanStepIcon({
6328
5946
  running = false
6329
5947
  }) {
6330
5948
  if (status === "completed") {
6331
- return /* @__PURE__ */ jsx5(Check, { size: size4, strokeWidth: 2, className: "shrink-0 text-emerald-500" });
5949
+ return /* @__PURE__ */ jsx2(Check, { size: size4, strokeWidth: 2, className: "shrink-0 text-emerald-500" });
6332
5950
  }
6333
5951
  if (status === "in_progress") {
6334
- return running ? /* @__PURE__ */ jsx5(LoaderCircle, { size: size4, className: "shrink-0 animate-spin text-[hsl(var(--muted-foreground))]" }) : /* @__PURE__ */ jsx5(CircleDot, { size: size4, className: "shrink-0 text-amber-500" });
5952
+ return running ? /* @__PURE__ */ jsx2(LoaderCircle, { size: size4, className: "shrink-0 animate-spin text-[hsl(var(--muted-foreground))]" }) : /* @__PURE__ */ jsx2(CircleDot, { size: size4, className: "shrink-0 text-amber-500" });
6335
5953
  }
6336
- return /* @__PURE__ */ jsx5(Circle, { size: size4, className: "shrink-0 text-[hsl(var(--muted-foreground))]/60" });
5954
+ return /* @__PURE__ */ jsx2(Circle, { size: size4, className: "shrink-0 text-[hsl(var(--muted-foreground))]/60" });
6337
5955
  }
6338
5956
  function PlanUpdateBlock({
6339
5957
  toolCall,
@@ -6343,10 +5961,10 @@ function PlanUpdateBlock({
6343
5961
  }) {
6344
5962
  const updateKey = `${toolCall.id}:${toolCall.arguments}`;
6345
5963
  const revealKey = autoReveal ? updateKey : null;
6346
- const [collapsed, setCollapsed] = useState2(!autoReveal);
6347
- const collapseTimerRef = useRef2(null);
5964
+ const [collapsed, setCollapsed] = useState(!autoReveal);
5965
+ const collapseTimerRef = useRef(null);
6348
5966
  const data = parsePlanUpdate(toolCall.arguments);
6349
- useEffect2(() => {
5967
+ useEffect(() => {
6350
5968
  if (!revealKey) return;
6351
5969
  if (collapseTimerRef.current) clearTimeout(collapseTimerRef.current);
6352
5970
  setCollapsed(false);
@@ -6355,7 +5973,7 @@ function PlanUpdateBlock({
6355
5973
  collapseTimerRef.current = null;
6356
5974
  }, PLAN_AUTO_COLLAPSE_MS);
6357
5975
  }, [revealKey]);
6358
- useEffect2(
5976
+ useEffect(
6359
5977
  () => () => {
6360
5978
  if (collapseTimerRef.current) clearTimeout(collapseTimerRef.current);
6361
5979
  },
@@ -6384,20 +6002,20 @@ function PlanUpdateBlock({
6384
6002
  ),
6385
6003
  children: [
6386
6004
  collapsed && currentStep ? /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 text-xs text-[hsl(var(--foreground))]", children: [
6387
- /* @__PURE__ */ jsx5(PlanStepIcon, { status: currentStep.status, size: 14, running }),
6388
- /* @__PURE__ */ jsx5("span", { className: "truncate", children: currentStep.step }),
6389
- pausedAtCurrentStep ? /* @__PURE__ */ jsx5("span", { className: "shrink-0 text-[11px] text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6005
+ /* @__PURE__ */ jsx2(PlanStepIcon, { status: currentStep.status, size: 14, running }),
6006
+ /* @__PURE__ */ jsx2("span", { className: "truncate", children: currentStep.step }),
6007
+ pausedAtCurrentStep ? /* @__PURE__ */ jsx2("span", { className: "shrink-0 text-[11px] text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6390
6008
  ] }) : /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: [
6391
- /* @__PURE__ */ jsx5(ListChecks, { size: 14, className: "shrink-0", "aria-hidden": "true" }),
6392
- /* @__PURE__ */ jsx5("span", { className: "truncate", children: "\u4EFB\u52A1\u8FDB\u5EA6" }),
6393
- pausedAtCurrentStep ? /* @__PURE__ */ jsx5("span", { className: "shrink-0 text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6009
+ /* @__PURE__ */ jsx2(ListChecks, { size: 14, className: "shrink-0", "aria-hidden": "true" }),
6010
+ /* @__PURE__ */ jsx2("span", { className: "truncate", children: "\u4EFB\u52A1\u8FDB\u5EA6" }),
6011
+ pausedAtCurrentStep ? /* @__PURE__ */ jsx2("span", { className: "shrink-0 text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6394
6012
  ] }),
6395
6013
  /* @__PURE__ */ jsxs("span", { className: "shrink-0 text-[11px] tabular-nums text-[hsl(var(--muted-foreground))]", children: [
6396
6014
  completed,
6397
6015
  "/",
6398
6016
  data.plan.length
6399
6017
  ] }),
6400
- /* @__PURE__ */ jsx5(
6018
+ /* @__PURE__ */ jsx2(
6401
6019
  ChevronDown,
6402
6020
  {
6403
6021
  size: 14,
@@ -6410,7 +6028,7 @@ function PlanUpdateBlock({
6410
6028
  ]
6411
6029
  }
6412
6030
  ),
6413
- /* @__PURE__ */ jsx5(
6031
+ /* @__PURE__ */ jsx2(
6414
6032
  "div",
6415
6033
  {
6416
6034
  "aria-hidden": collapsed,
@@ -6418,9 +6036,9 @@ function PlanUpdateBlock({
6418
6036
  "grid transition-[grid-template-rows,opacity] duration-300 ease-out motion-reduce:transition-none",
6419
6037
  collapsed ? "grid-rows-[0fr] opacity-0" : "grid-rows-[1fr] opacity-100"
6420
6038
  ),
6421
- children: /* @__PURE__ */ jsx5("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ jsx5("div", { className: "flex max-h-40 flex-col gap-0.5 overflow-y-auto px-3 py-2", children: data.plan.length === 0 ? /* @__PURE__ */ jsx5("span", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6682\u65E0\u4EFB\u52A1\u6B65\u9AA4" }) : data.plan.map((item, index2) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 py-0.5", children: [
6422
- /* @__PURE__ */ jsx5("span", { className: "mt-[3px] flex shrink-0", children: /* @__PURE__ */ jsx5(PlanStepIcon, { status: item.status, size: 14, running }) }),
6423
- /* @__PURE__ */ jsx5(
6039
+ children: /* @__PURE__ */ jsx2("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ jsx2("div", { className: "flex max-h-40 flex-col gap-0.5 overflow-y-auto px-3 py-2", children: data.plan.length === 0 ? /* @__PURE__ */ jsx2("span", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6682\u65E0\u4EFB\u52A1\u6B65\u9AA4" }) : data.plan.map((item, index2) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 py-0.5", children: [
6040
+ /* @__PURE__ */ jsx2("span", { className: "mt-[3px] flex shrink-0", children: /* @__PURE__ */ jsx2(PlanStepIcon, { status: item.status, size: 14, running }) }),
6041
+ /* @__PURE__ */ jsx2(
6424
6042
  "span",
6425
6043
  {
6426
6044
  className: cn(
@@ -6436,6 +6054,59 @@ function PlanUpdateBlock({
6436
6054
  ] });
6437
6055
  }
6438
6056
 
6057
+ // src/chat/runtime/input-history-storage.ts
6058
+ var generation = 0;
6059
+ function getInputHistoryGeneration() {
6060
+ return generation;
6061
+ }
6062
+
6063
+ // src/chat/runtime/input-cache-reset.ts
6064
+ var resetters = /* @__PURE__ */ new WeakMap();
6065
+ function onInputCachesReset(client, reset) {
6066
+ let set = resetters.get(client);
6067
+ if (!set) {
6068
+ set = /* @__PURE__ */ new Set();
6069
+ resetters.set(client, set);
6070
+ }
6071
+ set.add(reset);
6072
+ return () => {
6073
+ set.delete(reset);
6074
+ };
6075
+ }
6076
+
6077
+ // src/rich-input/lib/plugin-suggestions.ts
6078
+ var accountPreparation = /* @__PURE__ */ new WeakMap();
6079
+ var registeredClients = /* @__PURE__ */ new WeakSet();
6080
+ function pluginRefsForSend(refs, turns = []) {
6081
+ const latest = [...turns].reverse().find((turn) => turn.role === "user");
6082
+ return refs.length || latest?.refs?.length ? refs : void 0;
6083
+ }
6084
+ function prepareAccount(client) {
6085
+ if (!registeredClients.has(client)) {
6086
+ registeredClients.add(client);
6087
+ onInputCachesReset(client, () => accountPreparation.delete(client));
6088
+ }
6089
+ const current = accountPreparation.get(client);
6090
+ if (current && current.token === client.token) return current.ready;
6091
+ const ready = client.plugins.catalog().catch((error) => {
6092
+ accountPreparation.delete(client);
6093
+ throw error;
6094
+ });
6095
+ accountPreparation.set(client, { token: client.token, ready });
6096
+ return ready;
6097
+ }
6098
+ async function getPluginSuggestionItems(client, session, query, pendingPlugins = []) {
6099
+ if (!session && pendingPlugins.length === 0) return [];
6100
+ const path = session ? `/api/sessions/${encodeURIComponent(session)}/plugin-tools/mentions` : "/api/plugin-mentions/mentions";
6101
+ try {
6102
+ if (!session) await prepareAccount(client);
6103
+ const data = await client.json("POST", path, { arguments: { query, cursor: "" }, ...!session ? { plugin_selection: pendingPlugins } : {} });
6104
+ return [...data.items.map((item) => ({ ...item, kind: "plugin", name: item.label })), ...data.errors.map((message) => ({ kind: "pluginError", message }))];
6105
+ } catch {
6106
+ return [{ kind: "pluginError", message: "\u63D2\u4EF6\u6761\u76EE\u6682\u65F6\u65E0\u6CD5\u52A0\u8F7D\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165 @ \u91CD\u8BD5" }];
6107
+ }
6108
+ }
6109
+
6439
6110
  // ../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.js
6440
6111
  function deepCompareStrict(a, b) {
6441
6112
  const typeofa = typeof a;
@@ -7646,7 +7317,7 @@ function canExpand(schema, uiSchema = {}, formData) {
7646
7317
  }
7647
7318
 
7648
7319
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/isPlainObject.js
7649
- function isPlainObject3(thing) {
7320
+ function isPlainObject2(thing) {
7650
7321
  if (typeof thing !== "object" || thing === null) {
7651
7322
  return false;
7652
7323
  }
@@ -11540,7 +11211,7 @@ var ErrorSchemaBuilder = class {
11540
11211
 
11541
11212
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/getChangedFields.js
11542
11213
  function getChangedDescendants(a, b) {
11543
- if (isPlainObject3(a) && isPlainObject3(b)) {
11214
+ if (isPlainObject2(a) && isPlainObject2(b)) {
11544
11215
  return getChangedFields(a, b, true);
11545
11216
  }
11546
11217
  if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) {
@@ -11558,10 +11229,10 @@ function getChangedFields(a, b, deep = false) {
11558
11229
  if (a === b) {
11559
11230
  return [];
11560
11231
  }
11561
- if (!isPlainObject3(a)) {
11562
- return isPlainObject3(b) ? Object.keys(b) : [];
11232
+ if (!isPlainObject2(a)) {
11233
+ return isPlainObject2(b) ? Object.keys(b) : [];
11563
11234
  }
11564
- if (!isPlainObject3(b)) {
11235
+ if (!isPlainObject2(b)) {
11565
11236
  return Object.keys(a);
11566
11237
  }
11567
11238
  const aKeys = Object.keys(a);
@@ -12152,7 +11823,7 @@ function errorsFrom(errorSchema, fieldPath) {
12152
11823
  const errorList = Array.isArray(errors) ? errors.map((message) => ({ property, message, stack: `${property} ${message}` })) : [];
12153
11824
  return Object.keys(errorSchema).reduce((currentList, key) => {
12154
11825
  const childSchema = errorSchema[key];
12155
- if (key !== ERRORS_KEY && isPlainObject3(childSchema)) {
11826
+ if (key !== ERRORS_KEY && isPlainObject2(childSchema)) {
12156
11827
  return currentList.concat(errorsFrom(childSchema, [...fieldPath, key]));
12157
11828
  }
12158
11829
  return currentList;
@@ -12174,7 +11845,7 @@ function toFieldPathId(fieldPath, globalFormOptions, parentPath, isMultiValue) {
12174
11845
 
12175
11846
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/useAltDateWidgetProps.js
12176
11847
  import { jsx as _jsx3 } from "react/jsx-runtime";
12177
- import { useCallback, useEffect as useEffect3, useMemo as useMemo3, useState as useState3 } from "react";
11848
+ import { useCallback, useEffect as useEffect2, useMemo, useState as useState2 } from "react";
12178
11849
  function readyForChange(state) {
12179
11850
  return Object.values(state).every((value) => value !== -1);
12180
11851
  }
@@ -12187,8 +11858,8 @@ function DateElement(props) {
12187
11858
  }
12188
11859
  function useAltDateWidgetProps(props) {
12189
11860
  const { time: time2 = false, disabled = false, readonly = false, options, onChange, value } = props;
12190
- const [state, setState] = useState3(parseDateString(value, time2));
12191
- useEffect3(() => {
11861
+ const [state, setState] = useState2(parseDateString(value, time2));
11862
+ useEffect2(() => {
12192
11863
  setState(parseDateString(value, time2));
12193
11864
  }, [time2, value]);
12194
11865
  const handleChange = useCallback((property, newValue) => {
@@ -12217,14 +11888,14 @@ function useAltDateWidgetProps(props) {
12217
11888
  const nextState = parseDateString((/* @__PURE__ */ new Date()).toJSON(), time2);
12218
11889
  onChange(toDateString(nextState, time2));
12219
11890
  }, [disabled, readonly, time2, onChange]);
12220
- const elements = useMemo3(() => getDateElementProps(state, time2, options.yearsRange, options.format), [state, time2, options.yearsRange, options.format]);
11891
+ const elements = useMemo(() => getDateElementProps(state, time2, options.yearsRange, options.format), [state, time2, options.yearsRange, options.format]);
12221
11892
  return { elements, handleChange, handleClear, handleSetNow };
12222
11893
  }
12223
11894
 
12224
11895
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/useDeepCompareMemo.js
12225
- import { useRef as useRef3 } from "react";
11896
+ import { useRef as useRef2 } from "react";
12226
11897
  function useDeepCompareMemo(newValue) {
12227
- const valueRef = useRef3(newValue);
11898
+ const valueRef = useRef2(newValue);
12228
11899
  if (!deepEquals_default(newValue, valueRef.current)) {
12229
11900
  valueRef.current = newValue;
12230
11901
  }
@@ -12232,7 +11903,7 @@ function useDeepCompareMemo(newValue) {
12232
11903
  }
12233
11904
 
12234
11905
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/useFileWidgetProps.js
12235
- import { useCallback as useCallback2, useMemo as useMemo4 } from "react";
11906
+ import { useCallback as useCallback2, useMemo as useMemo2 } from "react";
12236
11907
  function addNameToDataURL(dataURL, name) {
12237
11908
  return dataURL.replace(";base64", `;name=${encodeURIComponent(name)};base64`);
12238
11909
  }
@@ -12286,13 +11957,13 @@ function extractFileInfo(dataURLs) {
12286
11957
  }, []);
12287
11958
  }
12288
11959
  function useFileWidgetProps(value, onChange, multiple = false) {
12289
- const values = useMemo4(() => {
11960
+ const values = useMemo2(() => {
12290
11961
  if (multiple && value) {
12291
11962
  return Array.isArray(value) ? value : [value];
12292
11963
  }
12293
11964
  return [];
12294
11965
  }, [value, multiple]);
12295
- const filesInfo = useMemo4(() => Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value || ""]), [value]);
11966
+ const filesInfo = useMemo2(() => Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value || ""]), [value]);
12296
11967
  const handleChange = useCallback2(async (files) => {
12297
11968
  const filesInfoEvent = await processFiles(files);
12298
11969
  const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL || null);
@@ -12418,7 +12089,7 @@ var TranslatableString;
12418
12089
 
12419
12090
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/ArrayField.js
12420
12091
  import { jsx as _jsx4 } from "react/jsx-runtime";
12421
- import { memo, useCallback as useCallback3, useMemo as useMemo5, useRef as useRef4, useState as useState4 } from "react";
12092
+ import { memo, useCallback as useCallback3, useMemo as useMemo3, useRef as useRef3, useState as useState3 } from "react";
12422
12093
  var rowIdCounter = 0;
12423
12094
  function generateRowId() {
12424
12095
  rowIdCounter += 1;
@@ -12512,8 +12183,8 @@ function ArrayAsFiles(props) {
12512
12183
  function ArrayFieldItemInner(props) {
12513
12184
  const { itemKey, index: index2, name, disabled, hideError, readonly, registry, uiOptions, parentUiSchema, canAdd, canRemove = true, canMoveUp, canMoveDown, rawItemSchema, itemData, itemUiSchema, parentFieldPathId, itemErrorSchema, autofocus, onBlur, onFocus, onChange, rawErrors, totalItems, title, handleAddItem, handleCopyItem, handleRemoveItem, handleReorderItems } = props;
12514
12185
  const { schemaUtils, fields: { ArraySchemaField, SchemaField: SchemaField2 }, globalUiOptions, globalFormOptions } = registry;
12515
- const itemSchema = useMemo5(() => schemaUtils.retrieveSchema(rawItemSchema, itemData), [schemaUtils, rawItemSchema, itemData]);
12516
- const fieldPathId = useMemo5(() => toFieldPathId(index2, globalFormOptions, parentFieldPathId), [index2, globalFormOptions, parentFieldPathId]);
12186
+ const itemSchema = useMemo3(() => schemaUtils.retrieveSchema(rawItemSchema, itemData), [schemaUtils, rawItemSchema, itemData]);
12187
+ const fieldPathId = useMemo3(() => toFieldPathId(index2, globalFormOptions, parentFieldPathId), [index2, globalFormOptions, parentFieldPathId]);
12517
12188
  const ItemSchemaField = ArraySchemaField || SchemaField2;
12518
12189
  const ArrayFieldItemTemplate2 = getTemplate("ArrayFieldItemTemplate", registry, uiOptions);
12519
12190
  const displayLabel = schemaUtils.getDisplayLabel(itemSchema, itemUiSchema, globalUiOptions);
@@ -12587,13 +12258,13 @@ function NormalArray(props) {
12587
12258
  const fieldTitle = schema.title || title || name;
12588
12259
  const { schemaUtils, fields: fields2, formContext, globalUiOptions } = registry;
12589
12260
  const { OptionalDataControlsField: OptionalDataControlsField2 } = fields2;
12590
- const uiOptions = useMemo5(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12591
- const schemaItems = useMemo5(() => isObject(schema.items) ? schema.items : {}, [schema.items]);
12592
- const itemsSchema = useMemo5(() => schemaUtils.retrieveSchema(schemaItems), [schemaUtils, schemaItems]);
12593
- const formData = useMemo5(() => keyedToPlainFormData(keyedFormData), [keyedFormData]);
12261
+ const uiOptions = useMemo3(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12262
+ const schemaItems = useMemo3(() => isObject(schema.items) ? schema.items : {}, [schema.items]);
12263
+ const itemsSchema = useMemo3(() => schemaUtils.retrieveSchema(schemaItems), [schemaUtils, schemaItems]);
12264
+ const formData = useMemo3(() => keyedToPlainFormData(keyedFormData), [keyedFormData]);
12594
12265
  const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);
12595
12266
  const hasFormData = isFormDataAvailable(formDataFromProps);
12596
- const canAdd = useMemo5(() => canAddItem(registry, schema, formData, uiSchema) && (!renderOptionalField || hasFormData), [registry, schema, formData, uiSchema, renderOptionalField, hasFormData]);
12267
+ const canAdd = useMemo3(() => canAddItem(registry, schema, formData, uiSchema) && (!renderOptionalField || hasFormData), [registry, schema, formData, uiSchema, renderOptionalField, hasFormData]);
12597
12268
  const actualFormData = hasFormData ? keyedFormData : [];
12598
12269
  const extraClass = renderOptionalField ? " rjsf-optional-array-field" : "";
12599
12270
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
@@ -12660,11 +12331,11 @@ function FixedArray(props) {
12660
12331
  let { formData: items = [] } = props;
12661
12332
  const fieldTitle = schema.title || title || name;
12662
12333
  const { fields: fields2, formContext, globalUiOptions } = registry;
12663
- const uiOptions = useMemo5(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12334
+ const uiOptions = useMemo3(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12664
12335
  const { OptionalDataControlsField: OptionalDataControlsField2 } = fields2;
12665
12336
  const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);
12666
12337
  const hasFormData = isFormDataAvailable(formData);
12667
- const schemaItems = useMemo5(() => Array.isArray(schema.items) ? schema.items : [], [schema.items]);
12338
+ const schemaItems = useMemo3(() => Array.isArray(schema.items) ? schema.items : [], [schema.items]);
12668
12339
  const hasAdditionalItems = isObject(schema.additionalItems);
12669
12340
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
12670
12341
  if (items.length < schemaItems.length) {
@@ -12743,8 +12414,8 @@ function FixedArray(props) {
12743
12414
  return _jsx4(Template, { ...arrayProps });
12744
12415
  }
12745
12416
  function useKeyedFormData(formData = []) {
12746
- const newHash = useMemo5(() => hashObject(formData), [formData]);
12747
- const [state, setState] = useState4(() => ({
12417
+ const newHash = useMemo3(() => hashObject(formData), [formData]);
12418
+ const [state, setState] = useState3(() => ({
12748
12419
  formDataHash: newHash,
12749
12420
  keyedFormData: generateKeyedFormData(formData)
12750
12421
  }));
@@ -12771,9 +12442,9 @@ function ArrayField(props) {
12771
12442
  const { schema, uiSchema, errorSchema, fieldPathId, registry, formData, onChange } = props;
12772
12443
  const { globalFormOptions, schemaUtils, translateString } = registry;
12773
12444
  const { keyedFormData, updateKeyedFormData } = useKeyedFormData(formData);
12774
- const keyedFormDataRef = useRef4(keyedFormData);
12445
+ const keyedFormDataRef = useRef3(keyedFormData);
12775
12446
  keyedFormDataRef.current = keyedFormData;
12776
- const errorSchemaRef = useRef4(errorSchema);
12447
+ const errorSchemaRef = useRef3(errorSchema);
12777
12448
  errorSchemaRef.current = errorSchema;
12778
12449
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
12779
12450
  const handleAddItem = useCallback3((event, index2) => {
@@ -12991,9 +12662,9 @@ var BooleanField_default = BooleanField;
12991
12662
 
12992
12663
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/CyclicSchemaField.js
12993
12664
  import { jsx as _jsx6 } from "react/jsx-runtime";
12994
- import { useState as useState5 } from "react";
12665
+ import { useState as useState4 } from "react";
12995
12666
  function CyclicSchemaField(props) {
12996
- const [expanded, setExpanded] = useState5(false);
12667
+ const [expanded, setExpanded] = useState4(false);
12997
12668
  const { name, registry, schema, uiSchema, fieldPathId } = props;
12998
12669
  const { globalUiOptions } = registry;
12999
12670
  const uiOptions = getUiOptions(uiSchema, globalUiOptions);
@@ -13008,7 +12679,7 @@ function CyclicSchemaField(props) {
13008
12679
 
13009
12680
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/FallbackField.js
13010
12681
  import { jsx as _jsx7 } from "react/jsx-runtime";
13011
- import { useMemo as useMemo6, useState as useState6 } from "react";
12682
+ import { useMemo as useMemo4, useState as useState5 } from "react";
13012
12683
  function getFallbackTypeSelectionSchema(title) {
13013
12684
  return {
13014
12685
  type: "string",
@@ -13044,11 +12715,11 @@ function castToNewType(formData, newType) {
13044
12715
  function FallbackField(props) {
13045
12716
  const { id, formData, displayLabel = true, schema, name, uiSchema, required, disabled = false, readonly = false, onBlur, onFocus, registry, fieldPathId, onChange, errorSchema } = props;
13046
12717
  const { translateString, fields: fields2, globalFormOptions } = registry;
13047
- const [type, setType] = useState6(getTypeOfFormData(formData));
12718
+ const [type, setType] = useState5(getTypeOfFormData(formData));
13048
12719
  const uiOptions = getUiOptions(uiSchema);
13049
12720
  const typeSelectorInnerFieldPathId = useDeepCompareMemo(toFieldPathId("__internal_type_selector", globalFormOptions, fieldPathId));
13050
12721
  const schemaTitle = translateString(TranslatableString.Type);
13051
- const typesOptionSchema = useMemo6(() => getFallbackTypeSelectionSchema(schemaTitle), [schemaTitle]);
12722
+ const typesOptionSchema = useMemo4(() => getFallbackTypeSelectionSchema(schemaTitle), [schemaTitle]);
13052
12723
  const onTypeChange = (newType) => {
13053
12724
  if (newType != null) {
13054
12725
  setType(newType);
@@ -13135,7 +12806,7 @@ function conditionMatches(operator, datum, value = "$0m3tH1nG Un3xP3cT3d") {
13135
12806
  function findChildrenAndProps(layoutGridSchema, schemaKey, registry) {
13136
12807
  let gridProps = {};
13137
12808
  let children = layoutGridSchema[schemaKey];
13138
- if (isPlainObject3(children)) {
12809
+ if (isPlainObject2(children)) {
13139
12810
  const { children: elements, className: toMapClassNames, ...otherProps } = children;
13140
12811
  children = elements;
13141
12812
  if (toMapClassNames) {
@@ -13387,7 +13058,7 @@ function LayoutHeaderField(props) {
13387
13058
 
13388
13059
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/LayoutMultiSchemaField.js
13389
13060
  import { jsx as _jsx10 } from "react/jsx-runtime";
13390
- import { useState as useState7, useEffect as useEffect4 } from "react";
13061
+ import { useState as useState6, useEffect as useEffect3 } from "react";
13391
13062
  function getSelectedOption(options, selectorField, value) {
13392
13063
  const defaultValue = "!@#!@$@#$!@$#";
13393
13064
  const schemaOptions = options.map(({ schema }) => schema);
@@ -13414,7 +13085,7 @@ function computeEnumOptions(schema, options, schemaUtils, uiSchema, formData) {
13414
13085
  function LayoutMultiSchemaField(props) {
13415
13086
  const { name, baseType, disabled = false, formData, fieldPathId, onBlur, onChange, options, onFocus, registry, uiSchema, schema, autofocus, readonly, required, errorSchema, hideError = false } = props;
13416
13087
  const { widgets: widgets2, schemaUtils, globalUiOptions } = registry;
13417
- const [enumOptions, setEnumOptions] = useState7(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13088
+ const [enumOptions, setEnumOptions] = useState6(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13418
13089
  const id = fieldPathId[ID_KEY];
13419
13090
  const discriminator = getDiscriminatorFieldFromSchema(schema);
13420
13091
  const FieldErrorTemplate2 = getTemplate("FieldErrorTemplate", registry, options);
@@ -13423,7 +13094,7 @@ function LayoutMultiSchemaField(props) {
13423
13094
  const optionsHash = hashObject(options);
13424
13095
  const uiSchemaHash = uiSchema ? hashObject(uiSchema) : "";
13425
13096
  const formDataHash = formData ? hashObject(formData) : "";
13426
- useEffect4(() => {
13097
+ useEffect3(() => {
13427
13098
  setEnumOptions(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13428
13099
  }, [schemaHash, optionsHash, schemaUtils, uiSchemaHash, formDataHash]);
13429
13100
  const { widget = discriminator ? "radio" : "select", title = "", placeholder = "", optionsSchemaSelector: selectorField = discriminator, hideError: uiSchemaHideError, ...uiOptions } = getUiOptions(uiSchema);
@@ -13462,24 +13133,24 @@ function LayoutMultiSchemaField(props) {
13462
13133
 
13463
13134
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/MultiSchemaField.js
13464
13135
  import { jsx as _jsx11 } from "react/jsx-runtime";
13465
- import { useCallback as useCallback5, useEffect as useEffect5, useMemo as useMemo7, useRef as useRef5, useState as useState8 } from "react";
13136
+ import { useCallback as useCallback5, useEffect as useEffect4, useMemo as useMemo5, useRef as useRef4, useState as useState7 } from "react";
13466
13137
  function AnyOfField(props) {
13467
13138
  const { name, disabled = false, errorSchema, formData, fieldPathId, onBlur, onChange, onFocus, options, readonly, registry, required = false, schema, uiSchema } = props;
13468
13139
  const { schemaUtils } = registry;
13469
13140
  const formDataHash = hashObject(formData ?? null);
13470
- const retrievedOptions = useMemo7(
13141
+ const retrievedOptions = useMemo5(
13471
13142
  () => options.map((opt) => schemaUtils.retrieveSchema(opt, formData)),
13472
13143
  // oxlint-disable-next-line react-hooks/exhaustive-deps -- formDataHash is the value-stable proxy for formData
13473
13144
  [options, schemaUtils, formDataHash]
13474
13145
  );
13475
- const [selectedOption, setSelectedOption] = useState8(() => {
13146
+ const [selectedOption, setSelectedOption] = useState7(() => {
13476
13147
  const discriminator = getDiscriminatorFieldFromSchema(schema);
13477
13148
  return schemaUtils.getClosestMatchingOption(formData, retrievedOptions, 0, discriminator);
13478
13149
  });
13479
- const skipNextOptionRecalculation = useRef5(false);
13480
- const prevFormDataRef = useRef5(formData);
13481
- const prevFieldIdRef = useRef5(fieldPathId.$id);
13482
- useEffect5(() => {
13150
+ const skipNextOptionRecalculation = useRef4(false);
13151
+ const prevFormDataRef = useRef4(formData);
13152
+ const prevFieldIdRef = useRef4(fieldPathId.$id);
13153
+ useEffect4(() => {
13483
13154
  const prevFormData = prevFormDataRef.current;
13484
13155
  const prevFieldId = prevFieldIdRef.current;
13485
13156
  prevFormDataRef.current = formData;
@@ -13577,10 +13248,10 @@ function AnyOfField(props) {
13577
13248
  var MultiSchemaField_default = AnyOfField;
13578
13249
 
13579
13250
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/NullField.js
13580
- import { useEffect as useEffect6 } from "react";
13251
+ import { useEffect as useEffect5 } from "react";
13581
13252
  function NullField(props) {
13582
13253
  const { formData, onChange, fieldPathId } = props;
13583
- useEffect6(() => {
13254
+ useEffect5(() => {
13584
13255
  if (formData === void 0) {
13585
13256
  onChange(null, fieldPathId.path);
13586
13257
  }
@@ -13591,12 +13262,12 @@ var NullField_default = NullField;
13591
13262
 
13592
13263
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/NumberField.js
13593
13264
  import { jsx as _jsx12 } from "react/jsx-runtime";
13594
- import { useState as useState9, useCallback as useCallback6 } from "react";
13265
+ import { useState as useState8, useCallback as useCallback6 } from "react";
13595
13266
  var trailingCharMatcherWithPrefix = /\.([0-9]*0)*$/;
13596
13267
  var trailingCharMatcher = /[0.]0*$/;
13597
13268
  function NumberField(props) {
13598
13269
  const { registry, onChange, formData, value: initialValue } = props;
13599
- const [lastValue, setLastValue] = useState9(initialValue);
13270
+ const [lastValue, setLastValue] = useState8(initialValue);
13600
13271
  const { StringField: StringField2 } = registry.fields;
13601
13272
  const separator = getDecimalSeparator();
13602
13273
  const escapedSeparator = separator === "." ? "\\." : separator;
@@ -13631,7 +13302,7 @@ var NumberField_default = NumberField;
13631
13302
 
13632
13303
  // ../../node_modules/.pnpm/@rjsf+core@6.10.0_@rjsf+utils@6.10.0_react@19.2.4__react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/@rjsf/core/lib/components/fields/ObjectField.js
13633
13304
  import { jsx as _jsx13, jsxs as _jsxs } from "react/jsx-runtime";
13634
- import { memo as memo2, useCallback as useCallback7, useMemo as useMemo9, useRef as useRef7, useState as useState10 } from "react";
13305
+ import { memo as memo2, useCallback as useCallback7, useMemo as useMemo7, useRef as useRef6, useState as useState9 } from "react";
13635
13306
 
13636
13307
  // ../../node_modules/.pnpm/markdown-to-jsx@9.10.2_react@19.2.4_vue@3.5.40_typescript@5.9.3_/node_modules/markdown-to-jsx/dist/react.js
13637
13308
  import * as i0 from "react";
@@ -16766,7 +16437,7 @@ function getAdditionalPropertyOrder(schemaProperties) {
16766
16437
  }
16767
16438
  function ObjectFieldPropertyFn(props) {
16768
16439
  const { fieldPathId, schema, registry, uiSchema, errorSchema, formData, onChange, onBlur, onFocus, disabled, readonly, required, hideError, propertyName, handleKeyRename, handleRemoveProperty, addedByAdditionalProperties } = props;
16769
- const [wasPropertyKeyModified, setWasPropertyKeyModified] = useState10(false);
16440
+ const [wasPropertyKeyModified, setWasPropertyKeyModified] = useState9(false);
16770
16441
  const { globalFormOptions, fields: fields2 } = registry;
16771
16442
  const { SchemaField: SchemaField2 } = fields2;
16772
16443
  const innerFieldIdPathId = useDeepCompareMemo(toFieldPathId(propertyName, globalFormOptions, fieldPathId.path));
@@ -16797,15 +16468,15 @@ function ObjectField(props) {
16797
16468
  const { schema: rawSchema, uiSchema = {}, formData, errorSchema, fieldPathId, name, required = false, disabled, readonly, hideError, onBlur, onFocus, onChange, registry, title } = props;
16798
16469
  const { fields: fields2, schemaUtils, translateString, globalUiOptions } = registry;
16799
16470
  const { OptionalDataControlsField: OptionalDataControlsField2 } = fields2;
16800
- const formDataRef = useRef7(formData);
16471
+ const formDataRef = useRef6(formData);
16801
16472
  formDataRef.current = formData;
16802
- const schema = useMemo9(() => schemaUtils.retrieveSchema(rawSchema, formData, true), [schemaUtils, rawSchema, formData]);
16803
- const uiOptions = useMemo9(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
16804
- const schemaProperties = useMemo9(() => schema.properties ?? {}, [schema.properties]);
16473
+ const schema = useMemo7(() => schemaUtils.retrieveSchema(rawSchema, formData, true), [schemaUtils, rawSchema, formData]);
16474
+ const uiOptions = useMemo7(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
16475
+ const schemaProperties = useMemo7(() => schema.properties ?? {}, [schema.properties]);
16805
16476
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
16806
- const lastRenamedProperty = useRef7({ previousKey: "", currentKey: void 0 });
16807
- const [additionalPropertyOrder, setAdditionalPropertyOrder] = useState10(() => getAdditionalPropertyOrder(schemaProperties));
16808
- const definedPropertyOrder = useMemo9(() => {
16477
+ const lastRenamedProperty = useRef6({ previousKey: "", currentKey: void 0 });
16478
+ const [additionalPropertyOrder, setAdditionalPropertyOrder] = useState9(() => getAdditionalPropertyOrder(schemaProperties));
16479
+ const definedPropertyOrder = useMemo7(() => {
16809
16480
  const additionalPropertySet = new Set(getAdditionalPropertyOrder(schemaProperties));
16810
16481
  return Object.keys(schemaProperties).filter((property) => !additionalPropertySet.has(property));
16811
16482
  }, [schemaProperties]);
@@ -18759,7 +18430,7 @@ var Form = class _Form extends Component {
18759
18430
  };
18760
18431
 
18761
18432
  // src/components/SessionPluginConfigForm.tsx
18762
- import { isValidElement, useMemo as useMemo10, useState as useState11 } from "react";
18433
+ import { isValidElement, useMemo as useMemo8, useState as useState10 } from "react";
18763
18434
 
18764
18435
  // src/components/plugin-config-schema.ts
18765
18436
  function asSchema(value) {
@@ -18954,7 +18625,7 @@ function configDraftOperations(initial, values, retained, removed) {
18954
18625
  }
18955
18626
 
18956
18627
  // src/components/SessionPluginConfigForm.tsx
18957
- import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
18628
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
18958
18629
  var defaults = getDefaultRegistry();
18959
18630
  var validator = {
18960
18631
  isValid(schema, data, rootSchema) {
@@ -19011,7 +18682,7 @@ function presentationSchema(schema) {
19011
18682
  }
19012
18683
  function ConfigMultiSchemaField(props) {
19013
18684
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-field", children: [
19014
- /* @__PURE__ */ jsx6("label", { htmlFor: isValidElement(props.selector) ? props.selector.props.id : void 0, children: "\u914D\u7F6E\u65B9\u5F0F" }),
18685
+ /* @__PURE__ */ jsx3("label", { htmlFor: isValidElement(props.selector) ? props.selector.props.id : void 0, children: "\u914D\u7F6E\u65B9\u5F0F" }),
19015
18686
  props.selector,
19016
18687
  props.optionSchemaField
19017
18688
  ] });
@@ -19039,12 +18710,12 @@ function ConfigSchemaField(inputProps) {
19039
18710
  const pointer = pointerOf(originalConfigPath(fieldPathId.path, context.removed));
19040
18711
  const originalMarker = [...context.retained].find(([, path2]) => path2 === pointer)?.[0];
19041
18712
  if (schema.const !== void 0 && schema.writeOnly !== true)
19042
- return /* @__PURE__ */ jsx6(Fragment2, { children: context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx6("p", { role: "alert", children: error.message }, error.message)) });
18713
+ return /* @__PURE__ */ jsx3(Fragment2, { children: context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx3("p", { role: "alert", children: error.message }, error.message)) });
19043
18714
  if (schema.writeOnly === true) {
19044
18715
  const kept = typeof formData === "string" && context.retained.has(formData);
19045
18716
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-field", children: [
19046
18717
  Array.isArray(schema.type) && schema.type.includes("null") ? /* @__PURE__ */ jsxs2("label", { children: [
19047
- /* @__PURE__ */ jsx6(
18718
+ /* @__PURE__ */ jsx3(
19048
18719
  "input",
19049
18720
  {
19050
18721
  type: "checkbox",
@@ -19056,8 +18727,8 @@ function ConfigSchemaField(inputProps) {
19056
18727
  schema.title ?? props.name,
19057
18728
  "\uFF1A\u7F6E\u4E3A\u7A7A\u503C"
19058
18729
  ] }) : null,
19059
- /* @__PURE__ */ jsx6("label", { htmlFor: fieldPathId.$id, "data-required": props.required, children: schema.title ?? props.name }),
19060
- /* @__PURE__ */ jsx6(
18730
+ /* @__PURE__ */ jsx3("label", { htmlFor: fieldPathId.$id, "data-required": props.required, children: schema.title ?? props.name }),
18731
+ /* @__PURE__ */ jsx3(
19061
18732
  "input",
19062
18733
  {
19063
18734
  id: fieldPathId.$id,
@@ -19070,8 +18741,8 @@ function ConfigSchemaField(inputProps) {
19070
18741
  onChange: (event) => onChange(event.target.value || originalMarker, fieldPathId.path)
19071
18742
  }
19072
18743
  ),
19073
- kept ? /* @__PURE__ */ jsx6("p", { children: "\u5DF2\u4FDD\u5B58\uFF0C\u7559\u7A7A\u4FDD\u6301\u4E0D\u53D8" }) : null,
19074
- formData !== void 0 ? /* @__PURE__ */ jsx6(
18744
+ kept ? /* @__PURE__ */ jsx3("p", { children: "\u5DF2\u4FDD\u5B58\uFF0C\u7559\u7A7A\u4FDD\u6301\u4E0D\u53D8" }) : null,
18745
+ formData !== void 0 ? /* @__PURE__ */ jsx3(
19075
18746
  "button",
19076
18747
  {
19077
18748
  type: "button",
@@ -19080,8 +18751,8 @@ function ConfigSchemaField(inputProps) {
19080
18751
  children: "\u6E05\u9664\u5DF2\u4FDD\u5B58\u7684\u503C"
19081
18752
  }
19082
18753
  ) : null,
19083
- schema.description ? /* @__PURE__ */ jsx6("p", { children: schema.description }) : null,
19084
- context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx6("p", { role: "alert", children: error.message }, error.message))
18754
+ schema.description ? /* @__PURE__ */ jsx3("p", { children: schema.description }) : null,
18755
+ context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx3("p", { role: "alert", children: error.message }, error.message))
19085
18756
  ] });
19086
18757
  }
19087
18758
  const types = Array.isArray(schema.type) ? schema.type : [schema.type];
@@ -19090,7 +18761,7 @@ function ConfigSchemaField(inputProps) {
19090
18761
  const inner = { ...schema, type: nonNull[0] };
19091
18762
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-field", children: [
19092
18763
  /* @__PURE__ */ jsxs2("label", { children: [
19093
- /* @__PURE__ */ jsx6(
18764
+ /* @__PURE__ */ jsx3(
19094
18765
  "input",
19095
18766
  {
19096
18767
  type: "checkbox",
@@ -19105,28 +18776,28 @@ function ConfigSchemaField(inputProps) {
19105
18776
  schema.title ?? props.name,
19106
18777
  "\uFF1A\u7F6E\u4E3A\u7A7A\u503C"
19107
18778
  ] }),
19108
- nonNull.length && formData !== null ? /* @__PURE__ */ jsx6(defaults.fields.SchemaField, { ...props, schema: inner }) : null
18779
+ nonNull.length && formData !== null ? /* @__PURE__ */ jsx3(defaults.fields.SchemaField, { ...props, schema: inner }) : null
19109
18780
  ] });
19110
18781
  }
19111
- return /* @__PURE__ */ jsx6(defaults.fields.SchemaField, { ...props });
18782
+ return /* @__PURE__ */ jsx3(defaults.fields.SchemaField, { ...props });
19112
18783
  }
19113
18784
  function ConfigFieldTemplate(props) {
19114
18785
  const pointer = pointerOf(
19115
18786
  originalConfigPath(props.fieldPathId.path, props.registry.formContext.removed)
19116
18787
  );
19117
18788
  return /* @__PURE__ */ jsxs2("div", { className: props.classNames, hidden: props.hidden, children: [
19118
- props.displayLabel ? /* @__PURE__ */ jsx6("label", { htmlFor: props.id, "data-required": props.required, children: props.label }) : null,
18789
+ props.displayLabel ? /* @__PURE__ */ jsx3("label", { htmlFor: props.id, "data-required": props.required, children: props.label }) : null,
19119
18790
  props.displayLabel ? props.description : null,
19120
18791
  props.children,
19121
18792
  props.help,
19122
- props.registry.formContext.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx6("p", { role: "alert", children: error.message }, error.message))
18793
+ props.registry.formContext.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx3("p", { role: "alert", children: error.message }, error.message))
19123
18794
  ] });
19124
18795
  }
19125
18796
  function ConfigArrayItem(props) {
19126
18797
  const { buttonsProps: buttons, registry } = props;
19127
18798
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-array-item", children: [
19128
18799
  props.children,
19129
- buttons.hasRemove ? /* @__PURE__ */ jsx6(
18800
+ buttons.hasRemove ? /* @__PURE__ */ jsx3(
19130
18801
  "button",
19131
18802
  {
19132
18803
  type: "button",
@@ -19141,7 +18812,7 @@ function ConfigArrayItem(props) {
19141
18812
  if (previous !== void 0) registry.formContext.removed.add(pointerOf(path));
19142
18813
  buttons.onRemoveItem(event);
19143
18814
  },
19144
- children: /* @__PURE__ */ jsx6(Trash2, { size: 14 })
18815
+ children: /* @__PURE__ */ jsx3(Trash2, { size: 14 })
19145
18816
  }
19146
18817
  ) : null
19147
18818
  ] });
@@ -19154,12 +18825,12 @@ function SessionPluginConfigForm({
19154
18825
  onSubmit,
19155
18826
  onCancel
19156
18827
  }) {
19157
- const [initial] = useState11(() => createConfigDraft(config));
19158
- const [values, setValues] = useState11(initial.values);
19159
- const [removed] = useState11(() => /* @__PURE__ */ new Set());
19160
- const [draftFailure, setDraftFailure] = useState11(null);
19161
- const support = useMemo10(() => formSupport(config.schema), [config.schema]);
19162
- const schema = useMemo10(() => {
18828
+ const [initial] = useState10(() => createConfigDraft(config));
18829
+ const [values, setValues] = useState10(initial.values);
18830
+ const [removed] = useState10(() => /* @__PURE__ */ new Set());
18831
+ const [draftFailure, setDraftFailure] = useState10(null);
18832
+ const support = useMemo8(() => formSupport(config.schema), [config.schema]);
18833
+ const schema = useMemo8(() => {
19163
18834
  try {
19164
18835
  return config.schema ? presentationSchema(config.schema) : null;
19165
18836
  } catch {
@@ -19176,11 +18847,11 @@ function SessionPluginConfigForm({
19176
18847
  };
19177
18848
  if (!schema || support)
19178
18849
  return /* @__PURE__ */ jsxs2("div", { className: "space-y-3 text-xs", children: [
19179
- /* @__PURE__ */ jsx6("p", { children: support ?? "\u914D\u7F6E\u58F0\u660E\u7684\u7EC4\u5408\u65E0\u6CD5\u5448\u73B0\uFF0C\u8BF7\u8054\u7CFB\u63D2\u4EF6\u63D0\u4F9B\u65B9" }),
19180
- /* @__PURE__ */ jsx6("button", { type: "button", onClick: onCancel, children: "\u5173\u95ED" })
18850
+ /* @__PURE__ */ jsx3("p", { children: support ?? "\u914D\u7F6E\u58F0\u660E\u7684\u7EC4\u5408\u65E0\u6CD5\u5448\u73B0\uFF0C\u8BF7\u8054\u7CFB\u63D2\u4EF6\u63D0\u4F9B\u65B9" }),
18851
+ /* @__PURE__ */ jsx3("button", { type: "button", onClick: onCancel, children: "\u5173\u95ED" })
19181
18852
  ] });
19182
18853
  return /* @__PURE__ */ jsxs2("div", { className: "blade-plugin-config text-xs", children: [
19183
- /* @__PURE__ */ jsx6("style", { children: `
18854
+ /* @__PURE__ */ jsx3("style", { children: `
19184
18855
  .blade-plugin-config .rjsf-field, .blade-plugin-config fieldset { min-width:0; margin:0 0 10px; padding:0; border:0 }
19185
18856
  .blade-plugin-config label, .blade-plugin-config legend { display:block; font-size:12px; font-weight:500; overflow-wrap:anywhere; margin-bottom:4px }
19186
18857
  .blade-plugin-config label[data-required=true]::after { content:' *'; color:hsl(var(--destructive)) }
@@ -19193,8 +18864,8 @@ function SessionPluginConfigForm({
19193
18864
  .blade-plugin-config button:disabled { opacity:.5 }
19194
18865
  .blade-plugin-config .control-label { display:block }
19195
18866
  ` }),
19196
- failure || draftFailure ? /* @__PURE__ */ jsx6("p", { role: "alert", children: failure ?? draftFailure }) : null,
19197
- /* @__PURE__ */ jsx6(
18867
+ failure || draftFailure ? /* @__PURE__ */ jsx3("p", { role: "alert", children: failure ?? draftFailure }) : null,
18868
+ /* @__PURE__ */ jsx3(
19198
18869
  Form,
19199
18870
  {
19200
18871
  schema,
@@ -19208,7 +18879,7 @@ function SessionPluginConfigForm({
19208
18879
  MultiSchemaFieldTemplate: ConfigMultiSchemaField,
19209
18880
  ButtonTemplates: {
19210
18881
  ...defaults.templates.ButtonTemplates,
19211
- AddButton: (props) => /* @__PURE__ */ jsx6(
18882
+ AddButton: (props) => /* @__PURE__ */ jsx3(
19212
18883
  "button",
19213
18884
  {
19214
18885
  type: "button",
@@ -19216,7 +18887,7 @@ function SessionPluginConfigForm({
19216
18887
  "aria-label": "\u6DFB\u52A0\u4E00\u9879",
19217
18888
  disabled: props.disabled,
19218
18889
  onClick: props.onClick,
19219
- children: /* @__PURE__ */ jsx6(Plus, { size: 14 })
18890
+ children: /* @__PURE__ */ jsx3(Plus, { size: 14 })
19220
18891
  }
19221
18892
  )
19222
18893
  }
@@ -19258,8 +18929,8 @@ function SessionPluginConfigForm({
19258
18929
  }
19259
18930
  },
19260
18931
  children: /* @__PURE__ */ jsxs2("div", { className: "flex justify-end gap-2", children: [
19261
- /* @__PURE__ */ jsx6("button", { type: "button", onClick: onCancel, children: "\u53D6\u6D88" }),
19262
- /* @__PURE__ */ jsx6("button", { type: "submit", disabled: submitting, children: submitting ? "\u4FDD\u5B58\u4E2D\u2026" : "\u4FDD\u5B58" })
18932
+ /* @__PURE__ */ jsx3("button", { type: "button", onClick: onCancel, children: "\u53D6\u6D88" }),
18933
+ /* @__PURE__ */ jsx3("button", { type: "submit", disabled: submitting, children: submitting ? "\u4FDD\u5B58\u4E2D\u2026" : "\u4FDD\u5B58" })
19263
18934
  ] })
19264
18935
  }
19265
18936
  )
@@ -19267,8 +18938,8 @@ function SessionPluginConfigForm({
19267
18938
  }
19268
18939
 
19269
18940
  // src/components/SessionPluginIcon.tsx
19270
- import { useEffect as useEffect7, useState as useState12 } from "react";
19271
- import { jsx as jsx7 } from "react/jsx-runtime";
18941
+ import { useEffect as useEffect6, useState as useState11 } from "react";
18942
+ import { jsx as jsx4 } from "react/jsx-runtime";
19272
18943
  function sessionPluginLabel(plugin) {
19273
18944
  const display = typeof plugin.display_name === "string" ? plugin.display_name.trim() : "";
19274
18945
  return display || plugin.name;
@@ -19293,9 +18964,9 @@ function iconBlob(client, sessionId, name, token) {
19293
18964
  return pending;
19294
18965
  }
19295
18966
  function SessionPluginIcon({ client, sessionId, plugin, size: size4 = 20, shape = "rounded", className }) {
19296
- const [url, setUrl] = useState12(null);
18967
+ const [url, setUrl] = useState11(null);
19297
18968
  const token = plugin.icon;
19298
- useEffect7(() => {
18969
+ useEffect6(() => {
19299
18970
  setUrl(null);
19300
18971
  if (!token) return;
19301
18972
  let alive = true;
@@ -19313,14 +18984,14 @@ function SessionPluginIcon({ client, sessionId, plugin, size: size4 = 20, shape
19313
18984
  const frame = `flex shrink-0 items-center justify-center overflow-hidden ${shape === "circle" ? "rounded-full" : "rounded"} ${className ?? ""}`;
19314
18985
  const frameStyle = { width: size4, height: size4 };
19315
18986
  if (!url) {
19316
- return /* @__PURE__ */ jsx7("span", { className: `${frame} bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]`, style: frameStyle, "data-plugin-icon": "placeholder", children: /* @__PURE__ */ jsx7(Puzzle, { "aria-hidden": true, size: Math.round(size4 * 0.7) }) });
18987
+ return /* @__PURE__ */ jsx4("span", { className: `${frame} bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]`, style: frameStyle, "data-plugin-icon": "placeholder", children: /* @__PURE__ */ jsx4(Puzzle, { "aria-hidden": true, size: Math.round(size4 * 0.7) }) });
19317
18988
  }
19318
- return /* @__PURE__ */ jsx7("span", { className: frame, style: frameStyle, "data-plugin-icon": "image", children: /* @__PURE__ */ jsx7("img", { src: url, alt: "", "aria-hidden": true, className: "h-full w-full object-cover", onError: () => setUrl(null) }) });
18989
+ return /* @__PURE__ */ jsx4("span", { className: frame, style: frameStyle, "data-plugin-icon": "image", children: /* @__PURE__ */ jsx4("img", { src: url, alt: "", "aria-hidden": true, className: "h-full w-full object-cover", onError: () => setUrl(null) }) });
19319
18990
  }
19320
18991
 
19321
18992
  // src/components/SessionPluginConfigDialog.tsx
19322
- import { useEffect as useEffect8, useRef as useRef8, useState as useState13 } from "react";
19323
- import { Fragment as Fragment3, jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
18993
+ import { useEffect as useEffect7, useRef as useRef7, useState as useState12 } from "react";
18994
+ import { Fragment as Fragment3, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
19324
18995
  async function readFailure(error) {
19325
18996
  const response = error?.response;
19326
18997
  if (!response || typeof response.json !== "function") {
@@ -19347,7 +19018,7 @@ function SessionPluginConfigDialog({
19347
19018
  plugin,
19348
19019
  ...props
19349
19020
  }) {
19350
- return /* @__PURE__ */ jsx8(
19021
+ return /* @__PURE__ */ jsx5(
19351
19022
  ConfigDialogState,
19352
19023
  {
19353
19024
  client,
@@ -19365,41 +19036,66 @@ function ConfigDialogState({
19365
19036
  onSaved,
19366
19037
  onClose
19367
19038
  }) {
19368
- const [config, setConfig] = useState13(null);
19369
- const [loading, setLoading] = useState13(true);
19370
- const [loadFailure, setLoadFailure] = useState13(null);
19371
- const [saving, setSaving] = useState13(false);
19372
- const [failure, setFailure] = useState13(null);
19373
- const [fieldErrors, setFieldErrors] = useState13([]);
19374
- const [formVersion, setFormVersion] = useState13(0);
19375
- const alive = useRef8(true);
19376
- const generation = useRef8(0);
19377
- const dialog = useRef8(null);
19378
- useEffect8(() => {
19039
+ const [host, setHost] = useState12(null);
19040
+ const [restarting, setRestarting] = useState12(false);
19041
+ const [scope, setScope] = useState12("personal");
19042
+ const waitingForHost = host?.state === "starting" || host?.state === "updating";
19043
+ useEffect7(() => {
19044
+ if (!waitingForHost) return;
19045
+ const abort = new AbortController();
19046
+ let timer;
19047
+ const refresh = async () => {
19048
+ try {
19049
+ const next = await client.sessions.getSessionPluginConfig(sessionId, plugin.name, { signal: abort.signal }, scope);
19050
+ if (!abort.signal.aborted) setHost(next.host ?? null);
19051
+ } catch {
19052
+ }
19053
+ if (!abort.signal.aborted) timer = setTimeout(refresh, 2e3);
19054
+ };
19055
+ timer = setTimeout(refresh, 2e3);
19056
+ return () => {
19057
+ abort.abort();
19058
+ clearTimeout(timer);
19059
+ };
19060
+ }, [client, sessionId, plugin.name, scope, waitingForHost]);
19061
+ const [canConfigureGlobal, setCanConfigureGlobal] = useState12(false);
19062
+ const [config, setConfig] = useState12(null);
19063
+ const [loading, setLoading] = useState12(true);
19064
+ const [loadFailure, setLoadFailure] = useState12(null);
19065
+ const [saving, setSaving] = useState12(false);
19066
+ const [failure, setFailure] = useState12(null);
19067
+ const [fieldErrors, setFieldErrors] = useState12([]);
19068
+ const [formVersion, setFormVersion] = useState12(0);
19069
+ const alive = useRef7(true);
19070
+ const generation2 = useRef7(0);
19071
+ const dialog = useRef7(null);
19072
+ useEffect7(() => {
19379
19073
  const element = dialog.current;
19380
19074
  if (!element || element.open) return;
19381
19075
  if (typeof element.showModal === "function") element.showModal();
19382
19076
  else element.setAttribute("open", "");
19383
19077
  }, []);
19384
19078
  const load = async () => {
19385
- const current = ++generation.current;
19079
+ const current = ++generation2.current;
19386
19080
  setLoading(true);
19387
19081
  setLoadFailure(null);
19388
19082
  try {
19389
- const { config: state } = await client.sessions.getSessionPluginConfig(sessionId, plugin.name);
19390
- if (!alive.current || generation.current !== current) return;
19083
+ const { config: state, can_configure_global, host: hostState } = await client.sessions.getSessionPluginConfig(sessionId, plugin.name, void 0, scope);
19084
+ if (!alive.current || generation2.current !== current) return;
19085
+ setCanConfigureGlobal(can_configure_global ?? false);
19086
+ setHost(hostState ?? null);
19391
19087
  setConfig(state);
19392
19088
  setFormVersion((value) => value + 1);
19393
19089
  } catch (error) {
19394
- if (!alive.current || generation.current !== current) return;
19090
+ if (!alive.current || generation2.current !== current) return;
19395
19091
  const detail = await readFailure(error);
19396
- if (!alive.current || generation.current !== current) return;
19092
+ if (!alive.current || generation2.current !== current) return;
19397
19093
  setLoadFailure(detail.message ?? "\u914D\u7F6E\u6682\u4E0D\u53EF\u7528");
19398
19094
  } finally {
19399
- if (alive.current && generation.current === current) setLoading(false);
19095
+ if (alive.current && generation2.current === current) setLoading(false);
19400
19096
  }
19401
19097
  };
19402
- useEffect8(() => {
19098
+ useEffect7(() => {
19403
19099
  alive.current = true;
19404
19100
  setConfig(null);
19405
19101
  setFailure(null);
@@ -19407,12 +19103,12 @@ function ConfigDialogState({
19407
19103
  void load();
19408
19104
  return () => {
19409
19105
  alive.current = false;
19410
- generation.current++;
19106
+ generation2.current++;
19411
19107
  };
19412
- }, [client, sessionId, plugin.name]);
19108
+ }, [client, sessionId, plugin.name, scope]);
19413
19109
  const save = async (draft) => {
19414
19110
  if (!config) return;
19415
- const current = generation.current;
19111
+ const current = generation2.current;
19416
19112
  setSaving(true);
19417
19113
  setFailure(null);
19418
19114
  setFieldErrors([]);
@@ -19424,16 +19120,18 @@ function ConfigDialogState({
19424
19120
  expected_revision: config.revision,
19425
19121
  set: draft.set,
19426
19122
  remove: draft.remove
19427
- }
19123
+ },
19124
+ void 0,
19125
+ scope
19428
19126
  );
19429
- if (!alive.current || generation.current !== current) return;
19127
+ if (!alive.current || generation2.current !== current) return;
19430
19128
  setConfig(state);
19431
19129
  setFormVersion((value) => value + 1);
19432
- onSaved?.(state);
19130
+ if (scope === "personal") onSaved?.(state);
19433
19131
  } catch (error) {
19434
- if (!alive.current || generation.current !== current) return;
19132
+ if (!alive.current || generation2.current !== current) return;
19435
19133
  const detail = await readFailure(error);
19436
- if (!alive.current || generation.current !== current) return;
19134
+ if (!alive.current || generation2.current !== current) return;
19437
19135
  setFailure(detail.message ?? "\u914D\u7F6E\u672A\u4FDD\u5B58\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");
19438
19136
  setFieldErrors(detail.errors ?? []);
19439
19137
  if (detail.code === "plugin_config_conflict") await load();
@@ -19442,7 +19140,7 @@ function ConfigDialogState({
19442
19140
  }
19443
19141
  };
19444
19142
  return /* @__PURE__ */ jsxs3(Fragment3, { children: [
19445
- /* @__PURE__ */ jsx8("style", { children: ".blade-plugin-dialog::backdrop { background: rgb(0 0 0 / 40%); }" }),
19143
+ /* @__PURE__ */ jsx5("style", { children: ".blade-plugin-dialog::backdrop { background: rgb(0 0 0 / 40%); }" }),
19446
19144
  /* @__PURE__ */ jsxs3(
19447
19145
  "dialog",
19448
19146
  {
@@ -19469,8 +19167,8 @@ function ConfigDialogState({
19469
19167
  className: "blade-plugin-dialog max-h-[80vh] overflow-y-auto rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-lg",
19470
19168
  children: [
19471
19169
  /* @__PURE__ */ jsxs3("div", { className: "mb-3 flex items-center gap-2", children: [
19472
- /* @__PURE__ */ jsx8(SessionPluginIcon, { client, sessionId, plugin }),
19473
- /* @__PURE__ */ jsx8(
19170
+ /* @__PURE__ */ jsx5(SessionPluginIcon, { client, sessionId, plugin }),
19171
+ /* @__PURE__ */ jsx5(
19474
19172
  "span",
19475
19173
  {
19476
19174
  className: "min-w-0 flex-1 truncate text-sm font-medium",
@@ -19478,7 +19176,7 @@ function ConfigDialogState({
19478
19176
  children: sessionPluginLabel(plugin)
19479
19177
  }
19480
19178
  ),
19481
- /* @__PURE__ */ jsx8(
19179
+ /* @__PURE__ */ jsx5(
19482
19180
  "button",
19483
19181
  {
19484
19182
  type: "button",
@@ -19489,10 +19187,44 @@ function ConfigDialogState({
19489
19187
  }
19490
19188
  )
19491
19189
  ] }),
19492
- loading ? /* @__PURE__ */ jsx8("p", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6B63\u5728\u8BFB\u53D6\u914D\u7F6E\u2026" }) : null,
19190
+ canConfigureGlobal ? /* @__PURE__ */ jsxs3("div", { className: "mb-3 flex gap-2 text-xs", children: [
19191
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: saving, "aria-pressed": scope === "personal", onClick: () => setScope("personal"), children: "\u6211\u7684\u767B\u5F55" }),
19192
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: saving, "aria-pressed": scope === "global", onClick: () => setScope("global"), children: "\u7EC4\u7EC7\u5171\u4EAB\u914D\u7F6E" })
19193
+ ] }) : null,
19194
+ host ? /* @__PURE__ */ jsxs3("div", { className: "mb-3 space-y-1 text-xs", children: [
19195
+ /* @__PURE__ */ jsxs3("p", { children: [
19196
+ "\u670D\u52A1\uFF1A",
19197
+ host.reason,
19198
+ " \xB7 \u5DF2\u6062\u590D ",
19199
+ host.restarts,
19200
+ " \u6B21"
19201
+ ] }),
19202
+ canConfigureGlobal ? /* @__PURE__ */ jsxs3(Fragment3, { children: [
19203
+ /* @__PURE__ */ jsxs3("p", { className: "break-all text-[hsl(var(--muted-foreground))]", children: [
19204
+ "\u5305\u6458\u8981\uFF1A",
19205
+ host.digest,
19206
+ " \xB7 \u914D\u7F6E\uFF1A",
19207
+ host.revision
19208
+ ] }),
19209
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: restarting || saving, onClick: () => {
19210
+ setRestarting(true);
19211
+ void client.sessions.restartSessionPluginHost(sessionId, plugin.name).then(() => load()).catch(() => setFailure("\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")).finally(() => {
19212
+ if (alive.current) setRestarting(false);
19213
+ });
19214
+ }, children: restarting ? "\u6B63\u5728\u91CD\u542F\u2026" : "\u91CD\u542F\u670D\u52A1" }),
19215
+ host.recent?.length ? /* @__PURE__ */ jsxs3("details", { children: [
19216
+ /* @__PURE__ */ jsx5("summary", { children: "\u6700\u8FD1\u6D3B\u52A8" }),
19217
+ host.recent.map((line, index2) => /* @__PURE__ */ jsx5("p", { children: line }, `${index2}-${line}`))
19218
+ ] }) : null
19219
+ ] }) : null
19220
+ ] }) : null,
19221
+ scope === "personal" && config?.auth_status === "expired" ? /* @__PURE__ */ jsx5("p", { className: "mb-2 text-xs", children: "\u767B\u5F55\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u586B\u5199" }) : null,
19222
+ scope === "personal" && config?.global_ready === false ? /* @__PURE__ */ jsx5("p", { className: "mb-2 text-xs", children: "\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u586B\u5199\u5171\u4EAB\u914D\u7F6E" }) : null,
19223
+ scope === "global" ? /* @__PURE__ */ jsx5("p", { className: "mb-2 text-xs", children: "\u5171\u4EAB\u5BC6\u94A5\u7528\u4E8E\u63D2\u4EF6\u670D\u52A1\u3002\u547D\u4EE4\u7C7B\u63D2\u4EF6\u7684\u6C99\u76D2\u4EE3\u7801\u53EF\u4EE5\u8BFB\u53D6\u5B83\uFF1B\u9700\u4FDD\u5BC6\u65F6\u8BF7\u4F7F\u7528\u6258\u7BA1\u670D\u52A1\u3002" }) : null,
19224
+ loading ? /* @__PURE__ */ jsx5("p", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6B63\u5728\u8BFB\u53D6\u914D\u7F6E\u2026" }) : null,
19493
19225
  loadFailure ? /* @__PURE__ */ jsxs3("div", { className: "space-y-2 text-xs", children: [
19494
- /* @__PURE__ */ jsx8("p", { children: loadFailure }),
19495
- /* @__PURE__ */ jsx8(
19226
+ /* @__PURE__ */ jsx5("p", { children: loadFailure }),
19227
+ /* @__PURE__ */ jsx5(
19496
19228
  "button",
19497
19229
  {
19498
19230
  type: "button",
@@ -19502,7 +19234,7 @@ function ConfigDialogState({
19502
19234
  }
19503
19235
  )
19504
19236
  ] }) : null,
19505
- config && !loading ? /* @__PURE__ */ jsx8(
19237
+ config && !loading ? /* @__PURE__ */ jsx5(
19506
19238
  SessionPluginConfigForm,
19507
19239
  {
19508
19240
  config,
@@ -19521,7 +19253,7 @@ function ConfigDialogState({
19521
19253
  }
19522
19254
 
19523
19255
  // src/components/PluginConnectorList.tsx
19524
- import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
19256
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
19525
19257
  function PluginSwitch({
19526
19258
  label,
19527
19259
  checked,
@@ -19531,7 +19263,7 @@ function PluginSwitch({
19531
19263
  draft = false,
19532
19264
  onToggle
19533
19265
  }) {
19534
- return /* @__PURE__ */ jsx9(
19266
+ return /* @__PURE__ */ jsx6(
19535
19267
  "button",
19536
19268
  {
19537
19269
  type: "button",
@@ -19541,12 +19273,12 @@ function PluginSwitch({
19541
19273
  disabled,
19542
19274
  onClick: () => onToggle(!checked),
19543
19275
  className: `relative inline-flex h-[18px] w-8 shrink-0 cursor-pointer items-center rounded-full border transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${checked ? "border-transparent bg-[hsl(213_94%_55%)]" : "border-[hsl(var(--border))] bg-[hsl(var(--muted))]"}`,
19544
- children: /* @__PURE__ */ jsx9(
19276
+ children: /* @__PURE__ */ jsx6(
19545
19277
  "span",
19546
19278
  {
19547
19279
  "aria-hidden": "true",
19548
19280
  className: `pointer-events-none flex h-3.5 w-3.5 items-center justify-center rounded-full bg-white shadow transition-transform ${checked ? "translate-x-[16px]" : "translate-x-[2px]"}`,
19549
- children: pending ? /* @__PURE__ */ jsx9(LoaderCircle, { size: 9, className: "animate-spin text-[hsl(var(--muted-foreground))]" }) : null
19281
+ children: pending ? /* @__PURE__ */ jsx6(LoaderCircle, { size: 9, className: "animate-spin text-[hsl(var(--muted-foreground))]" }) : null
19550
19282
  }
19551
19283
  )
19552
19284
  }
@@ -19572,8 +19304,8 @@ function PluginConnectorList({
19572
19304
  }) {
19573
19305
  const configuringItem = configuring ? items.find((item) => item.name === configuring.name) ?? null : null;
19574
19306
  return /* @__PURE__ */ jsxs4("div", { className: "py-0.5", children: [
19575
- disabledReason ? /* @__PURE__ */ jsx9("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: disabledReason }) : null,
19576
- items.length === 0 ? /* @__PURE__ */ jsx9("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: unavailableText ?? emptyText }) : null,
19307
+ disabledReason ? /* @__PURE__ */ jsx6("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: disabledReason }) : null,
19308
+ items.length === 0 ? /* @__PURE__ */ jsx6("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: unavailableText ?? emptyText }) : null,
19577
19309
  items.map((item) => {
19578
19310
  const label = sessionPluginLabel(item);
19579
19311
  const actionable = !disabledReason && item.installed !== false || item.active;
@@ -19581,7 +19313,7 @@ function PluginConnectorList({
19581
19313
  const checked = item.active;
19582
19314
  return /* @__PURE__ */ jsxs4("div", { className: "group px-3 py-1", children: [
19583
19315
  /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
19584
- /* @__PURE__ */ jsx9(
19316
+ /* @__PURE__ */ jsx6(
19585
19317
  SessionPluginIcon,
19586
19318
  {
19587
19319
  client,
@@ -19589,8 +19321,9 @@ function PluginConnectorList({
19589
19321
  plugin: item
19590
19322
  }
19591
19323
  ),
19592
- /* @__PURE__ */ jsx9("span", { className: "min-w-0 flex-1 truncate text-[11px]", title: label, children: label }),
19593
- !draft && item.config === "configured" ? /* @__PURE__ */ jsx9(
19324
+ /* @__PURE__ */ jsx6("span", { className: "min-w-0 flex-1 truncate text-[11px]", title: label, children: label }),
19325
+ item.auth_status === "expired" || item.auth_status === "login_required" || item.auth_status === "unavailable" ? /* @__PURE__ */ jsx6("button", { type: "button", disabled: !sessionId || busy, onClick: () => onEditConfig(item), className: "shrink-0 text-[10px] underline", children: item.auth_status === "expired" ? "\u767B\u5F55\u5DF2\u8FC7\u671F" : item.auth_status === "unavailable" ? "\u6682\u65F6\u4E0D\u53EF\u7528" : "\u672A\u767B\u5F55" }) : null,
19326
+ !draft && item.config === "configured" ? /* @__PURE__ */ jsx6(
19594
19327
  "button",
19595
19328
  {
19596
19329
  type: "button",
@@ -19601,7 +19334,7 @@ function PluginConnectorList({
19601
19334
  children: "\u66F4\u65B0\u914D\u7F6E"
19602
19335
  }
19603
19336
  ) : null,
19604
- !draft && (item.config === "required" || item.config === "error") ? /* @__PURE__ */ jsx9(
19337
+ !draft && (item.config === "required" || item.config === "error") ? /* @__PURE__ */ jsx6(
19605
19338
  "button",
19606
19339
  {
19607
19340
  type: "button",
@@ -19612,7 +19345,7 @@ function PluginConnectorList({
19612
19345
  children: "\u586B\u5199\u914D\u7F6E"
19613
19346
  }
19614
19347
  ) : null,
19615
- /* @__PURE__ */ jsx9(
19348
+ /* @__PURE__ */ jsx6(
19616
19349
  PluginSwitch,
19617
19350
  {
19618
19351
  label,
@@ -19625,8 +19358,8 @@ function PluginConnectorList({
19625
19358
  )
19626
19359
  ] }),
19627
19360
  !draft && item.active && item.status !== "valid" && item.status !== "required" ? /* @__PURE__ */ jsxs4("div", { className: "mt-0.5 flex items-center gap-2 pl-7 text-[10px] text-[hsl(var(--muted-foreground))]", children: [
19628
- /* @__PURE__ */ jsx9("span", { children: item.reason || "\u63D2\u4EF6\u6682\u4E0D\u53EF\u7528" }),
19629
- /* @__PURE__ */ jsx9(
19361
+ /* @__PURE__ */ jsx6("span", { children: item.reason || "\u63D2\u4EF6\u6682\u4E0D\u53EF\u7528" }),
19362
+ /* @__PURE__ */ jsx6(
19630
19363
  "button",
19631
19364
  {
19632
19365
  type: "button",
@@ -19639,8 +19372,8 @@ function PluginConnectorList({
19639
19372
  ] }) : null
19640
19373
  ] }, item.name);
19641
19374
  }),
19642
- mutationError ? /* @__PURE__ */ jsx9("div", { className: "px-3 pt-1 text-[10px] text-[hsl(var(--destructive))]", children: "\u64CD\u4F5C\u672A\u5B8C\u6210\uFF0C\u8BF7\u91CD\u8BD5" }) : null,
19643
- configuring && configuringItem && sessionId ? /* @__PURE__ */ jsx9(
19375
+ mutationError ? /* @__PURE__ */ jsx6("div", { className: "px-3 pt-1 text-[10px] text-[hsl(var(--destructive))]", children: "\u64CD\u4F5C\u672A\u5B8C\u6210\uFF0C\u8BF7\u91CD\u8BD5" }) : null,
19376
+ configuring && configuringItem && sessionId ? /* @__PURE__ */ jsx6(
19644
19377
  SessionPluginConfigDialog,
19645
19378
  {
19646
19379
  client,
@@ -19661,6 +19394,7 @@ function catalogToConnectorItems(catalog) {
19661
19394
  icon: entry.icon,
19662
19395
  iconSource: "account",
19663
19396
  installed: entry.installed,
19397
+ auth_status: entry.auth_status,
19664
19398
  active: false,
19665
19399
  status: "not_prepared",
19666
19400
  projected: false
@@ -19690,6 +19424,7 @@ function mergeConnectorItems(sessionPlugins, catalog) {
19690
19424
  icon: entry.icon,
19691
19425
  iconSource: "account",
19692
19426
  installed: entry.installed,
19427
+ auth_status: entry.auth_status,
19693
19428
  active: plugin.active,
19694
19429
  status: plugin.status,
19695
19430
  reason: plugin.reason,
@@ -19707,29 +19442,29 @@ function filterConnectorItems(items, query) {
19707
19442
  }
19708
19443
 
19709
19444
  // src/components/use-session-plugin-activation.ts
19710
- import { useCallback as useCallback19, useEffect as useEffect9, useMemo as useMemo11, useRef as useRef9, useState as useState14 } from "react";
19445
+ import { useCallback as useCallback19, useEffect as useEffect8, useMemo as useMemo9, useRef as useRef8, useState as useState13 } from "react";
19711
19446
  function useSessionPluginActivation({
19712
19447
  client,
19713
19448
  sessionId,
19714
19449
  onChange
19715
19450
  }) {
19716
- const [plugins, setPlugins] = useState14([]);
19717
- const [catalog, setCatalog] = useState14(null);
19718
- const [loading, setLoading] = useState14(false);
19719
- const [listError, setListError] = useState14(false);
19720
- const [mutationError, setMutationError] = useState14(false);
19721
- const [inFlight, setInFlight] = useState14({});
19722
- const [configuring, setConfiguring] = useState14(null);
19723
- const alive = useRef9(true);
19724
- const generation = useRef9(0);
19725
- const mutationGenerations = useRef9(/* @__PURE__ */ new Map());
19726
- const desiredActivations = useRef9(/* @__PURE__ */ new Map());
19727
- const pendingMutations = useRef9(/* @__PURE__ */ new Map());
19728
- const submittedActivations = useRef9(/* @__PURE__ */ new Set());
19729
- const serverActive = useRef9(/* @__PURE__ */ new Set());
19730
- const lifetime = useRef9(0);
19731
- const request = useRef9(null);
19732
- const [desiredVersion, setDesiredVersion] = useState14(0);
19451
+ const [plugins, setPlugins] = useState13([]);
19452
+ const [catalog, setCatalog] = useState13(null);
19453
+ const [loading, setLoading] = useState13(false);
19454
+ const [listError, setListError] = useState13(false);
19455
+ const [mutationError, setMutationError] = useState13(false);
19456
+ const [inFlight, setInFlight] = useState13({});
19457
+ const [configuring, setConfiguring] = useState13(null);
19458
+ const alive = useRef8(true);
19459
+ const generation2 = useRef8(0);
19460
+ const mutationGenerations = useRef8(/* @__PURE__ */ new Map());
19461
+ const desiredActivations = useRef8(/* @__PURE__ */ new Map());
19462
+ const pendingMutations = useRef8(/* @__PURE__ */ new Map());
19463
+ const submittedActivations = useRef8(/* @__PURE__ */ new Set());
19464
+ const serverActive = useRef8(/* @__PURE__ */ new Set());
19465
+ const lifetime = useRef8(0);
19466
+ const request = useRef8(null);
19467
+ const [desiredVersion, setDesiredVersion] = useState13(0);
19733
19468
  const setDesired = useCallback19((name, value) => {
19734
19469
  if (value === null) {
19735
19470
  if (!desiredActivations.current.delete(name)) return;
@@ -19739,7 +19474,7 @@ function useSessionPluginActivation({
19739
19474
  }
19740
19475
  setDesiredVersion((version) => version + 1);
19741
19476
  }, []);
19742
- const items = useMemo11(() => {
19477
+ const items = useMemo9(() => {
19743
19478
  void desiredVersion;
19744
19479
  const merged = mergeConnectorItems(plugins, catalog);
19745
19480
  return merged.map((item) => {
@@ -19759,7 +19494,7 @@ function useSessionPluginActivation({
19759
19494
  return rest;
19760
19495
  });
19761
19496
  }, []);
19762
- useEffect9(() => {
19497
+ useEffect8(() => {
19763
19498
  alive.current = true;
19764
19499
  setPlugins([]);
19765
19500
  setCatalog(null);
@@ -19775,7 +19510,7 @@ function useSessionPluginActivation({
19775
19510
  return () => {
19776
19511
  alive.current = false;
19777
19512
  lifetime.current++;
19778
- generation.current++;
19513
+ generation2.current++;
19779
19514
  request.current?.abort();
19780
19515
  };
19781
19516
  }, [client]);
@@ -19784,7 +19519,7 @@ function useSessionPluginActivation({
19784
19519
  request.current?.abort();
19785
19520
  const controller = new AbortController();
19786
19521
  request.current = controller;
19787
- const current = ++generation.current;
19522
+ const current = ++generation2.current;
19788
19523
  setLoading(true);
19789
19524
  setListError(false);
19790
19525
  try {
@@ -19802,7 +19537,7 @@ function useSessionPluginActivation({
19802
19537
  }
19803
19538
  })
19804
19539
  );
19805
- if (alive.current && current === generation.current) {
19540
+ if (alive.current && current === generation2.current) {
19806
19541
  serverActive.current = new Set(withConfig.filter((item) => item.active).map((item) => item.name));
19807
19542
  setPlugins(withConfig.map((item) => {
19808
19543
  const desired = desiredActivations.current.get(item.name);
@@ -19810,9 +19545,9 @@ function useSessionPluginActivation({
19810
19545
  }));
19811
19546
  }
19812
19547
  } catch {
19813
- if (alive.current && current === generation.current && !controller.signal.aborted) setListError(true);
19548
+ if (alive.current && current === generation2.current && !controller.signal.aborted) setListError(true);
19814
19549
  } finally {
19815
- if (alive.current && current === generation.current) setLoading(false);
19550
+ if (alive.current && current === generation2.current) setLoading(false);
19816
19551
  }
19817
19552
  }, [client, sessionId]);
19818
19553
  const loadCatalog = useCallback19(async () => {
@@ -19874,112 +19609,330 @@ function useSessionPluginActivation({
19874
19609
  void load();
19875
19610
  }
19876
19611
  }
19877
- },
19878
- [client, finish, load, markInFlight, onChange, sessionId, setDesired]
19612
+ },
19613
+ [client, finish, load, markInFlight, onChange, sessionId, setDesired]
19614
+ );
19615
+ const enable = useCallback19(async (name) => {
19616
+ if (!alive.current) return;
19617
+ const startedAt = lifetime.current;
19618
+ const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19619
+ mutationGenerations.current.set(name, mutation);
19620
+ pendingMutations.current.set(name, mutation);
19621
+ setDesired(name, true);
19622
+ setMutationError(false);
19623
+ markInFlight(name, true);
19624
+ request.current?.abort();
19625
+ generation2.current++;
19626
+ setLoading(false);
19627
+ let state;
19628
+ try {
19629
+ const result = await client.sessions.prepareSessionPluginConfig(sessionId, name);
19630
+ if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19631
+ state = result.config;
19632
+ } catch {
19633
+ if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19634
+ abandon(name);
19635
+ setMutationError(true);
19636
+ return;
19637
+ }
19638
+ if (state.state === "required") {
19639
+ pendingMutations.current.delete(name);
19640
+ markInFlight(name, false);
19641
+ setConfiguring({ name, pendingActivation: true });
19642
+ return;
19643
+ }
19644
+ if (state.state !== "configured" && state.state !== "not_required") {
19645
+ abandon(name);
19646
+ setMutationError(true);
19647
+ return;
19648
+ }
19649
+ setPlugins((current) => current.map((item) => item.name === name ? { ...item, config: state.state } : item));
19650
+ await commitActivation(name, true, mutation, startedAt);
19651
+ }, [abandon, client, commitActivation, markInFlight, sessionId, setDesired]);
19652
+ const disable = useCallback19((name) => {
19653
+ const startedAt = lifetime.current;
19654
+ request.current?.abort();
19655
+ generation2.current++;
19656
+ setLoading(false);
19657
+ if (!submittedActivations.current.has(name) && !serverActive.current.has(name)) {
19658
+ abandon(name);
19659
+ return;
19660
+ }
19661
+ const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19662
+ mutationGenerations.current.set(name, mutation);
19663
+ pendingMutations.current.set(name, mutation);
19664
+ setDesired(name, false);
19665
+ setMutationError(false);
19666
+ markInFlight(name, true);
19667
+ void commitActivation(name, false, mutation, startedAt);
19668
+ }, [abandon, commitActivation, markInFlight, setDesired]);
19669
+ const toggle = useCallback19((item, next) => {
19670
+ if (next) void enable(item.name);
19671
+ else disable(item.name);
19672
+ }, [disable, enable]);
19673
+ const retry = useCallback19((item) => {
19674
+ void enable(item.name);
19675
+ }, [enable]);
19676
+ const editConfig = useCallback19((item) => {
19677
+ setConfiguring({ name: item.name, pendingActivation: false });
19678
+ }, []);
19679
+ const onConfigSaved = useCallback19((state) => {
19680
+ const target = configuring;
19681
+ if (!target) return;
19682
+ setConfiguring(null);
19683
+ void loadCatalog();
19684
+ setPlugins((current) => current.map((item) => item.name === target.name ? { ...item, config: state.state } : item));
19685
+ if (!target.pendingActivation || state.state !== "configured") {
19686
+ void load();
19687
+ return;
19688
+ }
19689
+ const startedAt = lifetime.current;
19690
+ const mutation = (mutationGenerations.current.get(target.name) ?? 0) + 1;
19691
+ mutationGenerations.current.set(target.name, mutation);
19692
+ pendingMutations.current.set(target.name, mutation);
19693
+ setDesired(target.name, true);
19694
+ markInFlight(target.name, true);
19695
+ void commitActivation(target.name, true, mutation, startedAt);
19696
+ }, [commitActivation, configuring, load, loadCatalog, markInFlight, setDesired]);
19697
+ const onConfigClose = useCallback19(() => {
19698
+ const target = configuring;
19699
+ if (!target) return;
19700
+ setConfiguring(null);
19701
+ if (target.pendingActivation) abandon(target.name);
19702
+ else void load();
19703
+ }, [abandon, configuring, load]);
19704
+ return {
19705
+ items,
19706
+ loading,
19707
+ listError,
19708
+ mutationError,
19709
+ inFlight,
19710
+ busy: Object.keys(inFlight).length > 0,
19711
+ configuring,
19712
+ reload,
19713
+ toggle,
19714
+ retry,
19715
+ editConfig,
19716
+ onConfigSaved,
19717
+ onConfigClose
19718
+ };
19719
+ }
19720
+
19721
+ // src/chat/runtime/session-source.tsx
19722
+ import { createInitialSessionState } from "@blade-hq/agent-client/internal";
19723
+ import {
19724
+ createContext as createContext3,
19725
+ useContext as useContext3,
19726
+ useEffect as useEffect9,
19727
+ useLayoutEffect,
19728
+ useMemo as useMemo10,
19729
+ useRef as useRef9,
19730
+ useState as useState14,
19731
+ useSyncExternalStore
19732
+ } from "react";
19733
+ import { jsx as jsx7 } from "react/jsx-runtime";
19734
+ var EMPTY_SOURCE = {
19735
+ subscribe: () => () => {
19736
+ },
19737
+ getSession: () => void 0,
19738
+ isHistoryLoading: () => false,
19739
+ planRevealRevision: () => 0
19740
+ };
19741
+ var SessionSourceContext = createContext3(EMPTY_SOURCE);
19742
+ function SessionSourceProvider({ source, children }) {
19743
+ return /* @__PURE__ */ jsx7(SessionSourceContext.Provider, { value: source, children });
19744
+ }
19745
+ function useSessionSource() {
19746
+ return useContext3(SessionSourceContext);
19747
+ }
19748
+ var SingleSessionSource = class {
19749
+ session = null;
19750
+ loading = false;
19751
+ listeners = /* @__PURE__ */ new Set();
19752
+ revisions = /* @__PURE__ */ new Map();
19753
+ subscribe = (listener) => {
19754
+ this.listeners.add(listener);
19755
+ return () => {
19756
+ this.listeners.delete(listener);
19757
+ };
19758
+ };
19759
+ getSession = (sessionId) => {
19760
+ const current = this.session;
19761
+ return current && (!sessionId || current.sessionId === sessionId) ? current : void 0;
19762
+ };
19763
+ isHistoryLoading = (sessionId) => {
19764
+ if (!this.session) return this.loading;
19765
+ return (!sessionId || this.session.sessionId === sessionId) && this.loading;
19766
+ };
19767
+ planRevealRevision = (sessionId) => sessionId ? this.revisions.get(sessionId) ?? 0 : 0;
19768
+ update(session, loading) {
19769
+ if (this.session === session && this.loading === loading) return;
19770
+ this.session = session;
19771
+ this.loading = loading;
19772
+ this.notify();
19773
+ }
19774
+ /** 只认实时成功的根回路 update_plan:历史加载与断线补数不算「新揭示」。 */
19775
+ watchPlan(session) {
19776
+ return session.on("toolResult", ({ toolCall, turn, source }) => {
19777
+ if (source === "reconnect_replay" || (turn.loop_id || "root") !== "root" || toolCall.status !== "done" || !isPlanUpdateTool(toolCall) || !parsePlanUpdate(toolCall.arguments)) {
19778
+ return;
19779
+ }
19780
+ this.revisions.set(session.sessionId, (this.revisions.get(session.sessionId) ?? 0) + 1);
19781
+ this.notify();
19782
+ });
19783
+ }
19784
+ notify() {
19785
+ for (const listener of [...this.listeners]) listener();
19786
+ }
19787
+ };
19788
+ function useSingleSessionSource(session, loading) {
19789
+ const [source] = useState14(() => new SingleSessionSource());
19790
+ useLayoutEffect(() => {
19791
+ source.update(session, loading);
19792
+ }, [source, session, loading]);
19793
+ useEffect9(() => session ? source.watchPlan(session) : void 0, [source, session]);
19794
+ return source;
19795
+ }
19796
+ var EMPTY_STATE = createInitialSessionState("");
19797
+ var noopSubscribe = () => () => {
19798
+ };
19799
+ function useSessionHandle(sessionId) {
19800
+ const source = useSessionSource();
19801
+ return useSyncExternalStore(
19802
+ source.subscribe,
19803
+ () => source.getSession(sessionId) ?? null,
19804
+ () => source.getSession(sessionId) ?? null
19805
+ );
19806
+ }
19807
+ function useSessionState(sessionId, selector) {
19808
+ const session = useSessionHandle(sessionId);
19809
+ const selectorRef = useRef9(selector);
19810
+ selectorRef.current = selector;
19811
+ const store = useMemo10(() => {
19812
+ let lastState = null;
19813
+ let lastSelector = null;
19814
+ let lastSelected;
19815
+ const getSnapshot = () => {
19816
+ const state = session ? session.getState() : EMPTY_STATE;
19817
+ const current = selectorRef.current;
19818
+ if (state !== lastState || current !== lastSelector) {
19819
+ const next = current(state);
19820
+ if (!(lastState !== null && Object.is(next, lastSelected))) lastSelected = next;
19821
+ lastState = state;
19822
+ lastSelector = current;
19823
+ }
19824
+ return lastSelected;
19825
+ };
19826
+ return {
19827
+ subscribe: session ? (listener) => session.subscribe(listener) : noopSubscribe,
19828
+ getSnapshot
19829
+ };
19830
+ }, [session]);
19831
+ return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
19832
+ }
19833
+ function useIsSessionHistoryLoading(sessionId) {
19834
+ const source = useSessionSource();
19835
+ return useSyncExternalStore(
19836
+ source.subscribe,
19837
+ () => source.isHistoryLoading(sessionId),
19838
+ () => source.isHistoryLoading(sessionId)
19839
+ );
19840
+ }
19841
+ function usePlanRevealRevision(sessionId) {
19842
+ const source = useSessionSource();
19843
+ return useSyncExternalStore(
19844
+ source.subscribe,
19845
+ () => source.planRevealRevision(sessionId),
19846
+ () => source.planRevealRevision(sessionId)
19847
+ );
19848
+ }
19849
+ var CurrentChatSessionContext = createContext3(null);
19850
+ function CurrentChatSessionProvider({ sessionId, children }) {
19851
+ return /* @__PURE__ */ jsx7(CurrentChatSessionContext.Provider, { value: sessionId, children });
19852
+ }
19853
+ function useCurrentChatSessionId() {
19854
+ return useContext3(CurrentChatSessionContext);
19855
+ }
19856
+
19857
+ // src/chat/runtime/environment.tsx
19858
+ import { createContext as createContext4, useContext as useContext4, useMemo as useMemo11 } from "react";
19859
+ import { jsx as jsx8 } from "react/jsx-runtime";
19860
+ var EMPTY_ENVIRONMENT = {};
19861
+ var ChatEnvironmentContext = createContext4(EMPTY_ENVIRONMENT);
19862
+ function ChatEnvironmentProvider({ value, children }) {
19863
+ return /* @__PURE__ */ jsx8(ChatEnvironmentContext.Provider, { value, children });
19864
+ }
19865
+ function useChatEnvironment() {
19866
+ return useContext4(ChatEnvironmentContext);
19867
+ }
19868
+ var NO_HIGHLIGHT = { highlightedHtml: null };
19869
+ function usePlainCode() {
19870
+ return NO_HIGHLIGHT;
19871
+ }
19872
+ function useHighlightedCode(code, language) {
19873
+ const use = useChatEnvironment().useHighlightedCode ?? usePlainCode;
19874
+ return use(code, language);
19875
+ }
19876
+ function useNoDetail() {
19877
+ return null;
19878
+ }
19879
+ function useChatSessionDetail(sessionId) {
19880
+ const use = useChatEnvironment().useSessionDetail ?? useNoDetail;
19881
+ return use(sessionId);
19882
+ }
19883
+ function useShowTodo() {
19884
+ return false;
19885
+ }
19886
+ function useHideTodo() {
19887
+ const use = useChatEnvironment().useHideTodo ?? useShowTodo;
19888
+ return use();
19889
+ }
19890
+ function useChatRenderMode() {
19891
+ return useChatEnvironment().renderMode ?? "normal";
19892
+ }
19893
+ function notifyChat(environment, kind, message, options) {
19894
+ if (environment.notify) environment.notify(kind, message, options);
19895
+ else if (kind === "error") console.error(message);
19896
+ }
19897
+ function useComposerBridge(sessionId) {
19898
+ const environment = useChatEnvironment();
19899
+ const session = useSessionHandle(sessionId);
19900
+ return useMemo11(
19901
+ () => ({
19902
+ appendText(text, separate = false) {
19903
+ if (!sessionId) return;
19904
+ if (environment.appendToComposer) environment.appendToComposer(sessionId, text, separate);
19905
+ else session?.insertText(separate ? `
19906
+
19907
+ ${text}` : text);
19908
+ },
19909
+ addContext(context) {
19910
+ if (!sessionId) return;
19911
+ if (environment.addComposerContext) environment.addComposerContext(sessionId, context);
19912
+ else session?.attach(context.label, context.content);
19913
+ }
19914
+ }),
19915
+ [environment, session, sessionId]
19879
19916
  );
19880
- const enable = useCallback19(async (name) => {
19881
- if (!alive.current) return;
19882
- const startedAt = lifetime.current;
19883
- const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19884
- mutationGenerations.current.set(name, mutation);
19885
- pendingMutations.current.set(name, mutation);
19886
- setDesired(name, true);
19887
- setMutationError(false);
19888
- markInFlight(name, true);
19889
- request.current?.abort();
19890
- generation.current++;
19891
- setLoading(false);
19892
- let state;
19893
- try {
19894
- const result = await client.sessions.prepareSessionPluginConfig(sessionId, name);
19895
- if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19896
- state = result.config;
19897
- } catch {
19898
- if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19899
- abandon(name);
19900
- setMutationError(true);
19901
- return;
19902
- }
19903
- if (state.state === "required") {
19904
- pendingMutations.current.delete(name);
19905
- markInFlight(name, false);
19906
- setConfiguring({ name, pendingActivation: true });
19907
- return;
19908
- }
19909
- if (state.state !== "configured" && state.state !== "not_required") {
19910
- abandon(name);
19911
- setMutationError(true);
19912
- return;
19913
- }
19914
- setPlugins((current) => current.map((item) => item.name === name ? { ...item, config: state.state } : item));
19915
- await commitActivation(name, true, mutation, startedAt);
19916
- }, [abandon, client, commitActivation, markInFlight, sessionId, setDesired]);
19917
- const disable = useCallback19((name) => {
19918
- const startedAt = lifetime.current;
19919
- request.current?.abort();
19920
- generation.current++;
19921
- setLoading(false);
19922
- if (!submittedActivations.current.has(name) && !serverActive.current.has(name)) {
19923
- abandon(name);
19924
- return;
19925
- }
19926
- const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19927
- mutationGenerations.current.set(name, mutation);
19928
- pendingMutations.current.set(name, mutation);
19929
- setDesired(name, false);
19930
- setMutationError(false);
19931
- markInFlight(name, true);
19932
- void commitActivation(name, false, mutation, startedAt);
19933
- }, [abandon, commitActivation, markInFlight, setDesired]);
19934
- const toggle = useCallback19((item, next) => {
19935
- if (next) void enable(item.name);
19936
- else disable(item.name);
19937
- }, [disable, enable]);
19938
- const retry = useCallback19((item) => {
19939
- void enable(item.name);
19940
- }, [enable]);
19941
- const editConfig = useCallback19((item) => {
19942
- setConfiguring({ name: item.name, pendingActivation: false });
19943
- }, []);
19944
- const onConfigSaved = useCallback19((state) => {
19945
- const target = configuring;
19946
- if (!target) return;
19947
- setConfiguring(null);
19948
- setPlugins((current) => current.map((item) => item.name === target.name ? { ...item, config: state.state } : item));
19949
- if (!target.pendingActivation || state.state !== "configured") {
19950
- void load();
19951
- return;
19952
- }
19953
- const startedAt = lifetime.current;
19954
- const mutation = (mutationGenerations.current.get(target.name) ?? 0) + 1;
19955
- mutationGenerations.current.set(target.name, mutation);
19956
- pendingMutations.current.set(target.name, mutation);
19957
- setDesired(target.name, true);
19958
- markInFlight(target.name, true);
19959
- void commitActivation(target.name, true, mutation, startedAt);
19960
- }, [commitActivation, configuring, load, markInFlight, setDesired]);
19961
- const onConfigClose = useCallback19(() => {
19962
- const target = configuring;
19963
- if (!target) return;
19964
- setConfiguring(null);
19965
- if (target.pendingActivation) abandon(target.name);
19966
- else void load();
19967
- }, [abandon, configuring, load]);
19968
- return {
19969
- items,
19970
- loading,
19971
- listError,
19972
- mutationError,
19973
- inFlight,
19974
- busy: Object.keys(inFlight).length > 0,
19975
- configuring,
19976
- reload,
19977
- toggle,
19978
- retry,
19979
- editConfig,
19980
- onConfigSaved,
19981
- onConfigClose
19982
- };
19917
+ }
19918
+ var NO_VIRTUAL_ITEMS = [];
19919
+ var NO_VIRTUALIZER = {
19920
+ getVirtualItems: () => NO_VIRTUAL_ITEMS,
19921
+ getTotalSize: () => 0,
19922
+ measureElement: () => {
19923
+ },
19924
+ scrollToIndex: () => {
19925
+ },
19926
+ getOffsetForIndex: () => void 0
19927
+ };
19928
+ function useNoVirtualizer() {
19929
+ return NO_VIRTUALIZER;
19930
+ }
19931
+ function useChatVirtualizer(options) {
19932
+ const injected = useChatEnvironment().useVirtualizer;
19933
+ const use = injected ?? useNoVirtualizer;
19934
+ const virtualizer = use(options);
19935
+ return { virtualizer, enabled: Boolean(injected) };
19983
19936
  }
19984
19937
 
19985
19938
  // src/chat/runtime/actions.ts
@@ -20010,7 +19963,8 @@ function sendToSession(session, message, mode, askUserAnswer, extras = {}) {
20010
19963
  model: extras.model,
20011
19964
  thinkingOverride: extras.thinkingOverride,
20012
19965
  reasoningLevel: extras.reasoningLevel,
20013
- kbIds: extras.kbIds,
19966
+ refs: extras.refs,
19967
+ topicAssetRefs: extras.topicAssetRefs,
20014
19968
  whatif: extras.whatif,
20015
19969
  replayDecision: extras.replayDecision,
20016
19970
  queueWhenRunning: extras.queueWhenRunning
@@ -20088,13 +20042,13 @@ function useComposedRefs(...refs) {
20088
20042
 
20089
20043
  // ../../node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@19.2.14_react@19.2.4/node_modules/@radix-ui/react-context/dist/index.mjs
20090
20044
  import * as React2 from "react";
20091
- import { jsx as jsx10 } from "react/jsx-runtime";
20045
+ import { jsx as jsx9 } from "react/jsx-runtime";
20092
20046
  function createContext22(rootComponentName, defaultContext) {
20093
20047
  const Context = React2.createContext(defaultContext);
20094
20048
  const Provider2 = (props) => {
20095
20049
  const { children, ...context } = props;
20096
20050
  const value = React2.useMemo(() => context, Object.values(context));
20097
- return /* @__PURE__ */ jsx10(Context.Provider, { value, children });
20051
+ return /* @__PURE__ */ jsx9(Context.Provider, { value, children });
20098
20052
  };
20099
20053
  Provider2.displayName = rootComponentName + "Provider";
20100
20054
  function useContext22(consumerName) {
@@ -20115,7 +20069,7 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
20115
20069
  const { scope, children, ...context } = props;
20116
20070
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
20117
20071
  const value = React2.useMemo(() => context, Object.values(context));
20118
- return /* @__PURE__ */ jsx10(Context.Provider, { value, children });
20072
+ return /* @__PURE__ */ jsx9(Context.Provider, { value, children });
20119
20073
  };
20120
20074
  Provider2.displayName = rootComponentName + "Provider";
20121
20075
  function useContext22(consumerName, scope) {
@@ -20172,7 +20126,7 @@ import * as ReactDOM from "react-dom";
20172
20126
 
20173
20127
  // ../../node_modules/.pnpm/@radix-ui+react-slot@1.2.3_@types+react@19.2.14_react@19.2.4/node_modules/@radix-ui/react-slot/dist/index.mjs
20174
20128
  import * as React3 from "react";
20175
- import { Fragment as Fragment22, jsx as jsx11 } from "react/jsx-runtime";
20129
+ import { Fragment as Fragment22, jsx as jsx10 } from "react/jsx-runtime";
20176
20130
  // @__NO_SIDE_EFFECTS__
20177
20131
  function createSlot(ownerName) {
20178
20132
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -20190,9 +20144,9 @@ function createSlot(ownerName) {
20190
20144
  return child;
20191
20145
  }
20192
20146
  });
20193
- return /* @__PURE__ */ jsx11(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
20147
+ return /* @__PURE__ */ jsx10(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
20194
20148
  }
20195
- return /* @__PURE__ */ jsx11(SlotClone, { ...slotProps, ref: forwardedRef, children });
20149
+ return /* @__PURE__ */ jsx10(SlotClone, { ...slotProps, ref: forwardedRef, children });
20196
20150
  });
20197
20151
  Slot22.displayName = `${ownerName}.Slot`;
20198
20152
  return Slot22;
@@ -20218,7 +20172,7 @@ var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable");
20218
20172
  // @__NO_SIDE_EFFECTS__
20219
20173
  function createSlottable(ownerName) {
20220
20174
  const Slottable2 = ({ children }) => {
20221
- return /* @__PURE__ */ jsx11(Fragment22, { children });
20175
+ return /* @__PURE__ */ jsx10(Fragment22, { children });
20222
20176
  };
20223
20177
  Slottable2.displayName = `${ownerName}.Slottable`;
20224
20178
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -20266,7 +20220,7 @@ function getElementRef(element) {
20266
20220
  }
20267
20221
 
20268
20222
  // ../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.3_@types+react-dom@19.2.3_@types+react@19.2.14__@types+re_1181ea5061ec9212248424669240e4ec/node_modules/@radix-ui/react-primitive/dist/index.mjs
20269
- import { jsx as jsx12 } from "react/jsx-runtime";
20223
+ import { jsx as jsx11 } from "react/jsx-runtime";
20270
20224
  var NODES = [
20271
20225
  "a",
20272
20226
  "button",
@@ -20294,7 +20248,7 @@ var Primitive = NODES.reduce((primitive, node) => {
20294
20248
  if (typeof window !== "undefined") {
20295
20249
  window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
20296
20250
  }
20297
- return /* @__PURE__ */ jsx12(Comp, { ...primitiveProps, ref: forwardedRef });
20251
+ return /* @__PURE__ */ jsx11(Comp, { ...primitiveProps, ref: forwardedRef });
20298
20252
  });
20299
20253
  Node2.displayName = `Primitive.${node}`;
20300
20254
  return { ...primitive, [node]: Node2 };
@@ -20329,7 +20283,7 @@ function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.docum
20329
20283
  }
20330
20284
 
20331
20285
  // ../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.14___3d3960154a4c07d09bb90cb341135fc5/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs
20332
- import { jsx as jsx13 } from "react/jsx-runtime";
20286
+ import { jsx as jsx12 } from "react/jsx-runtime";
20333
20287
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
20334
20288
  var CONTEXT_UPDATE = "dismissableLayer.update";
20335
20289
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -20417,7 +20371,7 @@ var DismissableLayer = React7.forwardRef(
20417
20371
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
20418
20372
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
20419
20373
  }, []);
20420
- return /* @__PURE__ */ jsx13(
20374
+ return /* @__PURE__ */ jsx12(
20421
20375
  Primitive.div,
20422
20376
  {
20423
20377
  ...layerProps,
@@ -20451,7 +20405,7 @@ var DismissableLayerBranch = React7.forwardRef((props, forwardedRef) => {
20451
20405
  };
20452
20406
  }
20453
20407
  }, [context.branches]);
20454
- return /* @__PURE__ */ jsx13(Primitive.div, { ...props, ref: composedRefs });
20408
+ return /* @__PURE__ */ jsx12(Primitive.div, { ...props, ref: composedRefs });
20455
20409
  });
20456
20410
  DismissableLayerBranch.displayName = BRANCH_NAME;
20457
20411
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -20563,7 +20517,7 @@ function createFocusGuard() {
20563
20517
 
20564
20518
  // ../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.7_@types+react-dom@19.2.3_@types+react@19.2.14__@types+_f62f3af4ca2ba305a7aecf04c8534604/node_modules/@radix-ui/react-focus-scope/dist/index.mjs
20565
20519
  import * as React9 from "react";
20566
- import { jsx as jsx14 } from "react/jsx-runtime";
20520
+ import { jsx as jsx13 } from "react/jsx-runtime";
20567
20521
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
20568
20522
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
20569
20523
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -20682,7 +20636,7 @@ var FocusScope = React9.forwardRef((props, forwardedRef) => {
20682
20636
  },
20683
20637
  [loop, trapped, focusScope.paused]
20684
20638
  );
20685
- return /* @__PURE__ */ jsx14(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
20639
+ return /* @__PURE__ */ jsx13(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
20686
20640
  });
20687
20641
  FocusScope.displayName = FOCUS_SCOPE_NAME;
20688
20642
  function focusFirst(candidates, { select = false } = {}) {
@@ -22717,11 +22671,11 @@ var arrow3 = (options, deps) => {
22717
22671
 
22718
22672
  // ../../node_modules/.pnpm/@radix-ui+react-arrow@1.1.7_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react@_e05f2c19a58a99fddf374207b5e3778c/node_modules/@radix-ui/react-arrow/dist/index.mjs
22719
22673
  import * as React13 from "react";
22720
- import { jsx as jsx15 } from "react/jsx-runtime";
22674
+ import { jsx as jsx14 } from "react/jsx-runtime";
22721
22675
  var NAME = "Arrow";
22722
22676
  var Arrow = React13.forwardRef((props, forwardedRef) => {
22723
22677
  const { children, width = 10, height = 5, ...arrowProps } = props;
22724
- return /* @__PURE__ */ jsx15(
22678
+ return /* @__PURE__ */ jsx14(
22725
22679
  Primitive.svg,
22726
22680
  {
22727
22681
  ...arrowProps,
@@ -22730,7 +22684,7 @@ var Arrow = React13.forwardRef((props, forwardedRef) => {
22730
22684
  height,
22731
22685
  viewBox: "0 0 30 10",
22732
22686
  preserveAspectRatio: "none",
22733
- children: props.asChild ? children : /* @__PURE__ */ jsx15("polygon", { points: "0,0 30,0 15,10" })
22687
+ children: props.asChild ? children : /* @__PURE__ */ jsx14("polygon", { points: "0,0 30,0 15,10" })
22734
22688
  }
22735
22689
  );
22736
22690
  });
@@ -22775,14 +22729,14 @@ function useSize(element) {
22775
22729
  }
22776
22730
 
22777
22731
  // ../../node_modules/.pnpm/@radix-ui+react-popper@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_13e0521d8aea7ebfbfb8bee1fb615c05/node_modules/@radix-ui/react-popper/dist/index.mjs
22778
- import { jsx as jsx16 } from "react/jsx-runtime";
22732
+ import { jsx as jsx15 } from "react/jsx-runtime";
22779
22733
  var POPPER_NAME = "Popper";
22780
22734
  var [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);
22781
22735
  var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
22782
22736
  var Popper = (props) => {
22783
22737
  const { __scopePopper, children } = props;
22784
22738
  const [anchor, setAnchor] = React15.useState(null);
22785
- return /* @__PURE__ */ jsx16(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
22739
+ return /* @__PURE__ */ jsx15(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
22786
22740
  };
22787
22741
  Popper.displayName = POPPER_NAME;
22788
22742
  var ANCHOR_NAME = "PopperAnchor";
@@ -22800,7 +22754,7 @@ var PopperAnchor = React15.forwardRef(
22800
22754
  context.onAnchorChange(anchorRef.current);
22801
22755
  }
22802
22756
  });
22803
- return virtualRef ? null : /* @__PURE__ */ jsx16(Primitive.div, { ...anchorProps, ref: composedRefs });
22757
+ return virtualRef ? null : /* @__PURE__ */ jsx15(Primitive.div, { ...anchorProps, ref: composedRefs });
22804
22758
  }
22805
22759
  );
22806
22760
  PopperAnchor.displayName = ANCHOR_NAME;
@@ -22893,7 +22847,7 @@ var PopperContent = React15.forwardRef(
22893
22847
  useLayoutEffect22(() => {
22894
22848
  if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
22895
22849
  }, [content]);
22896
- return /* @__PURE__ */ jsx16(
22850
+ return /* @__PURE__ */ jsx15(
22897
22851
  "div",
22898
22852
  {
22899
22853
  ref: refs.setFloating,
@@ -22917,7 +22871,7 @@ var PopperContent = React15.forwardRef(
22917
22871
  }
22918
22872
  },
22919
22873
  dir: props.dir,
22920
- children: /* @__PURE__ */ jsx16(
22874
+ children: /* @__PURE__ */ jsx15(
22921
22875
  PopperContentProvider,
22922
22876
  {
22923
22877
  scope: __scopePopper,
@@ -22926,7 +22880,7 @@ var PopperContent = React15.forwardRef(
22926
22880
  arrowX,
22927
22881
  arrowY,
22928
22882
  shouldHideArrow: cannotCenterArrow,
22929
- children: /* @__PURE__ */ jsx16(
22883
+ children: /* @__PURE__ */ jsx15(
22930
22884
  Primitive.div,
22931
22885
  {
22932
22886
  "data-side": placedSide,
@@ -22963,7 +22917,7 @@ var PopperArrow = React15.forwardRef(function PopperArrow2(props, forwardedRef)
22963
22917
  // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
22964
22918
  // doesn't report size as we'd expect on SVG elements.
22965
22919
  // it reports their bounding box which is effectively the largest path inside the SVG.
22966
- /* @__PURE__ */ jsx16(
22920
+ /* @__PURE__ */ jsx15(
22967
22921
  "span",
22968
22922
  {
22969
22923
  ref: contentContext.onArrowChange,
@@ -22986,7 +22940,7 @@ var PopperArrow = React15.forwardRef(function PopperArrow2(props, forwardedRef)
22986
22940
  }[contentContext.placedSide],
22987
22941
  visibility: contentContext.shouldHideArrow ? "hidden" : void 0
22988
22942
  },
22989
- children: /* @__PURE__ */ jsx16(
22943
+ children: /* @__PURE__ */ jsx15(
22990
22944
  Root,
22991
22945
  {
22992
22946
  ...arrowProps,
@@ -23049,14 +23003,14 @@ var Arrow2 = PopperArrow;
23049
23003
  // ../../node_modules/.pnpm/@radix-ui+react-portal@1.1.9_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_7668895bec2444446faa4e0f4eb5244b/node_modules/@radix-ui/react-portal/dist/index.mjs
23050
23004
  import * as React16 from "react";
23051
23005
  import ReactDOM3 from "react-dom";
23052
- import { jsx as jsx17 } from "react/jsx-runtime";
23006
+ import { jsx as jsx16 } from "react/jsx-runtime";
23053
23007
  var PORTAL_NAME = "Portal";
23054
23008
  var Portal = React16.forwardRef((props, forwardedRef) => {
23055
23009
  const { container: containerProp, ...portalProps } = props;
23056
23010
  const [mounted, setMounted] = React16.useState(false);
23057
23011
  useLayoutEffect22(() => setMounted(true), []);
23058
23012
  const container = containerProp || mounted && globalThis?.document?.body;
23059
- return container ? ReactDOM3.createPortal(/* @__PURE__ */ jsx17(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
23013
+ return container ? ReactDOM3.createPortal(/* @__PURE__ */ jsx16(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
23060
23014
  });
23061
23015
  Portal.displayName = PORTAL_NAME;
23062
23016
 
@@ -24096,7 +24050,7 @@ ReactRemoveScroll.classNames = RemoveScroll.classNames;
24096
24050
  var Combination_default = ReactRemoveScroll;
24097
24051
 
24098
24052
  // ../../node_modules/.pnpm/@radix-ui+react-popover@1.1.15_@types+react-dom@19.2.3_@types+react@19.2.14__@types+rea_8b5332f8e883134e9d9ab2856fc4395d/node_modules/@radix-ui/react-popover/dist/index.mjs
24099
- import { jsx as jsx18 } from "react/jsx-runtime";
24053
+ import { jsx as jsx17 } from "react/jsx-runtime";
24100
24054
  var POPOVER_NAME = "Popover";
24101
24055
  var [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [
24102
24056
  createPopperScope
@@ -24121,7 +24075,7 @@ var Popover = (props) => {
24121
24075
  onChange: onOpenChange,
24122
24076
  caller: POPOVER_NAME
24123
24077
  });
24124
- return /* @__PURE__ */ jsx18(Root2, { ...popperScope, children: /* @__PURE__ */ jsx18(
24078
+ return /* @__PURE__ */ jsx17(Root2, { ...popperScope, children: /* @__PURE__ */ jsx17(
24125
24079
  PopoverProvider,
24126
24080
  {
24127
24081
  scope: __scopePopover,
@@ -24150,7 +24104,7 @@ var PopoverAnchor = React28.forwardRef(
24150
24104
  onCustomAnchorAdd();
24151
24105
  return () => onCustomAnchorRemove();
24152
24106
  }, [onCustomAnchorAdd, onCustomAnchorRemove]);
24153
- return /* @__PURE__ */ jsx18(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
24107
+ return /* @__PURE__ */ jsx17(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
24154
24108
  }
24155
24109
  );
24156
24110
  PopoverAnchor.displayName = ANCHOR_NAME2;
@@ -24161,7 +24115,7 @@ var PopoverTrigger = React28.forwardRef(
24161
24115
  const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
24162
24116
  const popperScope = usePopperScope(__scopePopover);
24163
24117
  const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
24164
- const trigger = /* @__PURE__ */ jsx18(
24118
+ const trigger = /* @__PURE__ */ jsx17(
24165
24119
  Primitive.button,
24166
24120
  {
24167
24121
  type: "button",
@@ -24174,7 +24128,7 @@ var PopoverTrigger = React28.forwardRef(
24174
24128
  onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
24175
24129
  }
24176
24130
  );
24177
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx18(Anchor, { asChild: true, ...popperScope, children: trigger });
24131
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx17(Anchor, { asChild: true, ...popperScope, children: trigger });
24178
24132
  }
24179
24133
  );
24180
24134
  PopoverTrigger.displayName = TRIGGER_NAME;
@@ -24185,7 +24139,7 @@ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
24185
24139
  var PopoverPortal = (props) => {
24186
24140
  const { __scopePopover, forceMount, children, container } = props;
24187
24141
  const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
24188
- return /* @__PURE__ */ jsx18(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx18(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx18(Portal, { asChild: true, container, children }) }) });
24142
+ return /* @__PURE__ */ jsx17(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx17(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx17(Portal, { asChild: true, container, children }) }) });
24189
24143
  };
24190
24144
  PopoverPortal.displayName = PORTAL_NAME2;
24191
24145
  var CONTENT_NAME2 = "PopoverContent";
@@ -24194,7 +24148,7 @@ var PopoverContent = React28.forwardRef(
24194
24148
  const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
24195
24149
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
24196
24150
  const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
24197
- return /* @__PURE__ */ jsx18(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx18(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx18(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
24151
+ return /* @__PURE__ */ jsx17(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx17(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx17(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
24198
24152
  }
24199
24153
  );
24200
24154
  PopoverContent.displayName = CONTENT_NAME2;
@@ -24209,7 +24163,7 @@ var PopoverContentModal = React28.forwardRef(
24209
24163
  const content = contentRef.current;
24210
24164
  if (content) return hideOthers(content);
24211
24165
  }, []);
24212
- return /* @__PURE__ */ jsx18(Combination_default, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx18(
24166
+ return /* @__PURE__ */ jsx17(Combination_default, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx17(
24213
24167
  PopoverContentImpl,
24214
24168
  {
24215
24169
  ...props,
@@ -24244,7 +24198,7 @@ var PopoverContentNonModal = React28.forwardRef(
24244
24198
  const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
24245
24199
  const hasInteractedOutsideRef = React28.useRef(false);
24246
24200
  const hasPointerDownOutsideRef = React28.useRef(false);
24247
- return /* @__PURE__ */ jsx18(
24201
+ return /* @__PURE__ */ jsx17(
24248
24202
  PopoverContentImpl,
24249
24203
  {
24250
24204
  ...props,
@@ -24296,7 +24250,7 @@ var PopoverContentImpl = React28.forwardRef(
24296
24250
  const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
24297
24251
  const popperScope = usePopperScope(__scopePopover);
24298
24252
  useFocusGuards();
24299
- return /* @__PURE__ */ jsx18(
24253
+ return /* @__PURE__ */ jsx17(
24300
24254
  FocusScope,
24301
24255
  {
24302
24256
  asChild: true,
@@ -24304,7 +24258,7 @@ var PopoverContentImpl = React28.forwardRef(
24304
24258
  trapped: trapFocus,
24305
24259
  onMountAutoFocus: onOpenAutoFocus,
24306
24260
  onUnmountAutoFocus: onCloseAutoFocus,
24307
- children: /* @__PURE__ */ jsx18(
24261
+ children: /* @__PURE__ */ jsx17(
24308
24262
  DismissableLayer,
24309
24263
  {
24310
24264
  asChild: true,
@@ -24314,7 +24268,7 @@ var PopoverContentImpl = React28.forwardRef(
24314
24268
  onPointerDownOutside,
24315
24269
  onFocusOutside,
24316
24270
  onDismiss: () => context.onOpenChange(false),
24317
- children: /* @__PURE__ */ jsx18(
24271
+ children: /* @__PURE__ */ jsx17(
24318
24272
  Content,
24319
24273
  {
24320
24274
  "data-state": getState(context.open),
@@ -24347,7 +24301,7 @@ var PopoverClose = React28.forwardRef(
24347
24301
  (props, forwardedRef) => {
24348
24302
  const { __scopePopover, ...closeProps } = props;
24349
24303
  const context = usePopoverContext(CLOSE_NAME, __scopePopover);
24350
- return /* @__PURE__ */ jsx18(
24304
+ return /* @__PURE__ */ jsx17(
24351
24305
  Primitive.button,
24352
24306
  {
24353
24307
  type: "button",
@@ -24364,7 +24318,7 @@ var PopoverArrow = React28.forwardRef(
24364
24318
  (props, forwardedRef) => {
24365
24319
  const { __scopePopover, ...arrowProps } = props;
24366
24320
  const popperScope = usePopperScope(__scopePopover);
24367
- return /* @__PURE__ */ jsx18(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24321
+ return /* @__PURE__ */ jsx17(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24368
24322
  }
24369
24323
  );
24370
24324
  PopoverArrow.displayName = ARROW_NAME2;
@@ -24400,7 +24354,7 @@ import * as React30 from "react";
24400
24354
 
24401
24355
  // ../../node_modules/.pnpm/@radix-ui+react-visually-hidden@1.2.3_@types+react-dom@19.2.3_@types+react@19.2.14__@ty_fa89646d7248b32d1762bf88948f6339/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
24402
24356
  import * as React29 from "react";
24403
- import { jsx as jsx19 } from "react/jsx-runtime";
24357
+ import { jsx as jsx18 } from "react/jsx-runtime";
24404
24358
  var VISUALLY_HIDDEN_STYLES = Object.freeze({
24405
24359
  // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
24406
24360
  position: "absolute",
@@ -24417,7 +24371,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
24417
24371
  var NAME2 = "VisuallyHidden";
24418
24372
  var VisuallyHidden = React29.forwardRef(
24419
24373
  (props, forwardedRef) => {
24420
- return /* @__PURE__ */ jsx19(
24374
+ return /* @__PURE__ */ jsx18(
24421
24375
  Primitive.span,
24422
24376
  {
24423
24377
  ...props,
@@ -24431,7 +24385,7 @@ VisuallyHidden.displayName = NAME2;
24431
24385
  var Root3 = VisuallyHidden;
24432
24386
 
24433
24387
  // ../../node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+reac_9074d9fb06315b089b2bee17c4c65951/node_modules/@radix-ui/react-tooltip/dist/index.mjs
24434
- import { jsx as jsx20, jsxs as jsxs5 } from "react/jsx-runtime";
24388
+ import { jsx as jsx19, jsxs as jsxs5 } from "react/jsx-runtime";
24435
24389
  var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
24436
24390
  createPopperScope
24437
24391
  ]);
@@ -24455,7 +24409,7 @@ var TooltipProvider = (props) => {
24455
24409
  const skipDelayTimer = skipDelayTimerRef.current;
24456
24410
  return () => window.clearTimeout(skipDelayTimer);
24457
24411
  }, []);
24458
- return /* @__PURE__ */ jsx20(
24412
+ return /* @__PURE__ */ jsx19(
24459
24413
  TooltipProviderContextProvider,
24460
24414
  {
24461
24415
  scope: __scopeTooltip,
@@ -24546,7 +24500,7 @@ var Tooltip = (props) => {
24546
24500
  }
24547
24501
  };
24548
24502
  }, []);
24549
- return /* @__PURE__ */ jsx20(Root2, { ...popperScope, children: /* @__PURE__ */ jsx20(
24503
+ return /* @__PURE__ */ jsx19(Root2, { ...popperScope, children: /* @__PURE__ */ jsx19(
24550
24504
  TooltipContextProvider,
24551
24505
  {
24552
24506
  scope: __scopeTooltip,
@@ -24590,7 +24544,7 @@ var TooltipTrigger = React30.forwardRef(
24590
24544
  React30.useEffect(() => {
24591
24545
  return () => document.removeEventListener("pointerup", handlePointerUp);
24592
24546
  }, [handlePointerUp]);
24593
- return /* @__PURE__ */ jsx20(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx20(
24547
+ return /* @__PURE__ */ jsx19(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx19(
24594
24548
  Primitive.button,
24595
24549
  {
24596
24550
  "aria-describedby": context.open ? context.contentId : void 0,
@@ -24632,7 +24586,7 @@ var [PortalProvider2, usePortalContext2] = createTooltipContext(PORTAL_NAME3, {
24632
24586
  var TooltipPortal = (props) => {
24633
24587
  const { __scopeTooltip, forceMount, children, container } = props;
24634
24588
  const context = useTooltipContext(PORTAL_NAME3, __scopeTooltip);
24635
- return /* @__PURE__ */ jsx20(PortalProvider2, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx20(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx20(Portal, { asChild: true, container, children }) }) });
24589
+ return /* @__PURE__ */ jsx19(PortalProvider2, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx19(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx19(Portal, { asChild: true, container, children }) }) });
24636
24590
  };
24637
24591
  TooltipPortal.displayName = PORTAL_NAME3;
24638
24592
  var CONTENT_NAME3 = "TooltipContent";
@@ -24641,7 +24595,7 @@ var TooltipContent = React30.forwardRef(
24641
24595
  const portalContext = usePortalContext2(CONTENT_NAME3, props.__scopeTooltip);
24642
24596
  const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
24643
24597
  const context = useTooltipContext(CONTENT_NAME3, props.__scopeTooltip);
24644
- return /* @__PURE__ */ jsx20(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx20(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx20(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
24598
+ return /* @__PURE__ */ jsx19(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx19(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx19(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
24645
24599
  }
24646
24600
  );
24647
24601
  var TooltipContentHoverable = React30.forwardRef((props, forwardedRef) => {
@@ -24703,7 +24657,7 @@ var TooltipContentHoverable = React30.forwardRef((props, forwardedRef) => {
24703
24657
  return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
24704
24658
  }
24705
24659
  }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);
24706
- return /* @__PURE__ */ jsx20(TooltipContentImpl, { ...props, ref: composedRefs });
24660
+ return /* @__PURE__ */ jsx19(TooltipContentImpl, { ...props, ref: composedRefs });
24707
24661
  });
24708
24662
  var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });
24709
24663
  var Slottable = createSlottable("TooltipContent");
@@ -24734,7 +24688,7 @@ var TooltipContentImpl = React30.forwardRef(
24734
24688
  return () => window.removeEventListener("scroll", handleScroll2, { capture: true });
24735
24689
  }
24736
24690
  }, [context.trigger, onClose]);
24737
- return /* @__PURE__ */ jsx20(
24691
+ return /* @__PURE__ */ jsx19(
24738
24692
  DismissableLayer,
24739
24693
  {
24740
24694
  asChild: true,
@@ -24762,8 +24716,8 @@ var TooltipContentImpl = React30.forwardRef(
24762
24716
  }
24763
24717
  },
24764
24718
  children: [
24765
- /* @__PURE__ */ jsx20(Slottable, { children }),
24766
- /* @__PURE__ */ jsx20(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx20(Root3, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
24719
+ /* @__PURE__ */ jsx19(Slottable, { children }),
24720
+ /* @__PURE__ */ jsx19(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx19(Root3, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
24767
24721
  ]
24768
24722
  }
24769
24723
  )
@@ -24781,7 +24735,7 @@ var TooltipArrow = React30.forwardRef(
24781
24735
  ARROW_NAME3,
24782
24736
  __scopeTooltip
24783
24737
  );
24784
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx20(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24738
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx19(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24785
24739
  }
24786
24740
  );
24787
24741
  TooltipArrow.displayName = ARROW_NAME3;
@@ -24919,7 +24873,7 @@ __export(dist_exports6, {
24919
24873
  createCollapsibleScope: () => createCollapsibleScope
24920
24874
  });
24921
24875
  import * as React31 from "react";
24922
- import { jsx as jsx21 } from "react/jsx-runtime";
24876
+ import { jsx as jsx20 } from "react/jsx-runtime";
24923
24877
  var COLLAPSIBLE_NAME = "Collapsible";
24924
24878
  var [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);
24925
24879
  var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
@@ -24939,7 +24893,7 @@ var Collapsible = React31.forwardRef(
24939
24893
  onChange: onOpenChange,
24940
24894
  caller: COLLAPSIBLE_NAME
24941
24895
  });
24942
- return /* @__PURE__ */ jsx21(
24896
+ return /* @__PURE__ */ jsx20(
24943
24897
  CollapsibleProvider,
24944
24898
  {
24945
24899
  scope: __scopeCollapsible,
@@ -24947,7 +24901,7 @@ var Collapsible = React31.forwardRef(
24947
24901
  contentId: useId(),
24948
24902
  open,
24949
24903
  onOpenToggle: React31.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
24950
- children: /* @__PURE__ */ jsx21(
24904
+ children: /* @__PURE__ */ jsx20(
24951
24905
  Primitive.div,
24952
24906
  {
24953
24907
  "data-state": getState2(open),
@@ -24966,7 +24920,7 @@ var CollapsibleTrigger = React31.forwardRef(
24966
24920
  (props, forwardedRef) => {
24967
24921
  const { __scopeCollapsible, ...triggerProps } = props;
24968
24922
  const context = useCollapsibleContext(TRIGGER_NAME3, __scopeCollapsible);
24969
- return /* @__PURE__ */ jsx21(
24923
+ return /* @__PURE__ */ jsx20(
24970
24924
  Primitive.button,
24971
24925
  {
24972
24926
  type: "button",
@@ -24988,7 +24942,7 @@ var CollapsibleContent = React31.forwardRef(
24988
24942
  (props, forwardedRef) => {
24989
24943
  const { forceMount, ...contentProps } = props;
24990
24944
  const context = useCollapsibleContext(CONTENT_NAME4, props.__scopeCollapsible);
24991
- return /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx21(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
24945
+ return /* @__PURE__ */ jsx20(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx20(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
24992
24946
  }
24993
24947
  );
24994
24948
  CollapsibleContent.displayName = CONTENT_NAME4;
@@ -25028,7 +24982,7 @@ var CollapsibleContentImpl = React31.forwardRef((props, forwardedRef) => {
25028
24982
  setIsPresent(present);
25029
24983
  }
25030
24984
  }, [context.open, present]);
25031
- return /* @__PURE__ */ jsx21(
24985
+ return /* @__PURE__ */ jsx20(
25032
24986
  Primitive.div,
25033
24987
  {
25034
24988
  "data-state": getState2(context.open),
@@ -25076,7 +25030,7 @@ __export(dist_exports7, {
25076
25030
  createDialogScope: () => createDialogScope
25077
25031
  });
25078
25032
  import * as React32 from "react";
25079
- import { Fragment as Fragment7, jsx as jsx22, jsxs as jsxs6 } from "react/jsx-runtime";
25033
+ import { Fragment as Fragment7, jsx as jsx21, jsxs as jsxs6 } from "react/jsx-runtime";
25080
25034
  var DIALOG_NAME = "Dialog";
25081
25035
  var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
25082
25036
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -25097,7 +25051,7 @@ var Dialog = (props) => {
25097
25051
  onChange: onOpenChange,
25098
25052
  caller: DIALOG_NAME
25099
25053
  });
25100
- return /* @__PURE__ */ jsx22(
25054
+ return /* @__PURE__ */ jsx21(
25101
25055
  DialogProvider,
25102
25056
  {
25103
25057
  scope: __scopeDialog,
@@ -25121,7 +25075,7 @@ var DialogTrigger = React32.forwardRef(
25121
25075
  const { __scopeDialog, ...triggerProps } = props;
25122
25076
  const context = useDialogContext(TRIGGER_NAME4, __scopeDialog);
25123
25077
  const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
25124
- return /* @__PURE__ */ jsx22(
25078
+ return /* @__PURE__ */ jsx21(
25125
25079
  Primitive.button,
25126
25080
  {
25127
25081
  type: "button",
@@ -25144,7 +25098,7 @@ var [PortalProvider3, usePortalContext3] = createDialogContext(PORTAL_NAME4, {
25144
25098
  var DialogPortal = (props) => {
25145
25099
  const { __scopeDialog, forceMount, children, container } = props;
25146
25100
  const context = useDialogContext(PORTAL_NAME4, __scopeDialog);
25147
- return /* @__PURE__ */ jsx22(PortalProvider3, { scope: __scopeDialog, forceMount, children: React32.Children.map(children, (child) => /* @__PURE__ */ jsx22(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx22(Portal, { asChild: true, container, children: child }) })) });
25101
+ return /* @__PURE__ */ jsx21(PortalProvider3, { scope: __scopeDialog, forceMount, children: React32.Children.map(children, (child) => /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx21(Portal, { asChild: true, container, children: child }) })) });
25148
25102
  };
25149
25103
  DialogPortal.displayName = PORTAL_NAME4;
25150
25104
  var OVERLAY_NAME = "DialogOverlay";
@@ -25153,7 +25107,7 @@ var DialogOverlay = React32.forwardRef(
25153
25107
  const portalContext = usePortalContext3(OVERLAY_NAME, props.__scopeDialog);
25154
25108
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
25155
25109
  const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
25156
- return context.modal ? /* @__PURE__ */ jsx22(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx22(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
25110
+ return context.modal ? /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx21(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
25157
25111
  }
25158
25112
  );
25159
25113
  DialogOverlay.displayName = OVERLAY_NAME;
@@ -25165,7 +25119,7 @@ var DialogOverlayImpl = React32.forwardRef(
25165
25119
  return (
25166
25120
  // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
25167
25121
  // ie. when `Overlay` and `Content` are siblings
25168
- /* @__PURE__ */ jsx22(Combination_default, { as: Slot2, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx22(
25122
+ /* @__PURE__ */ jsx21(Combination_default, { as: Slot2, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx21(
25169
25123
  Primitive.div,
25170
25124
  {
25171
25125
  "data-state": getState3(context.open),
@@ -25183,7 +25137,7 @@ var DialogContent = React32.forwardRef(
25183
25137
  const portalContext = usePortalContext3(CONTENT_NAME5, props.__scopeDialog);
25184
25138
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
25185
25139
  const context = useDialogContext(CONTENT_NAME5, props.__scopeDialog);
25186
- return /* @__PURE__ */ jsx22(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx22(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx22(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
25140
+ return /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx21(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx21(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
25187
25141
  }
25188
25142
  );
25189
25143
  DialogContent.displayName = CONTENT_NAME5;
@@ -25196,7 +25150,7 @@ var DialogContentModal = React32.forwardRef(
25196
25150
  const content = contentRef.current;
25197
25151
  if (content) return hideOthers(content);
25198
25152
  }, []);
25199
- return /* @__PURE__ */ jsx22(
25153
+ return /* @__PURE__ */ jsx21(
25200
25154
  DialogContentImpl,
25201
25155
  {
25202
25156
  ...props,
@@ -25226,7 +25180,7 @@ var DialogContentNonModal = React32.forwardRef(
25226
25180
  const context = useDialogContext(CONTENT_NAME5, props.__scopeDialog);
25227
25181
  const hasInteractedOutsideRef = React32.useRef(false);
25228
25182
  const hasPointerDownOutsideRef = React32.useRef(false);
25229
- return /* @__PURE__ */ jsx22(
25183
+ return /* @__PURE__ */ jsx21(
25230
25184
  DialogContentImpl,
25231
25185
  {
25232
25186
  ...props,
@@ -25269,7 +25223,7 @@ var DialogContentImpl = React32.forwardRef(
25269
25223
  const composedRefs = useComposedRefs(forwardedRef, contentRef);
25270
25224
  useFocusGuards();
25271
25225
  return /* @__PURE__ */ jsxs6(Fragment7, { children: [
25272
- /* @__PURE__ */ jsx22(
25226
+ /* @__PURE__ */ jsx21(
25273
25227
  FocusScope,
25274
25228
  {
25275
25229
  asChild: true,
@@ -25277,7 +25231,7 @@ var DialogContentImpl = React32.forwardRef(
25277
25231
  trapped: trapFocus,
25278
25232
  onMountAutoFocus: onOpenAutoFocus,
25279
25233
  onUnmountAutoFocus: onCloseAutoFocus,
25280
- children: /* @__PURE__ */ jsx22(
25234
+ children: /* @__PURE__ */ jsx21(
25281
25235
  DismissableLayer,
25282
25236
  {
25283
25237
  role: "dialog",
@@ -25293,8 +25247,8 @@ var DialogContentImpl = React32.forwardRef(
25293
25247
  }
25294
25248
  ),
25295
25249
  /* @__PURE__ */ jsxs6(Fragment7, { children: [
25296
- /* @__PURE__ */ jsx22(TitleWarning, { titleId: context.titleId }),
25297
- /* @__PURE__ */ jsx22(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
25250
+ /* @__PURE__ */ jsx21(TitleWarning, { titleId: context.titleId }),
25251
+ /* @__PURE__ */ jsx21(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
25298
25252
  ] })
25299
25253
  ] });
25300
25254
  }
@@ -25304,7 +25258,7 @@ var DialogTitle = React32.forwardRef(
25304
25258
  (props, forwardedRef) => {
25305
25259
  const { __scopeDialog, ...titleProps } = props;
25306
25260
  const context = useDialogContext(TITLE_NAME, __scopeDialog);
25307
- return /* @__PURE__ */ jsx22(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
25261
+ return /* @__PURE__ */ jsx21(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
25308
25262
  }
25309
25263
  );
25310
25264
  DialogTitle.displayName = TITLE_NAME;
@@ -25313,7 +25267,7 @@ var DialogDescription = React32.forwardRef(
25313
25267
  (props, forwardedRef) => {
25314
25268
  const { __scopeDialog, ...descriptionProps } = props;
25315
25269
  const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
25316
- return /* @__PURE__ */ jsx22(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
25270
+ return /* @__PURE__ */ jsx21(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
25317
25271
  }
25318
25272
  );
25319
25273
  DialogDescription.displayName = DESCRIPTION_NAME;
@@ -25322,7 +25276,7 @@ var DialogClose = React32.forwardRef(
25322
25276
  (props, forwardedRef) => {
25323
25277
  const { __scopeDialog, ...closeProps } = props;
25324
25278
  const context = useDialogContext(CLOSE_NAME2, __scopeDialog);
25325
- return /* @__PURE__ */ jsx22(
25279
+ return /* @__PURE__ */ jsx21(
25326
25280
  Primitive.button,
25327
25281
  {
25328
25282
  type: "button",
@@ -26571,18 +26525,21 @@ var cn2 = /* @__PURE__ */ wrapClsx(instance.mergeString, instance);
26571
26525
  var twMerge2 = instance.merge;
26572
26526
 
26573
26527
  // ../ui/src/components/dialog.tsx
26574
- import { jsx as jsx23, jsxs as jsxs7 } from "react/jsx-runtime";
26528
+ import { jsx as jsx22, jsxs as jsxs7 } from "react/jsx-runtime";
26575
26529
  function Dialog2({
26576
26530
  ...props
26577
26531
  }) {
26578
- return /* @__PURE__ */ jsx23(dist_exports7.Root, { "data-slot": "dialog", ...props });
26532
+ return /* @__PURE__ */ jsx22(dist_exports7.Root, { "data-slot": "dialog", ...props });
26579
26533
  }
26580
26534
  function DialogClose2({
26581
26535
  ...props
26582
26536
  }) {
26583
- return /* @__PURE__ */ jsx23(dist_exports7.Close, { "data-slot": "dialog-close", ...props });
26537
+ return /* @__PURE__ */ jsx22(dist_exports7.Close, { "data-slot": "dialog-close", ...props });
26584
26538
  }
26585
26539
 
26540
+ // ../ui/src/composites/dialog.tsx
26541
+ import { forwardRef as forwardRef17 } from "react";
26542
+
26586
26543
  // ../ui/src/lib/shadow-focus.ts
26587
26544
  var TABBABLE = [
26588
26545
  "a[href]",
@@ -26617,14 +26574,12 @@ function loopTabInShadowRoot(event) {
26617
26574
  }
26618
26575
 
26619
26576
  // ../ui/src/composites/dialog.tsx
26620
- import { jsx as jsx24, jsxs as jsxs8 } from "react/jsx-runtime";
26621
- function DialogOverlay2({
26622
- className,
26623
- ...props
26624
- }) {
26625
- return /* @__PURE__ */ jsx24(
26577
+ import { jsx as jsx23, jsxs as jsxs8 } from "react/jsx-runtime";
26578
+ var DialogOverlay2 = forwardRef17(function DialogOverlay3({ className, ...props }, ref) {
26579
+ return /* @__PURE__ */ jsx23(
26626
26580
  dist_exports7.Overlay,
26627
26581
  {
26582
+ ref,
26628
26583
  "data-slot": "dialog-overlay",
26629
26584
  className: cn2(
26630
26585
  "fixed inset-0 z-50 bg-black/45 backdrop-blur-sm duration-(--motion-duration-fast) data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
@@ -26633,7 +26588,7 @@ function DialogOverlay2({
26633
26588
  ...props
26634
26589
  }
26635
26590
  );
26636
- }
26591
+ });
26637
26592
  function DialogContent2({
26638
26593
  className,
26639
26594
  children,
@@ -26644,7 +26599,7 @@ function DialogContent2({
26644
26599
  }) {
26645
26600
  const overlayRoot = useOverlayRoot();
26646
26601
  return /* @__PURE__ */ jsxs8(dist_exports7.Portal, { "data-slot": "dialog-portal", container: overlayRoot, children: [
26647
- /* @__PURE__ */ jsx24(DialogOverlay2, { className: overlayClassName }),
26602
+ /* @__PURE__ */ jsx23(DialogOverlay2, { className: overlayClassName }),
26648
26603
  /* @__PURE__ */ jsxs8(
26649
26604
  dist_exports7.Content,
26650
26605
  {
@@ -26666,8 +26621,8 @@ function DialogContent2({
26666
26621
  "data-slot": "dialog-close",
26667
26622
  className: "absolute top-4 right-4 rounded-[8px] p-2 text-[hsl(var(--muted-foreground))] opacity-90 transition-colors hover:bg-[hsl(var(--accent))] hover:opacity-100 focus:outline-none disabled:pointer-events-none",
26668
26623
  children: [
26669
- /* @__PURE__ */ jsx24(X, { size: 16 }),
26670
- /* @__PURE__ */ jsx24("span", { className: "sr-only", children: "\u5173\u95ED" })
26624
+ /* @__PURE__ */ jsx23(X, { size: 16 }),
26625
+ /* @__PURE__ */ jsx23("span", { className: "sr-only", children: "\u5173\u95ED" })
26671
26626
  ]
26672
26627
  }
26673
26628
  )
@@ -26677,7 +26632,7 @@ function DialogContent2({
26677
26632
  ] });
26678
26633
  }
26679
26634
  function DialogTitle2({ className, ...props }) {
26680
- return /* @__PURE__ */ jsx24(
26635
+ return /* @__PURE__ */ jsx23(
26681
26636
  dist_exports7.Title,
26682
26637
  {
26683
26638
  "data-slot": "dialog-title",
@@ -26686,6 +26641,19 @@ function DialogTitle2({ className, ...props }) {
26686
26641
  }
26687
26642
  );
26688
26643
  }
26644
+ function DialogDescription2({
26645
+ className,
26646
+ ...props
26647
+ }) {
26648
+ return /* @__PURE__ */ jsx23(
26649
+ dist_exports7.Description,
26650
+ {
26651
+ "data-slot": "dialog-description",
26652
+ className: cn2("text-sm text-[hsl(var(--muted-foreground))]", className),
26653
+ ...props
26654
+ }
26655
+ );
26656
+ }
26689
26657
 
26690
26658
  // src/chat/chat-theme.tsx
26691
26659
  var NEUTRAL = {
@@ -26750,6 +26718,7 @@ export {
26750
26718
  CircleAlert,
26751
26719
  CircleCheck,
26752
26720
  CirclePause,
26721
+ CircleSlash,
26753
26722
  CircleX,
26754
26723
  Copy,
26755
26724
  Download,
@@ -26790,7 +26759,6 @@ export {
26790
26759
  Plug,
26791
26760
  Plus,
26792
26761
  RefreshCcw,
26793
- RefreshCw,
26794
26762
  Rocket,
26795
26763
  RotateCcw,
26796
26764
  Scissors,
@@ -26803,32 +26771,11 @@ export {
26803
26771
  Terminal,
26804
26772
  Trash2,
26805
26773
  TriangleAlert,
26806
- Workflow,
26807
26774
  Wrench,
26808
26775
  X,
26776
+ Zap,
26809
26777
  cn,
26810
26778
  copyToClipboard,
26811
- ChatEnvironmentProvider,
26812
- useChatEnvironment,
26813
- useHighlightedCode,
26814
- useChatSessionDetail,
26815
- useHideTodo,
26816
- useChatRenderMode,
26817
- notifyChat,
26818
- useComposerBridge,
26819
- useChatVirtualizer,
26820
- getResultText,
26821
- getResultImages,
26822
- parseJsonValue,
26823
- isPlainObject,
26824
- getStringValue,
26825
- getNumberValue,
26826
- getBooleanValue,
26827
- extractErrorMessage,
26828
- getFileName,
26829
- formatBytes,
26830
- CodePreview,
26831
- parseKbSearchResult,
26832
26779
  getToolDescription,
26833
26780
  formatToolFileName,
26834
26781
  formatToolName,
@@ -26852,6 +26799,19 @@ export {
26852
26799
  usePlanRevealRevision,
26853
26800
  CurrentChatSessionProvider,
26854
26801
  useCurrentChatSessionId,
26802
+ ChatEnvironmentProvider,
26803
+ useChatEnvironment,
26804
+ useHighlightedCode,
26805
+ useChatSessionDetail,
26806
+ useHideTodo,
26807
+ useChatRenderMode,
26808
+ notifyChat,
26809
+ useComposerBridge,
26810
+ useChatVirtualizer,
26811
+ getInputHistoryGeneration,
26812
+ onInputCachesReset,
26813
+ pluginRefsForSend,
26814
+ getPluginSuggestionItems,
26855
26815
  sendToSession,
26856
26816
  useControllableState,
26857
26817
  dist_exports6 as dist_exports,
@@ -26869,6 +26829,7 @@ export {
26869
26829
  DialogClose2 as DialogClose,
26870
26830
  DialogContent2 as DialogContent,
26871
26831
  DialogTitle2 as DialogTitle,
26832
+ DialogDescription2 as DialogDescription,
26872
26833
  chatTone,
26873
26834
  useEffectEvent2 as useEffectEvent,
26874
26835
  SessionPluginConfigForm,
@@ -26916,6 +26877,7 @@ lucide-react/dist/esm/icons/circle-alert.js:
26916
26877
  lucide-react/dist/esm/icons/circle-check.js:
26917
26878
  lucide-react/dist/esm/icons/circle-dot.js:
26918
26879
  lucide-react/dist/esm/icons/circle-pause.js:
26880
+ lucide-react/dist/esm/icons/circle-slash.js:
26919
26881
  lucide-react/dist/esm/icons/circle-x.js:
26920
26882
  lucide-react/dist/esm/icons/circle.js:
26921
26883
  lucide-react/dist/esm/icons/copy.js:
@@ -26959,7 +26921,6 @@ lucide-react/dist/esm/icons/plug.js:
26959
26921
  lucide-react/dist/esm/icons/plus.js:
26960
26922
  lucide-react/dist/esm/icons/puzzle.js:
26961
26923
  lucide-react/dist/esm/icons/refresh-ccw.js:
26962
- lucide-react/dist/esm/icons/refresh-cw.js:
26963
26924
  lucide-react/dist/esm/icons/rocket.js:
26964
26925
  lucide-react/dist/esm/icons/rotate-ccw.js:
26965
26926
  lucide-react/dist/esm/icons/scissors.js:
@@ -26972,9 +26933,9 @@ lucide-react/dist/esm/icons/square.js:
26972
26933
  lucide-react/dist/esm/icons/terminal.js:
26973
26934
  lucide-react/dist/esm/icons/trash-2.js:
26974
26935
  lucide-react/dist/esm/icons/triangle-alert.js:
26975
- lucide-react/dist/esm/icons/workflow.js:
26976
26936
  lucide-react/dist/esm/icons/wrench.js:
26977
26937
  lucide-react/dist/esm/icons/x.js:
26938
+ lucide-react/dist/esm/icons/zap.js:
26978
26939
  lucide-react/dist/esm/lucide-react.js:
26979
26940
  (**
26980
26941
  * @license lucide-react v0.468.0 - ISC
@@ -26983,4 +26944,4 @@ lucide-react/dist/esm/lucide-react.js:
26983
26944
  * See the LICENSE file in the root directory of this source tree.
26984
26945
  *)
26985
26946
  */
26986
- //# sourceMappingURL=chunk-FQQJP2GJ.js.map
26947
+ //# sourceMappingURL=chunk-7TQVTNPL.js.map