@openpalm/ui 0.13.0-beta.4 → 0.13.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/{4.BXlLAfIE.css → 4.B2m7mOkq.css} +1 -1
  3. package/build/client/_app/immutable/assets/4.B2m7mOkq.css.br +0 -0
  4. package/build/client/_app/immutable/assets/4.B2m7mOkq.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/6.CmRPKjbq.css +1 -0
  6. package/build/client/_app/immutable/assets/6.CmRPKjbq.css.br +0 -0
  7. package/build/client/_app/immutable/assets/6.CmRPKjbq.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/7.BTWb8aLW.css +1 -0
  9. package/build/client/_app/immutable/assets/7.BTWb8aLW.css.br +0 -0
  10. package/build/client/_app/immutable/assets/7.BTWb8aLW.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/9.D8zTZB7v.css +1 -0
  12. package/build/client/_app/immutable/assets/9.D8zTZB7v.css.br +0 -0
  13. package/build/client/_app/immutable/assets/9.D8zTZB7v.css.gz +0 -0
  14. package/build/client/_app/immutable/chunks/BX_cLEyR.js +1 -0
  15. package/build/client/_app/immutable/chunks/BX_cLEyR.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BX_cLEyR.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{CBV2kBE1.js → ByFgZDEl.js} +1 -1
  18. package/build/client/_app/immutable/chunks/ByFgZDEl.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/ByFgZDEl.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/Cnz20Kyu.js +3 -0
  21. package/build/client/_app/immutable/chunks/Cnz20Kyu.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/Cnz20Kyu.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{BNJvGRjX.js → CoOosFtk.js} +2 -2
  24. package/build/client/_app/immutable/chunks/CoOosFtk.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/CoOosFtk.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{C5iiO0W9.js → DBaSfL95.js} +1 -1
  27. package/build/client/_app/immutable/chunks/DBaSfL95.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/DBaSfL95.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/ra5AJhOl.js +1 -0
  30. package/build/client/_app/immutable/chunks/ra5AJhOl.js.br +2 -0
  31. package/build/client/_app/immutable/chunks/ra5AJhOl.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/{app.DAzfwrA7.js → app.SHrJgM4c.js} +2 -2
  33. package/build/client/_app/immutable/entry/app.SHrJgM4c.js.br +0 -0
  34. package/build/client/_app/immutable/entry/app.SHrJgM4c.js.gz +0 -0
  35. package/build/client/_app/immutable/entry/start.CM0OuHkF.js +1 -0
  36. package/build/client/_app/immutable/entry/start.CM0OuHkF.js.br +0 -0
  37. package/build/client/_app/immutable/entry/start.CM0OuHkF.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{1.BYTQ4CJf.js → 1.BRotfm1G.js} +1 -1
  39. package/build/client/_app/immutable/nodes/1.BRotfm1G.js.br +2 -0
  40. package/build/client/_app/immutable/nodes/1.BRotfm1G.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{10.CHYaVWP2.js → 10.CtHRQW64.js} +1 -1
  42. package/build/client/_app/immutable/nodes/10.CtHRQW64.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/10.CtHRQW64.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{11.DXwuRFxA.js → 11.DViPDhJG.js} +1 -1
  45. package/build/client/_app/immutable/nodes/11.DViPDhJG.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/11.DViPDhJG.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js +6 -0
  48. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/{5.DgnQcqeL.js → 5.CIMkqYzP.js} +1 -1
  51. package/build/client/_app/immutable/nodes/5.CIMkqYzP.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/5.CIMkqYzP.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js +2 -0
  54. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js +14 -0
  57. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/9.zlIImD-K.js +128 -0
  60. package/build/client/_app/immutable/nodes/9.zlIImD-K.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/9.zlIImD-K.js.gz +0 -0
  62. package/build/client/_app/version.json +1 -1
  63. package/build/client/_app/version.json.br +1 -1
  64. package/build/client/_app/version.json.gz +0 -0
  65. package/build/server/chunks/{0-CxqNryz-.js → 0-BtezztJz.js} +5 -4
  66. package/build/server/chunks/{0-CxqNryz-.js.map → 0-BtezztJz.js.map} +1 -1
  67. package/build/server/chunks/1-CvGA_TOi.js +9 -0
  68. package/build/server/chunks/{1-Dxk_eEPL.js.map → 1-CvGA_TOi.js.map} +1 -1
  69. package/build/server/chunks/{10-DcTjX0aZ.js → 10-D_ipl62-.js} +3 -3
  70. package/build/server/chunks/{10-DcTjX0aZ.js.map → 10-D_ipl62-.js.map} +1 -1
  71. package/build/server/chunks/{11-Ddav4pvQ.js → 11-Bp7zXIv8.js} +3 -3
  72. package/build/server/chunks/{11-Ddav4pvQ.js.map → 11-Bp7zXIv8.js.map} +1 -1
  73. package/build/server/chunks/{3-xtalXCwW.js → 3-CZdWulB3.js} +7 -6
  74. package/build/server/chunks/{3-xtalXCwW.js.map → 3-CZdWulB3.js.map} +1 -1
  75. package/build/server/chunks/4-4bobZFC9.js +9 -0
  76. package/build/server/chunks/{4-CEASlyNx.js.map → 4-4bobZFC9.js.map} +1 -1
  77. package/build/server/chunks/{5-3gkFDIAU.js → 5-CeJvfCdk.js} +3 -3
  78. package/build/server/chunks/{5-3gkFDIAU.js.map → 5-CeJvfCdk.js.map} +1 -1
  79. package/build/server/chunks/{6-BSR29JnK.js → 6-sGxxEzTB.js} +4 -4
  80. package/build/server/chunks/{6-BSR29JnK.js.map → 6-sGxxEzTB.js.map} +1 -1
  81. package/build/server/chunks/{7-gx5m5R1u.js → 7-mi0k2tJn.js} +4 -4
  82. package/build/server/chunks/{7-gx5m5R1u.js.map → 7-mi0k2tJn.js.map} +1 -1
  83. package/build/server/chunks/9-DB22e_yA.js +9 -0
  84. package/build/server/chunks/9-DB22e_yA.js.map +1 -0
  85. package/build/server/chunks/{ChatNavbar-D2J3UbpW.js → ChatNavbar-FJW5r496.js} +9 -10
  86. package/build/server/chunks/ChatNavbar-FJW5r496.js.map +1 -0
  87. package/build/server/chunks/{IconServer-jRvjNs7I.js → IconServer-w-1K5jNR.js} +4 -4
  88. package/build/server/chunks/{IconServer-jRvjNs7I.js.map → IconServer-w-1K5jNR.js.map} +1 -1
  89. package/build/server/chunks/{IconSoundOn-DHtvjphK.js → IconSoundOn-DZGaQz_p.js} +18 -13
  90. package/build/server/chunks/IconSoundOn-DZGaQz_p.js.map +1 -0
  91. package/build/server/chunks/{IconStop-C89_dmt4.js → IconStop-BPbovgch.js} +2 -2
  92. package/build/server/chunks/{IconStop-C89_dmt4.js.map → IconStop-BPbovgch.js.map} +1 -1
  93. package/build/server/chunks/{_layout.svelte-BLxvGwKC.js → _layout.svelte-B-_IlE2E.js} +2 -2
  94. package/build/server/chunks/{_layout.svelte-BLxvGwKC.js.map → _layout.svelte-B-_IlE2E.js.map} +1 -1
  95. package/build/server/chunks/{_page.svelte--qXsMm-T.js → _page.svelte-CB1qUSpk.js} +16 -16
  96. package/build/server/chunks/_page.svelte-CB1qUSpk.js.map +1 -0
  97. package/build/server/chunks/{_page.svelte-DGQP3UIP.js → _page.svelte-CPZBh4-z.js} +3 -3
  98. package/build/server/chunks/{_page.svelte-DGQP3UIP.js.map → _page.svelte-CPZBh4-z.js.map} +1 -1
  99. package/build/server/chunks/{_page.svelte-BnZ0Fgkw.js → _page.svelte-CPo3vFZf.js} +17 -43
  100. package/build/server/chunks/_page.svelte-CPo3vFZf.js.map +1 -0
  101. package/build/server/chunks/{_page.svelte-BgzOKhmH.js → _page.svelte-DM96lwQ1.js} +3 -3
  102. package/build/server/chunks/{_page.svelte-BgzOKhmH.js.map → _page.svelte-DM96lwQ1.js.map} +1 -1
  103. package/build/server/chunks/_page.svelte-F3gki1Uz.js +155 -0
  104. package/build/server/chunks/_page.svelte-F3gki1Uz.js.map +1 -0
  105. package/build/server/chunks/{_page.svelte-C36XsgXY.js → _page.svelte-GcuuPiXq.js} +3 -3
  106. package/build/server/chunks/{_page.svelte-C36XsgXY.js.map → _page.svelte-GcuuPiXq.js.map} +1 -1
  107. package/build/server/chunks/{_page.svelte-DGsMxwfZ.js → _page.svelte-K6kU7jIW.js} +64 -80
  108. package/build/server/chunks/_page.svelte-K6kU7jIW.js.map +1 -0
  109. package/build/server/chunks/{_server.ts-sdkTYy6A.js → _server.ts-513m4Yqs.js} +15 -14
  110. package/build/server/chunks/_server.ts-513m4Yqs.js.map +1 -0
  111. package/build/server/chunks/{_server.ts-BWcxJLLV.js → _server.ts-6QSsgi7N.js} +7 -6
  112. package/build/server/chunks/{_server.ts-BWcxJLLV.js.map → _server.ts-6QSsgi7N.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-Co4yATq8.js → _server.ts-B2BUFCOJ.js} +3 -2
  114. package/build/server/chunks/{_server.ts-Co4yATq8.js.map → _server.ts-B2BUFCOJ.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-CsP1RzbQ.js → _server.ts-B5wBYGeP.js} +7 -6
  116. package/build/server/chunks/_server.ts-B5wBYGeP.js.map +1 -0
  117. package/build/server/chunks/{_server.ts-CPYtZ7sE.js → _server.ts-BCrEvrVb.js} +27 -23
  118. package/build/server/chunks/_server.ts-BCrEvrVb.js.map +1 -0
  119. package/build/server/chunks/_server.ts-BFRCkpIB.js +83 -0
  120. package/build/server/chunks/_server.ts-BFRCkpIB.js.map +1 -0
  121. package/build/server/chunks/{_server.ts-CMO7LL0e.js → _server.ts-BJGOO9Nn.js} +3 -2
  122. package/build/server/chunks/_server.ts-BJGOO9Nn.js.map +1 -0
  123. package/build/server/chunks/{_server.ts-Ey4BEvRd.js → _server.ts-BLXzfOzW.js} +7 -6
  124. package/build/server/chunks/{_server.ts-Ey4BEvRd.js.map → _server.ts-BLXzfOzW.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-Bm2nv-W4.js → _server.ts-BNOepqUw.js} +7 -6
  126. package/build/server/chunks/{_server.ts-Bm2nv-W4.js.map → _server.ts-BNOepqUw.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-CS8n28qm.js → _server.ts-BQZ6mdSh.js} +7 -6
  128. package/build/server/chunks/{_server.ts-CS8n28qm.js.map → _server.ts-BQZ6mdSh.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-B3MvWwzq.js → _server.ts-BQdhHsGb.js} +8 -7
  130. package/build/server/chunks/{_server.ts-B3MvWwzq.js.map → _server.ts-BQdhHsGb.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-SxcH-cms.js → _server.ts-BXPj75Y1.js} +8 -7
  132. package/build/server/chunks/{_server.ts-SxcH-cms.js.map → _server.ts-BXPj75Y1.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-DjAGbGD-.js → _server.ts-B_dmjFtu.js} +7 -6
  134. package/build/server/chunks/_server.ts-B_dmjFtu.js.map +1 -0
  135. package/build/server/chunks/{_server.ts-C31rtz7B.js → _server.ts-BaVwMXGu.js} +7 -6
  136. package/build/server/chunks/{_server.ts-C31rtz7B.js.map → _server.ts-BaVwMXGu.js.map} +1 -1
  137. package/build/server/chunks/_server.ts-BcO0Zf4D.js +73 -0
  138. package/build/server/chunks/_server.ts-BcO0Zf4D.js.map +1 -0
  139. package/build/server/chunks/{_server.ts-B_c9x_NC.js → _server.ts-BcqSTHN5.js} +8 -7
  140. package/build/server/chunks/{_server.ts-B_c9x_NC.js.map → _server.ts-BcqSTHN5.js.map} +1 -1
  141. package/build/server/chunks/{_server.ts-D2-CHx_d.js → _server.ts-BfL_49xD.js} +8 -7
  142. package/build/server/chunks/{_server.ts-D2-CHx_d.js.map → _server.ts-BfL_49xD.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-C2qIUpva.js → _server.ts-Blmg0cXL.js} +8 -7
  144. package/build/server/chunks/{_server.ts-C2qIUpva.js.map → _server.ts-Blmg0cXL.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-Cm3uzCwu.js → _server.ts-BmRwgrKB.js} +8 -7
  146. package/build/server/chunks/{_server.ts-Cm3uzCwu.js.map → _server.ts-BmRwgrKB.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-DuOVzmV5.js → _server.ts-Bnzq20kw.js} +7 -6
  148. package/build/server/chunks/{_server.ts-DuOVzmV5.js.map → _server.ts-Bnzq20kw.js.map} +1 -1
  149. package/build/server/chunks/{_server.ts-DD4ouya8.js → _server.ts-BrQJNRtC.js} +7 -6
  150. package/build/server/chunks/{_server.ts-DD4ouya8.js.map → _server.ts-BrQJNRtC.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-LHKCcBS1.js → _server.ts-Bvb9c_At.js} +9 -8
  152. package/build/server/chunks/{_server.ts-LHKCcBS1.js.map → _server.ts-Bvb9c_At.js.map} +1 -1
  153. package/build/server/chunks/{_server.ts-Kp3wrrbF.js → _server.ts-BvtdTKYv.js} +8 -7
  154. package/build/server/chunks/{_server.ts-Kp3wrrbF.js.map → _server.ts-BvtdTKYv.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-V6a8P9IB.js → _server.ts-Bwt_pOeg.js} +7 -6
  156. package/build/server/chunks/{_server.ts-V6a8P9IB.js.map → _server.ts-Bwt_pOeg.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-CR85H0KR.js → _server.ts-C4Pel5kC.js} +7 -6
  158. package/build/server/chunks/_server.ts-C4Pel5kC.js.map +1 -0
  159. package/build/server/chunks/{_server.ts-CWYonOeQ.js → _server.ts-CFrPK6QO.js} +7 -6
  160. package/build/server/chunks/{_server.ts-CWYonOeQ.js.map → _server.ts-CFrPK6QO.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-CRvbt_Ny.js → _server.ts-CGTCLl7g.js} +8 -7
  162. package/build/server/chunks/{_server.ts-CRvbt_Ny.js.map → _server.ts-CGTCLl7g.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-Bvb6lo7O.js → _server.ts-CMOAhXEC.js} +9 -8
  164. package/build/server/chunks/{_server.ts-Bvb6lo7O.js.map → _server.ts-CMOAhXEC.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-CiBxLSg4.js → _server.ts-CPNIDSmd.js} +7 -6
  166. package/build/server/chunks/{_server.ts-CiBxLSg4.js.map → _server.ts-CPNIDSmd.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-KHK30kUK.js → _server.ts-CPiybiLB.js} +10 -9
  168. package/build/server/chunks/{_server.ts-KHK30kUK.js.map → _server.ts-CPiybiLB.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-BNoq5yoF.js → _server.ts-CT0jVfA6.js} +58 -56
  170. package/build/server/chunks/_server.ts-CT0jVfA6.js.map +1 -0
  171. package/build/server/chunks/{_server.ts-D8iJaYan.js → _server.ts-CU4SIH7_.js} +5 -4
  172. package/build/server/chunks/{_server.ts-D8iJaYan.js.map → _server.ts-CU4SIH7_.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-B-9mLZog.js → _server.ts-CVvUFmDd.js} +7 -6
  174. package/build/server/chunks/{_server.ts-B-9mLZog.js.map → _server.ts-CVvUFmDd.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-BrwSj7L5.js → _server.ts-CZ3VVtAj.js} +7 -6
  176. package/build/server/chunks/{_server.ts-BrwSj7L5.js.map → _server.ts-CZ3VVtAj.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-qgPpNGL8.js → _server.ts-CZMdC1Kd.js} +7 -6
  178. package/build/server/chunks/{_server.ts-qgPpNGL8.js.map → _server.ts-CZMdC1Kd.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-DM8N7von.js → _server.ts-CfLVH8TI.js} +7 -6
  180. package/build/server/chunks/{_server.ts-DM8N7von.js.map → _server.ts-CfLVH8TI.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-0T6OWJc0.js → _server.ts-Cf_ZLxIl.js} +7 -6
  182. package/build/server/chunks/{_server.ts-0T6OWJc0.js.map → _server.ts-Cf_ZLxIl.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-DPfGAMG4.js → _server.ts-Cgdl0C1I.js} +7 -6
  184. package/build/server/chunks/{_server.ts-DPfGAMG4.js.map → _server.ts-Cgdl0C1I.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-BK4NRqMj.js → _server.ts-CixURe5F.js} +8 -7
  186. package/build/server/chunks/{_server.ts-BK4NRqMj.js.map → _server.ts-CixURe5F.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-BbyfVT-W.js → _server.ts-CjfZfEOL.js} +7 -6
  188. package/build/server/chunks/{_server.ts-BbyfVT-W.js.map → _server.ts-CjfZfEOL.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-D3skirMd.js → _server.ts-CoVlX74M.js} +8 -7
  190. package/build/server/chunks/{_server.ts-D3skirMd.js.map → _server.ts-CoVlX74M.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-eov7yZvT.js → _server.ts-Cp8YnPjm.js} +9 -8
  192. package/build/server/chunks/{_server.ts-eov7yZvT.js.map → _server.ts-Cp8YnPjm.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-C6r0d7SR.js → _server.ts-CqK78x99.js} +19 -13
  194. package/build/server/chunks/_server.ts-CqK78x99.js.map +1 -0
  195. package/build/server/chunks/{_server.ts-MZYYoM8z.js → _server.ts-CsI99fk3.js} +15 -14
  196. package/build/server/chunks/_server.ts-CsI99fk3.js.map +1 -0
  197. package/build/server/chunks/{_server.ts-p4v6noBK.js → _server.ts-CtGn47WI.js} +5 -4
  198. package/build/server/chunks/{_server.ts-p4v6noBK.js.map → _server.ts-CtGn47WI.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-DHjMyNwJ.js → _server.ts-CuLEqJd2.js} +10 -15
  200. package/build/server/chunks/_server.ts-CuLEqJd2.js.map +1 -0
  201. package/build/server/chunks/{_server.ts-BRvNe0fS.js → _server.ts-CvkF5YMt.js} +7 -6
  202. package/build/server/chunks/{_server.ts-BRvNe0fS.js.map → _server.ts-CvkF5YMt.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-B64JQevs.js → _server.ts-CyIO3STA.js} +8 -7
  204. package/build/server/chunks/{_server.ts-B64JQevs.js.map → _server.ts-CyIO3STA.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-BJqxSP1B.js → _server.ts-CzEoO4z1.js} +3 -2
  206. package/build/server/chunks/_server.ts-CzEoO4z1.js.map +1 -0
  207. package/build/server/chunks/{_server.ts-DebCCwjH.js → _server.ts-CzIZ-UYy.js} +7 -6
  208. package/build/server/chunks/{_server.ts-DebCCwjH.js.map → _server.ts-CzIZ-UYy.js.map} +1 -1
  209. package/build/server/chunks/_server.ts-D3CUgai-.js +82 -0
  210. package/build/server/chunks/_server.ts-D3CUgai-.js.map +1 -0
  211. package/build/server/chunks/{_server.ts-zDEENUSw.js → _server.ts-D3EHXo-L.js} +7 -6
  212. package/build/server/chunks/{_server.ts-zDEENUSw.js.map → _server.ts-D3EHXo-L.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-CCdP5Eqx.js → _server.ts-D3FpBEaY.js} +7 -6
  214. package/build/server/chunks/{_server.ts-CCdP5Eqx.js.map → _server.ts-D3FpBEaY.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-Sx6mXrwK.js → _server.ts-D3G8ICxb.js} +7 -6
  216. package/build/server/chunks/{_server.ts-Sx6mXrwK.js.map → _server.ts-D3G8ICxb.js.map} +1 -1
  217. package/build/server/chunks/_server.ts-DMUseo0C.js +110 -0
  218. package/build/server/chunks/_server.ts-DMUseo0C.js.map +1 -0
  219. package/build/server/chunks/{_server.ts-yWyCj-R5.js → _server.ts-DVNN4NHW.js} +7 -6
  220. package/build/server/chunks/{_server.ts-yWyCj-R5.js.map → _server.ts-DVNN4NHW.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-Bl1EtTKF.js → _server.ts-DZrKSBmK.js} +7 -6
  222. package/build/server/chunks/{_server.ts-Bl1EtTKF.js.map → _server.ts-DZrKSBmK.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-C6GZY_v3.js → _server.ts-DbWhKo2R.js} +7 -6
  224. package/build/server/chunks/_server.ts-DbWhKo2R.js.map +1 -0
  225. package/build/server/chunks/{_server.ts-eF4CAfpP.js → _server.ts-DbvC6vbj.js} +7 -6
  226. package/build/server/chunks/{_server.ts-eF4CAfpP.js.map → _server.ts-DbvC6vbj.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-CDJ7WouZ.js → _server.ts-Df7bUUvM.js} +10 -9
  228. package/build/server/chunks/_server.ts-Df7bUUvM.js.map +1 -0
  229. package/build/server/chunks/{_server.ts-DNVQMHzn.js → _server.ts-DgoPOMEf.js} +7 -6
  230. package/build/server/chunks/{_server.ts-DNVQMHzn.js.map → _server.ts-DgoPOMEf.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-DrxBKPKB.js → _server.ts-DgtgUx0V.js} +3 -2
  232. package/build/server/chunks/_server.ts-DgtgUx0V.js.map +1 -0
  233. package/build/server/chunks/{_server.ts-CtcAZ3lM.js → _server.ts-Dim_lnRX.js} +8 -7
  234. package/build/server/chunks/{_server.ts-CtcAZ3lM.js.map → _server.ts-Dim_lnRX.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-BEhHNijd.js → _server.ts-Dixj3o5E.js} +7 -6
  236. package/build/server/chunks/{_server.ts-BEhHNijd.js.map → _server.ts-Dixj3o5E.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-BvOQbLFG.js → _server.ts-DjIJCqkv.js} +7 -6
  238. package/build/server/chunks/{_server.ts-BvOQbLFG.js.map → _server.ts-DjIJCqkv.js.map} +1 -1
  239. package/build/server/chunks/{_server.ts-D_93w1gb.js → _server.ts-DnonNBWq.js} +29 -9
  240. package/build/server/chunks/_server.ts-DnonNBWq.js.map +1 -0
  241. package/build/server/chunks/{_server.ts-C0rcwOPL.js → _server.ts-Do0cbyyq.js} +7 -6
  242. package/build/server/chunks/{_server.ts-C0rcwOPL.js.map → _server.ts-Do0cbyyq.js.map} +1 -1
  243. package/build/server/chunks/{_server.ts-p16c9Uzl.js → _server.ts-DpnNS7XE.js} +7 -6
  244. package/build/server/chunks/{_server.ts-p16c9Uzl.js.map → _server.ts-DpnNS7XE.js.map} +1 -1
  245. package/build/server/chunks/{_server.ts-D-Vv5Qkp.js → _server.ts-Dw7F066C.js} +7 -6
  246. package/build/server/chunks/{_server.ts-D-Vv5Qkp.js.map → _server.ts-Dw7F066C.js.map} +1 -1
  247. package/build/server/chunks/{_server.ts-4NsYfdU1.js → _server.ts-DwGTXfsS.js} +3 -2
  248. package/build/server/chunks/{_server.ts-4NsYfdU1.js.map → _server.ts-DwGTXfsS.js.map} +1 -1
  249. package/build/server/chunks/{_server.ts-CGE7AyDg.js → _server.ts-Dy7MOoFx.js} +25 -21
  250. package/build/server/chunks/_server.ts-Dy7MOoFx.js.map +1 -0
  251. package/build/server/chunks/{_server.ts-DObIzyoT.js → _server.ts-HHMqD_RA.js} +4 -3
  252. package/build/server/chunks/{_server.ts-DObIzyoT.js.map → _server.ts-HHMqD_RA.js.map} +1 -1
  253. package/build/server/chunks/{_server.ts-XEVuthfs.js → _server.ts-JhxhiGGc.js} +7 -6
  254. package/build/server/chunks/{_server.ts-XEVuthfs.js.map → _server.ts-JhxhiGGc.js.map} +1 -1
  255. package/build/server/chunks/{_server.ts-CFNNoZVF.js → _server.ts-MBgNxLF2.js} +7 -6
  256. package/build/server/chunks/{_server.ts-CFNNoZVF.js.map → _server.ts-MBgNxLF2.js.map} +1 -1
  257. package/build/server/chunks/{_server.ts-D0EyuOqv.js → _server.ts-V-MiUhz4.js} +7 -6
  258. package/build/server/chunks/{_server.ts-D0EyuOqv.js.map → _server.ts-V-MiUhz4.js.map} +1 -1
  259. package/build/server/chunks/{_server.ts-CIReEz3d.js → _server.ts-WLMG4R7D.js} +7 -6
  260. package/build/server/chunks/{_server.ts-CIReEz3d.js.map → _server.ts-WLMG4R7D.js.map} +1 -1
  261. package/build/server/chunks/{_server.ts-BuGFzejC.js → _server.ts-WZl_x3WY.js} +7 -6
  262. package/build/server/chunks/{_server.ts-BuGFzejC.js.map → _server.ts-WZl_x3WY.js.map} +1 -1
  263. package/build/server/chunks/{_server.ts-C900vqOm.js → _server.ts-YcvtqJwd.js} +25 -17
  264. package/build/server/chunks/_server.ts-YcvtqJwd.js.map +1 -0
  265. package/build/server/chunks/{_server.ts-Cfm_KDhO.js → _server.ts-iFah_o1y.js} +7 -6
  266. package/build/server/chunks/{_server.ts-Cfm_KDhO.js.map → _server.ts-iFah_o1y.js.map} +1 -1
  267. package/build/server/chunks/{_server.ts-DmNziNap.js → _server.ts-m7rCPG1J.js} +7 -6
  268. package/build/server/chunks/{_server.ts-DmNziNap.js.map → _server.ts-m7rCPG1J.js.map} +1 -1
  269. package/build/server/chunks/{_server.ts-CGggA6h4.js → _server.ts-rVmsBymo.js} +16 -11
  270. package/build/server/chunks/_server.ts-rVmsBymo.js.map +1 -0
  271. package/build/server/chunks/{_server.ts-QSEYZqU0.js → _server.ts-s2Seq_VN.js} +7 -6
  272. package/build/server/chunks/{_server.ts-QSEYZqU0.js.map → _server.ts-s2Seq_VN.js.map} +1 -1
  273. package/build/server/chunks/{_server.ts-jB_3zRrF.js → _server.ts-w4ncTcy1.js} +10 -15
  274. package/build/server/chunks/_server.ts-w4ncTcy1.js.map +1 -0
  275. package/build/server/chunks/{_server.ts-CqX61boo.js → _server.ts-ygmDTh5G.js} +8 -7
  276. package/build/server/chunks/{_server.ts-CqX61boo.js.map → _server.ts-ygmDTh5G.js.map} +1 -1
  277. package/build/server/chunks/{_server.ts-CZ83fA4I.js → _server.ts-ykET4T6s.js} +7 -6
  278. package/build/server/chunks/{_server.ts-CZ83fA4I.js.map → _server.ts-ykET4T6s.js.map} +1 -1
  279. package/build/server/chunks/{addon-helpers-TpOYibOg.js → addon-helpers-tZ_tAgFZ.js} +18 -5
  280. package/build/server/chunks/addon-helpers-tZ_tAgFZ.js.map +1 -0
  281. package/build/server/chunks/admin-update-lock-ZHLAwYiV.js +24 -0
  282. package/build/server/chunks/admin-update-lock-ZHLAwYiV.js.map +1 -0
  283. package/build/server/chunks/{akm-Bvt9WaTk.js → akm-DU_4Aa4m.js} +2 -2
  284. package/build/server/chunks/{akm-Bvt9WaTk.js.map → akm-DU_4Aa4m.js.map} +1 -1
  285. package/build/server/chunks/{catalog-w0L1ZRPK.js → catalog-B4QoA_I8.js} +5 -5
  286. package/build/server/chunks/{catalog-w0L1ZRPK.js.map → catalog-B4QoA_I8.js.map} +1 -1
  287. package/build/server/chunks/{client-ClRLlB_c.js → client-Dn-H0hgG.js} +2 -2
  288. package/build/server/chunks/{client-ClRLlB_c.js.map → client-Dn-H0hgG.js.map} +1 -1
  289. package/build/server/chunks/{compose-args2-DiDeQtPu.js → compose-args2-BFOGDQne.js} +3 -2
  290. package/build/server/chunks/compose-args2-BFOGDQne.js.map +1 -0
  291. package/build/server/chunks/{config-Jiy06DlE.js → config-DoYNsM1_.js} +2 -2
  292. package/build/server/chunks/{config-Jiy06DlE.js.map → config-DoYNsM1_.js.map} +1 -1
  293. package/build/server/chunks/{connections-api-J-nrQ1KK.js → connections-api-DlEoE3-k.js} +4 -3
  294. package/build/server/chunks/connections-api-DlEoE3-k.js.map +1 -0
  295. package/build/server/chunks/dist-DtzrgNJ1.js +6617 -0
  296. package/build/server/chunks/dist-DtzrgNJ1.js.map +1 -0
  297. package/build/server/chunks/{docker2-oBEn_Si9.js → docker2-BYFlumV1.js} +3 -2
  298. package/build/server/chunks/docker2-BYFlumV1.js.map +1 -0
  299. package/build/server/chunks/{docker3-Dn-Mm2cT.js → docker3-CtXDh00O.js} +2 -2
  300. package/build/server/chunks/{docker3-Dn-Mm2cT.js.map → docker3-CtXDh00O.js.map} +1 -1
  301. package/build/server/chunks/{endpoints-WTxemTcn.js → endpoints-IFTldlrt.js} +27 -6
  302. package/build/server/chunks/endpoints-IFTldlrt.js.map +1 -0
  303. package/build/server/chunks/environment-BYp8JQYM.js.map +1 -1
  304. package/build/server/chunks/{error.svelte-C2CWdm9K.js → error.svelte-DWK4R1_M.js} +4 -4
  305. package/build/server/chunks/{error.svelte-C2CWdm9K.js.map → error.svelte-DWK4R1_M.js.map} +1 -1
  306. package/build/server/chunks/{features-BE2x1a_a.js → features-BW-bVsl8.js} +3 -3
  307. package/build/server/chunks/{features-BE2x1a_a.js.map → features-BW-bVsl8.js.map} +1 -1
  308. package/build/server/chunks/{helpers-CfpNg3il.js → helpers-DxodR6tq.js} +4 -4
  309. package/build/server/chunks/{helpers-CfpNg3il.js.map → helpers-DxodR6tq.js.map} +1 -1
  310. package/build/server/chunks/{hooks.server-DEVjSu3V.js → hooks.server-Bzj8OieV.js} +10 -9
  311. package/build/server/chunks/{hooks.server-DEVjSu3V.js.map → hooks.server-Bzj8OieV.js.map} +1 -1
  312. package/build/server/chunks/{http-WP5cji9-.js → http-CfHMreaI.js} +2 -2
  313. package/build/server/chunks/{http-WP5cji9-.js.map → http-CfHMreaI.js.map} +1 -1
  314. package/build/server/chunks/{internal-D9Kp0SbJ.js → internal-BcbUGF7Z.js} +5 -7
  315. package/build/server/chunks/{internal-D9Kp0SbJ.js.map → internal-BcbUGF7Z.js.map} +1 -1
  316. package/build/server/chunks/{landing-DKXNel0Q.js → landing-DhaVkN2f.js} +5 -5
  317. package/build/server/chunks/{landing-DKXNel0Q.js.map → landing-DhaVkN2f.js.map} +1 -1
  318. package/build/server/chunks/{paths-DRVrMQrI.js → paths-Bgos728b.js} +2 -2
  319. package/build/server/chunks/{paths-DRVrMQrI.js.map → paths-Bgos728b.js.map} +1 -1
  320. package/build/server/chunks/{session-cookie-CDynAOx3.js → session-cookie-C8DcD6bt.js} +2 -2
  321. package/build/server/chunks/{session-cookie-CDynAOx3.js.map → session-cookie-C8DcD6bt.js.map} +1 -1
  322. package/build/server/chunks/{setup-deploy-CRW2KpZR.js → setup-deploy-D9j0EGGd.js} +2 -2
  323. package/build/server/chunks/{setup-deploy-CRW2KpZR.js.map → setup-deploy-D9j0EGGd.js.map} +1 -1
  324. package/build/server/chunks/{src-CQ2F7hgb.js → src-DbArH65P.js} +469 -7016
  325. package/build/server/chunks/src-DbArH65P.js.map +1 -0
  326. package/build/server/chunks/{state-CsIDHNPN.js → state-Bq8fep3F.js} +2 -2
  327. package/build/server/chunks/{state-CsIDHNPN.js.map → state-Bq8fep3F.js.map} +1 -1
  328. package/build/server/chunks/{state2-jnbE3tAu.js → state2-Cna2OZrd.js} +17 -2
  329. package/build/server/chunks/{state2-jnbE3tAu.js.map → state2-Cna2OZrd.js.map} +1 -1
  330. package/build/server/chunks/voice-state.svelte-2hAkP5Di.js +539 -0
  331. package/build/server/chunks/voice-state.svelte-2hAkP5Di.js.map +1 -0
  332. package/build/server/index.js +1 -1
  333. package/build/server/manifest.js +96 -103
  334. package/build/server/manifest.js.map +1 -1
  335. package/package.json +3 -3
  336. package/build/client/_app/immutable/assets/4.BXlLAfIE.css.br +0 -0
  337. package/build/client/_app/immutable/assets/4.BXlLAfIE.css.gz +0 -0
  338. package/build/client/_app/immutable/assets/6.D_kTgQ70.css +0 -1
  339. package/build/client/_app/immutable/assets/6.D_kTgQ70.css.br +0 -0
  340. package/build/client/_app/immutable/assets/6.D_kTgQ70.css.gz +0 -0
  341. package/build/client/_app/immutable/assets/7.CNzyzDDZ.css +0 -1
  342. package/build/client/_app/immutable/assets/7.CNzyzDDZ.css.br +0 -0
  343. package/build/client/_app/immutable/assets/7.CNzyzDDZ.css.gz +0 -0
  344. package/build/client/_app/immutable/assets/9.DeeTO7Ju.css +0 -1
  345. package/build/client/_app/immutable/assets/9.DeeTO7Ju.css.br +0 -0
  346. package/build/client/_app/immutable/assets/9.DeeTO7Ju.css.gz +0 -0
  347. package/build/client/_app/immutable/chunks/BKLMDjUE.js +0 -1
  348. package/build/client/_app/immutable/chunks/BKLMDjUE.js.br +0 -0
  349. package/build/client/_app/immutable/chunks/BKLMDjUE.js.gz +0 -0
  350. package/build/client/_app/immutable/chunks/BNJvGRjX.js.br +0 -0
  351. package/build/client/_app/immutable/chunks/BNJvGRjX.js.gz +0 -0
  352. package/build/client/_app/immutable/chunks/C5iiO0W9.js.br +0 -0
  353. package/build/client/_app/immutable/chunks/C5iiO0W9.js.gz +0 -0
  354. package/build/client/_app/immutable/chunks/CBV2kBE1.js.br +0 -0
  355. package/build/client/_app/immutable/chunks/CBV2kBE1.js.gz +0 -0
  356. package/build/client/_app/immutable/chunks/DWtm_qwJ.js +0 -3
  357. package/build/client/_app/immutable/chunks/DWtm_qwJ.js.br +0 -0
  358. package/build/client/_app/immutable/chunks/DWtm_qwJ.js.gz +0 -0
  359. package/build/client/_app/immutable/chunks/ccncQf9O.js +0 -1
  360. package/build/client/_app/immutable/chunks/ccncQf9O.js.br +0 -2
  361. package/build/client/_app/immutable/chunks/ccncQf9O.js.gz +0 -0
  362. package/build/client/_app/immutable/entry/app.DAzfwrA7.js.br +0 -0
  363. package/build/client/_app/immutable/entry/app.DAzfwrA7.js.gz +0 -0
  364. package/build/client/_app/immutable/entry/start.7FiodlpO.js +0 -1
  365. package/build/client/_app/immutable/entry/start.7FiodlpO.js.br +0 -1
  366. package/build/client/_app/immutable/entry/start.7FiodlpO.js.gz +0 -0
  367. package/build/client/_app/immutable/nodes/1.BYTQ4CJf.js.br +0 -2
  368. package/build/client/_app/immutable/nodes/1.BYTQ4CJf.js.gz +0 -0
  369. package/build/client/_app/immutable/nodes/10.CHYaVWP2.js.br +0 -0
  370. package/build/client/_app/immutable/nodes/10.CHYaVWP2.js.gz +0 -0
  371. package/build/client/_app/immutable/nodes/11.DXwuRFxA.js.br +0 -0
  372. package/build/client/_app/immutable/nodes/11.DXwuRFxA.js.gz +0 -0
  373. package/build/client/_app/immutable/nodes/4.n8OmCUUb.js +0 -1
  374. package/build/client/_app/immutable/nodes/4.n8OmCUUb.js.br +0 -0
  375. package/build/client/_app/immutable/nodes/4.n8OmCUUb.js.gz +0 -0
  376. package/build/client/_app/immutable/nodes/5.DgnQcqeL.js.br +0 -0
  377. package/build/client/_app/immutable/nodes/5.DgnQcqeL.js.gz +0 -0
  378. package/build/client/_app/immutable/nodes/6.RedvZarw.js +0 -2
  379. package/build/client/_app/immutable/nodes/6.RedvZarw.js.br +0 -0
  380. package/build/client/_app/immutable/nodes/6.RedvZarw.js.gz +0 -0
  381. package/build/client/_app/immutable/nodes/7.BqgE43w1.js +0 -14
  382. package/build/client/_app/immutable/nodes/7.BqgE43w1.js.br +0 -0
  383. package/build/client/_app/immutable/nodes/7.BqgE43w1.js.gz +0 -0
  384. package/build/client/_app/immutable/nodes/9.CQfpYNnj.js +0 -126
  385. package/build/client/_app/immutable/nodes/9.CQfpYNnj.js.br +0 -0
  386. package/build/client/_app/immutable/nodes/9.CQfpYNnj.js.gz +0 -0
  387. package/build/server/chunks/1-Dxk_eEPL.js +0 -9
  388. package/build/server/chunks/4-CEASlyNx.js +0 -9
  389. package/build/server/chunks/9-BKXk6mfI.js +0 -42
  390. package/build/server/chunks/9-BKXk6mfI.js.map +0 -1
  391. package/build/server/chunks/ChatNavbar-D2J3UbpW.js.map +0 -1
  392. package/build/server/chunks/IconSoundOn-DHtvjphK.js.map +0 -1
  393. package/build/server/chunks/_page.svelte--qXsMm-T.js.map +0 -1
  394. package/build/server/chunks/_page.svelte-BnZ0Fgkw.js.map +0 -1
  395. package/build/server/chunks/_page.svelte-Cc-OjlMF.js +0 -92
  396. package/build/server/chunks/_page.svelte-Cc-OjlMF.js.map +0 -1
  397. package/build/server/chunks/_page.svelte-DGsMxwfZ.js.map +0 -1
  398. package/build/server/chunks/_server.ts-BJqxSP1B.js.map +0 -1
  399. package/build/server/chunks/_server.ts-BN6ghyoO.js +0 -94
  400. package/build/server/chunks/_server.ts-BN6ghyoO.js.map +0 -1
  401. package/build/server/chunks/_server.ts-BNoq5yoF.js.map +0 -1
  402. package/build/server/chunks/_server.ts-C6GZY_v3.js.map +0 -1
  403. package/build/server/chunks/_server.ts-C6r0d7SR.js.map +0 -1
  404. package/build/server/chunks/_server.ts-C900vqOm.js.map +0 -1
  405. package/build/server/chunks/_server.ts-CDJ7WouZ.js.map +0 -1
  406. package/build/server/chunks/_server.ts-CGE7AyDg.js.map +0 -1
  407. package/build/server/chunks/_server.ts-CGggA6h4.js.map +0 -1
  408. package/build/server/chunks/_server.ts-CMO7LL0e.js.map +0 -1
  409. package/build/server/chunks/_server.ts-CPYtZ7sE.js.map +0 -1
  410. package/build/server/chunks/_server.ts-CR85H0KR.js.map +0 -1
  411. package/build/server/chunks/_server.ts-ClrrzZI6.js +0 -141
  412. package/build/server/chunks/_server.ts-ClrrzZI6.js.map +0 -1
  413. package/build/server/chunks/_server.ts-CsP1RzbQ.js.map +0 -1
  414. package/build/server/chunks/_server.ts-D5Xa36tp.js +0 -248
  415. package/build/server/chunks/_server.ts-D5Xa36tp.js.map +0 -1
  416. package/build/server/chunks/_server.ts-DHjMyNwJ.js.map +0 -1
  417. package/build/server/chunks/_server.ts-D_93w1gb.js.map +0 -1
  418. package/build/server/chunks/_server.ts-DjAGbGD-.js.map +0 -1
  419. package/build/server/chunks/_server.ts-DrxBKPKB.js.map +0 -1
  420. package/build/server/chunks/_server.ts-MZYYoM8z.js.map +0 -1
  421. package/build/server/chunks/_server.ts-TTSjZaYY.js +0 -69
  422. package/build/server/chunks/_server.ts-TTSjZaYY.js.map +0 -1
  423. package/build/server/chunks/_server.ts-jB_3zRrF.js.map +0 -1
  424. package/build/server/chunks/_server.ts-sdkTYy6A.js.map +0 -1
  425. package/build/server/chunks/_server.ts-st_pTUHI.js +0 -106
  426. package/build/server/chunks/_server.ts-st_pTUHI.js.map +0 -1
  427. package/build/server/chunks/addon-helpers-TpOYibOg.js.map +0 -1
  428. package/build/server/chunks/compose-args2-DiDeQtPu.js.map +0 -1
  429. package/build/server/chunks/connections-api-J-nrQ1KK.js.map +0 -1
  430. package/build/server/chunks/docker2-oBEn_Si9.js.map +0 -1
  431. package/build/server/chunks/endpoints-WTxemTcn.js.map +0 -1
  432. package/build/server/chunks/serial-queue-D9FEpYVv.js +0 -22
  433. package/build/server/chunks/serial-queue-D9FEpYVv.js.map +0 -1
  434. package/build/server/chunks/src-CQ2F7hgb.js.map +0 -1
  435. package/build/server/chunks/voice-state.svelte-BAiqUOIX.js +0 -1214
  436. package/build/server/chunks/voice-state.svelte-BAiqUOIX.js.map +0 -1
