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

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 (589) hide show
  1. package/README.md +3 -2
  2. package/build/.openpalm-ui-version +1 -1
  3. package/build/client/_app/immutable/assets/4.Cd3Y_8BZ.css +1 -0
  4. package/build/client/_app/immutable/assets/4.Cd3Y_8BZ.css.br +3 -0
  5. package/build/client/_app/immutable/assets/4.Cd3Y_8BZ.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/6.BM7A1dW5.css +1 -0
  7. package/build/client/_app/immutable/assets/6.BM7A1dW5.css.br +0 -0
  8. package/build/client/_app/immutable/assets/6.BM7A1dW5.css.gz +0 -0
  9. package/build/client/_app/immutable/assets/7.DHMKw-HL.css +1 -0
  10. package/build/client/_app/immutable/assets/7.DHMKw-HL.css.br +0 -0
  11. package/build/client/_app/immutable/assets/7.DHMKw-HL.css.gz +0 -0
  12. package/build/client/_app/immutable/assets/9.CmCaAuiy.css +1 -0
  13. package/build/client/_app/immutable/assets/9.CmCaAuiy.css.br +0 -0
  14. package/build/client/_app/immutable/assets/9.CmCaAuiy.css.gz +0 -0
  15. package/build/client/_app/immutable/assets/QuestionCard.CSfD3z_X.css +1 -0
  16. package/build/client/_app/immutable/assets/QuestionCard.CSfD3z_X.css.br +0 -0
  17. package/build/client/_app/immutable/assets/QuestionCard.CSfD3z_X.css.gz +0 -0
  18. package/build/client/_app/immutable/chunks/1F1QVf3N.js +1 -0
  19. package/build/client/_app/immutable/chunks/1F1QVf3N.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/1F1QVf3N.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/{DmFbAjwW.js → 92accNiq.js} +1 -1
  22. package/build/client/_app/immutable/chunks/92accNiq.js.br +0 -0
  23. package/build/client/_app/immutable/chunks/92accNiq.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/B9uMOgDZ.js +3 -0
  25. package/build/client/_app/immutable/chunks/B9uMOgDZ.js.br +0 -0
  26. package/build/client/_app/immutable/chunks/B9uMOgDZ.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/{SXdvPq3_.js → BBXQKGHA.js} +1 -1
  28. package/build/client/_app/immutable/chunks/BBXQKGHA.js.br +1 -0
  29. package/build/client/_app/immutable/chunks/BBXQKGHA.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/{CUa5ff3d.js → BGx9HO1u.js} +1 -1
  31. package/build/client/_app/immutable/chunks/BGx9HO1u.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/BGx9HO1u.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/BwKrb5qD.js +1 -0
  34. package/build/client/_app/immutable/chunks/BwKrb5qD.js.br +2 -0
  35. package/build/client/_app/immutable/chunks/BwKrb5qD.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/{BDK50g8a.js → ByiipSaR.js} +1 -1
  37. package/build/client/_app/immutable/chunks/ByiipSaR.js.br +3 -0
  38. package/build/client/_app/immutable/chunks/ByiipSaR.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/C092q_Hl.js +1 -0
  40. package/build/client/_app/immutable/chunks/C092q_Hl.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/C092q_Hl.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/{D5FtEngX.js → C4qTU5YY.js} +1 -1
  43. package/build/client/_app/immutable/chunks/C4qTU5YY.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/C4qTU5YY.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/C6rMFkms.js +14 -0
  46. package/build/client/_app/immutable/chunks/C6rMFkms.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/C6rMFkms.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/C7g46Pjm.js +1 -0
  49. package/build/client/_app/immutable/chunks/C7g46Pjm.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/C7g46Pjm.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/{mG6HnNbi.js → CJc9QEdG.js} +1 -1
  52. package/build/client/_app/immutable/chunks/CJc9QEdG.js.br +2 -0
  53. package/build/client/_app/immutable/chunks/CJc9QEdG.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/CR3nChHO.js +3 -0
  55. package/build/client/_app/immutable/chunks/CR3nChHO.js.br +0 -0
  56. package/build/client/_app/immutable/chunks/CR3nChHO.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/CXv_deBx.js +1 -0
  58. package/build/client/_app/immutable/chunks/CXv_deBx.js.br +0 -0
  59. package/build/client/_app/immutable/chunks/CXv_deBx.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/CzKYnjEX.js +1 -0
  61. package/build/client/_app/immutable/chunks/CzKYnjEX.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/CzKYnjEX.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/D-DB6zTo.js +9 -0
  64. package/build/client/_app/immutable/chunks/D-DB6zTo.js.br +0 -0
  65. package/build/client/_app/immutable/chunks/D-DB6zTo.js.gz +0 -0
  66. package/build/client/_app/immutable/chunks/D3d8Mm8X.js +1 -0
  67. package/build/client/_app/immutable/chunks/D3d8Mm8X.js.br +1 -0
  68. package/build/client/_app/immutable/chunks/D3d8Mm8X.js.gz +0 -0
  69. package/build/client/_app/immutable/chunks/DDSqq1hR.js +1 -0
  70. package/build/client/_app/immutable/chunks/DDSqq1hR.js.br +0 -0
  71. package/build/client/_app/immutable/chunks/DDSqq1hR.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/{NR-JVJz-.js → DTAO9S6h.js} +1 -1
  73. package/build/client/_app/immutable/chunks/DTAO9S6h.js.br +0 -0
  74. package/build/client/_app/immutable/chunks/DTAO9S6h.js.gz +0 -0
  75. package/build/client/_app/immutable/chunks/DTLQuSQp.js +3 -0
  76. package/build/client/_app/immutable/chunks/DTLQuSQp.js.br +0 -0
  77. package/build/client/_app/immutable/chunks/DTLQuSQp.js.gz +0 -0
  78. package/build/client/_app/immutable/chunks/{hSjQday7.js → _zkFsY4j.js} +1 -1
  79. package/build/client/_app/immutable/chunks/_zkFsY4j.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/_zkFsY4j.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/d1cxvUgj.js +1 -0
  82. package/build/client/_app/immutable/chunks/d1cxvUgj.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/d1cxvUgj.js.gz +0 -0
  84. package/build/client/_app/immutable/chunks/qrqTdjh7.js +1 -0
  85. package/build/client/_app/immutable/chunks/qrqTdjh7.js.br +0 -0
  86. package/build/client/_app/immutable/chunks/qrqTdjh7.js.gz +0 -0
  87. package/build/client/_app/immutable/entry/app.CXHi3StM.js +2 -0
  88. package/build/client/_app/immutable/entry/app.CXHi3StM.js.br +0 -0
  89. package/build/client/_app/immutable/entry/app.CXHi3StM.js.gz +0 -0
  90. package/build/client/_app/immutable/entry/start.eS_-xLIC.js +1 -0
  91. package/build/client/_app/immutable/entry/start.eS_-xLIC.js.br +1 -0
  92. package/build/client/_app/immutable/entry/start.eS_-xLIC.js.gz +0 -0
  93. package/build/client/_app/immutable/nodes/0.Bfv0aXoG.js +1 -0
  94. package/build/client/_app/immutable/nodes/0.Bfv0aXoG.js.br +0 -0
  95. package/build/client/_app/immutable/nodes/0.Bfv0aXoG.js.gz +0 -0
  96. package/build/client/_app/immutable/nodes/1.B8Ebge5I.js +1 -0
  97. package/build/client/_app/immutable/nodes/1.B8Ebge5I.js.br +0 -0
  98. package/build/client/_app/immutable/nodes/1.B8Ebge5I.js.gz +0 -0
  99. package/build/client/_app/immutable/nodes/10.Di4b61Rb.js +1 -0
  100. package/build/client/_app/immutable/nodes/10.Di4b61Rb.js.br +0 -0
  101. package/build/client/_app/immutable/nodes/10.Di4b61Rb.js.gz +0 -0
  102. package/build/client/_app/immutable/nodes/11.CUlazdDv.js +8 -0
  103. package/build/client/_app/immutable/nodes/11.CUlazdDv.js.br +0 -0
  104. package/build/client/_app/immutable/nodes/11.CUlazdDv.js.gz +0 -0
  105. package/build/client/_app/immutable/nodes/2.tmtk1Bjc.js +1 -0
  106. package/build/client/_app/immutable/nodes/2.tmtk1Bjc.js.br +0 -0
  107. package/build/client/_app/immutable/nodes/2.tmtk1Bjc.js.gz +0 -0
  108. package/build/client/_app/immutable/nodes/3.BEaeucAu.js +1 -0
  109. package/build/client/_app/immutable/nodes/3.BEaeucAu.js.br +0 -0
  110. package/build/client/_app/immutable/nodes/3.BEaeucAu.js.gz +0 -0
  111. package/build/client/_app/immutable/nodes/4.DQOL0qY_.js +1 -0
  112. package/build/client/_app/immutable/nodes/4.DQOL0qY_.js.br +0 -0
  113. package/build/client/_app/immutable/nodes/4.DQOL0qY_.js.gz +0 -0
  114. package/build/client/_app/immutable/nodes/{5.CIMkqYzP.js → 5.BGqmDWpO.js} +2 -2
  115. package/build/client/_app/immutable/nodes/5.BGqmDWpO.js.br +0 -0
  116. package/build/client/_app/immutable/nodes/5.BGqmDWpO.js.gz +0 -0
  117. package/build/client/_app/immutable/nodes/6.Cf2kRGl-.js +2 -0
  118. package/build/client/_app/immutable/nodes/6.Cf2kRGl-.js.br +0 -0
  119. package/build/client/_app/immutable/nodes/6.Cf2kRGl-.js.gz +0 -0
  120. package/build/client/_app/immutable/nodes/7.CvaILUo5.js +16 -0
  121. package/build/client/_app/immutable/nodes/7.CvaILUo5.js.br +0 -0
  122. package/build/client/_app/immutable/nodes/7.CvaILUo5.js.gz +0 -0
  123. package/build/client/_app/immutable/nodes/8.BANf4x1v.js +1 -0
  124. package/build/client/_app/immutable/nodes/8.BANf4x1v.js.br +0 -0
  125. package/build/client/_app/immutable/nodes/8.BANf4x1v.js.gz +0 -0
  126. package/build/client/_app/immutable/nodes/9.DvOR66Q0.js +128 -0
  127. package/build/client/_app/immutable/nodes/9.DvOR66Q0.js.br +0 -0
  128. package/build/client/_app/immutable/nodes/9.DvOR66Q0.js.gz +0 -0
  129. package/build/client/_app/version.json +1 -1
  130. package/build/client/_app/version.json.br +1 -1
  131. package/build/client/_app/version.json.gz +0 -0
  132. package/build/server/chunks/{0-BtezztJz.js → 0-D8UAPThv.js} +13 -7
  133. package/build/server/chunks/0-D8UAPThv.js.map +1 -0
  134. package/build/server/chunks/1-bS23Eg-d.js +9 -0
  135. package/build/server/chunks/{1-CvGA_TOi.js.map → 1-bS23Eg-d.js.map} +1 -1
  136. package/build/server/chunks/{10-D_ipl62-.js → 10-C5TUqG1t.js} +3 -3
  137. package/build/server/chunks/{10-D_ipl62-.js.map → 10-C5TUqG1t.js.map} +1 -1
  138. package/build/server/chunks/11-DSjZgp33.js +9 -0
  139. package/build/server/chunks/11-DSjZgp33.js.map +1 -0
  140. package/build/server/chunks/{2-CQSBaE_w.js → 2-KPMSLSlE.js} +2 -2
  141. package/build/server/chunks/{2-CQSBaE_w.js.map → 2-KPMSLSlE.js.map} +1 -1
  142. package/build/server/chunks/{3-CZdWulB3.js → 3-D0iTJ9v2.js} +10 -11
  143. package/build/server/chunks/3-D0iTJ9v2.js.map +1 -0
  144. package/build/server/chunks/4-CHJRF8qs.js +9 -0
  145. package/build/server/chunks/4-CHJRF8qs.js.map +1 -0
  146. package/build/server/chunks/{5-CeJvfCdk.js → 5-CwCiwnFt.js} +3 -3
  147. package/build/server/chunks/{5-CeJvfCdk.js.map → 5-CwCiwnFt.js.map} +1 -1
  148. package/build/server/chunks/6-raswytzE.js +9 -0
  149. package/build/server/chunks/6-raswytzE.js.map +1 -0
  150. package/build/server/chunks/7-NC4-KlW9.js +9 -0
  151. package/build/server/chunks/7-NC4-KlW9.js.map +1 -0
  152. package/build/server/chunks/{8-DiHmrGkL.js → 8-DFD8sNRI.js} +5 -7
  153. package/build/server/chunks/8-DFD8sNRI.js.map +1 -0
  154. package/build/server/chunks/9-rIsHxfiY.js +9 -0
  155. package/build/server/chunks/9-rIsHxfiY.js.map +1 -0
  156. package/build/server/chunks/{IconActivity-DrgUhxxi.js → ChatMessage-fWnwEF6b.js} +3 -57
  157. package/build/server/chunks/ChatMessage-fWnwEF6b.js.map +1 -0
  158. package/build/server/chunks/{ChatNavbar-FJW5r496.js → ChatNavbar-DqdxDR5U.js} +9 -9
  159. package/build/server/chunks/{ChatNavbar-FJW5r496.js.map → ChatNavbar-DqdxDR5U.js.map} +1 -1
  160. package/build/server/chunks/IconActivity-BU1QGLAZ.js +58 -0
  161. package/build/server/chunks/IconActivity-BU1QGLAZ.js.map +1 -0
  162. package/build/server/chunks/IconMic-CZN60P6B.js +10 -0
  163. package/build/server/chunks/IconMic-CZN60P6B.js.map +1 -0
  164. package/build/server/chunks/{IconServer-w-1K5jNR.js → IconServer-BwcRjcsS.js} +5 -5
  165. package/build/server/chunks/{IconServer-w-1K5jNR.js.map → IconServer-BwcRjcsS.js.map} +1 -1
  166. package/build/server/chunks/{IconSoundOn-DZGaQz_p.js → IconSoundOn-DTZuBn2-.js} +9 -12
  167. package/build/server/chunks/IconSoundOn-DTZuBn2-.js.map +1 -0
  168. package/build/server/chunks/{IconStop-BPbovgch.js → IconStop-BxUfqTaV.js} +173 -214
  169. package/build/server/chunks/IconStop-BxUfqTaV.js.map +1 -0
  170. package/build/server/chunks/QuestionCard-DOLuSSbI.js +128 -0
  171. package/build/server/chunks/QuestionCard-DOLuSSbI.js.map +1 -0
  172. package/build/server/chunks/Spinner-2WZW6r_I.js +12 -0
  173. package/build/server/chunks/Spinner-2WZW6r_I.js.map +1 -0
  174. package/build/server/chunks/{_layout.svelte-B-_IlE2E.js → _layout.svelte-CBBWJ3m3.js} +3 -4
  175. package/build/server/chunks/{_layout.svelte-B-_IlE2E.js.map → _layout.svelte-CBBWJ3m3.js.map} +1 -1
  176. package/build/server/chunks/{_page.svelte-K6kU7jIW.js → _page.svelte-CYzntFY4.js} +45 -136
  177. package/build/server/chunks/_page.svelte-CYzntFY4.js.map +1 -0
  178. package/build/server/chunks/_page.svelte-CysG6Te2.js +192 -0
  179. package/build/server/chunks/_page.svelte-CysG6Te2.js.map +1 -0
  180. package/build/server/chunks/{_page.svelte-CPZBh4-z.js → _page.svelte-D-_cPU8e.js} +3 -3
  181. package/build/server/chunks/{_page.svelte-CPZBh4-z.js.map → _page.svelte-D-_cPU8e.js.map} +1 -1
  182. package/build/server/chunks/{_page.svelte-CPo3vFZf.js → _page.svelte-D4hOWjfm.js} +64 -353
  183. package/build/server/chunks/_page.svelte-D4hOWjfm.js.map +1 -0
  184. package/build/server/chunks/_page.svelte-D9au75wl.js +183 -0
  185. package/build/server/chunks/_page.svelte-D9au75wl.js.map +1 -0
  186. package/build/server/chunks/{_page.svelte-GcuuPiXq.js → _page.svelte-DjldYxQn.js} +28 -136
  187. package/build/server/chunks/_page.svelte-DjldYxQn.js.map +1 -0
  188. package/build/server/chunks/{_page.svelte-DM96lwQ1.js → _page.svelte-DsJgu4mW.js} +3 -3
  189. package/build/server/chunks/{_page.svelte-DM96lwQ1.js.map → _page.svelte-DsJgu4mW.js.map} +1 -1
  190. package/build/server/chunks/_server.ts-1qbl_1NY.js +87 -0
  191. package/build/server/chunks/_server.ts-1qbl_1NY.js.map +1 -0
  192. package/build/server/chunks/{_server.ts-BLXzfOzW.js → _server.ts-2VPdIZFH.js} +7 -7
  193. package/build/server/chunks/{_server.ts-BLXzfOzW.js.map → _server.ts-2VPdIZFH.js.map} +1 -1
  194. package/build/server/chunks/{_server.ts-513m4Yqs.js → _server.ts-68MuZYx_.js} +8 -8
  195. package/build/server/chunks/{_server.ts-513m4Yqs.js.map → _server.ts-68MuZYx_.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-BaVwMXGu.js → _server.ts-8AfutA1j.js} +7 -7
  197. package/build/server/chunks/{_server.ts-BaVwMXGu.js.map → _server.ts-8AfutA1j.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-Cp8YnPjm.js → _server.ts-B-5y1hA4.js} +9 -9
  199. package/build/server/chunks/{_server.ts-Cp8YnPjm.js.map → _server.ts-B-5y1hA4.js.map} +1 -1
  200. package/build/server/chunks/{_server.ts-CVvUFmDd.js → _server.ts-B1CunPF7.js} +7 -7
  201. package/build/server/chunks/{_server.ts-CVvUFmDd.js.map → _server.ts-B1CunPF7.js.map} +1 -1
  202. package/build/server/chunks/{_server.ts-Cgdl0C1I.js → _server.ts-B1KGSkdl.js} +7 -7
  203. package/build/server/chunks/{_server.ts-Cgdl0C1I.js.map → _server.ts-B1KGSkdl.js.map} +1 -1
  204. package/build/server/chunks/{_server.ts-WZl_x3WY.js → _server.ts-B2NALEcR.js} +7 -7
  205. package/build/server/chunks/{_server.ts-WZl_x3WY.js.map → _server.ts-B2NALEcR.js.map} +1 -1
  206. package/build/server/chunks/{_server.ts-DnonNBWq.js → _server.ts-B2iUBxXh.js} +9 -9
  207. package/build/server/chunks/{_server.ts-DnonNBWq.js.map → _server.ts-B2iUBxXh.js.map} +1 -1
  208. package/build/server/chunks/{_server.ts-rVmsBymo.js → _server.ts-BN8EkPAZ.js} +8 -8
  209. package/build/server/chunks/{_server.ts-rVmsBymo.js.map → _server.ts-BN8EkPAZ.js.map} +1 -1
  210. package/build/server/chunks/{_server.ts-Cf_ZLxIl.js → _server.ts-BQJfEfl9.js} +12 -13
  211. package/build/server/chunks/_server.ts-BQJfEfl9.js.map +1 -0
  212. package/build/server/chunks/{_server.ts-CPiybiLB.js → _server.ts-BQSMacks.js} +10 -10
  213. package/build/server/chunks/{_server.ts-CPiybiLB.js.map → _server.ts-BQSMacks.js.map} +1 -1
  214. package/build/server/chunks/{_server.ts-DwGTXfsS.js → _server.ts-BYt64wi5.js} +3 -3
  215. package/build/server/chunks/{_server.ts-DwGTXfsS.js.map → _server.ts-BYt64wi5.js.map} +1 -1
  216. package/build/server/chunks/{_server.ts-ykET4T6s.js → _server.ts-Ba0MJSs9.js} +9 -9
  217. package/build/server/chunks/_server.ts-Ba0MJSs9.js.map +1 -0
  218. package/build/server/chunks/{_server.ts-CMOAhXEC.js → _server.ts-BdIM_pWg.js} +9 -9
  219. package/build/server/chunks/{_server.ts-CMOAhXEC.js.map → _server.ts-BdIM_pWg.js.map} +1 -1
  220. package/build/server/chunks/{_server.ts-DbvC6vbj.js → _server.ts-BfxTJHa-.js} +7 -7
  221. package/build/server/chunks/{_server.ts-DbvC6vbj.js.map → _server.ts-BfxTJHa-.js.map} +1 -1
  222. package/build/server/chunks/{_server.ts-Dw7F066C.js → _server.ts-BiVyFRNv.js} +7 -7
  223. package/build/server/chunks/{_server.ts-Dw7F066C.js.map → _server.ts-BiVyFRNv.js.map} +1 -1
  224. package/build/server/chunks/{_server.ts-WLMG4R7D.js → _server.ts-BrgEQhDo.js} +7 -7
  225. package/build/server/chunks/{_server.ts-WLMG4R7D.js.map → _server.ts-BrgEQhDo.js.map} +1 -1
  226. package/build/server/chunks/{_server.ts-Bwt_pOeg.js → _server.ts-BtZN_8lV.js} +7 -7
  227. package/build/server/chunks/{_server.ts-Bwt_pOeg.js.map → _server.ts-BtZN_8lV.js.map} +1 -1
  228. package/build/server/chunks/{_server.ts-CFrPK6QO.js → _server.ts-Bx0PXf1w.js} +7 -7
  229. package/build/server/chunks/{_server.ts-CFrPK6QO.js.map → _server.ts-Bx0PXf1w.js.map} +1 -1
  230. package/build/server/chunks/{_server.ts-DpnNS7XE.js → _server.ts-Byaj9iKd.js} +7 -7
  231. package/build/server/chunks/{_server.ts-DpnNS7XE.js.map → _server.ts-Byaj9iKd.js.map} +1 -1
  232. package/build/server/chunks/{_server.ts-DbWhKo2R.js → _server.ts-C1kDLq6m.js} +7 -7
  233. package/build/server/chunks/{_server.ts-DbWhKo2R.js.map → _server.ts-C1kDLq6m.js.map} +1 -1
  234. package/build/server/chunks/{_server.ts-JhxhiGGc.js → _server.ts-C28zIW49.js} +7 -7
  235. package/build/server/chunks/{_server.ts-JhxhiGGc.js.map → _server.ts-C28zIW49.js.map} +1 -1
  236. package/build/server/chunks/{_server.ts-Dim_lnRX.js → _server.ts-C2F80x6V.js} +8 -8
  237. package/build/server/chunks/{_server.ts-Dim_lnRX.js.map → _server.ts-C2F80x6V.js.map} +1 -1
  238. package/build/server/chunks/{_server.ts-Blmg0cXL.js → _server.ts-C70sKEjH.js} +8 -8
  239. package/build/server/chunks/{_server.ts-Blmg0cXL.js.map → _server.ts-C70sKEjH.js.map} +1 -1
  240. package/build/server/chunks/{_server.ts-iFah_o1y.js → _server.ts-C754EzJA.js} +7 -7
  241. package/build/server/chunks/{_server.ts-iFah_o1y.js.map → _server.ts-C754EzJA.js.map} +1 -1
  242. package/build/server/chunks/{_server.ts-D3G8ICxb.js → _server.ts-C8n83Xl1.js} +7 -7
  243. package/build/server/chunks/{_server.ts-D3G8ICxb.js.map → _server.ts-C8n83Xl1.js.map} +1 -1
  244. package/build/server/chunks/{_server.ts-BvtdTKYv.js → _server.ts-CC6Bt-9t.js} +8 -8
  245. package/build/server/chunks/{_server.ts-BvtdTKYv.js.map → _server.ts-CC6Bt-9t.js.map} +1 -1
  246. package/build/server/chunks/{_server.ts-DgoPOMEf.js → _server.ts-CJ76gcOX.js} +7 -7
  247. package/build/server/chunks/{_server.ts-DgoPOMEf.js.map → _server.ts-CJ76gcOX.js.map} +1 -1
  248. package/build/server/chunks/{_server.ts-CZMdC1Kd.js → _server.ts-CMW6wbwP.js} +7 -7
  249. package/build/server/chunks/{_server.ts-CZMdC1Kd.js.map → _server.ts-CMW6wbwP.js.map} +1 -1
  250. package/build/server/chunks/{_server.ts-m7rCPG1J.js → _server.ts-CNjG4x1a.js} +8 -8
  251. package/build/server/chunks/{_server.ts-m7rCPG1J.js.map → _server.ts-CNjG4x1a.js.map} +1 -1
  252. package/build/server/chunks/{_server.ts-CjfZfEOL.js → _server.ts-CRl7GqvU.js} +7 -7
  253. package/build/server/chunks/{_server.ts-CjfZfEOL.js.map → _server.ts-CRl7GqvU.js.map} +1 -1
  254. package/build/server/chunks/{_server.ts-DMUseo0C.js → _server.ts-CUBWjRlp.js} +8 -8
  255. package/build/server/chunks/{_server.ts-DMUseo0C.js.map → _server.ts-CUBWjRlp.js.map} +1 -1
  256. package/build/server/chunks/{_server.ts-DjIJCqkv.js → _server.ts-CYoKjlbj.js} +7 -7
  257. package/build/server/chunks/{_server.ts-DjIJCqkv.js.map → _server.ts-CYoKjlbj.js.map} +1 -1
  258. package/build/server/chunks/{_server.ts-DgtgUx0V.js → _server.ts-CafJDVBQ.js} +3 -3
  259. package/build/server/chunks/{_server.ts-DgtgUx0V.js.map → _server.ts-CafJDVBQ.js.map} +1 -1
  260. package/build/server/chunks/{_server.ts-C4Pel5kC.js → _server.ts-Cd9hDiKk.js} +7 -7
  261. package/build/server/chunks/{_server.ts-C4Pel5kC.js.map → _server.ts-Cd9hDiKk.js.map} +1 -1
  262. package/build/server/chunks/{_server.ts-BfL_49xD.js → _server.ts-CgQfVR3g.js} +8 -8
  263. package/build/server/chunks/{_server.ts-BfL_49xD.js.map → _server.ts-CgQfVR3g.js.map} +1 -1
  264. package/build/server/chunks/{_server.ts-CzEoO4z1.js → _server.ts-CilbVIRO.js} +3 -3
  265. package/build/server/chunks/{_server.ts-CzEoO4z1.js.map → _server.ts-CilbVIRO.js.map} +1 -1
  266. package/build/server/chunks/{_server.ts-BXPj75Y1.js → _server.ts-Ck25Xm32.js} +8 -8
  267. package/build/server/chunks/{_server.ts-BXPj75Y1.js.map → _server.ts-Ck25Xm32.js.map} +1 -1
  268. package/build/server/chunks/{_server.ts-CGTCLl7g.js → _server.ts-Cp-_qWC_.js} +8 -8
  269. package/build/server/chunks/{_server.ts-CGTCLl7g.js.map → _server.ts-Cp-_qWC_.js.map} +1 -1
  270. package/build/server/chunks/{_server.ts-ygmDTh5G.js → _server.ts-CuEFmJ07.js} +8 -8
  271. package/build/server/chunks/{_server.ts-ygmDTh5G.js.map → _server.ts-CuEFmJ07.js.map} +1 -1
  272. package/build/server/chunks/{_server.ts-B_dmjFtu.js → _server.ts-D5vc4lGC.js} +8 -8
  273. package/build/server/chunks/_server.ts-D5vc4lGC.js.map +1 -0
  274. package/build/server/chunks/{_server.ts-CqK78x99.js → _server.ts-DDLE66QT.js} +8 -8
  275. package/build/server/chunks/{_server.ts-CqK78x99.js.map → _server.ts-DDLE66QT.js.map} +1 -1
  276. package/build/server/chunks/{_server.ts-CfLVH8TI.js → _server.ts-DEF1ChPD.js} +7 -7
  277. package/build/server/chunks/{_server.ts-CfLVH8TI.js.map → _server.ts-DEF1ChPD.js.map} +1 -1
  278. package/build/server/chunks/{_server.ts-CU4SIH7_.js → _server.ts-DHUtPRWK.js} +5 -5
  279. package/build/server/chunks/{_server.ts-CU4SIH7_.js.map → _server.ts-DHUtPRWK.js.map} +1 -1
  280. package/build/server/chunks/{_server.ts-w4ncTcy1.js → _server.ts-DHoTyKXL.js} +15 -11
  281. package/build/server/chunks/_server.ts-DHoTyKXL.js.map +1 -0
  282. package/build/server/chunks/{_server.ts-CtGn47WI.js → _server.ts-DSB9Fzwa.js} +5 -5
  283. package/build/server/chunks/{_server.ts-CtGn47WI.js.map → _server.ts-DSB9Fzwa.js.map} +1 -1
  284. package/build/server/chunks/{_server.ts-D3FpBEaY.js → _server.ts-DW36Vbiq.js} +9 -9
  285. package/build/server/chunks/_server.ts-DW36Vbiq.js.map +1 -0
  286. package/build/server/chunks/{_server.ts-B5wBYGeP.js → _server.ts-DWG4CKWG.js} +7 -7
  287. package/build/server/chunks/{_server.ts-B5wBYGeP.js.map → _server.ts-DWG4CKWG.js.map} +1 -1
  288. package/build/server/chunks/{_server.ts-BcqSTHN5.js → _server.ts-DXxQIT2o.js} +8 -8
  289. package/build/server/chunks/{_server.ts-BcqSTHN5.js.map → _server.ts-DXxQIT2o.js.map} +1 -1
  290. package/build/server/chunks/{_server.ts-BcO0Zf4D.js → _server.ts-Da8_J1a4.js} +8 -8
  291. package/build/server/chunks/{_server.ts-BcO0Zf4D.js.map → _server.ts-Da8_J1a4.js.map} +1 -1
  292. package/build/server/chunks/{_server.ts-BrQJNRtC.js → _server.ts-DcH5edss.js} +7 -7
  293. package/build/server/chunks/{_server.ts-BrQJNRtC.js.map → _server.ts-DcH5edss.js.map} +1 -1
  294. package/build/server/chunks/{_server.ts-CsI99fk3.js → _server.ts-DiHLYNbQ.js} +8 -8
  295. package/build/server/chunks/{_server.ts-CsI99fk3.js.map → _server.ts-DiHLYNbQ.js.map} +1 -1
  296. package/build/server/chunks/{_server.ts-Dy7MOoFx.js → _server.ts-Dio2CslE.js} +8 -8
  297. package/build/server/chunks/_server.ts-Dio2CslE.js.map +1 -0
  298. package/build/server/chunks/{_server.ts-CZ3VVtAj.js → _server.ts-Dlt1obi9.js} +7 -7
  299. package/build/server/chunks/{_server.ts-CZ3VVtAj.js.map → _server.ts-Dlt1obi9.js.map} +1 -1
  300. package/build/server/chunks/{_server.ts-YcvtqJwd.js → _server.ts-Ds0U_zKR.js} +8 -8
  301. package/build/server/chunks/{_server.ts-YcvtqJwd.js.map → _server.ts-Ds0U_zKR.js.map} +1 -1
  302. package/build/server/chunks/{_server.ts-CuLEqJd2.js → _server.ts-DsVsFcf8.js} +16 -11
  303. package/build/server/chunks/_server.ts-DsVsFcf8.js.map +1 -0
  304. package/build/server/chunks/{_server.ts-V-MiUhz4.js → _server.ts-Du3PIYf8.js} +7 -7
  305. package/build/server/chunks/{_server.ts-V-MiUhz4.js.map → _server.ts-Du3PIYf8.js.map} +1 -1
  306. package/build/server/chunks/{_server.ts-s2Seq_VN.js → _server.ts-Duzj6Wm_.js} +7 -19
  307. package/build/server/chunks/_server.ts-Duzj6Wm_.js.map +1 -0
  308. package/build/server/chunks/{_server.ts-Df7bUUvM.js → _server.ts-DyaoaWIS.js} +8 -8
  309. package/build/server/chunks/{_server.ts-Df7bUUvM.js.map → _server.ts-DyaoaWIS.js.map} +1 -1
  310. package/build/server/chunks/{_server.ts-Dixj3o5E.js → _server.ts-EYtSo6HZ.js} +7 -7
  311. package/build/server/chunks/{_server.ts-Dixj3o5E.js.map → _server.ts-EYtSo6HZ.js.map} +1 -1
  312. package/build/server/chunks/{_server.ts-CoVlX74M.js → _server.ts-JvnkkOhX.js} +8 -8
  313. package/build/server/chunks/{_server.ts-CoVlX74M.js.map → _server.ts-JvnkkOhX.js.map} +1 -1
  314. package/build/server/chunks/{_server.ts-MBgNxLF2.js → _server.ts-N0u5ruZe.js} +7 -7
  315. package/build/server/chunks/{_server.ts-MBgNxLF2.js.map → _server.ts-N0u5ruZe.js.map} +1 -1
  316. package/build/server/chunks/{_server.ts-Bnzq20kw.js → _server.ts-NdCztCBP.js} +7 -7
  317. package/build/server/chunks/{_server.ts-Bnzq20kw.js.map → _server.ts-NdCztCBP.js.map} +1 -1
  318. package/build/server/chunks/{_server.ts-BNOepqUw.js → _server.ts-OGUKP5Tu.js} +7 -7
  319. package/build/server/chunks/{_server.ts-BNOepqUw.js.map → _server.ts-OGUKP5Tu.js.map} +1 -1
  320. package/build/server/chunks/{_server.ts-DZrKSBmK.js → _server.ts-Q1KEyBck.js} +7 -7
  321. package/build/server/chunks/{_server.ts-DZrKSBmK.js.map → _server.ts-Q1KEyBck.js.map} +1 -1
  322. package/build/server/chunks/{_server.ts-B2BUFCOJ.js → _server.ts-TIRuudir.js} +3 -3
  323. package/build/server/chunks/{_server.ts-B2BUFCOJ.js.map → _server.ts-TIRuudir.js.map} +1 -1
  324. package/build/server/chunks/{_server.ts-HHMqD_RA.js → _server.ts-WTZtC5sX.js} +12 -7
  325. package/build/server/chunks/_server.ts-WTZtC5sX.js.map +1 -0
  326. package/build/server/chunks/{_server.ts-Bvb9c_At.js → _server.ts-WsWoJE5V.js} +9 -9
  327. package/build/server/chunks/{_server.ts-Bvb9c_At.js.map → _server.ts-WsWoJE5V.js.map} +1 -1
  328. package/build/server/chunks/{_server.ts-Do0cbyyq.js → _server.ts-X8GX4ChJ.js} +8 -8
  329. package/build/server/chunks/_server.ts-X8GX4ChJ.js.map +1 -0
  330. package/build/server/chunks/{_server.ts-BCrEvrVb.js → _server.ts-XIc2PDRd.js} +8 -8
  331. package/build/server/chunks/{_server.ts-BCrEvrVb.js.map → _server.ts-XIc2PDRd.js.map} +1 -1
  332. package/build/server/chunks/{_server.ts-CPNIDSmd.js → _server.ts-YsFgaaVd.js} +7 -7
  333. package/build/server/chunks/{_server.ts-CPNIDSmd.js.map → _server.ts-YsFgaaVd.js.map} +1 -1
  334. package/build/server/chunks/{_server.ts-BFRCkpIB.js → _server.ts-bOcb37D9.js} +8 -8
  335. package/build/server/chunks/{_server.ts-BFRCkpIB.js.map → _server.ts-bOcb37D9.js.map} +1 -1
  336. package/build/server/chunks/{_server.ts-D3CUgai-.js → _server.ts-e_8LykNe.js} +8 -8
  337. package/build/server/chunks/{_server.ts-D3CUgai-.js.map → _server.ts-e_8LykNe.js.map} +1 -1
  338. package/build/server/chunks/{_server.ts-DVNN4NHW.js → _server.ts-hLimfy8i.js} +7 -7
  339. package/build/server/chunks/{_server.ts-DVNN4NHW.js.map → _server.ts-hLimfy8i.js.map} +1 -1
  340. package/build/server/chunks/{_server.ts-BJGOO9Nn.js → _server.ts-khI1sqja.js} +3 -3
  341. package/build/server/chunks/{_server.ts-BJGOO9Nn.js.map → _server.ts-khI1sqja.js.map} +1 -1
  342. package/build/server/chunks/{_server.ts-6QSsgi7N.js → _server.ts-p1Z3DBlr.js} +7 -7
  343. package/build/server/chunks/{_server.ts-6QSsgi7N.js.map → _server.ts-p1Z3DBlr.js.map} +1 -1
  344. package/build/server/chunks/{_server.ts-BQdhHsGb.js → _server.ts-uzB454LO.js} +8 -8
  345. package/build/server/chunks/{_server.ts-BQdhHsGb.js.map → _server.ts-uzB454LO.js.map} +1 -1
  346. package/build/server/chunks/{_server.ts-D3EHXo-L.js → _server.ts-wKSTgSwf.js} +7 -7
  347. package/build/server/chunks/{_server.ts-D3EHXo-L.js.map → _server.ts-wKSTgSwf.js.map} +1 -1
  348. package/build/server/chunks/addon-helpers-DaC3GR9u.js +153 -0
  349. package/build/server/chunks/addon-helpers-DaC3GR9u.js.map +1 -0
  350. package/build/server/chunks/{admin-update-lock-ZHLAwYiV.js → admin-update-lock-Bu3VvAoN.js} +3 -3
  351. package/build/server/chunks/{admin-update-lock-ZHLAwYiV.js.map → admin-update-lock-Bu3VvAoN.js.map} +1 -1
  352. package/build/server/chunks/{akm-DU_4Aa4m.js → akm-DsJ8_uuW.js} +3 -3
  353. package/build/server/chunks/{akm-DU_4Aa4m.js.map → akm-DsJ8_uuW.js.map} +1 -1
  354. package/build/server/chunks/{_server.ts-CT0jVfA6.js → bring-up-BBKMJltU.js} +30 -228
  355. package/build/server/chunks/bring-up-BBKMJltU.js.map +1 -0
  356. package/build/server/chunks/{catalog-B4QoA_I8.js → catalog-8d-U0FbY.js} +5 -5
  357. package/build/server/chunks/{catalog-B4QoA_I8.js.map → catalog-8d-U0FbY.js.map} +1 -1
  358. package/build/server/chunks/{client-Dn-H0hgG.js → client-CHoZA_w9.js} +2 -2
  359. package/build/server/chunks/{client-Dn-H0hgG.js.map → client-CHoZA_w9.js.map} +1 -1
  360. package/build/server/chunks/{compose-args2-BFOGDQne.js → compose-args2-C9sLS6QR.js} +3 -3
  361. package/build/server/chunks/compose-args2-C9sLS6QR.js.map +1 -0
  362. package/build/server/chunks/{config-DoYNsM1_.js → config-ChxZZk6h.js} +2 -2
  363. package/build/server/chunks/{config-DoYNsM1_.js.map → config-ChxZZk6h.js.map} +1 -1
  364. package/build/server/chunks/{constants-1vPYIIwP.js → constants-C8L-P-CF.js} +2 -2
  365. package/build/server/chunks/{constants-1vPYIIwP.js.map → constants-C8L-P-CF.js.map} +1 -1
  366. package/build/server/chunks/{docker2-BYFlumV1.js → docker2-DGq6J3Kp.js} +3 -3
  367. package/build/server/chunks/docker2-DGq6J3Kp.js.map +1 -0
  368. package/build/server/chunks/{docker3-CtXDh00O.js → docker3-DFlJ-o_d.js} +2 -2
  369. package/build/server/chunks/{docker3-CtXDh00O.js.map → docker3-DFlJ-o_d.js.map} +1 -1
  370. package/build/server/chunks/environment-BYp8JQYM.js.map +1 -1
  371. package/build/server/chunks/{error.svelte-DWK4R1_M.js → error.svelte-BXxIEYd4.js} +4 -4
  372. package/build/server/chunks/{error.svelte-DWK4R1_M.js.map → error.svelte-BXxIEYd4.js.map} +1 -1
  373. package/build/server/chunks/features-D8Ez2vwC.js +101 -0
  374. package/build/server/chunks/features-D8Ez2vwC.js.map +1 -0
  375. package/build/server/chunks/{helpers-DxodR6tq.js → helpers-BrD1e__f.js} +17 -22
  376. package/build/server/chunks/helpers-BrD1e__f.js.map +1 -0
  377. package/build/server/chunks/{hooks.server-Bzj8OieV.js → hooks.server-Blba-Qw7.js} +12 -12
  378. package/build/server/chunks/hooks.server-Blba-Qw7.js.map +1 -0
  379. package/build/server/chunks/{http-CfHMreaI.js → http-B4Us23Mo.js} +3 -3
  380. package/build/server/chunks/http-B4Us23Mo.js.map +1 -0
  381. package/build/server/chunks/{internal-BcbUGF7Z.js → internal-CSnzBDeT.js} +8 -4
  382. package/build/server/chunks/{internal-BcbUGF7Z.js.map → internal-CSnzBDeT.js.map} +1 -1
  383. package/build/server/chunks/{landing-DhaVkN2f.js → landing-DxFOhZxH.js} +10 -12
  384. package/build/server/chunks/landing-DxFOhZxH.js.map +1 -0
  385. package/build/server/chunks/{network-preset-CJ1RRnki.js → network-preset-BvVAoagy.js} +14 -13
  386. package/build/server/chunks/network-preset-BvVAoagy.js.map +1 -0
  387. package/build/server/chunks/opencode-target-D4BxXYHJ.js +203 -0
  388. package/build/server/chunks/opencode-target-D4BxXYHJ.js.map +1 -0
  389. package/build/server/chunks/{paths-Bgos728b.js → paths-6f-5gYkd.js} +2 -2
  390. package/build/server/chunks/{paths-Bgos728b.js.map → paths-6f-5gYkd.js.map} +1 -1
  391. package/build/server/chunks/{runtime-context.svelte-C5zNEC6u.js → runtime-context.svelte-CRT-b6Ae.js} +8 -11
  392. package/build/server/chunks/runtime-context.svelte-CRT-b6Ae.js.map +1 -0
  393. package/build/server/chunks/{session-cookie-C8DcD6bt.js → session-cookie-5J3xCH94.js} +2 -2
  394. package/build/server/chunks/{session-cookie-C8DcD6bt.js.map → session-cookie-5J3xCH94.js.map} +1 -1
  395. package/build/server/chunks/{setup-deploy-D9j0EGGd.js → setup-deploy-DUbX3fHm.js} +2 -2
  396. package/build/server/chunks/{setup-deploy-D9j0EGGd.js.map → setup-deploy-DUbX3fHm.js.map} +1 -1
  397. package/build/server/chunks/{src-DbArH65P.js → src-B2wHibme.js} +118 -143
  398. package/build/server/chunks/src-B2wHibme.js.map +1 -0
  399. package/build/server/chunks/{state-Bq8fep3F.js → state-JIy0tegD.js} +2 -2
  400. package/build/server/chunks/{state-Bq8fep3F.js.map → state-JIy0tegD.js.map} +1 -1
  401. package/build/server/chunks/{state2-Cna2OZrd.js → state2-Br2snAqo.js} +2 -2
  402. package/build/server/chunks/{state2-Cna2OZrd.js.map → state2-Br2snAqo.js.map} +1 -1
  403. package/build/server/chunks/voice-state.svelte-DU9g_xEh.js +1610 -0
  404. package/build/server/chunks/voice-state.svelte-DU9g_xEh.js.map +1 -0
  405. package/build/server/index.js +1 -1
  406. package/build/server/manifest.js +98 -140
  407. package/build/server/manifest.js.map +1 -1
  408. package/package.json +3 -3
  409. package/build/client/_app/immutable/assets/4.B2m7mOkq.css +0 -1
  410. package/build/client/_app/immutable/assets/4.B2m7mOkq.css.br +0 -0
  411. package/build/client/_app/immutable/assets/4.B2m7mOkq.css.gz +0 -0
  412. package/build/client/_app/immutable/assets/6.CmRPKjbq.css +0 -1
  413. package/build/client/_app/immutable/assets/6.CmRPKjbq.css.br +0 -0
  414. package/build/client/_app/immutable/assets/6.CmRPKjbq.css.gz +0 -0
  415. package/build/client/_app/immutable/assets/7.BTWb8aLW.css +0 -1
  416. package/build/client/_app/immutable/assets/7.BTWb8aLW.css.br +0 -0
  417. package/build/client/_app/immutable/assets/7.BTWb8aLW.css.gz +0 -0
  418. package/build/client/_app/immutable/assets/9.D8zTZB7v.css +0 -1
  419. package/build/client/_app/immutable/assets/9.D8zTZB7v.css.br +0 -0
  420. package/build/client/_app/immutable/assets/9.D8zTZB7v.css.gz +0 -0
  421. package/build/client/_app/immutable/chunks/BDK50g8a.js.br +0 -0
  422. package/build/client/_app/immutable/chunks/BDK50g8a.js.gz +0 -0
  423. package/build/client/_app/immutable/chunks/BX_cLEyR.js +0 -1
  424. package/build/client/_app/immutable/chunks/BX_cLEyR.js.br +0 -0
  425. package/build/client/_app/immutable/chunks/BX_cLEyR.js.gz +0 -0
  426. package/build/client/_app/immutable/chunks/ByFgZDEl.js +0 -1
  427. package/build/client/_app/immutable/chunks/ByFgZDEl.js.br +0 -0
  428. package/build/client/_app/immutable/chunks/ByFgZDEl.js.gz +0 -0
  429. package/build/client/_app/immutable/chunks/BzIvC31O.js +0 -3
  430. package/build/client/_app/immutable/chunks/BzIvC31O.js.br +0 -0
  431. package/build/client/_app/immutable/chunks/BzIvC31O.js.gz +0 -0
  432. package/build/client/_app/immutable/chunks/C718MJXm.js +0 -5
  433. package/build/client/_app/immutable/chunks/C718MJXm.js.br +0 -0
  434. package/build/client/_app/immutable/chunks/C718MJXm.js.gz +0 -0
  435. package/build/client/_app/immutable/chunks/CUa5ff3d.js.br +0 -0
  436. package/build/client/_app/immutable/chunks/CUa5ff3d.js.gz +0 -0
  437. package/build/client/_app/immutable/chunks/Cnz20Kyu.js +0 -3
  438. package/build/client/_app/immutable/chunks/Cnz20Kyu.js.br +0 -0
  439. package/build/client/_app/immutable/chunks/Cnz20Kyu.js.gz +0 -0
  440. package/build/client/_app/immutable/chunks/CoOosFtk.js +0 -3
  441. package/build/client/_app/immutable/chunks/CoOosFtk.js.br +0 -0
  442. package/build/client/_app/immutable/chunks/CoOosFtk.js.gz +0 -0
  443. package/build/client/_app/immutable/chunks/D5FtEngX.js.br +0 -0
  444. package/build/client/_app/immutable/chunks/D5FtEngX.js.gz +0 -0
  445. package/build/client/_app/immutable/chunks/DBHgGGCD.js +0 -1
  446. package/build/client/_app/immutable/chunks/DBHgGGCD.js.br +0 -0
  447. package/build/client/_app/immutable/chunks/DBHgGGCD.js.gz +0 -0
  448. package/build/client/_app/immutable/chunks/DBaSfL95.js +0 -1
  449. package/build/client/_app/immutable/chunks/DBaSfL95.js.br +0 -0
  450. package/build/client/_app/immutable/chunks/DBaSfL95.js.gz +0 -0
  451. package/build/client/_app/immutable/chunks/DfZbBavE.js +0 -1
  452. package/build/client/_app/immutable/chunks/DfZbBavE.js.br +0 -1
  453. package/build/client/_app/immutable/chunks/DfZbBavE.js.gz +0 -0
  454. package/build/client/_app/immutable/chunks/DmFbAjwW.js.br +0 -3
  455. package/build/client/_app/immutable/chunks/DmFbAjwW.js.gz +0 -0
  456. package/build/client/_app/immutable/chunks/NR-JVJz-.js.br +0 -0
  457. package/build/client/_app/immutable/chunks/NR-JVJz-.js.gz +0 -0
  458. package/build/client/_app/immutable/chunks/R6GPcDBF.js +0 -14
  459. package/build/client/_app/immutable/chunks/R6GPcDBF.js.br +0 -0
  460. package/build/client/_app/immutable/chunks/R6GPcDBF.js.gz +0 -0
  461. package/build/client/_app/immutable/chunks/SXdvPq3_.js.br +0 -0
  462. package/build/client/_app/immutable/chunks/SXdvPq3_.js.gz +0 -0
  463. package/build/client/_app/immutable/chunks/c0lkYAgh.js +0 -5
  464. package/build/client/_app/immutable/chunks/c0lkYAgh.js.br +0 -0
  465. package/build/client/_app/immutable/chunks/c0lkYAgh.js.gz +0 -0
  466. package/build/client/_app/immutable/chunks/hSjQday7.js.br +0 -0
  467. package/build/client/_app/immutable/chunks/hSjQday7.js.gz +0 -0
  468. package/build/client/_app/immutable/chunks/mG6HnNbi.js.br +0 -0
  469. package/build/client/_app/immutable/chunks/mG6HnNbi.js.gz +0 -0
  470. package/build/client/_app/immutable/chunks/ra5AJhOl.js +0 -1
  471. package/build/client/_app/immutable/chunks/ra5AJhOl.js.br +0 -2
  472. package/build/client/_app/immutable/chunks/ra5AJhOl.js.gz +0 -0
  473. package/build/client/_app/immutable/entry/app.SHrJgM4c.js +0 -2
  474. package/build/client/_app/immutable/entry/app.SHrJgM4c.js.br +0 -0
  475. package/build/client/_app/immutable/entry/app.SHrJgM4c.js.gz +0 -0
  476. package/build/client/_app/immutable/entry/start.CM0OuHkF.js +0 -1
  477. package/build/client/_app/immutable/entry/start.CM0OuHkF.js.br +0 -0
  478. package/build/client/_app/immutable/entry/start.CM0OuHkF.js.gz +0 -0
  479. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js +0 -1
  480. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.br +0 -0
  481. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.gz +0 -0
  482. package/build/client/_app/immutable/nodes/1.BRotfm1G.js +0 -1
  483. package/build/client/_app/immutable/nodes/1.BRotfm1G.js.br +0 -2
  484. package/build/client/_app/immutable/nodes/1.BRotfm1G.js.gz +0 -0
  485. package/build/client/_app/immutable/nodes/10.CtHRQW64.js +0 -1
  486. package/build/client/_app/immutable/nodes/10.CtHRQW64.js.br +0 -0
  487. package/build/client/_app/immutable/nodes/10.CtHRQW64.js.gz +0 -0
  488. package/build/client/_app/immutable/nodes/11.DViPDhJG.js +0 -8
  489. package/build/client/_app/immutable/nodes/11.DViPDhJG.js.br +0 -0
  490. package/build/client/_app/immutable/nodes/11.DViPDhJG.js.gz +0 -0
  491. package/build/client/_app/immutable/nodes/2.C-PzaHZx.js +0 -1
  492. package/build/client/_app/immutable/nodes/2.C-PzaHZx.js.br +0 -0
  493. package/build/client/_app/immutable/nodes/2.C-PzaHZx.js.gz +0 -0
  494. package/build/client/_app/immutable/nodes/3.26Z_fr6N.js +0 -1
  495. package/build/client/_app/immutable/nodes/3.26Z_fr6N.js.br +0 -0
  496. package/build/client/_app/immutable/nodes/3.26Z_fr6N.js.gz +0 -0
  497. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js +0 -6
  498. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js.br +0 -0
  499. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js.gz +0 -0
  500. package/build/client/_app/immutable/nodes/5.CIMkqYzP.js.br +0 -0
  501. package/build/client/_app/immutable/nodes/5.CIMkqYzP.js.gz +0 -0
  502. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js +0 -2
  503. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js.br +0 -0
  504. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js.gz +0 -0
  505. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js +0 -14
  506. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js.br +0 -0
  507. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js.gz +0 -0
  508. package/build/client/_app/immutable/nodes/8.NHp_bSVx.js +0 -1
  509. package/build/client/_app/immutable/nodes/8.NHp_bSVx.js.br +0 -0
  510. package/build/client/_app/immutable/nodes/8.NHp_bSVx.js.gz +0 -0
  511. package/build/client/_app/immutable/nodes/9.zlIImD-K.js +0 -128
  512. package/build/client/_app/immutable/nodes/9.zlIImD-K.js.br +0 -0
  513. package/build/client/_app/immutable/nodes/9.zlIImD-K.js.gz +0 -0
  514. package/build/server/chunks/0-BtezztJz.js.map +0 -1
  515. package/build/server/chunks/1-CvGA_TOi.js +0 -9
  516. package/build/server/chunks/11-Bp7zXIv8.js +0 -9
  517. package/build/server/chunks/11-Bp7zXIv8.js.map +0 -1
  518. package/build/server/chunks/3-CZdWulB3.js.map +0 -1
  519. package/build/server/chunks/4-4bobZFC9.js +0 -9
  520. package/build/server/chunks/4-4bobZFC9.js.map +0 -1
  521. package/build/server/chunks/6-sGxxEzTB.js +0 -9
  522. package/build/server/chunks/6-sGxxEzTB.js.map +0 -1
  523. package/build/server/chunks/7-mi0k2tJn.js +0 -9
  524. package/build/server/chunks/7-mi0k2tJn.js.map +0 -1
  525. package/build/server/chunks/8-DiHmrGkL.js.map +0 -1
  526. package/build/server/chunks/9-DB22e_yA.js +0 -9
  527. package/build/server/chunks/9-DB22e_yA.js.map +0 -1
  528. package/build/server/chunks/IconActivity-DrgUhxxi.js.map +0 -1
  529. package/build/server/chunks/IconMic-BbjkE_nG.js +0 -18
  530. package/build/server/chunks/IconMic-BbjkE_nG.js.map +0 -1
  531. package/build/server/chunks/IconSoundOn-DZGaQz_p.js.map +0 -1
  532. package/build/server/chunks/IconStop-BPbovgch.js.map +0 -1
  533. package/build/server/chunks/_page.svelte-CB1qUSpk.js +0 -95
  534. package/build/server/chunks/_page.svelte-CB1qUSpk.js.map +0 -1
  535. package/build/server/chunks/_page.svelte-CPo3vFZf.js.map +0 -1
  536. package/build/server/chunks/_page.svelte-F3gki1Uz.js +0 -155
  537. package/build/server/chunks/_page.svelte-F3gki1Uz.js.map +0 -1
  538. package/build/server/chunks/_page.svelte-GcuuPiXq.js.map +0 -1
  539. package/build/server/chunks/_page.svelte-K6kU7jIW.js.map +0 -1
  540. package/build/server/chunks/_server.ts-BQZ6mdSh.js +0 -93
  541. package/build/server/chunks/_server.ts-BQZ6mdSh.js.map +0 -1
  542. package/build/server/chunks/_server.ts-B_dmjFtu.js.map +0 -1
  543. package/build/server/chunks/_server.ts-BmRwgrKB.js +0 -67
  544. package/build/server/chunks/_server.ts-BmRwgrKB.js.map +0 -1
  545. package/build/server/chunks/_server.ts-CT0jVfA6.js.map +0 -1
  546. package/build/server/chunks/_server.ts-Cf_ZLxIl.js.map +0 -1
  547. package/build/server/chunks/_server.ts-CixURe5F.js +0 -49
  548. package/build/server/chunks/_server.ts-CixURe5F.js.map +0 -1
  549. package/build/server/chunks/_server.ts-CuLEqJd2.js.map +0 -1
  550. package/build/server/chunks/_server.ts-CvkF5YMt.js +0 -97
  551. package/build/server/chunks/_server.ts-CvkF5YMt.js.map +0 -1
  552. package/build/server/chunks/_server.ts-CyIO3STA.js +0 -73
  553. package/build/server/chunks/_server.ts-CyIO3STA.js.map +0 -1
  554. package/build/server/chunks/_server.ts-CzIZ-UYy.js +0 -113
  555. package/build/server/chunks/_server.ts-CzIZ-UYy.js.map +0 -1
  556. package/build/server/chunks/_server.ts-D3FpBEaY.js.map +0 -1
  557. package/build/server/chunks/_server.ts-Do0cbyyq.js.map +0 -1
  558. package/build/server/chunks/_server.ts-Dy7MOoFx.js.map +0 -1
  559. package/build/server/chunks/_server.ts-HHMqD_RA.js.map +0 -1
  560. package/build/server/chunks/_server.ts-s2Seq_VN.js.map +0 -1
  561. package/build/server/chunks/_server.ts-w4ncTcy1.js.map +0 -1
  562. package/build/server/chunks/_server.ts-ykET4T6s.js.map +0 -1
  563. package/build/server/chunks/addon-helpers-tZ_tAgFZ.js +0 -64
  564. package/build/server/chunks/addon-helpers-tZ_tAgFZ.js.map +0 -1
  565. package/build/server/chunks/compose-args2-BFOGDQne.js.map +0 -1
  566. package/build/server/chunks/connections-api-DlEoE3-k.js +0 -35
  567. package/build/server/chunks/connections-api-DlEoE3-k.js.map +0 -1
  568. package/build/server/chunks/docker2-BYFlumV1.js.map +0 -1
  569. package/build/server/chunks/endpoints-IFTldlrt.js +0 -473
  570. package/build/server/chunks/endpoints-IFTldlrt.js.map +0 -1
  571. package/build/server/chunks/features-BW-bVsl8.js +0 -118
  572. package/build/server/chunks/features-BW-bVsl8.js.map +0 -1
  573. package/build/server/chunks/helpers-DxodR6tq.js.map +0 -1
  574. package/build/server/chunks/hooks.server-Bzj8OieV.js.map +0 -1
  575. package/build/server/chunks/http-CfHMreaI.js.map +0 -1
  576. package/build/server/chunks/landing-DhaVkN2f.js.map +0 -1
  577. package/build/server/chunks/network-preset-CJ1RRnki.js.map +0 -1
  578. package/build/server/chunks/runtime-context.svelte-C5zNEC6u.js.map +0 -1
  579. package/build/server/chunks/speakable-text-BflxDDdY.js +0 -65
  580. package/build/server/chunks/speakable-text-BflxDDdY.js.map +0 -1
  581. package/build/server/chunks/src-DbArH65P.js.map +0 -1
  582. package/build/server/chunks/voice-state.svelte-2hAkP5Di.js +0 -539
  583. package/build/server/chunks/voice-state.svelte-2hAkP5Di.js.map +0 -1
  584. /package/build/client/_app/immutable/assets/{IconActivity.BdXOPwBm.css → ChatMessage.BdXOPwBm.css} +0 -0
  585. /package/build/client/_app/immutable/assets/{IconActivity.BdXOPwBm.css.br → ChatMessage.BdXOPwBm.css.br} +0 -0
  586. /package/build/client/_app/immutable/assets/{IconActivity.BdXOPwBm.css.gz → ChatMessage.BdXOPwBm.css.gz} +0 -0
  587. /package/build/client/_app/immutable/chunks/{DD22UF1L.js → DD22UF1L2.js} +0 -0
  588. /package/build/client/_app/immutable/chunks/{DD22UF1L.js.br → DD22UF1L2.js.br} +0 -0
  589. /package/build/client/_app/immutable/chunks/{DD22UF1L.js.gz → DD22UF1L2.js.gz} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-state.svelte-DU9g_xEh.js","sources":["../../../.svelte-kit/adapter-node/chunks/voice-state.svelte.js"],"sourcesContent":["import \"./dev.js\";\n//#region src/lib/notifications.svelte.ts\nvar DEFAULT_TIMEOUTS = {\n\tinfo: 4e3,\n\tsuccess: 5e3,\n\terror: 8e3\n};\nvar Notifications = class {\n\ttoasts = [];\n\ttimers = /* @__PURE__ */ new Map();\n\tpush(kind, message, opts = {}) {\n\t\tconst id = opts.replaceId ?? (typeof crypto !== \"undefined\" && \"randomUUID\" in crypto ? crypto.randomUUID() : `t-${Date.now()}-${Math.random().toString(36).slice(2)}`);\n\t\tconst ttlMs = opts.sticky ? null : opts.ttlMs ?? DEFAULT_TIMEOUTS[kind];\n\t\tconst toast = {\n\t\t\tid,\n\t\t\tkind,\n\t\t\tmessage,\n\t\t\tttlMs\n\t\t};\n\t\tconst existingTimer = this.timers.get(id);\n\t\tif (existingTimer) {\n\t\t\tclearTimeout(existingTimer);\n\t\t\tthis.timers.delete(id);\n\t\t}\n\t\tconst existingIdx = this.toasts.findIndex((t) => t.id === id);\n\t\tif (existingIdx >= 0) {\n\t\t\tconst next = [...this.toasts];\n\t\t\tnext[existingIdx] = toast;\n\t\t\tthis.toasts = next;\n\t\t} else this.toasts = [...this.toasts, toast];\n\t\tif (ttlMs !== null) {\n\t\t\tconst timer = setTimeout(() => this.dismiss(id), ttlMs);\n\t\t\tthis.timers.set(id, timer);\n\t\t}\n\t\treturn id;\n\t}\n\tdismiss(id) {\n\t\tconst timer = this.timers.get(id);\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\tthis.timers.delete(id);\n\t\t}\n\t\tthis.toasts = this.toasts.filter((t) => t.id !== id);\n\t}\n\tclear() {\n\t\tfor (const timer of this.timers.values()) clearTimeout(timer);\n\t\tthis.timers.clear();\n\t\tthis.toasts = [];\n\t}\n};\nvar notifications = new Notifications();\n//#endregion\n//#region src/lib/theme-state.svelte.ts\nvar THEME_STORAGE_KEY = \"openpalm.theme\";\nvar THEME_ATTR = \"data-theme\";\nvar DARK_THEME_COLOR = \"#161c22\";\nvar LIGHT_THEME_COLOR = \"#f9fafb\";\nfunction isThemePreference(value) {\n\treturn value === \"light\" || value === \"dark\" || value === \"system\";\n}\nvar ThemeService = class {\n\tpreference = \"system\";\n\tresolved = \"light\";\n\tinitialized = false;\n\t#mediaQuery = null;\n\t#mediaChangeHandler = () => {\n\t\tif (this.preference !== \"system\") return;\n\t\tthis.resolved = this.#resolvePreference(\"system\");\n\t\tthis.#applyResolvedTheme();\n\t};\n\tinit() {\n\t\tif (typeof window === \"undefined\" || this.initialized) return;\n\t\tthis.preference = this.#readStoredPreference();\n\t\tthis.resolved = this.#resolvePreference(this.preference);\n\t\tthis.#subscribeToSystemTheme();\n\t\tthis.#applyResolvedTheme();\n\t\tthis.initialized = true;\n\t}\n\tsetPreference(preference) {\n\t\tthis.preference = preference;\n\t\tthis.resolved = this.#resolvePreference(preference);\n\t\tthis.#writeStoredPreference(preference);\n\t\tthis.#applyResolvedTheme();\n\t}\n\ttoggle() {\n\t\tconst next = this.preference === \"system\" ? \"light\" : this.preference === \"light\" ? \"dark\" : \"system\";\n\t\tthis.setPreference(next);\n\t}\n\tdispose() {\n\t\tif (this.#mediaQuery) if (typeof this.#mediaQuery.removeEventListener === \"function\") this.#mediaQuery.removeEventListener(\"change\", this.#mediaChangeHandler);\n\t\telse this.#mediaQuery.removeListener(this.#mediaChangeHandler);\n\t\tthis.#mediaQuery = null;\n\t\tthis.initialized = false;\n\t}\n\t#readStoredPreference() {\n\t\tif (typeof window === \"undefined\") return \"system\";\n\t\ttry {\n\t\t\tconst stored = window.localStorage.getItem(THEME_STORAGE_KEY);\n\t\t\treturn isThemePreference(stored) ? stored : \"system\";\n\t\t} catch {\n\t\t\treturn \"system\";\n\t\t}\n\t}\n\t#writeStoredPreference(preference) {\n\t\tif (typeof window === \"undefined\") return;\n\t\ttry {\n\t\t\twindow.localStorage.setItem(THEME_STORAGE_KEY, preference);\n\t\t} catch {}\n\t}\n\t#resolvePreference(preference) {\n\t\tif (preference === \"light\" || preference === \"dark\") return preference;\n\t\tif (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") return \"light\";\n\t\treturn window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n\t}\n\t#subscribeToSystemTheme() {\n\t\tif (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") return;\n\t\tconst nextQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n\t\tif (this.#mediaQuery === nextQuery) return;\n\t\tif (this.#mediaQuery) if (typeof this.#mediaQuery.removeEventListener === \"function\") this.#mediaQuery.removeEventListener(\"change\", this.#mediaChangeHandler);\n\t\telse this.#mediaQuery.removeListener(this.#mediaChangeHandler);\n\t\tthis.#mediaQuery = nextQuery;\n\t\tif (typeof nextQuery.addEventListener === \"function\") nextQuery.addEventListener(\"change\", this.#mediaChangeHandler);\n\t\telse nextQuery.addListener(this.#mediaChangeHandler);\n\t}\n\t#applyResolvedTheme() {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst root = document.documentElement;\n\t\troot.setAttribute(THEME_ATTR, this.resolved);\n\t\troot.style.colorScheme = this.resolved;\n\t\tconst themeColorMeta = document.querySelector(\"meta[name=\\\"theme-color\\\"]\");\n\t\tif (themeColorMeta) themeColorMeta.content = this.resolved === \"dark\" ? DARK_THEME_COLOR : LIGHT_THEME_COLOR;\n\t\tconst colorSchemeMeta = document.querySelector(\"meta[name=\\\"color-scheme\\\"]\");\n\t\tif (colorSchemeMeta) colorSchemeMeta.content = this.resolved;\n\t}\n};\nvar themeService = new ThemeService();\n//#endregion\n//#region src/lib/voice/media-recorder.ts\nvar PREFERRED_MIME_TYPES = [\"audio/webm;codecs=opus\", \"audio/webm\"];\nfunction pickMimeType() {\n\tconst MR = globalThis.MediaRecorder;\n\tif (!MR || typeof MR.isTypeSupported !== \"function\") return void 0;\n\tfor (const t of PREFERRED_MIME_TYPES) if (MR.isTypeSupported(t)) return t;\n}\nasync function startRecording() {\n\tif (typeof window === \"undefined\") throw new Error(\"Recording is only available in the browser.\");\n\tif (typeof MediaRecorder === \"undefined\") throw new Error(\"Recording is not supported in this browser.\");\n\tif (!navigator?.mediaDevices?.getUserMedia) throw new Error(\"Recording is not supported in this browser.\");\n\tlet stream;\n\ttry {\n\t\tstream = await navigator.mediaDevices.getUserMedia({ audio: true });\n\t} catch (err) {\n\t\tconst name = err?.name ?? \"\";\n\t\tif (name === \"NotAllowedError\" || name === \"SecurityError\") throw new Error(\"Microphone access denied. Open System Settings → Privacy & Security → Microphone and enable OpenPalm, then restart the app.\", { cause: err });\n\t\tif (name === \"NotFoundError\" || name === \"OverconstrainedError\") throw new Error(\"No microphone was found. Plug in a microphone and try again.\", { cause: err });\n\t\tthrow new Error(`Microphone error: ${err?.message ?? String(err)}`, { cause: err });\n\t}\n\treturn createRecorderSession(stream, true);\n}\nfunction createRecorderSession(stream, ownsStream) {\n\tconst mimeType = pickMimeType();\n\tconst recorder = mimeType ? new MediaRecorder(stream, { mimeType }) : new MediaRecorder(stream);\n\tconst chunks = [];\n\trecorder.addEventListener(\"dataavailable\", (ev) => {\n\t\tconst data = ev.data;\n\t\tif (data && data.size > 0) chunks.push(data);\n\t});\n\tlet stopped = false;\n\tlet cancelled = false;\n\tlet stopResolve = null;\n\tlet stopReject = null;\n\tfunction releaseTracks() {\n\t\tif (!ownsStream) return;\n\t\tfor (const track of stream.getTracks()) try {\n\t\t\ttrack.stop();\n\t\t} catch {}\n\t}\n\trecorder.addEventListener(\"stop\", () => {\n\t\treleaseTracks();\n\t\tif (cancelled) return;\n\t\tconst blob = new Blob(chunks, { type: recorder.mimeType || mimeType || \"audio/webm\" });\n\t\tstopResolve?.(blob);\n\t});\n\trecorder.addEventListener(\"error\", (ev) => {\n\t\treleaseTracks();\n\t\tconst err = ev?.error ?? /* @__PURE__ */ new Error(\"Recorder error\");\n\t\tstopReject?.(err);\n\t});\n\trecorder.start();\n\treturn {\n\t\tstop() {\n\t\t\tif (stopped) return Promise.reject(/* @__PURE__ */ new Error(\"Recorder already stopped\"));\n\t\t\tstopped = true;\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tstopResolve = resolve;\n\t\t\t\tstopReject = reject;\n\t\t\t\ttry {\n\t\t\t\t\tif (recorder.state !== \"inactive\") recorder.stop();\n\t\t\t\t} catch (err) {\n\t\t\t\t\treleaseTracks();\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tcancel() {\n\t\t\tif (stopped) return;\n\t\t\tstopped = true;\n\t\t\tcancelled = true;\n\t\t\ttry {\n\t\t\t\tif (recorder.state !== \"inactive\") recorder.stop();\n\t\t\t} catch {}\n\t\t\treleaseTracks();\n\t\t}\n\t};\n}\n//#endregion\n//#region src/lib/random-id.ts\n/**\n* Random id generation that works in EVERY browsing context.\n*\n* `crypto.randomUUID()` is secure-context-only: on a plain-http LAN origin\n* (the LAN-served tier) it is undefined and calling it throws. Every\n* browser-side id mint (connection ids, secret refs, request ids, local chat\n* entry ids) must go through this guard instead of bare `crypto.randomUUID()`\n* — the fallback builds a v4 UUID from `crypto.getRandomValues`, which IS\n* available in insecure contexts.\n*\n* Zero-import leaf module so any $lib code can use it without cycles.\n*/\nfunction randomId() {\n\tif (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") return crypto.randomUUID();\n\tconst b = crypto.getRandomValues(new Uint8Array(16));\n\tb[6] = b[6] & 15 | 64;\n\tb[8] = b[8] & 63 | 128;\n\tconst h = Array.from(b, (x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n\treturn `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20)}`;\n}\n//#endregion\n//#region src/lib/connections/url-policy.ts\n/**\n* Browser-owned connection URL policy (Phase 3a — \"One UI, delete the split\").\n*\n* A leaf module with zero imports so both the direct transport\n* (`probeHealth()` short-circuit) and the connections form can consult it\n* without pulling in the IndexedDB store module. There is no guardian\n* `/oc`-appending helper — Guardian is a transparent OpenCode proxy now, so\n* the user provides the exact baseUrl and no path inference is performed.\n*\n* The ONLY refusal trigger: a plain-http, non-loopback connection URL is\n* refused iff the app itself runs on an https: origin. This is exactly the\n* platform mixed-content rule (an https origin cannot `fetch()` a plain-http\n* cross-origin target — the request would never leave the browser), not a\n* broader \"https or non-loopback origin\" check. Preserves:\n* - loopback TARGETS from any origin (mixed-content loopback exemption —\n* `http://127.0.0.1`/`localhost`/`::1` are \"potentially trustworthy\"),\n* - plain-http LAN targets from a loopback-origin client (the zero-TLS\n* desktop default — a `http://127.0.0.1` origin is a secure context),\n* - plain-http LAN targets from a non-loopback http ORIGIN (the LAN-served\n* tier: `rewriteLoopbackUrlForBrowserHost` in `./store.ts`).\n*/\n/** Canonical deep link to the TLS integration guide. Pinned by a test that\n* the path segment names a real file, so a docs rename breaks CI instead of\n* shipping a dead link. */\nvar TLS_GUIDE_URL = \"https://github.com/itlackey/openpalm/blob/main/docs/remote-access-tls.md\";\nfunction isLoopbackHost(hostname) {\n\treturn hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\" || hostname === \"[::1]\";\n}\n/** Remove legacy URL-embedded credentials before a URL reaches UI or storage. */\nfunction redactUrlUserinfo(rawUrl) {\n\ttry {\n\t\tconst url = new URL(rawUrl);\n\t\turl.username = \"\";\n\t\turl.password = \"\";\n\t\treturn url.toString().replace(/\\/$/, url.pathname === \"/\" && !rawUrl.endsWith(\"/\") ? \"\" : \"/\");\n\t} catch {\n\t\treturn rawUrl;\n\t}\n}\n/**\n* Refuse a plain-http non-loopback connection URL iff the app's own origin is\n* https: (mixed content — the request could never succeed, so refuse up front\n* with guidance instead of a generic fetch failure).\n*\n* `origin` defaults to `globalThis.location`; a null/undefined origin\n* (non-browser context — tests, SSR) always allows, since there is no browser\n* mixed-content policy to enforce there.\n*/\nfunction validateConnectionUrl(rawUrl, origin = globalThis.location ?? null) {\n\tlet url;\n\ttry {\n\t\turl = new URL(rawUrl);\n\t} catch {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: \"invalid-url\",\n\t\t\tmessage: \"Enter a valid URL.\"\n\t\t};\n\t}\n\tif (url.protocol !== \"http:\" && url.protocol !== \"https:\") return {\n\t\tok: false,\n\t\treason: \"invalid-url\",\n\t\tmessage: \"The URL must use http:// or https://.\"\n\t};\n\tif (url.username || url.password) return {\n\t\tok: false,\n\t\treason: \"userinfo-not-allowed\",\n\t\tmessage: \"Do not put credentials in the URL. Use the Authentication fields instead.\"\n\t};\n\tif (url.protocol === \"https:\") return { ok: true };\n\tif (isLoopbackHost(url.hostname)) return { ok: true };\n\tif (origin?.protocol !== \"https:\") return { ok: true };\n\treturn {\n\t\tok: false,\n\t\treason: \"insecure-remote\",\n\t\tmessage: \"This app runs on a secure (https) origin, so browsers block plain-HTTP connections to remote servers. Use an https:// URL — see the TLS setup guide.\",\n\t\tguideUrl: TLS_GUIDE_URL\n\t};\n}\n//#endregion\n//#region src/lib/connections/store.ts\n/**\n* Browser-owned connection store (Phase 3a — \"One UI, delete the split\").\n*\n* Connection records persist behind a storage abstraction so the same store\n* logic runs over IndexedDB in the browser (offline-readable) and over an\n* in-memory backend in tests. The store API is async throughout (IndexedDB is\n* async) and keeps NO state in store-instance fields — a page reload\n* constructs a new store over the same backend and must see identical state.\n*\n* Locked/default entries are seeded from a runtime-config.json fetched from\n* the app's own origin at boot. Absent file = no default connection.\n*\n* The Connection shape is `{ id, label, baseUrl, auth }` with auth narrowed to\n* none | basic (Guardian is a transparent OpenCode proxy — Basic is the only\n* connection credential model).\n*/\nfunction rewriteLoopbackUrlForBrowserHost(rawUrl) {\n\tconst locationLike = globalThis.location;\n\tconst redactedUrl = redactUrlUserinfo(rawUrl);\n\tif (!locationLike || isLoopbackHost(locationLike.hostname)) return redactedUrl;\n\ttry {\n\t\tconst url = new URL(redactedUrl);\n\t\tif (!isLoopbackHost(url.hostname)) return redactedUrl;\n\t\turl.hostname = locationLike.hostname;\n\t\treturn url.toString();\n\t} catch {\n\t\treturn redactedUrl;\n\t}\n}\nfunction redactEntryUrl(entry) {\n\tconst baseUrl = redactUrlUserinfo(entry.baseUrl);\n\treturn baseUrl === entry.baseUrl ? entry : {\n\t\t...entry,\n\t\tbaseUrl\n\t};\n}\nfunction assertUrlHasNoUserinfo(rawUrl) {\n\tlet url;\n\ttry {\n\t\turl = new URL(rawUrl);\n\t} catch {\n\t\treturn;\n\t}\n\tif (url.username || url.password) throw new Error(\"Credentials must use the Authentication fields, not the connection URL.\");\n}\nfunction adaptRuntimeConfigForBrowser(config) {\n\treturn { connections: config.connections.map((entry) => ({\n\t\t...redactEntryUrl(entry),\n\t\tbaseUrl: entry.locked ? rewriteLoopbackUrlForBrowserHost(entry.baseUrl) : redactUrlUserinfo(entry.baseUrl)\n\t})) };\n}\nvar ACTIVE_ID_KEY = \"activeId\";\nfunction clone(value) {\n\treturn structuredClone(value);\n}\n/** In-memory storage backend — same semantics as the IndexedDB one. */\nfunction createMemoryStorage() {\n\tconst entries = /* @__PURE__ */ new Map();\n\tconst meta = /* @__PURE__ */ new Map();\n\tlet cryptoKey = null;\n\treturn {\n\t\tasync getAll() {\n\t\t\treturn [...entries.values()].map(clone);\n\t\t},\n\t\tasync get(id) {\n\t\t\tconst entry = entries.get(id);\n\t\t\treturn entry ? clone(entry) : null;\n\t\t},\n\t\tasync put(entry) {\n\t\t\tentries.set(entry.id, clone(redactEntryUrl(entry)));\n\t\t},\n\t\tasync delete(id) {\n\t\t\tentries.delete(id);\n\t\t},\n\t\tasync getMeta(key) {\n\t\t\treturn meta.get(key) ?? null;\n\t\t},\n\t\tasync setMeta(key, value) {\n\t\t\tif (value === null) meta.delete(key);\n\t\t\telse meta.set(key, value);\n\t\t},\n\t\tasync getCryptoKey() {\n\t\t\treturn cryptoKey;\n\t\t},\n\t\tasync setCryptoKey(key) {\n\t\t\tcryptoKey = key;\n\t\t}\n\t};\n}\nvar IDB_NAME = \"openpalm-ui-connections\";\nvar IDB_VERSION = 1;\nvar STORE_CONNECTIONS = \"connections\";\nvar STORE_META = \"meta\";\nvar STORE_KEYS = \"keys\";\nvar CRYPTO_KEY_ID = \"secret-store-aes-gcm-key\";\nfunction idbRequest(request) {\n\treturn new Promise((resolve, reject) => {\n\t\trequest.onsuccess = () => resolve(request.result);\n\t\trequest.onerror = () => reject(request.error ?? /* @__PURE__ */ new Error(\"IndexedDB request failed\"));\n\t});\n}\n/**\n* F11 hardening: an IDB version bump with no `onblocked` handler and no\n* `versionchange` listener can leave a boot hung forever with no error\n* surfaced anywhere. `onblocked` rejects the open promise; `onVersionChange`\n* is invoked once a successfully-opened connection later receives its OWN\n* `versionchange` event (some other tab needs an upgrade): the connection\n* closes itself immediately so it can't go on to block that upgrade in turn,\n* and the caller uses the callback to drop its cached db promise so the NEXT\n* storage operation reopens fresh.\n*/\nfunction openDatabase(onVersionChange) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst request = indexedDB.open(IDB_NAME, IDB_VERSION);\n\t\trequest.onupgradeneeded = () => {\n\t\t\tconst db = request.result;\n\t\t\tif (!db.objectStoreNames.contains(STORE_CONNECTIONS)) db.createObjectStore(STORE_CONNECTIONS, { keyPath: \"id\" });\n\t\t\tif (!db.objectStoreNames.contains(STORE_META)) db.createObjectStore(STORE_META);\n\t\t\tif (!db.objectStoreNames.contains(STORE_KEYS)) db.createObjectStore(STORE_KEYS);\n\t\t};\n\t\trequest.onsuccess = () => {\n\t\t\tconst db = request.result;\n\t\t\tdb.onversionchange = () => {\n\t\t\t\tdb.close();\n\t\t\t\tonVersionChange();\n\t\t\t};\n\t\t\tresolve(db);\n\t\t};\n\t\trequest.onerror = () => reject(request.error ?? /* @__PURE__ */ new Error(\"IndexedDB open failed\"));\n\t\trequest.onblocked = () => reject(/* @__PURE__ */ new Error(\"IndexedDB upgrade blocked by another open connection (close other tabs of this app and retry)\"));\n\t});\n}\n/**\n* IndexedDB storage backend (raw IDB API, no deps). Lazily opens the database\n* on first use; each operation runs in its own short transaction.\n*/\nfunction createIndexedDbStorage() {\n\tlet db = null;\n\tconst invalidate = () => {\n\t\tdb = null;\n\t};\n\tconst database = () => {\n\t\tdb ??= openDatabase(invalidate);\n\t\treturn db;\n\t};\n\tconst store = async (name, mode) => (await database()).transaction(name, mode).objectStore(name);\n\treturn {\n\t\tasync getAll() {\n\t\t\treturn idbRequest((await store(STORE_CONNECTIONS, \"readonly\")).getAll());\n\t\t},\n\t\tasync get(id) {\n\t\t\treturn await idbRequest((await store(STORE_CONNECTIONS, \"readonly\")).get(id)) ?? null;\n\t\t},\n\t\tasync put(entry) {\n\t\t\tawait idbRequest((await store(STORE_CONNECTIONS, \"readwrite\")).put(redactEntryUrl(entry)));\n\t\t},\n\t\tasync delete(id) {\n\t\t\tawait idbRequest((await store(STORE_CONNECTIONS, \"readwrite\")).delete(id));\n\t\t},\n\t\tasync getMeta(key) {\n\t\t\treturn await idbRequest((await store(STORE_META, \"readonly\")).get(key)) ?? null;\n\t\t},\n\t\tasync setMeta(key, value) {\n\t\t\tconst metaStore = await store(STORE_META, \"readwrite\");\n\t\t\tif (value === null) await idbRequest(metaStore.delete(key));\n\t\t\telse await idbRequest(metaStore.put(value, key));\n\t\t},\n\t\tasync getCryptoKey() {\n\t\t\treturn await idbRequest((await store(STORE_KEYS, \"readonly\")).get(CRYPTO_KEY_ID)) ?? null;\n\t\t},\n\t\tasync setCryptoKey(key) {\n\t\t\tawait idbRequest((await store(STORE_KEYS, \"readwrite\")).put(key, CRYPTO_KEY_ID));\n\t\t}\n\t};\n}\nfunction createConnectionStore(options) {\n\tconst { storage } = options;\n\tasync function readEntry(id) {\n\t\tconst stored = await storage.get(id);\n\t\tif (!stored) return null;\n\t\tconst entry = redactEntryUrl(stored);\n\t\tif (entry.baseUrl !== stored.baseUrl) await storage.put(entry);\n\t\treturn entry;\n\t}\n\tasync function requireEntry(id) {\n\t\tconst entry = await readEntry(id);\n\t\tif (!entry) throw new Error(`Unknown connection: ${id}`);\n\t\treturn entry;\n\t}\n\treturn {\n\t\tasync list() {\n\t\t\tconst stored = await storage.getAll();\n\t\t\tconst entries = stored.map(redactEntryUrl);\n\t\t\tawait Promise.all(entries.map((entry, index) => entry.baseUrl === stored[index]?.baseUrl ? Promise.resolve() : storage.put(entry)));\n\t\t\treturn entries;\n\t\t},\n\t\tget(id) {\n\t\t\treturn readEntry(id);\n\t\t},\n\t\tasync add(input) {\n\t\t\tassertUrlHasNoUserinfo(input.baseUrl);\n\t\t\tconst id = input.id ?? randomId();\n\t\t\tif (await readEntry(id)) throw new Error(`Connection already exists: ${id}`);\n\t\t\tconst entry = {\n\t\t\t\t...input,\n\t\t\t\tid\n\t\t\t};\n\t\t\tawait storage.put(entry);\n\t\t\treturn clone(entry);\n\t\t},\n\t\tasync update(id, patch) {\n\t\t\tif (patch.baseUrl !== void 0) assertUrlHasNoUserinfo(patch.baseUrl);\n\t\t\tconst entry = await requireEntry(id);\n\t\t\tif (entry.locked) throw new Error(`Connection is locked (config-owned): ${id}`);\n\t\t\tconst updated = {\n\t\t\t\t...entry,\n\t\t\t\t...patch,\n\t\t\t\tid\n\t\t\t};\n\t\t\tawait storage.put(updated);\n\t\t\treturn clone(updated);\n\t\t},\n\t\tasync remove(id) {\n\t\t\tif ((await requireEntry(id)).locked) throw new Error(`Connection is locked (config-owned): ${id}`);\n\t\t\tawait storage.delete(id);\n\t\t\tif (await storage.getMeta(ACTIVE_ID_KEY) === id) await storage.setMeta(ACTIVE_ID_KEY, null);\n\t\t},\n\t\tasync setSecretRef(id, auth) {\n\t\t\tconst updated = {\n\t\t\t\t...await requireEntry(id),\n\t\t\t\tauth,\n\t\t\t\tid\n\t\t\t};\n\t\t\tawait storage.put(updated);\n\t\t\treturn clone(updated);\n\t\t},\n\t\tgetActiveId() {\n\t\t\treturn storage.getMeta(ACTIVE_ID_KEY);\n\t\t},\n\t\tasync getActive() {\n\t\t\tconst id = await storage.getMeta(ACTIVE_ID_KEY);\n\t\t\treturn id === null ? null : readEntry(id);\n\t\t},\n\t\tasync setActive(id) {\n\t\t\tawait requireEntry(id);\n\t\t\tawait storage.setMeta(ACTIVE_ID_KEY, id);\n\t\t},\n\t\tasync clearActive() {\n\t\t\tawait storage.setMeta(ACTIVE_ID_KEY, null);\n\t\t},\n\t\tasync seedFromRuntimeConfig(config) {\n\t\t\tif (!config) return;\n\t\t\tconst activeId = await storage.getMeta(ACTIVE_ID_KEY);\n\t\t\tconst configIds = new Set(config.connections.map((entry) => entry.id));\n\t\t\tfor (const existing of await storage.getAll()) {\n\t\t\t\tif (!existing.locked || configIds.has(existing.id)) continue;\n\t\t\t\tawait storage.delete(existing.id);\n\t\t\t\tif (activeId === existing.id) await storage.setMeta(ACTIVE_ID_KEY, null);\n\t\t\t}\n\t\t\tfor (const entry of config.connections) {\n\t\t\t\tconst seededEntry = redactEntryUrl(entry);\n\t\t\t\tconst existing = await readEntry(entry.id);\n\t\t\t\tif (!existing) await storage.put(clone(seededEntry));\n\t\t\t\telse if (existing.locked) {\n\t\t\t\t\tconst seeded = clone(seededEntry);\n\t\t\t\t\tconst preserveAuth = existing.auth && existing.auth.mode !== \"none\";\n\t\t\t\t\tawait storage.put(preserveAuth ? {\n\t\t\t\t\t\t...seeded,\n\t\t\t\t\t\tauth: existing.auth\n\t\t\t\t\t} : seeded);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (await storage.getMeta(ACTIVE_ID_KEY) !== null) return;\n\t\t\tconst fallback = config.connections.find((entry) => entry.isDefault);\n\t\t\tif (fallback && await storage.get(fallback.id)) await storage.setMeta(ACTIVE_ID_KEY, fallback.id);\n\t\t}\n\t};\n}\n/**\n* Fetch '/runtime-config.json' from the app's OWN origin (relative URL — the\n* static server ships the file beside the build; the app holds no other\n* trusted origin at boot). Absent (404), unreachable (offline), or malformed\n* -> null; never throws, so an offline PWA boot still reaches the stored\n* connection list.\n*/\nasync function loadRuntimeConfig(fetchImpl = globalThis.fetch) {\n\ttry {\n\t\tconst response = await fetchImpl(\"/runtime-config.json\", {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: { accept: \"application/json\" },\n\t\t\tcredentials: \"omit\"\n\t\t});\n\t\tif (!response.ok) return null;\n\t\tconst parsed = await response.json();\n\t\tif (!parsed || typeof parsed !== \"object\" || !Array.isArray(parsed.connections)) return null;\n\t\treturn adaptRuntimeConfigForBrowser(parsed);\n\t} catch {\n\t\treturn null;\n\t}\n}\n//#endregion\n//#region src/lib/connections/secrets.ts\nvar META_PREFIX = \"secret:\";\nvar ENCRYPTED_MARKER = 2;\nvar AES_GCM_LENGTH = 256;\nvar IV_BYTES = 12;\n/**\n* WebCrypto's `SubtleCrypto` is secure-context-only: on a plain-http LAN origin\n* (the LAN-served tier) `crypto.subtle` is undefined, so encryption is simply\n* not available there. Callers degrade to the legacy plaintext record shape —\n* which `readMaterial` already reads — rather than throwing and blocking the\n* user from saving a credential at all.\n*/\nfunction subtleAvailable() {\n\treturn typeof crypto !== \"undefined\" && !!crypto.subtle;\n}\nfunction isEncryptedRecord(value) {\n\treturn !!value && typeof value === \"object\" && value.v === ENCRYPTED_MARKER && typeof value.iv === \"string\" && typeof value.ciphertext === \"string\";\n}\nfunction bytesToBase64(bytes) {\n\tlet binary = \"\";\n\tfor (const byte of bytes) binary += String.fromCharCode(byte);\n\treturn btoa(binary);\n}\nfunction base64ToBytes(b64) {\n\tconst binary = atob(b64);\n\tconst bytes = new Uint8Array(binary.length);\n\tfor (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n\treturn bytes;\n}\nvar pendingKeys = /* @__PURE__ */ new WeakMap();\n/** Generate-once, reuse-forever non-extractable AES-GCM key for this storage backend. */\nasync function getOrCreateKey(storage) {\n\tconst existing = await storage.getCryptoKey();\n\tif (existing) return existing;\n\tlet pending = pendingKeys.get(storage);\n\tif (!pending) {\n\t\tpending = (async () => {\n\t\t\tconst key = await crypto.subtle.generateKey({\n\t\t\t\tname: \"AES-GCM\",\n\t\t\t\tlength: AES_GCM_LENGTH\n\t\t\t}, false, [\"encrypt\", \"decrypt\"]);\n\t\t\tawait storage.setCryptoKey(key);\n\t\t\treturn key;\n\t\t})();\n\t\tpendingKeys.set(storage, pending);\n\t\tpending.catch(() => {\n\t\t\tpendingKeys.delete(storage);\n\t\t});\n\t}\n\treturn pending;\n}\nasync function encryptMaterial(key, material) {\n\tconst iv = crypto.getRandomValues(new Uint8Array(IV_BYTES));\n\tconst plaintext = new TextEncoder().encode(JSON.stringify(material));\n\tconst ciphertext = new Uint8Array(await crypto.subtle.encrypt({\n\t\tname: \"AES-GCM\",\n\t\tiv\n\t}, key, plaintext));\n\treturn {\n\t\tv: ENCRYPTED_MARKER,\n\t\tiv: bytesToBase64(iv),\n\t\tciphertext: bytesToBase64(ciphertext)\n\t};\n}\nasync function decryptRecord(key, record) {\n\tconst iv = base64ToBytes(record.iv);\n\tconst ciphertext = base64ToBytes(record.ciphertext);\n\tconst plaintext = await crypto.subtle.decrypt({\n\t\tname: \"AES-GCM\",\n\t\tiv\n\t}, key, ciphertext);\n\treturn JSON.parse(new TextDecoder().decode(plaintext));\n}\nasync function writeMaterial(storage, ref, material) {\n\tif (!subtleAvailable()) {\n\t\tawait storage.setMeta(META_PREFIX + ref, JSON.stringify(material));\n\t\treturn;\n\t}\n\tconst record = await encryptMaterial(await getOrCreateKey(storage), material);\n\tawait storage.setMeta(META_PREFIX + ref, JSON.stringify(record));\n}\n/**\n* Read+decrypt a stored secret. Transparently migrates a legacy plaintext\n* record by re-encrypting it in place before returning. Returns null for a\n* missing ref or anything that can't be parsed/decrypted — the caller degrades\n* gracefully rather than throwing.\n*/\nasync function readMaterial(storage, ref) {\n\tconst raw = await storage.getMeta(META_PREFIX + ref);\n\tif (raw === null) return null;\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(raw);\n\t} catch {\n\t\treturn null;\n\t}\n\tif (isEncryptedRecord(parsed)) try {\n\t\treturn await decryptRecord(await getOrCreateKey(storage), parsed);\n\t} catch {\n\t\treturn null;\n\t}\n\tconst material = parsed;\n\tif (subtleAvailable()) try {\n\t\tawait writeMaterial(storage, ref, material);\n\t} catch {}\n\treturn material;\n}\nfunction createSecretStore(storage) {\n\treturn {\n\t\tasync set(ref, material) {\n\t\t\tawait writeMaterial(storage, ref, material);\n\t\t},\n\t\tasync delete(ref) {\n\t\t\tawait storage.setMeta(META_PREFIX + ref, null);\n\t\t},\n\t\tget(ref) {\n\t\t\treturn readMaterial(storage, ref);\n\t\t},\n\t\tasync resolveAuth(entry) {\n\t\t\tif (entry.auth.mode !== \"basic\" || !entry.auth.secretRef) return { mode: \"none\" };\n\t\t\tconst material = await readMaterial(storage, entry.auth.secretRef);\n\t\t\tif (!material || typeof material.password !== \"string\") return { mode: \"none\" };\n\t\t\tconst username = entry.auth.username || material.username;\n\t\t\treturn username ? {\n\t\t\t\tmode: \"basic\",\n\t\t\t\tusername,\n\t\t\t\tpassword: material.password\n\t\t\t} : {\n\t\t\t\tmode: \"basic\",\n\t\t\t\tpassword: material.password\n\t\t\t};\n\t\t},\n\t\tasync updateUsername(ref, username) {\n\t\t\tconst material = await readMaterial(storage, ref);\n\t\t\tif (!material) return;\n\t\t\tconst updated = { ...material };\n\t\t\tif (username === void 0) delete updated.username;\n\t\t\telse updated.username = username;\n\t\t\tawait writeMaterial(storage, ref, updated);\n\t\t}\n\t};\n}\n//#endregion\n//#region src/lib/chat/session-events.ts\n/**\n* SSE consumer for OpenCode's `/event` stream.\n*\n* Phase 3b (\"One UI, delete the split\"): the underlying stream is now opened by\n* the browser-owned direct transport (`$lib/connections/boot.getTransport()`\n* → `subscribeEvents(onFrame, signal)`), which talks to the active connection's\n* OpenCode/Guardian base URL directly (no host proxy, no admin cookie) and\n* REUSES this module's `parseFrame`. Reconnect/backoff, session-scoped dispatch,\n* and abort semantics stay here — the chat layer's concern, not the transport's.\n*\n* Phase D of docs/technical/multi-endpoint-session-ux.md.\n*/\nvar INITIAL_BACKOFF_MS = 1e3;\nvar MAX_BACKOFF_MS = 3e4;\n/**\n* Parse one `\\n\\n`-delimited SSE frame. Multi-line `data:` fields are\n* concatenated with `\\n` per the SSE spec. Reused by the direct transport.\n*/\nfunction parseFrame(chunk) {\n\tconst frame = {};\n\tconst dataLines = [];\n\tfor (const rawLine of chunk.split(\"\\n\")) {\n\t\tif (!rawLine || rawLine.startsWith(\":\")) continue;\n\t\tif (rawLine.startsWith(\"data:\")) dataLines.push(rawLine.replace(/^data:\\s?/, \"\"));\n\t\telse if (rawLine.startsWith(\"event:\")) frame.event = rawLine.replace(/^event:\\s?/, \"\");\n\t\telse if (rawLine.startsWith(\"id:\")) frame.id = rawLine.replace(/^id:\\s?/, \"\");\n\t}\n\tif (dataLines.length > 0) frame.data = dataLines.join(\"\\n\");\n\treturn frame;\n}\nfunction dispatch(handlers, payload) {\n\tconst info = payload.properties?.info;\n\tconst id = info?.id ?? payload.sessionID;\n\tif (!id) return;\n\tswitch (payload.type) {\n\t\tcase \"session.created\":\n\t\t\thandlers.onCreated(id);\n\t\t\treturn;\n\t\tcase \"session.updated\":\n\t\t\thandlers.onUpdated(id, {\n\t\t\t\ttitle: info?.title,\n\t\t\t\tupdatedAt: info?.time?.updated\n\t\t\t});\n\t\t\treturn;\n\t\tcase \"session.deleted\":\n\t\t\thandlers.onDeleted(id);\n\t\t\treturn;\n\t\tdefault: return;\n\t}\n}\n/**\n* Open the active connection's `/event` SSE stream (via the direct transport)\n* and dispatch session-scoped events. Returns an unsubscribe function that\n* aborts the stream and prevents reconnection.\n*\n* `onConnect` fires on the first frame of each (re)connected stream — the point\n* at which live updates are demonstrably flowing. The transport owns the fetch;\n* this loop owns exponential-backoff reconnect and abort.\n*/\nfunction subscribeSessionEvents(handlers) {\n\tlet stopped = false;\n\tlet controller = new AbortController();\n\tconst sleep = (ms) => new Promise((resolve) => {\n\t\tconst timer = setTimeout(resolve, ms);\n\t\tcontroller.signal.addEventListener(\"abort\", () => {\n\t\t\tclearTimeout(timer);\n\t\t\tresolve();\n\t\t}, { once: true });\n\t});\n\tasync function readStream() {\n\t\tlet connected = false;\n\t\tawait getTransport().subscribeEvents((event) => {\n\t\t\tif (!connected) {\n\t\t\t\tconnected = true;\n\t\t\t\thandlers.onConnect?.();\n\t\t\t}\n\t\t\tconst payload = event;\n\t\t\thandlers.onEvent?.(payload);\n\t\t\tdispatch(handlers, payload);\n\t\t}, controller.signal);\n\t}\n\t(async () => {\n\t\tlet attempt = 0;\n\t\twhile (!stopped) try {\n\t\t\tattempt++;\n\t\t\tawait readStream();\n\t\t\tattempt = 0;\n\t\t\tif (!stopped) await sleep(500);\n\t\t} catch (err) {\n\t\t\tif (stopped) return;\n\t\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\t\t\tif (error.name !== \"AbortError\") {\n\t\t\t\tconsole.warn(\"[session-events] SSE error, reconnecting\", error);\n\t\t\t\thandlers.onDisconnect?.(error);\n\t\t\t}\n\t\t\tawait sleep(Math.min(INITIAL_BACKOFF_MS * 2 ** Math.max(0, attempt - 1), MAX_BACKOFF_MS));\n\t\t\tif (controller.signal.aborted && !stopped) controller = new AbortController();\n\t\t}\n\t})();\n\treturn () => {\n\t\tstopped = true;\n\t\ttry {\n\t\t\tcontroller.abort();\n\t\t} catch {}\n\t};\n}\n//#endregion\n//#region src/lib/transport/direct.ts\n/**\n* Minimal browser-owned direct transport (Phase 3a — \"One UI, delete the\n* split\").\n*\n* Talks to a connection's OpenCode/Guardian base URL directly from the\n* browser — no proxy, NO COOKIES (`credentials: 'omit'`). This is deliberately\n* small: it exposes only the calls the ui chat layer needs and REUSES ui's\n* existing SSE frame parser (`$lib/chat/session-events.ts` `parseFrame`) and\n* event envelope type (`$lib/chat/oc-events.ts` `RawEvent`) rather than\n* re-implementing them. Reconnect/backoff and session-scoped filtering are the\n* chat layer's concern, not this transport's.\n*/\nvar PROBE_TIMEOUT_MS = 5e3;\n/**\n* UTF-8-encode before base64ing: `btoa()` alone only accepts Latin-1 code\n* points and throws a synchronous `InvalidCharacterError` for any password\n* containing e.g. Cyrillic/CJK/emoji characters, before any network I/O.\n*/\nfunction base64Utf8(value) {\n\tconst bytes = new TextEncoder().encode(value);\n\tlet binary = \"\";\n\tfor (const byte of bytes) binary += String.fromCharCode(byte);\n\treturn btoa(binary);\n}\n/**\n* Build the `Authorization` header value for a resolved auth, or null for\n* `{ mode: 'none' }`. Basic username defaults to `'opencode'` (OpenCode's own\n* server default and what the host app sends).\n*/\nfunction authorizationHeader(auth) {\n\tif (auth.mode === \"basic\") return `Basic ${base64Utf8(`${auth.username ?? \"opencode\"}:${auth.password}`)}`;\n\treturn null;\n}\nfunction createDirectTransport(getConnection, resolveAuth, fetchImpl = globalThis.fetch) {\n\tfunction requireConnection() {\n\t\tconst connection = getConnection();\n\t\tif (!connection) throw new Error(\"No active connection\");\n\t\treturn connection;\n\t}\n\t/** Trailing-slash and path-prefix safe: reverse-proxied instances keep their prefix. */\n\tfunction baseFor(connection) {\n\t\treturn connection.baseUrl.replace(/\\/+$/, \"\");\n\t}\n\tasync function authHeaders(connection) {\n\t\tconst { authorization } = await resolveAuth(connection);\n\t\treturn authorization ? { authorization } : {};\n\t}\n\treturn {\n\t\tasync request(method, path, body) {\n\t\t\tconst connection = requireConnection();\n\t\t\tconst init = {\n\t\t\t\tmethod,\n\t\t\t\theaders: {\n\t\t\t\t\t...body === void 0 ? {} : { \"content-type\": \"application/json\" },\n\t\t\t\t\t...await authHeaders(connection)\n\t\t\t\t},\n\t\t\t\tcredentials: \"omit\"\n\t\t\t};\n\t\t\tif (body !== void 0) init.body = JSON.stringify(body);\n\t\t\tconst response = await fetchImpl(`${baseFor(connection)}${path}`, init);\n\t\t\tif (!response.ok) throw Object.assign(/* @__PURE__ */ new Error(`HTTP ${response.status}`), { status: response.status });\n\t\t\treturn response;\n\t\t},\n\t\tasync subscribeEvents(onFrame, signal) {\n\t\t\tconst connection = requireConnection();\n\t\t\tconst response = await fetchImpl(`${baseFor(connection)}/event`, {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: {\n\t\t\t\t\taccept: \"text/event-stream\",\n\t\t\t\t\t...await authHeaders(connection)\n\t\t\t\t},\n\t\t\t\tcredentials: \"omit\",\n\t\t\t\tsignal\n\t\t\t});\n\t\t\tif (!response.ok || !response.body) throw Object.assign(/* @__PURE__ */ new Error(`SSE stream failed: HTTP ${response.status}`), { status: response.status });\n\t\t\tconst reader = response.body.getReader();\n\t\t\tconst decoder = new TextDecoder();\n\t\t\tlet buffer = \"\";\n\t\t\ttry {\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\t\tif (done) break;\n\t\t\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\t\t\tconst chunks = buffer.split(\"\\n\\n\");\n\t\t\t\t\tbuffer = chunks.pop() ?? \"\";\n\t\t\t\t\tfor (const chunk of chunks) {\n\t\t\t\t\t\tif (!chunk) continue;\n\t\t\t\t\t\tconst frame = parseFrame(chunk);\n\t\t\t\t\t\tif (!frame.data) continue;\n\t\t\t\t\t\tlet event;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tevent = JSON.parse(frame.data);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFrame(event);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\treader.releaseLock();\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t},\n\t\tasync probeHealth() {\n\t\t\tconst connection = getConnection();\n\t\t\tif (!connection) return { status: \"unreachable\" };\n\t\t\tconst base = baseFor(connection);\n\t\t\tconst verdict = validateConnectionUrl(base);\n\t\t\tif (!verdict.ok && verdict.reason === \"insecure-remote\") return { status: \"insecure\" };\n\t\t\ttry {\n\t\t\t\tconst response = await fetchImpl(`${base}/`, {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\theaders: await authHeaders(connection),\n\t\t\t\t\tcredentials: \"omit\",\n\t\t\t\t\tcache: \"no-store\",\n\t\t\t\t\tsignal: AbortSignal.timeout(PROBE_TIMEOUT_MS)\n\t\t\t\t});\n\t\t\t\tif (response.status === 401 || response.status === 403) return { status: \"unauthorized\" };\n\t\t\t\tif (response.ok || response.status >= 300 && response.status < 400) return { status: \"accessible\" };\n\t\t\t\treturn { status: \"unreachable\" };\n\t\t\t} catch {\n\t\t\t\treturn { status: \"unreachable\" };\n\t\t\t}\n\t\t}\n\t};\n}\n//#endregion\n//#region src/lib/connections/boot.ts\n/**\n* Browser connection boot (Phase 3b — \"One UI, delete the split\").\n*\n* One storage backend + one ConnectionStore + one SecretStore + one direct\n* transport per browsing session, created lazily on first access. The chat\n* layer (`$lib/api/chat.ts`, `$lib/chat/session-events.ts`) and the connection\n* switcher (`$lib/endpoints-state.svelte.ts`) all share these singletons so the\n* browser owns connections and talks to OpenCode/Guardian DIRECTLY — no host\n* proxy, no admin cookie.\n*\n* The transport reads the active connection SYNCHRONOUSLY from a snapshot the\n* connection store owner (`endpoints-state`) keeps in sync via\n* `setActiveConnection()`. The store's own `getActive()` is async (IndexedDB),\n* so it can't back the transport's synchronous `getConnection` directly.\n*\n* IndexedDB is the persistent backend; private-browsing modes that refuse it\n* degrade to an in-memory backend (session-only) rather than a blank page —\n* mirroring the client's `pickStorage`.\n*/\nvar store = null;\nvar secrets = null;\nvar transport = null;\n/** Synchronous snapshot of the active connection for the transport. */\nvar activeConnection = null;\n/**\n* Some private-browsing modes refuse IndexedDB entirely; degrade to a\n* session-only in-memory backend rather than a blank page (mirrors the\n* client's pickStorage).\n*/\nfunction pickStorage() {\n\ttry {\n\t\tif (typeof indexedDB !== \"undefined\") return createIndexedDbStorage();\n\t} catch {}\n\treturn createMemoryStorage();\n}\nfunction ensure() {\n\tif (store && secrets && transport) return;\n\tconst storage = pickStorage();\n\tconst connectionStore = createConnectionStore({ storage });\n\tconst secretStore = createSecretStore(storage);\n\tconst directTransport = createDirectTransport(() => activeConnection, async (connection) => {\n\t\treturn { authorization: authorizationHeader(await secretStore.resolveAuth(connection)) ?? void 0 };\n\t});\n\tstore = connectionStore;\n\tsecrets = secretStore;\n\ttransport = directTransport;\n}\nfunction getConnectionStore() {\n\tensure();\n\treturn store;\n}\nfunction getSecretStore() {\n\tensure();\n\treturn secrets;\n}\nfunction getTransport() {\n\tensure();\n\treturn transport;\n}\n/**\n* Point the direct transport at `connection` (or clear it). Called by the\n* connection-store owner (`endpoints-state`) on load/activate — a plain\n* function, no `$effect`, so the transport's synchronous `getConnection`\n* always sees the current active connection.\n*/\nfunction setActiveConnection(connection) {\n\tactiveConnection = connection;\n}\n//#endregion\n//#region src/lib/voice/settings-store.ts\nvar STORAGE_KEY = \"openpalm.voice.settings\";\nvar PROVIDER_IDS = [\n\t\"disabled\",\n\t\"browser\",\n\t\"openpalm-voice\",\n\t\"openai-compatible\"\n];\nfunction safeLocalStorage() {\n\ttry {\n\t\treturn globalThis.localStorage ?? null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction readSection(raw) {\n\tif (!raw || typeof raw !== \"object\") return null;\n\tconst r = raw;\n\tif (!PROVIDER_IDS.includes(r.provider)) return null;\n\tconst section = { provider: r.provider };\n\tfor (const key of [\n\t\t\"baseURL\",\n\t\t\"model\",\n\t\t\"language\",\n\t\t\"voice\",\n\t\t\"secretRef\"\n\t]) if (typeof r[key] === \"string\" && r[key]) section[key] = r[key];\n\treturn section;\n}\n/** Read + validate the persisted settings. Null = never saved / unreadable\n* (callers fall back to capability-based defaults). */\nfunction loadVoiceSettings() {\n\tconst raw = safeLocalStorage()?.getItem(STORAGE_KEY);\n\tif (!raw) return null;\n\ttry {\n\t\tconst parsed = JSON.parse(raw);\n\t\tconst stt = readSection(parsed.stt);\n\t\tconst tts = readSection(parsed.tts);\n\t\tif (!stt || !tts) return null;\n\t\treturn {\n\t\t\tversion: 1,\n\t\t\tstt,\n\t\t\ttts\n\t\t};\n\t} catch {\n\t\treturn null;\n\t}\n}\n//#endregion\n//#region src/lib/voice/providers.ts\n/**\n* Browser-side speech-provider transport.\n*\n* The chat client owns its TTS/STT provider choice and calls the provider's\n* OpenAI-shaped /v1/audio endpoints from the browser — there is no\n* config-holding relay anymore (the old /api/speak and /api/transcribe\n* proxies read host-global stack.env config, which conflated per-device\n* preference with host state). Two transports:\n*\n* - 'openpalm-voice' → the SAME-ORIGIN `/voice` pass-through the host\n* advertises in the runtime handshake. Same-origin\n* means no CORS and no exposed container port; the\n* session cookie rides along automatically\n* (fetch's default same-origin credentials mode).\n* - 'openai-compatible' → the user's configured endpoint, called directly\n* with the API key held in the browser's encrypted\n* secret store — the same trust model as\n* connection passwords.\n*\n* \"OpenPalm Voice\" resolution: the handshake's `voice.url` (present when the\n* host process can serve the pass-through and the addon is enabled). We\n* fetch the handshake lazily (once per page load; `refreshAdvertisedVoiceUrl`\n* re-probes) instead of reading the reactive runtime-context store, so\n* resolution works regardless of layout-mount ordering and in non-component\n* callers.\n*/\nvar OPENPALM_VOICE_TTS_MODEL = \"kokoro\";\nvar OPENPALM_VOICE_STT_MODEL = \"whisper-1\";\nvar UPSTREAM_TIMEOUT_MS = 6e4;\nvar HANDSHAKE_TIMEOUT_MS = 5e3;\nvar advertisedUrl;\nvar advertisedFetch = null;\nvar advertisedGeneration = 0;\nasync function fetchAdvertisedUrl() {\n\ttry {\n\t\tconst res = await fetch(\"/api/runtime\", {\n\t\t\theaders: { accept: \"application/json\" },\n\t\t\tcredentials: \"omit\",\n\t\t\tcache: \"no-store\",\n\t\t\tsignal: AbortSignal.timeout(HANDSHAKE_TIMEOUT_MS)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\treturn typeof data.voice?.url === \"string\" && data.voice.url ? data.voice.url : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction startAdvertisedFetch() {\n\tconst generation = advertisedGeneration;\n\tconst inFlight = fetchAdvertisedUrl().then((url) => {\n\t\tif (generation === advertisedGeneration) {\n\t\t\tadvertisedUrl = url;\n\t\t\tadvertisedFetch = null;\n\t\t}\n\t\treturn url;\n\t});\n\tadvertisedFetch = inFlight;\n\treturn inFlight;\n}\n/**\n* The host's advertised voice pass-through URL, or null when the voice addon\n* is disabled / the handshake is unreachable. Cached between refreshes;\n* concurrent callers share one fetch. `initVoice` refreshes on every run (a\n* cheap same-origin GET), so an addon toggle is picked up on the next chat\n* mount without a hard reload.\n*/\nfunction advertisedVoiceUrl() {\n\tif (advertisedUrl !== void 0) return Promise.resolve(advertisedUrl);\n\treturn advertisedFetch ?? startAdvertisedFetch();\n}\n/** Drop the cached advertisement and re-probe (initVoice, the voice settings\n* UI, and the Add-ons tab after a toggle). */\nfunction refreshAdvertisedVoiceUrl() {\n\tadvertisedGeneration++;\n\tadvertisedUrl = void 0;\n\treturn startAdvertisedFetch();\n}\nasync function apiKeyFor(secretRef) {\n\tif (!secretRef) return void 0;\n\ttry {\n\t\treturn (await getSecretStore().get(secretRef))?.password || void 0;\n\t} catch {\n\t\treturn;\n\t}\n}\n/**\n* The advertised OpenPalm Voice pass-through target, or null when the host\n* offers none. Model is fixed by the container; `voice` is deliberately\n* omitted so the host's configured default (OP_VOICE_KOKORO_VOICE) applies.\n*/\nasync function openpalmVoiceTarget(section, kind) {\n\tconst url = await advertisedVoiceUrl();\n\tif (!url) return null;\n\treturn {\n\t\tbaseURL: url,\n\t\tmodel: kind === \"tts\" ? OPENPALM_VOICE_TTS_MODEL : OPENPALM_VOICE_STT_MODEL,\n\t\tlanguage: kind === \"stt\" ? section?.language : void 0\n\t};\n}\nasync function resolveTarget(section, kind) {\n\tconst provider = section?.provider;\n\tif (!provider) return openpalmVoiceTarget(section, kind);\n\tif (provider === \"openpalm-voice\") return openpalmVoiceTarget(section, kind);\n\tif (provider === \"openai-compatible\") {\n\t\tconst baseURL = section?.baseURL?.trim();\n\t\tif (!baseURL) return null;\n\t\treturn {\n\t\t\tbaseURL,\n\t\t\tmodel: section?.model?.trim() || (kind === \"tts\" ? \"tts-1\" : \"whisper-1\"),\n\t\t\tvoice: kind === \"tts\" ? section?.voice?.trim() : void 0,\n\t\t\tlanguage: kind === \"stt\" ? section?.language : void 0,\n\t\t\tapiKey: await apiKeyFor(section?.secretRef)\n\t\t};\n\t}\n\treturn null;\n}\nfunction resolveSttTarget() {\n\treturn resolveTarget(loadVoiceSettings()?.stt, \"stt\");\n}\nfunction resolveTtsTarget() {\n\treturn resolveTarget(loadVoiceSettings()?.tts, \"tts\");\n}\n/**\n* Resolve the OpenAI-shaped API base from the user's configured endpoint.\n*\n* OpenAI and every compatible service (OpenRouter, Groq, LM Studio, vLLM,\n* Ollama, …) document a `base_url` that already ends in a version segment —\n* almost always `/v1`. We respect a version the user supplied and add `/v1`\n* only when absent, so pasting the provider's documented base URL Just\n* Works whether or not it includes `/v1` (no double `/v1/v1`, no hint to\n* remember). The openpalm-voice pass-through base (`/voice`) has no version,\n* so it also gets `/v1`, matching the container's `/v1/audio/*` surface.\n*\n* Sub-paths are then appended WITHOUT a leading `/v1` (e.g. `/audio/speech`).\n*/\nfunction openaiApiBase(baseURL) {\n\tconst trimmed = baseURL.replace(/\\/+$/, \"\");\n\treturn /\\/v\\d+$/.test(trimmed) ? trimmed : `${trimmed}/v1`;\n}\n/**\n* Transcribe a recorded Blob against the configured STT provider\n* (OpenAI-shape POST /v1/audio/transcriptions). Throws with a\n* human-readable message on any failure, including \"no provider\".\n*/\nasync function transcribe(blob, opts) {\n\tconst target = await resolveSttTarget();\n\tif (!target) throw new Error(\"Speech-to-text is not configured. Pick a provider in voice settings.\");\n\tconst form = new FormData();\n\tconst filename = blob.name || \"recording.webm\";\n\tform.append(\"file\", blob, filename);\n\tform.append(\"model\", target.model);\n\tform.append(\"response_format\", \"json\");\n\tconst language = opts?.language?.trim() || target.language?.trim();\n\tif (language) form.append(\"language\", language);\n\tif (opts?.prompt?.trim()) form.append(\"prompt\", opts.prompt.trim());\n\tconst headers = {};\n\tif (target.apiKey) headers.authorization = `Bearer ${target.apiKey}`;\n\tlet res;\n\ttry {\n\t\tres = await fetch(`${openaiApiBase(target.baseURL)}/audio/transcriptions`, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders,\n\t\t\tbody: form,\n\t\t\tsignal: AbortSignal.timeout(UPSTREAM_TIMEOUT_MS)\n\t\t});\n\t} catch {\n\t\tthrow new Error(\"Could not reach the speech-to-text endpoint.\");\n\t}\n\tif (!res.ok) throw new Error(`Transcription failed (HTTP ${res.status}).`);\n\tlet payload;\n\ttry {\n\t\tpayload = await res.json();\n\t} catch {\n\t\tthrow new Error(\"The speech-to-text endpoint returned a non-JSON response.\");\n\t}\n\tconst text = payload?.text;\n\treturn typeof text === \"string\" ? text : \"\";\n}\n/**\n* Synthesize speech for `text` against the configured TTS provider\n* (OpenAI-shape POST /v1/audio/speech). Returns the raw Response (audio\n* bytes on 200) or null when no server-side TTS provider is configured;\n* network failures reject.\n*/\nasync function synthesize(text, opts) {\n\tconst target = await resolveTtsTarget();\n\tif (!target) return null;\n\tconst headers = { \"content-type\": \"application/json\" };\n\tif (target.apiKey) headers.authorization = `Bearer ${target.apiKey}`;\n\treturn fetch(`${openaiApiBase(target.baseURL)}/audio/speech`, {\n\t\tmethod: \"POST\",\n\t\theaders,\n\t\tbody: JSON.stringify({\n\t\t\tmodel: target.model,\n\t\t\tinput: text,\n\t\t\t...target.voice ? { voice: target.voice } : {},\n\t\t\tresponse_format: opts?.format ?? \"wav\"\n\t\t}),\n\t\tsignal: AbortSignal.timeout(UPSTREAM_TIMEOUT_MS)\n\t});\n}\n/** Best-effort reachability probe of a speech endpoint (GET /v1/models). */\nasync function probeVoiceEndpoint(baseURL) {\n\ttry {\n\t\treturn (await fetch(`${openaiApiBase(baseURL)}/models`, {\n\t\t\tmethod: \"GET\",\n\t\t\tcache: \"no-store\",\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t})).status < 500;\n\t} catch {\n\t\treturn false;\n\t}\n}\n//#endregion\n//#region src/lib/voice/speakable-text.ts\n/**\n* Deterministic markdown-to-speech text stripping. Pure and dependency-free\n* so both the browser TTS fallback (audio-playback.ts) and the server TTS\n* provider transport (voice/providers.ts) can run the exact same rules without\n* ever handing raw markdown syntax to a speech engine.\n*\n* Order matters: fenced code blocks and inline code are handled before any\n* other markdown stripping so their contents are never mistaken for\n* headings/emphasis/list markers. Whitespace collapsing runs last.\n*/\nvar HTML_ENTITIES = {\n\t\"&amp;\": \"&\",\n\t\"&lt;\": \"<\",\n\t\"&gt;\": \">\",\n\t\"&quot;\": \"\\\"\",\n\t\"&#39;\": \"'\"\n};\nfunction decodeEntities(text) {\n\treturn text.replace(/&amp;|&lt;|&gt;|&quot;|&#39;/g, (match) => HTML_ENTITIES[match] ?? match);\n}\nfunction urlToHostname(url) {\n\ttry {\n\t\treturn new URL(url).hostname;\n\t} catch {\n\t\treturn url;\n\t}\n}\nfunction toSpeakableText(text) {\n\tlet out = text;\n\tout = out.replace(/```[\\s\\S]*?```/g, \" Code omitted. \");\n\tout = out.replace(/`([^`]+)`/g, \"$1\");\n\tout = out.replace(/!\\[([^\\]]*)\\]\\([^)]*\\)/g, \"$1\");\n\tout = out.replace(/\\[([^\\]]*)\\]\\([^)]*\\)/g, \"$1\");\n\tout = out.replace(/https?:\\/\\/[^\\s)<>\"']+/g, (match) => urlToHostname(match));\n\tout = out.replace(/<[^>]+>/g, \"\");\n\tout = out.replace(/^\\s*(?:-{3,}|\\*{3,}|_{3,})\\s*$/gm, \"\");\n\tconst keptLines = [];\n\tfor (const line of out.split(\"\\n\")) {\n\t\tlet l = line;\n\t\tif (/^\\s*\\|?[\\s:|-]+\\|?\\s*$/.test(l) && l.includes(\"-\") && l.includes(\"|\")) continue;\n\t\tl = l.replace(/^\\s*>\\s?/, \"\");\n\t\tl = l.replace(/^\\s*#{1,6}\\s+/, \"\");\n\t\tconst wasListItem = /^\\s*(?:[-*+]|\\d+\\.)\\s+/.test(l);\n\t\tl = l.replace(/^\\s*(?:[-*+]|\\d+\\.)\\s+/, \"\");\n\t\tif (l.includes(\"|\")) l = l.replace(/^\\s*\\|/, \"\").replace(/\\|\\s*$/, \"\").split(\"|\").map((cell) => cell.trim()).join(\", \");\n\t\tl = l.trim();\n\t\tif (wasListItem && l && !/[.!?:]$/.test(l)) l += \".\";\n\t\tkeptLines.push(l);\n\t}\n\tout = keptLines.join(\"\\n\");\n\tout = out.replace(/~~(.+?)~~/g, \"$1\");\n\tout = out.replace(/\\*\\*(.+?)\\*\\*/g, \"$1\");\n\tout = out.replace(/__(.+?)__/g, \"$1\");\n\tout = out.replace(/\\*(.+?)\\*/g, \"$1\");\n\tout = out.replace(/(?<![A-Za-z0-9_])_(.+?)_(?![A-Za-z0-9_])/g, \"$1\");\n\tout = decodeEntities(out);\n\tout = out.replace(/<\\/?[A-Za-z][A-Za-z0-9-]*(?:\\s[^<>]*)?\\/?>/g, \"\");\n\tout = out.replace(/\\n{3,}/g, \"\\n\\n\");\n\tout = out.replace(/[^\\S\\n]{2,}/g, \" \");\n\treturn out.trim();\n}\n//#endregion\n//#region src/lib/voice/audio-playback.ts\n/**\n* AudioPlaybackController — the imperative TTS audio engine extracted from\n* voice-state.svelte.ts. Owns the speak queue, the HTMLAudioElement +\n* blob-URL lifecycle, the browser autoplay-policy fallback, and the\n* per-utterance playback (playOne). The reactive `voiceState` store\n* composes an instance of this and delegates speak/resume/stop to it.\n*\n* The controller never holds reactive `$state` itself — it mutates the\n* host store's reactive fields (status / errorMessage / autoplayBlocked)\n* through the `AudioPlaybackHost` it is constructed with, exactly as the\n* old module-global engine mutated `voiceState` directly.\n*\n* Only touch browser APIs (window, Audio, AudioContext, speechSynthesis)\n* from methods — never at construction — for SSR safety.\n*/\nvar SPEAK_QUEUE_MAX = 20;\nvar AudioPlaybackController = class {\n\thost;\n\t/**\n\t* Optional hook fired when the speak queue fully drains (the last\n\t* utterance reached a terminal state with nothing queued behind it).\n\t* Conversation mode uses this to re-arm listening — an explicit\n\t* callback instead of polling reactive status. Deliberately NOT fired\n\t* from stop(): an explicit stop (barge-in, toggle off) must not re-arm\n\t* anything by itself.\n\t*/\n\tonQueueDrained = null;\n\tactiveAudio = null;\n\tactiveAudioUrl = null;\n\tspeakQueue = [];\n\tbusy = false;\n\tgeneration = 0;\n\toverflowNoticed = false;\n\tpendingAutoplayAudio = null;\n\tpendingAutoplayUrl = null;\n\tconstructor(host) {\n\t\tthis.host = host;\n\t}\n\t/**\n\t* Play a 1-frame silent AudioBuffer through a transient AudioContext to\n\t* register the current user gesture with the browser's autoplay policy.\n\t* Safe to call repeatedly; failures are swallowed.\n\t*/\n\tprimeForAutoplay() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst Ctor = window.AudioContext ?? window.webkitAudioContext;\n\t\tif (!Ctor) return;\n\t\ttry {\n\t\t\tconst ctx = new Ctor();\n\t\t\tconst buffer = ctx.createBuffer(1, 1, 22050);\n\t\t\tconst source = ctx.createBufferSource();\n\t\t\tsource.buffer = buffer;\n\t\t\tsource.connect(ctx.destination);\n\t\t\tsource.start(0);\n\t\t\tsetTimeout(() => {\n\t\t\t\tctx.close().catch(() => {});\n\t\t\t}, 100);\n\t\t} catch {}\n\t}\n\tteardownActiveAudio() {\n\t\tif (this.activeAudio) {\n\t\t\tthis.activeAudio.onerror = null;\n\t\t\tthis.activeAudio.onended = null;\n\t\t\ttry {\n\t\t\t\tthis.activeAudio.pause();\n\t\t\t} catch {}\n\t\t\tthis.activeAudio.src = \"\";\n\t\t\tthis.activeAudio = null;\n\t\t}\n\t\tif (this.activeAudioUrl) {\n\t\t\tURL.revokeObjectURL(this.activeAudioUrl);\n\t\t\tthis.activeAudioUrl = null;\n\t\t}\n\t}\n\tteardownPendingAutoplay() {\n\t\tif (this.pendingAutoplayAudio) {\n\t\t\tthis.pendingAutoplayAudio.onerror = null;\n\t\t\tthis.pendingAutoplayAudio.onended = null;\n\t\t\ttry {\n\t\t\t\tthis.pendingAutoplayAudio.pause();\n\t\t\t} catch {}\n\t\t\tthis.pendingAutoplayAudio.src = \"\";\n\t\t\tthis.pendingAutoplayAudio = null;\n\t\t}\n\t\tif (this.pendingAutoplayUrl) {\n\t\t\tURL.revokeObjectURL(this.pendingAutoplayUrl);\n\t\t\tthis.pendingAutoplayUrl = null;\n\t\t}\n\t\tthis.host.autoplayBlocked = false;\n\t}\n\t/**\n\t* User clicked the \"click to resume\" banner — promote the stashed audio\n\t* to the active slot and play. Called from VoiceControl's banner button;\n\t* the click on the button itself satisfies the autoplay-policy gesture\n\t* requirement.\n\t*/\n\tresume() {\n\t\tconst a = this.pendingAutoplayAudio;\n\t\tif (!a) {\n\t\t\tthis.host.autoplayBlocked = false;\n\t\t\treturn;\n\t\t}\n\t\tthis.host.autoplayBlocked = false;\n\t\tthis.host.errorMessage = \"\";\n\t\tthis.host.status = \"speaking\";\n\t\tthis.busy = true;\n\t\tthis.activeAudio = a;\n\t\tthis.activeAudioUrl = this.pendingAutoplayUrl;\n\t\tthis.pendingAutoplayAudio = null;\n\t\tthis.pendingAutoplayUrl = null;\n\t\ta.play().catch(() => {\n\t\t\tthis.host.status = \"idle\";\n\t\t\tthis.host.errorMessage = \"Audio playback failed.\";\n\t\t\tthis.teardownActiveAudio();\n\t\t\tthis.drainNext();\n\t\t});\n\t}\n\t/**\n\t* Read text aloud. Tries server-side TTS via the provider transport first (when the\n\t* configured engine is openpalm-voice or remote); falls back to browser\n\t* speech synthesis. Silent no-op if neither path is available.\n\t*\n\t* If a previous utterance is still synthesizing, playing, or stashed\n\t* behind an autoplay block, queues this one (FIFO, cap 20) instead of\n\t* cutting it off mid-sentence.\n\t*/\n\tasync speak(text) {\n\t\tif (typeof window === \"undefined\" || !text.trim()) return;\n\t\tif (this.busy) {\n\t\t\tthis.speakQueue.push(text);\n\t\t\tlet dropped = 0;\n\t\t\twhile (this.speakQueue.length > SPEAK_QUEUE_MAX) {\n\t\t\t\tthis.speakQueue.shift();\n\t\t\t\tdropped += 1;\n\t\t\t}\n\t\t\tif (dropped > 0 && !this.overflowNoticed) {\n\t\t\t\tthis.overflowNoticed = true;\n\t\t\t\tnotifications.push(\"info\", `Skipped ${dropped} spoken ${dropped === 1 ? \"reply\" : \"replies\"} — too much overlap. Lower the auto-speak chat rate.`);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tawait this.playOne(text);\n\t}\n\t/**\n\t* Advance the pump: play the next queued utterance, or release the busy\n\t* flag so a future speak() can start a fresh burst. Every terminal path\n\t* of an utterance must land here (or hold `busy` deliberately, as the\n\t* autoplay-block stash does).\n\t*/\n\tdrainNext() {\n\t\tconst next = this.speakQueue.shift();\n\t\tif (next) this.playOne(next);\n\t\telse {\n\t\t\tthis.busy = false;\n\t\t\tthis.overflowNoticed = false;\n\t\t\tthis.onQueueDrained?.();\n\t\t}\n\t}\n\t/** Internal: actually trigger the audio for one text chunk. */\n\tasync playOne(text) {\n\t\tif (typeof window === \"undefined\") return;\n\t\tthis.busy = true;\n\t\tconst gen = this.generation;\n\t\tconst speakableText = toSpeakableText(text);\n\t\tif (!speakableText) {\n\t\t\tthis.drainNext();\n\t\t\treturn;\n\t\t}\n\t\tthis.teardownActiveAudio();\n\t\tif (\"speechSynthesis\" in window) window.speechSynthesis.cancel();\n\t\tthis.host.errorMessage = \"\";\n\t\tconst engine = this.host.ttsEngine;\n\t\tconst useServer = engine === \"openpalm-voice\" || engine === \"remote\";\n\t\tif (useServer) {\n\t\t\tlet res;\n\t\t\ttry {\n\t\t\t\tres = await synthesize(speakableText);\n\t\t\t} catch {}\n\t\t\tif (gen !== this.generation) return;\n\t\t\tif (res?.ok && res.headers.get(\"content-type\")?.startsWith(\"audio/\")) {\n\t\t\t\tconst blob = await res.blob();\n\t\t\t\tif (gen !== this.generation) return;\n\t\t\t\tconst url = URL.createObjectURL(blob);\n\t\t\t\tconst audio = new Audio(url);\n\t\t\t\tthis.activeAudio = audio;\n\t\t\t\tthis.activeAudioUrl = url;\n\t\t\t\taudio.onended = () => {\n\t\t\t\t\tthis.host.status = \"idle\";\n\t\t\t\t\tthis.teardownActiveAudio();\n\t\t\t\t\tthis.drainNext();\n\t\t\t\t};\n\t\t\t\taudio.onerror = () => {\n\t\t\t\t\tthis.host.status = \"idle\";\n\t\t\t\t\tthis.host.errorMessage = \"Audio playback failed.\";\n\t\t\t\t\tthis.teardownActiveAudio();\n\t\t\t\t\tthis.drainNext();\n\t\t\t\t};\n\t\t\t\tthis.host.status = \"speaking\";\n\t\t\t\ttry {\n\t\t\t\t\tawait audio.play();\n\t\t\t\t} catch {\n\t\t\t\t\tthis.host.status = \"idle\";\n\t\t\t\t\tthis.pendingAutoplayAudio = audio;\n\t\t\t\t\tthis.pendingAutoplayUrl = url;\n\t\t\t\t\tthis.activeAudio = null;\n\t\t\t\t\tthis.activeAudioUrl = null;\n\t\t\t\t\tthis.host.autoplayBlocked = true;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (res && !res.ok) {\n\t\t\t\tconst errMsg = await this.extractSpeakError(res);\n\t\t\t\tthis.host.errorMessage = errMsg;\n\t\t\t}\n\t\t}\n\t\tif (!(\"speechSynthesis\" in window)) {\n\t\t\tthis.drainNext();\n\t\t\treturn;\n\t\t}\n\t\tif (useServer) this.host.errorMessage = \"\";\n\t\tconst utterance = new SpeechSynthesisUtterance(speakableText);\n\t\tutterance.onstart = () => {\n\t\t\tif (gen !== this.generation) return;\n\t\t\tthis.host.status = \"speaking\";\n\t\t};\n\t\tutterance.onend = () => {\n\t\t\tif (gen !== this.generation) return;\n\t\t\tthis.host.status = \"idle\";\n\t\t\tthis.drainNext();\n\t\t};\n\t\tutterance.onerror = () => {\n\t\t\tif (gen !== this.generation) return;\n\t\t\tthis.host.status = \"idle\";\n\t\t\tthis.drainNext();\n\t\t};\n\t\twindow.speechSynthesis.speak(utterance);\n\t}\n\t/**\n\t* Convert a non-OK synthesis response into a human-readable string.\n\t* Recognises the /voice pass-through's structured codes; any other 5xx\n\t* (a provider whose model is still loading) reads as \"warming up\".\n\t*/\n\tasync extractSpeakError(res) {\n\t\tlet code;\n\t\ttry {\n\t\t\tconst data = await res.clone().json();\n\t\t\tif (typeof data.error === \"string\") code = data.error;\n\t\t} catch {}\n\t\tif (code === \"voice_unavailable\") return \"OpenPalm Voice is not enabled on this host.\";\n\t\tif (code === \"voice_unreachable\" || res.status >= 500) return \"Voice engine is warming up — try again in a moment.\";\n\t\treturn `TTS failed (HTTP ${res.status}).`;\n\t}\n\t/** Cancel speech synthesis. Drops the entire queue. */\n\tstop() {\n\t\tthis.speakQueue.length = 0;\n\t\tthis.busy = false;\n\t\tthis.generation += 1;\n\t\tthis.overflowNoticed = false;\n\t\tthis.teardownPendingAutoplay();\n\t\tthis.teardownActiveAudio();\n\t\tif (typeof window !== \"undefined\" && \"speechSynthesis\" in window) window.speechSynthesis.cancel();\n\t\tthis.host.status = \"idle\";\n\t}\n};\n//#endregion\n//#region src/lib/voice/voice-state.svelte.ts\nvar MAX_RECORDING_MS = 6e4;\nvar VoiceState = class {\n\tstatus = \"idle\";\n\t/** True when the configured STT engine is actually usable from this browser. */\n\tsttSupported = false;\n\tttsSupported = false;\n\terrorMessage = \"\";\n\t/** Partial transcript text while browser STT is mid-utterance. Cleared on stop/error. */\n\tinterimTranscript = \"\";\n\t/** Active engine resolved from the client-owned voice settings. */\n\tsttEngine = \"disabled\";\n\tttsEngine = \"disabled\";\n\t/** Optional language hint (forwarded to the STT provider). */\n\tsttLanguage = \"\";\n\t/** Global toggle: when true, assistant chat replies are spoken automatically. */\n\tttsAutoEnabled = false;\n\t/**\n\t* True when an audio.play() was rejected by the browser's autoplay\n\t* policy and we have a pending utterance waiting for a user gesture.\n\t* The chat UI renders a small \"click to resume\" banner; clicking it\n\t* calls resumeAutoplay() to actually play.\n\t*/\n\tautoplayBlocked = false;\n\t/**\n\t* True while hands-free conversation mode owns the mic (the chat page's\n\t* listen → deliver → speak → listen loop). `status` keeps cycling\n\t* through the normal VoiceStatus values while this is set.\n\t*/\n\tconversationActive = false;\n\t/**\n\t* Set when the configured STT engine is technically present in the\n\t* window but known to fail at runtime on this UA (e.g. iOS Safari\n\t* exposes SpeechRecognition but `start()` immediately errors with\n\t* `service-not-allowed`). The Voice settings tab uses this to hide or\n\t* disable the Browser STT card with the reason as a tooltip.\n\t*/\n\tbrowserSttUnsupportedReason = \"\";\n};\nvar voiceState = new VoiceState();\n/**\n* The imperative TTS audio engine (speak queue, blob-URL lifecycle,\n* autoplay fallback, playOne). The reactive store composes it and\n* delegates the exported speak/resume/stop wrappers below to it; the\n* controller mutates `voiceState`'s reactive fields in place.\n*/\nvar audioPlayback = new AudioPlaybackController(voiceState);\naudioPlayback.onQueueDrained = () => {\n\tif (voiceState.conversationActive && voiceState.status === \"idle\") voiceState.status = \"recording\";\n};\nvar TTS_AUTO_STORAGE_KEY = \"openpalm.tts.auto\";\nvar activeRecording = null;\nvar activeRecognition = null;\nvar recordingTimeout = null;\nvar activeOnResult = null;\nvar conversationRecognition = null;\nvar conversationSilenceTimer = null;\nvar conversationVad = null;\nvar conversationSegment = null;\nvar conversationSegmentTimeout = null;\n/** Resolve the SpeechRecognition constructor (Chrome prefixes it). */\nfunction getSpeechRecognitionCtor() {\n\tif (typeof window === \"undefined\") return void 0;\n\treturn window.SpeechRecognition ?? window.webkitSpeechRecognition ?? void 0;\n}\n/**\n* iOS Safari (and all WebKit-based browsers on iOS — Chrome/Edge/Firefox\n* on iOS are required by Apple to use WebKit) exposes SpeechRecognition\n* but `start()` immediately fires `error: service-not-allowed`. Detect\n* the UA up front so the picker can hide the Browser STT card rather\n* than let the user click a mic that silently does nothing.\n*\n* `MSStream` excludes old IE on Windows Phone, which used to spoof iPad\n* in the UA; harmless on modern browsers (always undefined).\n*/\nfunction isIosSafari() {\n\tif (typeof navigator === \"undefined\") return false;\n\tconst ua = navigator.userAgent ?? \"\";\n\tconst isIos = /iPad|iPhone|iPod/.test(ua);\n\tconst msStream = window.MSStream;\n\treturn isIos && !msStream;\n}\nfunction isMediaRecorderSupported() {\n\tif (typeof window === \"undefined\") return false;\n\tif (typeof MediaRecorder === \"undefined\") return false;\n\tif (!navigator?.mediaDevices?.getUserMedia) return false;\n\treturn true;\n}\nfunction resolveEngineSupport(engine) {\n\tswitch (engine) {\n\t\tcase \"browser\":\n\t\t\tif (voiceState.browserSttUnsupportedReason) return false;\n\t\t\treturn Boolean(getSpeechRecognitionCtor());\n\t\tcase \"remote\":\n\t\tcase \"openpalm-voice\": return isMediaRecorderSupported();\n\t\tdefault: return false;\n\t}\n}\nfunction providerToEngine(provider) {\n\tif (provider === \"browser\") return \"browser\";\n\tif (provider === \"openpalm-voice\") return \"openpalm-voice\";\n\tif (provider === \"openai-compatible\") return \"remote\";\n\treturn \"disabled\";\n}\n/**\n* Probe browser capabilities and resolve which STT/TTS engines are active\n* from the client-owned voice settings. When nothing has been saved yet, the\n* defaults prefer the host's voice container (when the /api/runtime\n* handshake advertises one) and otherwise fall back to the browser's own\n* speech APIs. Must be called from onMount or $effect (client-side only).\n*/\nasync function initVoice() {\n\tconst browserTts = typeof window !== \"undefined\" && \"speechSynthesis\" in window;\n\tif (typeof window !== \"undefined\") try {\n\t\tvoiceState.ttsAutoEnabled = window.localStorage.getItem(TTS_AUTO_STORAGE_KEY) === \"1\";\n\t} catch {}\n\tif (isIosSafari() && getSpeechRecognitionCtor()) voiceState.browserSttUnsupportedReason = \"iOS Safari does not support Web Speech recognition\";\n\telse voiceState.browserSttUnsupportedReason = \"\";\n\tconst browserSttOk = Boolean(getSpeechRecognitionCtor()) && !voiceState.browserSttUnsupportedReason;\n\tconst advertised = await refreshAdvertisedVoiceUrl();\n\tconst settings = loadVoiceSettings();\n\tif (settings) {\n\t\tvoiceState.sttEngine = providerToEngine(settings.stt.provider);\n\t\tvoiceState.ttsEngine = providerToEngine(settings.tts.provider);\n\t\tvoiceState.sttLanguage = settings.stt.language ?? \"\";\n\t\tif ((voiceState.sttEngine === \"openpalm-voice\" || voiceState.ttsEngine === \"openpalm-voice\") && !advertised) {\n\t\t\tif (voiceState.sttEngine === \"openpalm-voice\") voiceState.sttEngine = browserSttOk ? \"browser\" : \"disabled\";\n\t\t\tif (voiceState.ttsEngine === \"openpalm-voice\") voiceState.ttsEngine = browserTts ? \"browser\" : \"disabled\";\n\t\t}\n\t} else {\n\t\tvoiceState.sttLanguage = \"\";\n\t\tvoiceState.sttEngine = advertised && isMediaRecorderSupported() ? \"openpalm-voice\" : browserSttOk ? \"browser\" : \"disabled\";\n\t\tvoiceState.ttsEngine = advertised ? \"openpalm-voice\" : browserTts ? \"browser\" : \"disabled\";\n\t}\n\tif (voiceState.sttEngine === \"browser\" && voiceState.browserSttUnsupportedReason) voiceState.sttEngine = \"disabled\";\n\tvoiceState.ttsSupported = voiceState.ttsEngine === \"openpalm-voice\" || voiceState.ttsEngine === \"remote\" || voiceState.ttsEngine === \"browser\" && browserTts;\n\tvoiceState.sttSupported = resolveEngineSupport(voiceState.sttEngine);\n}\n/**\n* Begin speech recognition. Transcript is delivered to `onResult`.\n* Calling while already listening is a no-op.\n*/\nfunction startListening(onResult) {\n\tif (voiceState.conversationActive) stopConversation();\n\tif (voiceState.status === \"recording\" || voiceState.status === \"transcribing\") return;\n\tif (!voiceState.sttSupported || voiceState.sttEngine === \"disabled\") {\n\t\tvoiceState.errorMessage = \"Speech recognition is not available.\";\n\t\treturn;\n\t}\n\tvoiceState.errorMessage = \"\";\n\tactiveOnResult = onResult;\n\tif (voiceState.sttEngine === \"browser\") {\n\t\tstartBrowserRecognition(onResult);\n\t\treturn;\n\t}\n\tstartRemoteRecording();\n}\nfunction startBrowserRecognition(onResult) {\n\tconst SR = getSpeechRecognitionCtor();\n\tif (!SR) {\n\t\tvoiceState.errorMessage = \"Speech recognition is not supported in this browser.\";\n\t\treturn;\n\t}\n\tconst instance = new SR();\n\tactiveRecognition = instance;\n\tinstance.lang = voiceState.sttLanguage || navigator?.language || \"en-US\";\n\tinstance.interimResults = true;\n\tinstance.maxAlternatives = 1;\n\tinstance.continuous = false;\n\tlet finalAccumulated = \"\";\n\tinstance.onresult = (event) => {\n\t\tlet interim = \"\";\n\t\tfor (let i = event.resultIndex; i < event.results.length; i++) {\n\t\t\tconst result = event.results[i];\n\t\t\tif (result.isFinal) finalAccumulated += result[0]?.transcript ?? \"\";\n\t\t\telse interim += result[0]?.transcript ?? \"\";\n\t\t}\n\t\tvoiceState.interimTranscript = finalAccumulated + interim;\n\t};\n\tinstance.onerror = (event) => {\n\t\tif (activeRecognition !== instance) return;\n\t\tconst error = event.error ?? \"\";\n\t\tif (error === \"no-speech\" || error === \"aborted\") {} else if (error === \"not-allowed\") voiceState.errorMessage = \"Microphone access denied.\";\n\t\telse voiceState.errorMessage = `Speech error: ${error}`;\n\t\tvoiceState.interimTranscript = \"\";\n\t\tvoiceState.status = \"idle\";\n\t\tactiveRecognition = null;\n\t\tactiveOnResult = null;\n\t};\n\tinstance.onend = () => {\n\t\tif (activeRecognition !== instance) return;\n\t\tif (finalAccumulated.trim() && onResult) onResult(finalAccumulated.trim());\n\t\tvoiceState.interimTranscript = \"\";\n\t\tvoiceState.status = \"idle\";\n\t\tactiveRecognition = null;\n\t\tactiveOnResult = null;\n\t};\n\ttry {\n\t\tinstance.start();\n\t\tvoiceState.status = \"recording\";\n\t} catch {\n\t\tvoiceState.errorMessage = \"Failed to start speech recognition.\";\n\t\tvoiceState.status = \"idle\";\n\t\tactiveRecognition = null;\n\t\tactiveOnResult = null;\n\t}\n}\nasync function startRemoteRecording() {\n\tlet session;\n\ttry {\n\t\tsession = await startRecording();\n\t} catch (err) {\n\t\tvoiceState.errorMessage = err instanceof Error ? err.message : \"Failed to start recording.\";\n\t\tvoiceState.status = \"idle\";\n\t\tactiveOnResult = null;\n\t\treturn;\n\t}\n\tactiveRecording = session;\n\tvoiceState.status = \"recording\";\n\trecordingTimeout = setTimeout(() => {\n\t\tfinalizeRecording();\n\t}, MAX_RECORDING_MS);\n}\nasync function finalizeRecording() {\n\tconst session = activeRecording;\n\tconst onResult = activeOnResult;\n\tif (!session) return;\n\tactiveRecording = null;\n\tactiveOnResult = null;\n\tif (recordingTimeout) {\n\t\tclearTimeout(recordingTimeout);\n\t\trecordingTimeout = null;\n\t}\n\tvoiceState.status = \"transcribing\";\n\tlet blob;\n\ttry {\n\t\tblob = await session.stop();\n\t} catch (err) {\n\t\tvoiceState.errorMessage = err instanceof Error ? err.message : \"Recording failed.\";\n\t\tvoiceState.status = \"idle\";\n\t\treturn;\n\t}\n\tif (blob.size === 0) {\n\t\tvoiceState.status = \"idle\";\n\t\treturn;\n\t}\n\ttry {\n\t\tconst trimmed = (await transcribe(blob, { language: voiceState.sttLanguage || void 0 })).trim();\n\t\tif (trimmed && onResult) onResult(trimmed);\n\t} catch (err) {\n\t\tvoiceState.errorMessage = err instanceof Error ? err.message : \"Transcription failed.\";\n\t} finally {\n\t\tvoiceState.status = \"idle\";\n\t}\n}\n/** Stop the active recording session (whichever engine). */\nfunction stopListening() {\n\tif (activeRecognition) {\n\t\ttry {\n\t\t\tactiveRecognition.stop();\n\t\t} catch {}\n\t\treturn;\n\t}\n\tif (activeRecording) finalizeRecording();\n}\nfunction clearConversationSilenceTimer() {\n\tif (conversationSilenceTimer) {\n\t\tclearTimeout(conversationSilenceTimer);\n\t\tconversationSilenceTimer = null;\n\t}\n}\n/** Exit conversation mode and tear down the listening loop (whichever engine). */\nfunction stopConversation() {\n\tif (!voiceState.conversationActive) return;\n\tvoiceState.conversationActive = false;\n\tclearConversationSilenceTimer();\n\tif (conversationSegmentTimeout) {\n\t\tclearTimeout(conversationSegmentTimeout);\n\t\tconversationSegmentTimeout = null;\n\t}\n\tif (conversationRecognition) {\n\t\tconst instance = conversationRecognition;\n\t\tconversationRecognition = null;\n\t\ttry {\n\t\t\tinstance.stop();\n\t\t} catch {}\n\t}\n\tif (conversationSegment) {\n\t\ttry {\n\t\t\tconversationSegment.cancel();\n\t\t} catch {}\n\t\tconversationSegment = null;\n\t}\n\tif (conversationVad) {\n\t\tconversationVad.stop();\n\t\tconversationVad = null;\n\t}\n\tvoiceState.interimTranscript = \"\";\n\tif (voiceState.status === \"recording\" || voiceState.status === \"transcribing\") voiceState.status = \"idle\";\n}\n/**\n* Read text aloud. Tries server-side TTS via the provider transport first (when the\n* configured engine is openpalm-voice or remote); falls back to browser\n* speech synthesis. Silent no-op if neither path is available.\n*\n* If a previous utterance is still playing, queues this one (FIFO, cap 20)\n* instead of cutting it off mid-sentence.\n*/\nfunction speakText(text) {\n\treturn audioPlayback.speak(text);\n}\n/** Cancel speech synthesis. Drops the entire queue. */\nfunction stopSpeaking() {\n\taudioPlayback.stop();\n}\n/**\n* Tear down per-component voice resources on unmount. Only cancels\n* any in-flight recording / recognition (including the conversation\n* loop).\n*\n* Deliberately does NOT cancel `speechSynthesis` — that queue is a\n* window-level singleton and the user's auto-TTS toggle is persistent,\n* so a page navigation must not interrupt the assistant mid-utterance.\n* Explicit user actions (logout, mic click, toggle off) call\n* `stopSpeaking` directly.\n*/\nfunction destroyVoice() {\n\tstopConversation();\n\tif (recordingTimeout) {\n\t\tclearTimeout(recordingTimeout);\n\t\trecordingTimeout = null;\n\t}\n\tif (activeRecording) {\n\t\ttry {\n\t\t\tactiveRecording.cancel();\n\t\t} catch {}\n\t\tactiveRecording = null;\n\t}\n\tif (activeRecognition) {\n\t\ttry {\n\t\t\tactiveRecognition.stop();\n\t\t} catch {}\n\t\tactiveRecognition = null;\n\t}\n\tactiveOnResult = null;\n\tvoiceState.interimTranscript = \"\";\n\tvoiceState.status = \"idle\";\n}\n//#endregion\nexport { notifications as S, loadRuntimeConfig as _, startListening as a, randomId as b, stopSpeaking as c, refreshAdvertisedVoiceUrl as d, loadVoiceSettings as f, subscribeSessionEvents as g, setActiveConnection as h, speakText as i, voiceState as l, getTransport as m, initVoice as n, stopConversation as o, getConnectionStore as p, isIosSafari as r, stopListening as s, destroyVoice as t, probeVoiceEndpoint as u, isLoopbackHost as v, themeService as x, validateConnectionUrl as y };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { _ as __commonJSMin } from './chunks/chunk-DOvWTNp_.js';
2
2
  import { c as coalesce_to_error, d as get_status, g as get_message, p as parse, n as noop, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, l as validate_layout_server_exports, v as validate_layout_exports, q as validate_page_server_exports, m as validate_page_exports, e as noop_span, b as create_remote_key, h as hash, a as compact, o as once, f as normalize_error, i as parse_remote_arg, j as stringify, k as stringify$1, s as split_remote_key } from './chunks/exports2-BjzhbhYA.js';
3
- import { w as with_request_store, o as options, I as IN_WEBCONTAINER, g as get_hooks, d as decode_pathname, f as find_route, n as normalize_path, a as disable_search, c as resolve, r as read_implementation, b as merge_tracing, s as set_read_implementation, m as make_trackable, N as NULL_BODY_STATUS } from './chunks/internal-BcbUGF7Z.js';
3
+ import { w as with_request_store, o as options, I as IN_WEBCONTAINER, g as get_hooks, d as decode_pathname, f as find_route, n as normalize_path, a as disable_search, c as resolve, r as read_implementation, b as merge_tracing, s as set_read_implementation, m as make_trackable, N as NULL_BODY_STATUS } from './chunks/internal-CSnzBDeT.js';
4
4
  import { H as HttpError, S as SvelteKitError, e as has_resolution_suffix, h as has_data_suffix, f as strip_resolution_suffix, s as strip_data_suffix, a as add_data_suffix, b as add_resolution_suffix, R as Redirect, g as get_relative_path, t as text_encoder, A as ActionFailure, d as base64_encode } from './chunks/utils-OXHIhUb5.js';
5
5
  import { j as json, t as text, i as isRedirect, e as error } from './chunks/exports-CcmcYU0M.js';
6
6
  import { s as set_private_env, d as set_public_env, c as base, p as public_env, o as override, b as assets, r as reset, a as app_dir } from './chunks/environment-BYp8JQYM.js';