@ahpd/web 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +211 -2
  3. package/dist/app/ahpw.svg +8 -0
  4. package/dist/app/assets/ActionList-Bawu-Lja.css +1 -0
  5. package/dist/app/assets/ActionList-aOUHK9Z9.js +1 -0
  6. package/dist/app/assets/ActivityBarItem-Cyes10aK.css +1 -0
  7. package/dist/app/assets/ActivityBarItem-DVzJQ1uh.js +1 -0
  8. package/dist/app/assets/Alert-CHZkhmDE.js +1 -0
  9. package/dist/app/assets/Alert-D6FTUHBY.css +1 -0
  10. package/dist/app/assets/Audio-C0yEXr8X.js +1 -0
  11. package/dist/app/assets/Audio-DZmBckTU.css +1 -0
  12. package/dist/app/assets/Badge-BDEW5PFb.js +1 -0
  13. package/dist/app/assets/Badge-B_GtDNjv.css +1 -0
  14. package/dist/app/assets/BarChart-29IHwYQG.css +1 -0
  15. package/dist/app/assets/BarChart-BX8Dbz7S.js +1 -0
  16. package/dist/app/assets/BarLayout-CkfGX1E0.js +1 -0
  17. package/dist/app/assets/Button-CRZ1_3KW.css +1 -0
  18. package/dist/app/assets/Button-_R1oktDz.js +1 -0
  19. package/dist/app/assets/ButtonBar-CpWwS0s7.js +1 -0
  20. package/dist/app/assets/ButtonBar-DfHeNg1i.css +1 -0
  21. package/dist/app/assets/Card-BAqJm0ZO.js +1 -0
  22. package/dist/app/assets/Card-BZxOMaUR.css +1 -0
  23. package/dist/app/assets/CheckBox-Br18O83H.css +1 -0
  24. package/dist/app/assets/CheckBox-Dkn59EbO.js +1 -0
  25. package/dist/app/assets/ChoicePicker-BX-KNSVk.css +1 -0
  26. package/dist/app/assets/ChoicePicker-Cg4Cj6B2.js +1 -0
  27. package/dist/app/assets/Column-BQyN2Mnc.js +1 -0
  28. package/dist/app/assets/Column-Df5lN6aE.css +1 -0
  29. package/dist/app/assets/Composer-DpjCaX5G.js +2 -0
  30. package/dist/app/assets/ContextMenu-qqlGWvJT.js +1 -0
  31. package/dist/app/assets/DataTable-Bv6EG42F.js +1 -0
  32. package/dist/app/assets/DataTable-D5MTEmlc.css +1 -0
  33. package/dist/app/assets/DateTimeInput-Ccmu6vbY.js +1 -0
  34. package/dist/app/assets/DateTimeInput-x1XGuNl0.css +1 -0
  35. package/dist/app/assets/DetailHeader-D4ulpmi_.css +1 -0
  36. package/dist/app/assets/DetailHeader-DvDOX8aJ.js +1 -0
  37. package/dist/app/assets/DetailList-BeikDUyt.css +1 -0
  38. package/dist/app/assets/DetailList-Yalgw0YM.js +1 -0
  39. package/dist/app/assets/Details-Cymq_tLr.js +1 -0
  40. package/dist/app/assets/DiffPage-CrT1Faon.js +1 -0
  41. package/dist/app/assets/Divider-Bp3vn6nH.js +1 -0
  42. package/dist/app/assets/Divider-MNeVl6_n.css +1 -0
  43. package/dist/app/assets/Divisor-D4gUgDSw.css +1 -0
  44. package/dist/app/assets/Divisor-hrrJK3bw.js +1 -0
  45. package/dist/app/assets/Donut-BJmeC9Mu.js +1 -0
  46. package/dist/app/assets/Donut-BwdpL6WL.css +1 -0
  47. package/dist/app/assets/Edit-KxWRJB1t.js +1 -0
  48. package/dist/app/assets/Explorer-C4zxSdMF.js +1 -0
  49. package/dist/app/assets/Explorer-Cxl5QGRN.js +1 -0
  50. package/dist/app/assets/Explorer-D9lzbmtd.js +1 -0
  51. package/dist/app/assets/Explorer-h1FYBfP3.js +1 -0
  52. package/dist/app/assets/Explorer-kMkPIrYG.js +1 -0
  53. package/dist/app/assets/ExplorerList-Bdp0sfLW.js +1 -0
  54. package/dist/app/assets/Field-CJtqXD7H.js +1 -0
  55. package/dist/app/assets/Field-DpS1bv_y.css +1 -0
  56. package/dist/app/assets/FieldGroup-2u9EmHRU.js +1 -0
  57. package/dist/app/assets/FieldGroup-B_DfbBby.css +1 -0
  58. package/dist/app/assets/FilePage-CWjlubpU.js +1 -0
  59. package/dist/app/assets/Filter-y-cAyV5s.js +1 -0
  60. package/dist/app/assets/FloatingLayout-8Wke63p3.js +1 -0
  61. package/dist/app/assets/Form-BKda3NBV.css +1 -0
  62. package/dist/app/assets/Form-D7L1aboH.js +1 -0
  63. package/dist/app/assets/FormActions-DK5QnUct.css +1 -0
  64. package/dist/app/assets/FormActions-DTJXRhkf.js +1 -0
  65. package/dist/app/assets/FormSection-BmWfSm92.js +1 -0
  66. package/dist/app/assets/FormSection-DSe5kU1s.css +1 -0
  67. package/dist/app/assets/Grid-BSSvEO5L.css +1 -0
  68. package/dist/app/assets/Grid-BmJ1BSH9.js +1 -0
  69. package/dist/app/assets/Icon-BFMW_Ijn.css +1 -0
  70. package/dist/app/assets/Icon-CIQ7doud.js +1 -0
  71. package/dist/app/assets/Image-dnPnniEL.css +1 -0
  72. package/dist/app/assets/Image-krGhoZYB.js +1 -0
  73. package/dist/app/assets/Info-levnJ1pH.js +1 -0
  74. package/dist/app/assets/InlineLayout-Cnpt0vI0.js +1 -0
  75. package/dist/app/assets/LineChart-DnF4pqRu.css +1 -0
  76. package/dist/app/assets/LineChart-DxnWTKNr.js +1 -0
  77. package/dist/app/assets/Link-Bmovln50.css +1 -0
  78. package/dist/app/assets/Link-DbBfZpn0.js +1 -0
  79. package/dist/app/assets/List-BCNZ5z-i.css +1 -0
  80. package/dist/app/assets/List-BqbZ9K9S.js +1 -0
  81. package/dist/app/assets/LocaleToggle-BVab8iNa.css +1 -0
  82. package/dist/app/assets/LocaleToggle-DtU53oIZ.js +1 -0
  83. package/dist/app/assets/LogPage-QIumryht.js +1 -0
  84. package/dist/app/assets/LoginForm-BJhoxJyJ.css +1 -0
  85. package/dist/app/assets/LoginForm-CoxoSwG-.js +1 -0
  86. package/dist/app/assets/Markdown-BaxWPZc1.js +4 -0
  87. package/dist/app/assets/Markdown-D4ts0B_q.css +1 -0
  88. package/dist/app/assets/MarkdownPage-CNUmYD-d.js +1 -0
  89. package/dist/app/assets/Modal-BHPfQpzr.js +1 -0
  90. package/dist/app/assets/MountTitle-hWvATFel.js +1 -0
  91. package/dist/app/assets/New-CWi2ZODd.js +3 -0
  92. package/dist/app/assets/Page-BXwzlAyC.js +2 -0
  93. package/dist/app/assets/Page-BlQx3M_Q.js +1 -0
  94. package/dist/app/assets/Page-DXYj-sYk.js +1 -0
  95. package/dist/app/assets/Pagination-FSzhBpDU.js +1 -0
  96. package/dist/app/assets/PortaLock-BME0nNtM.css +1 -0
  97. package/dist/app/assets/PortaLock-Dvr-6D1r.js +2 -0
  98. package/dist/app/assets/RailLayout-MV_LU2y0.js +1 -0
  99. package/dist/app/assets/Row-BpA7AC-I.js +1 -0
  100. package/dist/app/assets/Row-DtfZU_4a.css +1 -0
  101. package/dist/app/assets/ScenaProvider-6A3TJumQ.js +1 -0
  102. package/dist/app/assets/SchemaForm-B_SWmx0L.css +1 -0
  103. package/dist/app/assets/SchemaForm-D6mGj6Xh.js +1 -0
  104. package/dist/app/assets/Settings--Ciusotp.js +1 -0
  105. package/dist/app/assets/SigillumGate-DoeGhrpT.js +1 -0
  106. package/dist/app/assets/SingleLayout-CmIAtyIo.js +1 -0
  107. package/dist/app/assets/Slider-0-pV25N6.css +1 -0
  108. package/dist/app/assets/Slider-BW21RHZe.js +1 -0
  109. package/dist/app/assets/SpatialLayout-CacNe1y4.js +1 -0
  110. package/dist/app/assets/SpatialLayout-DzIS1m9Q.css +1 -0
  111. package/dist/app/assets/Spinner-B-iOhBZq.js +1 -0
  112. package/dist/app/assets/Spinner-B56wMtzv.css +1 -0
  113. package/dist/app/assets/SplitLayout-BANKBMIh.js +1 -0
  114. package/dist/app/assets/Splitter-M7YGn5I8.js +1 -0
  115. package/dist/app/assets/StackLayout-Cz4zMN4f.js +1 -0
  116. package/dist/app/assets/StatusDot-BwqhMthP.js +1 -0
  117. package/dist/app/assets/StatusDot-DzzNqTRg.css +1 -0
  118. package/dist/app/assets/TabLayout-BaH8UNpt.js +1 -0
  119. package/dist/app/assets/TabPanelLayout-DkFUNHcz.js +1 -0
  120. package/dist/app/assets/Tabs-BYb2LuJK.css +1 -0
  121. package/dist/app/assets/Tabs-uqIKAux6.js +1 -0
  122. package/dist/app/assets/TerminalPage-BrP-ENHg.css +1 -0
  123. package/dist/app/assets/TerminalPage-C58xO7du.js +18 -0
  124. package/dist/app/assets/Text-D2KlerVw.css +1 -0
  125. package/dist/app/assets/Text-MPtQvYE-.js +1 -0
  126. package/dist/app/assets/TextField-DnSHrmJM.js +1 -0
  127. package/dist/app/assets/ThemeModeToggle-CAippEfJ.js +1 -0
  128. package/dist/app/assets/ThemeModeToggle-D_xGqGsG.css +1 -0
  129. package/dist/app/assets/ThemePicker-BxbcsOmU.css +1 -0
  130. package/dist/app/assets/ThemePicker-CvnWboZg.js +1 -0
  131. package/dist/app/assets/Tree-BAAGdT3c.css +1 -0
  132. package/dist/app/assets/Tree-Bb5NwYJ1.js +1 -0
  133. package/dist/app/assets/Video-5WNSpY2W.js +1 -0
  134. package/dist/app/assets/Video-Dj-rxrve.css +1 -0
  135. package/dist/app/assets/_field-parts-BuPjFCuf.js +1 -0
  136. package/dist/app/assets/_field-parts-CfQcSJYh.css +1 -0
  137. package/dist/app/assets/_field-parts-DannIEUW.css +1 -0
  138. package/dist/app/assets/_utils-DZVsX11M.js +1 -0
  139. package/dist/app/assets/actions-BQzD99j0.js +1 -0
  140. package/dist/app/assets/changeset-BY8dw-V-.js +1 -0
  141. package/dist/app/assets/channel-Cqz_LUS2.js +1 -0
  142. package/dist/app/assets/clicks-IyfKhKFh.js +1 -0
  143. package/dist/app/assets/colors-BieSUSt7.js +1 -0
  144. package/dist/app/assets/composer-commands-Bpp7NX4E.js +2 -0
  145. package/dist/app/assets/data-Fkj0LNnG.js +2 -0
  146. package/dist/app/assets/diff-eyYjrmkY.js +3 -0
  147. package/dist/app/assets/drag-ruzgQUFW.js +1 -0
  148. package/dist/app/assets/emojis-BOylxma2.js +1 -0
  149. package/dist/app/assets/index-BkzdJo_Y.js +14 -0
  150. package/dist/app/assets/index-CPXMK2aI.css +1 -0
  151. package/dist/app/assets/jsx-runtime-BguD1OXD.js +1 -0
  152. package/dist/app/assets/mount-context-DZgEFVFG.js +1 -0
  153. package/dist/app/assets/notify-Bb548jAB.js +1 -0
  154. package/dist/app/assets/preload-helper-BaNbYf_w.js +1 -0
  155. package/dist/app/assets/react-CybPckBe.js +1 -0
  156. package/dist/app/assets/sessions-CEccRVtA.js +2 -0
  157. package/dist/app/assets/sigillum-Bev0l9LS.js +1 -0
  158. package/dist/app/assets/state-DRVsnGrf.js +1 -0
  159. package/dist/app/assets/state-KGSq646f.js +1 -0
  160. package/dist/app/assets/styles-yrzHRgom.js +1 -0
  161. package/dist/app/assets/surface-presentation-CT86pw6J.js +1 -0
  162. package/dist/app/assets/terminal-kD0C2LuZ.js +1 -0
  163. package/dist/app/assets/text-CmjM0Nin.js +1 -0
  164. package/dist/app/assets/turn-BoF7W1h6.js +3 -0
  165. package/dist/app/assets/useI18n-Bfix5MNN.js +1 -0
  166. package/dist/app/assets/useStore-BQkzWMs-.js +2 -0
  167. package/dist/app/assets/useStoreLabel-m9cem_OG.js +1 -0
  168. package/dist/app/assets/words-BMjqrsOT.js +1 -0
  169. package/dist/app/assets/words-BknpHIF3.js +1 -0
  170. package/dist/app/index.html +54 -0
  171. package/dist/cli/main.js +21 -0
  172. package/dist/cli/main.js.map +1 -0
  173. package/dist/cli/proxy.js +101 -0
  174. package/dist/cli/proxy.js.map +1 -0
  175. package/dist/cli/serve.js +207 -0
  176. package/dist/cli/serve.js.map +1 -0
  177. package/dist/cli/server.js +32 -0
  178. package/dist/cli/server.js.map +1 -0
  179. package/dist/plugin/index.d.ts +6 -0
  180. package/dist/plugin/index.js +12 -0
  181. package/dist/plugin/index.js.map +1 -0
  182. package/dist/plugin/static.d.ts +9 -0
  183. package/dist/plugin/static.js +77 -0
  184. package/dist/plugin/static.js.map +1 -0
  185. package/package.json +83 -3