@@ -1 +0,0 @@
1
- .voice-stop-btn.svelte-1fzuh38{border-radius:var(--s-radius-2,8px);border:var(--s-hair) solid var(--s-line);background:var(--s-paper);width:32px;height:32px;color:var(--s-ink);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.voice-stop-btn.svelte-1fzuh38:hover{background:var(--s-line-soft)}.sr-only.svelte-1fzuh38{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nav-shell.svelte-7673iv{z-index:40;background:var(--s-paper-deep);border-bottom:var(--s-hair) solid var(--s-line-soft);position:sticky;top:52px}.section-strip.svelte-7673iv{padding-inline:var(--s-sp-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper);gap:0;display:flex;overflow-x:auto}.section-strip.svelte-7673iv::-webkit-scrollbar{display:none}.section-tab.svelte-7673iv{min-height:36px;padding:var(--s-sp-1) var(--s-sp-4);font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3);cursor:pointer;white-space:nowrap;transition:color var(--s-t-quick) var(--s-ease), background-color var(--s-t-quick) var(--s-ease), border-color var(--s-t-quick) var(--s-ease);background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;margin-bottom:-1px;display:inline-flex}.section-tab.svelte-7673iv:hover{color:var(--s-ink-2);background:var(--s-paper-deep)}.section-tab.svelte-7673iv:focus-visible{outline:var(--s-hair) solid var(--s-seal);outline-offset:2px}.section-tab-active.svelte-7673iv{color:var(--s-ink-2);background:var(--s-paper-deep);border-bottom-color:var(--s-seal);border-radius:2px 2px 0 0}.subtab-row.svelte-7673iv{position:relative}.tabs.svelte-7673iv{gap:var(--s-sp-1);padding-inline:var(--s-sp-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--s-paper-deep);display:flex;overflow-x:auto}.tabs.svelte-7673iv::-webkit-scrollbar{display:none}.tab.svelte-7673iv{align-items:center;gap:var(--s-sp-2);min-height:44px;padding:var(--s-sp-2) var(--s-sp-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3);cursor:pointer;white-space:nowrap;transition:color var(--s-t-quick) var(--s-ease), border-color var(--s-t-quick) var(--s-ease);background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;display:inline-flex}.tab.svelte-7673iv:hover{color:var(--s-ink-2)}.tab.svelte-7673iv:focus-visible{outline:var(--s-hair) solid var(--s-seal);outline-offset:2px}.tab-active.svelte-7673iv{color:var(--s-ink);border-bottom-color:var(--s-ink)}@media (width<=768px){.tab.svelte-7673iv{padding:var(--s-sp-2)}.section-tab.svelte-7673iv{padding:var(--s-sp-1) var(--s-sp-3)}.section-strip.svelte-7673iv,.tabs.svelte-7673iv{padding-inline:var(--s-sp-4)}}@media (width<=320px){.tab.svelte-7673iv,.section-tab.svelte-7673iv{padding:var(--s-sp-1) var(--s-sp-2);font-size:var(--s-type-mark-sm)}}.hero.svelte-10n23hu{align-items:center;gap:var(--s-sp-4);padding:var(--s-sp-5);border:var(--s-hair) solid var(--s-line);margin-bottom:var(--s-sp-6);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));border-radius:2px;flex-wrap:wrap;display:flex}.hero--ok.svelte-10n23hu{border-color:var(--s-moss)}.hero--warning.svelte-10n23hu{border-color:var(--s-seal)}.hero--unknown.svelte-10n23hu{border-color:var(--s-line)}.hero-icon.svelte-10n23hu{border:var(--s-hair) solid var(--s-line);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;display:inline-flex}.hero--ok.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){border-color:color-mix(in srgb, var(--s-moss) 40%, transparent);color:var(--s-moss)}.hero--warning.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){border-color:color-mix(in srgb, var(--s-seal) 30%, transparent);color:var(--s-seal)}.hero--unknown.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--s-ink-3)}.hero-text.svelte-10n23hu{flex:240px;min-width:0}.hero-title.svelte-10n23hu{font-family:var(--s-font-display);font-size:var(--s-type-whisper);color:var(--s-ink);font-weight:400}.hero-detail.svelte-10n23hu{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2);max-width:68ch;margin-top:2px}.hero-actions.svelte-10n23hu{align-items:center;gap:var(--s-sp-2);flex-wrap:wrap;max-width:100%;display:flex}.hero-actions.svelte-10n23hu .btn{flex-shrink:0}@media (width<=560px){.hero-actions.svelte-10n23hu{width:100%}.hero-actions.svelte-10n23hu .btn{flex:auto}}.tile.svelte-19hpfg{gap:var(--s-sp-1);padding:var(--s-sp-4) var(--s-sp-5);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));border:var(--s-hair) solid var(--s-line-soft);cursor:pointer;text-align:left;font-family:var(--s-font-display);appearance:none;border-radius:2px;flex-direction:column;transition:border-color .12s;display:flex}.tile.svelte-19hpfg:hover{border-color:var(--s-line)}.tile.svelte-19hpfg:focus-visible{outline:var(--s-hair) solid var(--s-seal);outline-offset:2px}.tile-metric.svelte-19hpfg{font-family:var(--s-font-display);font-size:var(--s-type-voice);color:var(--s-ink);font-weight:400;line-height:1.1}.tile-metric--ok.svelte-19hpfg{color:var(--s-moss)}.tile-metric--warn.svelte-19hpfg{color:var(--s-seal)}.tile-metric-sub.svelte-19hpfg{font-family:var(--s-font-display);font-size:var(--s-type-whisper);color:var(--s-ink-2);font-weight:400}.tile-metric--icon.svelte-19hpfg{color:var(--s-ink-3)}.tile-label.svelte-19hpfg{font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3)}.s-tile-badge.svelte-19hpfg{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;border:var(--s-hair) solid currentColor;color:var(--s-ink-3);border:none;border-radius:2px;margin-top:auto;padding:.1em .6em;display:inline-flex}.s-tile-badge--ok.svelte-19hpfg{color:var(--s-moss)}.s-tile-badge--warn.svelte-19hpfg{color:var(--s-seal)}.akm-card.svelte-dcgqe1{text-align:left;width:100%;font-family:var(--s-font-display);padding:var(--s-sp-5);margin-bottom:var(--s-sp-8);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));border:var(--s-hair) solid var(--s-line-soft);cursor:pointer;appearance:none;border-radius:2px;transition:border-color .12s;display:block}.akm-card.svelte-dcgqe1:hover{border-color:var(--s-line)}.akm-card.svelte-dcgqe1:focus-visible{outline:var(--s-hair) solid var(--s-seal);outline-offset:2px}.akm-head.svelte-dcgqe1{justify-content:space-between;align-items:center;gap:var(--s-sp-3);margin-bottom:var(--s-sp-4);display:flex}.akm-title.svelte-dcgqe1{font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3);font-weight:400}.akm-metrics.svelte-dcgqe1{gap:var(--s-sp-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.akm-metric.svelte-dcgqe1{flex-direction:column;gap:2px;display:flex}.akm-num.svelte-dcgqe1{font-family:var(--s-font-display);font-size:var(--s-type-voice);color:var(--s-ink);font-weight:400;line-height:1.1}.akm-num-sub.svelte-dcgqe1{font-family:var(--s-font-display);font-size:var(--s-type-whisper);color:var(--s-ink-2);font-weight:400}.akm-cap.svelte-dcgqe1{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3)}.akm-unavailable.svelte-dcgqe1{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2);max-width:68ch}.shortcut-grid.svelte-8y2vdf{gap:var(--s-sp-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.shortcut.svelte-8y2vdf{gap:var(--s-sp-1);padding:var(--s-sp-4) var(--s-sp-4);appearance:none;border:var(--s-hair) solid var(--s-line-soft);cursor:pointer;text-align:left;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);background:0 0;border-radius:2px;flex-direction:column;text-decoration:none;transition:border-color .12s,color .12s;display:flex}.shortcut.svelte-8y2vdf:hover{border-color:var(--s-line);color:var(--s-ink-2)}.shortcut.svelte-8y2vdf:focus-visible{outline:var(--s-hair) solid var(--s-seal);outline-offset:2px}.shortcut-name.svelte-8y2vdf{font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink)}.shortcut-desc.svelte-8y2vdf{font-family:var(--s-font-display);font-size:var(--s-type-deed);text-transform:none;letter-spacing:normal;color:var(--s-ink-2)}.tile-grid.svelte-xz862u{gap:var(--s-sp-4);margin-bottom:var(--s-sp-8);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.section-heading.svelte-xz862u{font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3);margin-bottom:var(--s-sp-3);font-weight:400}.control-plane-line.svelte-7mkeya{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin:var(--s-sp-2) 0 0}.control-plane-line.svelte-7mkeya strong:where(.svelte-7mkeya){color:var(--s-ink)}.panel-header.svelte-7mkeya{justify-content:space-between;align-items:flex-start;gap:var(--s-sp-4);margin-bottom:var(--s-sp-4);flex-wrap:wrap;display:flex}.header-actions.svelte-7mkeya{gap:var(--s-sp-3);margin-top:var(--s-sp-1);flex-wrap:wrap;flex-shrink:0;display:flex}.loading-line.svelte-7mkeya{align-items:center;gap:var(--s-sp-2);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:0;display:flex}.msg.svelte-7mkeya{margin:var(--s-sp-2) 0;padding:var(--s-sp-2) var(--s-sp-3);font-family:var(--s-font-display);font-size:var(--s-type-deed);border:var(--s-hair) solid var(--s-line);border-radius:2px}.msg-success.svelte-7mkeya{border-color:var(--s-moss,#16a34a);color:var(--s-moss,#16a34a)}.msg-error.svelte-7mkeya{border-color:var(--s-seal,#ef4444);color:var(--s-seal,#ef4444)}.comp-table.svelte-7mkeya{border-collapse:collapse;width:100%;font-family:var(--s-font-display);font-size:var(--s-type-deed);margin-bottom:var(--s-sp-2)}.comp-table.svelte-7mkeya th:where(.svelte-7mkeya){text-align:left;padding:var(--s-sp-2) var(--s-sp-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);border-bottom:var(--s-hair) solid var(--s-line)}.comp-table.svelte-7mkeya td:where(.svelte-7mkeya){padding:var(--s-sp-2) var(--s-sp-3);border-bottom:var(--s-hair) solid var(--s-line-soft);vertical-align:middle;color:var(--s-ink)}.comp-table.svelte-7mkeya tr:where(.svelte-7mkeya):last-child td:where(.svelte-7mkeya){border-bottom:none}.row-has-update.svelte-7mkeya td:where(.svelte-7mkeya):first-child{border-left:2px solid var(--s-amber,#f59e0b);padding-left:calc(var(--s-sp-3) - 2px)}.col-name.svelte-7mkeya{width:18%}.col-running.svelte-7mkeya{width:20%}.col-pin.svelte-7mkeya{width:30%}.col-avail.svelte-7mkeya{width:16%}.col-action.svelte-7mkeya{text-align:right;width:16%}.comp-label.svelte-7mkeya{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.ver.svelte-7mkeya{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2)}.ver-new.svelte-7mkeya{color:var(--s-moss,#16a34a);font-weight:600}.health-dot.svelte-7mkeya{width:7px;height:7px;margin-left:var(--s-sp-2);vertical-align:middle;border-radius:50%;flex:none;display:inline-block}.health-healthy.svelte-7mkeya{background:var(--s-moss,#16a34a)}.health-starting.svelte-7mkeya,.health-unhealthy.svelte-7mkeya{background:var(--s-seal,#ef4444)}.pin-chip.svelte-7mkeya{align-items:center;gap:var(--s-sp-1);border:var(--s-hair) solid var(--s-line);padding:1px var(--s-sp-2);cursor:pointer;font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2);background:0 0;border-radius:2px;max-width:100%;transition:border-color .1s;display:inline-flex;overflow:hidden}.pin-chip.svelte-7mkeya:hover{border-color:var(--s-ink-2)}.pin-chip-text.svelte-7mkeya{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pin-edit-icon.svelte-7mkeya{opacity:0;flex:none;font-size:.7em}.pin-chip.svelte-7mkeya:hover .pin-edit-icon:where(.svelte-7mkeya){opacity:.5}.pin-edit-row.svelte-7mkeya{align-items:center;gap:var(--s-sp-2);flex-wrap:wrap;display:flex}.pin-input.svelte-7mkeya{min-width:8rem;padding:2px var(--s-sp-2);border:var(--s-hair) solid var(--s-line);background:var(--s-paper);color:var(--s-ink);font-family:var(--s-font-mono);font-size:var(--s-type-mark);border-radius:2px;flex:1}.btn-inline.svelte-7mkeya{padding:2px var(--s-sp-2);font-family:var(--s-font-display);font-size:var(--s-type-deed);cursor:pointer;border:var(--s-hair) solid var(--s-line);color:var(--s-ink-2);white-space:nowrap;background:0 0;border-radius:2px}.btn-save.svelte-7mkeya{border-color:var(--s-moss,#16a34a);color:var(--s-moss,#16a34a)}.btn-cancel.svelte-7mkeya{color:var(--s-ink-3)}.inline-success.svelte-7mkeya{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-moss,#16a34a);margin-top:2px;display:block}.inline-error.svelte-7mkeya{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-seal,#ef4444);margin-top:2px;display:block}.btn-sm.svelte-7mkeya{padding:var(--s-sp-1) var(--s-sp-3);font-size:var(--s-type-deed);align-items:center;gap:var(--s-sp-1);display:inline-flex}.channel-section.svelte-7mkeya{margin-top:var(--s-sp-6);padding-top:var(--s-sp-4);border-top:var(--s-hair) solid var(--s-line)}.section-heading.svelte-7mkeya{margin:0 0 var(--s-sp-2) 0;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);font-weight:400}.section-desc.svelte-7mkeya{margin:0 0 var(--s-sp-3) 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2);line-height:1.5}.channel-toggle.svelte-7mkeya{border:var(--s-hair) solid var(--s-line);border-radius:4px;width:fit-content;display:flex;overflow:hidden}.channel-btn.svelte-7mkeya{padding:var(--s-sp-2) var(--s-sp-4);cursor:pointer;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2);border:none;border-right:var(--s-hair) solid var(--s-line);background:0 0;transition:background .1s,color .1s}.channel-btn.svelte-7mkeya:last-child{border-right:none}.channel-btn--active.svelte-7mkeya{background:var(--s-ink);color:var(--s-paper)}.channel-btn.svelte-7mkeya:not(.channel-btn--active):hover{background:var(--s-line-soft)}.desktop-settings.svelte-7mkeya{margin-top:var(--s-sp-5);border-top:var(--s-hair) solid var(--s-line);padding-top:var(--s-sp-4)}.setting-label.svelte-7mkeya{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);margin-bottom:var(--s-sp-1)}.setting-hint.svelte-7mkeya{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:var(--s-sp-1) 0 0;line-height:1.5}.desktop-setting-row.svelte-7mkeya{gap:var(--s-sp-2);padding:var(--s-sp-3) 0;border-bottom:var(--s-hair) solid var(--s-line-soft);flex-direction:column;display:flex}.desktop-setting-row.svelte-7mkeya:last-child{border-bottom:none}.desktop-toggle.svelte-7mkeya{align-items:flex-start;gap:var(--s-sp-3);margin-top:var(--s-sp-1);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);cursor:pointer;display:flex}.desktop-toggle--nested.svelte-7mkeya{margin-left:var(--s-sp-6);margin-bottom:var(--s-sp-2)}.sr-only.svelte-7mkeya{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.secret-notice.svelte-54nov7{justify-content:space-between;align-items:flex-start;gap:var(--s-sp-3);margin-bottom:var(--s-sp-3);padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-seal);border-radius:2px;display:flex}.secret-notice-text.svelte-54nov7{min-width:0}.secret-notice-title.svelte-54nov7{margin:0 0 var(--s-sp-1) 0;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-seal)}.secret-notice.svelte-54nov7 p:where(.svelte-54nov7){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);margin:0}.stuck-notice.svelte-54nov7{justify-content:space-between;align-items:flex-start;gap:var(--s-sp-3);margin-bottom:var(--s-sp-3);padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-seal);border-radius:2px;display:flex}.stuck-notice-ok.svelte-54nov7{border-color:var(--s-moss)}.stuck-notice-text.svelte-54nov7{min-width:0}.stuck-notice-title.svelte-54nov7{margin:0 0 var(--s-sp-1) 0;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-seal)}.stuck-notice-ok.svelte-54nov7 .stuck-notice-title:where(.svelte-54nov7){color:var(--s-moss)}.stuck-notice.svelte-54nov7 p:where(.svelte-54nov7){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);margin:0}.backups-section.svelte-54nov7{padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-line);background:var(--s-paper-deep);border-radius:2px}.backups-header.svelte-54nov7{justify-content:space-between;align-items:flex-start;gap:var(--s-sp-2);margin-bottom:var(--s-sp-2);display:flex}.backups-title.svelte-54nov7{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin:0}.backups-summary.svelte-54nov7{margin:var(--s-sp-1) 0 0 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2)}.backups-desc.svelte-54nov7{margin:0 0 var(--s-sp-3) 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2)}.backups-empty.svelte-54nov7,.backups-error.svelte-54nov7{margin:var(--s-sp-1) 0 0 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3)}.backups-error.svelte-54nov7{color:var(--s-seal)}.backups-table.svelte-54nov7{border-collapse:collapse;width:100%;font-family:var(--s-font-display);font-size:var(--s-type-deed)}.backups-table.svelte-54nov7 th:where(.svelte-54nov7){text-align:left;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);padding:var(--s-sp-1) var(--s-sp-2);border-bottom:var(--s-hair) solid var(--s-line)}.backups-table.svelte-54nov7 td:where(.svelte-54nov7){padding:var(--s-sp-2);border-bottom:var(--s-hair) solid var(--s-line-soft);color:var(--s-ink);vertical-align:middle}.backups-table.svelte-54nov7 tr:where(.svelte-54nov7):last-child td:where(.svelte-54nov7){border-bottom:none}.backups-table.svelte-54nov7 tr:where(.svelte-54nov7):hover td:where(.svelte-54nov7){background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper))}.backups-cell-name.svelte-54nov7{font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-overflow:ellipsis;white-space:nowrap;max-width:20rem;color:var(--s-ink-2);overflow:hidden}.backups-cell-meta.svelte-54nov7{white-space:nowrap;color:var(--s-ink-2);font-family:var(--s-font-mono);font-size:var(--s-type-mark)}.backups-cell-restore.svelte-54nov7{white-space:nowrap}.backups-restore-note.svelte-54nov7{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.prune-prompt.svelte-54nov7{margin-top:var(--s-sp-3);padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-seal);border-radius:2px}.prune-prompt-title.svelte-54nov7{margin:0 0 var(--s-sp-1) 0;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-seal)}.prune-prompt.svelte-54nov7 p:where(.svelte-54nov7){margin:0 0 var(--s-sp-2) 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.prune-keep-input.svelte-54nov7{width:4rem;padding:var(--s-sp-1) var(--s-sp-2);border:var(--s-hair) solid var(--s-line);background:var(--s-paper);color:var(--s-ink);font-family:var(--s-font-mono);font-size:var(--s-type-mark);border-radius:2px}.prune-actions.svelte-54nov7{gap:var(--s-sp-2);display:flex}.empty-state.svelte-1cb80bq{align-items:center;gap:var(--s-sp-3);padding:var(--s-sp-8) var(--s-sp-6);text-align:center;color:var(--s-ink-3);font-family:var(--s-font-display);font-size:var(--s-type-whisper);flex-direction:column;display:flex}.empty-state.svelte-1cb80bq p{font-family:var(--s-font-display);font-size:var(--s-type-whisper);color:var(--s-ink-3)}.secret-select.svelte-15lncnc{gap:var(--s-sp-2);flex-direction:column;display:flex}.ss-row.svelte-15lncnc{align-items:center;gap:var(--s-sp-2);display:flex}.ss-select.svelte-15lncnc{min-width:0;height:38px;font-family:var(--s-font-display);font-size:var(--s-type-whisper);color:var(--s-ink);background:var(--s-paper);border:0;border-bottom:var(--s-hair) solid var(--s-line);padding:0 var(--s-sp-1);border-radius:0;flex:auto}.ss-select.svelte-15lncnc:focus{border-bottom-color:var(--s-ink-2);outline:none}.ss-add-btn.svelte-15lncnc{align-items:center;gap:var(--s-sp-1);flex-shrink:0;height:38px;display:inline-flex}.ss-add-btn.svelte-15lncnc svg{flex-shrink:0}.ss-add-form.svelte-15lncnc{gap:var(--s-sp-2);padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper-deep);border-radius:2px;flex-direction:column;display:flex}.ss-field.svelte-15lncnc{gap:var(--s-sp-1);flex-direction:column;display:flex}.ss-field-label.svelte-15lncnc{font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3);font-weight:400}.ss-error.svelte-15lncnc{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-seal);text-transform:uppercase;letter-spacing:var(--s-track-label)}.ss-actions.svelte-15lncnc{gap:var(--s-sp-2);display:flex}@media (width<=480px){.ss-add-label.svelte-15lncnc{display:none}.ss-add-btn.svelte-15lncnc{justify-content:center;width:38px}}.addon-table.svelte-87zh26{border:var(--s-hair) solid var(--s-line-soft);border-radius:2px;flex-direction:column;width:100%;display:flex}.addon-table-header.svelte-87zh26{padding:var(--s-sp-2) var(--s-sp-5);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));border-bottom:var(--s-hair) solid var(--s-line-soft);font-family:var(--s-font-mono);font-size:var(--s-type-deed);letter-spacing:var(--s-track-label);color:var(--s-ink-3);text-transform:uppercase;align-items:center;display:flex}.addon-row.svelte-87zh26{padding:var(--s-sp-3) var(--s-sp-5);border-bottom:var(--s-hair) solid var(--s-line-soft);align-items:center;display:flex}.addon-row.svelte-87zh26:last-child{border-bottom:none}.addon-row.svelte-87zh26:hover{background:color-mix(in srgb, var(--s-ink) 3%, var(--s-paper))}.addon-col.svelte-87zh26{align-items:center;gap:var(--s-sp-2);display:flex}.addon-col--name.svelte-87zh26{flex:3;min-width:0}.addon-col--status.svelte-87zh26{flex:1;min-width:0}.addon-col--actions.svelte-87zh26{flex:none;justify-content:flex-end}.addon-name.svelte-87zh26{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (width<=480px){.addon-row.svelte-87zh26{flex-wrap:wrap}.addon-col--name.svelte-87zh26{flex:1 0 100%}.addon-col--actions.svelte-87zh26{justify-content:flex-start}}.error-state.svelte-87zh26{justify-content:space-between;align-items:center;gap:var(--s-sp-3);padding:var(--s-sp-4) var(--s-sp-5);font-family:var(--s-font-mono);font-size:var(--s-type-deed);color:var(--s-seal);display:flex}@media (width<=768px){.addon-table-header.svelte-87zh26{display:none}.addon-row.svelte-87zh26{gap:var(--s-sp-2);flex-wrap:wrap}.addon-col--status.svelte-87zh26{flex:none}}.creds-loading.svelte-87zh26{align-items:center;gap:var(--s-sp-2);color:var(--s-ink-2);font-family:var(--s-font-mono);font-size:var(--s-type-deed);display:flex}.creds-empty.svelte-87zh26,.creds-hint.svelte-87zh26{font-family:var(--s-font-mono);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:0}.creds-row.svelte-87zh26{gap:var(--s-sp-1);flex-direction:column;display:flex}.creds-label.svelte-87zh26{align-items:center;gap:var(--s-sp-2);font-family:var(--s-font-mono);font-size:var(--s-type-deed);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);display:flex}.creds-label.svelte-87zh26 code:where(.svelte-87zh26){font-family:var(--s-font-mono);background:var(--s-paper-deep);color:var(--s-ink-2);border-radius:2px;padding:1px 6px}.creds-tag.svelte-87zh26{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);border:var(--s-hair) solid var(--s-line);color:var(--s-ink-3);white-space:nowrap;text-transform:uppercase;letter-spacing:var(--s-track-label);background:0 0;border-radius:2px;padding:2px 8px}.creds-tag--set.svelte-87zh26{color:var(--s-moss);border-color:var(--s-moss)}.creds-desc.svelte-87zh26{font-family:var(--s-font-mono);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:0}.form-input.svelte-87zh26{border:0;border-bottom:var(--s-hair) solid var(--s-line);width:100%;color:var(--s-ink);font-family:var(--s-font-display);font-size:var(--s-type-deed);background:0 0;border-radius:0;padding:.5rem 0}.form-input.svelte-87zh26:focus{border-bottom-color:var(--s-seal);outline:none}.ct-service-name.svelte-1clpuus{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);color:var(--s-ink)}.ct-mono.svelte-1clpuus{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2)}.ct-indicator.svelte-1clpuus{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ct-indicator--success.svelte-1clpuus{background:var(--s-moss);box-shadow:0 0 0 3px color-mix(in srgb, var(--s-moss) 20%, transparent)}.ct-indicator--danger.svelte-1clpuus,.ct-indicator--warning.svelte-1clpuus{background:var(--s-seal)}.ct-indicator--idle.svelte-1clpuus{background:var(--s-ink-3)}.ct-chevron-open.svelte-1clpuus{transform:rotate(180deg)}.ct-not-created.svelte-1clpuus{color:var(--s-ink-3);font-style:italic}.container-table-row.svelte-1clpuus{padding:var(--s-sp-3) var(--s-sp-6);border-bottom:var(--s-hair) solid var(--s-line-soft);font-size:var(--s-type-deed);width:100%;font-family:var(--s-font-display);color:var(--s-ink);text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;display:flex}.container-table-row.svelte-1clpuus:last-child{border-bottom:none}.container-table-row--clickable.svelte-1clpuus{cursor:pointer}.container-table-row--clickable.svelte-1clpuus:hover{background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper))}.container-table-row--clickable.svelte-1clpuus:focus-visible{outline:var(--s-hair) solid var(--s-ink-2);outline-offset:-2px}@media (width<=768px){.container-table-row.svelte-1clpuus{gap:var(--s-sp-1);padding:var(--s-sp-3) var(--s-sp-4);flex-wrap:wrap}}.container-detail.svelte-17lh9yz{padding:var(--s-sp-4) var(--s-sp-6) var(--s-sp-4) calc(var(--s-sp-6) + 28px);background:var(--s-paper-deep);border-bottom:var(--s-hair) solid var(--s-line)}.detail-grid.svelte-17lh9yz{gap:var(--s-sp-3) var(--s-sp-6);grid-template-columns:1fr 1fr;display:grid}.detail-item.svelte-17lh9yz{flex-direction:column;gap:2px;display:flex}.detail-label.svelte-17lh9yz{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.detail-value.svelte-17lh9yz{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);align-items:center;gap:var(--s-sp-2);display:flex}.detail-mono.svelte-17lh9yz{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2);word-break:break-all}.detail-digest.svelte-17lh9yz{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.detail-actions.svelte-17lh9yz{gap:var(--s-sp-2);margin-top:var(--s-sp-4);display:flex}.detail-not-created.svelte-17lh9yz{padding:var(--s-sp-2) 0}.detail-not-created.svelte-17lh9yz p:where(.svelte-17lh9yz){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2)}.action-feedback.svelte-17lh9yz{margin-top:var(--s-sp-3);padding:var(--s-sp-2) var(--s-sp-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;border-radius:2px}.action-feedback--success.svelte-17lh9yz{color:var(--s-moss);border:var(--s-hair) solid var(--s-moss)}.action-feedback--error.svelte-17lh9yz{color:var(--s-seal);border:var(--s-hair) solid var(--s-seal)}.confirm-bar.svelte-17lh9yz{justify-content:space-between;align-items:center;gap:var(--s-sp-3);margin-top:var(--s-sp-4);padding:var(--s-sp-3) var(--s-sp-4);border:var(--s-hair) solid var(--s-seal);border-radius:2px;display:flex}.confirm-text.svelte-17lh9yz{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.confirm-actions.svelte-17lh9yz{gap:var(--s-sp-2);flex-shrink:0;display:flex}@media (width<=768px){.detail-grid.svelte-17lh9yz{grid-template-columns:1fr}.container-detail.svelte-17lh9yz{padding-left:var(--s-sp-4)}.confirm-bar.svelte-17lh9yz{flex-direction:column;align-items:stretch}.confirm-actions.svelte-17lh9yz{justify-content:flex-end}}.text-danger.svelte-llpoy7{color:var(--s-seal)}.empty-state.svelte-llpoy7 .btn:where(.svelte-llpoy7){margin-top:var(--s-sp-2)}.empty-state.svelte-llpoy7 .hint:where(.svelte-llpoy7){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);max-width:32ch}.container-table.svelte-fnc5b8{flex-direction:column;width:100%;display:flex}.container-table-header.svelte-fnc5b8{padding:var(--s-sp-2) var(--s-sp-6);background:var(--s-paper-deep);border-bottom:var(--s-hair) solid var(--s-line);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);align-items:center;display:flex}.last-updated.svelte-fnc5b8{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);white-space:nowrap}@media (width<=768px){.container-table-header.svelte-fnc5b8{display:none}}.task-form.svelte-m3wayn{gap:var(--s-sp-5);flex-direction:column;display:flex}.field-group.svelte-m3wayn{gap:var(--s-sp-1);border:none;flex-direction:column;margin:0;padding:0;display:flex}.field-group--error.svelte-m3wayn .field-input:where(.svelte-m3wayn){border-color:var(--s-seal)}.field-label.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-ink-2);font-weight:400}.field-input.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-ink);background:var(--s-paper);border:var(--s-hair) solid var(--s-line);padding:var(--s-sp-2) var(--s-sp-3);border-radius:2px;width:100%}.field-input.svelte-m3wayn:focus{outline:2px solid var(--s-seal);outline-offset:1px}.field-input.svelte-m3wayn:disabled{opacity:.5;cursor:not-allowed}.field-input--narrow.svelte-m3wayn{width:6rem}.field-input--error.svelte-m3wayn{border-color:var(--s-seal)}.field-select.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-ink);background:var(--s-paper);border:var(--s-hair) solid var(--s-line);padding:var(--s-sp-2) var(--s-sp-3);border-radius:2px}.field-select--narrow.svelte-m3wayn{width:auto}.field-select.svelte-m3wayn:focus{outline:2px solid var(--s-seal);outline-offset:1px}.field-textarea.svelte-m3wayn{resize:vertical;min-height:6rem;line-height:1.5}.field-mono.svelte-m3wayn{font-family:var(--s-font-mono)}.field-hint.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-ink-3)}.field-hint.svelte-m3wayn code:where(.svelte-m3wayn){font-family:var(--s-font-mono);font-size:var(--s-type-deed)}.field-error.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-seal)}.toggle-row.svelte-m3wayn{align-items:center;gap:var(--s-sp-3);cursor:pointer;font-size:var(--s-type-deed);display:flex}.toggle-row.svelte-m3wayn input[type=checkbox]:where(.svelte-m3wayn){appearance:none;border:var(--s-hair) solid var(--s-line);cursor:pointer;background:0 0;border-radius:2px;flex-shrink:0;width:1rem;height:1rem;position:relative}.toggle-row.svelte-m3wayn input[type=checkbox]:where(.svelte-m3wayn):checked{background:var(--s-seal);border-color:var(--s-seal)}.toggle-row.svelte-m3wayn input[type=checkbox]:where(.svelte-m3wayn):checked:after{content:"";border-top:0;border-bottom:1.4px solid #fff;border-left:1.4px solid #fff;border-right:0;width:8px;height:5px;position:absolute;top:1px;left:2px;transform:rotate(-45deg)}.toggle-label.svelte-m3wayn{color:var(--s-ink);font-weight:400}.toggle-hint.svelte-m3wayn{color:var(--s-ink-2);font-size:var(--s-type-deed)}.schedule-fieldset.svelte-m3wayn{gap:var(--s-sp-3);border:var(--s-hair) solid var(--s-line);padding:var(--s-sp-4);border-radius:2px;flex-direction:column;margin:0;display:flex}.schedule-row.svelte-m3wayn{align-items:center;gap:var(--s-sp-3);flex-wrap:wrap;display:flex}.schedule-params.svelte-m3wayn{align-items:center;gap:var(--s-sp-2);flex-wrap:wrap;display:flex}.param-label.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-ink-2);white-space:nowrap}.schedule-summary.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-ink-2);background:var(--s-paper-deep);padding:var(--s-sp-2) var(--s-sp-3);border-radius:2px;margin:0}.schedule-summary--error.svelte-m3wayn{color:var(--s-seal)}.advanced-details.svelte-m3wayn{border-top:var(--s-hair) solid var(--s-line);padding-top:var(--s-sp-3)}.advanced-summary.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:var(--s-sp-2);list-style:none;display:flex}.advanced-summary.svelte-m3wayn::-webkit-details-marker{display:none}.advanced-summary.svelte-m3wayn:before{content:"▶";font-size:10px;transition:transform .15s}details[open].svelte-m3wayn .advanced-summary:where(.svelte-m3wayn):before{transform:rotate(90deg)}.advanced-body.svelte-m3wayn{gap:var(--s-sp-1);margin-top:var(--s-sp-3);flex-direction:column;display:flex}.radio-row.svelte-m3wayn{gap:var(--s-sp-4);padding-top:var(--s-sp-2);flex-wrap:wrap;display:flex}.radio-label.svelte-m3wayn{align-items:center;gap:var(--s-sp-2);font-size:var(--s-type-deed);cursor:pointer;display:flex}.unknown-keys-notice.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-ink-2);background:var(--s-paper-deep);padding:var(--s-sp-3);border-radius:2px;margin:0}.unknown-keys-notice.svelte-m3wayn code:where(.svelte-m3wayn){font-family:var(--s-font-mono)}.save-error.svelte-m3wayn{font-size:var(--s-type-deed);color:var(--s-seal);background:color-mix(in srgb, var(--s-seal) 10%, transparent);border:1px solid color-mix(in srgb, var(--s-seal) 30%, transparent);padding:var(--s-sp-3);border-radius:2px;margin:0}@media (width<=400px){.schedule-row.svelte-m3wayn,.schedule-params.svelte-m3wayn{flex-direction:column;align-items:stretch}.field-input--narrow.svelte-m3wayn,.field-select--narrow.svelte-m3wayn{width:100%}.radio-row.svelte-m3wayn{flex-direction:column}}.ph.svelte-1xltcby{justify-content:space-between;align-items:flex-start;gap:var(--s-sp-4);padding:var(--s-sp-6) clamp(1rem, 4vw, 2rem);display:flex}.ph-title.svelte-1xltcby{font-family:var(--s-font-display);font-size:var(--s-type-voice);color:var(--s-ink);margin:0;font-weight:400}.ph-sub.svelte-1xltcby{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin:var(--s-sp-1) 0 0}.ph-actions.svelte-1xltcby{gap:var(--s-sp-2);flex-shrink:0;align-items:center;display:flex}.automation-list.svelte-1xltcby{gap:var(--s-sp-3);padding:0 clamp(1rem, 4vw, 2rem) var(--s-sp-5);flex-direction:column;display:flex}.automation-card.svelte-1xltcby{border:var(--s-hair) solid var(--s-line-soft);background:0 0;border-radius:2px;overflow:hidden}.automation-row.svelte-1xltcby{justify-content:space-between;align-items:flex-start;gap:var(--s-sp-4);padding:var(--s-sp-4) var(--s-sp-5);display:flex}.automation-main.svelte-1xltcby{flex:1;min-width:0}.automation-name.svelte-1xltcby{align-items:center;gap:var(--s-sp-2);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);flex-wrap:wrap;display:flex}.automation-desc.svelte-1xltcby{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin-top:var(--s-sp-1)}.automation-meta.svelte-1xltcby{align-items:flex-end;gap:var(--s-sp-1);flex-direction:column;flex-shrink:0;display:flex}.meta-item.svelte-1xltcby{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3);letter-spacing:var(--s-track-label);text-transform:uppercase}.meta-item-action.svelte-1xltcby{text-align:right;max-width:28ch}.badge.svelte-1xltcby{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;border:var(--s-hair) solid currentColor;background:0 0;border-radius:2px;padding:.1em .5em}.badge.badge-enabled.svelte-1xltcby{color:var(--s-moss)}.badge.badge-disabled.svelte-1xltcby,.badge-type.svelte-1xltcby{color:var(--s-ink-3)}.automation-footer.svelte-1xltcby{justify-content:space-between;align-items:center;gap:var(--s-sp-3);padding:var(--s-sp-2) var(--s-sp-5);border-top:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper-deep);display:flex}.automation-actions.svelte-1xltcby{gap:var(--s-sp-1);flex-wrap:wrap;justify-content:flex-end;display:flex}.automation-file.svelte-1xltcby{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3);letter-spacing:var(--s-track-label)}.panel-body{padding:0 clamp(1rem, 4vw, 2rem) var(--s-sp-5)}.empty-state-hint.svelte-1xltcby{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);margin-top:calc(-1 * var(--s-sp-2))}.empty-state-btn.svelte-1xltcby{margin-top:var(--s-sp-2)}.empty-state-hint.svelte-1xltcby code:where(.svelte-1xltcby){font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);background:var(--s-paper-deep);border-radius:2px;padding:1px 6px}.text-danger.svelte-1xltcby{color:var(--s-seal)}.confirm-prompt.svelte-1xltcby{margin:0 clamp(1rem, 4vw, 2rem) var(--s-sp-4);padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-seal);border-radius:2px}.confirm-prompt-title.svelte-1xltcby{margin:0 0 var(--s-sp-1) 0;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-seal)}.confirm-prompt.svelte-1xltcby p:where(.svelte-1xltcby){margin:0 0 var(--s-sp-2) 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.confirm-actions.svelte-1xltcby{gap:var(--s-sp-2);display:flex}.log-drawer-body.svelte-1xltcby{gap:var(--s-sp-4);flex-direction:column;display:flex}.log-drawer-copy.svelte-1xltcby{max-width:62ch;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2)}.log-drawer-actions.svelte-1xltcby{justify-content:space-between;align-items:center;gap:var(--s-sp-3);flex-wrap:wrap;display:flex}.log-drawer-hint.svelte-1xltcby{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3);letter-spacing:var(--s-track-label);text-transform:uppercase}.log-output.svelte-1xltcby{max-height:min(60dvh,42rem);padding:var(--s-sp-4);border:var(--s-hair) solid var(--s-line);background:var(--s-paper-deep);color:var(--s-ink);font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);white-space:pre-wrap;word-break:break-word;border-radius:2px;margin:0;line-height:1.6;overflow:auto}@media (width<=768px){.automation-row.svelte-1xltcby{flex-direction:column}.automation-meta.svelte-1xltcby{align-items:flex-start;gap:var(--s-sp-3);flex-direction:row}.meta-item-action.svelte-1xltcby{text-align:left;max-width:none}.automation-footer.svelte-1xltcby{flex-direction:column;align-items:flex-start}.automation-actions.svelte-1xltcby{justify-content:flex-start;width:100%}}.add-search.svelte-1ykz2x6{width:100%;margin-bottom:var(--s-sp-3)}.pick-list.svelte-1ykz2x6{margin:0 calc(var(--s-sp-5) * -1) calc(var(--s-sp-5) * -1)}.provider-pick.svelte-1ykz2x6{align-items:center;gap:var(--s-sp-3);width:100%;padding:var(--s-sp-3) var(--s-sp-5);border:none;border-bottom:var(--s-hair) solid var(--s-line-soft);cursor:pointer;text-align:left;background:0 0;font-family:inherit;display:flex}.provider-pick.svelte-1ykz2x6:hover{background:color-mix(in srgb, var(--s-ink) 4%, var(--s-paper))}.provider-pick--custom.svelte-1ykz2x6{border-top:var(--s-hair) solid var(--s-line)}.provider-name.svelte-1ykz2x6{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);flex:1}.provider-pick--custom.svelte-1ykz2x6 .provider-name:where(.svelte-1ykz2x6){color:var(--s-seal)}.provider-meta.svelte-1ykz2x6{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.empty.svelte-1ykz2x6{padding:var(--s-sp-6) var(--s-sp-5);text-align:center;color:var(--s-ink-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark)}.field-error.svelte-k6j09e{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-seal);text-transform:uppercase;letter-spacing:var(--s-track-label);margin-top:var(--s-sp-1)}.connect-back.svelte-1bnolke{width:32px;height:32px;color:var(--s-ink-2);font-size:var(--s-type-voice);cursor:pointer;background:0 0;border:none;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.connect-back.svelte-1bnolke:hover{color:var(--s-ink)}.connect-back.svelte-1bnolke:focus-visible{outline:var(--s-hair) solid var(--s-seal);outline-offset:2px}.auth-method-group.svelte-1bnolke{gap:var(--s-sp-2);flex-direction:column;display:flex}.auth-method-card.svelte-1bnolke{gap:var(--s-sp-1);padding:var(--s-sp-3) var(--s-sp-4);border:var(--s-hair) solid var(--s-line);cursor:pointer;text-align:left;background:0 0;border-radius:2px;flex-direction:column;font-family:inherit;display:flex}.auth-method-card.svelte-1bnolke:hover{border-color:var(--s-ink-2);background:color-mix(in srgb, var(--s-ink) 4%, var(--s-paper))}.method-label.svelte-1bnolke{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.method-type.svelte-1bnolke{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.form-stack.svelte-1btkq49{gap:var(--s-sp-4);flex-direction:column;display:flex}.optional.svelte-1btkq49{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.form-field .form-input{border:var(--s-hair) solid var(--s-line);height:auto;font-family:var(--s-font-mono);font-size:var(--s-type-deed);background:0 0;border-radius:2px;padding:.4em .6em}.form-field .form-input:focus{border-color:var(--s-seal);box-shadow:none}.result-list.svelte-15y8pah{padding-left:var(--s-sp-5);gap:var(--s-sp-1);margin:0 0 var(--s-sp-3);flex-direction:column;list-style:outside;display:flex}.result-list.svelte-15y8pah li:where(.svelte-15y8pah){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.result-list.svelte-15y8pah code:where(.svelte-15y8pah){font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2);background:var(--s-paper-deep);border-radius:2px;padding:1px 6px}.muted.svelte-15y8pah{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3);margin-left:var(--s-sp-2)}.feedback.inline.svelte-19zt4ct{margin:var(--s-sp-3) var(--s-sp-5);justify-content:space-between}.api-edge.svelte-19zt4ct{gap:var(--s-sp-3);padding:var(--s-sp-4) var(--s-sp-5);border-bottom:var(--s-hair) solid var(--s-line);background:var(--s-paper-deep);display:grid}.api-edge-head.svelte-19zt4ct h3:where(.svelte-19zt4ct){margin:0 0 var(--s-sp-1) 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.api-edge-head.svelte-19zt4ct p:where(.svelte-19zt4ct),.api-edge-endpoint.svelte-19zt4ct{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3);margin:0}.api-edge-endpoint.svelte-19zt4ct code:where(.svelte-19zt4ct),.api-edge-key.svelte-19zt4ct .form-input:where(.svelte-19zt4ct){font-family:var(--s-font-mono);font-size:var(--s-type-mark)}.api-edge-key.svelte-19zt4ct{gap:var(--s-sp-2);flex-wrap:wrap;align-items:center;display:flex}.api-edge-key.svelte-19zt4ct .form-input:where(.svelte-19zt4ct){border:var(--s-hair) solid var(--s-line);background:0 0;border-radius:2px;flex:16rem;min-width:0;padding:.4em .6em}.api-edge-error.svelte-19zt4ct{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-seal);margin:0}.connections-subtabs.svelte-19zt4ct{gap:var(--s-sp-2);padding:var(--s-sp-3) var(--s-sp-5);border-bottom:var(--s-hair) solid var(--s-line);display:flex;overflow-x:auto}.connections-subtabs.svelte-19zt4ct button:where(.svelte-19zt4ct){appearance:none;border:var(--s-hair) solid var(--s-line);color:var(--s-ink-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;cursor:pointer;white-space:nowrap;background:0 0;border-radius:2px;padding:.3em .9em}.connections-subtabs.svelte-19zt4ct button.active:where(.svelte-19zt4ct){border-color:var(--s-seal);color:var(--s-seal)}.cli-loading-state.svelte-19zt4ct{padding:var(--s-sp-5)}.assistant-cli-panel.svelte-19zt4ct{padding:var(--s-sp-5);gap:var(--s-sp-4);display:grid}.assistant-cli-header.svelte-19zt4ct{justify-content:space-between;align-items:flex-start;gap:var(--s-sp-3);display:flex}.assistant-cli-header.svelte-19zt4ct h3:where(.svelte-19zt4ct),.assistant-cli-header.svelte-19zt4ct p:where(.svelte-19zt4ct),.assistant-cli-copy.svelte-19zt4ct{margin:0}.assistant-cli-status.svelte-19zt4ct{border:var(--s-hair) solid var(--s-line);color:var(--s-ink-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;background:0 0;border-radius:2px;padding:.2em .6em}.assistant-cli-status.configured.svelte-19zt4ct{color:var(--s-moss);border-color:var(--s-moss)}.assistant-cli-paths.svelte-19zt4ct{gap:var(--s-sp-2);display:grid}.assistant-cli-paths.svelte-19zt4ct code:where(.svelte-19zt4ct){padding:var(--s-sp-2) var(--s-sp-3);background:var(--s-paper-deep);font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2);overflow-wrap:anywhere;border-radius:2px;display:block}.assistant-cli-actions.svelte-19zt4ct{gap:var(--s-sp-2);flex-wrap:wrap;display:flex}.assistant-cli-copy-muted.svelte-19zt4ct{color:var(--s-ink-3)}.providers-container.svelte-19zt4ct{border:var(--s-hair) solid var(--s-line-soft);border:var(--s-hair) solid var(--s-line-soft);border-radius:2px;overflow:hidden}.provider-row.svelte-19zt4ct{justify-content:space-between;align-items:center;gap:var(--s-sp-4);padding:var(--s-sp-4) var(--s-sp-5);border-bottom:var(--s-hair) solid var(--s-line-soft);display:flex}.provider-row.svelte-19zt4ct:last-child{border-bottom:none}.model-defaults.svelte-19zt4ct{gap:var(--s-sp-4);padding:var(--s-sp-4) var(--s-sp-5);border-bottom:var(--s-hair) solid var(--s-line);background:var(--s-paper-deep);grid-template-columns:1fr 1fr;display:grid}.model-field.svelte-19zt4ct{gap:var(--s-sp-1);flex-direction:column;display:flex}.model-field.svelte-19zt4ct .form-label{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.model-field.svelte-19zt4ct .form-input{border:var(--s-hair) solid var(--s-line);height:auto;font-family:var(--s-font-mono);font-size:var(--s-type-mark);background:0 0;border-radius:2px;padding:.4em .6em}.model-field.svelte-19zt4ct .form-input:focus{border-color:var(--s-seal)}.model-error.svelte-19zt4ct{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-seal);grid-column:1/-1;margin:0}.provider-id.svelte-19zt4ct{align-items:flex-start;gap:var(--s-sp-2);min-width:0;display:flex}.provider-id.svelte-19zt4ct>div:where(.svelte-19zt4ct){flex-direction:column;display:flex}.provider-name.svelte-19zt4ct{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);margin-bottom:var(--s-sp-1);display:block}.provider-desc.svelte-19zt4ct{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);display:block}.empty-hint.svelte-19zt4ct{color:var(--s-ink-3)}.confirm-prompt.svelte-19zt4ct{margin:var(--s-sp-3) var(--s-sp-5);padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-seal);border-radius:2px}.confirm-prompt-title.svelte-19zt4ct{margin:0 0 var(--s-sp-1) 0;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-seal)}.confirm-prompt.svelte-19zt4ct p:where(.svelte-19zt4ct){margin:0 0 var(--s-sp-2) 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.confirm-actions.svelte-19zt4ct{gap:var(--s-sp-2);display:flex}@media (width<=720px){.model-defaults.svelte-19zt4ct,.assistant-cli-header.svelte-19zt4ct{grid-template-columns:1fr;display:grid}}.controls.svelte-coqj2u{align-items:flex-end;gap:var(--s-sp-4);padding:var(--s-sp-4) var(--s-sp-6);border-bottom:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper-deep);flex-wrap:wrap;display:flex}.control-group.svelte-coqj2u{gap:var(--s-sp-1);flex-direction:column;display:flex}.control-group--toggle.svelte-coqj2u{justify-content:flex-end}.control-group--source.svelte-coqj2u{min-width:16rem}.control-label.svelte-coqj2u{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.control-input.svelte-coqj2u{height:32px;padding:0 var(--s-sp-3);border:var(--s-hair) solid var(--s-line);background:var(--s-paper);color:var(--s-ink);font-family:var(--s-font-display);font-size:var(--s-type-mark);border-radius:2px;min-width:140px}.control-input.svelte-coqj2u:focus{border-color:var(--s-ink-2);outline:none}.source-switch.svelte-coqj2u{align-items:center;gap:var(--s-sp-1);border:var(--s-hair) solid var(--s-line);background:var(--s-paper);border-radius:2px;padding:4px;display:inline-flex}.source-pill.svelte-coqj2u{min-height:32px;padding:0 var(--s-sp-3);color:var(--s-ink-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:2px}.source-pill.svelte-coqj2u:hover{background:color-mix(in srgb, var(--s-ink) 4%, var(--s-paper));color:var(--s-ink-2)}.source-pill--active.svelte-coqj2u{background:var(--s-paper-deep);color:var(--s-ink);border:var(--s-hair) solid var(--s-line)}.toggle-label.svelte-coqj2u{align-items:center;gap:var(--s-sp-2);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2);cursor:pointer;height:32px;display:flex}.log-output.svelte-coqj2u{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-2);background:color-mix(in srgb, var(--s-ink) 3%, var(--s-paper));border:var(--s-hair) solid var(--s-line-soft);padding:var(--s-sp-4);white-space:pre;tab-size:4;max-height:600px;margin:0;line-height:1.7;overflow-y:auto}.error-banner.svelte-coqj2u{padding:var(--s-sp-3) var(--s-sp-6);border-bottom:var(--s-hair) solid var(--s-error);color:var(--s-error);font-family:var(--s-font-display);font-size:var(--s-type-deed)}@media (width<=768px){.controls.svelte-coqj2u{flex-direction:column;align-items:stretch}.control-input.svelte-coqj2u{min-width:unset;width:100%}.source-switch.svelte-coqj2u{width:100%}.source-pill.svelte-coqj2u{flex:1}.log-output.svelte-coqj2u{max-height:400px}}.error-banner.svelte-epscb2{color:var(--s-seal);padding:var(--s-sp-2) var(--s-sp-3);border:var(--s-hair) solid var(--s-seal);margin-bottom:var(--s-sp-4);border-radius:2px}.empty-note.svelte-epscb2{font-size:var(--s-type-deed);color:var(--s-ink-2);font-family:var(--s-font-display)}.mono.svelte-epscb2{font-family:var(--s-font-mono);font-size:var(--s-type-mark)}.secrets-layout.svelte-epscb2{gap:var(--s-sp-4);grid-template-columns:minmax(16rem,22rem) 1fr;align-items:start;display:grid}@media (width<=720px){.secrets-layout.svelte-epscb2{grid-template-columns:1fr}}.secrets-list.svelte-epscb2{gap:var(--s-sp-1);flex-direction:column;display:flex}.secret-row.svelte-epscb2{align-items:center;gap:var(--s-sp-1);display:flex}.secret-row.active.svelte-epscb2 .secret-name:where(.svelte-epscb2){border-color:var(--s-ink-2)}.secret-name.svelte-epscb2{justify-content:space-between;align-items:center;gap:var(--s-sp-2);text-align:left;padding:var(--s-sp-2) var(--s-sp-3);border:var(--s-hair) solid var(--s-line);color:var(--s-ink);cursor:pointer;font-family:var(--s-font-mono);font-size:var(--s-type-mark);transition:border-color var(--s-t-quick) var(--s-ease);background:0 0;border-radius:2px;flex:1;display:flex}.secret-name.svelte-epscb2:hover{border-color:var(--s-ink-2)}.secret-size.svelte-epscb2{font-size:var(--s-type-mark-sm);color:var(--s-ink-3);font-family:var(--s-font-mono);letter-spacing:var(--s-track-label);text-transform:uppercase;flex-shrink:0}.new-secret.svelte-epscb2{gap:var(--s-sp-1);margin-top:var(--s-sp-3);flex-direction:column;display:flex}.new-secret-label.svelte-epscb2{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.new-secret-row.svelte-epscb2{gap:var(--s-sp-2);flex-wrap:wrap;display:flex}.secrets-editor.svelte-epscb2{min-width:0}.editor-head.svelte-epscb2{margin-bottom:var(--s-sp-2);justify-content:space-between;align-items:center;display:flex}.reveal-toggle.svelte-epscb2{align-items:center;gap:var(--s-sp-1);font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);display:flex}.reveal-toggle.svelte-epscb2 input[type=checkbox]:where(.svelte-epscb2){appearance:none;border:var(--s-hair) solid var(--s-line);cursor:pointer;background:0 0;border-radius:2px;flex-shrink:0;width:.9rem;height:.9rem;position:relative}.reveal-toggle.svelte-epscb2 input[type=checkbox]:where(.svelte-epscb2):checked{background:var(--s-seal);border-color:var(--s-seal)}.reveal-toggle.svelte-epscb2 input[type=checkbox]:where(.svelte-epscb2):checked:after{content:"";border-top:0;border-bottom:1.2px solid #fff;border-left:1.2px solid #fff;border-right:0;width:6px;height:4px;position:absolute;top:0;left:1px;transform:rotate(-45deg)}.editor-area.svelte-epscb2{width:100%;font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);resize:vertical;background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));border:var(--s-hair) solid var(--s-line-soft);color:var(--s-ink-2);padding:var(--s-sp-3);border-radius:2px}.editor-area.masked.svelte-epscb2{-webkit-text-security:disc}.editor-actions.svelte-epscb2{justify-content:flex-end;gap:var(--s-sp-2);margin-top:var(--s-sp-2);display:flex}.editor-empty.svelte-epscb2{justify-content:center;align-items:center;gap:var(--s-sp-3);padding:var(--s-sp-8) var(--s-sp-4);color:var(--s-ink-3);text-align:center;border:var(--s-hair) solid var(--s-line-soft);border-radius:2px;flex-direction:column;min-height:12rem;display:flex}.editor-empty.svelte-epscb2 .s-icon{opacity:.4}.editor-empty.svelte-epscb2 p:where(.svelte-epscb2){font-size:var(--s-type-deed);max-width:24rem;font-family:var(--s-font-display);color:var(--s-ink-2);margin:0}.error-banner.svelte-obkjlq{color:var(--s-seal);padding:var(--s-sp-2) var(--s-sp-3);border:var(--s-hair) solid var(--s-seal);margin-bottom:var(--s-sp-4);border-radius:2px}.settings-grid.svelte-obkjlq{gap:var(--s-sp-4);grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.settings-card.svelte-obkjlq{border:var(--s-hair) solid var(--s-line-soft);padding:var(--s-sp-4);background:0 0;border-radius:2px}.settings-card.svelte-obkjlq h3:where(.svelte-obkjlq){margin:0 0 var(--s-sp-2);font-family:var(--s-font-mono);font-size:var(--s-type-deed);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.section-note.svelte-obkjlq{margin:0 0 var(--s-sp-3);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2)}.field.svelte-obkjlq{gap:var(--s-sp-1);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2);display:grid}.field-inline.svelte-obkjlq{align-items:center;gap:var(--s-sp-2);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);display:flex}.control-input.svelte-obkjlq{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);border:0;border-bottom:var(--s-hair) solid var(--s-line);background:0 0;border-radius:0;width:100%;padding:.5rem 0}.control-input.svelte-obkjlq:focus{border-bottom-color:var(--s-ink-2);outline:none}.mono.svelte-obkjlq{font-family:var(--s-font-mono);font-size:var(--s-type-mark)}.field-hint.svelte-obkjlq{margin:var(--s-sp-2) 0 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3)}.path-chip.svelte-obkjlq{margin-bottom:var(--s-sp-3);padding:var(--s-sp-1) var(--s-sp-2);border:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper-deep);color:var(--s-ink-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);border-radius:2px;align-items:center;display:inline-flex}.mdns-chip.svelte-obkjlq{align-items:flex-start;gap:var(--s-sp-1);flex-direction:column}.mdns-muted.svelte-obkjlq{color:var(--s-ink-3)}.persona-editor.svelte-obkjlq{resize:vertical;min-height:26rem;font-family:var(--s-font-mono)!important;font-size:var(--s-type-mark-sm)!important;background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper))!important;border:var(--s-hair) solid var(--s-line-soft)!important;border-bottom:var(--s-hair) solid var(--s-line-soft)!important;padding:var(--s-sp-3)!important;color:var(--s-ink-2)!important;border-radius:2px!important}.unsaved-hint.svelte-obkjlq{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-seal)}.card-actions.svelte-obkjlq{justify-content:flex-end;align-items:center;gap:var(--s-sp-3);margin-top:var(--s-sp-3);display:flex}input[type=checkbox].svelte-obkjlq{appearance:none;border:var(--s-hair) solid var(--s-line);cursor:pointer;background:0 0;border-radius:2px;flex-shrink:0;width:1rem;height:1rem;position:relative}input[type=checkbox].svelte-obkjlq:checked{background:var(--s-seal);border-color:var(--s-seal)}input[type=checkbox].svelte-obkjlq:checked:after{content:"";border-top:0;border-bottom:1.4px solid #fff;border-left:1.4px solid #fff;border-right:0;width:8px;height:5px;position:absolute;top:1px;left:2px;transform:rotate(-45deg)}@media (width<=900px){.settings-grid.svelte-obkjlq{grid-template-columns:1fr}}@media (width<=600px){.persona-editor.svelte-obkjlq{min-height:14rem}}.tool-strip.svelte-icksz3{gap:var(--s-sp-2);flex-wrap:wrap;align-items:center;display:flex}.tool-strip-muted.svelte-icksz3{opacity:.65}.tool-strip-bordered.svelte-icksz3{padding-top:var(--s-sp-2);border-top:var(--s-hair) solid var(--s-line-soft)}.tool-icon.svelte-icksz3{justify-content:center;align-items:center;display:flex}.tool-icon-btn.svelte-icksz3{padding:2px var(--s-sp-1);color:var(--s-ink-3);cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;transition:opacity .12s;display:inline-flex}.tool-icon-btn.svelte-icksz3:hover{opacity:.6}.tool-icon-btn.svelte-icksz3:focus-visible{outline:var(--s-hair) solid var(--s-line);outline-offset:2px}.tool-icon-btn.selected.svelte-icksz3{text-decoration:underline;-webkit-text-decoration-color:var(--s-seal);text-decoration-color:var(--s-seal);text-underline-offset:3px}.tool-modal-scrim.svelte-icksz3{z-index:210;background:#00000059;position:fixed;inset:0}.tool-modal-shell.svelte-icksz3{z-index:211;padding:var(--s-sp-6);pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tool-modal.svelte-icksz3{pointer-events:auto;background:var(--s-paper);border:var(--s-hair) solid var(--s-line);border-radius:2px;width:min(42rem,100%);max-height:min(80vh,48rem);overflow:auto}.tool-modal-header.svelte-icksz3{justify-content:space-between;align-items:flex-start;gap:var(--s-sp-3);padding:var(--s-sp-4);border-bottom:var(--s-hair) solid var(--s-line);display:flex}.tool-modal-header-copy.svelte-icksz3{min-width:0}.tool-modal-kicker.svelte-icksz3{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3)}.tool-modal-title.svelte-icksz3{margin:var(--s-sp-1) 0 0;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);font-weight:400}.tool-modal-close.svelte-icksz3{width:2rem;height:2rem;color:var(--s-ink-3);cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;padding:0;transition:color .12s;display:inline-flex}.tool-modal-close.svelte-icksz3:hover{color:var(--s-ink)}.tool-modal-close.svelte-icksz3:focus-visible{outline:var(--s-hair) solid var(--s-line);outline-offset:2px}.tool-modal-grid.svelte-icksz3{padding:var(--s-sp-4);flex-direction:column;gap:0;display:flex}.tool-modal-row.svelte-icksz3{gap:var(--s-sp-3);padding-bottom:var(--s-sp-3);margin-bottom:var(--s-sp-3);border-bottom:var(--s-hair) solid var(--s-line-soft);grid-template-columns:minmax(7rem,9rem) minmax(0,1fr);align-items:start;display:grid}.tool-modal-row.svelte-icksz3:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.tool-modal-label.svelte-icksz3{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3)}.tool-modal-value.svelte-icksz3{min-width:0;font-family:var(--s-font-mono);font-size:var(--s-type-deed);color:var(--s-ink-2);line-height:1.5}.tool-inline-error.svelte-icksz3{color:var(--s-seal)}.tool-modal-value.svelte-icksz3 pre:where(.svelte-icksz3){padding:var(--s-sp-2) var(--s-sp-3);border-left:var(--s-hair) solid var(--s-line);color:var(--s-ink-2);font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);white-space:pre-wrap;word-break:break-word;background:0 0;margin:0;line-height:1.5}.tool-pre-error.svelte-icksz3{color:var(--s-seal)}@media (width<=640px){.tool-modal-row.svelte-icksz3{gap:var(--s-sp-1);grid-template-columns:1fr}}.error-banner.svelte-z6w8je{color:var(--s-seal);padding:var(--s-sp-2) var(--s-sp-3);border:var(--s-hair) solid var(--s-seal);margin-bottom:var(--s-sp-4);font-family:var(--s-font-display);font-size:var(--s-type-deed);border-radius:2px}.endpoint-banner.svelte-z6w8je{justify-content:space-between;align-items:center;gap:var(--s-sp-4);padding:var(--s-sp-3) var(--s-sp-5);border:var(--s-hair) solid var(--s-line-soft);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));margin-bottom:var(--s-sp-4);border-radius:2px;flex-wrap:wrap;display:flex}.endpoint-label.svelte-z6w8je{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.endpoint-value.svelte-z6w8je{font-family:var(--s-font-display);font-size:var(--s-type-voice);color:var(--s-ink);margin-top:var(--s-sp-1);font-weight:400}.endpoint-url.svelte-z6w8je{margin-top:var(--s-sp-1);font-family:var(--s-font-mono);font-size:var(--s-type-deed);color:var(--s-ink-2)}.stream-badge.svelte-z6w8je{min-width:7rem;padding:var(--s-sp-2) var(--s-sp-3);border:var(--s-hair) solid currentColor;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;border-radius:2px;justify-content:center;align-items:center;display:inline-flex}.stream-badge--connected.svelte-z6w8je{color:var(--s-moss)}.stream-badge--connecting.svelte-z6w8je{color:var(--s-ink-3)}.stream-badge--disconnected.svelte-z6w8je{color:var(--s-seal)}.summary-grid.svelte-z6w8je{gap:var(--s-sp-3);margin-bottom:var(--s-sp-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.summary-card.svelte-z6w8je{gap:var(--s-sp-1);padding:var(--s-sp-4);border:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper-deep);border-radius:2px;display:grid}.summary-card--warning.svelte-z6w8je,.summary-card--danger.svelte-z6w8je{border-color:var(--s-seal)}.summary-label.svelte-z6w8je{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.summary-value.svelte-z6w8je{font-family:var(--s-font-display);color:var(--s-ink);font-size:clamp(1.2rem,3vw,1.9rem)}.summary-value--small.svelte-z6w8je{font-size:clamp(1rem,2vw,1.35rem)}.summary-card.svelte-z6w8je small:where(.svelte-z6w8je){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2)}.activity-layout.svelte-z6w8je{gap:var(--s-sp-4);margin-bottom:var(--s-sp-4);grid-template-columns:1.15fr .85fr;display:grid}.card-section.svelte-z6w8je{border:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper-deep);padding:var(--s-sp-4);border-radius:2px;min-width:0}.card-head.svelte-z6w8je{justify-content:space-between;align-items:center;gap:var(--s-sp-2);margin-bottom:var(--s-sp-3);display:flex}.card-head.svelte-z6w8je h3:where(.svelte-z6w8je){font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin:0}.card-head.svelte-z6w8je span:where(.svelte-z6w8je){font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.subsection-head.svelte-z6w8je{justify-content:space-between;align-items:center;gap:var(--s-sp-2);margin:var(--s-sp-4) 0 var(--s-sp-2);display:flex}.subsection-head.svelte-z6w8je h4:where(.svelte-z6w8je){font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin:0}.subsection-head.svelte-z6w8je span:where(.svelte-z6w8je){font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.attention-list.svelte-z6w8je,.session-list.svelte-z6w8je,.selected-message-list.svelte-z6w8je,.feed-list.svelte-z6w8je,.hot-session-list.svelte-z6w8je{gap:var(--s-sp-2);flex-direction:column;display:flex}.attention-item.svelte-z6w8je{padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper);border-radius:2px}.attention-item--high.svelte-z6w8je{border-color:var(--s-seal)}.attention-item--medium.svelte-z6w8je{border-color:color-mix(in srgb, var(--s-seal) 45%, var(--s-line))}.attention-top.svelte-z6w8je{justify-content:space-between;align-items:center;gap:var(--s-sp-2);margin-bottom:var(--s-sp-1);display:flex}.attention-top.svelte-z6w8je strong:where(.svelte-z6w8je){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.attention-top.svelte-z6w8je span:where(.svelte-z6w8je){font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.attention-item.svelte-z6w8je p:where(.svelte-z6w8je){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2);margin:0}.attention-session.svelte-z6w8je{margin-top:var(--s-sp-2);color:var(--s-ink-2);cursor:pointer;text-align:left;word-break:break-all;max-width:100%;font-family:var(--s-font-mono);font-size:var(--s-type-mark);background:0 0;border:0;padding:0}.session-row.svelte-z6w8je{justify-content:space-between;align-items:center;gap:var(--s-sp-3);text-align:left;width:100%;padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper);color:var(--s-ink);cursor:pointer;appearance:none;border-radius:2px;display:flex}.session-row.svelte-z6w8je:hover{background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper))}.session-row.selected.svelte-z6w8je{border-color:var(--s-ink-2)}.session-title.svelte-z6w8je{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.session-meta.svelte-z6w8je,.session-id.svelte-z6w8je{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.session-stats.svelte-z6w8je{justify-items:end;gap:var(--s-sp-1);display:grid}.feed-row.svelte-z6w8je{padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper);gap:var(--s-sp-1);border-radius:2px;display:grid}.feed-top.svelte-z6w8je{justify-content:space-between;align-items:center;gap:var(--s-sp-2);display:flex}.feed-type.svelte-z6w8je,.feed-top.svelte-z6w8je span:where(.svelte-z6w8je):last-child{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3)}.feed-row.svelte-z6w8je strong:where(.svelte-z6w8je){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.feed-row.svelte-z6w8je p:where(.svelte-z6w8je){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-2);margin:0}.table-scroll.svelte-z6w8je{overflow-x:auto}.data-table.svelte-z6w8je{border-collapse:collapse;width:100%}.data-table.svelte-z6w8je th:where(.svelte-z6w8je),.data-table.svelte-z6w8je td:where(.svelte-z6w8je){padding:var(--s-sp-2) var(--s-sp-1);border-bottom:var(--s-hair) solid var(--s-line-soft);text-align:left;font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.data-table.svelte-z6w8je tr:where(.svelte-z6w8je):hover td:where(.svelte-z6w8je){background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper))}.data-table.svelte-z6w8je th:where(.svelte-z6w8je){font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.hot-session-row.svelte-z6w8je{justify-content:space-between;gap:var(--s-sp-3);padding:var(--s-sp-3);border-bottom:var(--s-hair) solid var(--s-line-soft);display:flex}.selected-meta.svelte-z6w8je{gap:var(--s-sp-3);margin-bottom:var(--s-sp-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.selected-meta.svelte-z6w8je div:where(.svelte-z6w8je){gap:var(--s-sp-1);padding:var(--s-sp-3);border:var(--s-hair) solid var(--s-line-soft);background:var(--s-paper);border-radius:2px;display:grid}.selected-meta.svelte-z6w8je span:where(.svelte-z6w8je){font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.selected-meta.svelte-z6w8je strong:where(.svelte-z6w8je){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink)}.message-panel-head.svelte-z6w8je{justify-content:space-between;align-items:center;gap:var(--s-sp-2);margin-bottom:var(--s-sp-3);display:flex}.empty-card.svelte-z6w8je,.empty-cell.svelte-z6w8je{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);text-align:center;padding:var(--s-sp-4);border:var(--s-hair) solid var(--s-line-soft);border-radius:2px}.mono.svelte-z6w8je{font-family:var(--s-font-mono)}@media (width<=1100px){.summary-grid.svelte-z6w8je{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-layout.svelte-z6w8je{grid-template-columns:1fr}.selected-meta.svelte-z6w8je{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.summary-grid.svelte-z6w8je,.selected-meta.svelte-z6w8je{grid-template-columns:1fr}}.stats-section.svelte-1jrmvb5{gap:var(--s-sp-4);flex-direction:column;display:flex}.stats-header.svelte-1jrmvb5{justify-content:space-between;align-items:flex-end;gap:var(--s-sp-4);flex-wrap:wrap;display:flex}.stats-header.svelte-1jrmvb5 h3:where(.svelte-1jrmvb5){margin:0 0 var(--s-sp-2);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);font-weight:400}.stats-loading.svelte-1jrmvb5,.stats-unavailable.svelte-1jrmvb5{align-items:center;gap:var(--s-sp-3);padding:var(--s-sp-4);border:var(--s-hair) solid var(--s-line-soft);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3);border-radius:2px;display:flex}.stats-status.svelte-1jrmvb5{gap:var(--s-sp-2);flex-direction:column;display:flex}.stats-badge.svelte-1jrmvb5{width:fit-content;padding:1px var(--s-sp-2);border:var(--s-hair) solid var(--s-moss);color:var(--s-moss);font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;border-radius:2px;align-items:center;display:inline-flex}.stats-badge-warn.svelte-1jrmvb5{border-color:var(--s-seal);color:var(--s-seal)}.stats-badge-unknown.svelte-1jrmvb5{border-color:var(--s-line);color:var(--s-ink-3)}.stats-advisories.svelte-1jrmvb5{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:0;padding-left:1.25rem}.stats-cards.svelte-1jrmvb5{gap:var(--s-sp-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.stats-card.svelte-1jrmvb5,.stats-grid.svelte-1jrmvb5{padding:var(--s-sp-4);border:var(--s-hair) solid var(--s-line-soft);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));border-radius:2px}.stats-card.svelte-1jrmvb5{gap:var(--s-sp-1);flex-direction:column;display:flex}.stats-value.svelte-1jrmvb5{font-family:var(--s-font-display);font-size:var(--s-type-voice);color:var(--s-ink);font-weight:400;line-height:1.1}.stats-label.svelte-1jrmvb5{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.stats-grid.svelte-1jrmvb5{gap:var(--s-sp-3) var(--s-sp-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stats-row.svelte-1jrmvb5{justify-content:space-between;gap:var(--s-sp-3);border-bottom:var(--s-hair) solid var(--s-line-soft);padding-bottom:var(--s-sp-2);font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3);display:flex}.stats-row.svelte-1jrmvb5 strong:where(.svelte-1jrmvb5){font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);text-align:right;font-weight:400}.stats-row--wide.svelte-1jrmvb5{grid-column:1/-1;align-items:start}@media (width<=640px){.stats-row.svelte-1jrmvb5{flex-direction:column}.stats-row.svelte-1jrmvb5 strong:where(.svelte-1jrmvb5){text-align:left}}.input-with-toggle.svelte-df4dyz{align-items:stretch;gap:var(--s-sp-2);display:flex}.control-input.svelte-df4dyz{font-family:var(--s-font-display);font-size:var(--s-type-whisper);color:var(--s-ink);border:0;border-bottom:var(--s-hair) solid var(--s-line);background:0 0;border-radius:0;flex:auto;min-width:0;padding:.5rem 0}.control-input.svelte-df4dyz:focus{border-bottom-color:var(--s-ink-2);outline:none}.control-input.svelte-df4dyz::placeholder{color:var(--s-ink-3)}.btn-icon.svelte-df4dyz{padding:0 var(--s-sp-2);min-height:38px;color:var(--s-ink-3);font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);cursor:pointer;transition:color var(--s-t-quick) var(--s-ease);background:0 0;border:0;flex-shrink:0}.btn-icon.svelte-df4dyz:hover:not(:disabled){color:var(--s-ink-2)}.btn-icon.svelte-df4dyz:focus-visible{outline:2px solid var(--s-ink-2);outline-offset:2px}.btn-icon.svelte-df4dyz:disabled{opacity:.4;cursor:not-allowed}.config-section.svelte-y5k1u8{gap:var(--s-sp-3);flex-direction:column;display:flex}.section-header.svelte-y5k1u8{justify-content:space-between;align-items:center;gap:var(--s-sp-3);flex-wrap:wrap;display:flex}.section-actions.svelte-y5k1u8{gap:var(--s-sp-2);flex-wrap:wrap;display:flex}.section-title.svelte-y5k1u8{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);padding-bottom:var(--s-sp-2);border-bottom:var(--s-hair) solid var(--s-line-soft);margin:0}.section-note.svelte-y5k1u8{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);max-width:72ch;margin:0}.controls--grid.svelte-y5k1u8{gap:var(--s-sp-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.control-group.svelte-y5k1u8{gap:var(--s-sp-2);flex-direction:column;min-width:0;display:flex}.control-group--wide.svelte-y5k1u8{grid-column:1/-1}.control-label.svelte-y5k1u8{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.control-input.svelte-y5k1u8{border:0;border-bottom:var(--s-hair) solid var(--s-line);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);background:0 0;width:100%;padding:.5rem 0}.control-input--narrow.svelte-y5k1u8{max-width:8rem}.control-input.svelte-y5k1u8:focus{border-bottom-color:var(--s-ink-2);outline:none}.config-section.svelte-gfn07p{gap:var(--s-sp-3);flex-direction:column;display:flex}.section-title.svelte-gfn07p{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);padding-bottom:var(--s-sp-2);border-bottom:var(--s-hair) solid var(--s-line-soft);margin:0}.section-note.svelte-gfn07p{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);max-width:72ch;margin:0}.controls--grid.svelte-gfn07p{gap:var(--s-sp-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.control-group.svelte-gfn07p{gap:var(--s-sp-2);flex-direction:column;min-width:0;display:flex}.control-group--wide.svelte-gfn07p{grid-column:1/-1}.control-label.svelte-gfn07p{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.control-input.svelte-gfn07p{border:0;border-bottom:var(--s-hair) solid var(--s-line);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);background:0 0;width:100%;padding:.5rem 0}.control-input--narrow.svelte-gfn07p{max-width:8rem}.control-input.svelte-gfn07p:focus{border-bottom-color:var(--s-ink-2);outline:none}.adv-details.svelte-gfn07p{border:var(--s-hair) solid var(--s-line-soft);margin-top:var(--s-sp-4);border-radius:2px}.adv-summary.svelte-gfn07p{cursor:pointer;padding:var(--s-sp-3) var(--s-sp-4);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);list-style:none}.adv-summary.svelte-gfn07p:hover{color:var(--s-ink-2)}.adv-details[open].svelte-gfn07p .adv-summary:where(.svelte-gfn07p){border-bottom:var(--s-hair) solid var(--s-line-soft)}.adv-body.svelte-gfn07p{padding:var(--s-sp-4)}.report-section.svelte-l50p56{gap:var(--s-sp-4);flex-direction:column;display:flex}.report-header.svelte-l50p56{justify-content:space-between;align-items:flex-end;gap:var(--s-sp-4);flex-wrap:wrap;display:flex}.report-header.svelte-l50p56 h3:where(.svelte-l50p56){margin:0 0 var(--s-sp-2);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);font-weight:400}.report-controls.svelte-l50p56{align-items:end;gap:var(--s-sp-3);flex-wrap:wrap;display:flex}.control-field.svelte-l50p56{gap:var(--s-sp-1);min-width:11rem;font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);display:grid}.control-input.svelte-l50p56{border:0;border-bottom:var(--s-hair) solid var(--s-line);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);background:0 0;width:100%;padding:.5rem 0}.control-input.svelte-l50p56:focus{border-bottom-color:var(--s-ink-2);outline:none}.report-frame-wrap.svelte-l50p56{border:var(--s-hair) solid var(--s-line-soft);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));border-radius:2px;min-height:70dvh;position:relative;overflow:hidden}.report-loading.svelte-l50p56{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3);background:color-mix(in srgb, var(--s-paper) 88%, transparent);z-index:1;place-items:center;display:grid;position:absolute;inset:0}.report-frame.svelte-l50p56{background:var(--s-paper-deep);border:0;width:100%;min-height:70dvh;display:block}.report-error.svelte-l50p56{justify-content:center;align-items:center;gap:var(--s-sp-3);padding:var(--s-sp-6);color:var(--s-seal);font-family:var(--s-font-display);font-size:var(--s-type-deed);text-align:center;flex-direction:column;min-height:30dvh;display:flex}.report-error.svelte-l50p56 p:where(.svelte-l50p56){margin:0}@media (width<=640px){.report-controls.svelte-l50p56{width:100%}.control-field.svelte-l50p56{min-width:min(100%,11rem)}.report-frame-wrap.svelte-l50p56,.report-frame.svelte-l50p56{min-height:62dvh}}.profile-row.svelte-zzh9mp{align-items:center;gap:var(--s-sp-2);padding:var(--s-sp-2) var(--s-sp-3);border-bottom:var(--s-hair) solid var(--s-line-soft);display:flex}.profile-row-name.svelte-zzh9mp{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.profile-row-actions.svelte-zzh9mp{gap:var(--s-sp-2);flex-shrink:0;display:flex}.badge.svelte-zzh9mp{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;padding:1px var(--s-sp-2);background:color-mix(in srgb, var(--s-ink) 4%, var(--s-paper));color:var(--s-ink-3);border:var(--s-hair) solid var(--s-line-soft);white-space:nowrap;border-radius:2px;flex-shrink:0}.badge--default.svelte-zzh9mp{color:var(--s-seal);border-color:var(--s-seal);background:color-mix(in srgb, var(--s-seal) 6%, var(--s-paper))}.config-section.svelte-zwwvog{gap:var(--s-sp-4);flex-direction:column;display:flex}.section-title.svelte-zwwvog{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);padding-bottom:var(--s-sp-2);border-bottom:var(--s-hair) solid var(--s-line-soft);margin:0;font-weight:400}.section-title-aka.svelte-zwwvog{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);color:var(--s-ink-3);margin-left:var(--s-sp-2)}.section-note.svelte-zwwvog,.empty-note.svelte-zwwvog{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:0}.profile-empty.svelte-zwwvog{align-items:flex-start;gap:var(--s-sp-2);margin-bottom:var(--s-sp-2);color:var(--s-ink-3);flex-direction:column;display:flex}.profile-empty.svelte-zwwvog .s-icon{opacity:.35}.profile-list.svelte-zwwvog{flex-direction:column;gap:0;display:flex}.config-section.svelte-anyxpa{gap:var(--s-sp-4);flex-direction:column;display:flex}.section-title.svelte-anyxpa{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);padding-bottom:var(--s-sp-2);border-bottom:var(--s-hair) solid var(--s-line-soft);margin:0;font-weight:400}.section-title-aka.svelte-anyxpa{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);color:var(--s-ink-3);margin-left:var(--s-sp-2)}.section-note.svelte-anyxpa,.empty-note.svelte-anyxpa{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:0}.profile-empty.svelte-anyxpa{align-items:flex-start;gap:var(--s-sp-2);margin-bottom:var(--s-sp-2);color:var(--s-ink-3);flex-direction:column;display:flex}.profile-empty.svelte-anyxpa .s-icon{opacity:.35}.profile-list.svelte-anyxpa{flex-direction:column;gap:0;display:flex}.badge.svelte-anyxpa{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;padding:1px var(--s-sp-2);background:color-mix(in srgb, var(--s-ink) 4%, var(--s-paper));color:var(--s-ink-3);border:var(--s-hair) solid var(--s-line-soft);white-space:nowrap;border-radius:2px;flex-shrink:0}.config-section.svelte-1ngozvb{gap:var(--s-sp-4);flex-direction:column;display:flex}.section-title.svelte-1ngozvb{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);padding-bottom:var(--s-sp-2);border-bottom:var(--s-hair) solid var(--s-line-soft);margin:0;font-weight:400}.section-title-aka.svelte-1ngozvb{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);color:var(--s-ink-3);margin-left:var(--s-sp-2)}.section-note.svelte-1ngozvb,.empty-note.svelte-1ngozvb{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:0}.profile-empty.svelte-1ngozvb{align-items:flex-start;gap:var(--s-sp-2);margin-bottom:var(--s-sp-2);color:var(--s-ink-3);flex-direction:column;display:flex}.profile-empty.svelte-1ngozvb .s-icon{opacity:.35}.profile-list.svelte-1ngozvb{flex-direction:column;gap:0;display:flex}.profile-row-desc.svelte-1ngozvb{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3);text-overflow:ellipsis;white-space:nowrap;max-width:20rem;overflow:hidden}.controls.svelte-1gmn25z{gap:var(--s-sp-4);flex-direction:column;display:flex}.controls--grid.svelte-1gmn25z{gap:var(--s-sp-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1gmn25z{gap:var(--s-sp-1);flex-direction:column;display:flex}.control-group--wide.svelte-1gmn25z{grid-column:1/-1}.control-label.svelte-1gmn25z{font-size:var(--s-type-deed);color:var(--s-ink-2);font-weight:400}.control-input.svelte-1gmn25z{font-size:var(--s-type-deed);color:var(--s-ink);background:var(--s-paper);border:var(--s-hair) solid var(--s-line);padding:var(--s-sp-2) var(--s-sp-3);border-radius:2px;width:100%}.control-input--narrow.svelte-1gmn25z{max-width:8rem}.control-input.svelte-1gmn25z:focus{outline:2px solid var(--s-seal);outline-offset:1px}.control-input.svelte-1gmn25z:disabled{opacity:.5;cursor:not-allowed}.toggle-row.svelte-1gmn25z{align-items:center;gap:var(--s-sp-3);cursor:pointer;font-size:var(--s-type-deed);display:flex}.toggle-row.svelte-1gmn25z input[type=checkbox]:where(.svelte-1gmn25z){flex-shrink:0;width:1rem;height:1rem}.toggle-label.svelte-1gmn25z{color:var(--s-ink);font-weight:400}.toggle-hint.svelte-1gmn25z{color:var(--s-ink-2);font-size:var(--s-type-deed)}.feat-hint.svelte-1gmn25z{font-size:var(--s-type-deed);color:var(--s-ink-2)}.drawer-scrim.svelte-1gmn25z{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1gmn25z{background:var(--s-paper);border-left:var(--s-hair) solid var(--s-line);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1gmn25z-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1gmn25z-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1gmn25z{padding:var(--s-sp-4) var(--s-sp-6);border-bottom:var(--s-hair) solid var(--s-line);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1gmn25z{font-size:var(--s-type-deed);color:var(--s-ink);margin:0;font-weight:400}.drawer-close.svelte-1gmn25z{border:var(--s-hair) solid var(--s-line);width:2rem;height:2rem;color:var(--s-ink-2);cursor:pointer;font-size:var(--s-type-deed);background:0 0;border-radius:2px;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1gmn25z:hover{background:var(--s-paper);color:var(--s-ink)}.drawer-body.svelte-1gmn25z{padding:var(--s-sp-6);gap:var(--s-sp-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1gmn25z{justify-content:flex-end;gap:var(--s-sp-3);padding:var(--s-sp-4) var(--s-sp-6);border-top:var(--s-hair) solid var(--s-line);flex-shrink:0;display:flex}.controls.svelte-1evj0pt{gap:var(--s-sp-4);flex-direction:column;display:flex}.controls--grid.svelte-1evj0pt{gap:var(--s-sp-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1evj0pt{gap:var(--s-sp-1);flex-direction:column;display:flex}.control-group--wide.svelte-1evj0pt{grid-column:1/-1}.control-label.svelte-1evj0pt{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.control-input.svelte-1evj0pt{border:0;border-bottom:var(--s-hair) solid var(--s-line);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);background:0 0;width:100%;padding:.5rem 0}.control-input.svelte-1evj0pt:focus{border-bottom-color:var(--s-ink-2);outline:none}.control-input.svelte-1evj0pt:disabled{opacity:.4;cursor:not-allowed}.drawer-scrim.svelte-1evj0pt{z-index:200;background:#0000004d;position:fixed;inset:0}.drawer.svelte-1evj0pt{background:var(--s-paper);border-left:var(--s-hair) solid var(--s-line);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1evj0pt-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes svelte-1evj0pt-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1evj0pt{padding:var(--s-sp-4) var(--s-sp-6);border-bottom:var(--s-hair) solid var(--s-line);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1evj0pt{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);margin:0;font-weight:400}.drawer-close.svelte-1evj0pt{appearance:none;border:var(--s-hair) solid var(--s-line);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);cursor:pointer;background:0 0;border-radius:2px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:.3em .9em;display:flex}.drawer-close.svelte-1evj0pt:hover{color:var(--s-ink);border-color:var(--s-ink-2)}.drawer-body.svelte-1evj0pt{padding:var(--s-sp-6);gap:var(--s-sp-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1evj0pt{justify-content:flex-end;gap:var(--s-sp-3);padding:var(--s-sp-4) var(--s-sp-6);border-top:var(--s-hair) solid var(--s-line);flex-shrink:0;display:flex}.controls.svelte-1ndbe78{gap:var(--s-sp-4);flex-direction:column;display:flex}.controls--grid.svelte-1ndbe78{gap:var(--s-sp-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1ndbe78{gap:var(--s-sp-1);flex-direction:column;display:flex}.control-group--wide.svelte-1ndbe78{grid-column:1/-1}.control-label.svelte-1ndbe78{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.control-input.svelte-1ndbe78{border:0;border-bottom:var(--s-hair) solid var(--s-line);font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);background:0 0;width:100%;padding:.5rem 0}.control-input--narrow.svelte-1ndbe78{max-width:8rem}.control-input.svelte-1ndbe78:focus{border-bottom-color:var(--s-ink-2);outline:none}.control-input.svelte-1ndbe78:disabled{opacity:.4;cursor:not-allowed}.feat-name.svelte-1ndbe78{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink);display:block}.feat-hint.svelte-1ndbe78{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3)}.proc-list.svelte-1ndbe78{gap:var(--s-sp-2);flex-direction:column;display:flex}.proc-card.svelte-1ndbe78{border:var(--s-hair) solid var(--s-line-soft);background:color-mix(in srgb, var(--s-ink) 2%, var(--s-paper));padding:var(--s-sp-3);border-radius:2px}.proc-head.svelte-1ndbe78{align-items:center;gap:var(--s-sp-2);grid-template-columns:1.5rem 1fr 9rem 11rem 7rem;display:grid}@media (width<=600px){.proc-head.svelte-1ndbe78{grid-template-columns:1.5rem 1fr}.proc-head.svelte-1ndbe78>:where(.svelte-1ndbe78):nth-child(n+3){grid-column:1/-1}}.proc-head.svelte-1ndbe78 input[type=checkbox]:where(.svelte-1ndbe78){width:1rem;height:1rem;accent-color:var(--s-seal)}.proc-name.svelte-1ndbe78{min-width:0}.proc-adv.svelte-1ndbe78{margin-top:var(--s-sp-2)}.proc-adv.svelte-1ndbe78>summary:where(.svelte-1ndbe78){cursor:pointer;font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);-webkit-user-select:none;user-select:none;list-style:none}.proc-adv.svelte-1ndbe78>summary:where(.svelte-1ndbe78):hover{color:var(--s-ink-2)}.proc-adv-grid.svelte-1ndbe78{gap:var(--s-sp-2);margin-top:var(--s-sp-2);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));display:grid}.adv-field.svelte-1ndbe78{flex-direction:column;gap:2px;display:flex}.adv-field.svelte-1ndbe78>span:where(.svelte-1ndbe78){font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.adv-field--check.svelte-1ndbe78{align-items:center;gap:var(--s-sp-2);flex-direction:row}.adv-field--check.svelte-1ndbe78 input[type=checkbox]:where(.svelte-1ndbe78){accent-color:var(--s-seal)}.adv-field--wide.svelte-1ndbe78{grid-column:1/-1}.adv-sublabel.svelte-1ndbe78{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin-bottom:2px;display:block}.drawer-scrim.svelte-1ndbe78{z-index:200;background:#0000004d;position:fixed;inset:0}.drawer.svelte-1ndbe78{background:var(--s-paper);border-left:var(--s-hair) solid var(--s-line);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1ndbe78-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes svelte-1ndbe78-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1ndbe78{padding:var(--s-sp-4) var(--s-sp-6);border-bottom:var(--s-hair) solid var(--s-line);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1ndbe78{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink);margin:0;font-weight:400}.drawer-close.svelte-1ndbe78{appearance:none;border:var(--s-hair) solid var(--s-line);font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);cursor:pointer;background:0 0;border-radius:2px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:.3em .9em;display:flex}.drawer-close.svelte-1ndbe78:hover{color:var(--s-ink);border-color:var(--s-ink-2)}.drawer-body.svelte-1ndbe78{padding:var(--s-sp-6);gap:var(--s-sp-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1ndbe78{justify-content:flex-end;gap:var(--s-sp-3);padding:var(--s-sp-4) var(--s-sp-6);border-top:var(--s-hair) solid var(--s-line);flex-shrink:0;display:flex}.k-tabs.svelte-19wb2va{scrollbar-width:none;border-bottom:var(--s-hair) solid var(--s-line-soft);flex-wrap:nowrap;gap:0;display:flex;overflow-x:auto}.k-tabs.svelte-19wb2va::-webkit-scrollbar{display:none}.k-tab.svelte-19wb2va{appearance:none;cursor:pointer;font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);padding:var(--s-sp-2) var(--s-sp-4);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:1 0 auto;min-height:2.75rem;margin-bottom:-1px}.k-tab.svelte-19wb2va:hover{color:var(--s-ink-2)}.k-tab.svelte-19wb2va:focus-visible{outline:2px solid var(--s-seal);outline-offset:-2px}.k-tab--active.svelte-19wb2va{color:var(--s-ink);border-bottom-color:var(--s-ink)}@media (width<=400px){.k-tab.svelte-19wb2va{font-size:var(--s-type-mark-sm);padding:var(--s-sp-2)}}h2.svelte-19wb2va{font-family:var(--s-font-header);font-size:var(--s-type-voice);color:var(--s-ink);margin:0;font-weight:400}.panel-header-sub.svelte-19wb2va{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin:var(--s-sp-1) 0 0}.panel-body.svelte-19wb2va{gap:var(--s-sp-8);flex-direction:column;display:flex}.panel-header-actions.svelte-19wb2va{gap:var(--s-sp-2);display:flex}.section-note--lead.svelte-19wb2va{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);max-width:44rem;margin:0 0 var(--s-sp-4)}.section-note.svelte-19wb2va{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);margin:0}.error-banner.svelte-19wb2va{align-items:center;gap:var(--s-sp-2);padding:var(--s-sp-3) var(--s-sp-4);border:var(--s-hair) solid var(--s-seal);font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-seal);margin-bottom:var(--s-sp-4);border-radius:2px;display:flex}.panel-header.svelte-fv9i73{margin-bottom:var(--s-sp-5)}.panel-header.svelte-fv9i73 h2:where(.svelte-fv9i73){font-family:var(--s-font-display);font-size:var(--s-type-voice);color:var(--s-ink);font-weight:400}.config-section.svelte-fv9i73{gap:var(--s-sp-3);flex-direction:column;display:flex}.section-note.svelte-fv9i73{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);max-width:68ch;margin:0;line-height:1.5}.hs-loading.svelte-fv9i73{align-items:center;gap:var(--s-sp-2);font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-3);display:flex}.controls.svelte-fv9i73{gap:var(--s-sp-3);flex-direction:column;display:flex}.status-row.svelte-fv9i73{align-items:center;gap:var(--s-sp-3);flex-wrap:wrap;display:flex}.host-path.svelte-fv9i73{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3)}.hint.svelte-fv9i73{font-family:var(--s-font-display);font-size:var(--s-type-deed);color:var(--s-ink-3);margin:0}.profile-single.svelte-11ub9pr{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2);margin:0}.profile-desc.svelte-11ub9pr{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-2);margin:0}.field-hint.svelte-11ub9pr{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3);margin-top:var(--s-sp-1)}.field-hint--warning.svelte-11ub9pr{color:var(--s-seal)}.engine-section .form-field{gap:var(--s-sp-1);flex-direction:column;display:flex}.engine-section .form-label{font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3);font-weight:400}.engine-section .form-input{border:var(--s-hair) solid var(--s-line);width:100%;height:auto;color:var(--s-ink-2);font-family:var(--s-font-mono);font-size:var(--s-type-mark);box-shadow:none;background:0 0;border-radius:2px;padding:.4em .6em}.engine-section .form-input:focus{border-color:var(--s-seal);box-shadow:none;outline:none}.engine-section .form-input:focus-visible{border-color:var(--s-seal);outline:none}.engine-section.svelte-1r7l91t{gap:var(--s-sp-3);border:var(--s-hair) solid var(--s-line-soft);padding:var(--s-sp-5);background:0 0;border-radius:2px;flex-direction:column;display:flex}.engine-heading.svelte-1r7l91t{font-family:var(--s-font-mono);font-size:var(--s-type-mark);text-transform:uppercase;letter-spacing:var(--s-track-label);color:var(--s-ink-3);padding-bottom:var(--s-sp-3);border-bottom:var(--s-hair) solid var(--s-line-soft);margin:0;font-weight:400}.panel-body.svelte-nokcxu{gap:var(--s-sp-6);flex-direction:column;display:flex}.voice-grid.svelte-nokcxu{gap:var(--s-sp-5);grid-template-columns:1fr 1fr;display:grid}.section-card.svelte-nokcxu{border:var(--s-hair) solid var(--s-line-soft);padding:var(--s-sp-5);gap:var(--s-sp-4);border-radius:2px;flex-direction:column;display:flex}.sc-title.svelte-nokcxu{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3);border-bottom:var(--s-hair) solid var(--s-line-soft);padding-bottom:var(--s-sp-3)}.field.svelte-nokcxu{gap:var(--s-sp-2);flex-direction:column;display:flex}.field-label.svelte-nokcxu{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-ink-3)}.field-select.svelte-nokcxu,.field-input.svelte-nokcxu{border:var(--s-hair) solid var(--s-line);font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2);background:0 0;border-radius:2px;width:100%;padding:.4em .6em}.field-select.svelte-nokcxu:focus,.field-input.svelte-nokcxu:focus{border-color:var(--s-seal);outline:none}.field-hint.svelte-nokcxu{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3);margin:0}.field-hint--warn.svelte-nokcxu{color:var(--s-seal)}.reachability.svelte-nokcxu{font-family:var(--s-font-mono);font-size:var(--s-type-mark-sm);color:var(--s-ink-3)}.reachability--ok.svelte-nokcxu{color:var(--s-moss)}.sc-foot.svelte-nokcxu{gap:var(--s-sp-3);padding-top:var(--s-sp-3);border-top:var(--s-hair) solid var(--s-line-soft);flex-direction:column;margin-top:auto;display:flex}.test-row.svelte-nokcxu{align-items:center;gap:var(--s-sp-3);flex-wrap:wrap;display:flex}.test-ok.svelte-nokcxu{font-family:var(--s-font-mono);font-size:var(--s-type-mark);letter-spacing:var(--s-track-label);text-transform:uppercase;color:var(--s-moss)}.test-err.svelte-nokcxu{font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-seal)}.auto-speak-toggle.svelte-nokcxu{align-items:center;gap:var(--s-sp-2);font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-ink-2);cursor:pointer;display:flex}.auto-speak-toggle.svelte-nokcxu input[type=checkbox]:where(.svelte-nokcxu){appearance:none;border:var(--s-hair) solid var(--s-line);cursor:pointer;background:0 0;border-radius:2px;flex-shrink:0;width:1rem;height:1rem;position:relative}.auto-speak-toggle.svelte-nokcxu input[type=checkbox]:where(.svelte-nokcxu):checked{background:var(--s-seal);border-color:var(--s-seal)}.auto-speak-toggle.svelte-nokcxu input[type=checkbox]:where(.svelte-nokcxu):checked:after{content:"";border-top:0;border-bottom:1.4px solid #fff;border-left:1.4px solid #fff;border-right:0;width:8px;height:5px;position:absolute;top:1px;left:2px;transform:rotate(-45deg)}.error-banner.svelte-nokcxu{align-items:center;gap:var(--s-sp-2);padding:var(--s-sp-3) var(--s-sp-4);border:var(--s-hair) solid var(--s-seal);font-family:var(--s-font-mono);font-size:var(--s-type-mark);color:var(--s-seal);border-radius:2px;display:flex}@media (width<=640px){.voice-grid.svelte-nokcxu{grid-template-columns:1fr}}main.svelte-10vygff{background:var(--s-paper);color:var(--s-ink);font-family:var(--s-font-display);padding:var(--s-sp-6) var(--s-sp-6) var(--s-sp-8);min-height:calc(100vh - 88px)}.app-install-banner.svelte-10vygff{justify-content:space-between;align-items:center;gap:var(--s-sp-4);padding:var(--s-sp-4);margin-bottom:var(--s-sp-5);border:var(--s-hair) solid var(--s-line);background:var(--s-paper-deep);border-radius:2px;display:flex}.app-install-banner.svelte-10vygff h2:where(.svelte-10vygff),.app-install-banner.svelte-10vygff p:where(.svelte-10vygff){margin:0}.app-install-banner.svelte-10vygff p:where(.svelte-10vygff){color:var(--s-ink-3);margin-top:var(--s-sp-1)}@media (width<=768px){main.svelte-10vygff{padding:var(--s-sp-4) var(--s-sp-4) var(--s-sp-6)}.app-install-banner.svelte-10vygff{flex-direction:column;align-items:stretch}}
@@ -1 +0,0 @@
1
- import{B as e,I as t,L as n,M as r,N as i,P as a,U as o,X as s,a as c,b as l,bt as u,dt as d,ht as f,it as p,k as m,lt as h,mt as g,n as _,nt as v,p as y,r as b,rt as x,st as S,xt as C,z as w}from"./BzIvC31O.js";import{l as T,n as E}from"./BNJvGRjX.js";import"./xihTtKlq.js";import{d as D,i as O,l as k,n as A,r as j,s as M,t as ee,u as N}from"./c0lkYAgh.js";import{t as te,u as P}from"./C718MJXm.js";import{t as F}from"./C5iiO0W9.js";import"./ccncQf9O.js";import{n as I,r as L,t as R}from"./CBV2kBE1.js";import{a as z,d as B,f as V,i as H,l as U,n as ne,o as W,p as G,r as K,s as q,t as re,u as J}from"./DWtm_qwJ.js";import{t as Y}from"./NR-JVJz-.js";import{t as ie}from"./D5FtEngX.js";function X(e,t){let n=c(t,`disabled`,3,!1),r=c(t,`tone`,3,`primary`);{let i=d(()=>t.pressed&&t.selectedIcon?t.selectedIcon:t.icon);L(e,{get icon(){return o(i)},get label(){return t.label},get title(){return t.title},get ariaLabel(){return t.ariaLabel},get disabled(){return n()},get tone(){return r()},get selected(){return t.pressed},get ariaPressed(){return t.pressed},get onclick(){return t.onToggle}})}}var Z=e=>{q(e,{size:15})};function Q(e,t){f(t,!0);let n=d(()=>F.url?.pathname??``),r=d(()=>o(n)===`/host`||o(n).startsWith(`/host/`));function i(){let e=G.toggle();if(o(r))return;e||V.invalidateSessions(V.activeEndpointId);let t=F.url.searchParams.get(`session`)??B();E(e?U(t):J(t))}X(e,{get pressed(){return G.enabled},onToggle:i,ariaLabel:`Advanced mode`,title:`Advanced mode (embedded OpenCode)`,get icon(){return Z}}),g()}var ae=t(`<p class="list-error svelte-dlw00e" role="alert"> </p>`),$=t(`<span class="sr-only svelte-dlw00e">(current)</span>`),oe=t(`<button type="button"><span class="item-text svelte-dlw00e"><span class="item-label svelte-dlw00e"> <!></span> <span class="item-url svelte-dlw00e"> </span></span></button>`),se=t(`<a class="list-item link svelte-dlw00e">Manage this assistant…</a>`),ce=t(`<div class="endpoint-list svelte-dlw00e"><!> <div class="s-ep-section-label svelte-dlw00e">assistant</div> <div class="group" role="group" aria-label="Assistant endpoints"></div> <div class="divider svelte-dlw00e"></div> <!> <a class="list-item link svelte-dlw00e">Manage assistant connections…</a></div>`);function le(t,n){f(n,!0);let c=d(()=>P.active),u=d(()=>P.endpoints),_=d(()=>W(o(c)?.url)),b=h(!1);async function x(e){if(!o(b)){if(e===o(c)?.id){n.onChosen?.();return}S(b,!0);try{await P.activate(e),n.onChosen?.()}catch{}finally{S(b,!1)}}}var w=ce(),E=v(w),D=e=>{var t=ae(),n=v(t,!0);C(t),s(()=>i(n,P.error)),a(e,t)};r(E,e=>{P.error&&e(D)});var O=p(E,4);m(O,21,()=>o(u),e=>e.id,(t,n)=>{var u=oe();let d;var f=v(u),m=v(f),h=v(m,!0),g=p(h),_=e=>{a(e,$())};r(g,e=>{o(n).id===o(c)?.id&&e(_)}),C(m);var S=p(m,2),w=v(S,!0);C(S),C(f),C(u),s(()=>{d=l(u,1,`list-item svelte-dlw00e`,null,d,{active:o(n).id===o(c)?.id}),y(u,`aria-current`,o(n).id===o(c)?.id?`true`:void 0),u.disabled=o(b),i(h,o(n).label),i(w,o(n).url)}),e(`click`,u,()=>x(o(n).id)),a(t,u)}),C(O);var k=p(O,4),A=t=>{var r=se();s(e=>y(r,`href`,e),[()=>T(`/host`)]),e(`click`,r,()=>n.onChosen?.()),a(t,r)};r(k,e=>{o(_)&&e(A)});var j=p(k,2);C(w),s(e=>y(j,`href`,e),[()=>T(`/connections`)]),e(`click`,j,()=>n.onChosen?.()),a(t,w),g()}w([`click`]);var ue=t(`<button type="button" class="trigger svelte-48xr05" aria-haspopup="dialog"><!> <span class="dot svelte-48xr05" aria-hidden="true"></span> <span class="label svelte-48xr05"> </span> <span class="caret svelte-48xr05" aria-hidden="true">▾</span></button> <!>`,1);function de(t,n){f(n,!0);let r=h(!1),c=d(()=>P.active);b(()=>{P.load()});var l=ue(),m=x(l),_=v(m);Y(_,{size:14,class:`trigger-icon`});var w=p(_,4),T=v(w,!0);C(w),u(2),C(m),R(p(m,2),{get open(){return o(r)},title:`Assistant endpoint`,onClose:()=>S(r,!1),width:`26rem`,children:(e,t)=>{le(e,{onChosen:()=>S(r,!1)})},$$slots:{default:!0}}),s(()=>{y(m,`aria-expanded`,o(r)),y(m,`aria-label`,o(c)?`Assistant endpoint: ${o(c).label}`:`Assistant endpoints`),y(m,`title`,o(c)?`Connected to: ${o(c).label} (${o(c).url})`:`Assistant endpoints`),m.disabled=P.loading,i(T,o(c)?.label??`Endpoint…`)}),e(`click`,m,()=>S(r,!0)),a(t,l),g()}w([`click`]);var fe=t(`<button type="button" class="trigger svelte-cihcnl" aria-haspopup="dialog" aria-label="Sessions"><!> <span aria-hidden="true"></span> <span class="label svelte-cihcnl"> </span> <span class="caret svelte-cihcnl" aria-hidden="true">▾</span></button> <!>`,1);function pe(t,n){f(n,!0);let r=h(!1),c=d(()=>P.active),m=d(()=>o(c)?V.byEndpoint.get(o(c).id)??null:null),_=d(()=>o(m)?.sessions??[]),b=d(()=>V.activeSessionId),w=d(()=>V.liveConnected),T=d(()=>o(_).find(e=>e.id===o(b))??null),E=d(()=>o(T)?z(o(T).title):`New session`);var D=fe(),O=x(D),k=v(O);K(k,{class:`trigger-icon`,size:14});var A=p(k,2);let j;var M=p(A,2),ee=v(M,!0);C(M),u(2),C(O);var N=p(O,2);{let e=d(()=>o(c)?.label??`this endpoint`);R(N,{get open(){return o(r)},get title(){return`Sessions on ${o(e)??``}`},onClose:()=>S(r,!1),width:`26rem`,children:(e,t)=>{H(e,{onChosen:()=>S(r,!1)})},$$slots:{default:!0}})}s(()=>{y(O,`aria-expanded`,o(r)),y(O,`title`,o(E)),j=l(A,1,`dot svelte-cihcnl`,null,j,{connected:o(w)}),y(A,`title`,o(w)?`Live updates connected`:`Live updates disconnected`),i(ee,o(E))}),e(`click`,O,()=>S(r,!0)),a(t,D),g()}w([`click`]);var me=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="1" y1="1" x2="23" y2="23"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23"></path><line x1="12" y1="19" x2="12" y2="23"></line><line x1="8" y1="23" x2="16" y2="23"></line></svg>`);function he(e,t){let n=c(t,`size`,3,20),r=c(t,`class`,3,``);var i=me();s(()=>{y(i,`width`,n()),y(i,`height`,n()),l(i,0,`s-icon ${r()??``}`)}),a(e,i)}var ge=t(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"> </span>`),_e=t(`<button type="button" class="voice-autoplay-banner svelte-7elv0w" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><!> <span class="svelte-7elv0w">Audio paused — click to resume</span></button>`),ve=t(`<button><!></button>`),ye=t(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`),be=t(`<!> <span class="voice-pulse svelte-7elv0w" aria-hidden="true"></span>`,1),xe=t(`<div class="voice-control svelte-7elv0w" role="toolbar" aria-label="Voice controls"><!> <!> <!> <button><!></button> <span class="sr-only svelte-7elv0w" aria-live="polite"> </span></div>`);function Se(t,n){f(n,!0);let c=h(!1),m=null;b(()=>{A().then(()=>{S(c,!0)}),m=window.openpalm?.onGlobalMicToggle?.(()=>{L()})??null}),_(()=>{typeof window<`u`&&window.openpalm?.setTrayMicRecording?.(!1),m?.(),m=null,ee()});let w=d(()=>o(c)&&D.sttEngine!==`disabled`&&D.sttSupported),T=d(()=>o(c)&&D.ttsSupported),E=d(()=>D.status===`recording`),P=d(()=>D.status===`transcribing`),F=d(()=>!o(E)&&!o(P)&&V.sending),I=d(()=>D.status===`speaking`);async function L(){if(o(F))return;if(o(E)){k(),window.openpalm?.setTrayMicRecording?.(!1);return}if(o(P))return;N();let e=window.openpalm;if(e?.requestMicPermission){let t=await e.requestMicPermission();if(t===`denied-no-prompt`){D.errorMessage=`This OpenPalm build cannot request microphone access on macOS. Please update to the latest version of the desktop app.`;return}if(t===`denied`||t===`restricted`){D.errorMessage=`Microphone access is turned off. In the System Settings window that just opened, enable OpenPalm under Microphone, then quit and reopen the app.`;return}}window.openpalm?.setTrayMicRecording?.(!0),M(e=>{let t=e.trim();t&&V.send(t)})}function R(){O(!D.ttsAutoEnabled)}var z=xe(),B=v(z),H=e=>{var t=ge(),n=v(t,!0);C(t),s(e=>{y(t,`title`,D.interimTranscript),i(n,e)},[()=>D.interimTranscript.length>48?D.interimTranscript.slice(0,48)+`…`:D.interimTranscript]),a(e,t)};r(B,e=>{o(E)&&D.interimTranscript&&e(H)});var U=p(B,2),W=t=>{var n=_e();ne(v(n),{size:14}),u(2),C(n),e(`click`,n,()=>j()),a(t,n)};r(U,e=>{D.autoplayBlocked&&e(W)});var G=p(U,2),K=t=>{var n=ve();let i;var c=v(n),u=e=>{re(e,{size:16})},d=e=>{ne(e,{size:16})};r(c,e=>{D.ttsAutoEnabled?e(u):e(d,-1)}),C(n),s(()=>{i=l(n,1,`voice-btn svelte-7elv0w`,null,i,{"voice-btn-on":D.ttsAutoEnabled,"voice-btn-speaking":o(I)}),y(n,`aria-label`,D.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),y(n,`aria-pressed`,D.ttsAutoEnabled),y(n,`title`,o(I)?`Speaking — click to turn off spoken responses`:D.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),e(`click`,n,R),a(t,n)};r(G,e=>{o(T)&&e(K)});var q=p(G,2);let J;var Y=v(q),X=e=>{he(e,{size:16})},Z=e=>{a(e,ye())},Q=e=>{var t=be();te(x(t),{size:14}),u(2),a(e,t)},ae=e=>{ie(e,{size:16})};r(Y,e=>{o(w)?o(P)||o(F)?e(Z,1):o(E)?e(Q,2):e(ae,-1):e(X)}),C(q);var $=p(q,2),oe=v($,!0);C($),C(z),s(()=>{J=l(q,1,`voice-btn svelte-7elv0w`,null,J,{"voice-btn-active":o(E),"voice-btn-processing":o(F)||o(P),"voice-btn-disabled":!o(w)}),q.disabled=!o(w)||o(F),y(q,`aria-label`,o(w)?o(E)?`Stop recording`:o(P)?`Transcribing…`:o(F)?`Sending message…`:`Start recording`:`Voice input unavailable`),y(q,`aria-pressed`,o(E)),y(q,`title`,o(w)?o(E)?`Stop recording`:o(P)?`Transcribing…`:o(F)?`Sending message…`:`Speak — message will be sent to the selected assistant`:`Voice input is unavailable — no speech-to-text engine is configured for this browser`),i(oe,o(E)&&D.interimTranscript?D.interimTranscript:o(E)?`Recording`:o(P)?`Transcribing`:o(F)?`Sending message to assistant`:o(I)?`Assistant is speaking`:D.ttsAutoEnabled?`Spoken responses on`:``)}),e(`click`,q,L),a(t,z),g()}w([`click`]);var Ce=t(`<span class="chat-selectors svelte-1s36yfz"><!> <!></span>`),we=t(`<!> <!> <!>`,1);function Te(e,t){f(t,!0);let n=d(()=>F.url?.pathname??``),i=d(()=>o(n)===`/chat`||o(n).startsWith(`/chat/`)||o(n)===`/advanced`||o(n).startsWith(`/advanced/`)),s=d(()=>{let e=F.url.searchParams.get(`session`)??B();return G.enabled?U(e):J(e)});b(()=>{G.init()}),I(e,{get brandHref(){return o(s)},children:(e,t)=>{var n=we(),s=x(n),c=e=>{var t=Ce(),n=v(t);de(n,{}),pe(p(n,2),{}),C(t),a(e,t)};r(s,e=>{o(i)&&e(c)});var l=p(s,2);Q(l,{}),Se(p(l,2),{}),a(e,n)},$$slots:{default:!0}}),g()}export{Te as t};
@@ -1,3 +0,0 @@
1
- import{B as e,I as t,L as n,M as r,N as i,P as a,R as o,U as s,X as c,a as l,at as u,b as d,bt as f,dt as p,ht as m,it as h,k as g,lt as _,mt as v,nt as y,p as b,r as ee,rt as x,st as S,xt as C,z as w}from"./BzIvC31O.js";import"./xihTtKlq.js";import{a as T,d as E,u as D}from"./c0lkYAgh.js";import{B as O,C as k,D as A,E as j,F as M,H as N,I as P,N as F,O as I,P as L,R,S as z,T as B,V,W as H,a as te,b as U,d as W,f as ne,g as re,h as ie,i as G,k as ae,u as oe,w as se,y as ce,z as le}from"./C718MJXm.js";import{t as ue}from"./SXdvPq3_.js";var K=`openpalm.chat.advanced`,de=new class{#e=_(!1);get enabled(){return s(this.#e)}set enabled(e){S(this.#e,e,!0)}#t=_(!1);get initialized(){return s(this.#t)}set initialized(e){S(this.#t,e,!0)}init(){typeof window>`u`||this.initialized||(this.enabled=this.#n(),this.initialized=!0)}setEnabled(e){this.enabled=e,this.#r(e)}toggle(){let e=!this.enabled;return this.setEnabled(e),e}preferredChatPath(){return this.enabled?`/advanced`:`/chat`}#n(){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(K)===`1`}catch{return!1}}#r(e){if(!(typeof window>`u`))try{window.localStorage.setItem(K,e?`1`:`0`)}catch{}}},q=null;function J(e,t,n,r){let i=e.createOscillator(),a=e.createGain();i.type=`sine`,i.frequency.value=t,a.gain.setValueAtTime(0,n),a.gain.linearRampToValueAtTime(.08,n+.005),a.gain.linearRampToValueAtTime(0,n+r),i.connect(a),a.connect(e.destination),i.start(n),i.stop(n+r+.01)}function fe(){if(!(typeof window>`u`))try{if(!q){let e=window.AudioContext??window.webkitAudioContext;if(!e)return;q=new e}q.state===`suspended`&&q.resume().catch(()=>{});let e=q.currentTime;J(q,880,e,.06),J(q,1320,e+.07,.08)}catch{}}var pe=25,me=new Set([`dr`,`mr`,`mrs`,`ms`,`prof`,`st`,`vs`,`etc`,`e.g`,`i.e`,`approx`]),he=new Set([`No`]);function ge(e,t){let n=t;for(;n>0&&/[a-zA-Z.]/.test(e[n-1]);)--n;let r=e.slice(n,t);return r?me.has(r.toLowerCase())||he.has(r):!1}function _e(e,t){let n=[],r=t,i=t,a=!1,o=0;for(;o<e.length;){if(e.startsWith("```",o)){a=!a,o+=3;continue}if(o<t||a){o+=1;continue}let s=-1,c=e[o];if((c===`.`||c===`!`||c===`?`)&&o+1<e.length&&/\s/.test(e[o+1])?(c!==`.`||!ge(e,o))&&(s=o+1):c===`
2
- `&&e[o+1]===`
3
- `&&(s=o+2),s!==-1){let t=e.slice(i,s).trim();t.length>=pe&&(n.push(t),i=s,r=s)}o+=1}return{chunks:n,nextOffset:r}}function Y(e,t={}){let{fallback:n=`Something went wrong.`,reconnectHint:r=!1}=t,i=e??{};return i.status===503||i.status===502?r?`Assistant is not reachable. Try reconnecting.`:`Assistant is not reachable.`:i.status===401?`Sign-in required.`:i.message??n}var ve=15e4;function X(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Z=new class{#e=_(u(new U));get byEndpoint(){return s(this.#e)}set byEndpoint(e){S(this.#e,e,!0)}#t=_(`default`);get activeEndpointId(){return s(this.#t)}set activeEndpointId(e){S(this.#t,e,!0)}#n=_(u([]));get entries(){return s(this.#n)}set entries(e){S(this.#n,e,!0)}#r=_(!1);get entriesLoading(){return s(this.#r)}set entriesLoading(e){S(this.#r,e,!0)}#i=_(!1);get sending(){return s(this.#i)}set sending(e){S(this.#i,e,!0)}#a=_(``);get error(){return s(this.#a)}set error(e){S(this.#a,e,!0)}#o=_(``);get lastFailedText(){return s(this.#o)}set lastFailedText(e){S(this.#o,e,!0)}#s=_(``);get pendingAssistantText(){return s(this.#s)}set pendingAssistantText(e){S(this.#s,e,!0)}#c=_(u([]));get pendingToolStates(){return s(this.#c)}set pendingToolStates(e){S(this.#c,e,!0)}#l=_(null);get pendingPermission(){return s(this.#l)}set pendingPermission(e){S(this.#l,e,!0)}#u=_(null);get pendingQuestion(){return s(this.#u)}set pendingQuestion(e){S(this.#u,e,!0)}#d=_(!1);get liveConnected(){return s(this.#d)}set liveConnected(e){S(this.#d,e,!0)}_unsubscribeEvents=null;_pendingTurn=null;#f=p(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return s(this.#f)}set activeSessionId(e){S(this.#f,e)}#p=p(()=>{let e={},t=[],n=(n,r)=>{if(n)for(let i of n)e[i.id]||H(i)&&(e[i.id]=!0,t.push({...i,turnKey:r}))};for(let e of this.entries)n(e.toolStates,e.id);return n(this.pendingToolStates,`pending`),t});get toolLog(){return s(this.#p)}set toolLog(e){S(this.#p,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??X(),...t};return this.byEndpoint=new U(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,await this.loadSessions();let t=this.byEndpoint.get(e)??X(),n=t.sessions??[],r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i),this._resubscribeEvents()}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=ce({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onEvent:e=>{this._onLiveEvent(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1,this._pendingTurn&&this._failPendingTurn(Error(`Assistant event stream disconnected.`))}})}_toRawEvent(e){return{type:e.type,properties:e.properties??{}}}_upsertPendingToolState(e){let t=e.callID||`${e.tool}:${this.pendingToolStates.length}`,n={id:t,kind:`tool`,tool:e.tool,status:e.status,title:e.title??e.tool,detail:e.detail??``,output:e.output??``,error:e.error??``,updatedAt:Date.now()};if(!this.pendingToolStates.find(e=>e.id===t)){this.pendingToolStates=[...this.pendingToolStates,n];return}this.pendingToolStates=this.pendingToolStates.map(e=>e.id===t?{...e,...n}:e)}_upsertPendingStepState(e){let t={id:e.id,kind:`step`,tool:`step`,status:e.status,title:e.title,detail:e.detail??``,output:``,error:``,updatedAt:Date.now()};if(!this.pendingToolStates.find(t=>t.id===e.id)){this.pendingToolStates=[...this.pendingToolStates,t];return}this.pendingToolStates=this.pendingToolStates.map(n=>n.id===e.id?{...n,...t}:n)}_resetPendingRenderState(){this.pendingAssistantText=``,this.pendingToolStates=[],this.pendingPermission=null,this.pendingQuestion=null}_appendAssistantReply(e,t){let n={id:crypto.randomUUID(),role:`assistant`,text:e,timestamp:Date.now(),...t&&t.length>0?{toolStates:[...t]}:{}};this.entries=[...this.entries,n]}_clearPendingTurn(){let e=this._pendingTurn;return e?(clearTimeout(e.timeout),this._pendingTurn=null,e):null}maybeSpeak(e){!E.ttsSupported||!E.ttsAutoEnabled||T(e)}finalizeTurn(e){let t=e.replyText??this.pendingAssistantText,n=t.trim()||`(no response)`;if(this.pendingQuestion?.status===`answered`&&this.pendingQuestion.message){let e={id:crypto.randomUUID(),type:`note`,label:`Question answered`,text:this.pendingQuestion.message,timestamp:Date.now()};this.entries=[...this.entries,e]}let r=this.pendingToolStates.length>0?[...this.pendingToolStates]:void 0;if(this._appendAssistantReply(n,r),this._resetPendingRenderState(),this._bumpSession(e.sessionId),n!==`(no response)`&&!e.suppressSpeech){let n=t.slice(e.spokenOffset??0).trim();n&&this.maybeSpeak(n)}re(n===`(no response)`?``:n)}_finishPendingTurn(e){let t=this._clearPendingTurn();t&&(this.finalizeTurn({sessionId:t.sessionId,replyText:e,spokenOffset:t.spokenOffset}),t.resolve())}_failPendingTurn(e){let t=this._clearPendingTurn();t&&(this._resetPendingRenderState(),t.reject(e))}_bumpSession(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n)return;let r=Date.now(),i=n.sessions.find(t=>t.id===e),a=i?{...i,updatedAt:r}:{id:e,title:``,createdAt:r,updatedAt:r},o=n.sessions.filter(t=>t.id!==e);this.setEndpointState(t,{sessions:[a,...o]})}_onLiveEvent(e){let t=this._pendingTurn;if(!t)return;let n=this._toRawEvent(e);if(t.endpointId!==this.activeEndpointId)return;let r=ae(n);r?.type===`reasoning`&&t.reasoningPartIds.add(r.partID);let i=B(n,t.sessionId,t.reasoningPartIds);if(i&&(this.pendingAssistantText+=i,E.ttsSupported&&E.ttsAutoEnabled)){let{chunks:e,nextOffset:n}=_e(this.pendingAssistantText,t.spokenOffset);for(let t of e)T(t);t.spokenOffset=n}let a=j(n,t.sessionId);a&&this._upsertPendingToolState(a);let o=se(n,t.sessionId);o&&this._upsertPendingStepState(o);let s=z(n,t.sessionId);s&&(this.pendingPermission={...s,status:`pending`,decision:``,message:``});let c=k(n,t.sessionId);if(c&&(this.pendingQuestion={...c,status:`pending`,answers:c.questions.map(()=>``),message:``}),A(n,t.sessionId)){this._failPendingTurn(Error(`Assistant session ended unexpectedly.`));return}I(n,t.sessionId)&&this._finishPendingTurn()}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??X();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1){this._onSessionCreated(e);return}let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}invalidateSessions(e){this.setEndpointState(e,{sessionsLoaded:!1})}setActiveSessionId(e){this.setEndpointState(this.activeEndpointId,{activeSessionId:e})}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await P();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){this.setEndpointState(e,{sessionsLoading:!1,sessionsError:Y(t,{fallback:`Failed to load sessions.`})})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this._resetPendingRenderState(),this.entriesLoading=!0,this.error=``;try{let n=await M(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){this.error=Y(e,{fallback:`Failed to load messages.`,reconnectHint:!0})}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await L(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??X();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],this._resetPendingRenderState(),t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){let t=e.trim();if(!t)return;if(this.lastFailedText=``,this.pendingQuestion&&this.pendingQuestion.questions.length===1&&this.sending){await this.answerQuestion(t);return}if(this.pendingQuestion&&this.sending){this.pendingQuestion={...this.pendingQuestion,status:`error`,message:`This question has multiple parts and must be answered with the provided controls.`};return}if(this.sending)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this._resetPendingRenderState(),this.error=``,this.sending=!0,E.ttsAutoEnabled&&fe();try{if(this._unsubscribeEvents&&this.liveConnected)await new Promise((e,r)=>{let i=setTimeout(()=>{this._failPendingTurn(Error(`Timed out waiting for the assistant response.`))},ve);this._pendingTurn={endpointId:this.activeEndpointId,sessionId:n,spokenOffset:0,reasoningPartIds:new Set,resolve:e,reject:r,timeout:i},N(n,t).catch(e=>{this._failPendingTurn(e instanceof Error?e:Error(String(e)))})});else{let e=(await V(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``);this.finalizeTurn({sessionId:n,replyText:e})}}catch(e){this._resetPendingRenderState(),this.entries=this.entries.filter(e=>e.id!==r.id),this.lastFailedText=t;let n=e?.status;(n===503||n===502)&&this.setEndpointState(this.activeEndpointId,{activeSessionId:null}),this.error=Y(e,{fallback:`Message failed.`,reconnectHint:!0}),ie()}finally{this.sending=!1}}async sendUtterance(e){let t=e.trim();if(t){if(this.sending&&!this.pendingQuestion){await this.stopTurn();for(let e=0;this.sending&&e<20;e++)await new Promise(e=>setTimeout(e,10));if(this.sending){this.lastFailedText=t,this.error=`The assistant is still finishing the previous reply — use retry to send your message.`;return}}await this.send(t)}}async stopTurn(){if(!this.sending)return;let e=this.activeSessionId;if(e)try{await F(e)}catch{}D();let t=this._clearPendingTurn();if(this.pendingAssistantText)this.finalizeTurn({sessionId:t?.sessionId??e??``,suppressSpeech:!0});else{this._resetPendingRenderState();let e={id:crypto.randomUUID(),type:`note`,label:`Stopped`,text:`Stopped.`,timestamp:Date.now()};this.entries=[...this.entries,e]}t?.resolve()}async answerPermission(e){if(!this.pendingPermission||this.pendingPermission.status===`submitting`)return;let t=this.pendingPermission;this.pendingPermission={...t,status:`submitting`,decision:e,message:``};try{await le(t.requestID,e),this.pendingPermission={...t,status:`resolved`,decision:e,message:e===`once`?`Allowed ${t.permission} once. Waiting for the assistant to continue...`:e===`always`?`Always allowed future matching ${t.permission} requests.`:`Denied ${t.permission}. Waiting for the assistant to continue...`}}catch(n){let r=n instanceof Error?n.message:`Failed to record permission reply.`;this.pendingPermission={...t,status:`error`,decision:e,message:r}}}setQuestionAnswer(e,t){if(!this.pendingQuestion||e<0||e>=this.pendingQuestion.questions.length)return;let n=[...this.pendingQuestion.answers];n[e]=t,this.pendingQuestion={...this.pendingQuestion,answers:n,message:``}}async answerQuestion(e){if(!this.pendingQuestion||this.pendingQuestion.status===`submitting`)return;let t=this.pendingQuestion,n=t.questions.length===1&&typeof e==`string`?[e.trim()]:t.answers.map(e=>e.trim());if(n.some(e=>!e)){this.pendingQuestion={...t,status:`error`,message:`Answer every question before submitting.`};return}this.pendingQuestion={...t,status:`submitting`,answers:n,message:``};try{await O(t.requestID,n.map(e=>[e])),this.pendingQuestion={...t,status:`answered`,answers:n,message:`Answer sent.`}}catch(e){let r=e instanceof Error?e.message:`Failed to send answer.`;this.pendingQuestion={...t,status:`error`,answers:n,message:r}}}async rejectQuestion(){if(!this.pendingQuestion||this.pendingQuestion.status===`submitting`)return;let e=this.pendingQuestion;this.pendingQuestion={...e,status:`submitting`,message:``};try{await R(e.requestID),this.pendingQuestion={...e,status:`rejected`,message:`Question declined.`}}catch(t){let n=t instanceof Error?t.message:`Failed to reject question.`;this.pendingQuestion={...e,status:`error`,message:n}}}reset(){if(D(),this._clearPendingTurn(),this.entries=[],this.error=``,this.lastFailedText=``,this._resetPendingRenderState(),this.byEndpoint=new U,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}};ne(()=>Z.sending?`Wait for the current reply to finish before switching.`:null),W(e=>Z.onEndpointChanged(e));function ye(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/=+$/g,``)}function be(){return Z.activeSessionId}function xe(e){let t=new URLSearchParams;e&&t.set(`session`,e);let n=t.toString();return n?`/advanced?${n}`:`/advanced`}function Se(e,t){let n=new URLSearchParams;e&&n.set(`session`,e),t?.newChat&&n.set(`new`,`1`);let r=n.toString();return r?`/chat?${r}`:`/chat`}function Ce(e,t,n){return!t||!n?e:`${e.replace(/\/$/,``)}/${ye(n)}/session/${encodeURIComponent(t)}`}var we=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 17l4-4-4-4"></path><path d="M12 17h8"></path></svg>`);function Te(e,t){let n=l(t,`size`,3,20),r=l(t,`class`,3,``);var i=we();c(()=>{b(i,`width`,n()),b(i,`height`,n()),d(i,0,`s-icon ${r()??``}`)}),a(e,i)}function Ee(e){if(!e)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`host.docker.internal`}catch{return!0}}var De=/^New session - (\d{4}-\d{2}-\d{2}T[0-9:.]+Z?)$/;function Q(e){let t=(e??``).trim();if(!t)return`Untitled session`;let n=De.exec(t);if(n){let e=Date.parse(n[1]);if(!Number.isNaN(e))return G(e)}return t}function Oe(e,t){m(t,!0);let n=p(()=>Q(t.title));f();var r=o();c(()=>i(r,s(n))),a(e,r),v()}var ke=t(`<div class="notice svelte-1o6rxhb">Wait for the current reply to finish before switching.</div>`),Ae=t(`<div class="empty svelte-1o6rxhb"><!><span>Loading sessions…</span></div>`),je=t(`<div class="list-error svelte-1o6rxhb"><span class="svelte-1o6rxhb"> </span> <button type="button" class="retry-btn svelte-1o6rxhb">Retry</button></div>`),Me=t(`<div class="empty svelte-1o6rxhb">No sessions yet. Start the first one.</div>`),Ne=t(`<span class="sr-only svelte-1o6rxhb">(current)</span>`),Pe=t(`<button type="button"><span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb"><!><!></span> <span class="item-meta svelte-1o6rxhb"> </span></span></button>`),$=t(`<button type="button" class="show-all svelte-1o6rxhb"> </button>`),Fe=t(`<div class="session-list svelte-1o6rxhb" role="group" aria-label="Sessions"></div> <!>`,1),Ie=t(`<div class="divider svelte-1o6rxhb"></div> <button type="button" class="list-item new-btn svelte-1o6rxhb"><span class="check svelte-1o6rxhb" aria-hidden="true">+</span> <span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb">New session</span></span></button>`,1),Le=t(`<div class="session-body svelte-1o6rxhb"><!> <!> <!></div>`);function Re(t,n){m(n,!0);let o=l(n,`hideNewBtn`,3,!1),u=_(!1),w=p(()=>oe.active),T=p(()=>s(w)?Z.byEndpoint.get(s(w).id)??null:null),E=p(()=>s(T)?.sessions??[]),D=p(()=>s(T)?.sessionsLoading??!1),O=p(()=>s(T)?.sessionsError??``),k=p(()=>Z.activeSessionId),A=p(()=>s(u)?s(E):s(E).slice(0,50)),j=p(()=>Math.max(0,s(E).length-50));ee(()=>{s(w)&&!s(T)?.sessionsLoaded&&!s(D)&&Z.loadSessions()});async function M(e){Z.sending||(await Z.openSession(e),n.onChosen?.())}async function N(){Z.sending||(await Z.startNewSession(),n.onChosen?.())}async function P(){await Z.loadSessions()}var F=Le(),I=y(F),L=e=>{a(e,ke())};r(I,e=>{Z.sending&&e(L)});var R=h(I,2),z=e=>{var t=Ae();ue(y(t),{size:12}),f(),C(t),a(e,t)},B=t=>{var n=je(),r=y(n),o=y(r,!0);C(r);var l=h(r,2);C(n),c(()=>i(o,s(O))),e(`click`,l,P),a(t,n)},V=e=>{a(e,Me())},H=t=>{var n=Fe(),o=x(n);g(o,21,()=>s(A),e=>e.id,(t,n)=>{var o=Pe();let l;var u=y(o),f=y(u),p=y(f);Oe(p,{get title(){return s(n).title}});var m=h(p),g=e=>{a(e,Ne())};r(m,e=>{s(n).id===s(k)&&e(g)}),C(f);var _=h(f,2),v=y(_,!0);C(_),C(u),C(o),c((e,t)=>{l=d(o,1,`list-item session-item svelte-1o6rxhb`,null,l,{active:s(n).id===s(k)}),b(o,`aria-current`,s(n).id===s(k)?`true`:void 0),o.disabled=Z.sending,b(o,`title`,e),i(v,t)},[()=>G(s(n).updatedAt),()=>te(s(n).updatedAt)]),e(`click`,o,()=>M(s(n).id)),a(t,o)}),C(o);var l=h(o,2),f=t=>{var n=$(),r=y(n);C(n),c(()=>i(r,`Show all (${s(j)??``} more)`)),e(`click`,n,()=>S(u,!0)),a(t,n)};r(l,e=>{!s(u)&&s(j)>0&&e(f)}),a(t,n)};r(R,e=>{!s(T)||s(D)?e(z):s(O)?e(B,1):s(E).length===0?e(V,2):e(H,-1)});var U=h(R,2),W=t=>{var n=Ie(),r=h(x(n),2);c(()=>r.disabled=Z.sending),e(`click`,r,N),a(t,n)};r(U,e=>{o()||e(W)}),C(F),a(t,F),v()}w([`click`]);var ze=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16" opacity="0.9"></path><path d="M4 12h11" opacity="0.65"></path><path d="M4 17h7.5" opacity="0.5"></path></svg>`);function Be(e,t){let n=l(t,`size`,3,20),r=l(t,`class`,3,``);var i=ze();c(()=>{b(i,`width`,n()),b(i,`height`,n()),d(i,0,`s-icon ${r()??``}`)}),a(e,i)}var Ve=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><line x1="23" y1="9" x2="17" y2="15"></line><line x1="17" y1="9" x2="23" y2="15"></line></svg>`);function He(e,t){let n=l(t,`size`,3,20),r=l(t,`class`,3,``);var i=Ve();c(()=>{b(i,`width`,n()),b(i,`height`,n()),d(i,0,`s-icon ${r()??``}`)}),a(e,i)}var Ue=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path></svg>`);function We(e,t){let n=l(t,`size`,3,20),r=l(t,`class`,3,``);var i=Ue();c(()=>{b(i,`width`,n()),b(i,`height`,n()),d(i,0,`s-icon ${r()??``}`)}),a(e,i)}export{Q as a,Ce as c,be as d,Z as f,Re as i,xe as l,He as n,Ee as o,de as p,Be as r,Te as s,We as t,Se as u};
@@ -1 +0,0 @@
1
- import"./BNJvGRjX.js";
@@ -1,2 +0,0 @@
1
-
2
- �import"./BNJvGRjX.js";
@@ -1 +0,0 @@
1
- import{c as e,r as t}from"../chunks/BNJvGRjX.js";export{e as load_css,t as start};
@@ -1 +0,0 @@
1
- �(�import{c as e,r as t}from"../chunks/BNJvGRjX.js";export{e as load_css,t as start};
@@ -1,2 +0,0 @@
1
- z�Ē5S���M������-��#�p��(�=�S���t�����A���[7=)�ixu�����b��5,��� e�v�F��bf���o�C~�O�Fv2�7�r��2��'7
2
- �f���e�M������Q#�,� ªb1����:iй�HG��£J �P�0� yD��G�<���j0b">���Ld#�2� ���y$�3w �4�����ʡ��nZ��
@@ -1 +0,0 @@
1
- import{B as e,F as t,I as n,M as r,N as i,P as a,U as o,X as s,Y as c,dt as l,ht as u,it as d,j as f,lt as p,mt as m,nt as h,p as g,r as _,rt as v,st as y,tt as b,ut as x,w as S,xt as C,z as w}from"../chunks/BzIvC31O.js";import{t as T}from"../chunks/BNJvGRjX.js";import"../chunks/xihTtKlq.js";import{u as E}from"../chunks/C718MJXm.js";import{t as D}from"../chunks/C5iiO0W9.js";import"../chunks/ccncQf9O.js";import{t as O}from"../chunks/BKLMDjUE.js";import{c as k,f as A}from"../chunks/DWtm_qwJ.js";var j=n(`<iframe class="opencode-frame svelte-1z0msvj" title="OpenCode — Advanced Chat" allow="clipboard-read; clipboard-write; microphone"></iframe>`),M=n(`<p class="status-line svelte-1z0msvj"> </p>`),N=n(`<h2 class="svelte-1z0msvj"> </h2> <p class="svelte-1z0msvj">The connection looks dead or its session expired. Reconnect to try again, or pick a different assistant from the switcher above.</p> <button class="btn btn-primary btn-lg svelte-1z0msvj"> </button>`,1),P=n(`<div class="advanced-status svelte-1z0msvj" aria-live="polite"><!></div>`),F=n(`<!> <div class="advanced-layout svelte-1z0msvj"><!></div>`,1);function I(n,w){u(w,!0);let I=l(()=>E.active),L=l(()=>D.url.searchParams.get(`session`)),R=p(``),z=p(`checking`),B=p(!1),V=p(0),H=0;async function U(){let e=++H;y(z,`checking`);let t=o(I)?.url??`http://127.0.0.1:3800`;try{let n=await fetch(`/proxy/assistant/`,{headers:{accept:`text/html`}});if(e!==H)return;if(!n.ok){y(z,`dead`);return}let r=t;if(o(L)){let n=await fetch(`/proxy/assistant/session/${encodeURIComponent(o(L))}`,{headers:{accept:`application/json`}});if(e!==H)return;if(n.ok){let i=await n.json().catch(()=>null);if(e!==H)return;r=k(t,o(L),i?.directory)}}y(R,r,!0),y(z,`ready`)}catch{if(e!==H)return;y(z,`dead`)}}async function W(){if(!o(B)){y(B,!0);try{await E.load(!0),await U(),o(z)===`ready`&&x(V)}finally{y(B,!1)}}}_(()=>(document.documentElement.classList.add(`chat-locked`),document.body.classList.add(`chat-locked`),()=>{document.documentElement.classList.remove(`chat-locked`),document.body.classList.remove(`chat-locked`)})),T(({to:e})=>{let t=e?.url.searchParams.get(`session`)??null;t&&A.setActiveSessionId(t),E.load().then(()=>U())});var G=F();S(`1z0msvj`,e=>{c(()=>{b.title=`Advanced Chat — OpenPalm`})});var K=v(G);O(K,{});var q=d(K,2),J=h(q),Y=e=>{var n=t();f(v(n),()=>o(V),e=>{var t=j();s(()=>g(t,`src`,o(R))),a(e,t)}),a(e,n)},X=t=>{var n=P(),c=h(n),l=e=>{var t=M(),n=h(t);C(t),s(()=>i(n,`Connecting to ${o(I)?.label??`your assistant`??``}…`)),a(e,t)},u=t=>{var n=N(),r=v(n),c=h(r);C(r);var l=d(r,4),u=h(l,!0);C(l),s(()=>{i(c,`Can’t reach ${o(I)?.label??`your assistant`??``}`),l.disabled=o(B),i(u,o(B)?`Reconnecting…`:`Reconnect`)}),e(`click`,l,W),a(t,n)};r(c,e=>{o(z)===`checking`?e(l):e(u,-1)}),C(n),s(()=>g(n,`role`,o(z)===`dead`?`alert`:`status`)),a(t,n)};r(J,e=>{o(z)===`ready`?e(Y):e(X,-1)}),C(q),a(n,G),m()}w([`click`]);export{I as component};
@@ -1,2 +0,0 @@
1
- import{B as e,C as t,F as n,I as r,J as i,L as a,M as o,N as s,O as c,P as l,S as u,U as d,V as f,X as p,a as m,at as h,b as g,bt as _,c as v,d as y,dt as b,et as x,f as S,h as C,ht as w,it as T,k as E,lt as D,mt as O,nt as k,p as A,r as j,rt as M,st as N,tt as P,w as F,xt as I,y as L,z as R}from"../chunks/BzIvC31O.js";import{l as z,n as B}from"../chunks/BNJvGRjX.js";import"../chunks/xihTtKlq.js";import{c as V,d as H,i as ee,l as te,n as ne,o as re,r as ie,s as ae,y as U}from"../chunks/c0lkYAgh.js";import{t as oe}from"../chunks/DmFbAjwW.js";import{A as se,G as ce,J as le,K as ue,L as de,M as fe,U as pe,Y as me,Z as he,c as ge,j as _e,l as ve,q as ye,s as be,t as xe,u as W}from"../chunks/C718MJXm.js";import{t as Se}from"../chunks/C5iiO0W9.js";import"../chunks/ccncQf9O.js";import{f as G,i as Ce,l as we,n as Te,o as Ee,p as De,r as Oe,s as ke,t as Ae}from"../chunks/DWtm_qwJ.js";import{t as je}from"../chunks/D5FtEngX.js";import{a as Me,c as Ne,d as Pe,i as Fe,l as Ie,n as K,o as Le,r as q,s as Re,t as ze,u as Be}from"../chunks/R6GPcDBF.js";import{n as Ve,t as He}from"../chunks/CUa5ff3d.js";var Ue=a(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M21 4L3 11l7 3 3 7z"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M21 4L10 14"></path></svg>`);function J(e,t){let n=m(t,`size`,3,20),r=m(t,`class`,3,``);var i=Ue();p(()=>{A(i,`width`,n()),A(i,`height`,n()),g(i,0,`s-icon ${r()??``}`)}),l(e,i)}var We=a(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1" fill="currentColor"></circle><path d="M8.5 8.5a5 5 0 0 0 0 7"></path><path d="M15.5 8.5a5 5 0 0 1 0 7"></path><path d="M5.6 5.6a9 9 0 0 0 0 12.8"></path><path d="M18.4 5.6a9 9 0 0 1 0 12.8"></path></svg>`);function Ge(e,t){let n=m(t,`size`,3,20),r=m(t,`class`,3,``);var i=We();p(()=>{A(i,`width`,n()),A(i,`height`,n()),g(i,0,`s-icon ${r()??``}`)}),l(e,i)}var Ke=r(`<button type="button"><!></button>`),Y=r(`<button type="button"><!></button>`),qe=r(`<button class="s-send-btn svelte-j7h4bp" type="button" aria-label="Stop generating"><!></button>`),Je=r(`<button class="s-send-btn svelte-j7h4bp" type="submit" aria-label="Send message"><!></button>`),Ye=r(`<form><textarea placeholder="Write a message..." rows="1" aria-label="Message input" autocomplete="off" spellcheck="false" class="svelte-j7h4bp"></textarea> <div class="s-footer svelte-j7h4bp"><div class="s-rule svelte-j7h4bp"></div> <!> <!> <!></div></form>`);function Xe(t,n){w(n,!0);let r=m(n,`questionPending`,3,!1),i=m(n,`voiceEnabled`,3,!1),a=m(n,`voiceActive`,3,!1),s=m(n,`draft`,15,``),c=m(n,`conversationEnabled`,3,!1),u=m(n,`conversationActive`,3,!1),h=D(void 0),_=b(()=>n.sending&&!r()),S=b(()=>s().trim().length>0),C=b(()=>d(_)&&!!n.onStop);function E(e){e.isComposing||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),j())}function j(){let e=s().trim();!e||d(_)||(n.onSend(e),s(``),d(h)&&(d(h).style.height=`auto`))}function M(){d(h)&&(d(h).style.height=`auto`,d(h).style.height=`${Math.min(d(h).scrollHeight,window.innerHeight*.3)}px`)}var P=Ye();let F;var L=k(P);x(L),v(L,e=>N(h,e),()=>d(h));var R=T(L,2),z=T(k(R),2),B=t=>{var r=Ke();let i;je(k(r),{size:16}),I(r),p(()=>{i=g(r,1,`s-mic-btn svelte-j7h4bp`,null,i,{active:a()}),A(r,`aria-label`,a()?`Stop listening`:`Start listening`),A(r,`aria-pressed`,a())}),e(`click`,r,function(...e){n.onMicToggle?.apply(this,e)}),l(t,r)};o(z,e=>{i()&&e(B)});var V=T(z,2),H=t=>{var r=Y();let i;Ge(k(r),{size:16}),I(r),p(()=>{i=g(r,1,`s-mic-btn svelte-j7h4bp`,null,i,{active:u()}),A(r,`aria-label`,u()?`End conversation mode`:`Start conversation mode`),A(r,`aria-pressed`,u())}),e(`click`,r,function(...e){n.onConversationToggle?.apply(this,e)}),l(t,r)};o(V,e=>{c()&&e(H)});var ee=T(V,2),te=t=>{var r=qe();xe(k(r),{size:16}),I(r),e(`click`,r,function(...e){n.onStop?.apply(this,e)}),l(t,r)},ne=e=>{var t=Je();J(k(t),{size:16}),I(t),p(()=>t.disabled=!d(S)||d(_)),l(e,t)};o(ee,e=>{d(C)?e(te):e(ne,-1)}),I(R),I(P),p(()=>F=g(P,1,`s-composer svelte-j7h4bp`,null,F,{active:d(S),sending:n.sending})),f(`submit`,P,e=>{e.preventDefault(),j()}),e(`keydown`,L,E),e(`input`,L,M),y(L,s),l(t,P),O()}R([`keydown`,`input`,`click`]);var Ze=r(`<span class="voice-status-interim svelte-1ceij29"> </span> <button type="button" class="voice-status-end svelte-1ceij29" aria-label="End conversation mode">End</button>`,1),Qe=r(`<span class="voice-status-interim svelte-1ceij29"> </span>`),$e=r(`<span class="voice-status-transcribing svelte-1ceij29">transcribing…</span>`),et=r(`<button type="button" class="voice-status-autoplay svelte-1ceij29" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><!> <span>Audio paused — click to resume</span></button>`),tt=r(`<div class="voice-status-strip svelte-1ceij29"><!> <!></div>`),nt=r(`<!> <span class="sr-only svelte-1ceij29" aria-live="polite"> </span>`,1);function rt(t,n){w(n,!0);let r=m(n,`thinking`,3,!1),i=b(()=>H.status===`recording`&&H.interimTranscript.length>0),a=b(()=>H.status===`transcribing`),c=b(()=>H.autoplayBlocked),u=b(()=>H.conversationActive),f=b(()=>H.status===`speaking`?`speaking…`:H.status===`transcribing`||r()?`thinking…`:`listening…`),h=b(()=>d(u)||d(i)||d(a)||d(c)),g=b(()=>[d(u)?`Conversation: ${H.interimTranscript||d(f)}`:d(i)?`Recording: ${H.interimTranscript}`:d(a)?`Transcribing`:``,d(c)?`Audio paused — click to resume`:``].filter(Boolean).join(`. `));var v=nt(),y=M(v),x=t=>{var n=tt(),r=k(n),m=t=>{var n=Ze(),r=M(n),i=k(r,!0);I(r);var a=T(r,2);p(()=>s(i,H.interimTranscript||d(f))),e(`click`,a,()=>V()),l(t,n)},h=e=>{var t=Qe(),n=k(t,!0);I(t),p(()=>s(n,H.interimTranscript)),l(e,t)},g=e=>{l(e,$e())};o(r,e=>{d(u)?e(m):d(i)?e(h,1):d(a)&&e(g,2)});var v=T(r,2),y=t=>{var n=et();Te(k(n),{size:14}),_(2),I(n),e(`click`,n,()=>ie()),l(t,n)};o(v,e=>{d(c)&&e(y)}),I(n),l(t,n)};o(y,e=>{d(h)&&e(x)});var S=T(y,2),C=k(S,!0);I(S),p(()=>s(C,d(g))),l(t,v),O()}R([`click`]);var it=0,at=r(`<span class="tool-log-time svelte-1wgps4r"> </span>`),ot=r(`<span class="tool-log-status svelte-1wgps4r"> </span>`),st=r(`<pre> </pre>`),ct=r(`<div> </div>`),lt=r(`<div class="tool-log-row svelte-1wgps4r"><div class="tool-log-label svelte-1wgps4r"> </div> <div class="tool-log-value svelte-1wgps4r"><!></div></div>`),X=r(`<div class="tool-log-details svelte-1wgps4r"></div>`),ut=r(`<li><button class="tool-log-summary svelte-1wgps4r" type="button"><span class="tool-log-icon svelte-1wgps4r" aria-hidden="true"><!></span> <span class="tool-log-main svelte-1wgps4r"><span class="tool-log-title svelte-1wgps4r"> </span> <!></span> <!> <span aria-hidden="true"><svg width="11" height="11" viewBox="0 0 12 12" fill="none" class="svelte-1wgps4r"><path d="M3 4.5 6 7.5 9 4.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" class="svelte-1wgps4r"></path></svg></span></button> <!></li>`),dt=r(`<section class="tool-log svelte-1wgps4r"><h2 class="tool-log-heading svelte-1wgps4r">activity</h2> <div class="tool-log-live svelte-1wgps4r" aria-live="polite" aria-atomic="true"> </div> <ul class="tool-log-list svelte-1wgps4r"></ul></section>`);function ft(t,r){w(r,!0),it+=1;let i=`tool-log-heading-${it}`,a=D(h({}));function c(e){N(a,{...d(a),[e]:!d(a)[e]},!0)}function u(e){return e!==`completed`&&e!==`error`&&e!==`failed`}function f(e){return e===`error`||e===`failed`}function m(e){if(e<=0)return!1;let t=r.items[e].turnKey,n=r.items[e-1].turnKey;return t===void 0||n===void 0?!1:t!==n}let _=b(()=>r.items.filter(e=>f(e.status)).map(e=>`${pe(e)} failed`).join(`, `));var v=n(),y=M(v),x=t=>{var n=dt(),h=k(n),v=T(h,2),y=k(v,!0);I(v);var x=T(v,2);E(x,23,()=>r.items,e=>e.id,(t,n,r)=>{let i=b(()=>me(d(n).tool,d(n).status)),h=b(()=>!!d(a)[d(n).id]),_=b(()=>u(d(n).status)),v=b(()=>f(d(n).status)),y=b(()=>ce(d(n).updatedAt));var x=ut();let S;var C=k(x),w=k(C),D=k(w),O=e=>{Ve(e,{size:15})},j=e=>{Ne(e,{size:15})},M=e=>{Ie(e,{size:15})},N=e=>{Re(e,{size:15})},P=e=>{Le(e,{size:15})},F=e=>{Me(e,{size:15})},L=e=>{Fe(e,{size:15})},R=e=>{q(e,{size:15})},z=e=>{He(e,{size:15})},B=e=>{oe(e,{size:15})},V=e=>{K(e,{size:15})};o(D,e=>{d(i)===`alert`?e(O):d(i)===`done-circle`?e(j,1):d(i)===`refresh`?e(M,2):d(i)===`terminal`?e(N,3):d(i)===`search`?e(P,4):d(i)===`file`?e(F,5):d(i)===`edit`?e(L,6):d(i)===`link`?e(R,7):d(i)===`agent`?e(z,8):d(i)===`done`?e(B,9):e(V,-1)}),I(w);var H=T(w,2),ee=k(H),te=k(ee,!0);I(ee);var ne=T(ee,2),re=e=>{var t=at(),n=k(t,!0);I(t),p(()=>s(n,d(y))),l(e,t)};o(ne,e=>{d(y)&&e(re)}),I(H);var ie=T(H,2),ae=e=>{var t=ot(),r=k(t,!0);I(t),p(e=>s(r,e),[()=>he(d(n).status)]),l(e,t)};o(ie,e=>{(d(_)||d(v))&&e(ae)});var U=T(ie,2);let se;I(C);var de=T(C,2),fe=e=>{var t=X();E(t,21,()=>le(d(n)),e=>`${d(n).id}:${e.label}`,(e,t)=>{var n=lt(),r=k(n),i=k(r,!0);I(r);var a=T(r,2),c=k(a),u=e=>{var n=st();let r;var i=k(n,!0);I(n),p(()=>{r=g(n,1,`svelte-1wgps4r`,null,r,{"tool-log-error":d(t).tone===`error`}),s(i,d(t).value)}),l(e,n)},f=b(()=>d(t).value.includes(`
2
- `)||d(t).value.length>80),m=e=>{var n=ct();let r;var i=k(n,!0);I(n),p(()=>{r=g(n,1,`svelte-1wgps4r`,null,r,{"tool-log-error":d(t).tone===`error`}),s(i,d(t).value)}),l(e,n)};o(c,e=>{d(f)?e(u):e(m,-1)}),I(a),I(n),p(()=>s(i,d(t).label)),l(e,n)}),I(t),l(e,t)};o(de,e=>{d(h)&&e(fe)}),I(x),p((e,t,n,r)=>{S=g(x,1,`tool-log-item svelte-1wgps4r`,null,S,e),A(C,`aria-expanded`,d(h)),A(C,`aria-label`,t),A(C,`title`,n),s(te,r),se=g(U,1,`tool-log-chevron svelte-1wgps4r`,null,se,{open:d(h)})},[()=>({running:d(_),failed:d(v),"new-turn":m(d(r))}),()=>ye(d(n)),()=>ue(d(n)),()=>pe(d(n))]),e(`click`,C,()=>c(d(n).id)),l(t,x)}),I(x),I(n),p(()=>{A(n,`aria-labelledby`,i),A(h,`id`,i),s(y,d(_))}),l(t,n)};o(y,e=>{r.items.length>0&&e(x)}),l(t,v),O()}R([`click`]);var pt=r(`<svg width="0" height="0" style="position:absolute" aria-hidden="true" class="svelte-3vj2oe"><defs class="svelte-3vj2oe"><filter id="s-brush" x="-20%" y="-20%" width="140%" height="140%" class="svelte-3vj2oe"><feTurbulence type="fractalNoise" baseFrequency="0.018 0.026" numOctaves="2" seed="7" result="t" class="svelte-3vj2oe"></feTurbulence><feDisplacementMap in="SourceGraphic" in2="t" scale="3.4" xChannelSelector="R" yChannelSelector="G" class="svelte-3vj2oe"></feDisplacementMap></filter><filter id="s-wave-brush" filterUnits="userSpaceOnUse" x="-10" y="-10" width="120" height="120" class="svelte-3vj2oe"><feTurbulence type="fractalNoise" baseFrequency="0.026 0.032" numOctaves="1" seed="3" result="nA" class="svelte-3vj2oe"></feTurbulence><feDisplacementMap in="SourceGraphic" in2="nA" scale="2.4" xChannelSelector="R" yChannelSelector="G" result="dA" class="svelte-3vj2oe"></feDisplacementMap><feTurbulence type="fractalNoise" baseFrequency="0.034 0.028" numOctaves="1" seed="17" result="nB" class="svelte-3vj2oe"></feTurbulence><feDisplacementMap in="SourceGraphic" in2="nB" scale="3.0" xChannelSelector="R" yChannelSelector="G" result="dB" class="svelte-3vj2oe"></feDisplacementMap><feMerge result="strokes" class="svelte-3vj2oe"><feMergeNode in="dA" class="svelte-3vj2oe"></feMergeNode><feMergeNode in="dB" class="svelte-3vj2oe"></feMergeNode></feMerge><feTurbulence type="turbulence" baseFrequency="0.7 0.7" numOctaves="2" seed="7" result="g" class="svelte-3vj2oe"></feTurbulence><feComponentTransfer in="g" result="gm" class="svelte-3vj2oe"><feFuncA type="linear" slope="0.55" intercept="0.52" class="svelte-3vj2oe"></feFuncA></feComponentTransfer><feComposite in="strokes" in2="gm" operator="in" class="svelte-3vj2oe"></feComposite></filter><filter id="s-bloom" x="-40%" y="-40%" width="180%" height="180%" class="svelte-3vj2oe"><feGaussianBlur stdDeviation="2.4" class="svelte-3vj2oe"></feGaussianBlur></filter></defs></svg> <div id="s-presence"><svg class="s-enso svelte-3vj2oe" viewBox="0 0 100 100" aria-hidden="true"><path class="s-echo svelte-3vj2oe"></path><path class="s-ripple s-ripple-listen s-l1 svelte-3vj2oe"></path><path class="s-ripple s-ripple-listen s-l2 svelte-3vj2oe"></path><path class="s-wet svelte-3vj2oe"></path><path class="s-draw svelte-3vj2oe"></path><path class="s-dry svelte-3vj2oe"></path><g class="s-waveform svelte-3vj2oe" aria-hidden="true"><line class="s-waveform-bar s-wb1 svelte-3vj2oe" x1="18" y1="38" x2="18" y2="62"></line><line class="s-waveform-bar s-wb2 svelte-3vj2oe" x1="32" y1="24" x2="32" y2="76"></line><line class="s-waveform-bar s-wb3 svelte-3vj2oe" x1="46" y1="12" x2="46" y2="88"></line><line class="s-waveform-bar s-wb4 svelte-3vj2oe" x1="60" y1="18" x2="60" y2="82"></line><line class="s-waveform-bar s-wb5 svelte-3vj2oe" x1="74" y1="32" x2="74" y2="68"></line></g></svg></div>`,1);function mt(t,n){w(n,!0);let r=D(void 0),i=D(void 0),a=D(void 0),o=D(void 0),s=D(void 0),c=D(void 0),u=0,f=b(()=>!n.sending&&n.voiceStatus!==`speaking`);function m(){!d(a)||!d(r)||(d(r).style.opacity=`0`,d(a).style.transition=`none`,d(a).style.opacity=`1`,d(a).style.strokeDasharray=String(u),d(a).style.strokeDashoffset=String(u),d(a).getBoundingClientRect(),d(a).style.transition=`stroke-dashoffset var(--s-t-draw) var(--s-ease-draw)`,d(a).style.strokeDashoffset=`0`)}function h(){!d(a)||!d(r)||(d(a).style.transition=`opacity 0.4s ease`,d(a).style.opacity=`0`,d(r).style.removeProperty(`opacity`))}j(()=>{[d(r),d(i),d(o),d(a),d(s),d(c)].forEach(e=>{e?.setAttribute(`d`,`M60.1244 5L62.0057 27.9635L64.4287 9.00887L79.3326 5.24671L79.9277 25.889L81.4519 17.468L95 13.7365L91.3023 74.2325L80.2203 94.5104L76.8802 92.6756L87.5529 73.1466L90.8727 18.8331L84.7715 20.5135L80.424 44.5332L76.6468 44.2474L75.6626 10.1107L67.8764 12.0762L63.4799 46.4686L59.6931 46.3822L56.7419 10.3574L47.8228 13.7251V50.3803L44.0772 50.8677L34.1996 13.3604L26.7978 17.3103C28.0204 24.0062 29.6096 35.4296 30.9221 45.4104C31.6281 50.779 32.2566 55.7505 32.7086 59.3796C32.9346 61.1942 33.1165 62.6735 33.2419 63.6994C33.4531 65.4268 33.66 67.1548 33.8682 68.8826L12.9705 58.0378L9.48426 67.1466L36.7143 92.186L34.1399 95L5 68.2044L10.9401 52.6845L29.2165 62.169C29.1313 61.4788 29.0351 60.7026 28.9293 59.8527C28.478 56.2295 27.8507 51.2671 27.1461 45.9095C25.7337 35.1688 24.0214 22.9203 22.7978 16.6515L22.5269 15.2638L36.6546 7.72465L44.0141 35.6703V11.0829L60.1244 5Z`)});try{u=d(a).getTotalLength()}catch{u=400}m(),setTimeout(()=>{h()},2400)});var y=pt(),x=T(M(y),2);let S;var C=k(x),E=k(C);v(E,e=>N(o,e),()=>d(o));var P=T(E);v(P,e=>N(s,e),()=>d(s));var F=T(P);v(F,e=>N(c,e),()=>d(c));var R=T(F);v(R,e=>N(i,e),()=>d(i));var z=T(R);v(z,e=>N(a,e),()=>d(a)),v(T(z),e=>N(r,e),()=>d(r)),_(),I(C),I(x),p(()=>{S=g(x,1,`s-presence svelte-3vj2oe`,null,S,{breathing:d(f),listening:n.voiceStatus===`recording`,speaking:n.voiceStatus===`speaking`,"s-presence--mic":n.voiceEnabled,processing:n.sending}),L(x,n.height==null?void 0:`--s-enso-size: ${n.height}px`),A(x,`role`,n.voiceEnabled?`button`:void 0),A(x,`tabindex`,n.voiceEnabled?0:void 0),A(x,`aria-label`,n.voiceEnabled?n.voiceStatus===`recording`?`Stop listening`:`Speak to the agent`:void 0),A(x,`aria-pressed`,n.voiceEnabled?n.voiceStatus===`recording`:void 0)}),e(`click`,x,function(...e){(n.voiceEnabled?n.onToggle:void 0)?.apply(this,e)}),e(`keydown`,x,function(...e){(n.voiceEnabled?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n.onToggle())}:void 0)?.apply(this,e)}),l(t,y),O()}R([`click`,`keydown`]);var Z=r(`<p class="s-action-body svelte-141raqu"> </p>`),ht=r(`<code class="s-action-code svelte-141raqu"> </code>`),gt=r(`<code class="s-action-code svelte-141raqu"> </code>`),_t=r(`<p class="s-action-body svelte-141raqu"> </p>`),vt=r(`<div class="s-action-card svelte-141raqu" role="group" aria-label="Permission request"><div class="s-action-kicker svelte-141raqu">permission request</div> <div class="s-action-title svelte-141raqu"> </div> <!> <!> <!> <!> <div class="s-action-btns svelte-141raqu"><button class="s-action-btn s-action-btn-primary svelte-141raqu" type="button"> </button> <button class="s-action-btn svelte-141raqu" type="button"> </button> <button class="s-action-btn s-action-btn-danger svelte-141raqu" type="button"> </button></div></div>`);function yt(t,n){w(n,!0);let r=b(()=>n.permission.status===`submitting`||n.permission.status===`resolved`);function i(e,t=160){return e.length>t?`${e.slice(0,t-1)}…`:e}var a=vt(),c=T(k(a),2),u=k(c,!0);I(c);var f=T(c,2),m=e=>{var t=Z(),r=k(t,!0);I(t),p(e=>s(r,e),[()=>i(n.permission.detail)]),l(e,t)};o(f,e=>{n.permission.detail&&e(m)});var h=T(f,2),g=e=>{var t=ht(),r=k(t,!0);I(t),p(e=>s(r,e),[()=>n.permission.patterns.join(`, `)]),l(e,t)};o(h,e=>{n.permission.patterns.length>0&&e(g)});var _=T(h,2),v=e=>{var t=gt(),r=k(t,!0);I(t),p(e=>s(r,e),[()=>n.permission.always.join(`, `)]),l(e,t)};o(_,e=>{n.permission.always.length>0&&e(v)});var y=T(_,2),x=e=>{var t=_t(),r=k(t,!0);I(t),p(()=>s(r,n.permission.message)),l(e,t)};o(y,e=>{n.permission.message&&e(x)});var S=T(y,2),C=k(S),E=k(C,!0);I(C);var D=T(C,2),A=k(D,!0);I(D);var j=T(D,2),M=k(j,!0);I(j),I(S),I(a),p(()=>{s(u,n.permission.permission),C.disabled=d(r),s(E,n.actionInFlight===`once`?`sending…`:`allow this once`),D.disabled=d(r),s(A,n.actionInFlight===`always`?`sending…`:`always allow`),j.disabled=d(r),s(M,n.actionInFlight===`reject`?`sending…`:`deny`)}),e(`click`,C,()=>n.onReply(`once`)),e(`click`,D,()=>n.onReply(`always`)),e(`click`,j,()=>n.onReply(`reject`)),l(t,a),O()}R([`click`]);var bt=r(`<button class="s-action-btn svelte-11d88fd" type="button"> </button>`),xt=r(`<div class="s-action-options svelte-11d88fd"></div>`),St=r(`<p class="s-action-question svelte-11d88fd"> </p> <!> <p class="s-action-hint svelte-11d88fd">or write your answer below</p>`,1),Ct=r(`<div class="s-action-kicker svelte-11d88fd"> </div>`),wt=r(`<button type="button"> </button>`),Tt=r(`<div class="s-action-options svelte-11d88fd"></div>`),Et=r(`<div class="s-question-item svelte-11d88fd"><!> <p class="s-action-question svelte-11d88fd"> </p> <!> <input class="s-question-input svelte-11d88fd" type="text" placeholder="Type an answer"/></div>`),Dt=r(`<div class="s-multi-questions svelte-11d88fd"></div> <div class="s-action-btns svelte-11d88fd"><button class="s-action-btn s-action-btn-primary svelte-11d88fd" type="button">submit answers</button> <button class="s-action-btn svelte-11d88fd" type="button">can't answer</button></div>`,1),Ot=r(`<div class="s-action-card svelte-11d88fd" role="group" aria-label="Assistant question"><div class="s-action-kicker svelte-11d88fd">a question for you</div> <!></div>`);function kt(t,n){w(n,!0);let r=b(()=>n.question.status===`submitting`||n.question.status===`answered`||n.question.status===`rejected`);var i=Ot(),a=T(k(i),2),c=t=>{var i=St(),a=M(i),c=k(a,!0);I(a);var u=T(a,2),f=t=>{var i=xt();E(i,23,()=>n.question.questions[0].options,(e,t)=>`${n.question.requestID}:${t}`,(t,i)=>{var a=bt(),o=k(a,!0);I(a),p(()=>{a.disabled=d(r),s(o,d(i).label)}),e(`click`,a,()=>n.onOption(d(i).label)),l(t,a)}),I(i),l(t,i)};o(u,e=>{n.question.questions[0].options.length>0&&e(f)}),_(2),p(()=>s(c,n.question.questions[0].question)),l(t,i)},u=t=>{var i=Dt(),a=M(i);E(a,23,()=>n.question.questions,(e,t)=>`${n.question.requestID}:question:${t}`,(t,i,a)=>{var c=Et(),u=k(c),f=e=>{var t=Ct(),n=k(t,!0);I(t),p(()=>s(n,d(i).header)),l(e,t)};o(u,e=>{d(i).header&&e(f)});var m=T(u,2),h=k(m,!0);I(m);var _=T(m,2),v=t=>{var o=Tt();E(o,23,()=>d(i).options,(e,t)=>`${n.question.requestID}:${d(a)}:${t}`,(t,i)=>{var o=wt();let c;var u=k(o,!0);I(o),p(()=>{c=g(o,1,`s-action-btn svelte-11d88fd`,null,c,{selected:n.question.answers[d(a)]===d(i).label}),o.disabled=d(r),s(u,d(i).label)}),e(`click`,o,()=>n.onSelect(d(a),d(i).label)),l(t,o)}),I(o),l(t,o)};o(_,e=>{d(i).options.length>0&&e(v)});var y=T(_,2);S(y),I(c),p(()=>{s(h,d(i).question),C(y,n.question.answers[d(a)]),y.disabled=d(r)}),e(`input`,y,e=>n.onDraft(d(a),e.currentTarget.value)),l(t,c)}),I(a);var c=T(a,2),u=k(c),f=T(u,2);I(c),p(()=>{u.disabled=d(r),f.disabled=d(r)}),e(`click`,u,()=>n.onSubmit()),e(`click`,f,()=>n.onReject()),l(t,i)};o(a,e=>{n.question.questions.length===1&&n.question.questions[0]?e(c):e(u,-1)}),I(i),l(t,i),O()}R([`click`,`input`]);function At(e,t,n){return n-(e+t)<120}function jt(e,t,n,r,i){return At(n,r,i)?!0:n<t?!1:e}var Mt=r(`<div class="s-glyph-cell svelte-23dtxz"><span class="s-glyph-label svelte-23dtxz">voice</span> <button class="s-glyph-btn svelte-23dtxz" type="button"><!></button></div>`),Nt=r(`<div class="s-loading svelte-23dtxz" aria-live="polite"><span class="s-loading-text svelte-23dtxz">loading…</span></div>`),Pt=r(`<div class="turn master"><div class="master-words settled s-streaming svelte-23dtxz"><div class="markdown-body"></div></div></div>`),Ft=r(`<div class="s-thinking svelte-23dtxz"><span class="s-thinking-text svelte-23dtxz">thinking…</span></div>`),It=r(`<div class="s-pending svelte-23dtxz" aria-live="polite"><!> <!> <!></div>`),Lt=r(`<button class="s-error-reconnect svelte-23dtxz" type="button">retry</button>`),Rt=r(`<div class="s-error-banner svelte-23dtxz" role="alert"><span class="s-error-msg svelte-23dtxz"> </span> <!> <button class="s-error-reconnect svelte-23dtxz" type="button">reconnect</button> <button class="s-error-dismiss svelte-23dtxz" type="button" aria-label="Dismiss">×</button></div>`),zt=r(`<button class="s-jump-latest svelte-23dtxz" type="button" aria-label="Jump to latest">↓ latest</button>`),Bt=r(`<div class="s-veil-sub svelte-23dtxz"> </div>`),Vt=r(`<a class="s-endpoint-manage svelte-23dtxz">manage this assistant</a>`),Ht=r(`<div class="s-endpoint-item svelte-23dtxz"><button type="button"><div class="s-endpoint-label svelte-23dtxz"> </div> <div class="s-endpoint-url svelte-23dtxz"> </div></button> <!></div>`),Ut=r(`<button class="s-tool-scrim svelte-23dtxz" type="button" aria-label="Close activity overlay"></button>`),Wt=r(`<p class="s-tool-drawer-empty svelte-23dtxz">Steps the assistant takes — searches, edits, commands — will show up here as it works.</p>`),Gt=r(`<h1 class="sr-only svelte-23dtxz">Chat</h1> <div class="s-field svelte-23dtxz"></div> <div class="s-moon svelte-23dtxz"></div> <div class="s-grain svelte-23dtxz"></div> <div class="s-corner s-corner-left svelte-23dtxz"><!></div> <div><div class="s-glyph-cell svelte-23dtxz"><button class="s-glyph-btn svelte-23dtxz" type="button" aria-label="Advanced mode"><!></button> <span class="s-glyph-label svelte-23dtxz">advanced</span></div></div> <div class="s-corner s-corner-bottom-left svelte-23dtxz"><!> <div class="s-glyph-cell svelte-23dtxz"><span class="s-glyph-label svelte-23dtxz">theme</span> <button class="s-glyph-btn s-orb-btn svelte-23dtxz" type="button"><!></button></div></div> <div><div class="s-glyph-cell s-tool-toggle-cell svelte-23dtxz"><span class="s-glyph-label svelte-23dtxz">activity</span> <button class="s-glyph-btn svelte-23dtxz" type="button" aria-haspopup="dialog" aria-controls="s-tool-drawer" aria-label="Activity"><!></button></div> <div class="s-glyph-cell svelte-23dtxz"><span class="s-glyph-label svelte-23dtxz"> </span> <button class="s-glyph-btn svelte-23dtxz" type="button" aria-haspopup="dialog" aria-controls="s-garden-veil"><!></button></div></div> <aside aria-label="Assistant activity"><!></aside> <main class="s-scroll svelte-23dtxz" id="s-scroll" aria-label="Chat history"><div class="s-thread svelte-23dtxz" id="s-thread"><!> <!> <!> <div aria-hidden="true" style="height:1px"></div></div></main> <!> <!> <div class="s-base svelte-23dtxz"><!> <!></div> <div id="s-garden-veil" role="dialog" aria-modal="true" aria-label="Conversations and assistant"><div class="s-veil-head svelte-23dtxz"><div><div class="s-veil-title svelte-23dtxz">Conversations</div> <!></div> <button class="s-head-close svelte-23dtxz" type="button" aria-label="Close conversations"><!></button></div> <div class="s-veil-body svelte-23dtxz"><section class="s-veil-section svelte-23dtxz"><div class="s-section-head svelte-23dtxz"><div class="s-veil-section-label svelte-23dtxz">assistant</div> <a class="s-new-convo svelte-23dtxz"><span class="s-new-mark svelte-23dtxz" aria-hidden="true"><svg width="11" height="11" viewBox="0 0 12 12" fill="none"><circle cx="6" cy="6" r="2.4" stroke="currentColor" stroke-width="1.1"></circle><line x1="4.5" y1="3.6" x2="4.5" y2="1.5" stroke="currentColor" stroke-width="1.1" stroke-linecap="round"></line><line x1="7.5" y1="3.6" x2="7.5" y2="1.5" stroke="currentColor" stroke-width="1.1" stroke-linecap="round"></line><line x1="6" y1="8.4" x2="6" y2="10.5" stroke="currentColor" stroke-width="1.1" stroke-linecap="round"></line></svg></span> manage connections</a></div> <div class="s-endpoint-list svelte-23dtxz" role="group" aria-label="Assistant endpoints"></div></section> <section class="s-veil-section svelte-23dtxz"><div class="s-section-head svelte-23dtxz"><div class="s-veil-section-label svelte-23dtxz">conversations</div> <button class="s-new-convo svelte-23dtxz" type="button"><span class="s-new-mark svelte-23dtxz" aria-hidden="true">+</span> begin anew</button></div> <!></section></div></div> <!> <div id="s-tool-drawer" role="dialog" aria-modal="true" aria-label="Assistant activity"><div class="s-tool-drawer-head svelte-23dtxz"><button class="s-head-close svelte-23dtxz" type="button" aria-label="Close activity"><!></button></div> <div class="s-tool-drawer-body svelte-23dtxz"><!></div></div>`,1);function Kt(n,r){w(r,!0);let a=D(void 0),f=b(()=>G.entriesLoading),m=b(()=>G.byEndpoint.get(G.activeEndpointId)?.sessionsLoading??!1),h=D(!1);function y(){N(h,!0)}function x(){N(h,!1)}let S=D(!1);function C(){N(S,!d(S))}function L(){N(S,!1)}async function R(){G.error=``,await G.onEndpointChanged(W.activeId)}async function ie(){let e=G.lastFailedText;e&&(G.error=``,await G.send(e))}async function oe(e){await G.send(e)}let ce=D(null);async function le(e){N(ce,e,!0);try{await G.answerPermission(e)}finally{N(ce,null)}}async function ue(e){await G.answerQuestion(e)}function pe(e,t){G.setQuestionAnswer(e,t)}async function me(){await G.answerQuestion()}async function he(){await G.rejectQuestion()}let ye=D(!0);function xe(e){N(ye,e,!0)}function je(){let e=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;d(a)?.scrollIntoView({behavior:e?`auto`:`smooth`})}function Me(){N(ye,!0),je()}function Ne(e,t){let n=e.closest(`.s-scroll`),r=n?.scrollTop??0;function i(){if(!n)return;let e=t.isFollowing(),i=jt(e,r,n.scrollTop,n.clientHeight,n.scrollHeight);r=n.scrollTop,i!==e&&t.onFollowChange(i)}n?.addEventListener(`scroll`,i,{passive:!0});let o=new MutationObserver(()=>{if(!t.isFollowing())return;let e=typeof window<`u`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;queueMicrotask(()=>d(a)?.scrollIntoView({behavior:e?`auto`:`smooth`}))});return o.observe(e,{childList:!0,subtree:!0,characterData:!0}),{destroy(){o.disconnect(),n?.removeEventListener(`scroll`,i)}}}let Fe=b(()=>!H.conversationActive&&(H.status===`recording`||H.status===`transcribing`)),Ie=b(()=>H.ttsAutoEnabled),K=b(()=>H.sttEngine!==`disabled`&&H.sttSupported),Le=b(()=>H.ttsSupported),q=D(``);function Re(){if(H.conversationActive){V();return}d(Fe)?te():ae(e=>{let t=e.trim();t&&N(q,d(q).trim().length>0?`${d(q).trimEnd()} ${t}`:t,!0)})}function Ve(){H.conversationActive?V():re(e=>{G.sendUtterance(e)})}function He(){ee(!H.ttsAutoEnabled)}async function Ue(){await G.startNewSession(),await B(z(`/chat`),{replaceState:!0}),x()}let J=D(!1);async function We(e){if(!d(J)){if(e===W.active?.id){x();return}N(J,!0);try{await W.activate(e),x()}catch{}finally{N(J,!1)}}}j(()=>{document.documentElement.classList.add(`chat-locked`),document.body.classList.add(`chat-locked`,`stillness-mode`);function e(e){e.key===`Escape`&&(V(),x(),L())}document.addEventListener(`keydown`,e);let t=!1;function n(){t||document.visibilityState!==`visible`||(async()=>{!await de()&&!t?G.error=`Assistant is not reachable. Try reconnecting.`:t||await G.loadSessions()})()}return document.addEventListener(`visibilitychange`,n),ne(),(async()=>{try{De.init();let e=Se.url.searchParams.get(`session`);if(De.enabled){await B(we(e),{replaceState:!0});return}await W.load(),await G.onEndpointChanged(W.activeId),e&&await G.openSession(e),Se.url.searchParams.get(`new`)===`1`&&(await G.startNewSession(),await B(z(`/chat`),{replaceState:!0}))}catch{G.error=`Unable to reach the assistant.`}})(),()=>{t=!0,V(),document.documentElement.classList.remove(`chat-locked`),document.body.classList.remove(`chat-locked`,`stillness-mode`),document.removeEventListener(`keydown`,e),document.removeEventListener(`visibilitychange`,n)}});var Ge=Gt();F(`23dtxz`,e=>{i(()=>{P.title=W.active?.label??`OpenPalm`??``})});var Ke=T(M(Ge),8);mt(k(Ke),{height:32,get voiceEnabled(){return d(K)},get sending(){return G.sending},get voiceStatus(){return H.status},onToggle:Re}),I(Ke);var Y=T(Ke,2);let qe;var Je=k(Y),Ye=k(Je);ke(k(Ye),{size:20}),I(Ye),_(2),I(Je),I(Y);var Ze=T(Y,2),Qe=k(Ze),$e=t=>{var n=Mt(),r=T(k(n),2),i=k(r),a=e=>{Ae(e,{size:20})},s=e=>{Te(e,{size:20})};o(i,e=>{d(Ie)?e(a):e(s,-1)}),I(r),I(n),p(()=>{A(r,`aria-label`,d(Ie)?`Turn off spoken responses`:`Turn on spoken responses`),A(r,`aria-pressed`,d(Ie))}),e(`click`,r,He),l(t,n)};o(Qe,e=>{d(Le)&&d(K)&&e($e)});var et=T(Qe,2),tt=T(k(et),2),nt=k(tt),it=e=>{_e(e,{size:20})},at=e=>{se(e,{size:20})},ot=e=>{fe(e,{size:20})};o(nt,e=>{U.preference===`light`?e(it):U.preference===`dark`?e(at,1):e(ot,-1)}),I(tt),I(et),I(Ze);var st=T(Ze,2);let ct;var lt=k(st),X=T(k(lt),2);ze(k(X),{size:20}),I(X),I(lt);var ut=T(lt,2),dt=k(ut),pt=k(dt,!0);I(dt);var Z=T(dt,2),ht=k(Z),gt=e=>{ve(e,{size:20})},_t=e=>{Oe(e,{size:22})};o(ht,e=>{d(h)?e(gt):e(_t,-1)}),I(Z),I(ut),I(st);var vt=T(st,2);let bt;ft(k(vt),{get items(){return G.toolLog}}),I(vt);var xt=T(vt,2),St=k(xt),Ct=k(St),wt=e=>{l(e,Nt())};o(Ct,e=>{(d(m)||d(f))&&e(wt)});var Tt=T(Ct,2);E(Tt,17,()=>G.entries,e=>e.id,(e,t)=>{Be(e,{get entry(){return d(t)}})});var Et=T(Tt,2),Dt=e=>{var t=It(),n=k(t),r=e=>{var t=Pt(),n=k(t),r=k(n);c(r,()=>Pe(G.pendingAssistantText),!0),I(r),I(n),I(t),l(e,t)},i=e=>{l(e,Ft())};o(n,e=>{G.pendingAssistantText?e(r):!G.pendingPermission&&!G.pendingQuestion&&e(i,1)});var a=T(n,2),s=e=>{yt(e,{get permission(){return G.pendingPermission},get actionInFlight(){return d(ce)},onReply:le})};o(a,e=>{G.pendingPermission&&e(s)});var u=T(a,2),f=e=>{kt(e,{get question(){return G.pendingQuestion},onOption:ue,onSelect:(e,t)=>G.setQuestionAnswer(e,t),onDraft:pe,onSubmit:me,onReject:he})};o(u,e=>{G.pendingQuestion&&e(f)}),I(t),l(e,t)};o(Et,e=>{G.sending&&e(Dt)}),v(T(Et,2),e=>N(a,e),()=>d(a)),I(St),t(St,(e,t)=>Ne?.(e,t),()=>({isFollowing:()=>d(ye),onFollowChange:xe})),I(xt);var Ot=T(xt,2),At=t=>{var n=Rt(),r=k(n),i=k(r,!0);I(r);var a=T(r,2),c=t=>{var n=Lt();e(`click`,n,ie),l(t,n)};o(a,e=>{G.lastFailedText&&e(c)});var u=T(a,2),d=T(u,2);I(n),p(()=>s(i,G.error)),e(`click`,u,R),e(`click`,d,()=>{G.error=``}),l(t,n)};o(Ot,e=>{G.error&&e(At)});var Kt=T(Ot,2),qt=t=>{var n=zt();p(()=>n.inert=d(S)||d(h)),e(`click`,n,Me),l(t,n)};o(Kt,e=>{!d(ye)&&G.sending&&e(qt)});var Jt=T(Kt,2),Yt=k(Jt);rt(Yt,{get thinking(){return G.sending}});var Xt=T(Yt,2);{let e=b(()=>!!G.pendingQuestion&&G.pendingQuestion.questions.length===1);Xe(Xt,{get sending(){return G.sending},get questionPending(){return d(e)},onSend:oe,onStop:()=>void G.stopTurn(),get voiceEnabled(){return d(K)},get voiceActive(){return d(Fe)},onMicToggle:Re,get conversationEnabled(){return d(K)},get conversationActive(){return H.conversationActive},onConversationToggle:Ve,get draft(){return d(q)},set draft(e){N(q,e,!0)}})}I(Jt);var Q=T(Jt,2);let Zt;var Qt=k(Q),$t=k(Qt),en=T(k($t),2),tn=e=>{var t=Bt(),n=k(t,!0);I(t),p(()=>s(n,W.active.label)),l(e,t)};o(en,e=>{W.active&&e(tn)}),I($t);var nn=T($t,2);ve(k(nn),{size:20}),I(nn),I(Qt);var rn=T(Qt,2),an=k(rn),on=k(an),sn=T(k(on),2);I(on);var cn=T(on,2);E(cn,21,()=>W.endpoints,e=>e.id,(t,n)=>{var r=Ht(),i=k(r);let a;var c=k(i),u=k(c,!0);I(c);var f=T(c,2),m=k(f,!0);I(f),I(i);var h=T(i,2),_=t=>{var n=Vt();p(e=>A(n,`href`,e),[()=>z(`/host`)]),e(`click`,n,x),l(t,n)},v=b(()=>d(n).url&&Ee(d(n).url));o(h,e=>{d(v)&&e(_)}),I(r),p(()=>{a=g(i,1,`s-endpoint svelte-23dtxz`,null,a,{active:d(n).id===W.active?.id}),A(i,`aria-current`,d(n).id===W.active?.id?`true`:void 0),i.disabled=d(J),s(u,d(n).label),s(m,d(n).url)}),e(`click`,i,()=>void We(d(n).id)),l(t,r)}),I(cn),I(an);var ln=T(an,2),un=k(ln),dn=T(k(un),2);I(un),Ce(T(un,2),{onChosen:x,hideNewBtn:!0}),I(ln),I(rn),I(Q),u(Q,()=>be({active:d(h),deferRestore:!0}));var fn=T(Q,2),pn=t=>{var n=Ut();A(n,`tabindex`,-1),e(`click`,n,L),l(t,n)};o(fn,e=>{d(S)&&e(pn)});var $=T(fn,2);let mn;var hn=k($),gn=k(hn);ve(k(gn),{size:20}),I(gn),I(hn);var _n=T(hn,2),vn=k(_n),yn=e=>{ft(e,{get items(){return G.toolLog}})},bn=e=>{l(e,Wt())};o(vn,e=>{G.toolLog.length>0?e(yn):e(bn,-1)}),I(_n),I($),u($,()=>be({active:d(S),deferRestore:!0})),p(e=>{qe=g(Y,1,`s-corner s-corner-right svelte-23dtxz`,null,qe,{"drawer-hidden":d(S)}),A(Ye,`aria-pressed`,De.enabled),A(tt,`aria-label`,U.preference===`system`?`Switch to light theme`:U.preference===`light`?`Switch to dark theme`:`Switch to system theme`),ct=g(st,1,`s-corner s-corner-bottom-right svelte-23dtxz`,null,ct,{"drawer-hidden":d(S)}),A(X,`aria-expanded`,d(S)),s(pt,d(h)?`close`:`conversations`),A(Z,`aria-expanded`,d(h)),A(Z,`aria-label`,d(h)?`Return to the conversation`:`Conversations`),bt=g(vt,1,`s-tool-rail svelte-23dtxz`,null,bt,{"has-items":G.toolLog.length>0}),xt.inert=d(S)||d(h),Jt.inert=d(S)||d(h),Zt=g(Q,1,`s-veil svelte-23dtxz`,null,Zt,{open:d(h)}),Q.inert=!d(h),A(Q,`aria-hidden`,!d(h)),A(sn,`href`,e),mn=g($,1,`s-tool-drawer svelte-23dtxz`,null,mn,{open:d(S)}),$.inert=!d(S),A($,`aria-hidden`,!d(S))},[()=>z(`/connections`)]),e(`click`,Ye,()=>{De.setEnabled(!0),B(we(Se.url.searchParams.get(`session`)??G.activeSessionId))}),e(`click`,tt,()=>U.toggle()),e(`click`,X,C),e(`click`,Z,function(...e){(d(h)?x:y)?.apply(this,e)}),e(`keydown`,Q,e=>ge(e,x)),e(`click`,nn,x),e(`click`,sn,x),e(`click`,dn,()=>void Ue()),e(`keydown`,$,e=>ge(e,L)),e(`click`,gn,L),l(n,Ge),O()}R([`click`,`keydown`]);export{Kt as component};
@@ -1,14 +0,0 @@
1
- import{A as e,B as t,I as n,M as r,N as i,O as a,P as o,R as s,U as c,V as l,X as u,Y as d,at as f,b as p,bt as m,d as h,dt as g,f as _,g as v,ht as y,it as b,k as x,l as S,lt as C,mt as w,nt as T,p as ee,r as E,rt as te,st as D,tt as ne,w as O,xt as k,z as A}from"../chunks/BzIvC31O.js";import"../chunks/xihTtKlq.js";import{i as j,t as re}from"../chunks/DBHgGGCD.js";import{$ as ie,Q as ae,et as M,tt as oe,u as N}from"../chunks/C718MJXm.js";import{t as se}from"../chunks/C5iiO0W9.js";import{t as ce}from"../chunks/BKLMDjUE.js";import{t as le}from"../chunks/hSjQday7.js";async function ue(e,t=fetch){try{return await t(`${e}/`,{mode:`no-cors`,cache:`no-store`,signal:AbortSignal.timeout(1500)}),!0}catch{return!1}}var de=n(`<div class="alert error svelte-xxtt2y" role="alert"> </div>`),P=n(`<span class="badge default svelte-xxtt2y">Default</span>`),fe=n(`<span class="badge active svelte-xxtt2y">Active</span>`),pe=n(`<span class="badge kind svelte-xxtt2y">guardian</span>`),me=n(`<span class="badge password svelte-xxtt2y" title="Server password configured"><!></span>`),he=n(`<button type="button" class="btn btn-primary btn-sm">Use this</button>`),ge=n(`<button type="button" class="btn btn-secondary btn-sm">Edit</button> <button type="button" class="btn btn-danger btn-sm svelte-xxtt2y"> </button>`,1),_e=n(`<article><div class="connection-main svelte-xxtt2y"><div class="connection-title svelte-xxtt2y"><span class="connection-label svelte-xxtt2y"> </span> <!> <!> <!> <!></div> <div class="connection-url svelte-xxtt2y"> </div></div> <div class="connection-actions svelte-xxtt2y"><!> <!></div></article>`),ve=n(`<button type="button" class="btn btn-secondary">Pair a device</button>`),ye=n(`<div class="toolbar-row svelte-xxtt2y"><button type="button" class="btn btn-primary">+ Add connection</button> <!></div>`),be=n(`<small class="svelte-xxtt2y">The guardian's base URL — <code class="svelte-xxtt2y">/oc</code> is appended automatically if you leave it off.</small>`),xe=n(`<small class="svelte-xxtt2y">The host:port where the remote OpenPalm assistant (OpenCode) is reachable.</small>`),Se=n(`<small class="rotate-hint svelte-xxtt2y"><strong class="svelte-xxtt2y">Rotating this password?</strong> The password lives as the file secret <code class="svelte-xxtt2y">knowledge/secrets/op_opencode_password</code> on the
2
- remote host — never in <code class="svelte-xxtt2y">stack.env</code>. Rotation is a two-step process: <ol class="svelte-xxtt2y"><li>On the remote host: re-run setup's Network access step (choose <strong class="svelte-xxtt2y">Home network, with password</strong> again with the new password), or edit <code class="svelte-xxtt2y">knowledge/secrets/op_opencode_password</code> directly and restart the <code class="svelte-xxtt2y">assistant</code> container.</li> <li>Paste the new value here and save.</li></ol></small>`),Ce=n(`<label class="field-inline svelte-xxtt2y"><input type="checkbox"/> <span>Clear stored password</span></label>`),we=n(`<div class="alert error svelte-xxtt2y" role="alert"> </div>`),Te=n(`<form class="connection-form svelte-xxtt2y"><h2 class="svelte-xxtt2y"> </h2> <label class="field svelte-xxtt2y"><span class="svelte-xxtt2y">Label</span> <input type="text" placeholder="e.g. Home server" required="" autocomplete="off" class="svelte-xxtt2y"/></label> <label class="field svelte-xxtt2y"><span class="svelte-xxtt2y">Kind</span> <select><option>OpenCode server (direct)</option><option>OpenPalm guardian (/oc)</option></select> <small class="svelte-xxtt2y"><!></small></label> <label class="field svelte-xxtt2y"><span class="svelte-xxtt2y">URL</span> <input type="url" placeholder="http://10.0.0.5:3800" required="" autocomplete="off" class="svelte-xxtt2y"/> <!></label> <label class="field svelte-xxtt2y"><span class="svelte-xxtt2y">Server password (optional)</span> <input type="password" autocomplete="new-password" class="svelte-xxtt2y"/> <small class="svelte-xxtt2y">Forwarded as HTTP Basic auth. Only required for a remote assistant running the <strong>Home network, with password</strong> network access preset (<code class="svelte-xxtt2y">OPENCODE_AUTH=true</code>).</small> <!></label> <!> <!> <div class="form-actions svelte-xxtt2y"><button type="submit" class="btn btn-primary"> </button> <button type="button" class="btn btn-secondary">Cancel</button></div></form>`),Ee=n(`<div class="alert error svelte-xxtt2y" role="alert"> </div>`),De=n(`<form class="connection-form svelte-xxtt2y"><h2 class="svelte-xxtt2y">Pair a device</h2> <p class="lede svelte-xxtt2y">Mint a one-time QR code / pairing code for another device (phone, laptop) to add this
3
- stack as a connection. The code contains a fresh, individually-revocable credential — it
4
- is shown only once.</p> <label class="field svelte-xxtt2y"><span class="svelte-xxtt2y">Label</span> <input type="text" placeholder="e.g. My phone" required="" autocomplete="off" class="svelte-xxtt2y"/></label> <label class="field svelte-xxtt2y"><span class="svelte-xxtt2y">Guardian URL (as reachable BY THE OTHER DEVICE)</span> <input type="url" placeholder="https://gw.example.ts.net or http://10.0.0.5:3830" required="" autocomplete="off" class="svelte-xxtt2y"/> <small class="svelte-xxtt2y">Use the LAN address or Tailscale/ts.net hostname the other device can actually reach —
5
- not <code class="svelte-xxtt2y">127.0.0.1</code>. Remote (non-loopback) origins must be reachable over HTTPS
6
- and allow-listed via <code class="svelte-xxtt2y">GUARDIAN_CORS_ALLOWED_ORIGINS</code>; see <a href="https://github.com/itlackey/openpalm/blob/main/docs/remote-access-tls.md" target="_blank" rel="noopener noreferrer">remote-access-tls.md</a>.</small></label> <!> <div class="form-actions svelte-xxtt2y"><button type="submit" class="btn btn-primary"> </button> <button type="button" class="btn btn-secondary">Cancel</button></div></form>`),Oe=n(`<div class="pairing-qr svelte-xxtt2y"></div>`),ke=n(`<p class="alert" role="status">The QR image couldn't be generated on this stack — scan isn't available, but the
7
- pairing code below works exactly the same. Copy it into the new device.</p>`),Ae=n(`<li> </li>`),je=n(`<ul class="alert warn pairing-warnings svelte-xxtt2y"></ul>`),Me=n(`<section class="connection-form pairing-result svelte-xxtt2y" aria-label="Pairing code"><h2 class="svelte-xxtt2y">Scan or copy the pairing code</h2> <p class="alert warn svelte-xxtt2y" role="status">This code will be shown only once and won't be shown again — copy it or scan it now.
8
- It carries a live credential; the underlying device principal can be revoked later from
9
- this stack's guardian if needed.</p> <!> <div class="field svelte-xxtt2y"><span id="pairing-code-label" class="svelte-xxtt2y">Pairing code</span> <code class="pairing-code svelte-xxtt2y" aria-labelledby="pairing-code-label"> </code></div> <div class="form-actions svelte-xxtt2y"><button type="button" class="btn btn-secondary"> </button></div> <!> <p class="lede svelte-xxtt2y">On the other device, open the connections page and paste this code (or scan the QR with
10
- any camera/QR app), or use it as the <code>?pair=</code> link if this stack has a hosted
11
- client origin. Non-local client origins also need <code>GUARDIAN_CORS_ALLOWED_ORIGINS</code> set for this guardian.</p> <div class="form-actions svelte-xxtt2y"><button type="button" class="btn btn-primary">Done</button></div></section>`),Ne=n(`<section class="install-app svelte-xxtt2y" aria-label="Install OpenPalm app"><a class="btn btn-secondary" target="_blank" rel="noopener noreferrer">Install OpenPalm app</a> <small class="svelte-xxtt2y">Open the app at its stable localhost origin, then use your browser's Install control.</small></section>`),Pe=n(`<!> <main class="page svelte-xxtt2y"><header class="page-header svelte-xxtt2y"><h1 class="svelte-xxtt2y">Connections</h1> <p class="lede svelte-xxtt2y">Connect to local or remote OpenPalm assistants. The <strong>Default</strong> entry comes
12
- from the environment (set by the launcher) and cannot be deleted. Add more connections to
13
- switch between assistants at any time.</p></header> <!> <section class="connections-list svelte-xxtt2y" aria-label="Configured connections"></section> <!> <!></main>`,1);function F(n,A){y(A,!0);let F=C(`idle`),I=C(null),L=C(``),R=C(``),z=C(`remote-opencode`),B=C(``),V=C(!1),H=C(!1),U=C(``),W=C(null),G=C(`idle`),K=C(``),q=C(``),J=C(!1),Y=C(``),X=C(``),Z=C(null),Q=C(f([])),$=C(!1),Fe=C(!1),Ie=g(()=>N.endpoints),Le=g(()=>N.active);E(()=>{N.load(!0),se.url.searchParams.get(`new`)===`1`&&Ue();let e=j.clientAppUrl;e&&ue(e).then(e=>{D(Fe,e,!0)})});function Re(){D(G,`form`),D(K,``),D(q,``),D(Y,``)}function ze(){D(G,`idle`),D(Y,``)}async function Be(e){if(e.preventDefault(),c(J))return;let t=c(K).trim(),n=c(q).trim();if(!t||!n){D(Y,`Label and URL are required.`);return}D(J,!0),D(Y,``);try{let e=await M({label:t,url:n});D(X,e.code,!0),D(Z,e.qrSvg,!0),D(Q,e.warnings,!0),D($,!1),D(G,`result`)}catch(e){D(Y,e.message??`Pairing failed.`,!0)}finally{D(J,!1)}}async function Ve(){if(c(X))try{await navigator.clipboard.writeText(c(X)),D($,!0)}catch{D(Y,`Copy failed — select the code and copy manually.`)}}function He(){D(G,`idle`),D(X,``),D(Z,null),D(Q,[],!0),D($,!1)}function Ue(){D(F,`add`),D(I,null),D(L,``),D(R,``),D(z,`remote-opencode`),D(B,``),D(V,!1),D(U,``)}function We(e){D(F,`edit`),D(I,e.id,!0),D(L,e.label,!0),D(R,e.url,!0),D(z,e.kind===`openpalm-client-api`?`openpalm-client-api`:`remote-opencode`,!0),D(B,``),D(V,!1),D(U,``)}function Ge(){D(F,`idle`),D(U,``)}async function Ke(e){if(e.preventDefault(),c(H))return;let t=c(L).trim(),n=c(R).trim();if(!t||!n){D(U,`Label and URL are required.`);return}D(H,!0),D(U,``);try{if(c(F)===`add`)await ae({label:t,url:n,kind:c(z),...c(B)?{password:c(B)}:{}});else if(c(F)===`edit`&&c(I)){let e={label:t,url:n,kind:c(z)};c(V)?e.password=null:c(B)&&(e.password=c(B)),await oe(c(I),e)}await N.load(!0),D(F,`idle`)}catch(e){D(U,e.message??`Save failed.`,!0)}finally{D(H,!1)}}async function qe(e){try{await N.activate(e)}catch{}}async function Je(e){if(!e.isDefault&&confirm(`Remove connection "${e.label}"?`)){D(W,e.id,!0);try{await ie(e.id),await N.load(!0)}catch(e){N.error=e.message??`Delete failed.`}finally{D(W,null)}}}var Ye=Pe();O(`xxtt2y`,e=>{d(()=>{ne.title=`Connections — OpenPalm`})});var Xe=te(Ye);ce(Xe,{});var Ze=b(Xe,2),Qe=b(T(Ze),2),$e=e=>{var t=de(),n=T(t,!0);k(t),u(()=>i(n,N.error)),o(e,t)};r(Qe,e=>{N.error&&e($e)});var et=b(Qe,2);x(et,21,()=>c(Ie),e=>e.id,(e,n)=>{var a=_e();let s;var l=T(a),d=T(l),f=T(d),m=T(f,!0);k(f);var h=b(f,2),g=e=>{o(e,P())};r(h,e=>{c(n).isDefault&&e(g)});var _=b(h,2),v=e=>{o(e,fe())};r(_,e=>{c(n).id===c(Le)?.id&&e(v)});var y=b(_,2),x=e=>{o(e,pe())};r(y,e=>{c(n).kind===`openpalm-client-api`&&e(x)});var S=b(y,2),C=e=>{var t=me();le(T(t),{size:11}),k(t),o(e,t)};r(S,e=>{c(n).hasPassword&&e(C)}),k(d);var w=b(d,2),ee=T(w,!0);k(w),k(l);var E=b(l,2),D=T(E),ne=e=>{var r=he();t(`click`,r,()=>qe(c(n).id)),o(e,r)};r(D,e=>{c(n).id!==c(Le)?.id&&e(ne)});var O=b(D,2),A=e=>{var r=ge(),a=te(r),s=b(a,2),l=T(s,!0);k(s),u(()=>{s.disabled=c(W)===c(n).id,i(l,c(W)===c(n).id?`Removing…`:`Remove`)}),t(`click`,a,()=>We(c(n))),t(`click`,s,()=>Je(c(n))),o(e,r)};r(O,e=>{c(n).isDefault||e(A)}),k(E),k(a),u(()=>{s=p(a,1,`connection-card svelte-xxtt2y`,null,s,{active:c(n).id===c(Le)?.id}),i(m,c(n).label),i(ee,c(n).url)}),o(e,a)}),k(et);var tt=b(et,2),nt=e=>{var n=ye(),i=T(n),a=b(i,2),s=e=>{var n=ve();t(`click`,n,Re),o(e,n)},l=g(()=>re(`host:stack:write`));r(a,e=>{c(l)&&e(s)}),k(n),t(`click`,i,Ue),o(e,n)},rt=e=>{var n=Te(),a=T(n),d=T(a,!0);k(a);var f=b(a,2),p=b(T(f),2);_(p),k(f);var g=b(f,2),y=b(T(g),2),x=T(y);x.value=x.__value=`remote-opencode`;var C=b(x);C.value=C.__value=`openpalm-client-api`,k(y);var w=b(y,2),E=T(w),te=e=>{o(e,s(`The "Shared network, guardian protected" story — connect to the guardian's protected front door.`))},ne=e=>{o(e,s(`A direct OpenCode connection is the supported "Home network" preset story (Setup → Network access),
14
- not a dev/advanced-only path.`))};r(E,e=>{c(z)===`openpalm-client-api`?e(te):e(ne,-1)}),k(w),k(g);var O=b(g,2),A=b(T(O),2);_(A);var j=b(A,2),re=e=>{o(e,be())},ie=e=>{o(e,xe())};r(j,e=>{c(z)===`openpalm-client-api`?e(re):e(ie,-1)}),k(O);var ae=b(O,2),M=b(T(ae),2);_(M);var oe=b(M,4),N=e=>{o(e,Se())};r(oe,e=>{c(F)===`edit`&&e(N)}),k(ae);var se=b(ae,2),ce=e=>{var t=Ce(),n=T(t);_(n),m(2),k(t),S(n,()=>c(V),e=>D(V,e)),o(e,t)};r(se,e=>{c(F)===`edit`&&e(ce)});var le=b(se,2),ue=e=>{var t=we(),n=T(t,!0);k(t),u(()=>i(n,c(U))),o(e,t)};r(le,e=>{c(U)&&e(ue)});var de=b(le,2),P=T(de),fe=T(P,!0);k(P);var pe=b(P,2);k(de),k(n),u(()=>{i(d,c(F)===`add`?`Add connection`:`Edit connection`),ee(M,`placeholder`,c(F)===`edit`?`Leave blank to keep current`:``),P.disabled=c(H),i(fe,c(H)?`Saving…`:`Save`),pe.disabled=c(H)}),l(`submit`,n,Ke),h(p,()=>c(L),e=>D(L,e)),v(y,()=>c(z),e=>D(z,e)),h(A,()=>c(R),e=>D(R,e)),h(M,()=>c(B),e=>D(B,e)),t(`click`,pe,Ge),o(e,n)},it=e=>{var n=De(),a=b(T(n),4),s=b(T(a),2);_(s),k(a);var d=b(a,2),f=b(T(d),2);_(f),m(2),k(d);var p=b(d,2),g=e=>{var t=Ee(),n=T(t,!0);k(t),u(()=>i(n,c(Y))),o(e,t)};r(p,e=>{c(Y)&&e(g)});var v=b(p,2),y=T(v),x=T(y,!0);k(y);var S=b(y,2);k(v),k(n),u(()=>{y.disabled=c(J),i(x,c(J)?`Minting…`:`Mint pairing code`),S.disabled=c(J)}),l(`submit`,n,Be),h(s,()=>c(K),e=>D(K,e)),h(f,()=>c(q),e=>D(q,e)),t(`click`,S,ze),o(e,n)},at=n=>{var s=Me(),l=b(T(s),4),d=e=>{var t=Oe();a(t,()=>c(Z),!0),k(t),o(e,t)},f=e=>{o(e,ke())};r(l,e=>{c(Z)?e(d):e(f,-1)});var p=b(l,2),m=b(T(p),2),h=T(m,!0);k(m),k(p);var g=b(p,2),_=T(g),v=T(_,!0);k(_),k(g);var y=b(g,2),S=t=>{var n=je();x(n,21,()=>c(Q),e,(e,t)=>{var n=Ae(),r=T(n,!0);k(n),u(()=>i(r,c(t))),o(e,n)}),k(n),o(t,n)};r(y,e=>{c(Q).length>0&&e(S)});var C=b(y,4),w=T(C);k(C),k(s),u(()=>{i(h,c(X)),i(v,c($)?`Copied`:`Copy code`)}),t(`click`,_,Ve),t(`click`,w,He),o(n,s)};r(tt,e=>{c(F)===`idle`&&c(G)===`idle`?e(nt):c(F)===`idle`?c(G)===`form`?e(it,2):c(G)===`result`&&e(at,3):e(rt,1)});var ot=b(tt,2),st=e=>{var t=Ne(),n=T(t);m(2),k(t),u(()=>ee(n,`href`,j.clientAppUrl)),o(e,t)};r(ot,e=>{c(Fe)&&j.clientAppUrl&&e(st)}),k(Ze),o(n,Ye),w()}A([`click`]);export{F as component};