@blade-hq/agent-react 2612.0.0-beta.2 → 2612.0.0-beta.21

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 (1164) hide show
  1. package/README.md +22 -0
  2. package/dist/chat/AssistantTurnBlock.d.ts +1 -1
  3. package/dist/chat/ChatLoadingIndicator.d.ts +7 -0
  4. package/dist/chat/ChatPanel.d.ts +1 -3
  5. package/dist/chat/ContextAttachmentPills.d.ts +4 -0
  6. package/dist/chat/LightComposer.d.ts +1 -1
  7. package/dist/chat/LiteMessageList.d.ts +1 -1
  8. package/dist/chat/MessageList.d.ts +1 -0
  9. package/dist/chat/WorkflowRunBlock.d.ts +19 -3
  10. package/dist/chat/ai-elements/reasoning.d.ts +4 -4
  11. package/dist/chat/customization.d.ts +1 -5
  12. package/dist/chat/index.d.ts +1 -4
  13. package/dist/chat/lib/citations.d.ts +5 -22
  14. package/dist/chat/markdown/MarkdownContent.d.ts +3 -0
  15. package/dist/chat/runtime/actions.d.ts +3 -1
  16. package/dist/chat/runtime/composer-channels.d.ts +4 -0
  17. package/dist/chat/runtime/input-cache-reset.d.ts +1 -1
  18. package/dist/chat/runtime/input-history-storage.d.ts +2 -0
  19. package/dist/chat/runtime/input-services.d.ts +0 -6
  20. package/dist/{chunk-6ZDOQEWK.js → chunk-GSKRNKEI.js} +1624 -1424
  21. package/dist/chunk-GSKRNKEI.js.map +1 -0
  22. package/dist/{chunk-WCMGQJLE.js → chunk-PAZSK73V.js} +2 -2
  23. package/dist/{chunk-FQQJP2GJ.js → chunk-PPREDKQ2.js} +778 -825
  24. package/dist/chunk-PPREDKQ2.js.map +1 -0
  25. package/dist/components/ChatInput.d.ts +3 -1
  26. package/dist/components/TopicAssetSubmitDialog.d.ts +14 -0
  27. package/dist/components/plugin-connector.d.ts +1 -0
  28. package/dist/embed/entry.d.ts +5 -3
  29. package/dist/host.d.ts +0 -4
  30. package/dist/index.d.ts +2 -0
  31. package/dist/index.js +8 -4
  32. package/dist/internal.d.ts +4 -2
  33. package/dist/internal.js +13 -48
  34. package/dist/internal.js.map +1 -1
  35. package/dist/rich-input/ChatInput.d.ts +1 -1
  36. package/dist/rich-input/FileCompletionMenu.d.ts +6 -9
  37. package/dist/rich-input/SkillStatusBar.d.ts +2 -4
  38. package/dist/rich-input/extensions/plugin-mention.d.ts +15 -0
  39. package/dist/rich-input/extensions/skill-mention.d.ts +3 -21
  40. package/dist/rich-input/extensions/topic-asset-mention.d.ts +13 -0
  41. package/dist/rich-input/index.d.ts +6 -3
  42. package/dist/rich-input/lib/composer-content.d.ts +15 -21
  43. package/dist/rich-input/lib/input-history-document.d.ts +3 -0
  44. package/dist/rich-input/lib/plugin-suggestions.d.ts +7 -0
  45. package/dist/rich-input/lib/reference-candidates.d.ts +27 -0
  46. package/dist/rich-input/lib/skill-suggestions.d.ts +1 -1
  47. package/dist/rich-input/lib/topic-asset-suggestions.d.ts +6 -0
  48. package/dist/rich-input/services.d.ts +2 -3
  49. package/dist/rich-input/use-input-history.d.ts +8 -8
  50. package/dist/rich-input/use-reference-candidates.d.ts +8 -0
  51. package/dist/rich-input.js +6467 -6389
  52. package/dist/rich-input.js.map +1 -1
  53. package/dist/style.full.css +1 -1
  54. package/node_modules/@floating-ui/core/LICENSE +20 -0
  55. package/node_modules/@floating-ui/core/README.md +4 -0
  56. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs +1 -0
  57. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.mjs +1184 -0
  58. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +531 -0
  59. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.ts +531 -0
  60. package/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js +1058 -0
  61. package/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +1058 -0
  62. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.js +1203 -0
  63. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.min.js +1 -0
  64. package/node_modules/@floating-ui/core/package.json +63 -0
  65. package/node_modules/@floating-ui/dom/LICENSE +20 -0
  66. package/node_modules/@floating-ui/dom/README.md +4 -0
  67. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs +1 -0
  68. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.mjs +956 -0
  69. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +358 -0
  70. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts +358 -0
  71. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +781 -0
  72. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +781 -0
  73. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js +975 -0
  74. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.min.js +1 -0
  75. package/node_modules/@floating-ui/dom/package.json +71 -0
  76. package/node_modules/@floating-ui/utils/LICENSE +20 -0
  77. package/node_modules/@floating-ui/utils/README.md +4 -0
  78. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +103 -0
  79. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.ts +103 -0
  80. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +47 -0
  81. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.ts +47 -0
  82. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.esm.js +165 -0
  83. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +165 -0
  84. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.js +192 -0
  85. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.min.js +1 -0
  86. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js +136 -0
  87. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +136 -0
  88. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.js +167 -0
  89. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.min.js +1 -0
  90. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.d.ts +47 -0
  91. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js +165 -0
  92. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.umd.js +192 -0
  93. package/node_modules/@floating-ui/utils/dom/package.json +6 -0
  94. package/node_modules/@floating-ui/utils/package.json +70 -0
  95. package/node_modules/@radix-ui/primitive/LICENSE +21 -0
  96. package/node_modules/@radix-ui/primitive/README.md +3 -0
  97. package/node_modules/@radix-ui/primitive/dist/index.d.mts +20 -0
  98. package/node_modules/@radix-ui/primitive/dist/index.d.ts +20 -0
  99. package/node_modules/@radix-ui/primitive/dist/index.js +76 -0
  100. package/node_modules/@radix-ui/primitive/dist/index.js.map +7 -0
  101. package/node_modules/@radix-ui/primitive/dist/index.mjs +53 -0
  102. package/node_modules/@radix-ui/primitive/dist/index.mjs.map +7 -0
  103. package/node_modules/@radix-ui/primitive/package.json +47 -0
  104. package/node_modules/@radix-ui/react-collapsible/LICENSE +21 -0
  105. package/node_modules/@radix-ui/react-collapsible/README.md +3 -0
  106. package/node_modules/@radix-ui/react-collapsible/dist/index.d.mts +33 -0
  107. package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts +33 -0
  108. package/node_modules/@radix-ui/react-collapsible/dist/index.js +187 -0
  109. package/node_modules/@radix-ui/react-collapsible/dist/index.js.map +7 -0
  110. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs +155 -0
  111. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +7 -0
  112. package/node_modules/@radix-ui/react-collapsible/package.json +75 -0
  113. package/node_modules/@radix-ui/react-compose-refs/README.md +13 -0
  114. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.mts +15 -0
  115. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts +15 -0
  116. package/node_modules/@radix-ui/react-compose-refs/dist/index.js +74 -0
  117. package/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +7 -0
  118. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +41 -0
  119. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +7 -0
  120. package/node_modules/@radix-ui/react-compose-refs/package.json +75 -0
  121. package/node_modules/@radix-ui/react-context/README.md +13 -0
  122. package/node_modules/@radix-ui/react-context/dist/index.d.mts +21 -0
  123. package/node_modules/@radix-ui/react-context/dist/index.d.ts +21 -0
  124. package/node_modules/@radix-ui/react-context/dist/index.js +114 -0
  125. package/node_modules/@radix-ui/react-context/dist/index.js.map +7 -0
  126. package/node_modules/@radix-ui/react-context/dist/index.mjs +81 -0
  127. package/node_modules/@radix-ui/react-context/dist/index.mjs.map +7 -0
  128. package/node_modules/@radix-ui/react-context/package.json +75 -0
  129. package/node_modules/@radix-ui/react-id/README.md +13 -0
  130. package/node_modules/@radix-ui/react-id/dist/index.d.mts +3 -0
  131. package/node_modules/@radix-ui/react-id/dist/index.d.ts +3 -0
  132. package/node_modules/@radix-ui/react-id/dist/index.js +49 -0
  133. package/node_modules/@radix-ui/react-id/dist/index.js.map +7 -0
  134. package/node_modules/@radix-ui/react-id/dist/index.mjs +16 -0
  135. package/node_modules/@radix-ui/react-id/dist/index.mjs.map +7 -0
  136. package/node_modules/@radix-ui/react-id/package.json +78 -0
  137. package/node_modules/@radix-ui/react-presence/LICENSE +21 -0
  138. package/node_modules/@radix-ui/react-presence/README.md +3 -0
  139. package/node_modules/@radix-ui/react-presence/dist/index.d.mts +12 -0
  140. package/node_modules/@radix-ui/react-presence/dist/index.d.ts +12 -0
  141. package/node_modules/@radix-ui/react-presence/dist/index.js +171 -0
  142. package/node_modules/@radix-ui/react-presence/dist/index.js.map +7 -0
  143. package/node_modules/@radix-ui/react-presence/dist/index.mjs +139 -0
  144. package/node_modules/@radix-ui/react-presence/dist/index.mjs.map +7 -0
  145. package/node_modules/@radix-ui/react-presence/package.json +69 -0
  146. package/node_modules/@radix-ui/react-primitive/LICENSE +21 -0
  147. package/node_modules/@radix-ui/react-primitive/README.md +3 -0
  148. package/node_modules/@radix-ui/react-primitive/dist/index.d.mts +52 -0
  149. package/node_modules/@radix-ui/react-primitive/dist/index.d.ts +52 -0
  150. package/node_modules/@radix-ui/react-primitive/dist/index.js +80 -0
  151. package/node_modules/@radix-ui/react-primitive/dist/index.js.map +7 -0
  152. package/node_modules/@radix-ui/react-primitive/dist/index.mjs +47 -0
  153. package/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +7 -0
  154. package/node_modules/@radix-ui/react-primitive/package.json +68 -0
  155. package/node_modules/@radix-ui/react-slot/LICENSE +21 -0
  156. package/node_modules/@radix-ui/react-slot/README.md +3 -0
  157. package/node_modules/@radix-ui/react-slot/dist/index.d.mts +17 -0
  158. package/node_modules/@radix-ui/react-slot/dist/index.d.ts +17 -0
  159. package/node_modules/@radix-ui/react-slot/dist/index.js +138 -0
  160. package/node_modules/@radix-ui/react-slot/dist/index.js.map +7 -0
  161. package/node_modules/@radix-ui/react-slot/dist/index.mjs +105 -0
  162. package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +7 -0
  163. package/node_modules/@radix-ui/react-slot/package.json +63 -0
  164. package/node_modules/@radix-ui/react-use-controllable-state/LICENSE +21 -0
  165. package/node_modules/@radix-ui/react-use-controllable-state/README.md +3 -0
  166. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.mts +40 -0
  167. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts +40 -0
  168. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +169 -0
  169. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +7 -0
  170. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +136 -0
  171. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +7 -0
  172. package/node_modules/@radix-ui/react-use-controllable-state/package.json +64 -0
  173. package/node_modules/@radix-ui/react-use-effect-event/LICENSE +21 -0
  174. package/node_modules/@radix-ui/react-use-effect-event/README.md +5 -0
  175. package/node_modules/@radix-ui/react-use-effect-event/dist/index.d.mts +8 -0
  176. package/node_modules/@radix-ui/react-use-effect-event/dist/index.d.ts +8 -0
  177. package/node_modules/@radix-ui/react-use-effect-event/dist/index.js +60 -0
  178. package/node_modules/@radix-ui/react-use-effect-event/dist/index.js.map +7 -0
  179. package/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs +27 -0
  180. package/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs.map +7 -0
  181. package/node_modules/@radix-ui/react-use-effect-event/package.json +65 -0
  182. package/node_modules/@radix-ui/react-use-effect-event/src/index.ts +1 -0
  183. package/node_modules/@radix-ui/react-use-effect-event/src/use-effect-event.tsx +36 -0
  184. package/node_modules/@radix-ui/react-use-layout-effect/README.md +13 -0
  185. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.mts +12 -0
  186. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts +12 -0
  187. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +41 -0
  188. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +7 -0
  189. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +8 -0
  190. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +7 -0
  191. package/node_modules/@radix-ui/react-use-layout-effect/package.json +75 -0
  192. package/node_modules/@remirror/core-constants/LICENSE +21 -0
  193. package/node_modules/@remirror/core-constants/dist/_tsup-dts-rollup.d.cts +612 -0
  194. package/node_modules/@remirror/core-constants/dist/_tsup-dts-rollup.d.ts +612 -0
  195. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.cjs +314 -0
  196. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.d.cts +20 -0
  197. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.d.ts +20 -0
  198. package/node_modules/@remirror/core-constants/dist/remirror-core-constants.js +269 -0
  199. package/node_modules/@remirror/core-constants/dist-types/core-constants.d.ts +431 -0
  200. package/node_modules/@remirror/core-constants/dist-types/error-constants.d.ts +119 -0
  201. package/node_modules/@remirror/core-constants/dist-types/index.d.ts +2 -0
  202. package/node_modules/@remirror/core-constants/dist-types/tsconfig.tsbuildinfo +1 -0
  203. package/node_modules/@remirror/core-constants/package.json +45 -0
  204. package/node_modules/@remirror/core-constants/readme.md +17 -0
  205. package/node_modules/@tiptap/core/LICENSE.md +21 -0
  206. package/node_modules/@tiptap/core/README.md +18 -0
  207. package/node_modules/@tiptap/core/dist/index.cjs +7126 -0
  208. package/node_modules/@tiptap/core/dist/index.cjs.map +1 -0
  209. package/node_modules/@tiptap/core/dist/index.d.cts +4954 -0
  210. package/node_modules/@tiptap/core/dist/index.d.ts +4954 -0
  211. package/node_modules/@tiptap/core/dist/index.js +6992 -0
  212. package/node_modules/@tiptap/core/dist/index.js.map +1 -0
  213. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.cjs +56 -0
  214. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.cjs.map +1 -0
  215. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.d.cts +23 -0
  216. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.d.ts +23 -0
  217. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js +26 -0
  218. package/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js.map +1 -0
  219. package/node_modules/@tiptap/core/jsx-dev-runtime/index.cjs +1 -0
  220. package/node_modules/@tiptap/core/jsx-dev-runtime/index.d.cts +1 -0
  221. package/node_modules/@tiptap/core/jsx-dev-runtime/index.d.ts +1 -0
  222. package/node_modules/@tiptap/core/jsx-dev-runtime/index.js +1 -0
  223. package/node_modules/@tiptap/core/jsx-runtime/index.cjs +1 -0
  224. package/node_modules/@tiptap/core/jsx-runtime/index.d.cts +1 -0
  225. package/node_modules/@tiptap/core/jsx-runtime/index.d.ts +1 -0
  226. package/node_modules/@tiptap/core/jsx-runtime/index.js +1 -0
  227. package/node_modules/@tiptap/core/package.json +70 -0
  228. package/node_modules/@tiptap/core/src/CommandManager.ts +138 -0
  229. package/node_modules/@tiptap/core/src/Editor.ts +806 -0
  230. package/node_modules/@tiptap/core/src/EventEmitter.ts +58 -0
  231. package/node_modules/@tiptap/core/src/Extendable.ts +602 -0
  232. package/node_modules/@tiptap/core/src/Extension.ts +55 -0
  233. package/node_modules/@tiptap/core/src/ExtensionManager.ts +440 -0
  234. package/node_modules/@tiptap/core/src/InputRule.ts +290 -0
  235. package/node_modules/@tiptap/core/src/Mark.ts +211 -0
  236. package/node_modules/@tiptap/core/src/MarkView.ts +122 -0
  237. package/node_modules/@tiptap/core/src/Node.ts +377 -0
  238. package/node_modules/@tiptap/core/src/NodePos.ts +257 -0
  239. package/node_modules/@tiptap/core/src/NodeView.ts +339 -0
  240. package/node_modules/@tiptap/core/src/PasteRule.ts +373 -0
  241. package/node_modules/@tiptap/core/src/Tracker.ts +36 -0
  242. package/node_modules/@tiptap/core/src/__tests__/transformPastedHTML.test.ts +575 -0
  243. package/node_modules/@tiptap/core/src/commands/blur.ts +29 -0
  244. package/node_modules/@tiptap/core/src/commands/clearContent.ts +25 -0
  245. package/node_modules/@tiptap/core/src/commands/clearNodes.ts +57 -0
  246. package/node_modules/@tiptap/core/src/commands/command.ts +22 -0
  247. package/node_modules/@tiptap/core/src/commands/createParagraphNear.ts +21 -0
  248. package/node_modules/@tiptap/core/src/commands/cut.ts +36 -0
  249. package/node_modules/@tiptap/core/src/commands/deleteCurrentNode.ts +44 -0
  250. package/node_modules/@tiptap/core/src/commands/deleteNode.ts +41 -0
  251. package/node_modules/@tiptap/core/src/commands/deleteRange.ts +26 -0
  252. package/node_modules/@tiptap/core/src/commands/deleteSelection.ts +21 -0
  253. package/node_modules/@tiptap/core/src/commands/enter.ts +19 -0
  254. package/node_modules/@tiptap/core/src/commands/exitCode.ts +21 -0
  255. package/node_modules/@tiptap/core/src/commands/extendMarkRange.ts +51 -0
  256. package/node_modules/@tiptap/core/src/commands/first.ts +26 -0
  257. package/node_modules/@tiptap/core/src/commands/focus.ts +108 -0
  258. package/node_modules/@tiptap/core/src/commands/forEach.ts +24 -0
  259. package/node_modules/@tiptap/core/src/commands/index.ts +57 -0
  260. package/node_modules/@tiptap/core/src/commands/insertContent.ts +46 -0
  261. package/node_modules/@tiptap/core/src/commands/insertContentAt.ts +212 -0
  262. package/node_modules/@tiptap/core/src/commands/join.ts +69 -0
  263. package/node_modules/@tiptap/core/src/commands/joinItemBackward.ts +37 -0
  264. package/node_modules/@tiptap/core/src/commands/joinItemForward.ts +37 -0
  265. package/node_modules/@tiptap/core/src/commands/joinTextblockBackward.ts +20 -0
  266. package/node_modules/@tiptap/core/src/commands/joinTextblockForward.ts +20 -0
  267. package/node_modules/@tiptap/core/src/commands/keyboardShortcut.ts +100 -0
  268. package/node_modules/@tiptap/core/src/commands/lift.ts +34 -0
  269. package/node_modules/@tiptap/core/src/commands/liftEmptyBlock.ts +21 -0
  270. package/node_modules/@tiptap/core/src/commands/liftListItem.ts +26 -0
  271. package/node_modules/@tiptap/core/src/commands/newlineInCode.ts +21 -0
  272. package/node_modules/@tiptap/core/src/commands/resetAttributes.ts +73 -0
  273. package/node_modules/@tiptap/core/src/commands/scrollIntoView.ts +23 -0
  274. package/node_modules/@tiptap/core/src/commands/selectAll.ts +27 -0
  275. package/node_modules/@tiptap/core/src/commands/selectNodeBackward.ts +21 -0
  276. package/node_modules/@tiptap/core/src/commands/selectNodeForward.ts +21 -0
  277. package/node_modules/@tiptap/core/src/commands/selectParentNode.ts +21 -0
  278. package/node_modules/@tiptap/core/src/commands/selectTextblockEnd.ts +23 -0
  279. package/node_modules/@tiptap/core/src/commands/selectTextblockStart.ts +23 -0
  280. package/node_modules/@tiptap/core/src/commands/setContent.ts +76 -0
  281. package/node_modules/@tiptap/core/src/commands/setMark.ts +118 -0
  282. package/node_modules/@tiptap/core/src/commands/setMeta.ts +25 -0
  283. package/node_modules/@tiptap/core/src/commands/setNode.ts +57 -0
  284. package/node_modules/@tiptap/core/src/commands/setNodeSelection.ts +31 -0
  285. package/node_modules/@tiptap/core/src/commands/setTextDirection.ts +51 -0
  286. package/node_modules/@tiptap/core/src/commands/setTextSelection.ts +35 -0
  287. package/node_modules/@tiptap/core/src/commands/sinkListItem.ts +26 -0
  288. package/node_modules/@tiptap/core/src/commands/splitBlock.ts +115 -0
  289. package/node_modules/@tiptap/core/src/commands/splitListItem.ts +149 -0
  290. package/node_modules/@tiptap/core/src/commands/toggleList.ts +159 -0
  291. package/node_modules/@tiptap/core/src/commands/toggleMark.ts +51 -0
  292. package/node_modules/@tiptap/core/src/commands/toggleNode.ts +47 -0
  293. package/node_modules/@tiptap/core/src/commands/toggleWrap.ts +32 -0
  294. package/node_modules/@tiptap/core/src/commands/undoInputRule.ts +49 -0
  295. package/node_modules/@tiptap/core/src/commands/unsetAllMarks.ts +32 -0
  296. package/node_modules/@tiptap/core/src/commands/unsetMark.ts +65 -0
  297. package/node_modules/@tiptap/core/src/commands/unsetTextDirection.ts +51 -0
  298. package/node_modules/@tiptap/core/src/commands/updateAttributes.ts +150 -0
  299. package/node_modules/@tiptap/core/src/commands/wrapIn.ts +27 -0
  300. package/node_modules/@tiptap/core/src/commands/wrapInList.ts +27 -0
  301. package/node_modules/@tiptap/core/src/extensions/clipboardTextSerializer.ts +44 -0
  302. package/node_modules/@tiptap/core/src/extensions/commands.ts +14 -0
  303. package/node_modules/@tiptap/core/src/extensions/delete.ts +89 -0
  304. package/node_modules/@tiptap/core/src/extensions/drop.ts +26 -0
  305. package/node_modules/@tiptap/core/src/extensions/editable.ts +18 -0
  306. package/node_modules/@tiptap/core/src/extensions/focusEvents.ts +41 -0
  307. package/node_modules/@tiptap/core/src/extensions/index.ts +10 -0
  308. package/node_modules/@tiptap/core/src/extensions/keymap.ts +160 -0
  309. package/node_modules/@tiptap/core/src/extensions/paste.ts +25 -0
  310. package/node_modules/@tiptap/core/src/extensions/tabindex.ts +18 -0
  311. package/node_modules/@tiptap/core/src/extensions/textDirection.ts +86 -0
  312. package/node_modules/@tiptap/core/src/helpers/MappablePosition.ts +66 -0
  313. package/node_modules/@tiptap/core/src/helpers/combineTransactionSteps.ts +21 -0
  314. package/node_modules/@tiptap/core/src/helpers/createChainableState.ts +39 -0
  315. package/node_modules/@tiptap/core/src/helpers/createDocument.ts +24 -0
  316. package/node_modules/@tiptap/core/src/helpers/createNodeFromContent.ts +119 -0
  317. package/node_modules/@tiptap/core/src/helpers/defaultBlockAt.ts +18 -0
  318. package/node_modules/@tiptap/core/src/helpers/findChildren.ts +24 -0
  319. package/node_modules/@tiptap/core/src/helpers/findChildrenInRange.ts +36 -0
  320. package/node_modules/@tiptap/core/src/helpers/findParentNode.ts +18 -0
  321. package/node_modules/@tiptap/core/src/helpers/findParentNodeClosestToPos.ts +37 -0
  322. package/node_modules/@tiptap/core/src/helpers/flattenExtensions.ts +30 -0
  323. package/node_modules/@tiptap/core/src/helpers/generateHTML.ts +18 -0
  324. package/node_modules/@tiptap/core/src/helpers/generateJSON.ts +18 -0
  325. package/node_modules/@tiptap/core/src/helpers/generateText.ts +34 -0
  326. package/node_modules/@tiptap/core/src/helpers/getAttributes.ts +29 -0
  327. package/node_modules/@tiptap/core/src/helpers/getAttributesFromExtensions.ts +122 -0
  328. package/node_modules/@tiptap/core/src/helpers/getChangedRanges.ts +85 -0
  329. package/node_modules/@tiptap/core/src/helpers/getDebugJSON.ts +54 -0
  330. package/node_modules/@tiptap/core/src/helpers/getExtensionField.ts +32 -0
  331. package/node_modules/@tiptap/core/src/helpers/getHTMLFromFragment.ts +13 -0
  332. package/node_modules/@tiptap/core/src/helpers/getMarkAttributes.ts +30 -0
  333. package/node_modules/@tiptap/core/src/helpers/getMarkRange.ts +90 -0
  334. package/node_modules/@tiptap/core/src/helpers/getMarkType.ts +13 -0
  335. package/node_modules/@tiptap/core/src/helpers/getMarksBetween.ts +44 -0
  336. package/node_modules/@tiptap/core/src/helpers/getNodeAtPosition.ts +29 -0
  337. package/node_modules/@tiptap/core/src/helpers/getNodeAttributes.ts +22 -0
  338. package/node_modules/@tiptap/core/src/helpers/getNodeType.ts +13 -0
  339. package/node_modules/@tiptap/core/src/helpers/getRenderedAttributes.ts +23 -0
  340. package/node_modules/@tiptap/core/src/helpers/getSchema.ts +12 -0
  341. package/node_modules/@tiptap/core/src/helpers/getSchemaByResolvedExtensions.ts +183 -0
  342. package/node_modules/@tiptap/core/src/helpers/getSchemaTypeByName.ts +11 -0
  343. package/node_modules/@tiptap/core/src/helpers/getSchemaTypeNameByName.ts +19 -0
  344. package/node_modules/@tiptap/core/src/helpers/getSplittedAttributes.ts +28 -0
  345. package/node_modules/@tiptap/core/src/helpers/getText.ts +28 -0
  346. package/node_modules/@tiptap/core/src/helpers/getTextBetween.ts +52 -0
  347. package/node_modules/@tiptap/core/src/helpers/getTextContentFromNodes.ts +29 -0
  348. package/node_modules/@tiptap/core/src/helpers/getTextSerializersFromSchema.ts +16 -0
  349. package/node_modules/@tiptap/core/src/helpers/index.ts +55 -0
  350. package/node_modules/@tiptap/core/src/helpers/injectExtensionAttributesToParseRule.ts +47 -0
  351. package/node_modules/@tiptap/core/src/helpers/isActive.ts +23 -0
  352. package/node_modules/@tiptap/core/src/helpers/isAtEndOfNode.ts +29 -0
  353. package/node_modules/@tiptap/core/src/helpers/isAtStartOfNode.ts +11 -0
  354. package/node_modules/@tiptap/core/src/helpers/isExtensionRulesEnabled.ts +13 -0
  355. package/node_modules/@tiptap/core/src/helpers/isList.ts +27 -0
  356. package/node_modules/@tiptap/core/src/helpers/isMarkActive.ts +94 -0
  357. package/node_modules/@tiptap/core/src/helpers/isNodeActive.ts +51 -0
  358. package/node_modules/@tiptap/core/src/helpers/isNodeEmpty.ts +62 -0
  359. package/node_modules/@tiptap/core/src/helpers/isNodeSelection.ts +5 -0
  360. package/node_modules/@tiptap/core/src/helpers/isTextSelection.ts +5 -0
  361. package/node_modules/@tiptap/core/src/helpers/posToDOMRect.ts +35 -0
  362. package/node_modules/@tiptap/core/src/helpers/resolveExtensions.ts +25 -0
  363. package/node_modules/@tiptap/core/src/helpers/resolveFocusPosition.ts +31 -0
  364. package/node_modules/@tiptap/core/src/helpers/rewriteUnknownContent.ts +149 -0
  365. package/node_modules/@tiptap/core/src/helpers/selectionToInsertionEnd.ts +29 -0
  366. package/node_modules/@tiptap/core/src/helpers/sortExtensions.ts +26 -0
  367. package/node_modules/@tiptap/core/src/helpers/splitExtensions.ts +16 -0
  368. package/node_modules/@tiptap/core/src/index.ts +28 -0
  369. package/node_modules/@tiptap/core/src/inputRules/index.ts +5 -0
  370. package/node_modules/@tiptap/core/src/inputRules/markInputRule.ts +68 -0
  371. package/node_modules/@tiptap/core/src/inputRules/nodeInputRule.ts +73 -0
  372. package/node_modules/@tiptap/core/src/inputRules/textInputRule.ts +35 -0
  373. package/node_modules/@tiptap/core/src/inputRules/textblockTypeInputRule.ts +35 -0
  374. package/node_modules/@tiptap/core/src/inputRules/wrappingInputRule.ts +82 -0
  375. package/node_modules/@tiptap/core/src/jsx-runtime.ts +65 -0
  376. package/node_modules/@tiptap/core/src/lib/ResizableNodeView.ts +1060 -0
  377. package/node_modules/@tiptap/core/src/lib/index.ts +1 -0
  378. package/node_modules/@tiptap/core/src/pasteRules/index.ts +3 -0
  379. package/node_modules/@tiptap/core/src/pasteRules/markPasteRule.ts +71 -0
  380. package/node_modules/@tiptap/core/src/pasteRules/nodePasteRule.ts +44 -0
  381. package/node_modules/@tiptap/core/src/pasteRules/textPasteRule.ts +34 -0
  382. package/node_modules/@tiptap/core/src/style.ts +71 -0
  383. package/node_modules/@tiptap/core/src/types.ts +1058 -0
  384. package/node_modules/@tiptap/core/src/utilities/callOrReturn.ts +21 -0
  385. package/node_modules/@tiptap/core/src/utilities/canInsertNode.ts +30 -0
  386. package/node_modules/@tiptap/core/src/utilities/createStyleTag.ts +21 -0
  387. package/node_modules/@tiptap/core/src/utilities/deleteProps.ts +16 -0
  388. package/node_modules/@tiptap/core/src/utilities/elementFromString.ts +27 -0
  389. package/node_modules/@tiptap/core/src/utilities/escapeForRegEx.ts +4 -0
  390. package/node_modules/@tiptap/core/src/utilities/findDuplicates.ts +8 -0
  391. package/node_modules/@tiptap/core/src/utilities/fromString.ts +19 -0
  392. package/node_modules/@tiptap/core/src/utilities/index.ts +26 -0
  393. package/node_modules/@tiptap/core/src/utilities/isAndroid.ts +3 -0
  394. package/node_modules/@tiptap/core/src/utilities/isEmptyObject.ts +3 -0
  395. package/node_modules/@tiptap/core/src/utilities/isFirefox.ts +11 -0
  396. package/node_modules/@tiptap/core/src/utilities/isFunction.ts +4 -0
  397. package/node_modules/@tiptap/core/src/utilities/isMacOS.ts +3 -0
  398. package/node_modules/@tiptap/core/src/utilities/isNumber.ts +3 -0
  399. package/node_modules/@tiptap/core/src/utilities/isPlainObject.ts +13 -0
  400. package/node_modules/@tiptap/core/src/utilities/isRegExp.ts +3 -0
  401. package/node_modules/@tiptap/core/src/utilities/isSafari.ts +11 -0
  402. package/node_modules/@tiptap/core/src/utilities/isString.ts +3 -0
  403. package/node_modules/@tiptap/core/src/utilities/isiOS.ts +7 -0
  404. package/node_modules/@tiptap/core/src/utilities/markdown/attributeUtils.ts +130 -0
  405. package/node_modules/@tiptap/core/src/utilities/markdown/createAtomBlockMarkdownSpec.ts +141 -0
  406. package/node_modules/@tiptap/core/src/utilities/markdown/createBlockMarkdownSpec.ts +225 -0
  407. package/node_modules/@tiptap/core/src/utilities/markdown/createInlineMarkdownSpec.ts +282 -0
  408. package/node_modules/@tiptap/core/src/utilities/markdown/index.ts +13 -0
  409. package/node_modules/@tiptap/core/src/utilities/markdown/parseIndentedBlocks.ts +194 -0
  410. package/node_modules/@tiptap/core/src/utilities/markdown/renderNestedMarkdownContent.ts +96 -0
  411. package/node_modules/@tiptap/core/src/utilities/mergeAttributes.ts +109 -0
  412. package/node_modules/@tiptap/core/src/utilities/mergeDeep.ts +17 -0
  413. package/node_modules/@tiptap/core/src/utilities/minMax.ts +3 -0
  414. package/node_modules/@tiptap/core/src/utilities/objectIncludes.ts +30 -0
  415. package/node_modules/@tiptap/core/src/utilities/removeDuplicates.ts +13 -0
  416. package/node_modules/@tiptap/extension-bubble-menu/LICENSE.md +21 -0
  417. package/node_modules/@tiptap/extension-bubble-menu/README.md +18 -0
  418. package/node_modules/@tiptap/extension-bubble-menu/dist/index.cjs +462 -0
  419. package/node_modules/@tiptap/extension-bubble-menu/dist/index.cjs.map +1 -0
  420. package/node_modules/@tiptap/extension-bubble-menu/dist/index.d.cts +169 -0
  421. package/node_modules/@tiptap/extension-bubble-menu/dist/index.d.ts +169 -0
  422. package/node_modules/@tiptap/extension-bubble-menu/dist/index.js +443 -0
  423. package/node_modules/@tiptap/extension-bubble-menu/dist/index.js.map +1 -0
  424. package/node_modules/@tiptap/extension-bubble-menu/package.json +54 -0
  425. package/node_modules/@tiptap/extension-bubble-menu/src/bubble-menu-plugin.ts +650 -0
  426. package/node_modules/@tiptap/extension-bubble-menu/src/bubble-menu.ts +50 -0
  427. package/node_modules/@tiptap/extension-bubble-menu/src/index.ts +6 -0
  428. package/node_modules/@tiptap/extension-floating-menu/LICENSE.md +21 -0
  429. package/node_modules/@tiptap/extension-floating-menu/README.md +18 -0
  430. package/node_modules/@tiptap/extension-floating-menu/dist/index.cjs +380 -0
  431. package/node_modules/@tiptap/extension-floating-menu/dist/index.cjs.map +1 -0
  432. package/node_modules/@tiptap/extension-floating-menu/dist/index.d.cts +179 -0
  433. package/node_modules/@tiptap/extension-floating-menu/dist/index.d.ts +179 -0
  434. package/node_modules/@tiptap/extension-floating-menu/dist/index.js +361 -0
  435. package/node_modules/@tiptap/extension-floating-menu/dist/index.js.map +1 -0
  436. package/node_modules/@tiptap/extension-floating-menu/package.json +53 -0
  437. package/node_modules/@tiptap/extension-floating-menu/src/floating-menu-plugin.ts +525 -0
  438. package/node_modules/@tiptap/extension-floating-menu/src/floating-menu.ts +77 -0
  439. package/node_modules/@tiptap/extension-floating-menu/src/index.ts +6 -0
  440. package/node_modules/@tiptap/extension-mention/LICENSE.md +21 -0
  441. package/node_modules/@tiptap/extension-mention/README.md +18 -0
  442. package/node_modules/@tiptap/extension-mention/dist/index.cjs +277 -0
  443. package/node_modules/@tiptap/extension-mention/dist/index.cjs.map +1 -0
  444. package/node_modules/@tiptap/extension-mention/dist/index.d.cts +93 -0
  445. package/node_modules/@tiptap/extension-mention/dist/index.d.ts +93 -0
  446. package/node_modules/@tiptap/extension-mention/dist/index.js +250 -0
  447. package/node_modules/@tiptap/extension-mention/dist/index.js.map +1 -0
  448. package/node_modules/@tiptap/extension-mention/package.json +52 -0
  449. package/node_modules/@tiptap/extension-mention/src/index.ts +5 -0
  450. package/node_modules/@tiptap/extension-mention/src/mention.ts +357 -0
  451. package/node_modules/@tiptap/extension-mention/src/utils/get-default-suggestion-attributes.ts +89 -0
  452. package/node_modules/@tiptap/pm/LICENSE.md +21 -0
  453. package/node_modules/@tiptap/pm/README.md +22 -0
  454. package/node_modules/@tiptap/pm/changeset/index.ts +1 -0
  455. package/node_modules/@tiptap/pm/collab/index.ts +1 -0
  456. package/node_modules/@tiptap/pm/commands/index.ts +1 -0
  457. package/node_modules/@tiptap/pm/dist/changeset/index.cjs +2 -0
  458. package/node_modules/@tiptap/pm/dist/changeset/index.d.cts +18 -0
  459. package/node_modules/@tiptap/pm/dist/changeset/index.d.ts +18 -0
  460. package/node_modules/@tiptap/pm/dist/changeset/index.js +2 -0
  461. package/node_modules/@tiptap/pm/dist/collab/index.cjs +2 -0
  462. package/node_modules/@tiptap/pm/dist/collab/index.d.cts +1 -0
  463. package/node_modules/@tiptap/pm/dist/collab/index.d.ts +1 -0
  464. package/node_modules/@tiptap/pm/dist/collab/index.js +2 -0
  465. package/node_modules/@tiptap/pm/dist/commands/index.cjs +2 -0
  466. package/node_modules/@tiptap/pm/dist/commands/index.d.cts +1 -0
  467. package/node_modules/@tiptap/pm/dist/commands/index.d.ts +1 -0
  468. package/node_modules/@tiptap/pm/dist/commands/index.js +2 -0
  469. package/node_modules/@tiptap/pm/dist/dropcursor/index.cjs +2 -0
  470. package/node_modules/@tiptap/pm/dist/dropcursor/index.d.cts +1 -0
  471. package/node_modules/@tiptap/pm/dist/dropcursor/index.d.ts +1 -0
  472. package/node_modules/@tiptap/pm/dist/dropcursor/index.js +2 -0
  473. package/node_modules/@tiptap/pm/dist/gapcursor/index.cjs +2 -0
  474. package/node_modules/@tiptap/pm/dist/gapcursor/index.d.cts +1 -0
  475. package/node_modules/@tiptap/pm/dist/gapcursor/index.d.ts +1 -0
  476. package/node_modules/@tiptap/pm/dist/gapcursor/index.js +2 -0
  477. package/node_modules/@tiptap/pm/dist/history/index.cjs +2 -0
  478. package/node_modules/@tiptap/pm/dist/history/index.d.cts +1 -0
  479. package/node_modules/@tiptap/pm/dist/history/index.d.ts +1 -0
  480. package/node_modules/@tiptap/pm/dist/history/index.js +2 -0
  481. package/node_modules/@tiptap/pm/dist/inputrules/index.cjs +2 -0
  482. package/node_modules/@tiptap/pm/dist/inputrules/index.d.cts +1 -0
  483. package/node_modules/@tiptap/pm/dist/inputrules/index.d.ts +1 -0
  484. package/node_modules/@tiptap/pm/dist/inputrules/index.js +2 -0
  485. package/node_modules/@tiptap/pm/dist/keymap/index.cjs +2 -0
  486. package/node_modules/@tiptap/pm/dist/keymap/index.d.cts +1 -0
  487. package/node_modules/@tiptap/pm/dist/keymap/index.d.ts +1 -0
  488. package/node_modules/@tiptap/pm/dist/keymap/index.js +2 -0
  489. package/node_modules/@tiptap/pm/dist/markdown/index.cjs +2 -0
  490. package/node_modules/@tiptap/pm/dist/markdown/index.d.cts +1 -0
  491. package/node_modules/@tiptap/pm/dist/markdown/index.d.ts +1 -0
  492. package/node_modules/@tiptap/pm/dist/markdown/index.js +2 -0
  493. package/node_modules/@tiptap/pm/dist/menu/index.cjs +2 -0
  494. package/node_modules/@tiptap/pm/dist/menu/index.d.cts +1 -0
  495. package/node_modules/@tiptap/pm/dist/menu/index.d.ts +1 -0
  496. package/node_modules/@tiptap/pm/dist/menu/index.js +2 -0
  497. package/node_modules/@tiptap/pm/dist/model/index.cjs +2 -0
  498. package/node_modules/@tiptap/pm/dist/model/index.d.cts +1 -0
  499. package/node_modules/@tiptap/pm/dist/model/index.d.ts +1 -0
  500. package/node_modules/@tiptap/pm/dist/model/index.js +2 -0
  501. package/node_modules/@tiptap/pm/dist/schema-basic/index.cjs +2 -0
  502. package/node_modules/@tiptap/pm/dist/schema-basic/index.d.cts +1 -0
  503. package/node_modules/@tiptap/pm/dist/schema-basic/index.d.ts +1 -0
  504. package/node_modules/@tiptap/pm/dist/schema-basic/index.js +2 -0
  505. package/node_modules/@tiptap/pm/dist/schema-list/index.cjs +2 -0
  506. package/node_modules/@tiptap/pm/dist/schema-list/index.d.cts +1 -0
  507. package/node_modules/@tiptap/pm/dist/schema-list/index.d.ts +1 -0
  508. package/node_modules/@tiptap/pm/dist/schema-list/index.js +2 -0
  509. package/node_modules/@tiptap/pm/dist/state/index.cjs +2 -0
  510. package/node_modules/@tiptap/pm/dist/state/index.d.cts +1 -0
  511. package/node_modules/@tiptap/pm/dist/state/index.d.ts +1 -0
  512. package/node_modules/@tiptap/pm/dist/state/index.js +2 -0
  513. package/node_modules/@tiptap/pm/dist/tables/index.cjs +2 -0
  514. package/node_modules/@tiptap/pm/dist/tables/index.d.cts +1 -0
  515. package/node_modules/@tiptap/pm/dist/tables/index.d.ts +1 -0
  516. package/node_modules/@tiptap/pm/dist/tables/index.js +2 -0
  517. package/node_modules/@tiptap/pm/dist/trailing-node/index.cjs +2 -0
  518. package/node_modules/@tiptap/pm/dist/trailing-node/index.d.cts +1 -0
  519. package/node_modules/@tiptap/pm/dist/trailing-node/index.d.ts +1 -0
  520. package/node_modules/@tiptap/pm/dist/trailing-node/index.js +2 -0
  521. package/node_modules/@tiptap/pm/dist/transform/index.cjs +2 -0
  522. package/node_modules/@tiptap/pm/dist/transform/index.d.cts +1 -0
  523. package/node_modules/@tiptap/pm/dist/transform/index.d.ts +1 -0
  524. package/node_modules/@tiptap/pm/dist/transform/index.js +2 -0
  525. package/node_modules/@tiptap/pm/dist/view/index.cjs +2 -0
  526. package/node_modules/@tiptap/pm/dist/view/index.d.cts +1 -0
  527. package/node_modules/@tiptap/pm/dist/view/index.d.ts +1 -0
  528. package/node_modules/@tiptap/pm/dist/view/index.js +2 -0
  529. package/node_modules/@tiptap/pm/dropcursor/index.ts +1 -0
  530. package/node_modules/@tiptap/pm/gapcursor/index.ts +1 -0
  531. package/node_modules/@tiptap/pm/history/index.ts +1 -0
  532. package/node_modules/@tiptap/pm/inputrules/index.ts +1 -0
  533. package/node_modules/@tiptap/pm/keymap/index.ts +1 -0
  534. package/node_modules/@tiptap/pm/markdown/index.ts +1 -0
  535. package/node_modules/@tiptap/pm/menu/index.ts +1 -0
  536. package/node_modules/@tiptap/pm/model/index.ts +1 -0
  537. package/node_modules/@tiptap/pm/package.json +211 -0
  538. package/node_modules/@tiptap/pm/schema-basic/index.ts +1 -0
  539. package/node_modules/@tiptap/pm/schema-list/index.ts +1 -0
  540. package/node_modules/@tiptap/pm/state/index.ts +1 -0
  541. package/node_modules/@tiptap/pm/tables/index.ts +1 -0
  542. package/node_modules/@tiptap/pm/trailing-node/index.ts +1 -0
  543. package/node_modules/@tiptap/pm/transform/index.ts +1 -0
  544. package/node_modules/@tiptap/pm/view/index.ts +1 -0
  545. package/node_modules/@tiptap/react/LICENSE.md +21 -0
  546. package/node_modules/@tiptap/react/README.md +18 -0
  547. package/node_modules/@tiptap/react/dist/index.cjs +1195 -0
  548. package/node_modules/@tiptap/react/dist/index.cjs.map +1 -0
  549. package/node_modules/@tiptap/react/dist/index.d.cts +534 -0
  550. package/node_modules/@tiptap/react/dist/index.d.ts +534 -0
  551. package/node_modules/@tiptap/react/dist/index.js +1131 -0
  552. package/node_modules/@tiptap/react/dist/index.js.map +1 -0
  553. package/node_modules/@tiptap/react/dist/menus/index.cjs +499 -0
  554. package/node_modules/@tiptap/react/dist/menus/index.cjs.map +1 -0
  555. package/node_modules/@tiptap/react/dist/menus/index.d.cts +19 -0
  556. package/node_modules/@tiptap/react/dist/menus/index.d.ts +19 -0
  557. package/node_modules/@tiptap/react/dist/menus/index.js +461 -0
  558. package/node_modules/@tiptap/react/dist/menus/index.js.map +1 -0
  559. package/node_modules/@tiptap/react/package.json +76 -0
  560. package/node_modules/@tiptap/react/src/Context.tsx +60 -0
  561. package/node_modules/@tiptap/react/src/Editor.ts +13 -0
  562. package/node_modules/@tiptap/react/src/EditorContent.tsx +229 -0
  563. package/node_modules/@tiptap/react/src/NodeViewContent.tsx +30 -0
  564. package/node_modules/@tiptap/react/src/NodeViewWrapper.tsx +27 -0
  565. package/node_modules/@tiptap/react/src/ReactMarkViewRenderer.tsx +106 -0
  566. package/node_modules/@tiptap/react/src/ReactNodeViewRenderer.tsx +387 -0
  567. package/node_modules/@tiptap/react/src/ReactRenderer.tsx +282 -0
  568. package/node_modules/@tiptap/react/src/Tiptap.tsx +224 -0
  569. package/node_modules/@tiptap/react/src/index.ts +13 -0
  570. package/node_modules/@tiptap/react/src/menus/BubbleMenu.spec.ts +174 -0
  571. package/node_modules/@tiptap/react/src/menus/BubbleMenu.tsx +153 -0
  572. package/node_modules/@tiptap/react/src/menus/FloatingMenu.spec.ts +164 -0
  573. package/node_modules/@tiptap/react/src/menus/FloatingMenu.tsx +137 -0
  574. package/node_modules/@tiptap/react/src/menus/getAutoPluginKey.ts +5 -0
  575. package/node_modules/@tiptap/react/src/menus/index.ts +2 -0
  576. package/node_modules/@tiptap/react/src/menus/useMenuElementProps.ts +354 -0
  577. package/node_modules/@tiptap/react/src/types.ts +6 -0
  578. package/node_modules/@tiptap/react/src/useEditor.ts +382 -0
  579. package/node_modules/@tiptap/react/src/useEditorState.ts +173 -0
  580. package/node_modules/@tiptap/react/src/useReactNodeView.ts +28 -0
  581. package/node_modules/@tiptap/suggestion/LICENSE.md +21 -0
  582. package/node_modules/@tiptap/suggestion/README.md +18 -0
  583. package/node_modules/@tiptap/suggestion/dist/index.cjs +369 -0
  584. package/node_modules/@tiptap/suggestion/dist/index.cjs.map +1 -0
  585. package/node_modules/@tiptap/suggestion/dist/index.d.cts +213 -0
  586. package/node_modules/@tiptap/suggestion/dist/index.d.ts +213 -0
  587. package/node_modules/@tiptap/suggestion/dist/index.js +339 -0
  588. package/node_modules/@tiptap/suggestion/dist/index.js.map +1 -0
  589. package/node_modules/@tiptap/suggestion/package.json +50 -0
  590. package/node_modules/@tiptap/suggestion/src/__tests__/suggestion.test.ts +127 -0
  591. package/node_modules/@tiptap/suggestion/src/findSuggestionMatch.ts +79 -0
  592. package/node_modules/@tiptap/suggestion/src/index.ts +8 -0
  593. package/node_modules/@tiptap/suggestion/src/suggestion.ts +585 -0
  594. package/node_modules/@types/linkify-it/LICENSE +21 -0
  595. package/node_modules/@types/linkify-it/README.md +15 -0
  596. package/node_modules/@types/linkify-it/build/index.cjs.d.ts +178 -0
  597. package/node_modules/@types/linkify-it/index.d.mts +174 -0
  598. package/node_modules/@types/linkify-it/index.d.ts +3 -0
  599. package/node_modules/@types/linkify-it/package.json +50 -0
  600. package/node_modules/@types/markdown-it/LICENSE +21 -0
  601. package/node_modules/@types/markdown-it/README.md +15 -0
  602. package/node_modules/@types/markdown-it/dist/index.cjs.d.ts +1236 -0
  603. package/node_modules/@types/markdown-it/dist/markdown-it.d.ts +5 -0
  604. package/node_modules/@types/markdown-it/dist/markdown-it.min.d.ts +5 -0
  605. package/node_modules/@types/markdown-it/index.d.mts +1 -0
  606. package/node_modules/@types/markdown-it/index.d.ts +3 -0
  607. package/node_modules/@types/markdown-it/lib/common/html_blocks.d.mts +7 -0
  608. package/node_modules/@types/markdown-it/lib/common/html_re.d.mts +2 -0
  609. package/node_modules/@types/markdown-it/lib/common/utils.d.mts +62 -0
  610. package/node_modules/@types/markdown-it/lib/helpers/index.d.mts +5 -0
  611. package/node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.mts +7 -0
  612. package/node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.mts +3 -0
  613. package/node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.mts +29 -0
  614. package/node_modules/@types/markdown-it/lib/index.d.mts +404 -0
  615. package/node_modules/@types/markdown-it/lib/parser_block.d.mts +25 -0
  616. package/node_modules/@types/markdown-it/lib/parser_core.d.mts +18 -0
  617. package/node_modules/@types/markdown-it/lib/parser_inline.d.mts +38 -0
  618. package/node_modules/@types/markdown-it/lib/renderer.d.mts +96 -0
  619. package/node_modules/@types/markdown-it/lib/ruler.d.mts +158 -0
  620. package/node_modules/@types/markdown-it/lib/rules_block/state_block.d.mts +124 -0
  621. package/node_modules/@types/markdown-it/lib/rules_core/state_core.d.mts +18 -0
  622. package/node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.mts +73 -0
  623. package/node_modules/@types/markdown-it/lib/token.d.mts +108 -0
  624. package/node_modules/@types/markdown-it/package.json +54 -0
  625. package/node_modules/@types/mdurl/LICENSE +21 -0
  626. package/node_modules/@types/mdurl/README.md +15 -0
  627. package/node_modules/@types/mdurl/build/index.cjs.d.ts +52 -0
  628. package/node_modules/@types/mdurl/index.d.mts +6 -0
  629. package/node_modules/@types/mdurl/index.d.ts +3 -0
  630. package/node_modules/@types/mdurl/lib/decode.d.mts +10 -0
  631. package/node_modules/@types/mdurl/lib/encode.d.mts +15 -0
  632. package/node_modules/@types/mdurl/lib/format.d.mts +3 -0
  633. package/node_modules/@types/mdurl/lib/parse.d.mts +18 -0
  634. package/node_modules/@types/mdurl/package.json +36 -0
  635. package/node_modules/@types/use-sync-external-store/LICENSE +21 -0
  636. package/node_modules/@types/use-sync-external-store/README.md +15 -0
  637. package/node_modules/@types/use-sync-external-store/index.d.ts +5 -0
  638. package/node_modules/@types/use-sync-external-store/package.json +30 -0
  639. package/node_modules/@types/use-sync-external-store/shim/index.d.ts +1 -0
  640. package/node_modules/@types/use-sync-external-store/shim/with-selector.d.ts +1 -0
  641. package/node_modules/@types/use-sync-external-store/with-selector.d.ts +7 -0
  642. package/node_modules/argparse/LICENSE +254 -0
  643. package/node_modules/argparse/README.md +84 -0
  644. package/node_modules/argparse/argparse.js +3707 -0
  645. package/node_modules/argparse/lib/sub.js +67 -0
  646. package/node_modules/argparse/lib/textwrap.js +440 -0
  647. package/node_modules/argparse/package.json +31 -0
  648. package/node_modules/crelt/LICENSE +19 -0
  649. package/node_modules/crelt/README.md +23 -0
  650. package/node_modules/crelt/dist/index.cjs +31 -0
  651. package/node_modules/crelt/dist/index.d.cts +4 -0
  652. package/node_modules/crelt/index.d.ts +4 -0
  653. package/node_modules/crelt/index.js +28 -0
  654. package/node_modules/crelt/package.json +35 -0
  655. package/node_modules/crelt/rollup.config.js +13 -0
  656. package/node_modules/entities/LICENSE +11 -0
  657. package/node_modules/entities/lib/decode.d.ts +211 -0
  658. package/node_modules/entities/lib/decode.d.ts.map +1 -0
  659. package/node_modules/entities/lib/decode.js +536 -0
  660. package/node_modules/entities/lib/decode.js.map +1 -0
  661. package/node_modules/entities/lib/decode_codepoint.d.ts +19 -0
  662. package/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
  663. package/node_modules/entities/lib/decode_codepoint.js +76 -0
  664. package/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  665. package/node_modules/entities/lib/encode.d.ts +22 -0
  666. package/node_modules/entities/lib/encode.d.ts.map +1 -0
  667. package/node_modules/entities/lib/encode.js +77 -0
  668. package/node_modules/entities/lib/encode.js.map +1 -0
  669. package/node_modules/entities/lib/escape.d.ts +43 -0
  670. package/node_modules/entities/lib/escape.d.ts.map +1 -0
  671. package/node_modules/entities/lib/escape.js +122 -0
  672. package/node_modules/entities/lib/escape.js.map +1 -0
  673. package/node_modules/entities/lib/esm/decode.d.ts +211 -0
  674. package/node_modules/entities/lib/esm/decode.d.ts.map +1 -0
  675. package/node_modules/entities/lib/esm/decode.js +496 -0
  676. package/node_modules/entities/lib/esm/decode.js.map +1 -0
  677. package/node_modules/entities/lib/esm/decode_codepoint.d.ts +19 -0
  678. package/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +1 -0
  679. package/node_modules/entities/lib/esm/decode_codepoint.js +71 -0
  680. package/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
  681. package/node_modules/entities/lib/esm/encode.d.ts +22 -0
  682. package/node_modules/entities/lib/esm/encode.d.ts.map +1 -0
  683. package/node_modules/entities/lib/esm/encode.js +69 -0
  684. package/node_modules/entities/lib/esm/encode.js.map +1 -0
  685. package/node_modules/entities/lib/esm/escape.d.ts +43 -0
  686. package/node_modules/entities/lib/esm/escape.d.ts.map +1 -0
  687. package/node_modules/entities/lib/esm/escape.js +116 -0
  688. package/node_modules/entities/lib/esm/escape.js.map +1 -0
  689. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +3 -0
  690. package/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +1 -0
  691. package/node_modules/entities/lib/esm/generated/decode-data-html.js +7 -0
  692. package/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
  693. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +3 -0
  694. package/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +1 -0
  695. package/node_modules/entities/lib/esm/generated/decode-data-xml.js +7 -0
  696. package/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
  697. package/node_modules/entities/lib/esm/generated/encode-html.d.ts +8 -0
  698. package/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +1 -0
  699. package/node_modules/entities/lib/esm/generated/encode-html.js +10 -0
  700. package/node_modules/entities/lib/esm/generated/encode-html.js.map +1 -0
  701. package/node_modules/entities/lib/esm/index.d.ts +96 -0
  702. package/node_modules/entities/lib/esm/index.d.ts.map +1 -0
  703. package/node_modules/entities/lib/esm/index.js +99 -0
  704. package/node_modules/entities/lib/esm/index.js.map +1 -0
  705. package/node_modules/entities/lib/esm/package.json +1 -0
  706. package/node_modules/entities/lib/generated/decode-data-html.d.ts +3 -0
  707. package/node_modules/entities/lib/generated/decode-data-html.d.ts.map +1 -0
  708. package/node_modules/entities/lib/generated/decode-data-html.js +9 -0
  709. package/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  710. package/node_modules/entities/lib/generated/decode-data-xml.d.ts +3 -0
  711. package/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +1 -0
  712. package/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
  713. package/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  714. package/node_modules/entities/lib/generated/encode-html.d.ts +8 -0
  715. package/node_modules/entities/lib/generated/encode-html.d.ts.map +1 -0
  716. package/node_modules/entities/lib/generated/encode-html.js +12 -0
  717. package/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  718. package/node_modules/entities/lib/index.d.ts +96 -0
  719. package/node_modules/entities/lib/index.d.ts.map +1 -0
  720. package/node_modules/entities/lib/index.js +126 -0
  721. package/node_modules/entities/lib/index.js.map +1 -0
  722. package/node_modules/entities/package.json +90 -0
  723. package/node_modules/entities/readme.md +122 -0
  724. package/node_modules/escape-string-regexp/index.d.ts +18 -0
  725. package/node_modules/escape-string-regexp/index.js +13 -0
  726. package/node_modules/escape-string-regexp/license +9 -0
  727. package/node_modules/escape-string-regexp/package.json +38 -0
  728. package/node_modules/escape-string-regexp/readme.md +34 -0
  729. package/node_modules/fast-equals/LICENSE +21 -0
  730. package/node_modules/fast-equals/README.md +477 -0
  731. package/node_modules/fast-equals/dist/cjs/comparator.d.cts +60 -0
  732. package/node_modules/fast-equals/dist/cjs/equals.d.cts +62 -0
  733. package/node_modules/fast-equals/dist/cjs/index.cjs +653 -0
  734. package/node_modules/fast-equals/dist/cjs/index.cjs.map +1 -0
  735. package/node_modules/fast-equals/dist/cjs/index.d.cts +66 -0
  736. package/node_modules/fast-equals/dist/cjs/internalTypes.d.cts +178 -0
  737. package/node_modules/fast-equals/dist/cjs/utils.d.cts +33 -0
  738. package/node_modules/fast-equals/dist/es/comparator.d.mts +60 -0
  739. package/node_modules/fast-equals/dist/es/equals.d.mts +62 -0
  740. package/node_modules/fast-equals/dist/es/index.d.mts +66 -0
  741. package/node_modules/fast-equals/dist/es/index.mjs +642 -0
  742. package/node_modules/fast-equals/dist/es/index.mjs.map +1 -0
  743. package/node_modules/fast-equals/dist/es/internalTypes.d.mts +178 -0
  744. package/node_modules/fast-equals/dist/es/utils.d.mts +33 -0
  745. package/node_modules/fast-equals/dist/umd/comparator.d.ts +26 -0
  746. package/node_modules/fast-equals/dist/umd/equals.d.ts +62 -0
  747. package/node_modules/fast-equals/dist/umd/index.d.ts +47 -0
  748. package/node_modules/fast-equals/dist/umd/index.js +659 -0
  749. package/node_modules/fast-equals/dist/umd/index.js.map +1 -0
  750. package/node_modules/fast-equals/dist/umd/internalTypes.d.ts +159 -0
  751. package/node_modules/fast-equals/dist/umd/utils.d.ts +28 -0
  752. package/node_modules/fast-equals/index.d.ts +260 -0
  753. package/node_modules/fast-equals/package.json +113 -0
  754. package/node_modules/linkify-it/LICENSE +22 -0
  755. package/node_modules/linkify-it/README.md +196 -0
  756. package/node_modules/linkify-it/build/index.cjs.js +832 -0
  757. package/node_modules/linkify-it/index.mjs +642 -0
  758. package/node_modules/linkify-it/lib/re.mjs +189 -0
  759. package/node_modules/linkify-it/package.json +58 -0
  760. package/node_modules/markdown-it/LICENSE +22 -0
  761. package/node_modules/markdown-it/README.md +324 -0
  762. package/node_modules/markdown-it/bin/markdown-it.mjs +107 -0
  763. package/node_modules/markdown-it/dist/index.cjs.js +5547 -0
  764. package/node_modules/markdown-it/dist/markdown-it.js +6969 -0
  765. package/node_modules/markdown-it/dist/markdown-it.min.js +2 -0
  766. package/node_modules/markdown-it/index.mjs +1 -0
  767. package/node_modules/markdown-it/lib/common/html_blocks.mjs +67 -0
  768. package/node_modules/markdown-it/lib/common/html_re.mjs +25 -0
  769. package/node_modules/markdown-it/lib/common/utils.mjs +304 -0
  770. package/node_modules/markdown-it/lib/helpers/index.mjs +11 -0
  771. package/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +77 -0
  772. package/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +49 -0
  773. package/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +66 -0
  774. package/node_modules/markdown-it/lib/index.mjs +565 -0
  775. package/node_modules/markdown-it/lib/parser_block.mjs +134 -0
  776. package/node_modules/markdown-it/lib/parser_core.mjs +62 -0
  777. package/node_modules/markdown-it/lib/parser_inline.mjs +197 -0
  778. package/node_modules/markdown-it/lib/presets/commonmark.mjs +88 -0
  779. package/node_modules/markdown-it/lib/presets/default.mjs +47 -0
  780. package/node_modules/markdown-it/lib/presets/zero.mjs +70 -0
  781. package/node_modules/markdown-it/lib/renderer.mjs +322 -0
  782. package/node_modules/markdown-it/lib/ruler.mjs +340 -0
  783. package/node_modules/markdown-it/lib/rules_block/blockquote.mjs +209 -0
  784. package/node_modules/markdown-it/lib/rules_block/code.mjs +30 -0
  785. package/node_modules/markdown-it/lib/rules_block/fence.mjs +94 -0
  786. package/node_modules/markdown-it/lib/rules_block/heading.mjs +51 -0
  787. package/node_modules/markdown-it/lib/rules_block/hr.mjs +40 -0
  788. package/node_modules/markdown-it/lib/rules_block/html_block.mjs +69 -0
  789. package/node_modules/markdown-it/lib/rules_block/lheading.mjs +82 -0
  790. package/node_modules/markdown-it/lib/rules_block/list.mjs +331 -0
  791. package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +46 -0
  792. package/node_modules/markdown-it/lib/rules_block/reference.mjs +212 -0
  793. package/node_modules/markdown-it/lib/rules_block/state_block.mjs +220 -0
  794. package/node_modules/markdown-it/lib/rules_block/table.mjs +228 -0
  795. package/node_modules/markdown-it/lib/rules_core/block.mjs +13 -0
  796. package/node_modules/markdown-it/lib/rules_core/inline.mjs +11 -0
  797. package/node_modules/markdown-it/lib/rules_core/linkify.mjs +134 -0
  798. package/node_modules/markdown-it/lib/rules_core/normalize.mjs +17 -0
  799. package/node_modules/markdown-it/lib/rules_core/replacements.mjs +101 -0
  800. package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +193 -0
  801. package/node_modules/markdown-it/lib/rules_core/state_core.mjs +17 -0
  802. package/node_modules/markdown-it/lib/rules_core/text_join.mjs +43 -0
  803. package/node_modules/markdown-it/lib/rules_inline/autolink.mjs +72 -0
  804. package/node_modules/markdown-it/lib/rules_inline/backticks.mjs +60 -0
  805. package/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +124 -0
  806. package/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +123 -0
  807. package/node_modules/markdown-it/lib/rules_inline/entity.mjs +51 -0
  808. package/node_modules/markdown-it/lib/rules_inline/escape.mjs +69 -0
  809. package/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +38 -0
  810. package/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +50 -0
  811. package/node_modules/markdown-it/lib/rules_inline/image.mjs +138 -0
  812. package/node_modules/markdown-it/lib/rules_inline/link.mjs +139 -0
  813. package/node_modules/markdown-it/lib/rules_inline/linkify.mjs +63 -0
  814. package/node_modules/markdown-it/lib/rules_inline/newline.mjs +42 -0
  815. package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +123 -0
  816. package/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +127 -0
  817. package/node_modules/markdown-it/lib/rules_inline/text.mjs +86 -0
  818. package/node_modules/markdown-it/lib/token.mjs +191 -0
  819. package/node_modules/markdown-it/package.json +92 -0
  820. package/node_modules/mdurl/LICENSE +45 -0
  821. package/node_modules/mdurl/README.md +102 -0
  822. package/node_modules/mdurl/build/index.cjs.js +534 -0
  823. package/node_modules/mdurl/index.mjs +11 -0
  824. package/node_modules/mdurl/lib/decode.mjs +112 -0
  825. package/node_modules/mdurl/lib/encode.mjs +89 -0
  826. package/node_modules/mdurl/lib/format.mjs +21 -0
  827. package/node_modules/mdurl/lib/parse.mjs +308 -0
  828. package/node_modules/mdurl/package.json +37 -0
  829. package/node_modules/orderedmap/LICENSE +19 -0
  830. package/node_modules/orderedmap/README.md +69 -0
  831. package/node_modules/orderedmap/dist/index.cjs +139 -0
  832. package/node_modules/orderedmap/dist/index.d.cts +33 -0
  833. package/node_modules/orderedmap/dist/index.d.ts +33 -0
  834. package/node_modules/orderedmap/dist/index.js +137 -0
  835. package/node_modules/orderedmap/package.json +39 -0
  836. package/node_modules/prosemirror-changeset/CHANGELOG.md +147 -0
  837. package/node_modules/prosemirror-changeset/LICENSE +19 -0
  838. package/node_modules/prosemirror-changeset/README.md +175 -0
  839. package/node_modules/prosemirror-changeset/dist/index.cjs +585 -0
  840. package/node_modules/prosemirror-changeset/dist/index.d.cts +186 -0
  841. package/node_modules/prosemirror-changeset/dist/index.d.ts +186 -0
  842. package/node_modules/prosemirror-changeset/dist/index.js +715 -0
  843. package/node_modules/prosemirror-changeset/package.json +40 -0
  844. package/node_modules/prosemirror-changeset/src/README.md +32 -0
  845. package/node_modules/prosemirror-changeset/src/change.ts +189 -0
  846. package/node_modules/prosemirror-changeset/src/changeset.ts +212 -0
  847. package/node_modules/prosemirror-changeset/src/diff.ts +151 -0
  848. package/node_modules/prosemirror-changeset/src/simplify.ts +132 -0
  849. package/node_modules/prosemirror-changeset/test/test-changed-range.ts +48 -0
  850. package/node_modules/prosemirror-changeset/test/test-changes.ts +211 -0
  851. package/node_modules/prosemirror-changeset/test/test-diff.ts +69 -0
  852. package/node_modules/prosemirror-changeset/test/test-merge.ts +56 -0
  853. package/node_modules/prosemirror-changeset/test/test-simplify.ts +71 -0
  854. package/node_modules/prosemirror-collab/.tern-project +8 -0
  855. package/node_modules/prosemirror-collab/CHANGELOG.md +77 -0
  856. package/node_modules/prosemirror-collab/CONTRIBUTING.md +104 -0
  857. package/node_modules/prosemirror-collab/LICENSE +19 -0
  858. package/node_modules/prosemirror-collab/README.md +28 -0
  859. package/node_modules/prosemirror-collab/dist/index.cjs +155 -0
  860. package/node_modules/prosemirror-collab/dist/index.d.cts +60 -0
  861. package/node_modules/prosemirror-collab/dist/index.d.ts +60 -0
  862. package/node_modules/prosemirror-collab/dist/index.js +156 -0
  863. package/node_modules/prosemirror-collab/package.json +40 -0
  864. package/node_modules/prosemirror-collab/src/README.md +11 -0
  865. package/node_modules/prosemirror-collab/src/collab.ts +184 -0
  866. package/node_modules/prosemirror-commands/.tern-project +8 -0
  867. package/node_modules/prosemirror-commands/CHANGELOG.md +322 -0
  868. package/node_modules/prosemirror-commands/CONTRIBUTING.md +104 -0
  869. package/node_modules/prosemirror-commands/LICENSE +19 -0
  870. package/node_modules/prosemirror-commands/README.md +28 -0
  871. package/node_modules/prosemirror-commands/dist/index.cjs +687 -0
  872. package/node_modules/prosemirror-commands/dist/index.d.cts +215 -0
  873. package/node_modules/prosemirror-commands/dist/index.d.ts +215 -0
  874. package/node_modules/prosemirror-commands/dist/index.js +850 -0
  875. package/node_modules/prosemirror-commands/package.json +39 -0
  876. package/node_modules/prosemirror-commands/src/README.md +40 -0
  877. package/node_modules/prosemirror-commands/src/commands.ts +783 -0
  878. package/node_modules/prosemirror-dropcursor/CHANGELOG.md +137 -0
  879. package/node_modules/prosemirror-dropcursor/CONTRIBUTING.md +100 -0
  880. package/node_modules/prosemirror-dropcursor/LICENSE +19 -0
  881. package/node_modules/prosemirror-dropcursor/README.md +50 -0
  882. package/node_modules/prosemirror-dropcursor/dist/index.cjs +185 -0
  883. package/node_modules/prosemirror-dropcursor/dist/index.d.cts +38 -0
  884. package/node_modules/prosemirror-dropcursor/dist/index.d.ts +38 -0
  885. package/node_modules/prosemirror-dropcursor/dist/index.js +146 -0
  886. package/node_modules/prosemirror-dropcursor/package.json +38 -0
  887. package/node_modules/prosemirror-dropcursor/src/dropcursor.ts +170 -0
  888. package/node_modules/prosemirror-gapcursor/CHANGELOG.md +122 -0
  889. package/node_modules/prosemirror-gapcursor/CONTRIBUTING.md +104 -0
  890. package/node_modules/prosemirror-gapcursor/LICENSE +19 -0
  891. package/node_modules/prosemirror-gapcursor/README.md +31 -0
  892. package/node_modules/prosemirror-gapcursor/dist/index.cjs +239 -0
  893. package/node_modules/prosemirror-gapcursor/dist/index.d.cts +31 -0
  894. package/node_modules/prosemirror-gapcursor/dist/index.d.ts +31 -0
  895. package/node_modules/prosemirror-gapcursor/dist/index.js +239 -0
  896. package/node_modules/prosemirror-gapcursor/package.json +43 -0
  897. package/node_modules/prosemirror-gapcursor/src/README.md +21 -0
  898. package/node_modules/prosemirror-gapcursor/src/gapcursor.ts +141 -0
  899. package/node_modules/prosemirror-gapcursor/src/index.ts +91 -0
  900. package/node_modules/prosemirror-gapcursor/style/gapcursor.css +25 -0
  901. package/node_modules/prosemirror-history/.tern-project +8 -0
  902. package/node_modules/prosemirror-history/CHANGELOG.md +170 -0
  903. package/node_modules/prosemirror-history/CONTRIBUTING.md +104 -0
  904. package/node_modules/prosemirror-history/LICENSE +19 -0
  905. package/node_modules/prosemirror-history/README.md +27 -0
  906. package/node_modules/prosemirror-history/dist/index.cjs +382 -0
  907. package/node_modules/prosemirror-history/dist/index.d.cts +64 -0
  908. package/node_modules/prosemirror-history/dist/index.d.ts +64 -0
  909. package/node_modules/prosemirror-history/dist/index.js +453 -0
  910. package/node_modules/prosemirror-history/package.json +40 -0
  911. package/node_modules/prosemirror-history/src/README.md +23 -0
  912. package/node_modules/prosemirror-history/src/history.ts +465 -0
  913. package/node_modules/prosemirror-inputrules/.tern-project +8 -0
  914. package/node_modules/prosemirror-inputrules/CHANGELOG.md +127 -0
  915. package/node_modules/prosemirror-inputrules/CONTRIBUTING.md +104 -0
  916. package/node_modules/prosemirror-inputrules/LICENSE +19 -0
  917. package/node_modules/prosemirror-inputrules/README.md +29 -0
  918. package/node_modules/prosemirror-inputrules/dist/index.cjs +194 -0
  919. package/node_modules/prosemirror-inputrules/dist/index.d.cts +131 -0
  920. package/node_modules/prosemirror-inputrules/dist/index.d.ts +131 -0
  921. package/node_modules/prosemirror-inputrules/dist/index.js +239 -0
  922. package/node_modules/prosemirror-inputrules/package.json +36 -0
  923. package/node_modules/prosemirror-inputrules/src/README.md +23 -0
  924. package/node_modules/prosemirror-inputrules/src/index.ts +4 -0
  925. package/node_modules/prosemirror-inputrules/src/inputrules.ts +167 -0
  926. package/node_modules/prosemirror-inputrules/src/rulebuilders.ts +59 -0
  927. package/node_modules/prosemirror-inputrules/src/rules.ts +17 -0
  928. package/node_modules/prosemirror-keymap/.tern-project +8 -0
  929. package/node_modules/prosemirror-keymap/CHANGELOG.md +104 -0
  930. package/node_modules/prosemirror-keymap/CONTRIBUTING.md +104 -0
  931. package/node_modules/prosemirror-keymap/LICENSE +19 -0
  932. package/node_modules/prosemirror-keymap/README.md +27 -0
  933. package/node_modules/prosemirror-keymap/dist/index.cjs +65 -0
  934. package/node_modules/prosemirror-keymap/dist/index.d.cts +47 -0
  935. package/node_modules/prosemirror-keymap/dist/index.d.ts +47 -0
  936. package/node_modules/prosemirror-keymap/dist/index.js +128 -0
  937. package/node_modules/prosemirror-keymap/package.json +38 -0
  938. package/node_modules/prosemirror-keymap/src/README.md +5 -0
  939. package/node_modules/prosemirror-keymap/src/keymap.ts +105 -0
  940. package/node_modules/prosemirror-markdown/.tern-project +8 -0
  941. package/node_modules/prosemirror-markdown/CHANGELOG.md +311 -0
  942. package/node_modules/prosemirror-markdown/CONTRIBUTING.md +100 -0
  943. package/node_modules/prosemirror-markdown/LICENSE +19 -0
  944. package/node_modules/prosemirror-markdown/README.md +276 -0
  945. package/node_modules/prosemirror-markdown/dist/index.cjs +966 -0
  946. package/node_modules/prosemirror-markdown/dist/index.d.cts +335 -0
  947. package/node_modules/prosemirror-markdown/dist/index.d.ts +335 -0
  948. package/node_modules/prosemirror-markdown/dist/index.js +878 -0
  949. package/node_modules/prosemirror-markdown/package.json +40 -0
  950. package/node_modules/prosemirror-markdown/src/README.md +42 -0
  951. package/node_modules/prosemirror-markdown/src/from_markdown.ts +272 -0
  952. package/node_modules/prosemirror-markdown/src/index.ts +5 -0
  953. package/node_modules/prosemirror-markdown/src/schema.ts +156 -0
  954. package/node_modules/prosemirror-markdown/src/to_markdown.ts +483 -0
  955. package/node_modules/prosemirror-menu/.tern-project +8 -0
  956. package/node_modules/prosemirror-menu/CHANGELOG.md +107 -0
  957. package/node_modules/prosemirror-menu/CONTRIBUTING.md +100 -0
  958. package/node_modules/prosemirror-menu/LICENSE +19 -0
  959. package/node_modules/prosemirror-menu/README.md +235 -0
  960. package/node_modules/prosemirror-menu/dist/index.cjs +798 -0
  961. package/node_modules/prosemirror-menu/dist/index.d.cts +281 -0
  962. package/node_modules/prosemirror-menu/dist/index.d.ts +281 -0
  963. package/node_modules/prosemirror-menu/dist/index.js +795 -0
  964. package/node_modules/prosemirror-menu/package.json +42 -0
  965. package/node_modules/prosemirror-menu/src/README.md +60 -0
  966. package/node_modules/prosemirror-menu/src/icons.ts +53 -0
  967. package/node_modules/prosemirror-menu/src/index.ts +4 -0
  968. package/node_modules/prosemirror-menu/src/menu.ts +628 -0
  969. package/node_modules/prosemirror-menu/src/menubar.ts +210 -0
  970. package/node_modules/prosemirror-menu/style/menu.css +169 -0
  971. package/node_modules/prosemirror-model/.tern-project +8 -0
  972. package/node_modules/prosemirror-model/CHANGELOG.md +730 -0
  973. package/node_modules/prosemirror-model/CONTRIBUTING.md +104 -0
  974. package/node_modules/prosemirror-model/LICENSE +19 -0
  975. package/node_modules/prosemirror-model/README.md +29 -0
  976. package/node_modules/prosemirror-model/dist/index.cjs +2898 -0
  977. package/node_modules/prosemirror-model/dist/index.d.cts +1679 -0
  978. package/node_modules/prosemirror-model/dist/index.d.ts +1679 -0
  979. package/node_modules/prosemirror-model/dist/index.js +3464 -0
  980. package/node_modules/prosemirror-model/package.json +38 -0
  981. package/node_modules/prosemirror-model/src/README.md +62 -0
  982. package/node_modules/prosemirror-model/src/comparedeep.ts +15 -0
  983. package/node_modules/prosemirror-model/src/content.ts +413 -0
  984. package/node_modules/prosemirror-model/src/diff.ts +52 -0
  985. package/node_modules/prosemirror-model/src/dom.ts +1 -0
  986. package/node_modules/prosemirror-model/src/fragment.ts +268 -0
  987. package/node_modules/prosemirror-model/src/from_dom.ts +848 -0
  988. package/node_modules/prosemirror-model/src/index.ts +11 -0
  989. package/node_modules/prosemirror-model/src/mark.ts +111 -0
  990. package/node_modules/prosemirror-model/src/node.ts +402 -0
  991. package/node_modules/prosemirror-model/src/replace.ts +225 -0
  992. package/node_modules/prosemirror-model/src/resolvedpos.ts +289 -0
  993. package/node_modules/prosemirror-model/src/schema.ts +705 -0
  994. package/node_modules/prosemirror-model/src/to_dom.ts +238 -0
  995. package/node_modules/prosemirror-schema-basic/.tern-project +8 -0
  996. package/node_modules/prosemirror-schema-basic/CHANGELOG.md +81 -0
  997. package/node_modules/prosemirror-schema-basic/CONTRIBUTING.md +100 -0
  998. package/node_modules/prosemirror-schema-basic/LICENSE +19 -0
  999. package/node_modules/prosemirror-schema-basic/README.md +28 -0
  1000. package/node_modules/prosemirror-schema-basic/dist/index.cjs +246 -0
  1001. package/node_modules/prosemirror-schema-basic/dist/index.d.cts +87 -0
  1002. package/node_modules/prosemirror-schema-basic/dist/index.d.ts +87 -0
  1003. package/node_modules/prosemirror-schema-basic/dist/index.js +183 -0
  1004. package/node_modules/prosemirror-schema-basic/package.json +37 -0
  1005. package/node_modules/prosemirror-schema-basic/src/README.md +8 -0
  1006. package/node_modules/prosemirror-schema-basic/src/schema-basic.ts +166 -0
  1007. package/node_modules/prosemirror-schema-list/.tern-project +8 -0
  1008. package/node_modules/prosemirror-schema-list/CHANGELOG.md +140 -0
  1009. package/node_modules/prosemirror-schema-list/CONTRIBUTING.md +100 -0
  1010. package/node_modules/prosemirror-schema-list/LICENSE +19 -0
  1011. package/node_modules/prosemirror-schema-list/README.md +28 -0
  1012. package/node_modules/prosemirror-schema-list/dist/index.cjs +253 -0
  1013. package/node_modules/prosemirror-schema-list/dist/index.d.cts +71 -0
  1014. package/node_modules/prosemirror-schema-list/dist/index.d.ts +71 -0
  1015. package/node_modules/prosemirror-schema-list/dist/index.js +289 -0
  1016. package/node_modules/prosemirror-schema-list/package.json +40 -0
  1017. package/node_modules/prosemirror-schema-list/src/README.md +29 -0
  1018. package/node_modules/prosemirror-schema-list/src/schema-list.ts +267 -0
  1019. package/node_modules/prosemirror-state/.tern-project +8 -0
  1020. package/node_modules/prosemirror-state/CHANGELOG.md +296 -0
  1021. package/node_modules/prosemirror-state/CONTRIBUTING.md +104 -0
  1022. package/node_modules/prosemirror-state/LICENSE +19 -0
  1023. package/node_modules/prosemirror-state/README.md +28 -0
  1024. package/node_modules/prosemirror-state/dist/index.cjs +884 -0
  1025. package/node_modules/prosemirror-state/dist/index.d.cts +709 -0
  1026. package/node_modules/prosemirror-state/dist/index.d.ts +709 -0
  1027. package/node_modules/prosemirror-state/dist/index.js +1002 -0
  1028. package/node_modules/prosemirror-state/package.json +39 -0
  1029. package/node_modules/prosemirror-state/src/README.md +42 -0
  1030. package/node_modules/prosemirror-state/src/index.ts +7 -0
  1031. package/node_modules/prosemirror-state/src/plugin.ts +142 -0
  1032. package/node_modules/prosemirror-state/src/selection.ts +462 -0
  1033. package/node_modules/prosemirror-state/src/state.ts +266 -0
  1034. package/node_modules/prosemirror-state/src/transaction.ts +215 -0
  1035. package/node_modules/prosemirror-tables/LICENSE +19 -0
  1036. package/node_modules/prosemirror-tables/README.md +254 -0
  1037. package/node_modules/prosemirror-tables/dist/index.cjs +2683 -0
  1038. package/node_modules/prosemirror-tables/dist/index.d.cts +751 -0
  1039. package/node_modules/prosemirror-tables/dist/index.d.cts.map +1 -0
  1040. package/node_modules/prosemirror-tables/dist/index.d.ts +751 -0
  1041. package/node_modules/prosemirror-tables/dist/index.d.ts.map +1 -0
  1042. package/node_modules/prosemirror-tables/dist/index.js +2626 -0
  1043. package/node_modules/prosemirror-tables/dist/index.js.map +1 -0
  1044. package/node_modules/prosemirror-tables/package.json +80 -0
  1045. package/node_modules/prosemirror-tables/style/tables.css +48 -0
  1046. package/node_modules/prosemirror-trailing-node/LICENSE +21 -0
  1047. package/node_modules/prosemirror-trailing-node/dist/_tsup-dts-rollup.d.cts +41 -0
  1048. package/node_modules/prosemirror-trailing-node/dist/_tsup-dts-rollup.d.ts +41 -0
  1049. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.cjs +70 -0
  1050. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.d.cts +2 -0
  1051. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.d.ts +2 -0
  1052. package/node_modules/prosemirror-trailing-node/dist/prosemirror-trailing-node.js +43 -0
  1053. package/node_modules/prosemirror-trailing-node/dist-types/index.d.ts +2 -0
  1054. package/node_modules/prosemirror-trailing-node/dist-types/trailing-node-plugin.d.ts +33 -0
  1055. package/node_modules/prosemirror-trailing-node/dist-types/tsconfig.tsbuildinfo +1 -0
  1056. package/node_modules/prosemirror-trailing-node/package.json +57 -0
  1057. package/node_modules/prosemirror-trailing-node/readme.md +55 -0
  1058. package/node_modules/prosemirror-transform/.tern-project +8 -0
  1059. package/node_modules/prosemirror-transform/CHANGELOG.md +502 -0
  1060. package/node_modules/prosemirror-transform/CONTRIBUTING.md +104 -0
  1061. package/node_modules/prosemirror-transform/LICENSE +19 -0
  1062. package/node_modules/prosemirror-transform/README.md +29 -0
  1063. package/node_modules/prosemirror-transform/dist/index.cjs +1888 -0
  1064. package/node_modules/prosemirror-transform/dist/index.d.cts +847 -0
  1065. package/node_modules/prosemirror-transform/dist/index.d.ts +847 -0
  1066. package/node_modules/prosemirror-transform/dist/index.js +2181 -0
  1067. package/node_modules/prosemirror-transform/package.json +37 -0
  1068. package/node_modules/prosemirror-transform/src/README.md +59 -0
  1069. package/node_modules/prosemirror-transform/src/attr_step.ts +98 -0
  1070. package/node_modules/prosemirror-transform/src/index.ts +11 -0
  1071. package/node_modules/prosemirror-transform/src/map.ts +284 -0
  1072. package/node_modules/prosemirror-transform/src/mark.ts +106 -0
  1073. package/node_modules/prosemirror-transform/src/mark_step.ts +224 -0
  1074. package/node_modules/prosemirror-transform/src/replace.ts +460 -0
  1075. package/node_modules/prosemirror-transform/src/replace_step.ts +178 -0
  1076. package/node_modules/prosemirror-transform/src/step.ts +97 -0
  1077. package/node_modules/prosemirror-transform/src/structure.ts +349 -0
  1078. package/node_modules/prosemirror-transform/src/transform.ts +271 -0
  1079. package/node_modules/prosemirror-view/.tern-project +8 -0
  1080. package/node_modules/prosemirror-view/CHANGELOG.md +2447 -0
  1081. package/node_modules/prosemirror-view/CONTRIBUTING.md +104 -0
  1082. package/node_modules/prosemirror-view/LICENSE +19 -0
  1083. package/node_modules/prosemirror-view/README.md +28 -0
  1084. package/node_modules/prosemirror-view/dist/index.cjs +5381 -0
  1085. package/node_modules/prosemirror-view/dist/index.d.cts +904 -0
  1086. package/node_modules/prosemirror-view/dist/index.d.ts +904 -0
  1087. package/node_modules/prosemirror-view/dist/index.js +5900 -0
  1088. package/node_modules/prosemirror-view/package.json +43 -0
  1089. package/node_modules/prosemirror-view/src/README.md +38 -0
  1090. package/node_modules/prosemirror-view/src/browser.ts +24 -0
  1091. package/node_modules/prosemirror-view/src/capturekeys.ts +345 -0
  1092. package/node_modules/prosemirror-view/src/clipboard.ts +263 -0
  1093. package/node_modules/prosemirror-view/src/decoration.ts +793 -0
  1094. package/node_modules/prosemirror-view/src/dom.ts +159 -0
  1095. package/node_modules/prosemirror-view/src/domchange.ts +383 -0
  1096. package/node_modules/prosemirror-view/src/domcoords.ts +515 -0
  1097. package/node_modules/prosemirror-view/src/domobserver.ts +392 -0
  1098. package/node_modules/prosemirror-view/src/index.ts +825 -0
  1099. package/node_modules/prosemirror-view/src/input.ts +830 -0
  1100. package/node_modules/prosemirror-view/src/selection.ts +216 -0
  1101. package/node_modules/prosemirror-view/src/viewdesc.ts +1590 -0
  1102. package/node_modules/prosemirror-view/style/prosemirror.css +54 -0
  1103. package/node_modules/punycode.js/LICENSE-MIT.txt +20 -0
  1104. package/node_modules/punycode.js/README.md +148 -0
  1105. package/node_modules/punycode.js/package.json +58 -0
  1106. package/node_modules/punycode.js/punycode.es6.js +444 -0
  1107. package/node_modules/punycode.js/punycode.js +443 -0
  1108. package/node_modules/rope-sequence/LICENSE +19 -0
  1109. package/node_modules/rope-sequence/README.md +63 -0
  1110. package/node_modules/rope-sequence/dist/index.cjs +209 -0
  1111. package/node_modules/rope-sequence/dist/index.d.cts +11 -0
  1112. package/node_modules/rope-sequence/dist/index.d.ts +11 -0
  1113. package/node_modules/rope-sequence/dist/index.js +207 -0
  1114. package/node_modules/rope-sequence/index.js +190 -0
  1115. package/node_modules/rope-sequence/package.json +34 -0
  1116. package/node_modules/rope-sequence/test.js +78 -0
  1117. package/node_modules/uc.micro/LICENSE.txt +20 -0
  1118. package/node_modules/uc.micro/README.md +14 -0
  1119. package/node_modules/uc.micro/build/index.cjs.js +20 -0
  1120. package/node_modules/uc.micro/categories/Cc/regex.mjs +1 -0
  1121. package/node_modules/uc.micro/categories/Cf/regex.mjs +1 -0
  1122. package/node_modules/uc.micro/categories/P/regex.mjs +1 -0
  1123. package/node_modules/uc.micro/categories/S/regex.mjs +1 -0
  1124. package/node_modules/uc.micro/categories/Z/regex.mjs +1 -0
  1125. package/node_modules/uc.micro/index.mjs +8 -0
  1126. package/node_modules/uc.micro/package.json +37 -0
  1127. package/node_modules/uc.micro/properties/Any/regex.mjs +1 -0
  1128. package/node_modules/use-sync-external-store/LICENSE +21 -0
  1129. package/node_modules/use-sync-external-store/README.md +5 -0
  1130. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +97 -0
  1131. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +85 -0
  1132. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +95 -0
  1133. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js +88 -0
  1134. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.js +59 -0
  1135. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +66 -0
  1136. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +96 -0
  1137. package/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +84 -0
  1138. package/node_modules/use-sync-external-store/cjs/use-sync-external-store.development.js +27 -0
  1139. package/node_modules/use-sync-external-store/cjs/use-sync-external-store.production.js +13 -0
  1140. package/node_modules/use-sync-external-store/index.js +7 -0
  1141. package/node_modules/use-sync-external-store/package.json +43 -0
  1142. package/node_modules/use-sync-external-store/shim/index.js +7 -0
  1143. package/node_modules/use-sync-external-store/shim/index.native.js +7 -0
  1144. package/node_modules/use-sync-external-store/shim/with-selector.js +7 -0
  1145. package/node_modules/use-sync-external-store/with-selector.js +7 -0
  1146. package/node_modules/w3c-keyname/.tern-port +1 -0
  1147. package/node_modules/w3c-keyname/LICENSE +19 -0
  1148. package/node_modules/w3c-keyname/README.md +18 -0
  1149. package/node_modules/w3c-keyname/index.cjs +127 -0
  1150. package/node_modules/w3c-keyname/index.d.cts +5 -0
  1151. package/node_modules/w3c-keyname/index.d.ts +5 -0
  1152. package/node_modules/w3c-keyname/index.js +119 -0
  1153. package/node_modules/w3c-keyname/package.json +37 -0
  1154. package/package.json +120 -3
  1155. package/public-api.md +23 -2
  1156. package/dist/chat/tool-renderers/KbSearchRenderer.d.ts +0 -2
  1157. package/dist/chat/tool-renderers/kb-search-result.d.ts +0 -19
  1158. package/dist/chunk-6ZDOQEWK.js.map +0 -1
  1159. package/dist/chunk-FQQJP2GJ.js.map +0 -1
  1160. package/dist/lib/agent-computer-command.d.ts +0 -34
  1161. package/dist/rich-input/extensions/kb-mention.d.ts +0 -18
  1162. package/dist/rich-input/extensions/workflow-mention.d.ts +0 -10
  1163. package/dist/rich-input/lib/kb-suggestions.d.ts +0 -37
  1164. /package/dist/{chunk-WCMGQJLE.js.map → chunk-PAZSK73V.js.map} +0 -0