@@ -0,0 +1 @@
1
+ :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--oo-rgb-white:255 255 255;--oo-rgb-black:17 24 39;--oo-rgb-slate:100 116 139;--oo-rgb-gray:107 114 128;--oo-rgb-zinc:113 113 122;--oo-rgb-neutral:115 115 115;--oo-rgb-stone:120 113 108;--oo-rgb-red:239 68 68;--oo-rgb-orange:249 115 22;--oo-rgb-amber:245 158 11;--oo-rgb-yellow:234 179 8;--oo-rgb-lime:132 204 22;--oo-rgb-green:34 197 94;--oo-rgb-emerald:16 185 129;--oo-rgb-teal:20 184 166;--oo-rgb-cyan:6 182 212;--oo-rgb-sky:14 165 233;--oo-rgb-blue:59 130 246;--oo-rgb-indigo:99 102 241;--oo-rgb-violet:139 92 246;--oo-rgb-purple:168 85 247;--oo-rgb-fuchsia:217 70 239;--oo-rgb-pink:236 72 153;--oo-rgb-rose:244 63 94;--oo-color-white:rgb(var(--oo-rgb-white));--oo-color-black:rgb(var(--oo-rgb-black));--oo-color-slate:rgb(var(--oo-rgb-slate));--oo-color-gray:rgb(var(--oo-rgb-gray));--oo-color-zinc:rgb(var(--oo-rgb-zinc));--oo-color-neutral:rgb(var(--oo-rgb-neutral));--oo-color-stone:rgb(var(--oo-rgb-stone));--oo-color-red:rgb(var(--oo-rgb-red));--oo-color-orange:rgb(var(--oo-rgb-orange));--oo-color-amber:rgb(var(--oo-rgb-amber));--oo-color-yellow:rgb(var(--oo-rgb-yellow));--oo-color-lime:rgb(var(--oo-rgb-lime));--oo-color-green:rgb(var(--oo-rgb-green));--oo-color-emerald:rgb(var(--oo-rgb-emerald));--oo-color-teal:rgb(var(--oo-rgb-teal));--oo-color-cyan:rgb(var(--oo-rgb-cyan));--oo-color-sky:rgb(var(--oo-rgb-sky));--oo-color-blue:rgb(var(--oo-rgb-blue));--oo-color-indigo:rgb(var(--oo-rgb-indigo));--oo-color-violet:rgb(var(--oo-rgb-violet));--oo-color-purple:rgb(var(--oo-rgb-purple));--oo-color-fuchsia:rgb(var(--oo-rgb-fuchsia));--oo-color-pink:rgb(var(--oo-rgb-pink));--oo-color-rose:rgb(var(--oo-rgb-rose));--oo-rgb-canvas:255 255 255;--oo-rgb-panel:248 248 248;--oo-rgb-surface:255 255 255;--oo-rgb-raised:255 255 255;--oo-rgb-titlebar:var(--oo-rgb-panel);--oo-rgb-activitybar:var(--oo-rgb-panel);--oo-rgb-sidebar:var(--oo-rgb-panel);--oo-rgb-statusbar:var(--oo-rgb-panel);--oo-rgb-text:45 53 92;--oo-rgb-muted:152 152 172;--oo-rgb-subtle:170 170 188;--oo-rgb-inverse:255 255 255;--oo-rgb-hover:240 240 240;--oo-rgb-active:232 232 232;--oo-rgb-selected:230 250 246;--oo-rgb-line:185 185 255;--oo-rgb-border:185 185 255;--oo-line-alpha:.25;--oo-border-alpha:.25;--oo-rgb-accent:78 201 176;--oo-rgb-primary:12 112 97;--oo-rgb-danger:204 0 0;--oo-rgb-success:0 170 0;--oo-rgb-warning:204 136 0;--oo-rgb-info:var(--oo-rgb-blue);--oo-color-canvas:rgb(var(--oo-rgb-canvas));--oo-color-panel:rgb(var(--oo-rgb-panel));--oo-color-surface:rgb(var(--oo-rgb-surface));--oo-color-raised:rgb(var(--oo-rgb-raised));--oo-color-surface-root:var(--oo-color-surface);--oo-color-titlebar:rgb(var(--oo-rgb-titlebar));--oo-color-activitybar:rgb(var(--oo-rgb-activitybar));--oo-color-sidebar:rgb(var(--oo-rgb-sidebar));--oo-color-statusbar:rgb(var(--oo-rgb-statusbar));--oo-color-text:rgb(var(--oo-rgb-text));--oo-color-muted:rgb(var(--oo-rgb-muted));--oo-color-subtle:rgb(var(--oo-rgb-subtle));--oo-color-inverse:rgb(var(--oo-rgb-inverse));--oo-color-hover:rgb(var(--oo-rgb-hover));--oo-color-active:rgb(var(--oo-rgb-active));--oo-color-selected:rgb(var(--oo-rgb-selected));--oo-color-line:rgb(var(--oo-rgb-line) / var(--oo-line-alpha));--oo-color-border:rgb(var(--oo-rgb-border) / var(--oo-border-alpha));--oo-color-accent:rgb(var(--oo-rgb-accent));--oo-color-primary:rgb(var(--oo-rgb-primary));--oo-color-danger:rgb(var(--oo-rgb-danger));--oo-color-success:rgb(var(--oo-rgb-success));--oo-color-warning:rgb(var(--oo-rgb-warning));--oo-color-info:rgb(var(--oo-rgb-info));--oo-app-bg:var(--oo-color-canvas);--oo-app-fg:var(--oo-color-text);--oo-titlebar-bg:var(--oo-color-titlebar);--oo-titlebar-fg:var(--oo-color-muted);--oo-activitybar-bg:var(--oo-color-activitybar);--oo-activitybar-fg:var(--oo-color-muted);--oo-activitybar-fg-hover:var(--oo-color-accent);--oo-activitybar-bg-hover:var(--oo-color-hover);--oo-activitybar-fg-active:var(--oo-color-accent);--oo-activitybar-bg-active:var(--oo-color-active);--oo-sidebar-left-bg:var(--oo-color-sidebar);--oo-sidebar-left-fg:var(--oo-color-text);--oo-sidebar-right-bg:var(--oo-color-sidebar);--oo-sidebar-right-fg:var(--oo-color-text);--oo-card-bg:var(--oo-color-surface);--oo-card-fg:var(--oo-color-text);--oo-card-border:var(--oo-color-border);--oo-popup-bg:var(--oo-color-raised);--oo-popup-fg:var(--oo-color-text);--oo-popup-border:var(--oo-color-border);--oo-input-bg:var(--oo-color-surface);--oo-input-fg:var(--oo-color-text);--oo-input-border:var(--oo-color-border);--oo-input-placeholder:var(--oo-color-muted);--oo-spacing-xs:3px;--oo-spacing-sm:6px;--oo-spacing-md:14px;--oo-spacing-lg:22px;--oo-spacing-xl:30px;--oo-row-gap:var(--oo-spacing-md);--oo-column-gap:var(--oo-spacing-md);--oo-list-gap:var(--oo-spacing-sm);--oo-list-padding:0;--oo-radius-xs:3px;--oo-radius-sm:4px;--oo-radius-md:6px;--oo-radius-lg:12px;--oo-radius-xl:18px;--oo-radius-full:999px;--oo-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--oo-font-mono:"SF Mono", Monaco, Consolas, monospace;--oo-font-size-xs:11px;--oo-font-size-sm:13px;--oo-font-size-md:14px;--oo-font-size-lg:16px;--oo-font-size-xl:20px;--oo-line-height:1.5;--oo-shadow-sm:0 1px 2px #00000014;--oo-shadow-md:0 4px 8px #0000001f;--oo-shadow-lg:0 12px 24px #00000029;--oo-z-overlay:1000;--oo-z-popup:9999}[data-theme-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--oo-rgb-canvas:2 6 23;--oo-rgb-panel:15 23 42;--oo-rgb-surface:2 6 23;--oo-rgb-raised:24 32 48;--oo-rgb-titlebar:2 6 23;--oo-rgb-activitybar:15 23 42;--oo-rgb-sidebar:15 23 42;--oo-rgb-statusbar:15 23 42;--oo-rgb-text:203 213 224;--oo-rgb-muted:116 131 154;--oo-rgb-subtle:100 116 139;--oo-rgb-hover:30 41 59;--oo-rgb-active:51 65 85;--oo-rgb-selected:20 83 76;--oo-rgb-line:116 131 154;--oo-rgb-border:98 113 134;--oo-rgb-primary:var(--oo-rgb-accent);--oo-line-alpha:.18;--oo-border-alpha:.22}:root{--oo-activitybar-size:48px;--oo-sidebar-left-size:240px;--oo-sidebar-right-size:280px;--oo-main-size:0px;--oo-panel-bottom-size:200px;--oo-statusbar-size:22px;--oo-overlay-size:0px;--oo-sidebar-left-visible:1;--oo-sidebar-right-visible:0;--oo-panel-bottom-visible:0;--oo-activitybar-visible:1;--oo-statusbar-visible:1}.oo-main-fluid-width{width:calc(100vw - var(--oo-activitybar-size,0px) - var(--oo-sidebar-left-size,0px) * var(--oo-sidebar-left-visible,0) - var(--oo-sidebar-right-size,0px) * var(--oo-sidebar-right-visible,0))}:root{--oo-mono:ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Consolas, monospace;--oo-sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--input-padding-y:var(--oo-spacing-xs);--input-padding-x:var(--oo-spacing-sm);--input-background:var(--oo-color-canvas);--input-color:var(--oo-color-text);--input-border-color:var(--oo-color-border);--input-border-radius:var(--oo-radius-sm);--input-border-width:1px;--textarea-padding-y:var(--input-padding-y);--textarea-padding-x:var(--input-padding-x);--textarea-background:var(--input-background);--textarea-color:var(--input-color);--textarea-border-color:var(--input-border-color);--textarea-border-radius:var(--input-border-radius);--textarea-border-width:var(--input-border-width);--button-background:none;--button-background-hover:rgb(from var(--oo-color-primary) r g b / .88);--button-background-active:var(--oo-color-active);--button-color:inherit;--button-color-hover:var(--oo-color-hover);--button-border:var(--oo-color-border);--button-border-width:1px;--button-border-radius:0;--button-padding-y:var(--oo-spacing-xs);--button-padding-x:var(--oo-spacing-xs);--button-font-size:var(--oo-font-size-sm)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100vh;margin:0;padding:0;overflow:hidden}body{font-family:var(--oo-font-family);font-size:var(--oo-font-size-md);line-height:var(--oo-line-height);color:var(--oo-color-text);background:var(--oo-color-canvas)}a{color:var(--oo-color-primary);cursor:pointer;text-decoration:none}a:hover{text-decoration:underline}a:active{color:var(--oo-color-active)}button{appearance:none;align-items:center;gap:var(--oo-spacing-xs);padding-inline:var(--button-padding-x);padding-block:var(--button-padding-y);border-radius:var(--button-border-radius);border-width:var(--button-border-width);border-style:solid;border-color:var(--button-border);background:var(--button-background);color:var(--button-color);cursor:pointer;font:inherit;font-size:var(--button-font-size);line-height:1;transition:background-color .12s,color .12s,border-color .12s,opacity .12s,filter .12s;display:inline-flex}button[data-variant=primary]{--button-background:none;--button-color:var(--oo-color-primary);--button-border:var(--oo-color-primary);--button-color-hover:var(--oo-color-surface);--button-background-hover:rgb(from var(--oo-color-primary) r g b / .88);--button-background-active:rgb(from var(--oo-color-primary) r g b / .76)}button[data-variant=secondary]{--button-background:none;--button-color:var(--oo-color-text);--button-border:var(--oo-color-border);--button-color-hover:var(--oo-color-surface);--button-background-hover:rgb(from var(--oo-color-text) r g b / .8);--button-background-active:rgb(from var(--oo-color-text) r g b / .76)}button[data-variant=danger]{--button-background:none;--button-color:var(--oo-color-danger);--button-border:var(--oo-color-danger);--button-color-hover:var(--oo-color-surface);--button-background-hover:rgb(from var(--oo-color-danger) r g b / .88);--button-background-active:rgb(from var(--oo-color-danger) r g b / .76)}button[data-variant=ghost]{--button-background:none;--button-color:var(--oo-color-text);--button-color-hover:var(--oo-color-primary);--button-background-hover:none;--button-background-active:none;background:0 0;border:none}button[data-variant=borderless]{--button-background:var(--oo-color-hover);--button-color:var(--oo-color-text);--button-border-width:0;--button-background-hover:var(--oo-color-surface);--button-background-active:var(--oo-color-active)}button[data-selected=true]{color:var(--oo-color-surface);background:var(--oo-color-active)}button:active,button[data-active=true]{background:var(--button-background-active)}button[disabled],button[data-disabled=true]{cursor:not-allowed;opacity:.5;pointer-events:none}button:hover{background:var(--button-background-hover)}button[data-variant]:hover{color:var(--button-color-hover)}code,pre{font-family:var(--oo-font-mono)}select{color:inherit;font:inherit;box-sizing:border-box;padding:var(--oo-spacing-xs) var(--oo-spacing-sm);background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm)}input{color:var(--input-color);font:inherit;box-sizing:border-box;padding:var(--input-padding-y) var(--input-padding-x);background:var(--input-background);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--input-border-radius)}textarea{color:var(--textarea-color);font:inherit;box-sizing:border-box;padding:var(--textarea-padding-y) var(--textarea-padding-x);background:var(--textarea-background);border:var(--textarea-border-width) solid var(--textarea-border-color);border-radius:var(--textarea-border-radius)}select:focus,input:focus,textarea:focus{outline:1px solid var(--oo-color-accent);outline-offset:-2px}.oo-mount{display:contents}.oo-loading-dots{justify-content:center;align-items:center;gap:4px;width:100%;height:100%;margin:0 auto;display:inline-flex}.oo-loading-dots span{opacity:.35;background:currentColor;border-radius:999px;width:4px;height:4px;animation:1s ease-in-out infinite dotPulse}.oo-loading-dots span:nth-child(2){animation-delay:.15s}.oo-loading-dots span:nth-child(3){animation-delay:.3s}@keyframes dotPulse{0%,80%,to{opacity:.35;transform:scale(.75)}40%{opacity:1;transform:scale(1)}}html.oo-resizing,html.oo-resizing *{-webkit-user-select:none!important;user-select:none!important}html.oo-resizing *{cursor:inherit!important}.oo-layout--bar{-webkit-user-select:none;user-select:none;background:var(--oo-color-surface);align-items:center;width:100%;height:100%;display:flex}.oo-bar__slot{align-items:center;gap:var(--oo-spacing-xs);height:100%;padding:0 var(--oo-spacing-sm);display:flex}.oo-bar__slot button{border:0;border-radius:0}.oo-bar__slot button[data-active=true]:not(:hover){color:var(--oo-color-active)}.oo-bar__slot--left{flex:none;justify-content:flex-start}.oo-bar__slot--center{flex:auto;justify-content:center;min-width:0}.oo-bar__slot--right{flex:none;justify-content:flex-end}.oo-bar__item{align-items:center;display:flex}.tab-bar{background:var(--oo-color-surface);border-bottom:1px solid var(--oo-color-border);font-size:var(--oo-font-size-xs);min-width:0;min-height:32px;display:flex}.tab-bar__strip{scrollbar-width:thin;flex:auto;min-width:0;display:flex;overflow:auto hidden}.tab-bar__strip::-webkit-scrollbar{height:6px}.tab-bar__strip::-webkit-scrollbar-thumb{background:var(--oo-color-border);border-radius:3px}.tab-bar__tab{border-right:1px solid var(--oo-color-border);color:var(--oo-color-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex:none;align-items:center;gap:4px;padding:4px 12px;display:flex}.tab-bar__tab[data-active=true]{color:var(--oo-color-text);background:var(--oo-color-canvas);border-bottom:2px solid var(--oo-color-accent);margin-bottom:-1px}.tab-bar__tab[data-drag-over=true]{box-shadow:inset 0 2px 0 var(--oo-color-accent)}.tab-bar__tab .close{opacity:.5}.tab-bar__tab:hover .close{opacity:1}.tab-bar__tab .tab__label{text-overflow:ellipsis;max-width:173px;overflow:hidden}.tab-bar__tab .tab__icon{color:var(--tab-color,inherit)}.tab-bar__extras{flex:none;align-items:center;gap:6px;padding:0 8px;display:flex}.tab-bar__extras button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px 8px;font-size:11px}.tab-bar__extras button:hover{background:var(--oo-color-active)}:root{--oo-scrollbar-width:15px;--oo-scrollbar-track-color:rgb(from var(--oo-color-surface) r g b / .25);--oo-scrollbar-border-color:transparent;--oo-scrollbar-border-width:3px;--oo-scrollbar-thumb-radius:15px;--oo-scrollbar-thumb-color:rgb(from var(--oo-color-border) r g b / .35);--oo-scrollbar-thumb-hover:rgb(from var(--oo-color-border) r g b / .5)}::-webkit-scrollbar{width:var(--oo-scrollbar-width,15px);height:var(--oo-scrollbar-width,15px)}::-webkit-scrollbar-track{background:var(--oo-scrollbar-track-color)}::-webkit-scrollbar-thumb{background-color:var(--oo-scrollbar-thumb-color);border-width:var(--oo-scrollbar-border-width,0px);border-style:solid;border-color:var(--oo-scrollbar-border-color,var(--oo-scrollbar-track-color));background-clip:content-box;transition:background-color .16s}::-webkit-scrollbar-thumb:hover{background-color:var(--oo-scrollbar-thumb-hover)}*{scrollbar-width:medium;scrollbar-color:var(--oo-scrollbar-thumb-color) var(--oo-scrollbar-track-color)}.oo-surface{--oo-surface-float-width:17rem;--oo-surface-sheet-height:85%;--oo-surface-bar-size:2.75rem;--oo-surface-overlay-shadow:0 0 28px #00000052}.oo-surface[data-surface-edge=inline-end]{border-inline-end:var(--oo-surface-border-width,0px) solid var(--oo-surface-border,var(--oo-color-border))}.oo-surface[data-surface-edge=inline-start]{border-inline-start:var(--oo-surface-border-width,0px) solid var(--oo-surface-border,var(--oo-color-border))}.oo-surface[data-surface-edge=block-end]{border-block-end:var(--oo-surface-border-width,0px) solid var(--oo-surface-border,var(--oo-color-border))}.oo-surface[data-surface-edge=block-start]{border-block-start:var(--oo-surface-border-width,0px) solid var(--oo-surface-border,var(--oo-color-border))}.oo-surface[data-surface-role=bar]{--oo-color-surface:var(--oo-surface-bar-bg,var(--oo-color-surface-root));background:var(--oo-surface-bar-bg,transparent)}.oo-surface[data-surface-role=panel],.oo-surface[data-surface-role=rail]{--oo-color-surface:var(--oo-surface-panel-bg,var(--oo-color-surface-root));background:var(--oo-surface-panel-bg,transparent)}.oo-surface[data-surface-role=main]{--oo-color-surface:var(--oo-surface-main-bg,var(--oo-color-surface-root));background:var(--oo-surface-main-bg,transparent)}.oo-shell__body{gap:var(--oo-shell-gap,0px);padding-inline:var(--oo-shell-gap,0px)}.oo-shell__center{gap:var(--oo-shell-gap,0px)}.oo-shell__body>.oo-surface[data-presentation=docked],.oo-shell__center>.oo-surface[data-presentation=docked]{border-radius:var(--oo-surface-radius,0px);outline:var(--oo-surface-box-width,0px) solid var(--oo-surface-border,var(--oo-color-border));outline-offset:calc(-1 * var(--oo-surface-box-width,0px));padding:var(--oo-surface-box-width,0px);overflow:clip}.oo-shell__body>.oo-surface[data-surface-role=rail]:has(+.oo-surface[data-surface-role=panel][data-presentation=docked]){border-start-end-radius:0;border-end-end-radius:0}.oo-shell__body>.oo-surface[data-surface-role=rail]+.oo-surface[data-surface-role=panel][data-presentation=docked]{border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:calc(-1 * var(--oo-shell-gap,0px) - var(--oo-surface-box-width,0px))}.oo-surface[data-presentation=floating],.oo-surface[data-presentation=sheet]{border:0}.oo-surface[data-presentation=floating]{z-index:30;width:min(var(--oo-surface-float-width), 86%);box-shadow:var(--oo-surface-overlay-shadow);background:var(--oo-color-surface,var(--oo-color-canvas));position:absolute;top:0;bottom:0}.oo-surface[data-surface-edge=inline-end][data-presentation=floating]{inset-inline-start:0}.oo-surface[data-surface-edge=inline-start][data-presentation=floating]{inset-inline-end:0}.oo-surface--sidebar-left[data-presentation=floating]:not([data-surface-edge]){left:0}.oo-surface--sidebar-right[data-presentation=floating]:not([data-surface-edge]){right:0}.oo-surface[data-presentation=sheet]{z-index:30;height:var(--oo-surface-sheet-height);box-shadow:var(--oo-surface-overlay-shadow);background:var(--oo-color-surface,var(--oo-color-canvas));position:absolute;bottom:0;left:0;right:0}.oo-surface[data-presentation=bar]{z-index:40;width:auto;height:var(--oo-surface-bar-size);background:var(--oo-color-surface,var(--oo-color-canvas));flex:none;position:absolute;inset:auto 0 0}.oo-surface-scrim{z-index:20;background:var(--oo-color-scrim,#00000061);cursor:pointer;border:0;padding:0;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.oo-surface{transition:none}}.oo-surface[data-resize]{position:relative}.oo-surface[data-resize]:after{content:"";z-index:10;opacity:0;transition:opacity .12s;position:absolute}@media (prefers-reduced-motion:reduce){.oo-surface[data-resize]:after{transition:none}}.oo-surface[data-resize=right]:after{cursor:ew-resize;background:linear-gradient(to right, transparent calc(10px - var(--oo-resize-line,3px)), var(--oo-color-accent) calc(10px - var(--oo-resize-line,3px)));width:10px;top:0;bottom:0;right:0}.oo-surface[data-resize=left]:after{cursor:ew-resize;background:linear-gradient(to right, var(--oo-color-accent) var(--oo-resize-line,3px), transparent var(--oo-resize-line,3px));width:10px;top:0;bottom:0;left:0}.oo-surface[data-resize=top]:after{cursor:ns-resize;background:linear-gradient(to bottom, var(--oo-color-accent) var(--oo-resize-line,3px), transparent var(--oo-resize-line,3px));height:10px;top:0;left:0;right:0}.oo-surface[data-resize=bottom]:after{cursor:ns-resize;background:linear-gradient(to bottom, transparent calc(10px - var(--oo-resize-line,3px)), var(--oo-color-accent) calc(10px - var(--oo-resize-line,3px)));height:10px;bottom:0;left:0;right:0}.oo-surface[data-resize][data-resize-state=hot]:after{opacity:.55}.oo-surface[data-resize][data-resize-state=active]:after{opacity:1}.oo-surface-loading{flex:auto;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex}.oo-surface-loading>span{border:2px solid var(--oo-color-border);border-top-color:var(--oo-color-accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite oo-surface-spin}[data-surface-role=overlay] .oo-surface-loading{display:none}@keyframes oo-surface-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.oo-surface-loading>span{animation-duration:2.4s}}.oo-shell:has(.oo-surface--activitybar[data-presentation=bar]) .oo-surface--main{padding-bottom:var(--oo-surface-bar-size);box-sizing:border-box}.web-title{font-weight:600}.web-loading{height:100vh;color:var(--oo-color-muted);background:var(--oo-color-canvas);justify-content:center;align-items:center;display:flex}.web-method{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-page{gap:var(--oo-spacing-md);padding:var(--oo-spacing-lg);box-sizing:border-box;flex-direction:column;max-width:72rem;height:100%;display:flex;overflow-y:auto}.web-page__head{gap:var(--oo-spacing-sm);flex-direction:column;display:flex}.web-page__route{align-items:center;gap:var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-page__route code{color:var(--oo-color-muted);font-size:var(--oo-font-size-sm)}.web-page__actions{align-items:center;gap:var(--oo-spacing-md);display:flex}.web-result{gap:var(--oo-spacing-sm);flex-direction:column;min-width:0;display:flex}.web-result__bar{gap:2px;display:flex}.web-result__bar button{border:1px solid var(--oo-color-border);color:var(--oo-color-muted);font:inherit;font-size:var(--oo-font-size-xs);padding:2px var(--oo-spacing-sm);border-radius:var(--oo-radius-sm);cursor:pointer;background:0 0}.web-result__bar button[data-active=true]{color:var(--oo-color-text);background:var(--oo-color-selected)}.web-result__json,.web-result__text{padding:var(--oo-spacing-md);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:var(--oo-color-panel);font-size:var(--oo-font-size-sm);white-space:pre-wrap;word-break:break-word;margin:0;overflow-x:auto}.web-chat{--web-chat-gutter:max(var(--oo-spacing-lg), calc((100% - 72rem) / 2));--web-composer-gutter:max(calc(var(--oo-spacing-lg) * 2), calc((100% - 56rem) / 2));box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex}.web-chat__head{gap:var(--oo-spacing-sm);padding:var(--oo-spacing-lg) var(--web-chat-gutter) var(--oo-spacing-sm);flex-direction:column;display:flex}.web-chat__turns{gap:var(--oo-spacing-lg);min-height:0;padding:var(--oo-spacing-sm) var(--web-chat-gutter);flex-direction:column;flex:1;display:flex;overflow-y:auto}.web-turn{gap:var(--oo-spacing-sm);flex-direction:column;display:flex}.web-turn__ask{white-space:pre-wrap;overflow-wrap:anywhere;max-width:80%;padding:var(--oo-spacing-sm) var(--oo-spacing-md);border-radius:var(--oo-radius-md);background:var(--oo-color-surface-raised,var(--oo-color-surface));border:1px solid var(--oo-color-border);align-self:flex-end}.web-turn__answer{gap:var(--oo-spacing-sm);overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.web-note{color:var(--oo-color-muted);font-size:var(--oo-font-size-sm);margin:0}.web-activity{flex-direction:column;min-width:0;display:flex}.web-activity__line{align-items:baseline;gap:var(--oo-spacing-xs);width:fit-content;max-width:100%;font:inherit;font-size:var(--oo-font-size-sm);color:var(--oo-color-muted);text-align:left;cursor:pointer;background:0 0;border:0;padding:1px 0;display:inline-flex}.web-activity__line:hover,.web-activity__line:focus-visible,.web-activity__line[aria-expanded=true]{color:var(--oo-color-accent);background:0 0}.web-activity__failed{color:var(--oo-color-warning);font-style:italic}.web-activity__chev{font-size:var(--oo-font-size-xs);visibility:hidden}.web-activity__line:hover .web-activity__chev,.web-activity__line:focus-visible .web-activity__chev,.web-activity__line[aria-expanded=true] .web-activity__chev{visibility:visible}.web-activity__steps{flex-direction:column;gap:2px;margin-top:2px;display:flex}.web-tool[data-outcome=thought] .web-tool__mark{color:var(--oo-color-muted)}.web-input{gap:var(--oo-spacing-xs);padding:var(--oo-spacing-sm) var(--oo-spacing-md);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);flex-direction:column;display:flex}.web-tool{font-size:var(--oo-font-size-sm);min-width:0}.web-tool__row{align-items:baseline;gap:var(--oo-spacing-sm);width:fit-content;max-width:100%;font:inherit;color:var(--oo-color-muted);text-align:left;cursor:pointer;background:0 0;border:0;padding:1px 0;display:flex}.web-tool__row:hover,.web-tool__row:focus-visible{background:0 0}.web-tool__row:hover .web-tool__line,.web-tool__row[aria-expanded=true] .web-tool__line{color:var(--oo-color-accent)}.web-tool__ref{color:var(--oo-color-accent);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.web-tool__ref:hover,.web-tool__ref:focus-visible{text-decoration-style:solid}.web-tool__mark{text-align:center;width:1rem;color:var(--oo-color-success);flex:none}.web-tool[data-outcome=approval] .web-tool__mark,.web-tool[data-outcome=review] .web-tool__mark,.web-tool[data-outcome=sign-in] .web-tool__mark{color:var(--oo-color-warning)}.web-tool[data-outcome=failed] .web-tool__mark,.web-tool[data-outcome=failed] .web-tool__state{color:var(--oo-color-danger)}.web-tool[data-outcome=cancelled] .web-tool__mark,.web-tool[data-outcome=preparing] .web-tool__mark{color:var(--oo-color-muted)}.web-tool[data-outcome=running] .web-tool__mark{color:var(--oo-color-info);animation:1.2s ease-in-out infinite web-pulse}@keyframes web-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.web-tool[data-outcome=running] .web-tool__mark{animation:none}}.web-tool__line{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--oo-font-mono,monospace);font-size:var(--oo-font-size-xs);flex:0 auto;overflow:hidden}.web-tool+.web-tool{margin-top:calc(2px - var(--oo-spacing-sm))}.web-tool__state,.web-tool__time{font-size:var(--oo-font-size-xs);flex:none}.web-tool__body{gap:var(--oo-spacing-sm);margin:2px 0 var(--oo-spacing-sm) calc(.5rem - 1px);padding:var(--oo-spacing-xs) 0 var(--oo-spacing-xs) calc(.5rem + var(--oo-spacing-sm));border-left:1px solid var(--oo-color-border);flex-direction:column;display:flex}.web-tool__facts{gap:2px var(--oo-spacing-md);grid-template-columns:max-content 1fr;margin:0;display:grid}.web-tool__facts dt{color:var(--oo-color-muted)}.web-tool__facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.web-tool__block-head{color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;display:flex}.web-tool__copy{font:inherit;color:var(--oo-color-accent);cursor:pointer;background:0 0;border:0;padding:0}.web-tool__pre{margin:var(--oo-spacing-xs) 0 0;padding:var(--oo-spacing-sm);white-space:pre-wrap;overflow-wrap:anywhere;max-height:18rem;font-family:var(--oo-font-mono,monospace);font-size:var(--oo-font-size-xs);background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);overflow:auto}.web-tool__file{gap:var(--oo-spacing-sm);margin:0;display:flex}.web-diff--add{color:var(--oo-color-success)}.web-diff--remove{color:var(--oo-color-danger)}.web-tool__actions{gap:var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-input__group{gap:var(--oo-spacing-xs);border:0;flex-direction:column;margin:0;padding:0;display:flex}.web-input__row{align-items:center;gap:var(--oo-spacing-sm);display:flex}.web-input__label{font-weight:600}.web-input__hint{color:var(--oo-color-muted);font-size:var(--oo-font-size-sm)}.web-field{font:inherit;color:inherit;background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);padding:var(--oo-spacing-sm);box-sizing:border-box;width:100%}.web-composer{padding:0 var(--web-composer-gutter,0) var(--oo-spacing-md);flex:none;position:relative}.web-composer__where{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.web-composer__box,.web-new__composer{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md)}.web-composer__box:focus-within,.web-new__composer:focus-within{border-color:var(--oo-color-accent)}.web-composer__picker{bottom:100%;left:var(--web-composer-gutter,0);right:var(--web-composer-gutter,0);z-index:50;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);margin-bottom:var(--oo-spacing-xs);background:var(--oo-popup-bg,var(--oo-color-raised));animation:.12s ease-out web-slide-up;position:absolute;overflow:hidden;box-shadow:0 -6px 20px #00000038}@keyframes web-slide-up{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.web-composer__picker{animation:none}}.web-composer__chips{flex-wrap:wrap;gap:4px;padding:6px 10px 0;display:flex}.web-composer__attached{flex-wrap:wrap;gap:4px;padding:6px 8px 0;display:flex}.web-attachment{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm,4px);max-width:16rem;color:var(--oo-color-text);font-size:var(--oo-font-size-xs);align-items:center;gap:4px;padding:0 4px 0 6px;line-height:20px;display:inline-flex}.web-attachment__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.web-attachment__icon{color:var(--oo-color-muted)}.web-attachment__remove{color:var(--oo-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px}.web-attachment__remove:hover{color:var(--oo-color-text)}.web-chip{border:1px solid var(--oo-color-border);color:var(--oo-color-muted);font:inherit;font-size:var(--oo-font-size-xs);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:3px;max-width:100%;padding:0 6px;line-height:18px;display:inline-flex;overflow:hidden}.web-chip:disabled{cursor:default}.web-chip:not(:disabled):hover{border-color:var(--oo-color-accent)}.web-chip[data-on=true]{border-color:var(--oo-color-accent);background:var(--oo-color-accent);color:var(--oo-color-canvas)}.web-composer__bar{align-items:flex-end;gap:var(--oo-spacing-sm);padding:2px 10px 0;display:flex}.web-composer__text{resize:none;box-sizing:border-box;min-height:34px;max-height:260px;color:inherit;font:inherit;background:0 0;border:0;flex:1;padding:6px 0;line-height:1.4;overflow-y:auto}.web-composer__text:focus{outline:none}.web-composer__actions{align-items:center;gap:var(--oo-spacing-xs);padding:2px 6px 6px;display:flex}.web-composer__foot{align-items:center;gap:4px;padding:2px 6px 6px;display:flex}.web-composer__foot .web-composer__chips{flex:1;min-width:0;padding:0}.web-composer__round{background:var(--oo-color-primary);width:28px;height:28px;color:var(--oo-color-surface);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.web-composer__round:hover{background:rgb(from var(--oo-color-primary) r g b / .85);color:var(--oo-color-surface)}.web-composer__add{border-radius:var(--oo-radius-sm,4px);width:24px;height:24px;color:var(--oo-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:18px;line-height:1}.web-composer__add:hover,.web-composer__add:focus-visible{color:var(--oo-color-text);background:var(--oo-color-hover,#7f7f7f26)}.web-composer__hint{min-width:0;color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.web-composer__queue{padding:0 0 var(--oo-spacing-xs);gap:var(--oo-spacing-xs);flex-direction:column;margin:0;list-style:none;display:flex}.web-composer__queue li{align-items:center;gap:var(--oo-spacing-sm);font-size:var(--oo-font-size-sm);display:flex}.web-composer__queued{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.web-turn__facts{align-items:center;gap:var(--oo-spacing-sm);color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);flex-wrap:wrap;display:flex}.web-turn__copy{--button-background-hover:none;--button-color-hover:var(--oo-color-text);color:var(--oo-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.web-turn__copy:hover{color:var(--oo-color-text)}.web-turn__attached{margin-top:var(--oo-spacing-xs);white-space:normal;flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.web-turn__attached button.web-attachment{--button-background-hover:none;--button-color-hover:var(--oo-color-text);font:inherit;font-size:var(--oo-font-size-xs);cursor:pointer;background:0 0}.web-turn__attached button.web-attachment:hover{border-color:var(--oo-color-accent)}.web-turn__ended{color:var(--oo-color-warning)}.web-turn__ended[data-state=error]{color:var(--oo-color-danger)}.web-chat__title{align-items:center;gap:var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-chat__older{justify-content:center;align-items:center;gap:var(--oo-spacing-sm);display:flex}.web-explorer{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.web-explorer__title{padding:var(--oo-spacing-sm) var(--oo-spacing-sm) var(--oo-spacing-xs) var(--oo-spacing-md);font-size:var(--oo-font-size-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--oo-color-muted);flex:none;justify-content:space-between;align-items:center;font-weight:600;display:flex}.web-explorer__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.web-explorer__actions{gap:2px;display:flex}.web-explorer__action{width:1.6rem;height:1.6rem;font:inherit;font-size:var(--oo-font-size-sm);color:inherit;border-radius:var(--oo-radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.web-explorer__action:hover,.web-explorer__action[data-on=true]{color:var(--oo-color-accent);background:color-mix(in srgb, var(--oo-color-accent) 12%, transparent)}.web-explorer__filter{margin:0 var(--oo-spacing-sm) var(--oo-spacing-xs);font:inherit;font-size:var(--oo-font-size-sm);color:inherit;background:var(--oo-color-canvas);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);flex:none;padding:4px 8px}.web-explorer__filter:focus{border-color:var(--oo-color-accent);outline:none}.web-explorer__scroll{flex:1;min-height:0;overflow-y:auto}.web-explorer__notice,.web-explorer__empty{padding:var(--oo-spacing-sm) var(--oo-spacing-md)}.web-explorer__notice>.web-note{margin:0;padding:0}.web-explorer__icon{display:inline-block}.web-explorer__action[data-busy=true]{color:var(--oo-color-accent);cursor:progress}.web-explorer__action[data-busy=true] .web-explorer__icon{animation:.9s linear infinite web-turn}@keyframes web-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.web-explorer__action[data-busy=true] .web-explorer__icon{animation:none}}.web-explorer__list{margin:0;padding:0;list-style:none}.web-row{align-items:flex-start;gap:var(--oo-spacing-sm);padding:6px var(--oo-spacing-md) 6px calc(var(--oo-spacing-md) - 2px);cursor:pointer;border-left:2px solid #0000;display:flex}.web-row:hover{background:color-mix(in srgb, var(--oo-color-accent) 6%, transparent)}.web-row[data-selected=true]{border-left-color:var(--oo-color-accent);background:color-mix(in srgb, var(--oo-color-accent) 12%, transparent)}.web-row:focus-visible{outline:1px solid var(--oo-color-accent);outline-offset:-1px}.web-row__dot{background:var(--oo-color-muted);opacity:.5;border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.web-row__dot[data-dot=attention]{background:var(--oo-color-warning);opacity:1}.web-row__dot[data-dot=working]{background:var(--oo-color-info);opacity:1;animation:1.2s ease-in-out infinite web-pulse}.web-row__dot[data-dot=failed]{background:var(--oo-color-danger);opacity:1}.web-row__dot[data-dot=fresh]{background:var(--oo-color-accent);opacity:1}.web-row__dot[data-dot=ok]{background:var(--oo-color-success);opacity:1}.web-row__dot[data-dot=off]{border:1px solid var(--oo-color-muted);box-sizing:border-box;background:0 0}@media (prefers-reduced-motion:reduce){.web-row__dot[data-dot=working]{animation:none}}.web-row__body{flex-direction:column;flex:1;min-width:0;display:flex}.web-row__head{align-items:baseline;gap:var(--oo-spacing-sm);display:flex}.web-row__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--oo-font-size-sm);flex:1;overflow:hidden}.web-row__title[data-strong=true]{font-weight:600}.web-row__time{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);flex:none}.web-row__action{color:var(--oo-color-accent);font-size:var(--oo-font-size-xs);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;padding:0 4px;line-height:1.4}.web-row__action:hover,.web-row__action:focus-visible{background:color-mix(in srgb, var(--oo-color-accent) 18%, transparent)}.web-row__line{text-overflow:ellipsis;white-space:nowrap;font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);overflow:hidden}.web-runs{border-collapse:collapse;width:100%;font-size:var(--oo-font-size-sm)}.web-runs th{text-align:left;font-weight:600;font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);padding:4px var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border)}.web-runs td{padding:6px var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border);vertical-align:top}.web-runs__actions{white-space:nowrap;text-align:right}.web-automation__message{padding:var(--oo-spacing-sm) var(--oo-spacing-md);border-left:2px solid var(--oo-color-border)}.web-form{max-width:48rem}.web-form__field{flex-direction:column;flex:1;gap:4px;min-width:12rem;display:flex}.web-form__row{gap:var(--oo-spacing-md);flex-wrap:wrap;display:flex}.web-form__message{resize:vertical;font-family:inherit}@media (width<=600px){.web-runs:not(.web-table) th:nth-child(2),.web-runs:not(.web-table) td:nth-child(2),.web-runs:not(.web-table) th:nth-child(5),.web-runs:not(.web-table) td:nth-child(5){display:none}}.web-connection{align-items:center;gap:var(--oo-spacing-sm);padding:0 var(--oo-spacing-sm);font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);white-space:nowrap;display:inline-flex}.web-connection__dot{background:var(--oo-color-warning);border-radius:50%;width:.5rem;height:.5rem}.web-connection[data-status=connected] .web-connection__dot{background:var(--oo-color-success)}.web-connection[data-status=failed] .web-connection__dot,.web-connection[data-status=disconnected] .web-connection__dot{background:var(--oo-color-danger)}.web-connection__host{color:var(--oo-color-text)}.web-connection__uptime{font-variant-numeric:tabular-nums}.web-connection__retry{font:inherit;color:var(--oo-color-accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.web-layout-select{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);align-items:center;gap:4px;display:inline-flex}.web-layout-select select{font:inherit;color:inherit;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:0 0;padding:0 2px}.web-lines{flex-direction:column;display:flex}.web-link{font:inherit;color:var(--oo-color-accent);cursor:pointer;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0}.web-link:hover{background:0 0;text-decoration:underline}.web-md :not(pre)>code{cursor:pointer}.web-md :not(pre)>code:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.web-file{flex-direction:column;height:100%;min-height:0;display:flex}.web-file__head{align-items:center;gap:var(--oo-spacing-md);padding:var(--oo-spacing-sm) var(--oo-spacing-lg);border-bottom:1px solid var(--oo-color-border);font-size:var(--oo-font-size-sm);flex-wrap:wrap;flex:none;display:flex}.web-file__head code{overflow-wrap:anywhere}.web-file__body{flex:1;min-height:0;overflow:auto}.web-file__doc{max-width:860px;padding:var(--oo-spacing-lg) var(--oo-spacing-xl,24px)}.web-code{border-collapse:collapse;font-family:var(--oo-font-mono,monospace);font-size:var(--oo-font-size-xs);min-width:100%;line-height:1.5}.web-code__number{padding:0 var(--oo-spacing-sm);text-align:right;color:var(--oo-color-muted);-webkit-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;opacity:.7}.web-code__text{padding:0 var(--oo-spacing-md) 0 var(--oo-spacing-sm);white-space:pre}.web-code tr[data-hit=true]{background:color-mix(in srgb, var(--oo-color-warning) 18%, transparent)}.web-diff tr[data-kind=add]{background:color-mix(in srgb, var(--oo-color-success) 14%, transparent)}.web-diff tr[data-kind=del]{background:color-mix(in srgb, var(--oo-color-danger) 14%, transparent)}.web-diff__hunk td{padding:2px var(--oo-spacing-md);color:var(--oo-color-info);background:color-mix(in srgb, var(--oo-color-info) 8%, transparent)}.web-changeset-form{gap:var(--oo-spacing-sm);flex-direction:column;width:min(36rem,100vw - 4rem);display:flex}.web-changeset-form__actions{justify-content:flex-end;gap:var(--oo-spacing-sm);display:flex}.web-changes__bar{align-items:center;gap:var(--oo-spacing-sm);padding:0 var(--oo-spacing-sm) var(--oo-spacing-xs);border-bottom:1px solid var(--oo-color-border);margin-bottom:var(--oo-spacing-xs);flex-wrap:wrap;flex:none;display:flex}.web-changes__totals{text-align:right;white-space:nowrap;color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);flex:auto}.web-segments{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);flex:none;display:inline-flex;overflow:hidden}.web-segments__item{color:var(--oo-color-muted);font:inherit;font-size:var(--oo-font-size-xs);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:2px 8px}.web-segments__item+.web-segments__item{border-left:1px solid var(--oo-color-border)}.web-segments__item:hover{color:var(--oo-color-text)}.web-segments__item[aria-pressed=true]{color:var(--oo-color-text);background:color-mix(in srgb, var(--oo-color-accent) 14%, transparent);font-weight:600}.web-changes__scope{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);min-width:0;color:var(--oo-color-text);font:inherit;font-size:var(--oo-font-size-xs);cursor:pointer;background:0 0;flex:0 auto;padding:2px 8px;font-weight:600;overflow:hidden}.web-changes__scope--only{cursor:default;border-color:#0000;padding-left:0}.web-changes__scope:not(.web-changes__scope--only):hover{background:color-mix(in srgb, var(--oo-color-accent) 14%, transparent)}.web-segments__item--icon{min-width:1.6rem;padding:2px 4px}.web-explorer__sep{background:var(--oo-color-border);align-self:stretch;width:1px;margin:3px 2px}.web-explorer__action[data-tone=blue]{color:rgb(var(--oo-rgb-blue))}.web-explorer__action[data-tone=yellow]{color:rgb(var(--oo-rgb-yellow))}.web-explorer__action[data-tone=red]{color:var(--oo-color-danger)}.web-chip--choice{position:relative}.web-chip--choice select{opacity:0;cursor:pointer;width:100%;height:100%;font:inherit;position:absolute;inset:0}.web-chip--text input{color:inherit;font:inherit;background:0 0;border:0;outline:none;padding:0}.web-new{gap:var(--oo-spacing-md);width:100%;max-width:52rem;padding:12vh var(--oo-spacing-lg) var(--oo-spacing-lg);box-sizing:border-box;flex-direction:column;height:100%;margin:0 auto;display:flex;overflow-y:auto}.web-new__composer .web-composer__chips{padding-top:var(--oo-spacing-sm)}.web-palette{z-index:1000;background:color-mix(in srgb, var(--oo-color-bg,#000) 40%, transparent);justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.web-palette__box{background:var(--oo-color-surface);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);flex-direction:column;width:min(36rem,100%);max-height:60vh;display:flex;overflow:hidden;box-shadow:0 12px 32px #0000004d}.web-palette__input{width:auto;margin:var(--oo-spacing-sm)}.web-palette__box .oo-action-list{border:0;border-top:1px solid var(--oo-color-border);min-width:0;max-width:none;min-height:0;max-height:none;box-shadow:none;background:0 0;border-radius:0;overflow:auto}.web-details{gap:var(--oo-spacing-xs);padding:var(--oo-spacing-sm) var(--oo-spacing-md);font-size:var(--oo-font-size-sm);flex-direction:column;margin:0;display:flex;overflow:auto}.web-details>div{gap:var(--oo-spacing-sm);grid-template-columns:6rem 1fr;display:grid}.web-details dt{color:var(--oo-color-muted)}.web-details dd{overflow-wrap:anywhere;min-width:0;margin:0}.web-details__list{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.web-details__empty{padding:var(--oo-spacing-sm) var(--oo-spacing-md)}.web-explorer__group button{align-items:center;gap:var(--oo-spacing-xs);width:100%;padding:var(--oo-spacing-sm) var(--oo-spacing-sm) 2px;font:inherit;font-size:var(--oo-font-size-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--oo-color-muted);cursor:pointer;text-align:left;background:0 0;border:0;font-weight:600;display:flex}.web-explorer__group button:hover{color:var(--oo-color-accent)}.web-explorer__fold{flex:none;width:1em}.web-explorer__group-label{text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:0;flex:1;min-width:0;overflow:hidden}.web-explorer__count{flex:none;font-weight:400}.web-ask{gap:var(--oo-spacing-sm);padding:var(--oo-spacing-md);border:1px solid color-mix(in srgb, var(--oo-color-warning) 45%, var(--oo-color-border));border-radius:var(--oo-radius-md);background:var(--oo-color-surface);border-left-width:3px;flex-direction:column;display:flex}.web-ask[data-done=true]{border-color:var(--oo-color-border);border-left-color:var(--oo-color-muted)}.web-ask__head{align-items:center;gap:var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-ask__title{font-size:var(--oo-font-size-sm);color:var(--oo-color-muted);font-weight:600}.web-ask__steps{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.web-ask__step{border:1px solid var(--oo-color-muted);cursor:pointer;background:0 0;border-radius:50%;width:8px;height:8px;padding:0}.web-ask__step[data-done=true]{background:var(--oo-color-muted)}.web-ask__step[data-here=true]{border-color:var(--oo-color-accent);background:var(--oo-color-accent)}.web-ask__count{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-ask__question{gap:var(--oo-spacing-xs);flex-direction:column;display:flex}.web-ask__chip{padding:0 var(--oo-spacing-sm);font-size:var(--oo-font-size-xs);color:var(--oo-color-accent);border:1px solid color-mix(in srgb, var(--oo-color-accent) 45%, transparent);border-radius:999px;align-self:flex-start}.web-ask__text-line{font-weight:600}.web-ask__hint{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-ask__options{gap:var(--oo-spacing-xs);margin-top:var(--oo-spacing-xs);flex-direction:column;display:flex}.web-ask__option{align-items:flex-start;gap:var(--oo-spacing-sm);width:100%;padding:var(--oo-spacing-sm);font:inherit;color:inherit;text-align:left;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);cursor:pointer;box-sizing:border-box;background:0 0;display:flex}.web-ask__option:hover{border-color:color-mix(in srgb, var(--oo-color-accent) 60%, var(--oo-color-border))}.web-ask__option[data-on=true]{border-color:var(--oo-color-accent);background:color-mix(in srgb, var(--oo-color-accent) 10%, transparent)}.web-ask__other{cursor:default;align-items:center}.web-ask__other .web-field{flex:1;min-width:0}.web-ask__mark{border:1.5px solid var(--oo-color-muted);cursor:pointer;box-sizing:border-box;background:0 0;border-radius:50%;flex:none;width:14px;height:14px;margin-top:3px;padding:0}.web-ask__other .web-ask__mark{margin-top:0}.web-ask__mark[data-many=true]{border-radius:3px}[data-on=true]>.web-ask__mark{border-color:var(--oo-color-accent);background:var(--oo-color-accent);box-shadow:inset 0 0 0 2px var(--oo-color-surface)}.web-ask__option-body{flex-direction:column;gap:2px;min-width:0;display:flex}.web-ask__option-label{align-items:baseline;gap:var(--oo-spacing-xs);flex-wrap:wrap;font-weight:500;display:flex}.web-ask__key{font-family:var(--oo-font-mono,monospace);font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-ask__tag{font-size:var(--oo-font-size-xs);color:var(--oo-color-success)}.web-ask__option-hint{font-size:var(--oo-font-size-sm);color:var(--oo-color-muted)}.web-ask__text{resize:vertical}.web-ask__actions{align-items:center;gap:var(--oo-spacing-sm);display:flex}.web-ask__spacer{flex:1}.web-ask__summary{gap:var(--oo-spacing-xs);font-size:var(--oo-font-size-sm);flex-direction:column;margin:0;display:flex}.web-ask__summary>div{gap:0 var(--oo-spacing-sm);flex-wrap:wrap;display:flex}.web-ask__summary dt{color:var(--oo-color-muted)}.web-ask__summary dd{margin:0;font-weight:500}.web-ask:focus{outline:none}.web-ask__icon{width:16px;height:16px;margin-right:var(--oo-spacing-xs);color:var(--oo-color-surface);background:var(--oo-color-warning);vertical-align:-2px;border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:inline-grid}.web-ask[data-done=true] .web-ask__icon{background:var(--oo-color-muted)}.web-result__ask{align-items:center;gap:var(--oo-spacing-sm);font-size:var(--oo-font-size-sm);flex-wrap:wrap;display:inline-flex}.web-method[data-effect=remove]{color:var(--oo-color-danger)}.web-toasts{z-index:900;gap:var(--oo-spacing-sm);flex-direction:column;width:340px;max-width:calc(100vw - 32px);max-height:calc(100vh - 96px);display:flex;position:fixed;bottom:40px;right:16px;overflow-y:auto}.web-toast{gap:var(--oo-spacing-xs);padding:var(--oo-spacing-sm) var(--oo-spacing-md);font-size:var(--oo-font-size-sm);background:var(--oo-color-surface);border:1px solid var(--oo-color-border);border-left:3px solid var(--web-toast-tone,var(--oo-color-info));border-radius:var(--oo-radius-md);flex-direction:column;animation:.18s cubic-bezier(.22,1,.36,1) both web-toast-slide-up;display:flex;box-shadow:0 8px 24px #00000047}.web-toast[data-tone=success]{--web-toast-tone:var(--oo-color-success)}.web-toast[data-tone=warning]{--web-toast-tone:var(--oo-color-warning)}.web-toast[data-tone=danger]{--web-toast-tone:var(--oo-color-danger)}.web-toast[data-animation=pop]{animation:.22s cubic-bezier(.34,1.56,.64,1) both web-toast-pop}.web-toast__head{align-items:center;gap:var(--oo-spacing-sm);display:flex}.web-toast__icon{color:var(--web-toast-tone,var(--oo-color-info))}.web-toast__title{text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.web-toast__count{color:var(--oo-color-muted);font-variant-numeric:tabular-nums}.web-toast__close,.web-toast__link,.web-toast__more{font:inherit;color:var(--oo-color-muted);cursor:pointer;background:0 0;border:0;padding:0}.web-toast__link,.web-toast__more{font-size:var(--oo-font-size-xs);align-self:flex-start;text-decoration:underline}.web-toast__more{align-self:center}.web-toast__body{color:var(--oo-color-muted);overflow-wrap:anywhere;margin:0}.web-toast__detail{max-height:160px;padding:var(--oo-spacing-sm);font-size:var(--oo-font-size-xs);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--oo-color-canvas);border-radius:var(--oo-radius-sm);margin:0;overflow:auto}.web-toast__actions{gap:var(--oo-spacing-xs);flex-wrap:wrap;display:flex}@keyframes web-toast-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes web-toast-pop{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.web-toast{animation:none}}.web-confirm{z-index:1100;background:color-mix(in srgb, var(--oo-color-bg,#000) 45%, transparent);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.web-confirm__card{gap:var(--oo-spacing-md);width:min(380px,100%);padding:var(--oo-spacing-lg);background:var(--oo-color-surface);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);outline:none;flex-direction:column;display:flex;box-shadow:0 16px 48px #0006}.web-confirm__title{margin:0;font-size:14px;font-weight:600}.web-confirm__body{font-size:var(--oo-font-size-sm);color:var(--oo-color-muted);white-space:pre-wrap;margin:0}.web-confirm__buttons{justify-content:flex-end;gap:var(--oo-spacing-sm);display:flex}.web-terminal{background:var(--oo-color-canvas);flex-direction:column;height:100%;min-height:0;display:flex}.web-terminal__note{align-items:center;gap:var(--oo-spacing-sm);padding:var(--oo-spacing-xs) var(--oo-spacing-sm);font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);border-bottom:1px solid var(--oo-color-border);display:flex}.web-terminal__screen{min-height:0;padding:var(--oo-spacing-xs) 0 0 var(--oo-spacing-sm);flex:auto;overflow:hidden}.web-log{flex-direction:column;height:100%;min-height:0;display:flex}.web-log__bar{align-items:center;gap:var(--oo-spacing-xs);padding:var(--oo-spacing-xs) var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border);flex-wrap:wrap;display:flex}.web-log__chip{height:24px;font:inherit;font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);border-radius:var(--oo-radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.web-log__chip:hover:not(:disabled){background:var(--oo-color-panel)}.web-log__chip[data-on]{color:var(--oo-color-text);background:var(--oo-color-selected);border-color:var(--oo-color-border)}.web-log__chip:disabled{cursor:default;opacity:.6}.web-log__dot{background:currentColor;border-radius:50%;width:7px;height:7px}.web-log__rule{width:1px;height:16px;margin:0 var(--oo-spacing-xs);background:var(--oo-color-border)}.web-log__search{min-width:120px;height:24px;font:inherit;font-size:var(--oo-font-size-xs);color:var(--oo-color-text);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:0 0;flex:140px;padding:0 8px}.web-log__icon{font:inherit;font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);cursor:pointer;background:0 0;border:0;padding:2px 6px}.web-log__icon:hover{color:var(--oo-color-text)}.web-log__list{min-height:0;font-family:var(--oo-font-mono);flex:auto;font-size:11.5px;overflow:auto}.web-log__row[data-open]{background:var(--oo-color-selected)}.web-log__line{min-height:22px;padding:0 var(--oo-spacing-sm);cursor:pointer;align-items:center;gap:10px;display:flex}.web-log__row:not([data-open]) .web-log__line:hover{background:var(--oo-color-panel)}.web-log__caret{width:10px;color:var(--oo-color-muted);font-size:10px}.web-log__time{color:var(--oo-color-muted)}.web-log__level{width:44px;color:var(--oo-color-muted)}.web-log__row[data-level=debug] .web-log__level{opacity:.6}.web-log__row[data-level=warn] .web-log__level{color:var(--oo-color-warning)}.web-log__row[data-level=error] .web-log__level,.web-log__row[data-level=error] .web-log__text{color:var(--oo-color-danger)}.web-log__scope{width:84px;color:var(--oo-color-muted);white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.web-log__scope>span{color:var(--oo-color-muted)}.web-log__scope:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.web-log__scope[data-scope=connection],.web-log__dot[data-scope=connection]{color:var(--oo-color-accent)}.web-log__scope[data-scope=session],.web-log__dot[data-scope=session]{color:var(--oo-color-info)}.web-log__scope[data-scope=terminal],.web-log__dot[data-scope=terminal]{color:var(--oo-color-success)}.web-log__text{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--oo-color-text);flex:auto;overflow:hidden}.web-log__row[data-open] .web-log__text{white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.web-log__link{color:var(--oo-color-accent);cursor:pointer;text-decoration:underline}.web-log__detail{padding:var(--oo-spacing-xs) var(--oo-spacing-sm) var(--oo-spacing-sm) 30px;white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text;max-height:320px;margin:0;overflow:auto}.oo-bar__slot .oo-button-bar.web-layout-toggle,.oo-bar__slot .oo-button-bar.web-layout-toggle[data-active]{color:var(--oo-color-muted);background:0 0;font-size:15px;line-height:1}.oo-bar__slot .oo-button-bar.web-layout-toggle[data-active=true],.oo-bar__slot .oo-button-bar.web-layout-toggle:hover{color:var(--oo-color-text)}.web-composer__box[data-drop=attach]{background:#6cbcca14;border-color:#6cbcca}.web-composer__box[data-drop=mention]{background:#f9731614;border-color:#f97316}.web-folders__tag{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.web-change{align-items:baseline;gap:var(--oo-spacing-sm);min-width:0;display:flex}.web-change__name{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:100%;overflow:hidden}.web-change__dir{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);flex:auto;overflow:hidden}.web-change[data-reviewed=true] .web-change__name{color:var(--oo-color-muted)}.web-change[data-deleted=true] .web-change__name{text-decoration:line-through}.web-change__group{font-size:var(--oo-font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--oo-color-muted);font-weight:600}.web-change__end{align-items:center;gap:var(--oo-spacing-sm);display:inline-flex}.web-change__counts{white-space:nowrap}.web-change__letter{text-align:center;min-width:1ch;font-weight:600}.web-change__letter[data-letter=M]{color:var(--oo-color-warning)}.web-change__letter[data-letter=A],.web-change__letter[data-letter=U]{color:var(--oo-color-success)}.web-change__letter[data-letter=D]{color:var(--oo-color-danger)}.web-change__actions{gap:2px;display:none}.web-change__action{color:inherit;font:inherit;border-radius:var(--oo-radius-sm);cursor:pointer;background:0 0;border:0;min-width:20px;height:20px;padding:0 3px}.web-change__action:hover{background:var(--oo-color-hover,var(--oo-color-selected))}.web-change__action[aria-pressed=true]{color:var(--oo-color-success)}.web-changes .oo-tree__row:hover .web-change__actions,.web-changes .oo-tree__row:focus-within .web-change__actions,.web-changes .oo-tree__row[data-selected=true] .web-change__actions{display:inline-flex}.web-changes .oo-tree__row:hover .web-change__counts,.web-changes .oo-tree__row:hover .web-change__letter,.web-changes .oo-tree__row:focus-within .web-change__counts,.web-changes .oo-tree__row:focus-within .web-change__letter,.web-changes .oo-tree__row[data-selected=true] .web-change__counts,.web-changes .oo-tree__row[data-selected=true] .web-change__letter{display:none}.web-file__actions{align-items:center;gap:var(--oo-spacing-sm);flex-wrap:wrap;margin-left:auto;display:inline-flex}.web-file__viewed{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.porta-limen{background:var(--oo-color-canvas);width:100%;height:100%;min-height:0;color:inherit;grid-template:"top top top""left center right"1fr"bottom bottom bottom"/auto 1fr auto;display:grid}.porta-limen__top{grid-area:top}.porta-limen__bottom{grid-area:bottom}.porta-limen__left{grid-area:left}.porta-limen__right{grid-area:right}.porta-limen__center{padding:var(--oo-spacing-lg);grid-area:center;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.porta-limen__panel{gap:var(--oo-spacing-md);width:100%;max-width:380px;padding:var(--oo-spacing-lg);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md);background:var(--oo-color-surface);box-shadow:var(--oo-shadow-md);flex-direction:column;display:flex}.porta-limen__title{font-size:var(--oo-font-size-lg);font-weight:600}.porta-limen__subtitle{color:var(--oo-color-muted);font-size:var(--oo-font-size-sm)}.ahpw-mark__art,.ahpw-mark__echo{transform-box:view-box}@keyframes ahpw-mark-set{0%{transform:scaleY(0)}60%{transform:scaleY(1.06)}to{transform:scaleY(1)}}.ahpw-mark--set .ahpw-mark__art{transform-origin:32px 52px;animation:.75s cubic-bezier(.2,.9,.25,1.06) both ahpw-mark-set}@keyframes ahpw-mark-echo{0%{opacity:.6;transform:scale(1)}75%{opacity:0}to{opacity:0;transform:scale(1.95)}}.ahpw-mark__echo{transform-origin:32px 32px;opacity:0;animation:1.5s cubic-bezier(.25,.6,.3,1) infinite ahpw-mark-echo}.ahpw-mark__echo--second{animation-delay:.5s}.ahpw-mark__echo--third{animation-delay:1s}@media (prefers-reduced-motion:reduce){.ahpw-mark--set .ahpw-mark__art,.ahpw-mark__echo{animation:none}}
@@ -0,0 +1 @@
1
+ var e=Object.defineProperty,t=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),n=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},r=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),i=t(((e,t)=>{t.exports=r()}));export{t as n,n as r,i as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-CybPckBe.js";var t=e(),n=(0,t.createContext)(null);function r(){return(0,t.useContext)(n)}var i=(0,t.createContext)(void 0);function a(){return(0,t.useContext)(i)}var o=(0,t.createContext)(null);function s(e){let n=(0,t.useContext)(o);return(0,t.useCallback)(t=>{n?.(e,t)},[n,e])}export{a,r as i,n,s as o,o as r,i as t};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{t as r,u as i}from"./useStore-BQkzWMs-.js";import{n as a}from"./ScenaProvider-6A3TJumQ.js";import{t as o}from"./Button-_R1oktDz.js";import{o as s}from"./data-Fkj0LNnG.js";import{t as c}from"./emojis-BOylxma2.js";import{t as l}from"./ActionList-aOUHK9Z9.js";import{a as u,d,o as f,r as p}from"./terminal-kD0C2LuZ.js";var m=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`),s=Symbol.for(`react.recoverable`),c=Symbol.for(`react.optimistic_key`);function l(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:r===c?c:``+r,children:e,containerInfo:t,implementation:n}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.browser=function(e){return{$$typeof:s,_reason:e}},e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return l(e,t,null,n)},e.flushSync=function(e){var t=u.T,n=a.p;try{if(u.T=null,a.p=2,e)return e()}finally{u.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return u.H.useFormState(e,t,n)},e.useFormStatus=function(){return u.H.useHostTransitionStatus()},e.version=`19.3.0`})),h=e(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=8e3,_=`$/notify/list`,ee=`$/notify/count`,v=`$/notify/history`;function y(e){return[e.source??``,e.type,e.title,e.description??``].join(` `)}function b(e){let t=new Map,n=new Map,r=new Set,i=[],a=[],o=0;function s(t){i=t,e.set(_,[...i]),e.set(ee,i.length)}function c(t){a=[t,...a.filter(e=>e.id!==t.id)].slice(0,100),e.set(v,[...a])}function l(e){for(let n of t.values())if((n.handles===void 0||n.handles(e))&&n.available())try{n.present(e)}catch{}}function u(e){let t=n.get(e);t!==void 0&&(clearTimeout(t),n.delete(e))}function d(e){u(e.id),!(e.dismissAuto===!1||r.has(e.id))&&n.set(e.id,setTimeout(()=>{n.delete(e.id),f(e.id)},e.dismissTime??2e3))}function f(e){if(u(e),r.delete(e),i.some(t=>t.id===e)){s(i.filter(t=>t.id!==e));for(let n of t.values())n.retract?.(e)}}return{publish(e){let t=e.id===void 0?i.find(t=>y(t)===y(e)):i.find(t=>t.id===e.id);if(t!==void 0){let n={...t,...e,id:t.id,count:t.count+1,at:new Date().toISOString()};return s([n,...i.filter(e=>e.id!==t.id)]),c(n),l(n),d(n),n.id}o+=1;let n={...e,id:e.id??`n${o}`,at:new Date().toISOString(),count:1};return s([n,...i]),c(n),l(n),d(n),n.id},dismiss:f,hold(e){r.add(e),u(e)},release(e){if(!r.delete(e))return;let t=i.find(t=>t.id===e);t!==void 0&&d(t)},update(e,t){let n=i.find(t=>t.id===e);if(n===void 0)return;let r={...n,...t,id:e};s(i.map(t=>t.id===e?r:t)),c(r),l(r),d(r)},list:()=>[...i],history:()=>[...a],forget(){a=[],e.set(v,[])},channels:{register(e){return t.set(e.id,e),{dispose:()=>void t.delete(e.id)}}}}}var x;function te(e){return x??=b(e),x}function ne(){x=void 0}function S(){if(x===void 0)throw Error(`Notifications were read before initNotifications ran.`);return x}function C(e){if(x===void 0)return!1;try{return e(x),!0}catch{return!1}}var w=`$/notify/confirm`,T=`$/notify/confirmStyle`,E=`modal`,D,O=0,k=null;function re(e,t){D=e,e.get(`$/notify/confirmStyle`)===void 0&&e.set(T,t)}function ie(){M(!1),D=void 0}function A(){return D?.get(`$/notify/confirmStyle`)??`modal`}function ae(e){D?.set(T,e)}function j(e){return D===void 0||A()===`native`?Promise.resolve(window.confirm(e.body===void 0?e.title:`${e.title}\n\n${e.body}`)):(M(!1),O+=1,D.set(w,{id:O,title:e.title,...e.body===void 0?{}:{body:e.body},confirmLabel:e.confirmLabel??`Confirm`,cancelLabel:e.cancelLabel??`Cancel`,tone:e.tone??`default`}),new Promise(e=>{k=e}))}function M(e){let t=k;k=null,D?.set(w,null),t?.(e)}var N=new Set([`attention`,`action.finished`,`connection.lost`]),P=6e4;function F(){return typeof window<`u`&&`Notification`in window}function I(){return F()&&window.Notification.permission==="default"}function L(){return F()&&window.Notification.permission===`granted`}async function R(){return F()?window.Notification.requestPermission():`denied`}function z(){let e=typeof document>`u`||document.hasFocus()?null:Date.now(),t=new Map,n=()=>{e??=Date.now()},r=()=>{e=null;for(let e of t.values())e.close();t.clear()};return window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),{id:`browser`,handles:e=>N.has(e.type)&&e.alert!==void 0,available:()=>L()?document.visibilityState===`hidden`||e!==null&&Date.now()-e>=P:!1,present:e=>{let n=e.alert;if(n===void 0)return;let r=new window.Notification(n.title,{...n.body===void 0?{}:{body:n.body},tag:e.source??e.id});r.onclick=()=>{window.focus(),r.close()},t.set(e.id,r)},retract:e=>{t.get(e)?.close(),t.delete(e)},dispose:()=>{window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r);for(let e of t.values())e.close();t.clear()}}}var B=n(),V=t();function H(){let e=r(w),t=(0,B.useRef)(null),n=e?.id;return(0,B.useEffect)(()=>{if(n===void 0)return;t.current?.focus();let e=e=>{e.key===`Escape`&&(e.stopPropagation(),M(!1))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[n]),e==null?null:(0,V.jsx)(`div`,{className:`web-confirm`,onClick:()=>M(!1),children:(0,V.jsxs)(`div`,{ref:t,tabIndex:-1,className:`web-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":`web-confirm-title`,...e.body===void 0?{}:{"aria-describedby":`web-confirm-body`},onClick:e=>e.stopPropagation(),children:[(0,V.jsx)(`h2`,{id:`web-confirm-title`,className:`web-confirm__title`,children:e.title}),e.body===void 0?null:(0,V.jsx)(`p`,{id:`web-confirm-body`,className:`web-confirm__body`,children:e.body}),(0,V.jsxs)(`div`,{className:`web-confirm__buttons`,children:[(0,V.jsx)(o,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>M(!1),children:e.cancelLabel}),(0,V.jsx)(o,{type:`button`,size:`sm`,variant:e.tone===`danger`?`danger`:`primary`,onClick:()=>M(!0),children:e.confirmLabel})]})]})})}var U={info:c.info,success:c.check,warning:c.warning,danger:c.error},W=4;function G({animation:e=`slide-up`}){let t=r(`$/notify/list`)??[],[n,i]=(0,B.useState)(!1);if(t.length===0)return null;let a=n?t:t.slice(0,W),o=t.length-a.length;return(0,V.jsxs)(`div`,{className:`web-toasts`,role:`region`,"aria-label":`Notifications`,children:[o>0?(0,V.jsx)(`button`,{type:`button`,className:`web-toast__more`,onClick:()=>i(!0),children:`${o} more`}):null,[...a].reverse().map(t=>(0,V.jsx)(K,{notification:t,animation:t.animation??e},t.id))]})}function K({notification:e,animation:t}){let n=a(),[r,i]=(0,B.useState)(!1),s=e.id,l=()=>S().dismiss(s);(0,B.useEffect)(()=>{if(!r)return;let e=S();return e.hold(s),()=>e.release(s)},[s,r]);let u=()=>S().hold(s),d=()=>{r||S().release(s)},f=e=>{n.commands.execute(e.command,e.args),e.dismisses!==!1&&l()};return(0,V.jsxs)(`div`,{className:`web-toast`,"data-tone":e.tone,"data-animation":t,role:e.dismissAuto===!1?`alert`:`status`,onMouseEnter:u,onMouseLeave:d,onFocus:u,onBlur:d,children:[(0,V.jsxs)(`div`,{className:`web-toast__head`,children:[(0,V.jsx)(`span`,{className:`web-toast__icon`,"aria-hidden":`true`,children:e.icon??U[e.tone]}),(0,V.jsx)(`span`,{className:`web-toast__title`,children:e.title}),e.count>1?(0,V.jsx)(`span`,{className:`web-toast__count`,title:`Raised ${e.count} times`,children:`\u{D7}${e.count}`}):null,(0,V.jsx)(`button`,{type:`button`,className:`web-toast__close`,"aria-label":`Dismiss`,onClick:l,children:c.close})]}),e.description===void 0?null:(0,V.jsx)(`p`,{className:`web-toast__body`,children:e.description}),e.detail===void 0?null:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:`web-toast__link`,onClick:()=>i(!r),children:r?`Hide details`:`Show details`}),r?(0,V.jsx)(`pre`,{className:`web-toast__detail`,children:e.detail}):null]}),e.actions===void 0||e.actions.length===0?null:(0,V.jsx)(`div`,{className:`web-toast__actions`,children:e.actions.map(e=>(0,V.jsx)(o,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>f(e),children:e.label},e.command))})]})}var q=h(),J=c.terminal;function Y(e,t){let n=f(e.claim,t);return n.kind===`you`?`Yours`:n.kind===`session`?`Held by a session`:`Held by another client`}function oe(e,t){if(!u(e))return Y(e,t);let n=p(e);return`${Y(e,t)}, exited${n===null?``:` with ${n}`}`}function se(e,t){let n=e.store.get(s),r=t.trim().toLowerCase();return(n?.terminals??[]).filter(e=>r===``||`terminal ${d(e)}`.toLowerCase().includes(r)).map(t=>({title:`Terminal: ${d(t)}`,description:oe(t,n?.clientId??null),icon:J,group:`Terminals`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openTerminal`,{uri:t.resource})}}))}var X=`$/ahp/palette/open`,Z=`ahp:palette`;function Q(){return r(`$/ahp/palette/open`)===!0?(0,q.createPortal)((0,V.jsx)(ce,{}),document.body):null}function ce(){let e=a(),[t,n]=(0,B.useState)(``),i=(0,B.useRef)(null),o=()=>e.store.set(X,!1),c=(0,B.useMemo)(()=>({pushList:()=>void 0,replaceList:()=>void 0,openInline:()=>void 0,openPopover:()=>void 0,back:()=>void 0,closeMenu:o,keepOpen:()=>void 0,insertAtCursor:()=>void 0,replaceActiveToken:()=>void 0,query:``}),[]),u=r(s),d=(0,B.useMemo)(()=>({query:{slot:Z,q:t},extraItems:se(e,t)}),[e,t,u]);return(0,V.jsx)(`div`,{className:`web-palette`,onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,V.jsxs)(`div`,{className:`web-palette__box`,role:`dialog`,"aria-label":`Command palette`,onClick:e=>{e.target.closest(`.oo-action-list__row`)!==null&&o()},children:[(0,V.jsx)(`input`,{className:`web-field web-palette__input`,autoFocus:!0,value:t,placeholder:`Type a command or a terminal`,"aria-label":`Command`,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),o();return}i.current?.handleKey(e)===!0&&e.key===`Enter`&&o()}}),(0,V.jsx)(l,{spec:d,hostCtx:c,manageKeys:!1,ref:i})]})})}function $(e){return{...e.description===void 0?{}:{description:e.description},...e.actions===void 0?{}:{actions:e.actions},...e.source===void 0?{}:{source:e.source},...e.dismissAuto===void 0?{}:{dismissAuto:e.dismissAuto}}}function le(e,t={}){C(n=>{n.publish({type:`action.done`,tone:`success`,icon:t.icon??c.check,title:e,...$(t)})})}function ue(e,t={}){C(n=>{n.publish({type:`attention`,tone:`warning`,icon:t.icon??c.warning,title:e,dismissTime:g,...$(t)})})}function de(e,t,n={}){let r=t instanceof Error?t.message:String(t),i=t instanceof Error?t.stack:void 0;C(t=>{t.publish({type:`action.failed`,tone:`danger`,icon:n.icon??c.warning,title:e,dismissTime:8e3,...$({...n,description:r}),...i===void 0?{}:{detail:i}})})||console.error(e,t)}function fe(e){let t=te(e.store);re(e.store,E);let n=z();return i({dispose:()=>{n.dispose(),ie(),ne()}},e.components.register({component:`Notifications.Toaster`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:G})}}),e.components.register({component:`Notifications.Confirm`,category:`chrome`,renderer:{kind:`react`,load:async()=>({default:H})}}),t.channels.register({id:`toast`,available:()=>!0,present:()=>void 0}),t.channels.register(n),e.surfaces.mount({surface:`overlay`,key:`notifications:toaster`,resource:{component:`Notifications.Toaster`}}),e.surfaces.mount({surface:`overlay`,key:`notifications:confirm`,resource:{component:`Notifications.Confirm`}}),e.commands.register({id:`notifications.enableAlerts`,title:`Notify me when this tab is in the background`,category:`Notifications`,slots:[Z],run:async()=>{if(L()){t.publish({type:`default`,tone:`success`,title:`Background notifications are already on`});return}if(!I()){t.publish({type:`default`,tone:`warning`,title:`Background notifications are blocked`,description:`The browser will not ask again. Turn them on in the site settings beside the address bar.`,dismissTime:g});return}let e=await R();t.publish({type:`default`,tone:e===`granted`?`success`:`warning`,title:e===`granted`?`Background notifications are on`:`Background notifications were not allowed`})}}),e.commands.register({id:`notifications.confirmStyle`,title:()=>A()===`native`?`Ask in the page's own dialog`:`Ask in the browser's dialog`,category:`Notifications`,slots:[Z],run:()=>ae(A()===`native`?`modal`:`native`)}),e.commands.register({id:`notifications.dismissAll`,title:`Dismiss all notifications`,category:`Notifications`,slots:[Z],run:()=>{for(let e of t.list())t.dismiss(e.id)}}))}export{X as a,J as c,g as d,h as f,ue as i,j as l,le as n,Z as o,de as r,Q as s,fe as t,C as u};
@@ -0,0 +1 @@
1
+ var e=function(e,t){return new URL(e,t).href},t={},n=function(e){return e.pathname.endsWith(`.css`)},r=function(r,i,a){let o=Promise.resolve();if(i&&i.length>0){let r,s=document.querySelector(`meta[property=csp-nonce]`),c=s?.nonce||s?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}o=l(i.map(i=>{i=e(i,a);let o=u(i);if(o.href in t)return;t[o.href]=!0;let s=n(o);if(r===void 0){r={all:new Set,styles:new Set};let e=document.getElementsByTagName(`link`);for(let t=e.length-1;t>=0;t--){let n=e[t];r.all.add(n.href),n.rel===`stylesheet`&&r.styles.add(n.href)}}if((s?r.styles:r.all).has(o.href))return;let l=document.createElement(`link`);if(l.rel=s?`stylesheet`:`modulepreload`,s||(l.as=`script`),l.crossOrigin=``,l.href=o.href,c&&l.setAttribute(`nonce`,c),document.head.appendChild(l),s)return new Promise((e,t)=>{l.addEventListener(`load`,e),l.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${o}`)))})}).filter(e=>e!==void 0))}function s(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(e=>{for(let t of e||[])t.status===`rejected`&&s(t.reason);return r().catch(s)})};export{r as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./jsx-runtime-BguD1OXD.js";var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var j=/\/+/g;function M(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function N(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function P(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,P(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+M(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(j,`$&/`)+`/`),P(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(j,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+M(a,u),c+=P(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+M(a,u++),c+=P(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return P(N(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function F(e,t,n){if(e==null)return e;var r=[],i=0;return P(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function I(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var L=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function R(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,L)}catch(e){L(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function z(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else R(z.bind(null,e))}var B={map:F,forEach:function(e,t,n){F(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return F(e,function(){t++}),t},toArray:function(e){return F(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=B,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=z,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:I}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=R,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.0`})),n=e(((e,n)=>{n.exports=t()}));export{n as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Explorer-C4zxSdMF.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./notify-Bb548jAB.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./Button-_R1oktDz.js","./styles-yrzHRgom.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./data-Fkj0LNnG.js","./emojis-BOylxma2.js","./ActionList-aOUHK9Z9.js","./colors-BieSUSt7.js","./ActionList-Bawu-Lja.css","./terminal-kD0C2LuZ.js","./words-BknpHIF3.js","./Spinner-B-iOhBZq.js","./Spinner-B56wMtzv.css","./Alert-CHZkhmDE.js","./Icon-CIQ7doud.js","./Icon-BFMW_Ijn.css","./Alert-D6FTUHBY.css","./state-KGSq646f.js","./ExplorerList-Bdp0sfLW.js","./ContextMenu-qqlGWvJT.js","./Page-BXwzlAyC.js","./Badge-BDEW5PFb.js","./Badge-B_GtDNjv.css","./Markdown-BaxWPZc1.js","./Markdown-D4ts0B_q.css","./Composer-DpjCaX5G.js","./composer-commands-Bpp7NX4E.js","./drag-ruzgQUFW.js","./Text-MPtQvYE-.js","./Text-D2KlerVw.css","./turn-BoF7W1h6.js","./channel-Cqz_LUS2.js","./clicks-IyfKhKFh.js","./New-CWi2ZODd.js","./Details-Cymq_tLr.js"])))=>i.map(i=>d[i]);
2
+ import{d as e,o as t,u as n}from"./notify-Bb548jAB.js";import{u as r}from"./useStore-BQkzWMs-.js";import{n as i,t as a}from"./surface-presentation-CT86pw6J.js";import{t as o}from"./preload-helper-BaNbYf_w.js";import{L as s,T as c,c as l}from"./data-Fkj0LNnG.js";import{t as u}from"./emojis-BOylxma2.js";import{s as d}from"./composer-commands-Bpp7NX4E.js";import{t as f}from"./state-KGSq646f.js";var p={"sidebar:left":{xsmall:`sheet`,small:`floating`},"sidebar:right":{xsmall:`floating`,small:`floating`},activitybar:{xsmall:`bar`}},m=e=>`session-alert:${e}`;function h(e,t){return e===void 0||e===t?null:t===`input`?`needs-you`:e!==`running`&&e!==`input`?null:t===`idle`?`finished`:t===`error`?`failed`:null}function g(t,n){let r=t.title===``?`Untitled`:t.title,i=[{label:`Open`,command:`ahp.openSession`,args:{resource:t.resource}}],a={id:m(t.resource),source:m(t.resource),actions:i};return n===`needs-you`?{...a,type:`attention`,tone:`warning`,icon:u.warning,title:`${r} needs you`,dismissAuto:!1,alert:{title:r,body:`Needs you`}}:n===`failed`?{...a,type:`action.finished`,tone:`danger`,icon:u.warning,title:`${r} failed`,dismissTime:e,alert:{title:r,body:`Failed`}}:{...a,type:`action.finished`,tone:`success`,icon:u.check,title:`${r} finished`,dismissTime:e,alert:{title:r,body:`Finished`}}}function _(e,t){return e.store.get(`$/ahp/activeSession`)===t&&document.visibilityState===`visible`&&document.hasFocus()}function v(e){let t=null;return e.store.subscribe(l,()=>{let r=e.store.get(l);if(r===void 0)return;let i=new Map(r.map(e=>[e.resource,s(e.status)])),a=t;if(t=i,a!==null)for(let t of r){let r=i.get(t.resource),o=a.get(t.resource);o===`input`&&r!==`input`&&n(e=>e.dismiss(m(t.resource)));let s=h(o,r);s===null||_(e,t.resource)||n(e=>e.publish(g(t,s)))}})}var y=`$/modus/class`,b=`ahp:sessions`;function x(e,t,n=`sidebar:left`){if(!a(i(n,t,p)))return;let r=e.layout.get().surfaces[n];r?.visible!==!1&&e.layout.setSurface(n,{...r,visible:!1})}function S(e){return r(d(e),v(e),e.components.register({component:`SessionExplorer`,category:`page`,renderer:{kind:`react`,load:()=>o(()=>import(`./Explorer-C4zxSdMF.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]),import.meta.url)}}),e.components.register({component:`SessionPage`,category:`page`,props:{icon:u.sessions},renderer:{kind:`react`,load:()=>o(()=>import(`./Page-BXwzlAyC.js`),__vite__mapDeps([27,1,2,4,5,6,7,8,9,10,11,17,12,28,14,29,18,19,30,31,20,21,22,23,32,3,13,15,16,33,34,35,36,24,37,38,39]),import.meta.url)}}),e.components.register({component:`NewSessionPage`,category:`page`,props:{icon:u.sessions},renderer:{kind:`react`,load:()=>o(()=>import(`./New-CWi2ZODd.js`),__vite__mapDeps([40,1,2,4,5,6,7,8,9,10,11,17,12,20,21,22,23,32,3,13,14,15,16,33,34,35,36]),import.meta.url)}}),e.components.register({component:`SessionDetails`,category:`page`,renderer:{kind:`react`,load:()=>o(()=>import(`./Details-Cymq_tLr.js`),__vite__mapDeps([41,1,2,4,5,6,11,17,16,24,37,38]),import.meta.url)}}),e.commands.register({id:`ahp.showSessions`,title:`Show sessions`,category:`Sessions`,slots:[t],run:e=>e.commands.execute(`sidebar.activate`,{section:b})}),e.commands.register({id:`ahp.newSession`,title:`New session`,category:`Sessions`,slots:[t],run:(e,t)=>{let n=t?.provider;n!==void 0&&e.scena.surfaces.close(`session:new`),e.surfaces.open({surface:`main`,key:`session:new`,resource:{component:`NewSessionPage`,...n===void 0?{}:{provider:n}},props:{title:`New session`}}),x(e.scena,e.store.get(y)??`large`)}}),e.commands.register({id:`ahp.openSession`,title:`Open session`,run:(e,t)=>{let n=t?.resource;n!==void 0&&(e.store.set(f,n),e.surfaces.open({surface:`main`,key:`session:${n}`,resource:{component:`SessionPage`,resource:n},props:{title:{path:c(n)}}}),x(e.scena,e.store.get(y)??`large`),x(e.scena,e.store.get(y)??`large`,`sidebar:right`))}}),e.surfaces.mount({surface:`sidebar:right`,key:`session:details`,resource:{component:`SessionDetails`},props:{title:`Session`}}),e.surfaces.mount({surface:`sidebar:left`,key:`sessions:explorer`,when:`$/layout/surfaces/sidebar:left/section == "${b}"`,resource:{component:`SessionExplorer`}}))}export{p as i,x as n,S as r,b as t};
@@ -0,0 +1 @@
1
+ var e={session:`$/sigillum/session`,providers:`$/sigillum/providers`,pending:`$/sigillum/pending`,error:`$/sigillum/error`,challenge:`$/sigillum/challenge`};function t(t){function r(){return t.store.get(e.session)??null}return{session:r,has(e){let t=r();return!t||!t.permissions?!1:t.permissions.some(t=>n(t,e))},isPending(){return!!t.store.get(e.pending)},error(){return t.store.get(e.error)??null},signOut(){return t.commands.execute(`sigillum.signout`)}}}function n(e,t){return e===t?!0:e.endsWith(`.*`)?t.startsWith(e.slice(0,-1)):!1}export{t as n,e as t};
@@ -0,0 +1 @@
1
+ var e=`$/ahp/activeAgent`;export{e as t};
@@ -0,0 +1 @@
1
+ var e=`$/ahp/activeSession`;export{e as t};
@@ -0,0 +1 @@
1
+ var e=new Map,t=new Set,n=new WeakMap;function r(t){e.set(t.id,t)}function i(){return[...e.values()]}function a(t,r,i){t.setAttribute(`data-theme`,r),t.setAttribute(`data-theme-mode`,i);let a=n.get(t);if(a){for(let e of a)t.style.removeProperty(e);n.delete(t)}let s=e.get(r);if(!s)return;let c=s.variants[i];if(!c)return;if(c.kind===`css`){o(c.href);return}let l=[];for(let[e,n]of Object.entries(c.tokens)){let r=e.startsWith(`--`)?e:`--${e}`;t.style.setProperty(r,n),l.push(r)}n.set(t,l)}function o(e){if(typeof document>`u`||t.has(e))return;let n=document.createElement(`link`);n.rel=`stylesheet`,n.href=e,n.setAttribute(`data-scena-theme`,e),document.head.appendChild(n),t.add(e)}r({id:`default`,label:`Default`,variants:{light:{kind:`tokens`,tokens:{}},dark:{kind:`tokens`,tokens:{}}}});var s=new Set([`xs`,`sm`,`md`,`lg`]);function c(e,t={}){let n=[e];return t.variant&&n.push(`${e}--${t.variant}`),t.size&&n.push(`${e}--${t.size}`),t.density&&n.push(`${e}--${t.density}`),n.join(` `)}function l(e){return e.startsWith(`--`)?e:s.has(e)?`--oo-spacing-${e}`:`--${e}`}function u(e){return e.startsWith(`--`)?e:s.has(e)?`--oo-font-size-${e}`:`--${e}`}export{u as a,r as i,a as n,l as o,i as r,c as t};
@@ -0,0 +1 @@
1
+ function e(e,t,n={}){return n[e]?.[t]??`docked`}function t(e){return e===`floating`||e===`sheet`}export{e as n,t};
@@ -0,0 +1 @@
1
+ import{K as e}from"./data-Fkj0LNnG.js";function t(e){return typeof e==`object`&&e?e:{}}function n(e){return typeof e==`string`&&e!==``?e:null}function r(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function i(e){return e.type===`command`?typeof e.output==`string`?e.output:``:typeof e.value==`string`?e.value:``}function a(e){let t=``;for(let n of e)t+=i(n);return t}function o(e){let i=t(e),a=t(i.lifecycle),o=r(a.exitCode);return{...i,title:n(i.title)??``,content:Array.isArray(i.content)?i.content:[],lifecycle:n(a.status)===`exited`?{status:`exited`,...o===null?{}:{exitCode:o}}:{status:`running`},claim:c(i.claim)?i.claim:l(``)}}function s(t,n){return e(o(t),n)}function c(e){let r=n(t(e).kind);return r===`client`||r===`session`}function l(e){return{kind:`client`,clientId:e}}function u(e,r){let i=t(e);return i.kind===`session`?{kind:`session`,session:n(i.session)??``}:i.kind===`client`&&r!==null&&i.clientId===r?{kind:`you`}:{kind:`another`}}function d(e){return t(e.lifecycle).status===`exited`}function f(e){return r(t(e.lifecycle).exitCode)}var p=0;function m(){return p+=1,`ahp-terminal:/${Date.now().toString(36)}-${p.toString(36)}`}function h(e,t){return t.startsWith(e)?{reset:!1,text:t.slice(e.length)}:{reset:!0,text:t}}function g(e){return e.title!==void 0&&e.title!==``?e.title:`Terminal`}function _(e,t){if(e===void 0)return!1;let n=t.replace(/\/+$/,``);return e.replace(/\/+$/,``)===n||e.startsWith(`${n}/`)}export{d as a,a as c,g as d,s as i,m as l,h as n,u as o,f as r,_ as s,l as t,o as u};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{b as n}from"./data-Fkj0LNnG.js";import{n as r}from"./words-BknpHIF3.js";var i=t(),a=e();function o(e){let[t,r]=(0,i.useState)(null);return(0,i.useEffect)(()=>{if(e===void 0)return;let t=!0;return r(null),n(e).then(e=>{t&&r({text:e.text})}).catch(e=>{t&&r({error:e instanceof Error?e.message:String(e)})}),()=>{t=!1}},[e]),t}function s({uri:e}){let t=r(e);return(0,a.jsxs)(`div`,{className:`web-file__head`,children:[(0,a.jsx)(`code`,{children:t}),(0,a.jsx)(`button`,{type:`button`,className:`web-tool__copy`,onClick:()=>void navigator.clipboard?.writeText(t).catch(()=>void 0),children:`Copy path`})]})}export{o as n,s as t};
@@ -0,0 +1,3 @@
1
+ var e=e=>e.message.model?.id??e.usage?.model;function t(t){let n=t.startedAt===void 0?NaN:Date.parse(t.startedAt),r=e(t),i=t.usage;return{...Number.isNaN(n)?{}:{startedAt:n},...`duration`in t&&typeof t.duration==`number`?{duration:t.duration}:{},...r===void 0?{}:{model:r},...i?.inputTokens===void 0?{}:{input:i.inputTokens},...i?.outputTokens===void 0?{}:{output:i.outputTokens},...i?.cacheReadTokens===void 0?{}:{cacheRead:i.cacheReadTokens},tools:t.responseParts.filter(e=>String(e.kind)===`toolCall`).length}}function n(e){return e.responseParts.filter(e=>String(e.kind)===`markdown`&&`content`in e&&typeof e.content==`string`).map(e=>e.content.trim()).filter(e=>e!==``).join(`
2
+
3
+ `)}function r(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4)).replace(/\.0$/,``)}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,``)}M`}function i(e){let n=new Set,r={turns:e.length,working:0,input:0,output:0,tools:0,models:[]};for(let i of e){let e=t(i);r.working+=e.duration??0,r.input+=e.input??0,r.output+=e.output??0,r.tools+=e.tools,e.model!==void 0&&n.add(e.model)}return r.models=[...n],r}function a(e){let t=new Date(e);return new Date().toDateString()===t.toDateString()?t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`}):t.toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}export{a,i,n,r,t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-CybPckBe.js";import{C as t,S as n,b as r,v as i,x as a,y as o}from"./index-BkzdJo_Y.js";var s=e();function c(e){let c=(0,s.useSyncExternalStore)(n,i,i);return{t:(0,s.useCallback)((n,r)=>t(e?`${e}/${n}`:n,r),[e,c]),locale:c,info:o(c),locales:r(),setLocale:a}}export{c as t};
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./react-CybPckBe.js";import{n as t}from"./ScenaProvider-6A3TJumQ.js";import{a as n,i as r}from"./mount-context-DZgEFVFG.js";var i=e();function a(...e){return{dispose(){for(let t of e)if(t)try{t.dispose()}catch{}}}}function o(e){return{dispose:e}}function s(e){if(typeof e!=`string`||e.length===0)throw Error(`Invalid path: empty`);if(e.startsWith(`$/`))return{absolute:!0,segments:c(e.slice(2))};if(e.startsWith(`/`))return{absolute:!1,segments:c(e.slice(1))};throw Error(`Invalid path "${e}": must start with "$/" or "/"`)}function c(e){if(e===``)return[];let t=e.split(`/`),n=Array(t.length);for(let e=0;e<t.length;e++){let r=t[e];if(r===`..`)throw Error(`Invalid path: ".." segment is forbidden — escape to root with "$/"`);n[e]=l(r)}return n}function l(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}function u(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function d(e,t){let n=s(t);if(n.absolute)return t;if(!e)throw Error(`Relative path "${t}" cannot resolve: no data context active`);let r=s(e);if(!r.absolute)throw Error(`Data context "${e}" must be absolute ($/-form)`);return f([...r.segments,...n.segments])}function f(e){return e.length===0?`$/`:`$/`+e.map(u).join(`/`)}function p(e){return s(e).segments.includes(`*`)}function m(e,t,n,r=0){if(r>1)throw Error(`interpolatePath: recursion limit (1 level)`);return n.includes(`{{`)?n.replace(/\{\{\s*([^}]+?)\s*\}\}/g,(n,i)=>{let a=h(e,t,i,r+1);return String(a??``)}):n}function h(e,t,n,r=0){if(typeof n!=`string`)throw Error(`readPath: expected string path`);let i=n.includes(`{{`)?m(e,t,n,r):n;if(i.startsWith(`#/`)){let a=`$`+i.slice(1),o=e.get(a);if(typeof o!=`string`)throw Error(`#/-path reference at "${n}" did not resolve to a path string (got ${typeof o})`);if(r>4)throw Error(`readPath: indirection limit exceeded`);return h(e,t,o,r+1)}let a=d(t,i);if(p(a))throw Error(`readPath: wildcard paths are read via subscribe only ("${a}")`);let o=e.get(a);return o===void 0?g(e,a):o}function g(e,t){let n=s(t);if(n.absolute&&n.segments.length!==0)for(let t=n.segments.length-1;t>=1;t--){let r=f(n.segments.slice(0,t)),i=e.get(r);if(i!==void 0)return _(i,n.segments.slice(t))}}function _(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;if(Array.isArray(n)){let t=Number(e);if(!Number.isInteger(t))return;n=n[t];continue}n=n[e]}return n}function v(e,t,n,r){if(n.startsWith(`#/`))throw Error(`writePath: #/-form paths are read-only ("${n}")`);let i=d(t,n.includes(`{{`)?m(e,t,n):n);if(p(i))throw Error(`writePath: wildcard paths are read-only ("${i}")`);e.set(i,r)}var y=new Set([`countWhere`,`sumBy`,`filter`,`map`]);function b(e){let t=e.trim(),n=/^([A-Za-z_$][\w$]*)\(([\s\S]*)\)$/.exec(t);if(n&&(y.has(n[1])||n[1]===`length`)){let e=n[1],t=O(n[2]);return e===`length`?e=>{let n=k(t,w(e));return Array.isArray(n)||typeof n==`string`?n.length:n&&typeof n==`object`?Object.keys(n).length:0}:n=>{let r=x(n);switch(e){case`countWhere`:return r.reduce((e,n)=>A(k(t,S(n)))?e+1:e,0);case`sumBy`:return r.reduce((e,n)=>e+j(k(t,S(n))),0);case`filter`:return r.filter(e=>A(k(t,S(e))));case`map`:return r.map(e=>k(t,S(e)));default:return}}}if(n)throw Error(`computed: unknown select function "${n[1]}(…)"`);let r=O(t);return e=>k(r,w(e))}function x(e){for(let t of Object.values(e))if(Array.isArray(t))return t;return[]}function S(e){return e&&typeof e==`object`?{...e,item:e,value:e}:{item:e,value:e}}function C(e){let t=e.split(`/`);return t[t.length-1]||e}function w(e){let t={},n=0;for(let[r,i]of Object.entries(e))t[C(r)]=i,t[`$${n}`]=i,n===0&&(t.value=i),n++;return t}var T=[`==`,`!=`,`<=`,`>=`,`&&`,`||`],E=[`<`,`>`,`!`,`+`,`-`,`*`,`/`,`(`,`)`,`.`,`,`];function D(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===` `||r===` `||r===`
2
+ `||r===`\r`){n++;continue}if(r===`"`||r===`'`){let i=n+1,a=``;for(;i<e.length&&e[i]!==r;)a+=e[i],i++;if(i>=e.length)throw Error(`computed: unterminated string in select`);t.push({t:`str`,v:a}),n=i+1;continue}if(/[0-9]/.test(r)||r===`.`&&/[0-9]/.test(e[n+1]??``)){let r=n;for(;r<e.length&&/[0-9.]/.test(e[r]);)r++;t.push({t:`num`,v:Number(e.slice(n,r))}),n=r;continue}if(/[A-Za-z_$]/.test(r)){let r=n;for(;r<e.length&&/[\w$]/.test(e[r]);)r++;t.push({t:`id`,v:e.slice(n,r)}),n=r;continue}let i=e.slice(n,n+2);if(T.includes(i)){t.push({t:`op`,v:i}),n+=2;continue}if(E.includes(r)){t.push({t:`op`,v:r}),n++;continue}throw Error(`computed: unexpected character "${r}" in select`)}return t}function O(e){let t=D(e),n=0,r=()=>t[n],i=e=>{let r=t[n];if(!r)throw Error(`computed: unexpected end of select`);if(e&&(r.t!==`op`||r.v!==e))throw Error(`computed: expected "${e}"`);return n++,r},a=e=>{let t=r();return!!t&&t.t===`op`&&t.v===e};function o(){let e=r();if(!e)throw Error(`computed: unexpected end of select`);if(a(`!`)||a(`-`))return{k:`unary`,op:i().v,arg:o()};if(a(`(`)){i(`(`);let e=p();return i(`)`),s(e)}if(e.t===`num`||e.t===`str`)return i(),{k:`lit`,v:e.v};if(e.t===`id`)return i(),e.v===`true`?{k:`lit`,v:!0}:e.v===`false`?{k:`lit`,v:!1}:e.v===`null`?{k:`lit`,v:null}:s({k:`id`,v:e.v});throw Error(`computed: unexpected token in select`)}function s(e){let t=e;for(;a(`.`);){i(`.`);let e=i();if(e.t!==`id`)throw Error(`computed: expected property name after "."`);t={k:`member`,obj:t,prop:e.v}}return t}function c(e,t){let n=e();for(;r()&&r().t===`op`&&t.includes(r().v);)n={k:`bin`,op:i().v,l:n,r:e()};return n}let l=()=>c(o,[`*`,`/`]),u=()=>c(l,[`+`,`-`]),d=()=>c(u,[`==`,`!=`,`<`,`>`,`<=`,`>=`]),f=()=>c(d,[`&&`]),p=()=>c(f,[`||`]),m=p();if(n!==t.length)throw Error(`computed: trailing tokens in select`);return m}function k(e,t){switch(e.k){case`lit`:return e.v;case`id`:return t[e.v];case`member`:return k(e.obj,t)?.[e.prop];case`unary`:{let n=k(e.arg,t);return e.op===`!`?!A(n):-j(n)}case`bin`:{let n=k(e.l,t);if(e.op===`&&`)return A(n)?k(e.r,t):n;if(e.op===`||`)return A(n)?n:k(e.r,t);let r=k(e.r,t);switch(e.op){case`==`:return n===r;case`!=`:return n!==r;case`<`:return n<r;case`>`:return n>r;case`<=`:return n<=r;case`>=`:return n>=r;case`+`:return typeof n==`string`||typeof r==`string`?String(n)+String(r):j(n)+j(r);case`-`:return j(n)-j(r);case`*`:return j(n)*j(r);case`/`:return j(n)/j(r);default:return}}}}function A(e){return!!e}function j(e){return typeof e==`number`?e:Number(e)}function M(){return{hasValue:!1,value:void 0}}function N(e){return e.includes(`*`)}function P(e){return s(e).segments}function F(e){return!e.hasValue&&!(e.subscribers&&e.subscribers.size)&&!(e.wildSubs&&e.wildSubs.length)&&!(e.children&&e.children.size)}function I(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==`*`&&e[n]!==t[n])return!1;return!0}function L(e){let{events:t}=e,n=M(),r=new Map,i=new Set,a=new Map,s=new Map;for(let t of e.backendFactories??[])s.set(t.scope,t);let c=[],l=new Map,u=new Map,d=new Set,m=!1;function h(e,t){let r=n;for(let n of e){let e=r.children?.get(n);if(!e){if(!t)return;r.children||(r.children=new Map),e=M(),r.children.set(n,e)}r=e}return r}function g(e){let t=[n],r=n;for(let n of e){let e=r.children?.get(n);if(!e)break;t.push(e),r=e}return t}function _(e){let t=g(e);for(let n=t.length-1;n>=1;n--){let r=t[n];if(!F(r))break;let i=t[n-1];i.children?.delete(e[n-1]),i.children&&i.children.size===0&&(i.children=void 0)}}function v(e){let t=a.get(e);if(t)return t;let n=s.get(e);if(n)return t=n.create(),a.set(e,t),t.attach&&c.push(t.attach((e,t)=>k(e,t))),t}function y(e){let t=e.length?v(e[0]):void 0;if(t)return t.get(e.slice(1));let n=h(e,!1);return n&&n.hasValue?{hasValue:!0,value:n.value}:{hasValue:!1,value:void 0}}function x(e,t){let n=e.length?v(e[0]):void 0;if(n){n.set(e.slice(1),t);return}let r=h(e,!0);r.hasValue=!0,r.value=t}function S(e){let t=e.length?v(e[0]):void 0;if(t){let n=t.get(e.slice(1)).hasValue;return t.delete(e.slice(1)),n}let n=h(e,!1);return!n||!n.hasValue?!1:(n.hasValue=!1,n.value=void 0,!0)}function C(e){u.has(e)||u.set(e,{previous:y(P(e)).value}),m||(m=!0,queueMicrotask(O))}function w(e,t,n){try{e(t)}catch(e){console.error(`[scena.store] subscriber for "${n}" threw:`,e)}}function T(e,t,n){try{e(t,n)}catch(e){console.error(`[scena.store] wildcard subscriber threw:`,e)}}function E(e,t){let r=P(e),i=n;D(i,r,0,t,e);for(let n=0;n<r.length&&(i=i.children?.get(r[n]),i);n++)if(D(i,r,n+1,t,e),n===r.length-1&&i.subscribers)for(let n of[...i.subscribers])w(n,t,e)}function D(e,t,n,r,i){if(!e.wildSubs)return;let a=t.slice(n);for(let t of[...e.wildSubs])I(t.pattern,a)&&T(t.fn,r,i)}function O(){if(m=!1,u.size===0)return;let e=[...u.entries()];u.clear();for(let[n,{previous:r}]of e){let{hasValue:e,value:i}=y(P(n));!d.delete(n)&&Object.is(i,r)&&e||(t.emit(`scena:store:changed`,{path:n,value:i,previous:r}),E(n,i))}}function k(e,t){let n=f(P(e));d.add(n),C(n)}function A(t){if(i.has(t))return;let n=r.get(t);n&&(n.load===`lazy`||n.load===void 0)&&(i.add(t),n.provider.load(z,e.socket))}function j(e,t,n){if(n(e,t),e.children)for(let[r,i]of e.children)j(i,[...t,r],n)}function L(e){return typeof e==`object`&&!!e}function R(e,t,n){if(!L(t)&&!L(n))return;let r=h(e,!1);r?.children&&j(r,e,(e,t)=>{e!==r&&(e.subscribers&&e.subscribers.size||e.wildSubs&&e.wildSubs.length)&&C(f(t))})}let z={_internalKeys(){let e=[];return j(n,[],(t,n)=>{t.hasValue&&n.length&&e.push(f(n))}),e},get(e){let t=P(e);return t.length&&A(t[0]),y(t).value},set(e,t){let n=P(e);C(f(n));let r=y(n).value;x(n,t),R(n,r,t)},patch(e,t){let n=P(e);C(f(n));let r=y(n).value,i={...r,...t};x(n,i),R(n,r,i)},patchMany(e){for(let[t,n]of Object.entries(e)){let e=P(t);C(f(e));let r=y(e).value;x(e,n),R(e,r,n)}},delete(e){let t=P(e);C(f(t)),S(t)&&_(t)},clearNamespace(e){i.delete(e);let t=n.children?.get(e),r=a.get(e);(t||r)&&(t&&j(t,[e],(e,t)=>{((r?r.get(t.slice(1)).hasValue:e.hasValue)||e.subscribers&&e.subscribers.size)&&C(f(t))}),r?r.clear():t&&j(t,[e],e=>{e.hasValue=!1,e.value=void 0}))},subscribe(e,t){let n=P(e);if(n.length&&(A(n[0]),v(n[0])),N(e)){let e=n.indexOf(`*`),r=n.slice(0,e),i=n.slice(e),a=h(r,!0);a.wildSubs||=[];let s={pattern:i,fn:t};return a.wildSubs.push(s),o(()=>{let e=a.wildSubs;if(!e)return;let t=e.indexOf(s);t>=0&&e.splice(t,1),e.length===0&&(a.wildSubs=void 0),_(r)})}let r=h(n,!0);return r.subscribers||=new Set,r.subscribers.add(t),o(()=>{r.subscribers?.delete(t),r.subscribers&&r.subscribers.size===0&&(r.subscribers=void 0),_(n)})},subscriberCount(e){let t=n.children?.get(e);if(!t)return 0;let r=0;return j(t,[e],e=>{e.subscribers&&(r+=e.subscribers.size),e.wildSubs&&(r+=e.wildSubs.length)}),r},computed(e,t){let n=f(P(e)),r=t.from.slice();V(n,r),l.set(n,r);let i=typeof t.select==`function`?t.select:b(t.select),a=()=>{let t={};for(let e of r)t[e]=B(e);z.set(e,i(t))},s=r.map(e=>z.subscribe(e,a));return a(),o(()=>{s.forEach(e=>e.dispose()),l.delete(n)})},registerDataProvider(t){return r.set(t.namespace,t),t.load===`eager`&&(i.add(t.namespace),t.provider.load(z,e.socket)),o(()=>{i.has(t.namespace)&&(t.provider.unload?.(z,e.socket),i.delete(t.namespace)),r.delete(t.namespace)})},listDataProviders(){return[...r.values()]}};function B(e){if(p(e)){let t=P(e),n=t.indexOf(`*`),r=t.slice(0,n),i=t.slice(n),a=h(r,!1);if(!a)return[];let o=[];return j(a,r,(e,t)=>{e.hasValue&&I(i,t.slice(r.length))&&o.push(e.value)}),o}return z.get(e)}function V(e,t){let n=new Set,r=t.map(e=>f(P(e)));for(;r.length;){let t=r.pop();if(t===e)throw Error(`computed: registering "${e}" would create a dependency cycle.`);if(n.has(t))continue;n.add(t);let i=l.get(t);i&&r.push(...i.map(e=>f(P(e))))}}return z}var R=`$/local/`;function z(e,t){if(!t||!e.startsWith(R))return e;let n=e.slice(8);return n.startsWith(`${t}/`)||n===t?e:`$/local/${t}/${n}`}function B(e,t){let n=e._internalKeys?.()??[],r=`$/local/${t}/`,i=`$/local/${t}`;for(let t of n)(t===i||t.startsWith(r))&&e.delete(t)}function V(e,t,n){return e.startsWith(`/`)&&!e.startsWith(`$/`)?d(n,e):z(e,t)}function H(e,a){let o=t(),s=r(),c=n(),l=a??c,u=(0,i.useMemo)(()=>e===void 0?null:V(e,s,l),[e,s,l]);return(0,i.useSyncExternalStore)(e=>{if(u===null)return()=>void 0;let t=o.store.subscribe(u,()=>e());return()=>t.dispose()},()=>u===null?void 0:h(o.store,void 0,u),()=>void 0)}function U(){let e=t(),i=r(),a=n();return(t,n)=>{let r=V(t,i,a);e.store.set(r,n)}}export{z as a,h as c,o as d,L as i,v as l,U as n,d as o,B as r,s,H as t,a as u};
@@ -0,0 +1 @@
1
+ import{t as e}from"./useStore-BQkzWMs-.js";import{C as t}from"./index-BkzdJo_Y.js";var n=`$/__label__/empty`;function r(r,i=``,a){let o=r&&typeof r==`object`&&`path`in r?r.path:n,s=e(o,a);return typeof r==`string`?r:r?`path`in r?s??i:`t`in r?t(r.t,i):i:i}export{r as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./turn-BoF7W1h6.js";function t(e){let t=e.models.length;return t===0?`No models listed`:t===1?`1 model`:`${t} models`}function n(e){let t=[],n=e.capabilities?.multipleChats;n!==void 0&&t.push(n.fork===!0?`Several chats per session, and forks`:`Several chats per session`);let r=e.capabilities?.multipleWorkingDirectories;return r!==void 0&&t.push(r.immutablePrimary===!0?`Several folders, the first one fixed`:`Several folders`),t}function r(t){let n=[];return t.maxContextWindow!==void 0&&n.push(`${e(t.maxContextWindow)} context`),t.maxOutputTokens!==void 0&&n.push(`${e(t.maxOutputTokens)} out`),t.supportsVision===!0&&n.push(`images`),n.join(` · `)}var i={plugin:`Plugin`,directory:`Folder`,mcpServer:`MCP server`};function a(e){let t=String(e.type),n=e,r=n.state?.status,a=n.enabled,o=r===void 0?a===!1?`off`:a===!0?`on`:``:r;return{name:e.name,kind:i[t]??t,state:o}}function o(e){return(e.protectedResources??[]).map(e=>({name:e.resource_name??e.resource,scopes:(e.scopes_supported??[]).join(`, `),required:e.required===!0}))}export{o as a,t as i,a as n,r,n as t};
@@ -0,0 +1 @@
1
+ function e(){let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function t(e){let t=e.trim();return/^[a-z][a-z0-9+.-]*:/i.test(t)?t:`file://${t.split(`/`).map(encodeURIComponent).join(`/`)}`}function n(e){let t=e.replace(/\/+$/,``).split(`/`).pop()??``;try{return decodeURIComponent(t)||e}catch{return t||e}}function r(e){if(!e.startsWith(`file://`))return e;try{return decodeURIComponent(e.slice(7))}catch{return e}}function i(e){return e===void 0?``:typeof e==`string`?e:e.markdown}function a(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600)%24,a=Math.floor(t/86400);return a>0?`${a}d${i}h`:i>0?`${i}h${r}m`:r>0?`${r}m${n}s`:`${n}s`}export{e as a,t as i,r as n,i as o,n as r,a as t};
@@ -0,0 +1,54 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <link rel="icon" type="image/svg+xml" href="./ahpw.svg" />
7
+ <title>ahpw</title>
8
+ <style>:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--boot-bg:#fff;--boot-muted:#6b7280}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--boot-bg:#020617;--boot-muted:#94a3b8}}html,body{background:var(--boot-bg);height:100%;margin:0}.boot-loading{background:var(--boot-bg);opacity:0;justify-content:center;align-items:center;animation:.35s ease-out .25s forwards boot-in;display:flex;position:fixed;inset:0}.boot-mark{display:block;overflow:visible}.boot-echo{transform-box:view-box;transform-origin:32px 32px;opacity:0;animation:1.5s cubic-bezier(.25,.6,.3,1) infinite boot-echo}.boot-echo--second{animation-delay:.5s}.boot-echo--third{animation-delay:1s}@keyframes boot-echo{0%{opacity:.6;transform:scale(1)}75%{opacity:0}to{opacity:0;transform:scale(1.95)}}@keyframes boot-in{to{opacity:1}}.boot-noscript{color:var(--boot-muted);text-align:center;padding:40px 20px;font:14px/1.5 system-ui,sans-serif}@media (prefers-reduced-motion:reduce){.boot-loading{opacity:1;animation:none}.boot-echo{animation:none}}</style>
9
+ <script type="module" crossorigin src="./assets/index-BkzdJo_Y.js"></script>
10
+ <link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BguD1OXD.js">
11
+ <link rel="modulepreload" crossorigin href="./assets/react-CybPckBe.js">
12
+ <link rel="modulepreload" crossorigin href="./assets/ScenaProvider-6A3TJumQ.js">
13
+ <link rel="modulepreload" crossorigin href="./assets/mount-context-DZgEFVFG.js">
14
+ <link rel="modulepreload" crossorigin href="./assets/useStore-BQkzWMs-.js">
15
+ <link rel="modulepreload" crossorigin href="./assets/styles-yrzHRgom.js">
16
+ <link rel="modulepreload" crossorigin href="./assets/_utils-DZVsX11M.js">
17
+ <link rel="modulepreload" crossorigin href="./assets/Button-_R1oktDz.js">
18
+ <link rel="modulepreload" crossorigin href="./assets/data-Fkj0LNnG.js">
19
+ <link rel="modulepreload" crossorigin href="./assets/emojis-BOylxma2.js">
20
+ <link rel="modulepreload" crossorigin href="./assets/colors-BieSUSt7.js">
21
+ <link rel="modulepreload" crossorigin href="./assets/ActionList-aOUHK9Z9.js">
22
+ <link rel="modulepreload" crossorigin href="./assets/terminal-kD0C2LuZ.js">
23
+ <link rel="modulepreload" crossorigin href="./assets/notify-Bb548jAB.js">
24
+ <link rel="modulepreload" crossorigin href="./assets/surface-presentation-CT86pw6J.js">
25
+ <link rel="modulepreload" crossorigin href="./assets/preload-helper-BaNbYf_w.js">
26
+ <link rel="modulepreload" crossorigin href="./assets/sigillum-Bev0l9LS.js">
27
+ <link rel="modulepreload" crossorigin href="./assets/words-BknpHIF3.js">
28
+ <link rel="modulepreload" crossorigin href="./assets/composer-commands-Bpp7NX4E.js">
29
+ <link rel="modulepreload" crossorigin href="./assets/state-KGSq646f.js">
30
+ <link rel="modulepreload" crossorigin href="./assets/sessions-CEccRVtA.js">
31
+ <link rel="modulepreload" crossorigin href="./assets/state-DRVsnGrf.js">
32
+ <link rel="stylesheet" crossorigin href="./assets/Button-CRZ1_3KW.css">
33
+ <link rel="stylesheet" crossorigin href="./assets/ActionList-Bawu-Lja.css">
34
+ <link rel="stylesheet" crossorigin href="./assets/index-CPXMK2aI.css">
35
+ </head>
36
+ <body>
37
+ <div id="root">
38
+ <div class="boot-loading" role="status" aria-label="Loading ahpw">
39
+ <svg class="boot-mark" width="72" height="72" viewBox="0 0 64 64" aria-hidden="true">
40
+ <path class="boot-echo" fill="#62c9b0" d="M29.84 8 L34.16 8 L47.62 52 L38.4 52 L32 31.06 L25.6 52 L16.38 52 Z" />
41
+ <path class="boot-echo boot-echo--second" fill="#62c9b0" d="M29.84 8 L34.16 8 L47.62 52 L38.4 52 L32 31.06 L25.6 52 L16.38 52 Z" />
42
+ <path class="boot-echo boot-echo--third" fill="#62c9b0" d="M29.84 8 L34.16 8 L47.62 52 L38.4 52 L32 31.06 L25.6 52 L16.38 52 Z" />
43
+ <rect x="26" y="43" width="12" height="4.4" fill="#356b5e" />
44
+ <path fill="#356b5e" d="M5.38 18 L14.62 18 L20.88 37.34 L16.38 52 Z" />
45
+ <path fill="#356b5e" d="M58.62 18 L49.38 18 L43.12 37.34 L47.62 52 Z" />
46
+ <path fill="#62c9b0" d="M29.84 8 L34.16 8 L47.62 52 L38.4 52 L32 31.06 L25.6 52 L16.38 52 Z" />
47
+ </svg>
48
+ </div>
49
+ <noscript>
50
+ <p class="boot-noscript">ahpw needs JavaScript to run.</p>
51
+ </noscript>
52
+ </div>
53
+ </body>
54
+ </html>
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync } from 'node:fs';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { createRegistry } from '@cofold/commands';
5
+ import { configGlobal } from '@cofold/config';
6
+ import { Program, runEntry } from '@cofold/terminal';
7
+ import { declareServe } from './serve.js';
8
+ /** The built page, beside this file in the package. */
9
+ const APP = fileURLToPath(new URL('../app/', import.meta.url));
10
+ const { version } = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'));
11
+ const registry = createRegistry();
12
+ declareServe(registry, APP);
13
+ const program = new Program({
14
+ name: 'ahpw',
15
+ version,
16
+ description: 'A web UI for an AHP server',
17
+ registry,
18
+ globals: [configGlobal],
19
+ });
20
+ await runEntry(program, process.argv.slice(2));
21
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../cli/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,uDAAuD;AACvD,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;AAE5H,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;AAClC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAE5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM;IACZ,OAAO;IACP,WAAW,EAAE,4BAA4B;IACzC,QAAQ;IACR,OAAO,EAAE,CAAC,YAAY,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { connect as connectTcp, isIP } from 'node:net';
2
+ import { connect as connectTls } from 'node:tls';
3
+ /** The path the page opens its socket on, as it does when the daemon serves it. */
4
+ export const SOCKET_PATH = '/';
5
+ /** The handshake headers a socket needs upstream. Cookies and the rest stay here. */
6
+ const HANDSHAKE = ['upgrade', 'connection', 'sec-websocket-key', 'sec-websocket-version', 'sec-websocket-protocol', 'sec-websocket-extensions', 'user-agent'];
7
+ /** Whether `hostname` cannot be a name somebody else's DNS points here: loopback, or an address. */
8
+ function addressed(hostname) {
9
+ const bare = hostname.replace(/^\[|\]$/g, '');
10
+ return bare === 'localhost' || isIP(bare) !== 0;
11
+ }
12
+ /**
13
+ * Whether a socket comes from a page this server sent.
14
+ *
15
+ * The `Origin` must be this server as the browser reached it, and that must be
16
+ * an address or `localhost`, so a page on another name that resolves here
17
+ * cannot open the socket. A request with no `Origin` is not from a page and is
18
+ * refused too.
19
+ */
20
+ export function originAllowed(origin, host) {
21
+ if (origin === undefined || host === undefined)
22
+ return false;
23
+ if (origin !== `http://${host}`)
24
+ return false;
25
+ try {
26
+ return addressed(new URL(origin).hostname);
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ }
32
+ /**
33
+ * The path and query the daemon is asked for.
34
+ *
35
+ * The upstream's own path and query, then the browser's query without `tkn`.
36
+ * With a token, it is added as `tkn`; without one, the browser's `tkn` is
37
+ * passed on, because then the page signed in itself.
38
+ */
39
+ export function upstreamPath(upstream, requested, token) {
40
+ const query = new URLSearchParams(upstream.search);
41
+ const asked = new URL(requested, 'http://page').searchParams;
42
+ for (const [key, value] of asked)
43
+ if (key !== 'tkn')
44
+ query.append(key, value);
45
+ const tkn = token ?? asked.get('tkn') ?? undefined;
46
+ if (tkn !== undefined)
47
+ query.set('tkn', tkn);
48
+ const search = query.toString();
49
+ return `${upstream.pathname === '' ? '/' : upstream.pathname}${search === '' ? '' : `?${search}`}`;
50
+ }
51
+ const refuse = (socket, status) => {
52
+ socket.end(`HTTP/1.1 ${status}\r\nconnection: close\r\ncontent-length: 0\r\n\r\n`);
53
+ };
54
+ /**
55
+ * An `upgrade` listener that carries the page's socket to the daemon.
56
+ *
57
+ * The handshake is written upstream with the token in it, and from there the
58
+ * two sockets are piped: the daemon's `101` and every frame after it pass
59
+ * through unread.
60
+ */
61
+ export function socketProxy(upstream, token) {
62
+ const secure = upstream.protocol === 'wss:';
63
+ const port = Number(upstream.port === '' ? (secure ? 443 : 80) : upstream.port);
64
+ const hostname = upstream.hostname.replace(/^\[|\]$/g, '');
65
+ return (request, socket, head) => {
66
+ const url = request.url ?? '/';
67
+ if (new URL(url, 'http://page').pathname !== SOCKET_PATH)
68
+ return refuse(socket, '404 Not Found');
69
+ if (!originAllowed(request.headers.origin, request.headers.host))
70
+ return refuse(socket, '403 Forbidden');
71
+ const lines = [`GET ${upstreamPath(upstream, url, token)} HTTP/1.1`, `host: ${upstream.host}`];
72
+ for (const name of HANDSHAKE) {
73
+ const value = request.headers[name];
74
+ if (typeof value === 'string')
75
+ lines.push(`${name}: ${value}`);
76
+ }
77
+ const daemon = secure
78
+ ? connectTls({ host: hostname, port, servername: isIP(hostname) === 0 ? hostname : undefined })
79
+ : connectTcp({ host: hostname, port });
80
+ let piped = false;
81
+ daemon.once(secure ? 'secureConnect' : 'connect', () => {
82
+ piped = true;
83
+ daemon.write(`${lines.join('\r\n')}\r\n\r\n`);
84
+ if (head.length > 0)
85
+ daemon.write(head);
86
+ daemon.pipe(socket);
87
+ socket.pipe(daemon);
88
+ });
89
+ daemon.on('error', () => {
90
+ if (piped)
91
+ socket.destroy();
92
+ else
93
+ refuse(socket, '502 Bad Gateway');
94
+ });
95
+ socket.on('error', () => daemon.destroy());
96
+ socket.on('close', () => daemon.destroy());
97
+ daemon.on('close', () => { if (piped)
98
+ socket.destroy(); });
99
+ };
100
+ }
101
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../cli/proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,IAAI,EAAe,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AAGjD,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,qFAAqF;AACrF,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,YAAY,CAAC,CAAC;AAE9J,oGAAoG;AACpG,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC9C,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,MAA0B,EAAE,IAAwB;IAChF,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,MAAM,KAAK,UAAU,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,QAAa,EAAE,SAAiB,EAAE,KAAyB;IACtF,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC;IAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK;QAAE,IAAI,GAAG,KAAK,KAAK;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;IACnD,IAAI,GAAG,KAAK,SAAS;QAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChC,OAAO,GAAG,QAAQ,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;AACrG,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,MAAc,EAAQ,EAAE;IACtD,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,oDAAoD,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,QAAa,EAAE,KAAyB;IAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;QAC/B,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,QAAQ,KAAK,WAAW;YAAE,OAAO,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACjG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEzG,MAAM,KAAK,GAAG,CAAC,OAAO,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/F,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,MAAM,GAAW,MAAM;YAC3B,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC/F,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE;YACrD,KAAK,GAAG,IAAI,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,KAAK;gBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;;gBACvB,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,KAAK;YAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC"}