@forsion/unit 2.13.3 → 2.13.5

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 (304) hide show
  1. package/main.mjs +135 -10
  2. package/package.json +1 -1
  3. package/release.json +5 -5
  4. package/web/assets/ArtificialView-BD1yHz1N.js +1 -0
  5. package/web/assets/AutomationBuilder-B09c-5Bi.js +1 -0
  6. package/web/assets/CalendarConfigView-Bd-ZDGPO.js +1 -0
  7. package/web/assets/CalendarSide-B0RVbOsg.js +1 -0
  8. package/web/assets/CalendarView-BHio-n_r.js +3 -0
  9. package/web/assets/CalendarView-t91KpUG7.css +1 -0
  10. package/web/assets/CapabilityMenu-DyHTEYLr.js +1 -0
  11. package/web/assets/Chrome-C7F6fdDp.js +1 -0
  12. package/web/assets/{CodeView-DRVh13k9.js → CodeView-BGOnrGhB.js} +3 -3
  13. package/web/assets/CtxMenuButtons-BYjrbUKS.js +1 -0
  14. package/web/assets/DashboardGridView-CR-R_qV8.js +25 -0
  15. package/web/assets/DashboardGridView-RoVFSkNO.css +1 -0
  16. package/web/assets/EventCard-QyYorE1_.js +1 -0
  17. package/web/assets/ExcalidrawCanvas-BgcFPMpU.css +1 -0
  18. package/web/assets/ExcalidrawCanvas-lwJCN6uB.js +1 -0
  19. package/web/assets/FloatingToc-DO7SH8Ku.js +1 -0
  20. package/web/assets/GitCloneDialog-CbW-RJak.js +1 -0
  21. package/web/assets/GitCloneDialog-DOxZk2K0.css +1 -0
  22. package/web/assets/HomepageView-Bx8FbWlY.css +1 -0
  23. package/web/assets/HomepageView-CHJEhf9c.js +4 -0
  24. package/web/assets/ImageStudioPanels-CgVf0wiq.js +3 -0
  25. package/web/assets/ImageStudioView-4WcX0_V4.js +1 -0
  26. package/web/assets/InlineAiPanel-CdIPINsA.js +1 -0
  27. package/web/assets/InlineAiPanel-DZZijfif.css +1 -0
  28. package/web/assets/InlineFiles-CAIyTk1n.js +1 -0
  29. package/web/assets/MarkdownBlock-Cqfk5DhC.css +1 -0
  30. package/web/assets/MarkdownBlock-DSItkLhu.js +58 -0
  31. package/web/assets/ModelPill--CU3XTIQ.js +2 -0
  32. package/web/assets/{ModelPill-CzdNh7Mt.css → ModelPill-BiUsuhy3.css} +1 -1
  33. package/web/assets/MuseLibraryView-16p1zsxz.css +1 -0
  34. package/web/assets/MuseLibraryView-PlS7HAlV.js +2 -0
  35. package/web/assets/MuseView-CvsO62Fo.js +7 -0
  36. package/web/assets/PageHistoryPanel-CDh7nm78.js +2 -0
  37. package/web/assets/{PdfAnnotator-CW0wPWRB.js → PdfAnnotator-DafvjP3U.js} +3 -3
  38. package/web/assets/PenRow-CEy-s6SF.js +1 -0
  39. package/web/assets/PluginToolCard-BmTRr5JT.css +1 -0
  40. package/web/assets/PluginToolCard-DCzLhsCA.js +2 -0
  41. package/web/assets/ProductView-AUqnTwmQ.js +1 -0
  42. package/web/assets/SettingsPage-B9mmkWaM.js +3 -0
  43. package/web/assets/StudioGuestSurface-OOhRA8nt.js +1 -0
  44. package/web/assets/TodoListView-BkgMe44I.js +1 -0
  45. package/web/assets/Tooltip-DOYi44eY.js +1 -0
  46. package/web/assets/UnifiedPage-CTmQpf2T.css +1 -0
  47. package/web/assets/UnifiedPage-s7-tDSwG.js +712 -0
  48. package/web/assets/ViewSelectionBar-WmSWMFsR.js +2 -0
  49. package/web/assets/appStore-DDOkzWDA.js +456 -0
  50. package/web/assets/appStore-iy8_Tmac.css +1 -0
  51. package/web/assets/arrow-up-right-BptN64d-.js +1 -0
  52. package/web/assets/{artificial-BzLFkChP.css → artificial-BubVxExB.css} +1 -1
  53. package/web/assets/astryxBridge-BL56QfEv.js +69 -0
  54. package/web/assets/astryxBridge-djzCiy4v.css +1 -0
  55. package/web/assets/automationListSource-B1jz6q0t.js +1 -0
  56. package/web/assets/boardSurface-CP4HNmcm.js +1 -0
  57. package/web/assets/calendarNavStore-DCi7VBmM.js +1 -0
  58. package/web/assets/canvasPrefs-ArsX3NFO.js +1 -0
  59. package/web/assets/chatBoxSurface-DRsDr-MT.js +1 -0
  60. package/web/assets/chevron-up-ChXNh14u.js +1 -0
  61. package/web/assets/{client-BqhpYbYL.js → client-fKy9CWk0.js} +1 -1
  62. package/web/assets/code-xml-DCCD9eCS.js +1 -0
  63. package/web/assets/{codeStudioStore-Dq5i8nbE.js → codeStudioStore-BgLfCDK2.js} +8 -8
  64. package/web/assets/codingNavigation-BrkLENBZ.css +1 -0
  65. package/web/assets/contextMenuSurface-BF593l2M.js +1 -0
  66. package/web/assets/copy-plus-ClKrSgM7.js +1 -0
  67. package/web/assets/create-DYmVT68X.js +14 -0
  68. package/web/assets/dashboardSurface-C6cbR3oG.js +1 -0
  69. package/web/assets/dbStore-BIG5Mfh2.js +1 -0
  70. package/web/assets/deskCapture-q-jRDIcc.js +1 -0
  71. package/web/assets/{diff2html-OoRdHZ_O.js → diff2html-Di8qIz6O.js} +2 -2
  72. package/web/assets/{docx-preview-B43XC8Cn.js → docx-preview-B-URZXdP.js} +1 -1
  73. package/web/assets/draft-CBSW5tHx.js +2 -0
  74. package/web/assets/drawingStore-CGvTqqYW.js +7 -0
  75. package/web/assets/file-down-Z913cCyQ.js +1 -0
  76. package/web/assets/floatingTocSurface-DGwTiqvU.js +1 -0
  77. package/web/assets/foldActions-DGIPTmE1.js +1 -0
  78. package/web/assets/folder-1OJQeDI1.js +1 -0
  79. package/web/assets/folder-minus-D_j1SwHu.js +1 -0
  80. package/web/assets/folder-plus-DP9sFr26.js +1 -0
  81. package/web/assets/gestures-ZhFAENNZ.js +1 -0
  82. package/web/assets/git-branch-BMajF2cu.js +1 -0
  83. package/web/assets/homeCardStatus-5R7XkxFL.js +1 -0
  84. package/web/assets/i18n-CAf4PT1o.css +1 -0
  85. package/web/assets/i18n.generated-DW_l6CkR.js +15 -0
  86. package/web/assets/imageStudio-CwG21Bat.css +1 -0
  87. package/web/assets/imageStudio-DC_syDtx.js +4 -0
  88. package/web/assets/index-B8A3nKeL.js +1 -0
  89. package/web/assets/{index-DDMXVG0h.js → index-BDZIQnEx.js} +2 -2
  90. package/web/assets/index-BYKR7EVg.js +1 -0
  91. package/web/assets/index-BeW45J9J.js +7 -0
  92. package/web/assets/index-BnJguNqI.js +1 -0
  93. package/web/assets/index-BniT-A2n.js +1 -0
  94. package/web/assets/index-C--E96Ul.js +1 -0
  95. package/web/assets/index-CI2esW1X.js +1 -0
  96. package/web/assets/index-CIKPZc3Q.js +1 -0
  97. package/web/assets/index-COzdD7mZ.js +13 -0
  98. package/web/assets/index-CPfmhZ3Z.js +1 -0
  99. package/web/assets/index-CVLDDD5Z.js +1 -0
  100. package/web/assets/index-CWXpOSI2.js +1 -0
  101. package/web/assets/index-Cg1FWM_p.js +1 -0
  102. package/web/assets/index-CmsN2Zm2.js +1 -0
  103. package/web/assets/index-CtCYv9bF.js +1 -0
  104. package/web/assets/index-CtRdzpNh.js +1 -0
  105. package/web/assets/index-D-ClOPbg.js +1 -0
  106. package/web/assets/{index-CobUnTcv.js → index-DfhEDV2T.js} +2 -2
  107. package/web/assets/index-Dr6YmrrT.js +1 -0
  108. package/web/assets/index-SpegRFQV.js +1 -0
  109. package/web/assets/index-bF04pF8q.js +3 -0
  110. package/web/assets/index-fDB1l4d-.js +3398 -0
  111. package/web/assets/index-jzlU5luC.js +1 -0
  112. package/web/assets/{index-D102FOuM.js → index-uhvJ8AiJ.js} +1 -1
  113. package/web/assets/{invitePage-BW0BH8Ac.js → invitePage-iOT1zBvp.js} +1 -1
  114. package/web/assets/{ipc-D7yENkjV.js → ipc-SAPDwyQ4.js} +1 -1
  115. package/web/assets/{jszip.min-UE5d5vPJ.js → jszip.min-B3n1FGCb.js} +1 -1
  116. package/web/assets/launchpad-C9U9hpWJ.css +1 -0
  117. package/web/assets/launchpad-CcmSwlJl.js +2 -0
  118. package/web/assets/layout-grid-oIyIGbc5.js +1 -0
  119. package/web/assets/linkFollow-uke1Xtit.js +8 -0
  120. package/web/assets/{listFold-CKxjyY5_.js → listFold-BeNv2v6M.js} +1 -1
  121. package/web/assets/lock-open-D2nMg0ga.js +1 -0
  122. package/web/assets/log-out-D70NCXC4.js +1 -0
  123. package/web/assets/magnet-Cqmm97W8.js +1 -0
  124. package/web/assets/main-B9aT0WXG.js +15 -0
  125. package/web/assets/main-BlVApHpj.css +1 -0
  126. package/web/assets/markdownEditorSurface-BiDH0__r.css +1 -0
  127. package/web/assets/markdownEditorSurface-zUzFity2.js +3 -0
  128. package/web/assets/mediaPlayer-DB4KUvua.js +1 -0
  129. package/web/assets/message-square-plus-BvUfAAZm.js +1 -0
  130. package/web/assets/{messages-4w1Khzm1.js → messages-GQUjmbwW.js} +1 -1
  131. package/web/assets/minimize-2-CMhzL6ZW.js +1 -0
  132. package/web/assets/mobileEntry-6u7TYC4s.css +1 -0
  133. package/web/assets/mobileEntry-BnHzrdoC.js +13 -0
  134. package/web/assets/modelPickerSurface-Dtz40Ae2.js +1 -0
  135. package/web/assets/nativeDownload-DsGyUSJ5.js +1 -0
  136. package/web/assets/nativeSheetMenu--iihXNVd.js +1 -0
  137. package/web/assets/pageStore-CyvNZEYX.js +13 -0
  138. package/web/assets/pageStore-ys8L4rjF.css +1 -0
  139. package/web/assets/{pageTree-CIXFRCLk.js → pageTree-Ci2qzrs1.js} +4 -4
  140. package/web/assets/pen-line-DC3lbEY1.js +1 -0
  141. package/web/assets/pen-tool-DD5_N4lZ.js +1 -0
  142. package/web/assets/pencil--sWwxHdP.js +1 -0
  143. package/web/assets/phoneList-BpLxxdq6.css +1 -0
  144. package/web/assets/phoneList-DKRMxQHf.js +1 -0
  145. package/web/assets/pluginChat-82zZt47Y.js +2 -0
  146. package/web/assets/react-b7FrqRQR.js +1 -0
  147. package/web/assets/recordSurface-vUX25Z8R.js +1 -0
  148. package/web/assets/redo-2-CqlqhWrI.js +1 -0
  149. package/web/assets/rotate-ccw-D8kni6Ni.js +1 -0
  150. package/web/assets/selectionActions-DIq0xDm8.js +2 -0
  151. package/web/assets/selectionBarSurface-B94e5JW_.js +1 -0
  152. package/web/assets/sessionTitle-Ctp4iNKu.js +1 -0
  153. package/web/assets/settingsPageSurface-C9TA3mJg.js +1 -0
  154. package/web/assets/sharePage-CY04XCAf.js +2 -0
  155. package/web/assets/{shareViewer-BzuSyJv_.js → shareViewer-DweNF8Ch.js} +2 -2
  156. package/web/assets/star-B0sZEmbj.js +1 -0
  157. package/web/assets/tableSurface-CSBYBw5P.js +1 -0
  158. package/web/assets/tanguProbe-B8Qv2vcm.js +6 -0
  159. package/web/assets/{terminalView-SAxITnRW.js → terminalView-BLGdmdl7.js} +3 -3
  160. package/web/assets/theme-CUWFlazV.css +1 -0
  161. package/web/assets/type-Dt7RNB9g.js +1 -0
  162. package/web/assets/undo-2-QimgpLBn.js +1 -0
  163. package/web/assets/{unitAccount-BPYRAa3m.js → unitAccount-DL3jfd84.js} +1 -1
  164. package/web/assets/{unitBridge-BNVzai6X.js → unitBridge-BSsCy1zP.js} +1 -1
  165. package/web/assets/{unitCloudTransport-iFweA1xk.js → unitCloudTransport-CI_6H0TU.js} +1 -1
  166. package/web/assets/unitOwnerAccess-CiQ7nD7E.js +1 -0
  167. package/web/assets/unitShim-Dl2ksNp-.js +5 -0
  168. package/web/assets/upload-Dy7svciS.js +1 -0
  169. package/web/assets/userSpaces-oMHIWgYe.js +1 -0
  170. package/web/assets/viewportLock-B0l1GU_k.css +1 -0
  171. package/web/assets/viewportLock-BZq5PTeN.js +738 -0
  172. package/web/assets/zoom-in-DDEtY_Go.js +1 -0
  173. package/web/excalidraw/excalidraw.js +4 -2
  174. package/web/index.html +12 -13
  175. package/web/assets/ArtificialView-DS97zlMg.js +0 -1
  176. package/web/assets/AutomationBuilder-BsJc8wuC.js +0 -1
  177. package/web/assets/CalendarConfigView-BN8mraSo.js +0 -1
  178. package/web/assets/CalendarView-D55PA1vn.js +0 -1
  179. package/web/assets/CapabilityMenu-BVrokPpT.js +0 -1
  180. package/web/assets/CheckboxInput-BuJ3HPm_.js +0 -1
  181. package/web/assets/Chrome-amTcZNE4.js +0 -1
  182. package/web/assets/DashboardGridView-D9s9pez_.css +0 -1
  183. package/web/assets/DashboardGridView-DlFyYfUh.js +0 -17
  184. package/web/assets/EventCard-DUrn2krw.js +0 -1
  185. package/web/assets/ExcalidrawCanvas-4uYrLYin.css +0 -1
  186. package/web/assets/ExcalidrawCanvas-TpbzBF-J.js +0 -1
  187. package/web/assets/FloatingToc-B1d4-5EL.js +0 -1
  188. package/web/assets/HomepageView-DnQ_5Obe.css +0 -1
  189. package/web/assets/HomepageView-nzKfbHM-.js +0 -1
  190. package/web/assets/ImageStudioPanels-B2PTq6Yb.js +0 -3
  191. package/web/assets/ImageStudioView-Cawr6pGW.js +0 -1
  192. package/web/assets/InlineFiles-DKPH5JHz.js +0 -1
  193. package/web/assets/MarkdownBlock--__nPQGh.css +0 -1
  194. package/web/assets/MarkdownBlock-BHpDy2qQ.js +0 -58
  195. package/web/assets/ModelPill-ChzAM3z1.js +0 -2
  196. package/web/assets/MuseLibraryView-DLuQ_jyV.js +0 -2
  197. package/web/assets/MuseView-CDDwV6SR.js +0 -6
  198. package/web/assets/PageHistoryPanel-BbdXpjJM.js +0 -2
  199. package/web/assets/PenRow-BY-MZLDQ.js +0 -1
  200. package/web/assets/ProductView-0ieVL3rY.js +0 -1
  201. package/web/assets/RightPanel-BRexwQ3W.js +0 -4
  202. package/web/assets/RunLocationPicker-BrDfOu8-.css +0 -1
  203. package/web/assets/RunLocationPicker-CadYiE7C.js +0 -43
  204. package/web/assets/SketchCard-BcXCdBAs.js +0 -641
  205. package/web/assets/StudioGuestSurface-ZJFKnNYF.js +0 -1
  206. package/web/assets/TodoListView-DuRdVFgB.js +0 -1
  207. package/web/assets/Tooltip-DtDUL18W.js +0 -1
  208. package/web/assets/UnifiedPage-CWXc_mo1.css +0 -1
  209. package/web/assets/UnifiedPage-D7JTfABH.js +0 -68
  210. package/web/assets/appStore-ClD7vq5L.css +0 -1
  211. package/web/assets/appStore-affnJoin.js +0 -3292
  212. package/web/assets/approvalText-Cy2UAUAQ.js +0 -2
  213. package/web/assets/arrow-up-right-R4P9Mmxz.js +0 -1
  214. package/web/assets/astryxBridge-CF_hpqC2.css +0 -1
  215. package/web/assets/astryxBridge-CT2wZJXs.js +0 -70
  216. package/web/assets/automationListSource-JVBMsMbC.js +0 -1
  217. package/web/assets/boardSurface-Ce0_vf9f.js +0 -1
  218. package/web/assets/book-open-CcXCToyx.js +0 -1
  219. package/web/assets/calendarNavStore-tQJRVpum.js +0 -1
  220. package/web/assets/canvasPrefs-CSuX9aLF.js +0 -1
  221. package/web/assets/chatBoxSurface-IG6Vu4Dz.js +0 -1
  222. package/web/assets/circle-question-mark-O8AhUz35.js +0 -1
  223. package/web/assets/circle-x-AV2ZWulM.js +0 -1
  224. package/web/assets/code-xml-DdR58F83.js +0 -1
  225. package/web/assets/codingNavigation-CxdCK78-.js +0 -53
  226. package/web/assets/codingNavigation-_tOR0ell.css +0 -1
  227. package/web/assets/create-BgJN5qsj.js +0 -14
  228. package/web/assets/dashboardSurface-BY-AFB-r.js +0 -1
  229. package/web/assets/deskCapture-BD2qD6NI.js +0 -1
  230. package/web/assets/emoji-BPdA62d7.js +0 -1
  231. package/web/assets/floatingTocSurface-BM2SYE_u.js +0 -1
  232. package/web/assets/foldActions-BcyvNVBs.js +0 -1
  233. package/web/assets/folder-CCZqnwRc.js +0 -1
  234. package/web/assets/folder-plus-BJKT1Pqg.js +0 -1
  235. package/web/assets/gestures-BwPbZDkU.js +0 -1
  236. package/web/assets/hack2gate-dark-Dx2RtDRI.jpg +0 -0
  237. package/web/assets/hack2gate-light-DRKq9tyS.jpg +0 -0
  238. package/web/assets/hand-DRu7IJdU.js +0 -1
  239. package/web/assets/hard-drive-CXNJUCXw.js +0 -1
  240. package/web/assets/i18n-BMo19xaR.css +0 -1
  241. package/web/assets/i18n.generated-DvY59Zq3.js +0 -15
  242. package/web/assets/imageStudio-Axwmd4GW.js +0 -2
  243. package/web/assets/imageStudio-DZ0qGU2s.css +0 -1
  244. package/web/assets/index-B1rE_NwA.js +0 -1
  245. package/web/assets/index-BFTY79aq.js +0 -1
  246. package/web/assets/index-BGEkZBs2.js +0 -1
  247. package/web/assets/index-BO2XJc36.js +0 -13
  248. package/web/assets/index-BYUntVIZ.js +0 -297
  249. package/web/assets/index-C65u4fXd.js +0 -1
  250. package/web/assets/index-C_Ohi-I3.js +0 -1
  251. package/web/assets/index-CkMhazev.js +0 -1
  252. package/web/assets/index-D3CYvMpl.js +0 -1
  253. package/web/assets/index-D78izbLA.js +0 -1
  254. package/web/assets/index-DY0M_dpd.js +0 -1
  255. package/web/assets/index-DcbZwhpE.js +0 -1
  256. package/web/assets/index-Dlkq7gkE.js +0 -1
  257. package/web/assets/index-HqmJW2np.js +0 -1
  258. package/web/assets/index-LxlyPm0_.js +0 -1
  259. package/web/assets/index-Uq4J2aoW.js +0 -1
  260. package/web/assets/index-WbVt2P8R.js +0 -3
  261. package/web/assets/index-XyjIhkPw.js +0 -1
  262. package/web/assets/index-Y2kzYlZq.js +0 -1
  263. package/web/assets/index-mB0EQkyZ.js +0 -1
  264. package/web/assets/index-pJh7JN7_.js +0 -1
  265. package/web/assets/index-taRxNsbp.js +0 -7
  266. package/web/assets/launchpad-C2c1MSVX.css +0 -1
  267. package/web/assets/layout-grid-Hs3eDA07.js +0 -1
  268. package/web/assets/linkFollow-Msu1XH9v.js +0 -8
  269. package/web/assets/list-tree-DmuRb-p9.js +0 -1
  270. package/web/assets/lock-kffGfeHt.js +0 -1
  271. package/web/assets/log-out-B5gEP0tF.js +0 -1
  272. package/web/assets/main-BiS_5wrB.css +0 -1
  273. package/web/assets/main-DIyFlyfK.js +0 -20
  274. package/web/assets/markdownEditorSurface-Bql20IAf.css +0 -1
  275. package/web/assets/markdownEditorSurface-Cx2rqFAY.js +0 -3
  276. package/web/assets/message-square-plus-DxBPIhPS.js +0 -1
  277. package/web/assets/minus-CfoZ4oxr.js +0 -1
  278. package/web/assets/mobileEntry-B8JwR53-.js +0 -13
  279. package/web/assets/mobileEntry-DS1vohuL.css +0 -1
  280. package/web/assets/nativeDownload-Udrv_tmU.js +0 -1
  281. package/web/assets/pageChrome-D-9npbUE.js +0 -1
  282. package/web/assets/pageChrome-eO9pb2fH.css +0 -1
  283. package/web/assets/pen-tool-D_Y9We9x.js +0 -1
  284. package/web/assets/pencil-DGiTRzW1.js +0 -1
  285. package/web/assets/phoneList-BQfCJwKF.css +0 -1
  286. package/web/assets/phoneList-DHUia6HT.js +0 -9
  287. package/web/assets/pluginChat-BXuJiMYi.js +0 -2
  288. package/web/assets/redo-2-QgiKEg9T.js +0 -1
  289. package/web/assets/rotate-ccw-BLoH5er1.js +0 -1
  290. package/web/assets/sharePage-DYYN5usb.js +0 -2
  291. package/web/assets/star-BmywYD3u.js +0 -1
  292. package/web/assets/tableSurface-21LDYY_G.js +0 -1
  293. package/web/assets/terminal-BlmA_Z1C.js +0 -1
  294. package/web/assets/theme-Dgqst5S9.css +0 -1
  295. package/web/assets/type-DmIL6FB-.js +0 -1
  296. package/web/assets/undo-2-yMeXc8Wi.js +0 -1
  297. package/web/assets/unitOwnerAccess-Bggl7bDP.js +0 -1
  298. package/web/assets/unitShim-BP2nBO_k.js +0 -5
  299. package/web/assets/upload-D20PZHXc.js +0 -1
  300. package/web/assets/userSpaces-CrLrKklx.js +0 -1
  301. package/web/assets/viewportLock-DO1lzA2N.css +0 -1
  302. package/web/assets/viewportLock-tlT6H_Hc.js +0 -629
  303. package/web/assets/workflow-Bd6xBHiT.js +0 -1
  304. package/web/assets/zoom-in-_TgFOpyv.js +0 -1
