wednesdayai 0.5.1-dev.21 → 0.5.1-dev.23

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 (443) hide show
  1. package/dist/{acp-cli-BmhbACSZ.js → acp-cli-D7pT9Bao.js} +2 -2
  2. package/dist/{acp-cli-Dblp7m2Z.js → acp-cli-DFqeyWQJ.js} +2 -2
  3. package/dist/{agent-scope-CeLIuOpq.js → agent-scope-DCgndASv.js} +3 -3
  4. package/dist/{agent-turn-enqueue-IiwTs8II.js → agent-turn-enqueue-B30hT0x-.js} +5 -5
  5. package/dist/{agent-turn-enqueue-DK8QApSV.js → agent-turn-enqueue-CI-A0Cuo.js} +5 -5
  6. package/dist/{agent-turn-execute-3cc3W1hp.js → agent-turn-execute-CFwfJKy2.js} +39 -37
  7. package/dist/{agent-turn-recovery-adapter-BkoX8bcd.js → agent-turn-recovery-adapter-DWGzJ2s-.js} +1 -1
  8. package/dist/{agent-turn-recovery-adapter-B909sIMD.js → agent-turn-recovery-adapter-TKOtg3bA.js} +1 -1
  9. package/dist/{agent-turn-runner-DUKUxZcn.js → agent-turn-runner-12Exv9CB.js} +1 -1
  10. package/dist/{agent-turn-runner-C3Buntbu.js → agent-turn-runner-Btk5sBH0.js} +1 -1
  11. package/dist/{agent-turn-runner-BglHs_p0.js → agent-turn-runner-CpsTt9uv.js} +6 -6
  12. package/dist/{agent-turn-runner-BTBy1i8Z.js → agent-turn-runner-XPJ75h7l.js} +4 -4
  13. package/dist/{agents-DJ_ssbNO.js → agents-BcHFvOHE.js} +6 -6
  14. package/dist/{agents.config-D-yD07v8.js → agents.config-C_4HsmOy.js} +1 -1
  15. package/dist/{agents.config-BcBusEWj.js → agents.config-DwW88u5f.js} +1 -1
  16. package/dist/{api-key-rotation-DQY1fynd.js → api-key-rotation-dv2YbGr8.js} +2 -2
  17. package/dist/{audio-preflight-DMq3PMsW.js → audio-preflight-Cv1eSuSU.js} +6 -6
  18. package/dist/{audio-preflight-DZdCHEnu.js → audio-preflight-DGyrDCsN.js} +7 -7
  19. package/dist/{audio-preflight-C0VnQEEN.js → audio-preflight-DKR8c6Qw.js} +7 -7
  20. package/dist/{audio-preflight-BTQmKMCZ.js → audio-preflight-DnuyzcBj.js} +29 -29
  21. package/dist/{audio-transcription-runner-C_DRSo6Z.js → audio-transcription-runner-BnmmtXUh.js} +1 -1
  22. package/dist/{audio-transcription-runner-C9Ld3zXw.js → audio-transcription-runner-CRxHRlMX.js} +1 -1
  23. package/dist/{audio-transcription-runner-BeC-knyy.js → audio-transcription-runner-DZa96tEn.js} +26 -26
  24. package/dist/{audio-transcription-runner-9GXPmTBK.js → audio-transcription-runner-DsqwKJ49.js} +1 -1
  25. package/dist/{audit-CmZAI3_9.js → audit-Dk69ufby.js} +6 -6
  26. package/dist/{audit-CH1D3iBG.js → audit-DkY9yUsn.js} +6 -6
  27. package/dist/{auth-choice-dWGUA_8g.js → auth-choice-BkWEr-Pe.js} +2 -2
  28. package/dist/{auth-choice-CEOnAk7f.js → auth-choice-kkL-bZp9.js} +2 -2
  29. package/dist/{banner-DWHiEk1H.js → banner-DOesQn79.js} +1 -1
  30. package/dist/{browser-cli-CfoUYSxy.js → browser-cli-Cy6LJQhv.js} +3 -3
  31. package/dist/{browser-cli-P7SKIutx.js → browser-cli-Mbn8pYZZ.js} +3 -3
  32. package/dist/build-info.json +3 -3
  33. package/dist/bundled/boot-md/handler.js +60 -60
  34. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  35. package/dist/bundled/command-logger/handler.js +2 -2
  36. package/dist/bundled/session-journal/handler.js +60 -60
  37. package/dist/bundled/session-memory/handler.js +60 -60
  38. package/dist/{call-xB0MOQUF.js → call-B1surxJJ.js} +3 -1
  39. package/dist/{call-CUY8VoHh.js → call-CsmPnXmY.js} +3 -1
  40. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  41. package/dist/{channel-activity-DoBHFita.js → channel-activity-Kn1_ykXE.js} +3 -3
  42. package/dist/{channel-options-DCKEbe7Z.js → channel-options-Am9ZvwKB.js} +1 -1
  43. package/dist/{channel-options-DfjYj7oi.js → channel-options-TBxP7o5K.js} +1 -1
  44. package/dist/{channels-cli-DrcS29Pk.js → channels-cli-3ihKjjtq.js} +33 -33
  45. package/dist/{channels-cli-DHvavLcJ.js → channels-cli-CGWblqhQ.js} +32 -32
  46. package/dist/{chat-content-hesA0q3j.js → chat-content-B_nVIplC.js} +4 -4
  47. package/dist/{chat-content-BZeW5ciD.js → chat-content-C7_U4hJq.js} +34 -34
  48. package/dist/{chrome-DZ6ejAmp.js → chrome-Bukcguhv.js} +23 -23
  49. package/dist/{chrome-C2xK35m5.js → chrome-DNh94Pjx.js} +8 -8
  50. package/dist/{chunk-DOckmOyp.js → chunk-CEygNI3g.js} +3 -3
  51. package/dist/{clawbot-cli-CLz6KuWz.js → clawbot-cli-BRicu1s1.js} +5 -5
  52. package/dist/{clawbot-cli-CzDwX-gU.js → clawbot-cli-Be313PY0.js} +5 -5
  53. package/dist/cli/daemon-cli.js +1 -1
  54. package/dist/{cli-D2tBPn1z.js → cli-BFoMFw-E.js} +28 -28
  55. package/dist/{cli-DBqTAu56.js → cli-BcIWokUA.js} +29 -29
  56. package/dist/{client-CIDXfGgo.js → client-DA6hPHoC.js} +4 -1
  57. package/dist/{client-BCYzc-y7.js → client-MNdGt1bC.js} +4 -1
  58. package/dist/{client-profiles-BaJqyqVb.js → client-profiles-BkQpgWwd.js} +1 -1
  59. package/dist/{client-profiles-DGW7rrdk.js → client-profiles-CZqoxT_J.js} +1 -1
  60. package/dist/{command-queue-uNIrlK4C.js → command-queue-BiT79iw_.js} +1 -1
  61. package/dist/{command-queue-3hrr088f.js → command-queue-C4uOOl0Z.js} +1 -1
  62. package/dist/{command-queue-D360YW1L.js → command-queue-Cd0AajLX.js} +1 -1
  63. package/dist/{command-queue-D2t-RCzv.js → command-queue-DnPEEtOJ.js} +1 -1
  64. package/dist/{command-registry-DuGYq06B.js → command-registry-CKhdmVgi.js} +13 -13
  65. package/dist/{command-secret-targets-DAtwJ6C7.js → command-secret-targets-9z88Sdd9.js} +2 -2
  66. package/dist/{command-secret-targets-j8KBmpix.js → command-secret-targets-r25GrCux.js} +2 -2
  67. package/dist/{commands-registry-CZGO6Zk0.js → commands-registry-Cof4HjvY.js} +2 -2
  68. package/dist/{completion-cli-BmLGd23K.js → completion-cli-DCm06gIy.js} +2 -2
  69. package/dist/{completion-cli-DuJJOsOD.js → completion-cli-DPC7jSts.js} +1 -1
  70. package/dist/{config-cli-DmPS8dHv.js → config-cli-DSSYHC1h.js} +1 -1
  71. package/dist/{config-cli-D7Km0W0t.js → config-cli-DzKCSgly.js} +1 -1
  72. package/dist/{configure-Cv8WHggj.js → configure-c7eXMXPC.js} +6 -6
  73. package/dist/{configure-Dp_BDe0p.js → configure-ev80kp3h.js} +6 -6
  74. package/dist/contracts/gateway-protocol.schema.json +23 -0
  75. package/dist/control-ui/assets/{dreams-5cpOLdgU.js → dreams-CFX8_iO7.js} +2 -2
  76. package/dist/control-ui/assets/{dreams-5cpOLdgU.js.map → dreams-CFX8_iO7.js.map} +1 -1
  77. package/dist/control-ui/assets/{index-D6XwnS7I.js → index-CambJeDO.js} +4 -4
  78. package/dist/control-ui/assets/{index-D6XwnS7I.js.map → index-CambJeDO.js.map} +1 -1
  79. package/dist/control-ui/assets/{learning-BORaiTQ4.js → learning-XJj58fEK.js} +2 -2
  80. package/dist/control-ui/assets/{learning-BORaiTQ4.js.map → learning-XJj58fEK.js.map} +1 -1
  81. package/dist/control-ui/assets/{view-chat-ByDyhnLw.js → view-chat-DCakYJRB.js} +3 -3
  82. package/dist/control-ui/assets/{view-chat-ByDyhnLw.js.map → view-chat-DCakYJRB.js.map} +1 -1
  83. package/dist/control-ui/index.html +1 -1
  84. package/dist/{cron-cli-DcatymNM.js → cron-cli-B7av_Qj-.js} +3 -3
  85. package/dist/{cron-cli-Bxd1ztzh.js → cron-cli-D-MXQLbx.js} +3 -3
  86. package/dist/{daemon-cli-P_665VBl.js → daemon-cli-C0X7BA3B.js} +2 -2
  87. package/dist/{daemon-cli-sdDY3Rkr.js → daemon-cli-D-zUFs16.js} +2 -2
  88. package/dist/daemon-cli.js +5 -0
  89. package/dist/{deliver-BGZedjpd.js → deliver-CD-qJ08p.js} +7 -5
  90. package/dist/{deliver-C0DKFL-c.js → deliver-CpY1AlyA.js} +29 -29
  91. package/dist/{deliver-Lga2gynK.js → deliver-Czj8jts5.js} +5 -5
  92. package/dist/{deliver-6pCupDgE.js → deliver-D3zKg0i3.js} +4 -4
  93. package/dist/{devices-cli-5NqagsuD.js → devices-cli-Bx1kF97H.js} +2 -2
  94. package/dist/{devices-cli-D6FG7yBy.js → devices-cli-D55ggw6F.js} +2 -2
  95. package/dist/{diagnostic-DBospa-B.js → diagnostic-Bu6Kxc66.js} +1 -1
  96. package/dist/{diagnostic-CdJb6i0b.js → diagnostic-BzGocbak.js} +1 -1
  97. package/dist/{diagnostic-uYRm3RAs.js → diagnostic-CKFgwhkU.js} +5 -5
  98. package/dist/{diagnostic-BP20aK6Y.js → diagnostic-CWdhJ9KR.js} +1 -1
  99. package/dist/{dm-policy-shared-C8iB_a-f.js → dm-policy-shared-JZebmiY8.js} +1 -1
  100. package/dist/{doctor-completion-BtJqYgVS.js → doctor-completion-Bx2Vu53y.js} +1 -1
  101. package/dist/{doctor-completion-Br2pHonN.js → doctor-completion-C1c_Fm0b.js} +1 -1
  102. package/dist/entry.js +2 -2
  103. package/dist/{errors-83K08uTq.js → errors-COs_vQr3.js} +1 -1
  104. package/dist/{exec-approvals-cli-DzJlH70p.js → exec-approvals-cli-RX2L6dhB.js} +4 -4
  105. package/dist/{exec-approvals-cli-D61d8hgT.js → exec-approvals-cli-U1avv2dD.js} +4 -4
  106. package/dist/extensionAPI.js +16 -16
  107. package/dist/{fetch-fObya4WR.js → fetch-B1ohBh6A.js} +8 -8
  108. package/dist/{fetch-guard-BucfWGi8.js → fetch-guard-BXzVwvnJ.js} +3 -3
  109. package/dist/{frontmatter-IfoWyoLV.js → frontmatter-Cw_6jMAR.js} +5 -5
  110. package/dist/{fs-safe-joAzTKB9.js → fs-safe-BK5ALzKD.js} +26 -26
  111. package/dist/{gateway-cli-BZFHtE2A.js → gateway-cli-CrFsVy3G.js} +53 -50
  112. package/dist/{gateway-cli-CzrTOBz5.js → gateway-cli-rJFjYA1c.js} +54 -51
  113. package/dist/{gateway-rpc-D36kXOsx.js → gateway-rpc-BArMTxJU.js} +1 -1
  114. package/dist/{gateway-rpc-hfUfa0T-.js → gateway-rpc-k1CUY-d7.js} +1 -1
  115. package/dist/github-copilot-token-DYYKoDuV.js +106 -0
  116. package/dist/{health-CVUuZRpQ.js → health-DjlQU_Tv.js} +4 -4
  117. package/dist/{health-K3ylOag4.js → health-jZPF8weC.js} +4 -4
  118. package/dist/{hooks-cli-CNlH_Ckf.js → hooks-cli-CVygK2yq.js} +30 -30
  119. package/dist/{hooks-cli-BTxvzxSG.js → hooks-cli-b4k2GboY.js} +29 -29
  120. package/dist/{image-ops-DlAa1zGf.js → image-ops-C-5VgbLB.js} +1 -1
  121. package/dist/index.js +32 -32
  122. package/dist/{ir-Cs9qeaeL.js → ir-DioI2VyB.js} +5 -5
  123. package/dist/{legacy-names-Dh4RlQMQ.js → legacy-names-CghFcfry.js} +1 -1
  124. package/dist/llm-slug-generator.js +60 -60
  125. package/dist/{logger-vVASmiVr.js → logger-J4xjy-6D.js} +1 -1
  126. package/dist/{logs-cli-ZXfvpQn5.js → logs-cli-BeLB-Xck.js} +3 -3
  127. package/dist/{logs-cli-DwpuZXwp.js → logs-cli-CvF3EIE2.js} +3 -3
  128. package/dist/{manager-CTeCpzGz.js → manager-D728Thsn.js} +18 -18
  129. package/dist/{manager-CsTeZuhu.js → manager-DCXdygsq.js} +1 -1
  130. package/dist/{manager-d_jLZwIa.js → manager-gw84UdyQ.js} +1 -1
  131. package/dist/{markdown-tables-BQLg3bjX.js → markdown-tables-DfLMw9ti.js} +2 -2
  132. package/dist/{memory-cli-C6IsfNdf.js → memory-cli-BcjjHcwL.js} +2 -2
  133. package/dist/{memory-cli-Dm4vpHAU.js → memory-cli-H4nCh_8v.js} +2 -2
  134. package/dist/{model-selection-UX4A5pdj.js → model-selection-BHGpQSa9.js} +87 -87
  135. package/dist/{models-FSASF0m5.js → models-BBZ_Tvpf.js} +3 -3
  136. package/dist/{models-cli-CqhUy9E-.js → models-cli-7V9N158Z.js} +30 -30
  137. package/dist/{models-cli-BIWkA9C9.js → models-cli-BJK0d_IM.js} +28 -28
  138. package/dist/{models-config-CNw9rdH1.js → models-config-CJUMccZW.js} +2 -2
  139. package/dist/{node-cli-BsB2z4rN.js → node-cli-BUV9i73l.js} +4 -4
  140. package/dist/{node-cli-DFxjiUT-.js → node-cli-DEVZws2K.js} +4 -4
  141. package/dist/{node-command-policy-BG0trkgo.js → node-command-policy-C0OmboTh.js} +1 -1
  142. package/dist/{node-command-policy-CVGtgIFJ.js → node-command-policy-Dbm2r7IP.js} +1 -1
  143. package/dist/{nodes-cli-BbRJxfod.js → nodes-cli-CYpc3Yvq.js} +3 -3
  144. package/dist/{nodes-cli-Cos0b-Pr.js → nodes-cli-Chp9WqRe.js} +3 -3
  145. package/dist/{npm-resolution-CwoZ0zIw.js → npm-resolution-BNpY_aOs.js} +1 -1
  146. package/dist/{npm-resolution-BKhZg_qE.js → npm-resolution-DaXE7ULy.js} +1 -1
  147. package/dist/{onboard-Bhpqg04u.js → onboard-BOhVuXUR.js} +3 -3
  148. package/dist/{onboard-qzS9Ex3E.js → onboard-C-KqZZqX.js} +3 -3
  149. package/dist/{onboard-channels-CdETO6vp.js → onboard-channels-B89jrN2Y.js} +2 -2
  150. package/dist/{onboard-channels-DqqM-gZ4.js → onboard-channels-DmJGOEPI.js} +2 -2
  151. package/dist/{onboard-helpers-CyLVkn7p.js → onboard-helpers-BHTSdqFW.js} +1 -1
  152. package/dist/{onboard-helpers-BjlBFVLF.js → onboard-helpers-DFWV67fv.js} +1 -1
  153. package/dist/{onboard-remote-BoobabMS.js → onboard-remote-BL2_Vzie.js} +1 -1
  154. package/dist/{onboard-remote-CGfCa4Gn.js → onboard-remote-aFlQukcN.js} +1 -1
  155. package/dist/{onboard-skills-qXATWBbv.js → onboard-skills-DBsUD_Fs.js} +1 -1
  156. package/dist/{onboard-skills-CA3vVftf.js → onboard-skills-fb0X7sb5.js} +1 -1
  157. package/dist/{onboarding-9F7Zrfos.js → onboarding-C6Xs7G9Y.js} +7 -7
  158. package/dist/{onboarding-B0tWDl2D.js → onboarding-DjYLPv7p.js} +7 -7
  159. package/dist/{onboarding.finalize-D-GEVbwy.js → onboarding.finalize-BzPTRheS.js} +35 -35
  160. package/dist/{onboarding.finalize-DZaf33cl.js → onboarding.finalize-Sx0H879S.js} +33 -33
  161. package/dist/{onboarding.gateway-config-D2JKnTD-.js → onboarding.gateway-config-CkoaBZS4.js} +5 -5
  162. package/dist/{onboarding.gateway-config-BjNFm5qL.js → onboarding.gateway-config-DFk1lZ7k.js} +5 -5
  163. package/dist/{operator-commands-Cak1KHXQ.js → operator-commands-CMLC3NdV.js} +2 -2
  164. package/dist/{operator-commands-QumqWQQg.js → operator-commands-DWyDwJ5E.js} +2 -2
  165. package/dist/{outbound-attachment-CFHAAdf4.js → outbound-attachment-DtVXUXnX.js} +2 -2
  166. package/dist/{outbound-message-hooks-DD51nZnK.js → outbound-message-hooks-8LGAoYF_.js} +1 -1
  167. package/dist/{outbound-message-hooks-ZPwBUN_R.js → outbound-message-hooks-CsYq3_vL.js} +1 -1
  168. package/dist/{outbound-message-hooks-WWLXsRwc.js → outbound-message-hooks-DUHpZ2aL.js} +5 -5
  169. package/dist/{outbound-message-hooks-DC75UHT4.js → outbound-message-hooks-tjGZZOYq.js} +1 -1
  170. package/dist/{path-alias-guards-BzCkdlOk.js → path-alias-guards-E9ntDORB.js} +1 -1
  171. package/dist/paths-BIDPYPVC.js +233 -0
  172. package/dist/{pi-embedded-BSXEJok2.js → pi-embedded--18wTN8q.js} +279 -272
  173. package/dist/{pi-embedded-helpers-D7uD-CgK.js → pi-embedded-helpers-Brv2iTWi.js} +2 -2
  174. package/dist/{pi-embedded-helpers-StwgdB31.js → pi-embedded-helpers-ClJpdsSV.js} +2 -2
  175. package/dist/{pi-embedded-recovery-adapter-D7px7ESy.js → pi-embedded-recovery-adapter-BEKLsxLt.js} +10 -10
  176. package/dist/{pi-embedded-recovery-adapter-CfgLn9QF.js → pi-embedded-recovery-adapter-dQZ-gtY4.js} +10 -10
  177. package/dist/{pi-embedded-utils-DjVnTKKi.js → pi-embedded-utils-C-FQE63E.js} +1 -1
  178. package/dist/{pi-embedded-utils-BjqdCUkA.js → pi-embedded-utils-C7ErjdjF.js} +3 -3
  179. package/dist/{pi-embedded-utils-B8Raycd6.js → pi-embedded-utils-CKxA8dqZ.js} +1 -1
  180. package/dist/{pi-embedded-utils-CR3tST8r.js → pi-embedded-utils-D7vaAoE6.js} +1 -1
  181. package/dist/{pi-embedded-BhsFkp5Y.js → pi-embedded-vIZchQTO.js} +42 -35
  182. package/dist/{pi-model-discovery-CQdUMRm4.js → pi-model-discovery-BaH_6win.js} +7 -7
  183. package/dist/{pi-tools.policy-DXLQHQAj.js → pi-tools.policy-BSgFR5ag.js} +1 -1
  184. package/dist/{plugin-registry-DH7Hnw6l.js → plugin-registry-CDj1s2Qo.js} +1 -1
  185. package/dist/{plugin-registry-DgIkh9ii.js → plugin-registry-CmiGMpCp.js} +1 -1
  186. package/dist/plugin-sdk/{agent-turn-execute-CW7LtXMC.js → agent-turn-execute-DRGUpyj_.js} +15 -15
  187. package/dist/plugin-sdk/{agent-turn-execute-BxdAt_ht.js → agent-turn-execute-vNMPaEsb.js} +15 -15
  188. package/dist/plugin-sdk/{agent-turn-runner-orbrCxRO.js → agent-turn-runner-B48Ac2Mq.js} +5 -5
  189. package/dist/plugin-sdk/{agent-turn-runner-sOn9sAG9.js → agent-turn-runner-CJ061NAh.js} +4 -4
  190. package/dist/plugin-sdk/{agent-turn-runner-CRaNFFTm.js → agent-turn-runner-xP1KK6u-.js} +1 -1
  191. package/dist/plugin-sdk/{audio-preflight-CBBGdhe1.js → audio-preflight-BDZ7cLko.js} +5 -5
  192. package/dist/plugin-sdk/{audio-preflight-BZXIHlnM.js → audio-preflight-COb5kXAH.js} +6 -6
  193. package/dist/plugin-sdk/{audio-preflight-CNU5kpWj.js → audio-preflight-DpIgQPUE.js} +1 -1
  194. package/dist/plugin-sdk/{audio-transcription-runner-D5dYI82C.js → audio-transcription-runner-DqbgqKuA.js} +1 -1
  195. package/dist/plugin-sdk/{audio-transcription-runner-D8y2D8k8.js → audio-transcription-runner-tMxFDdPy.js} +1 -1
  196. package/dist/plugin-sdk/{chat-content-DB5Wz2lG.js → chat-content-B4kExRGx.js} +1 -1
  197. package/dist/plugin-sdk/{chat-content-aOAkouil.js → chat-content-CmG6uniC.js} +1 -1
  198. package/dist/plugin-sdk/{command-detection-AlAuh3r9.js → command-detection-Cx5GspTs.js} +37 -30
  199. package/dist/plugin-sdk/{command-queue-JvIhb__x.js → command-queue-BrpT-5Sy.js} +1 -1
  200. package/dist/plugin-sdk/{command-queue-J8WWtdem.js → command-queue-mdn12mZN.js} +2 -2
  201. package/dist/plugin-sdk/{command-queue-DMJXMFU-.js → command-queue-uRF0EuVO.js} +1 -1
  202. package/dist/plugin-sdk/{deliver-D77qfyGv.js → deliver-CckI3OJ8.js} +4 -4
  203. package/dist/plugin-sdk/{deliver-46BXvvk5.js → deliver-D3X61EfY.js} +4 -4
  204. package/dist/plugin-sdk/{deliver-tcGRRL8s.js → deliver-DOj7WTIw.js} +5 -5
  205. package/dist/plugin-sdk/{deliver-BOyf6UPp.js → deliver-qMYtKe1O.js} +5 -5
  206. package/dist/plugin-sdk/{diagnostic-DVk1j05H.js → diagnostic-BQhPQdFK.js} +1 -1
  207. package/dist/plugin-sdk/{diagnostic-C-BgFx1S.js → diagnostic-CcNUspD1.js} +1 -1
  208. package/dist/plugin-sdk/{diagnostic-CLyicI69.js → diagnostic-I0XYqjlG.js} +1 -1
  209. package/dist/plugin-sdk/index.js +16 -16
  210. package/dist/plugin-sdk/{monitor-D9AzoNHs.js → monitor-CjGR673h.js} +36 -29
  211. package/dist/plugin-sdk/{pi-embedded-utils-Bj86frFf.js → pi-embedded-utils-BeDAZIRN.js} +1 -1
  212. package/dist/plugin-sdk/{pi-embedded-utils-gWjx_FJu.js → pi-embedded-utils-CXRILg4X.js} +1 -1
  213. package/dist/plugin-sdk/{provider-dispatcher-BkgqrySb.js → provider-dispatcher-CaEeja4a.js} +15 -15
  214. package/dist/plugin-sdk/{provider-dispatcher-RG1EJhMg.js → provider-dispatcher-CwOOkcSh.js} +15 -15
  215. package/dist/plugin-sdk/{provider-image-CK8PByo3.js → provider-image-1--b__Rf.js} +1 -1
  216. package/dist/plugin-sdk/{provider-image-BRuhIUH4.js → provider-image-CWR1baFo.js} +4 -4
  217. package/dist/plugin-sdk/{provider-image-BsvAEUj7.js → provider-image-D3L7uRQL.js} +4 -4
  218. package/dist/plugin-sdk/{provider-image-BRiO1hJO.js → provider-image-DfMOZvCj.js} +1 -1
  219. package/dist/plugin-sdk/{replies-CNJcNn1X.js → replies-Bvgbr4Gl.js} +2 -2
  220. package/dist/plugin-sdk/{replies-CmfWsSdE.js → replies-DpAL4lju.js} +2 -2
  221. package/dist/plugin-sdk/{replies-Diq1jozB.js → replies-K0SP92k3.js} +3 -3
  222. package/dist/plugin-sdk/{replies-3-6UUC2y.js → replies-S7-hIwEu.js} +3 -3
  223. package/dist/plugin-sdk/{reply-directives-C_nV536z.js → reply-directives-3w5Sb0-K.js} +1 -1
  224. package/dist/plugin-sdk/{reply-directives--THCb2vc.js → reply-directives-CCmYO5TU.js} +1 -1
  225. package/dist/plugin-sdk/{runs-CmbFSwOD.js → runs-Bh-TSTul.js} +6 -6
  226. package/dist/plugin-sdk/{runs-nP6hONs2.js → runs-Ciq2OtzT.js} +5 -5
  227. package/dist/plugin-sdk/{runs-Cu-M6Lh7.js → runs-DgLRRHnl.js} +6 -6
  228. package/dist/plugin-sdk/{runs-BU1Eppml.js → runs-lzwgSAQQ.js} +5 -5
  229. package/dist/plugin-sdk/{send-LkmFhgsK.js → send-4L6l04nt.js} +2 -2
  230. package/dist/plugin-sdk/{send-D7UktRfh.js → send-DKVsq9M4.js} +1 -1
  231. package/dist/plugin-sdk/{send-C2QGhDII.js → send-RnIEnr9s.js} +2 -2
  232. package/dist/plugin-sdk/{send-aiyKj-5V.js → send-T7FFZ4GT.js} +1 -1
  233. package/dist/plugin-sdk/{session-context-DLi5r0L8.js → session-context-Ct8StxcQ.js} +1 -1
  234. package/dist/plugin-sdk/{session-context-D79uWb-f.js → session-context-DLVW1kjd.js} +1 -1
  235. package/dist/plugin-sdk/{session-meta-DwqjC-No.js → session-meta-CjpVFrUg.js} +1 -1
  236. package/dist/plugin-sdk/{sessions-D9WFZu21.js → sessions-55u1Rz4h.js} +1 -0
  237. package/dist/plugin-sdk/{sessions-CmLCbwdv.js → sessions-DgJUTr39.js} +1 -0
  238. package/dist/plugin-sdk/src/agents/tool-display-common.d.ts +10 -0
  239. package/dist/plugin-sdk/src/gateway/protocol/index.d.ts +3 -0
  240. package/dist/plugin-sdk/src/gateway/protocol/schema/protocol-schemas.d.ts +6 -0
  241. package/dist/plugin-sdk/src/gateway/protocol/schema/sessions.d.ts +6 -0
  242. package/dist/plugin-sdk/src/gateway/protocol/schema/types.d.ts +2 -0
  243. package/dist/plugin-sdk/src/gateway/session-utils.types.d.ts +2 -0
  244. package/dist/plugin-sdk/src/shared/session-visibility.d.ts +1 -1
  245. package/dist/plugin-sdk/src/tts/tts.d.ts +2 -0
  246. package/dist/plugin-sdk/{subagent-registry-D-9HI-_X.js → subagent-registry-CfMU3EOY.js} +15 -15
  247. package/dist/plugin-sdk/{subagent-registry-CuACJDRa.js → subagent-registry-n7onkQYC.js} +15 -15
  248. package/dist/plugin-sdk/testing.js +15 -15
  249. package/dist/{plugins-cli-D2epBFli.js → plugins-cli-BfVyfDVB.js} +30 -30
  250. package/dist/{plugins-cli-YMB3dwun.js → plugins-cli-RYPupoUU.js} +29 -29
  251. package/dist/{program-context-C0OAcdai.js → program-context-Bd6intne.js} +37 -37
  252. package/dist/{program-DhncJMbr.js → program-vHNIwjM_.js} +35 -35
  253. package/dist/{prompt-select-styled-pBLBu3w7.js → prompt-select-styled-BwIQiRks.js} +11 -11
  254. package/dist/{prompt-select-styled-B0HZWrVy.js → prompt-select-styled-CvmUNFDK.js} +11 -11
  255. package/dist/{provider-image-CApPjEsW.js → provider-image-BvBYtGGJ.js} +1 -1
  256. package/dist/{provider-image-D2FrDW-X.js → provider-image-DVTuOv92.js} +6 -6
  257. package/dist/{provider-image-CAWS0JMV.js → provider-image-KmAZWQje.js} +1 -1
  258. package/dist/{provider-image-B-KFl1me.js → provider-image-n0L8CIDm.js} +1 -1
  259. package/dist/{proxy-CPi-EHQf.js → proxy-CrSpy5Aw.js} +1 -1
  260. package/dist/{proxy-env-1eta-137.js → proxy-env-BxR4m86L.js} +1 -1
  261. package/dist/{proxy-fetch-SAeVJOzX.js → proxy-fetch-g109vqdt.js} +1 -1
  262. package/dist/{push-apns-BAZsfMOy.js → push-apns--0fj47Qj.js} +2 -2
  263. package/dist/{push-apns-PAONdNH4.js → push-apns-Cb0sjE90.js} +2 -2
  264. package/dist/{pw-ai-DtPiMDW2.js → pw-ai-BJiiE3V8.js} +1 -1
  265. package/dist/{pw-ai-Czj8Ud3z.js → pw-ai-CC8qsp4R.js} +1 -1
  266. package/dist/{pw-ai-D9Y__zb9.js → pw-ai-CNTt9O_x.js} +14 -14
  267. package/dist/{pw-ai-BZjpW2LJ.js → pw-ai-DMPGyJxJ.js} +1 -1
  268. package/dist/{qmd-manager-C0SNPJNQ.js → qmd-manager-CU9iEql0.js} +12 -12
  269. package/dist/{qr-cli-DAghVVtT.js → qr-cli-B1vszJrL.js} +3 -3
  270. package/dist/{qr-cli-C8WFS-12.js → qr-cli-BZy4AXuc.js} +3 -3
  271. package/dist/{query-expansion-lPFsJzxE.js → query-expansion-B_2rETEo.js} +13 -13
  272. package/dist/{recorder-Dtl7MFGH.js → recorder-Clg9Kbqu.js} +2 -2
  273. package/dist/{recovery-adapter-CZUNVpQO.js → recovery-adapter-D3YllPfB.js} +2 -2
  274. package/dist/{recovery-adapter-CRSPS8I2.js → recovery-adapter-Dyk72MfJ.js} +2 -2
  275. package/dist/{recovery-adapter-BSdwo2OS.js → recovery-adapter-Hdhf6HDW.js} +1 -1
  276. package/dist/{recovery-adapter-BpJ8BscF.js → recovery-adapter-y0rKMaw8.js} +1 -1
  277. package/dist/{redact-Da2jd8m8.js → redact-DpE5Tg36.js} +1 -1
  278. package/dist/{register.agent-FDTmtEUr.js → register.agent-CgPP5ADX.js} +31 -31
  279. package/dist/{register.agent-C4f6rhJo.js → register.agent-DfScK2hV.js} +33 -33
  280. package/dist/{register.configure-Dv5O2Xb5.js → register.configure-C8uYH0Yy.js} +35 -35
  281. package/dist/{register.configure-Hw_sXK-z.js → register.configure-dflFJ7N_.js} +34 -34
  282. package/dist/{register.maintenance-D8jjjhHB.js → register.maintenance-DYrx2td9.js} +35 -35
  283. package/dist/{register.maintenance-DK1PJ9oQ.js → register.maintenance-DplgYMC9.js} +37 -37
  284. package/dist/{register.message-D2APO70t.js → register.message-BBQ6Wdt9.js} +29 -29
  285. package/dist/{register.message-GNpuxvGM.js → register.message-jvrIPxVV.js} +30 -30
  286. package/dist/{register.onboard-0G3JduCW.js → register.onboard-eC1JSQFQ.js} +6 -6
  287. package/dist/{register.onboard-DONtll3f.js → register.onboard-mi8eEWxH.js} +6 -6
  288. package/dist/{register.setup-Ru94mK0C.js → register.setup-DZYxFj5L.js} +6 -6
  289. package/dist/{register.setup-BhN2hAJ-.js → register.setup-F0XMwrOq.js} +6 -6
  290. package/dist/{register.status-health-sessions-cUGfN2jZ.js → register.status-health-sessions-B-IdUdif.js} +33 -33
  291. package/dist/{register.status-health-sessions-BugOGdEq.js → register.status-health-sessions-DbjCFLPT.js} +35 -35
  292. package/dist/{register.subclis-BXGoL8Qv.js → register.subclis-Dobk1vvB.js} +25 -25
  293. package/dist/{replies-qljs_NZI.js → replies-B7XXdKjN.js} +2 -2
  294. package/dist/{replies-DS1VGy4W.js → replies-BKdOqGC9.js} +5 -5
  295. package/dist/{replies-CHagfAgN.js → replies-DrGGa5se.js} +2 -2
  296. package/dist/{replies-BuO733xx.js → replies-gGgLXY8D.js} +2 -2
  297. package/dist/{reply-CqYQeNjd.js → reply-BSMDupOw.js} +38 -36
  298. package/dist/{reply-directives-CJoSirgd.js → reply-directives-Bz18fvJe.js} +1 -1
  299. package/dist/{reply-directives-DBZR0dTg.js → reply-directives-CtSqkSzr.js} +2 -2
  300. package/dist/{reply-directives-B9hX-LBz.js → reply-directives-bPMJNW1Q.js} +1 -1
  301. package/dist/{reply-directives-GcBlocvi.js → reply-directives-tE0PyBK-.js} +1 -1
  302. package/dist/{reply-prefix-DfeMrD4g.js → reply-prefix-C-DjHvQK.js} +1 -1
  303. package/dist/{resolve-route-CAuL1p_4.js → resolve-route-DKZiteo6.js} +5 -5
  304. package/dist/{rpc-DJ9VPO9A.js → rpc-BZtZb4-6.js} +1 -1
  305. package/dist/{rpc-BoZa3Ve8.js → rpc-Ft_DUdSG.js} +1 -1
  306. package/dist/{run-main-08KWAl9e.js → run-main-BJFVebkS.js} +44 -44
  307. package/dist/{runs-DRxbDl12.js → runs-BIt97Q-K.js} +9 -9
  308. package/dist/{runs-CoWBHyeo.js → runs-BUywHXga.js} +4 -4
  309. package/dist/{runs-vCw_F2ZO.js → runs-TPOj4wqX.js} +4 -4
  310. package/dist/{runs-yIaQUPae.js → runs-wDxw0TX4.js} +5 -5
  311. package/dist/{sandbox-BijP-jd2.js → sandbox-389fAlDt.js} +2 -2
  312. package/dist/{sandbox-Cf0p0qcn.js → sandbox-CEDb7iCz.js} +2 -2
  313. package/dist/{sandbox-cli-DFLg4dmY.js → sandbox-cli-BJ4Z1CEE.js} +6 -6
  314. package/dist/{sandbox-cli-B0TGsg0B.js → sandbox-cli-kfxS44rH.js} +6 -6
  315. package/dist/{secrets-cli-BoYG9Zi_.js → secrets-cli-CgpBwEA_.js} +3 -3
  316. package/dist/{secrets-cli-CL3R38dk.js → secrets-cli-DFuIPeQ8.js} +3 -3
  317. package/dist/{security-cli-BuOut78W.js → security-cli-bxcpjEyc.js} +8 -8
  318. package/dist/{security-cli-DFTi9A0s.js → security-cli-zcQ5Hc8L.js} +8 -8
  319. package/dist/{send-Bmp8wi9T.js → send-Bf4geLyV.js} +8 -8
  320. package/dist/{send-DRJrureq.js → send-Ch1ruPj9.js} +1 -1
  321. package/dist/{send-DFasc8l1.js → send-CsDSBjFo.js} +6 -6
  322. package/dist/{send-CtSLexxo.js → send-DBqe2mPq.js} +30 -30
  323. package/dist/{send-DFAmNsWX.js → send-DQvfLvpJ.js} +6 -6
  324. package/dist/{send-DSRl6F0O.js → send-bwKTbNlJ.js} +7 -7
  325. package/dist/{send-DxkjyjYg.js → send-cRef_6f-.js} +1 -1
  326. package/dist/{send-7pf6IvCv.js → send-xXKNMsLi.js} +1 -1
  327. package/dist/{server-CRI0-vWV.js → server-CggrpKmd.js} +4 -4
  328. package/dist/{server-ks1TmG7W.js → server-D7EeBwPd.js} +4 -4
  329. package/dist/{server-context-DgKj77jj.js → server-context-CV1udh3Y.js} +2 -2
  330. package/dist/{server-context-BIoSfzI_.js → server-context-Dv15RG_H.js} +2 -2
  331. package/dist/{server-lifecycle-fJG-u89x.js → server-lifecycle-BIH58Hoe.js} +1 -1
  332. package/dist/{server-lifecycle-Cd0b010a.js → server-lifecycle-D8mfFIYf.js} +1 -1
  333. package/dist/{server-node-events-Ba1YD79n.js → server-node-events-C_xoK9Xb.js} +29 -29
  334. package/dist/{server-node-events-CqQhTT1T.js → server-node-events-mxzClNCx.js} +30 -30
  335. package/dist/{session-meta-BlSJMcbU.js → session-meta-5XI6vLtM.js} +1 -1
  336. package/dist/{session-storage-B-ES9i1k.js → session-storage-269JGGQ0.js} +1 -1
  337. package/dist/{session-storage-7x9X6Db3.js → session-storage-BbpL12Su.js} +1 -1
  338. package/dist/{session-storage-owner-DLQ3vsAz.js → session-storage-owner-ClZPCWep.js} +2 -2
  339. package/dist/{session-storage-owner-1-cQlOCZ.js → session-storage-owner-M7vbUIWw.js} +2 -2
  340. package/dist/{session-utils-BeYzkx__.js → session-utils-Be7zx7oZ.js} +4 -2
  341. package/dist/{sessions-BIgPumZV.js → sessions-BV1UJJsg.js} +37 -11
  342. package/dist/{sessions-rMRfoN3f.js → sessions-CIWeBs1M.js} +1 -0
  343. package/dist/{sessions-9SvxsXWP.js → sessions-CLcDtAGY.js} +1 -0
  344. package/dist/{sessions-bZHjdfaW.js → sessions-C_dBu7XC.js} +6 -5
  345. package/dist/{sessions-CLXwtR8F.js → sessions-CpqHo_Lm.js} +37 -11
  346. package/dist/{sessions-B03PIf-m.js → sessions-D4geZIf4.js} +1 -0
  347. package/dist/{sessions-DvCgCqqN.js → sessions-DR_ebiSs.js} +2 -2
  348. package/dist/{sessions-claims-status-DMdo7H9e.js → sessions-claims-status-CCWxZ_uS.js} +2 -2
  349. package/dist/{sessions-claims-status-CJ4Z16C-.js → sessions-claims-status-DcgKqzSM.js} +2 -2
  350. package/dist/{skill-commands-RBvFNztU.js → skill-commands-CAOvM2sb.js} +8 -8
  351. package/dist/{skills-Dj2sTIvh.js → skills-VN1CJK6W.js} +21 -21
  352. package/dist/{status-D_sJaQfK.js → status-B8Al6FzI.js} +18 -18
  353. package/dist/{status-Ccz-BtS_.js → status-Cuo3rz1n.js} +18 -18
  354. package/dist/{store-WpdMrmch.js → store-HgGweM4u.js} +7 -7
  355. package/dist/{subsystem-D_zHSy02.js → subsystem-BZy3aWdW.js} +71 -71
  356. package/dist/{system-cli-BGa0j96s.js → system-cli-Ba9jGCiM.js} +3 -3
  357. package/dist/{system-cli-CnsRY21W.js → system-cli-DcjUJVa8.js} +3 -3
  358. package/dist/{tables--lm0TIoo.js → tables-DkwNUhx1.js} +1 -1
  359. package/dist/{task-pipeline-boot-BMwRQ8Fe.js → task-pipeline-boot-C1v58b1_.js} +30 -30
  360. package/dist/{task-pipeline-boot-D5tuNVHj.js → task-pipeline-boot-Kxi1hpUn.js} +29 -29
  361. package/dist/{task-runlog-retention-D0XabfJk.js → task-runlog-retention-BdLkqRCi.js} +3 -3
  362. package/dist/{task-runlog-retention-vP8bhD14.js → task-runlog-retention-CJeUxN8v.js} +3 -3
  363. package/dist/{tasks-DEye0RYH.js → tasks-BIqKTj4l.js} +2 -2
  364. package/dist/{tasks-DIa6KmEw.js → tasks-nrh4KjHH.js} +2 -2
  365. package/dist/{tokens-B3OPeQh5.js → tokens-PMai9bNL.js} +1 -1
  366. package/dist/{tool-loop-detection-ST5jhih3.js → tool-loop-detection-BqyMjpvr.js} +2 -2
  367. package/dist/{tui-YpVnb92B.js → tui-DC-J_38B.js} +3 -3
  368. package/dist/{tui-DvN9w3dz.js → tui-DrLsIQv0.js} +3 -3
  369. package/dist/{tui-cli-B9yDRbjk.js → tui-cli-CAtLTzIA.js} +7 -7
  370. package/dist/{tui-cli-DoocDTJG.js → tui-cli-De9rMj3R.js} +7 -7
  371. package/dist/{update-cli-CUltMNat.js → update-cli-BEm9qrlV.js} +38 -38
  372. package/dist/{update-cli-DzokCnPQ.js → update-cli-CGSSTKTT.js} +36 -36
  373. package/dist/{update-runner-BOwq67Zr.js → update-runner-BMCWrif2.js} +1 -1
  374. package/dist/{update-runner-B2S-ijWA.js → update-runner-BUO6D2tP.js} +1 -1
  375. package/dist/{user-run-recording--_IhK-gN.js → user-run-recording-B1HujJiT.js} +2 -2
  376. package/dist/{validation-cli-C3tmcqKI.js → validation-cli-DHwddKWw.js} +29 -29
  377. package/dist/{validation-cli-BVO3QQdD.js → validation-cli-IGbMryvI.js} +30 -30
  378. package/dist/{with-timeout-BWtea6IA.js → with-timeout-BBKlU1es.js} +2 -2
  379. package/dist/{with-timeout-i0aj653V.js → with-timeout-CkVVKMZ5.js} +2 -2
  380. package/dist/{workspace-rViTESnr.js → workspace-Bj1Jegt-.js} +27 -27
  381. package/extensions/acpx/package.json +1 -1
  382. package/extensions/anthropic/package.json +1 -1
  383. package/extensions/bifrost/package.json +1 -1
  384. package/extensions/bluebubbles/package.json +1 -1
  385. package/extensions/copilot-proxy/package.json +1 -1
  386. package/extensions/deepgram/package.json +1 -1
  387. package/extensions/deepinfra/package.json +1 -1
  388. package/extensions/diagnostics-otel/package.json +1 -1
  389. package/extensions/diffs/package.json +1 -1
  390. package/extensions/discord/package.json +1 -1
  391. package/extensions/dream-cycle/package.json +1 -1
  392. package/extensions/elevenlabs/package.json +1 -1
  393. package/extensions/feishu/package.json +1 -1
  394. package/extensions/gemini-search/package.json +1 -1
  395. package/extensions/google/package.json +1 -1
  396. package/extensions/google-gemini-cli-auth/package.json +1 -1
  397. package/extensions/googlechat/package.json +1 -1
  398. package/extensions/grok-search/package.json +1 -1
  399. package/extensions/groq/package.json +1 -1
  400. package/extensions/imessage/package.json +1 -1
  401. package/extensions/irc/package.json +1 -1
  402. package/extensions/kimi-search/package.json +1 -1
  403. package/extensions/learning-core/package.json +1 -1
  404. package/extensions/line/package.json +1 -1
  405. package/extensions/llm-task/package.json +1 -1
  406. package/extensions/lobster/package.json +1 -1
  407. package/extensions/matrix/CHANGELOG.md +1 -1
  408. package/extensions/matrix/package.json +1 -1
  409. package/extensions/mattermost/package.json +1 -1
  410. package/extensions/memory-core/package.json +1 -1
  411. package/extensions/memory-lancedb/package.json +1 -1
  412. package/extensions/minimax/package.json +1 -1
  413. package/extensions/minimax-portal-auth/package.json +1 -1
  414. package/extensions/mistral/package.json +1 -1
  415. package/extensions/moonshot/package.json +1 -1
  416. package/extensions/msteams/CHANGELOG.md +1 -1
  417. package/extensions/msteams/package.json +1 -1
  418. package/extensions/nextcloud-talk/package.json +1 -1
  419. package/extensions/nostr/CHANGELOG.md +1 -1
  420. package/extensions/nostr/package.json +1 -1
  421. package/extensions/open-prose/package.json +1 -1
  422. package/extensions/openai/package.json +1 -1
  423. package/extensions/openai-realtime/package.json +1 -1
  424. package/extensions/openrouter/package.json +1 -1
  425. package/extensions/perplexity-search/package.json +1 -1
  426. package/extensions/searxng-search/package.json +1 -1
  427. package/extensions/signal/package.json +1 -1
  428. package/extensions/slack/package.json +1 -1
  429. package/extensions/synology-chat/package.json +1 -1
  430. package/extensions/telegram/package.json +1 -1
  431. package/extensions/tlon/package.json +1 -1
  432. package/extensions/twitch/CHANGELOG.md +1 -1
  433. package/extensions/twitch/package.json +1 -1
  434. package/extensions/ui-surfaces/package.json +1 -1
  435. package/extensions/voice-call/CHANGELOG.md +1 -1
  436. package/extensions/voice-call/package.json +1 -1
  437. package/extensions/whatsapp/package.json +1 -1
  438. package/extensions/zai/package.json +1 -1
  439. package/extensions/zalo/CHANGELOG.md +1 -1
  440. package/extensions/zalo/package.json +1 -1
  441. package/extensions/zalouser/CHANGELOG.md +1 -1
  442. package/extensions/zalouser/package.json +1 -1
  443. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./view-agents-DNhyzEgf.js","./rolldown-runtime-QTnfLwEv.js","./view-channels-B0V1xJ85.js","./view-chat-ByDyhnLw.js","./view-config-Dl4Y5JyC.js","./view-cron-BOjGaH8V.js","./view-observability-CnK2ipvG.js","./view-instances-Dk5bFtS9.js","./dreams-5cpOLdgU.js","./learning-BORaiTQ4.js","./view-nodes-MWnX0cZW.js","./view-overview-CrvoKgpD.js","./view-sessions-DYbRtgme.js","./view-skills-C_6VXWZR.js","./talk-CdqHAcGz.js","./view-usage-IPN77Al1.js"])))=>i.map(i=>d[i]);