@@ -1894,11 +1894,10 @@ 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-x.js
1898
- var CircleX = createLucideIcon("CircleX", [
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
1899
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1900
- ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
1901
- ["path", { d: "m9 9 6 6", key: "z0biqf" }]
1900
+ ["line", { x1: "9", x2: "15", y1: "15", y2: "9", key: "1dfufj" }]
1902
1901
  ]);
1903
1902
 
1904
1903
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle.js
@@ -2303,14 +2302,6 @@ var RefreshCcw = createLucideIcon("RefreshCcw", [
2303
2302
  ["path", { d: "M16 16h5v5", key: "ccwih5" }]
2304
2303
  ]);
2305
2304
 
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
2305
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/rocket.js
2315
2306
  var Rocket = createLucideIcon("Rocket", [
2316
2307
  [
@@ -2429,13 +2420,6 @@ var TriangleAlert = createLucideIcon("TriangleAlert", [
2429
2420
  ["path", { d: "M12 17h.01", key: "p32p05" }]
2430
2421
  ]);
2431
2422
 
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
2423
  // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/wrench.js
2440
2424
  var Wrench = createLucideIcon("Wrench", [
2441
2425
  [
@@ -2453,8 +2437,19 @@ var X = createLucideIcon("X", [
2453
2437
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
2454
2438
  ]);
2455
2439
 
2440
+ // ../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/zap.js
2441
+ var Zap = createLucideIcon("Zap", [
2442
+ [
2443
+ "path",
2444
+ {
2445
+ 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",
2446
+ key: "1xq2db"
2447
+ }
2448
+ ]
2449
+ ]);
2450
+
2456
2451
  // src/components/PlanUpdateBlock.tsx
2457
- import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
2452
+ import { useEffect, useRef, useState } from "react";
2458
2453
 
2459
2454
  // ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
2460
2455
  function r(e2) {
@@ -5674,382 +5669,6 @@ async function copyToClipboard(text) {
5674
5669
  }
5675
5670
  }
5676
5671
 
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
5672
  // src/chat/display-utils.ts
6054
5673
  var TOOL_NAME_ALIASES = {
6055
5674
  agent: "Agent",
@@ -6064,7 +5683,6 @@ var TOOL_NAME_ALIASES = {
6064
5683
  finish_task: "FinishTask",
6065
5684
  glob: "Glob",
6066
5685
  grep: "Grep",
6067
- kb_search: "KbSearch",
6068
5686
  ls: "Ls",
6069
5687
  multi_edit: "MultiEdit",
6070
5688
  read: "Read",
@@ -6084,7 +5702,6 @@ var TOOL_DISPLAY_LABELS = {
6084
5702
  Ls: "\u5217\u51FA\u76EE\u5F55",
6085
5703
  Glob: "\u5339\u914D\u6587\u4EF6",
6086
5704
  Grep: "\u641C\u7D22\u6587\u672C",
6087
- KbSearch: "\u68C0\u7D22\u77E5\u8BC6\u5E93",
6088
5705
  WebSearch: "\u641C\u7D22\u7F51\u9875",
6089
5706
  WebFetch: "\u6574\u7406\u7F51\u9875\u5185\u5BB9",
6090
5707
  Agent: "\u6D3E\u751F\u5B50\u667A\u80FD\u4F53",
@@ -6122,7 +5739,7 @@ function safeParseJson(value) {
6122
5739
  return null;
6123
5740
  }
6124
5741
  }
6125
- function isPlainObject2(value) {
5742
+ function isPlainObject(value) {
6126
5743
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
6127
5744
  }
6128
5745
  function getStringArgValue(args, key) {
@@ -6134,7 +5751,7 @@ function getCommandDescription(args) {
6134
5751
  }
6135
5752
  function getToolDescription(toolCall) {
6136
5753
  const args = safeParseJson(toolCall.arguments);
6137
- if (!isPlainObject2(args)) return null;
5754
+ if (!isPlainObject(args)) return null;
6138
5755
  return getCommandDescription(args) || null;
6139
5756
  }
6140
5757
  function formatFileName(filePath) {
@@ -6192,12 +5809,6 @@ function getToolDisplayLabel(toolCall) {
6192
5809
  const title = args && typeof args.title === "string" ? args.title : "";
6193
5810
  return title ? `${baseLabel}\uFF1A${title}` : baseLabel;
6194
5811
  }
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
5812
  return description || baseLabel;
6202
5813
  }
6203
5814
  function getToolTone(status) {
@@ -6234,7 +5845,7 @@ function extractToolFilePaths(toolCall) {
6234
5845
  for (const item of value) collect(item, depth + 1, allowPlainString);
6235
5846
  return;
6236
5847
  }
6237
- if (!isPlainObject2(value)) return;
5848
+ if (!isPlainObject(value)) return;
6238
5849
  for (const key of PRIORITY_FILE_KEYS) collect(value[key], depth + 1, true);
6239
5850
  for (const [key, nested] of Object.entries(value)) {
6240
5851
  if (!PRIORITY_FILE_KEYS.includes(key) && nested && typeof nested === "object") collect(nested, depth + 1, false);
@@ -6249,7 +5860,7 @@ function extractToolFilePaths(toolCall) {
6249
5860
  }
6250
5861
  } else if (Array.isArray(value)) {
6251
5862
  for (const item of value) collectPatchHeaders(item);
6252
- } else if (isPlainObject2(value)) {
5863
+ } else if (isPlainObject(value)) {
6253
5864
  for (const [key, nested] of Object.entries(value)) {
6254
5865
  if (key.toLowerCase().includes("patch") || key.toLowerCase().includes("diff")) collectPatchHeaders(nested);
6255
5866
  }
@@ -6273,7 +5884,7 @@ function getToolOutputTag(toolCall) {
6273
5884
  }
6274
5885
 
6275
5886
  // src/components/PlanUpdateBlock.tsx
6276
- import { jsx as jsx5, jsxs } from "react/jsx-runtime";
5887
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
6277
5888
  var PLAN_STEP_STATUSES = /* @__PURE__ */ new Set(["pending", "in_progress", "completed"]);
6278
5889
  var PLAN_AUTO_COLLAPSE_MS = 5e3;
6279
5890
  function isPlanUpdateTool(toolCall) {
@@ -6328,12 +5939,12 @@ function PlanStepIcon({
6328
5939
  running = false
6329
5940
  }) {
6330
5941
  if (status === "completed") {
6331
- return /* @__PURE__ */ jsx5(Check, { size: size4, strokeWidth: 2, className: "shrink-0 text-emerald-500" });
5942
+ return /* @__PURE__ */ jsx2(Check, { size: size4, strokeWidth: 2, className: "shrink-0 text-emerald-500" });
6332
5943
  }
6333
5944
  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" });
5945
+ 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
5946
  }
6336
- return /* @__PURE__ */ jsx5(Circle, { size: size4, className: "shrink-0 text-[hsl(var(--muted-foreground))]/60" });
5947
+ return /* @__PURE__ */ jsx2(Circle, { size: size4, className: "shrink-0 text-[hsl(var(--muted-foreground))]/60" });
6337
5948
  }
6338
5949
  function PlanUpdateBlock({
6339
5950
  toolCall,
@@ -6343,10 +5954,10 @@ function PlanUpdateBlock({
6343
5954
  }) {
6344
5955
  const updateKey = `${toolCall.id}:${toolCall.arguments}`;
6345
5956
  const revealKey = autoReveal ? updateKey : null;
6346
- const [collapsed, setCollapsed] = useState2(!autoReveal);
6347
- const collapseTimerRef = useRef2(null);
5957
+ const [collapsed, setCollapsed] = useState(!autoReveal);
5958
+ const collapseTimerRef = useRef(null);
6348
5959
  const data = parsePlanUpdate(toolCall.arguments);
6349
- useEffect2(() => {
5960
+ useEffect(() => {
6350
5961
  if (!revealKey) return;
6351
5962
  if (collapseTimerRef.current) clearTimeout(collapseTimerRef.current);
6352
5963
  setCollapsed(false);
@@ -6355,7 +5966,7 @@ function PlanUpdateBlock({
6355
5966
  collapseTimerRef.current = null;
6356
5967
  }, PLAN_AUTO_COLLAPSE_MS);
6357
5968
  }, [revealKey]);
6358
- useEffect2(
5969
+ useEffect(
6359
5970
  () => () => {
6360
5971
  if (collapseTimerRef.current) clearTimeout(collapseTimerRef.current);
6361
5972
  },
@@ -6384,20 +5995,20 @@ function PlanUpdateBlock({
6384
5995
  ),
6385
5996
  children: [
6386
5997
  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
5998
+ /* @__PURE__ */ jsx2(PlanStepIcon, { status: currentStep.status, size: 14, running }),
5999
+ /* @__PURE__ */ jsx2("span", { className: "truncate", children: currentStep.step }),
6000
+ pausedAtCurrentStep ? /* @__PURE__ */ jsx2("span", { className: "shrink-0 text-[11px] text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6390
6001
  ] }) : /* @__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
6002
+ /* @__PURE__ */ jsx2(ListChecks, { size: 14, className: "shrink-0", "aria-hidden": "true" }),
6003
+ /* @__PURE__ */ jsx2("span", { className: "truncate", children: "\u4EFB\u52A1\u8FDB\u5EA6" }),
6004
+ pausedAtCurrentStep ? /* @__PURE__ */ jsx2("span", { className: "shrink-0 text-amber-500", children: "\u5DF2\u6682\u505C" }) : null
6394
6005
  ] }),
6395
6006
  /* @__PURE__ */ jsxs("span", { className: "shrink-0 text-[11px] tabular-nums text-[hsl(var(--muted-foreground))]", children: [
6396
6007
  completed,
6397
6008
  "/",
6398
6009
  data.plan.length
6399
6010
  ] }),
6400
- /* @__PURE__ */ jsx5(
6011
+ /* @__PURE__ */ jsx2(
6401
6012
  ChevronDown,
6402
6013
  {
6403
6014
  size: 14,
@@ -6410,7 +6021,7 @@ function PlanUpdateBlock({
6410
6021
  ]
6411
6022
  }
6412
6023
  ),
6413
- /* @__PURE__ */ jsx5(
6024
+ /* @__PURE__ */ jsx2(
6414
6025
  "div",
6415
6026
  {
6416
6027
  "aria-hidden": collapsed,
@@ -6418,9 +6029,9 @@ function PlanUpdateBlock({
6418
6029
  "grid transition-[grid-template-rows,opacity] duration-300 ease-out motion-reduce:transition-none",
6419
6030
  collapsed ? "grid-rows-[0fr] opacity-0" : "grid-rows-[1fr] opacity-100"
6420
6031
  ),
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(
6032
+ 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: [
6033
+ /* @__PURE__ */ jsx2("span", { className: "mt-[3px] flex shrink-0", children: /* @__PURE__ */ jsx2(PlanStepIcon, { status: item.status, size: 14, running }) }),
6034
+ /* @__PURE__ */ jsx2(
6424
6035
  "span",
6425
6036
  {
6426
6037
  className: cn(
@@ -6436,6 +6047,59 @@ function PlanUpdateBlock({
6436
6047
  ] });
6437
6048
  }
6438
6049
 
6050
+ // src/chat/runtime/input-history-storage.ts
6051
+ var generation = 0;
6052
+ function getInputHistoryGeneration() {
6053
+ return generation;
6054
+ }
6055
+
6056
+ // src/chat/runtime/input-cache-reset.ts
6057
+ var resetters = /* @__PURE__ */ new WeakMap();
6058
+ function onInputCachesReset(client, reset) {
6059
+ let set = resetters.get(client);
6060
+ if (!set) {
6061
+ set = /* @__PURE__ */ new Set();
6062
+ resetters.set(client, set);
6063
+ }
6064
+ set.add(reset);
6065
+ return () => {
6066
+ set.delete(reset);
6067
+ };
6068
+ }
6069
+
6070
+ // src/rich-input/lib/plugin-suggestions.ts
6071
+ var accountPreparation = /* @__PURE__ */ new WeakMap();
6072
+ var registeredClients = /* @__PURE__ */ new WeakSet();
6073
+ function pluginRefsForSend(refs, turns = []) {
6074
+ const latest = [...turns].reverse().find((turn) => turn.role === "user");
6075
+ return refs.length || latest?.refs?.length ? refs : void 0;
6076
+ }
6077
+ function prepareAccount(client) {
6078
+ if (!registeredClients.has(client)) {
6079
+ registeredClients.add(client);
6080
+ onInputCachesReset(client, () => accountPreparation.delete(client));
6081
+ }
6082
+ const current = accountPreparation.get(client);
6083
+ if (current && current.token === client.token) return current.ready;
6084
+ const ready = client.plugins.catalog().catch((error) => {
6085
+ accountPreparation.delete(client);
6086
+ throw error;
6087
+ });
6088
+ accountPreparation.set(client, { token: client.token, ready });
6089
+ return ready;
6090
+ }
6091
+ async function getPluginSuggestionItems(client, session, query, pendingPlugins = []) {
6092
+ if (!session && pendingPlugins.length === 0) return [];
6093
+ const path = session ? `/api/sessions/${encodeURIComponent(session)}/plugin-tools/mentions` : "/api/plugin-mentions/mentions";
6094
+ try {
6095
+ if (!session) await prepareAccount(client);
6096
+ const data = await client.json("POST", path, { arguments: { query, cursor: "" }, ...!session ? { plugin_selection: pendingPlugins } : {} });
6097
+ return [...data.items.map((item) => ({ ...item, kind: "plugin", name: item.label })), ...data.errors.map((message) => ({ kind: "pluginError", message }))];
6098
+ } catch {
6099
+ return [{ kind: "pluginError", message: "\u63D2\u4EF6\u6761\u76EE\u6682\u65F6\u65E0\u6CD5\u52A0\u8F7D\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165 @ \u91CD\u8BD5" }];
6100
+ }
6101
+ }
6102
+
6439
6103
  // ../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.js
6440
6104
  function deepCompareStrict(a, b) {
6441
6105
  const typeofa = typeof a;
@@ -7646,7 +7310,7 @@ function canExpand(schema, uiSchema = {}, formData) {
7646
7310
  }
7647
7311
 
7648
7312
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/isPlainObject.js
7649
- function isPlainObject3(thing) {
7313
+ function isPlainObject2(thing) {
7650
7314
  if (typeof thing !== "object" || thing === null) {
7651
7315
  return false;
7652
7316
  }
@@ -11540,7 +11204,7 @@ var ErrorSchemaBuilder = class {
11540
11204
 
11541
11205
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/getChangedFields.js
11542
11206
  function getChangedDescendants(a, b) {
11543
- if (isPlainObject3(a) && isPlainObject3(b)) {
11207
+ if (isPlainObject2(a) && isPlainObject2(b)) {
11544
11208
  return getChangedFields(a, b, true);
11545
11209
  }
11546
11210
  if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) {
@@ -11558,10 +11222,10 @@ function getChangedFields(a, b, deep = false) {
11558
11222
  if (a === b) {
11559
11223
  return [];
11560
11224
  }
11561
- if (!isPlainObject3(a)) {
11562
- return isPlainObject3(b) ? Object.keys(b) : [];
11225
+ if (!isPlainObject2(a)) {
11226
+ return isPlainObject2(b) ? Object.keys(b) : [];
11563
11227
  }
11564
- if (!isPlainObject3(b)) {
11228
+ if (!isPlainObject2(b)) {
11565
11229
  return Object.keys(a);
11566
11230
  }
11567
11231
  const aKeys = Object.keys(a);
@@ -12152,7 +11816,7 @@ function errorsFrom(errorSchema, fieldPath) {
12152
11816
  const errorList = Array.isArray(errors) ? errors.map((message) => ({ property, message, stack: `${property} ${message}` })) : [];
12153
11817
  return Object.keys(errorSchema).reduce((currentList, key) => {
12154
11818
  const childSchema = errorSchema[key];
12155
- if (key !== ERRORS_KEY && isPlainObject3(childSchema)) {
11819
+ if (key !== ERRORS_KEY && isPlainObject2(childSchema)) {
12156
11820
  return currentList.concat(errorsFrom(childSchema, [...fieldPath, key]));
12157
11821
  }
12158
11822
  return currentList;
@@ -12174,7 +11838,7 @@ function toFieldPathId(fieldPath, globalFormOptions, parentPath, isMultiValue) {
12174
11838
 
12175
11839
  // ../../node_modules/.pnpm/@rjsf+utils@6.10.0_react@19.2.4/node_modules/@rjsf/utils/lib/useAltDateWidgetProps.js
12176
11840
  import { jsx as _jsx3 } from "react/jsx-runtime";
12177
- import { useCallback, useEffect as useEffect3, useMemo as useMemo3, useState as useState3 } from "react";
11841
+ import { useCallback, useEffect as useEffect2, useMemo, useState as useState2 } from "react";
12178
11842
  function readyForChange(state) {
12179
11843
  return Object.values(state).every((value) => value !== -1);
12180
11844
  }
@@ -12187,8 +11851,8 @@ function DateElement(props) {
12187
11851
  }
12188
11852
  function useAltDateWidgetProps(props) {
12189
11853
  const { time: time2 = false, disabled = false, readonly = false, options, onChange, value } = props;
12190
- const [state, setState] = useState3(parseDateString(value, time2));
12191
- useEffect3(() => {
11854
+ const [state, setState] = useState2(parseDateString(value, time2));
11855
+ useEffect2(() => {
12192
11856
  setState(parseDateString(value, time2));
12193
11857
  }, [time2, value]);
12194
11858
  const handleChange = useCallback((property, newValue) => {
@@ -12217,14 +11881,14 @@ function useAltDateWidgetProps(props) {
12217
11881
  const nextState = parseDateString((/* @__PURE__ */ new Date()).toJSON(), time2);
12218
11882
  onChange(toDateString(nextState, time2));
12219
11883
  }, [disabled, readonly, time2, onChange]);
12220
- const elements = useMemo3(() => getDateElementProps(state, time2, options.yearsRange, options.format), [state, time2, options.yearsRange, options.format]);
11884
+ const elements = useMemo(() => getDateElementProps(state, time2, options.yearsRange, options.format), [state, time2, options.yearsRange, options.format]);
12221
11885
  return { elements, handleChange, handleClear, handleSetNow };
12222
11886
  }
12223
11887
 
12224
11888
  // ../../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";
11889
+ import { useRef as useRef2 } from "react";
12226
11890
  function useDeepCompareMemo(newValue) {
12227
- const valueRef = useRef3(newValue);
11891
+ const valueRef = useRef2(newValue);
12228
11892
  if (!deepEquals_default(newValue, valueRef.current)) {
12229
11893
  valueRef.current = newValue;
12230
11894
  }
@@ -12232,7 +11896,7 @@ function useDeepCompareMemo(newValue) {
12232
11896
  }
12233
11897
 
12234
11898
  // ../../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";
11899
+ import { useCallback as useCallback2, useMemo as useMemo2 } from "react";
12236
11900
  function addNameToDataURL(dataURL, name) {
12237
11901
  return dataURL.replace(";base64", `;name=${encodeURIComponent(name)};base64`);
12238
11902
  }
@@ -12286,13 +11950,13 @@ function extractFileInfo(dataURLs) {
12286
11950
  }, []);
12287
11951
  }
12288
11952
  function useFileWidgetProps(value, onChange, multiple = false) {
12289
- const values = useMemo4(() => {
11953
+ const values = useMemo2(() => {
12290
11954
  if (multiple && value) {
12291
11955
  return Array.isArray(value) ? value : [value];
12292
11956
  }
12293
11957
  return [];
12294
11958
  }, [value, multiple]);
12295
- const filesInfo = useMemo4(() => Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value || ""]), [value]);
11959
+ const filesInfo = useMemo2(() => Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value || ""]), [value]);
12296
11960
  const handleChange = useCallback2(async (files) => {
12297
11961
  const filesInfoEvent = await processFiles(files);
12298
11962
  const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL || null);
@@ -12418,7 +12082,7 @@ var TranslatableString;
12418
12082
 
12419
12083
  // ../../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
12084
  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";
12085
+ import { memo, useCallback as useCallback3, useMemo as useMemo3, useRef as useRef3, useState as useState3 } from "react";
12422
12086
  var rowIdCounter = 0;
12423
12087
  function generateRowId() {
12424
12088
  rowIdCounter += 1;
@@ -12512,8 +12176,8 @@ function ArrayAsFiles(props) {
12512
12176
  function ArrayFieldItemInner(props) {
12513
12177
  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
12178
  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]);
12179
+ const itemSchema = useMemo3(() => schemaUtils.retrieveSchema(rawItemSchema, itemData), [schemaUtils, rawItemSchema, itemData]);
12180
+ const fieldPathId = useMemo3(() => toFieldPathId(index2, globalFormOptions, parentFieldPathId), [index2, globalFormOptions, parentFieldPathId]);
12517
12181
  const ItemSchemaField = ArraySchemaField || SchemaField2;
12518
12182
  const ArrayFieldItemTemplate2 = getTemplate("ArrayFieldItemTemplate", registry, uiOptions);
12519
12183
  const displayLabel = schemaUtils.getDisplayLabel(itemSchema, itemUiSchema, globalUiOptions);
@@ -12587,13 +12251,13 @@ function NormalArray(props) {
12587
12251
  const fieldTitle = schema.title || title || name;
12588
12252
  const { schemaUtils, fields: fields2, formContext, globalUiOptions } = registry;
12589
12253
  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]);
12254
+ const uiOptions = useMemo3(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12255
+ const schemaItems = useMemo3(() => isObject(schema.items) ? schema.items : {}, [schema.items]);
12256
+ const itemsSchema = useMemo3(() => schemaUtils.retrieveSchema(schemaItems), [schemaUtils, schemaItems]);
12257
+ const formData = useMemo3(() => keyedToPlainFormData(keyedFormData), [keyedFormData]);
12594
12258
  const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);
12595
12259
  const hasFormData = isFormDataAvailable(formDataFromProps);
12596
- const canAdd = useMemo5(() => canAddItem(registry, schema, formData, uiSchema) && (!renderOptionalField || hasFormData), [registry, schema, formData, uiSchema, renderOptionalField, hasFormData]);
12260
+ const canAdd = useMemo3(() => canAddItem(registry, schema, formData, uiSchema) && (!renderOptionalField || hasFormData), [registry, schema, formData, uiSchema, renderOptionalField, hasFormData]);
12597
12261
  const actualFormData = hasFormData ? keyedFormData : [];
12598
12262
  const extraClass = renderOptionalField ? " rjsf-optional-array-field" : "";
12599
12263
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
@@ -12660,11 +12324,11 @@ function FixedArray(props) {
12660
12324
  let { formData: items = [] } = props;
12661
12325
  const fieldTitle = schema.title || title || name;
12662
12326
  const { fields: fields2, formContext, globalUiOptions } = registry;
12663
- const uiOptions = useMemo5(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12327
+ const uiOptions = useMemo3(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
12664
12328
  const { OptionalDataControlsField: OptionalDataControlsField2 } = fields2;
12665
12329
  const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);
12666
12330
  const hasFormData = isFormDataAvailable(formData);
12667
- const schemaItems = useMemo5(() => Array.isArray(schema.items) ? schema.items : [], [schema.items]);
12331
+ const schemaItems = useMemo3(() => Array.isArray(schema.items) ? schema.items : [], [schema.items]);
12668
12332
  const hasAdditionalItems = isObject(schema.additionalItems);
12669
12333
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
12670
12334
  if (items.length < schemaItems.length) {
@@ -12743,8 +12407,8 @@ function FixedArray(props) {
12743
12407
  return _jsx4(Template, { ...arrayProps });
12744
12408
  }
12745
12409
  function useKeyedFormData(formData = []) {
12746
- const newHash = useMemo5(() => hashObject(formData), [formData]);
12747
- const [state, setState] = useState4(() => ({
12410
+ const newHash = useMemo3(() => hashObject(formData), [formData]);
12411
+ const [state, setState] = useState3(() => ({
12748
12412
  formDataHash: newHash,
12749
12413
  keyedFormData: generateKeyedFormData(formData)
12750
12414
  }));
@@ -12771,9 +12435,9 @@ function ArrayField(props) {
12771
12435
  const { schema, uiSchema, errorSchema, fieldPathId, registry, formData, onChange } = props;
12772
12436
  const { globalFormOptions, schemaUtils, translateString } = registry;
12773
12437
  const { keyedFormData, updateKeyedFormData } = useKeyedFormData(formData);
12774
- const keyedFormDataRef = useRef4(keyedFormData);
12438
+ const keyedFormDataRef = useRef3(keyedFormData);
12775
12439
  keyedFormDataRef.current = keyedFormData;
12776
- const errorSchemaRef = useRef4(errorSchema);
12440
+ const errorSchemaRef = useRef3(errorSchema);
12777
12441
  errorSchemaRef.current = errorSchema;
12778
12442
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
12779
12443
  const handleAddItem = useCallback3((event, index2) => {
@@ -12991,9 +12655,9 @@ var BooleanField_default = BooleanField;
12991
12655
 
12992
12656
  // ../../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
12657
  import { jsx as _jsx6 } from "react/jsx-runtime";
12994
- import { useState as useState5 } from "react";
12658
+ import { useState as useState4 } from "react";
12995
12659
  function CyclicSchemaField(props) {
12996
- const [expanded, setExpanded] = useState5(false);
12660
+ const [expanded, setExpanded] = useState4(false);
12997
12661
  const { name, registry, schema, uiSchema, fieldPathId } = props;
12998
12662
  const { globalUiOptions } = registry;
12999
12663
  const uiOptions = getUiOptions(uiSchema, globalUiOptions);
@@ -13008,7 +12672,7 @@ function CyclicSchemaField(props) {
13008
12672
 
13009
12673
  // ../../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
12674
  import { jsx as _jsx7 } from "react/jsx-runtime";
13011
- import { useMemo as useMemo6, useState as useState6 } from "react";
12675
+ import { useMemo as useMemo4, useState as useState5 } from "react";
13012
12676
  function getFallbackTypeSelectionSchema(title) {
13013
12677
  return {
13014
12678
  type: "string",
@@ -13044,11 +12708,11 @@ function castToNewType(formData, newType) {
13044
12708
  function FallbackField(props) {
13045
12709
  const { id, formData, displayLabel = true, schema, name, uiSchema, required, disabled = false, readonly = false, onBlur, onFocus, registry, fieldPathId, onChange, errorSchema } = props;
13046
12710
  const { translateString, fields: fields2, globalFormOptions } = registry;
13047
- const [type, setType] = useState6(getTypeOfFormData(formData));
12711
+ const [type, setType] = useState5(getTypeOfFormData(formData));
13048
12712
  const uiOptions = getUiOptions(uiSchema);
13049
12713
  const typeSelectorInnerFieldPathId = useDeepCompareMemo(toFieldPathId("__internal_type_selector", globalFormOptions, fieldPathId));
13050
12714
  const schemaTitle = translateString(TranslatableString.Type);
13051
- const typesOptionSchema = useMemo6(() => getFallbackTypeSelectionSchema(schemaTitle), [schemaTitle]);
12715
+ const typesOptionSchema = useMemo4(() => getFallbackTypeSelectionSchema(schemaTitle), [schemaTitle]);
13052
12716
  const onTypeChange = (newType) => {
13053
12717
  if (newType != null) {
13054
12718
  setType(newType);
@@ -13135,7 +12799,7 @@ function conditionMatches(operator, datum, value = "$0m3tH1nG Un3xP3cT3d") {
13135
12799
  function findChildrenAndProps(layoutGridSchema, schemaKey, registry) {
13136
12800
  let gridProps = {};
13137
12801
  let children = layoutGridSchema[schemaKey];
13138
- if (isPlainObject3(children)) {
12802
+ if (isPlainObject2(children)) {
13139
12803
  const { children: elements, className: toMapClassNames, ...otherProps } = children;
13140
12804
  children = elements;
13141
12805
  if (toMapClassNames) {
@@ -13387,7 +13051,7 @@ function LayoutHeaderField(props) {
13387
13051
 
13388
13052
  // ../../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
13053
  import { jsx as _jsx10 } from "react/jsx-runtime";
13390
- import { useState as useState7, useEffect as useEffect4 } from "react";
13054
+ import { useState as useState6, useEffect as useEffect3 } from "react";
13391
13055
  function getSelectedOption(options, selectorField, value) {
13392
13056
  const defaultValue = "!@#!@$@#$!@$#";
13393
13057
  const schemaOptions = options.map(({ schema }) => schema);
@@ -13414,7 +13078,7 @@ function computeEnumOptions(schema, options, schemaUtils, uiSchema, formData) {
13414
13078
  function LayoutMultiSchemaField(props) {
13415
13079
  const { name, baseType, disabled = false, formData, fieldPathId, onBlur, onChange, options, onFocus, registry, uiSchema, schema, autofocus, readonly, required, errorSchema, hideError = false } = props;
13416
13080
  const { widgets: widgets2, schemaUtils, globalUiOptions } = registry;
13417
- const [enumOptions, setEnumOptions] = useState7(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13081
+ const [enumOptions, setEnumOptions] = useState6(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13418
13082
  const id = fieldPathId[ID_KEY];
13419
13083
  const discriminator = getDiscriminatorFieldFromSchema(schema);
13420
13084
  const FieldErrorTemplate2 = getTemplate("FieldErrorTemplate", registry, options);
@@ -13423,7 +13087,7 @@ function LayoutMultiSchemaField(props) {
13423
13087
  const optionsHash = hashObject(options);
13424
13088
  const uiSchemaHash = uiSchema ? hashObject(uiSchema) : "";
13425
13089
  const formDataHash = formData ? hashObject(formData) : "";
13426
- useEffect4(() => {
13090
+ useEffect3(() => {
13427
13091
  setEnumOptions(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));
13428
13092
  }, [schemaHash, optionsHash, schemaUtils, uiSchemaHash, formDataHash]);
13429
13093
  const { widget = discriminator ? "radio" : "select", title = "", placeholder = "", optionsSchemaSelector: selectorField = discriminator, hideError: uiSchemaHideError, ...uiOptions } = getUiOptions(uiSchema);
@@ -13462,24 +13126,24 @@ function LayoutMultiSchemaField(props) {
13462
13126
 
13463
13127
  // ../../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
13128
  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";
13129
+ import { useCallback as useCallback5, useEffect as useEffect4, useMemo as useMemo5, useRef as useRef4, useState as useState7 } from "react";
13466
13130
  function AnyOfField(props) {
13467
13131
  const { name, disabled = false, errorSchema, formData, fieldPathId, onBlur, onChange, onFocus, options, readonly, registry, required = false, schema, uiSchema } = props;
13468
13132
  const { schemaUtils } = registry;
13469
13133
  const formDataHash = hashObject(formData ?? null);
13470
- const retrievedOptions = useMemo7(
13134
+ const retrievedOptions = useMemo5(
13471
13135
  () => options.map((opt) => schemaUtils.retrieveSchema(opt, formData)),
13472
13136
  // oxlint-disable-next-line react-hooks/exhaustive-deps -- formDataHash is the value-stable proxy for formData
13473
13137
  [options, schemaUtils, formDataHash]
13474
13138
  );
13475
- const [selectedOption, setSelectedOption] = useState8(() => {
13139
+ const [selectedOption, setSelectedOption] = useState7(() => {
13476
13140
  const discriminator = getDiscriminatorFieldFromSchema(schema);
13477
13141
  return schemaUtils.getClosestMatchingOption(formData, retrievedOptions, 0, discriminator);
13478
13142
  });
13479
- const skipNextOptionRecalculation = useRef5(false);
13480
- const prevFormDataRef = useRef5(formData);
13481
- const prevFieldIdRef = useRef5(fieldPathId.$id);
13482
- useEffect5(() => {
13143
+ const skipNextOptionRecalculation = useRef4(false);
13144
+ const prevFormDataRef = useRef4(formData);
13145
+ const prevFieldIdRef = useRef4(fieldPathId.$id);
13146
+ useEffect4(() => {
13483
13147
  const prevFormData = prevFormDataRef.current;
13484
13148
  const prevFieldId = prevFieldIdRef.current;
13485
13149
  prevFormDataRef.current = formData;
@@ -13577,10 +13241,10 @@ function AnyOfField(props) {
13577
13241
  var MultiSchemaField_default = AnyOfField;
13578
13242
 
13579
13243
  // ../../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";
13244
+ import { useEffect as useEffect5 } from "react";
13581
13245
  function NullField(props) {
13582
13246
  const { formData, onChange, fieldPathId } = props;
13583
- useEffect6(() => {
13247
+ useEffect5(() => {
13584
13248
  if (formData === void 0) {
13585
13249
  onChange(null, fieldPathId.path);
13586
13250
  }
@@ -13591,12 +13255,12 @@ var NullField_default = NullField;
13591
13255
 
13592
13256
  // ../../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
13257
  import { jsx as _jsx12 } from "react/jsx-runtime";
13594
- import { useState as useState9, useCallback as useCallback6 } from "react";
13258
+ import { useState as useState8, useCallback as useCallback6 } from "react";
13595
13259
  var trailingCharMatcherWithPrefix = /\.([0-9]*0)*$/;
13596
13260
  var trailingCharMatcher = /[0.]0*$/;
13597
13261
  function NumberField(props) {
13598
13262
  const { registry, onChange, formData, value: initialValue } = props;
13599
- const [lastValue, setLastValue] = useState9(initialValue);
13263
+ const [lastValue, setLastValue] = useState8(initialValue);
13600
13264
  const { StringField: StringField2 } = registry.fields;
13601
13265
  const separator = getDecimalSeparator();
13602
13266
  const escapedSeparator = separator === "." ? "\\." : separator;
@@ -13631,7 +13295,7 @@ var NumberField_default = NumberField;
13631
13295
 
13632
13296
  // ../../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
13297
  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";
13298
+ import { memo as memo2, useCallback as useCallback7, useMemo as useMemo7, useRef as useRef6, useState as useState9 } from "react";
13635
13299
 
13636
13300
  // ../../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
13301
  import * as i0 from "react";
@@ -16766,7 +16430,7 @@ function getAdditionalPropertyOrder(schemaProperties) {
16766
16430
  }
16767
16431
  function ObjectFieldPropertyFn(props) {
16768
16432
  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);
16433
+ const [wasPropertyKeyModified, setWasPropertyKeyModified] = useState9(false);
16770
16434
  const { globalFormOptions, fields: fields2 } = registry;
16771
16435
  const { SchemaField: SchemaField2 } = fields2;
16772
16436
  const innerFieldIdPathId = useDeepCompareMemo(toFieldPathId(propertyName, globalFormOptions, fieldPathId.path));
@@ -16797,15 +16461,15 @@ function ObjectField(props) {
16797
16461
  const { schema: rawSchema, uiSchema = {}, formData, errorSchema, fieldPathId, name, required = false, disabled, readonly, hideError, onBlur, onFocus, onChange, registry, title } = props;
16798
16462
  const { fields: fields2, schemaUtils, translateString, globalUiOptions } = registry;
16799
16463
  const { OptionalDataControlsField: OptionalDataControlsField2 } = fields2;
16800
- const formDataRef = useRef7(formData);
16464
+ const formDataRef = useRef6(formData);
16801
16465
  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]);
16466
+ const schema = useMemo7(() => schemaUtils.retrieveSchema(rawSchema, formData, true), [schemaUtils, rawSchema, formData]);
16467
+ const uiOptions = useMemo7(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);
16468
+ const schemaProperties = useMemo7(() => schema.properties ?? {}, [schema.properties]);
16805
16469
  const childFieldPathId = props.childFieldPathId ?? fieldPathId;
16806
- const lastRenamedProperty = useRef7({ previousKey: "", currentKey: void 0 });
16807
- const [additionalPropertyOrder, setAdditionalPropertyOrder] = useState10(() => getAdditionalPropertyOrder(schemaProperties));
16808
- const definedPropertyOrder = useMemo9(() => {
16470
+ const lastRenamedProperty = useRef6({ previousKey: "", currentKey: void 0 });
16471
+ const [additionalPropertyOrder, setAdditionalPropertyOrder] = useState9(() => getAdditionalPropertyOrder(schemaProperties));
16472
+ const definedPropertyOrder = useMemo7(() => {
16809
16473
  const additionalPropertySet = new Set(getAdditionalPropertyOrder(schemaProperties));
16810
16474
  return Object.keys(schemaProperties).filter((property) => !additionalPropertySet.has(property));
16811
16475
  }, [schemaProperties]);
@@ -18759,7 +18423,7 @@ var Form = class _Form extends Component {
18759
18423
  };
18760
18424
 
18761
18425
  // src/components/SessionPluginConfigForm.tsx
18762
- import { isValidElement, useMemo as useMemo10, useState as useState11 } from "react";
18426
+ import { isValidElement, useMemo as useMemo8, useState as useState10 } from "react";
18763
18427
 
18764
18428
  // src/components/plugin-config-schema.ts
18765
18429
  function asSchema(value) {
@@ -18954,7 +18618,7 @@ function configDraftOperations(initial, values, retained, removed) {
18954
18618
  }
18955
18619
 
18956
18620
  // src/components/SessionPluginConfigForm.tsx
18957
- import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
18621
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
18958
18622
  var defaults = getDefaultRegistry();
18959
18623
  var validator = {
18960
18624
  isValid(schema, data, rootSchema) {
@@ -19011,7 +18675,7 @@ function presentationSchema(schema) {
19011
18675
  }
19012
18676
  function ConfigMultiSchemaField(props) {
19013
18677
  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" }),
18678
+ /* @__PURE__ */ jsx3("label", { htmlFor: isValidElement(props.selector) ? props.selector.props.id : void 0, children: "\u914D\u7F6E\u65B9\u5F0F" }),
19015
18679
  props.selector,
19016
18680
  props.optionSchemaField
19017
18681
  ] });
@@ -19039,12 +18703,12 @@ function ConfigSchemaField(inputProps) {
19039
18703
  const pointer = pointerOf(originalConfigPath(fieldPathId.path, context.removed));
19040
18704
  const originalMarker = [...context.retained].find(([, path2]) => path2 === pointer)?.[0];
19041
18705
  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)) });
18706
+ 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
18707
  if (schema.writeOnly === true) {
19044
18708
  const kept = typeof formData === "string" && context.retained.has(formData);
19045
18709
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-field", children: [
19046
18710
  Array.isArray(schema.type) && schema.type.includes("null") ? /* @__PURE__ */ jsxs2("label", { children: [
19047
- /* @__PURE__ */ jsx6(
18711
+ /* @__PURE__ */ jsx3(
19048
18712
  "input",
19049
18713
  {
19050
18714
  type: "checkbox",
@@ -19056,8 +18720,8 @@ function ConfigSchemaField(inputProps) {
19056
18720
  schema.title ?? props.name,
19057
18721
  "\uFF1A\u7F6E\u4E3A\u7A7A\u503C"
19058
18722
  ] }) : null,
19059
- /* @__PURE__ */ jsx6("label", { htmlFor: fieldPathId.$id, "data-required": props.required, children: schema.title ?? props.name }),
19060
- /* @__PURE__ */ jsx6(
18723
+ /* @__PURE__ */ jsx3("label", { htmlFor: fieldPathId.$id, "data-required": props.required, children: schema.title ?? props.name }),
18724
+ /* @__PURE__ */ jsx3(
19061
18725
  "input",
19062
18726
  {
19063
18727
  id: fieldPathId.$id,
@@ -19070,8 +18734,8 @@ function ConfigSchemaField(inputProps) {
19070
18734
  onChange: (event) => onChange(event.target.value || originalMarker, fieldPathId.path)
19071
18735
  }
19072
18736
  ),
19073
- kept ? /* @__PURE__ */ jsx6("p", { children: "\u5DF2\u4FDD\u5B58\uFF0C\u7559\u7A7A\u4FDD\u6301\u4E0D\u53D8" }) : null,
19074
- formData !== void 0 ? /* @__PURE__ */ jsx6(
18737
+ kept ? /* @__PURE__ */ jsx3("p", { children: "\u5DF2\u4FDD\u5B58\uFF0C\u7559\u7A7A\u4FDD\u6301\u4E0D\u53D8" }) : null,
18738
+ formData !== void 0 ? /* @__PURE__ */ jsx3(
19075
18739
  "button",
19076
18740
  {
19077
18741
  type: "button",
@@ -19080,8 +18744,8 @@ function ConfigSchemaField(inputProps) {
19080
18744
  children: "\u6E05\u9664\u5DF2\u4FDD\u5B58\u7684\u503C"
19081
18745
  }
19082
18746
  ) : 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))
18747
+ schema.description ? /* @__PURE__ */ jsx3("p", { children: schema.description }) : null,
18748
+ context.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx3("p", { role: "alert", children: error.message }, error.message))
19085
18749
  ] });
19086
18750
  }
19087
18751
  const types = Array.isArray(schema.type) ? schema.type : [schema.type];
@@ -19090,7 +18754,7 @@ function ConfigSchemaField(inputProps) {
19090
18754
  const inner = { ...schema, type: nonNull[0] };
19091
18755
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-field", children: [
19092
18756
  /* @__PURE__ */ jsxs2("label", { children: [
19093
- /* @__PURE__ */ jsx6(
18757
+ /* @__PURE__ */ jsx3(
19094
18758
  "input",
19095
18759
  {
19096
18760
  type: "checkbox",
@@ -19105,28 +18769,28 @@ function ConfigSchemaField(inputProps) {
19105
18769
  schema.title ?? props.name,
19106
18770
  "\uFF1A\u7F6E\u4E3A\u7A7A\u503C"
19107
18771
  ] }),
19108
- nonNull.length && formData !== null ? /* @__PURE__ */ jsx6(defaults.fields.SchemaField, { ...props, schema: inner }) : null
18772
+ nonNull.length && formData !== null ? /* @__PURE__ */ jsx3(defaults.fields.SchemaField, { ...props, schema: inner }) : null
19109
18773
  ] });
19110
18774
  }
19111
- return /* @__PURE__ */ jsx6(defaults.fields.SchemaField, { ...props });
18775
+ return /* @__PURE__ */ jsx3(defaults.fields.SchemaField, { ...props });
19112
18776
  }
19113
18777
  function ConfigFieldTemplate(props) {
19114
18778
  const pointer = pointerOf(
19115
18779
  originalConfigPath(props.fieldPathId.path, props.registry.formContext.removed)
19116
18780
  );
19117
18781
  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,
18782
+ props.displayLabel ? /* @__PURE__ */ jsx3("label", { htmlFor: props.id, "data-required": props.required, children: props.label }) : null,
19119
18783
  props.displayLabel ? props.description : null,
19120
18784
  props.children,
19121
18785
  props.help,
19122
- props.registry.formContext.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx6("p", { role: "alert", children: error.message }, error.message))
18786
+ props.registry.formContext.errors.filter((error) => error.path === pointer).map((error) => /* @__PURE__ */ jsx3("p", { role: "alert", children: error.message }, error.message))
19123
18787
  ] });
19124
18788
  }
19125
18789
  function ConfigArrayItem(props) {
19126
18790
  const { buttonsProps: buttons, registry } = props;
19127
18791
  return /* @__PURE__ */ jsxs2("div", { className: "rjsf-array-item", children: [
19128
18792
  props.children,
19129
- buttons.hasRemove ? /* @__PURE__ */ jsx6(
18793
+ buttons.hasRemove ? /* @__PURE__ */ jsx3(
19130
18794
  "button",
19131
18795
  {
19132
18796
  type: "button",
@@ -19141,7 +18805,7 @@ function ConfigArrayItem(props) {
19141
18805
  if (previous !== void 0) registry.formContext.removed.add(pointerOf(path));
19142
18806
  buttons.onRemoveItem(event);
19143
18807
  },
19144
- children: /* @__PURE__ */ jsx6(Trash2, { size: 14 })
18808
+ children: /* @__PURE__ */ jsx3(Trash2, { size: 14 })
19145
18809
  }
19146
18810
  ) : null
19147
18811
  ] });
@@ -19154,12 +18818,12 @@ function SessionPluginConfigForm({
19154
18818
  onSubmit,
19155
18819
  onCancel
19156
18820
  }) {
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(() => {
18821
+ const [initial] = useState10(() => createConfigDraft(config));
18822
+ const [values, setValues] = useState10(initial.values);
18823
+ const [removed] = useState10(() => /* @__PURE__ */ new Set());
18824
+ const [draftFailure, setDraftFailure] = useState10(null);
18825
+ const support = useMemo8(() => formSupport(config.schema), [config.schema]);
18826
+ const schema = useMemo8(() => {
19163
18827
  try {
19164
18828
  return config.schema ? presentationSchema(config.schema) : null;
19165
18829
  } catch {
@@ -19176,11 +18840,11 @@ function SessionPluginConfigForm({
19176
18840
  };
19177
18841
  if (!schema || support)
19178
18842
  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" })
18843
+ /* @__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" }),
18844
+ /* @__PURE__ */ jsx3("button", { type: "button", onClick: onCancel, children: "\u5173\u95ED" })
19181
18845
  ] });
19182
18846
  return /* @__PURE__ */ jsxs2("div", { className: "blade-plugin-config text-xs", children: [
19183
- /* @__PURE__ */ jsx6("style", { children: `
18847
+ /* @__PURE__ */ jsx3("style", { children: `
19184
18848
  .blade-plugin-config .rjsf-field, .blade-plugin-config fieldset { min-width:0; margin:0 0 10px; padding:0; border:0 }
19185
18849
  .blade-plugin-config label, .blade-plugin-config legend { display:block; font-size:12px; font-weight:500; overflow-wrap:anywhere; margin-bottom:4px }
19186
18850
  .blade-plugin-config label[data-required=true]::after { content:' *'; color:hsl(var(--destructive)) }
@@ -19193,8 +18857,8 @@ function SessionPluginConfigForm({
19193
18857
  .blade-plugin-config button:disabled { opacity:.5 }
19194
18858
  .blade-plugin-config .control-label { display:block }
19195
18859
  ` }),
19196
- failure || draftFailure ? /* @__PURE__ */ jsx6("p", { role: "alert", children: failure ?? draftFailure }) : null,
19197
- /* @__PURE__ */ jsx6(
18860
+ failure || draftFailure ? /* @__PURE__ */ jsx3("p", { role: "alert", children: failure ?? draftFailure }) : null,
18861
+ /* @__PURE__ */ jsx3(
19198
18862
  Form,
19199
18863
  {
19200
18864
  schema,
@@ -19208,7 +18872,7 @@ function SessionPluginConfigForm({
19208
18872
  MultiSchemaFieldTemplate: ConfigMultiSchemaField,
19209
18873
  ButtonTemplates: {
19210
18874
  ...defaults.templates.ButtonTemplates,
19211
- AddButton: (props) => /* @__PURE__ */ jsx6(
18875
+ AddButton: (props) => /* @__PURE__ */ jsx3(
19212
18876
  "button",
19213
18877
  {
19214
18878
  type: "button",
@@ -19216,7 +18880,7 @@ function SessionPluginConfigForm({
19216
18880
  "aria-label": "\u6DFB\u52A0\u4E00\u9879",
19217
18881
  disabled: props.disabled,
19218
18882
  onClick: props.onClick,
19219
- children: /* @__PURE__ */ jsx6(Plus, { size: 14 })
18883
+ children: /* @__PURE__ */ jsx3(Plus, { size: 14 })
19220
18884
  }
19221
18885
  )
19222
18886
  }
@@ -19258,8 +18922,8 @@ function SessionPluginConfigForm({
19258
18922
  }
19259
18923
  },
19260
18924
  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" })
18925
+ /* @__PURE__ */ jsx3("button", { type: "button", onClick: onCancel, children: "\u53D6\u6D88" }),
18926
+ /* @__PURE__ */ jsx3("button", { type: "submit", disabled: submitting, children: submitting ? "\u4FDD\u5B58\u4E2D\u2026" : "\u4FDD\u5B58" })
19263
18927
  ] })
19264
18928
  }
19265
18929
  )
@@ -19267,8 +18931,8 @@ function SessionPluginConfigForm({
19267
18931
  }
19268
18932
 
19269
18933
  // src/components/SessionPluginIcon.tsx
19270
- import { useEffect as useEffect7, useState as useState12 } from "react";
19271
- import { jsx as jsx7 } from "react/jsx-runtime";
18934
+ import { useEffect as useEffect6, useState as useState11 } from "react";
18935
+ import { jsx as jsx4 } from "react/jsx-runtime";
19272
18936
  function sessionPluginLabel(plugin) {
19273
18937
  const display = typeof plugin.display_name === "string" ? plugin.display_name.trim() : "";
19274
18938
  return display || plugin.name;
@@ -19293,9 +18957,9 @@ function iconBlob(client, sessionId, name, token) {
19293
18957
  return pending;
19294
18958
  }
19295
18959
  function SessionPluginIcon({ client, sessionId, plugin, size: size4 = 20, shape = "rounded", className }) {
19296
- const [url, setUrl] = useState12(null);
18960
+ const [url, setUrl] = useState11(null);
19297
18961
  const token = plugin.icon;
19298
- useEffect7(() => {
18962
+ useEffect6(() => {
19299
18963
  setUrl(null);
19300
18964
  if (!token) return;
19301
18965
  let alive = true;
@@ -19313,14 +18977,14 @@ function SessionPluginIcon({ client, sessionId, plugin, size: size4 = 20, shape
19313
18977
  const frame = `flex shrink-0 items-center justify-center overflow-hidden ${shape === "circle" ? "rounded-full" : "rounded"} ${className ?? ""}`;
19314
18978
  const frameStyle = { width: size4, height: size4 };
19315
18979
  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) }) });
18980
+ 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
18981
  }
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) }) });
18982
+ 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
18983
  }
19320
18984
 
19321
18985
  // 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";
18986
+ import { useEffect as useEffect7, useRef as useRef7, useState as useState12 } from "react";
18987
+ import { Fragment as Fragment3, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
19324
18988
  async function readFailure(error) {
19325
18989
  const response = error?.response;
19326
18990
  if (!response || typeof response.json !== "function") {
@@ -19347,7 +19011,7 @@ function SessionPluginConfigDialog({
19347
19011
  plugin,
19348
19012
  ...props
19349
19013
  }) {
19350
- return /* @__PURE__ */ jsx8(
19014
+ return /* @__PURE__ */ jsx5(
19351
19015
  ConfigDialogState,
19352
19016
  {
19353
19017
  client,
@@ -19365,41 +19029,66 @@ function ConfigDialogState({
19365
19029
  onSaved,
19366
19030
  onClose
19367
19031
  }) {
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(() => {
19032
+ const [host, setHost] = useState12(null);
19033
+ const [restarting, setRestarting] = useState12(false);
19034
+ const [scope, setScope] = useState12("personal");
19035
+ const waitingForHost = host?.state === "starting" || host?.state === "updating";
19036
+ useEffect7(() => {
19037
+ if (!waitingForHost) return;
19038
+ const abort = new AbortController();
19039
+ let timer;
19040
+ const refresh = async () => {
19041
+ try {
19042
+ const next = await client.sessions.getSessionPluginConfig(sessionId, plugin.name, { signal: abort.signal }, scope);
19043
+ if (!abort.signal.aborted) setHost(next.host ?? null);
19044
+ } catch {
19045
+ }
19046
+ if (!abort.signal.aborted) timer = setTimeout(refresh, 2e3);
19047
+ };
19048
+ timer = setTimeout(refresh, 2e3);
19049
+ return () => {
19050
+ abort.abort();
19051
+ clearTimeout(timer);
19052
+ };
19053
+ }, [client, sessionId, plugin.name, scope, waitingForHost]);
19054
+ const [canConfigureGlobal, setCanConfigureGlobal] = useState12(false);
19055
+ const [config, setConfig] = useState12(null);
19056
+ const [loading, setLoading] = useState12(true);
19057
+ const [loadFailure, setLoadFailure] = useState12(null);
19058
+ const [saving, setSaving] = useState12(false);
19059
+ const [failure, setFailure] = useState12(null);
19060
+ const [fieldErrors, setFieldErrors] = useState12([]);
19061
+ const [formVersion, setFormVersion] = useState12(0);
19062
+ const alive = useRef7(true);
19063
+ const generation2 = useRef7(0);
19064
+ const dialog = useRef7(null);
19065
+ useEffect7(() => {
19379
19066
  const element = dialog.current;
19380
19067
  if (!element || element.open) return;
19381
19068
  if (typeof element.showModal === "function") element.showModal();
19382
19069
  else element.setAttribute("open", "");
19383
19070
  }, []);
19384
19071
  const load = async () => {
19385
- const current = ++generation.current;
19072
+ const current = ++generation2.current;
19386
19073
  setLoading(true);
19387
19074
  setLoadFailure(null);
19388
19075
  try {
19389
- const { config: state } = await client.sessions.getSessionPluginConfig(sessionId, plugin.name);
19390
- if (!alive.current || generation.current !== current) return;
19076
+ const { config: state, can_configure_global, host: hostState } = await client.sessions.getSessionPluginConfig(sessionId, plugin.name, void 0, scope);
19077
+ if (!alive.current || generation2.current !== current) return;
19078
+ setCanConfigureGlobal(can_configure_global ?? false);
19079
+ setHost(hostState ?? null);
19391
19080
  setConfig(state);
19392
19081
  setFormVersion((value) => value + 1);
19393
19082
  } catch (error) {
19394
- if (!alive.current || generation.current !== current) return;
19083
+ if (!alive.current || generation2.current !== current) return;
19395
19084
  const detail = await readFailure(error);
19396
- if (!alive.current || generation.current !== current) return;
19085
+ if (!alive.current || generation2.current !== current) return;
19397
19086
  setLoadFailure(detail.message ?? "\u914D\u7F6E\u6682\u4E0D\u53EF\u7528");
19398
19087
  } finally {
19399
- if (alive.current && generation.current === current) setLoading(false);
19088
+ if (alive.current && generation2.current === current) setLoading(false);
19400
19089
  }
19401
19090
  };
19402
- useEffect8(() => {
19091
+ useEffect7(() => {
19403
19092
  alive.current = true;
19404
19093
  setConfig(null);
19405
19094
  setFailure(null);
@@ -19407,12 +19096,12 @@ function ConfigDialogState({
19407
19096
  void load();
19408
19097
  return () => {
19409
19098
  alive.current = false;
19410
- generation.current++;
19099
+ generation2.current++;
19411
19100
  };
19412
- }, [client, sessionId, plugin.name]);
19101
+ }, [client, sessionId, plugin.name, scope]);
19413
19102
  const save = async (draft) => {
19414
19103
  if (!config) return;
19415
- const current = generation.current;
19104
+ const current = generation2.current;
19416
19105
  setSaving(true);
19417
19106
  setFailure(null);
19418
19107
  setFieldErrors([]);
@@ -19424,16 +19113,18 @@ function ConfigDialogState({
19424
19113
  expected_revision: config.revision,
19425
19114
  set: draft.set,
19426
19115
  remove: draft.remove
19427
- }
19116
+ },
19117
+ void 0,
19118
+ scope
19428
19119
  );
19429
- if (!alive.current || generation.current !== current) return;
19120
+ if (!alive.current || generation2.current !== current) return;
19430
19121
  setConfig(state);
19431
19122
  setFormVersion((value) => value + 1);
19432
- onSaved?.(state);
19123
+ if (scope === "personal") onSaved?.(state);
19433
19124
  } catch (error) {
19434
- if (!alive.current || generation.current !== current) return;
19125
+ if (!alive.current || generation2.current !== current) return;
19435
19126
  const detail = await readFailure(error);
19436
- if (!alive.current || generation.current !== current) return;
19127
+ if (!alive.current || generation2.current !== current) return;
19437
19128
  setFailure(detail.message ?? "\u914D\u7F6E\u672A\u4FDD\u5B58\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");
19438
19129
  setFieldErrors(detail.errors ?? []);
19439
19130
  if (detail.code === "plugin_config_conflict") await load();
@@ -19442,7 +19133,7 @@ function ConfigDialogState({
19442
19133
  }
19443
19134
  };
19444
19135
  return /* @__PURE__ */ jsxs3(Fragment3, { children: [
19445
- /* @__PURE__ */ jsx8("style", { children: ".blade-plugin-dialog::backdrop { background: rgb(0 0 0 / 40%); }" }),
19136
+ /* @__PURE__ */ jsx5("style", { children: ".blade-plugin-dialog::backdrop { background: rgb(0 0 0 / 40%); }" }),
19446
19137
  /* @__PURE__ */ jsxs3(
19447
19138
  "dialog",
19448
19139
  {
@@ -19469,8 +19160,8 @@ function ConfigDialogState({
19469
19160
  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
19161
  children: [
19471
19162
  /* @__PURE__ */ jsxs3("div", { className: "mb-3 flex items-center gap-2", children: [
19472
- /* @__PURE__ */ jsx8(SessionPluginIcon, { client, sessionId, plugin }),
19473
- /* @__PURE__ */ jsx8(
19163
+ /* @__PURE__ */ jsx5(SessionPluginIcon, { client, sessionId, plugin }),
19164
+ /* @__PURE__ */ jsx5(
19474
19165
  "span",
19475
19166
  {
19476
19167
  className: "min-w-0 flex-1 truncate text-sm font-medium",
@@ -19478,7 +19169,7 @@ function ConfigDialogState({
19478
19169
  children: sessionPluginLabel(plugin)
19479
19170
  }
19480
19171
  ),
19481
- /* @__PURE__ */ jsx8(
19172
+ /* @__PURE__ */ jsx5(
19482
19173
  "button",
19483
19174
  {
19484
19175
  type: "button",
@@ -19489,10 +19180,44 @@ function ConfigDialogState({
19489
19180
  }
19490
19181
  )
19491
19182
  ] }),
19492
- loading ? /* @__PURE__ */ jsx8("p", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6B63\u5728\u8BFB\u53D6\u914D\u7F6E\u2026" }) : null,
19183
+ canConfigureGlobal ? /* @__PURE__ */ jsxs3("div", { className: "mb-3 flex gap-2 text-xs", children: [
19184
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: saving, "aria-pressed": scope === "personal", onClick: () => setScope("personal"), children: "\u6211\u7684\u767B\u5F55" }),
19185
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: saving, "aria-pressed": scope === "global", onClick: () => setScope("global"), children: "\u7EC4\u7EC7\u5171\u4EAB\u914D\u7F6E" })
19186
+ ] }) : null,
19187
+ host ? /* @__PURE__ */ jsxs3("div", { className: "mb-3 space-y-1 text-xs", children: [
19188
+ /* @__PURE__ */ jsxs3("p", { children: [
19189
+ "\u670D\u52A1\uFF1A",
19190
+ host.reason,
19191
+ " \xB7 \u5DF2\u6062\u590D ",
19192
+ host.restarts,
19193
+ " \u6B21"
19194
+ ] }),
19195
+ canConfigureGlobal ? /* @__PURE__ */ jsxs3(Fragment3, { children: [
19196
+ /* @__PURE__ */ jsxs3("p", { className: "break-all text-[hsl(var(--muted-foreground))]", children: [
19197
+ "\u5305\u6458\u8981\uFF1A",
19198
+ host.digest,
19199
+ " \xB7 \u914D\u7F6E\uFF1A",
19200
+ host.revision
19201
+ ] }),
19202
+ /* @__PURE__ */ jsx5("button", { type: "button", disabled: restarting || saving, onClick: () => {
19203
+ setRestarting(true);
19204
+ 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(() => {
19205
+ if (alive.current) setRestarting(false);
19206
+ });
19207
+ }, children: restarting ? "\u6B63\u5728\u91CD\u542F\u2026" : "\u91CD\u542F\u670D\u52A1" }),
19208
+ host.recent?.length ? /* @__PURE__ */ jsxs3("details", { children: [
19209
+ /* @__PURE__ */ jsx5("summary", { children: "\u6700\u8FD1\u6D3B\u52A8" }),
19210
+ host.recent.map((line, index2) => /* @__PURE__ */ jsx5("p", { children: line }, `${index2}-${line}`))
19211
+ ] }) : null
19212
+ ] }) : null
19213
+ ] }) : null,
19214
+ 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,
19215
+ 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,
19216
+ 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,
19217
+ loading ? /* @__PURE__ */ jsx5("p", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: "\u6B63\u5728\u8BFB\u53D6\u914D\u7F6E\u2026" }) : null,
19493
19218
  loadFailure ? /* @__PURE__ */ jsxs3("div", { className: "space-y-2 text-xs", children: [
19494
- /* @__PURE__ */ jsx8("p", { children: loadFailure }),
19495
- /* @__PURE__ */ jsx8(
19219
+ /* @__PURE__ */ jsx5("p", { children: loadFailure }),
19220
+ /* @__PURE__ */ jsx5(
19496
19221
  "button",
19497
19222
  {
19498
19223
  type: "button",
@@ -19502,7 +19227,7 @@ function ConfigDialogState({
19502
19227
  }
19503
19228
  )
19504
19229
  ] }) : null,
19505
- config && !loading ? /* @__PURE__ */ jsx8(
19230
+ config && !loading ? /* @__PURE__ */ jsx5(
19506
19231
  SessionPluginConfigForm,
19507
19232
  {
19508
19233
  config,
@@ -19521,7 +19246,7 @@ function ConfigDialogState({
19521
19246
  }
19522
19247
 
19523
19248
  // src/components/PluginConnectorList.tsx
19524
- import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
19249
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
19525
19250
  function PluginSwitch({
19526
19251
  label,
19527
19252
  checked,
@@ -19531,7 +19256,7 @@ function PluginSwitch({
19531
19256
  draft = false,
19532
19257
  onToggle
19533
19258
  }) {
19534
- return /* @__PURE__ */ jsx9(
19259
+ return /* @__PURE__ */ jsx6(
19535
19260
  "button",
19536
19261
  {
19537
19262
  type: "button",
@@ -19541,12 +19266,12 @@ function PluginSwitch({
19541
19266
  disabled,
19542
19267
  onClick: () => onToggle(!checked),
19543
19268
  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(
19269
+ children: /* @__PURE__ */ jsx6(
19545
19270
  "span",
19546
19271
  {
19547
19272
  "aria-hidden": "true",
19548
19273
  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
19274
+ children: pending ? /* @__PURE__ */ jsx6(LoaderCircle, { size: 9, className: "animate-spin text-[hsl(var(--muted-foreground))]" }) : null
19550
19275
  }
19551
19276
  )
19552
19277
  }
@@ -19572,8 +19297,8 @@ function PluginConnectorList({
19572
19297
  }) {
19573
19298
  const configuringItem = configuring ? items.find((item) => item.name === configuring.name) ?? null : null;
19574
19299
  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,
19300
+ disabledReason ? /* @__PURE__ */ jsx6("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: disabledReason }) : null,
19301
+ items.length === 0 ? /* @__PURE__ */ jsx6("div", { className: "px-3 py-1.5 text-[11px] text-[hsl(var(--muted-foreground))]", children: unavailableText ?? emptyText }) : null,
19577
19302
  items.map((item) => {
19578
19303
  const label = sessionPluginLabel(item);
19579
19304
  const actionable = !disabledReason && item.installed !== false || item.active;
@@ -19581,7 +19306,7 @@ function PluginConnectorList({
19581
19306
  const checked = item.active;
19582
19307
  return /* @__PURE__ */ jsxs4("div", { className: "group px-3 py-1", children: [
19583
19308
  /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
19584
- /* @__PURE__ */ jsx9(
19309
+ /* @__PURE__ */ jsx6(
19585
19310
  SessionPluginIcon,
19586
19311
  {
19587
19312
  client,
@@ -19589,8 +19314,9 @@ function PluginConnectorList({
19589
19314
  plugin: item
19590
19315
  }
19591
19316
  ),
19592
- /* @__PURE__ */ jsx9("span", { className: "min-w-0 flex-1 truncate text-[11px]", title: label, children: label }),
19593
- !draft && item.config === "configured" ? /* @__PURE__ */ jsx9(
19317
+ /* @__PURE__ */ jsx6("span", { className: "min-w-0 flex-1 truncate text-[11px]", title: label, children: label }),
19318
+ 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,
19319
+ !draft && item.config === "configured" ? /* @__PURE__ */ jsx6(
19594
19320
  "button",
19595
19321
  {
19596
19322
  type: "button",
@@ -19601,7 +19327,7 @@ function PluginConnectorList({
19601
19327
  children: "\u66F4\u65B0\u914D\u7F6E"
19602
19328
  }
19603
19329
  ) : null,
19604
- !draft && (item.config === "required" || item.config === "error") ? /* @__PURE__ */ jsx9(
19330
+ !draft && (item.config === "required" || item.config === "error") ? /* @__PURE__ */ jsx6(
19605
19331
  "button",
19606
19332
  {
19607
19333
  type: "button",
@@ -19612,7 +19338,7 @@ function PluginConnectorList({
19612
19338
  children: "\u586B\u5199\u914D\u7F6E"
19613
19339
  }
19614
19340
  ) : null,
19615
- /* @__PURE__ */ jsx9(
19341
+ /* @__PURE__ */ jsx6(
19616
19342
  PluginSwitch,
19617
19343
  {
19618
19344
  label,
@@ -19625,8 +19351,8 @@ function PluginConnectorList({
19625
19351
  )
19626
19352
  ] }),
19627
19353
  !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(
19354
+ /* @__PURE__ */ jsx6("span", { children: item.reason || "\u63D2\u4EF6\u6682\u4E0D\u53EF\u7528" }),
19355
+ /* @__PURE__ */ jsx6(
19630
19356
  "button",
19631
19357
  {
19632
19358
  type: "button",
@@ -19639,8 +19365,8 @@ function PluginConnectorList({
19639
19365
  ] }) : null
19640
19366
  ] }, item.name);
19641
19367
  }),
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(
19368
+ 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,
19369
+ configuring && configuringItem && sessionId ? /* @__PURE__ */ jsx6(
19644
19370
  SessionPluginConfigDialog,
19645
19371
  {
19646
19372
  client,
@@ -19661,6 +19387,7 @@ function catalogToConnectorItems(catalog) {
19661
19387
  icon: entry.icon,
19662
19388
  iconSource: "account",
19663
19389
  installed: entry.installed,
19390
+ auth_status: entry.auth_status,
19664
19391
  active: false,
19665
19392
  status: "not_prepared",
19666
19393
  projected: false
@@ -19690,6 +19417,7 @@ function mergeConnectorItems(sessionPlugins, catalog) {
19690
19417
  icon: entry.icon,
19691
19418
  iconSource: "account",
19692
19419
  installed: entry.installed,
19420
+ auth_status: entry.auth_status,
19693
19421
  active: plugin.active,
19694
19422
  status: plugin.status,
19695
19423
  reason: plugin.reason,
@@ -19707,29 +19435,29 @@ function filterConnectorItems(items, query) {
19707
19435
  }
19708
19436
 
19709
19437
  // 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";
19438
+ import { useCallback as useCallback19, useEffect as useEffect8, useMemo as useMemo9, useRef as useRef8, useState as useState13 } from "react";
19711
19439
  function useSessionPluginActivation({
19712
19440
  client,
19713
19441
  sessionId,
19714
19442
  onChange
19715
19443
  }) {
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);
19444
+ const [plugins, setPlugins] = useState13([]);
19445
+ const [catalog, setCatalog] = useState13(null);
19446
+ const [loading, setLoading] = useState13(false);
19447
+ const [listError, setListError] = useState13(false);
19448
+ const [mutationError, setMutationError] = useState13(false);
19449
+ const [inFlight, setInFlight] = useState13({});
19450
+ const [configuring, setConfiguring] = useState13(null);
19451
+ const alive = useRef8(true);
19452
+ const generation2 = useRef8(0);
19453
+ const mutationGenerations = useRef8(/* @__PURE__ */ new Map());
19454
+ const desiredActivations = useRef8(/* @__PURE__ */ new Map());
19455
+ const pendingMutations = useRef8(/* @__PURE__ */ new Map());
19456
+ const submittedActivations = useRef8(/* @__PURE__ */ new Set());
19457
+ const serverActive = useRef8(/* @__PURE__ */ new Set());
19458
+ const lifetime = useRef8(0);
19459
+ const request = useRef8(null);
19460
+ const [desiredVersion, setDesiredVersion] = useState13(0);
19733
19461
  const setDesired = useCallback19((name, value) => {
19734
19462
  if (value === null) {
19735
19463
  if (!desiredActivations.current.delete(name)) return;
@@ -19739,7 +19467,7 @@ function useSessionPluginActivation({
19739
19467
  }
19740
19468
  setDesiredVersion((version) => version + 1);
19741
19469
  }, []);
19742
- const items = useMemo11(() => {
19470
+ const items = useMemo9(() => {
19743
19471
  void desiredVersion;
19744
19472
  const merged = mergeConnectorItems(plugins, catalog);
19745
19473
  return merged.map((item) => {
@@ -19759,7 +19487,7 @@ function useSessionPluginActivation({
19759
19487
  return rest;
19760
19488
  });
19761
19489
  }, []);
19762
- useEffect9(() => {
19490
+ useEffect8(() => {
19763
19491
  alive.current = true;
19764
19492
  setPlugins([]);
19765
19493
  setCatalog(null);
@@ -19775,7 +19503,7 @@ function useSessionPluginActivation({
19775
19503
  return () => {
19776
19504
  alive.current = false;
19777
19505
  lifetime.current++;
19778
- generation.current++;
19506
+ generation2.current++;
19779
19507
  request.current?.abort();
19780
19508
  };
19781
19509
  }, [client]);
@@ -19784,7 +19512,7 @@ function useSessionPluginActivation({
19784
19512
  request.current?.abort();
19785
19513
  const controller = new AbortController();
19786
19514
  request.current = controller;
19787
- const current = ++generation.current;
19515
+ const current = ++generation2.current;
19788
19516
  setLoading(true);
19789
19517
  setListError(false);
19790
19518
  try {
@@ -19802,7 +19530,7 @@ function useSessionPluginActivation({
19802
19530
  }
19803
19531
  })
19804
19532
  );
19805
- if (alive.current && current === generation.current) {
19533
+ if (alive.current && current === generation2.current) {
19806
19534
  serverActive.current = new Set(withConfig.filter((item) => item.active).map((item) => item.name));
19807
19535
  setPlugins(withConfig.map((item) => {
19808
19536
  const desired = desiredActivations.current.get(item.name);
@@ -19810,9 +19538,9 @@ function useSessionPluginActivation({
19810
19538
  }));
19811
19539
  }
19812
19540
  } catch {
19813
- if (alive.current && current === generation.current && !controller.signal.aborted) setListError(true);
19541
+ if (alive.current && current === generation2.current && !controller.signal.aborted) setListError(true);
19814
19542
  } finally {
19815
- if (alive.current && current === generation.current) setLoading(false);
19543
+ if (alive.current && current === generation2.current) setLoading(false);
19816
19544
  }
19817
19545
  }, [client, sessionId]);
19818
19546
  const loadCatalog = useCallback19(async () => {
@@ -19874,112 +19602,330 @@ function useSessionPluginActivation({
19874
19602
  void load();
19875
19603
  }
19876
19604
  }
19877
- },
19878
- [client, finish, load, markInFlight, onChange, sessionId, setDesired]
19605
+ },
19606
+ [client, finish, load, markInFlight, onChange, sessionId, setDesired]
19607
+ );
19608
+ const enable = useCallback19(async (name) => {
19609
+ if (!alive.current) return;
19610
+ const startedAt = lifetime.current;
19611
+ const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19612
+ mutationGenerations.current.set(name, mutation);
19613
+ pendingMutations.current.set(name, mutation);
19614
+ setDesired(name, true);
19615
+ setMutationError(false);
19616
+ markInFlight(name, true);
19617
+ request.current?.abort();
19618
+ generation2.current++;
19619
+ setLoading(false);
19620
+ let state;
19621
+ try {
19622
+ const result = await client.sessions.prepareSessionPluginConfig(sessionId, name);
19623
+ if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19624
+ state = result.config;
19625
+ } catch {
19626
+ if (!alive.current || startedAt !== lifetime.current || mutation !== mutationGenerations.current.get(name)) return;
19627
+ abandon(name);
19628
+ setMutationError(true);
19629
+ return;
19630
+ }
19631
+ if (state.state === "required") {
19632
+ pendingMutations.current.delete(name);
19633
+ markInFlight(name, false);
19634
+ setConfiguring({ name, pendingActivation: true });
19635
+ return;
19636
+ }
19637
+ if (state.state !== "configured" && state.state !== "not_required") {
19638
+ abandon(name);
19639
+ setMutationError(true);
19640
+ return;
19641
+ }
19642
+ setPlugins((current) => current.map((item) => item.name === name ? { ...item, config: state.state } : item));
19643
+ await commitActivation(name, true, mutation, startedAt);
19644
+ }, [abandon, client, commitActivation, markInFlight, sessionId, setDesired]);
19645
+ const disable = useCallback19((name) => {
19646
+ const startedAt = lifetime.current;
19647
+ request.current?.abort();
19648
+ generation2.current++;
19649
+ setLoading(false);
19650
+ if (!submittedActivations.current.has(name) && !serverActive.current.has(name)) {
19651
+ abandon(name);
19652
+ return;
19653
+ }
19654
+ const mutation = (mutationGenerations.current.get(name) ?? 0) + 1;
19655
+ mutationGenerations.current.set(name, mutation);
19656
+ pendingMutations.current.set(name, mutation);
19657
+ setDesired(name, false);
19658
+ setMutationError(false);
19659
+ markInFlight(name, true);
19660
+ void commitActivation(name, false, mutation, startedAt);
19661
+ }, [abandon, commitActivation, markInFlight, setDesired]);
19662
+ const toggle = useCallback19((item, next) => {
19663
+ if (next) void enable(item.name);
19664
+ else disable(item.name);
19665
+ }, [disable, enable]);
19666
+ const retry = useCallback19((item) => {
19667
+ void enable(item.name);
19668
+ }, [enable]);
19669
+ const editConfig = useCallback19((item) => {
19670
+ setConfiguring({ name: item.name, pendingActivation: false });
19671
+ }, []);
19672
+ const onConfigSaved = useCallback19((state) => {
19673
+ const target = configuring;
19674
+ if (!target) return;
19675
+ setConfiguring(null);
19676
+ void loadCatalog();
19677
+ setPlugins((current) => current.map((item) => item.name === target.name ? { ...item, config: state.state } : item));
19678
+ if (!target.pendingActivation || state.state !== "configured") {
19679
+ void load();
19680
+ return;
19681
+ }
19682
+ const startedAt = lifetime.current;
19683
+ const mutation = (mutationGenerations.current.get(target.name) ?? 0) + 1;
19684
+ mutationGenerations.current.set(target.name, mutation);
19685
+ pendingMutations.current.set(target.name, mutation);
19686
+ setDesired(target.name, true);
19687
+ markInFlight(target.name, true);
19688
+ void commitActivation(target.name, true, mutation, startedAt);
19689
+ }, [commitActivation, configuring, load, loadCatalog, markInFlight, setDesired]);
19690
+ const onConfigClose = useCallback19(() => {
19691
+ const target = configuring;
19692
+ if (!target) return;
19693
+ setConfiguring(null);
19694
+ if (target.pendingActivation) abandon(target.name);
19695
+ else void load();
19696
+ }, [abandon, configuring, load]);
19697
+ return {
19698
+ items,
19699
+ loading,
19700
+ listError,
19701
+ mutationError,
19702
+ inFlight,
19703
+ busy: Object.keys(inFlight).length > 0,
19704
+ configuring,
19705
+ reload,
19706
+ toggle,
19707
+ retry,
19708
+ editConfig,
19709
+ onConfigSaved,
19710
+ onConfigClose
19711
+ };
19712
+ }
19713
+
19714
+ // src/chat/runtime/session-source.tsx
19715
+ import { createInitialSessionState } from "@blade-hq/agent-client/internal";
19716
+ import {
19717
+ createContext as createContext3,
19718
+ useContext as useContext3,
19719
+ useEffect as useEffect9,
19720
+ useLayoutEffect,
19721
+ useMemo as useMemo10,
19722
+ useRef as useRef9,
19723
+ useState as useState14,
19724
+ useSyncExternalStore
19725
+ } from "react";
19726
+ import { jsx as jsx7 } from "react/jsx-runtime";
19727
+ var EMPTY_SOURCE = {
19728
+ subscribe: () => () => {
19729
+ },
19730
+ getSession: () => void 0,
19731
+ isHistoryLoading: () => false,
19732
+ planRevealRevision: () => 0
19733
+ };
19734
+ var SessionSourceContext = createContext3(EMPTY_SOURCE);
19735
+ function SessionSourceProvider({ source, children }) {
19736
+ return /* @__PURE__ */ jsx7(SessionSourceContext.Provider, { value: source, children });
19737
+ }
19738
+ function useSessionSource() {
19739
+ return useContext3(SessionSourceContext);
19740
+ }
19741
+ var SingleSessionSource = class {
19742
+ session = null;
19743
+ loading = false;
19744
+ listeners = /* @__PURE__ */ new Set();
19745
+ revisions = /* @__PURE__ */ new Map();
19746
+ subscribe = (listener) => {
19747
+ this.listeners.add(listener);
19748
+ return () => {
19749
+ this.listeners.delete(listener);
19750
+ };
19751
+ };
19752
+ getSession = (sessionId) => {
19753
+ const current = this.session;
19754
+ return current && (!sessionId || current.sessionId === sessionId) ? current : void 0;
19755
+ };
19756
+ isHistoryLoading = (sessionId) => {
19757
+ if (!this.session) return this.loading;
19758
+ return (!sessionId || this.session.sessionId === sessionId) && this.loading;
19759
+ };
19760
+ planRevealRevision = (sessionId) => sessionId ? this.revisions.get(sessionId) ?? 0 : 0;
19761
+ update(session, loading) {
19762
+ if (this.session === session && this.loading === loading) return;
19763
+ this.session = session;
19764
+ this.loading = loading;
19765
+ this.notify();
19766
+ }
19767
+ /** 只认实时成功的根回路 update_plan:历史加载与断线补数不算「新揭示」。 */
19768
+ watchPlan(session) {
19769
+ return session.on("toolResult", ({ toolCall, turn, source }) => {
19770
+ if (source === "reconnect_replay" || (turn.loop_id || "root") !== "root" || toolCall.status !== "done" || !isPlanUpdateTool(toolCall) || !parsePlanUpdate(toolCall.arguments)) {
19771
+ return;
19772
+ }
19773
+ this.revisions.set(session.sessionId, (this.revisions.get(session.sessionId) ?? 0) + 1);
19774
+ this.notify();
19775
+ });
19776
+ }
19777
+ notify() {
19778
+ for (const listener of [...this.listeners]) listener();
19779
+ }
19780
+ };
19781
+ function useSingleSessionSource(session, loading) {
19782
+ const [source] = useState14(() => new SingleSessionSource());
19783
+ useLayoutEffect(() => {
19784
+ source.update(session, loading);
19785
+ }, [source, session, loading]);
19786
+ useEffect9(() => session ? source.watchPlan(session) : void 0, [source, session]);
19787
+ return source;
19788
+ }
19789
+ var EMPTY_STATE = createInitialSessionState("");
19790
+ var noopSubscribe = () => () => {
19791
+ };
19792
+ function useSessionHandle(sessionId) {
19793
+ const source = useSessionSource();
19794
+ return useSyncExternalStore(
19795
+ source.subscribe,
19796
+ () => source.getSession(sessionId) ?? null,
19797
+ () => source.getSession(sessionId) ?? null
19798
+ );
19799
+ }
19800
+ function useSessionState(sessionId, selector) {
19801
+ const session = useSessionHandle(sessionId);
19802
+ const selectorRef = useRef9(selector);
19803
+ selectorRef.current = selector;
19804
+ const store = useMemo10(() => {
19805
+ let lastState = null;
19806
+ let lastSelector = null;
19807
+ let lastSelected;
19808
+ const getSnapshot = () => {
19809
+ const state = session ? session.getState() : EMPTY_STATE;
19810
+ const current = selectorRef.current;
19811
+ if (state !== lastState || current !== lastSelector) {
19812
+ const next = current(state);
19813
+ if (!(lastState !== null && Object.is(next, lastSelected))) lastSelected = next;
19814
+ lastState = state;
19815
+ lastSelector = current;
19816
+ }
19817
+ return lastSelected;
19818
+ };
19819
+ return {
19820
+ subscribe: session ? (listener) => session.subscribe(listener) : noopSubscribe,
19821
+ getSnapshot
19822
+ };
19823
+ }, [session]);
19824
+ return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
19825
+ }
19826
+ function useIsSessionHistoryLoading(sessionId) {
19827
+ const source = useSessionSource();
19828
+ return useSyncExternalStore(
19829
+ source.subscribe,
19830
+ () => source.isHistoryLoading(sessionId),
19831
+ () => source.isHistoryLoading(sessionId)
19832
+ );
19833
+ }
19834
+ function usePlanRevealRevision(sessionId) {
19835
+ const source = useSessionSource();
19836
+ return useSyncExternalStore(
19837
+ source.subscribe,
19838
+ () => source.planRevealRevision(sessionId),
19839
+ () => source.planRevealRevision(sessionId)
19840
+ );
19841
+ }
19842
+ var CurrentChatSessionContext = createContext3(null);
19843
+ function CurrentChatSessionProvider({ sessionId, children }) {
19844
+ return /* @__PURE__ */ jsx7(CurrentChatSessionContext.Provider, { value: sessionId, children });
19845
+ }
19846
+ function useCurrentChatSessionId() {
19847
+ return useContext3(CurrentChatSessionContext);
19848
+ }
19849
+
19850
+ // src/chat/runtime/environment.tsx
19851
+ import { createContext as createContext4, useContext as useContext4, useMemo as useMemo11 } from "react";
19852
+ import { jsx as jsx8 } from "react/jsx-runtime";
19853
+ var EMPTY_ENVIRONMENT = {};
19854
+ var ChatEnvironmentContext = createContext4(EMPTY_ENVIRONMENT);
19855
+ function ChatEnvironmentProvider({ value, children }) {
19856
+ return /* @__PURE__ */ jsx8(ChatEnvironmentContext.Provider, { value, children });
19857
+ }
19858
+ function useChatEnvironment() {
19859
+ return useContext4(ChatEnvironmentContext);
19860
+ }
19861
+ var NO_HIGHLIGHT = { highlightedHtml: null };
19862
+ function usePlainCode() {
19863
+ return NO_HIGHLIGHT;
19864
+ }
19865
+ function useHighlightedCode(code, language) {
19866
+ const use = useChatEnvironment().useHighlightedCode ?? usePlainCode;
19867
+ return use(code, language);
19868
+ }
19869
+ function useNoDetail() {
19870
+ return null;
19871
+ }
19872
+ function useChatSessionDetail(sessionId) {
19873
+ const use = useChatEnvironment().useSessionDetail ?? useNoDetail;
19874
+ return use(sessionId);
19875
+ }
19876
+ function useShowTodo() {
19877
+ return false;
19878
+ }
19879
+ function useHideTodo() {
19880
+ const use = useChatEnvironment().useHideTodo ?? useShowTodo;
19881
+ return use();
19882
+ }
19883
+ function useChatRenderMode() {
19884
+ return useChatEnvironment().renderMode ?? "normal";
19885
+ }
19886
+ function notifyChat(environment, kind, message, options) {
19887
+ if (environment.notify) environment.notify(kind, message, options);
19888
+ else if (kind === "error") console.error(message);
19889
+ }
19890
+ function useComposerBridge(sessionId) {
19891
+ const environment = useChatEnvironment();
19892
+ const session = useSessionHandle(sessionId);
19893
+ return useMemo11(
19894
+ () => ({
19895
+ appendText(text, separate = false) {
19896
+ if (!sessionId) return;
19897
+ if (environment.appendToComposer) environment.appendToComposer(sessionId, text, separate);
19898
+ else session?.insertText(separate ? `
19899
+
19900
+ ${text}` : text);
19901
+ },
19902
+ addContext(context) {
19903
+ if (!sessionId) return;
19904
+ if (environment.addComposerContext) environment.addComposerContext(sessionId, context);
19905
+ else session?.attach(context.label, context.content);
19906
+ }
19907
+ }),
19908
+ [environment, session, sessionId]
19879
19909
  );
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
- };
19910
+ }
19911
+ var NO_VIRTUAL_ITEMS = [];
19912
+ var NO_VIRTUALIZER = {
19913
+ getVirtualItems: () => NO_VIRTUAL_ITEMS,
19914
+ getTotalSize: () => 0,
19915
+ measureElement: () => {
19916
+ },
19917
+ scrollToIndex: () => {
19918
+ },
19919
+ getOffsetForIndex: () => void 0
19920
+ };
19921
+ function useNoVirtualizer() {
19922
+ return NO_VIRTUALIZER;
19923
+ }
19924
+ function useChatVirtualizer(options) {
19925
+ const injected = useChatEnvironment().useVirtualizer;
19926
+ const use = injected ?? useNoVirtualizer;
19927
+ const virtualizer = use(options);
19928
+ return { virtualizer, enabled: Boolean(injected) };
19983
19929
  }
19984
19930
 
19985
19931
  // src/chat/runtime/actions.ts
@@ -20010,7 +19956,9 @@ function sendToSession(session, message, mode, askUserAnswer, extras = {}) {
20010
19956
  model: extras.model,
20011
19957
  thinkingOverride: extras.thinkingOverride,
20012
19958
  reasoningLevel: extras.reasoningLevel,
20013
- kbIds: extras.kbIds,
19959
+ refs: extras.refs,
19960
+ contextAttachments: extras.contextAttachments,
19961
+ topicAssetRefs: extras.topicAssetRefs,
20014
19962
  whatif: extras.whatif,
20015
19963
  replayDecision: extras.replayDecision,
20016
19964
  queueWhenRunning: extras.queueWhenRunning
@@ -20088,13 +20036,13 @@ function useComposedRefs(...refs) {
20088
20036
 
20089
20037
  // ../../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
20038
  import * as React2 from "react";
20091
- import { jsx as jsx10 } from "react/jsx-runtime";
20039
+ import { jsx as jsx9 } from "react/jsx-runtime";
20092
20040
  function createContext22(rootComponentName, defaultContext) {
20093
20041
  const Context = React2.createContext(defaultContext);
20094
20042
  const Provider2 = (props) => {
20095
20043
  const { children, ...context } = props;
20096
20044
  const value = React2.useMemo(() => context, Object.values(context));
20097
- return /* @__PURE__ */ jsx10(Context.Provider, { value, children });
20045
+ return /* @__PURE__ */ jsx9(Context.Provider, { value, children });
20098
20046
  };
20099
20047
  Provider2.displayName = rootComponentName + "Provider";
20100
20048
  function useContext22(consumerName) {
@@ -20115,7 +20063,7 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
20115
20063
  const { scope, children, ...context } = props;
20116
20064
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
20117
20065
  const value = React2.useMemo(() => context, Object.values(context));
20118
- return /* @__PURE__ */ jsx10(Context.Provider, { value, children });
20066
+ return /* @__PURE__ */ jsx9(Context.Provider, { value, children });
20119
20067
  };
20120
20068
  Provider2.displayName = rootComponentName + "Provider";
20121
20069
  function useContext22(consumerName, scope) {
@@ -20172,7 +20120,7 @@ import * as ReactDOM from "react-dom";
20172
20120
 
20173
20121
  // ../../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
20122
  import * as React3 from "react";
20175
- import { Fragment as Fragment22, jsx as jsx11 } from "react/jsx-runtime";
20123
+ import { Fragment as Fragment22, jsx as jsx10 } from "react/jsx-runtime";
20176
20124
  // @__NO_SIDE_EFFECTS__
20177
20125
  function createSlot(ownerName) {
20178
20126
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -20190,9 +20138,9 @@ function createSlot(ownerName) {
20190
20138
  return child;
20191
20139
  }
20192
20140
  });
20193
- return /* @__PURE__ */ jsx11(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
20141
+ return /* @__PURE__ */ jsx10(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
20194
20142
  }
20195
- return /* @__PURE__ */ jsx11(SlotClone, { ...slotProps, ref: forwardedRef, children });
20143
+ return /* @__PURE__ */ jsx10(SlotClone, { ...slotProps, ref: forwardedRef, children });
20196
20144
  });
20197
20145
  Slot22.displayName = `${ownerName}.Slot`;
20198
20146
  return Slot22;
@@ -20218,7 +20166,7 @@ var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable");
20218
20166
  // @__NO_SIDE_EFFECTS__
20219
20167
  function createSlottable(ownerName) {
20220
20168
  const Slottable2 = ({ children }) => {
20221
- return /* @__PURE__ */ jsx11(Fragment22, { children });
20169
+ return /* @__PURE__ */ jsx10(Fragment22, { children });
20222
20170
  };
20223
20171
  Slottable2.displayName = `${ownerName}.Slottable`;
20224
20172
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -20266,7 +20214,7 @@ function getElementRef(element) {
20266
20214
  }
20267
20215
 
20268
20216
  // ../../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";
20217
+ import { jsx as jsx11 } from "react/jsx-runtime";
20270
20218
  var NODES = [
20271
20219
  "a",
20272
20220
  "button",
@@ -20294,7 +20242,7 @@ var Primitive = NODES.reduce((primitive, node) => {
20294
20242
  if (typeof window !== "undefined") {
20295
20243
  window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
20296
20244
  }
20297
- return /* @__PURE__ */ jsx12(Comp, { ...primitiveProps, ref: forwardedRef });
20245
+ return /* @__PURE__ */ jsx11(Comp, { ...primitiveProps, ref: forwardedRef });
20298
20246
  });
20299
20247
  Node2.displayName = `Primitive.${node}`;
20300
20248
  return { ...primitive, [node]: Node2 };
@@ -20329,7 +20277,7 @@ function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.docum
20329
20277
  }
20330
20278
 
20331
20279
  // ../../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";
20280
+ import { jsx as jsx12 } from "react/jsx-runtime";
20333
20281
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
20334
20282
  var CONTEXT_UPDATE = "dismissableLayer.update";
20335
20283
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -20417,7 +20365,7 @@ var DismissableLayer = React7.forwardRef(
20417
20365
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
20418
20366
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
20419
20367
  }, []);
20420
- return /* @__PURE__ */ jsx13(
20368
+ return /* @__PURE__ */ jsx12(
20421
20369
  Primitive.div,
20422
20370
  {
20423
20371
  ...layerProps,
@@ -20451,7 +20399,7 @@ var DismissableLayerBranch = React7.forwardRef((props, forwardedRef) => {
20451
20399
  };
20452
20400
  }
20453
20401
  }, [context.branches]);
20454
- return /* @__PURE__ */ jsx13(Primitive.div, { ...props, ref: composedRefs });
20402
+ return /* @__PURE__ */ jsx12(Primitive.div, { ...props, ref: composedRefs });
20455
20403
  });
20456
20404
  DismissableLayerBranch.displayName = BRANCH_NAME;
20457
20405
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -20563,7 +20511,7 @@ function createFocusGuard() {
20563
20511
 
20564
20512
  // ../../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
20513
  import * as React9 from "react";
20566
- import { jsx as jsx14 } from "react/jsx-runtime";
20514
+ import { jsx as jsx13 } from "react/jsx-runtime";
20567
20515
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
20568
20516
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
20569
20517
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -20682,7 +20630,7 @@ var FocusScope = React9.forwardRef((props, forwardedRef) => {
20682
20630
  },
20683
20631
  [loop, trapped, focusScope.paused]
20684
20632
  );
20685
- return /* @__PURE__ */ jsx14(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
20633
+ return /* @__PURE__ */ jsx13(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
20686
20634
  });
20687
20635
  FocusScope.displayName = FOCUS_SCOPE_NAME;
20688
20636
  function focusFirst(candidates, { select = false } = {}) {
@@ -22717,11 +22665,11 @@ var arrow3 = (options, deps) => {
22717
22665
 
22718
22666
  // ../../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
22667
  import * as React13 from "react";
22720
- import { jsx as jsx15 } from "react/jsx-runtime";
22668
+ import { jsx as jsx14 } from "react/jsx-runtime";
22721
22669
  var NAME = "Arrow";
22722
22670
  var Arrow = React13.forwardRef((props, forwardedRef) => {
22723
22671
  const { children, width = 10, height = 5, ...arrowProps } = props;
22724
- return /* @__PURE__ */ jsx15(
22672
+ return /* @__PURE__ */ jsx14(
22725
22673
  Primitive.svg,
22726
22674
  {
22727
22675
  ...arrowProps,
@@ -22730,7 +22678,7 @@ var Arrow = React13.forwardRef((props, forwardedRef) => {
22730
22678
  height,
22731
22679
  viewBox: "0 0 30 10",
22732
22680
  preserveAspectRatio: "none",
22733
- children: props.asChild ? children : /* @__PURE__ */ jsx15("polygon", { points: "0,0 30,0 15,10" })
22681
+ children: props.asChild ? children : /* @__PURE__ */ jsx14("polygon", { points: "0,0 30,0 15,10" })
22734
22682
  }
22735
22683
  );
22736
22684
  });
@@ -22775,14 +22723,14 @@ function useSize(element) {
22775
22723
  }
22776
22724
 
22777
22725
  // ../../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";
22726
+ import { jsx as jsx15 } from "react/jsx-runtime";
22779
22727
  var POPPER_NAME = "Popper";
22780
22728
  var [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);
22781
22729
  var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
22782
22730
  var Popper = (props) => {
22783
22731
  const { __scopePopper, children } = props;
22784
22732
  const [anchor, setAnchor] = React15.useState(null);
22785
- return /* @__PURE__ */ jsx16(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
22733
+ return /* @__PURE__ */ jsx15(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
22786
22734
  };
22787
22735
  Popper.displayName = POPPER_NAME;
22788
22736
  var ANCHOR_NAME = "PopperAnchor";
@@ -22800,7 +22748,7 @@ var PopperAnchor = React15.forwardRef(
22800
22748
  context.onAnchorChange(anchorRef.current);
22801
22749
  }
22802
22750
  });
22803
- return virtualRef ? null : /* @__PURE__ */ jsx16(Primitive.div, { ...anchorProps, ref: composedRefs });
22751
+ return virtualRef ? null : /* @__PURE__ */ jsx15(Primitive.div, { ...anchorProps, ref: composedRefs });
22804
22752
  }
22805
22753
  );
22806
22754
  PopperAnchor.displayName = ANCHOR_NAME;
@@ -22893,7 +22841,7 @@ var PopperContent = React15.forwardRef(
22893
22841
  useLayoutEffect22(() => {
22894
22842
  if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
22895
22843
  }, [content]);
22896
- return /* @__PURE__ */ jsx16(
22844
+ return /* @__PURE__ */ jsx15(
22897
22845
  "div",
22898
22846
  {
22899
22847
  ref: refs.setFloating,
@@ -22917,7 +22865,7 @@ var PopperContent = React15.forwardRef(
22917
22865
  }
22918
22866
  },
22919
22867
  dir: props.dir,
22920
- children: /* @__PURE__ */ jsx16(
22868
+ children: /* @__PURE__ */ jsx15(
22921
22869
  PopperContentProvider,
22922
22870
  {
22923
22871
  scope: __scopePopper,
@@ -22926,7 +22874,7 @@ var PopperContent = React15.forwardRef(
22926
22874
  arrowX,
22927
22875
  arrowY,
22928
22876
  shouldHideArrow: cannotCenterArrow,
22929
- children: /* @__PURE__ */ jsx16(
22877
+ children: /* @__PURE__ */ jsx15(
22930
22878
  Primitive.div,
22931
22879
  {
22932
22880
  "data-side": placedSide,
@@ -22963,7 +22911,7 @@ var PopperArrow = React15.forwardRef(function PopperArrow2(props, forwardedRef)
22963
22911
  // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
22964
22912
  // doesn't report size as we'd expect on SVG elements.
22965
22913
  // it reports their bounding box which is effectively the largest path inside the SVG.
22966
- /* @__PURE__ */ jsx16(
22914
+ /* @__PURE__ */ jsx15(
22967
22915
  "span",
22968
22916
  {
22969
22917
  ref: contentContext.onArrowChange,
@@ -22986,7 +22934,7 @@ var PopperArrow = React15.forwardRef(function PopperArrow2(props, forwardedRef)
22986
22934
  }[contentContext.placedSide],
22987
22935
  visibility: contentContext.shouldHideArrow ? "hidden" : void 0
22988
22936
  },
22989
- children: /* @__PURE__ */ jsx16(
22937
+ children: /* @__PURE__ */ jsx15(
22990
22938
  Root,
22991
22939
  {
22992
22940
  ...arrowProps,
@@ -23049,14 +22997,14 @@ var Arrow2 = PopperArrow;
23049
22997
  // ../../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
22998
  import * as React16 from "react";
23051
22999
  import ReactDOM3 from "react-dom";
23052
- import { jsx as jsx17 } from "react/jsx-runtime";
23000
+ import { jsx as jsx16 } from "react/jsx-runtime";
23053
23001
  var PORTAL_NAME = "Portal";
23054
23002
  var Portal = React16.forwardRef((props, forwardedRef) => {
23055
23003
  const { container: containerProp, ...portalProps } = props;
23056
23004
  const [mounted, setMounted] = React16.useState(false);
23057
23005
  useLayoutEffect22(() => setMounted(true), []);
23058
23006
  const container = containerProp || mounted && globalThis?.document?.body;
23059
- return container ? ReactDOM3.createPortal(/* @__PURE__ */ jsx17(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
23007
+ return container ? ReactDOM3.createPortal(/* @__PURE__ */ jsx16(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
23060
23008
  });
23061
23009
  Portal.displayName = PORTAL_NAME;
23062
23010
 
@@ -24096,7 +24044,7 @@ ReactRemoveScroll.classNames = RemoveScroll.classNames;
24096
24044
  var Combination_default = ReactRemoveScroll;
24097
24045
 
24098
24046
  // ../../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";
24047
+ import { jsx as jsx17 } from "react/jsx-runtime";
24100
24048
  var POPOVER_NAME = "Popover";
24101
24049
  var [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [
24102
24050
  createPopperScope
@@ -24121,7 +24069,7 @@ var Popover = (props) => {
24121
24069
  onChange: onOpenChange,
24122
24070
  caller: POPOVER_NAME
24123
24071
  });
24124
- return /* @__PURE__ */ jsx18(Root2, { ...popperScope, children: /* @__PURE__ */ jsx18(
24072
+ return /* @__PURE__ */ jsx17(Root2, { ...popperScope, children: /* @__PURE__ */ jsx17(
24125
24073
  PopoverProvider,
24126
24074
  {
24127
24075
  scope: __scopePopover,
@@ -24150,7 +24098,7 @@ var PopoverAnchor = React28.forwardRef(
24150
24098
  onCustomAnchorAdd();
24151
24099
  return () => onCustomAnchorRemove();
24152
24100
  }, [onCustomAnchorAdd, onCustomAnchorRemove]);
24153
- return /* @__PURE__ */ jsx18(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
24101
+ return /* @__PURE__ */ jsx17(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
24154
24102
  }
24155
24103
  );
24156
24104
  PopoverAnchor.displayName = ANCHOR_NAME2;
@@ -24161,7 +24109,7 @@ var PopoverTrigger = React28.forwardRef(
24161
24109
  const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
24162
24110
  const popperScope = usePopperScope(__scopePopover);
24163
24111
  const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
24164
- const trigger = /* @__PURE__ */ jsx18(
24112
+ const trigger = /* @__PURE__ */ jsx17(
24165
24113
  Primitive.button,
24166
24114
  {
24167
24115
  type: "button",
@@ -24174,7 +24122,7 @@ var PopoverTrigger = React28.forwardRef(
24174
24122
  onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
24175
24123
  }
24176
24124
  );
24177
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx18(Anchor, { asChild: true, ...popperScope, children: trigger });
24125
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx17(Anchor, { asChild: true, ...popperScope, children: trigger });
24178
24126
  }
24179
24127
  );
24180
24128
  PopoverTrigger.displayName = TRIGGER_NAME;
@@ -24185,7 +24133,7 @@ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
24185
24133
  var PopoverPortal = (props) => {
24186
24134
  const { __scopePopover, forceMount, children, container } = props;
24187
24135
  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 }) }) });
24136
+ return /* @__PURE__ */ jsx17(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx17(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx17(Portal, { asChild: true, container, children }) }) });
24189
24137
  };
24190
24138
  PopoverPortal.displayName = PORTAL_NAME2;
24191
24139
  var CONTENT_NAME2 = "PopoverContent";
@@ -24194,7 +24142,7 @@ var PopoverContent = React28.forwardRef(
24194
24142
  const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
24195
24143
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
24196
24144
  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 }) });
24145
+ return /* @__PURE__ */ jsx17(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx17(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx17(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
24198
24146
  }
24199
24147
  );
24200
24148
  PopoverContent.displayName = CONTENT_NAME2;
@@ -24209,7 +24157,7 @@ var PopoverContentModal = React28.forwardRef(
24209
24157
  const content = contentRef.current;
24210
24158
  if (content) return hideOthers(content);
24211
24159
  }, []);
24212
- return /* @__PURE__ */ jsx18(Combination_default, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx18(
24160
+ return /* @__PURE__ */ jsx17(Combination_default, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx17(
24213
24161
  PopoverContentImpl,
24214
24162
  {
24215
24163
  ...props,
@@ -24244,7 +24192,7 @@ var PopoverContentNonModal = React28.forwardRef(
24244
24192
  const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
24245
24193
  const hasInteractedOutsideRef = React28.useRef(false);
24246
24194
  const hasPointerDownOutsideRef = React28.useRef(false);
24247
- return /* @__PURE__ */ jsx18(
24195
+ return /* @__PURE__ */ jsx17(
24248
24196
  PopoverContentImpl,
24249
24197
  {
24250
24198
  ...props,
@@ -24296,7 +24244,7 @@ var PopoverContentImpl = React28.forwardRef(
24296
24244
  const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
24297
24245
  const popperScope = usePopperScope(__scopePopover);
24298
24246
  useFocusGuards();
24299
- return /* @__PURE__ */ jsx18(
24247
+ return /* @__PURE__ */ jsx17(
24300
24248
  FocusScope,
24301
24249
  {
24302
24250
  asChild: true,
@@ -24304,7 +24252,7 @@ var PopoverContentImpl = React28.forwardRef(
24304
24252
  trapped: trapFocus,
24305
24253
  onMountAutoFocus: onOpenAutoFocus,
24306
24254
  onUnmountAutoFocus: onCloseAutoFocus,
24307
- children: /* @__PURE__ */ jsx18(
24255
+ children: /* @__PURE__ */ jsx17(
24308
24256
  DismissableLayer,
24309
24257
  {
24310
24258
  asChild: true,
@@ -24314,7 +24262,7 @@ var PopoverContentImpl = React28.forwardRef(
24314
24262
  onPointerDownOutside,
24315
24263
  onFocusOutside,
24316
24264
  onDismiss: () => context.onOpenChange(false),
24317
- children: /* @__PURE__ */ jsx18(
24265
+ children: /* @__PURE__ */ jsx17(
24318
24266
  Content,
24319
24267
  {
24320
24268
  "data-state": getState(context.open),
@@ -24347,7 +24295,7 @@ var PopoverClose = React28.forwardRef(
24347
24295
  (props, forwardedRef) => {
24348
24296
  const { __scopePopover, ...closeProps } = props;
24349
24297
  const context = usePopoverContext(CLOSE_NAME, __scopePopover);
24350
- return /* @__PURE__ */ jsx18(
24298
+ return /* @__PURE__ */ jsx17(
24351
24299
  Primitive.button,
24352
24300
  {
24353
24301
  type: "button",
@@ -24364,7 +24312,7 @@ var PopoverArrow = React28.forwardRef(
24364
24312
  (props, forwardedRef) => {
24365
24313
  const { __scopePopover, ...arrowProps } = props;
24366
24314
  const popperScope = usePopperScope(__scopePopover);
24367
- return /* @__PURE__ */ jsx18(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24315
+ return /* @__PURE__ */ jsx17(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24368
24316
  }
24369
24317
  );
24370
24318
  PopoverArrow.displayName = ARROW_NAME2;
@@ -24400,7 +24348,7 @@ import * as React30 from "react";
24400
24348
 
24401
24349
  // ../../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
24350
  import * as React29 from "react";
24403
- import { jsx as jsx19 } from "react/jsx-runtime";
24351
+ import { jsx as jsx18 } from "react/jsx-runtime";
24404
24352
  var VISUALLY_HIDDEN_STYLES = Object.freeze({
24405
24353
  // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
24406
24354
  position: "absolute",
@@ -24417,7 +24365,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
24417
24365
  var NAME2 = "VisuallyHidden";
24418
24366
  var VisuallyHidden = React29.forwardRef(
24419
24367
  (props, forwardedRef) => {
24420
- return /* @__PURE__ */ jsx19(
24368
+ return /* @__PURE__ */ jsx18(
24421
24369
  Primitive.span,
24422
24370
  {
24423
24371
  ...props,
@@ -24431,7 +24379,7 @@ VisuallyHidden.displayName = NAME2;
24431
24379
  var Root3 = VisuallyHidden;
24432
24380
 
24433
24381
  // ../../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";
24382
+ import { jsx as jsx19, jsxs as jsxs5 } from "react/jsx-runtime";
24435
24383
  var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
24436
24384
  createPopperScope
24437
24385
  ]);
@@ -24455,7 +24403,7 @@ var TooltipProvider = (props) => {
24455
24403
  const skipDelayTimer = skipDelayTimerRef.current;
24456
24404
  return () => window.clearTimeout(skipDelayTimer);
24457
24405
  }, []);
24458
- return /* @__PURE__ */ jsx20(
24406
+ return /* @__PURE__ */ jsx19(
24459
24407
  TooltipProviderContextProvider,
24460
24408
  {
24461
24409
  scope: __scopeTooltip,
@@ -24546,7 +24494,7 @@ var Tooltip = (props) => {
24546
24494
  }
24547
24495
  };
24548
24496
  }, []);
24549
- return /* @__PURE__ */ jsx20(Root2, { ...popperScope, children: /* @__PURE__ */ jsx20(
24497
+ return /* @__PURE__ */ jsx19(Root2, { ...popperScope, children: /* @__PURE__ */ jsx19(
24550
24498
  TooltipContextProvider,
24551
24499
  {
24552
24500
  scope: __scopeTooltip,
@@ -24590,7 +24538,7 @@ var TooltipTrigger = React30.forwardRef(
24590
24538
  React30.useEffect(() => {
24591
24539
  return () => document.removeEventListener("pointerup", handlePointerUp);
24592
24540
  }, [handlePointerUp]);
24593
- return /* @__PURE__ */ jsx20(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx20(
24541
+ return /* @__PURE__ */ jsx19(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx19(
24594
24542
  Primitive.button,
24595
24543
  {
24596
24544
  "aria-describedby": context.open ? context.contentId : void 0,
@@ -24632,7 +24580,7 @@ var [PortalProvider2, usePortalContext2] = createTooltipContext(PORTAL_NAME3, {
24632
24580
  var TooltipPortal = (props) => {
24633
24581
  const { __scopeTooltip, forceMount, children, container } = props;
24634
24582
  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 }) }) });
24583
+ return /* @__PURE__ */ jsx19(PortalProvider2, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx19(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx19(Portal, { asChild: true, container, children }) }) });
24636
24584
  };
24637
24585
  TooltipPortal.displayName = PORTAL_NAME3;
24638
24586
  var CONTENT_NAME3 = "TooltipContent";
@@ -24641,7 +24589,7 @@ var TooltipContent = React30.forwardRef(
24641
24589
  const portalContext = usePortalContext2(CONTENT_NAME3, props.__scopeTooltip);
24642
24590
  const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
24643
24591
  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 }) });
24592
+ 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
24593
  }
24646
24594
  );
24647
24595
  var TooltipContentHoverable = React30.forwardRef((props, forwardedRef) => {
@@ -24703,7 +24651,7 @@ var TooltipContentHoverable = React30.forwardRef((props, forwardedRef) => {
24703
24651
  return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
24704
24652
  }
24705
24653
  }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);
24706
- return /* @__PURE__ */ jsx20(TooltipContentImpl, { ...props, ref: composedRefs });
24654
+ return /* @__PURE__ */ jsx19(TooltipContentImpl, { ...props, ref: composedRefs });
24707
24655
  });
24708
24656
  var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });
24709
24657
  var Slottable = createSlottable("TooltipContent");
@@ -24734,7 +24682,7 @@ var TooltipContentImpl = React30.forwardRef(
24734
24682
  return () => window.removeEventListener("scroll", handleScroll2, { capture: true });
24735
24683
  }
24736
24684
  }, [context.trigger, onClose]);
24737
- return /* @__PURE__ */ jsx20(
24685
+ return /* @__PURE__ */ jsx19(
24738
24686
  DismissableLayer,
24739
24687
  {
24740
24688
  asChild: true,
@@ -24762,8 +24710,8 @@ var TooltipContentImpl = React30.forwardRef(
24762
24710
  }
24763
24711
  },
24764
24712
  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 }) })
24713
+ /* @__PURE__ */ jsx19(Slottable, { children }),
24714
+ /* @__PURE__ */ jsx19(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx19(Root3, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
24767
24715
  ]
24768
24716
  }
24769
24717
  )
@@ -24781,7 +24729,7 @@ var TooltipArrow = React30.forwardRef(
24781
24729
  ARROW_NAME3,
24782
24730
  __scopeTooltip
24783
24731
  );
24784
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx20(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24732
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx19(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
24785
24733
  }
24786
24734
  );
24787
24735
  TooltipArrow.displayName = ARROW_NAME3;
@@ -24919,7 +24867,7 @@ __export(dist_exports6, {
24919
24867
  createCollapsibleScope: () => createCollapsibleScope
24920
24868
  });
24921
24869
  import * as React31 from "react";
24922
- import { jsx as jsx21 } from "react/jsx-runtime";
24870
+ import { jsx as jsx20 } from "react/jsx-runtime";
24923
24871
  var COLLAPSIBLE_NAME = "Collapsible";
24924
24872
  var [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);
24925
24873
  var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
@@ -24939,7 +24887,7 @@ var Collapsible = React31.forwardRef(
24939
24887
  onChange: onOpenChange,
24940
24888
  caller: COLLAPSIBLE_NAME
24941
24889
  });
24942
- return /* @__PURE__ */ jsx21(
24890
+ return /* @__PURE__ */ jsx20(
24943
24891
  CollapsibleProvider,
24944
24892
  {
24945
24893
  scope: __scopeCollapsible,
@@ -24947,7 +24895,7 @@ var Collapsible = React31.forwardRef(
24947
24895
  contentId: useId(),
24948
24896
  open,
24949
24897
  onOpenToggle: React31.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
24950
- children: /* @__PURE__ */ jsx21(
24898
+ children: /* @__PURE__ */ jsx20(
24951
24899
  Primitive.div,
24952
24900
  {
24953
24901
  "data-state": getState2(open),
@@ -24966,7 +24914,7 @@ var CollapsibleTrigger = React31.forwardRef(
24966
24914
  (props, forwardedRef) => {
24967
24915
  const { __scopeCollapsible, ...triggerProps } = props;
24968
24916
  const context = useCollapsibleContext(TRIGGER_NAME3, __scopeCollapsible);
24969
- return /* @__PURE__ */ jsx21(
24917
+ return /* @__PURE__ */ jsx20(
24970
24918
  Primitive.button,
24971
24919
  {
24972
24920
  type: "button",
@@ -24988,7 +24936,7 @@ var CollapsibleContent = React31.forwardRef(
24988
24936
  (props, forwardedRef) => {
24989
24937
  const { forceMount, ...contentProps } = props;
24990
24938
  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 }) });
24939
+ return /* @__PURE__ */ jsx20(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx20(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
24992
24940
  }
24993
24941
  );
24994
24942
  CollapsibleContent.displayName = CONTENT_NAME4;
@@ -25028,7 +24976,7 @@ var CollapsibleContentImpl = React31.forwardRef((props, forwardedRef) => {
25028
24976
  setIsPresent(present);
25029
24977
  }
25030
24978
  }, [context.open, present]);
25031
- return /* @__PURE__ */ jsx21(
24979
+ return /* @__PURE__ */ jsx20(
25032
24980
  Primitive.div,
25033
24981
  {
25034
24982
  "data-state": getState2(context.open),
@@ -25076,7 +25024,7 @@ __export(dist_exports7, {
25076
25024
  createDialogScope: () => createDialogScope
25077
25025
  });
25078
25026
  import * as React32 from "react";
25079
- import { Fragment as Fragment7, jsx as jsx22, jsxs as jsxs6 } from "react/jsx-runtime";
25027
+ import { Fragment as Fragment7, jsx as jsx21, jsxs as jsxs6 } from "react/jsx-runtime";
25080
25028
  var DIALOG_NAME = "Dialog";
25081
25029
  var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
25082
25030
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -25097,7 +25045,7 @@ var Dialog = (props) => {
25097
25045
  onChange: onOpenChange,
25098
25046
  caller: DIALOG_NAME
25099
25047
  });
25100
- return /* @__PURE__ */ jsx22(
25048
+ return /* @__PURE__ */ jsx21(
25101
25049
  DialogProvider,
25102
25050
  {
25103
25051
  scope: __scopeDialog,
@@ -25121,7 +25069,7 @@ var DialogTrigger = React32.forwardRef(
25121
25069
  const { __scopeDialog, ...triggerProps } = props;
25122
25070
  const context = useDialogContext(TRIGGER_NAME4, __scopeDialog);
25123
25071
  const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
25124
- return /* @__PURE__ */ jsx22(
25072
+ return /* @__PURE__ */ jsx21(
25125
25073
  Primitive.button,
25126
25074
  {
25127
25075
  type: "button",
@@ -25144,7 +25092,7 @@ var [PortalProvider3, usePortalContext3] = createDialogContext(PORTAL_NAME4, {
25144
25092
  var DialogPortal = (props) => {
25145
25093
  const { __scopeDialog, forceMount, children, container } = props;
25146
25094
  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 }) })) });
25095
+ 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
25096
  };
25149
25097
  DialogPortal.displayName = PORTAL_NAME4;
25150
25098
  var OVERLAY_NAME = "DialogOverlay";
@@ -25153,7 +25101,7 @@ var DialogOverlay = React32.forwardRef(
25153
25101
  const portalContext = usePortalContext3(OVERLAY_NAME, props.__scopeDialog);
25154
25102
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
25155
25103
  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;
25104
+ return context.modal ? /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx21(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
25157
25105
  }
25158
25106
  );
25159
25107
  DialogOverlay.displayName = OVERLAY_NAME;
@@ -25165,7 +25113,7 @@ var DialogOverlayImpl = React32.forwardRef(
25165
25113
  return (
25166
25114
  // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
25167
25115
  // ie. when `Overlay` and `Content` are siblings
25168
- /* @__PURE__ */ jsx22(Combination_default, { as: Slot2, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx22(
25116
+ /* @__PURE__ */ jsx21(Combination_default, { as: Slot2, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx21(
25169
25117
  Primitive.div,
25170
25118
  {
25171
25119
  "data-state": getState3(context.open),
@@ -25183,7 +25131,7 @@ var DialogContent = React32.forwardRef(
25183
25131
  const portalContext = usePortalContext3(CONTENT_NAME5, props.__scopeDialog);
25184
25132
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
25185
25133
  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 }) });
25134
+ return /* @__PURE__ */ jsx21(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx21(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx21(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
25187
25135
  }
25188
25136
  );
25189
25137
  DialogContent.displayName = CONTENT_NAME5;
@@ -25196,7 +25144,7 @@ var DialogContentModal = React32.forwardRef(
25196
25144
  const content = contentRef.current;
25197
25145
  if (content) return hideOthers(content);
25198
25146
  }, []);
25199
- return /* @__PURE__ */ jsx22(
25147
+ return /* @__PURE__ */ jsx21(
25200
25148
  DialogContentImpl,
25201
25149
  {
25202
25150
  ...props,
@@ -25226,7 +25174,7 @@ var DialogContentNonModal = React32.forwardRef(
25226
25174
  const context = useDialogContext(CONTENT_NAME5, props.__scopeDialog);
25227
25175
  const hasInteractedOutsideRef = React32.useRef(false);
25228
25176
  const hasPointerDownOutsideRef = React32.useRef(false);
25229
- return /* @__PURE__ */ jsx22(
25177
+ return /* @__PURE__ */ jsx21(
25230
25178
  DialogContentImpl,
25231
25179
  {
25232
25180
  ...props,
@@ -25269,7 +25217,7 @@ var DialogContentImpl = React32.forwardRef(
25269
25217
  const composedRefs = useComposedRefs(forwardedRef, contentRef);
25270
25218
  useFocusGuards();
25271
25219
  return /* @__PURE__ */ jsxs6(Fragment7, { children: [
25272
- /* @__PURE__ */ jsx22(
25220
+ /* @__PURE__ */ jsx21(
25273
25221
  FocusScope,
25274
25222
  {
25275
25223
  asChild: true,
@@ -25277,7 +25225,7 @@ var DialogContentImpl = React32.forwardRef(
25277
25225
  trapped: trapFocus,
25278
25226
  onMountAutoFocus: onOpenAutoFocus,
25279
25227
  onUnmountAutoFocus: onCloseAutoFocus,
25280
- children: /* @__PURE__ */ jsx22(
25228
+ children: /* @__PURE__ */ jsx21(
25281
25229
  DismissableLayer,
25282
25230
  {
25283
25231
  role: "dialog",
@@ -25293,8 +25241,8 @@ var DialogContentImpl = React32.forwardRef(
25293
25241
  }
25294
25242
  ),
25295
25243
  /* @__PURE__ */ jsxs6(Fragment7, { children: [
25296
- /* @__PURE__ */ jsx22(TitleWarning, { titleId: context.titleId }),
25297
- /* @__PURE__ */ jsx22(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
25244
+ /* @__PURE__ */ jsx21(TitleWarning, { titleId: context.titleId }),
25245
+ /* @__PURE__ */ jsx21(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
25298
25246
  ] })
25299
25247
  ] });
25300
25248
  }
@@ -25304,7 +25252,7 @@ var DialogTitle = React32.forwardRef(
25304
25252
  (props, forwardedRef) => {
25305
25253
  const { __scopeDialog, ...titleProps } = props;
25306
25254
  const context = useDialogContext(TITLE_NAME, __scopeDialog);
25307
- return /* @__PURE__ */ jsx22(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
25255
+ return /* @__PURE__ */ jsx21(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
25308
25256
  }
25309
25257
  );
25310
25258
  DialogTitle.displayName = TITLE_NAME;
@@ -25313,7 +25261,7 @@ var DialogDescription = React32.forwardRef(
25313
25261
  (props, forwardedRef) => {
25314
25262
  const { __scopeDialog, ...descriptionProps } = props;
25315
25263
  const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
25316
- return /* @__PURE__ */ jsx22(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
25264
+ return /* @__PURE__ */ jsx21(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
25317
25265
  }
25318
25266
  );
25319
25267
  DialogDescription.displayName = DESCRIPTION_NAME;
@@ -25322,7 +25270,7 @@ var DialogClose = React32.forwardRef(
25322
25270
  (props, forwardedRef) => {
25323
25271
  const { __scopeDialog, ...closeProps } = props;
25324
25272
  const context = useDialogContext(CLOSE_NAME2, __scopeDialog);
25325
- return /* @__PURE__ */ jsx22(
25273
+ return /* @__PURE__ */ jsx21(
25326
25274
  Primitive.button,
25327
25275
  {
25328
25276
  type: "button",
@@ -26571,18 +26519,21 @@ var cn2 = /* @__PURE__ */ wrapClsx(instance.mergeString, instance);
26571
26519
  var twMerge2 = instance.merge;
26572
26520
 
26573
26521
  // ../ui/src/components/dialog.tsx
26574
- import { jsx as jsx23, jsxs as jsxs7 } from "react/jsx-runtime";
26522
+ import { jsx as jsx22, jsxs as jsxs7 } from "react/jsx-runtime";
26575
26523
  function Dialog2({
26576
26524
  ...props
26577
26525
  }) {
26578
- return /* @__PURE__ */ jsx23(dist_exports7.Root, { "data-slot": "dialog", ...props });
26526
+ return /* @__PURE__ */ jsx22(dist_exports7.Root, { "data-slot": "dialog", ...props });
26579
26527
  }
26580
26528
  function DialogClose2({
26581
26529
  ...props
26582
26530
  }) {
26583
- return /* @__PURE__ */ jsx23(dist_exports7.Close, { "data-slot": "dialog-close", ...props });
26531
+ return /* @__PURE__ */ jsx22(dist_exports7.Close, { "data-slot": "dialog-close", ...props });
26584
26532
  }
26585
26533
 
26534
+ // ../ui/src/composites/dialog.tsx
26535
+ import { forwardRef as forwardRef17 } from "react";
26536
+
26586
26537
  // ../ui/src/lib/shadow-focus.ts
26587
26538
  var TABBABLE = [
26588
26539
  "a[href]",
@@ -26617,14 +26568,12 @@ function loopTabInShadowRoot(event) {
26617
26568
  }
26618
26569
 
26619
26570
  // ../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(
26571
+ import { jsx as jsx23, jsxs as jsxs8 } from "react/jsx-runtime";
26572
+ var DialogOverlay2 = forwardRef17(function DialogOverlay3({ className, ...props }, ref) {
26573
+ return /* @__PURE__ */ jsx23(
26626
26574
  dist_exports7.Overlay,
26627
26575
  {
26576
+ ref,
26628
26577
  "data-slot": "dialog-overlay",
26629
26578
  className: cn2(
26630
26579
  "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 +26582,7 @@ function DialogOverlay2({
26633
26582
  ...props
26634
26583
  }
26635
26584
  );
26636
- }
26585
+ });
26637
26586
  function DialogContent2({
26638
26587
  className,
26639
26588
  children,
@@ -26644,7 +26593,7 @@ function DialogContent2({
26644
26593
  }) {
26645
26594
  const overlayRoot = useOverlayRoot();
26646
26595
  return /* @__PURE__ */ jsxs8(dist_exports7.Portal, { "data-slot": "dialog-portal", container: overlayRoot, children: [
26647
- /* @__PURE__ */ jsx24(DialogOverlay2, { className: overlayClassName }),
26596
+ /* @__PURE__ */ jsx23(DialogOverlay2, { className: overlayClassName }),
26648
26597
  /* @__PURE__ */ jsxs8(
26649
26598
  dist_exports7.Content,
26650
26599
  {
@@ -26666,8 +26615,8 @@ function DialogContent2({
26666
26615
  "data-slot": "dialog-close",
26667
26616
  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
26617
  children: [
26669
- /* @__PURE__ */ jsx24(X, { size: 16 }),
26670
- /* @__PURE__ */ jsx24("span", { className: "sr-only", children: "\u5173\u95ED" })
26618
+ /* @__PURE__ */ jsx23(X, { size: 16 }),
26619
+ /* @__PURE__ */ jsx23("span", { className: "sr-only", children: "\u5173\u95ED" })
26671
26620
  ]
26672
26621
  }
26673
26622
  )
@@ -26677,7 +26626,7 @@ function DialogContent2({
26677
26626
  ] });
26678
26627
  }
26679
26628
  function DialogTitle2({ className, ...props }) {
26680
- return /* @__PURE__ */ jsx24(
26629
+ return /* @__PURE__ */ jsx23(
26681
26630
  dist_exports7.Title,
26682
26631
  {
26683
26632
  "data-slot": "dialog-title",
@@ -26686,6 +26635,19 @@ function DialogTitle2({ className, ...props }) {
26686
26635
  }
26687
26636
  );
26688
26637
  }
26638
+ function DialogDescription2({
26639
+ className,
26640
+ ...props
26641
+ }) {
26642
+ return /* @__PURE__ */ jsx23(
26643
+ dist_exports7.Description,
26644
+ {
26645
+ "data-slot": "dialog-description",
26646
+ className: cn2("text-sm text-[hsl(var(--muted-foreground))]", className),
26647
+ ...props
26648
+ }
26649
+ );
26650
+ }
26689
26651
 
26690
26652
  // src/chat/chat-theme.tsx
26691
26653
  var NEUTRAL = {
@@ -26750,7 +26712,7 @@ export {
26750
26712
  CircleAlert,
26751
26713
  CircleCheck,
26752
26714
  CirclePause,
26753
- CircleX,
26715
+ CircleSlash,
26754
26716
  Copy,
26755
26717
  Download,
26756
26718
  Earth,
@@ -26790,7 +26752,6 @@ export {
26790
26752
  Plug,
26791
26753
  Plus,
26792
26754
  RefreshCcw,
26793
- RefreshCw,
26794
26755
  Rocket,
26795
26756
  RotateCcw,
26796
26757
  Scissors,
@@ -26803,32 +26764,11 @@ export {
26803
26764
  Terminal,
26804
26765
  Trash2,
26805
26766
  TriangleAlert,
26806
- Workflow,
26807
26767
  Wrench,
26808
26768
  X,
26769
+ Zap,
26809
26770
  cn,
26810
26771
  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
26772
  getToolDescription,
26833
26773
  formatToolFileName,
26834
26774
  formatToolName,
@@ -26852,6 +26792,19 @@ export {
26852
26792
  usePlanRevealRevision,
26853
26793
  CurrentChatSessionProvider,
26854
26794
  useCurrentChatSessionId,
26795
+ ChatEnvironmentProvider,
26796
+ useChatEnvironment,
26797
+ useHighlightedCode,
26798
+ useChatSessionDetail,
26799
+ useHideTodo,
26800
+ useChatRenderMode,
26801
+ notifyChat,
26802
+ useComposerBridge,
26803
+ useChatVirtualizer,
26804
+ getInputHistoryGeneration,
26805
+ onInputCachesReset,
26806
+ pluginRefsForSend,
26807
+ getPluginSuggestionItems,
26855
26808
  sendToSession,
26856
26809
  useControllableState,
26857
26810
  dist_exports6 as dist_exports,
@@ -26869,6 +26822,7 @@ export {
26869
26822
  DialogClose2 as DialogClose,
26870
26823
  DialogContent2 as DialogContent,
26871
26824
  DialogTitle2 as DialogTitle,
26825
+ DialogDescription2 as DialogDescription,
26872
26826
  chatTone,
26873
26827
  useEffectEvent2 as useEffectEvent,
26874
26828
  SessionPluginConfigForm,
@@ -26916,7 +26870,7 @@ lucide-react/dist/esm/icons/circle-alert.js:
26916
26870
  lucide-react/dist/esm/icons/circle-check.js:
26917
26871
  lucide-react/dist/esm/icons/circle-dot.js:
26918
26872
  lucide-react/dist/esm/icons/circle-pause.js:
26919
- lucide-react/dist/esm/icons/circle-x.js:
26873
+ lucide-react/dist/esm/icons/circle-slash.js:
26920
26874
  lucide-react/dist/esm/icons/circle.js:
26921
26875
  lucide-react/dist/esm/icons/copy.js:
26922
26876
  lucide-react/dist/esm/icons/download.js:
@@ -26959,7 +26913,6 @@ lucide-react/dist/esm/icons/plug.js:
26959
26913
  lucide-react/dist/esm/icons/plus.js:
26960
26914
  lucide-react/dist/esm/icons/puzzle.js:
26961
26915
  lucide-react/dist/esm/icons/refresh-ccw.js:
26962
- lucide-react/dist/esm/icons/refresh-cw.js:
26963
26916
  lucide-react/dist/esm/icons/rocket.js:
26964
26917
  lucide-react/dist/esm/icons/rotate-ccw.js:
26965
26918
  lucide-react/dist/esm/icons/scissors.js:
@@ -26972,9 +26925,9 @@ lucide-react/dist/esm/icons/square.js:
26972
26925
  lucide-react/dist/esm/icons/terminal.js:
26973
26926
  lucide-react/dist/esm/icons/trash-2.js:
26974
26927
  lucide-react/dist/esm/icons/triangle-alert.js:
26975
- lucide-react/dist/esm/icons/workflow.js:
26976
26928
  lucide-react/dist/esm/icons/wrench.js:
26977
26929
  lucide-react/dist/esm/icons/x.js:
26930
+ lucide-react/dist/esm/icons/zap.js:
26978
26931
  lucide-react/dist/esm/lucide-react.js:
26979
26932
  (**
26980
26933
  * @license lucide-react v0.468.0 - ISC
@@ -26983,4 +26936,4 @@ lucide-react/dist/esm/lucide-react.js:
26983
26936
  * See the LICENSE file in the root directory of this source tree.
26984
26937
  *)
26985
26938
  */
26986
- //# sourceMappingURL=chunk-FQQJP2GJ.js.map
26939
+ //# sourceMappingURL=chunk-PPREDKQ2.js.map