@@ -0,0 +1 @@
1
+ .agents-space{display:flex;width:100%;height:100%;min-height:0;color:var(--text);container-type:inline-size}.agents-roster{width:216px;flex-shrink:0;display:flex;flex-direction:column;padding:22px 12px;gap:18px;background:var(--overlay-light)}.agents-roster-heading{display:flex;justify-content:space-between;padding-inline:8px;color:var(--text-muted);font-size:var(--ui-font-meta, 12px)}.agents-roster-heading>span{display:inline-flex;align-items:baseline;gap:6px}.agents-roster-heading small{font-size:var(--ui-font-caption, 11px);color:var(--text-faint)}.agents-roster-heading>button{display:grid;place-items:center;width:24px;height:24px;margin:-4px 0;border:0;border-radius:var(--radius-sm, 8px);background:transparent;color:var(--text-muted);cursor:pointer}.agents-roster-heading>button:hover{background:var(--overlay-medium);color:var(--text)}.agents-search,.profile-search{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:var(--radius-sm, 8px);background:var(--overlay-light);color:var(--text-muted)}.agents-search input,.profile-search input{width:100%;min-width:0;border:0;background:transparent;outline:none;padding:0;box-shadow:none;font-size:var(--ui-font-meta, 12px);color:var(--text)}.profile-search:focus-within{outline:var(--focus-ring) solid var(--signal-line);outline-offset:-2px}.agents-roster-list{overflow:auto;flex:1;min-height:0}.agents-roster-row{position:relative}.agents-roster-row.dragging{opacity:.5}.agents-roster-item{width:100%;display:flex;gap:10px;align-items:center;border:0;background:transparent;padding:12px 8px;text-align:left;border-radius:var(--radius-sm, 8px);color:var(--text);cursor:pointer}.agents-roster-item:hover,.agents-roster-item.selected{background:var(--overlay-medium)}.agents-roster-item>span:last-child{min-width:0;display:grid;gap:4px;padding-right:16px}.agents-roster-item strong{font-size:var(--ui-font-body, 13px);font-weight:600}.agents-roster-item strong svg{display:inline;margin-left:5px;vertical-align:-1px;color:var(--accent-ink)}.agents-roster-item small{color:var(--text-muted);font-size:var(--ui-font-caption, 11px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agents-roster-more{position:absolute;right:3px;top:16px;display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:var(--radius-sm, 8px);background:transparent;color:var(--text-muted);cursor:pointer;opacity:0}.agents-roster-row:hover .agents-roster-more,.agents-roster-more:focus-visible,.agents-roster-more[aria-expanded=true]{opacity:1}.agents-roster-more:hover{background:var(--overlay-medium);color:var(--text)}.agents-roster-actions{display:flex;flex-wrap:wrap;gap:2px 8px;margin:2px 4px 8px;padding:7px;border-radius:var(--radius-sm, 8px);background:var(--overlay-medium)}.agents-roster-actions>span{display:inline-flex;align-items:center;gap:4px;width:100%;color:var(--text-muted);font-size:var(--ui-font-caption, 11px)}.agents-roster-actions>button{display:inline-flex;align-items:center;gap:5px;padding:5px;border:0;border-radius:var(--radius-sm, 8px);background:transparent;color:var(--text);font-size:var(--ui-font-caption, 11px);cursor:pointer}.agents-roster-actions>button:hover{background:var(--overlay-strong)}.agents-roster-actions>button.danger{color:var(--danger)}.agents-roster-actions>button:disabled{opacity:.45;cursor:default}.agents-roster-create{justify-content:flex-start;gap:8px;padding-inline:8px;margin-top:0}.agents-character{flex:1;min-width:0;min-height:0;overflow:hidden}.agent-create-form{display:grid;align-content:start;gap:20px;width:min(100% - 48px,590px);height:100%;overflow:auto;margin:0 auto;padding:48px 0}.agent-create-form>header{display:flex;align-items:flex-start;gap:14px}.agent-create-form>header>svg{color:var(--accent-ink);margin-top:5px}.agent-create-form h2{margin:0 0 5px;color:var(--text);font-size:var(--ui-font-title, 16px)}.agent-create-form p{margin:0;color:var(--text-muted);font-size:var(--ui-font-meta, 12px);line-height:1.6}.agent-create-form>div:last-child{display:flex;justify-content:flex-end;gap:8px}.agent-profile{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:100%;height:100%;min-height:0;max-width:1000px;margin:0 auto;padding:0 32px;color:var(--text)}.agent-profile [hidden]{display:none!important}.agent-character-hero{display:flex;align-items:center;gap:22px;padding:24px 0;min-width:0}.agent-portrait{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:96px;height:104px;color:var(--accent-ink);border-radius:var(--radius-lg, 20px);background:var(--overlay-light);overflow:hidden}.agent-portrait img{width:100%;height:100%;object-fit:cover}.agent-portrait.small{width:36px;height:40px;border-radius:var(--radius-sm, 8px)}.agent-character-id{display:block;width:calc(100% + 7px);min-width:0;margin-left:-7px;padding:1px 6px;font-size:var(--ui-font-caption, 11px);color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm, 8px);text-overflow:ellipsis;transition:background .16s ease,border-color .16s ease}.agent-character-id:not([readonly]):hover{background:var(--overlay-light)}.agent-character-id:not([readonly]):focus{color:var(--text);background:var(--bg-card);border-color:var(--accent-ink)}.agent-character-id[readonly]{cursor:default}.agent-character-identity{min-width:0;flex:1}.agent-portrait-slot{position:relative;flex-shrink:0}.agent-portrait-edit{position:relative;cursor:pointer}.agent-portrait-edit input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.agent-portrait-edit:has(input:focus-visible){outline:var(--focus-ring) solid var(--signal-line);outline-offset:2px}.agent-portrait-badge,.agent-portrait-remove{position:absolute;display:grid;place-items:center;padding:0;color:var(--text);background:var(--bg-card);border:1px solid var(--border);border-radius:50%;opacity:0;transition:opacity .16s ease}.agent-portrait-badge{right:5px;bottom:5px;width:24px;height:24px;pointer-events:none}.agent-portrait-remove{top:-6px;right:-6px;width:20px;height:20px;color:var(--text-muted);cursor:pointer}.agent-portrait-remove:hover{color:var(--text)}.agent-portrait-slot:hover .agent-portrait-badge,.agent-portrait-slot:hover .agent-portrait-remove,.agent-portrait-edit:has(input:focus-visible) .agent-portrait-badge,.agent-portrait-edit[aria-busy=true] .agent-portrait-badge,.agent-portrait-remove:focus-visible{opacity:1}@media(hover:none){.agent-portrait-badge,.agent-portrait-remove{opacity:1}}.agent-character-name,.agent-character-desc{display:block;width:calc(100% + 7px);min-width:0;margin-left:-7px;padding:1px 6px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm, 8px);transition:background .16s ease,border-color .16s ease}.agent-character-name:hover,.agent-character-desc:hover{background:var(--overlay-light)}.agent-character-name:focus,.agent-character-desc:focus{color:var(--text);background:var(--bg-card);border-color:var(--accent-ink)}.agent-character-name{margin-block:3px 4px;font-size:var(--ui-font-display, 20px);font-weight:600;line-height:1.25;letter-spacing:-.025em;text-overflow:ellipsis}.agent-character-desc{max-width:547px;margin-block:0 6px;font-size:var(--ui-font-meta, 12px);line-height:1.6;color:var(--text-muted);resize:none;field-sizing:content;min-height:calc(1.6em + 4px);max-height:calc(4.8em + 4px)}.agent-state{display:inline-flex;align-items:center;gap:6px;font-size:var(--ui-font-caption, 11px);color:var(--text-muted)}.agent-state i{width:5px;height:5px;border-radius:50%;background:var(--text-muted)}.agent-state.working{color:var(--accent-ink)}.agent-state.working i{background:var(--signal-mark)}.profile-expand{flex-shrink:0;align-self:flex-start;display:grid;place-items:center;width:30px;height:30px;padding:0;background:transparent;border:0;border-radius:var(--radius-sm, 8px);color:var(--text-muted);cursor:pointer}.profile-expand:hover{background:var(--overlay-medium);color:var(--text)}.agent-section-nav{--profile-nav-gap: 4px;--profile-nav-padding: 5px;position:relative;isolation:isolate;display:flex;gap:var(--profile-nav-gap);padding:var(--profile-nav-padding);background:var(--overlay-light);border-radius:var(--radius-md, 12px);min-width:0}.agent-section-nav:before{content:"";position:absolute;z-index:-1;pointer-events:none;inset-block:var(--profile-nav-padding);left:var(--profile-nav-padding);width:calc((100% - 2 * var(--profile-nav-padding) - (var(--profile-tab-count, 5) - 1) * var(--profile-nav-gap)) / var(--profile-tab-count, 5));border-radius:var(--radius-sm, 8px);background:var(--bg);box-shadow:var(--btn-shadow);transform:translate(calc(var(--profile-tab-index, 0) * (100% + var(--profile-nav-gap))));transition:transform .2s cubic-bezier(.2,.8,.2,1)}.agent-section-nav button{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 10px;border:0;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm, 8px);cursor:pointer;white-space:nowrap;font-size:var(--ui-font-meta, 12px);transition:background .16s ease,color .16s ease}.agent-section-nav button svg{flex-shrink:0}.agent-section-nav button span{overflow:hidden;text-overflow:ellipsis}.agent-section-nav button:hover{color:var(--text);background:var(--overlay-medium)}.agent-section-nav button.selected{color:var(--accent-ink);background:transparent}.agent-profile-content{min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px 2px;scrollbar-width:thin}.agent-profile-content:focus{outline:none}.agent-profile-content:focus-visible{outline:var(--focus-ring) solid var(--signal-line);outline-offset:-2px}.profile-edit-fields{border:0;margin:0;padding:0;min-width:0}.profile-edit-fields:disabled{opacity:.7}.agent-profile-content h3{font-size:var(--ui-font-meta, 12px);color:var(--text-muted);font-weight:500;margin:24px 0 12px}.agent-current-session{display:grid;gap:8px;margin-bottom:24px;padding:16px;background:var(--overlay-light);border-radius:var(--radius-md, 12px);overflow-wrap:anywhere}.agent-current-session small,.agent-current-session>span{font-size:var(--ui-font-caption, 11px);line-height:1.6;color:var(--text-muted)}.agent-current-session>strong{font-size:var(--ui-font-body, 13px);font-weight:600}.agent-current-session .profile-model-field{margin-top:6px}.agent-profile-link{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:16px;min-height:36px;padding:8px 0;color:var(--text-muted);font-size:var(--ui-font-meta, 12px);background:transparent;border:0;cursor:pointer;text-align:left}.agent-profile-link:hover{color:var(--accent-ink)}.agent-profile-link svg{flex-shrink:0}.agent-profile-muted{color:var(--text-muted);font-size:var(--ui-font-meta, 12px);line-height:1.65;overflow-wrap:anywhere}.agent-profile-error{color:var(--danger);font-size:var(--ui-font-meta, 12px);line-height:1.6;overflow-wrap:anywhere;margin:0}.profile-config-group{margin-bottom:26px}.profile-config-group>h2{font-size:var(--ui-font-body, 13px);font-weight:600;margin:0 0 10px}.profile-config-group>p{margin:0 0 16px}.agent-config-fields{display:grid;gap:18px}.agent-field{display:grid;gap:8px;color:var(--text-muted);font-size:var(--ui-font-meta, 12px);min-width:0}.agent-field input,.agent-field select,.agent-field textarea{width:100%;min-width:0;color:var(--text);font-size:var(--ui-font-body, 13px)}.agent-field input:not([type=checkbox]),.agent-field select{min-height:36px}.agent-field textarea{resize:vertical;line-height:1.65}.agent-avatar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-width:0}.agent-avatar-actions label,.agent-avatar-actions button{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.agent-avatar-actions label[aria-disabled=true]{opacity:.55;cursor:default}.agent-avatar-actions input[type=file]{display:none}.agent-avatar-actions small{flex-basis:100%;color:var(--text-muted);font-size:10px;line-height:1.5}.profile-list-toolbar{display:grid;gap:6px}.profile-list-controls{display:flex;gap:8px;min-width:0}.profile-list-controls>.profile-search{flex:1 1 0;min-width:0}.profile-list-controls>select{flex:0 1 auto;min-width:0;max-width:46%;min-height:36px;font-size:var(--ui-font-meta, 12px);color:var(--text)}.profile-list-summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 12px;color:var(--text-muted);font-size:var(--ui-font-caption, 11px);line-height:1.6}.profile-list-actions{display:flex;flex-wrap:wrap;gap:0 12px}.agent-skills-panel{display:grid;gap:8px;min-width:0}.agent-skills-panel .profile-save-notice{overflow-wrap:anywhere}.agent-skills-panel .profile-list-toolbar{margin-bottom:4px}.agent-skills-policy-hint{margin:0;color:var(--text-muted);font-size:var(--ui-font-caption, 11px);line-height:1.55}.agent-skill-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:20px;min-width:0}.agent-skill-section-head:first-of-type{margin-top:8px}.agent-skill-section-head>div{min-width:0}.agent-skill-section-head h3{margin:0 0 3px;color:var(--text);font-size:var(--ui-font-body, 13px);font-weight:600}.agent-skill-section-head p{margin:0;color:var(--text-muted);font-size:var(--ui-font-caption, 11px);line-height:1.5}.agent-skill-section-head .btn{flex-shrink:0;display:inline-flex;align-items:center;gap:5px}.agent-skill-list{display:grid;gap:4px;min-width:0}.agent-skill-row{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:10px 11px;border-radius:var(--radius-sm, 8px);background:var(--overlay-light)}.agent-skill-row.enabled{background:var(--overlay-medium)}.agent-skill-row>label{display:grid;place-items:center;width:20px;height:22px;flex-shrink:0;cursor:pointer}.agent-skill-row input{accent-color:var(--signal-mark)}.agent-skill-row>svg{flex-shrink:0;align-self:center;color:var(--text-muted);transition:transform .16s ease}.agent-skill-row>svg.open{transform:rotate(90deg)}.agent-skill-summary{display:grid;gap:2px;flex:1;min-width:0;padding:0;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.agent-skill-summary strong{font-size:var(--ui-font-body, 13px);font-weight:500;overflow-wrap:anywhere}.agent-skill-summary span{color:var(--text-muted);font-size:var(--ui-font-meta, 12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-skill-summary small{color:var(--text-faint, var(--text-muted));font-size:var(--ui-font-caption, 11px)}.agent-skill-summary:hover strong{color:var(--accent-ink)}.agent-skill-editor{display:grid;gap:10px;min-width:0;padding:14px;border-radius:var(--radius-md, 12px);background:var(--overlay-light)}.agent-skill-editor>label{display:grid;gap:5px;color:var(--text-muted);font-size:var(--ui-font-meta, 12px)}.agent-skill-editor input,.agent-skill-editor textarea{width:100%;min-width:0;color:var(--text);font-size:var(--ui-font-body, 13px)}.agent-skill-editor textarea{line-height:1.6;resize:vertical}.agent-skill-editor>div{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px}.agent-skill-detail{display:grid;gap:10px;min-width:0;margin-top:12px;padding:14px;border-radius:var(--radius-md, 12px);background:var(--overlay-light)}.agent-skill-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.agent-skill-detail-head strong{font-size:var(--ui-font-body, 13px)}.agent-skill-detail>p{margin:0;font-size:var(--ui-font-meta, 12px);line-height:1.6;color:var(--text-muted)}.agent-skill-detail>small{font-size:var(--ui-font-caption, 11px);line-height:1.5;color:var(--text-faint, var(--text-muted));overflow-wrap:anywhere}.agent-skill-content{min-width:0;max-height:320px;overflow:auto;padding:12px;border-radius:var(--radius-sm, 8px);background:var(--bg);overflow-wrap:anywhere}.agent-skill-detail details{color:var(--text-muted);font-size:var(--ui-font-caption, 11px)}.agent-skill-detail details>summary{cursor:pointer}.agent-skill-detail ul{margin:8px 0 0;padding-left:20px;overflow-wrap:anywhere}.agent-skill-detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.agent-skill-detail-actions .btn{display:inline-flex;align-items:center;gap:5px}.agent-skill-detail-actions .danger{color:var(--danger)}.profile-text-action{color:var(--text-muted);font-size:var(--ui-font-caption, 11px);background:transparent;border:0;padding:6px 0;cursor:pointer}.profile-text-action:hover,.profile-text-action[aria-pressed=true]{color:var(--accent-ink)}.profile-text-action[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px}.profile-text-action:disabled{opacity:.45;cursor:default}.agent-equipment-list{margin-top:10px;display:grid;gap:3px}.agent-equipment-item{display:flex;gap:10px;align-items:flex-start;padding:12px 10px;border-radius:var(--radius-sm, 8px);font-size:var(--ui-font-meta, 12px);line-height:1.6;cursor:pointer;transition:background .16s ease}.agent-equipment-item:hover,.agent-equipment-item.enabled{background:var(--overlay-light)}.agent-equipment-item:has(input:focus-visible){outline:var(--focus-ring) solid var(--signal-line);outline-offset:-2px}.agent-equipment-item input{flex-shrink:0;margin-top:3px;accent-color:var(--signal-mark)}.agent-equipment-item strong{font-size:var(--ui-font-body, 13px);font-weight:500;overflow-wrap:anywhere}div.agent-equipment-item{display:grid;gap:1px;padding:7px 10px;cursor:default}div.agent-equipment-item>label{display:flex;align-items:flex-start;gap:10px;min-width:0;cursor:pointer}.equipment-desc{display:block;width:calc(100% - 23px);min-width:0;margin-left:23px;padding:0;text-align:left;font-size:var(--ui-font-meta, 12px);line-height:1.6;color:var(--text-muted);background:transparent;border:0;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-desc:hover{color:var(--text)}.equipment-desc:focus-visible{outline:var(--focus-ring) solid var(--signal-line);outline-offset:1px;border-radius:4px}.equipment-desc[aria-expanded=true]{white-space:normal;overflow-wrap:anywhere}.equipment-group{margin-top:10px;border-radius:var(--radius-sm, 8px);background:var(--overlay-light)}.equipment-group>summary{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 12px;font-size:var(--ui-font-meta, 12px);font-weight:500;cursor:pointer;border-radius:var(--radius-sm, 8px)}.equipment-group>summary:hover{background:var(--overlay-light)}.equipment-group>summary:before{content:"";flex-shrink:0;align-self:center;width:0;height:0;border-block:4px solid transparent;border-left:6px solid currentColor;opacity:.7;transition:transform .16s ease}.equipment-group[open]>summary:before{transform:rotate(90deg)}.equipment-group>summary::-webkit-details-marker{display:none}.equipment-group>summary>span{flex:1;min-width:0}.equipment-group>summary>small{font-size:var(--ui-font-caption, 11px);font-weight:400;color:var(--text-muted);white-space:nowrap}.equipment-group>.agent-equipment-list{margin-top:0;padding:0 4px 6px}.equipment-group .agent-equipment-item.enabled{background:transparent}.equipment-group .agent-equipment-item:hover{background:var(--overlay-light)}.profile-empty{padding:26px 12px;text-align:center;font-size:var(--ui-font-meta, 12px);color:var(--text-muted)}.agent-profile-save{flex-shrink:0;padding:12px 0;border-top:1px solid var(--border);display:grid;gap:8px;min-width:0}.agent-profile-save:empty{display:none}.agent-profile-save small{color:var(--text-muted);font-size:var(--ui-font-caption, 11px);line-height:1.6;overflow-wrap:anywhere}.agent-profile-save.is-dirty>small{color:var(--accent-ink)}.agent-profile-save>div{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.agent-profile-save button{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:34px;font-size:var(--ui-font-meta, 12px)}.profile-save-notice{margin:0;display:flex;align-items:center;gap:7px;font-size:var(--ui-font-caption, 11px);color:var(--accent-ink);line-height:1.6}.profile-save-notice svg{flex-shrink:0}.agent-profile-panel{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;color:var(--text)}.agent-profile-panel-title{padding:12px 16px 0;font-size:var(--ui-font-caption, 11px);color:var(--text-muted);flex-shrink:0}.agent-profile-panel-title:has(>button){display:flex;align-items:baseline;justify-content:space-between;gap:8px}.agent-profile-panel>.agent-profile{flex:1;height:auto}.agent-profile.compact{padding:0 16px}.compact .agent-character-hero{gap:12px;padding:16px 0;align-items:center}.compact .agent-portrait{width:48px;height:54px;border-radius:var(--radius-md, 12px)}.compact .agent-character-name{font-size:var(--ui-font-title, 16px);margin-block:2px 3px}.compact .agent-character-desc{font-size:var(--ui-font-caption, 11px);margin-bottom:4px}.compact .agent-portrait-badge{right:3px;bottom:3px;width:18px;height:18px}.compact .agent-portrait-remove{top:-5px;right:-5px;width:17px;height:17px}.compact .agent-section-nav{--profile-nav-gap: 2px;--profile-nav-padding: 4px}.compact .agent-section-nav button{flex-direction:column;gap:5px;font-size:var(--ui-font-caption, 11px);padding:7px 2px}.compact .agent-profile-content{padding-block:18px}.compact .agent-current-session{padding:12px}.agent-profile-team{padding:12px 18px}.agent-profile-team h3{display:flex;align-items:center;gap:8px;font-size:var(--ui-font-body, 13px)}.profile-model-trigger{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:38px;padding:9px 11px;text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);background:var(--bg);color:var(--text);cursor:pointer}.profile-model-trigger>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-model-trigger svg{flex-shrink:0;transition:transform .16s ease}.profile-model-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.profile-model-options{padding:8px;background:var(--overlay-light);border-radius:var(--radius-sm, 8px);animation:profile-enter .16s ease both}.profile-model-results{max-height:220px;overflow:auto;margin-top:6px}.profile-model-results button{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:9px 8px;color:var(--text);background:transparent;border:0;border-radius:var(--radius-sm, 8px);text-align:left;cursor:pointer;font-size:var(--ui-font-meta, 12px);overflow-wrap:anywhere}.profile-model-results button:hover,.profile-model-results button[aria-pressed=true]{background:var(--overlay-medium)}.profile-model-results button>span{flex:1;min-width:0;display:grid;gap:3px}.profile-model-results strong{font-size:var(--ui-font-meta, 12px);font-weight:500}.profile-model-results small{color:var(--text-muted);font-size:var(--ui-font-caption, 11px)}.profile-model-results svg{flex-shrink:0;color:var(--accent-ink)}.profile-text-editor{display:grid;gap:8px;min-width:0}.profile-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--ui-font-meta, 12px);color:var(--text-muted)}.profile-text-editor>textarea{width:100%;min-width:0;min-height:150px;padding:12px;resize:vertical;font-size:var(--ui-font-body, 13px);line-height:1.75;tab-size:2}.profile-text-preview{min-height:150px;padding:12px;background:var(--overlay-light);border-radius:var(--radius-sm, 8px);overflow-wrap:anywhere}.profile-editor-hint{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:var(--ui-font-caption, 11px);line-height:1.6;color:var(--text-muted)}.profile-editor-hint>span{margin-left:auto;font-variant-numeric:tabular-nums}.profile-disclosure{margin-bottom:16px;padding:12px;background:var(--overlay-light);border-radius:var(--radius-sm, 8px)}.profile-disclosure>summary{cursor:pointer;padding-block:3px;color:var(--text);font-size:var(--ui-font-meta, 12px);font-weight:500}.profile-disclosure[open]>summary{margin-bottom:14px}.profile-memory{font-size:var(--ui-font-body, 13px);line-height:1.7}.profile-memory [hidden]{display:none!important}.profile-memory textarea{width:100%;min-width:0;padding:10px;font-size:var(--ui-font-body, 13px);line-height:1.75;resize:vertical}.profile-memory summary{cursor:pointer;padding-block:6px;font-size:var(--ui-font-meta, 12px)}.profile-memory li{padding-bottom:12px}.profile-memory,.memory-list,.profile-growth-memory{display:grid;gap:10px;min-width:0}.profile-growth-memory>.agent-profile-link{margin-top:0}.profile-log{display:grid;gap:2px;min-width:0}.profile-log>.harness-summary{margin-bottom:8px}.profile-log .agentmem-log-body{padding:0 8px 10px 26px;font-size:var(--ui-font-body, 13px);line-height:1.7}.profile-log .agentmem-log-body h3{margin:8px 0 0;font-size:var(--ui-font-caption, 11px);font-weight:500;line-height:1.6;color:var(--text-muted);font-variant-numeric:tabular-nums}.profile-log .agentmem-log-body p{margin:0}.profile-log .agentmem-log-edit.field{padding-left:26px}.profile-log .agentmem-log-edit textarea{font-size:var(--ui-font-body, 13px);line-height:1.7}.profile-growth-memory .profile-disclosure,.agent-schedule .profile-disclosure{margin-bottom:0;padding:8px 12px}.profile-growth-memory .profile-disclosure[open]>summary,.agent-schedule .profile-disclosure[open]>summary{margin-bottom:10px}.profile-disclosure>summary>small{float:right;margin-left:10px;font-size:var(--ui-font-caption, 11px);font-weight:400;color:var(--text-muted)}.memory-add>summary{display:inline-flex;align-items:center;gap:6px;padding-block:2px;font-size:var(--ui-font-meta, 12px);color:var(--accent-ink);list-style:none}.memory-add>summary::-webkit-details-marker{display:none}.memory-add>summary:hover{text-decoration:underline;text-underline-offset:3px}.memory-entry>p{margin:0;font-size:var(--ui-font-body, 13px);line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.memory-entry-meta{display:flex;align-items:flex-start;gap:2px;min-width:0;margin-bottom:-4px}.memory-entry-meta>details{flex:1;min-width:0;font-size:var(--ui-font-caption, 11px);line-height:1.6;color:var(--text-muted);overflow-wrap:anywhere}.memory-entry-meta>details>summary{padding-block:3px;font-size:var(--ui-font-caption, 11px)}.memory-entry-meta>.harness-undo{margin:0}.memory-footnote{margin:0;font-size:var(--ui-font-caption, 11px);line-height:1.6;color:var(--text-faint, var(--text-muted))}.profile-segment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:16px}.profile-segment>button{display:grid;gap:2px;min-width:0;padding:10px 12px;text-align:left;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm, 8px);cursor:pointer;transition:background .16s ease,color .16s ease}.profile-segment>button:hover{background:var(--overlay-light);color:var(--text)}.profile-segment>button[aria-pressed=true]{color:var(--accent-ink);background:var(--overlay-medium)}.profile-segment strong{display:flex;align-items:center;gap:6px;min-width:0;font-size:var(--ui-font-body, 13px);font-weight:600;overflow-wrap:anywhere}.profile-segment small{font-size:var(--ui-font-caption, 11px);line-height:1.5;color:var(--text-muted);overflow-wrap:anywhere;text-wrap:balance}.profile-segment .profile-tab-badge{position:static;margin-left:auto}.schedule-entry,.schedule-rule{display:grid;gap:6px;min-width:0;padding:12px;border-radius:var(--radius-sm, 8px);background:var(--overlay-light)}.schedule-entry.is-past,.schedule-rule.is-past{opacity:.62}.schedule-entry>p{margin:0;font-size:var(--ui-font-meta, 12px);line-height:1.6;color:var(--text-muted);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.schedule-when{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:var(--ui-font-meta, 12px);line-height:1.6;color:var(--text-muted);font-variant-numeric:tabular-nums}.schedule-when>.harness-kind{margin-right:0}.schedule-when>time{color:var(--text)}.schedule-rule{grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:start}.schedule-rule>svg{margin-top:3px;color:var(--text-muted)}.schedule-rule>span{display:grid;gap:2px;min-width:0}.schedule-rule strong{font-size:var(--ui-font-body, 13px);font-weight:500;overflow-wrap:anywhere}.schedule-rule small{font-size:var(--ui-font-caption, 11px);line-height:1.6;color:var(--text-muted);overflow-wrap:anywhere}.schedule-rules>h3{margin:10px 0 8px;font-size:var(--ui-font-meta, 12px);font-weight:500;color:var(--text-muted)}.schedule-past{margin-bottom:0}.schedule-past>.harness-entries{margin-top:0}.agent-schedule .harness-summary .profile-text-action,.profile-memory .harness-summary .profile-text-action{color:var(--text-muted)}.agent-schedule .harness-summary .profile-text-action:hover,.profile-memory .harness-summary .profile-text-action:hover{color:var(--accent-ink)}.agent-harness{display:grid;gap:14px;min-width:0}.agent-harness>p{margin:0}.harness-summary{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font-size:var(--ui-font-meta, 12px);line-height:1.6;color:var(--text-muted)}.harness-summary time{white-space:nowrap}.harness-summary .profile-text-action{display:inline-flex;align-items:center;gap:6px;padding:0;color:var(--accent-ink)}.harness-summary .profile-text-action:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px}.harness-entries{list-style:none;margin:0;padding:0;display:grid;gap:6px}.harness-entry{display:grid;gap:6px;min-width:0;padding:12px;border-radius:var(--radius-sm, 8px);background:var(--overlay-light)}.harness-entry-head{display:flex;align-items:flex-start;gap:8px;min-width:0}.harness-entry-head strong{flex:1;min-width:0;font-size:var(--ui-font-body, 13px);font-weight:600;line-height:1.5;overflow-wrap:anywhere}.harness-kind{display:inline-block;margin-right:8px;padding:0 7px;vertical-align:1px;font-size:var(--ui-font-caption, 11px);font-weight:500;line-height:17px;white-space:nowrap;color:var(--text-muted);border:1px solid var(--overlay-strong);border-radius:var(--radius-pill, 999px)}.harness-kind.recipe{color:var(--accent-ink)}.harness-undo{flex-shrink:0;display:grid;place-items:center;width:24px;height:24px;margin:-2px -4px 0 0;padding:0;color:var(--text-muted);background:transparent;border:0;border-radius:var(--radius-sm, 8px);cursor:pointer}.harness-undo:hover{color:var(--text);background:var(--overlay-medium)}.harness-undo:disabled{opacity:.45;cursor:default}.harness-entry>p{margin:0;font-size:var(--ui-font-meta, 12px);line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap}.harness-evidence,.harness-meta{font-size:var(--ui-font-caption, 11px);line-height:1.6;color:var(--text-muted);overflow-wrap:anywhere}.harness-meta{color:var(--text-faint, var(--text-muted));font-variant-numeric:tabular-nums}.harness-empty{display:grid;justify-items:center;gap:10px;padding:32px 16px;text-align:center;color:var(--text-muted);background:var(--overlay-light);border-radius:var(--radius-md, 12px)}.harness-empty>svg{color:var(--accent-ink)}.harness-empty>p{max-width:34em;margin:0;font-size:var(--ui-font-meta, 12px);line-height:1.65}.harness-empty>.btn{display:inline-flex;align-items:center;gap:6px}.harness-candidates>h3{margin:10px 0 8px;font-size:var(--ui-font-meta, 12px);font-weight:500;color:var(--accent-ink)}.harness-candidates>ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.harness-candidate{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;padding:8px 12px;font-size:var(--ui-font-meta, 12px);line-height:1.6;border-radius:var(--radius-sm, 8px);background:var(--overlay-light);overflow-wrap:anywhere}.harness-candidate>time{color:var(--text-faint, var(--text-muted));font-variant-numeric:tabular-nums;white-space:nowrap}.harness-candidate-actions{grid-column:2;display:flex;gap:14px}.harness-candidate-actions .profile-text-action{padding:2px 0}.harness-candidate-actions .profile-text-action.adopt{color:var(--accent-ink)}.harness-candidate-actions .profile-text-action:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px}.harness-candidates>small{display:block;margin-top:8px;font-size:var(--ui-font-caption, 11px);line-height:1.6;color:var(--text-muted)}.agent-section-nav button{position:relative}.profile-tab-badge{position:absolute;top:2px;right:2px;display:inline-grid;place-items:center;min-width:14px;height:14px;padding:0 3px;font-size:var(--ui-font-caption, 11px);font-style:normal;font-weight:600;line-height:1;color:var(--accent-ink);background:var(--overlay-medium);border-radius:var(--radius-pill, 999px)}.harness-history>h3{margin:10px 0 12px;font-size:var(--ui-font-meta, 12px);font-weight:500;color:var(--text-muted)}.harness-history>ol{list-style:none;display:grid;gap:12px;margin:0 0 0 4px;padding:0 0 0 14px;border-left:1px solid var(--border)}.harness-event{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;font-size:var(--ui-font-meta, 12px);line-height:1.5}.harness-event:before{content:"";position:absolute;left:-18px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.harness-event.upsert:before{background:var(--accent)}.harness-event>span{min-width:0;overflow-wrap:anywhere}.harness-event b{margin-right:6px;font-weight:500;color:var(--text-muted)}.harness-event>.profile-text-action{grid-column:2;grid-row:1 / span 2;align-self:center;padding:0}.harness-event>time{grid-column:1;font-size:var(--ui-font-caption, 11px);color:var(--text-faint, var(--text-muted));font-variant-numeric:tabular-nums}.harness-history>.profile-text-action{margin-top:8px}.profile-section-enter{animation:profile-enter .18s ease both}@keyframes profile-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(hover:none){.agents-roster-more{opacity:1}}@media(prefers-reduced-motion:reduce){.profile-section-enter,.profile-model-options{animation:none}.agent-section-nav:before,.agent-section-nav button,.agent-equipment-item,.profile-segment>button,.equipment-group>summary:before,.profile-model-trigger svg,.agent-portrait-badge,.agent-portrait-remove,.agent-character-name,.agent-character-desc{transition:none}}.agents-roster{width:100%;height:100%;min-width:0;min-height:0;padding:16px 12px 10px;gap:12px;background:transparent}.agents-roster-heading{align-items:center;min-height:24px}.agents-roster-item{padding-block:10px;transition:background .14s ease}.agents-roster-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agents-roster-item>span:last-child{flex:1}.agents-roster-more{right:3px;top:15px}.agents-roster-create{flex-shrink:0}.agents-character,.agent-profile-panel{container:agent-detail / inline-size}.agent-profile{max-width:760px;padding-inline:28px}.agent-character-hero{gap:18px;padding-block:22px}.agent-portrait{width:68px;height:76px;border-radius:var(--radius-md)}.agent-profile-content{padding-block:20px}.agent-profile .agent-field>input:not([type=checkbox]),.agent-profile .agent-field>select{max-width:460px}.agent-skill-summary,.agent-skill-row,.profile-model-trigger{transition:background .14s ease,color .14s ease}.agent-skill-detail,.agent-skill-editor{animation:profile-enter .16s ease}@container agent-detail (max-width: 540px){.agent-profile{padding-inline:16px}.agent-character-hero{gap:12px;padding-block:16px}.agent-portrait{width:48px;height:54px}.agent-character-name{font-size:var(--ui-font-title)}.agent-section-nav{--profile-nav-gap: 2px;--profile-nav-padding: 4px}.agent-section-nav button{flex-direction:column;gap:5px;padding:7px 2px;font-size:var(--ui-font-meta)}.agent-profile-content{padding-block:18px}}@container agent-detail (max-width: 380px){.profile-segment>button{position:relative;padding:8px}.profile-segment strong>svg{display:none}.profile-segment .profile-tab-badge{position:absolute;top:7px;right:7px;min-width:6px;width:6px;height:6px;margin-left:0;padding:0;font-size:0;background:var(--accent-ink)}}@container agent-detail (max-width: 260px){.profile-segment{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.agent-skill-detail,.agent-skill-editor{animation:none}.agents-roster-item,.agent-skill-summary,.agent-skill-row,.profile-model-trigger{transition:none}}.profile-list-controls>.capability-menu-trigger{flex:0 1 auto;max-width:46%;font-size:var(--ui-font-meta)}.profile-model-results button{font-size:var(--menu-text-size);line-height:var(--menu-line-height)}.agents-roster .agents-roster-create{justify-content:flex-start}.agent-profile .profile-model-field{max-width:460px}.agent-skill-extend{padding:14px 16px 20px}.agent-skill-extend>.agent-skill-detail{margin:0;padding:0;border-radius:0;background:none}.agent-skill-extend .agent-skill-content{max-height:none}.agent-skill-row.current{box-shadow:inset 0 0 0 1px var(--accent),0 0 0 .5px var(--accent)}.agent-skill-row.current>svg{color:var(--accent-ink)}.compact .agent-section-nav button span{max-width:100%;min-width:0}@keyframes record-flash{25%,60%{background:var(--overlay-strong)}}[data-record-flash]{animation:record-flash 1.8s ease}.csl-launchpad{height:100%;min-height:0;overflow:auto;color:var(--text);font-family:var(--font-ui);container-type:inline-size}.csl-inner{max-width:1160px;margin:0 auto;padding:28px 30px 40px}.csl-main{min-width:0}.csl-brief{padding:20px;border:1px solid transparent;border-radius:var(--radius-lg);background:var(--overlay-subtle);animation:csl-enter var(--duration-slow) var(--ease-out) 35ms both}.csl-idea-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.csl-idea-label{min-width:0;display:block;font-size:var(--ui-font-heading, 14px);font-weight:550;line-height:1.45;letter-spacing:-.025em}.csl-template-status{min-width:0;max-width:45%;display:flex;align-items:center;gap:5px;color:var(--accent-ink);font-size:var(--ui-font-caption, 11px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:csl-enter var(--duration-fast) var(--ease-out) both}.csl-template-status>svg{flex-shrink:0}.csl-launchpad input,.csl-launchpad textarea{font-family:inherit;font-size:var(--ui-font-meta, 12px);color:var(--text);outline:none;transition:border-color var(--duration-fast),background var(--duration-fast)}.csl-launchpad input::placeholder,.csl-launchpad textarea::placeholder{color:var(--text-faint);opacity:1}.csl-launchpad .csl-idea{display:block;width:100%;min-height:126px;padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius-md);resize:vertical;background:var(--bg-card);font-size:var(--ui-font-body, 13px);line-height:1.75}.csl-launchpad input:focus,.csl-launchpad textarea:focus{border-color:var(--accent-ink)}.csl-launchpad button{font-family:inherit;cursor:pointer}.csl-launchpad button:disabled{cursor:default;opacity:.45}.csl-launchpad button:focus-visible,.csl-launchpad summary:focus-visible{outline:var(--focus-ring) solid var(--signal-line);outline-offset:3px}.csl-details{margin-top:11px;interpolate-size:allow-keywords}.csl-details summary{display:flex;align-items:center;gap:7px;width:fit-content;min-height:28px;color:var(--text-muted);cursor:pointer;list-style:none;font-size:var(--ui-font-caption, 11px);transition:color var(--duration-fast)}.csl-details summary:hover{color:var(--text)}.csl-launchpad summary::-webkit-details-marker{display:none}.csl-details summary>svg{transition:transform var(--duration-slow) var(--ease-spring);transform:rotate(-90deg)}.csl-details[open] summary>svg{transform:rotate(0)}.csl-details summary>span,.csl-capabilities legend>span{font-size:var(--ui-font-caption, 11px);font-weight:400;color:var(--text-faint);margin-left:5px}.csl-details::details-content,.csl-save-location::details-content{block-size:0;overflow:hidden;transition:block-size var(--duration-slow) var(--ease-spring),content-visibility var(--duration-slow) allow-discrete}.csl-details[open]::details-content,.csl-save-location[open]::details-content{block-size:auto}.csl-details-body{display:grid;gap:7px;padding-top:10px;padding-bottom:2px}.csl-details-body label,.csl-name-field label{font-size:var(--ui-font-caption, 11px);color:var(--text-muted)}.csl-details-body input,.csl-details-body textarea,.csl-name-field input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);padding:8px 10px;width:100%;min-width:0;line-height:1.5}.csl-details-body textarea{resize:vertical}.csl-details-body label:not(:first-child){margin-top:5px}.csl-capabilities{padding:0;margin:13px 0 0;border:0;min-width:0}.csl-capabilities legend{font-size:var(--ui-font-caption, 11px);color:var(--text-muted);padding:0;margin-bottom:8px}.csl-capability-list{display:flex;gap:6px;flex-wrap:wrap}.csl-capability{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:var(--ui-font-caption, 11px);transition:background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast),transform var(--duration-fast) var(--ease-spring)}.csl-capability:not(:disabled):hover{background:var(--overlay-light)}.csl-capability:not(:disabled):active{transform:scale(.97)}.csl-capability[aria-pressed=true]{background:var(--sel-fill);color:var(--accent-ink);border-color:var(--sel-line)}.csl-capability[aria-pressed=true]>svg:last-child{animation:csl-check var(--duration-slow) var(--ease-spring)}.csl-capability-hint{margin:8px 0 0;color:var(--text-faint);font-size:var(--ui-font-caption, 11px);line-height:1.6;animation:csl-enter var(--duration-fast) var(--ease-out)}.csl-create-row{display:flex;gap:10px;align-items:flex-end;margin-top:20px}.csl-name-field{flex:1;min-width:0;display:grid;gap:6px}.csl-name-field input[aria-invalid=true]{border-color:var(--danger)}.csl-create{min-height:36px;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 13px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--on-action);background:var(--action-fill);font-size:var(--ui-font-meta, 12px);font-weight:550;white-space:nowrap;box-shadow:var(--btn-shadow);transition:background var(--duration-fast),transform var(--duration-fast) var(--ease-spring),opacity var(--duration-fast)}.csl-create>svg{transition:transform var(--duration-fast) var(--ease-spring)}.csl-create:not(:disabled):hover{background:var(--action-fill-hover)}.csl-create:not(:disabled):hover>svg{transform:translate(2px)}.csl-create:not(:disabled):active{transform:scale(.97)}.csl-draft-hint,.csl-host-hint{color:var(--text-muted);margin:10px 0 0;font-size:var(--ui-font-caption, 11px);line-height:1.6}.csl-save-location{margin-top:5px;interpolate-size:allow-keywords}.csl-save-location summary{width:fit-content;display:flex;align-items:center;gap:5px;min-height:24px;font-size:var(--ui-font-caption, 11px);color:var(--text-faint);cursor:pointer;list-style:none}.csl-save-location summary:hover{color:var(--text-muted)}.csl-save-location summary>svg:last-child{transform:rotate(-90deg);transition:transform var(--duration-slow) var(--ease-spring)}.csl-save-location[open] summary>svg:last-child{transform:rotate(0)}.csl-location{margin:3px 0 1px;overflow-wrap:anywhere;color:var(--text-faint);font-size:var(--ui-font-caption, 11px);line-height:1.6}.csl-error{margin:10px 0 0;color:var(--danger);font-size:var(--ui-font-caption, 11px);line-height:1.6}.csl-templates{margin-top:25px;animation:csl-enter var(--duration-slow) var(--ease-out) 75ms both}.csl-section-heading{margin-bottom:11px}.csl-section-heading h2{margin:0;font-size:var(--ui-font-meta, 12px);font-weight:600}.csl-section-heading p{margin:5px 0 0;font-size:var(--ui-font-caption, 11px);color:var(--text-muted);line-height:1.5}.csl-template-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.csl-template{min-width:0;display:flex;align-items:center;gap:10px;text-align:left;padding:11px 9px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-muted);transition:background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast),transform var(--duration-fast) var(--ease-spring)}.csl-template:not(:disabled):hover{background:var(--overlay-light)}.csl-template:not(:disabled):active{transform:scale(.98)}.csl-template>svg{flex-shrink:0}.csl-template>span{flex:1;min-width:0}.csl-template strong{display:block;color:var(--text);font-size:var(--ui-font-caption, 11px);font-weight:550;line-height:1.5}.csl-template small{display:block;margin-top:3px;color:var(--text-muted);font-size:var(--ui-font-caption, 11px);line-height:1.5}.csl-template[aria-pressed=true]{background:var(--sel-fill);border-color:var(--sel-line);color:var(--accent-ink)}.csl-template[aria-pressed=true]>svg:last-child{animation:csl-check var(--duration-slow) var(--ease-spring)}.csl-template-arrow{opacity:0;transform:translate(-3px);transition:opacity var(--duration-fast),transform var(--duration-fast) var(--ease-spring)}.csl-template:hover .csl-template-arrow,.csl-template:focus-visible .csl-template-arrow{opacity:1;transform:translate(0)}.csl-icon-button{width:26px;height:26px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast)}.csl-icon-button:not(:disabled):hover{background:var(--overlay-medium)}.csl-import{display:flex;flex-shrink:0;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text);padding:9px 11px;min-height:35px;font-size:var(--ui-font-caption, 11px);transition:background var(--duration-fast),transform var(--duration-fast) var(--ease-spring)}.csl-import:not(:disabled):hover{background:var(--overlay-light)}.csl-import:not(:disabled):active{transform:scale(.98)}.csl-search{display:flex;align-items:center;gap:7px;color:var(--text-faint)}.csl-search input{width:100%;min-width:0;border:0;background:transparent}.csl-status{display:flex;align-items:center;gap:8px;margin-top:18px;color:var(--text-muted);font-size:var(--ui-font-caption, 11px);line-height:1.6}.csl-empty{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px 3px;color:var(--text-faint)}.csl-empty strong{font-size:var(--ui-font-caption, 11px);font-weight:500;line-height:1.6;color:var(--text-muted)}.csl-empty p{font-size:var(--ui-font-caption, 11px);line-height:1.7;margin:0}.csl-spin{animation:csl-rotate 1s linear infinite}@keyframes csl-enter{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes csl-check{0%{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}@keyframes csl-rotate{to{transform:rotate(360deg)}}@container (min-width: 1080px){.csl-template-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (max-width: 840px){.csl-inner{padding-inline:24px;padding-top:24px}.csl-empty{padding-block:10px}}@container (max-width: 520px){.csl-inner{padding-inline:16px;padding-top:20px}.csl-template-status{max-width:40%;font-size:var(--ui-font-caption, 11px)}.csl-capability{padding-inline:7px}.csl-template{gap:8px;padding-inline:6px}.csl-template small,.csl-template-arrow{display:none}}@container (max-width: 380px){.csl-inner{padding-inline:12px}.csl-create-row{align-items:stretch;flex-direction:column;gap:11px}.csl-create{min-height:37px}.csl-template-list{grid-template-columns:minmax(0,1fr)}.csl-template{padding-block:9px}.csl-template small{display:block}.csl-template-status{display:none}}@media(prefers-reduced-motion:reduce){.csl-launchpad *,.csl-launchpad *:before,.csl-launchpad *:after,.csl-details::details-content,.csl-save-location::details-content{animation:none;transition:none}}.csl-plugin-note{margin:13px 0 0;color:var(--text-faint);font-size:var(--ui-font-caption, 11px);line-height:1.6;animation:csl-enter var(--duration-fast) var(--ease-out)}@media(prefers-reduced-motion:reduce){.csl-plugin-note{animation:none}}.csl-catalog{min-width:0}.csl-catalog-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:10px 0 30px}.csl-catalog-header h1,.csl-create-header h1{margin:7px 0 0;font-size:var(--ui-font-title);line-height:var(--ui-line-title);font-weight:600;letter-spacing:-.025em}.csl-catalog-header h1{font-size:var(--ui-font-display);line-height:var(--ui-line-display)}.csl-catalog-header p,.csl-create-header p{margin:7px 0 0;color:var(--text-muted);font-size:var(--ui-font-meta);line-height:var(--ui-line-meta)}.csl-catalog-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.csl-new{min-height:35px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 13px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--action-fill);color:var(--on-action);font-size:var(--ui-font-meta);font-weight:550;box-shadow:var(--btn-shadow)}.csl-new:not(:disabled):hover{background:var(--action-fill-hover)}.csl-catalog-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:11px;margin-bottom:17px}.csl-catalog-toolbar .csl-search{flex:1;max-width:300px;min-width:120px;margin-left:auto;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card)}.csl-catalog-toolbar .csl-search input{padding:9px 0;font-size:var(--ui-font-meta)}.csl-catalog-toolbar .csl-search input:focus{border:0}.csl-catalog-toolbar .csl-search:focus-within{border-color:var(--accent-ink)}.csl-refresh{width:35px;height:35px;border-color:var(--border)}.csl-project-list{display:block;margin-top:0}.csl-list-head,.csl-project{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(130px,180px) 22px;align-items:center;column-gap:15px}.csl-list-head{min-height:34px;padding:0 12px 7px;border-bottom:1px solid var(--border);color:var(--text-faint);font-size:var(--ui-font-meta)}.csl-list-head span:first-child{grid-column:2}.csl-list-head span:last-child{grid-column:3}.csl-project{width:100%;min-height:75px;padding:12px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:var(--text);text-align:left;transition:background var(--duration-fast)}.csl-project:not(:disabled):hover,.csl-project:focus-visible{background:var(--overlay-light)}.csl-project:not(:disabled):active{transform:none}.csl-project .csl-project-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--sel-fill);color:var(--accent-ink)}.csl-project .csl-project-icon--plugin{background:var(--overlay-medium);color:var(--text)}.csl-project .csl-project-info,.csl-project .csl-project-meta{display:flex;min-width:0;flex-direction:column;gap:4px}.csl-project .csl-project-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ui-font-body);line-height:var(--ui-line-body);font-weight:550}.csl-project .csl-project-info small,.csl-project .csl-project-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:var(--ui-font-caption);line-height:var(--ui-line-caption);font-weight:400}.csl-project .csl-project-meta{align-items:flex-start;font-size:var(--ui-font-meta);font-variant-numeric:tabular-nums}.csl-project .csl-project-arrow{opacity:0;color:var(--text-muted);transform:translate(-3px);transition:opacity var(--duration-fast),transform var(--duration-fast)}.csl-project:hover .csl-project-arrow,.csl-project:focus-visible .csl-project-arrow{opacity:1;transform:translate(0)}.csl-catalog .csl-empty{align-items:center;justify-content:center;min-height:300px;padding:35px;text-align:center}.csl-catalog .csl-empty strong{color:var(--text);font-size:var(--ui-font-heading);font-weight:550}.csl-catalog .csl-empty p{max-width:320px}.csl-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.csl-gallery-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:184px;padding:17px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);box-shadow:var(--card-shadow);color:var(--text);text-align:left;transition:border-color var(--duration-fast),background var(--duration-fast)}.csl-gallery-card:hover{border-color:var(--sel-line);background:var(--overlay-light)}.csl-gallery-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:18px;border-radius:var(--radius-sm);background:var(--sel-fill);color:var(--accent-ink)}.csl-gallery-card strong{font-size:var(--ui-font-body);font-weight:550;line-height:var(--ui-line-body)}.csl-gallery-card small{margin-top:5px;color:var(--text-muted);font-size:var(--ui-font-caption);line-height:var(--ui-line-caption)}.csl-gallery-action{display:inline-flex;align-items:center;gap:5px;margin-top:auto;padding-top:18px;color:var(--accent-ink);font-size:var(--ui-font-caption);font-weight:550}.csl-create-page{max-width:860px;margin:0 auto}.csl-back{display:inline-flex;align-items:center;gap:7px;margin:0 0 24px;padding:6px 0;border:0;background:transparent;color:var(--text-muted);font-size:var(--ui-font-meta)}.csl-back:hover{color:var(--text)}.csl-create-header{margin:18px 0 27px;text-align:center}.csl-create-header h1{font-size:var(--ui-font-display);line-height:var(--ui-line-display)}.csl-create-page .csl-brief{padding:0;border-color:transparent;background:transparent;box-shadow:none}.csl-chatbox{padding:18px 20px}.csl-chatbox .t2c-row{margin-top:20px;gap:10px}.csl-chatbox .csl-create{width:auto;height:auto;min-height:34px;border-radius:var(--radius-sm)}.csl-project-options{margin-top:8px}.csl-create-page .csl-idea-label{font-size:var(--ui-font-body)}.csl-create-page .csl-idea{min-height:100px;border:0;background:transparent;padding:7px 0;resize:none;font-size:var(--ui-font-body)}.csl-create-page .csl-idea:focus{border-color:transparent}.csl-create-page .csl-template-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.csl-create-page .csl-template{padding:12px;border-color:var(--border);background:var(--bg-card)}@container (max-width: 760px){.csl-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.csl-catalog-header{align-items:flex-start;flex-direction:column;gap:18px}.csl-catalog-toolbar{flex-wrap:wrap}.csl-catalog-toolbar .csl-search{max-width:none;flex-basis:100%;order:2;margin-left:0}.csl-refresh{margin-left:auto}.csl-list-head,.csl-project{grid-template-columns:42px minmax(0,1fr) minmax(100px,132px) 18px;gap:10px}.csl-create-page .csl-template-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width: 490px){.csl-gallery-grid{grid-template-columns:minmax(0,1fr)}.csl-catalog-actions{width:100%}.csl-catalog-actions .csl-new{flex:1}.csl-list-head span:last-child,.csl-project .csl-project-meta{display:none}.csl-list-head,.csl-project{grid-template-columns:40px minmax(0,1fr) 18px}.csl-project .csl-project-arrow{grid-column:3}.csl-create-page .csl-template-list{grid-template-columns:minmax(0,1fr)}.csl-create-page .csl-template small{display:block}.csl-create-header{margin-top:6px}}@media(prefers-reduced-motion:reduce){.csl-project,.csl-project .csl-project-arrow,.csl-gallery-card{transition:none}}@container (max-width: 490px){.csl-chatbox{padding:14px}.csl-chatbox .t2c-row{flex-wrap:wrap}.csl-chatbox .csl-create{flex-shrink:0;width:auto}}
@@ -0,0 +1,2 @@
1
+ import{p as ie,a8 as G,aA as J,aj as ce,r as Ce,B as ze,dB as Fe,T as Le,X as Ee,M as Ae,ah as Me,I as de,F as ue,n as Te}from"./pageStore-CyvNZEYX.js";import{a as Pe,j as e,u as I,r as l,R as Re,cj as He}from"./index-fDB1l4d-.js";import{b3 as Oe,pk as pe,l as O,pl as se,Y as $,_ as Z,aC as V,pm as $e,X as Ie,fB as Be,pn as _e,bw as W,R as We,nn as Ke,bO as qe,V as ae,fN as me,hY as Ue,po as Ve,pp as Ye,aT as he,aW as ge,pq as Xe,hZ as re,h_ as Ge,h$ as fe,Z as Je,pr as Ze,i3 as Qe}from"./appStore-DDOkzWDA.js";import{P as xe}from"./pencil--sWwxHdP.js";import"./client-fKy9CWk0.js";import{F as et}from"./folder-plus-DP9sFr26.js";import{F as oe}from"./folder-1OJQeDI1.js";import{U as tt}from"./upload-Dy7svciS.js";const nt=[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]],St=ie("check-check",nt);const st=[["path",{d:"M14 9 9 4 4 9",key:"1af5af"}],["path",{d:"M20 20h-7a4 4 0 0 1-4-4V4",key:"1blwi3"}]],at=ie("corner-left-up",st);Pe({"agentLog.days":{zh:"{count} 天有记录",en:"{count} days on record"},"agentLog.older":{zh:"更早的 {count} 天",en:"{count} earlier days"},"agentLog.today":{zh:"今天",en:"Today"},"agentLog.editDay":{zh:"编辑 {date} 的日志",en:"Edit the log for {date}"},"agentLog.rawHint":{zh:"这是这一天的原文。每条以「### 09:30」这样的时间行开头;「@」后面那一串是写入设备的标记,不用改。",en:'This is the raw file for the day. Each entry starts with a time line like "### 09:30"; the code after "@" marks the device that wrote it and can stay as it is.'},"agentLog.error":{zh:"日志操作失败",en:"The log could not be updated"},"agentLog.changed":{zh:"这一天的日志已有新版本,这次没有保存。",en:"This day’s log has a newer version, so nothing was saved."},"agentLog.discardAndReload":{zh:"放弃草稿并载入当前版本",en:"Discard draft and load the current version"}});const le=7,rt=()=>{const n=new Date;return`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,"0")}-${String(n.getDate()).padStart(2,"0")}`},ve=n=>n.replace(/^# \d{4}-\d{2}-\d{2}[ \t]*\n+/,"").replace(/^(### \d{2}:\d{2}\n)@[0-9a-f]{8} /gm,"$1"),Dt=n=>e.jsx(ot,{...n},JSON.stringify([Oe(n.cfg),n.slug])),ot=({slug:n,active:s=!0})=>{const{t:r}=I(),[i,p]=l.useState(null),[a,y]=l.useState(null),[o,m]=l.useState(null),[u,h]=l.useState(null),[g,d]=l.useState(!1),[f,w]=l.useState(!1),[T,j]=l.useState(""),[F,L]=l.useState(!1),[c,k]=l.useState(0),[b,M]=l.useState(!1),C=l.useRef(0),E=l.useRef(!1),q=l.useRef(!0),B=l.useRef(s),z=u!==null;l.useEffect(()=>{let N=!0;return pe(O(),n).then(D=>{if(!N)return;const P=D.slice().sort((Y,X)=>X.localeCompare(Y));p(P),q.current&&(q.current=!1,y(P[0]??null))}).catch(D=>{N&&(p(P=>P??[]),j(D?.message||r("agentLog.error")))}),()=>{N=!1}},[n,c]),l.useEffect(()=>{const N=++C.current;if(m(null),w(!1),j(""),L(!1),!a){d(!1);return}return d(!0),se(O(),n,a).then(D=>{N===C.current&&m({content:D.content,version:D.version})}).catch(D=>{N===C.current&&j(D?.message||r("agentLog.error"))}).finally(()=>{N===C.current&&d(!1)}),()=>{++C.current}},[a,n,c]),l.useEffect(()=>{s&&!B.current&&!z&&k(N=>N+1),B.current=s},[s]);const H=async()=>{if(!a||!o||u===null||g||E.current)return;E.current=!0;const N=C.current;d(!0),w(!1),j(""),L(!1);try{await $e(O(),n,a,u,o.version);const D=await se(O(),n,a);N===C.current&&(m({content:D.content,version:D.version}),h(null),w(!0))}catch(D){N===C.current&&(D?.status===409?L(!0):j(D?.message||r("agentLog.error")))}finally{E.current=!1,N===C.current&&d(!1)}};if(i===null)return e.jsx("p",{className:"profile-empty","data-testid":"agent-log-panel",children:e.jsx($,{size:14,className:"spin"})});const K=rt(),A=i.slice(le),R=b||a!==null&&A.includes(a),U=N=>{const D=a===N;return e.jsxs("div",{className:"agentmem-log","data-log-date":N,children:[e.jsxs("div",{className:"agentmem-log-row",children:[e.jsxs("button",{type:"button",className:"agentmem-log-head","aria-expanded":D,disabled:z,onClick:()=>y(D?null:N),children:[D?e.jsx(G,{size:12}):e.jsx(J,{size:12}),e.jsx("span",{children:N}),N===K&&e.jsx("small",{children:r("agentLog.today")}),D&&f&&e.jsxs("small",{className:"agentmem-log-saved",children:[e.jsx(ce,{size:11}),r("settings.agents.memSaved")]})]}),D&&o&&!z&&e.jsx("button",{type:"button",className:"harness-undo",title:r("common.edit"),"aria-label":r("agentLog.editDay",{date:N}),onClick:()=>{h(o.content),w(!1)},children:e.jsx(xe,{size:13})})]}),D&&(z?e.jsxs("div",{className:"field agentmem-log-edit",children:[e.jsx("textarea",{"aria-label":r("agentLog.editDay",{date:N}),rows:12,value:u,disabled:g,onChange:P=>h(P.target.value)}),e.jsx("p",{className:"hint",children:r("agentLog.rawHint")}),F&&e.jsxs("p",{role:"alert",className:"agentmem-log-error",children:[r("agentLog.changed")," ",e.jsx("button",{type:"button",className:"profile-text-action",onClick:()=>{h(null),k(P=>P+1)},children:r("agentLog.discardAndReload")})]}),e.jsxs("div",{className:"agentmem-log-actions",children:[e.jsxs("button",{type:"button",className:"btn primary sm",disabled:g,onClick:()=>{H()},children:[g?e.jsx($,{size:13,className:"spin"}):null," ",r("common.save")]}),e.jsx("button",{type:"button",className:"btn sm",disabled:g,onClick:()=>{h(null),j(""),L(!1)},children:r("common.cancel")})]})]}):o&&e.jsx("div",{className:"agentmem-log-body msg-content",children:e.jsx(V,{content:ve(o.content)})}))]},N)};return e.jsxs("div",{className:"profile-log","data-testid":"agent-log-panel","data-agent-slug":n,children:[e.jsxs("div",{className:"harness-summary",children:[e.jsx("span",{children:r("agentLog.days",{count:i.length})}),e.jsxs("button",{type:"button",className:"profile-text-action",disabled:g||z,onClick:()=>k(N=>N+1),children:[e.jsx(Z,{size:12}),r("common.refresh")]})]}),T&&e.jsx("p",{role:"alert",className:"agentmem-log-error",children:T}),i.length?e.jsxs(e.Fragment,{children:[i.slice(0,le).map(U),A.length>0&&e.jsx("div",{className:"agentmem-log agentmem-log-more",children:e.jsx("div",{className:"agentmem-log-row",children:e.jsxs("button",{type:"button",className:"agentmem-log-head","aria-expanded":R,disabled:z,onClick:()=>{R&&a&&A.includes(a)&&y(null),M(!R)},children:[R?e.jsx(G,{size:12}):e.jsx(J,{size:12}),e.jsx("span",{children:r("agentLog.older",{count:A.length})})]})})}),R&&A.map(U)]}):!T&&e.jsx("p",{className:"profile-empty",children:r("settings.agents.noLog")})]})},lt=({containerRef:n,scanTrigger:s})=>{const{t:r}=I(),[i,p]=l.useState([]),[a,y]=l.useState(null),o=l.useCallback(()=>{const u=n.current;if(!u){p(d=>d.length?[]:d);return}const h=u.querySelectorAll('[data-toc-msg-role="user"], [data-toc-level]'),g=[];h.forEach(d=>{if(d.id){if(d.dataset.tocMsgRole==="user"){const f=(d.dataset.tocTitle||d.textContent||"").trim();f&&g.push({id:d.id,level:0,kind:"user",text:f})}else if(d.dataset.tocLevel){const f=(d.textContent||"").trim();f&&g.push({id:d.id,level:Number(d.dataset.tocLevel)||1,kind:"heading",text:f})}}}),p(d=>d.length===g.length&&d.every((f,w)=>f.id===g[w].id&&f.text===g[w].text)?d:g)},[n]);l.useEffect(()=>{o();const u=n.current;if(!u)return;let h=0;const g=new MutationObserver(()=>{cancelAnimationFrame(h),h=requestAnimationFrame(o)});return g.observe(u,{childList:!0,subtree:!0,characterData:!0}),()=>{cancelAnimationFrame(h),g.disconnect()}},[o,n,s]),l.useEffect(()=>{const u=n.current;if(!u||i.length===0)return;const h=new Set,g=new IntersectionObserver(d=>{for(const w of d)w.isIntersecting?h.add(w.target.id):h.delete(w.target.id);const f=i.find(w=>h.has(w.id));f&&y(f.id)},{root:u,rootMargin:"0px 0px -65% 0px",threshold:0});for(const d of i)try{const f=u.querySelector(`#${CSS.escape(d.id)}`);f&&g.observe(f)}catch{}return()=>g.disconnect()},[i,n]);const m=l.useCallback(u=>{const h=n.current;if(!h)return;let g=null;try{g=h.querySelector(`#${CSS.escape(u)}`)}catch{return}if(!g)return;const d=g.getBoundingClientRect().top-h.getBoundingClientRect().top+h.scrollTop;h.scrollTo({top:Math.max(0,d-16),behavior:"smooth"}),y(u)},[n]);return i.length===0?e.jsx("div",{className:"panel-note",children:r("toc.emptyNote")}):e.jsx("div",{className:"toc-list",children:i.map(u=>e.jsxs("button",{type:"button",className:`toc-item${u.kind==="user"?" user":""}${a===u.id?" active":""}`,style:{paddingLeft:6+u.level*14},title:u.text,onClick:()=>m(u.id),children:[u.kind==="user"?e.jsx(Ie,{size:12,className:"toc-ico"}):e.jsx(Be,{size:11,className:"toc-ico"}),e.jsx("span",{className:"toc-text",children:u.text})]},u.id))})};function it(n){if(n==="__host__")return"#b8860b";let s=0;for(let r=0;r<n.length;r++)s=s*31+n.charCodeAt(r)>>>0;return`hsl(${s%360} 62% 45%)`}const ye=({segs:n})=>e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8},children:n.map((s,r)=>s.t==="tool"?e.jsxs("div",{className:"panel-note",style:{fontSize:"var(--ui-font-caption, 11px)",opacity:s.error?.95:.7},children:["🔧 ",e.jsx("b",{children:s.name}),s.preview?` — ${s.preview.slice(0,200)}`:""]},r):s.t==="vote"?e.jsxs("div",{className:"panel-note",style:{fontSize:"var(--ui-font-caption, 11px)"},children:["🗳 ",s.text]},r):e.jsxs("div",{children:[s.speaker&&e.jsxs("div",{className:"msg-role-with-avatar",style:{color:s.color,fontSize:12,fontWeight:600,marginBottom:2,display:"flex",alignItems:"center",gap:4},children:[e.jsx("span",{className:"msg-avatar fallback",style:{background:s.color,width:16,height:16,fontSize:10},children:s.speaker.slice(0,1)}),e.jsx("span",{children:s.speaker})]}),e.jsx("div",{className:"msg-content",style:{fontSize:"var(--ui-font-meta, 12px)"},children:e.jsx(V,{content:s.text||""})})]},r))}),ct=({sessionId:n,runId:s})=>{const{t:r}=I(),[i,p]=l.useState([]),[a,y]=l.useState(!0),o=l.useRef(null);return l.useEffect(()=>{const m=new AbortController;p([]),y(!0);let u="",h="";const g=d=>p(f=>{const w=f[f.length-1];return w&&w.t==="text"?[...f.slice(0,-1),{...w,text:w.text+d}]:[...f,{t:"text",speaker:u,color:h,text:d}]});return _e(W(n),s,d=>{const f=d.payload||{};switch(d.type){case"group_speaker":f.phase==="start"&&(u=f.name||f.slug||"",h=it(String(f.slug||"")),p(w=>[...w,{t:"text",speaker:u,color:h,text:""}]));break;case"token":f.delta&&g(String(f.delta));break;case"tool_call":p(w=>[...w,{t:"tool",name:String(f.name||"")}]);break;case"group_vote":p(w=>[...w,{t:"vote",text:`${f.endCount}/${f.total} ${r("panel.subchats.voteEnd")}`}]);break;case"group_ended":case"done":case"error":y(!1);break}},m.signal).catch(()=>y(!1)),()=>m.abort()},[n,s,r]),l.useEffect(()=>{o.current?.scrollIntoView({block:"end"})},[i]),e.jsxs("div",{children:[i.length===0&&a&&e.jsxs("div",{className:"panel-note",style:{fontSize:11.5},children:[e.jsx($,{size:12,className:"spin"})," ",r("panel.subchats.connecting")]}),e.jsx(ye,{segs:i}),a&&i.length>0&&e.jsxs("div",{className:"panel-note",style:{fontSize:11.5,marginTop:6},children:[e.jsx($,{size:12,className:"spin"})," ",r("panel.subchats.live")]}),e.jsx("div",{ref:o})]})},dt=({sessionId:n,subChats:s})=>{const{t:r}=I(),i=s||[],[p,a]=l.useState(null),y=i.find(o=>o.id===p)||i[i.length-1]||null;return i.length?e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:140,overflowY:"auto"},children:i.map(o=>e.jsxs("div",{role:"button",tabIndex:0,className:`file-row${y?.id===o.id?" selected":""}`,onClick:()=>a(o.id),children:[o.kind==="discussion"?e.jsx(Ce,{size:13}):e.jsx(ze,{size:13}),e.jsx("span",{className:"file-name",title:o.title,children:o.title||o.id.slice(0,8)}),o.streaming&&e.jsx($,{size:12,className:"spin",style:{opacity:.6}})]},o.id))}),e.jsx("div",{style:{height:1,background:"var(--border)"}}),y&&e.jsx("div",{style:{padding:"0 4px"},children:y.kind==="discussion"&&y.runId?e.jsx(ct,{sessionId:n,runId:y.runId}):e.jsxs(e.Fragment,{children:[e.jsx(ye,{segs:y.segs}),y.segs.length===0&&e.jsx("div",{className:"panel-note",style:{fontSize:"var(--ui-font-caption, 11px)"},children:r("panel.subchats.starting")}),y.streaming&&y.segs.length>0&&e.jsxs("div",{className:"panel-note",style:{fontSize:11.5,marginTop:6},children:[e.jsx($,{size:12,className:"spin"})," ",r("panel.subchats.live")]})]})})]}):e.jsx("div",{className:"panel-note",children:r("panel.subchats.empty")})},ut="application/x-tangu-paths",Ct=n=>{const{t:s}=I(),[r,i]=l.useState("workspace"),p=n.view??r,a=e.jsxs(e.Fragment,{children:[p==="workspace"&&e.jsx(pt,{...n}),p==="toc"&&e.jsx(lt,{containerRef:n.chatScrollRef,scanTrigger:n.messages.length}),p==="memory"&&e.jsx(gt,{...n}),p==="subchats"&&e.jsx(dt,{sessionId:n.sessionId,subChats:n.subChats})]});return n.view?e.jsx("div",{className:"right-panel-body",children:a}):e.jsxs("aside",{className:"right-panel",children:[e.jsxs("div",{className:"right-panel-tabs",children:[e.jsxs("button",{className:r==="workspace"?"active":"",onClick:()=>i("workspace"),children:[e.jsx(We,{size:13})," ",s("panel.tab.workspace")]}),e.jsxs("button",{className:r==="toc"?"active":"",onClick:()=>i("toc"),children:[e.jsx(Ke,{size:13})," ",s("panel.tab.toc")]}),e.jsxs("button",{className:r==="memory"?"active":"",onClick:()=>i("memory"),children:[e.jsx(qe,{size:13})," ",s("panel.tab.memory")]}),e.jsxs("button",{className:r==="subchats"?"active":"",onClick:()=>i("subchats"),children:[e.jsx(Ae,{size:13})," ",s("panel.tab.subchats"),n.subChats&&n.subChats.length>0&&e.jsx("span",{style:{marginLeft:3,fontSize:"var(--ui-font-caption, 11px)",fontWeight:700,background:"var(--action-fill)",color:"var(--on-action)",borderRadius:"var(--radius-sm, 6px)",padding:"0 4px",lineHeight:"14px"},children:n.subChats.length})]})]}),e.jsx("div",{className:"right-panel-body",children:a})]})};function we(n){const[s,r]=l.useState(new Set),i=l.useRef(null),p=n.join(`
2
+ `);l.useEffect(()=>{r(m=>{const u=new Set([...m].filter(h=>n.includes(h)));return u.size===m.size?m:u})},[p]);const a=m=>{r(new Set([m])),i.current=m};return{selected:s,onClick:(m,u)=>{if(u.metaKey||u.ctrlKey)r(h=>{const g=new Set(h);return g.has(m)?g.delete(m):g.add(m),g}),i.current=m;else if(u.shiftKey&&i.current){const h=n.indexOf(i.current),g=n.indexOf(m);if(h>=0&&g>=0){const[d,f]=h<g?[h,g]:[g,h];r(new Set(n.slice(d,f+1)))}else a(m)}else a(m)},only:a,clear:()=>{r(new Set),i.current=null}}}const je=({menu:n,onClose:s,autoFocus:r=!1})=>{const[i,p]=l.useState(()=>!Te()),a=l.useRef({menu:n,onClose:s});a.current={menu:n,onClose:s},l.useEffect(()=>{if(i)return;const o=new AbortController;return Fe(a.current.menu.items,{signal:o.signal}).then(m=>{if(!o.signal.aborted){if(!m.handled){p(!0);return}a.current.onClose(),m.value?.run()}}),()=>o.abort()},[i,n.x,n.y]);const y=l.useRef(null);return l.useEffect(()=>{i&&r&&y.current?.focus({preventScroll:!0})},[i,r,n.x,n.y]),l.useEffect(()=>{if(!i)return;const o=performance.now(),m=h=>{h.timeStamp>=o&&s()},u=h=>{h.key==="Escape"&&s()};return window.addEventListener("pointerdown",m),window.addEventListener("contextmenu",m),window.addEventListener("keydown",u),window.addEventListener("blur",m),()=>{window.removeEventListener("pointerdown",m),window.removeEventListener("contextmenu",m),window.removeEventListener("keydown",u),window.removeEventListener("blur",m)}},[s,i]),i?Le.createPortal(e.jsx(Ee,{className:"ctx-menu",role:"menu",x:n.x,y:n.y,onPointerDown:o=>o.stopPropagation(),onContextMenu:o=>{o.preventDefault(),o.stopPropagation()},onKeyDown:o=>{if(o.key==="Escape"||o.key==="Tab"){o.preventDefault(),o.stopPropagation(),s();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(o.key))return;o.preventDefault(),o.stopPropagation();const m=Array.from(o.currentTarget.querySelectorAll("button:not(:disabled)")),u=m.indexOf(document.activeElement),h=o.key==="Home"?0:o.key==="End"?m.length-1:(u+(o.key==="ArrowDown"?1:-1)+m.length)%m.length;m[h]?.focus()},children:n.items.map((o,m)=>e.jsxs(Re.Fragment,{children:[o.separatorBefore&&e.jsx("div",{className:"ctx-separator",role:"separator"}),e.jsxs("button",{ref:m===n.items.findIndex(u=>!u.disabled)?y:void 0,role:"menuitem","aria-label":o.label,disabled:o.disabled,className:`ctx-item${o.danger?" danger":""}`,onClick:()=>{s(),o.run()},children:[o.icon,e.jsx("span",{children:o.label}),o.shortcut&&e.jsx("kbd",{className:"ctx-shortcut","aria-hidden":"true",children:o.shortcut})]})]},m))}),document.body):null},be=(n,s)=>({x:n.clientX,y:n.clientY}),pt=n=>n.sessionConfig?.execMode==="host"&&n.sessionConfig.cwd&&window.tangu?.listDir?e.jsx(mt,{cwd:n.sessionConfig.cwd,running:n.running,onToast:n.onToast,onOpenPreview:n.onOpenPreview}):e.jsx(ht,{...n}),mt=({cwd:n,running:s,onToast:r,onOpenPreview:i})=>{const{t:p}=I(),[a,y]=l.useState(n),[o,m]=l.useState([]),[u,h]=l.useState(!1),[g,d]=l.useState(null),[f,w]=l.useState(""),[T,j]=l.useState(!1),[F,L]=l.useState(""),[c,k]=l.useState(null),[b,M]=l.useState(null),[C,E]=l.useState(null),[q,B]=l.useState(!1),z=we(o.map(t=>t.path)),H=!!window.tangu?.mkdirHost,K=!!window.tangu?.revealHostPath;l.useEffect(()=>{y(n),d(null),j(!1)},[n]);const A=l.useCallback(async()=>{if(window.tangu?.listDir){h(!0);try{m(await window.tangu.listDir(a))}catch(t){r(p("panel.toast.listDirFail",{err:t?.message||t}),!0)}finally{h(!1)}}},[a,r]);l.useEffect(()=>{A()},[A,s]);const R=t=>{const x=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return x>0?t.slice(0,x):t},U=a===n,N=a.startsWith(n)?a.slice(n.length).replace(/^[/\\]+/,""):a,D=t=>{t.isDir||!window.tangu?.readHostFile||i({name:t.name,path:t.path,load:async()=>{const x=await window.tangu.readHostFile(t.path);return x.tooLarge?{tooLarge:!0,size:x.size}:{mimeType:x.mimeType,bytes:fe(x.content),size:x.size,mtimeMs:x.mtimeMs}},download:K?()=>{window.tangu?.revealHostPath?.(t.path)}:void 0})},P=t=>{t.isDir?y(t.path):D(t)},Y=t=>{d(t.path),w(t.name)},X=async t=>{const x=f.trim();if(d(null),!(!x||x===t.name||!window.tangu?.renameHostPath))try{await window.tangu.renameHostPath(t.path,x),A()}catch(S){r(p("panel.toast.renameFail",{err:S?.message||S}),!0)}},Q=async()=>{const t=F.trim();if(j(!1),L(""),!(!t||!window.tangu?.mkdirHost))try{await window.tangu.mkdirHost(a,t),A()}catch(x){r(p("panel.toast.mkdirFail",{err:x?.message||x}),!0)}},ke=async t=>{if(!(!t.length||!window.tangu?.trashHostPath||!window.confirm(t.length===1?p("panel.confirm.trash",{name:t[0].split(/[/\\]/).pop()||""}):p("panel.confirm.trashN",{n:String(t.length)}))))try{for(const S of t)await window.tangu.trashHostPath(S);z.clear(),A()}catch(S){r(p("panel.toast.deleteFail",{err:S?.message||S}),!0)}},Ne=async(t,x)=>{const S=x.filter(v=>v!==t);if(!(!S.length||!window.tangu?.moveHostPath))try{for(const v of S)await window.tangu.moveHostPath(v,t);z.clear(),A()}catch(v){r(p("panel.toast.moveFail",{err:v?.message||v}),!0)}},ee=async(t,x)=>{if(!window.tangu?.copyHostFiles||!window.tangu?.getPathForFile)return;const S=Array.from(t).map(v=>{try{return window.tangu.getPathForFile(v)}catch{return""}}).filter(Boolean);if(S.length)try{const v=await window.tangu.copyHostFiles(S,x);r(p("panel.toast.copied",{n:String(v.copied)})),A()}catch(v){r(p("panel.toast.copyFail",{err:v?.message||v}),!0)}},Se=(t,x)=>{t.preventDefault(),t.stopPropagation();const S=z.selected.has(x.path)?[...z.selected]:[x.path];z.selected.has(x.path)||z.only(x.path);const v=S.length>1,_=[];!v&&!x.isDir&&_.push({label:p("panel.action.preview"),icon:e.jsx(he,{size:13}),run:()=>D(x)}),!v&&H&&_.push({label:p("panel.action.rename"),icon:e.jsx(xe,{size:13}),run:()=>Y(x)}),!v&&K&&_.push({label:p("panel.action.revealInFileManager"),icon:e.jsx(ae,{size:13}),run:()=>window.tangu?.revealHostPath?.(x.path)}),H&&_.push({label:v?p("panel.action.deleteN",{n:String(S.length)}):p("panel.action.moveToTrash"),icon:e.jsx(ge,{size:13}),danger:!0,run:()=>{ke(S)}}),_.length&&k({...be(t,_.length),items:_})},De=(t,x)=>{if(t.altKey&&window.tangu?.startHostDrag){t.preventDefault(),window.tangu.startHostDrag(x.path);return}const S=z.selected.has(x.path)?[...z.selected]:[x.path];M(S),t.dataTransfer.setData(ut,JSON.stringify(S)),t.dataTransfer.effectAllowed="copyMove"},te=(t,x)=>{const S=H&&t.dataTransfer.types.includes("Files");!b&&!S||b?.includes(x)||(t.preventDefault(),t.stopPropagation(),E(x),B(!1))},ne=(t,x)=>{t.preventDefault(),t.stopPropagation();const S=t.dataTransfer.files,v=b;E(null),M(null),S?.length?ee(S,x):v?.length&&Ne(x,v)};return e.jsxs("div",{className:q?"wsfiles dragover":"wsfiles",onClick:t=>{t.target===t.currentTarget&&z.clear()},onDragOver:t=>{H&&t.dataTransfer.types.includes("Files")&&!b&&(t.preventDefault(),B(!0))},onDragLeave:t=>{t.currentTarget.contains(t.relatedTarget)||B(!1)},onDrop:t=>{t.preventDefault(),B(!1),E(null),t.dataTransfer.files?.length&&!b&&ee(t.dataTransfer.files,a)},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,marginBottom:6},children:[e.jsx("span",{className:"panel-section-title",style:{flex:1,padding:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a,children:N?`…/${N}`:n.split(/[/\\]/).filter(Boolean).pop()||n}),H&&e.jsx("button",{className:"icon-btn",style:{width:24,height:24},onClick:()=>{j(!0),L("")},title:p("panel.action.newFolder"),children:e.jsx(et,{size:13})}),K&&e.jsx("button",{className:"icon-btn",style:{width:24,height:24},onClick:()=>window.tangu?.revealHostPath?.(a),title:p("panel.action.openCurDirInFileManager"),children:e.jsx(ae,{size:13})}),e.jsx("button",{className:"icon-btn",style:{width:24,height:24},onClick:()=>{A()},title:p("panel.action.refresh"),children:u?e.jsx($,{size:13,className:"spin"}):e.jsx(Z,{size:13})})]}),T&&e.jsxs("div",{className:"file-row",style:{cursor:"default"},children:[e.jsx(oe,{size:13,style:{color:"var(--accent-ink)"}}),e.jsx("input",{autoFocus:!0,className:"file-rename-input",value:F,placeholder:p("panel.placeholder.newFolderName"),onChange:t=>L(t.target.value),onKeyDown:t=>{t.key==="Enter"?Q():t.key==="Escape"&&(j(!1),L(""))},onBlur:()=>{j(!1),L("")}}),e.jsxs("span",{className:"file-act",style:{opacity:1},children:[e.jsx("button",{className:"icon-btn",style:{width:22,height:22},title:p("panel.action.create"),onMouseDown:t=>{t.preventDefault(),Q()},children:e.jsx(ce,{size:12})}),e.jsx("button",{className:"icon-btn",style:{width:22,height:22},title:p("panel.action.cancel"),onMouseDown:t=>{t.preventDefault(),j(!1),L("")},children:e.jsx(Me,{size:12})})]})]}),!U&&e.jsxs("div",{className:`file-row${C===R(a)?" drop-target":""}`,role:"button",tabIndex:0,onClick:()=>y(R(a)),onDragOver:t=>te(t,R(a)),onDragLeave:()=>E(null),onDrop:t=>ne(t,R(a)),children:[e.jsx(at,{size:13}),e.jsx("span",{className:"file-name",children:p("panel.parentDir")})]}),o.length===0&&!u&&!T&&e.jsx("div",{className:"panel-note",children:p("panel.emptyDir")}),o.map(t=>{const x=z.selected.has(t.path),S=t.isDir&&C===t.path;return e.jsxs("div",{className:`file-row${x?" selected":""}${S?" drop-target":""}`,role:"button",tabIndex:0,draggable:H&&g!==t.path,onDragStart:v=>De(v,t),onDragEnd:()=>{M(null),E(null)},onDragOver:t.isDir?v=>te(v,t.path):void 0,onDragLeave:t.isDir?()=>E(null):void 0,onDrop:t.isDir?v=>ne(v,t.path):void 0,onClick:v=>{g!==t.path&&z.onClick(t.path,v)},onDoubleClick:()=>{g!==t.path&&P(t)},onContextMenu:v=>Se(v,t),onKeyDown:v=>{g!==t.path&&v.key==="Enter"&&(v.preventDefault(),P(t))},children:[t.isDir?e.jsx(oe,{size:13,style:{color:"var(--accent-ink)"}}):/\.(png|jpe?g|gif|webp|svg|bmp)$/i.test(t.name)?e.jsx(de,{size:13}):e.jsx(ue,{size:13}),g===t.path?e.jsx("input",{autoFocus:!0,className:"file-rename-input",value:f,onClick:v=>v.stopPropagation(),onChange:v=>w(v.target.value),onKeyDown:v=>{v.stopPropagation(),v.key==="Enter"?X(t):v.key==="Escape"&&d(null)},onBlur:()=>d(null)}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"file-name",children:t.name}),!t.isDir&&e.jsx("span",{className:"file-size",children:me(t.size)})]})]},t.path)}),c&&e.jsx(je,{menu:c,onClose:()=>k(null)})]})},ht=({cfg:n,sessionId:s,running:r,onToast:i,onOpenPreview:p})=>{const{t:a}=I(),[y,o]=l.useState([]),[m,u]=l.useState(!1),[h,g]=l.useState(null),d=we(y.map(c=>c.path)),f=l.useCallback(async()=>{u(!0);try{o(await Ue(W(s),s))}catch(c){i(a("panel.toast.workspaceLoadFail",{err:c?.message||c}),!0)}finally{u(!1)}},[n,s,i]);l.useEffect(()=>{f()},[f,r]);const w=c=>{p({name:c.path,load:async()=>{const k=await Ge(W(s),s,c.path);return{mimeType:k.mimeType,bytes:fe(k.content),size:k.size}},download:()=>{re(W(s),s,c.path).catch(k=>i(k.message,!0))}})},T=c=>{re(W(s),s,c).catch(k=>i(k.message,!0))},j=async c=>{if(!(!c.length||!window.confirm(c.length===1?a("panel.confirm.delete",{name:c[0].replace(/^\//,"")}):a("panel.confirm.deleteN",{n:String(c.length)}))))try{for(const b of c)await Qe(W(s),s,b);d.clear(),f()}catch(b){i(b.message,!0)}},F=async c=>{if(!c?.length)return;const k=await Promise.all(Array.from(c).map(async b=>{const M=new Uint8Array(await b.arrayBuffer());let C="";for(let E=0;E<M.length;E+=32768)C+=String.fromCharCode(...M.subarray(E,E+32768));return{path:b.name,content:btoa(C),encoding:"base64",mimeType:b.type}}));try{const b=await Xe(W(s),s,k);i(a("panel.toast.uploaded",{saved:b.saved,total:b.total})),f()}catch(b){i(a("panel.toast.uploadFail",{err:b?.message||b}),!0)}},L=(c,k)=>{c.preventDefault(),c.stopPropagation();const b=d.selected.has(k.path)?[...d.selected]:[k.path];d.selected.has(k.path)||d.only(k.path);const M=b.length>1,C=[];M||C.push({label:a("panel.action.preview"),icon:e.jsx(he,{size:13}),run:()=>w(k)}),M||C.push({label:a("panel.action.download"),icon:e.jsx(Je,{size:13}),run:()=>T(k.path)}),C.push({label:M?a("panel.action.deleteN",{n:String(b.length)}):a("panel.action.delete"),icon:e.jsx(ge,{size:13}),danger:!0,run:()=>{j(b)}}),g({...be(c,C.length),items:C})};return e.jsxs("div",{onClick:c=>{c.target===c.currentTarget&&d.clear()},onDragOver:c=>c.preventDefault(),onDrop:c=>{c.preventDefault(),F(c.dataTransfer.files)},children:[e.jsxs("div",{style:{display:"flex",gap:4,marginBottom:6},children:[e.jsx("span",{className:"panel-section-title",style:{flex:1,padding:0},children:a("panel.sessionFiles")}),e.jsxs("label",{className:"icon-btn",style:{width:24,height:24},title:a("panel.action.uploadFile"),children:[e.jsx(tt,{size:13}),e.jsx("input",{type:"file",multiple:!0,hidden:!0,onChange:c=>{F(c.target.files),c.target.value=""}})]}),e.jsx("button",{className:"icon-btn",style:{width:24,height:24},onClick:()=>{f()},title:a("panel.action.refresh"),children:m?e.jsx($,{size:13,className:"spin"}):e.jsx(Z,{size:13})})]}),y.length===0&&e.jsx("div",{className:"panel-note",children:a("panel.noFilesYet")}),y.map(c=>{const k=d.selected.has(c.path);return e.jsxs("div",{className:`file-row${k?" selected":""}`,role:"button",tabIndex:0,onClick:b=>d.onClick(c.path,b),onDoubleClick:()=>w(c),onContextMenu:b=>L(b,c),onKeyDown:b=>{b.key==="Enter"&&(b.preventDefault(),w(c))},children:[c.mimeType.startsWith("image/")?e.jsx(de,{size:13}):e.jsx(ue,{size:13}),e.jsx("span",{className:"file-name",children:c.path.replace(/^\//,"")}),e.jsx("span",{className:"file-size",children:me(c.size)})]},c.path)}),h&&e.jsx(je,{menu:h,onClose:()=>g(null)})]})},gt=({cfg:n,sessionConfig:s,onToast:r})=>{const i=s?.groupChat&&s.groupAgents?.length?Array.from(new Set(s.groupAgents)):[s?.agentSlug||He];return e.jsx("div",{children:i.map(p=>e.jsx(ft,{cfg:n,slug:p,onToast:r,showName:i.length>1,canAppend:i.length===1},p))})},ft=({cfg:n,slug:s,onToast:r,showName:i,canAppend:p})=>{const{t:a}=I(),[y,o]=l.useState(null),[m,u]=l.useState([]),[h,g]=l.useState(null),[d,f]=l.useState(""),w=l.useCallback(async()=>{try{o(await Ve(O(),s))}catch(j){o(null),r(a("panel.toast.memoryLoadFail",{err:j?.message||j}),!0)}try{const j=(await pe(O(),s)).slice().sort((c,k)=>k.localeCompare(c)).slice(0,3),L=(await Promise.all(j.map(async c=>({date:c,content:await Ye(O(),s,c)})))).filter(c=>c.content.trim());u(L)}catch{u([])}},[n,s,r,a]);l.useEffect(()=>{w()},[w]);const T=async()=>{const j=d.trim();if(j)try{const F=await Ze(O(),j,s);r(F.appended?a("panel.toast.memorySaved"):a("panel.toast.memoryNotWritten")),f(""),w()}catch(F){r(a("panel.toast.appendFail",{err:F?.message||F}),!0)}};return e.jsxs("div",{className:"agentmem",children:[i&&e.jsx("div",{className:"agentmem-agent",children:s}),e.jsx("div",{className:"panel-section-title",children:a("panel.memory.currentAgent")}),y===null&&e.jsx("div",{className:"panel-note",children:a("panel.memory.notConnected")}),y!==null&&(y.trim()?e.jsx("div",{style:{fontSize:"var(--ui-font-meta, 12px)",padding:"0 8px"},className:"msg-content",children:e.jsx(V,{content:y})}):e.jsx("div",{className:"panel-note",children:a("panel.memory.empty")})),p&&e.jsxs("div",{style:{display:"flex",gap:6,padding:"8px 8px 0"},children:[e.jsx("input",{type:"text",value:d,placeholder:a("panel.memory.appendPlaceholder"),onChange:j=>f(j.target.value),onKeyDown:j=>j.key==="Enter"&&void T(),style:{flex:1,fontSize:"var(--ui-font-meta, 12px)",padding:"5px 8px",background:"var(--bg-card)",border:"var(--border-width) solid var(--border)",borderRadius:"var(--radius-sm)",outline:"none"}}),e.jsx("button",{className:"btn ghost sm",onClick:()=>{T()},children:a("panel.memory.append")})]}),e.jsx("div",{className:"panel-section-title",style:{marginTop:14},children:a("panel.memory.recentLogs")}),m.length===0&&e.jsx("div",{className:"panel-note",children:a("panel.log.none")}),m.map(j=>{const F=h===j.date;return e.jsxs("div",{className:"agentmem-log",children:[e.jsxs("button",{className:"agentmem-log-head",onClick:()=>g(F?null:j.date),children:[F?e.jsx(G,{size:12}):e.jsx(J,{size:12}),e.jsx("span",{children:j.date})]}),F&&e.jsx("div",{className:"agentmem-log-body msg-content",children:e.jsx(V,{content:ve(j.content)})})]},j.date)})]})};export{Dt as A,St as C,Ct as R,je as a,be as m};
@@ -0,0 +1 @@
1
+ import{p as t}from"./pageStore-CyvNZEYX.js";const e=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],i=t("layout-grid",e);export{i as L};
@@ -0,0 +1,8 @@
1
+ import{a as gt,t as B,aI as v,h as rt,e as at,s as kt,l as bt,q as vt,r as ft,H as Pt,k as Ct,i as Nt}from"./index-fDB1l4d-.js";import{bj as xt,cI as zt,aD as Dt,a9 as Kt}from"./pageStore-CyvNZEYX.js";import{c as Ot}from"./client-fKy9CWk0.js";import{mE as F,mL as it,mB as G,mU as $,mR as j,ps as Rt,mM as z,mV as _t,oe as Bt,pt as jt,pu as Wt}from"./appStore-DDOkzWDA.js";import{$ as X,a as qt}from"./index-CmsN2Zm2.js";gt({"srctoggle.viewSource":{zh:"查看源码",en:"View source"}});function ct(t,e){const n=Math.min(e+1,t.state.doc.content.size);t.dispatch(t.state.tr.setSelection(F.create(t.state.doc,n))),t.focus()}function yt(t,e,n,r=!1){if(!e.editable)return;const s=document.createElement("button");s.type="button",s.className=`amx-src-btn${r?" amx-src-btn--inline":""}`,s.title=B("srctoggle.viewSource"),s.setAttribute("aria-label",B("srctoggle.viewSource")),s.contentEditable="false",s.textContent="</>",s.addEventListener("mousedown",o=>{o.preventDefault(),o.stopPropagation()}),s.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),typeof n=="function"?n():ct(e,n)}),t.classList.add("amx-has-src-btn"),t.appendChild(s)}const T=new it("amx-editor-focus"),D=t=>T.getState(t)??!1;function we(){return X(()=>new G({key:T,state:{init:()=>!1,apply:(t,e)=>{const n=t.getMeta(T);return typeof n=="boolean"?n:e}},view:t=>(queueMicrotask(()=>{!t.isDestroyed&&t.hasFocus()&&!D(t.state)&&t.dispatch(t.state.tr.setMeta(T,!0))}),{}),props:{handleDOMEvents:{focus:t=>(t.dispatch(t.state.tr.setMeta(T,!0)),!1),blur:t=>(D(t.state)&&t.dispatch(t.state.tr.setMeta(T,!1)),!1)}}}))}gt({"mathlive.renderFailedTitle":{zh:"LaTeX 无法渲染",en:"LaTeX could not be rendered"},"mathlive.renderFailedBadge":{zh:"公式无法渲染",en:"Formula could not be rendered"}});function Et(t){const e=[],n=t.length,r=o=>o===" "||o===" "||o===`
2
+ `||o===void 0;let s=0;for(;s<n;){if(t[s]==="$"){if(t[s+1]==="$"){if(t[s+2]!=="$"){const o=t.indexOf("$$",s+2);if(o>s+1){const a=t.slice(s+2,o).trim();if(a){e.push({from:s,to:o+2,latex:a,display:!0}),s=o+2;continue}}}s+=2;continue}if(!r(t[s+1])){let o=s+1,a=-1;for(;o<n;){const i=t[o];if(i===`
3
+ `)break;if(i==="$"){!r(t[o-1])&&!/[A-Za-z0-9]/.test(t[o+1]??"")&&(a=o);break}o++}if(a>s+1){e.push({from:s,to:a+1,latex:t.slice(s+1,a),display:!1}),s=a+1;continue}}}s++}return e}const Ht=new Set(["hardbreak","hard_break","break"]);function U(t){let e="";return t.forEach(n=>{if(n.isText){const r=n.marks.some(a=>a.type.name==="code"||a.type.name==="inlineCode"),s=n.text??"",o=!r&&n.marks.some(a=>a.type.name==="amadeusEscaped");e+=r?" ".repeat(s.length):o?s.replace(/[[\]$=%#]/g,""):s}else Ht.has(n.type.name)?e+=`
4
+ `:e+="".repeat(n.nodeSize)}),e}function pt(t,e,n){try{Rt.render(e,t,{throwOnError:!1,displayMode:n,errorColor:"#e5484d"});const r=t.querySelector(".katex-error");if(r){const s=r.getAttribute("title")||B("mathlive.renderFailedTitle");t.replaceChildren();const o=document.createElement("span");o.className="math-error",o.title=s,o.textContent=n?`⚠ ${B("mathlive.renderFailedBadge")}`:"⚠",t.appendChild(o)}}catch{t.textContent=n?`$$${e}$$`:`$${e}$`}}function mt(t,e,n,r,s=!1){if(s){const a=document.createElement(n?"div":"span");a.className=n?"math-preview math-preview--block":"math-preview math-preview--inline",a.contentEditable="false";const i=document.createElement(n?"div":"span");return i.className="math-preview-inner",pt(i,e,n),a.appendChild(i),a}const o=document.createElement(n?"div":"span");return o.className=n?"math-rendered math-rendered--block":"math-rendered",o.contentEditable="false",pt(o,e,n),yt(o,t,()=>{const a=r();a!=null&&ct(t,a)},!n),o.addEventListener("mousedown",a=>{if(!t.editable)return;a.preventDefault();const i=r();if(i==null)return;const u=Math.min(i+1,t.state.doc.content.size);t.dispatch(t.state.tr.setSelection(F.create(t.state.doc,u)).setMeta(T,!0)),t.focus()}),o}const Vt=/(^```[\s\S]*?^```[^\n]*$)/m;function wt(t){if(t.indexOf("$")===-1)return[];const e=[];let n=0;return t.split(Vt).forEach((r,s)=>{if(s%2===0&&r.indexOf("$")!==-1)for(const o of Et(r))e.push({...o,from:o.from+n,to:o.to+n});n+=r.length}),e}function Se(t){const e=wt(t);if(!e.length)return t;let n="",r=0;for(const s of e)n+=t.slice(r,s.from)+t.slice(s.from,s.to).replace(/\\([!-/:-@[-`{-~])/g,"$1"),r=s.to;return n+t.slice(r)}const _="amadeusEscapes",Gt="amadeusLiteralEscapes",Xt={exit:{characterEscapeValue(t){const e=this.stack.pop();((e.data||={})[_]||=[]).push([e.value.length,t.start.offset]),e.value+=this.sliceSerialize(t),e.position.end={line:t.end.line,column:t.end.column,offset:t.end.offset}}}};function Ut(t,e){const n=[],r=l=>{l?.type==="text"&&l.data?.[_]&&n.push(l);for(const d of l?.children??[])r(d)};if(r(t),!n.length)return;const s=e.charCodeAt(0)===65279?1:0,o=n.map(l=>{const d=[];for(const[c,g]of l.data[_]){const x=g+s;e[x-1]==="\\"&&e[x]===l.value[c]&&d.push([c,x])}return delete l.data[_],d}),a=new Set;for(const l of o)for(const[,d]of l)e[d]==="$"&&a.add(d);let i=e,u=l=>l;if(a.size){const l=[];let d="";for(let c=0;c<e.length;c++)a.has(c+1)||(d+=e[c],l.push(c));l.push(e.length),i=d,u=c=>l[c]}const m=[];for(const l of wt(i)){const d=l.display?2:1,c=[];for(let g=0;g<d;g++)c.push(u(l.from+g),u(l.to-1-g));c.some(g=>a.has(g))||m.push([u(l.from+d-1)+1,u(l.to-d)])}n.forEach((l,d)=>{const c=[],g=[];for(const[p,w]of o[d])m.some(([h,E])=>w-1>=h&&w<E)?c.push(p):g.push(p);let x=l.value;for(const p of[...c].sort((w,h)=>h-w))x=x.slice(0,p)+"\\"+x.slice(p);l.value=x,g.length&&((l.data||={})[Gt]=g.map(p=>p+c.filter(w=>w<p).length))})}function Yt(){const t=this.data();return(t.fromMarkdownExtensions||=[]).push(Xt),(e,n)=>Ut(e,String(n?.value??""))}const Me=qt("amadeusMathEscapes",()=>Yt),Zt=new it("amadeus-math-live-preview");function Jt(t){const e=D(t),n=[],r=t.selection.from,s=t.selection.to;return t.doc.descendants((o,a)=>{if(!o.isTextblock)return!0;if(o.type.spec.code)return!1;const i=a+1,u=U(o);if(u.indexOf("$")===-1)return!1;const m=Et(u);if(!m.length)return!1;let l=-1,d=-1;if(e&&r<=i+o.content.size&&s>=i){const c=Math.max(0,Math.min(u.length,r-i)),g=Math.max(0,Math.min(u.length,s-i));l=u.lastIndexOf(`
5
+ `,c-1)+1;const x=u.indexOf(`
6
+ `,g);d=x===-1?u.length:x}for(const c of m){if(l!==-1&&c.from<d&&c.to>l){const E=c.display?i+c.to:i+c.from;n.push($.widget(E,(S,M)=>mt(S,c.latex,c.display,M,!0),{side:c.display?1:-1,ignoreSelection:!0,key:`p:${c.display?"b":"i"}:${c.latex}`}));continue}const x=i+c.from,p=i+c.to,{latex:w,display:h}=c;n.push($.inline(x,p,{class:"math-src-hidden"})),n.push($.widget(x,(E,S)=>mt(E,w,h,S),{side:-1,ignoreSelection:!0,key:`m:${h?"b":"i"}:${w}`}))}return!1}),n.length?j.create(t.doc,n):j.empty}function $e(){return X(()=>new G({key:Zt,props:{decorations:t=>Jt(t)}}))}const Qt=new WeakSet;function te(t){if(t.tagName!=="P")return t;const e=t.querySelector(":scope > img:not(.ProseMirror-separator), :scope > .wiki-inline-img-wrap, :scope > .unified-embed");if(!e)return t;const n=[...t.children].some(s=>s!==e&&!s.matches(".ProseMirror-separator, .ProseMirror-trailingBreak, .wikilink-src-hidden")),r=[...t.childNodes].some(s=>s.nodeType===Node.TEXT_NODE&&!!s.textContent?.trim());return n||r?t:e}function St(t){const e=t.parentElement;return e&&te(e)===t?e:null}const Mt=".amx-img-resize, .amx-src-btn, .amx-img-srcline";function ee(t,e,n,r){if(n.button!==0||n.detail>1||!t.editable||!Qt.has(t)||n.target?.closest?.(Mt)||!St(e))return!1;e.draggable=!0;const s=new AbortController,o={signal:s.signal,once:!0},a=()=>{e.removeAttribute("draggable"),s.abort()};return e.addEventListener("click",()=>{a(),r()},o),window.addEventListener("mouseup",()=>setTimeout(a,0),{...o,capture:!0}),e.addEventListener("dragend",a,o),window.addEventListener("blur",a,o),!0}function Le(t){const e=t,n=e?.closest?.(".wiki-inline-img-wrap");return!n||e.closest(Mt)?null:St(n)}const $t=/\.(png|jpe?g|gif|webp|svg|avif|bmp)$/i,ne={pdf:'<path d="M12 7v14"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/>',draw:'<path d="M8.3 10a.7.7 0 0 1-.63-1.08L11.4 3a.7.7 0 0 1 1.2-.04L16.3 8.9a.7.7 0 0 1-.57 1.1z"/><rect x="3" y="14" width="7" height="7" rx="1"/><circle cx="17.5" cy="17.5" r="3.5"/>',db:'<rect width="18" height="18" x="3" y="3" rx="2"/><path d="M3 9h18M3 15h18M9 3v18"/>',media:'<rect width="18" height="18" x="3" y="3" rx="2"/><path d="m10 8 6 4-6 4z"/>',image:'<rect width="18" height="18" x="3" y="3" rx="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.09-3.09a2 2 0 0 0-2.82 0L6 21"/>',file:'<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/>'};function se(t,e){return rt(t)||/\.pdf$/i.test(e)?"pdf":at(t)?"media":Nt(e)?"draw":zt(e)?/\.db$/i.test(e)?"db":$t.test(e)?"image":"file":null}function oe(t){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");return e.setAttribute("class","wikilink-ic"),e.setAttribute("viewBox","0 0 24 24"),e.setAttribute("aria-hidden","true"),e.innerHTML=ne[t],e}const W=typeof navigator<"u"&&/Mac|iP(hone|[oa]d)/.test(navigator.platform);function Lt(t,e){if(!e)return null;const[n,r]=t.split("|"),s=n.trim();if(!$t.test(s))return null;const o=r?.trim();return{url:vt(s),width:o&&/^\d+$/.test(o)?Number(o):void 0,name:s}}function At(t){if(rt(t)||at(t))return t;const e=kt(t);return e?.subpath?`${e.target}#${e.subpath}`:bt(t)}function re(t,e){const n=U(t);if(n.indexOf("[[")===-1)return null;let r=null;v.lastIndex=0;let s;for(;s=v.exec(n);){const o=s.index,a=s.index+s[0].length;if(!(e<o||e>a)&&!Lt(s[1],o>0&&n[o-1]==="!")){if(e>o&&e<a)return s[1];r??=s[1]}}return r}const q=new it("amadeus-wikilink-live");function ae(t,e){const n=t.indexOf("|");if(n!==-1){const s=t.slice(n+1).trim();if(s)return s}if(e){const s=Ct(e.subpath)?e.subpath:e.subpath.split("#").map(o=>o.trim()).filter(Boolean).join(" › ");return e.target?`${e.target} › ${s}`:s}return(n===-1?t:t.slice(n+1)).trim()||t.trim()}const ot=new WeakMap;function ie(t,e,n){const r=document.createElement("span");r.className="wikilink amx-app-ref",H(r,e,n);const s=document.createElement("span");s.className="app-ref";const o=document.createElement("span");o.className="app-ref-ico",s.append(o,t.name),r.appendChild(s),r.addEventListener("mousedown",i=>{(i.button!==0||!(i.shiftKey||i.altKey)||W&&i.ctrlKey)&&i.preventDefault()}),r.addEventListener("click",i=>{(i.shiftKey||i.altKey||W&&i.ctrlKey)&&i.stopPropagation()},!0),r.addEventListener("contextmenu",i=>i.stopPropagation());const a=Ot.createRoot(r);return a.render(ft.createElement(Pt,null,ft.createElement(jt,{appRef:t}))),ot.set(r,a),r}function ce(t){const e=ot.get(t);e&&(ot.delete(t),queueMicrotask(()=>e.unmount()))}function le(t,e,n,r){const s=D(t),o=q.getState(t)?.sourceFrom??null,a=[],i=t.selection.from,u=t.selection.to;return t.doc.descendants((m,l)=>{if(!m.isTextblock)return!0;if(m.type.spec.code)return!1;const d=l+1,c=U(m);if(c.indexOf("[[")===-1)return!1;let g=-1,x=-1;if(s&&i>=d&&u<=d+m.content.size){const w=Math.max(0,Math.min(c.length,i-d)),h=Math.max(0,Math.min(c.length,u-d));g=c.lastIndexOf(`
7
+ `,w-1)+1;const E=c.indexOf(`
8
+ `,h);x=E===-1?c.length:E}v.lastIndex=0;let p;for(;p=v.exec(c);){const w=p.index>0&&c[p.index-1]==="!",h=Lt(p[1],w),E=h?p.index-1:p.index,S=p.index+p[0].length,M=d+E,K=d+S,Y=!!h&&E===0&&S===c.length;h&&s&&(i===M&&u===K||Y&&t.selection instanceof z&&i===l&&l+m.nodeSize);const lt=g!==-1&&E<x&&S>g;if(!h&&lt||h&&lt&&o===M)continue;if(h){const L=S-E;a.push($.inline(M,K,{class:"wikilink-src-hidden"})),a.push($.widget(M,(k,y)=>{const f=document.createElement("span");f.className="wiki-inline-img-wrap",f.contentEditable="false",H(f,y,L);const C=()=>{const b=y();return b==null?null:{from:b,to:b+L}},A=document.createElement("img");A.className="wiki-inline-img",A.src=h.url,A.alt=h.name,h.width&&(A.style.width=`${h.width}px`),f.appendChild(A),Bt(f,A,()=>h.name);const N=()=>{const b=C();if(!b)return;const R=Y?k.state.tr.setSelection(z.create(k.state.doc,b.from-1)):k.state.tr.setSelection(F.create(k.state.doc,b.from,b.to));k.dispatch(R),k.focus()};return f.addEventListener("mousedown",b=>{b.button!==0||b.target.closest(".amx-img-resize, .amx-src-btn")||(b.stopPropagation(),!ee(k,f,b,N)&&(b.preventDefault(),N()))}),yt(f,k,()=>{const b=C();if(!b)return;const R=k.state.tr.setSelection(F.create(k.state.doc,Math.min(b.from+1,k.state.doc.content.size)));R.setMeta(q,{sourceFrom:b.from}),k.dispatch(R),k.focus()}),f},{side:-1,ignoreSelection:!0,key:`i:${Y?1:0}:${p[0]}`}));continue}const ut=xt(p[1]);if(ut){const L=S-E;a.push($.inline(M,K,{class:"wikilink-src-hidden"})),a.push($.widget(M,(k,y)=>ie(ut,y,L),{side:-1,ignoreSelection:!0,key:`a:${p[0]}`,stopEvent:k=>k.type.startsWith("key"),destroy:ce}));continue}const P=bt(p[1]),Z=rt(p[1])||!!at(p[1])?null:kt(p[1]),J=Z?.subpath?{target:Z.target,subpath:Z.subpath}:null,Q=ae(p[1],J),O=J&&!J.target?!0:n(P),tt=O&&P?r?.(P):void 0,dt=O?se(p[1],P):null,et=At(p[1]);a.push($.inline(M,K,{class:"wikilink-src-hidden"})),a.push($.widget(M,(L,k)=>{const y=document.createElement("span");if(y.className=O?"wikilink":"wikilink wikilink-unresolved",y.setAttribute("role","link"),y.setAttribute("data-wiki",P),H(y,k,S-E),tt){const f=document.createElement("span");f.className="wikilink-emoji",f.textContent=tt,y.append(f,Q)}else dt?y.append(oe(dt),Q):y.textContent=Q;return y.addEventListener("mousedown",f=>{if(f.button===2||W&&f.button===0&&f.ctrlKey){f.preventDefault();return}if(f.button===1){f.preventDefault(),e(et,{newTab:!0});return}f.button!==0||f.shiftKey||f.altKey||(f.preventDefault(),e(et,(W?f.metaKey:f.ctrlKey)?{newTab:!0}:void 0))}),y.addEventListener("contextmenu",f=>{f.stopPropagation();const C=L.editable?()=>{const N=k();N!=null&&ct(L,N+1)}:void 0;!y.dispatchEvent(new CustomEvent("amadeus:wikilink-menu",{bubbles:!0,cancelable:!0,detail:{inner:et,x:f.clientX,y:f.clientY,edit:C}}))&&f.preventDefault()}),y},{side:-1,ignoreSelection:!0,key:`w:${p[0]}:${O?1:0}:${tt??""}`}))}return!1}),a.length?j.create(t.doc,a):j.empty}const nt=new WeakMap,st=new WeakMap,Tt=new WeakMap;function H(t,e,n){Tt.set(t,{getPos:e,len:n});const r=e();r!=null&&(t.dataset.srcFrom=String(r),t.dataset.srcTo=String(r+n))}function ue(t){const{from:e,to:n}=t.state.selection,r=D(t.state);for(const u of t.dom.querySelectorAll(".wikilink[data-src-from], .wiki-inline-img-wrap[data-src-from]")){const m=Tt.get(u);m&&H(u,m.getPos,m.len);const l=Number(u.dataset.srcFrom),d=Number(u.dataset.srcTo);e!==n&&e<d&&n>l?u.dataset.rangeSelected="":delete u.dataset.rangeSelected}const s=st.get(t)??null;let o=e,a=n;t.state.selection instanceof z&&t.state.selection.node.type.name==="paragraph"&&(o=e+1,a=n-1);const i=r&&o!==a?t.dom.querySelector(`.wiki-inline-img-wrap[data-src-from="${o}"][data-src-to="${a}"]`):null;if(s!==i){if(s&&(delete s.dataset.selected,nt.get(s)?.(),nt.delete(s)),i){i.dataset.selected="";const u=i.querySelector("img");u&&t.editable&&nt.set(i,_t(i,u,m=>{const l=(t.state.doc.textBetween(o,a).match(/^!\[\[([^\]\n|]+)/)??[])[1];if(!l)return;const d=`![[${l}|${m}]]`,c=t.state.tr.insertText(d,o,a);t.state.selection instanceof z?c.setSelection(z.create(c.doc,e)):c.setSelection(F.create(c.doc,o,o+d.length)),t.dispatch(c)}))}i?st.set(t,i):st.delete(t)}}function de(t,e){const n=t.state.selection;if(!(n instanceof F)||!n.empty||!n.$head.parent.isTextblock)return null;try{const a=t.coordsAtPos(n.head),i=t.coordsAtPos(e==="up"?n.$head.start():n.$head.end());if(Math.abs(a.top-i.top)>Math.max(2,a.bottom-a.top))return null}catch{if(e==="up"?n.$head.parentOffset!==0:n.$head.parentOffset!==n.$head.parent.content.size)return null}const r=[];t.state.doc.descendants((a,i)=>{if(!a.isTextblock)return!0;const u=U(a);let m=null;v.lastIndex=0;const l=v.exec(u);return l&&l.index===0&&l[0].length===u.length&&(m=i+1),r.push({pos:i,size:a.nodeSize,sourceFrom:m}),!1});const s=r.findIndex(a=>n.head>a.pos&&n.head<a.pos+a.size),o=r[s+(e==="up"?-1:1)];return o?.sourceFrom==null?null:o.sourceFrom+2}function Ae(t,e=()=>!0,n){return X(()=>new G({key:q,view:()=>({update:ue}),state:{init:()=>({sourceFrom:null}),apply:(r,s)=>{const o=r.getMeta(q);let a=s.sourceFrom;if(a!=null&&r.docChanged&&(a=r.mapping.map(a)),o&&typeof o.sourceFrom=="number")a=o.sourceFrom;else if(a!=null&&r.selectionSet){const i=r.doc.nodeAt(Math.max(0,a-1)),u=Math.max(0,a-1);(!i||r.selection.to<=u||r.selection.from>=u+i.nodeSize)&&(a=null)}return a===s.sourceFrom?s:{sourceFrom:a}}},props:{handleKeyDown:(r,s)=>{if(s.key!=="ArrowUp"&&s.key!=="ArrowDown"||s.metaKey||s.ctrlKey||s.altKey||s.shiftKey)return!1;const o=de(r,s.key==="ArrowUp"?"up":"down");return o==null?!1:(r.dispatch(r.state.tr.setSelection(F.create(r.state.doc,o)).scrollIntoView()),!0)},decorations:r=>le(r,t,e,n)}}))}function Ft(t){const e=t.selection.$head;if(!e.parent.isTextblock||e.parent.type.spec.code)return null;const n=re(e.parent,e.parentOffset),r=n===null?null:xt(n);if(r)return{kind:"app",ref:r};const s=n===null?"":At(n);if(s)return{kind:"wiki",arg:s};const o=t.schema.marks.link;if(!o)return null;const i=(o.isInSet(e.nodeAfter?.marks??[])??o.isInSet(e.nodeBefore?.marks??[]))?.attrs.href;return typeof i=="string"&&i?{kind:"href",href:i}:null}const V=new Map;let I=null;function fe(t){return X(()=>new G({view:e=>(V.set(e,t),{destroy:()=>{V.delete(e),I===e&&(I=null)}}),props:{handleDOMEvents:{focus:e=>(I=e,!1)}}}))}function pe(){const t=typeof document<"u"?document.activeElement:null;if(t){for(const e of V.keys())if(e.dom.contains(t))return e}return I&&I.dom.isConnected?I:null}function It(t,e){const n=Ft(t.state),r=V.get(t);return!n||!r?!1:(r(n,e),!0)}function me(t){const e=pe();e&&It(e,t==="followNewTab")}function ht(t){const e=t.toLowerCase().split("+").map(r=>r.trim()),n=e.pop()??"";return[...e.sort(),n].join("+")}function he(t){if(t.isComposing)return null;const e=Dt(t);if(!e)return null;const n=ht(e);for(const r of Wt){const s=Kt(r);if(s&&ht(s)===n)return r.kind}return null}const Te=Object.freeze(Object.defineProperty({__proto__:null,followLinkAt:It,linkAtCursor:Ft,linkFollowPlugin:fe,linkKindOfEvent:he,runLinkCommand:me},Symbol.toStringTag,{value:"Module"}));export{W as I,Gt as L,yt as a,U as b,Qt as c,T as d,D as e,ee as f,we as g,$e as h,Le as i,he as j,Ft as k,fe as l,Me as m,Te as n,Et as s,Se as u,te as v,Ae as w};
@@ -1 +1 @@
1
- import{r as E,B as C,t as F}from"./index-BYUntVIZ.js";import{$ as M}from"./index-Y2kzYlZq.js";import{nt as L,ng as $,nz as x,nk as S,nA as h}from"./appStore-affnJoin.js";E({"headfold.expandSection":{zh:"展开小节",en:"Expand section"}});const u=new L("AMX_HEADING_FOLD");function p(e,o){if(!Number.isInteger(o)||o<0||o>e.content.size)return null;let t;try{t=e.resolve(o)}catch{return null}const n=t.nodeAfter;return!n||n.type.name!=="heading"?null:{parent:t.parent,index:t.index(),base:t.start()}}function y(e){const o=[];let t=e.base;return e.parent.forEach(n=>{o.push(t),t+=n.nodeSize}),o}function b(e,o){const t=e.child(o),n=Number(t.attrs.level)||1;let l=o;for(let i=o+1;i<e.childCount;i++){const d=e.child(i);if(d.type.name==="heading"&&(Number(d.attrs.level)||1)<=n)break;l=i}return l===o?null:l}function k(e,o){const t=[];for(const n of o){const l=p(e,n);if(!l)continue;const i=b(l.parent,l.index);if(i==null)continue;const d=y(l);t.push(h.node(n,n+l.parent.child(l.index).nodeSize,{class:"amx-heading-folded"}));for(let s=l.index+1;s<=i;s++)t.push(h.node(d[s],d[s]+l.parent.child(s).nodeSize,{class:"amx-fold-hidden"}));t.push(h.widget(n+1,(s,c)=>{const r=document.createElement("button");r.type="button",r.className="amx-fold-caret",r.textContent="▸",r.contentEditable="false";const a=()=>{r.title=F("headfold.expandSection"),r.setAttribute("aria-label",r.title)};return a(),r.setAttribute("aria-expanded","false"),r.__off=C(a),r.addEventListener("mousedown",_=>{_.preventDefault(),_.stopPropagation();const A=c();if(A==null)return;const z=s.state.doc.resolve(A);D(s,z.before(z.depth))}),r},{side:-1,ignoreSelection:!0,key:`amxfold:${n}`,destroy:s=>{s.__off?.()}}))}return x.create(e,t)}function K(e){const o=[];return e.descendants((t,n)=>{if(t.type.name!=="heading")return!0;const l=p(e,n);return l&&b(l.parent,l.index)!=null&&o.push(n),!1}),o}function D(e,o){e.dispatch(e.state.tr.setMeta(u,{toggle:o}))}function O(e,o){const t=u.getState(e.state),n=p(e.state.doc,o);return!n||b(n.parent,n.index)==null?null:t?.folded.includes(o)?"folded":"foldable"}function g(e,o){const t=[];for(const n of o){const l=p(e,n);if(!l)continue;const i=b(l.parent,l.index);if(i==null)continue;const d=y(l);t.push({start:d[l.index+1],after:d[i]+l.parent.child(i).nodeSize})}return t}function T(e,o){const t=p(e,o);if(!t)return null;const n=b(t.parent,t.index)??t.index;return y(t)[n]+t.parent.child(n).nodeSize}function X(e,o){if(!u.getState(e)?.folded.includes(o))return null;const n=g(e.doc,[o])[0];return n?n.after:null}function j(e,o){const t=u.getState(e);if(!t?.folded.length)return null;for(const n of t.folded)for(const l of g(e.doc,[n]))if(o>l.start&&o<l.after)return n;return null}const B=[M(()=>new $({key:u,state:{init:()=>({folded:[],decos:x.empty}),apply:(e,o,t)=>{let n=o.folded;if(e.docChanged&&(n=n.map(d=>e.mapping.mapResult(d)).filter(d=>!d.deleted||p(e.doc,d.pos)!=null).map(d=>d.pos)),e.docChanged&&e.getMeta("uiEvent")==="drop"){const d=[];e.mapping.maps[e.mapping.maps.length-1].forEach((s,c,r,a)=>{a>r&&d.push([r,a])}),n=n.filter(s=>!g(e.doc,[s]).some(c=>d.some(([r,a])=>r<c.after&&a>c.start)))}let l=[];if(e.docChanged&&e.selection.empty&&n.length){const d=t.selection,s=d.empty&&g(t.doc,o.folded).some(r=>d.from>r.start&&d.from<r.after),c=e.selection.from;s||(l=n.filter(r=>g(e.doc,[r]).some(a=>c>a.start&&c<a.after)))}const i=e.getMeta(u);if(i?.set&&(n=i.set.slice()),i?.toggle!=null){const d=i.toggle;n=n.includes(d)?n.filter(s=>s!==d):[...n,d]}return l.length&&(n=n.filter(d=>d===i?.toggle||!l.includes(d))),n=[...new Set(n)].filter(d=>{const s=p(e.doc,d);return s!=null&&b(s.parent,s.index)!=null}),!e.docChanged&&!i&&n===o.folded?o:{folded:n,decos:k(e.doc,n)}}},appendTransaction:(e,o,t)=>{const n=u.getState(t);if(!n?.folded.length||!t.selection.empty)return null;const l=t.selection.from;for(const i of g(t.doc,n.folded)){if(l<=i.start||l>=i.after)continue;const d=l>=o.selection.from?1:-1;let s=S.near(t.doc.resolve(d===1?Math.min(i.after,t.doc.content.size):i.start),d);return s.from>i.start&&s.from<i.after&&(s=S.near(t.doc.resolve(i.start),-1)),t.tr.setSelection(s)}return null},props:{decorations(e){return u.getState(e)?.decos??null}}}))].flat();E({"listfold.expandChildren":{zh:"展开子项",en:"Expand children"}});const f=new L("AMX_LIST_FOLD");function m(e,o){if(o<0||o>=e.content.size)return null;const t=e.nodeAt(o);if(!t||t.type.name!=="list_item"||t.childCount<2)return null;const n=t.child(1);if(!/_list$/.test(n.type.name))return null;const l=o+1+t.child(0).nodeSize;return{item:t,from:l,to:l+n.nodeSize}}function H(e,o){const t=[];for(const n of o){const l=m(e,n);l&&(t.push(h.node(n,n+l.item.nodeSize,{class:"amx-listitem-folded"})),t.push(h.node(l.from,l.to,{class:"amx-fold-hidden"})),t.push(h.widget(n+2,(i,d)=>{const s=document.createElement("button");s.type="button",s.className="amx-fold-caret",s.textContent="▸",s.contentEditable="false";const c=()=>{s.title=F("listfold.expandChildren"),s.setAttribute("aria-label",s.title)};return c(),s.setAttribute("aria-expanded","false"),s.__off=C(c),s.addEventListener("mousedown",r=>{r.preventDefault(),r.stopPropagation();const a=d();a!=null&&N(i,i.state.doc.resolve(a).before(i.state.doc.resolve(a).depth-1))}),s},{side:-1,ignoreSelection:!0,key:`amxlfold:${n}`,destroy:i=>{i.__off?.()}})))}return x.create(e,t)}function G(e){const o=[];return e.descendants((t,n)=>(t.type.name==="list_item"&&m(e,n)&&o.push(n),!0)),o}function N(e,o){e.dispatch(e.state.tr.setMeta(f,{toggle:o}))}function q(e,o){return m(e.state.doc,o)?f.getState(e.state)?.folded.includes(o)?"folded":"foldable":null}function P(e){const o=f.getState(e);return o?.folded.length?R(e.doc,o.folded):[]}function R(e,o){const t=[];for(const n of o){const l=m(e,n);l&&t.push({start:l.from,after:l.to})}return t}function J(e,o){const t=f.getState(e);return t?.folded.length?t.folded.filter(n=>{const l=m(e.doc,n);return!!l&&o>l.from&&o<l.to}):[]}function Q(e,o){return!!f.getState(e)?.folded.includes(o)}const U=[M(()=>new $({key:f,state:{init:()=>({folded:[],decos:x.empty}),apply:(e,o)=>{let t=o.folded;e.docChanged&&(t=t.map(l=>e.mapping.mapResult(l)).filter(l=>!l.deleted||m(e.doc,l.pos)!=null).map(l=>l.pos));const n=e.getMeta(f);if(n?.set&&(t=n.set.slice()),n?.toggle!=null){const l=n.toggle;t=t.includes(l)?t.filter(i=>i!==l):[...t,l]}return t=[...new Set(t)].filter(l=>m(e.doc,l)!=null),!e.docChanged&&!n&&t===o.folded?o:{folded:t,decos:H(e.doc,t)}}},appendTransaction:(e,o,t)=>{if(!f.getState(t)?.folded.length||!t.selection.empty)return null;const l=t.selection.from;for(const i of P(t)){if(l<=i.start||l>=i.after)continue;const d=l>=o.selection.from?1:-1;let s=S.near(t.doc.resolve(d===1?Math.min(i.after,t.doc.content.size):i.start),d);return s.from>i.start&&s.from<i.after&&(s=S.near(t.doc.resolve(i.start),-1)),t.tr.setSelection(s)}return null},props:{decorations(e){return f.getState(e)?.decos??null}}}))].flat();export{g as a,j as b,P as c,O as d,q as e,X as f,N as g,u as h,Q as i,B as j,U as k,f as l,J as m,K as n,G as o,R as p,T as s,D as t};
1
+ import{a as z,E as C,t as F}from"./index-fDB1l4d-.js";import{$ as L}from"./index-CmsN2Zm2.js";import{mL as M,mB as $,mR as x,mF as S,mU as h}from"./appStore-DDOkzWDA.js";z({"headfold.expandSection":{zh:"展开小节",en:"Expand section"}});const u=new M("AMX_HEADING_FOLD");function p(e,o){if(!Number.isInteger(o)||o<0||o>e.content.size)return null;let t;try{t=e.resolve(o)}catch{return null}const n=t.nodeAfter;return!n||n.type.name!=="heading"?null:{parent:t.parent,index:t.index(),base:t.start()}}function y(e){const o=[];let t=e.base;return e.parent.forEach(n=>{o.push(t),t+=n.nodeSize}),o}function b(e,o){const t=e.child(o),n=Number(t.attrs.level)||1;let l=o;for(let i=o+1;i<e.childCount;i++){const d=e.child(i);if(d.type.name==="heading"&&(Number(d.attrs.level)||1)<=n)break;l=i}return l===o?null:l}function D(e,o){const t=[];for(const n of o){const l=p(e,n);if(!l)continue;const i=b(l.parent,l.index);if(i==null)continue;const d=y(l);t.push(h.node(n,n+l.parent.child(l.index).nodeSize,{class:"amx-heading-folded"}));for(let s=l.index+1;s<=i;s++)t.push(h.node(d[s],d[s]+l.parent.child(s).nodeSize,{class:"amx-fold-hidden"}));t.push(h.widget(n+1,(s,c)=>{const r=document.createElement("button");r.type="button",r.className="amx-fold-caret",r.textContent="▸",r.contentEditable="false";const a=()=>{r.title=F("headfold.expandSection"),r.setAttribute("aria-label",r.title)};return a(),r.setAttribute("aria-expanded","false"),r.__off=C(a),r.addEventListener("mousedown",_=>{_.preventDefault(),_.stopPropagation();const A=c();if(A==null)return;const E=s.state.doc.resolve(A);H(s,E.before(E.depth))}),r},{side:-1,ignoreSelection:!0,key:`amxfold:${n}`,destroy:s=>{s.__off?.()}}))}return x.create(e,t)}function K(e){const o=[];return e.descendants((t,n)=>{if(t.type.name!=="heading")return!0;const l=p(e,n);return l&&b(l.parent,l.index)!=null&&o.push(n),!1}),o}function H(e,o){e.dispatch(e.state.tr.setMeta(u,{toggle:o}))}function O(e,o){const t=u.getState(e.state),n=p(e.state.doc,o);return!n||b(n.parent,n.index)==null?null:t?.folded.includes(o)?"folded":"foldable"}function g(e,o){const t=[];for(const n of o){const l=p(e,n);if(!l)continue;const i=b(l.parent,l.index);if(i==null)continue;const d=y(l);t.push({start:d[l.index+1],after:d[i]+l.parent.child(i).nodeSize})}return t}function T(e,o){const t=p(e,o);if(!t)return null;const n=b(t.parent,t.index)??t.index;return y(t)[n]+t.parent.child(n).nodeSize}function X(e,o){if(!u.getState(e)?.folded.includes(o))return null;const n=g(e.doc,[o])[0];return n?n.after:null}function j(e,o){const t=u.getState(e);if(!t?.folded.length)return null;for(const n of t.folded)for(const l of g(e.doc,[n]))if(o>l.start&&o<l.after)return n;return null}const B=[L(()=>new $({key:u,state:{init:()=>({folded:[],decos:x.empty}),apply:(e,o,t)=>{let n=o.folded;if(e.docChanged&&(n=n.map(d=>e.mapping.mapResult(d)).filter(d=>!d.deleted||p(e.doc,d.pos)!=null).map(d=>d.pos)),e.docChanged&&e.getMeta("uiEvent")==="drop"){const d=[];e.mapping.maps[e.mapping.maps.length-1].forEach((s,c,r,a)=>{a>r&&d.push([r,a])}),n=n.filter(s=>!g(e.doc,[s]).some(c=>d.some(([r,a])=>r<c.after&&a>c.start)))}let l=[];if(e.docChanged&&e.selection.empty&&n.length){const d=t.selection,s=d.empty&&g(t.doc,o.folded).some(r=>d.from>r.start&&d.from<r.after),c=e.selection.from;s||(l=n.filter(r=>g(e.doc,[r]).some(a=>c>a.start&&c<a.after)))}const i=e.getMeta(u);if(i?.set&&(n=i.set.slice()),i?.toggle!=null){const d=i.toggle;n=n.includes(d)?n.filter(s=>s!==d):[...n,d]}return l.length&&(n=n.filter(d=>d===i?.toggle||!l.includes(d))),n=[...new Set(n)].filter(d=>{const s=p(e.doc,d);return s!=null&&b(s.parent,s.index)!=null}),!e.docChanged&&!i&&n===o.folded?o:{folded:n,decos:D(e.doc,n)}}},appendTransaction:(e,o,t)=>{const n=u.getState(t);if(!n?.folded.length||!t.selection.empty)return null;const l=t.selection.from;for(const i of g(t.doc,n.folded)){if(l<=i.start||l>=i.after)continue;const d=l>=o.selection.from?1:-1;let s=S.near(t.doc.resolve(d===1?Math.min(i.after,t.doc.content.size):i.start),d);return s.from>i.start&&s.from<i.after&&(s=S.near(t.doc.resolve(i.start),-1)),t.tr.setSelection(s)}return null},props:{decorations(e){return u.getState(e)?.decos??null}}}))].flat();z({"listfold.expandChildren":{zh:"展开子项",en:"Expand children"}});const f=new M("AMX_LIST_FOLD");function m(e,o){if(o<0||o>=e.content.size)return null;const t=e.nodeAt(o);if(!t||t.type.name!=="list_item"||t.childCount<2)return null;const n=t.child(1);if(!/_list$/.test(n.type.name))return null;const l=o+1+t.child(0).nodeSize;return{item:t,from:l,to:l+n.nodeSize}}function k(e,o){const t=[];for(const n of o){const l=m(e,n);l&&(t.push(h.node(n,n+l.item.nodeSize,{class:"amx-listitem-folded"})),t.push(h.node(l.from,l.to,{class:"amx-fold-hidden"})),t.push(h.widget(n+2,(i,d)=>{const s=document.createElement("button");s.type="button",s.className="amx-fold-caret",s.textContent="▸",s.contentEditable="false";const c=()=>{s.title=F("listfold.expandChildren"),s.setAttribute("aria-label",s.title)};return c(),s.setAttribute("aria-expanded","false"),s.__off=C(c),s.addEventListener("mousedown",r=>{r.preventDefault(),r.stopPropagation();const a=d();a!=null&&N(i,i.state.doc.resolve(a).before(i.state.doc.resolve(a).depth-1))}),s},{side:-1,ignoreSelection:!0,key:`amxlfold:${n}`,destroy:i=>{i.__off?.()}})))}return x.create(e,t)}function G(e){const o=[];return e.descendants((t,n)=>(t.type.name==="list_item"&&m(e,n)&&o.push(n),!0)),o}function N(e,o){e.dispatch(e.state.tr.setMeta(f,{toggle:o}))}function U(e,o){return m(e.state.doc,o)?f.getState(e.state)?.folded.includes(o)?"folded":"foldable":null}function P(e){const o=f.getState(e);return o?.folded.length?R(e.doc,o.folded):[]}function R(e,o){const t=[];for(const n of o){const l=m(e,n);l&&t.push({start:l.from,after:l.to})}return t}function q(e,o){const t=f.getState(e);return t?.folded.length?t.folded.filter(n=>{const l=m(e.doc,n);return!!l&&o>l.from&&o<l.to}):[]}function J(e,o){return!!f.getState(e)?.folded.includes(o)}const Q=[L(()=>new $({key:f,state:{init:()=>({folded:[],decos:x.empty}),apply:(e,o)=>{let t=o.folded;e.docChanged&&(t=t.map(l=>e.mapping.mapResult(l)).filter(l=>!l.deleted||m(e.doc,l.pos)!=null).map(l=>l.pos));const n=e.getMeta(f);if(n?.set&&(t=n.set.slice()),n?.toggle!=null){const l=n.toggle;t=t.includes(l)?t.filter(i=>i!==l):[...t,l]}return t=[...new Set(t)].filter(l=>m(e.doc,l)!=null),!e.docChanged&&!n&&t===o.folded?o:{folded:t,decos:k(e.doc,t)}}},appendTransaction:(e,o,t)=>{if(!f.getState(t)?.folded.length||!t.selection.empty)return null;const l=t.selection.from;for(const i of P(t)){if(l<=i.start||l>=i.after)continue;const d=l>=o.selection.from?1:-1;let s=S.near(t.doc.resolve(d===1?Math.min(i.after,t.doc.content.size):i.start),d);return s.from>i.start&&s.from<i.after&&(s=S.near(t.doc.resolve(i.start),-1)),t.tr.setSelection(s)}return null},props:{decorations(e){return f.getState(e)?.decos??null}}}))].flat();export{g as a,j as b,P as c,O as d,U as e,X as f,N as g,u as h,J as i,B as j,Q as k,f as l,q as m,K as n,G as o,R as p,T as s,H as t};
@@ -0,0 +1 @@
1
+ import{p as e}from"./pageStore-CyvNZEYX.js";const o=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]],t=e("lock-open",o);export{t as L};
@@ -0,0 +1 @@
1
+ import{p as o}from"./pageStore-CyvNZEYX.js";const t=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],e=o("log-out",t);export{e as L};
@@ -0,0 +1 @@
1
+ import{p as a}from"./pageStore-CyvNZEYX.js";const e=[["path",{d:"m12 15 4 4",key:"lnac28"}],["path",{d:"M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282z",key:"nlhkjb"}],["path",{d:"m5 8 4 4",key:"j6kj7e"}]],n=a("magnet",e);export{n as M};