2
- import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import{D as n,E as r,S as i,h as a,k as o,m as s,x as c}from"./view-agents-DNhyzEgf.js";import{a as l,c as u,i as d,o as f,s as p}from"./view-chat-ByDyhnLw.js";import{A as m,C as h,D as g,E as _,F as v,I as y,M as b,N as x,O as S,P as ee,R as te,S as C,T as w,_ as T,a as E,b as ne,c as re,d as ie,f as ae,g as oe,h as D,i as se,j as ce,k as le,l as O,m as k,n as ue,o as A,p as j,r as de,s as M,u as N,v as P,w as fe,x as pe,y as me,z as F}from"./view-cron-BOjGaH8V.js";import{a as I,l as L,o as he}from"./view-channels-B0V1xJ85.js";import{a as ge,i as R,n as _e,o as z,r as B}from"./view-overview-CrvoKgpD.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var ve=``+new URL(`audio-capture-worklet-wGa4MpuL.js`,import.meta.url).href,V={audio:{channelCount:{ideal:1},echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}},ye=24e3,be=50;function xe(e){let t=e.targetSampleRateHz??ye,n=null,r=null,i=null,a=null,o=null,s=null,c=0,l=null;async function u(){c+=1,l=null;let e=n,t=r,u=i,d=a,f=o,p=s;if(n=null,r=null,i=null,a=null,o=null,s=null,d&&p){let e,t=new Promise(t=>{e=t}),n=t=>{t.data===`flushed`&&e()};d.port.addEventListener(`message`,n);try{d.port.postMessage?.(`stop`)}catch{}await Promise.race([t,new Promise(e=>{setTimeout(e,be)})]),d.port.removeEventListener(`message`,p),d.port.removeEventListener(`message`,n)}u?.disconnect(),d?.disconnect(),f?.disconnect();for(let t of e?.getTracks()??[])t.stop();await t?.close()}async function d(l){try{let u=await navigator.mediaDevices.getUserMedia(V);if(l!==c){for(let e of u.getTracks())e.stop();return}n=u;let d=new AudioContext;if(r=d,await d.audioWorklet.addModule(ve),l!==c)return;i=d.createMediaStreamSource(u),a=new AudioWorkletNode(d,`wednesdayai-audio-capture`,{processorOptions:{targetSampleRateHz:t}}),s=t=>{let n=t.data;n instanceof ArrayBuffer&&n.byteLength%2==0&&e.onPcm16(new Uint8Array(n))},a.port.addEventListener(`message`,s),a.port.start(),o=d.createGain(),o.gain.value=0,i.connect(a),a.connect(o),o.connect(d.destination)}catch(e){if(l!==c)return;throw await u(),e}}return{start(){if(l)return l;let e=d(++c);return l=e,e.catch(()=>{l===e&&(l=null)}),e},async suspend(){await r?.suspend()},async resume(){await r?.resume()},stop:u}}function Se(e){let t=new AudioContext,n=(e.preRollMs??0)/1e3,r=e.echoSafeSink?t.createMediaStreamDestination():t.destination,i=null;if(e.echoSafeSink){let e=r;i=document.createElement(`audio`),i.srcObject=e.stream,i.autoplay=!0,i.muted=!1,document.body.appendChild(i)}let a=new Set,o=[],s=0,c=0,l=0,u=null,d=null;function f(t,n){let r=[],i=[];for(let e of o){let n=!1;for(let t of a)if(t.generation===e.generation&&t.sequence<=e.barrier){n=!0;break}e.generation===t&&!n?r.push(e):i.push(e)}o=i;for(let t of r){if(t.generation!==s)break;e.onMarkPlayed(t.name,n??e.now())}}function p(){s+=1;let e=[...a];a.clear(),o=[],c=0,l=0;for(let t of e)t.node.stop()}return{enqueuePcm16(i){let o=Math.floor(i.byteLength/2),u=t.createBuffer(1,o,e.sampleRateHz),p=u.getChannelData(0),m=new DataView(i.buffer,i.byteOffset,i.byteLength);for(let e=0;e<o;e+=1)p[e]=m.getInt16(e*2,!0)/32768;let h=t.createBufferSource();h.buffer=u,h.connect(r);let g=l<=t.currentTime?t.currentTime+n:l,_=Math.max(t.currentTime,g);l=_+o/e.sampleRateHz;let v={node:h,generation:s,sequence:++c};a.add(v),h.addEventListener(`ended`,()=>{if(v.generation===s){if(a.delete(v),a.size===0){let t=e.now();d=t,f(v.generation,t);return}f(v.generation)}}),h.start(_)},attachMark(t){if(o.length>=256){p(),e.onOverflow?.();return}o.push({name:t,generation:s,barrier:c}),f(s)},clear:p,stop(){return u||=(p(),i?.remove(),t.close()),u},isPlaying(){return a.size>0},suspend(){if(!u)return t.suspend()},resume(){if(!u)return t.resume()},get lastPlaybackEndedAt(){return d}}}var Ce=4,we=500,Te=1e4;function H(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...e.subarray(r,r+n));return btoa(t)}function Ee(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}function De(e){let t=e.now??(()=>performance.now()),n=new Set,r=new Map,i=`idle`,a=null,o=null,s=null,c=null,l=0,u=0,d=null,f=null,p=null,m=null,h=null,g=null;function _(){e.onState({lifecycle:i,relaySessionId:a,provider:o,recording:s!==null&&(i===`active`||i===`interrupting`),playing:c?.isPlaying()??!1,droppedAudioFrames:l})}function v(e){i=e,_()}function y(t){let n=r.get(t);if(n)return n;let i;try{i=e.request(`talk.realtime.stop`,{relaySessionId:t}).catch(()=>void 0)}catch{i=Promise.resolve()}return r.set(t,i),i.finally(()=>{r.get(t)===i&&r.delete(t)}).catch(()=>void 0),i}function b(e){e&&e.catch(()=>void 0)}function x(){let e=p;p=null,m=null,!(!e||typeof document>`u`)&&document.removeEventListener(`visibilitychange`,e)}function S(){let e=h;e&&(h=null,clearTimeout(e.timer),e.reject(Error(`Relay readiness aborted`)))}function ee(e,t){return g?.relaySessionId===t&&g.generation===e?Promise.resolve():(S(),new Promise((n,r)=>{let i=setTimeout(()=>{h?.generation===e&&(h=null),n()},Te);h={relaySessionId:t,generation:e,resolve:()=>{clearTimeout(i),h=null,n()},reject:e=>{clearTimeout(i),h=null,r(e)},timer:i}}))}function te(e){if(typeof document>`u`||p!==null&&m===e)return;x();let t=()=>{if(u!==e)return;let t=s,n=c,r=a;if(!(!t&&!n)){if(document.hidden){try{b(t?.suspend())}catch{}b(n?.suspend?.());return}if(r!==null){try{b(t?.resume())}catch{}b(n?.resume?.())}}};p=t,m=e,document.addEventListener(`visibilitychange`,t)}function C(e,t){if(u!==e||a!==t)return;u+=1,S(),g=null,n.clear(),a=null,o=null,x();let r=w();v(`idle`),(async()=>{await r,await y(t)})()}function w(){let e=s,t=c;s=null,c=null;let n=[];if(e)try{n.push(e.stop())}catch{}if(t)try{n.push(t.stop())}catch{}return Promise.allSettled(n).then(()=>void 0)}function T(r,o,s){if(u!==o||a!==s||i!==`active`&&i!==`interrupting`)return;if(c!==null&&!c.isPlaying()){let e=c.lastPlaybackEndedAt;if(e!=null&&t()-e<we)return}if(n.size>=Ce){l+=1,_();return}let d;try{d=e.request(`talk.realtime.audio`,{relaySessionId:s,audioBase64:H(r),timestamp:t()})}catch{return}n.add(d);let f=()=>{u===o&&a===s&&n.delete(d)};d.then(f,f)}function E(t,n,r,i){if(!(u!==r||a!==i)){try{e.request(`talk.realtime.mark`,{relaySessionId:i,markName:t,timestamp:n}).catch(()=>void 0)}catch{}_()}}async function ne(n){let r;try{r=await e.request(`talk.realtime.session`,{transport:`gateway-relay`})}catch(e){if(u!==n)return;throw a=null,o=null,x(),v(`idle`),e}if(u!==n){await y(r.relaySessionId);return}a=r.relaySessionId,o=r.provider;try{let i={sampleRateHz:r.audio.outputSampleRateHz,onMarkPlayed:(e,t)=>E(e,t,n,r.relaySessionId),now:t,onOverflow:()=>C(n,r.relaySessionId)};c=e.playback(i);try{await c.resume?.()}catch{}if(u!==n)throw Error(`Talk start aborted: session superseded during playback resume`);if(s=e.capture({onPcm16:e=>T(e,n,r.relaySessionId)}),await ee(n,r.relaySessionId),u!==n)throw Error(`Talk start aborted: session superseded before capture start`);await s.start()}catch(e){let t=u===n;if(t&&(u+=1,S(),a=null,o=null,x()),await w(),await y(r.relaySessionId),t)throw v(`idle`),e;return}if(u!==n||a!==r.relaySessionId){await w(),await y(r.relaySessionId);return}if(typeof document<`u`&&document.hidden){try{b(s?.suspend())}catch{}b(c?.suspend?.())}v(`active`)}function re(){if(f)return f.then(()=>re());if(d)return d;if(a)return Promise.resolve();let e=++u;l=0,te(e),v(`starting`);let t=ne(e);return d=t,t.then(()=>{d===t&&(d=null)},()=>{d===t&&(d=null)}),t}function ie(){if(f)return f;let e=++u;S(),g=null;let t=a,r=d;n.clear(),a=null,o=null,x();let i=w();v(`stopping`);let s=(async()=>{await i,t&&await y(t),r&&await r.catch(()=>void 0),u===e&&v(`idle`)})();return f=s,s.then(()=>{f===s&&(f=null)},()=>{f===s&&(f=null)}),s}function ae(t){if(t.relaySessionId===a){switch(t.type){case`audio`:c?.enqueuePcm16(Ee(t.audioBase64)),i===`interrupting`?v(`active`):_();break;case`mark`:c?.attachMark(t.markName),_();break;case`clear`:case`vadBargeIn`:if(i===`interrupting`)break;c?.clear(),v(`interrupting`);break;case`ready`:g={relaySessionId:t.relaySessionId,generation:u},h?.relaySessionId===t.relaySessionId&&h.generation===u&&h.resolve(),i===`interrupting`&&v(`active`);break;case`transcript`:t.role===`assistant`&&i===`interrupting`&&v(`active`);break;case`close`:u+=1,S(),g=null,n.clear(),a=null,o=null,x(),w(),v(`idle`);break;default:break}e.onEvent(t)}}return{start:re,handleRelayEvent:ae,handleGatewayClose(){ie()},stop:ie}}async function U(e,t){if(!(!e.client||!e.connected)&&!e.channelsLoading){e.channelsLoading=!0,e.channelsError=null;try{e.channelsSnapshot=await e.client.request(`channels.status`,{probe:t,timeoutMs:8e3}),e.channelsLastSuccess=Date.now()}catch(t){e.channelsError=String(t)}finally{e.channelsLoading=!1}}}async function Oe(e,t){if(!(!e.client||!e.connected||e.whatsappBusy)){e.whatsappBusy=!0;try{let n=await e.client.request(`web.login.start`,{force:t,timeoutMs:3e4});e.whatsappLoginMessage=n.message??null,e.whatsappLoginQrDataUrl=n.qrDataUrl??null,e.whatsappLoginConnected=null}catch(t){e.whatsappLoginMessage=String(t),e.whatsappLoginQrDataUrl=null,e.whatsappLoginConnected=null}finally{e.whatsappBusy=!1}}}async function ke(e){if(!(!e.client||!e.connected||e.whatsappBusy)){e.whatsappBusy=!0;try{let t=await e.client.request(`web.login.wait`,{timeoutMs:12e4});e.whatsappLoginMessage=t.message??null,e.whatsappLoginConnected=t.connected??null,t.connected&&(e.whatsappLoginQrDataUrl=null)}catch(t){e.whatsappLoginMessage=String(t),e.whatsappLoginConnected=null}finally{e.whatsappBusy=!1}}}async function Ae(e){if(!(!e.client||!e.connected||e.whatsappBusy)){e.whatsappBusy=!0;try{await e.client.request(`channels.logout`,{channel:`whatsapp`}),e.whatsappLoginMessage=`Logged out.`,e.whatsappLoginQrDataUrl=null,e.whatsappLoginConnected=null}catch(t){e.whatsappLoginMessage=String(t)}finally{e.whatsappBusy=!1}}}var je=e(t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):n.JSON5=r()})(e,(function(){function e(e,t){return t={exports:{}},e(t,t.exports),t.exports}var t=e(function(e){var t=e.exports=typeof window<`u`&&window.Math==Math?window:typeof self<`u`&&self.Math==Math?self:Function(`return this`)();typeof __g==`number`&&(__g=t)}),n=e(function(e){var t=e.exports={version:`2.6.5`};typeof __e==`number`&&(__e=t)});n.version;var r=function(e){return typeof e==`object`?e!==null:typeof e==`function`},i=function(e){if(!r(e))throw TypeError(e+` is not an object!`);return e},a=function(e){try{return!!e()}catch{return!0}},o=!a(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7}),s=t.document,c=r(s)&&r(s.createElement),l=function(e){return c?s.createElement(e):{}},u=!o&&!a(function(){return Object.defineProperty(l(`div`),"a",{get:function(){return 7}}).a!=7}),d=function(e,t){if(!r(e))return e;var n,i;if(t&&typeof(n=e.toString)==`function`&&!r(i=n.call(e))||typeof(n=e.valueOf)==`function`&&!r(i=n.call(e))||!t&&typeof(n=e.toString)==`function`&&!r(i=n.call(e)))return i;throw TypeError(`Can't convert object to primitive value`)},f=Object.defineProperty,p={f:o?Object.defineProperty:function(e,t,n){if(i(e),t=d(t,!0),i(n),u)try{return f(e,t,n)}catch{}if(`get`in n||`set`in n)throw TypeError(`Accessors not supported!`);return`value`in n&&(e[t]=n.value),e}},m=function(e,t){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:t}},h=o?function(e,t,n){return p.f(e,t,m(1,n))}:function(e,t,n){return e[t]=n,e},g={}.hasOwnProperty,_=function(e,t){return g.call(e,t)},v=0,y=Math.random(),b=function(e){return`Symbol(${e===void 0?``:e})_${(++v+y).toString(36)}`},x=e(function(e){var r=`__core-js_shared__`,i=t[r]||(t[r]={});(e.exports=function(e,t){return i[e]||(i[e]=t===void 0?{}:t)})(`versions`,[]).push({version:n.version,mode:`global`,copyright:`© 2019 Denis Pushkarev (zloirock.ru)`})})(`native-function-to-string`,Function.toString),S=e(function(e){var r=b(`src`),i=`toString`,a=(``+x).split(i);n.inspectSource=function(e){return x.call(e)},(e.exports=function(e,n,i,o){var s=typeof i==`function`;s&&(_(i,`name`)||h(i,`name`,n)),e[n]!==i&&(s&&(_(i,r)||h(i,r,e[n]?``+e[n]:a.join(String(n)))),e===t?e[n]=i:o?e[n]?e[n]=i:h(e,n,i):(delete e[n],h(e,n,i)))})(Function.prototype,i,function(){return typeof this==`function`&&this[r]||x.call(this)})}),ee=function(e){if(typeof e!=`function`)throw TypeError(e+` is not a function!`);return e},te=function(e,t,n){if(ee(e),t===void 0)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},C=`prototype`,w=function(e,r,i){var a=e&w.F,o=e&w.G,s=e&w.S,c=e&w.P,l=e&w.B,u=o?t:s?t[r]||(t[r]={}):(t[r]||{})[C],d=o?n:n[r]||(n[r]={}),f=d[C]||(d[C]={}),p,m,g,_;for(p in o&&(i=r),i)m=!a&&u&&u[p]!==void 0,g=(m?u:i)[p],_=l&&m?te(g,t):c&&typeof g==`function`?te(Function.call,g):g,u&&S(u,p,g,e&w.U),d[p]!=g&&h(d,p,_),c&&f[p]!=g&&(f[p]=g)};t.core=n,w.F=1,w.G=2,w.S=4,w.P=8,w.B=16,w.W=32,w.U=64,w.R=128;var T=w,E=Math.ceil,ne=Math.floor,re=function(e){return isNaN(e=+e)?0:(e>0?ne:E)(e)},ie=function(e){if(e==null)throw TypeError(`Can't call method on `+e);return e},ae=function(e){return function(t,n){var r=String(ie(t)),i=re(n),a=r.length,o,s;return i<0||i>=a?e?``:void 0:(o=r.charCodeAt(i),o<55296||o>56319||i+1===a||(s=r.charCodeAt(i+1))<56320||s>57343?e?r.charAt(i):o:e?r.slice(i,i+2):(o-55296<<10)+(s-56320)+65536)}}(!1);T(T.P,`String`,{codePointAt:function(e){return ae(this,e)}}),n.String.codePointAt;var oe=Math.max,D=Math.min,se=function(e,t){return e=re(e),e<0?oe(e+t,0):D(e,t)},ce=String.fromCharCode,le=String.fromCodePoint;T(T.S+T.F*(!!le&&le.length!=1),`String`,{fromCodePoint:function(e){for(var t=arguments,n=[],r=arguments.length,i=0,a;r>i;){if(a=+t[i++],se(a,1114111)!==a)throw RangeError(a+` is not a valid code point`);n.push(a<65536?ce(a):ce(((a-=65536)>>10)+55296,a%1024+56320))}return n.join(``)}}),n.String.fromCodePoint;var O={Space_Separator:/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},k={isSpaceSeparator:function(e){return typeof e==`string`&&O.Space_Separator.test(e)},isIdStartChar:function(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`$`||e===`_`||O.ID_Start.test(e))},isIdContinueChar:function(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e>=`0`&&e<=`9`||e===`$`||e===`_`||e===`‌`||e===`‍`||O.ID_Continue.test(e))},isDigit:function(e){return typeof e==`string`&&/[0-9]/.test(e)},isHexDigit:function(e){return typeof e==`string`&&/[0-9A-Fa-f]/.test(e)}},ue,A,j,de,M,N,P,fe,pe,me=function(e,t){ue=String(e),A=`start`,j=[],de=0,M=1,N=0,P=void 0,fe=void 0,pe=void 0;do P=_e(),Ce[A]();while(P.type!==`eof`);return typeof t==`function`?F({"":pe},``,t):pe};function F(e,t,n){var r=e[t];if(typeof r==`object`&&r)if(Array.isArray(r))for(var i=0;i<r.length;i++){var a=String(i),o=F(r,a,n);o===void 0?delete r[a]:Object.defineProperty(r,a,{value:o,writable:!0,enumerable:!0,configurable:!0})}else for(var s in r){var c=F(r,s,n);c===void 0?delete r[s]:Object.defineProperty(r,s,{value:c,writable:!0,enumerable:!0,configurable:!0})}return n.call(e,t,r)}var I,L,he,ge,R;function _e(){for(I=`default`,L=``,he=!1,ge=1;;){R=z();var e=ve[I]();if(e)return e}}function z(){if(ue[de])return String.fromCodePoint(ue.codePointAt(de))}function B(){var e=z();return e===`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./view-agents-DNhyzEgf.js","./rolldown-runtime-QTnfLwEv.js","./view-channels-B0V1xJ85.js","./view-chat-DCakYJRB.js","./view-config-Dl4Y5JyC.js","./view-cron-BOjGaH8V.js","./view-observability-CnK2ipvG.js","./view-instances-Dk5bFtS9.js","./dreams-CFX8_iO7.js","./learning-XJj58fEK.js","./view-nodes-MWnX0cZW.js","./view-overview-CrvoKgpD.js","./view-sessions-DYbRtgme.js","./view-skills-C_6VXWZR.js","./talk-CdqHAcGz.js","./view-usage-IPN77Al1.js"])))=>i.map(i=>d[i]);
2
+ import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import{D as n,E as r,S as i,h as a,k as o,m as s,x as c}from"./view-agents-DNhyzEgf.js";import{a as l,c as u,i as d,o as f,s as p}from"./view-chat-DCakYJRB.js";import{A as m,C as h,D as g,E as _,F as v,I as y,M as b,N as x,O as S,P as ee,R as te,S as C,T as w,_ as T,a as E,b as ne,c as re,d as ie,f as ae,g as oe,h as D,i as se,j as ce,k as le,l as O,m as k,n as ue,o as A,p as j,r as de,s as M,u as N,v as P,w as fe,x as pe,y as me,z as F}from"./view-cron-BOjGaH8V.js";import{a as I,l as L,o as he}from"./view-channels-B0V1xJ85.js";import{a as ge,i as R,n as _e,o as z,r as B}from"./view-overview-CrvoKgpD.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var ve=``+new URL(`audio-capture-worklet-wGa4MpuL.js`,import.meta.url).href,V={audio:{channelCount:{ideal:1},echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}},ye=24e3,be=50;function xe(e){let t=e.targetSampleRateHz??ye,n=null,r=null,i=null,a=null,o=null,s=null,c=0,l=null;async function u(){c+=1,l=null;let e=n,t=r,u=i,d=a,f=o,p=s;if(n=null,r=null,i=null,a=null,o=null,s=null,d&&p){let e,t=new Promise(t=>{e=t}),n=t=>{t.data===`flushed`&&e()};d.port.addEventListener(`message`,n);try{d.port.postMessage?.(`stop`)}catch{}await Promise.race([t,new Promise(e=>{setTimeout(e,be)})]),d.port.removeEventListener(`message`,p),d.port.removeEventListener(`message`,n)}u?.disconnect(),d?.disconnect(),f?.disconnect();for(let t of e?.getTracks()??[])t.stop();await t?.close()}async function d(l){try{let u=await navigator.mediaDevices.getUserMedia(V);if(l!==c){for(let e of u.getTracks())e.stop();return}n=u;let d=new AudioContext;if(r=d,await d.audioWorklet.addModule(ve),l!==c)return;i=d.createMediaStreamSource(u),a=new AudioWorkletNode(d,`wednesdayai-audio-capture`,{processorOptions:{targetSampleRateHz:t}}),s=t=>{let n=t.data;n instanceof ArrayBuffer&&n.byteLength%2==0&&e.onPcm16(new Uint8Array(n))},a.port.addEventListener(`message`,s),a.port.start(),o=d.createGain(),o.gain.value=0,i.connect(a),a.connect(o),o.connect(d.destination)}catch(e){if(l!==c)return;throw await u(),e}}return{start(){if(l)return l;let e=d(++c);return l=e,e.catch(()=>{l===e&&(l=null)}),e},async suspend(){await r?.suspend()},async resume(){await r?.resume()},stop:u}}function Se(e){let t=new AudioContext,n=(e.preRollMs??0)/1e3,r=e.echoSafeSink?t.createMediaStreamDestination():t.destination,i=null;if(e.echoSafeSink){let e=r;i=document.createElement(`audio`),i.srcObject=e.stream,i.autoplay=!0,i.muted=!1,document.body.appendChild(i)}let a=new Set,o=[],s=0,c=0,l=0,u=null,d=null;function f(t,n){let r=[],i=[];for(let e of o){let n=!1;for(let t of a)if(t.generation===e.generation&&t.sequence<=e.barrier){n=!0;break}e.generation===t&&!n?r.push(e):i.push(e)}o=i;for(let t of r){if(t.generation!==s)break;e.onMarkPlayed(t.name,n??e.now())}}function p(){s+=1;let e=[...a];a.clear(),o=[],c=0,l=0;for(let t of e)t.node.stop()}return{enqueuePcm16(i){let o=Math.floor(i.byteLength/2),u=t.createBuffer(1,o,e.sampleRateHz),p=u.getChannelData(0),m=new DataView(i.buffer,i.byteOffset,i.byteLength);for(let e=0;e<o;e+=1)p[e]=m.getInt16(e*2,!0)/32768;let h=t.createBufferSource();h.buffer=u,h.connect(r);let g=l<=t.currentTime?t.currentTime+n:l,_=Math.max(t.currentTime,g);l=_+o/e.sampleRateHz;let v={node:h,generation:s,sequence:++c};a.add(v),h.addEventListener(`ended`,()=>{if(v.generation===s){if(a.delete(v),a.size===0){let t=e.now();d=t,f(v.generation,t);return}f(v.generation)}}),h.start(_)},attachMark(t){if(o.length>=256){p(),e.onOverflow?.();return}o.push({name:t,generation:s,barrier:c}),f(s)},clear:p,stop(){return u||=(p(),i?.remove(),t.close()),u},isPlaying(){return a.size>0},suspend(){if(!u)return t.suspend()},resume(){if(!u)return t.resume()},get lastPlaybackEndedAt(){return d}}}var Ce=4,we=500,Te=1e4;function H(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...e.subarray(r,r+n));return btoa(t)}function Ee(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}function De(e){let t=e.now??(()=>performance.now()),n=new Set,r=new Map,i=`idle`,a=null,o=null,s=null,c=null,l=0,u=0,d=null,f=null,p=null,m=null,h=null,g=null;function _(){e.onState({lifecycle:i,relaySessionId:a,provider:o,recording:s!==null&&(i===`active`||i===`interrupting`),playing:c?.isPlaying()??!1,droppedAudioFrames:l})}function v(e){i=e,_()}function y(t){let n=r.get(t);if(n)return n;let i;try{i=e.request(`talk.realtime.stop`,{relaySessionId:t}).catch(()=>void 0)}catch{i=Promise.resolve()}return r.set(t,i),i.finally(()=>{r.get(t)===i&&r.delete(t)}).catch(()=>void 0),i}function b(e){e&&e.catch(()=>void 0)}function x(){let e=p;p=null,m=null,!(!e||typeof document>`u`)&&document.removeEventListener(`visibilitychange`,e)}function S(){let e=h;e&&(h=null,clearTimeout(e.timer),e.reject(Error(`Relay readiness aborted`)))}function ee(e,t){return g?.relaySessionId===t&&g.generation===e?Promise.resolve():(S(),new Promise((n,r)=>{let i=setTimeout(()=>{h?.generation===e&&(h=null),n()},Te);h={relaySessionId:t,generation:e,resolve:()=>{clearTimeout(i),h=null,n()},reject:e=>{clearTimeout(i),h=null,r(e)},timer:i}}))}function te(e){if(typeof document>`u`||p!==null&&m===e)return;x();let t=()=>{if(u!==e)return;let t=s,n=c,r=a;if(!(!t&&!n)){if(document.hidden){try{b(t?.suspend())}catch{}b(n?.suspend?.());return}if(r!==null){try{b(t?.resume())}catch{}b(n?.resume?.())}}};p=t,m=e,document.addEventListener(`visibilitychange`,t)}function C(e,t){if(u!==e||a!==t)return;u+=1,S(),g=null,n.clear(),a=null,o=null,x();let r=w();v(`idle`),(async()=>{await r,await y(t)})()}function w(){let e=s,t=c;s=null,c=null;let n=[];if(e)try{n.push(e.stop())}catch{}if(t)try{n.push(t.stop())}catch{}return Promise.allSettled(n).then(()=>void 0)}function T(r,o,s){if(u!==o||a!==s||i!==`active`&&i!==`interrupting`)return;if(c!==null&&!c.isPlaying()){let e=c.lastPlaybackEndedAt;if(e!=null&&t()-e<we)return}if(n.size>=Ce){l+=1,_();return}let d;try{d=e.request(`talk.realtime.audio`,{relaySessionId:s,audioBase64:H(r),timestamp:t()})}catch{return}n.add(d);let f=()=>{u===o&&a===s&&n.delete(d)};d.then(f,f)}function E(t,n,r,i){if(!(u!==r||a!==i)){try{e.request(`talk.realtime.mark`,{relaySessionId:i,markName:t,timestamp:n}).catch(()=>void 0)}catch{}_()}}async function ne(n){let r;try{r=await e.request(`talk.realtime.session`,{transport:`gateway-relay`})}catch(e){if(u!==n)return;throw a=null,o=null,x(),v(`idle`),e}if(u!==n){await y(r.relaySessionId);return}a=r.relaySessionId,o=r.provider;try{let i={sampleRateHz:r.audio.outputSampleRateHz,onMarkPlayed:(e,t)=>E(e,t,n,r.relaySessionId),now:t,onOverflow:()=>C(n,r.relaySessionId)};c=e.playback(i);try{await c.resume?.()}catch{}if(u!==n)throw Error(`Talk start aborted: session superseded during playback resume`);if(s=e.capture({onPcm16:e=>T(e,n,r.relaySessionId)}),await ee(n,r.relaySessionId),u!==n)throw Error(`Talk start aborted: session superseded before capture start`);await s.start()}catch(e){let t=u===n;if(t&&(u+=1,S(),a=null,o=null,x()),await w(),await y(r.relaySessionId),t)throw v(`idle`),e;return}if(u!==n||a!==r.relaySessionId){await w(),await y(r.relaySessionId);return}if(typeof document<`u`&&document.hidden){try{b(s?.suspend())}catch{}b(c?.suspend?.())}v(`active`)}function re(){if(f)return f.then(()=>re());if(d)return d;if(a)return Promise.resolve();let e=++u;l=0,te(e),v(`starting`);let t=ne(e);return d=t,t.then(()=>{d===t&&(d=null)},()=>{d===t&&(d=null)}),t}function ie(){if(f)return f;let e=++u;S(),g=null;let t=a,r=d;n.clear(),a=null,o=null,x();let i=w();v(`stopping`);let s=(async()=>{await i,t&&await y(t),r&&await r.catch(()=>void 0),u===e&&v(`idle`)})();return f=s,s.then(()=>{f===s&&(f=null)},()=>{f===s&&(f=null)}),s}function ae(t){if(t.relaySessionId===a){switch(t.type){case`audio`:c?.enqueuePcm16(Ee(t.audioBase64)),i===`interrupting`?v(`active`):_();break;case`mark`:c?.attachMark(t.markName),_();break;case`clear`:case`vadBargeIn`:if(i===`interrupting`)break;c?.clear(),v(`interrupting`);break;case`ready`:g={relaySessionId:t.relaySessionId,generation:u},h?.relaySessionId===t.relaySessionId&&h.generation===u&&h.resolve(),i===`interrupting`&&v(`active`);break;case`transcript`:t.role===`assistant`&&i===`interrupting`&&v(`active`);break;case`close`:u+=1,S(),g=null,n.clear(),a=null,o=null,x(),w(),v(`idle`);break;default:break}e.onEvent(t)}}return{start:re,handleRelayEvent:ae,handleGatewayClose(){ie()},stop:ie}}async function U(e,t){if(!(!e.client||!e.connected)&&!e.channelsLoading){e.channelsLoading=!0,e.channelsError=null;try{e.channelsSnapshot=await e.client.request(`channels.status`,{probe:t,timeoutMs:8e3}),e.channelsLastSuccess=Date.now()}catch(t){e.channelsError=String(t)}finally{e.channelsLoading=!1}}}async function Oe(e,t){if(!(!e.client||!e.connected||e.whatsappBusy)){e.whatsappBusy=!0;try{let n=await e.client.request(`web.login.start`,{force:t,timeoutMs:3e4});e.whatsappLoginMessage=n.message??null,e.whatsappLoginQrDataUrl=n.qrDataUrl??null,e.whatsappLoginConnected=null}catch(t){e.whatsappLoginMessage=String(t),e.whatsappLoginQrDataUrl=null,e.whatsappLoginConnected=null}finally{e.whatsappBusy=!1}}}async function ke(e){if(!(!e.client||!e.connected||e.whatsappBusy)){e.whatsappBusy=!0;try{let t=await e.client.request(`web.login.wait`,{timeoutMs:12e4});e.whatsappLoginMessage=t.message??null,e.whatsappLoginConnected=t.connected??null,t.connected&&(e.whatsappLoginQrDataUrl=null)}catch(t){e.whatsappLoginMessage=String(t),e.whatsappLoginConnected=null}finally{e.whatsappBusy=!1}}}async function Ae(e){if(!(!e.client||!e.connected||e.whatsappBusy)){e.whatsappBusy=!0;try{await e.client.request(`channels.logout`,{channel:`whatsapp`}),e.whatsappLoginMessage=`Logged out.`,e.whatsappLoginQrDataUrl=null,e.whatsappLoginConnected=null}catch(t){e.whatsappLoginMessage=String(t)}finally{e.whatsappBusy=!1}}}var je=e(t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):n.JSON5=r()})(e,(function(){function e(e,t){return t={exports:{}},e(t,t.exports),t.exports}var t=e(function(e){var t=e.exports=typeof window<`u`&&window.Math==Math?window:typeof self<`u`&&self.Math==Math?self:Function(`return this`)();typeof __g==`number`&&(__g=t)}),n=e(function(e){var t=e.exports={version:`2.6.5`};typeof __e==`number`&&(__e=t)});n.version;var r=function(e){return typeof e==`object`?e!==null:typeof e==`function`},i=function(e){if(!r(e))throw TypeError(e+` is not an object!`);return e},a=function(e){try{return!!e()}catch{return!0}},o=!a(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7}),s=t.document,c=r(s)&&r(s.createElement),l=function(e){return c?s.createElement(e):{}},u=!o&&!a(function(){return Object.defineProperty(l(`div`),"a",{get:function(){return 7}}).a!=7}),d=function(e,t){if(!r(e))return e;var n,i;if(t&&typeof(n=e.toString)==`function`&&!r(i=n.call(e))||typeof(n=e.valueOf)==`function`&&!r(i=n.call(e))||!t&&typeof(n=e.toString)==`function`&&!r(i=n.call(e)))return i;throw TypeError(`Can't convert object to primitive value`)},f=Object.defineProperty,p={f:o?Object.defineProperty:function(e,t,n){if(i(e),t=d(t,!0),i(n),u)try{return f(e,t,n)}catch{}if(`get`in n||`set`in n)throw TypeError(`Accessors not supported!`);return`value`in n&&(e[t]=n.value),e}},m=function(e,t){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:t}},h=o?function(e,t,n){return p.f(e,t,m(1,n))}:function(e,t,n){return e[t]=n,e},g={}.hasOwnProperty,_=function(e,t){return g.call(e,t)},v=0,y=Math.random(),b=function(e){return`Symbol(${e===void 0?``:e})_${(++v+y).toString(36)}`},x=e(function(e){var r=`__core-js_shared__`,i=t[r]||(t[r]={});(e.exports=function(e,t){return i[e]||(i[e]=t===void 0?{}:t)})(`versions`,[]).push({version:n.version,mode:`global`,copyright:`© 2019 Denis Pushkarev (zloirock.ru)`})})(`native-function-to-string`,Function.toString),S=e(function(e){var r=b(`src`),i=`toString`,a=(``+x).split(i);n.inspectSource=function(e){return x.call(e)},(e.exports=function(e,n,i,o){var s=typeof i==`function`;s&&(_(i,`name`)||h(i,`name`,n)),e[n]!==i&&(s&&(_(i,r)||h(i,r,e[n]?``+e[n]:a.join(String(n)))),e===t?e[n]=i:o?e[n]?e[n]=i:h(e,n,i):(delete e[n],h(e,n,i)))})(Function.prototype,i,function(){return typeof this==`function`&&this[r]||x.call(this)})}),ee=function(e){if(typeof e!=`function`)throw TypeError(e+` is not a function!`);return e},te=function(e,t,n){if(ee(e),t===void 0)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},C=`prototype`,w=function(e,r,i){var a=e&w.F,o=e&w.G,s=e&w.S,c=e&w.P,l=e&w.B,u=o?t:s?t[r]||(t[r]={}):(t[r]||{})[C],d=o?n:n[r]||(n[r]={}),f=d[C]||(d[C]={}),p,m,g,_;for(p in o&&(i=r),i)m=!a&&u&&u[p]!==void 0,g=(m?u:i)[p],_=l&&m?te(g,t):c&&typeof g==`function`?te(Function.call,g):g,u&&S(u,p,g,e&w.U),d[p]!=g&&h(d,p,_),c&&f[p]!=g&&(f[p]=g)};t.core=n,w.F=1,w.G=2,w.S=4,w.P=8,w.B=16,w.W=32,w.U=64,w.R=128;var T=w,E=Math.ceil,ne=Math.floor,re=function(e){return isNaN(e=+e)?0:(e>0?ne:E)(e)},ie=function(e){if(e==null)throw TypeError(`Can't call method on `+e);return e},ae=function(e){return function(t,n){var r=String(ie(t)),i=re(n),a=r.length,o,s;return i<0||i>=a?e?``:void 0:(o=r.charCodeAt(i),o<55296||o>56319||i+1===a||(s=r.charCodeAt(i+1))<56320||s>57343?e?r.charAt(i):o:e?r.slice(i,i+2):(o-55296<<10)+(s-56320)+65536)}}(!1);T(T.P,`String`,{codePointAt:function(e){return ae(this,e)}}),n.String.codePointAt;var oe=Math.max,D=Math.min,se=function(e,t){return e=re(e),e<0?oe(e+t,0):D(e,t)},ce=String.fromCharCode,le=String.fromCodePoint;T(T.S+T.F*(!!le&&le.length!=1),`String`,{fromCodePoint:function(e){for(var t=arguments,n=[],r=arguments.length,i=0,a;r>i;){if(a=+t[i++],se(a,1114111)!==a)throw RangeError(a+` is not a valid code point`);n.push(a<65536?ce(a):ce(((a-=65536)>>10)+55296,a%1024+56320))}return n.join(``)}}),n.String.fromCodePoint;var O={Space_Separator:/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},k={isSpaceSeparator:function(e){return typeof e==`string`&&O.Space_Separator.test(e)},isIdStartChar:function(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`$`||e===`_`||O.ID_Start.test(e))},isIdContinueChar:function(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e>=`0`&&e<=`9`||e===`$`||e===`_`||e===`‌`||e===`‍`||O.ID_Continue.test(e))},isDigit:function(e){return typeof e==`string`&&/[0-9]/.test(e)},isHexDigit:function(e){return typeof e==`string`&&/[0-9A-Fa-f]/.test(e)}},ue,A,j,de,M,N,P,fe,pe,me=function(e,t){ue=String(e),A=`start`,j=[],de=0,M=1,N=0,P=void 0,fe=void 0,pe=void 0;do P=_e(),Ce[A]();while(P.type!==`eof`);return typeof t==`function`?F({"":pe},``,t):pe};function F(e,t,n){var r=e[t];if(typeof r==`object`&&r)if(Array.isArray(r))for(var i=0;i<r.length;i++){var a=String(i),o=F(r,a,n);o===void 0?delete r[a]:Object.defineProperty(r,a,{value:o,writable:!0,enumerable:!0,configurable:!0})}else for(var s in r){var c=F(r,s,n);c===void 0?delete r[s]:Object.defineProperty(r,s,{value:c,writable:!0,enumerable:!0,configurable:!0})}return n.call(e,t,r)}var I,L,he,ge,R;function _e(){for(I=`default`,L=``,he=!1,ge=1;;){R=z();var e=ve[I]();if(e)return e}}function z(){if(ue[de])return String.fromCodePoint(ue.codePointAt(de))}function B(){var e=z();return e===`
3
3
  `?(M++,N=0):e?N+=e.length:N++,e&&(de+=e.length),e}var ve={default:function(){switch(R){case` `:case`\v`:case`\f`:case` `:case`\xA0`:case``:case`
4
4
  `:case`\r`:case`\u2028`:case`\u2029`:B();return;case`/`:B(),I=`comment`;return;case void 0:return B(),V(`eof`)}if(k.isSpaceSeparator(R)){B();return}return ve[A]()},comment:function(){switch(R){case`*`:B(),I=`multiLineComment`;return;case`/`:B(),I=`singleLineComment`;return}throw H(B())},multiLineComment:function(){switch(R){case`*`:B(),I=`multiLineCommentAsterisk`;return;case void 0:throw H(B())}B()},multiLineCommentAsterisk:function(){switch(R){case`*`:B();return;case`/`:B(),I=`default`;return;case void 0:throw H(B())}B(),I=`multiLineComment`},singleLineComment:function(){switch(R){case`
5
5
  `:case`\r`:case`\u2028`:case`\u2029`:B(),I=`default`;return;case void 0:return B(),V(`eof`)}B()},value:function(){switch(R){case`{`:case`[`:return V(`punctuator`,B());case`n`:return B(),ye(`ull`),V(`null`,null);case`t`:return B(),ye(`rue`),V(`boolean`,!0);case`f`:return B(),ye(`alse`),V(`boolean`,!1);case`-`:case`+`:B()===`-`&&(ge=-1),I=`sign`;return;case`.`:L=B(),I=`decimalPointLeading`;return;case`0`:L=B(),I=`zero`;return;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:L=B(),I=`decimalInteger`;return;case`I`:return B(),ye(`nfinity`),V(`numeric`,1/0);case`N`:return B(),ye(`aN`),V(`numeric`,NaN);case`"`:case`'`:he=B()===`"`,L=``,I=`string`;return}throw H(B())},identifierNameStartEscape:function(){if(R!==`u`)throw H(B());B();var e=Se();switch(e){case`$`:case`_`:break;default:if(!k.isIdStartChar(e))throw De();break}L+=e,I=`identifierName`},identifierName:function(){switch(R){case`$`:case`_`:case`‌`:case`‍`:L+=B();return;case`\\`:B(),I=`identifierNameEscape`;return}if(k.isIdContinueChar(R)){L+=B();return}return V(`identifier`,L)},identifierNameEscape:function(){if(R!==`u`)throw H(B());B();var e=Se();switch(e){case`$`:case`_`:case`‌`:case`‍`:break;default:if(!k.isIdContinueChar(e))throw De();break}L+=e,I=`identifierName`},sign:function(){switch(R){case`.`:L=B(),I=`decimalPointLeading`;return;case`0`:L=B(),I=`zero`;return;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:L=B(),I=`decimalInteger`;return;case`I`:return B(),ye(`nfinity`),V(`numeric`,ge*(1/0));case`N`:return B(),ye(`aN`),V(`numeric`,NaN)}throw H(B())},zero:function(){switch(R){case`.`:L+=B(),I=`decimalPoint`;return;case`e`:case`E`:L+=B(),I=`decimalExponent`;return;case`x`:case`X`:L+=B(),I=`hexadecimal`;return}return V(`numeric`,ge*0)},decimalInteger:function(){switch(R){case`.`:L+=B(),I=`decimalPoint`;return;case`e`:case`E`:L+=B(),I=`decimalExponent`;return}if(k.isDigit(R)){L+=B();return}return V(`numeric`,ge*Number(L))},decimalPointLeading:function(){if(k.isDigit(R)){L+=B(),I=`decimalFraction`;return}throw H(B())},decimalPoint:function(){switch(R){case`e`:case`E`:L+=B(),I=`decimalExponent`;return}if(k.isDigit(R)){L+=B(),I=`decimalFraction`;return}return V(`numeric`,ge*Number(L))},decimalFraction:function(){switch(R){case`e`:case`E`:L+=B(),I=`decimalExponent`;return}if(k.isDigit(R)){L+=B();return}return V(`numeric`,ge*Number(L))},decimalExponent:function(){switch(R){case`+`:case`-`:L+=B(),I=`decimalExponentSign`;return}if(k.isDigit(R)){L+=B(),I=`decimalExponentInteger`;return}throw H(B())},decimalExponentSign:function(){if(k.isDigit(R)){L+=B(),I=`decimalExponentInteger`;return}throw H(B())},decimalExponentInteger:function(){if(k.isDigit(R)){L+=B();return}return V(`numeric`,ge*Number(L))},hexadecimal:function(){if(k.isHexDigit(R)){L+=B(),I=`hexadecimalInteger`;return}throw H(B())},hexadecimalInteger:function(){if(k.isHexDigit(R)){L+=B();return}return V(`numeric`,ge*Number(L))},string:function(){switch(R){case`\\`:B(),L+=be();return;case`"`:if(he)return B(),V(`string`,L);L+=B();return;case`'`:if(!he)return B(),V(`string`,L);L+=B();return;case`
@@ -14,7 +14,7 @@ import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import{D as n,E as r,S as i
14
14
  `+i+u+`,
15
15
  `+t+`]`}return r.pop(),i=t,c}}}}))}))(),1);function Me(e,t){let n=e.trim();if(n===``)return;let r=Number(n);return!Number.isFinite(r)||t&&!Number.isInteger(r)?e:r}function Ne(e){let t=e.trim();return t===`true`||t!==`false`&&e}function Pe(e,t){if(e==null)return e;if(t.allOf&&t.allOf.length>0){let n=e;for(let e of t.allOf)n=Pe(n,e);return n}let n=L(t);if(t.anyOf||t.oneOf){let n=(t.anyOf??t.oneOf??[]).filter(e=>!(e.type===`null`||Array.isArray(e.type)&&e.type.includes(`null`)));if(n.length===1)return Pe(e,n[0]);if(typeof e==`string`)for(let t of n){let n=L(t);if(n===`number`||n===`integer`){let t=Me(e,n===`integer`);if(t===void 0||typeof t==`number`)return t}if(n===`boolean`){let t=Ne(e);if(typeof t==`boolean`)return t}}for(let t of n){let n=L(t);if(n===`object`&&typeof e==`object`&&!Array.isArray(e)||n===`array`&&Array.isArray(e))return Pe(e,t)}return e}if(n===`number`||n===`integer`){if(typeof e==`string`){let t=Me(e,n===`integer`);if(t===void 0||typeof t==`number`)return t}return e}if(n===`boolean`){if(typeof e==`string`){let t=Ne(e);if(typeof t==`boolean`)return t}return e}if(n===`object`){if(typeof e!=`object`||Array.isArray(e))return e;let n=e,r=t.properties??{},i=t.additionalProperties&&typeof t.additionalProperties==`object`?t.additionalProperties:null,a={};for(let[e,t]of Object.entries(n)){let n=r[e]??i,o=n?Pe(t,n):t;o!==void 0&&(a[e]=o)}return a}if(n===`array`){if(!Array.isArray(e))return e;if(Array.isArray(t.items)){let n=t.items;return e.map((e,t)=>{let r=t<n.length?n[t]:void 0;return r?Pe(e,r):e})}let n=t.items;return n?e.map(e=>Pe(e,n)).filter(e=>e!==void 0):e}return e}function Fe(e){return typeof structuredClone==`function`?structuredClone(e):JSON.parse(JSON.stringify(e))}function Ie(e){return`${JSON.stringify(e,null,2).trimEnd()}\n`}function Le(e,t,n){if(t.length===0)return;let r=e;for(let e=0;e<t.length-1;e+=1){let n=t[e],i=t[e+1];if(typeof n==`number`){if(!Array.isArray(r))return;r[n]??(r[n]=typeof i==`number`?[]:{}),r=r[n]}else{if(typeof r!=`object`||!r)return;let e=r;e[n]??(e[n]=typeof i==`number`?[]:{}),r=e[n]}}let i=t[t.length-1];if(typeof i==`number`){Array.isArray(r)&&(r[i]=n);return}typeof r==`object`&&r&&(r[i]=n)}function Re(e,t){if(t.length===0)return;let n=e;for(let e=0;e<t.length-1;e+=1){let r=t[e];if(typeof r==`number`){if(!Array.isArray(n))return;n=n[r]}else{if(typeof n!=`object`||!n)return;n=n[r]}if(n==null)return}let r=t[t.length-1];if(typeof r==`number`){Array.isArray(n)&&n.splice(r,1);return}typeof n==`object`&&n&&delete n[r]}async function ze(e){if(!(!e.client||!e.connected)){e.configLoading=!0,e.lastError=null;try{He(e,await e.client.request(`config.get`,{}))}catch(t){e.lastError=String(t)}finally{e.configLoading=!1}}}async function Be(e){if(!(!e.client||!e.connected)&&!e.configSchemaLoading){e.configSchemaLoading=!0;try{Ve(e,await e.client.request(`config.schema`,{}))}catch(t){e.lastError=String(t)}finally{e.configSchemaLoading=!1}}}function Ve(e,t){e.configSchema=t.schema??null,e.configUiHints=t.uiHints??{},e.configSchemaVersion=t.version??null}function He(e,t){e.configSnapshot=t;let n=typeof t.raw==`string`?t.raw:t.config&&typeof t.config==`object`?Ie(t.config):e.configRaw;!e.configFormDirty||e.configFormMode===`raw`?e.configRaw=n:e.configForm?e.configRaw=Ie(e.configForm):e.configRaw=n,e.configValid=typeof t.valid==`boolean`?t.valid:null,e.configIssues=Array.isArray(t.issues)?t.issues:[],e.configFormDirty||(e.configForm=Fe(t.config??{}),e.configFormOriginal=Fe(t.config??{}),e.configRawOriginal=n)}function Ue(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function We(e){if(e.configFormMode!==`form`||!e.configForm)return e.configRaw;let t=Ue(e.configSchema);return Ie(t?Pe(e.configForm,t):e.configForm)}var Ge=`$include`;function Ke(e,t){let n=e.parsed;if(!n||typeof n!=`object`||Array.isArray(n)||!t||typeof t!=`object`||Array.isArray(t))return[];let r=new Set(Object.entries(t).filter(([,e])=>e!==void 0).map(([e])=>e));return Object.keys(n).filter(e=>e!==Ge&&!r.has(e))}function qe(e,t){if(e.configFormMode===`form`&&e.configForm){let t=Ue(e.configSchema);return t?Pe(e.configForm,t):e.configForm}try{return je.default.parse(t)}catch{return null}}function Je(e,t){let n=e.configSnapshot;return n?Ke({parsed:n.parsed!==void 0&&n.parsed!==null?n.parsed:n.config},qe(e,t)):[]}function Ye(e){return!!e&&typeof e==`object`&&e.requiresConfirmation===!0}function Xe(e){let t=typeof e==`number`&&Number.isFinite(e)?e:0,n=t===1?`1 active run`:`${t} active runs`;return window.confirm(`This operation needs a gateway restart, but ${n} will be interrupted. Continue?`)}async function Ze(e){if(!(!e.client||!e.connected)){e.configSaving=!0,e.lastError=null;try{let t=We(e),n=e.configSnapshot?.hash;if(!n){e.lastError=`Config hash missing; reload and retry.`;return}let r=Je(e,t);await e.client.request(`config.set`,{raw:t,baseHash:n,...r.length>0?{allowTopLevelKeyRemoval:r}:{}}),e.configFormDirty=!1,await ze(e)}catch(t){e.lastError=String(t)}finally{e.configSaving=!1}}}async function Qe(e){if(!(!e.client||!e.connected)){e.configApplying=!0,e.lastError=null;try{let t=We(e),n=e.configSnapshot?.hash;if(!n){e.lastError=`Config hash missing; reload and retry.`;return}let r=Je(e,t),i={raw:t,baseHash:n,sessionKey:e.applySessionKey,...r.length>0?{allowTopLevelKeyRemoval:r}:{}},a=await e.client.request(`config.apply`,i);if(Ye(a)){if(!Xe(a.activeRuns))return;await e.client.request(`config.apply`,{...i,confirmed:`drain`})}e.configFormDirty=!1,await ze(e)}catch(t){e.lastError=String(t)}finally{e.configApplying=!1}}}async function $e(e){if(!(!e.client||!e.connected)){e.updateRunning=!0,e.lastError=null;try{let t={sessionKey:e.applySessionKey},n=await e.client.request(`update.run`,t);if(Ye(n)){if(!Xe(n.activeRuns))return;await e.client.request(`update.run`,{...t,confirmed:`drain`})}}catch(t){e.lastError=String(t)}finally{e.updateRunning=!1}}}function W(e,t,n){let r=Fe(e.configForm??e.configSnapshot?.config??{});Le(r,t,n),e.configForm=r,e.configFormDirty=!0,e.configFormMode===`form`&&(e.configRaw=Ie(r))}function et(e,t){let n=Fe(e.configForm??e.configSnapshot?.config??{});Re(n,t),e.configForm=n,e.configFormDirty=!0,e.configFormMode===`form`&&(e.configRaw=Ie(n))}async function tt(e,t){await Oe(e,t),await U(e,!0)}async function nt(e){await ke(e),await U(e,!0)}async function rt(e){await Ae(e),await U(e,!0)}async function it(e){await Ze(e),await ze(e),await U(e,!0)}async function at(e){await ze(e),await U(e,!0)}function ot(e){if(!Array.isArray(e))return{};let t={};for(let n of e){if(typeof n!=`string`)continue;let[e,...r]=n.split(`:`);if(!e||r.length===0)continue;let i=e.trim(),a=r.join(`:`).trim();i&&a&&(t[i]=a)}return t}function st(e){return(e.channelsSnapshot?.channelAccounts?.nostr??[])[0]?.accountId??e.nostrProfileAccountId??`default`}function ct(e,t=``){return`/api/channels/nostr/${encodeURIComponent(e)}/profile${t}`}function lt(e){let t=e.hello?.auth?.deviceToken?.trim();if(t)return`Bearer ${t}`;let n=e.settings.token.trim();if(n)return`Bearer ${n}`;let r=e.password.trim();return r?`Bearer ${r}`:null}function ut(e){let t=lt(e);return t?{Authorization:t}:{}}function dt(e,t,n){e.nostrProfileAccountId=t,e.nostrProfileFormState=he(n??void 0)}function ft(e){e.nostrProfileFormState=null,e.nostrProfileAccountId=null}function pt(e,t,n){let r=e.nostrProfileFormState;r&&(e.nostrProfileFormState={...r,values:{...r.values,[t]:n},fieldErrors:{...r.fieldErrors,[t]:``}})}function mt(e){let t=e.nostrProfileFormState;t&&(e.nostrProfileFormState={...t,showAdvanced:!t.showAdvanced})}async function ht(e){let t=e.nostrProfileFormState;if(!t||t.saving)return;let n=st(e);e.nostrProfileFormState={...t,saving:!0,error:null,success:null,fieldErrors:{}};try{let r=await fetch(ct(n),{method:`PUT`,headers:{"Content-Type":`application/json`,...ut(e)},body:JSON.stringify(t.values)}),i=await r.json().catch(()=>null);if(!r.ok||i?.ok===!1||!i){let n=i?.error??`Profile update failed (${r.status})`;e.nostrProfileFormState={...t,saving:!1,error:n,success:null,fieldErrors:ot(i?.details)};return}if(!i.persisted){e.nostrProfileFormState={...t,saving:!1,error:`Profile publish failed on all relays.`,success:null};return}e.nostrProfileFormState={...t,saving:!1,error:null,success:`Profile published to relays.`,fieldErrors:{},original:{...t.values}},await U(e,!0)}catch(n){e.nostrProfileFormState={...t,saving:!1,error:`Profile update failed: ${String(n)}`,success:null}}}async function gt(e){let t=e.nostrProfileFormState;if(!t||t.importing)return;let n=st(e);e.nostrProfileFormState={...t,importing:!0,error:null,success:null};try{let r=await fetch(ct(n,`/import`),{method:`POST`,headers:{"Content-Type":`application/json`,...ut(e)},body:JSON.stringify({autoMerge:!0})}),i=await r.json().catch(()=>null);if(!r.ok||i?.ok===!1||!i){let n=i?.error??`Profile import failed (${r.status})`;e.nostrProfileFormState={...t,importing:!1,error:n,success:null};return}let a=i.merged??i.imported??null,o=a?{...t.values,...a}:t.values,s=!!(o.banner||o.website||o.nip05||o.lud16);e.nostrProfileFormState={...t,importing:!1,values:o,error:null,success:i.saved?`Profile imported from relays. Review and publish.`:`Profile imported. Review and publish.`,showAdvanced:s},i.saved&&await U(e,!0)}catch(n){e.nostrProfileFormState={...t,importing:!1,error:`Profile import failed: ${String(n)}`,success:null}}}function _t(e){let t=(e??``).trim().toLowerCase();if(!t)return null;let n=t.split(`:`).filter(Boolean);if(n.length<3||n[0]!==`agent`)return null;let r=n[1]?.trim(),i=n.slice(2).join(`:`);return!r||!i?null:{agentId:r,rest:i}}var vt=450;function yt(e,t=!1,n=!1){e.chatScrollFrame&&cancelAnimationFrame(e.chatScrollFrame),e.chatScrollTimeout!=null&&(clearTimeout(e.chatScrollTimeout),e.chatScrollTimeout=null);let r=()=>{let t=e.querySelector(`.chat-thread`);if(t){let e=getComputedStyle(t).overflowY;if(e===`auto`||e===`scroll`||t.scrollHeight-t.clientHeight>1)return t}return document.scrollingElement??document.documentElement};e.updateComplete.then(()=>{e.chatScrollFrame=requestAnimationFrame(()=>{e.chatScrollFrame=null;let i=r();if(!i)return;let a=i.scrollHeight-i.scrollTop-i.clientHeight,o=t&&!e.chatHasAutoScrolled;if(!(o||e.chatUserNearBottom||a<vt)){e.chatNewMessagesBelow=!0;return}o&&(e.chatHasAutoScrolled=!0);let s=n&&(typeof window>`u`||typeof window.matchMedia!=`function`||!window.matchMedia(`(prefers-reduced-motion: reduce)`).matches),c=i.scrollHeight;typeof i.scrollTo==`function`?i.scrollTo({top:c,behavior:s?`smooth`:`auto`}):i.scrollTop=c,e.chatUserNearBottom=!0,e.chatNewMessagesBelow=!1;let l=o?150:120;e.chatScrollTimeout=window.setTimeout(()=>{e.chatScrollTimeout=null;let t=r();if(!t)return;let n=t.scrollHeight-t.scrollTop-t.clientHeight;(o||e.chatUserNearBottom||n<vt)&&(t.scrollTop=t.scrollHeight,e.chatUserNearBottom=!0)},l)})})}function bt(e,t=!1){e.logsScrollFrame&&cancelAnimationFrame(e.logsScrollFrame),e.updateComplete.then(()=>{e.logsScrollFrame=requestAnimationFrame(()=>{e.logsScrollFrame=null;let n=e.querySelector(`.log-stream`);if(!n)return;let r=n.scrollHeight-n.scrollTop-n.clientHeight;(t||r<80)&&(n.scrollTop=n.scrollHeight)})})}function xt(e,t){let n=t.currentTarget;n&&(e.chatUserNearBottom=n.scrollHeight-n.scrollTop-n.clientHeight<vt,e.chatUserNearBottom&&(e.chatNewMessagesBelow=!1))}function St(e,t){let n=t.currentTarget;n&&(e.logsAtBottom=n.scrollHeight-n.scrollTop-n.clientHeight<80)}function Ct(e){e.chatHasAutoScrolled=!1,e.chatUserNearBottom=!0,e.chatNewMessagesBelow=!1}function wt(e,t){if(e.length===0)return;let n=new Blob([`${e.join(`
16
16
  `)}\n`],{type:`text/plain`}),r=URL.createObjectURL(n),i=document.createElement(`a`),a=new Date().toISOString().slice(0,19).replace(/[:T]/g,`-`);i.href=r,i.download=`openclaw-logs-${t}-${a}.log`,i.click(),URL.revokeObjectURL(r)}function Tt(e){if(typeof ResizeObserver>`u`)return;let t=e.querySelector(`.topbar`);if(!t)return;let n=()=>{let{height:n}=t.getBoundingClientRect();e.style.setProperty(`--topbar-height`,`${n}px`)};n(),e.topbarObserver=new ResizeObserver(()=>n()),e.topbarObserver.observe(t)}async function Et(e){if(!(!e.client||!e.connected)&&!e.debugLoading){e.debugLoading=!0;try{let[t,n,r,i]=await Promise.all([e.client.request(`status`,{}),e.client.request(`health`,{}),e.client.request(`models.list`,{}),e.client.request(`last-heartbeat`,{})]);e.debugStatus=t,e.debugHealth=n;let a=r;e.debugModels=Array.isArray(a?.models)?a?.models:[],e.debugHeartbeat=i}catch(t){e.debugCallError=String(t)}finally{e.debugLoading=!1}}}async function Dt(e){if(!(!e.client||!e.connected)){e.debugCallError=null,e.debugCallResult=null;try{let t=e.debugCallParams.trim()?JSON.parse(e.debugCallParams):{},n=await e.client.request(e.debugCallMethod.trim(),t);e.debugCallResult=JSON.stringify(n,null,2)}catch(t){e.debugCallError=String(t)}}}function Ot(e){let t=e.scopes.join(`,`),n=e.token??``;return[`v2`,e.deviceId,e.clientId,e.clientMode,e.role,t,String(e.signedAtMs),n,e.nonce].join(`|`)}var kt={WEBCHAT_UI:`webchat-ui`,CONTROL_UI:`openclaw-control-ui`,WEBCHAT:`webchat`,CLI:`cli`,GATEWAY_CLIENT:`gateway-client`,MACOS_APP:`openclaw-macos`,IOS_APP:`openclaw-ios`,ANDROID_APP:`openclaw-android`,NODE_HOST:`node-host`,EVEN_G2_NODE:`openclaw-even-g2-node`,WEDNESDAYAI_GLASS_NODE:`wednesdayai-glass-node`,MENTRA_NODE:`openclaw-mentra-node`,USER_CLIENT:`openclaw-user-client`,TEST:`test`,FINGERPRINT:`fingerprint`,PROBE:`openclaw-probe`},At=kt,jt={WEBCHAT:`webchat`,CLI:`cli`,UI:`ui`,BACKEND:`backend`,NODE:`node`,PROBE:`probe`,TEST:`test`};new Set(Object.values(kt)),new Set(Object.values(jt));function Mt(e){return e.trim()}function Nt(e){if(!Array.isArray(e))return[];let t=new Set;for(let n of e){let e=n.trim();e&&t.add(e)}return[...t].toSorted()}function Pt(e){let t=e.adapter.readStore();if(!t||t.deviceId!==e.deviceId)return null;let n=Mt(e.role),r=t.tokens[n];return!r||typeof r.token!=`string`?null:r}function Ft(e){let t=Mt(e.role),n=e.adapter.readStore(),r={version:1,deviceId:e.deviceId,tokens:n&&n.deviceId===e.deviceId&&n.tokens?{...n.tokens}:{}},i={token:e.token,role:t,scopes:Nt(e.scopes),updatedAtMs:Date.now()};return r.tokens[t]=i,e.adapter.writeStore(r),i}function It(e){let t=e.adapter.readStore();if(!t||t.deviceId!==e.deviceId)return;let n=Mt(e.role);if(!t.tokens[n])return;let r={version:1,deviceId:t.deviceId,tokens:{...t.tokens}};delete r.tokens[n],e.adapter.writeStore(r)}var Lt=`openclaw.device.auth.v1`;function Rt(){try{let e=window.localStorage.getItem(Lt);if(!e)return null;let t=JSON.parse(e);return!t||t.version!==1||!t.deviceId||typeof t.deviceId!=`string`||!t.tokens||typeof t.tokens!=`object`?null:t}catch{return null}}function zt(e){try{window.localStorage.setItem(Lt,JSON.stringify(e))}catch{}}function Bt(e){return Pt({adapter:{readStore:Rt,writeStore:zt},deviceId:e.deviceId,role:e.role})}function Vt(e){return Ft({adapter:{readStore:Rt,writeStore:zt},deviceId:e.deviceId,role:e.role,token:e.token,scopes:e.scopes})}function Ht(e){It({adapter:{readStore:Rt,writeStore:zt},deviceId:e.deviceId,role:e.role})}var Ut=Object.freeze({p:57896044618658097711785492504343953926634992332820282019728792003956564819949n,n:7237005577332262213973186563042994240857116359379907606001950938285454250989n,h:8n,a:57896044618658097711785492504343953926634992332820282019728792003956564819948n,d:37095705934669439343138083508754565189542113879843219016388785533085940283555n,Gx:15112221349535400772501151409588531511454012693041857206046113283949847762202n,Gy:46316835694926478169428394003475163141307993866256225615783033603165251855960n}),{p:Wt,n:Gt,Gx:Kt,Gy:qt,a:Jt,d:Yt,h:Xt}=Ut,Zt=32,Qt=(...e)=>{`captureStackTrace`in Error&&typeof Error.captureStackTrace==`function`&&Error.captureStackTrace(...e)},G=(e=``)=>{let t=Error(e);throw Qt(t,G),t},$t=e=>typeof e==`bigint`,en=e=>typeof e==`string`,tn=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1,nn=(e,t,n=``)=>{let r=tn(e),i=e?.length,a=t!==void 0;if(!r||a&&i!==t){let o=n&&`"${n}" `,s=a?` of length ${t}`:``,c=r?`length=${i}`:`type=${typeof e}`,l=o+`expected Uint8Array`+s+`, got `+c;throw r?RangeError(l):TypeError(l)}return e},rn=e=>new Uint8Array(e),an=e=>Uint8Array.from(e),on=(e,t)=>e.toString(16).padStart(t,`0`),sn=e=>Array.from(nn(e)).map(e=>on(e,2)).join(``),cn={_0:48,_9:57,A:65,F:70,a:97,f:102},ln=e=>{if(e>=cn._0&&e<=cn._9)return e-cn._0;if(e>=cn.A&&e<=cn.F)return e-(cn.A-10);if(e>=cn.a&&e<=cn.f)return e-(cn.a-10)},un=e=>{let t=`hex invalid`;if(!en(e))return G(t);let n=e.length,r=n/2;if(n%2)return G(t);let i=rn(r);for(let n=0,a=0;n<r;n++,a+=2){let r=ln(e.charCodeAt(a)),o=ln(e.charCodeAt(a+1));if(r===void 0||o===void 0)return G(t);i[n]=r*16+o}return i},dn=()=>globalThis?.crypto,fn=()=>dn()?.subtle??G(`crypto.subtle must be defined, consider polyfill`),pn=(...e)=>{let t=0;for(let n of e)t+=nn(n).length;let n=rn(t),r=0;return e.forEach(e=>{n.set(e,r),r+=e.length}),n},mn=(e=Zt)=>dn().getRandomValues(rn(e)),hn=BigInt,gn=(e,t,n,r=`bad number: out of range`)=>{if(!$t(e))throw TypeError(r);if(t<=e&&e<n)return e;throw RangeError(r)},K=(e,t=Wt)=>{let n=e%t;return n>=0n?n:t+n},_n=(1n<<255n)-1n,q=e=>{e<0n&&G(`negative coordinate`);let t=(e>>255n)*19n+(e&_n);return t=(t>>255n)*19n+(t&_n),t%Wt},vn=e=>K(e,Gt),yn=(e,t)=>{(e===0n||t<=0n)&&G(`no inverse n=`+e+` mod=`+t);let n=K(e,t),r=t,i=0n,a=1n,o=1n,s=0n;for(;n!==0n;){let e=r/n,t=r%n,c=i-o*e,l=a-s*e;r=n,n=t,i=o,a=s,o=c,s=l}return r===1n?K(i,t):G(`no inverse`)},bn=e=>{let t=Un[e];return typeof t!=`function`&&G(`hashes.`+e+` not set`),t},xn=e=>nn(e,64,`digest`),Sn=e=>e instanceof wn?e:G(`Point expected`),Cn=2n**256n,wn=class e{static BASE;static ZERO;X;Y;Z;T;constructor(e,t,n,r){let i=Cn;this.X=gn(e,0n,i),this.Y=gn(t,0n,i),this.Z=gn(n,1n,i),this.T=gn(r,0n,i),Object.freeze(this)}static CURVE(){return Ut}static fromAffine(t){return new e(t.x,t.y,1n,q(t.x*t.y))}static fromBytes(t,n=!1){let r=Yt,i=an(nn(t,Zt)),a=t[31];i[31]=a&-129;let o=On(i);gn(o,0n,n?Cn:Wt);let s=q(o*o),{isValid:c,value:l}=Mn(K(s-1n),q(r*s+1n));c||G(`bad point: y not sqrt`);let u=(l&1n)==1n,d=(a&128)!=0;return!n&&l===0n&&d&&G(`bad point: x==0, isLastByteOdd`),d!==u&&(l=K(-l)),new e(l,o,1n,q(l*o))}static fromHex(t,n){return e.fromBytes(un(t),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let e=Jt,t=Yt,n=this;if(n.is0())return G(`bad point: ZERO`);let{X:r,Y:i,Z:a,T:o}=n,s=q(r*r),c=q(i*i),l=q(a*a),u=q(l*l);return q(l*(q(s*e)+c))===K(u+q(t*q(s*c)))?q(r*i)===q(a*o)?this:G(`bad point: equation left != right (2)`):G(`bad point: equation left != right (1)`)}equals(e){let{X:t,Y:n,Z:r}=this,{X:i,Y:a,Z:o}=Sn(e),s=q(t*o),c=q(i*r),l=q(n*o),u=q(a*r);return s===c&&l===u}is0(){return this.equals(En)}negate(){return new e(K(-this.X),this.Y,this.Z,K(-this.T))}double(){let{X:t,Y:n,Z:r}=this,i=Jt,a=q(t*t),o=q(n*n),s=q(2n*r*r),c=q(i*a),l=K(t+n),u=K(q(l*l)-a-o),d=K(c+o),f=K(d-s),p=K(c-o),m=q(u*f),h=q(d*p),g=q(u*p),_=q(f*d);return new e(m,h,_,g)}add(t){let{X:n,Y:r,Z:i,T:a}=this,{X:o,Y:s,Z:c,T:l}=Sn(t),u=Jt,d=Yt,f=q(n*o),p=q(r*s),m=q(q(a*d)*l),h=q(i*c),g=K(q(K(n+r)*K(o+s))-f-p),_=K(h-m),v=K(h+m),y=K(p-q(u*f)),b=q(g*_),x=q(v*y),S=q(g*y),ee=q(_*v);return new e(b,x,ee,S)}subtract(e){return this.add(Sn(e).negate())}multiply(e,t=!0){if(!t&&e===0n||(gn(e,1n,Gt),!t&&this.is0()))return En;if(e===1n)return this;if(this.equals(Tn))return Zn(e).p;let n=En,r=Tn;for(let i=this;e>0n;i=i.double(),e>>=1n)e&1n?n=n.add(i):t&&(r=r.add(i));return n}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){let{X:e,Y:t,Z:n}=this;if(this.equals(En))return{x:0n,y:1n};let r=yn(n,Wt);return q(n*r)!==1n&&G(`invalid inverse`),{x:q(e*r),y:q(t*r)}}toBytes(){let{x:e,y:t}=this.toAffine(),n=Dn(t);return n[31]|=e&1n?128:0,n}toHex(){return sn(this.toBytes())}clearCofactor(){return this.multiply(hn(Xt),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let e=this.multiply(Gt/2n,!1).double();return Gt%2n&&(e=e.add(this)),e.is0()}},Tn=new wn(Kt,qt,1n,K(Kt*qt)),En=new wn(0n,1n,1n,0n);wn.BASE=Tn,wn.ZERO=En;var Dn=e=>un(on(gn(e,0n,Cn),64)).reverse(),On=e=>hn(`0x`+sn(an(nn(e)).reverse())),kn=(e,t)=>{let n=e;for(;t-->0n;)n=q(n*n);return n},An=e=>{let t=q(q(e*e)*e),n=q(kn(q(kn(t,2n)*t),1n)*e),r=q(kn(n,5n)*n),i=q(kn(r,10n)*r),a=q(kn(i,20n)*i),o=q(kn(a,40n)*a);return{pow_p_5_8:q(kn(q(kn(q(kn(q(kn(o,80n)*o),80n)*o),10n)*r),2n)*e),b2:t}},jn=19681161376707505956807079304988542015446066515923890162744021073123829784752n,Mn=(e,t)=>{let n=q(t*q(t*t)),r=An(q(e*q(q(n*n)*t))).pow_p_5_8,i=q(e*q(n*r)),a=q(t*q(i*i)),o=i,s=q(i*jn),c=a===e,l=a===K(-e),u=a===K(-e*jn);return c&&(i=o),(l||u)&&(i=s),(K(i)&1n)==1n&&(i=K(-i)),{isValid:c||l,value:i}},Nn=e=>vn(On(e)),Pn=(...e)=>Promise.resolve(bn(`sha512Async`)(pn(...e))).then(xn),Fn=(...e)=>xn(bn(`sha512`)(pn(...e))),In=e=>{let t=an(e),n=t.slice(0,32);n[0]&=248,n[31]&=127,n[31]|=64;let r=t.slice(32,64),i=Nn(n),a=Tn.multiply(i);return{head:n,prefix:r,scalar:i,point:a,pointBytes:a.toBytes()}},Ln=e=>Pn(nn(e,Zt)).then(In),Rn=e=>In(Fn(nn(e,Zt))),zn=e=>Ln(e).then(e=>e.pointBytes),Bn=e=>Pn(e.hashable).then(e.finish),Vn=(e,t,n)=>{let{pointBytes:r,scalar:i}=e,a=Nn(t),o=Tn.multiply(a).toBytes();return{hashable:pn(o,r,n),finish:e=>{let t=vn(a+Nn(e)*i);return nn(pn(o,Dn(t)),64)}}},Hn=async(e,t)=>{let n=nn(e),r=await Ln(t);return Bn(Vn(r,await Pn(r.prefix,n),n))},Un={sha512Async:async e=>{let t=fn(),n=pn(e);return rn(await t.digest(`SHA-512`,n.buffer))},sha512:void 0},Wn=Object.freeze({getExtendedPublicKeyAsync:Ln,getExtendedPublicKey:Rn,randomSecretKey:e=>(e=e===void 0?mn(Zt):e,nn(e,Zt))}),Gn=8,Kn=Math.ceil(256/Gn)+1,qn=2**(Gn-1),Jn=()=>{let e=[],t=Tn,n=t;for(let r=0;r<Kn;r++){n=t,e.push(n);for(let r=1;r<qn;r++)n=n.add(t),e.push(n);t=n.double()}return e},Yn=void 0,Xn=(e,t)=>{let n=t.negate();return e?n:t},Zn=e=>{let t=Yn||=Jn(),n=En,r=Tn,i=2**Gn,a=i,o=hn(i-1),s=hn(Gn);for(let i=0;i<Kn;i++){let c=Number(e&o);e>>=s,c>qn&&(c-=a,e+=1n);let l=i*qn,u=l,d=l+Math.abs(c)-1,f=i%2!=0,p=c<0;c===0?r=r.add(Xn(f,t[u])):n=n.add(Xn(p,t[d]))}return e!==0n&&G(`invalid wnaf`),{p:n,f:r}},Qn=`openclaw-device-identity-v1`;function $n(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replaceAll(`+`,`-`).replaceAll(`/`,`_`).replace(/=+$/g,``)}function er(e){let t=e.replaceAll(`-`,`+`).replaceAll(`_`,`/`),n=t+`=`.repeat((4-t.length%4)%4),r=atob(n),i=new Uint8Array(r.length);for(let e=0;e<r.length;e+=1)i[e]=r.charCodeAt(e);return i}function tr(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}async function nr(e){let t=await crypto.subtle.digest(`SHA-256`,e.slice().buffer);return tr(new Uint8Array(t))}async function rr(){let e=Wn.randomSecretKey(),t=await zn(e);return{deviceId:await nr(t),publicKey:$n(t),privateKey:$n(e)}}async function ir(){try{let e=localStorage.getItem(Qn);if(e){let t=JSON.parse(e);if(t?.version===1&&typeof t.deviceId==`string`&&typeof t.publicKey==`string`&&typeof t.privateKey==`string`){let e=await nr(er(t.publicKey));if(e!==t.deviceId){let n={...t,deviceId:e};return localStorage.setItem(Qn,JSON.stringify(n)),{deviceId:e,publicKey:t.publicKey,privateKey:t.privateKey}}return{deviceId:t.deviceId,publicKey:t.publicKey,privateKey:t.privateKey}}}}catch{}let e=await rr(),t={version:1,deviceId:e.deviceId,publicKey:e.publicKey,privateKey:e.privateKey,createdAtMs:Date.now()};return localStorage.setItem(Qn,JSON.stringify(t)),e}async function ar(e,t){let n=er(e);return $n(await Hn(new TextEncoder().encode(t),n))}var or=!1;function sr(e){e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function cr(){let e=new Uint8Array(16),t=Date.now();for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256);return e[0]^=t&255,e[1]^=t>>>8&255,e[2]^=t>>>16&255,e[3]^=t>>>24&255,e}function lr(){or||(or=!0,console.warn(`[uuid] crypto API missing; falling back to weak randomness`))}function ur(e=globalThis.crypto){if(e&&typeof e.randomUUID==`function`)return e.randomUUID();if(e&&typeof e.getRandomValues==`function`){let t=new Uint8Array(16);return e.getRandomValues(t),sr(t)}return lr(),sr(cr())}var dr=class extends Error{constructor(e){super(e.message),this.name=`GatewayRequestError`,this.gatewayCode=e.code,this.details=e.details}};function fr(e){return z(e?.details)}var pr=4008,mr=class{constructor(e){this.opts=e,this.ws=null,this.pending=new Map,this.closed=!1,this.lastSeq=null,this.connectNonce=null,this.connectSent=!1,this.connectTimer=null,this.backoffMs=800}start(){this.closed=!1,this.connect()}stop(){this.closed=!0,this.ws?.close(),this.ws=null,this.pendingConnectError=void 0,this.flushPending(Error(`gateway client stopped`))}get connected(){return this.ws?.readyState===WebSocket.OPEN}connect(){this.closed||(this.ws=new WebSocket(this.opts.url),this.ws.addEventListener(`open`,()=>this.queueConnect()),this.ws.addEventListener(`message`,e=>this.handleMessage(String(e.data??``))),this.ws.addEventListener(`close`,e=>{let t=String(e.reason??``),n=this.pendingConnectError;this.pendingConnectError=void 0,this.ws=null,this.flushPending(Error(`gateway closed (${e.code}): ${t}`)),this.opts.onClose?.({code:e.code,reason:t,error:n}),this.scheduleReconnect()}),this.ws.addEventListener(`error`,()=>{}))}scheduleReconnect(){if(this.closed)return;let e=this.backoffMs;this.backoffMs=Math.min(this.backoffMs*1.7,15e3),window.setTimeout(()=>this.connect(),e)}flushPending(e){for(let[,t]of this.pending)t.reject(e);this.pending.clear()}async sendConnect(){if(this.connectSent)return;this.connectSent=!0,this.connectTimer!==null&&(window.clearTimeout(this.connectTimer),this.connectTimer=null);let e=typeof crypto<`u`&&!!crypto.subtle,t=[`operator.admin`,`operator.approvals`,`operator.pairing`],n=`operator`,r=null,i=!1,a=this.opts.token;if(e){r=await ir();let e=Bt({deviceId:r.deviceId,role:n})?.token;a=e??this.opts.token,i=!!(e&&this.opts.token)}let o=a||this.opts.password?{token:a,password:this.opts.password}:void 0,s;if(e&&r){let e=Date.now(),i=this.connectNonce??``,o=Ot({deviceId:r.deviceId,clientId:this.opts.clientName??At.CONTROL_UI,clientMode:this.opts.mode??jt.WEBCHAT,role:n,scopes:t,signedAtMs:e,token:a??null,nonce:i}),c=await ar(r.privateKey,o);s={id:r.deviceId,publicKey:r.publicKey,signature:c,signedAt:e,nonce:i}}let c={minProtocol:3,maxProtocol:3,client:{id:this.opts.clientName??At.CONTROL_UI,version:this.opts.clientVersion??`dev`,platform:this.opts.platform??navigator.platform??`web`,mode:this.opts.mode??jt.WEBCHAT,instanceId:this.opts.instanceId},role:n,scopes:t,device:s,caps:[],auth:o,userAgent:navigator.userAgent,locale:navigator.language};this.request(`connect`,c).then(e=>{e?.auth?.deviceToken&&r&&Vt({deviceId:r.deviceId,role:e.auth.role??n,token:e.auth.deviceToken,scopes:e.auth.scopes??[]}),this.backoffMs=800,this.opts.onHello?.(e)}).catch(e=>{e instanceof dr?this.pendingConnectError={code:e.gatewayCode,message:e.message,details:e.details}:this.pendingConnectError=void 0,i&&r&&Ht({deviceId:r.deviceId,role:n}),this.ws?.close(pr,`connect failed`)})}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}let n=t;if(n.type===`event`){let e=t;if(e.event===`connect.challenge`){let t=e.payload,n=t&&typeof t.nonce==`string`?t.nonce:null;n&&(this.connectNonce=n,this.sendConnect());return}let n=typeof e.seq==`number`?e.seq:null;n!==null&&(this.lastSeq!==null&&n>this.lastSeq+1&&this.opts.onGap?.({expected:this.lastSeq+1,received:n}),this.lastSeq=n);try{this.opts.onEvent?.(e)}catch(e){console.error(`[gateway] event handler error:`,e)}return}if(n.type===`res`){let e=t,n=this.pending.get(e.id);if(!n)return;this.pending.delete(e.id),e.ok?n.resolve(e.payload):n.reject(new dr({code:e.error?.code??`UNAVAILABLE`,message:e.error?.message??`request failed`,details:e.error?.details}));return}}request(e,t){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return Promise.reject(Error(`gateway not connected`));let n=ur(),r={type:`req`,id:n,method:e,params:t},i=new Promise((e,t)=>{this.pending.set(n,{resolve:t=>e(t),reject:t})});return this.ws.send(JSON.stringify(r)),i}queueConnect(){this.connectNonce=null,this.connectSent=!1,this.connectTimer!==null&&window.clearTimeout(this.connectTimer),this.connectTimer=window.setTimeout(()=>{this.sendConnect()},750)}};function hr(){return{runs:{status:`idle`,error:null,runsAvailable:!1,runsError:null,runs:[],budgetWindow:null,eventsStatus:`idle`,eventsError:null,events:{},truncated:{},retentionDays:null,loadedAt:null},dream:{status:`idle`,error:null,result:null,weightsStatus:`idle`,weightsError:null,weights:[],weightsTruncated:!1,candidatesStatus:`idle`,candidatesError:null,candidates:[],candidatesTruncated:!1},health:{overviewStatus:`idle`,overviewError:null,overview:null,runsStatus:`idle`,runsError:null,quality:[],unclassifiedRecovered:0,preemption:{preempted:0,total:0,shutdownExcluded:0},distillStatus:`idle`,distillError:null,authoring:null},selectedRunId:null}}var gr=1e3,_r=5e3,vr=3e4,yr=`learning-core.produce`,br=`learning-core.consolidation`,xr=`learning-core.distill`;function Sr(e,t){let n=e?.features?.methods;return!Array.isArray(n)||n.includes(t)}function Cr(e){return e instanceof dr?{code:e.gatewayCode,message:e.message}:{code:null,message:e instanceof Error?e.message:String(e)}}function wr(e,t){e.dreams={...e.dreams,...t}}function Tr(e,t){wr(e,{runs:{...e.dreams.runs,...t}})}function Er(e,t){wr(e,{dream:{...e.dreams.dream,...t}})}function J(e,t){wr(e,{health:{...e.dreams.health,...t}})}async function Dr(e,t){return e.request(`tasks.status`,t)}async function Or(e,t){let n=[...new Set(t)],r=[];for(let e=0;e<n.length;e+=50)r.push(n.slice(e,e+50));let i=await Promise.all(r.map(t=>e.request(`tasks.runEvents`,{taskRunIds:t}))),a=Object.create(null),o=Object.create(null),s=null;for(let e of i){s??=typeof e.retentionDays==`number`?e.retentionDays:null;for(let t of Object.keys(e.events??{}))a[t]=e.events[t]??[];for(let t of Object.keys(e.truncated??{})){let n=e.truncated?.[t];n&&(o[t]=n)}}return{events:a,truncated:o,retentionDays:s}}function kr(e){let t=null;for(let n of e??[])n.kind===`metrics`&&(t=n);return t}function Ar(e){return(e??[]).filter(e=>e.kind===`phase`).toSorted((e,t)=>e.offsetMs-t.offsetMs||e.ordinal-t.ordinal)}function jr(e){return(e??[]).filter(e=>e.kind===`outcome`)}function Mr(e){return e.startedAt??e.completedAt??e.updatedAt}var Nr=new Set([`completed`,`failed`,`dlq`,`preempted`,`preempted_ceiling`,`rolled_back`,`cancelled`]);function Pr(e,t,n,r=Date.now(),i=!1){if(t===void 0)return`not_loaded`;let a=kr(t);if(a)return a.measurementState===`unavailable`?`unavailable`:`complete`;if(t.length===0&&n!==null){let t=Date.parse(e.completedAt??e.updatedAt);if(Number.isFinite(t)&&r-t>n*864e5)return`pruned`}return jr(t).some(e=>e.denial)?`denied`:!Nr.has(e.status)&&e.status!==`deferred`?`in_progress`:i?`truncated`:`missing`}function Fr(e,t){return e.mode===`dry_run`||kr(t)?.mode===`dry_run`}function Ir(e,t,n){return Pr(e,t,n)===`pruned`}function Lr(e){let t=null;for(let n of jr(e))n.preemption?.reason&&(t=n.preemption.reason);return t}function Rr(e,t,n){let r=[...e,...t].toSorted((e,t)=>Mr(t).localeCompare(Mr(e))),i=[],a=0;for(let e of r){let t=n[e.taskRunId];if(Fr(e,t))continue;if(e.taskId===br){i.push({run:e,events:t});continue}let r=kr(t);if(!r){Nr.has(e.status)&&(a+=1);continue}r.items?.producer===`consolidation`&&i.push({run:e,events:t})}return{runs:i,unclassifiedRecovered:a}}function zr(e){let t=[];for(let{run:n,events:r}of e){let e=kr(r)?.qualityScore;typeof e==`number`&&Number.isFinite(e)&&t.push({taskRunId:n.taskRunId,taskId:n.taskId,at:Mr(n),qualityScore:e})}return t.toSorted((e,t)=>e.at.localeCompare(t.at))}function Br(e){let t=0,n=0;for(let{run:r,events:i}of e){if(r.status===`preempted_ceiling`){t+=1;continue}if(r.status===`preempted`){if(Lr(i)===`shutdown`){n+=1;continue}t+=1}}return{preempted:t,total:e.length,shutdownExcluded:n}}function Vr(e,t,n){let r=e.toSorted((e,t)=>Mr(t).localeCompare(Mr(e)));for(let e of r){let r=t[e.taskRunId];if(Fr(e,r)||e.status===`deferred`||Ir(e,r,n)||jr(r).some(e=>e.denial))continue;let i=kr(r)?.authoring;if(i)return{taskRunId:e.taskRunId,at:Mr(e),authoring:i}}return null}function Y(e,t){return e.dreamsGeneration===t&&e.connected}async function Hr(e,t){let n=e.client;if(!n)return;if(!Sr(e.hello,`tasks.status`)){Tr(e,{status:`disabled`,error:null,runs:[],budgetWindow:null});return}Tr(e,{status:e.dreams.runs.status===`ok`?`ok`:`loading`});let r;try{r=await Dr(n,{limit:50})}catch(n){Y(e,t)&&Tr(e,{status:`degraded`,error:Cr(n)});return}if(!Y(e,t))return;let i=Array.isArray(r.runs)?r.runs:[],a={status:`ok`,error:null,runsAvailable:r.runsAvailable===!0,runsError:r.runsError??null,runs:i,budgetWindow:r.budgetWindow??null,loadedAt:Date.now()};if(!Sr(e.hello,`tasks.runEvents`)){Tr(e,{...a,eventsStatus:`disabled`,events:{},truncated:{},eventsError:null});return}if(i.length===0){Tr(e,{...a,eventsStatus:`ok`,events:{},truncated:{},eventsError:null});return}try{let{events:r,truncated:o,retentionDays:s}=await Or(n,i.map(e=>e.taskRunId));Y(e,t)&&Tr(e,{...a,eventsStatus:`ok`,eventsError:null,events:r,truncated:o,retentionDays:s})}catch(n){Y(e,t)&&Tr(e,{...a,eventsStatus:`degraded`,eventsError:Cr(n),events:{},truncated:{}})}}async function Ur(e,t,n,r,i,a){let o=e.client;if(o){if(!Sr(e.hello,n)){a(`disabled`,null);return}try{let a=await o.request(n,r);Y(e,t)&&i(a)}catch(n){Y(e,t)&&a(`degraded`,Cr(n))}}}async function Wr(e,t){e.dreams.dream.status===`idle`&&Er(e,{status:`loading`}),await Promise.all([Ur(e,t,`dream.status`,{},t=>Er(e,{status:`ok`,error:null,result:t}),(t,n)=>Er(e,{status:t,error:n,result:null})),Ur(e,t,`dream.weights`,{},t=>Er(e,{weightsStatus:`ok`,weightsError:null,weights:Array.isArray(t.weights)?t.weights:[],weightsTruncated:t.truncated===!0}),(t,n)=>Er(e,{weightsStatus:t,weightsError:n,weights:[]})),Ur(e,t,`dream.candidates`,{limit:20},t=>Er(e,{candidatesStatus:`ok`,candidatesError:null,candidates:Array.isArray(t.candidates)?t.candidates:[],candidatesTruncated:t.truncated===!0}),(t,n)=>Er(e,{candidatesStatus:t,candidatesError:n,candidates:[]}))])}async function Gr(e,t){let n=e.client;if(n){if(!Sr(e.hello,`tasks.status`)){J(e,{runsStatus:`disabled`,runsError:null,quality:[]});return}try{let[r,i]=await Promise.all([Dr(n,{taskId:yr,limit:50}),Dr(n,{taskId:br,limit:50})]);if(r.runsAvailable===!1||i.runsAvailable===!1){Y(e,t)&&J(e,{runsStatus:`degraded`,runsError:{code:null,message:r.runsError??i.runsError??`runs store unavailable`}});return}let a=r.runs??[],o=i.runs??[],s=[...a,...o].map(e=>e.taskRunId);if(s.length>0&&!Sr(e.hello,`tasks.runEvents`)){Y(e,t)&&J(e,{runsStatus:`degraded`,runsError:{code:null,message:`tasks.runEvents not available`}});return}let{events:c}=s.length>0?await Or(n,s):{events:{}};if(!Y(e,t))return;let l=Rr(a,o,c);J(e,{runsStatus:`ok`,runsError:null,quality:zr(l.runs),unclassifiedRecovered:l.unclassifiedRecovered,preemption:Br(l.runs)})}catch(n){Y(e,t)&&J(e,{runsStatus:`degraded`,runsError:Cr(n)})}}}async function Kr(e,t){let n=e.client;if(n){if(!Sr(e.hello,`tasks.status`)){J(e,{distillStatus:`disabled`,distillError:null,authoring:null});return}try{let r=await Dr(n,{taskId:xr,status:`completed`,limit:20});if(r.runsAvailable===!1){Y(e,t)&&J(e,{distillStatus:`degraded`,distillError:{code:null,message:r.runsError??`runs store unavailable`}});return}let i=r.runs??[];if(i.length>0&&!Sr(e.hello,`tasks.runEvents`)){Y(e,t)&&J(e,{distillStatus:`degraded`,distillError:{code:null,message:`tasks.runEvents not available`}});return}let{events:a,retentionDays:o}=i.length>0?await Or(n,i.map(e=>e.taskRunId)):{events:{},retentionDays:null};Y(e,t)&&J(e,{distillStatus:`ok`,distillError:null,authoring:Vr(i,a,o)})}catch(n){Y(e,t)&&J(e,{distillStatus:`degraded`,distillError:Cr(n)})}}}async function qr(e,t){let n=e.client;if(n){if(!Sr(e.hello,`learning.overview`)){J(e,{overviewStatus:`disabled`,overviewError:null,overview:null});return}try{let r=await n.request(`learning.overview`,{});Y(e,t)&&J(e,{overviewStatus:`ok`,overviewError:null,overview:r})}catch(n){Y(e,t)&&J(e,{overviewStatus:`degraded`,overviewError:Cr(n)})}}}async function Jr(e){if(!e.client||!e.connected)return;e.dreamsDirty=!1,e.dreamsGeneration+=1;let t=e.dreamsGeneration;await Promise.all([Hr(e,t),Wr(e,t),qr(e,t),Gr(e,t),Kr(e,t)])}function Yr(e){return e.tab===`dreams`?typeof document>`u`||document.visibilityState!==`hidden`:!1}function Xr(e){e.dreamsTrailingTimer!=null&&clearTimeout(e.dreamsTrailingTimer),e.dreamsTrailingTimer=null,e.dreamsTrailingPending=!1,e.dreamsBurstStartedAt=null}function Zr(e,t=Date.now()){if(!Yr(e)||!e.connected){e.dreamsDirty=!0;return}e.dreamsTrailingTimer==null?(e.dreamsBurstStartedAt=t,e.dreamsTrailingPending=!1,Jr(e)):(e.dreamsTrailingPending=!0,clearTimeout(e.dreamsTrailingTimer));let n=t-(e.dreamsBurstStartedAt??t),r=Math.max(0,Math.min(gr,_r-n));e.dreamsTrailingTimer=window.setTimeout(()=>{let t=e.dreamsTrailingPending;Xr(e),t&&(Yr(e)&&e.connected?Jr(e):e.dreamsDirty=!0)},r)}function Qr(e){e.dreamsPollInterval??=window.setInterval(()=>{!Yr(e)||!e.connected||Jr(e)},vr)}function $r(e){e.dreamsPollInterval!=null&&clearInterval(e.dreamsPollInterval),e.dreamsPollInterval=null,Xr(e),e.dreamsGeneration+=1}function ei(e){e.dreamsDirty&&Yr(e)&&e.connected&&Jr(e)}var ti=new Set([`trace`,`debug`,`info`,`warn`,`error`,`fatal`]);function ni(e){if(typeof e!=`string`)return null;let t=e.trim();if(!t.startsWith(`{`)||!t.endsWith(`}`))return null;try{let e=JSON.parse(t);return!e||typeof e!=`object`?null:e}catch{return null}}function ri(e){if(typeof e!=`string`)return null;let t=e.toLowerCase();return ti.has(t)?t:null}function ii(e){if(!e.trim())return{raw:e,message:e};try{let t=JSON.parse(e),n=t&&typeof t._meta==`object`&&t._meta!==null?t._meta:null,r=typeof t.time==`string`?t.time:typeof n?.date==`string`?n?.date:null,i=ri(n?.logLevelName??n?.level),a=typeof t[0]==`string`?t[0]:typeof n?.name==`string`?n?.name:null,o=ni(a),s=null;o&&(typeof o.subsystem==`string`?s=o.subsystem:typeof o.module==`string`&&(s=o.module)),!s&&a&&a.length<120&&(s=a);let c=null;return typeof t[1]==`string`?c=t[1]:!o&&typeof t[0]==`string`?c=t[0]:typeof t.message==`string`&&(c=t.message),{raw:e,time:r,level:i,subsystem:s,message:c??e,meta:n??void 0}}catch{return{raw:e,message:e}}}async function ai(e,t){if(!(!e.client||!e.connected)&&!(e.logsLoading&&!t?.quiet)){t?.quiet||(e.logsLoading=!0),e.logsError=null;try{let n=await e.client.request(`logs.tail`,{cursor:t?.reset?void 0:e.logsCursor??void 0,limit:e.logsLimit,maxBytes:e.logsMaxBytes}),r=(Array.isArray(n.lines)?n.lines.filter(e=>typeof e==`string`):[]).map(ii);e.logsEntries=t?.reset||n.reset||e.logsCursor==null?r:[...e.logsEntries,...r].slice(-2e3),typeof n.cursor==`number`&&(e.logsCursor=n.cursor),typeof n.file==`string`&&(e.logsFile=n.file),e.logsTruncated=!!n.truncated,e.logsLastFetchAt=Date.now()}catch(t){e.logsError=String(t)}finally{t?.quiet||(e.logsLoading=!1)}}}async function oi(e,t){if(!(!e.client||!e.connected)&&!e.nodesLoading){e.nodesLoading=!0,t?.quiet||(e.lastError=null);try{let t=await e.client.request(`node.list`,{});e.nodes=Array.isArray(t.nodes)?t.nodes:[]}catch(n){t?.quiet||(e.lastError=String(n))}finally{e.nodesLoading=!1}}}async function si(e,t){if(!(!e.client||!e.connected)&&!e.sessionsLoading){e.sessionsLoading=!0,e.sessionsError=null;try{let n=t?.includeGlobal??e.sessionsIncludeGlobal,r=t?.includeUnknown??e.sessionsIncludeUnknown,i=t?.activeMinutes??c(e.sessionsFilterActive,0),a=t?.limit??c(e.sessionsFilterLimit,0),o={includeGlobal:n,includeUnknown:r};i>0&&(o.activeMinutes=i),a>0&&(o.limit=a);let s=await e.client.request(`sessions.list`,o);s&&(e.sessionsResult=s)}catch(t){e.sessionsError=String(t)}finally{e.sessionsLoading=!1}}}async function ci(e){if(!e.client||!e.connected||e.sessionRunsLoading)return;e.sessionRunsLoading=!0;let t=e.sessionRunsPrevKeys,n=e.sessionRunsFetchedAt;try{let r=await e.client.request(`sessions.runs`,{});if(e.sessionRunsError=null,r){let i=Date.now();e.recentlyCompletedRuns=bi(t,r.runs,e.recentlyCompletedRuns,i),e.sessionRunsFetchedAt<=n&&(e.sessionRunsFetchedAt=i,e.sessionRunsPrevKeys=new Set(r.runs.map(e=>e.key)),e.sessionRunsResult=r)}}catch(t){e.sessionRunsError=String(t)}finally{e.sessionRunsLoading=!1}}async function li(e){if(!(!e.client||!e.connected)&&!e.sessionsThresholdsLoading){e.sessionsThresholdsLoading=!0;try{let t=await e.client.request(`sessions.thresholds`,{});e.sessionsThresholdsError=null,t&&(e.sessionsThresholdsResult=t)}catch(t){e.sessionsThresholdsError=String(t)}finally{e.sessionsThresholdsLoading=!1}}}async function ui(e,t){if(!(!e.client||!e.connected)){e.sessionRunsInterruptingKeys=new Set([...e.sessionRunsInterruptingKeys,t]);try{let n=await e.client.request(`sessions.interrupt`,{key:t});n&&!n.ok&&(e.sessionRunsError=`Interrupt not applied: session run not found (${t})`)}catch(t){e.sessionRunsError=String(t)}finally{let n=new Set(e.sessionRunsInterruptingKeys);n.delete(t),e.sessionRunsInterruptingKeys=n}}}async function di(e){return!e.client||!e.connected?{runs:[]}:await e.client.request(`sessions.runs.list`,{statuses:[`needs_recovery_decision`]})??{runs:[]}}async function fi(e){if(!(!e.client||!e.connected||e.recoverableRunsLoading)){e.recoverableRunsLoading=!0,e.recoveryError=null;try{e.recoverableRuns=(await di(e)).runs}catch(t){e.recoveryError=String(t)}finally{e.recoverableRunsLoading=!1}}}async function pi(e,t,n){return!e.client||!e.connected?{ok:!1,conflict:!1}:await e.client.request(`sessions.runs.continue`,{sessionRunId:t,expectedDecisionVersion:n})??{ok:!1,conflict:!1}}async function mi(e,t,n){return!e.client||!e.connected?{ok:!1,conflict:!1}:await e.client.request(`sessions.runs.cancel`,{sessionRunId:t,expectedDecisionVersion:n})??{ok:!1,conflict:!1}}async function hi(e,t,n){if(!e.client||!e.connected)return;let r={key:t};`label`in n&&(r.label=n.label),`thinkingLevel`in n&&(r.thinkingLevel=n.thinkingLevel),`verboseLevel`in n&&(r.verboseLevel=n.verboseLevel),`reasoningLevel`in n&&(r.reasoningLevel=n.reasoningLevel);try{await e.client.request(`sessions.patch`,r),await si(e)}catch(t){e.sessionsError=String(t)}}async function gi(e,t){if(!e.client||!e.connected||e.sessionsLoading||!window.confirm(`Delete session "${t}"?\n\nDeletes the session entry and archives its transcript.`))return!1;e.sessionsLoading=!0,e.sessionsError=null;try{return await e.client.request(`sessions.delete`,{key:t,deleteTranscript:!0}),!0}catch(t){return e.sessionsError=String(t),!1}finally{e.sessionsLoading=!1}}async function _i(e,t){return await gi(e,t)?(await si(e),!0):!1}var vi=10,yi=5*6e4;function bi(e,t,n,r){let i=new Set(t.map(e=>e.key)),a=new Set(n.map(e=>e.key)),o=[];for(let t of e)!i.has(t)&&!a.has(t)&&o.push({key:t,completedAt:r});return[...o,...n].filter(e=>r-e.completedAt<yi).toSorted((e,t)=>t.completedAt-e.completedAt).slice(0,vi)}function xi(e){e.nodesPollInterval??=window.setInterval(()=>void oi(e,{quiet:!0}),5e3)}function Si(e){e.nodesPollInterval!=null&&(clearInterval(e.nodesPollInterval),e.nodesPollInterval=null)}function Ci(e){e.logsPollInterval??=window.setInterval(()=>{e.tab===`logs`&&ai(e,{quiet:!0})},2e3)}function wi(e){e.logsPollInterval!=null&&(clearInterval(e.logsPollInterval),e.logsPollInterval=null)}function Ti(e){e.debugPollInterval??=window.setInterval(()=>{e.tab===`debug`&&Et(e)},3e3)}function Ei(e){e.debugPollInterval!=null&&(clearInterval(e.debugPollInterval),e.debugPollInterval=null)}function Di(e){e.sessionRunsPollInterval??=window.setInterval(()=>{e.tab===`sessions`&&(ci(e),li(e),fi(e))},3e4)}function Oi(e){e.sessionRunsPollInterval!=null&&(clearInterval(e.sessionRunsPollInterval),e.sessionRunsPollInterval=null)}function ki(e){Qr(e)}function Ai(e){$r(e)}function ji(){return window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches??!1}function Mi(e){e.sessionRunsTickInterval!=null||ji()||(e.sessionRunsTickInterval=window.setInterval(()=>{if(e.tab!==`sessions`)return;let t=e.sessionRunsResult?.runs;!t||t.length===0||e.requestUpdate()},1e3))}function Ni(e){e.sessionRunsTickInterval!=null&&(clearInterval(e.sessionRunsTickInterval),e.sessionRunsTickInterval=null)}async function Pi(e,t){if(!(!e.client||!e.connected||e.agentIdentityLoading)&&!e.agentIdentityById[t]){e.agentIdentityLoading=!0,e.agentIdentityError=null;try{let n=await e.client.request(`agent.identity.get`,{agentId:t});n&&(e.agentIdentityById={...e.agentIdentityById,[t]:n})}catch(t){e.agentIdentityError=String(t)}finally{e.agentIdentityLoading=!1}}}async function Fi(e,t){if(!e.client||!e.connected||e.agentIdentityLoading)return;let n=t.filter(t=>!e.agentIdentityById[t]);if(n.length!==0){e.agentIdentityLoading=!0,e.agentIdentityError=null;try{for(let t of n){let n=await e.client.request(`agent.identity.get`,{agentId:t});n&&(e.agentIdentityById={...e.agentIdentityById,[t]:n})}}catch(t){e.agentIdentityError=String(t)}finally{e.agentIdentityLoading=!1}}}async function Ii(e,t){if(!(!e.client||!e.connected)&&!e.agentSkillsLoading){e.agentSkillsLoading=!0,e.agentSkillsError=null;try{let n=await e.client.request(`skills.status`,{agentId:t});n&&(e.agentSkillsReport=n,e.agentSkillsAgentId=t)}catch(t){e.agentSkillsError=String(t)}finally{e.agentSkillsLoading=!1}}}async function Li(e){if(!(!e.client||!e.connected)&&!e.agentsLoading){e.agentsLoading=!0,e.agentsError=null;try{let t=await e.client.request(`agents.list`,{});if(t){e.agentsList=t;let n=e.agentsSelectedId,r=t.agents.some(e=>e.id===n);(!n||!r)&&(e.agentsSelectedId=t.defaultId??t.agents[0]?.id??null)}}catch(t){e.agentsError=String(t)}finally{e.agentsLoading=!1}}}async function Ri(e,t){if(!(!e.client||!e.connected)&&!e.toolsCatalogLoading){e.toolsCatalogLoading=!0,e.toolsCatalogError=null;try{let n=await e.client.request(`tools.catalog`,{agentId:t??e.agentsSelectedId??void 0,includePlugins:!0});n&&(e.toolsCatalogResult=n)}catch(t){e.toolsCatalogError=String(t)}finally{e.toolsCatalogLoading=!1}}}async function zi(e,t,n){if(!e.client||!e.connected)return;let r=n.trim();if(r)try{await e.client.request(`agent.nudge`,{agentId:t,text:r})}catch(t){e.agentsError=String(t)}}async function Bi(e,t){if(!(!e.client||!e.connected)&&!e.devicesLoading){e.devicesLoading=!0,t?.quiet||(e.devicesError=null);try{let t=await e.client.request(`device.pair.list`,{});e.devicesList={pending:Array.isArray(t?.pending)?t.pending:[],paired:Array.isArray(t?.paired)?t.paired:[]}}catch(n){t?.quiet||(e.devicesError=String(n))}finally{e.devicesLoading=!1}}}async function Vi(e,t){if(!(!e.client||!e.connected))try{await e.client.request(`device.pair.approve`,{requestId:t}),await Bi(e)}catch(t){e.devicesError=String(t)}}async function Hi(e,t){if(!(!e.client||!e.connected)&&window.confirm(`Reject this device pairing request?`))try{await e.client.request(`device.pair.reject`,{requestId:t}),await Bi(e)}catch(t){e.devicesError=String(t)}}async function Ui(e,t){if(!(!e.client||!e.connected))try{let n=await e.client.request(`device.token.rotate`,t);if(n?.token){let e=await ir(),r=n.role??t.role;(n.deviceId===e.deviceId||t.deviceId===e.deviceId)&&Vt({deviceId:e.deviceId,role:r,token:n.token,scopes:n.scopes??t.scopes??[]}),window.prompt(`New device token (copy and store securely):`,n.token)}await Bi(e)}catch(t){e.devicesError=String(t)}}async function Wi(e,t){if(!(!e.client||!e.connected)&&window.confirm(`Revoke token for ${t.deviceId} (${t.role})?`))try{await e.client.request(`device.token.revoke`,t);let n=await ir();t.deviceId===n.deviceId&&Ht({deviceId:n.deviceId,role:t.role}),await Bi(e)}catch(t){e.devicesError=String(t)}}function Gi(e){if(!e||e.kind===`gateway`)return{method:`exec.approvals.get`,params:{}};let t=e.nodeId.trim();return t?{method:`exec.approvals.node.get`,params:{nodeId:t}}:null}function Ki(e,t){if(!e||e.kind===`gateway`)return{method:`exec.approvals.set`,params:t};let n=e.nodeId.trim();return n?{method:`exec.approvals.node.set`,params:{...t,nodeId:n}}:null}async function qi(e,t){if(!(!e.client||!e.connected)&&!e.execApprovalsLoading){e.execApprovalsLoading=!0,e.lastError=null;try{let n=Gi(t);if(!n){e.lastError=`Select a node before loading exec approvals.`;return}Ji(e,await e.client.request(n.method,n.params))}catch(t){e.lastError=String(t)}finally{e.execApprovalsLoading=!1}}}function Ji(e,t){e.execApprovalsSnapshot=t,e.execApprovalsDirty||(e.execApprovalsForm=Fe(t.file??{}))}async function Yi(e,t){if(!(!e.client||!e.connected)){e.execApprovalsSaving=!0,e.lastError=null;try{let n=e.execApprovalsSnapshot?.hash;if(!n){e.lastError=`Exec approvals hash missing; reload and retry.`;return}let r=Ki(t,{file:e.execApprovalsForm??e.execApprovalsSnapshot?.file??{},baseHash:n});if(!r){e.lastError=`Select a node before saving exec approvals.`;return}await e.client.request(r.method,r.params),e.execApprovalsDirty=!1,await qi(e,t)}catch(t){e.lastError=String(t)}finally{e.execApprovalsSaving=!1}}}function Xi(e,t,n){let r=Fe(e.execApprovalsForm??e.execApprovalsSnapshot?.file??{});Le(r,t,n),e.execApprovalsForm=r,e.execApprovalsDirty=!0}function Zi(e,t){let n=Fe(e.execApprovalsForm??e.execApprovalsSnapshot?.file??{});Re(n,t),e.execApprovalsForm=n,e.execApprovalsDirty=!0}async function Qi(e){if(!(!e.client||!e.connected)&&!e.presenceLoading){e.presenceLoading=!0,e.presenceError=null,e.presenceStatus=null;try{let t=await e.client.request(`system-presence`,{});Array.isArray(t)?(e.presenceEntries=t,e.presenceStatus=t.length===0?`No instances yet.`:null):(e.presenceEntries=[],e.presenceStatus=`No presence payload.`)}catch(t){e.presenceError=String(t)}finally{e.presenceLoading=!1}}}function $i(e,t,n){if(!t.trim())return;let r={...e.skillMessages};n?r[t]=n:delete r[t],e.skillMessages=r}function ea(e){return e instanceof Error?e.message:String(e)}async function ta(e,t){if(t?.clearMessages&&Object.keys(e.skillMessages).length>0&&(e.skillMessages={}),!(!e.client||!e.connected)&&!e.skillsLoading){e.skillsLoading=!0,e.skillsError=null;try{let t=await e.client.request(`skills.status`,{});t&&(e.skillsReport=t)}catch(t){e.skillsError=ea(t)}finally{e.skillsLoading=!1}}}function na(e,t,n){e.skillEdits={...e.skillEdits,[t]:n}}async function ra(e,t,n){if(!(!e.client||!e.connected)){e.skillsBusyKey=t,e.skillsError=null;try{await e.client.request(`skills.update`,{skillKey:t,enabled:n}),await ta(e),$i(e,t,{kind:`success`,message:n?`Skill enabled`:`Skill disabled`})}catch(n){let r=ea(n);e.skillsError=r,$i(e,t,{kind:`error`,message:r})}finally{e.skillsBusyKey=null}}}async function ia(e,t){if(!(!e.client||!e.connected)){e.skillsBusyKey=t,e.skillsError=null;try{let n=e.skillEdits[t]??``;await e.client.request(`skills.update`,{skillKey:t,apiKey:n}),await ta(e),$i(e,t,{kind:`success`,message:`API key saved`})}catch(n){let r=ea(n);e.skillsError=r,$i(e,t,{kind:`error`,message:r})}finally{e.skillsBusyKey=null}}}async function aa(e,t,n,r){if(!(!e.client||!e.connected)){e.skillsBusyKey=t,e.skillsError=null;try{let i=await e.client.request(`skills.install`,{name:n,installId:r,timeoutMs:12e4});await ta(e),$i(e,t,{kind:`success`,message:i?.message??`Installed`})}catch(n){let r=ea(n);e.skillsError=r,$i(e,t,{kind:`error`,message:r})}finally{e.skillsBusyKey=null}}}var oa=`openclaw.control.settings.v1`;function sa(){let e={gatewayUrl:(()=>{let e=location.protocol===`https:`?`wss`:`ws`,t=typeof window<`u`&&typeof window.__OPENCLAW_CONTROL_UI_BASE_PATH__==`string`&&window.__OPENCLAW_CONTROL_UI_BASE_PATH__.trim(),n=t?E(t):se(location.pathname);return`${e}://${location.host}${n}`})(),token:``,sessionKey:`main`,lastActiveSessionKey:`main`,theme:`system`,chatFocusMode:!1,chatShowThinking:!0,splitRatio:.6,navCollapsed:!1,navGroupsCollapsed:{}};try{let t=localStorage.getItem(oa);if(!t)return e;let n=JSON.parse(t);return{gatewayUrl:typeof n.gatewayUrl==`string`&&n.gatewayUrl.trim()?n.gatewayUrl.trim():e.gatewayUrl,token:typeof n.token==`string`?n.token:e.token,sessionKey:typeof n.sessionKey==`string`&&n.sessionKey.trim()?n.sessionKey.trim():e.sessionKey,lastActiveSessionKey:typeof n.lastActiveSessionKey==`string`&&n.lastActiveSessionKey.trim()?n.lastActiveSessionKey.trim():typeof n.sessionKey==`string`&&n.sessionKey.trim()||e.lastActiveSessionKey,theme:n.theme===`light`||n.theme===`dark`||n.theme===`system`?n.theme:e.theme,chatFocusMode:typeof n.chatFocusMode==`boolean`?n.chatFocusMode:e.chatFocusMode,chatShowThinking:typeof n.chatShowThinking==`boolean`?n.chatShowThinking:e.chatShowThinking,splitRatio:typeof n.splitRatio==`number`&&n.splitRatio>=.4&&n.splitRatio<=.7?n.splitRatio:e.splitRatio,navCollapsed:typeof n.navCollapsed==`boolean`?n.navCollapsed:e.navCollapsed,navGroupsCollapsed:typeof n.navGroupsCollapsed==`object`&&n.navGroupsCollapsed!==null?n.navGroupsCollapsed:e.navGroupsCollapsed,locale:te(n.locale)?n.locale:void 0}}catch{return e}}function ca(e){localStorage.setItem(oa,JSON.stringify(e))}var la=e=>Number.isNaN(e)?.5:e<=0?0:e>=1?1:e,ua=()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches??!1,da=e=>{e.classList.remove(`theme-transition`),e.style.removeProperty(`--theme-switch-x`),e.style.removeProperty(`--theme-switch-y`)},fa=({nextTheme:e,applyTheme:t,context:n,currentTheme:r})=>{if(r===e)return;let i=globalThis.document??null;if(!i){t();return}let a=i.documentElement,o=i,s=ua();if(o.startViewTransition&&!s){let e=.5,r=.5;if(n?.pointerClientX!==void 0&&n?.pointerClientY!==void 0&&typeof window<`u`)e=la(n.pointerClientX/window.innerWidth),r=la(n.pointerClientY/window.innerHeight);else if(n?.element){let t=n.element.getBoundingClientRect();t.width>0&&t.height>0&&typeof window<`u`&&(e=la((t.left+t.width/2)/window.innerWidth),r=la((t.top+t.height/2)/window.innerHeight))}a.style.setProperty(`--theme-switch-x`,`${e*100}%`),a.style.setProperty(`--theme-switch-y`,`${r*100}%`),a.classList.add(`theme-transition`);try{let e=o.startViewTransition?.(()=>{t()});e?.finished?e.finished.finally(()=>da(a)):da(a)}catch{da(a),t()}return}t(),da(a)};function pa(){return typeof window>`u`||typeof window.matchMedia!=`function`||window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function ma(e){return e===`system`?pa():e}function ha(e,t){let n={...t,lastActiveSessionKey:t.lastActiveSessionKey?.trim()||t.sessionKey.trim()||`main`};e.settings=n,ca(n),t.theme!==e.theme&&(e.theme=t.theme,Ca(e,ma(t.theme))),e.applySessionKey=e.settings.lastActiveSessionKey}function ga(e,t){let n=t.trim();n&&e.settings.lastActiveSessionKey!==n&&ha(e,{...e.settings,lastActiveSessionKey:n})}function _a(e){if(!window.location.search&&!window.location.hash)return;let t=new URL(window.location.href),n=new URLSearchParams(t.search),r=new URLSearchParams(t.hash.startsWith(`#`)?t.hash.slice(1):t.hash),i=n.get(`token`)??r.get(`token`),a=n.get(`password`)??r.get(`password`),o=n.get(`session`)??r.get(`session`),s=n.get(`gatewayUrl`)??r.get(`gatewayUrl`),c=!1;if(i!=null){let t=i.trim();t&&t!==e.settings.token&&ha(e,{...e.settings,token:t}),n.delete(`token`),r.delete(`token`),c=!0}if(a!=null&&(n.delete(`password`),r.delete(`password`),c=!0),o!=null){let t=o.trim();t&&(e.sessionKey=t,ha(e,{...e.settings,sessionKey:t,lastActiveSessionKey:t}))}if(s!=null){let t=s.trim();t&&t!==e.settings.gatewayUrl&&(e.pendingGatewayUrl=t),n.delete(`gatewayUrl`),r.delete(`gatewayUrl`),c=!0}if(!c)return;t.search=n.toString();let l=r.toString();t.hash=l?`#${l}`:``,window.history.replaceState({},``,t.toString())}function va(e,t){ka(e,t,{refreshPolicy:`always`,syncUrl:!0})}function ya(e,t,n){fa({nextTheme:t,applyTheme:()=>{e.theme=t,ha(e,{...e.settings,theme:t}),Ca(e,ma(t))},context:n,currentTheme:e.theme})}async function ba(e){if(e.tab===`overview`&&await Ma(e),e.tab===`channels`&&await Na(e),e.tab===`instances`&&await Qi(e),e.tab===`sessions`&&(await si(e),ci(e),li(e)),e.tab===`cron`&&await Pa(e),e.tab===`learning`&&await e.loadLearning(),e.tab===`dreams`&&await Jr(e),e.tab===`skills`&&await ta(e),e.tab===`agents`){await Li(e),await Ri(e),await ze(e);let t=e.agentsList?.agents?.map(e=>e.id)??[];t.length>0&&Fi(e,t);let n=e.agentsSelectedId??e.agentsList?.defaultId??e.agentsList?.agents?.[0]?.id;n&&(Pi(e,n),e.agentsPanel===`skills`&&Ii(e,n),e.agentsPanel===`channels`&&U(e,!1),e.agentsPanel===`cron`&&Pa(e))}e.tab===`nodes`&&(await oi(e),await Bi(e),await ze(e),await qi(e)),e.tab===`chat`&&(await So(e),yt(e,!e.chatHasAutoScrolled)),e.tab===`config`&&(await Be(e),await ze(e)),e.tab===`debug`&&(await Et(e),e.eventLog=e.eventLogBuffer),e.tab===`logs`&&(e.logsAtBottom=!0,await ai(e,{reset:!0}),bt(e,!0))}function xa(){if(typeof window>`u`)return``;let e=window.__OPENCLAW_CONTROL_UI_BASE_PATH__;return typeof e==`string`&&e.trim()?E(e):se(window.location.pathname)}function Sa(e){e.theme=e.settings.theme??`system`,Ca(e,ma(e.theme))}function Ca(e,t){if(e.themeResolved=t,typeof document>`u`)return;let n=document.documentElement;n.dataset.theme=t,n.style.colorScheme=t}function wa(e){if(!(typeof window>`u`||typeof window.matchMedia!=`function`)){if(e.themeMedia=window.matchMedia(`(prefers-color-scheme: dark)`),e.themeMediaHandler=t=>{e.theme===`system`&&Ca(e,t.matches?`dark`:`light`)},typeof e.themeMedia.addEventListener==`function`){e.themeMedia.addEventListener(`change`,e.themeMediaHandler);return}e.themeMedia.addListener(e.themeMediaHandler)}}function Ta(e){if(!(!e.themeMedia||!e.themeMediaHandler)){if(typeof e.themeMedia.removeEventListener==`function`){e.themeMedia.removeEventListener(`change`,e.themeMediaHandler);return}e.themeMedia.removeListener(e.themeMediaHandler),e.themeMedia=null,e.themeMediaHandler=null}}function Ea(e,t){if(typeof window>`u`)return;let n=O(window.location.pathname,e.basePath)??`overview`;Oa(e,n),Aa(e,n,t)}function Da(e){if(typeof window>`u`)return;let t=O(window.location.pathname,e.basePath);if(!t)return;let n=new URL(window.location.href).searchParams.get(`session`)?.trim();n&&(e.sessionKey=n,ha(e,{...e.settings,sessionKey:n,lastActiveSessionKey:n})),Oa(e,t)}function Oa(e,t){ka(e,t,{refreshPolicy:`connected`})}function ka(e,t,n){if(e.tab===`talk`&&t!==`talk`)try{e.talkController.stop().catch(()=>void 0)}catch{}e.tab!==t&&(e.tab=t),t===`chat`&&(e.chatHasAutoScrolled=!1),t===`logs`?Ci(e):wi(e),t===`debug`?Ti(e):Ei(e),(n.refreshPolicy===`always`||e.connected)&&ba(e),n.syncUrl&&Aa(e,t,!1)}function Aa(e,t,n){if(typeof window>`u`)return;let r=A(M(t,e.basePath)),i=A(window.location.pathname),a=E(e.basePath)||`/`,o=t===`overview`&&i===A(a),s=new URL(window.location.href);t===`chat`&&e.sessionKey?s.searchParams.set(`session`,e.sessionKey):s.searchParams.delete(`session`),!o&&i!==r&&(s.pathname=r),n?window.history.replaceState({},``,s.toString()):window.history.pushState({},``,s.toString())}function ja(e,t,n){if(typeof window>`u`)return;let r=new URL(window.location.href);r.searchParams.set(`session`,t),n?window.history.replaceState({},``,r.toString()):window.history.pushState({},``,r.toString())}async function Ma(e){await Promise.all([U(e,!1),Qi(e),si(e),P(e),Et(e)])}async function Na(e){await Promise.all([U(e,!0),Be(e),ze(e)])}async function Pa(e){let t=e;if(await Promise.all([U(e,!1),P(t),D(t),oe(t)]),t.cronRunsScope===`all`){await T(t,null);return}t.cronRunsJobId&&await T(t,t.cronRunsJobId)}var Fa=50,Ia=80,La=12e4;function X(e){return typeof e==`string`&&e.trim()||null}function Ra(e,t){let n=X(t);if(!n)return null;let r=X(e);if(r){let e=`${r}/`;if(n.toLowerCase().startsWith(e.toLowerCase())){let t=n.slice(e.length).trim();if(t)return`${r}/${t}`}return`${r}/${n}`}let i=n.indexOf(`/`);if(i>0){let e=n.slice(0,i).trim(),t=n.slice(i+1).trim();if(e&&t)return`${e}/${t}`}return n}function za(e){return Array.isArray(e)?e.map(e=>X(e)).filter(e=>!!e):[]}function Ba(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n,r=X(e.provider),i=X(e.model);if(!r||!i)continue;let a=X(e.reason)?.replace(/_/g,` `)??X(e.code)??(typeof e.status==`number`?`HTTP ${e.status}`:null)??X(e.error)??`error`;t.push({provider:r,model:i,reason:a})}return t}function Va(e){if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.text==`string`)return t.text;let n=t.content;if(!Array.isArray(n))return null;let r=n.map(e=>{if(!e||typeof e!=`object`)return null;let t=e;return t.type===`text`&&typeof t.text==`string`?t.text:null}).filter(e=>!!e);return r.length===0?null:r.join(`
17
- `)}function Ha(e){if(e==null)return null;if(typeof e==`number`||typeof e==`boolean`)return String(e);let t=Va(e),n;if(typeof e==`string`)n=e;else if(t)n=t;else try{n=JSON.stringify(e,null,2)}catch{n=String(e)}let r=i(n,La);return r.truncated?`${r.text}\n\n… truncated (${r.total} chars, showing first ${r.text.length}).`:r.text}function Ua(e){let t=[];return t.push({type:`toolcall`,name:e.name,arguments:e.args??{}}),e.output&&t.push({type:`toolresult`,name:e.name,text:e.output}),{role:`assistant`,toolCallId:e.toolCallId,runId:e.runId,content:t,timestamp:e.startedAt}}function Wa(e){if(e.toolStreamOrder.length<=Fa)return;let t=e.toolStreamOrder.length-Fa,n=e.toolStreamOrder.splice(0,t);for(let t of n)e.toolStreamById.delete(t)}function Ga(e){e.chatToolMessages=e.toolStreamOrder.map(t=>e.toolStreamById.get(t)?.message).filter(e=>!!e)}function Ka(e){e.toolStreamSyncTimer!=null&&(clearTimeout(e.toolStreamSyncTimer),e.toolStreamSyncTimer=null),Ga(e)}function qa(e,t=!1){if(t){Ka(e);return}e.toolStreamSyncTimer??=window.setTimeout(()=>Ka(e),Ia)}function Ja(e){e.toolStreamById.clear(),e.toolStreamOrder=[],e.chatToolMessages=[],Ka(e)}var Ya=5e3,Xa=8e3;function Za(e,t){let n=t.data??{},r=typeof n.phase==`string`?n.phase:``;if(e.compactionClearTimer!=null&&(window.clearTimeout(e.compactionClearTimer),e.compactionClearTimer=null),r===`start`)e.compactionStatus={active:!0,startedAt:Date.now(),completedAt:null,failed:!1};else if(r===`end`){let t=n.completed===!1;e.compactionStatus={active:!1,startedAt:e.compactionStatus?.startedAt??null,completedAt:Date.now(),failed:t},e.compactionClearTimer=window.setTimeout(()=>{e.compactionStatus=null,e.compactionClearTimer=null},Ya)}}function Qa(e,t,n){let r=typeof t.sessionKey==`string`?t.sessionKey:void 0;return r&&r!==e.sessionKey?{accepted:!1}:!e.chatRunId&&n?.allowSessionScopedWhenIdle&&r?{accepted:!0,sessionKey:r}:!r&&e.chatRunId&&t.runId!==e.chatRunId||e.chatRunId&&t.runId!==e.chatRunId||!e.chatRunId?{accepted:!1}:{accepted:!0,sessionKey:r}}function $a(e,t){let n=t.data??{},r=t.stream===`fallback`?`fallback`:X(n.phase);if(t.stream===`lifecycle`&&r!==`fallback`&&r!==`fallback_cleared`||!Qa(e,t,{allowSessionScopedWhenIdle:!0}).accepted)return;let i=Ra(n.selectedProvider,n.selectedModel)??Ra(n.fromProvider,n.fromModel),a=Ra(n.activeProvider,n.activeModel)??Ra(n.toProvider,n.toModel),o=Ra(n.previousActiveProvider,n.previousActiveModel)??X(n.previousActiveModel);if(!i||!a||r===`fallback`&&i===a)return;let s=X(n.reasonSummary)??X(n.reason),c=(()=>{let e=za(n.attemptSummaries);return e.length>0?e:Ba(n.attempts).map(e=>`${Ra(e.provider,e.model)??`${e.provider}/${e.model}`}: ${e.reason}`)})();e.fallbackClearTimer!=null&&(window.clearTimeout(e.fallbackClearTimer),e.fallbackClearTimer=null),e.fallbackStatus={phase:r===`fallback_cleared`?`cleared`:`active`,selected:i,active:r===`fallback_cleared`?i:a,previous:r===`fallback_cleared`?o??(a===i?void 0:a):void 0,reason:s??void 0,attempts:c,occurredAt:Date.now()},e.fallbackClearTimer=window.setTimeout(()=>{e.fallbackStatus=null,e.fallbackClearTimer=null},Xa)}function eo(e,t){if(!t)return;if(t.stream===`compaction`){Za(e,t);return}if(t.stream===`lifecycle`||t.stream===`fallback`){$a(e,t);return}if(t.stream!==`tool`)return;let n=Qa(e,t);if(!n.accepted)return;let r=n.sessionKey,i=t.data??{},a=typeof i.toolCallId==`string`?i.toolCallId:``;if(!a)return;let o=typeof i.name==`string`?i.name:`tool`,s=typeof i.phase==`string`?i.phase:``,c=s===`start`?i.args:void 0,l=s===`update`?Ha(i.partialResult):s===`result`?Ha(i.result):void 0,u=Date.now(),d=e.toolStreamById.get(a);d?(d.name=o,c!==void 0&&(d.args=c),l!==void 0&&(d.output=l||void 0),d.updatedAt=u):(d={toolCallId:a,runId:t.runId,sessionKey:r,name:o,args:c,output:l||void 0,startedAt:typeof t.ts==`number`?t.ts:u,updatedAt:u,message:{}},e.toolStreamById.set(a,d),e.toolStreamOrder.push(a)),d.message=Ua(d),Wa(e),qa(e,s===`result`)}var to=/^\s*NO_REPLY\s*$/;function no(e){return to.test(e)}function ro(e){if(!e||typeof e!=`object`)return!1;let t=e;if((typeof t.role==`string`?t.role.toLowerCase():``)!==`assistant`)return!1;if(typeof t.text==`string`)return no(t.text);let n=f(e);return typeof n==`string`&&no(n)}async function io(e){if(!(!e.client||!e.connected)){e.chatLoading=!0,e.lastError=null;try{let t=await e.client.request(`chat.history`,{sessionKey:e.sessionKey,limit:200});e.chatMessages=(Array.isArray(t.messages)?t.messages:[]).filter(e=>!ro(e)),e.chatThinkingLevel=t.thinkingLevel??null}catch(t){e.lastError=String(t)}finally{e.chatLoading=!1}}}function ao(e){let t=/^data:([^;]+);base64,(.+)$/.exec(e);return t?{mimeType:t[1],content:t[2]}:null}function oo(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=n.role;if(typeof r==`string`){if((t.roleCaseSensitive?r:r.toLowerCase())!==`assistant`)return null}else if(t.roleRequirement===`required`)return null;return t.requireContentArray?Array.isArray(n.content)?n:null:!(`content`in n)&&!(t.allowTextField&&`text`in n)?null:n}function so(e){return oo(e,{roleRequirement:`required`,roleCaseSensitive:!0,requireContentArray:!0})}function co(e){return oo(e,{roleRequirement:`optional`,allowTextField:!0})}async function lo(e,t,n){if(!e.client||!e.connected)return null;let r=t.trim(),i=n&&n.length>0;if(!r&&!i)return null;let a=Date.now(),o=[];if(r&&o.push({type:`text`,text:r}),i)for(let e of n)o.push({type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.dataUrl}});e.chatMessages=[...e.chatMessages,{role:`user`,content:o,timestamp:a}],e.chatSending=!0,e.lastError=null;let s=ur();e.chatRunId=s,e.chatStream=``,e.chatStreamStartedAt=a;let c=i?n.map(e=>{let t=ao(e.dataUrl);return t?{type:`image`,mimeType:t.mimeType,content:t.content}:null}).filter(e=>e!==null):void 0;try{return await e.client.request(`chat.send`,{sessionKey:e.sessionKey,message:r,deliver:!1,idempotencyKey:s,attachments:c}),s}catch(t){let n=String(t);return e.chatRunId=null,e.chatStream=null,e.chatStreamStartedAt=null,e.lastError=n,e.chatMessages=[...e.chatMessages,{role:`assistant`,content:[{type:`text`,text:`Error: `+n}],timestamp:Date.now()}],null}finally{e.chatSending=!1}}async function uo(e){if(!e.client||!e.connected)return!1;let t=e.chatRunId;try{return await e.client.request(`chat.abort`,t?{sessionKey:e.sessionKey,runId:t}:{sessionKey:e.sessionKey}),!0}catch(t){return e.lastError=String(t),!1}}function fo(e,t){if(!t||t.sessionKey!==e.sessionKey)return null;if(t.runId&&e.chatRunId&&t.runId!==e.chatRunId){if(t.state===`final`){let n=co(t.message);return n&&!ro(n)?(e.chatMessages=[...e.chatMessages,n],null):`final`}return null}if(t.state===`delta`){let n=f(t.message);if(typeof n==`string`&&!no(n)){let t=e.chatStream??``;(!t||n.length>=t.length)&&(e.chatStream=n)}}else if(t.state===`final`){let n=co(t.message);n&&!ro(n)?e.chatMessages=[...e.chatMessages,n]:e.chatStream?.trim()&&!no(e.chatStream)&&(e.chatMessages=[...e.chatMessages,{role:`assistant`,content:[{type:`text`,text:e.chatStream}],timestamp:Date.now()}]),e.chatStream=null,e.chatRunId=null,e.chatStreamStartedAt=null}else if(t.state===`aborted`){let n=so(t.message);if(n&&!ro(n))e.chatMessages=[...e.chatMessages,n];else{let t=e.chatStream??``;t.trim()&&!no(t)&&(e.chatMessages=[...e.chatMessages,{role:`assistant`,content:[{type:`text`,text:t}],timestamp:Date.now()}])}e.chatStream=null,e.chatRunId=null,e.chatStreamStartedAt=null}else t.state===`error`&&(e.chatStream=null,e.chatRunId=null,e.chatStreamStartedAt=null,e.lastError=t.errorMessage??`chat error`);return t.state}function po(e){return e.chatSending||!!e.chatRunId}function mo(e){let t=e.trim();if(!t)return!1;let n=t.toLowerCase();return n===`/stop`||n===`stop`||n===`esc`||n===`abort`||n===`wait`||n===`exit`}function ho(e){let t=e.trim();if(!t)return!1;let n=t.toLowerCase();return n===`/new`||n===`/reset`||n.startsWith(`/new `)||n.startsWith(`/reset `)}async function go(e){e.connected&&(e.chatMessage=``,await uo(e))}function _o(e,t,n,r){let i=t.trim(),a=!!(n&&n.length>0);!i&&!a||(e.chatQueue=[...e.chatQueue,{id:ur(),text:i,createdAt:Date.now(),attachments:a?n?.map(e=>({...e})):void 0,refreshSessions:r}])}async function vo(e,t,n){Ja(e);let r=await lo(e,t,n?.attachments),i=!!r;return!i&&n?.previousDraft!=null&&(e.chatMessage=n.previousDraft),!i&&n?.previousAttachments&&(e.chatAttachments=n.previousAttachments),i&&ga(e,e.sessionKey),i&&n?.restoreDraft&&n.previousDraft?.trim()&&(e.chatMessage=n.previousDraft),i&&n?.restoreAttachments&&n.previousAttachments?.length&&(e.chatAttachments=n.previousAttachments),yt(e),i&&!e.chatRunId&&yo(e),i&&n?.refreshSessions&&r&&e.refreshSessionsAfterChat.add(r),i}async function yo(e){if(!e.connected||po(e))return;let[t,...n]=e.chatQueue;t&&(e.chatQueue=n,await vo(e,t.text,{attachments:t.attachments,refreshSessions:t.refreshSessions})||(e.chatQueue=[t,...e.chatQueue]))}function bo(e,t){e.chatQueue=e.chatQueue.filter(e=>e.id!==t)}async function xo(e,t,n){if(!e.connected)return;let r=e.chatMessage,i=(t??e.chatMessage).trim(),a=e.chatAttachments??[],o=t==null?a:[],s=o.length>0;if(!i&&!s)return;if(mo(i)){await go(e);return}let c=ho(i);if(t??(e.chatMessage=``,e.chatAttachments=[]),po(e)){_o(e,i,o,c);return}await vo(e,i,{previousDraft:t==null?r:void 0,restoreDraft:!!(t&&n?.restoreDraft),attachments:s?o:void 0,previousAttachments:t==null?a:void 0,restoreAttachments:!!(t&&n?.restoreDraft),refreshSessions:c})}async function So(e,t){await Promise.all([io(e),si(e,{activeMinutes:120}),Eo(e)]),t?.scheduleScroll!==!1&&yt(e)}var Co=yo;function wo(e){let t=_t(e.sessionKey);return t?.agentId?t.agentId:(e.hello?.snapshot)?.sessionDefaults?.defaultAgentId?.trim()||`main`}function To(e,t){let n=E(e),r=encodeURIComponent(t);return n?`${n}/avatar/${r}?meta=1`:`/avatar/${r}?meta=1`}async function Eo(e){if(!e.connected){e.chatAvatarUrl=null;return}let t=wo(e);if(!t){e.chatAvatarUrl=null;return}e.chatAvatarUrl=null;let n=To(e.basePath,t);try{let t=await fetch(n,{method:`GET`});if(!t.ok){e.chatAvatarUrl=null;return}let r=await t.json();e.chatAvatarUrl=(typeof r.avatarUrl==`string`?r.avatarUrl.trim():``)||null}catch{e.chatAvatarUrl=null}}function Do(e){if(!e||e.state!==`final`)return!1;if(!e.message||typeof e.message!=`object`)return!0;let t=e.message,n=typeof t.role==`string`?t.role.toLowerCase():``;return!!(n&&n!==`assistant`)}function Oo(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)return n.length<=t?n:n.slice(0,t)}var ko=50,Ao=200;function jo(e){let t=Oo(e?.name,ko)??`Assistant`,n=Oo(e?.avatar??void 0,Ao)??null;return{agentId:typeof e?.agentId==`string`&&e.agentId.trim()?e.agentId.trim():null,name:t,avatar:n}}async function Mo(e,t){if(!e.client||!e.connected)return;let n=t?.sessionKey?.trim()||e.sessionKey.trim(),r=n?{sessionKey:n}:{};try{let t=await e.client.request(`agent.identity.get`,r);if(!t)return;let n=jo(t);e.assistantName=n.name,e.assistantAvatar=n.avatar,e.assistantAgentId=n.agentId??null}catch{}}function No(e){return typeof e==`object`&&!!e}function Po(e){if(!No(e))return null;let t=typeof e.id==`string`?e.id.trim():``,n=e.request;if(!t||!No(n))return null;let r=typeof n.command==`string`?n.command.trim():``;if(!r)return null;let i=typeof e.createdAtMs==`number`?e.createdAtMs:0,a=typeof e.expiresAtMs==`number`?e.expiresAtMs:0;return!i||!a?null:{id:t,request:{command:r,cwd:typeof n.cwd==`string`?n.cwd:null,host:typeof n.host==`string`?n.host:null,security:typeof n.security==`string`?n.security:null,ask:typeof n.ask==`string`?n.ask:null,agentId:typeof n.agentId==`string`?n.agentId:null,resolvedPath:typeof n.resolvedPath==`string`?n.resolvedPath:null,sessionKey:typeof n.sessionKey==`string`?n.sessionKey:null},createdAtMs:i,expiresAtMs:a}}function Fo(e){if(!No(e))return null;let t=typeof e.id==`string`?e.id.trim():``;return t?{id:t,decision:typeof e.decision==`string`?e.decision:null,resolvedBy:typeof e.resolvedBy==`string`?e.resolvedBy:null,ts:typeof e.ts==`number`?e.ts:null}:null}function Io(e){let t=Date.now();return e.filter(e=>e.expiresAtMs>t)}function Lo(e,t){let n=Io(e).filter(e=>e.id!==t.id);return n.push(t),n}function Ro(e,t){return Io(e).filter(e=>e.id!==t)}function zo(e){return(t,n)=>{let r=e.client;return r?r.request(t,n):Promise.reject(Error(`Gateway is not connected`))}}function Bo(e,t){let n=(e??``).trim(),r=t.mainSessionKey?.trim();if(!r)return n;if(!n)return r;let i=t.mainKey?.trim()||`main`,a=t.defaultAgentId?.trim();return n===`main`||n===i||a&&(n===`agent:${a}:main`||n===`agent:${a}:${i}`)?r:n}function Vo(e,t){if(!t?.mainSessionKey)return;let n=Bo(e.sessionKey,t),r=Bo(e.settings.sessionKey,t),i=Bo(e.settings.lastActiveSessionKey,t),a=n||r||e.sessionKey,o={...e.settings,sessionKey:r||a,lastActiveSessionKey:i||a},s=o.sessionKey!==e.settings.sessionKey||o.lastActiveSessionKey!==e.settings.lastActiveSessionKey;a!==e.sessionKey&&(e.sessionKey=a),s&&ha(e,o)}function Ho(e){e.lastError=null,e.lastErrorCode=null,e.hello=null,e.connected=!1,e.execApprovalQueue=[],e.execApprovalError=null;let t=e.client,n=new mr({url:e.settings.gatewayUrl,token:e.settings.token.trim()?e.settings.token:void 0,password:e.password.trim()?e.password:void 0,clientName:`openclaw-control-ui`,mode:`webchat`,instanceId:e.clientInstanceId,onHello:t=>{if(e.client===n){try{e.talkController.loadAvailability().catch(()=>void 0)}catch{}e.talkController.reconnectIfIntended().catch(()=>void 0),e.connected=!0,e.lastError=null,e.lastErrorCode=null,e.hello=t,qo(e,t),e.chatRunId=null,e.chatStream=null,e.chatStreamStartedAt=null,Ja(e),Mo(e),Li(e),Ri(e),oi(e,{quiet:!0}),Bi(e,{quiet:!0}),ci(e),fi(e),ba(e)}},onClose:({code:t,reason:r,error:i})=>{if(e.client===n)if(e.talkController.handleGatewayClose(),e.connected=!1,e.lastErrorCode=fr(i)??(typeof i?.code==`string`?i.code:null),t!==1012){if(i?.message){e.lastError=i.message;return}e.lastError=`disconnected (${t}): ${r||`no reason`}`}else e.lastError=null,e.lastErrorCode=null},onEvent:t=>{e.client===n&&Uo(e,t)},onGap:({expected:t,received:r})=>{e.client===n&&(e.lastError=`event gap detected (expected seq ${t}, got ${r}); refresh recommended`,e.lastErrorCode=null)}});e.client=n,t?.stop(),n.start()}function Uo(e,t){try{Ko(e,t)}catch(e){console.error(`[gateway] handleGatewayEvent error:`,t.event,e)}}function Wo(e,t,n){if(n!==`final`&&n!==`error`&&n!==`aborted`)return;Ja(e),Co(e);let r=t?.runId;!r||!e.refreshSessionsAfterChat.has(r)||(e.refreshSessionsAfterChat.delete(r),n===`final`&&si(e,{activeMinutes:120}))}function Go(e,t){t?.sessionKey&&ga(e,t.sessionKey);let n=fo(e,t);Wo(e,t,n),n===`final`&&Do(t)&&io(e)}function Ko(e,t){let n=t.event===`talk.realtime.relay`&&typeof t.payload==`object`&&t.payload!==null?t.payload.type:void 0,r=t.event===`talk.realtime.relay`?{type:typeof n==`string`?n:void 0}:t.payload;if(e.eventLogBuffer=[{ts:Date.now(),event:t.event,payload:r},...e.eventLogBuffer].slice(0,250),e.tab===`debug`&&(e.eventLog=e.eventLogBuffer),t.event===`talk.realtime.relay`){e.talkController.handleRelayEvent(t.payload);return}if(t.event===`agent`){if(e.onboarding)return;eo(e,t.payload);return}if(t.event===`chat`){Go(e,t.payload);return}if(t.event===`presence`){let n=t.payload;n?.presence&&Array.isArray(n.presence)&&(e.presenceEntries=n.presence,e.presenceError=null,e.presenceStatus=null);return}if(t.event===`cron`&&e.tab===`cron`&&Pa(e),t.event===`dreams.update`){Zr(e);return}if((t.event===`device.pair.requested`||t.event===`device.pair.resolved`)&&Bi(e,{quiet:!0}),t.event===`exec.approval.requested`){let n=Po(t.payload);if(n){e.execApprovalQueue=Lo(e.execApprovalQueue,n),e.execApprovalError=null;let t=Math.max(0,n.expiresAtMs-Date.now()+500);window.setTimeout(()=>{e.execApprovalQueue=Ro(e.execApprovalQueue,n.id)},t)}return}if(t.event===`exec.approval.resolved`){let n=Fo(t.payload);n&&(e.execApprovalQueue=Ro(e.execApprovalQueue,n.id));return}if(t.event===`sessions.runsUpdate`){let n=t.payload;if(n){let t=e,r=Date.now();t.recentlyCompletedRuns=bi(t.sessionRunsPrevKeys,n.runs,t.recentlyCompletedRuns,r),t.sessionRunsPrevKeys=new Set(n.runs.map(e=>e.key)),t.sessionRunsResult=n,t.sessionRunsFetchedAt=r,t.sessionRunsError=null}return}t.event===`update.available`&&(e.updateAvailable=t.payload?.updateAvailable??null)}function qo(e,t){let n=t.snapshot;n?.presence&&Array.isArray(n.presence)&&(e.presenceEntries=n.presence),n?.health&&(e.debugHealth=n.health),n?.sessionDefaults&&Vo(e,n.sessionDefaults),e.updateAvailable=n?.updateAvailable??null}var Jo=`/__openclaw/control-ui-config.json`;async function Yo(e){if(typeof window>`u`||typeof fetch!=`function`)return;let t=E(e.basePath??``),n=t?`${t}${Jo}`:Jo;try{let t=await fetch(n,{method:`GET`,headers:{Accept:`application/json`},credentials:`same-origin`});if(!t.ok)return;let r=await t.json(),i=jo({agentId:r.assistantAgentId??null,name:r.assistantName,avatar:r.assistantAvatar??null});e.assistantName=i.name,e.assistantAvatar=i.avatar,e.assistantAgentId=i.agentId??null,e.consolePath=typeof r.consolePath==`string`?r.consolePath:null}catch{}}function Xo(e){e.basePath=xa(),Yo(e),_a(e),Ea(e,!0),Sa(e),wa(e),window.addEventListener(`popstate`,e.popStateHandler),typeof document<`u`&&document.addEventListener(`visibilitychange`,e.visibilityHandler),Ho(e),xi(e),Di(e),Mi(e),ki(e),e.tab===`logs`&&Ci(e),e.tab===`debug`&&Ti(e)}function Zo(e){ei(e)}function Qo(e){Tt(e)}function $o(e){try{e.talkController.stop().catch(()=>void 0)}catch{}window.removeEventListener(`popstate`,e.popStateHandler),typeof document<`u`&&document.removeEventListener(`visibilitychange`,e.visibilityHandler),Si(e),wi(e),Ei(e),Oi(e),Ni(e),Ai(e),e.client?.stop(),e.client=null,e.connected=!1,Ta(e),e.topbarObserver?.disconnect(),e.topbarObserver=null}function es(e,t){if(!(e.tab===`chat`&&e.chatManualRefreshInFlight)){if(e.tab===`chat`&&(t.has(`chatMessages`)||t.has(`chatToolMessages`)||t.has(`chatStream`)||t.has(`chatLoading`)||t.has(`tab`))){let n=t.has(`tab`),r=t.has(`chatLoading`)&&t.get(`chatLoading`)===!0&&!e.chatLoading;yt(e,n||r||!e.chatHasAutoScrolled)}e.tab===`logs`&&(t.has(`logsEntries`)||t.has(`logsAutoFollow`)||t.has(`tab`))&&e.logsAutoFollow&&e.logsAtBottom&&bt(e,t.has(`tab`)||t.has(`logsAutoFollow`))}}function Z(e,t,n){let r=null,i=null,a=null,s=new Set,c=()=>{let e=[...s];s.clear();for(let t of e)t.requestUpdate()};return{render(l,u){return r?t(r)(u):a?o`<div class="callout danger">${a}</div>`:(s.add(l),i??=e().then(e=>(r=e,c(),e)).catch(e=>{throw a=e instanceof Error?e.message:`View failed to load`,c(),e}),i.catch(()=>void 0),o`<div class="muted">${n}</div>`)}}}var Q={agents:Z(()=>F(()=>import(`./view-agents-DNhyzEgf.js`).then(e=>e.t),__vite__mapDeps([0,1]),import.meta.url),e=>e.renderAgents,`Loading agents...`),channels:Z(()=>F(()=>import(`./view-channels-B0V1xJ85.js`).then(e=>e.t),__vite__mapDeps([2,1,0]),import.meta.url),e=>e.renderChannels,`Loading channels...`),chat:Z(()=>F(()=>import(`./view-chat-ByDyhnLw.js`).then(e=>e.t),__vite__mapDeps([3,1,0,2]),import.meta.url),e=>e.renderChat,`Loading Chat...`),config:Z(()=>F(()=>import(`./view-config-Dl4Y5JyC.js`).then(e=>e.t),__vite__mapDeps([4,1,0,2]),import.meta.url),e=>e.renderConfig,`Loading config...`),cron:Z(()=>F(()=>import(`./view-cron-BOjGaH8V.js`).then(e=>e.t),__vite__mapDeps([5,1,0]),import.meta.url),e=>e.renderCron,`Loading cron...`),debug:Z(()=>F(()=>import(`./view-observability-CnK2ipvG.js`).then(e=>e.n),__vite__mapDeps([6,1,0]),import.meta.url),e=>e.renderDebug,`Loading debug...`),instances:Z(()=>F(()=>import(`./view-instances-Dk5bFtS9.js`).then(e=>e.t),__vite__mapDeps([7,1,0]),import.meta.url),e=>e.renderInstances,`Loading instances...`),logs:Z(()=>F(()=>import(`./view-observability-CnK2ipvG.js`).then(e=>e.t),__vite__mapDeps([6,1,0]),import.meta.url),e=>e.renderLogs,`Loading logs...`),dreams:Z(()=>F(()=>import(`./dreams-5cpOLdgU.js`),__vite__mapDeps([8,0,1,5]),import.meta.url),e=>e.renderDreams,`Loading dreams...`),learning:Z(()=>F(()=>import(`./learning-BORaiTQ4.js`),__vite__mapDeps([9,0,1,3,2,5]),import.meta.url),e=>e.renderLearning,`Loading learning...`),nodes:Z(()=>F(()=>import(`./view-nodes-MWnX0cZW.js`).then(e=>e.t),__vite__mapDeps([10,1,0]),import.meta.url),e=>e.renderNodes,`Loading nodes...`),overview:Z(()=>F(()=>import(`./view-overview-CrvoKgpD.js`).then(e=>e.t),__vite__mapDeps([11,1,0,5]),import.meta.url),e=>e.renderOverview,`Loading overview...`),sessions:Z(()=>F(()=>import(`./view-sessions-DYbRtgme.js`).then(e=>e.t),__vite__mapDeps([12,1,0,5]),import.meta.url),e=>e.renderSessions,`Loading sessions...`),skills:Z(()=>F(()=>import(`./view-skills-C_6VXWZR.js`).then(e=>e.t),__vite__mapDeps([13,1,0]),import.meta.url),e=>e.renderSkills,`Loading skills...`),talk:Z(()=>F(()=>import(`./talk-CdqHAcGz.js`),__vite__mapDeps([14,0,1,5]),import.meta.url),e=>e.renderTalk,`Loading Talk...`),usage:Z(()=>F(()=>import(`./view-usage-IPN77Al1.js`).then(e=>e.t),__vite__mapDeps([15,1,0]),import.meta.url),e=>e.renderUsage,`Loading usage...`)},ts=`openclaw.control.usage.date-params.v1`,ns=`__default__`,rs=/unexpected property ['"]mode['"]/i,is=/unexpected property ['"]utcoffset['"]/i,as=/invalid sessions\.usage params/i,os=null;function ss(){return typeof window<`u`&&window.localStorage?window.localStorage:typeof localStorage<`u`?localStorage:null}function cs(){let e=ss();if(!e)return new Set;try{let t=e.getItem(ts);if(!t)return new Set;let n=JSON.parse(t);return!n||!Array.isArray(n.unsupportedGatewayKeys)?new Set:new Set(n.unsupportedGatewayKeys.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean))}catch{return new Set}}function ls(e){let t=ss();if(t)try{t.setItem(ts,JSON.stringify({unsupportedGatewayKeys:Array.from(e)}))}catch{}}function us(){return os||=cs(),os}function ds(e){let t=e?.trim();if(!t)return ns;try{let e=new URL(t),n=e.pathname===`/`?``:e.pathname;return`${e.protocol}//${e.host}${n}`.toLowerCase()}catch{return t.toLowerCase()}}function fs(e){return ds(e.settings?.gatewayUrl)}function ps(e){return!us().has(fs(e))}function ms(e){let t=us();t.add(fs(e)),ls(t)}function hs(e){let t=vs(e);return as.test(t)&&(rs.test(t)||is.test(t))}var gs=e=>{let t=-e,n=t>=0?`+`:`-`,r=Math.abs(t),i=Math.floor(r/60),a=r%60;return a===0?`UTC${n}${i}`:`UTC${n}${i}:${a.toString().padStart(2,`0`)}`},_s=(e,t)=>{if(t)return e===`utc`?{mode:`utc`}:{mode:`specific`,utcOffset:gs(new Date().getTimezoneOffset())}};function vs(e){if(typeof e==`string`)return e;if(e instanceof Error&&typeof e.message==`string`&&e.message.trim())return e.message;if(e&&typeof e==`object`)try{let t=JSON.stringify(e);if(t)return t}catch{}return`request failed`}async function ys(e,t){let n=e.client;if(!(!n||!e.connected)&&!e.usageLoading){e.usageLoading=!0,e.usageError=null;try{let r=t?.startDate??e.usageStartDate,i=t?.endDate??e.usageEndDate,a=async t=>{let a=_s(e.usageTimeZone,t);return await Promise.all([n.request(`sessions.usage`,{startDate:r,endDate:i,...a,limit:1e3,includeContextWeight:!0}),n.request(`usage.cost`,{startDate:r,endDate:i,...a})])},o=(t,n)=>{t&&(e.usageResult=t),n&&(e.usageCostSummary=n)},s=ps(e);try{let[e,t]=await a(s);o(e,t)}catch(t){if(s&&hs(t)){ms(e);let[t,n]=await a(!1);o(t,n)}else throw t}}catch(t){e.usageError=vs(t)}finally{e.usageLoading=!1}}}async function bs(e,t){if(!(!e.client||!e.connected)&&!e.usageTimeSeriesLoading){e.usageTimeSeriesLoading=!0,e.usageTimeSeries=null;try{let n=await e.client.request(`sessions.usage.timeseries`,{key:t});n&&(e.usageTimeSeries=n)}catch{e.usageTimeSeries=null}finally{e.usageTimeSeriesLoading=!1}}}async function xs(e,t){if(!(!e.client||!e.connected)&&!e.usageSessionLogsLoading){e.usageSessionLogsLoading=!0,e.usageSessionLogs=null;try{let n=await e.client.request(`sessions.usage.logs`,{key:t,limit:1e3});n&&Array.isArray(n.logs)&&(e.usageSessionLogs=n.logs)}catch{e.usageSessionLogs=null}finally{e.usageSessionLogsLoading=!1}}}var Ss=null,Cs=e=>{Ss&&clearTimeout(Ss),Ss=window.setTimeout(()=>void ys(e),400)};function ws(e){return e.tab===`usage`?Q.usage.render(e,{loading:e.usageLoading,error:e.usageError,startDate:e.usageStartDate,endDate:e.usageEndDate,sessions:e.usageResult?.sessions??[],sessionsLimitReached:(e.usageResult?.sessions?.length??0)>=1e3,totals:e.usageResult?.totals??null,aggregates:e.usageResult?.aggregates??null,costDaily:e.usageCostSummary?.daily??[],selectedSessions:e.usageSelectedSessions,selectedDays:e.usageSelectedDays,selectedHours:e.usageSelectedHours,chartMode:e.usageChartMode,dailyChartMode:e.usageDailyChartMode,timeSeriesMode:e.usageTimeSeriesMode,timeSeriesBreakdownMode:e.usageTimeSeriesBreakdownMode,timeSeries:e.usageTimeSeries,timeSeriesLoading:e.usageTimeSeriesLoading,timeSeriesCursorStart:e.usageTimeSeriesCursorStart,timeSeriesCursorEnd:e.usageTimeSeriesCursorEnd,sessionLogs:e.usageSessionLogs,sessionLogsLoading:e.usageSessionLogsLoading,sessionLogsExpanded:e.usageSessionLogsExpanded,logFilterRoles:e.usageLogFilterRoles,logFilterTools:e.usageLogFilterTools,logFilterHasTools:e.usageLogFilterHasTools,logFilterQuery:e.usageLogFilterQuery,query:e.usageQuery,queryDraft:e.usageQueryDraft,sessionSort:e.usageSessionSort,sessionSortDir:e.usageSessionSortDir,recentSessions:e.usageRecentSessions,sessionsTab:e.usageSessionsTab,visibleColumns:e.usageVisibleColumns,timeZone:e.usageTimeZone,contextExpanded:e.usageContextExpanded,headerPinned:e.usageHeaderPinned,onStartDateChange:t=>{e.usageStartDate=t,e.usageSelectedDays=[],e.usageSelectedHours=[],e.usageSelectedSessions=[],Cs(e)},onEndDateChange:t=>{e.usageEndDate=t,e.usageSelectedDays=[],e.usageSelectedHours=[],e.usageSelectedSessions=[],Cs(e)},onRefresh:()=>ys(e),onTimeZoneChange:t=>{e.usageTimeZone=t,e.usageSelectedDays=[],e.usageSelectedHours=[],e.usageSelectedSessions=[],ys(e)},onToggleContextExpanded:()=>{e.usageContextExpanded=!e.usageContextExpanded},onToggleSessionLogsExpanded:()=>{e.usageSessionLogsExpanded=!e.usageSessionLogsExpanded},onLogFilterRolesChange:t=>{e.usageLogFilterRoles=t},onLogFilterToolsChange:t=>{e.usageLogFilterTools=t},onLogFilterHasToolsChange:t=>{e.usageLogFilterHasTools=t},onLogFilterQueryChange:t=>{e.usageLogFilterQuery=t},onLogFilterClear:()=>{e.usageLogFilterRoles=[],e.usageLogFilterTools=[],e.usageLogFilterHasTools=!1,e.usageLogFilterQuery=``},onToggleHeaderPinned:()=>{e.usageHeaderPinned=!e.usageHeaderPinned},onSelectHour:(t,n)=>{if(n&&e.usageSelectedHours.length>0){let n=Array.from({length:24},(e,t)=>t),r=e.usageSelectedHours[e.usageSelectedHours.length-1],i=n.indexOf(r),a=n.indexOf(t);if(i!==-1&&a!==-1){let[t,r]=i<a?[i,a]:[a,i],o=n.slice(t,r+1);e.usageSelectedHours=[...new Set([...e.usageSelectedHours,...o])]}}else e.usageSelectedHours.includes(t)?e.usageSelectedHours=e.usageSelectedHours.filter(e=>e!==t):e.usageSelectedHours=[...e.usageSelectedHours,t]},onQueryDraftChange:t=>{e.usageQueryDraft=t,e.usageQueryDebounceTimer&&window.clearTimeout(e.usageQueryDebounceTimer),e.usageQueryDebounceTimer=window.setTimeout(()=>{e.usageQuery=e.usageQueryDraft,e.usageQueryDebounceTimer=null},250)},onApplyQuery:()=>{e.usageQueryDebounceTimer&&=(window.clearTimeout(e.usageQueryDebounceTimer),null),e.usageQuery=e.usageQueryDraft},onClearQuery:()=>{e.usageQueryDebounceTimer&&=(window.clearTimeout(e.usageQueryDebounceTimer),null),e.usageQueryDraft=``,e.usageQuery=``},onSessionSortChange:t=>{e.usageSessionSort=t},onSessionSortDirChange:t=>{e.usageSessionSortDir=t},onSessionsTabChange:t=>{e.usageSessionsTab=t},onToggleColumn:t=>{e.usageVisibleColumns.includes(t)?e.usageVisibleColumns=e.usageVisibleColumns.filter(e=>e!==t):e.usageVisibleColumns=[...e.usageVisibleColumns,t]},onSelectSession:(t,n)=>{if(e.usageTimeSeries=null,e.usageSessionLogs=null,e.usageRecentSessions=[t,...e.usageRecentSessions.filter(e=>e!==t)].slice(0,8),n&&e.usageSelectedSessions.length>0){let n=e.usageChartMode===`tokens`,r=[...e.usageResult?.sessions??[]].toSorted((e,t)=>{let r=n?e.usage?.totalTokens??0:e.usage?.totalCost??0;return(n?t.usage?.totalTokens??0:t.usage?.totalCost??0)-r}).map(e=>e.key),i=e.usageSelectedSessions[e.usageSelectedSessions.length-1],a=r.indexOf(i),o=r.indexOf(t);if(a!==-1&&o!==-1){let[t,n]=a<o?[a,o]:[o,a],i=r.slice(t,n+1);e.usageSelectedSessions=[...new Set([...e.usageSelectedSessions,...i])]}}else e.usageSelectedSessions.length===1&&e.usageSelectedSessions[0]===t?e.usageSelectedSessions=[]:e.usageSelectedSessions=[t];e.usageTimeSeriesCursorStart=null,e.usageTimeSeriesCursorEnd=null,e.usageSelectedSessions.length===1&&(bs(e,e.usageSelectedSessions[0]),xs(e,e.usageSelectedSessions[0]))},onSelectDay:(t,n)=>{if(n&&e.usageSelectedDays.length>0){let n=(e.usageCostSummary?.daily??[]).map(e=>e.date),r=e.usageSelectedDays[e.usageSelectedDays.length-1],i=n.indexOf(r),a=n.indexOf(t);if(i!==-1&&a!==-1){let[t,r]=i<a?[i,a]:[a,i],o=n.slice(t,r+1);e.usageSelectedDays=[...new Set([...e.usageSelectedDays,...o])]}}else e.usageSelectedDays.includes(t)?e.usageSelectedDays=e.usageSelectedDays.filter(e=>e!==t):e.usageSelectedDays=[t]},onChartModeChange:t=>{e.usageChartMode=t},onDailyChartModeChange:t=>{e.usageDailyChartMode=t},onTimeSeriesModeChange:t=>{e.usageTimeSeriesMode=t},onTimeSeriesBreakdownChange:t=>{e.usageTimeSeriesBreakdownMode=t},onTimeSeriesCursorRangeChange:(t,n)=>{e.usageTimeSeriesCursorStart=t,e.usageTimeSeriesCursorEnd=n},onClearDays:()=>{e.usageSelectedDays=[]},onClearHours:()=>{e.usageSelectedHours=[]},onClearSessions:()=>{e.usageSelectedSessions=[],e.usageTimeSeries=null,e.usageSessionLogs=null},onClearFilters:()=>{e.usageSelectedDays=[],e.usageSelectedHours=[],e.usageSelectedSessions=[],e.usageTimeSeries=null,e.usageSessionLogs=null}}):n}function Ts(e){let t=e.hello?.snapshot;return t?.sessionDefaults?.mainSessionKey?.trim()||t?.sessionDefaults?.mainKey?.trim()||`main`}function Es(e,t){e.sessionKey=t,e.chatMessage=``,e.chatStream=null,e.chatStreamStartedAt=null,e.chatRunId=null,e.resetToolStream(),e.resetChatScroll(),e.applySettings({...e.settings,sessionKey:t,lastActiveSessionKey:t})}function Ds(e,t){return o`
17
+ `)}function Ha(e){if(e==null)return null;if(typeof e==`number`||typeof e==`boolean`)return String(e);let t=Va(e),n;if(typeof e==`string`)n=e;else if(t)n=t;else try{n=JSON.stringify(e,null,2)}catch{n=String(e)}let r=i(n,La);return r.truncated?`${r.text}\n\n… truncated (${r.total} chars, showing first ${r.text.length}).`:r.text}function Ua(e){let t=[];return t.push({type:`toolcall`,name:e.name,arguments:e.args??{}}),e.output&&t.push({type:`toolresult`,name:e.name,text:e.output}),{role:`assistant`,toolCallId:e.toolCallId,runId:e.runId,content:t,timestamp:e.startedAt}}function Wa(e){if(e.toolStreamOrder.length<=Fa)return;let t=e.toolStreamOrder.length-Fa,n=e.toolStreamOrder.splice(0,t);for(let t of n)e.toolStreamById.delete(t)}function Ga(e){e.chatToolMessages=e.toolStreamOrder.map(t=>e.toolStreamById.get(t)?.message).filter(e=>!!e)}function Ka(e){e.toolStreamSyncTimer!=null&&(clearTimeout(e.toolStreamSyncTimer),e.toolStreamSyncTimer=null),Ga(e)}function qa(e,t=!1){if(t){Ka(e);return}e.toolStreamSyncTimer??=window.setTimeout(()=>Ka(e),Ia)}function Ja(e){e.toolStreamById.clear(),e.toolStreamOrder=[],e.chatToolMessages=[],Ka(e)}var Ya=5e3,Xa=8e3;function Za(e,t){let n=t.data??{},r=typeof n.phase==`string`?n.phase:``;if(e.compactionClearTimer!=null&&(window.clearTimeout(e.compactionClearTimer),e.compactionClearTimer=null),r===`start`)e.compactionStatus={active:!0,startedAt:Date.now(),completedAt:null,failed:!1};else if(r===`end`){let t=n.completed===!1;e.compactionStatus={active:!1,startedAt:e.compactionStatus?.startedAt??null,completedAt:Date.now(),failed:t},e.compactionClearTimer=window.setTimeout(()=>{e.compactionStatus=null,e.compactionClearTimer=null},Ya)}}function Qa(e,t,n){let r=typeof t.sessionKey==`string`?t.sessionKey:void 0;return r&&r!==e.sessionKey?{accepted:!1}:!e.chatRunId&&n?.allowSessionScopedWhenIdle&&r?{accepted:!0,sessionKey:r}:!r&&e.chatRunId&&t.runId!==e.chatRunId||e.chatRunId&&t.runId!==e.chatRunId||!e.chatRunId?{accepted:!1}:{accepted:!0,sessionKey:r}}function $a(e,t){let n=t.data??{},r=t.stream===`fallback`?`fallback`:X(n.phase);if(t.stream===`lifecycle`&&r!==`fallback`&&r!==`fallback_cleared`||!Qa(e,t,{allowSessionScopedWhenIdle:!0}).accepted)return;let i=Ra(n.selectedProvider,n.selectedModel)??Ra(n.fromProvider,n.fromModel),a=Ra(n.activeProvider,n.activeModel)??Ra(n.toProvider,n.toModel),o=Ra(n.previousActiveProvider,n.previousActiveModel)??X(n.previousActiveModel);if(!i||!a||r===`fallback`&&i===a)return;let s=X(n.reasonSummary)??X(n.reason),c=(()=>{let e=za(n.attemptSummaries);return e.length>0?e:Ba(n.attempts).map(e=>`${Ra(e.provider,e.model)??`${e.provider}/${e.model}`}: ${e.reason}`)})();e.fallbackClearTimer!=null&&(window.clearTimeout(e.fallbackClearTimer),e.fallbackClearTimer=null),e.fallbackStatus={phase:r===`fallback_cleared`?`cleared`:`active`,selected:i,active:r===`fallback_cleared`?i:a,previous:r===`fallback_cleared`?o??(a===i?void 0:a):void 0,reason:s??void 0,attempts:c,occurredAt:Date.now()},e.fallbackClearTimer=window.setTimeout(()=>{e.fallbackStatus=null,e.fallbackClearTimer=null},Xa)}function eo(e,t){if(!t)return;if(t.stream===`compaction`){Za(e,t);return}if(t.stream===`lifecycle`||t.stream===`fallback`){$a(e,t);return}if(t.stream!==`tool`)return;let n=Qa(e,t);if(!n.accepted)return;let r=n.sessionKey,i=t.data??{},a=typeof i.toolCallId==`string`?i.toolCallId:``;if(!a)return;let o=typeof i.name==`string`?i.name:`tool`,s=typeof i.phase==`string`?i.phase:``,c=s===`start`?i.args:void 0,l=s===`update`?Ha(i.partialResult):s===`result`?Ha(i.result):void 0,u=Date.now(),d=e.toolStreamById.get(a);d?(d.name=o,c!==void 0&&(d.args=c),l!==void 0&&(d.output=l||void 0),d.updatedAt=u):(d={toolCallId:a,runId:t.runId,sessionKey:r,name:o,args:c,output:l||void 0,startedAt:typeof t.ts==`number`?t.ts:u,updatedAt:u,message:{}},e.toolStreamById.set(a,d),e.toolStreamOrder.push(a)),d.message=Ua(d),Wa(e),qa(e,s===`result`)}var to=/^\s*NO_REPLY\s*$/;function no(e){return to.test(e)}function ro(e){if(!e||typeof e!=`object`)return!1;let t=e;if((typeof t.role==`string`?t.role.toLowerCase():``)!==`assistant`)return!1;if(typeof t.text==`string`)return no(t.text);let n=f(e);return typeof n==`string`&&no(n)}async function io(e){if(!(!e.client||!e.connected)){e.chatLoading=!0,e.lastError=null;try{let t=await e.client.request(`chat.history`,{sessionKey:e.sessionKey,limit:200});e.chatMessages=(Array.isArray(t.messages)?t.messages:[]).filter(e=>!ro(e)),e.chatThinkingLevel=t.thinkingLevel??null}catch(t){e.lastError=String(t)}finally{e.chatLoading=!1}}}function ao(e){let t=/^data:([^;]+);base64,(.+)$/.exec(e);return t?{mimeType:t[1],content:t[2]}:null}function oo(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=n.role;if(typeof r==`string`){if((t.roleCaseSensitive?r:r.toLowerCase())!==`assistant`)return null}else if(t.roleRequirement===`required`)return null;return t.requireContentArray?Array.isArray(n.content)?n:null:!(`content`in n)&&!(t.allowTextField&&`text`in n)?null:n}function so(e){return oo(e,{roleRequirement:`required`,roleCaseSensitive:!0,requireContentArray:!0})}function co(e){return oo(e,{roleRequirement:`optional`,allowTextField:!0})}async function lo(e,t,n){if(!e.client||!e.connected)return null;let r=t.trim(),i=n&&n.length>0;if(!r&&!i)return null;let a=Date.now(),o=[];if(r&&o.push({type:`text`,text:r}),i)for(let e of n)o.push({type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.dataUrl}});e.chatMessages=[...e.chatMessages,{role:`user`,content:o,timestamp:a}],e.chatSending=!0,e.lastError=null;let s=ur();e.chatRunId=s,e.chatStream=``,e.chatStreamStartedAt=a;let c=i?n.map(e=>{let t=ao(e.dataUrl);return t?{type:`image`,mimeType:t.mimeType,content:t.content}:null}).filter(e=>e!==null):void 0;try{return await e.client.request(`chat.send`,{sessionKey:e.sessionKey,message:r,deliver:!1,idempotencyKey:s,attachments:c}),s}catch(t){let n=String(t);return e.chatRunId=null,e.chatStream=null,e.chatStreamStartedAt=null,e.lastError=n,e.chatMessages=[...e.chatMessages,{role:`assistant`,content:[{type:`text`,text:`Error: `+n}],timestamp:Date.now()}],null}finally{e.chatSending=!1}}async function uo(e){if(!e.client||!e.connected)return!1;let t=e.chatRunId;try{return await e.client.request(`chat.abort`,t?{sessionKey:e.sessionKey,runId:t}:{sessionKey:e.sessionKey}),!0}catch(t){return e.lastError=String(t),!1}}function fo(e,t){if(!t||t.sessionKey!==e.sessionKey)return null;if(t.runId&&e.chatRunId&&t.runId!==e.chatRunId){if(t.state===`final`){let n=co(t.message);return n&&!ro(n)?(e.chatMessages=[...e.chatMessages,n],null):`final`}return null}if(t.state===`delta`){let n=f(t.message);if(typeof n==`string`&&!no(n)){let t=e.chatStream??``;(!t||n.length>=t.length)&&(e.chatStream=n)}}else if(t.state===`final`){let n=co(t.message);n&&!ro(n)?e.chatMessages=[...e.chatMessages,n]:e.chatStream?.trim()&&!no(e.chatStream)&&(e.chatMessages=[...e.chatMessages,{role:`assistant`,content:[{type:`text`,text:e.chatStream}],timestamp:Date.now()}]),e.chatStream=null,e.chatRunId=null,e.chatStreamStartedAt=null}else if(t.state===`aborted`){let n=so(t.message);if(n&&!ro(n))e.chatMessages=[...e.chatMessages,n];else{let t=e.chatStream??``;t.trim()&&!no(t)&&(e.chatMessages=[...e.chatMessages,{role:`assistant`,content:[{type:`text`,text:t}],timestamp:Date.now()}])}e.chatStream=null,e.chatRunId=null,e.chatStreamStartedAt=null}else t.state===`error`&&(e.chatStream=null,e.chatRunId=null,e.chatStreamStartedAt=null,e.lastError=t.errorMessage??`chat error`);return t.state}function po(e){return e.chatSending||!!e.chatRunId}function mo(e){let t=e.trim();if(!t)return!1;let n=t.toLowerCase();return n===`/stop`||n===`stop`||n===`esc`||n===`abort`||n===`wait`||n===`exit`}function ho(e){let t=e.trim();if(!t)return!1;let n=t.toLowerCase();return n===`/new`||n===`/reset`||n.startsWith(`/new `)||n.startsWith(`/reset `)}async function go(e){e.connected&&(e.chatMessage=``,await uo(e))}function _o(e,t,n,r){let i=t.trim(),a=!!(n&&n.length>0);!i&&!a||(e.chatQueue=[...e.chatQueue,{id:ur(),text:i,createdAt:Date.now(),attachments:a?n?.map(e=>({...e})):void 0,refreshSessions:r}])}async function vo(e,t,n){Ja(e);let r=await lo(e,t,n?.attachments),i=!!r;return!i&&n?.previousDraft!=null&&(e.chatMessage=n.previousDraft),!i&&n?.previousAttachments&&(e.chatAttachments=n.previousAttachments),i&&ga(e,e.sessionKey),i&&n?.restoreDraft&&n.previousDraft?.trim()&&(e.chatMessage=n.previousDraft),i&&n?.restoreAttachments&&n.previousAttachments?.length&&(e.chatAttachments=n.previousAttachments),yt(e),i&&!e.chatRunId&&yo(e),i&&n?.refreshSessions&&r&&e.refreshSessionsAfterChat.add(r),i}async function yo(e){if(!e.connected||po(e))return;let[t,...n]=e.chatQueue;t&&(e.chatQueue=n,await vo(e,t.text,{attachments:t.attachments,refreshSessions:t.refreshSessions})||(e.chatQueue=[t,...e.chatQueue]))}function bo(e,t){e.chatQueue=e.chatQueue.filter(e=>e.id!==t)}async function xo(e,t,n){if(!e.connected)return;let r=e.chatMessage,i=(t??e.chatMessage).trim(),a=e.chatAttachments??[],o=t==null?a:[],s=o.length>0;if(!i&&!s)return;if(mo(i)){await go(e);return}let c=ho(i);if(t??(e.chatMessage=``,e.chatAttachments=[]),po(e)){_o(e,i,o,c);return}await vo(e,i,{previousDraft:t==null?r:void 0,restoreDraft:!!(t&&n?.restoreDraft),attachments:s?o:void 0,previousAttachments:t==null?a:void 0,restoreAttachments:!!(t&&n?.restoreDraft),refreshSessions:c})}async function So(e,t){await Promise.all([io(e),si(e,{activeMinutes:120}),Eo(e)]),t?.scheduleScroll!==!1&&yt(e)}var Co=yo;function wo(e){let t=_t(e.sessionKey);return t?.agentId?t.agentId:(e.hello?.snapshot)?.sessionDefaults?.defaultAgentId?.trim()||`main`}function To(e,t){let n=E(e),r=encodeURIComponent(t);return n?`${n}/avatar/${r}?meta=1`:`/avatar/${r}?meta=1`}async function Eo(e){if(!e.connected){e.chatAvatarUrl=null;return}let t=wo(e);if(!t){e.chatAvatarUrl=null;return}e.chatAvatarUrl=null;let n=To(e.basePath,t);try{let t=await fetch(n,{method:`GET`});if(!t.ok){e.chatAvatarUrl=null;return}let r=await t.json();e.chatAvatarUrl=(typeof r.avatarUrl==`string`?r.avatarUrl.trim():``)||null}catch{e.chatAvatarUrl=null}}function Do(e){if(!e||e.state!==`final`)return!1;if(!e.message||typeof e.message!=`object`)return!0;let t=e.message,n=typeof t.role==`string`?t.role.toLowerCase():``;return!!(n&&n!==`assistant`)}function Oo(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)return n.length<=t?n:n.slice(0,t)}var ko=50,Ao=200;function jo(e){let t=Oo(e?.name,ko)??`Assistant`,n=Oo(e?.avatar??void 0,Ao)??null;return{agentId:typeof e?.agentId==`string`&&e.agentId.trim()?e.agentId.trim():null,name:t,avatar:n}}async function Mo(e,t){if(!e.client||!e.connected)return;let n=t?.sessionKey?.trim()||e.sessionKey.trim(),r=n?{sessionKey:n}:{};try{let t=await e.client.request(`agent.identity.get`,r);if(!t)return;let n=jo(t);e.assistantName=n.name,e.assistantAvatar=n.avatar,e.assistantAgentId=n.agentId??null}catch{}}function No(e){return typeof e==`object`&&!!e}function Po(e){if(!No(e))return null;let t=typeof e.id==`string`?e.id.trim():``,n=e.request;if(!t||!No(n))return null;let r=typeof n.command==`string`?n.command.trim():``;if(!r)return null;let i=typeof e.createdAtMs==`number`?e.createdAtMs:0,a=typeof e.expiresAtMs==`number`?e.expiresAtMs:0;return!i||!a?null:{id:t,request:{command:r,cwd:typeof n.cwd==`string`?n.cwd:null,host:typeof n.host==`string`?n.host:null,security:typeof n.security==`string`?n.security:null,ask:typeof n.ask==`string`?n.ask:null,agentId:typeof n.agentId==`string`?n.agentId:null,resolvedPath:typeof n.resolvedPath==`string`?n.resolvedPath:null,sessionKey:typeof n.sessionKey==`string`?n.sessionKey:null},createdAtMs:i,expiresAtMs:a}}function Fo(e){if(!No(e))return null;let t=typeof e.id==`string`?e.id.trim():``;return t?{id:t,decision:typeof e.decision==`string`?e.decision:null,resolvedBy:typeof e.resolvedBy==`string`?e.resolvedBy:null,ts:typeof e.ts==`number`?e.ts:null}:null}function Io(e){let t=Date.now();return e.filter(e=>e.expiresAtMs>t)}function Lo(e,t){let n=Io(e).filter(e=>e.id!==t.id);return n.push(t),n}function Ro(e,t){return Io(e).filter(e=>e.id!==t)}function zo(e){return(t,n)=>{let r=e.client;return r?r.request(t,n):Promise.reject(Error(`Gateway is not connected`))}}function Bo(e,t){let n=(e??``).trim(),r=t.mainSessionKey?.trim();if(!r)return n;if(!n)return r;let i=t.mainKey?.trim()||`main`,a=t.defaultAgentId?.trim();return n===`main`||n===i||a&&(n===`agent:${a}:main`||n===`agent:${a}:${i}`)?r:n}function Vo(e,t){if(!t?.mainSessionKey)return;let n=Bo(e.sessionKey,t),r=Bo(e.settings.sessionKey,t),i=Bo(e.settings.lastActiveSessionKey,t),a=n||r||e.sessionKey,o={...e.settings,sessionKey:r||a,lastActiveSessionKey:i||a},s=o.sessionKey!==e.settings.sessionKey||o.lastActiveSessionKey!==e.settings.lastActiveSessionKey;a!==e.sessionKey&&(e.sessionKey=a),s&&ha(e,o)}function Ho(e){e.lastError=null,e.lastErrorCode=null,e.hello=null,e.connected=!1,e.execApprovalQueue=[],e.execApprovalError=null;let t=e.client,n=new mr({url:e.settings.gatewayUrl,token:e.settings.token.trim()?e.settings.token:void 0,password:e.password.trim()?e.password:void 0,clientName:`openclaw-control-ui`,mode:`webchat`,instanceId:e.clientInstanceId,onHello:t=>{if(e.client===n){try{e.talkController.loadAvailability().catch(()=>void 0)}catch{}e.talkController.reconnectIfIntended().catch(()=>void 0),e.connected=!0,e.lastError=null,e.lastErrorCode=null,e.hello=t,qo(e,t),e.chatRunId=null,e.chatStream=null,e.chatStreamStartedAt=null,Ja(e),Mo(e),Li(e),Ri(e),oi(e,{quiet:!0}),Bi(e,{quiet:!0}),ci(e),fi(e),ba(e)}},onClose:({code:t,reason:r,error:i})=>{if(e.client===n)if(e.talkController.handleGatewayClose(),e.connected=!1,e.lastErrorCode=fr(i)??(typeof i?.code==`string`?i.code:null),t!==1012){if(i?.message){e.lastError=i.message;return}e.lastError=`disconnected (${t}): ${r||`no reason`}`}else e.lastError=null,e.lastErrorCode=null},onEvent:t=>{e.client===n&&Uo(e,t)},onGap:({expected:t,received:r})=>{e.client===n&&(e.lastError=`event gap detected (expected seq ${t}, got ${r}); refresh recommended`,e.lastErrorCode=null)}});e.client=n,t?.stop(),n.start()}function Uo(e,t){try{Ko(e,t)}catch(e){console.error(`[gateway] handleGatewayEvent error:`,t.event,e)}}function Wo(e,t,n){if(n!==`final`&&n!==`error`&&n!==`aborted`)return;Ja(e),Co(e);let r=t?.runId;!r||!e.refreshSessionsAfterChat.has(r)||(e.refreshSessionsAfterChat.delete(r),n===`final`&&si(e,{activeMinutes:120}))}function Go(e,t){t?.sessionKey&&ga(e,t.sessionKey);let n=fo(e,t);Wo(e,t,n),n===`final`&&Do(t)&&io(e)}function Ko(e,t){let n=t.event===`talk.realtime.relay`&&typeof t.payload==`object`&&t.payload!==null?t.payload.type:void 0,r=t.event===`talk.realtime.relay`?{type:typeof n==`string`?n:void 0}:t.payload;if(e.eventLogBuffer=[{ts:Date.now(),event:t.event,payload:r},...e.eventLogBuffer].slice(0,250),e.tab===`debug`&&(e.eventLog=e.eventLogBuffer),t.event===`talk.realtime.relay`){e.talkController.handleRelayEvent(t.payload);return}if(t.event===`agent`){if(e.onboarding)return;eo(e,t.payload);return}if(t.event===`chat`){Go(e,t.payload);return}if(t.event===`presence`){let n=t.payload;n?.presence&&Array.isArray(n.presence)&&(e.presenceEntries=n.presence,e.presenceError=null,e.presenceStatus=null);return}if(t.event===`cron`&&e.tab===`cron`&&Pa(e),t.event===`dreams.update`){Zr(e);return}if((t.event===`device.pair.requested`||t.event===`device.pair.resolved`)&&Bi(e,{quiet:!0}),t.event===`exec.approval.requested`){let n=Po(t.payload);if(n){e.execApprovalQueue=Lo(e.execApprovalQueue,n),e.execApprovalError=null;let t=Math.max(0,n.expiresAtMs-Date.now()+500);window.setTimeout(()=>{e.execApprovalQueue=Ro(e.execApprovalQueue,n.id)},t)}return}if(t.event===`exec.approval.resolved`){let n=Fo(t.payload);n&&(e.execApprovalQueue=Ro(e.execApprovalQueue,n.id));return}if(t.event===`sessions.runsUpdate`){let n=t.payload;if(n){let t=e,r=Date.now();t.recentlyCompletedRuns=bi(t.sessionRunsPrevKeys,n.runs,t.recentlyCompletedRuns,r),t.sessionRunsPrevKeys=new Set(n.runs.map(e=>e.key)),t.sessionRunsResult=n,t.sessionRunsFetchedAt=r,t.sessionRunsError=null}return}t.event===`update.available`&&(e.updateAvailable=t.payload?.updateAvailable??null)}function qo(e,t){let n=t.snapshot;n?.presence&&Array.isArray(n.presence)&&(e.presenceEntries=n.presence),n?.health&&(e.debugHealth=n.health),n?.sessionDefaults&&Vo(e,n.sessionDefaults),e.updateAvailable=n?.updateAvailable??null}var Jo=`/__openclaw/control-ui-config.json`;async function Yo(e){if(typeof window>`u`||typeof fetch!=`function`)return;let t=E(e.basePath??``),n=t?`${t}${Jo}`:Jo;try{let t=await fetch(n,{method:`GET`,headers:{Accept:`application/json`},credentials:`same-origin`});if(!t.ok)return;let r=await t.json(),i=jo({agentId:r.assistantAgentId??null,name:r.assistantName,avatar:r.assistantAvatar??null});e.assistantName=i.name,e.assistantAvatar=i.avatar,e.assistantAgentId=i.agentId??null,e.consolePath=typeof r.consolePath==`string`?r.consolePath:null}catch{}}function Xo(e){e.basePath=xa(),Yo(e),_a(e),Ea(e,!0),Sa(e),wa(e),window.addEventListener(`popstate`,e.popStateHandler),typeof document<`u`&&document.addEventListener(`visibilitychange`,e.visibilityHandler),Ho(e),xi(e),Di(e),Mi(e),ki(e),e.tab===`logs`&&Ci(e),e.tab===`debug`&&Ti(e)}function Zo(e){ei(e)}function Qo(e){Tt(e)}function $o(e){try{e.talkController.stop().catch(()=>void 0)}catch{}window.removeEventListener(`popstate`,e.popStateHandler),typeof document<`u`&&document.removeEventListener(`visibilitychange`,e.visibilityHandler),Si(e),wi(e),Ei(e),Oi(e),Ni(e),Ai(e),e.client?.stop(),e.client=null,e.connected=!1,Ta(e),e.topbarObserver?.disconnect(),e.topbarObserver=null}function es(e,t){if(!(e.tab===`chat`&&e.chatManualRefreshInFlight)){if(e.tab===`chat`&&(t.has(`chatMessages`)||t.has(`chatToolMessages`)||t.has(`chatStream`)||t.has(`chatLoading`)||t.has(`tab`))){let n=t.has(`tab`),r=t.has(`chatLoading`)&&t.get(`chatLoading`)===!0&&!e.chatLoading;yt(e,n||r||!e.chatHasAutoScrolled)}e.tab===`logs`&&(t.has(`logsEntries`)||t.has(`logsAutoFollow`)||t.has(`tab`))&&e.logsAutoFollow&&e.logsAtBottom&&bt(e,t.has(`tab`)||t.has(`logsAutoFollow`))}}function Z(e,t,n){let r=null,i=null,a=null,s=new Set,c=()=>{let e=[...s];s.clear();for(let t of e)t.requestUpdate()};return{render(l,u){return r?t(r)(u):a?o`<div class="callout danger">${a}</div>`:(s.add(l),i??=e().then(e=>(r=e,c(),e)).catch(e=>{throw a=e instanceof Error?e.message:`View failed to load`,c(),e}),i.catch(()=>void 0),o`<div class="muted">${n}</div>`)}}}var Q={agents:Z(()=>F(()=>import(`./view-agents-DNhyzEgf.js`).then(e=>e.t),__vite__mapDeps([0,1]),import.meta.url),e=>e.renderAgents,`Loading agents...`),channels:Z(()=>F(()=>import(`./view-channels-B0V1xJ85.js`).then(e=>e.t),__vite__mapDeps([2,1,0]),import.meta.url),e=>e.renderChannels,`Loading channels...`),chat:Z(()=>F(()=>import(`./view-chat-DCakYJRB.js`).then(e=>e.t),__vite__mapDeps([3,1,0,2]),import.meta.url),e=>e.renderChat,`Loading Chat...`),config:Z(()=>F(()=>import(`./view-config-Dl4Y5JyC.js`).then(e=>e.t),__vite__mapDeps([4,1,0,2]),import.meta.url),e=>e.renderConfig,`Loading config...`),cron:Z(()=>F(()=>import(`./view-cron-BOjGaH8V.js`).then(e=>e.t),__vite__mapDeps([5,1,0]),import.meta.url),e=>e.renderCron,`Loading cron...`),debug:Z(()=>F(()=>import(`./view-observability-CnK2ipvG.js`).then(e=>e.n),__vite__mapDeps([6,1,0]),import.meta.url),e=>e.renderDebug,`Loading debug...`),instances:Z(()=>F(()=>import(`./view-instances-Dk5bFtS9.js`).then(e=>e.t),__vite__mapDeps([7,1,0]),import.meta.url),e=>e.renderInstances,`Loading instances...`),logs:Z(()=>F(()=>import(`./view-observability-CnK2ipvG.js`).then(e=>e.t),__vite__mapDeps([6,1,0]),import.meta.url),e=>e.renderLogs,`Loading logs...`),dreams:Z(()=>F(()=>import(`./dreams-CFX8_iO7.js`),__vite__mapDeps([8,0,1,5]),import.meta.url),e=>e.renderDreams,`Loading dreams...`),learning:Z(()=>F(()=>import(`./learning-XJj58fEK.js`),__vite__mapDeps([9,0,1,3,2,5]),import.meta.url),e=>e.renderLearning,`Loading learning...`),nodes:Z(()=>F(()=>import(`./view-nodes-MWnX0cZW.js`).then(e=>e.t),__vite__mapDeps([10,1,0]),import.meta.url),e=>e.renderNodes,`Loading nodes...`),overview:Z(()=>F(()=>import(`./view-overview-CrvoKgpD.js`).then(e=>e.t),__vite__mapDeps([11,1,0,5]),import.meta.url),e=>e.renderOverview,`Loading overview...`),sessions:Z(()=>F(()=>import(`./view-sessions-DYbRtgme.js`).then(e=>e.t),__vite__mapDeps([12,1,0,5]),import.meta.url),e=>e.renderSessions,`Loading sessions...`),skills:Z(()=>F(()=>import(`./view-skills-C_6VXWZR.js`).then(e=>e.t),__vite__mapDeps([13,1,0]),import.meta.url),e=>e.renderSkills,`Loading skills...`),talk:Z(()=>F(()=>import(`./talk-CdqHAcGz.js`),__vite__mapDeps([14,0,1,5]),import.meta.url),e=>e.renderTalk,`Loading Talk...`),usage:Z(()=>F(()=>import(`./view-usage-IPN77Al1.js`).then(e=>e.t),__vite__mapDeps([15,1,0]),import.meta.url),e=>e.renderUsage,`Loading usage...`)},ts=`openclaw.control.usage.date-params.v1`,ns=`__default__`,rs=/unexpected property ['"]mode['"]/i,is=/unexpected property ['"]utcoffset['"]/i,as=/invalid sessions\.usage params/i,os=null;function ss(){return typeof window<`u`&&window.localStorage?window.localStorage:typeof localStorage<`u`?localStorage:null}function cs(){let e=ss();if(!e)return new Set;try{let t=e.getItem(ts);if(!t)return new Set;let n=JSON.parse(t);return!n||!Array.isArray(n.unsupportedGatewayKeys)?new Set:new Set(n.unsupportedGatewayKeys.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean))}catch{return new Set}}function ls(e){let t=ss();if(t)try{t.setItem(ts,JSON.stringify({unsupportedGatewayKeys:Array.from(e)}))}catch{}}function us(){return os||=cs(),os}function ds(e){let t=e?.trim();if(!t)return ns;try{let e=new URL(t),n=e.pathname===`/`?``:e.pathname;return`${e.protocol}//${e.host}${n}`.toLowerCase()}catch{return t.toLowerCase()}}function fs(e){return ds(e.settings?.gatewayUrl)}function ps(e){return!us().has(fs(e))}function ms(e){let t=us();t.add(fs(e)),ls(t)}function hs(e){let t=vs(e);return as.test(t)&&(rs.test(t)||is.test(t))}var gs=e=>{let t=-e,n=t>=0?`+`:`-`,r=Math.abs(t),i=Math.floor(r/60),a=r%60;return a===0?`UTC${n}${i}`:`UTC${n}${i}:${a.toString().padStart(2,`0`)}`},_s=(e,t)=>{if(t)return e===`utc`?{mode:`utc`}:{mode:`specific`,utcOffset:gs(new Date().getTimezoneOffset())}};function vs(e){if(typeof e==`string`)return e;if(e instanceof Error&&typeof e.message==`string`&&e.message.trim())return e.message;if(e&&typeof e==`object`)try{let t=JSON.stringify(e);if(t)return t}catch{}return`request failed`}async function ys(e,t){let n=e.client;if(!(!n||!e.connected)&&!e.usageLoading){e.usageLoading=!0,e.usageError=null;try{let r=t?.startDate??e.usageStartDate,i=t?.endDate??e.usageEndDate,a=async t=>{let a=_s(e.usageTimeZone,t);return await Promise.all([n.request(`sessions.usage`,{startDate:r,endDate:i,...a,limit:1e3,includeContextWeight:!0}),n.request(`usage.cost`,{startDate:r,endDate:i,...a})])},o=(t,n)=>{t&&(e.usageResult=t),n&&(e.usageCostSummary=n)},s=ps(e);try{let[e,t]=await a(s);o(e,t)}catch(t){if(s&&hs(t)){ms(e);let[t,n]=await a(!1);o(t,n)}else throw t}}catch(t){e.usageError=vs(t)}finally{e.usageLoading=!1}}}async function bs(e,t){if(!(!e.client||!e.connected)&&!e.usageTimeSeriesLoading){e.usageTimeSeriesLoading=!0,e.usageTimeSeries=null;try{let n=await e.client.request(`sessions.usage.timeseries`,{key:t});n&&(e.usageTimeSeries=n)}catch{e.usageTimeSeries=null}finally{e.usageTimeSeriesLoading=!1}}}async function xs(e,t){if(!(!e.client||!e.connected)&&!e.usageSessionLogsLoading){e.usageSessionLogsLoading=!0,e.usageSessionLogs=null;try{let n=await e.client.request(`sessions.usage.logs`,{key:t,limit:1e3});n&&Array.isArray(n.logs)&&(e.usageSessionLogs=n.logs)}catch{e.usageSessionLogs=null}finally{e.usageSessionLogsLoading=!1}}}var Ss=null,Cs=e=>{Ss&&clearTimeout(Ss),Ss=window.setTimeout(()=>void ys(e),400)};function ws(e){return e.tab===`usage`?Q.usage.render(e,{loading:e.usageLoading,error:e.usageError,startDate:e.usageStartDate,endDate:e.usageEndDate,sessions:e.usageResult?.sessions??[],sessionsLimitReached:(e.usageResult?.sessions?.length??0)>=1e3,totals:e.usageResult?.totals??null,aggregates:e.usageResult?.aggregates??null,costDaily:e.usageCostSummary?.daily??[],selectedSessions:e.usageSelectedSessions,selectedDays:e.usageSelectedDays,selectedHours:e.usageSelectedHours,chartMode:e.usageChartMode,dailyChartMode:e.usageDailyChartMode,timeSeriesMode:e.usageTimeSeriesMode,timeSeriesBreakdownMode:e.usageTimeSeriesBreakdownMode,timeSeries:e.usageTimeSeries,timeSeriesLoading:e.usageTimeSeriesLoading,timeSeriesCursorStart:e.usageTimeSeriesCursorStart,timeSeriesCursorEnd:e.usageTimeSeriesCursorEnd,sessionLogs:e.usageSessionLogs,sessionLogsLoading:e.usageSessionLogsLoading,sessionLogsExpanded:e.usageSessionLogsExpanded,logFilterRoles:e.usageLogFilterRoles,logFilterTools:e.usageLogFilterTools,logFilterHasTools:e.usageLogFilterHasTools,logFilterQuery:e.usageLogFilterQuery,query:e.usageQuery,queryDraft:e.usageQueryDraft,sessionSort:e.usageSessionSort,sessionSortDir:e.usageSessionSortDir,recentSessions:e.usageRecentSessions,sessionsTab:e.usageSessionsTab,visibleColumns:e.usageVisibleColumns,timeZone:e.usageTimeZone,contextExpanded:e.usageContextExpanded,headerPinned:e.usageHeaderPinned,onStartDateChange:t=>{e.usageStartDate=t,e.usageSelectedDays=[],e.usageSelectedHours=[],e.usageSelectedSessions=[],Cs(e)},onEndDateChange:t=>{e.usageEndDate=t,e.usageSelectedDays=[],e.usageSelectedHours=[],e.usageSelectedSessions=[],Cs(e)},onRefresh:()=>ys(e),onTimeZoneChange:t=>{e.usageTimeZone=t,e.usageSelectedDays=[],e.usageSelectedHours=[],e.usageSelectedSessions=[],ys(e)},onToggleContextExpanded:()=>{e.usageContextExpanded=!e.usageContextExpanded},onToggleSessionLogsExpanded:()=>{e.usageSessionLogsExpanded=!e.usageSessionLogsExpanded},onLogFilterRolesChange:t=>{e.usageLogFilterRoles=t},onLogFilterToolsChange:t=>{e.usageLogFilterTools=t},onLogFilterHasToolsChange:t=>{e.usageLogFilterHasTools=t},onLogFilterQueryChange:t=>{e.usageLogFilterQuery=t},onLogFilterClear:()=>{e.usageLogFilterRoles=[],e.usageLogFilterTools=[],e.usageLogFilterHasTools=!1,e.usageLogFilterQuery=``},onToggleHeaderPinned:()=>{e.usageHeaderPinned=!e.usageHeaderPinned},onSelectHour:(t,n)=>{if(n&&e.usageSelectedHours.length>0){let n=Array.from({length:24},(e,t)=>t),r=e.usageSelectedHours[e.usageSelectedHours.length-1],i=n.indexOf(r),a=n.indexOf(t);if(i!==-1&&a!==-1){let[t,r]=i<a?[i,a]:[a,i],o=n.slice(t,r+1);e.usageSelectedHours=[...new Set([...e.usageSelectedHours,...o])]}}else e.usageSelectedHours.includes(t)?e.usageSelectedHours=e.usageSelectedHours.filter(e=>e!==t):e.usageSelectedHours=[...e.usageSelectedHours,t]},onQueryDraftChange:t=>{e.usageQueryDraft=t,e.usageQueryDebounceTimer&&window.clearTimeout(e.usageQueryDebounceTimer),e.usageQueryDebounceTimer=window.setTimeout(()=>{e.usageQuery=e.usageQueryDraft,e.usageQueryDebounceTimer=null},250)},onApplyQuery:()=>{e.usageQueryDebounceTimer&&=(window.clearTimeout(e.usageQueryDebounceTimer),null),e.usageQuery=e.usageQueryDraft},onClearQuery:()=>{e.usageQueryDebounceTimer&&=(window.clearTimeout(e.usageQueryDebounceTimer),null),e.usageQueryDraft=``,e.usageQuery=``},onSessionSortChange:t=>{e.usageSessionSort=t},onSessionSortDirChange:t=>{e.usageSessionSortDir=t},onSessionsTabChange:t=>{e.usageSessionsTab=t},onToggleColumn:t=>{e.usageVisibleColumns.includes(t)?e.usageVisibleColumns=e.usageVisibleColumns.filter(e=>e!==t):e.usageVisibleColumns=[...e.usageVisibleColumns,t]},onSelectSession:(t,n)=>{if(e.usageTimeSeries=null,e.usageSessionLogs=null,e.usageRecentSessions=[t,...e.usageRecentSessions.filter(e=>e!==t)].slice(0,8),n&&e.usageSelectedSessions.length>0){let n=e.usageChartMode===`tokens`,r=[...e.usageResult?.sessions??[]].toSorted((e,t)=>{let r=n?e.usage?.totalTokens??0:e.usage?.totalCost??0;return(n?t.usage?.totalTokens??0:t.usage?.totalCost??0)-r}).map(e=>e.key),i=e.usageSelectedSessions[e.usageSelectedSessions.length-1],a=r.indexOf(i),o=r.indexOf(t);if(a!==-1&&o!==-1){let[t,n]=a<o?[a,o]:[o,a],i=r.slice(t,n+1);e.usageSelectedSessions=[...new Set([...e.usageSelectedSessions,...i])]}}else e.usageSelectedSessions.length===1&&e.usageSelectedSessions[0]===t?e.usageSelectedSessions=[]:e.usageSelectedSessions=[t];e.usageTimeSeriesCursorStart=null,e.usageTimeSeriesCursorEnd=null,e.usageSelectedSessions.length===1&&(bs(e,e.usageSelectedSessions[0]),xs(e,e.usageSelectedSessions[0]))},onSelectDay:(t,n)=>{if(n&&e.usageSelectedDays.length>0){let n=(e.usageCostSummary?.daily??[]).map(e=>e.date),r=e.usageSelectedDays[e.usageSelectedDays.length-1],i=n.indexOf(r),a=n.indexOf(t);if(i!==-1&&a!==-1){let[t,r]=i<a?[i,a]:[a,i],o=n.slice(t,r+1);e.usageSelectedDays=[...new Set([...e.usageSelectedDays,...o])]}}else e.usageSelectedDays.includes(t)?e.usageSelectedDays=e.usageSelectedDays.filter(e=>e!==t):e.usageSelectedDays=[t]},onChartModeChange:t=>{e.usageChartMode=t},onDailyChartModeChange:t=>{e.usageDailyChartMode=t},onTimeSeriesModeChange:t=>{e.usageTimeSeriesMode=t},onTimeSeriesBreakdownChange:t=>{e.usageTimeSeriesBreakdownMode=t},onTimeSeriesCursorRangeChange:(t,n)=>{e.usageTimeSeriesCursorStart=t,e.usageTimeSeriesCursorEnd=n},onClearDays:()=>{e.usageSelectedDays=[]},onClearHours:()=>{e.usageSelectedHours=[]},onClearSessions:()=>{e.usageSelectedSessions=[],e.usageTimeSeries=null,e.usageSessionLogs=null},onClearFilters:()=>{e.usageSelectedDays=[],e.usageSelectedHours=[],e.usageSelectedSessions=[],e.usageTimeSeries=null,e.usageSessionLogs=null}}):n}function Ts(e){let t=e.hello?.snapshot;return t?.sessionDefaults?.mainSessionKey?.trim()||t?.sessionDefaults?.mainKey?.trim()||`main`}function Es(e,t){e.sessionKey=t,e.chatMessage=``,e.chatStream=null,e.chatStreamStartedAt=null,e.chatRunId=null,e.resetToolStream(),e.resetChatScroll(),e.applySettings({...e.settings,sessionKey:t,lastActiveSessionKey:t})}function Ds(e,t){return o`
18
18
  <a
19
19
  href=${M(t,e.basePath)}
20
20
  class="nav-item ${e.tab===t?`active`:``}"
@@ -436,4 +436,4 @@ import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import{D as n,E as r,S as i
436
436
  `}async function lc(e){if(!(!e.client||!e.connected))try{e.overview=await e.client.request(`learning.overview`,{})}catch(t){e.learningError=String(t)}}async function uc(e){if(!(!e.client||!e.connected))try{e.proposals=(await e.client.request(`learning.listProposals`,{})).proposals??[]}catch(t){e.learningError=String(t)}}async function dc(e){if(!(!e.client||!e.connected))try{e.lessons=(await e.client.request(`learning.listLessons`,{})).lessons??[]}catch(t){e.learningError=String(t)}}async function fc(e,t){if(!(!e.client||!e.connected))try{e.selectedProposal=await e.client.request(`learning.inspectProposal`,{proposalId:t})}catch(t){e.learningError=String(t)}}async function pc(e,t,n){if(!(!e.client||!e.connected)&&!e.learningBusy){e.learningBusy=!0;try{await e.client.request(`learning.decideProposal`,{proposalId:t,action:n}),await uc(e),await lc(e)}catch(t){e.learningError=String(t)}finally{e.learningBusy=!1}}}var mc={lifecycle:`idle`,relaySessionId:null,provider:null,transcript:[],error:null,recording:!1,playing:!1,droppedAudioFrames:0,availability:{resolved:!1,loading:!1,enabled:!1,available:!1,configuredProviderIds:[],error:null}};function hc(){return{...mc,transcript:mc.transcript.map(e=>({...e})),availability:{...mc.availability,configuredProviderIds:[...mc.availability.configuredProviderIds]}}}function gc(e,t){return e instanceof Error&&e.message.trim()?e.message.trim():typeof e==`string`&&e.trim()?e.trim():t}function _c(e){let t,n;return{generation:e,promise:new Promise((e,r)=>{t=()=>e(),n=r}),resolve:t,reject:n}}function vc(e){let t=e.now??Date.now,n=e=>Number.isInteger(e)&&e>=0&&e<=864e13,r=()=>{let e=t();if(!n(e))throw Error(`Talk clock returned an invalid epoch millisecond value`);return e},i=hc(),a=0,o=0,s=0,c=0,l=new Map,u=null,d=null,f=null,p=!1,m=0,h=null,g=null,_=null,v={user:null,assistant:null},y=null,b=null,x=null;function S(t){i={...i,...t},e.onState(i)}function ee(e){S({availability:{...e,configuredProviderIds:[...e.configuredProviderIds]}})}function te(){let t=++o;ee({resolved:!1,loading:!0,enabled:!1,available:!1,configuredProviderIds:[],error:null});let n=e.request;if(!n)return C(t,{resolved:!0,loading:!1,enabled:!1,available:!1,configuredProviderIds:[],error:`Talk availability requester is unavailable`}),Promise.resolve();let r;try{r=n(`talk.realtime.status`,{})}catch(e){return C(t,{resolved:!0,loading:!1,enabled:!1,available:!1,configuredProviderIds:[],error:gc(e,`Talk availability request failed`).slice(0,200)}),Promise.resolve()}return r.then(e=>{if(!w(e)){C(t,{resolved:!0,loading:!1,enabled:!1,available:!1,configuredProviderIds:[],error:`Malformed Talk availability response`});return}C(t,{resolved:!0,loading:!1,enabled:e.enabled,available:e.available,configuredProviderIds:e.configuredProviderIds,error:null})}).catch(e=>{C(t,{resolved:!0,loading:!1,enabled:!1,available:!1,configuredProviderIds:[],error:gc(e,`Talk availability request failed`).slice(0,200)})})}function C(e,t){o===e&&ee(t)}function w(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e,n=t.configuredProviderIds;return typeof t.enabled==`boolean`&&typeof t.available==`boolean`&&Array.isArray(n)&&n.every(e=>typeof e==`string`)&&!(t.available&&(!t.enabled||n.length===0))}function T(){v={user:null,assistant:null}}function E(e=i.error){_=null,T(),S({lifecycle:`idle`,relaySessionId:null,provider:null,error:e,recording:!1,playing:!1})}function ne(e){let t=e.catch(()=>void 0);f=t,t.then(()=>{f===t&&(f=null)})}function re(){u&&ne(u.promise),u=null}function ie(t,n){T();let r=_c(t);return u=r,r.promise.then(()=>{u===r&&(u=null)},()=>{u===r&&(u=null)}),S({lifecycle:`starting`,error:null,recording:!1,playing:!1}),a!==r.generation||u!==r?(r.resolve(),r.promise):((async()=>{if(!(n&&(await n,a!==r.generation||u!==r))){try{await e.sessionClient.start()}catch(e){a===r.generation&&u===r&&E(gc(e,`Unable to start Talk`));return}r.generation}})().then(r.resolve,r.reject),r.promise)}function ae(){if(p=!0,m+=1,u)return u.promise;if(!d&&(i.lifecycle===`active`||i.lifecycle===`interrupting`))return Promise.resolve();let e=++a,t=h!==null&&g!==m?h:null,n=[d?.promise,f,t].filter(e=>e!=null);return ie(e,n.length===0?void 0:n.length===1?n[0]:Promise.all(n).then(()=>void 0))}function oe(e){d=e,e.promise.then(()=>{d===e&&(d=null)},()=>{d===e&&(d=null)})}function D(t){(async()=>{let n=null;try{await e.sessionClient.stop()}catch(e){n=gc(e,`Unable to stop Talk`)}a===t.generation&&d===t&&E(n??t.gatewayCloseError??null)})().then(t.resolve,t.reject)}function se(e){let t=_c(e);return oe(t),S({lifecycle:`stopping`,relaySessionId:null,provider:null,recording:!1,playing:!1}),D(t),t.promise}function ce(){let e=p;p=!1,m+=1;let t=++a;return T(),re(),d?(d.generation=t,delete d.gatewayCloseError,d.promise):!e&&i.lifecycle===`idle`||e&&i.lifecycle===`idle`&&f===null&&h===null?Promise.resolve():se(t)}function le(){if(!p)return Promise.resolve();if(h)return h;let t=m,n=(async()=>{try{await e.sessionClient.start(),m===t&&S({error:null})}catch(e){m===t&&E(gc(e,`Unable to start Talk`))}})();return h=n,g=t,n.finally(()=>{h===n&&(h=null,g=null)}),n}function O(e){let t=l.get(e);return t===void 0?(c+=1,l.set(e,c),c):t}function k(e){return typeof e.itemId==`string`&&e.itemId.length>0&&Number.isInteger(e.contentIndex)&&(e.contentIndex??-1)>=0}function ue(e){return e!==void 0&&Number.isInteger(e)&&e>=0}function A(e){return(e.status===`pending`||e.status===`streaming`)&&e.final?`contradictory`:e.status===`final`||e.status===`failed`||e.status===void 0&&e.final?`terminal`:`open`}function j(e,t){let i=A(e)===`terminal`,a=t===void 0&&!n(e.startedAtMs),o=i&&t?.completedAtMs===void 0&&!n(e.completedAtMs),s=a||o?r():void 0,c=t?.startedAtMs??(n(e.startedAtMs)?e.startedAtMs:s),l=t?.completedAtMs??(i?n(e.completedAtMs)?e.completedAtMs:s:void 0);return{startedAtMs:c,...l===void 0?{}:{completedAtMs:l}}}function de(e){let t=new Map;for(let n of e){let e=t.get(n.relaySessionId)??[];e.push(n),t.set(n.relaySessionId,e)}let n=Array.from(t.entries());return n.sort(([e],[t])=>O(e)-O(t)),n.flatMap(([,e])=>{let t=[],n=[];e.forEach((e,r)=>{e.itemOrder!==void 0&&(t.push(r),n.push(e))}),n.sort((e,t)=>e.itemOrder-t.itemOrder);let r=[...e];return t.forEach((e,t)=>{r[e]=n[t]}),r})}function M(e){O(e.relaySessionId);let t=JSON.stringify([e.relaySessionId,e.itemId,e.contentIndex]),n=i.transcript.findIndex(e=>e.id===t),r=n>=0?i.transcript[n]:void 0;if(r&&(r.final||r.status===`final`||r.status===`failed`)||r&&e.status===`pending`)return;let a=A(e)===`terminal`,o=j(e,r),s=ue(e.itemOrder)?e.itemOrder:void 0,c={id:t,relaySessionId:e.relaySessionId,role:e.role,text:r&&!a?`${r.text}${e.text}`:e.text,final:e.final,itemId:e.itemId,...e.responseId!==void 0||r?.responseId!==void 0?{responseId:e.responseId??r?.responseId}:{},contentIndex:e.contentIndex,...s!==void 0||r?.itemOrder!==void 0?{itemOrder:s??r?.itemOrder}:{},...e.status===void 0?{}:{status:e.status},...o},l=[...i.transcript];n>=0?l[n]=c:l.push(c),S({transcript:de(l)})}function N(e){let t=A(e);if(t===`contradictory`)return;if(k(e)){M(e);return}O(e.relaySessionId);let n=v[e.role],r=n?i.transcript.findIndex(e=>e.id===n):-1,a=r>=0?i.transcript[r]:void 0;if(a!==void 0&&a.role===e.role&&!a.final&&a.status!==`final`&&a.status!==`failed`){let n=j(e,a),o=[...i.transcript];o[r]={id:a.id,relaySessionId:a.relaySessionId,role:a.role,text:t===`terminal`?e.text:`${a.text}${e.text}`,final:e.final,...e.status===void 0?{}:{status:e.status},...n},t===`terminal`&&(v[e.role]=null),S({transcript:o});return}s+=1;let o=`transcript-${s}`,c=j(e);v[e.role]=t===`terminal`?null:o,S({transcript:[...i.transcript,{id:o,relaySessionId:e.relaySessionId,role:e.role,text:e.text,final:e.final,...e.status===void 0?{}:{status:e.status},...c}]})}function P(e){let t=b===e&&x!==null&&x!==a,n=e.type===`close`&&y===e.relaySessionId;if(!(t&&!n))switch(e.type){case`audio`:S({lifecycle:i.lifecycle===`interrupting`?`active`:i.lifecycle,playing:!0});break;case`clear`:{let t=_?.recording,n=i.lifecycle===`starting`;_=null,S({lifecycle:n?`starting`:e.reason===`barge-in`?`interrupting`:i.lifecycle===`idle`||i.lifecycle===`stopping`?i.lifecycle:`active`,recording:!n&&(t??(i.lifecycle!==`idle`&&i.lifecycle!==`stopping`)),playing:!1});break}case`vadBargeIn`:{let e=i.lifecycle===`starting`;S({lifecycle:e?`starting`:i.lifecycle===`idle`||i.lifecycle===`stopping`?i.lifecycle:`interrupting`,recording:!e&&(_?.recording??(i.lifecycle!==`idle`&&i.lifecycle!==`stopping`)),playing:!1});break}case`ready`:i.lifecycle===`interrupting`&&S({lifecycle:`active`});break;case`transcript`:N(e),e.role===`assistant`&&i.lifecycle===`interrupting`&&S({lifecycle:`active`});break;case`error`:S({error:gc(e.message,`Talk provider error`)});break;case`close`:if(y===e.relaySessionId){y=null;break}a+=1,y=null,re(),E();break;default:break}}return e.onState(i),{start:ae,stop:ce,reconnectIfIntended:le,async retry(){p=!0,m+=1;let e=++a;T(),re();let t=h!==null&&g!==m?h:null;await(d?.promise??se(e)),a===e&&await ie(e,t??void 0)},handleRelayEvent(t){let n=b,r=x;b=t,x=a;try{e.sessionClient.handleRelayEvent(t)}finally{b=n,x=r}},handleSessionEvent:P,handleSessionState(e){if(g!==null&&g!==m||e.lifecycle===`idle`&&i.lifecycle===`starting`&&u?.generation===a&&d!==null&&d.generation<a)return;let t=b?.type===`close`?b:void 0;if(e.lifecycle===`idle`&&e.relaySessionId===null&&(t!==void 0||i.relaySessionId!==null&&(i.lifecycle===`active`||i.lifecycle===`interrupting`))&&(a+=1,y=t?.relaySessionId??i.relaySessionId,re(),T()),e.lifecycle===`interrupting`){_=e,S({relaySessionId:e.relaySessionId,provider:e.provider,recording:i.lifecycle!==`starting`&&e.recording,playing:e.playing,droppedAudioFrames:e.droppedAudioFrames});return}_=null,S({lifecycle:e.lifecycle,relaySessionId:e.relaySessionId,provider:e.provider,recording:e.recording,playing:e.playing,droppedAudioFrames:e.droppedAudioFrames})},handleGatewayClose(){let t=++a;T(),y=null,re();let n=d,r=!n;n?n.generation=t:(n=_c(t),oe(n)),(r||Object.hasOwn(n,`gatewayCloseError`))&&(n.gatewayCloseError=i.error),e.sessionClient.handleGatewayClose(),a===t&&d===n&&E(),r&&D(n)},loadAvailability:te}}var yc=jo({});function bc(){if(!window.location.search)return!1;let e=new URLSearchParams(window.location.search).get(`onboarding`);if(!e)return!1;let t=e.trim().toLowerCase();return t===`1`||t===`true`||t===`yes`||t===`on`}var $=class extends r{constructor(){super(),this.i18nController=new ee(this),this.clientInstanceId=ur(),this.settings=sa(),this.password=``,this.tab=`overview`,this.onboarding=bc(),this.connected=!1,this.theme=this.settings.theme??`system`,this.themeResolved=`dark`,this.hello=null,this.lastError=null,this.lastErrorCode=null,this.eventLog=[],this.eventLogBuffer=[],this.toolStreamSyncTimer=null,this.sidebarCloseTimer=null,this.assistantName=yc.name,this.assistantAvatar=yc.avatar,this.assistantAgentId=yc.agentId??null,this.consolePath=null,this.sessionKey=this.settings.sessionKey,this.chatLoading=!1,this.chatSending=!1,this.chatMessage=``,this.chatMessages=[],this.chatToolMessages=[],this.chatStream=null,this.chatStreamStartedAt=null,this.chatRunId=null,this.compactionStatus=null,this.fallbackStatus=null,this.chatAvatarUrl=null,this.chatThinkingLevel=null,this.chatQueue=[],this.chatAttachments=[],this.chatManualRefreshInFlight=!1,this.sidebarOpen=!1,this.sidebarContent=null,this.sidebarError=null,this.splitRatio=this.settings.splitRatio,this.nodesLoading=!1,this.nodes=[],this.devicesLoading=!1,this.devicesError=null,this.devicesList=null,this.execApprovalsLoading=!1,this.execApprovalsSaving=!1,this.execApprovalsDirty=!1,this.execApprovalsSnapshot=null,this.execApprovalsForm=null,this.execApprovalsSelectedAgent=null,this.execApprovalsTarget=`gateway`,this.execApprovalsTargetNodeId=null,this.execApprovalQueue=[],this.execApprovalBusy=!1,this.execApprovalError=null,this.pendingGatewayUrl=null,this.configLoading=!1,this.configRaw=`{
437
437
  }
438
438
  `,this.configRawOriginal=``,this.configValid=null,this.configIssues=[],this.configSaving=!1,this.configApplying=!1,this.updateRunning=!1,this.applySessionKey=this.settings.lastActiveSessionKey,this.configSnapshot=null,this.configSchema=null,this.configSchemaVersion=null,this.configSchemaLoading=!1,this.configUiHints={},this.configForm=null,this.configFormOriginal=null,this.configFormDirty=!1,this.configFormMode=`form`,this.configSearchQuery=``,this.configActiveSection=null,this.configActiveSubsection=null,this.channelsLoading=!1,this.channelsSnapshot=null,this.channelsError=null,this.channelsLastSuccess=null,this.whatsappLoginMessage=null,this.whatsappLoginQrDataUrl=null,this.whatsappLoginConnected=null,this.whatsappBusy=!1,this.nostrProfileFormState=null,this.nostrProfileAccountId=null,this.presenceLoading=!1,this.presenceEntries=[],this.presenceError=null,this.presenceStatus=null,this.agentsLoading=!1,this.agentsList=null,this.agentsError=null,this.agentsSelectedId=null,this.toolsCatalogLoading=!1,this.toolsCatalogError=null,this.toolsCatalogResult=null,this.agentsPanel=`overview`,this.agentFilesLoading=!1,this.agentFilesError=null,this.agentFilesList=null,this.agentFileContents={},this.agentFileDrafts={},this.agentFileActive=null,this.agentFileSaving=!1,this.agentIdentityLoading=!1,this.agentIdentityError=null,this.agentIdentityById={},this.agentSkillsLoading=!1,this.agentSkillsError=null,this.agentSkillsReport=null,this.agentSkillsAgentId=null,this.sessionsLoading=!1,this.sessionsResult=null,this.sessionsError=null,this.sessionsFilterActive=``,this.sessionsFilterLimit=`120`,this.sessionsIncludeGlobal=!0,this.sessionsIncludeUnknown=!1,this.sessionRunsResult=null,this.sessionRunsError=null,this.sessionRunsFetchedAt=0,this.sessionRunsLoading=!1,this.sessionsThresholdsResult=null,this.sessionsThresholdsError=null,this.sessionsThresholdsLoading=!1,this.sessionRunsInterruptingKeys=new Set,this.recentlyCompletedRuns=[],this.sessionRunsPrevKeys=new Set,this.recoverableRuns=[],this.recoveryError=null,this.decidingRunIds=new Set,this.recoverableRunsLoading=!1,this.sessionsHideCron=!0,this.usageLoading=!1,this.usageResult=null,this.usageCostSummary=null,this.usageError=null,this.usageStartDate=(()=>{let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`})(),this.usageEndDate=(()=>{let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`})(),this.usageSelectedSessions=[],this.usageSelectedDays=[],this.usageSelectedHours=[],this.usageChartMode=`tokens`,this.usageDailyChartMode=`by-type`,this.usageTimeSeriesMode=`per-turn`,this.usageTimeSeriesBreakdownMode=`by-type`,this.usageTimeSeries=null,this.usageTimeSeriesLoading=!1,this.usageTimeSeriesCursorStart=null,this.usageTimeSeriesCursorEnd=null,this.usageSessionLogs=null,this.usageSessionLogsLoading=!1,this.usageSessionLogsExpanded=!1,this.usageQuery=``,this.usageQueryDraft=``,this.usageSessionSort=`recent`,this.usageSessionSortDir=`desc`,this.usageRecentSessions=[],this.usageTimeZone=`local`,this.usageContextExpanded=!1,this.usageHeaderPinned=!1,this.usageSessionsTab=`all`,this.usageVisibleColumns=[`channel`,`agent`,`provider`,`model`,`messages`,`tools`,`errors`,`duration`],this.usageLogFilterRoles=[],this.usageLogFilterTools=[],this.usageLogFilterHasTools=!1,this.usageLogFilterQuery=``,this.usageQueryDebounceTimer=null,this.cronLoading=!1,this.cronJobsLoadingMore=!1,this.cronJobs=[],this.cronJobsTotal=0,this.cronJobsHasMore=!1,this.cronJobsNextOffset=null,this.cronJobsLimit=50,this.cronJobsQuery=``,this.cronJobsEnabledFilter=`all`,this.cronJobsScheduleKindFilter=`all`,this.cronJobsLastStatusFilter=`all`,this.cronJobsSortBy=`nextRunAtMs`,this.cronJobsSortDir=`asc`,this.cronStatus=null,this.cronError=null,this.cronForm={...b},this.cronFieldErrors={},this.cronEditingJobId=null,this.cronCreatingJob=!1,this.cronRunsJobId=null,this.cronRunsLoadingMore=!1,this.cronRuns=[],this.cronRunsTotal=0,this.cronRunsHasMore=!1,this.cronRunsNextOffset=null,this.cronRunsLimit=50,this.cronRunsScope=`all`,this.cronRunsStatuses=[],this.cronRunsDeliveryStatuses=[],this.cronRunsStatusFilter=`all`,this.cronRunsQuery=``,this.cronRunsSortDir=`desc`,this.cronModelSuggestions=[],this.cronBusy=!1,this.cronLastRunSessionKey=null,this.cronLastRunJobId=null,this.cronRunningJobId=null,this.learningLoading=!1,this.learningError=null,this.overview=null,this.proposals=[],this.lessons=[],this.selectedProposal=null,this.learningBusy=!1,this.learningSubView=`proposals`,this.learningPendingApplyId=null,this.dreams=hr(),this.dreamsGeneration=0,this.dreamsDirty=!1,this.dreamsTrailingTimer=null,this.dreamsTrailingPending=!1,this.dreamsBurstStartedAt=null,this.dreamsPollInterval=null,this.updateAvailable=null,this.skillsLoading=!1,this.skillsReport=null,this.skillsError=null,this.skillsFilter=``,this.skillEdits={},this.skillsBusyKey=null,this.skillMessages={},this.debugLoading=!1,this.debugStatus=null,this.debugHealth=null,this.debugModels=[],this.debugHeartbeat=null,this.debugCallMethod=``,this.debugCallParams=`{}`,this.debugCallResult=null,this.debugCallError=null,this.logsLoading=!1,this.logsError=null,this.logsFile=null,this.logsEntries=[],this.logsFilterText=``,this.logsLevelFilters={...x},this.logsAutoFollow=!0,this.logsTruncated=!1,this.logsCursor=null,this.logsLastFetchAt=null,this.logsLimit=500,this.logsMaxBytes=25e4,this.logsAtBottom=!0,this.talkState=hc(),this.client=null,this.chatScrollFrame=null,this.chatScrollTimeout=null,this.chatHasAutoScrolled=!1,this.chatUserNearBottom=!0,this.chatNewMessagesBelow=!1,this.nodesPollInterval=null,this.logsPollInterval=null,this.debugPollInterval=null,this.sessionRunsPollInterval=null,this.sessionRunsTickInterval=null,this.logsScrollFrame=null,this.toolStreamById=new Map,this.toolStreamOrder=[],this.refreshSessionsAfterChat=new Set,this.basePath=``,this.visibilityHandler=()=>Zo(this),this.popStateHandler=()=>Da(this),this.themeMedia=null,this.themeMediaHandler=null,this.topbarObserver=null,te(this.settings.locale)&&v.setLocale(this.settings.locale);let e=zo(this);this.talkSessionClient=De({request:e,capture:xe,playback:Se,onState:e=>this.talkController.handleSessionState(e),onEvent:e=>this.talkController.handleSessionEvent(e)}),this.talkController=vc({sessionClient:this.talkSessionClient,request:e,onState:e=>{this.talkState=e}})}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),Xo(this)}firstUpdated(){Qo(this)}disconnectedCallback(){$o(this),super.disconnectedCallback()}updated(e){es(this,e)}connect(){Ho(this)}handleChatScroll(e){xt(this,e)}handleLogsScroll(e){St(this,e)}exportLogs(e,t){wt(e,t)}resetToolStream(){Ja(this)}resetChatScroll(){Ct(this)}scrollToBottom(e){Ct(this),yt(this,!0,!!e?.smooth)}async loadAssistantIdentity(){await Mo(this)}applySettings(e){ha(this,e)}setTab(e){va(this,e)}setTheme(e,t){ya(this,e,t)}async loadOverview(){await Ma(this)}async loadCron(){await Pa(this)}async loadLearning(){await Promise.all([lc(this),uc(this),dc(this)])}async loadDreams(){await Jr(this)}selectDreamsRun(e){this.dreams={...this.dreams,selectedRunId:e}}async openLearningProposal(e){await fc(this,e)}async decideLearningProposal(e,t){await pc(this,e,t)}async handleTalkStart(){await this.talkController.start()}async handleTalkStop(){await this.talkController.stop()}async handleTalkRetry(){await this.talkController.retry()}async handleAbortChat(){await go(this)}removeQueuedMessage(e){bo(this,e)}async handleSendChat(e,t){await xo(this,e,t)}async handleWhatsAppStart(e){await tt(this,e)}async handleWhatsAppWait(){await nt(this)}async handleWhatsAppLogout(){await rt(this)}async handleChannelConfigSave(){await it(this)}async handleChannelConfigReload(){await at(this)}handleNostrProfileEdit(e,t){dt(this,e,t)}handleNostrProfileCancel(){ft(this)}handleNostrProfileFieldChange(e,t){pt(this,e,t)}async handleNostrProfileSave(){await ht(this)}async handleNostrProfileImport(){await gt(this)}handleNostrProfileToggleAdvanced(){mt(this)}async handleExecApprovalDecision(e){let t=this.execApprovalQueue[0];if(!(!t||!this.client||this.execApprovalBusy)){this.execApprovalBusy=!0,this.execApprovalError=null;try{await this.client.request(`exec.approval.resolve`,{id:t.id,decision:e}),this.execApprovalQueue=this.execApprovalQueue.filter(e=>e.id!==t.id)}catch(e){this.execApprovalError=`Exec approval failed: ${String(e)}`}finally{this.execApprovalBusy=!1}}}handleGatewayUrlConfirm(){let e=this.pendingGatewayUrl;e&&(this.pendingGatewayUrl=null,ha(this,{...this.settings,gatewayUrl:e}),this.connect())}handleGatewayUrlCancel(){this.pendingGatewayUrl=null}handleOpenSidebar(e){this.sidebarCloseTimer!=null&&(window.clearTimeout(this.sidebarCloseTimer),this.sidebarCloseTimer=null),this.sidebarContent=e,this.sidebarError=null,this.sidebarOpen=!0}handleCloseSidebar(){this.sidebarOpen=!1,this.sidebarCloseTimer!=null&&window.clearTimeout(this.sidebarCloseTimer),this.sidebarCloseTimer=window.setTimeout(()=>{this.sidebarOpen||(this.sidebarContent=null,this.sidebarError=null,this.sidebarCloseTimer=null)},200)}handleSplitRatioChange(e){let t=Math.max(.4,Math.min(.7,e));this.splitRatio=t,this.applySettings({...this.settings,splitRatio:t})}render(){return cc(this)}};d([p()],$.prototype,`settings`,void 0),d([p()],$.prototype,`password`,void 0),d([p()],$.prototype,`tab`,void 0),d([p()],$.prototype,`onboarding`,void 0),d([p()],$.prototype,`connected`,void 0),d([p()],$.prototype,`theme`,void 0),d([p()],$.prototype,`themeResolved`,void 0),d([p()],$.prototype,`hello`,void 0),d([p()],$.prototype,`lastError`,void 0),d([p()],$.prototype,`lastErrorCode`,void 0),d([p()],$.prototype,`eventLog`,void 0),d([p()],$.prototype,`assistantName`,void 0),d([p()],$.prototype,`assistantAvatar`,void 0),d([p()],$.prototype,`assistantAgentId`,void 0),d([p()],$.prototype,`consolePath`,void 0),d([p()],$.prototype,`sessionKey`,void 0),d([p()],$.prototype,`chatLoading`,void 0),d([p()],$.prototype,`chatSending`,void 0),d([p()],$.prototype,`chatMessage`,void 0),d([p()],$.prototype,`chatMessages`,void 0),d([p()],$.prototype,`chatToolMessages`,void 0),d([p()],$.prototype,`chatStream`,void 0),d([p()],$.prototype,`chatStreamStartedAt`,void 0),d([p()],$.prototype,`chatRunId`,void 0),d([p()],$.prototype,`compactionStatus`,void 0),d([p()],$.prototype,`fallbackStatus`,void 0),d([p()],$.prototype,`chatAvatarUrl`,void 0),d([p()],$.prototype,`chatThinkingLevel`,void 0),d([p()],$.prototype,`chatQueue`,void 0),d([p()],$.prototype,`chatAttachments`,void 0),d([p()],$.prototype,`chatManualRefreshInFlight`,void 0),d([p()],$.prototype,`sidebarOpen`,void 0),d([p()],$.prototype,`sidebarContent`,void 0),d([p()],$.prototype,`sidebarError`,void 0),d([p()],$.prototype,`splitRatio`,void 0),d([p()],$.prototype,`nodesLoading`,void 0),d([p()],$.prototype,`nodes`,void 0),d([p()],$.prototype,`devicesLoading`,void 0),d([p()],$.prototype,`devicesError`,void 0),d([p()],$.prototype,`devicesList`,void 0),d([p()],$.prototype,`execApprovalsLoading`,void 0),d([p()],$.prototype,`execApprovalsSaving`,void 0),d([p()],$.prototype,`execApprovalsDirty`,void 0),d([p()],$.prototype,`execApprovalsSnapshot`,void 0),d([p()],$.prototype,`execApprovalsForm`,void 0),d([p()],$.prototype,`execApprovalsSelectedAgent`,void 0),d([p()],$.prototype,`execApprovalsTarget`,void 0),d([p()],$.prototype,`execApprovalsTargetNodeId`,void 0),d([p()],$.prototype,`execApprovalQueue`,void 0),d([p()],$.prototype,`execApprovalBusy`,void 0),d([p()],$.prototype,`execApprovalError`,void 0),d([p()],$.prototype,`pendingGatewayUrl`,void 0),d([p()],$.prototype,`configLoading`,void 0),d([p()],$.prototype,`configRaw`,void 0),d([p()],$.prototype,`configRawOriginal`,void 0),d([p()],$.prototype,`configValid`,void 0),d([p()],$.prototype,`configIssues`,void 0),d([p()],$.prototype,`configSaving`,void 0),d([p()],$.prototype,`configApplying`,void 0),d([p()],$.prototype,`updateRunning`,void 0),d([p()],$.prototype,`applySessionKey`,void 0),d([p()],$.prototype,`configSnapshot`,void 0),d([p()],$.prototype,`configSchema`,void 0),d([p()],$.prototype,`configSchemaVersion`,void 0),d([p()],$.prototype,`configSchemaLoading`,void 0),d([p()],$.prototype,`configUiHints`,void 0),d([p()],$.prototype,`configForm`,void 0),d([p()],$.prototype,`configFormOriginal`,void 0),d([p()],$.prototype,`configFormDirty`,void 0),d([p()],$.prototype,`configFormMode`,void 0),d([p()],$.prototype,`configSearchQuery`,void 0),d([p()],$.prototype,`configActiveSection`,void 0),d([p()],$.prototype,`configActiveSubsection`,void 0),d([p()],$.prototype,`channelsLoading`,void 0),d([p()],$.prototype,`channelsSnapshot`,void 0),d([p()],$.prototype,`channelsError`,void 0),d([p()],$.prototype,`channelsLastSuccess`,void 0),d([p()],$.prototype,`whatsappLoginMessage`,void 0),d([p()],$.prototype,`whatsappLoginQrDataUrl`,void 0),d([p()],$.prototype,`whatsappLoginConnected`,void 0),d([p()],$.prototype,`whatsappBusy`,void 0),d([p()],$.prototype,`nostrProfileFormState`,void 0),d([p()],$.prototype,`nostrProfileAccountId`,void 0),d([p()],$.prototype,`presenceLoading`,void 0),d([p()],$.prototype,`presenceEntries`,void 0),d([p()],$.prototype,`presenceError`,void 0),d([p()],$.prototype,`presenceStatus`,void 0),d([p()],$.prototype,`agentsLoading`,void 0),d([p()],$.prototype,`agentsList`,void 0),d([p()],$.prototype,`agentsError`,void 0),d([p()],$.prototype,`agentsSelectedId`,void 0),d([p()],$.prototype,`toolsCatalogLoading`,void 0),d([p()],$.prototype,`toolsCatalogError`,void 0),d([p()],$.prototype,`toolsCatalogResult`,void 0),d([p()],$.prototype,`agentsPanel`,void 0),d([p()],$.prototype,`agentFilesLoading`,void 0),d([p()],$.prototype,`agentFilesError`,void 0),d([p()],$.prototype,`agentFilesList`,void 0),d([p()],$.prototype,`agentFileContents`,void 0),d([p()],$.prototype,`agentFileDrafts`,void 0),d([p()],$.prototype,`agentFileActive`,void 0),d([p()],$.prototype,`agentFileSaving`,void 0),d([p()],$.prototype,`agentIdentityLoading`,void 0),d([p()],$.prototype,`agentIdentityError`,void 0),d([p()],$.prototype,`agentIdentityById`,void 0),d([p()],$.prototype,`agentSkillsLoading`,void 0),d([p()],$.prototype,`agentSkillsError`,void 0),d([p()],$.prototype,`agentSkillsReport`,void 0),d([p()],$.prototype,`agentSkillsAgentId`,void 0),d([p()],$.prototype,`sessionsLoading`,void 0),d([p()],$.prototype,`sessionsResult`,void 0),d([p()],$.prototype,`sessionsError`,void 0),d([p()],$.prototype,`sessionsFilterActive`,void 0),d([p()],$.prototype,`sessionsFilterLimit`,void 0),d([p()],$.prototype,`sessionsIncludeGlobal`,void 0),d([p()],$.prototype,`sessionsIncludeUnknown`,void 0),d([p()],$.prototype,`sessionRunsResult`,void 0),d([p()],$.prototype,`sessionRunsError`,void 0),d([p()],$.prototype,`sessionsThresholdsResult`,void 0),d([p()],$.prototype,`sessionsThresholdsError`,void 0),d([p()],$.prototype,`sessionRunsInterruptingKeys`,void 0),d([p()],$.prototype,`recentlyCompletedRuns`,void 0),d([p()],$.prototype,`recoverableRuns`,void 0),d([p()],$.prototype,`recoveryError`,void 0),d([p()],$.prototype,`decidingRunIds`,void 0),d([p()],$.prototype,`sessionsHideCron`,void 0),d([p()],$.prototype,`usageLoading`,void 0),d([p()],$.prototype,`usageResult`,void 0),d([p()],$.prototype,`usageCostSummary`,void 0),d([p()],$.prototype,`usageError`,void 0),d([p()],$.prototype,`usageStartDate`,void 0),d([p()],$.prototype,`usageEndDate`,void 0),d([p()],$.prototype,`usageSelectedSessions`,void 0),d([p()],$.prototype,`usageSelectedDays`,void 0),d([p()],$.prototype,`usageSelectedHours`,void 0),d([p()],$.prototype,`usageChartMode`,void 0),d([p()],$.prototype,`usageDailyChartMode`,void 0),d([p()],$.prototype,`usageTimeSeriesMode`,void 0),d([p()],$.prototype,`usageTimeSeriesBreakdownMode`,void 0),d([p()],$.prototype,`usageTimeSeries`,void 0),d([p()],$.prototype,`usageTimeSeriesLoading`,void 0),d([p()],$.prototype,`usageTimeSeriesCursorStart`,void 0),d([p()],$.prototype,`usageTimeSeriesCursorEnd`,void 0),d([p()],$.prototype,`usageSessionLogs`,void 0),d([p()],$.prototype,`usageSessionLogsLoading`,void 0),d([p()],$.prototype,`usageSessionLogsExpanded`,void 0),d([p()],$.prototype,`usageQuery`,void 0),d([p()],$.prototype,`usageQueryDraft`,void 0),d([p()],$.prototype,`usageSessionSort`,void 0),d([p()],$.prototype,`usageSessionSortDir`,void 0),d([p()],$.prototype,`usageRecentSessions`,void 0),d([p()],$.prototype,`usageTimeZone`,void 0),d([p()],$.prototype,`usageContextExpanded`,void 0),d([p()],$.prototype,`usageHeaderPinned`,void 0),d([p()],$.prototype,`usageSessionsTab`,void 0),d([p()],$.prototype,`usageVisibleColumns`,void 0),d([p()],$.prototype,`usageLogFilterRoles`,void 0),d([p()],$.prototype,`usageLogFilterTools`,void 0),d([p()],$.prototype,`usageLogFilterHasTools`,void 0),d([p()],$.prototype,`usageLogFilterQuery`,void 0),d([p()],$.prototype,`cronLoading`,void 0),d([p()],$.prototype,`cronJobsLoadingMore`,void 0),d([p()],$.prototype,`cronJobs`,void 0),d([p()],$.prototype,`cronJobsTotal`,void 0),d([p()],$.prototype,`cronJobsHasMore`,void 0),d([p()],$.prototype,`cronJobsNextOffset`,void 0),d([p()],$.prototype,`cronJobsLimit`,void 0),d([p()],$.prototype,`cronJobsQuery`,void 0),d([p()],$.prototype,`cronJobsEnabledFilter`,void 0),d([p()],$.prototype,`cronJobsScheduleKindFilter`,void 0),d([p()],$.prototype,`cronJobsLastStatusFilter`,void 0),d([p()],$.prototype,`cronJobsSortBy`,void 0),d([p()],$.prototype,`cronJobsSortDir`,void 0),d([p()],$.prototype,`cronStatus`,void 0),d([p()],$.prototype,`cronError`,void 0),d([p()],$.prototype,`cronForm`,void 0),d([p()],$.prototype,`cronFieldErrors`,void 0),d([p()],$.prototype,`cronEditingJobId`,void 0),d([p()],$.prototype,`cronCreatingJob`,void 0),d([p()],$.prototype,`cronRunsJobId`,void 0),d([p()],$.prototype,`cronRunsLoadingMore`,void 0),d([p()],$.prototype,`cronRuns`,void 0),d([p()],$.prototype,`cronRunsTotal`,void 0),d([p()],$.prototype,`cronRunsHasMore`,void 0),d([p()],$.prototype,`cronRunsNextOffset`,void 0),d([p()],$.prototype,`cronRunsLimit`,void 0),d([p()],$.prototype,`cronRunsScope`,void 0),d([p()],$.prototype,`cronRunsStatuses`,void 0),d([p()],$.prototype,`cronRunsDeliveryStatuses`,void 0),d([p()],$.prototype,`cronRunsStatusFilter`,void 0),d([p()],$.prototype,`cronRunsQuery`,void 0),d([p()],$.prototype,`cronRunsSortDir`,void 0),d([p()],$.prototype,`cronModelSuggestions`,void 0),d([p()],$.prototype,`cronBusy`,void 0),d([p()],$.prototype,`cronLastRunSessionKey`,void 0),d([p()],$.prototype,`cronLastRunJobId`,void 0),d([p()],$.prototype,`cronRunningJobId`,void 0),d([p()],$.prototype,`learningLoading`,void 0),d([p()],$.prototype,`learningError`,void 0),d([p()],$.prototype,`overview`,void 0),d([p()],$.prototype,`proposals`,void 0),d([p()],$.prototype,`lessons`,void 0),d([p()],$.prototype,`selectedProposal`,void 0),d([p()],$.prototype,`learningBusy`,void 0),d([p()],$.prototype,`learningSubView`,void 0),d([p()],$.prototype,`learningPendingApplyId`,void 0),d([p()],$.prototype,`dreams`,void 0),d([p()],$.prototype,`updateAvailable`,void 0),d([p()],$.prototype,`skillsLoading`,void 0),d([p()],$.prototype,`skillsReport`,void 0),d([p()],$.prototype,`skillsError`,void 0),d([p()],$.prototype,`skillsFilter`,void 0),d([p()],$.prototype,`skillEdits`,void 0),d([p()],$.prototype,`skillsBusyKey`,void 0),d([p()],$.prototype,`skillMessages`,void 0),d([p()],$.prototype,`debugLoading`,void 0),d([p()],$.prototype,`debugStatus`,void 0),d([p()],$.prototype,`debugHealth`,void 0),d([p()],$.prototype,`debugModels`,void 0),d([p()],$.prototype,`debugHeartbeat`,void 0),d([p()],$.prototype,`debugCallMethod`,void 0),d([p()],$.prototype,`debugCallParams`,void 0),d([p()],$.prototype,`debugCallResult`,void 0),d([p()],$.prototype,`debugCallError`,void 0),d([p()],$.prototype,`logsLoading`,void 0),d([p()],$.prototype,`logsError`,void 0),d([p()],$.prototype,`logsFile`,void 0),d([p()],$.prototype,`logsEntries`,void 0),d([p()],$.prototype,`logsFilterText`,void 0),d([p()],$.prototype,`logsLevelFilters`,void 0),d([p()],$.prototype,`logsAutoFollow`,void 0),d([p()],$.prototype,`logsTruncated`,void 0),d([p()],$.prototype,`logsCursor`,void 0),d([p()],$.prototype,`logsLastFetchAt`,void 0),d([p()],$.prototype,`logsLimit`,void 0),d([p()],$.prototype,`logsMaxBytes`,void 0),d([p()],$.prototype,`logsAtBottom`,void 0),d([p()],$.prototype,`talkState`,void 0),d([p()],$.prototype,`chatNewMessagesBelow`,void 0),$=d([u(`openclaw-app`)],$);export{Ar as a,jr as i,Pr as n,kr as r,Fr as t};
439
- //# sourceMappingURL=index-D6XwnS7I.js.map
439
+ //# sourceMappingURL=index-CambJeDO.js.map