@bitseek/claw 1.3.8 → 1.3.9-beta.1

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 (356) hide show
  1. package/dist/{accounts-DtaSiAum.js → accounts-CQrvvU8V.js} +1 -1
  2. package/dist/{accounts-CTKra7aS.js → accounts-CzfKkJDx.js} +7 -7
  3. package/dist/{accounts-B4wV9IFm.js → accounts-YtMo-RPC.js} +1 -1
  4. package/dist/{acp-cli-CSRDFixR.js → acp-cli-C0Oz6RFa.js} +8 -8
  5. package/dist/{agent-scope-BrbgAMci.js → agent-scope-qYbUVCHn.js} +1 -1
  6. package/dist/{agents-B3roVbYI.js → agents-BM-ZKSEg.js} +15 -15
  7. package/dist/{agents.config-DKv0epKg.js → agents.config-BEcfoo1-.js} +1 -1
  8. package/dist/{agents.config-BLKDc8io.js → agents.config-ClQFzaOQ.js} +2 -2
  9. package/dist/{api-key-rotation-BdoPDM3X.js → api-key-rotation-XTdz_cvI.js} +1 -1
  10. package/dist/{audio-preflight-Pdv9uiw6.js → audio-preflight-B6Jw9LUM.js} +36 -36
  11. package/dist/{audio-preflight-WTpRy-aJ.js → audio-preflight-NS22yhPn.js} +4 -4
  12. package/dist/{audio-transcription-runner-DBPatTZv.js → audio-transcription-runner-CF3DjqKy.js} +22 -22
  13. package/dist/{audio-transcription-runner-Dr-10P1O.js → audio-transcription-runner-CzMSMQMZ.js} +1 -1
  14. package/dist/{audit-p4lBCTPz.js → audit-pIY_GfjC.js} +29 -29
  15. package/dist/{auth-DuCrQ5K9.js → auth-DhaM6Od5.js} +1 -1
  16. package/dist/{auth-choice-BogBxPQ0.js → auth-choice-BrLJAJGb.js} +16 -16
  17. package/dist/{auth-choice-CWhbVAmr.js → auth-choice-C3dhoMS4.js} +13 -13
  18. package/dist/{auth-choice-BQK5dp_R.js → auth-choice-DGXGJoXu.js} +4 -4
  19. package/dist/{auth-choice-hbnbmdPS.js → auth-choice-_Wo8GXjs.js} +6 -6
  20. package/dist/{auth-choice.apply-helpers-CtAelPdF.js → auth-choice.apply-helpers-DI1qnxc_.js} +1 -1
  21. package/dist/{auth-profiles-k09E8RLJ.js → auth-profiles-CDN1QqUB.js} +16 -16
  22. package/dist/{auth-token-CWb4NQTJ.js → auth-token-CIvRoAe-.js} +2 -2
  23. package/dist/{auth-token-CI-GllDN.js → auth-token-CRAgPghb.js} +1 -1
  24. package/dist/{banner-DyZFjt3Q.js → banner-B9UvF4z4.js} +2 -2
  25. package/dist/{bindings-C9vpkXej.js → bindings-D9ZiGe2K.js} +1 -1
  26. package/dist/{bonjour-discovery-DyLRXLw1.js → bonjour-discovery-CBcz-0Ts.js} +1 -1
  27. package/dist/{browser-cli-CDsv9Dvw.js → browser-cli-CTcWXrJp.js} +12 -12
  28. package/dist/build-info.json +2 -2
  29. package/dist/bundled/boot-md/handler.js +1 -1
  30. package/dist/bundled/session-memory/handler.js +1 -1
  31. package/dist/{call-CBH5yDff.js → call-BSBuLNiX.js} +10 -10
  32. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  33. package/dist/{channel-account-context-C3TU0o4T.js → channel-account-context-Cc-TbAKt.js} +5 -5
  34. package/dist/{channel-options-CGVF-HMA.js → channel-options-BRRdrC9x.js} +1 -1
  35. package/dist/{channel-options-9r0jhaF7.js → channel-options-CZEJHqmF.js} +3 -3
  36. package/dist/{channel-selection-DZrPYytY.js → channel-selection-BKyzCX35.js} +1 -1
  37. package/dist/{channel-web-Df9c4iPg.js → channel-web-BYVOTPmg.js} +18 -18
  38. package/dist/{channel-web-BdhYBnK6.js → channel-web-ByefSgLT.js} +1 -1
  39. package/dist/{channels-cli-Bi5IcGws.js → channels-cli-1K3Yksx3.js} +97 -97
  40. package/dist/{channels-cli-Ddkqw9Mr.js → channels-cli-FTPLPjn_.js} +8 -8
  41. package/dist/{channels-status-issues-Bb3ugkRr.js → channels-status-issues-Cn340Vbe.js} +1 -1
  42. package/dist/{chrome-YNj1BDzJ.js → chrome-CXHFx_t_.js} +8 -8
  43. package/dist/{chrome-BVlYi4nu.js → chrome-zP7qr3zd.js} +4 -4
  44. package/dist/{clawbot-cli-CkZGXd20.js → clawbot-cli-Nk_oXaxe.js} +5 -5
  45. package/dist/{cli-SRX-F7x2.js → cli-B0LS_4ca.js} +3 -3
  46. package/dist/{cli-2CbkQG_y.js → cli-vh3rYuO3.js} +78 -78
  47. package/dist/{client-CIji7FpE.js → client-Swf30UOh.js} +2 -2
  48. package/dist/{command-registry-C96NPlx4.js → command-registry-DizyPDOx.js} +13 -13
  49. package/dist/{commands-B7V-vN3N.js → commands-B8w5Izi1.js} +1 -1
  50. package/dist/{commands-registry-B6LbRm3U.js → commands-registry-Ctux_Nq3.js} +3 -3
  51. package/dist/{completion-cli-DujZccrD.js → completion-cli-Bbv9l5N1.js} +13 -13
  52. package/dist/{completion-cli-Die9PKu8.js → completion-cli-D07jjhoZ.js} +1 -1
  53. package/dist/{config-cli-DgKjaGSi.js → config-cli-D2xpDDZk.js} +7 -7
  54. package/dist/{config-cli-HVxj89-L.js → config-cli-vYwGYJCs.js} +1 -1
  55. package/dist/{config-guard-D5XZLbXA.js → config-guard-CSxpqsBG.js} +3 -3
  56. package/dist/{config-validation-DT8qQYoa.js → config-validation-Tf6YL4jH.js} +3 -3
  57. package/dist/{configure-D51Hau9O.js → configure-CgVQBDSn.js} +17 -17
  58. package/dist/{configure-B5vrrqHX.js → configure-DRlSxG-S.js} +4 -4
  59. package/dist/{constants-BJMtcGm_.js → constants-BLoDkl98.js} +1 -1
  60. package/dist/{constants-D1Q8yQ1_.js → constants-By6nxsIT.js} +1 -1
  61. package/dist/{context-window-guard-DfLcl4Sl.js → context-window-guard-aKoSfdAy.js} +1 -1
  62. package/dist/{context-window-guard-BqrKjiIm.js → context-window-guard-cHOCxHiA.js} +1 -1
  63. package/dist/control-ui/assets/{index-CZbqZLPL.js → index-CRehj7ln.js} +2 -2
  64. package/dist/control-ui/assets/{index-CZbqZLPL.js.map → index-CRehj7ln.js.map} +1 -1
  65. package/dist/control-ui/index.html +1 -1
  66. package/dist/{control-ui-assets-Bn4e_1By.js → control-ui-assets-BxJ3OmP_.js} +1 -1
  67. package/dist/{cron-cli-D6OHJFdO.js → cron-cli-BrpTLnwT.js} +12 -12
  68. package/dist/{daemon-cli-BxFuWNM-.js → daemon-cli-S2o4Kcwu.js} +15 -15
  69. package/dist/{daemon-install-BjgH7Ld5.js → daemon-install-C0YHpEQQ.js} +4 -4
  70. package/dist/{daemon-install-helpers-Crntu4pF.js → daemon-install-helpers-DLIsWH31.js} +11 -11
  71. package/dist/{dashboard-B0FYUw0G.js → dashboard-B_7Hjxc6.js} +2 -2
  72. package/dist/{deliver-Bm4UojU1.js → deliver-CQmmhMaR.js} +7 -7
  73. package/dist/{deliver-Bm--5hb3.js → deliver-D8BB6x5x.js} +1 -1
  74. package/dist/{devices-cli-D2qzgS6n.js → devices-cli-CXtMoEZv.js} +8 -8
  75. package/dist/{diagnostic-DOls91uN.js → diagnostic-C5Por-ID.js} +1 -1
  76. package/dist/{diagnostics-D4xhje-h.js → diagnostics-0PFoNolS.js} +5 -5
  77. package/dist/{directory-cli-BDxc1M2a.js → directory-cli-NpBfkxfT.js} +8 -8
  78. package/dist/{dns-cli-DImurxu6.js → dns-cli-CNYoy9mq.js} +5 -5
  79. package/dist/{dock-CcEfMX5D.js → dock-CHDx-TGb.js} +4 -4
  80. package/dist/{docs-cli-Cp25W8Hv.js → docs-cli-CLZqiB15.js} +4 -4
  81. package/dist/{doctor-completion-DvD6Gxce.js → doctor-completion-BNi7ptNw.js} +2 -2
  82. package/dist/{doctor-completion-lIcN0oMj.js → doctor-completion-UZdGnqnu.js} +1 -1
  83. package/dist/{doctor-config-flow-DtaIUiEk.js → doctor-config-flow-m-m_m5Ot.js} +15 -15
  84. package/dist/{enable-Dfmg2SV3.js → enable-yaF2vNOj.js} +1 -1
  85. package/dist/entry.js +2 -2
  86. package/dist/{exec-approvals-allowlist-IOB4HV3z.js → exec-approvals-allowlist-Cw4xMxbI.js} +1 -1
  87. package/dist/{exec-approvals-cli-B6X8jOx7.js → exec-approvals-cli-BffaLELS.js} +16 -16
  88. package/dist/{exec-safe-bin-runtime-policy-CEdwujzY.js → exec-safe-bin-runtime-policy-Bu0TwxE1.js} +2 -2
  89. package/dist/extensionAPI.js +6 -6
  90. package/dist/{fetch-guard-oYuVfv1t.js → fetch-guard-CQZ5FOwI.js} +1 -1
  91. package/dist/{fetch-BAv7yBBS.js → fetch-lTdl-0IY.js} +3 -3
  92. package/dist/{fs-safe--YXsniNZ.js → fs-safe-BQS_SZ0h.js} +24 -24
  93. package/dist/{gateway-cli-DY5myR89.js → gateway-cli-C6GyBLpi.js} +163 -163
  94. package/dist/{gateway-cli-DdxZ9xQz.js → gateway-cli-Dw1idMZc.js} +11 -11
  95. package/dist/{gateway-rpc-C6F7QPVq.js → gateway-rpc-qWYRLZ-Z.js} +1 -1
  96. package/dist/{health-DOIxOlnm.js → health-DNfTeO7M.js} +14 -14
  97. package/dist/{health-C_kdAhpo.js → health-ocUZcPl0.js} +1 -1
  98. package/dist/{hooks-cli-B3VUhq72.js → hooks-cli-BN1FA7w2.js} +86 -86
  99. package/dist/{hooks-cli-BA7lw_VT.js → hooks-cli-DPYujpRe.js} +4 -4
  100. package/dist/{hooks-status-qBCorl-z.js → hooks-status-BE0dSQIW.js} +1 -1
  101. package/dist/{image-Dq4M8xkz.js → image-9Zoi2bjp.js} +1 -1
  102. package/dist/{image-BOSsTjNj.js → image-BgCM5v5-.js} +5 -5
  103. package/dist/{plugin-sdk/image-ops-CfQjZch5.js → image-ops-HxQLrFqd.js} +11 -11
  104. package/dist/index.js +8 -8
  105. package/dist/{inspect-DkrsY9Gy.js → inspect-DY_qpyux.js} +4 -4
  106. package/dist/{install-safe-path-DXP_88Em.js → install-safe-path-K9dhxxcy.js} +25 -25
  107. package/dist/{installs-DgI58LlC.js → installs-BYz0q4kc.js} +9 -9
  108. package/dist/{ipv4-BuO7nxQZ.js → ipv4-Bj71-jpu.js} +1 -1
  109. package/dist/{ir-BCl0dA3G.js → ir-C_-vG6Lv.js} +6 -6
  110. package/dist/{issue-format-Cat2txpr.js → issue-format-1i6b6tFd.js} +1 -1
  111. package/dist/{json-files-DrZ4qfxw.js → json-files-1hhV5hS6.js} +8 -8
  112. package/dist/{lifecycle-core-CliTbXyj.js → lifecycle-core-BZVbJEGI.js} +5 -5
  113. package/dist/llm-slug-generator.js +1 -1
  114. package/dist/{login-_s-srXtA.js → login-KG5TFHFb.js} +3 -3
  115. package/dist/{login-qr-BNBXsYor.js → login-qr-D4L1NDeu.js} +6 -6
  116. package/dist/{logs-cli-B4Nwp099.js → logs-cli-D2lMkM4P.js} +9 -9
  117. package/dist/{manager-rK3J4Po3.js → manager-C0nx9SKi.js} +14 -14
  118. package/dist/{manifest-registry-hRB5Jb3F.js → manifest-registry-Co__Fy6F.js} +1 -1
  119. package/dist/{markdown-tables-Mk_tnsfY.js → markdown-tables-D47ZANhY.js} +1 -1
  120. package/dist/{memory-cli-BbEwsmor.js → memory-cli-BwxTb296.js} +12 -12
  121. package/dist/{model-Cd4C4aY1.js → model-C30BtXEI.js} +2 -2
  122. package/dist/{model-catalog-Chb7lzRo.js → model-catalog-C0pv85X0.js} +3 -3
  123. package/dist/{model-picker-CdgwJ2MU.js → model-picker-Dediiqpo.js} +4 -4
  124. package/dist/{models-CL1jaXSC.js → models-Ce7-hWMS.js} +18 -18
  125. package/dist/{models-cli-BUx2kqz5.js → models-cli-DFbGnftf.js} +5 -5
  126. package/dist/{models-cli-BeARCGBj.js → models-cli-Dwoe-FI7.js} +83 -83
  127. package/dist/{models-config-CkOKPbk9.js → models-config-NbV2Gu7N.js} +6 -6
  128. package/dist/{net-Bxr80JTs.js → net-DrfP4uzJ.js} +2 -2
  129. package/dist/{node-cli-DelBH0Tb.js → node-cli-CnKN38mM.js} +33 -33
  130. package/dist/{node-command-policy-DKPye8Fx.js → node-command-policy-xyqdwsT9.js} +1 -1
  131. package/dist/{node-service-Cei5AkFg.js → node-service-DEfPXKwF.js} +1 -1
  132. package/dist/{nodes-cli-CLNRURvx.js → nodes-cli-CFaqvZCM.js} +16 -16
  133. package/dist/{nodes-screen-NjyoMja_.js → nodes-screen-DNzr75bx.js} +7 -7
  134. package/dist/{npm-pack-install-B5tn-EtA.js → npm-pack-install-U_Bbmdqc.js} +18 -18
  135. package/dist/{npm-resolution-Brdkv6mO.js → npm-resolution-NU87E585.js} +5 -5
  136. package/dist/{npm-resolution-BeSDvlKA.js → npm-resolution-UrxewxGl.js} +1 -1
  137. package/dist/{onboard-Bh-I_8wZ.js → onboard-DQJBMWJS.js} +6 -6
  138. package/dist/{onboard-HvQow36S.js → onboard-LZ6tipk6.js} +3 -3
  139. package/dist/{onboard-channels-BaxiM8OU.js → onboard-channels-DfwMG2Iz.js} +1 -1
  140. package/dist/{onboard-channels-gTeBkpnk.js → onboard-channels-QqxIfBtd.js} +20 -20
  141. package/dist/{onboard-custom-DhEI_A-m.js → onboard-custom-9NaQoCKF.js} +3 -3
  142. package/dist/{onboard-custom-CAZn5F-O.js → onboard-custom-DMbBGzSj.js} +1 -1
  143. package/dist/{onboard-custom.shared-iqEaG2E4.js → onboard-custom.shared-BQL_jJyK.js} +1 -1
  144. package/dist/{onboard-custom.shared-DoXUpHZV.js → onboard-custom.shared-tQHd1XwJ.js} +3 -3
  145. package/dist/{onboard-helpers-ngPRx_6_.js → onboard-helpers-DX8Hw_zc.js} +11 -11
  146. package/dist/{onboard-hooks-CJvqjkid.js → onboard-hooks-DCPdhrCK.js} +4 -4
  147. package/dist/{onboard-remote-DRt29Vs4.js → onboard-remote-aF3GW6mE.js} +3 -3
  148. package/dist/{onboard-skills-CoWAaHHg.js → onboard-skills-CzFxXcom.js} +4 -4
  149. package/dist/{onboarding-COYDqpHi.js → onboarding-B_rDL9Ys.js} +4 -4
  150. package/dist/{onboarding-DeqWu7mq.js → onboarding-DW6uIEzO.js} +13 -13
  151. package/dist/{onboarding.finalize-BAWi9byG.js → onboarding.finalize-CGr5_H5z.js} +7 -7
  152. package/dist/{onboarding.finalize-DsXoykZY.js → onboarding.finalize-s5gEMxIF.js} +91 -91
  153. package/dist/{onboarding.gateway-config-B1orRdI7.js → onboarding.gateway-config-B5jnM62F.js} +18 -18
  154. package/dist/{openai-model-default-DRYz3m4d.js → openai-model-default-B3H7klS8.js} +2 -2
  155. package/dist/{openai-model-default-bZOrINL4.js → openai-model-default-uDQ6_Ui_.js} +1 -1
  156. package/dist/{outbound-BGJh4s6Y.js → outbound-CF1Hd23W.js} +4 -4
  157. package/dist/{outbound-attachment-Baso-yal.js → outbound-attachment-BMlPpVOn.js} +2 -2
  158. package/dist/{pairing-cli-DgUIYETM.js → pairing-cli-DkVLCjGa.js} +9 -9
  159. package/dist/{pairing-labels-BPTURWrI.js → pairing-labels-CesrJlbr.js} +1 -1
  160. package/dist/{pairing-store-WGGwqFJB.js → pairing-store-BcJH8WDh.js} +3 -3
  161. package/dist/{path-alias-guards-DdR4BKPM.js → path-alias-guards-C_j0uB0Y.js} +3 -3
  162. package/dist/{path-safety-DiJhMaUA.js → path-safety-BHBxNYfO.js} +1 -1
  163. package/dist/{paths-BPXmr3Zn.js → paths-Bj8pNglF.js} +9 -9
  164. package/dist/{pi-embedded-Cdh8_a82.js → pi-embedded-Bj3xuwXx.js} +23 -23
  165. package/dist/{pi-embedded-BJ2D2U7f.js → pi-embedded-DTg-Ul9w.js} +3 -3
  166. package/dist/{pi-embedded-helpers-CILyFDv-.js → pi-embedded-helpers-CYWOTCLT.js} +3 -3
  167. package/dist/{pi-embedded-helpers-ET1kDdN1.js → pi-embedded-helpers-Cc4tC0fE.js} +6 -6
  168. package/dist/{pi-model-discovery-COnY_kTM.js → pi-model-discovery-ItDCP5Ab.js} +1 -1
  169. package/dist/{pi-tools.policy-Cp3wptYh.js → pi-tools.policy-BbLCMNCc.js} +5 -5
  170. package/dist/{plugin-auto-enable-Bm8hMcPA.js → plugin-auto-enable-BxiIEIvc.js} +3 -3
  171. package/dist/{plugin-registry-DWd-znRA.js → plugin-registry-CHsntQZd.js} +3 -3
  172. package/dist/{plugin-registry-BaDFrxdr.js → plugin-registry-DwuteAi0.js} +1 -1
  173. package/dist/plugin-sdk/{accounts-CqgyHS8h.js → accounts-BME088co.js} +1 -1
  174. package/dist/plugin-sdk/{accounts-kIersDAH.js → accounts-CxgIc7BC.js} +1 -1
  175. package/dist/plugin-sdk/{accounts-B_Sil4df.js → accounts-DFIfXHdI.js} +3 -3
  176. package/dist/plugin-sdk/{active-listener-B1c6rQRy.js → active-listener-Dx4YdW0B.js} +1 -1
  177. package/dist/plugin-sdk/{agent-scope-DS0HILk_.js → agent-scope-BL5NPpGJ.js} +3 -3
  178. package/dist/plugin-sdk/{api-key-rotation-C2Z5xB6w.js → api-key-rotation-DZ1mvKN0.js} +2 -2
  179. package/dist/plugin-sdk/{audio-preflight-Byc0yvPV.js → audio-preflight-B8r8qUhZ.js} +33 -33
  180. package/dist/plugin-sdk/{audio-transcription-runner-DHcTy4Wb.js → audio-transcription-runner-B8gQ16hV.js} +10 -10
  181. package/dist/plugin-sdk/{bindings-D8UvbNti.js → bindings-YKerL1Tc.js} +2 -2
  182. package/dist/plugin-sdk/bitseek/constants.d.ts +1 -1
  183. package/dist/plugin-sdk/{channel-activity-CMtaqeTg.js → channel-activity-Dzyx86FD.js} +3 -3
  184. package/dist/plugin-sdk/{channel-web-D3N-Ttls.js → channel-web-B74yPv7p.js} +23 -23
  185. package/dist/plugin-sdk/{chrome-DoDlUT7F.js → chrome-Hte84S6l.js} +7 -7
  186. package/dist/plugin-sdk/{chunk-BuHZrtLn.js → chunk-4pLJcTE-.js} +1 -1
  187. package/dist/plugin-sdk/{command-format-9ttCUvaP.js → command-format-TmcJI6nP.js} +1 -1
  188. package/dist/plugin-sdk/{commands-registry-ydkoxruZ.js → commands-registry-D1UwEKAH.js} +5 -5
  189. package/dist/plugin-sdk/{config-BkeO1N4t.js → config-kqUrcUGI.js} +10 -10
  190. package/dist/plugin-sdk/{deliver-BcAT1l6Y.js → deliver-DymnzypV.js} +11 -11
  191. package/dist/plugin-sdk/{diagnostic-BefhWusS.js → diagnostic-1MgpiorV.js} +2 -2
  192. package/dist/plugin-sdk/{dock-yYEdNzbx.js → dock-Csf-65jq.js} +6 -6
  193. package/dist/plugin-sdk/{errors-D2KyTKs6.js → errors-BRahpZsP.js} +1 -1
  194. package/dist/plugin-sdk/{fetch-guard-BC92RxgN.js → fetch-guard-cD2GBmNp.js} +2 -2
  195. package/dist/plugin-sdk/{fs-safe-CC4mG_Hc.js → fs-safe-DgdRzasF.js} +3 -3
  196. package/dist/plugin-sdk/{image-Cjm_y1ht.js → image-m9sEMr_K.js} +6 -6
  197. package/dist/{image-ops-B2K36FLD.js → plugin-sdk/image-ops-DhVTERkS.js} +1 -1
  198. package/dist/plugin-sdk/index.js +64 -64
  199. package/dist/plugin-sdk/{ir-CLKvSg7X.js → ir-DyMWDxUp.js} +6 -6
  200. package/dist/plugin-sdk/{local-roots-DYmtEf6P.js → local-roots-ChmGReXd.js} +4 -4
  201. package/dist/plugin-sdk/{logger-Dqmpx59X.js → logger-BwzMchOl.js} +1 -1
  202. package/dist/plugin-sdk/{login-DYEbRdfH.js → login-DIgrxuIQ.js} +6 -6
  203. package/dist/plugin-sdk/{login-qr-0YUEfC35.js → login-qr-DeAbaqfx.js} +9 -9
  204. package/dist/plugin-sdk/{manager-J_9hr0Yu.js → manager-Bic1h3Nu.js} +10 -10
  205. package/dist/plugin-sdk/{markdown-tables-BA_MdGIq.js → markdown-tables-BEWLluuz.js} +1 -1
  206. package/dist/plugin-sdk/{message-channel-CeYrurhu.js → message-channel-Be6xIObc.js} +1 -1
  207. package/dist/plugin-sdk/{outbound-B386FQiU.js → outbound-D7OdBk5M.js} +7 -7
  208. package/dist/plugin-sdk/{outbound-attachment-DgC7KgEZ.js → outbound-attachment-Y-wO2Csk.js} +2 -2
  209. package/dist/plugin-sdk/{path-alias-guards-KB1li1UU.js → path-alias-guards-CsekuFRi.js} +1 -1
  210. package/dist/plugin-sdk/{pi-embedded-helpers-CbevdnHV.js → pi-embedded-helpers-BWFPgWTA.js} +17 -17
  211. package/dist/plugin-sdk/{pi-model-discovery-Blr1NdM4.js → pi-model-discovery-DRomJojM.js} +1 -1
  212. package/dist/plugin-sdk/{plugins-Dupyelyu.js → plugins-DKZ5hSLA.js} +6 -6
  213. package/dist/plugin-sdk/{proxy-CnPaiSZ0.js → proxy-DIYzaAvh.js} +1 -1
  214. package/dist/plugin-sdk/{proxy-fetch-BY4mmpys.js → proxy-fetch-X6Ja_eZx.js} +1 -1
  215. package/dist/plugin-sdk/{pw-ai-C1rLCgeF.js → pw-ai-MuLgIL01.js} +13 -13
  216. package/dist/plugin-sdk/{qmd-manager-BtfjLkaZ.js → qmd-manager-D3p7PB5n.js} +8 -8
  217. package/dist/plugin-sdk/{query-expansion-DgHoeKXG.js → query-expansion-C90Jc5uo.js} +2 -2
  218. package/dist/plugin-sdk/{redact-Civ2olvH.js → redact-DEfi9F2o.js} +1 -1
  219. package/dist/plugin-sdk/{registry-Cq-TQPU8.js → registry-BfD4IdFK.js} +2 -2
  220. package/dist/plugin-sdk/{replies-a2WeMkU6.js → replies-GRjUBMUL.js} +3 -3
  221. package/dist/plugin-sdk/{reply-C2XVty9G.js → reply-BLgFJt3A.js} +94 -94
  222. package/dist/plugin-sdk/{reply-prefix-BRomwQau.js → reply-prefix-CobEDhG_.js} +1 -1
  223. package/dist/plugin-sdk/{resolve-outbound-target-B_xKgqWe.js → resolve-outbound-target-DkNri48r.js} +2 -2
  224. package/dist/plugin-sdk/{resolve-route-yLtq9xkG.js → resolve-route-fu19EHnm.js} +4 -4
  225. package/dist/plugin-sdk/{retry-D9aKv766.js → retry-Agt7ZiSn.js} +1 -1
  226. package/dist/plugin-sdk/{send-Ct2mLh8U.js → send-BB06ROuk.js} +15 -15
  227. package/dist/plugin-sdk/{send-Bs-YbYdN.js → send-BUpepCol.js} +6 -6
  228. package/dist/plugin-sdk/{send-WwwzoTNW.js → send-C5ymrC3h.js} +7 -7
  229. package/dist/plugin-sdk/{send-kJXSgFcu.js → send-CvC0d45Z.js} +10 -10
  230. package/dist/plugin-sdk/{send-_MTxUi5p.js → send-DwXcBQYC.js} +8 -8
  231. package/dist/plugin-sdk/{session-Bfpm71Tg.js → session-D8BNggg2.js} +5 -5
  232. package/dist/plugin-sdk/{session-meta-CM4K7B00.js → session-meta-DYb6KCvG.js} +1 -1
  233. package/dist/plugin-sdk/{sessions-DFx8MKSO.js → sessions-BtJmhzev.js} +6 -6
  234. package/dist/plugin-sdk/{skill-commands-CakvOluN.js → skill-commands-C3OZ4W61.js} +5 -5
  235. package/dist/plugin-sdk/{skills-CZFBOkwT.js → skills-CIvz2coj.js} +8 -8
  236. package/dist/plugin-sdk/{ssrf-BjVCUeM7.js → ssrf-EGzUkeVq.js} +1 -1
  237. package/dist/plugin-sdk/{store-DALs5PIC.js → store-Dij_2k2X.js} +2 -2
  238. package/dist/plugin-sdk/{subsystem-DQdKZm8Z.js → subsystem-C84uWxqx.js} +2 -2
  239. package/dist/plugin-sdk/{tables-BQwHnOX0.js → tables-CTWsNiUf.js} +1 -1
  240. package/dist/{target-errors-CL097N6P.js → plugin-sdk/target-errors-Bgd_Uo0g.js} +2 -2
  241. package/dist/plugin-sdk/{tokens-C_Ieeb03.js → tokens-B9E-mnf_.js} +1 -1
  242. package/dist/plugin-sdk/{tool-images-RhD8geto.js → tool-images-0gnewwTL.js} +2 -2
  243. package/dist/plugin-sdk/{tool-loop-detection-CKnmaEeR.js → tool-loop-detection-Bsh07kcw.js} +2 -2
  244. package/dist/plugin-sdk/{utils-hxOwZduA.js → utils-BA7Xm0uM.js} +1 -1
  245. package/dist/plugin-sdk/web-DqzB-SV4.js +72 -0
  246. package/dist/plugin-sdk/{whatsapp-actions-CudQXAzF.js → whatsapp-actions-BLoPRR5B.js} +25 -25
  247. package/dist/{plugins-CO6qDFdk.js → plugins--_65-dc5.js} +2 -2
  248. package/dist/{plugins-cli-B90nR_VK.js → plugins-cli-BJonAjTO.js} +88 -88
  249. package/dist/{plugins-cli-B_SrAza2.js → plugins-cli-C-8MoZzf.js} +4 -4
  250. package/dist/{ports-CUjMnvTs.js → ports-Cw4Nwv2D.js} +1 -1
  251. package/dist/{ports-Dczj_PV_.js → ports-DgCQT1oY.js} +2 -2
  252. package/dist/{program-CoUWrOuU.js → program-B1DDCI6U.js} +86 -86
  253. package/dist/{program-context-BW36TXnn.js → program-context-NPXfc1Sa.js} +18 -18
  254. package/dist/{prompt-select-styled-BY0UebAF.js → prompt-select-styled-BGSuv83k.js} +4 -4
  255. package/dist/{prompt-select-styled-CCeKGXxa.js → prompt-select-styled-C0DwQfQk.js} +39 -39
  256. package/dist/{provider-auth-helpers-BL5oDpRO.js → provider-auth-helpers-CkfN1Udt.js} +2 -2
  257. package/dist/{provider-auth-helpers-Btf9aI1h.js → provider-auth-helpers-DpMDtZGw.js} +5 -5
  258. package/dist/{proxy-env-DQGTNk9X.js → proxy-env-DHBs_DSq.js} +1 -1
  259. package/dist/{push-apns-D-Mikscg.js → push-apns-6vguSSaQ.js} +1 -1
  260. package/dist/{push-apns-CzIypSJf.js → push-apns-BM60Vdjq.js} +5 -5
  261. package/dist/{pw-ai-DRY3vRxC.js → pw-ai-CSOK1DjV.js} +1 -1
  262. package/dist/{pw-ai-D1Ry3gcn.js → pw-ai-DYEHR6w8.js} +15 -15
  263. package/dist/{qmd-manager-BNFUTVvk.js → qmd-manager-BHSD3_rI.js} +20 -20
  264. package/dist/{qr-cli-BTrl8Tw4.js → qr-cli-CKOGSVK_.js} +1 -1
  265. package/dist/{query-expansion-CP4BjmxS.js → query-expansion-BkWbp0bs.js} +12 -12
  266. package/dist/{redact-snapshot-QpVJSBBX.js → redact-snapshot-BzZpHz-O.js} +1 -1
  267. package/dist/{register.agent-BksD8xqL.js → register.agent-3NPWicXc.js} +99 -99
  268. package/dist/{register.agent-D32q9uR9.js → register.agent-BDgNG_vU.js} +10 -10
  269. package/dist/{register.configure-DMRRvVx7.js → register.configure-CqJE208_.js} +13 -13
  270. package/dist/register.configure-r8N_Ye2a.js +175 -0
  271. package/dist/{register.init-ChyHcEAX.js → register.init-DmtSU1SM.js} +17 -17
  272. package/dist/{register.init-EOlDrQTS.js → register.init-JoFq4yF_.js} +1 -1
  273. package/dist/{register.maintenance-C0zxZg0K.js → register.maintenance-CDec0C-U.js} +101 -101
  274. package/dist/{register.maintenance-BiWaNm96.js → register.maintenance-CwAvr3jO.js} +9 -9
  275. package/dist/{register.message-DizXp_pp.js → register.message-BYnoyuMR.js} +4 -4
  276. package/dist/{register.message-DW2G2t5n.js → register.message-DKvfL1J5.js} +79 -79
  277. package/dist/{register.onboard-DeZ6BYWf.js → register.onboard-B8pb4tM9.js} +18 -18
  278. package/dist/{register.onboard-CBbSomv2.js → register.onboard-Cgfw0grV.js} +2 -2
  279. package/dist/{register.setup-DWdi6O74.js → register.setup-BuEmY1JS.js} +21 -21
  280. package/dist/{register.setup-DFYvGlPy.js → register.setup-D5Fq2qX4.js} +2 -2
  281. package/dist/{register.start-CbfmMKWY.js → register.start-D0pe3Bgs.js} +17 -17
  282. package/dist/{register.status-health-sessions-DYoPE-bA.js → register.status-health-sessions-Cu317Sb6.js} +5 -5
  283. package/dist/{register.status-health-sessions-CMZuvcON.js → register.status-health-sessions-bff6FfP2.js} +93 -93
  284. package/dist/{register.subclis-CS79-xpm.js → register.subclis-BhOrZYL6.js} +31 -31
  285. package/dist/{replies-Dx5zA8IX.js → replies-uQ56Hw52.js} +1 -1
  286. package/dist/{reply-BuhQ-Yv_.js → reply-CnFMSknJ.js} +4 -4
  287. package/dist/{reply-prefix-CS57j6KU.js → reply-prefix-XmrGZdy_.js} +1 -1
  288. package/dist/{resolve-route-Bxji0kZW.js → resolve-route-Ukn_7wVk.js} +2 -2
  289. package/dist/{rpc-cRmU1tSk.js → rpc-3QEhCMY4.js} +1 -1
  290. package/dist/{run-main-BH5kmZli.js → run-main-XgrqfX2-.js} +97 -97
  291. package/dist/{runtime-COI_IE2j.js → runtime-B4lkRQQD.js} +2 -2
  292. package/dist/{sandbox-BNSLjYyu.js → sandbox-CEIoYXZN.js} +18 -18
  293. package/dist/{sandbox-cli-C1OPjNfD.js → sandbox-cli-BrTy3weD.js} +26 -26
  294. package/dist/{secrets-cli-7Md_QcpC.js → secrets-cli-DeFPoA0b.js} +10 -10
  295. package/dist/{security-cli-D68NIF3V.js → security-cli-CpDjK_Rg.js} +43 -43
  296. package/dist/{send-C8xKNHVm.js → send-6U8MorA7.js} +6 -6
  297. package/dist/{send-DX2I6KZU.js → send-BY8NE-y9.js} +8 -8
  298. package/dist/{send-DikEpk7w.js → send-BdKdRPi6.js} +6 -6
  299. package/dist/{send-CUvJIfFz.js → send-CVDGeH7A.js} +11 -11
  300. package/dist/{send-BpYBrb6S.js → send-CtAy9-2u.js} +5 -5
  301. package/dist/{server-D_wuOlkf.js → server-C9XFPL3c.js} +19 -19
  302. package/dist/{server-context-Dl8XC4vq.js → server-context-DtOlWY9P.js} +12 -12
  303. package/dist/{server-lifecycle-BIuR7Tj0.js → server-lifecycle-CXzU2NM3.js} +2 -2
  304. package/dist/{server-middleware-C_4mR9wU.js → server-middleware-Bp3DeSvQ.js} +1 -1
  305. package/dist/{server-node-events-CIKBnBfy.js → server-node-events-D9JMB4qc.js} +4 -4
  306. package/dist/{server-node-events-B-IAFJfU.js → server-node-events-DU4-v1FY.js} +79 -79
  307. package/dist/{service-BcyKtT1n.js → service-DPP3q6R4.js} +15 -15
  308. package/dist/{session-DyGs2JIG.js → session-6uNAHyWp.js} +1 -1
  309. package/dist/{session-meta-C7WybT5h.js → session-meta-DGKTOhxQ.js} +1 -1
  310. package/dist/{session-utils-CYaFN47T.js → session-utils-hbZzVDyj.js} +6 -6
  311. package/dist/{sessions-Cd7cVPC-.js → sessions-CbWqJtkx.js} +4 -4
  312. package/dist/{sessions-i5lEEEca.js → sessions-DB4MRK6L.js} +15 -15
  313. package/dist/{shared-CL0m0H8G.js → shared-D6mi8wP1.js} +1 -1
  314. package/dist/{shared-BKC5qsuY.js → shared-yo9kxQZW.js} +3 -3
  315. package/dist/{skill-commands-Cl6M7kpE.js → skill-commands-Duha9iIC.js} +5 -5
  316. package/dist/{skill-scanner-WUtERLdW.js → skill-scanner-Di-O2Hg-.js} +6 -6
  317. package/dist/{skills-cli-C0gXv9PH.js → skills-cli-Dkjzn2SU.js} +5 -5
  318. package/dist/{skills-B18XPCNc.js → skills-dNa7QxCF.js} +3 -3
  319. package/dist/{skills-install-DYR6yH15.js → skills-install-ARBA7lP0.js} +6 -6
  320. package/dist/{skills-status-D9Rnj4xI.js → skills-status-B4yuFDEj.js} +1 -1
  321. package/dist/{status-QAYDXJY7.js → status-Bc7enxs_.js} +2 -2
  322. package/dist/{status-Dwe_iuCP.js → status-CZzSBlnp.js} +26 -26
  323. package/dist/{status.update-C0psHodW.js → status.update-aARe-MF6.js} +2 -2
  324. package/dist/{store-D-c26kSk.js → store-BpvlJ70I.js} +5 -5
  325. package/dist/{subagent-registry-eE5PhOhY.js → subagent-registry-Vdjnck5t.js} +159 -159
  326. package/dist/{system-cli-kpN0Gb37.js → system-cli-CYspMbRb.js} +9 -9
  327. package/dist/{system-run-command-DFxer2oq.js → system-run-command-BJQ7Q63p.js} +1 -1
  328. package/dist/{systemd-ebIdQGFn.js → systemd-BtVy3Rbo.js} +9 -9
  329. package/dist/{systemd-hints-tCX_kug7.js → systemd-hints-BetNJuAX.js} +6 -6
  330. package/dist/{systemd-linger-IFrOwkb9.js → systemd-linger-CWPZsER4.js} +1 -1
  331. package/dist/{tables-FZbGazqi.js → tables-Bv2Hq-F0.js} +1 -1
  332. package/dist/{tailnet-BKoOcmOa.js → tailnet-Dynp_Pgs.js} +1 -1
  333. package/dist/{plugin-sdk/target-errors-DqlHqAmV.js → target-errors-Bwi1jTIf.js} +4 -4
  334. package/dist/{tool-images-CXfdtMwT.js → tool-images-D7dXfsZW.js} +1 -1
  335. package/dist/{tui-D3HyXPhF.js → tui-CYj3VX-Y.js} +6 -6
  336. package/dist/{tui-cli-BYXDIVRr.js → tui-cli-g7SERHtf.js} +33 -33
  337. package/dist/{update-D372fHKr.js → update-DbGfT3_u.js} +3 -3
  338. package/dist/{update-cli-DZeEWYpT.js → update-cli-5TQOseRu.js} +109 -109
  339. package/dist/{update-cli-D2hEVao1.js → update-cli-NdFHE4ys.js} +9 -9
  340. package/dist/{update-runner-BINb9QSq.js → update-runner-De50joeS.js} +1 -1
  341. package/dist/{update-runner-j5RoheCK.js → update-runner-FvLlPsze.js} +16 -16
  342. package/dist/{web-aYzDbOgP.js → web-B6scHWeE.js} +4 -4
  343. package/dist/{web-BpIOoTcJ.js → web-CENAFqOm.js} +6 -6
  344. package/dist/web-CsKCU-Xc.js +127 -0
  345. package/dist/{web-DcyT3FlY.js → web-DkzOj528.js} +1 -1
  346. package/dist/{webhooks-cli-DgLGWDer.js → webhooks-cli-CoxuOMZ6.js} +6 -6
  347. package/dist/{whatsapp-actions-BC00XF83.js → whatsapp-actions-0CZKI1og.js} +19 -19
  348. package/dist/{with-timeout-DvPUrPuK.js → with-timeout-cpgy0l-9.js} +3 -3
  349. package/dist/{workspace-Cuq5sS-4.js → workspace-DYiAh9n2.js} +1 -1
  350. package/dist/{workspace-DkRZH7vl.js → workspace-DtFDeYRa.js} +23 -23
  351. package/dist/{workspace-dirs-DBhaJ0y_.js → workspace-dirs-BAyX7JI2.js} +1 -1
  352. package/dist/{wsl-KDz114y6.js → wsl-CiVud8tt.js} +2 -2
  353. package/package.json +1 -1
  354. package/dist/plugin-sdk/web-DLrSMEN4.js +0 -72
  355. package/dist/register.configure-CJVJLDtX.js +0 -175
  356. package/dist/web-Kse4dEsw.js +0 -127
@@ -3,7 +3,7 @@ const BITSEEK_PROVIDER_ID = "bitseek";
3
3
  const BITSEEK_DEFAULT_BASE_URL = "https://chat-proxy.bitseek.ai/v1";
4
4
  const BITSEEK_DEFAULT_MODEL_ID = "AUTO";
5
5
  const BITSEEK_DEFAULT_MODEL_REF = `${BITSEEK_PROVIDER_ID}/${BITSEEK_DEFAULT_MODEL_ID}`;
6
- const BITSEEK_DEFAULT_CONTEXT_WINDOW_TOKENS = 131072;
6
+ const BITSEEK_DEFAULT_CONTEXT_WINDOW_TOKENS = 128e3;
7
7
  const BITSEEK_DEFAULT_MAX_TOKENS = 65536;
8
8
  const BITSEEK_DEEPSEEK_REASONER_COMPAT = {
9
9
  supportsStore: false,
@@ -1,4 +1,4 @@
1
- import { r as BITSEEK_DEFAULT_CONTEXT_WINDOW_TOKENS, s as BITSEEK_PROVIDER_ID } from "./constants-BJMtcGm_.js";
1
+ import { r as BITSEEK_DEFAULT_CONTEXT_WINDOW_TOKENS, s as BITSEEK_PROVIDER_ID } from "./constants-By6nxsIT.js";
2
2
 
3
3
  //#region src/agents/context-window-guard.ts
4
4
  const CONTEXT_WINDOW_HARD_MIN_TOKENS = 16e3;
@@ -1,4 +1,4 @@
1
- import { r as BITSEEK_DEFAULT_CONTEXT_WINDOW_TOKENS, s as BITSEEK_PROVIDER_ID } from "./constants-D1Q8yQ1_.js";
1
+ import { r as BITSEEK_DEFAULT_CONTEXT_WINDOW_TOKENS, s as BITSEEK_PROVIDER_ID } from "./constants-BLoDkl98.js";
2
2
 
3
3
  //#region src/agents/context-window-guard.ts
4
4
  const CONTEXT_WINDOW_HARD_MIN_TOKENS = 16e3;
@@ -123,7 +123,7 @@
123
123
  </div>
124
124
  `}function bg(e){const t={name:e?.name??"",displayName:e?.displayName??"",about:e?.about??"",picture:e?.picture??"",banner:e?.banner??"",website:e?.website??"",nip05:e?.nip05??"",lud16:e?.lud16??""};return{values:t,original:{...t},saving:!1,importing:!1,error:null,success:null,fieldErrors:{},showAdvanced:!!(e?.banner||e?.website||e?.nip05||e?.lud16)}}async function yg(e,t){await cg(e,t),await Me(e,!0)}async function $g(e){await dg(e),await Me(e,!0)}async function xg(e){await ug(e),await Me(e,!0)}async function wg(e){await On(e),await Ae(e),await Me(e,!0)}async function Sg(e){await Ae(e),await Me(e,!0)}function kg(e){if(!Array.isArray(e))return{};const t={};for(const n of e){if(typeof n!="string")continue;const[s,...i]=n.split(":");if(!s||i.length===0)continue;const o=s.trim(),r=i.join(":").trim();o&&r&&(t[o]=r)}return t}function ic(e){return(e.channelsSnapshot?.channelAccounts?.nostr??[])[0]?.accountId??e.nostrProfileAccountId??"default"}function oc(e,t=""){return`/api/channels/nostr/${encodeURIComponent(e)}/profile${t}`}function Ag(e){const t=e.hello?.auth?.deviceToken?.trim();if(t)return`Bearer ${t}`;const n=e.settings.token.trim();if(n)return`Bearer ${n}`;const s=e.password.trim();return s?`Bearer ${s}`:null}function rc(e){const t=Ag(e);return t?{Authorization:t}:{}}function Cg(e,t,n){e.nostrProfileAccountId=t,e.nostrProfileFormState=bg(n??void 0)}function Tg(e){e.nostrProfileFormState=null,e.nostrProfileAccountId=null}function _g(e,t,n){const s=e.nostrProfileFormState;s&&(e.nostrProfileFormState={...s,values:{...s.values,[t]:n},fieldErrors:{...s.fieldErrors,[t]:""}})}function Eg(e){const t=e.nostrProfileFormState;t&&(e.nostrProfileFormState={...t,showAdvanced:!t.showAdvanced})}async function Ig(e){const t=e.nostrProfileFormState;if(!t||t.saving)return;const n=ic(e);e.nostrProfileFormState={...t,saving:!0,error:null,success:null,fieldErrors:{}};try{const s=await fetch(oc(n),{method:"PUT",headers:{"Content-Type":"application/json",...rc(e)},body:JSON.stringify(t.values)}),i=await s.json().catch(()=>null);if(!s.ok||i?.ok===!1||!i){const o=i?.error??`Profile update failed (${s.status})`;e.nostrProfileFormState={...t,saving:!1,error:o,success:null,fieldErrors:kg(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 Me(e,!0)}catch(s){e.nostrProfileFormState={...t,saving:!1,error:`Profile update failed: ${String(s)}`,success:null}}}async function Rg(e){const t=e.nostrProfileFormState;if(!t||t.importing)return;const n=ic(e);e.nostrProfileFormState={...t,importing:!0,error:null,success:null};try{const s=await fetch(oc(n,"/import"),{method:"POST",headers:{"Content-Type":"application/json",...rc(e)},body:JSON.stringify({autoMerge:!0})}),i=await s.json().catch(()=>null);if(!s.ok||i?.ok===!1||!i){const a=i?.error??`Profile import failed (${s.status})`;e.nostrProfileFormState={...t,importing:!1,error:a,success:null};return}const o=i.merged??i.imported??null,r=o?{...t.values,...o}:t.values,l=!!(r.banner||r.website||r.nip05||r.lud16);e.nostrProfileFormState={...t,importing:!1,values:r,error:null,success:i.saved?"Profile imported from relays. Review and publish.":"Profile imported. Review and publish.",showAdvanced:l},i.saved&&await Me(e,!0)}catch(s){e.nostrProfileFormState={...t,importing:!1,error:`Profile import failed: ${String(s)}`,success:null}}}function Mg(e){const t=(e??"").trim().toLowerCase();if(!t)return null;const n=t.split(":").filter(Boolean);if(n.length<3||n[0]!=="agent")return null;const s=n[1]?.trim(),i=n.slice(2).join(":");return!s||!i?null:{agentId:s,rest:i}}const Zi=450;function ss(e,t=!1,n=!1){e.chatScrollFrame&&cancelAnimationFrame(e.chatScrollFrame),e.chatScrollTimeout!=null&&(clearTimeout(e.chatScrollTimeout),e.chatScrollTimeout=null);const s=()=>{const i=e.querySelector(".chat-thread");if(i){const o=getComputedStyle(i).overflowY;if(o==="auto"||o==="scroll"||i.scrollHeight-i.clientHeight>1)return i}return document.scrollingElement??document.documentElement};e.updateComplete.then(()=>{e.chatScrollFrame=requestAnimationFrame(()=>{e.chatScrollFrame=null;const i=s();if(!i)return;const o=i.scrollHeight-i.scrollTop-i.clientHeight,r=t&&!e.chatHasAutoScrolled;if(!(r||e.chatUserNearBottom||o<Zi)){e.chatNewMessagesBelow=!0;return}r&&(e.chatHasAutoScrolled=!0);const a=n&&(typeof window>"u"||typeof window.matchMedia!="function"||!window.matchMedia("(prefers-reduced-motion: reduce)").matches),d=i.scrollHeight;typeof i.scrollTo=="function"?i.scrollTo({top:d,behavior:a?"smooth":"auto"}):i.scrollTop=d,e.chatUserNearBottom=!0,e.chatNewMessagesBelow=!1;const g=r?150:120;e.chatScrollTimeout=window.setTimeout(()=>{e.chatScrollTimeout=null;const u=s();if(!u)return;const f=u.scrollHeight-u.scrollTop-u.clientHeight;(r||e.chatUserNearBottom||f<Zi)&&(u.scrollTop=u.scrollHeight,e.chatUserNearBottom=!0)},g)})})}function ac(e,t=!1){e.logsScrollFrame&&cancelAnimationFrame(e.logsScrollFrame),e.updateComplete.then(()=>{e.logsScrollFrame=requestAnimationFrame(()=>{e.logsScrollFrame=null;const n=e.querySelector(".log-stream");if(!n)return;const s=n.scrollHeight-n.scrollTop-n.clientHeight;(t||s<80)&&(n.scrollTop=n.scrollHeight)})})}function Lg(e,t){const n=t.currentTarget;if(!n)return;const s=n.scrollHeight-n.scrollTop-n.clientHeight;e.chatUserNearBottom=s<Zi,e.chatUserNearBottom&&(e.chatNewMessagesBelow=!1)}function Dg(e,t){const n=t.currentTarget;if(!n)return;const s=n.scrollHeight-n.scrollTop-n.clientHeight;e.logsAtBottom=s<80}function na(e){e.chatHasAutoScrolled=!1,e.chatUserNearBottom=!0,e.chatNewMessagesBelow=!1}function Pg(e,t){if(e.length===0)return;const n=new Blob([`${e.join(`
125
125
  `)}
126
- `],{type:"text/plain"}),s=URL.createObjectURL(n),i=document.createElement("a"),o=new Date().toISOString().slice(0,19).replace(/[:T]/g,"-");i.href=s,i.download=`openclaw-logs-${t}-${o}.log`,i.click(),URL.revokeObjectURL(s)}function Fg(e){if(typeof ResizeObserver>"u")return;const t=e.querySelector(".topbar");if(!t)return;const n=()=>{const{height:s}=t.getBoundingClientRect();e.style.setProperty("--topbar-height",`${s}px`)};n(),e.topbarObserver=new ResizeObserver(()=>n()),e.topbarObserver.observe(t)}async function si(e){if(!(!e.client||!e.connected)&&!e.debugLoading){e.debugLoading=!0;try{const[t,n,s,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;const o=s;e.debugModels=Array.isArray(o?.models)?o?.models:[],e.debugHeartbeat=i}catch(t){e.debugCallError=String(t)}finally{e.debugLoading=!1}}}async function Ng(e){if(!(!e.client||!e.connected)){e.debugCallError=null,e.debugCallResult=null;try{const 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)}}}const Og=2e3,Ug=new Set(["trace","debug","info","warn","error","fatal"]);function Bg(e){if(typeof e!="string")return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);return!n||typeof n!="object"?null:n}catch{return null}}function Hg(e){if(typeof e!="string")return null;const t=e.toLowerCase();return Ug.has(t)?t:null}function zg(e){if(!e.trim())return{raw:e,message:e};try{const t=JSON.parse(e),n=t&&typeof t._meta=="object"&&t._meta!==null?t._meta:null,s=typeof t.time=="string"?t.time:typeof n?.date=="string"?n?.date:null,i=Hg(n?.logLevelName??n?.level),o=typeof t[0]=="string"?t[0]:typeof n?.name=="string"?n?.name:null,r=Bg(o);let l=null;r&&(typeof r.subsystem=="string"?l=r.subsystem:typeof r.module=="string"&&(l=r.module)),!l&&o&&o.length<120&&(l=o);let a=null;return typeof t[1]=="string"?a=t[1]:!r&&typeof t[0]=="string"?a=t[0]:typeof t.message=="string"&&(a=t.message),{raw:e,time:s,level:i,subsystem:l,message:a??e,meta:n??void 0}}catch{return{raw:e,message:e}}}async function Oo(e,t){if(!(!e.client||!e.connected)&&!(e.logsLoading&&!t?.quiet)){t?.quiet||(e.logsLoading=!0),e.logsError=null;try{const s=await e.client.request("logs.tail",{cursor:t?.reset?void 0:e.logsCursor??void 0,limit:e.logsLimit,maxBytes:e.logsMaxBytes}),o=(Array.isArray(s.lines)?s.lines.filter(l=>typeof l=="string"):[]).map(zg),r=!!(t?.reset||s.reset||e.logsCursor==null);e.logsEntries=r?o:[...e.logsEntries,...o].slice(-Og),typeof s.cursor=="number"&&(e.logsCursor=s.cursor),typeof s.file=="string"&&(e.logsFile=s.file),e.logsTruncated=!!s.truncated,e.logsLastFetchAt=Date.now()}catch(n){e.logsError=String(n)}finally{t?.quiet||(e.logsLoading=!1)}}}async function ii(e,t){if(!(!e.client||!e.connected)&&!e.nodesLoading){e.nodesLoading=!0,t?.quiet||(e.lastError=null);try{const n=await e.client.request("node.list",{});e.nodes=Array.isArray(n.nodes)?n.nodes:[]}catch(n){t?.quiet||(e.lastError=String(n))}finally{e.nodesLoading=!1}}}function jg(e){e.nodesPollInterval==null&&(e.nodesPollInterval=window.setInterval(()=>{ii(e,{quiet:!0})},5e3))}function Kg(e){e.nodesPollInterval!=null&&(clearInterval(e.nodesPollInterval),e.nodesPollInterval=null)}function lc(e){e.logsPollInterval==null&&(e.logsPollInterval=window.setInterval(()=>{e.tab==="logs"&&Oo(e,{quiet:!0})},2e3))}function cc(e){e.logsPollInterval!=null&&(clearInterval(e.logsPollInterval),e.logsPollInterval=null)}function dc(e){e.debugPollInterval==null&&(e.debugPollInterval=window.setInterval(()=>{e.tab==="debug"&&si(e)},3e3))}function uc(e){e.debugPollInterval!=null&&(clearInterval(e.debugPollInterval),e.debugPollInterval=null)}async function gc(e,t){if(!(!e.client||!e.connected||e.agentIdentityLoading)&&!e.agentIdentityById[t]){e.agentIdentityLoading=!0,e.agentIdentityError=null;try{const n=await e.client.request("agent.identity.get",{agentId:t});n&&(e.agentIdentityById={...e.agentIdentityById,[t]:n})}catch(n){e.agentIdentityError=String(n)}finally{e.agentIdentityLoading=!1}}}async function fc(e,t){if(!e.client||!e.connected||e.agentIdentityLoading)return;const n=t.filter(s=>!e.agentIdentityById[s]);if(n.length!==0){e.agentIdentityLoading=!0,e.agentIdentityError=null;try{for(const s of n){const i=await e.client.request("agent.identity.get",{agentId:s});i&&(e.agentIdentityById={...e.agentIdentityById,[s]:i})}}catch(s){e.agentIdentityError=String(s)}finally{e.agentIdentityLoading=!1}}}async function _s(e,t){if(!(!e.client||!e.connected)&&!e.agentSkillsLoading){e.agentSkillsLoading=!0,e.agentSkillsError=null;try{const n=await e.client.request("skills.status",{agentId:t});n&&(e.agentSkillsReport=n,e.agentSkillsAgentId=t)}catch(n){e.agentSkillsError=String(n)}finally{e.agentSkillsLoading=!1}}}async function Uo(e){if(!(!e.client||!e.connected)&&!e.agentsLoading){e.agentsLoading=!0,e.agentsError=null;try{const t=await e.client.request("agents.list",{});if(t){e.agentsList=t;const n=e.agentsSelectedId,s=t.agents.some(i=>i.id===n);(!n||!s)&&(e.agentsSelectedId=t.defaultId??t.agents[0]?.id??null)}}catch(t){e.agentsError=String(t)}finally{e.agentsLoading=!1}}}async function Hn(e,t){if(!(!e.client||!e.connected)&&!e.toolsCatalogLoading){e.toolsCatalogLoading=!0,e.toolsCatalogError=null;try{const n=await e.client.request("tools.catalog",{agentId:t??e.agentsSelectedId??void 0,includePlugins:!0});n&&(e.toolsCatalogResult=n)}catch(n){e.toolsCatalogError=String(n)}finally{e.toolsCatalogLoading=!1}}}const Wg={trace:!0,debug:!0,info:!0,warn:!0,error:!0,fatal:!0},Os={name:"",description:"",agentId:"",sessionKey:"",clearAgent:!1,enabled:!0,deleteAfterRun:!0,scheduleKind:"every",scheduleAt:"",everyAmount:"30",everyUnit:"minutes",cronExpr:"0 7 * * *",cronTz:"",scheduleExact:!1,staggerAmount:"",staggerUnit:"seconds",sessionTarget:"isolated",wakeMode:"now",payloadKind:"agentTurn",payloadText:"",payloadModel:"",payloadThinking:"",payloadLightContext:!1,deliveryMode:"announce",deliveryChannel:"last",deliveryTo:"",deliveryAccountId:"",deliveryBestEffort:!1,failureAlertMode:"inherit",failureAlertAfter:"2",failureAlertCooldownSeconds:"3600",failureAlertChannel:"last",failureAlertTo:"",failureAlertDeliveryMode:"announce",failureAlertAccountId:"",timeoutSeconds:""};function Bo(e,t){if(e==null||!Number.isFinite(e)||e<=0)return;if(e<1e3)return`${Math.round(e)}ms`;const n=t?.spaced?" ":"",s=Math.round(e/1e3),i=Math.floor(s/3600),o=Math.floor(s%3600/60),r=s%60;if(i>=24){const l=Math.floor(i/24),a=i%24;return a>0?`${l}d${n}${a}h`:`${l}d`}return i>0?o>0?`${i}h${n}${o}m`:`${i}h`:o>0?r>0?`${o}m${n}${r}s`:`${o}m`:`${r}s`}function Ho(e,t="n/a"){if(e==null||!Number.isFinite(e)||e<0)return t;if(e<1e3)return`${Math.round(e)}ms`;const n=Math.round(e/1e3);if(n<60)return`${n}s`;const s=Math.round(n/60);if(s<60)return`${s}m`;const i=Math.round(s/60);return i<24?`${i}h`:`${Math.round(i/24)}d`}function ne(e,t){const n=t?.fallback??"n/a";if(e==null||!Number.isFinite(e))return n;const s=Date.now()-e,i=Math.abs(s),o=s>=0,r=Math.round(i/1e3);if(r<60)return o?"just now":"in <1m";const l=Math.round(r/60);if(l<60)return o?`${l}m ago`:`in ${l}m`;const a=Math.round(l/60);if(a<48)return o?`${a}h ago`:`in ${a}h`;const d=Math.round(a/24);return o?`${d}d ago`:`in ${d}d`}function eo(e){const t=[],n=/(^|\n)(```|~~~)[^\n]*\n[\s\S]*?(?:\n\2(?:\n|$)|$)/g;for(const i of e.matchAll(n)){const o=(i.index??0)+i[1].length;t.push({start:o,end:o+i[0].length-i[1].length})}const s=/`+[^`]+`+/g;for(const i of e.matchAll(s)){const o=i.index??0,r=o+i[0].length;t.some(a=>o>=a.start&&r<=a.end)||t.push({start:o,end:r})}return t.sort((i,o)=>i.start-o.start),t}function to(e,t){return t.some(n=>e>=n.start&&e<n.end)}const qg=/<\s*\/?\s*(?:think(?:ing)?|thought|antthinking|final)\b/i,hs=/<\s*\/?\s*final\b[^<>]*>/gi,sa=/<\s*(\/?)\s*(?:think(?:ing)?|thought|antthinking)\b[^<>]*>/gi;function Gg(e,t){return e.trimStart()}function Vg(e,t){if(!e||!qg.test(e))return e;let n=e;if(hs.test(n)){hs.lastIndex=0;const l=[],a=eo(n);for(const d of n.matchAll(hs)){const g=d.index??0;l.push({start:g,length:d[0].length,inCode:to(g,a)})}for(let d=l.length-1;d>=0;d--){const g=l[d];g.inCode||(n=n.slice(0,g.start)+n.slice(g.start+g.length))}}else hs.lastIndex=0;const s=eo(n);sa.lastIndex=0;let i="",o=0,r=!1;for(const l of n.matchAll(sa)){const a=l.index??0,d=l[1]==="/";to(a,s)||(r?d&&(r=!1):(i+=n.slice(o,a),d||(r=!0)),o=a+l[0].length)}return i+=n.slice(o),Gg(i)}const ia=/<\s*(\/?)\s*relevant[-_]memories\b[^<>]*>/gi,Jg=/<\s*\/?\s*relevant[-_]memories\b/i;function Qg(e){if(!e||!Jg.test(e))return e;ia.lastIndex=0;const t=eo(e);let n="",s=0,i=!1;for(const o of e.matchAll(ia)){const r=o.index??0;if(to(r,t))continue;const l=o[1]==="/";i?l&&(i=!1):(n+=e.slice(s,r),l||(i=!0)),s=r+o[0].length}return i||(n+=e.slice(s)),n}function Yg(e){const t=Vg(e);return Qg(t).trimStart()}function kt(e){return!e&&e!==0?"n/a":new Date(e).toLocaleString()}function no(e){return!e||e.length===0?"none":e.filter(t=>!!(t&&t.trim())).join(", ")}function so(e,t=120){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function pc(e,t){return e.length<=t?{text:e,truncated:!1,total:e.length}:{text:e.slice(0,Math.max(0,t)),truncated:!0,total:e.length}}function Ne(e,t){const n=Number(e);return Number.isFinite(n)?n:t}function Xg(e){return Yg(e)}const Es="last";function Zg(e){return e.sessionTarget==="isolated"&&e.payloadKind==="agentTurn"}function zo(e){return e.deliveryMode!=="announce"||Zg(e)?e:{...e,deliveryMode:"none"}}function is(e){const t={};if(e.name.trim()||(t.name="cron.errors.nameRequired"),e.scheduleKind==="at"){const n=Date.parse(e.scheduleAt);Number.isFinite(n)||(t.scheduleAt="cron.errors.scheduleAtInvalid")}else if(e.scheduleKind==="every")Ne(e.everyAmount,0)<=0&&(t.everyAmount="cron.errors.everyAmountInvalid");else if(e.cronExpr.trim()||(t.cronExpr="cron.errors.cronExprRequired"),!e.scheduleExact){const n=e.staggerAmount.trim();n&&Ne(n,0)<=0&&(t.staggerAmount="cron.errors.staggerAmountInvalid")}if(e.payloadText.trim()||(t.payloadText=e.payloadKind==="systemEvent"?"cron.errors.systemTextRequired":"cron.errors.agentMessageRequired"),e.payloadKind==="agentTurn"){const n=e.timeoutSeconds.trim();n&&Ne(n,0)<=0&&(t.timeoutSeconds="cron.errors.timeoutInvalid")}if(e.deliveryMode==="webhook"){const n=e.deliveryTo.trim();n?/^https?:\/\//i.test(n)||(t.deliveryTo="cron.errors.webhookUrlInvalid"):t.deliveryTo="cron.errors.webhookUrlRequired"}if(e.failureAlertMode==="custom"){const n=e.failureAlertAfter.trim();if(n){const i=Ne(n,0);(!Number.isFinite(i)||i<=0)&&(t.failureAlertAfter="Failure alert threshold must be greater than 0.")}const s=e.failureAlertCooldownSeconds.trim();if(s){const i=Ne(s,-1);(!Number.isFinite(i)||i<0)&&(t.failureAlertCooldownSeconds="Cooldown must be 0 or greater.")}}return t}function hc(e){return Object.keys(e).length>0}async function os(e){if(!(!e.client||!e.connected))try{const t=await e.client.request("cron.status",{});e.cronStatus=t}catch(t){e.cronError=String(t)}}async function ef(e){if(!(!e.client||!e.connected))try{const n=(await e.client.request("models.list",{}))?.models;if(!Array.isArray(n)){e.cronModelSuggestions=[];return}const s=n.map(i=>{if(!i||typeof i!="object")return"";const o=i.id;return typeof o=="string"?o.trim():""}).filter(Boolean);e.cronModelSuggestions=Array.from(new Set(s)).toSorted((i,o)=>i.localeCompare(o))}catch{e.cronModelSuggestions=[]}}async function oi(e){return await jo(e,{append:!1})}function mc(e){const t=typeof e.totalRaw=="number"&&Number.isFinite(e.totalRaw)?Math.max(0,Math.floor(e.totalRaw)):e.pageCount,n=typeof e.limitRaw=="number"&&Number.isFinite(e.limitRaw)?Math.max(1,Math.floor(e.limitRaw)):Math.max(1,e.pageCount),s=typeof e.offsetRaw=="number"&&Number.isFinite(e.offsetRaw)?Math.max(0,Math.floor(e.offsetRaw)):0,i=typeof e.hasMoreRaw=="boolean"?e.hasMoreRaw:s+e.pageCount<Math.max(t,s+e.pageCount),o=typeof e.nextOffsetRaw=="number"&&Number.isFinite(e.nextOffsetRaw)?Math.max(0,Math.floor(e.nextOffsetRaw)):i?s+e.pageCount:null;return{total:t,limit:n,offset:s,hasMore:i,nextOffset:o}}async function jo(e,t){if(!e.client||!e.connected||e.cronLoading||e.cronJobsLoadingMore)return;const n=t?.append===!0;if(n){if(!e.cronJobsHasMore)return;e.cronJobsLoadingMore=!0}else e.cronLoading=!0;e.cronError=null;try{const s=n?Math.max(0,e.cronJobsNextOffset??e.cronJobs.length):0,i=await e.client.request("cron.list",{includeDisabled:e.cronJobsEnabledFilter==="all",limit:e.cronJobsLimit,offset:s,query:e.cronJobsQuery.trim()||void 0,enabled:e.cronJobsEnabledFilter,sortBy:e.cronJobsSortBy,sortDir:e.cronJobsSortDir}),o=Array.isArray(i.jobs)?i.jobs:[];e.cronJobs=n?[...e.cronJobs,...o]:o;const r=mc({totalRaw:i.total,limitRaw:i.limit,offsetRaw:i.offset,nextOffsetRaw:i.nextOffset,hasMoreRaw:i.hasMore,pageCount:o.length});e.cronJobsTotal=Math.max(r.total,e.cronJobs.length),e.cronJobsHasMore=r.hasMore,e.cronJobsNextOffset=r.nextOffset,e.cronEditingJobId&&!e.cronJobs.some(l=>l.id===e.cronEditingJobId)&&rs(e)}catch(s){e.cronError=String(s)}finally{n?e.cronJobsLoadingMore=!1:e.cronLoading=!1}}async function tf(e){await jo(e,{append:!0})}async function oa(e){await jo(e,{append:!1})}function ra(e,t){typeof t.cronJobsQuery=="string"&&(e.cronJobsQuery=t.cronJobsQuery),t.cronJobsEnabledFilter&&(e.cronJobsEnabledFilter=t.cronJobsEnabledFilter),t.cronJobsScheduleKindFilter&&(e.cronJobsScheduleKindFilter=t.cronJobsScheduleKindFilter),t.cronJobsLastStatusFilter&&(e.cronJobsLastStatusFilter=t.cronJobsLastStatusFilter),t.cronJobsSortBy&&(e.cronJobsSortBy=t.cronJobsSortBy),t.cronJobsSortDir&&(e.cronJobsSortDir=t.cronJobsSortDir)}function nf(e){return e.cronJobs.filter(t=>!(e.cronJobsScheduleKindFilter!=="all"&&t.schedule.kind!==e.cronJobsScheduleKindFilter||e.cronJobsLastStatusFilter!=="all"&&t.state?.lastStatus!==e.cronJobsLastStatusFilter))}function rs(e){e.cronEditingJobId=null}function vc(e){e.cronForm={...Os},e.cronFieldErrors=is(e.cronForm)}function sf(e){const t=Date.parse(e);if(!Number.isFinite(t))return"";const n=new Date(t),s=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0"),r=String(n.getHours()).padStart(2,"0"),l=String(n.getMinutes()).padStart(2,"0");return`${s}-${i}-${o}T${r}:${l}`}function of(e){if(e%864e5===0)return{everyAmount:String(Math.max(1,e/864e5)),everyUnit:"days"};if(e%36e5===0)return{everyAmount:String(Math.max(1,e/36e5)),everyUnit:"hours"};const t=Math.max(1,Math.ceil(e/6e4));return{everyAmount:String(t),everyUnit:"minutes"}}function rf(e){return e===0?{scheduleExact:!0,staggerAmount:"",staggerUnit:"seconds"}:typeof e!="number"||!Number.isFinite(e)||e<0?{scheduleExact:!1,staggerAmount:"",staggerUnit:"seconds"}:e%6e4===0?{scheduleExact:!1,staggerAmount:String(Math.max(1,e/6e4)),staggerUnit:"minutes"}:{scheduleExact:!1,staggerAmount:String(Math.max(1,Math.ceil(e/1e3))),staggerUnit:"seconds"}}function bc(e,t){const n=e.failureAlert,s={...t,name:e.name,description:e.description??"",agentId:e.agentId??"",sessionKey:e.sessionKey??"",clearAgent:!1,enabled:e.enabled,deleteAfterRun:e.deleteAfterRun??!1,scheduleKind:e.schedule.kind,scheduleAt:"",everyAmount:t.everyAmount,everyUnit:t.everyUnit,cronExpr:t.cronExpr,cronTz:"",scheduleExact:!1,staggerAmount:"",staggerUnit:"seconds",sessionTarget:e.sessionTarget,wakeMode:e.wakeMode,payloadKind:e.payload.kind,payloadText:e.payload.kind==="systemEvent"?e.payload.text:e.payload.message,payloadModel:e.payload.kind==="agentTurn"?e.payload.model??"":"",payloadThinking:e.payload.kind==="agentTurn"?e.payload.thinking??"":"",payloadLightContext:e.payload.kind==="agentTurn"?e.payload.lightContext===!0:!1,deliveryMode:e.delivery?.mode??"none",deliveryChannel:e.delivery?.channel??Es,deliveryTo:e.delivery?.to??"",deliveryAccountId:e.delivery?.accountId??"",deliveryBestEffort:e.delivery?.bestEffort??!1,failureAlertMode:n===!1?"disabled":n&&typeof n=="object"?"custom":"inherit",failureAlertAfter:n&&typeof n=="object"&&typeof n.after=="number"?String(n.after):Os.failureAlertAfter,failureAlertCooldownSeconds:n&&typeof n=="object"&&typeof n.cooldownMs=="number"?String(Math.floor(n.cooldownMs/1e3)):Os.failureAlertCooldownSeconds,failureAlertChannel:n&&typeof n=="object"?n.channel??Es:Es,failureAlertTo:n&&typeof n=="object"?n.to??"":"",failureAlertDeliveryMode:n&&typeof n=="object"?n.mode??"announce":"announce",failureAlertAccountId:n&&typeof n=="object"?n.accountId??"":"",timeoutSeconds:e.payload.kind==="agentTurn"&&typeof e.payload.timeoutSeconds=="number"?String(e.payload.timeoutSeconds):""};if(e.schedule.kind==="at")s.scheduleAt=sf(e.schedule.at);else if(e.schedule.kind==="every"){const i=of(e.schedule.everyMs);s.everyAmount=i.everyAmount,s.everyUnit=i.everyUnit}else{s.cronExpr=e.schedule.expr,s.cronTz=e.schedule.tz??"";const i=rf(e.schedule.staggerMs);s.scheduleExact=i.scheduleExact,s.staggerAmount=i.staggerAmount,s.staggerUnit=i.staggerUnit}return zo(s)}function af(e){if(e.scheduleKind==="at"){const o=Date.parse(e.scheduleAt);if(!Number.isFinite(o))throw new Error(p("cron.errors.invalidRunTime"));return{kind:"at",at:new Date(o).toISOString()}}if(e.scheduleKind==="every"){const o=Ne(e.everyAmount,0);if(o<=0)throw new Error(p("cron.errors.invalidIntervalAmount"));const r=e.everyUnit;return{kind:"every",everyMs:o*(r==="minutes"?6e4:r==="hours"?36e5:864e5)}}const t=e.cronExpr.trim();if(!t)throw new Error(p("cron.errors.cronExprRequiredShort"));if(e.scheduleExact)return{kind:"cron",expr:t,tz:e.cronTz.trim()||void 0,staggerMs:0};const n=e.staggerAmount.trim();if(!n)return{kind:"cron",expr:t,tz:e.cronTz.trim()||void 0};const s=Ne(n,0);if(s<=0)throw new Error(p("cron.errors.invalidStaggerAmount"));const i=e.staggerUnit==="minutes"?s*6e4:s*1e3;return{kind:"cron",expr:t,tz:e.cronTz.trim()||void 0,staggerMs:i}}function lf(e){if(e.payloadKind==="systemEvent"){const r=e.payloadText.trim();if(!r)throw new Error(p("cron.errors.systemEventTextRequired"));return{kind:"systemEvent",text:r}}const t=e.payloadText.trim();if(!t)throw new Error(p("cron.errors.agentMessageRequiredShort"));const n={kind:"agentTurn",message:t},s=e.payloadModel.trim();s&&(n.model=s);const i=e.payloadThinking.trim();i&&(n.thinking=i);const o=Ne(e.timeoutSeconds,0);return o>0&&(n.timeoutSeconds=o),e.payloadLightContext&&(n.lightContext=!0),n}function cf(e){if(e.failureAlertMode==="disabled")return!1;if(e.failureAlertMode!=="custom")return;const t=Ne(e.failureAlertAfter.trim(),0),n=e.failureAlertCooldownSeconds.trim(),s=n.length>0?Ne(n,0):void 0,i=s!==void 0&&Number.isFinite(s)&&s>=0?Math.floor(s*1e3):void 0,o=e.failureAlertDeliveryMode,r=e.failureAlertAccountId.trim(),l={after:t>0?Math.floor(t):void 0,channel:e.failureAlertChannel.trim()||Es,to:e.failureAlertTo.trim()||void 0,...i!==void 0?{cooldownMs:i}:{}};return o&&(l.mode=o),l.accountId=r||void 0,l}async function df(e){if(!(!e.client||!e.connected||e.cronBusy)){e.cronBusy=!0,e.cronError=null;try{const t=zo(e.cronForm);t!==e.cronForm&&(e.cronForm=t);const n=is(t);if(e.cronFieldErrors=n,hc(n))return;const s=af(t),i=lf(t),o=e.cronEditingJobId?e.cronJobs.find(v=>v.id===e.cronEditingJobId):void 0;if(i.kind==="agentTurn"){const v=o?.payload.kind==="agentTurn"?o.payload.lightContext:void 0;!t.payloadLightContext&&e.cronEditingJobId&&v!==void 0&&(i.lightContext=!1)}const r=t.deliveryMode,l=r&&r!=="none"?{mode:r,channel:r==="announce"?t.deliveryChannel.trim()||"last":void 0,to:t.deliveryTo.trim()||void 0,accountId:r==="announce"?t.deliveryAccountId.trim():void 0,bestEffort:t.deliveryBestEffort}:r==="none"?{mode:"none"}:void 0,a=cf(t),d=t.clearAgent?null:t.agentId.trim(),u=t.sessionKey.trim()||(o?.sessionKey?null:void 0),f={name:t.name.trim(),description:t.description.trim(),agentId:d===null?null:d||void 0,sessionKey:u,enabled:t.enabled,deleteAfterRun:t.deleteAfterRun,schedule:s,sessionTarget:t.sessionTarget,wakeMode:t.wakeMode,payload:i,delivery:l,failureAlert:a};if(!f.name)throw new Error(p("cron.errors.nameRequiredShort"));e.cronEditingJobId?(await e.client.request("cron.update",{id:e.cronEditingJobId,patch:f}),rs(e)):(await e.client.request("cron.add",f),vc(e)),await oi(e),await os(e)}catch(t){e.cronError=String(t)}finally{e.cronBusy=!1}}}async function uf(e,t,n){if(!(!e.client||!e.connected||e.cronBusy)){e.cronBusy=!0,e.cronError=null;try{await e.client.request("cron.update",{id:t.id,patch:{enabled:n}}),await oi(e),await os(e)}catch(s){e.cronError=String(s)}finally{e.cronBusy=!1}}}async function gf(e,t,n="force"){if(!(!e.client||!e.connected||e.cronBusy)){e.cronBusy=!0,e.cronError=null;try{await e.client.request("cron.run",{id:t.id,mode:n}),e.cronRunsScope==="all"?await yt(e,null):await yt(e,t.id)}catch(s){e.cronError=String(s)}finally{e.cronBusy=!1}}}async function ff(e,t){if(!(!e.client||!e.connected||e.cronBusy)){e.cronBusy=!0,e.cronError=null;try{await e.client.request("cron.remove",{id:t.id}),e.cronEditingJobId===t.id&&rs(e),e.cronRunsJobId===t.id&&(e.cronRunsJobId=null,e.cronRuns=[],e.cronRunsTotal=0,e.cronRunsHasMore=!1,e.cronRunsNextOffset=null),await oi(e),await os(e)}catch(n){e.cronError=String(n)}finally{e.cronBusy=!1}}}async function yt(e,t,n){if(!e.client||!e.connected)return;const s=e.cronRunsScope,i=t??e.cronRunsJobId;if(s==="job"&&!i){e.cronRuns=[],e.cronRunsTotal=0,e.cronRunsHasMore=!1,e.cronRunsNextOffset=null;return}const o=n?.append===!0;if(!(o&&!e.cronRunsHasMore))try{o&&(e.cronRunsLoadingMore=!0);const r=o?Math.max(0,e.cronRunsNextOffset??e.cronRuns.length):0,l=await e.client.request("cron.runs",{scope:s,id:s==="job"?i??void 0:void 0,limit:e.cronRunsLimit,offset:r,statuses:e.cronRunsStatuses.length>0?e.cronRunsStatuses:void 0,status:e.cronRunsStatusFilter,deliveryStatuses:e.cronRunsDeliveryStatuses.length>0?e.cronRunsDeliveryStatuses:void 0,query:e.cronRunsQuery.trim()||void 0,sortDir:e.cronRunsSortDir}),a=Array.isArray(l.entries)?l.entries:[];e.cronRuns=o&&(s==="all"||e.cronRunsJobId===i)?[...e.cronRuns,...a]:a,s==="job"&&(e.cronRunsJobId=i??null);const d=mc({totalRaw:l.total,limitRaw:l.limit,offsetRaw:l.offset,nextOffsetRaw:l.nextOffset,hasMoreRaw:l.hasMore,pageCount:a.length});e.cronRunsTotal=Math.max(d.total,e.cronRuns.length),e.cronRunsHasMore=d.hasMore,e.cronRunsNextOffset=d.nextOffset}catch(r){e.cronError=String(r)}finally{o&&(e.cronRunsLoadingMore=!1)}}async function pf(e){e.cronRunsScope==="job"&&!e.cronRunsJobId||await yt(e,e.cronRunsJobId,{append:!0})}function aa(e,t){t.cronRunsScope&&(e.cronRunsScope=t.cronRunsScope),Array.isArray(t.cronRunsStatuses)&&(e.cronRunsStatuses=t.cronRunsStatuses,e.cronRunsStatusFilter=t.cronRunsStatuses.length===1?t.cronRunsStatuses[0]:"all"),Array.isArray(t.cronRunsDeliveryStatuses)&&(e.cronRunsDeliveryStatuses=t.cronRunsDeliveryStatuses),t.cronRunsStatusFilter&&(e.cronRunsStatusFilter=t.cronRunsStatusFilter,e.cronRunsStatuses=t.cronRunsStatusFilter==="all"?[]:[t.cronRunsStatusFilter]),typeof t.cronRunsQuery=="string"&&(e.cronRunsQuery=t.cronRunsQuery),t.cronRunsSortDir&&(e.cronRunsSortDir=t.cronRunsSortDir)}function hf(e,t){e.cronEditingJobId=t.id,e.cronRunsJobId=t.id,e.cronForm=bc(t,e.cronForm),e.cronFieldErrors=is(e.cronForm)}function mf(e,t){const n=e.trim()||"Job",s=`${n} copy`;if(!t.has(s.toLowerCase()))return s;let i=2;for(;i<1e3;){const o=`${n} copy ${i}`;if(!t.has(o.toLowerCase()))return o;i+=1}return`${n} copy ${Date.now()}`}function vf(e,t){rs(e),e.cronRunsJobId=t.id;const n=new Set(e.cronJobs.map(i=>i.name.trim().toLowerCase())),s=bc(t,e.cronForm);s.name=mf(t.name,n),e.cronForm=s,e.cronFieldErrors=is(e.cronForm)}function bf(e){rs(e),vc(e)}function Ko(e){return e.trim()}function yf(e){if(!Array.isArray(e))return[];const t=new Set;for(const n of e){const s=n.trim();s&&t.add(s)}return[...t].toSorted()}function $f(e){const t=e.adapter.readStore();if(!t||t.deviceId!==e.deviceId)return null;const n=Ko(e.role),s=t.tokens[n];return!s||typeof s.token!="string"?null:s}function xf(e){const t=Ko(e.role),n=e.adapter.readStore(),s={version:1,deviceId:e.deviceId,tokens:n&&n.deviceId===e.deviceId&&n.tokens?{...n.tokens}:{}},i={token:e.token,role:t,scopes:yf(e.scopes),updatedAtMs:Date.now()};return s.tokens[t]=i,e.adapter.writeStore(s),i}function wf(e){const t=e.adapter.readStore();if(!t||t.deviceId!==e.deviceId)return;const n=Ko(e.role);if(!t.tokens[n])return;const s={version:1,deviceId:t.deviceId,tokens:{...t.tokens}};delete s.tokens[n],e.adapter.writeStore(s)}const yc="openclaw.device.auth.v1";function Wo(){try{const e=window.localStorage.getItem(yc);if(!e)return null;const 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 qo(e){try{window.localStorage.setItem(yc,JSON.stringify(e))}catch{}}function Sf(e){return $f({adapter:{readStore:Wo,writeStore:qo},deviceId:e.deviceId,role:e.role})}function $c(e){return xf({adapter:{readStore:Wo,writeStore:qo},deviceId:e.deviceId,role:e.role,token:e.token,scopes:e.scopes})}function xc(e){wf({adapter:{readStore:Wo,writeStore:qo},deviceId:e.deviceId,role:e.role})}const wc={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:Se,n:Is,Gx:la,Gy:ca,a:Ci,d:Ti,h:kf}=wc,Vt=32,Go=64,Af=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},me=(e="")=>{const t=new Error(e);throw Af(t,me),t},Cf=e=>typeof e=="bigint",Tf=e=>typeof e=="string",_f=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array",Tt=(e,t,n="")=>{const s=_f(e),i=e?.length,o=t!==void 0;if(!s||o&&i!==t){const r=n&&`"${n}" `,l=o?` of length ${t}`:"",a=s?`length=${i}`:`type=${typeof e}`;me(r+"expected Uint8Array"+l+", got "+a)}return e},ri=e=>new Uint8Array(e),Sc=e=>Uint8Array.from(e),kc=(e,t)=>e.toString(16).padStart(t,"0"),Ac=e=>Array.from(Tt(e)).map(t=>kc(t,2)).join(""),ot={_0:48,_9:57,A:65,F:70,a:97,f:102},da=e=>{if(e>=ot._0&&e<=ot._9)return e-ot._0;if(e>=ot.A&&e<=ot.F)return e-(ot.A-10);if(e>=ot.a&&e<=ot.f)return e-(ot.a-10)},Cc=e=>{const t="hex invalid";if(!Tf(e))return me(t);const n=e.length,s=n/2;if(n%2)return me(t);const i=ri(s);for(let o=0,r=0;o<s;o++,r+=2){const l=da(e.charCodeAt(r)),a=da(e.charCodeAt(r+1));if(l===void 0||a===void 0)return me(t);i[o]=l*16+a}return i},Tc=()=>globalThis?.crypto,Ef=()=>Tc()?.subtle??me("crypto.subtle must be defined, consider polyfill"),Qn=(...e)=>{const t=ri(e.reduce((s,i)=>s+Tt(i).length,0));let n=0;return e.forEach(s=>{t.set(s,n),n+=s.length}),t},If=(e=Vt)=>Tc().getRandomValues(ri(e)),Us=BigInt,Ot=(e,t,n,s="bad number: out of range")=>Cf(e)&&t<=e&&e<n?e:me(s),U=(e,t=Se)=>{const n=e%t;return n>=0n?n:t+n},_c=e=>U(e,Is),Rf=(e,t)=>{(e===0n||t<=0n)&&me("no inverse n="+e+" mod="+t);let n=U(e,t),s=t,i=0n,o=1n;for(;n!==0n;){const r=s/n,l=s%n,a=i-o*r;s=n,n=l,i=o,o=a}return s===1n?U(i,t):me("no inverse")},Mf=e=>{const t=Mc[e];return typeof t!="function"&&me("hashes."+e+" not set"),t},_i=e=>e instanceof Fe?e:me("Point expected"),io=2n**256n;class Fe{static BASE;static ZERO;X;Y;Z;T;constructor(t,n,s,i){const o=io;this.X=Ot(t,0n,o),this.Y=Ot(n,0n,o),this.Z=Ot(s,1n,o),this.T=Ot(i,0n,o),Object.freeze(this)}static CURVE(){return wc}static fromAffine(t){return new Fe(t.x,t.y,1n,U(t.x*t.y))}static fromBytes(t,n=!1){const s=Ti,i=Sc(Tt(t,Vt)),o=t[31];i[31]=o&-129;const r=Ic(i);Ot(r,0n,n?io:Se);const a=U(r*r),d=U(a-1n),g=U(s*a+1n);let{isValid:u,value:f}=Df(d,g);u||me("bad point: y not sqrt");const v=(f&1n)===1n,m=(o&128)!==0;return!n&&f===0n&&m&&me("bad point: x==0, isLastByteOdd"),m!==v&&(f=U(-f)),new Fe(f,r,1n,U(f*r))}static fromHex(t,n){return Fe.fromBytes(Cc(t),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){const t=Ci,n=Ti,s=this;if(s.is0())return me("bad point: ZERO");const{X:i,Y:o,Z:r,T:l}=s,a=U(i*i),d=U(o*o),g=U(r*r),u=U(g*g),f=U(a*t),v=U(g*U(f+d)),m=U(u+U(n*U(a*d)));if(v!==m)return me("bad point: equation left != right (1)");const S=U(i*o),C=U(r*l);return S!==C?me("bad point: equation left != right (2)"):this}equals(t){const{X:n,Y:s,Z:i}=this,{X:o,Y:r,Z:l}=_i(t),a=U(n*l),d=U(o*i),g=U(s*l),u=U(r*i);return a===d&&g===u}is0(){return this.equals(fn)}negate(){return new Fe(U(-this.X),this.Y,this.Z,U(-this.T))}double(){const{X:t,Y:n,Z:s}=this,i=Ci,o=U(t*t),r=U(n*n),l=U(2n*U(s*s)),a=U(i*o),d=t+n,g=U(U(d*d)-o-r),u=a+r,f=u-l,v=a-r,m=U(g*f),S=U(u*v),C=U(g*v),M=U(f*u);return new Fe(m,S,M,C)}add(t){const{X:n,Y:s,Z:i,T:o}=this,{X:r,Y:l,Z:a,T:d}=_i(t),g=Ci,u=Ti,f=U(n*r),v=U(s*l),m=U(o*u*d),S=U(i*a),C=U((n+s)*(r+l)-f-v),M=U(S-m),I=U(S+m),A=U(v-g*f),w=U(C*M),L=U(I*A),E=U(C*A),R=U(M*I);return new Fe(w,L,R,E)}subtract(t){return this.add(_i(t).negate())}multiply(t,n=!0){if(!n&&(t===0n||this.is0()))return fn;if(Ot(t,1n,Is),t===1n)return this;if(this.equals(Jt))return Wf(t).p;let s=fn,i=Jt;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?s=s.add(o):n&&(i=i.add(o));return s}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){const{X:t,Y:n,Z:s}=this;if(this.equals(fn))return{x:0n,y:1n};const i=Rf(s,Se);U(s*i)!==1n&&me("invalid inverse");const o=U(t*i),r=U(n*i);return{x:o,y:r}}toBytes(){const{x:t,y:n}=this.assertValidity().toAffine(),s=Ec(n);return s[31]|=t&1n?128:0,s}toHex(){return Ac(this.toBytes())}clearCofactor(){return this.multiply(Us(kf),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(Is/2n,!1).double();return Is%2n&&(t=t.add(this)),t.is0()}}const Jt=new Fe(la,ca,1n,U(la*ca)),fn=new Fe(0n,1n,1n,0n);Fe.BASE=Jt;Fe.ZERO=fn;const Ec=e=>Cc(kc(Ot(e,0n,io),Go)).reverse(),Ic=e=>Us("0x"+Ac(Sc(Tt(e)).reverse())),Ge=(e,t)=>{let n=e;for(;t-- >0n;)n*=n,n%=Se;return n},Lf=e=>{const n=e*e%Se*e%Se,s=Ge(n,2n)*n%Se,i=Ge(s,1n)*e%Se,o=Ge(i,5n)*i%Se,r=Ge(o,10n)*o%Se,l=Ge(r,20n)*r%Se,a=Ge(l,40n)*l%Se,d=Ge(a,80n)*a%Se,g=Ge(d,80n)*a%Se,u=Ge(g,10n)*o%Se;return{pow_p_5_8:Ge(u,2n)*e%Se,b2:n}},ua=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Df=(e,t)=>{const n=U(t*t*t),s=U(n*n*t),i=Lf(e*s).pow_p_5_8;let o=U(e*n*i);const r=U(t*o*o),l=o,a=U(o*ua),d=r===e,g=r===U(-e),u=r===U(-e*ua);return d&&(o=l),(g||u)&&(o=a),(U(o)&1n)===1n&&(o=U(-o)),{isValid:d||g,value:o}},oo=e=>_c(Ic(e)),Vo=(...e)=>Mc.sha512Async(Qn(...e)),Pf=(...e)=>Mf("sha512")(Qn(...e)),Rc=e=>{const t=e.slice(0,Vt);t[0]&=248,t[31]&=127,t[31]|=64;const n=e.slice(Vt,Go),s=oo(t),i=Jt.multiply(s),o=i.toBytes();return{head:t,prefix:n,scalar:s,point:i,pointBytes:o}},Jo=e=>Vo(Tt(e,Vt)).then(Rc),Ff=e=>Rc(Pf(Tt(e,Vt))),Nf=e=>Jo(e).then(t=>t.pointBytes),Of=e=>Vo(e.hashable).then(e.finish),Uf=(e,t,n)=>{const{pointBytes:s,scalar:i}=e,o=oo(t),r=Jt.multiply(o).toBytes();return{hashable:Qn(r,s,n),finish:d=>{const g=_c(o+oo(d)*i);return Tt(Qn(r,Ec(g)),Go)}}},Bf=async(e,t)=>{const n=Tt(e),s=await Jo(t),i=await Vo(s.prefix,n);return Of(Uf(s,i,n))},Mc={sha512Async:async e=>{const t=Ef(),n=Qn(e);return ri(await t.digest("SHA-512",n.buffer))},sha512:void 0},Hf=(e=If(Vt))=>e,zf={getExtendedPublicKeyAsync:Jo,getExtendedPublicKey:Ff,randomSecretKey:Hf},Bs=8,jf=256,Lc=Math.ceil(jf/Bs)+1,ro=2**(Bs-1),Kf=()=>{const e=[];let t=Jt,n=t;for(let s=0;s<Lc;s++){n=t,e.push(n);for(let i=1;i<ro;i++)n=n.add(t),e.push(n);t=n.double()}return e};let ga;const fa=(e,t)=>{const n=t.negate();return e?n:t},Wf=e=>{const t=ga||(ga=Kf());let n=fn,s=Jt;const i=2**Bs,o=i,r=Us(i-1),l=Us(Bs);for(let a=0;a<Lc;a++){let d=Number(e&r);e>>=l,d>ro&&(d-=o,e+=1n);const g=a*ro,u=g,f=g+Math.abs(d)-1,v=a%2!==0,m=d<0;d===0?s=s.add(fa(v,t[u])):n=n.add(fa(m,t[f]))}return e!==0n&&me("invalid wnaf"),{p:n,f:s}},Ei="openclaw-device-identity-v1";function ao(e){let t="";for(const n of e)t+=String.fromCharCode(n);return btoa(t).replaceAll("+","-").replaceAll("/","_").replace(/=+$/g,"")}function Dc(e){const t=e.replaceAll("-","+").replaceAll("_","/"),n=t+"=".repeat((4-t.length%4)%4),s=atob(n),i=new Uint8Array(s.length);for(let o=0;o<s.length;o+=1)i[o]=s.charCodeAt(o);return i}function qf(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}async function Pc(e){const t=await crypto.subtle.digest("SHA-256",e.slice().buffer);return qf(new Uint8Array(t))}async function Gf(){const e=zf.randomSecretKey(),t=await Nf(e);return{deviceId:await Pc(t),publicKey:ao(t),privateKey:ao(e)}}async function Qo(){try{const n=localStorage.getItem(Ei);if(n){const s=JSON.parse(n);if(s?.version===1&&typeof s.deviceId=="string"&&typeof s.publicKey=="string"&&typeof s.privateKey=="string"){const i=await Pc(Dc(s.publicKey));if(i!==s.deviceId){const o={...s,deviceId:i};return localStorage.setItem(Ei,JSON.stringify(o)),{deviceId:i,publicKey:s.publicKey,privateKey:s.privateKey}}return{deviceId:s.deviceId,publicKey:s.publicKey,privateKey:s.privateKey}}}}catch{}const e=await Gf(),t={version:1,deviceId:e.deviceId,publicKey:e.publicKey,privateKey:e.privateKey,createdAtMs:Date.now()};return localStorage.setItem(Ei,JSON.stringify(t)),e}async function Vf(e,t){const n=Dc(e),s=new TextEncoder().encode(t),i=await Bf(s,n);return ao(i)}async function _t(e,t){if(!(!e.client||!e.connected)&&!e.devicesLoading){e.devicesLoading=!0,t?.quiet||(e.devicesError=null);try{const n=await e.client.request("device.pair.list",{});e.devicesList={pending:Array.isArray(n?.pending)?n.pending:[],paired:Array.isArray(n?.paired)?n.paired:[]}}catch(n){t?.quiet||(e.devicesError=String(n))}finally{e.devicesLoading=!1}}}async function Jf(e,t){if(!(!e.client||!e.connected))try{await e.client.request("device.pair.approve",{requestId:t}),await _t(e)}catch(n){e.devicesError=String(n)}}async function Qf(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 _t(e)}catch(s){e.devicesError=String(s)}}async function Yf(e,t){if(!(!e.client||!e.connected))try{const n=await e.client.request("device.token.rotate",t);if(n?.token){const s=await Qo(),i=n.role??t.role;(n.deviceId===s.deviceId||t.deviceId===s.deviceId)&&$c({deviceId:s.deviceId,role:i,token:n.token,scopes:n.scopes??t.scopes??[]}),window.prompt("New device token (copy and store securely):",n.token)}await _t(e)}catch(n){e.devicesError=String(n)}}async function Xf(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);const s=await Qo();t.deviceId===s.deviceId&&xc({deviceId:s.deviceId,role:t.role}),await _t(e)}catch(s){e.devicesError=String(s)}}function Zf(e){if(!e||e.kind==="gateway")return{method:"exec.approvals.get",params:{}};const t=e.nodeId.trim();return t?{method:"exec.approvals.node.get",params:{nodeId:t}}:null}function ep(e,t){if(!e||e.kind==="gateway")return{method:"exec.approvals.set",params:t};const n=e.nodeId.trim();return n?{method:"exec.approvals.node.set",params:{...t,nodeId:n}}:null}async function Yo(e,t){if(!(!e.client||!e.connected)&&!e.execApprovalsLoading){e.execApprovalsLoading=!0,e.lastError=null;try{const n=Zf(t);if(!n){e.lastError="Select a node before loading exec approvals.";return}const s=await e.client.request(n.method,n.params);tp(e,s)}catch(n){e.lastError=String(n)}finally{e.execApprovalsLoading=!1}}}function tp(e,t){e.execApprovalsSnapshot=t,e.execApprovalsDirty||(e.execApprovalsForm=St(t.file??{}))}async function np(e,t){if(!(!e.client||!e.connected)){e.execApprovalsSaving=!0,e.lastError=null;try{const n=e.execApprovalsSnapshot?.hash;if(!n){e.lastError="Exec approvals hash missing; reload and retry.";return}const s=e.execApprovalsForm??e.execApprovalsSnapshot?.file??{},i=ep(t,{file:s,baseHash:n});if(!i){e.lastError="Select a node before saving exec approvals.";return}await e.client.request(i.method,i.params),e.execApprovalsDirty=!1,await Yo(e,t)}catch(n){e.lastError=String(n)}finally{e.execApprovalsSaving=!1}}}function sp(e,t,n){const s=St(e.execApprovalsForm??e.execApprovalsSnapshot?.file??{});ec(s,t,n),e.execApprovalsForm=s,e.execApprovalsDirty=!0}function ip(e,t){const n=St(e.execApprovalsForm??e.execApprovalsSnapshot?.file??{});tc(n,t),e.execApprovalsForm=n,e.execApprovalsDirty=!0}function Fc(e){return e instanceof Error?e.message:String(e)}function pa(e,t,n){const s=t.trim();if(!s)return;const i={...e.marketMessages};n?i[s]=n:delete i[s],e.marketMessages=i}function xn(e){return e.state.installed?e.state.enabled?{kind:"disable",enabled:!1,successMessage:"Skill disabled."}:{kind:"enable",enabled:!0,successMessage:"Skill enabled."}:{kind:"install",successMessage:"Installed."}}async function Xo(e){if(!(!e.client||!e.connected||e.marketLoading)){e.marketLoading=!0,e.marketError=null;try{const t=await e.client.request("skills.market.catalog",{});e.marketCatalog=Array.isArray(t?.catalog)?t.catalog:[]}catch(t){e.marketError=Fc(t)}finally{e.marketLoading=!1}}}async function op(e,t){if(!e.client||!e.connected)return;const n=e.marketCatalog.find(i=>i.skillKey===t);if(!n)return;const s=xn(n);e.marketBusyKey=t,e.marketError=null;try{let i=s.successMessage;if(s.kind==="install"){const o=await e.client.request("skills.market.installOrEnable",{skillKey:t});i=o?.action==="already-installed"?"Already installed.":o?.message?.trim()||s.successMessage}else await e.client.request("skills.update",{skillKey:t,enabled:s.enabled});await Xo(e),pa(e,t,{kind:"success",message:i})}catch(i){const o=Fc(i);e.marketError=o,pa(e,t,{kind:"error",message:o})}finally{e.marketBusyKey=null}}function rp(e){return typeof e=="string"?e.trim()||void 0:!e||typeof e!="object"?void 0:e.primary?.trim()||void 0}const ap=131072,Hs="bitseek",lp="bitseek/AUTO",Yn=32e3,cp=4096,dp={"gpt-5.1-codex":4e5,"gpt-5.1-codex-mini":4e5,"gpt-5.1-codex-max":4e5,"gpt-5.1":4e5,"gpt-5.2":4e5,"claude-opus-4-6":1048576,"claude-opus-4-5":2e5,"gemini-3-pro":1048576,"gemini-3-flash":1048576,"glm-4.7":204800,"minimax-m2.5":2e5,"minimax-m2.5-highspeed":2e5,"minimax-m2.5-lightning":2e5};function lo(e,t){return`${e}/${t}`}function up(e){const t=typeof e=="number"&&Number.isFinite(e)?Math.floor(e):0;return t>=Yn?t:Yn}function gp(e){if(typeof e=="string")return e.trim()||void 0;if(!e||typeof e!="object")return;const t=e.primary;return typeof t!="string"?void 0:t.trim()||void 0}function fp(e){if(!e||typeof e!="object")return[];const t=e.fallbacks;return Array.isArray(t)?t.map(n=>typeof n=="string"?n.trim():"").filter(Boolean):[]}function Zo(e,t){const n=e.agents?.defaults,s=n?.model,i=n?.models,o=typeof s=="object"&&s!==null&&"fallbacks"in s?s.fallbacks:void 0;return{...e,agents:{...e.agents,defaults:{...n,model:{...o?{fallbacks:o}:{},primary:t},models:{...i,[t]:i?.[t]??{}}}}}}function pp(e){const t=e.trim();if(!t)return null;const n=t.indexOf("/");return n<=0||n>=t.length-1?null:{providerId:t.slice(0,n).trim(),modelId:t.slice(n+1).trim()}}function er(e){if(typeof e!="number"||!Number.isFinite(e))return null;const t=Math.floor(e);return t>0?t:null}function hp(e){const t=e.config.models?.providers??{};let n=null;for(const[s,i]of Object.entries(t))if(!(!i||!Array.isArray(i.models)||s===e.selectedProviderId))for(const o of i.models){if(o.id!==e.modelId)continue;const r=er(o.contextWindow);r&&(n=n==null?r:Math.max(n,r))}return n}function mp(e){if(!Array.isArray(e.catalogModels)||e.catalogModels.length===0)return null;const t=e.selectedProviderId.trim().toLowerCase();let n=null;for(const s of e.catalogModels){if((typeof s?.id=="string"?s.id.trim():"")!==e.modelId)continue;const o=typeof s?.provider=="string"?s.provider.trim().toLowerCase():"";if(o&&o===t)continue;const r=er(s?.contextWindow);r&&(n=n==null?r:Math.max(n,r))}return n}function vp(e){const t=e.trim().toLowerCase();return t?dp[t]??null:null}function Nc(e){const t=pp(e.modelRef);if(!t)return e.config;const n=e.config.models?.providers??{},s=n[t.providerId];if(!s||!Array.isArray(s.models))return e.config;let i=!1;const o=s.models.map(r=>{if(r.id!==t.modelId)return r;const l=er(r.contextWindow);let a;if(t.providerId===Hs)a=ap;else{const d=hp({config:e.config,selectedProviderId:t.providerId,modelId:t.modelId}),g=mp({selectedProviderId:t.providerId,modelId:t.modelId,catalogModels:e.catalogModels}),u=vp(t.modelId),f=d??g??u;a=f!=null?Math.max(f,Yn):Math.max(l??0,Yn)}return a===r.contextWindow?r:(i=!0,{...r,contextWindow:a})});return i?{...e.config,models:{...e.config.models,providers:{...n,[t.providerId]:{...s,models:o}}}}:e.config}function co(e){const t=e.trim().toLowerCase();return t?t.replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,""):""}function Oc(e){try{const t=new URL(e),n=t.hostname.replace(/[^a-z0-9]+/gi,"-").toLowerCase(),s=t.port?`-${t.port}`:"",i=`custom-${n}${s}`;return co(i)||"custom"}catch{return"custom"}}function bp(e){const t=e.config.models?.providers??{},n=co(e.requestedProviderId?.trim()||"");if(n)return n;const s=Oc(e.baseUrl),i=co(s)||"custom",o=t[i];if(!o?.baseUrl||o.baseUrl===e.baseUrl)return i;let r=2,l=`${i}-${r}`;for(;t[l];)r+=1,l=`${i}-${r}`;return l}function yp(e){try{new URL(e)}catch{throw new Error("Custom provider base URL must be a valid URL.")}}function $p(e){const t=e.alias.trim();if(!t)return;const n=e.cfg.agents?.defaults?.models??{},s=t.toLowerCase(),i=new Set((e.ignoreModelRefs??[]).map(o=>o.trim()).filter(Boolean));for(const[o,r]of Object.entries(n)){if(o===e.modelRef||i.has(o))continue;const l=r.alias,a=typeof l=="string"?l.trim().toLowerCase():"";if(a&&a===s)throw new Error(`Alias ${t} already points to ${o}.`)}}function xp(e){const t=e.baseUrl.trim();yp(t);const n=e.modelId.trim();if(!n)throw new Error("Custom provider model ID is required.");const s=bp({config:e.config,baseUrl:t,requestedProviderId:e.providerId}),i=e.config.models?.providers??{},o=i[s],r=Array.isArray(o?.models)?o.models:[],l=e.previousModelId?.trim(),a=l?r.filter(L=>L.id!==l):r,d=a.some(L=>L.id===n),g={id:n,name:`${n} (Custom Provider)`,contextWindow:Yn,maxTokens:cp,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},reasoning:!1},u=d?a.map(L=>L.id===n?{...L,contextWindow:up(L.contextWindow)}:L):[...a,g],f=e.replaceApiKey===!0?e.apiKey?.trim():void 0,v={...o??{baseUrl:t,models:[],api:"openai-completions"},baseUrl:t,api:"openai-completions",models:u.length>0?u:[g]};e.replaceApiKey===!0&&(f?v.apiKey=f:delete v.apiKey);const m=lo(s,n),S=e.providerId?.trim()||s,C=l?lo(S,l):void 0,M=e.alias?.trim()??"";$p({cfg:e.config,alias:M,modelRef:m,ignoreModelRefs:C?[C]:[]});const I={...e.config.agents?.defaults?.models};C&&C!==m&&delete I[C];const A={...I[m]};return M?A.alias=M:delete A.alias,I[m]=A,{config:{...e.config,models:{...e.config.models,mode:e.config.models?.mode??"merge",providers:{...i,[s]:v}},agents:{...e.config.agents,defaults:{...e.config.agents?.defaults,models:I}}},providerId:s,modelId:n}}function ha(e,t){const n=t?[[t,e[t]]]:Object.entries(e),s=[];for(const[i,o]of n)if(!(!o||!Array.isArray(o.models)))for(const r of o.models){const l=typeof r?.id=="string"?r.id.trim():"";l&&s.push(lo(i,l))}return s}function wp(e){const t=ha(e,Hs);return t.length>0?t[0]:e[Hs]?lp:ha(e)[0]}function Sp(e){const t=e.providerId.trim();if(!t||t===Hs)return e.config;const n=e.config.models?.providers??{};if(!n[t])return e.config;const s={...n};delete s[t];const i=`${t}/`,o=e.config.agents?.defaults,r=o?.models??{},l={};for(const[m,S]of Object.entries(r))m.startsWith(i)||(l[m]=S);const a=gp(o?.model),d=fp(o?.model).filter(m=>!m.startsWith(i)),u=(a&&!a.startsWith(i)?a:void 0)??wp(s);let f={...e.config,models:{...e.config.models,providers:s},agents:{...e.config.agents,defaults:{...o,...Object.keys(l).length>0?{models:l}:{}}}};if(Object.keys(l).length===0&&(f={...f,agents:{...f.agents,defaults:{...f.agents?.defaults,models:void 0}}}),!u)return f;f=Zo(f,u);const v=d.filter(m=>m!==u);return v.length===0?f:{...f,agents:{...f.agents,defaults:{...f.agents?.defaults,model:{primary:u,fallbacks:v}}}}}const pn="__new__",Xn="bitseek",kp=4e3,zs=new WeakMap;function Ap(e){const t=zs.get(e);t&&(clearTimeout(t),zs.delete(e))}function hn(e,t){if(e.modelsVerifyState=t,Ap(e),t?.tone!=="success")return;const n=t,s=setTimeout(()=>{e.modelsVerifyState===n&&(e.modelsVerifyState=null),zs.delete(e)},kp);zs.set(e,s)}function Cp(e){const t=e instanceof Error?e.message:String(e);return/invalid models\.verify params/i.test(t)&&/providerId/i.test(t)}function as(e){return St(e?.config??{})}function Tp(e){return!!(e&&e.api==="openai-completions"&&typeof e.baseUrl=="string"&&e.baseUrl.trim()&&Array.isArray(e.models)&&e.models.some(t=>typeof t?.id=="string"&&t.id.trim()))}function tr(e,t,n){return e.agents?.defaults?.models?.[`${t}/${n}`]?.alias?.trim()??""}function Uc(e){return e===Xn?"BitSeek":e}function Bc(e){const t=e.models?.providers??{};return Object.entries(t).filter(([,n])=>Tp(n)).map(([n,s])=>[n,s]).toSorted(([n],[s])=>n===Xn?-1:s===Xn?1:n.localeCompare(s))}function _p(e,t,n,s){const i=typeof s?.id=="string"?s.id.trim():"";if(!i)throw new Error(`Missing model id for provider ${t}.`);const o=tr(e,t,i),r=t===Xn?"bitseek":"custom",l=typeof s?.name=="string"?s.name.trim():"",a=Uc(t);return{modelRef:`${t}/${i}`,providerId:t,kind:r,title:o||l||i,subtitle:r==="bitseek"?"Built-in provider":a,modelId:i,baseUrl:n.baseUrl,apiKeyConfigured:n.apiKey!==void 0}}function Hc(e){const t=[];for(const[n,s]of Bc(e))for(const i of s.models)typeof i?.id=="string"&&i.id.trim()&&t.push(_p(e,n,s,i));return t}function Ep(e){const t=[];for(const[n,s]of Bc(e)){const i=Uc(n);for(const o of s.models){const r=typeof o?.id=="string"?o.id.trim():"";if(!r)continue;const l=`${n}/${r}`,a=tr(e,n,r),d=typeof o?.name=="string"?o.name.trim():"",g=a||d||r;t.push({modelRef:l,providerId:n,modelId:r,providerLabel:i,modelLabel:g,label:`${i} · ${g} (${l})`})}}return t}function zc(e,t){const n=t.kind==="bitseek";return{kind:t.kind,originalProviderId:t.providerId,originalModelId:t.modelId,providerIdHint:t.providerId,displayName:tr(e,t.providerId,t.modelId),baseUrl:t.baseUrl,apiKey:"",apiKeyConfigured:t.apiKeyConfigured,apiKeyChanged:!1,modelId:t.modelId,saved:!0,canDelete:t.kind==="custom",readonlyModelIdentity:n}}function js(){return{kind:"custom",originalProviderId:null,originalModelId:null,providerIdHint:"custom",displayName:"",baseUrl:"",apiKey:"",apiKeyConfigured:!1,apiKeyChanged:!1,modelId:"",saved:!1,canDelete:!1,readonlyModelIdentity:!1}}function ai(e){const t=as(e.configSnapshot),n=Hc(t),s=Ep(t),i=rp(t.agents?.defaults?.model)??"",r=s.some(d=>d.modelRef===i)?i:s[0]?.modelRef??i,l=e.modelsSelectedProviderId===pn?pn:n.some(d=>d.modelRef===e.modelsSelectedProviderId)?e.modelsSelectedProviderId:n[0]?.modelRef??pn;if(e.modelsProviders=n,e.modelsSwitchableModels=s,e.modelsSelectedDefault=r,e.modelsSelectedProviderId=l,l===pn){e.modelsDraft=js();return}const a=n.find(d=>d.modelRef===l);e.modelsDraft=a?zc(t,a):js()}async function nr(e,t){const n=e.configSnapshot?.hash;return n?(await e.client?.request("config.set",{raw:$n(t),baseHash:n}),await Ae(e),ai(e),!0):(e.modelsError="Config hash missing; reload and retry.",!1)}async function jc(e){if(!(!e.client||!e.connected)){e.modelsLoading=!0,e.modelsError=null,e.modelsDefaultState=null;try{e.configSnapshot?.hash||await Ae(e),ai(e)}catch(t){e.modelsError=String(t)}finally{e.modelsLoading=!1}}}function ma(e,t){e.modelsSelectedProviderId=t,hn(e,null);const n=as(e.configSnapshot);if(t===pn){e.modelsDraft=js();return}const s=Hc(n).find(i=>i.modelRef===t);e.modelsDraft=s?zc(n,s):js()}function Ip(e,t,n){if(!e.modelsDraft||t!=="apiKey"&&e.modelsDraft.readonlyModelIdentity)return;const s={...e.modelsDraft,[t]:n};t==="baseUrl"&&!s.originalProviderId&&(s.providerIdHint=Oc(n.trim())||"custom"),t==="apiKey"&&(s.apiKeyChanged=!0),e.modelsDraft=s,hn(e,null)}async function Rp(e){if(!(!e.client||!e.connected||!e.modelsDraft)){e.modelsSaving=!0,e.modelsError=null;try{const t=e.modelsDraft;if(t.kind==="bitseek"){if(!t.apiKeyChanged)return;const u=t.apiKey.trim();if(!u)throw new Error("BitSeek API key cannot be empty.");await e.client.request("models.auth.set",{providerId:Xn,apiKey:u}),e.modelsDraft={...t,apiKey:"",apiKeyChanged:!1,apiKeyConfigured:!0},e.modelsVerifyState={tone:"success",message:"BitSeek API key saved."};return}const n=as(e.configSnapshot),s=t.originalProviderId&&t.originalModelId?`${t.originalProviderId}/${t.originalModelId}`:"",i=xp({config:n,baseUrl:t.baseUrl,modelId:t.modelId,providerId:t.originalProviderId??void 0,alias:t.displayName,apiKey:t.apiKeyChanged?t.apiKey:void 0,replaceApiKey:t.apiKeyChanged,previousModelId:t.originalModelId??void 0}),o=`${i.providerId}/${i.modelId}`;let r=[];try{const u=await e.client.request("models.list",{});r=Array.isArray(u?.models)?u.models:[]}catch{r=[]}const l=Nc({config:i.config,modelRef:o,catalogModels:r}),a=e.modelsSelectedDefault===s?o:e.modelsSelectedDefault,d=Zo(l,a||o);if(!await nr(e,d))return;e.modelsSelectedProviderId=o,ai(e)}catch(t){e.modelsError=t instanceof Error?t.message:String(t)}finally{e.modelsSaving=!1}}}async function Mp(e){if(!(!e.client||!e.connected||!e.modelsSelectedDefault.trim())){e.modelsDefaultSaving=!0,e.modelsError=null,e.modelsDefaultState=null;try{const t=e.modelsSelectedDefault.trim();let n=[];try{const o=await e.client.request("models.list",{});n=Array.isArray(o?.models)?o.models:[]}catch{n=[]}const s=Nc({config:as(e.configSnapshot),modelRef:t,catalogModels:n}),i=Zo(s,t);await nr(e,i),e.modelsDefaultState={tone:"success",message:"Default model saved."}}catch(t){e.modelsError=t instanceof Error?t.message:String(t)}finally{e.modelsDefaultSaving=!1}}}async function Lp(e){if(!(!e.client||!e.connected||!e.modelsDraft?.originalProviderId)&&e.modelsDraft.kind==="custom"){e.modelsSaving=!0,e.modelsError=null;try{const t=Sp({config:as(e.configSnapshot),providerId:e.modelsDraft.originalProviderId});await nr(e,t),e.modelsSelectedProviderId=null,ai(e)}catch(t){e.modelsError=t instanceof Error?t.message:String(t)}finally{e.modelsSaving=!1}}}async function Dp(e){if(!e.client||!e.connected||!e.modelsDraft)return;const t=e.modelsDraft.apiKey.trim();e.modelsVerifyBusy=!0,hn(e,null),e.modelsError=null;try{const n={baseUrl:e.modelsDraft.baseUrl.trim(),modelId:e.modelsDraft.modelId.trim(),...e.modelsDraft.originalProviderId?{providerId:e.modelsDraft.originalProviderId}:{},...t?{apiKey:t}:{}};let s;try{s=await e.client.request("models.verify",n)}catch(i){if(!n.providerId||!Cp(i))throw i;const{providerId:o,...r}=n;s=await e.client.request("models.verify",r)}if(s.ok){hn(e,{tone:"success",message:s.status!==void 0?`Verification successful (HTTP ${s.status}).`:"Verification successful."});return}hn(e,{tone:"danger",message:s.status!==void 0?`Verification failed (HTTP ${s.status}).`:s.error||"Verification failed."})}catch(n){hn(e,{tone:"danger",message:n instanceof Error?n.message:String(n)})}finally{e.modelsVerifyBusy=!1}}function Pp(e,t){e.modelsSelectedDefault=t,e.modelsDefaultState=null}function Fp(){return pn}async function sr(e){if(!(!e.client||!e.connected)&&!e.presenceLoading){e.presenceLoading=!0,e.presenceError=null,e.presenceStatus=null;try{const 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}}}async function Yt(e,t){if(!(!e.client||!e.connected)&&!e.sessionsLoading){e.sessionsLoading=!0,e.sessionsError=null;try{const n=t?.includeGlobal??e.sessionsIncludeGlobal,s=t?.includeUnknown??e.sessionsIncludeUnknown,i=t?.activeMinutes??Ne(e.sessionsFilterActive,0),o=t?.limit??Ne(e.sessionsFilterLimit,0),r={includeGlobal:n,includeUnknown:s};i>0&&(r.activeMinutes=i),o>0&&(r.limit=o);const l=await e.client.request("sessions.list",r);l&&(e.sessionsResult=l)}catch(n){e.sessionsError=String(n)}finally{e.sessionsLoading=!1}}}async function Np(e,t,n){if(!e.client||!e.connected)return;const s={key:t};"label"in n&&(s.label=n.label),"thinkingLevel"in n&&(s.thinkingLevel=n.thinkingLevel),"verboseLevel"in n&&(s.verboseLevel=n.verboseLevel),"reasoningLevel"in n&&(s.reasoningLevel=n.reasoningLevel);try{await e.client.request("sessions.patch",s),await Yt(e)}catch(i){e.sessionsError=String(i)}}async function Op(e,t){if(!e.client||!e.connected||e.sessionsLoading||!window.confirm(`Delete session "${t}"?
126
+ `],{type:"text/plain"}),s=URL.createObjectURL(n),i=document.createElement("a"),o=new Date().toISOString().slice(0,19).replace(/[:T]/g,"-");i.href=s,i.download=`openclaw-logs-${t}-${o}.log`,i.click(),URL.revokeObjectURL(s)}function Fg(e){if(typeof ResizeObserver>"u")return;const t=e.querySelector(".topbar");if(!t)return;const n=()=>{const{height:s}=t.getBoundingClientRect();e.style.setProperty("--topbar-height",`${s}px`)};n(),e.topbarObserver=new ResizeObserver(()=>n()),e.topbarObserver.observe(t)}async function si(e){if(!(!e.client||!e.connected)&&!e.debugLoading){e.debugLoading=!0;try{const[t,n,s,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;const o=s;e.debugModels=Array.isArray(o?.models)?o?.models:[],e.debugHeartbeat=i}catch(t){e.debugCallError=String(t)}finally{e.debugLoading=!1}}}async function Ng(e){if(!(!e.client||!e.connected)){e.debugCallError=null,e.debugCallResult=null;try{const 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)}}}const Og=2e3,Ug=new Set(["trace","debug","info","warn","error","fatal"]);function Bg(e){if(typeof e!="string")return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);return!n||typeof n!="object"?null:n}catch{return null}}function Hg(e){if(typeof e!="string")return null;const t=e.toLowerCase();return Ug.has(t)?t:null}function zg(e){if(!e.trim())return{raw:e,message:e};try{const t=JSON.parse(e),n=t&&typeof t._meta=="object"&&t._meta!==null?t._meta:null,s=typeof t.time=="string"?t.time:typeof n?.date=="string"?n?.date:null,i=Hg(n?.logLevelName??n?.level),o=typeof t[0]=="string"?t[0]:typeof n?.name=="string"?n?.name:null,r=Bg(o);let l=null;r&&(typeof r.subsystem=="string"?l=r.subsystem:typeof r.module=="string"&&(l=r.module)),!l&&o&&o.length<120&&(l=o);let a=null;return typeof t[1]=="string"?a=t[1]:!r&&typeof t[0]=="string"?a=t[0]:typeof t.message=="string"&&(a=t.message),{raw:e,time:s,level:i,subsystem:l,message:a??e,meta:n??void 0}}catch{return{raw:e,message:e}}}async function Oo(e,t){if(!(!e.client||!e.connected)&&!(e.logsLoading&&!t?.quiet)){t?.quiet||(e.logsLoading=!0),e.logsError=null;try{const s=await e.client.request("logs.tail",{cursor:t?.reset?void 0:e.logsCursor??void 0,limit:e.logsLimit,maxBytes:e.logsMaxBytes}),o=(Array.isArray(s.lines)?s.lines.filter(l=>typeof l=="string"):[]).map(zg),r=!!(t?.reset||s.reset||e.logsCursor==null);e.logsEntries=r?o:[...e.logsEntries,...o].slice(-Og),typeof s.cursor=="number"&&(e.logsCursor=s.cursor),typeof s.file=="string"&&(e.logsFile=s.file),e.logsTruncated=!!s.truncated,e.logsLastFetchAt=Date.now()}catch(n){e.logsError=String(n)}finally{t?.quiet||(e.logsLoading=!1)}}}async function ii(e,t){if(!(!e.client||!e.connected)&&!e.nodesLoading){e.nodesLoading=!0,t?.quiet||(e.lastError=null);try{const n=await e.client.request("node.list",{});e.nodes=Array.isArray(n.nodes)?n.nodes:[]}catch(n){t?.quiet||(e.lastError=String(n))}finally{e.nodesLoading=!1}}}function jg(e){e.nodesPollInterval==null&&(e.nodesPollInterval=window.setInterval(()=>{ii(e,{quiet:!0})},5e3))}function Kg(e){e.nodesPollInterval!=null&&(clearInterval(e.nodesPollInterval),e.nodesPollInterval=null)}function lc(e){e.logsPollInterval==null&&(e.logsPollInterval=window.setInterval(()=>{e.tab==="logs"&&Oo(e,{quiet:!0})},2e3))}function cc(e){e.logsPollInterval!=null&&(clearInterval(e.logsPollInterval),e.logsPollInterval=null)}function dc(e){e.debugPollInterval==null&&(e.debugPollInterval=window.setInterval(()=>{e.tab==="debug"&&si(e)},3e3))}function uc(e){e.debugPollInterval!=null&&(clearInterval(e.debugPollInterval),e.debugPollInterval=null)}async function gc(e,t){if(!(!e.client||!e.connected||e.agentIdentityLoading)&&!e.agentIdentityById[t]){e.agentIdentityLoading=!0,e.agentIdentityError=null;try{const n=await e.client.request("agent.identity.get",{agentId:t});n&&(e.agentIdentityById={...e.agentIdentityById,[t]:n})}catch(n){e.agentIdentityError=String(n)}finally{e.agentIdentityLoading=!1}}}async function fc(e,t){if(!e.client||!e.connected||e.agentIdentityLoading)return;const n=t.filter(s=>!e.agentIdentityById[s]);if(n.length!==0){e.agentIdentityLoading=!0,e.agentIdentityError=null;try{for(const s of n){const i=await e.client.request("agent.identity.get",{agentId:s});i&&(e.agentIdentityById={...e.agentIdentityById,[s]:i})}}catch(s){e.agentIdentityError=String(s)}finally{e.agentIdentityLoading=!1}}}async function _s(e,t){if(!(!e.client||!e.connected)&&!e.agentSkillsLoading){e.agentSkillsLoading=!0,e.agentSkillsError=null;try{const n=await e.client.request("skills.status",{agentId:t});n&&(e.agentSkillsReport=n,e.agentSkillsAgentId=t)}catch(n){e.agentSkillsError=String(n)}finally{e.agentSkillsLoading=!1}}}async function Uo(e){if(!(!e.client||!e.connected)&&!e.agentsLoading){e.agentsLoading=!0,e.agentsError=null;try{const t=await e.client.request("agents.list",{});if(t){e.agentsList=t;const n=e.agentsSelectedId,s=t.agents.some(i=>i.id===n);(!n||!s)&&(e.agentsSelectedId=t.defaultId??t.agents[0]?.id??null)}}catch(t){e.agentsError=String(t)}finally{e.agentsLoading=!1}}}async function Hn(e,t){if(!(!e.client||!e.connected)&&!e.toolsCatalogLoading){e.toolsCatalogLoading=!0,e.toolsCatalogError=null;try{const n=await e.client.request("tools.catalog",{agentId:t??e.agentsSelectedId??void 0,includePlugins:!0});n&&(e.toolsCatalogResult=n)}catch(n){e.toolsCatalogError=String(n)}finally{e.toolsCatalogLoading=!1}}}const Wg={trace:!0,debug:!0,info:!0,warn:!0,error:!0,fatal:!0},Os={name:"",description:"",agentId:"",sessionKey:"",clearAgent:!1,enabled:!0,deleteAfterRun:!0,scheduleKind:"every",scheduleAt:"",everyAmount:"30",everyUnit:"minutes",cronExpr:"0 7 * * *",cronTz:"",scheduleExact:!1,staggerAmount:"",staggerUnit:"seconds",sessionTarget:"isolated",wakeMode:"now",payloadKind:"agentTurn",payloadText:"",payloadModel:"",payloadThinking:"",payloadLightContext:!1,deliveryMode:"announce",deliveryChannel:"last",deliveryTo:"",deliveryAccountId:"",deliveryBestEffort:!1,failureAlertMode:"inherit",failureAlertAfter:"2",failureAlertCooldownSeconds:"3600",failureAlertChannel:"last",failureAlertTo:"",failureAlertDeliveryMode:"announce",failureAlertAccountId:"",timeoutSeconds:""};function Bo(e,t){if(e==null||!Number.isFinite(e)||e<=0)return;if(e<1e3)return`${Math.round(e)}ms`;const n=t?.spaced?" ":"",s=Math.round(e/1e3),i=Math.floor(s/3600),o=Math.floor(s%3600/60),r=s%60;if(i>=24){const l=Math.floor(i/24),a=i%24;return a>0?`${l}d${n}${a}h`:`${l}d`}return i>0?o>0?`${i}h${n}${o}m`:`${i}h`:o>0?r>0?`${o}m${n}${r}s`:`${o}m`:`${r}s`}function Ho(e,t="n/a"){if(e==null||!Number.isFinite(e)||e<0)return t;if(e<1e3)return`${Math.round(e)}ms`;const n=Math.round(e/1e3);if(n<60)return`${n}s`;const s=Math.round(n/60);if(s<60)return`${s}m`;const i=Math.round(s/60);return i<24?`${i}h`:`${Math.round(i/24)}d`}function ne(e,t){const n=t?.fallback??"n/a";if(e==null||!Number.isFinite(e))return n;const s=Date.now()-e,i=Math.abs(s),o=s>=0,r=Math.round(i/1e3);if(r<60)return o?"just now":"in <1m";const l=Math.round(r/60);if(l<60)return o?`${l}m ago`:`in ${l}m`;const a=Math.round(l/60);if(a<48)return o?`${a}h ago`:`in ${a}h`;const d=Math.round(a/24);return o?`${d}d ago`:`in ${d}d`}function eo(e){const t=[],n=/(^|\n)(```|~~~)[^\n]*\n[\s\S]*?(?:\n\2(?:\n|$)|$)/g;for(const i of e.matchAll(n)){const o=(i.index??0)+i[1].length;t.push({start:o,end:o+i[0].length-i[1].length})}const s=/`+[^`]+`+/g;for(const i of e.matchAll(s)){const o=i.index??0,r=o+i[0].length;t.some(a=>o>=a.start&&r<=a.end)||t.push({start:o,end:r})}return t.sort((i,o)=>i.start-o.start),t}function to(e,t){return t.some(n=>e>=n.start&&e<n.end)}const qg=/<\s*\/?\s*(?:think(?:ing)?|thought|antthinking|final)\b/i,hs=/<\s*\/?\s*final\b[^<>]*>/gi,sa=/<\s*(\/?)\s*(?:think(?:ing)?|thought|antthinking)\b[^<>]*>/gi;function Gg(e,t){return e.trimStart()}function Vg(e,t){if(!e||!qg.test(e))return e;let n=e;if(hs.test(n)){hs.lastIndex=0;const l=[],a=eo(n);for(const d of n.matchAll(hs)){const g=d.index??0;l.push({start:g,length:d[0].length,inCode:to(g,a)})}for(let d=l.length-1;d>=0;d--){const g=l[d];g.inCode||(n=n.slice(0,g.start)+n.slice(g.start+g.length))}}else hs.lastIndex=0;const s=eo(n);sa.lastIndex=0;let i="",o=0,r=!1;for(const l of n.matchAll(sa)){const a=l.index??0,d=l[1]==="/";to(a,s)||(r?d&&(r=!1):(i+=n.slice(o,a),d||(r=!0)),o=a+l[0].length)}return i+=n.slice(o),Gg(i)}const ia=/<\s*(\/?)\s*relevant[-_]memories\b[^<>]*>/gi,Jg=/<\s*\/?\s*relevant[-_]memories\b/i;function Qg(e){if(!e||!Jg.test(e))return e;ia.lastIndex=0;const t=eo(e);let n="",s=0,i=!1;for(const o of e.matchAll(ia)){const r=o.index??0;if(to(r,t))continue;const l=o[1]==="/";i?l&&(i=!1):(n+=e.slice(s,r),l||(i=!0)),s=r+o[0].length}return i||(n+=e.slice(s)),n}function Yg(e){const t=Vg(e);return Qg(t).trimStart()}function kt(e){return!e&&e!==0?"n/a":new Date(e).toLocaleString()}function no(e){return!e||e.length===0?"none":e.filter(t=>!!(t&&t.trim())).join(", ")}function so(e,t=120){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function pc(e,t){return e.length<=t?{text:e,truncated:!1,total:e.length}:{text:e.slice(0,Math.max(0,t)),truncated:!0,total:e.length}}function Ne(e,t){const n=Number(e);return Number.isFinite(n)?n:t}function Xg(e){return Yg(e)}const Es="last";function Zg(e){return e.sessionTarget==="isolated"&&e.payloadKind==="agentTurn"}function zo(e){return e.deliveryMode!=="announce"||Zg(e)?e:{...e,deliveryMode:"none"}}function is(e){const t={};if(e.name.trim()||(t.name="cron.errors.nameRequired"),e.scheduleKind==="at"){const n=Date.parse(e.scheduleAt);Number.isFinite(n)||(t.scheduleAt="cron.errors.scheduleAtInvalid")}else if(e.scheduleKind==="every")Ne(e.everyAmount,0)<=0&&(t.everyAmount="cron.errors.everyAmountInvalid");else if(e.cronExpr.trim()||(t.cronExpr="cron.errors.cronExprRequired"),!e.scheduleExact){const n=e.staggerAmount.trim();n&&Ne(n,0)<=0&&(t.staggerAmount="cron.errors.staggerAmountInvalid")}if(e.payloadText.trim()||(t.payloadText=e.payloadKind==="systemEvent"?"cron.errors.systemTextRequired":"cron.errors.agentMessageRequired"),e.payloadKind==="agentTurn"){const n=e.timeoutSeconds.trim();n&&Ne(n,0)<=0&&(t.timeoutSeconds="cron.errors.timeoutInvalid")}if(e.deliveryMode==="webhook"){const n=e.deliveryTo.trim();n?/^https?:\/\//i.test(n)||(t.deliveryTo="cron.errors.webhookUrlInvalid"):t.deliveryTo="cron.errors.webhookUrlRequired"}if(e.failureAlertMode==="custom"){const n=e.failureAlertAfter.trim();if(n){const i=Ne(n,0);(!Number.isFinite(i)||i<=0)&&(t.failureAlertAfter="Failure alert threshold must be greater than 0.")}const s=e.failureAlertCooldownSeconds.trim();if(s){const i=Ne(s,-1);(!Number.isFinite(i)||i<0)&&(t.failureAlertCooldownSeconds="Cooldown must be 0 or greater.")}}return t}function hc(e){return Object.keys(e).length>0}async function os(e){if(!(!e.client||!e.connected))try{const t=await e.client.request("cron.status",{});e.cronStatus=t}catch(t){e.cronError=String(t)}}async function ef(e){if(!(!e.client||!e.connected))try{const n=(await e.client.request("models.list",{}))?.models;if(!Array.isArray(n)){e.cronModelSuggestions=[];return}const s=n.map(i=>{if(!i||typeof i!="object")return"";const o=i.id;return typeof o=="string"?o.trim():""}).filter(Boolean);e.cronModelSuggestions=Array.from(new Set(s)).toSorted((i,o)=>i.localeCompare(o))}catch{e.cronModelSuggestions=[]}}async function oi(e){return await jo(e,{append:!1})}function mc(e){const t=typeof e.totalRaw=="number"&&Number.isFinite(e.totalRaw)?Math.max(0,Math.floor(e.totalRaw)):e.pageCount,n=typeof e.limitRaw=="number"&&Number.isFinite(e.limitRaw)?Math.max(1,Math.floor(e.limitRaw)):Math.max(1,e.pageCount),s=typeof e.offsetRaw=="number"&&Number.isFinite(e.offsetRaw)?Math.max(0,Math.floor(e.offsetRaw)):0,i=typeof e.hasMoreRaw=="boolean"?e.hasMoreRaw:s+e.pageCount<Math.max(t,s+e.pageCount),o=typeof e.nextOffsetRaw=="number"&&Number.isFinite(e.nextOffsetRaw)?Math.max(0,Math.floor(e.nextOffsetRaw)):i?s+e.pageCount:null;return{total:t,limit:n,offset:s,hasMore:i,nextOffset:o}}async function jo(e,t){if(!e.client||!e.connected||e.cronLoading||e.cronJobsLoadingMore)return;const n=t?.append===!0;if(n){if(!e.cronJobsHasMore)return;e.cronJobsLoadingMore=!0}else e.cronLoading=!0;e.cronError=null;try{const s=n?Math.max(0,e.cronJobsNextOffset??e.cronJobs.length):0,i=await e.client.request("cron.list",{includeDisabled:e.cronJobsEnabledFilter==="all",limit:e.cronJobsLimit,offset:s,query:e.cronJobsQuery.trim()||void 0,enabled:e.cronJobsEnabledFilter,sortBy:e.cronJobsSortBy,sortDir:e.cronJobsSortDir}),o=Array.isArray(i.jobs)?i.jobs:[];e.cronJobs=n?[...e.cronJobs,...o]:o;const r=mc({totalRaw:i.total,limitRaw:i.limit,offsetRaw:i.offset,nextOffsetRaw:i.nextOffset,hasMoreRaw:i.hasMore,pageCount:o.length});e.cronJobsTotal=Math.max(r.total,e.cronJobs.length),e.cronJobsHasMore=r.hasMore,e.cronJobsNextOffset=r.nextOffset,e.cronEditingJobId&&!e.cronJobs.some(l=>l.id===e.cronEditingJobId)&&rs(e)}catch(s){e.cronError=String(s)}finally{n?e.cronJobsLoadingMore=!1:e.cronLoading=!1}}async function tf(e){await jo(e,{append:!0})}async function oa(e){await jo(e,{append:!1})}function ra(e,t){typeof t.cronJobsQuery=="string"&&(e.cronJobsQuery=t.cronJobsQuery),t.cronJobsEnabledFilter&&(e.cronJobsEnabledFilter=t.cronJobsEnabledFilter),t.cronJobsScheduleKindFilter&&(e.cronJobsScheduleKindFilter=t.cronJobsScheduleKindFilter),t.cronJobsLastStatusFilter&&(e.cronJobsLastStatusFilter=t.cronJobsLastStatusFilter),t.cronJobsSortBy&&(e.cronJobsSortBy=t.cronJobsSortBy),t.cronJobsSortDir&&(e.cronJobsSortDir=t.cronJobsSortDir)}function nf(e){return e.cronJobs.filter(t=>!(e.cronJobsScheduleKindFilter!=="all"&&t.schedule.kind!==e.cronJobsScheduleKindFilter||e.cronJobsLastStatusFilter!=="all"&&t.state?.lastStatus!==e.cronJobsLastStatusFilter))}function rs(e){e.cronEditingJobId=null}function vc(e){e.cronForm={...Os},e.cronFieldErrors=is(e.cronForm)}function sf(e){const t=Date.parse(e);if(!Number.isFinite(t))return"";const n=new Date(t),s=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0"),r=String(n.getHours()).padStart(2,"0"),l=String(n.getMinutes()).padStart(2,"0");return`${s}-${i}-${o}T${r}:${l}`}function of(e){if(e%864e5===0)return{everyAmount:String(Math.max(1,e/864e5)),everyUnit:"days"};if(e%36e5===0)return{everyAmount:String(Math.max(1,e/36e5)),everyUnit:"hours"};const t=Math.max(1,Math.ceil(e/6e4));return{everyAmount:String(t),everyUnit:"minutes"}}function rf(e){return e===0?{scheduleExact:!0,staggerAmount:"",staggerUnit:"seconds"}:typeof e!="number"||!Number.isFinite(e)||e<0?{scheduleExact:!1,staggerAmount:"",staggerUnit:"seconds"}:e%6e4===0?{scheduleExact:!1,staggerAmount:String(Math.max(1,e/6e4)),staggerUnit:"minutes"}:{scheduleExact:!1,staggerAmount:String(Math.max(1,Math.ceil(e/1e3))),staggerUnit:"seconds"}}function bc(e,t){const n=e.failureAlert,s={...t,name:e.name,description:e.description??"",agentId:e.agentId??"",sessionKey:e.sessionKey??"",clearAgent:!1,enabled:e.enabled,deleteAfterRun:e.deleteAfterRun??!1,scheduleKind:e.schedule.kind,scheduleAt:"",everyAmount:t.everyAmount,everyUnit:t.everyUnit,cronExpr:t.cronExpr,cronTz:"",scheduleExact:!1,staggerAmount:"",staggerUnit:"seconds",sessionTarget:e.sessionTarget,wakeMode:e.wakeMode,payloadKind:e.payload.kind,payloadText:e.payload.kind==="systemEvent"?e.payload.text:e.payload.message,payloadModel:e.payload.kind==="agentTurn"?e.payload.model??"":"",payloadThinking:e.payload.kind==="agentTurn"?e.payload.thinking??"":"",payloadLightContext:e.payload.kind==="agentTurn"?e.payload.lightContext===!0:!1,deliveryMode:e.delivery?.mode??"none",deliveryChannel:e.delivery?.channel??Es,deliveryTo:e.delivery?.to??"",deliveryAccountId:e.delivery?.accountId??"",deliveryBestEffort:e.delivery?.bestEffort??!1,failureAlertMode:n===!1?"disabled":n&&typeof n=="object"?"custom":"inherit",failureAlertAfter:n&&typeof n=="object"&&typeof n.after=="number"?String(n.after):Os.failureAlertAfter,failureAlertCooldownSeconds:n&&typeof n=="object"&&typeof n.cooldownMs=="number"?String(Math.floor(n.cooldownMs/1e3)):Os.failureAlertCooldownSeconds,failureAlertChannel:n&&typeof n=="object"?n.channel??Es:Es,failureAlertTo:n&&typeof n=="object"?n.to??"":"",failureAlertDeliveryMode:n&&typeof n=="object"?n.mode??"announce":"announce",failureAlertAccountId:n&&typeof n=="object"?n.accountId??"":"",timeoutSeconds:e.payload.kind==="agentTurn"&&typeof e.payload.timeoutSeconds=="number"?String(e.payload.timeoutSeconds):""};if(e.schedule.kind==="at")s.scheduleAt=sf(e.schedule.at);else if(e.schedule.kind==="every"){const i=of(e.schedule.everyMs);s.everyAmount=i.everyAmount,s.everyUnit=i.everyUnit}else{s.cronExpr=e.schedule.expr,s.cronTz=e.schedule.tz??"";const i=rf(e.schedule.staggerMs);s.scheduleExact=i.scheduleExact,s.staggerAmount=i.staggerAmount,s.staggerUnit=i.staggerUnit}return zo(s)}function af(e){if(e.scheduleKind==="at"){const o=Date.parse(e.scheduleAt);if(!Number.isFinite(o))throw new Error(p("cron.errors.invalidRunTime"));return{kind:"at",at:new Date(o).toISOString()}}if(e.scheduleKind==="every"){const o=Ne(e.everyAmount,0);if(o<=0)throw new Error(p("cron.errors.invalidIntervalAmount"));const r=e.everyUnit;return{kind:"every",everyMs:o*(r==="minutes"?6e4:r==="hours"?36e5:864e5)}}const t=e.cronExpr.trim();if(!t)throw new Error(p("cron.errors.cronExprRequiredShort"));if(e.scheduleExact)return{kind:"cron",expr:t,tz:e.cronTz.trim()||void 0,staggerMs:0};const n=e.staggerAmount.trim();if(!n)return{kind:"cron",expr:t,tz:e.cronTz.trim()||void 0};const s=Ne(n,0);if(s<=0)throw new Error(p("cron.errors.invalidStaggerAmount"));const i=e.staggerUnit==="minutes"?s*6e4:s*1e3;return{kind:"cron",expr:t,tz:e.cronTz.trim()||void 0,staggerMs:i}}function lf(e){if(e.payloadKind==="systemEvent"){const r=e.payloadText.trim();if(!r)throw new Error(p("cron.errors.systemEventTextRequired"));return{kind:"systemEvent",text:r}}const t=e.payloadText.trim();if(!t)throw new Error(p("cron.errors.agentMessageRequiredShort"));const n={kind:"agentTurn",message:t},s=e.payloadModel.trim();s&&(n.model=s);const i=e.payloadThinking.trim();i&&(n.thinking=i);const o=Ne(e.timeoutSeconds,0);return o>0&&(n.timeoutSeconds=o),e.payloadLightContext&&(n.lightContext=!0),n}function cf(e){if(e.failureAlertMode==="disabled")return!1;if(e.failureAlertMode!=="custom")return;const t=Ne(e.failureAlertAfter.trim(),0),n=e.failureAlertCooldownSeconds.trim(),s=n.length>0?Ne(n,0):void 0,i=s!==void 0&&Number.isFinite(s)&&s>=0?Math.floor(s*1e3):void 0,o=e.failureAlertDeliveryMode,r=e.failureAlertAccountId.trim(),l={after:t>0?Math.floor(t):void 0,channel:e.failureAlertChannel.trim()||Es,to:e.failureAlertTo.trim()||void 0,...i!==void 0?{cooldownMs:i}:{}};return o&&(l.mode=o),l.accountId=r||void 0,l}async function df(e){if(!(!e.client||!e.connected||e.cronBusy)){e.cronBusy=!0,e.cronError=null;try{const t=zo(e.cronForm);t!==e.cronForm&&(e.cronForm=t);const n=is(t);if(e.cronFieldErrors=n,hc(n))return;const s=af(t),i=lf(t),o=e.cronEditingJobId?e.cronJobs.find(v=>v.id===e.cronEditingJobId):void 0;if(i.kind==="agentTurn"){const v=o?.payload.kind==="agentTurn"?o.payload.lightContext:void 0;!t.payloadLightContext&&e.cronEditingJobId&&v!==void 0&&(i.lightContext=!1)}const r=t.deliveryMode,l=r&&r!=="none"?{mode:r,channel:r==="announce"?t.deliveryChannel.trim()||"last":void 0,to:t.deliveryTo.trim()||void 0,accountId:r==="announce"?t.deliveryAccountId.trim():void 0,bestEffort:t.deliveryBestEffort}:r==="none"?{mode:"none"}:void 0,a=cf(t),d=t.clearAgent?null:t.agentId.trim(),u=t.sessionKey.trim()||(o?.sessionKey?null:void 0),f={name:t.name.trim(),description:t.description.trim(),agentId:d===null?null:d||void 0,sessionKey:u,enabled:t.enabled,deleteAfterRun:t.deleteAfterRun,schedule:s,sessionTarget:t.sessionTarget,wakeMode:t.wakeMode,payload:i,delivery:l,failureAlert:a};if(!f.name)throw new Error(p("cron.errors.nameRequiredShort"));e.cronEditingJobId?(await e.client.request("cron.update",{id:e.cronEditingJobId,patch:f}),rs(e)):(await e.client.request("cron.add",f),vc(e)),await oi(e),await os(e)}catch(t){e.cronError=String(t)}finally{e.cronBusy=!1}}}async function uf(e,t,n){if(!(!e.client||!e.connected||e.cronBusy)){e.cronBusy=!0,e.cronError=null;try{await e.client.request("cron.update",{id:t.id,patch:{enabled:n}}),await oi(e),await os(e)}catch(s){e.cronError=String(s)}finally{e.cronBusy=!1}}}async function gf(e,t,n="force"){if(!(!e.client||!e.connected||e.cronBusy)){e.cronBusy=!0,e.cronError=null;try{await e.client.request("cron.run",{id:t.id,mode:n}),e.cronRunsScope==="all"?await yt(e,null):await yt(e,t.id)}catch(s){e.cronError=String(s)}finally{e.cronBusy=!1}}}async function ff(e,t){if(!(!e.client||!e.connected||e.cronBusy)){e.cronBusy=!0,e.cronError=null;try{await e.client.request("cron.remove",{id:t.id}),e.cronEditingJobId===t.id&&rs(e),e.cronRunsJobId===t.id&&(e.cronRunsJobId=null,e.cronRuns=[],e.cronRunsTotal=0,e.cronRunsHasMore=!1,e.cronRunsNextOffset=null),await oi(e),await os(e)}catch(n){e.cronError=String(n)}finally{e.cronBusy=!1}}}async function yt(e,t,n){if(!e.client||!e.connected)return;const s=e.cronRunsScope,i=t??e.cronRunsJobId;if(s==="job"&&!i){e.cronRuns=[],e.cronRunsTotal=0,e.cronRunsHasMore=!1,e.cronRunsNextOffset=null;return}const o=n?.append===!0;if(!(o&&!e.cronRunsHasMore))try{o&&(e.cronRunsLoadingMore=!0);const r=o?Math.max(0,e.cronRunsNextOffset??e.cronRuns.length):0,l=await e.client.request("cron.runs",{scope:s,id:s==="job"?i??void 0:void 0,limit:e.cronRunsLimit,offset:r,statuses:e.cronRunsStatuses.length>0?e.cronRunsStatuses:void 0,status:e.cronRunsStatusFilter,deliveryStatuses:e.cronRunsDeliveryStatuses.length>0?e.cronRunsDeliveryStatuses:void 0,query:e.cronRunsQuery.trim()||void 0,sortDir:e.cronRunsSortDir}),a=Array.isArray(l.entries)?l.entries:[];e.cronRuns=o&&(s==="all"||e.cronRunsJobId===i)?[...e.cronRuns,...a]:a,s==="job"&&(e.cronRunsJobId=i??null);const d=mc({totalRaw:l.total,limitRaw:l.limit,offsetRaw:l.offset,nextOffsetRaw:l.nextOffset,hasMoreRaw:l.hasMore,pageCount:a.length});e.cronRunsTotal=Math.max(d.total,e.cronRuns.length),e.cronRunsHasMore=d.hasMore,e.cronRunsNextOffset=d.nextOffset}catch(r){e.cronError=String(r)}finally{o&&(e.cronRunsLoadingMore=!1)}}async function pf(e){e.cronRunsScope==="job"&&!e.cronRunsJobId||await yt(e,e.cronRunsJobId,{append:!0})}function aa(e,t){t.cronRunsScope&&(e.cronRunsScope=t.cronRunsScope),Array.isArray(t.cronRunsStatuses)&&(e.cronRunsStatuses=t.cronRunsStatuses,e.cronRunsStatusFilter=t.cronRunsStatuses.length===1?t.cronRunsStatuses[0]:"all"),Array.isArray(t.cronRunsDeliveryStatuses)&&(e.cronRunsDeliveryStatuses=t.cronRunsDeliveryStatuses),t.cronRunsStatusFilter&&(e.cronRunsStatusFilter=t.cronRunsStatusFilter,e.cronRunsStatuses=t.cronRunsStatusFilter==="all"?[]:[t.cronRunsStatusFilter]),typeof t.cronRunsQuery=="string"&&(e.cronRunsQuery=t.cronRunsQuery),t.cronRunsSortDir&&(e.cronRunsSortDir=t.cronRunsSortDir)}function hf(e,t){e.cronEditingJobId=t.id,e.cronRunsJobId=t.id,e.cronForm=bc(t,e.cronForm),e.cronFieldErrors=is(e.cronForm)}function mf(e,t){const n=e.trim()||"Job",s=`${n} copy`;if(!t.has(s.toLowerCase()))return s;let i=2;for(;i<1e3;){const o=`${n} copy ${i}`;if(!t.has(o.toLowerCase()))return o;i+=1}return`${n} copy ${Date.now()}`}function vf(e,t){rs(e),e.cronRunsJobId=t.id;const n=new Set(e.cronJobs.map(i=>i.name.trim().toLowerCase())),s=bc(t,e.cronForm);s.name=mf(t.name,n),e.cronForm=s,e.cronFieldErrors=is(e.cronForm)}function bf(e){rs(e),vc(e)}function Ko(e){return e.trim()}function yf(e){if(!Array.isArray(e))return[];const t=new Set;for(const n of e){const s=n.trim();s&&t.add(s)}return[...t].toSorted()}function $f(e){const t=e.adapter.readStore();if(!t||t.deviceId!==e.deviceId)return null;const n=Ko(e.role),s=t.tokens[n];return!s||typeof s.token!="string"?null:s}function xf(e){const t=Ko(e.role),n=e.adapter.readStore(),s={version:1,deviceId:e.deviceId,tokens:n&&n.deviceId===e.deviceId&&n.tokens?{...n.tokens}:{}},i={token:e.token,role:t,scopes:yf(e.scopes),updatedAtMs:Date.now()};return s.tokens[t]=i,e.adapter.writeStore(s),i}function wf(e){const t=e.adapter.readStore();if(!t||t.deviceId!==e.deviceId)return;const n=Ko(e.role);if(!t.tokens[n])return;const s={version:1,deviceId:t.deviceId,tokens:{...t.tokens}};delete s.tokens[n],e.adapter.writeStore(s)}const yc="openclaw.device.auth.v1";function Wo(){try{const e=window.localStorage.getItem(yc);if(!e)return null;const 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 qo(e){try{window.localStorage.setItem(yc,JSON.stringify(e))}catch{}}function Sf(e){return $f({adapter:{readStore:Wo,writeStore:qo},deviceId:e.deviceId,role:e.role})}function $c(e){return xf({adapter:{readStore:Wo,writeStore:qo},deviceId:e.deviceId,role:e.role,token:e.token,scopes:e.scopes})}function xc(e){wf({adapter:{readStore:Wo,writeStore:qo},deviceId:e.deviceId,role:e.role})}const wc={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:Se,n:Is,Gx:la,Gy:ca,a:Ci,d:Ti,h:kf}=wc,Vt=32,Go=64,Af=(...e)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...e)},me=(e="")=>{const t=new Error(e);throw Af(t,me),t},Cf=e=>typeof e=="bigint",Tf=e=>typeof e=="string",_f=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array",Tt=(e,t,n="")=>{const s=_f(e),i=e?.length,o=t!==void 0;if(!s||o&&i!==t){const r=n&&`"${n}" `,l=o?` of length ${t}`:"",a=s?`length=${i}`:`type=${typeof e}`;me(r+"expected Uint8Array"+l+", got "+a)}return e},ri=e=>new Uint8Array(e),Sc=e=>Uint8Array.from(e),kc=(e,t)=>e.toString(16).padStart(t,"0"),Ac=e=>Array.from(Tt(e)).map(t=>kc(t,2)).join(""),ot={_0:48,_9:57,A:65,F:70,a:97,f:102},da=e=>{if(e>=ot._0&&e<=ot._9)return e-ot._0;if(e>=ot.A&&e<=ot.F)return e-(ot.A-10);if(e>=ot.a&&e<=ot.f)return e-(ot.a-10)},Cc=e=>{const t="hex invalid";if(!Tf(e))return me(t);const n=e.length,s=n/2;if(n%2)return me(t);const i=ri(s);for(let o=0,r=0;o<s;o++,r+=2){const l=da(e.charCodeAt(r)),a=da(e.charCodeAt(r+1));if(l===void 0||a===void 0)return me(t);i[o]=l*16+a}return i},Tc=()=>globalThis?.crypto,Ef=()=>Tc()?.subtle??me("crypto.subtle must be defined, consider polyfill"),Qn=(...e)=>{const t=ri(e.reduce((s,i)=>s+Tt(i).length,0));let n=0;return e.forEach(s=>{t.set(s,n),n+=s.length}),t},If=(e=Vt)=>Tc().getRandomValues(ri(e)),Us=BigInt,Ot=(e,t,n,s="bad number: out of range")=>Cf(e)&&t<=e&&e<n?e:me(s),U=(e,t=Se)=>{const n=e%t;return n>=0n?n:t+n},_c=e=>U(e,Is),Rf=(e,t)=>{(e===0n||t<=0n)&&me("no inverse n="+e+" mod="+t);let n=U(e,t),s=t,i=0n,o=1n;for(;n!==0n;){const r=s/n,l=s%n,a=i-o*r;s=n,n=l,i=o,o=a}return s===1n?U(i,t):me("no inverse")},Mf=e=>{const t=Mc[e];return typeof t!="function"&&me("hashes."+e+" not set"),t},_i=e=>e instanceof Fe?e:me("Point expected"),io=2n**256n;class Fe{static BASE;static ZERO;X;Y;Z;T;constructor(t,n,s,i){const o=io;this.X=Ot(t,0n,o),this.Y=Ot(n,0n,o),this.Z=Ot(s,1n,o),this.T=Ot(i,0n,o),Object.freeze(this)}static CURVE(){return wc}static fromAffine(t){return new Fe(t.x,t.y,1n,U(t.x*t.y))}static fromBytes(t,n=!1){const s=Ti,i=Sc(Tt(t,Vt)),o=t[31];i[31]=o&-129;const r=Ic(i);Ot(r,0n,n?io:Se);const a=U(r*r),d=U(a-1n),g=U(s*a+1n);let{isValid:u,value:f}=Df(d,g);u||me("bad point: y not sqrt");const v=(f&1n)===1n,m=(o&128)!==0;return!n&&f===0n&&m&&me("bad point: x==0, isLastByteOdd"),m!==v&&(f=U(-f)),new Fe(f,r,1n,U(f*r))}static fromHex(t,n){return Fe.fromBytes(Cc(t),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){const t=Ci,n=Ti,s=this;if(s.is0())return me("bad point: ZERO");const{X:i,Y:o,Z:r,T:l}=s,a=U(i*i),d=U(o*o),g=U(r*r),u=U(g*g),f=U(a*t),v=U(g*U(f+d)),m=U(u+U(n*U(a*d)));if(v!==m)return me("bad point: equation left != right (1)");const S=U(i*o),C=U(r*l);return S!==C?me("bad point: equation left != right (2)"):this}equals(t){const{X:n,Y:s,Z:i}=this,{X:o,Y:r,Z:l}=_i(t),a=U(n*l),d=U(o*i),g=U(s*l),u=U(r*i);return a===d&&g===u}is0(){return this.equals(fn)}negate(){return new Fe(U(-this.X),this.Y,this.Z,U(-this.T))}double(){const{X:t,Y:n,Z:s}=this,i=Ci,o=U(t*t),r=U(n*n),l=U(2n*U(s*s)),a=U(i*o),d=t+n,g=U(U(d*d)-o-r),u=a+r,f=u-l,v=a-r,m=U(g*f),S=U(u*v),C=U(g*v),M=U(f*u);return new Fe(m,S,M,C)}add(t){const{X:n,Y:s,Z:i,T:o}=this,{X:r,Y:l,Z:a,T:d}=_i(t),g=Ci,u=Ti,f=U(n*r),v=U(s*l),m=U(o*u*d),S=U(i*a),C=U((n+s)*(r+l)-f-v),M=U(S-m),I=U(S+m),A=U(v-g*f),w=U(C*M),L=U(I*A),E=U(C*A),R=U(M*I);return new Fe(w,L,R,E)}subtract(t){return this.add(_i(t).negate())}multiply(t,n=!0){if(!n&&(t===0n||this.is0()))return fn;if(Ot(t,1n,Is),t===1n)return this;if(this.equals(Jt))return Wf(t).p;let s=fn,i=Jt;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?s=s.add(o):n&&(i=i.add(o));return s}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){const{X:t,Y:n,Z:s}=this;if(this.equals(fn))return{x:0n,y:1n};const i=Rf(s,Se);U(s*i)!==1n&&me("invalid inverse");const o=U(t*i),r=U(n*i);return{x:o,y:r}}toBytes(){const{x:t,y:n}=this.assertValidity().toAffine(),s=Ec(n);return s[31]|=t&1n?128:0,s}toHex(){return Ac(this.toBytes())}clearCofactor(){return this.multiply(Us(kf),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(Is/2n,!1).double();return Is%2n&&(t=t.add(this)),t.is0()}}const Jt=new Fe(la,ca,1n,U(la*ca)),fn=new Fe(0n,1n,1n,0n);Fe.BASE=Jt;Fe.ZERO=fn;const Ec=e=>Cc(kc(Ot(e,0n,io),Go)).reverse(),Ic=e=>Us("0x"+Ac(Sc(Tt(e)).reverse())),Ge=(e,t)=>{let n=e;for(;t-- >0n;)n*=n,n%=Se;return n},Lf=e=>{const n=e*e%Se*e%Se,s=Ge(n,2n)*n%Se,i=Ge(s,1n)*e%Se,o=Ge(i,5n)*i%Se,r=Ge(o,10n)*o%Se,l=Ge(r,20n)*r%Se,a=Ge(l,40n)*l%Se,d=Ge(a,80n)*a%Se,g=Ge(d,80n)*a%Se,u=Ge(g,10n)*o%Se;return{pow_p_5_8:Ge(u,2n)*e%Se,b2:n}},ua=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Df=(e,t)=>{const n=U(t*t*t),s=U(n*n*t),i=Lf(e*s).pow_p_5_8;let o=U(e*n*i);const r=U(t*o*o),l=o,a=U(o*ua),d=r===e,g=r===U(-e),u=r===U(-e*ua);return d&&(o=l),(g||u)&&(o=a),(U(o)&1n)===1n&&(o=U(-o)),{isValid:d||g,value:o}},oo=e=>_c(Ic(e)),Vo=(...e)=>Mc.sha512Async(Qn(...e)),Pf=(...e)=>Mf("sha512")(Qn(...e)),Rc=e=>{const t=e.slice(0,Vt);t[0]&=248,t[31]&=127,t[31]|=64;const n=e.slice(Vt,Go),s=oo(t),i=Jt.multiply(s),o=i.toBytes();return{head:t,prefix:n,scalar:s,point:i,pointBytes:o}},Jo=e=>Vo(Tt(e,Vt)).then(Rc),Ff=e=>Rc(Pf(Tt(e,Vt))),Nf=e=>Jo(e).then(t=>t.pointBytes),Of=e=>Vo(e.hashable).then(e.finish),Uf=(e,t,n)=>{const{pointBytes:s,scalar:i}=e,o=oo(t),r=Jt.multiply(o).toBytes();return{hashable:Qn(r,s,n),finish:d=>{const g=_c(o+oo(d)*i);return Tt(Qn(r,Ec(g)),Go)}}},Bf=async(e,t)=>{const n=Tt(e),s=await Jo(t),i=await Vo(s.prefix,n);return Of(Uf(s,i,n))},Mc={sha512Async:async e=>{const t=Ef(),n=Qn(e);return ri(await t.digest("SHA-512",n.buffer))},sha512:void 0},Hf=(e=If(Vt))=>e,zf={getExtendedPublicKeyAsync:Jo,getExtendedPublicKey:Ff,randomSecretKey:Hf},Bs=8,jf=256,Lc=Math.ceil(jf/Bs)+1,ro=2**(Bs-1),Kf=()=>{const e=[];let t=Jt,n=t;for(let s=0;s<Lc;s++){n=t,e.push(n);for(let i=1;i<ro;i++)n=n.add(t),e.push(n);t=n.double()}return e};let ga;const fa=(e,t)=>{const n=t.negate();return e?n:t},Wf=e=>{const t=ga||(ga=Kf());let n=fn,s=Jt;const i=2**Bs,o=i,r=Us(i-1),l=Us(Bs);for(let a=0;a<Lc;a++){let d=Number(e&r);e>>=l,d>ro&&(d-=o,e+=1n);const g=a*ro,u=g,f=g+Math.abs(d)-1,v=a%2!==0,m=d<0;d===0?s=s.add(fa(v,t[u])):n=n.add(fa(m,t[f]))}return e!==0n&&me("invalid wnaf"),{p:n,f:s}},Ei="openclaw-device-identity-v1";function ao(e){let t="";for(const n of e)t+=String.fromCharCode(n);return btoa(t).replaceAll("+","-").replaceAll("/","_").replace(/=+$/g,"")}function Dc(e){const t=e.replaceAll("-","+").replaceAll("_","/"),n=t+"=".repeat((4-t.length%4)%4),s=atob(n),i=new Uint8Array(s.length);for(let o=0;o<s.length;o+=1)i[o]=s.charCodeAt(o);return i}function qf(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}async function Pc(e){const t=await crypto.subtle.digest("SHA-256",e.slice().buffer);return qf(new Uint8Array(t))}async function Gf(){const e=zf.randomSecretKey(),t=await Nf(e);return{deviceId:await Pc(t),publicKey:ao(t),privateKey:ao(e)}}async function Qo(){try{const n=localStorage.getItem(Ei);if(n){const s=JSON.parse(n);if(s?.version===1&&typeof s.deviceId=="string"&&typeof s.publicKey=="string"&&typeof s.privateKey=="string"){const i=await Pc(Dc(s.publicKey));if(i!==s.deviceId){const o={...s,deviceId:i};return localStorage.setItem(Ei,JSON.stringify(o)),{deviceId:i,publicKey:s.publicKey,privateKey:s.privateKey}}return{deviceId:s.deviceId,publicKey:s.publicKey,privateKey:s.privateKey}}}}catch{}const e=await Gf(),t={version:1,deviceId:e.deviceId,publicKey:e.publicKey,privateKey:e.privateKey,createdAtMs:Date.now()};return localStorage.setItem(Ei,JSON.stringify(t)),e}async function Vf(e,t){const n=Dc(e),s=new TextEncoder().encode(t),i=await Bf(s,n);return ao(i)}async function _t(e,t){if(!(!e.client||!e.connected)&&!e.devicesLoading){e.devicesLoading=!0,t?.quiet||(e.devicesError=null);try{const n=await e.client.request("device.pair.list",{});e.devicesList={pending:Array.isArray(n?.pending)?n.pending:[],paired:Array.isArray(n?.paired)?n.paired:[]}}catch(n){t?.quiet||(e.devicesError=String(n))}finally{e.devicesLoading=!1}}}async function Jf(e,t){if(!(!e.client||!e.connected))try{await e.client.request("device.pair.approve",{requestId:t}),await _t(e)}catch(n){e.devicesError=String(n)}}async function Qf(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 _t(e)}catch(s){e.devicesError=String(s)}}async function Yf(e,t){if(!(!e.client||!e.connected))try{const n=await e.client.request("device.token.rotate",t);if(n?.token){const s=await Qo(),i=n.role??t.role;(n.deviceId===s.deviceId||t.deviceId===s.deviceId)&&$c({deviceId:s.deviceId,role:i,token:n.token,scopes:n.scopes??t.scopes??[]}),window.prompt("New device token (copy and store securely):",n.token)}await _t(e)}catch(n){e.devicesError=String(n)}}async function Xf(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);const s=await Qo();t.deviceId===s.deviceId&&xc({deviceId:s.deviceId,role:t.role}),await _t(e)}catch(s){e.devicesError=String(s)}}function Zf(e){if(!e||e.kind==="gateway")return{method:"exec.approvals.get",params:{}};const t=e.nodeId.trim();return t?{method:"exec.approvals.node.get",params:{nodeId:t}}:null}function ep(e,t){if(!e||e.kind==="gateway")return{method:"exec.approvals.set",params:t};const n=e.nodeId.trim();return n?{method:"exec.approvals.node.set",params:{...t,nodeId:n}}:null}async function Yo(e,t){if(!(!e.client||!e.connected)&&!e.execApprovalsLoading){e.execApprovalsLoading=!0,e.lastError=null;try{const n=Zf(t);if(!n){e.lastError="Select a node before loading exec approvals.";return}const s=await e.client.request(n.method,n.params);tp(e,s)}catch(n){e.lastError=String(n)}finally{e.execApprovalsLoading=!1}}}function tp(e,t){e.execApprovalsSnapshot=t,e.execApprovalsDirty||(e.execApprovalsForm=St(t.file??{}))}async function np(e,t){if(!(!e.client||!e.connected)){e.execApprovalsSaving=!0,e.lastError=null;try{const n=e.execApprovalsSnapshot?.hash;if(!n){e.lastError="Exec approvals hash missing; reload and retry.";return}const s=e.execApprovalsForm??e.execApprovalsSnapshot?.file??{},i=ep(t,{file:s,baseHash:n});if(!i){e.lastError="Select a node before saving exec approvals.";return}await e.client.request(i.method,i.params),e.execApprovalsDirty=!1,await Yo(e,t)}catch(n){e.lastError=String(n)}finally{e.execApprovalsSaving=!1}}}function sp(e,t,n){const s=St(e.execApprovalsForm??e.execApprovalsSnapshot?.file??{});ec(s,t,n),e.execApprovalsForm=s,e.execApprovalsDirty=!0}function ip(e,t){const n=St(e.execApprovalsForm??e.execApprovalsSnapshot?.file??{});tc(n,t),e.execApprovalsForm=n,e.execApprovalsDirty=!0}function Fc(e){return e instanceof Error?e.message:String(e)}function pa(e,t,n){const s=t.trim();if(!s)return;const i={...e.marketMessages};n?i[s]=n:delete i[s],e.marketMessages=i}function xn(e){return e.state.installed?e.state.enabled?{kind:"disable",enabled:!1,successMessage:"Skill disabled."}:{kind:"enable",enabled:!0,successMessage:"Skill enabled."}:{kind:"install",successMessage:"Installed."}}async function Xo(e){if(!(!e.client||!e.connected||e.marketLoading)){e.marketLoading=!0,e.marketError=null;try{const t=await e.client.request("skills.market.catalog",{});e.marketCatalog=Array.isArray(t?.catalog)?t.catalog:[]}catch(t){e.marketError=Fc(t)}finally{e.marketLoading=!1}}}async function op(e,t){if(!e.client||!e.connected)return;const n=e.marketCatalog.find(i=>i.skillKey===t);if(!n)return;const s=xn(n);e.marketBusyKey=t,e.marketError=null;try{let i=s.successMessage;if(s.kind==="install"){const o=await e.client.request("skills.market.installOrEnable",{skillKey:t});i=o?.action==="already-installed"?"Already installed.":o?.message?.trim()||s.successMessage}else await e.client.request("skills.update",{skillKey:t,enabled:s.enabled});await Xo(e),pa(e,t,{kind:"success",message:i})}catch(i){const o=Fc(i);e.marketError=o,pa(e,t,{kind:"error",message:o})}finally{e.marketBusyKey=null}}function rp(e){return typeof e=="string"?e.trim()||void 0:!e||typeof e!="object"?void 0:e.primary?.trim()||void 0}const ap=128e3,Hs="bitseek",lp="bitseek/AUTO",Yn=32e3,cp=4096,dp={"gpt-5.1-codex":4e5,"gpt-5.1-codex-mini":4e5,"gpt-5.1-codex-max":4e5,"gpt-5.1":4e5,"gpt-5.2":4e5,"claude-opus-4-6":1048576,"claude-opus-4-5":2e5,"gemini-3-pro":1048576,"gemini-3-flash":1048576,"glm-4.7":204800,"minimax-m2.5":2e5,"minimax-m2.5-highspeed":2e5,"minimax-m2.5-lightning":2e5};function lo(e,t){return`${e}/${t}`}function up(e){const t=typeof e=="number"&&Number.isFinite(e)?Math.floor(e):0;return t>=Yn?t:Yn}function gp(e){if(typeof e=="string")return e.trim()||void 0;if(!e||typeof e!="object")return;const t=e.primary;return typeof t!="string"?void 0:t.trim()||void 0}function fp(e){if(!e||typeof e!="object")return[];const t=e.fallbacks;return Array.isArray(t)?t.map(n=>typeof n=="string"?n.trim():"").filter(Boolean):[]}function Zo(e,t){const n=e.agents?.defaults,s=n?.model,i=n?.models,o=typeof s=="object"&&s!==null&&"fallbacks"in s?s.fallbacks:void 0;return{...e,agents:{...e.agents,defaults:{...n,model:{...o?{fallbacks:o}:{},primary:t},models:{...i,[t]:i?.[t]??{}}}}}}function pp(e){const t=e.trim();if(!t)return null;const n=t.indexOf("/");return n<=0||n>=t.length-1?null:{providerId:t.slice(0,n).trim(),modelId:t.slice(n+1).trim()}}function er(e){if(typeof e!="number"||!Number.isFinite(e))return null;const t=Math.floor(e);return t>0?t:null}function hp(e){const t=e.config.models?.providers??{};let n=null;for(const[s,i]of Object.entries(t))if(!(!i||!Array.isArray(i.models)||s===e.selectedProviderId))for(const o of i.models){if(o.id!==e.modelId)continue;const r=er(o.contextWindow);r&&(n=n==null?r:Math.max(n,r))}return n}function mp(e){if(!Array.isArray(e.catalogModels)||e.catalogModels.length===0)return null;const t=e.selectedProviderId.trim().toLowerCase();let n=null;for(const s of e.catalogModels){if((typeof s?.id=="string"?s.id.trim():"")!==e.modelId)continue;const o=typeof s?.provider=="string"?s.provider.trim().toLowerCase():"";if(o&&o===t)continue;const r=er(s?.contextWindow);r&&(n=n==null?r:Math.max(n,r))}return n}function vp(e){const t=e.trim().toLowerCase();return t?dp[t]??null:null}function Nc(e){const t=pp(e.modelRef);if(!t)return e.config;const n=e.config.models?.providers??{},s=n[t.providerId];if(!s||!Array.isArray(s.models))return e.config;let i=!1;const o=s.models.map(r=>{if(r.id!==t.modelId)return r;const l=er(r.contextWindow);let a;if(t.providerId===Hs)a=ap;else{const d=hp({config:e.config,selectedProviderId:t.providerId,modelId:t.modelId}),g=mp({selectedProviderId:t.providerId,modelId:t.modelId,catalogModels:e.catalogModels}),u=vp(t.modelId),f=d??g??u;a=f!=null?Math.max(f,Yn):Math.max(l??0,Yn)}return a===r.contextWindow?r:(i=!0,{...r,contextWindow:a})});return i?{...e.config,models:{...e.config.models,providers:{...n,[t.providerId]:{...s,models:o}}}}:e.config}function co(e){const t=e.trim().toLowerCase();return t?t.replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,""):""}function Oc(e){try{const t=new URL(e),n=t.hostname.replace(/[^a-z0-9]+/gi,"-").toLowerCase(),s=t.port?`-${t.port}`:"",i=`custom-${n}${s}`;return co(i)||"custom"}catch{return"custom"}}function bp(e){const t=e.config.models?.providers??{},n=co(e.requestedProviderId?.trim()||"");if(n)return n;const s=Oc(e.baseUrl),i=co(s)||"custom",o=t[i];if(!o?.baseUrl||o.baseUrl===e.baseUrl)return i;let r=2,l=`${i}-${r}`;for(;t[l];)r+=1,l=`${i}-${r}`;return l}function yp(e){try{new URL(e)}catch{throw new Error("Custom provider base URL must be a valid URL.")}}function $p(e){const t=e.alias.trim();if(!t)return;const n=e.cfg.agents?.defaults?.models??{},s=t.toLowerCase(),i=new Set((e.ignoreModelRefs??[]).map(o=>o.trim()).filter(Boolean));for(const[o,r]of Object.entries(n)){if(o===e.modelRef||i.has(o))continue;const l=r.alias,a=typeof l=="string"?l.trim().toLowerCase():"";if(a&&a===s)throw new Error(`Alias ${t} already points to ${o}.`)}}function xp(e){const t=e.baseUrl.trim();yp(t);const n=e.modelId.trim();if(!n)throw new Error("Custom provider model ID is required.");const s=bp({config:e.config,baseUrl:t,requestedProviderId:e.providerId}),i=e.config.models?.providers??{},o=i[s],r=Array.isArray(o?.models)?o.models:[],l=e.previousModelId?.trim(),a=l?r.filter(L=>L.id!==l):r,d=a.some(L=>L.id===n),g={id:n,name:`${n} (Custom Provider)`,contextWindow:Yn,maxTokens:cp,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},reasoning:!1},u=d?a.map(L=>L.id===n?{...L,contextWindow:up(L.contextWindow)}:L):[...a,g],f=e.replaceApiKey===!0?e.apiKey?.trim():void 0,v={...o??{baseUrl:t,models:[],api:"openai-completions"},baseUrl:t,api:"openai-completions",models:u.length>0?u:[g]};e.replaceApiKey===!0&&(f?v.apiKey=f:delete v.apiKey);const m=lo(s,n),S=e.providerId?.trim()||s,C=l?lo(S,l):void 0,M=e.alias?.trim()??"";$p({cfg:e.config,alias:M,modelRef:m,ignoreModelRefs:C?[C]:[]});const I={...e.config.agents?.defaults?.models};C&&C!==m&&delete I[C];const A={...I[m]};return M?A.alias=M:delete A.alias,I[m]=A,{config:{...e.config,models:{...e.config.models,mode:e.config.models?.mode??"merge",providers:{...i,[s]:v}},agents:{...e.config.agents,defaults:{...e.config.agents?.defaults,models:I}}},providerId:s,modelId:n}}function ha(e,t){const n=t?[[t,e[t]]]:Object.entries(e),s=[];for(const[i,o]of n)if(!(!o||!Array.isArray(o.models)))for(const r of o.models){const l=typeof r?.id=="string"?r.id.trim():"";l&&s.push(lo(i,l))}return s}function wp(e){const t=ha(e,Hs);return t.length>0?t[0]:e[Hs]?lp:ha(e)[0]}function Sp(e){const t=e.providerId.trim();if(!t||t===Hs)return e.config;const n=e.config.models?.providers??{};if(!n[t])return e.config;const s={...n};delete s[t];const i=`${t}/`,o=e.config.agents?.defaults,r=o?.models??{},l={};for(const[m,S]of Object.entries(r))m.startsWith(i)||(l[m]=S);const a=gp(o?.model),d=fp(o?.model).filter(m=>!m.startsWith(i)),u=(a&&!a.startsWith(i)?a:void 0)??wp(s);let f={...e.config,models:{...e.config.models,providers:s},agents:{...e.config.agents,defaults:{...o,...Object.keys(l).length>0?{models:l}:{}}}};if(Object.keys(l).length===0&&(f={...f,agents:{...f.agents,defaults:{...f.agents?.defaults,models:void 0}}}),!u)return f;f=Zo(f,u);const v=d.filter(m=>m!==u);return v.length===0?f:{...f,agents:{...f.agents,defaults:{...f.agents?.defaults,model:{primary:u,fallbacks:v}}}}}const pn="__new__",Xn="bitseek",kp=4e3,zs=new WeakMap;function Ap(e){const t=zs.get(e);t&&(clearTimeout(t),zs.delete(e))}function hn(e,t){if(e.modelsVerifyState=t,Ap(e),t?.tone!=="success")return;const n=t,s=setTimeout(()=>{e.modelsVerifyState===n&&(e.modelsVerifyState=null),zs.delete(e)},kp);zs.set(e,s)}function Cp(e){const t=e instanceof Error?e.message:String(e);return/invalid models\.verify params/i.test(t)&&/providerId/i.test(t)}function as(e){return St(e?.config??{})}function Tp(e){return!!(e&&e.api==="openai-completions"&&typeof e.baseUrl=="string"&&e.baseUrl.trim()&&Array.isArray(e.models)&&e.models.some(t=>typeof t?.id=="string"&&t.id.trim()))}function tr(e,t,n){return e.agents?.defaults?.models?.[`${t}/${n}`]?.alias?.trim()??""}function Uc(e){return e===Xn?"BitSeek":e}function Bc(e){const t=e.models?.providers??{};return Object.entries(t).filter(([,n])=>Tp(n)).map(([n,s])=>[n,s]).toSorted(([n],[s])=>n===Xn?-1:s===Xn?1:n.localeCompare(s))}function _p(e,t,n,s){const i=typeof s?.id=="string"?s.id.trim():"";if(!i)throw new Error(`Missing model id for provider ${t}.`);const o=tr(e,t,i),r=t===Xn?"bitseek":"custom",l=typeof s?.name=="string"?s.name.trim():"",a=Uc(t);return{modelRef:`${t}/${i}`,providerId:t,kind:r,title:o||l||i,subtitle:r==="bitseek"?"Built-in provider":a,modelId:i,baseUrl:n.baseUrl,apiKeyConfigured:n.apiKey!==void 0}}function Hc(e){const t=[];for(const[n,s]of Bc(e))for(const i of s.models)typeof i?.id=="string"&&i.id.trim()&&t.push(_p(e,n,s,i));return t}function Ep(e){const t=[];for(const[n,s]of Bc(e)){const i=Uc(n);for(const o of s.models){const r=typeof o?.id=="string"?o.id.trim():"";if(!r)continue;const l=`${n}/${r}`,a=tr(e,n,r),d=typeof o?.name=="string"?o.name.trim():"",g=a||d||r;t.push({modelRef:l,providerId:n,modelId:r,providerLabel:i,modelLabel:g,label:`${i} · ${g} (${l})`})}}return t}function zc(e,t){const n=t.kind==="bitseek";return{kind:t.kind,originalProviderId:t.providerId,originalModelId:t.modelId,providerIdHint:t.providerId,displayName:tr(e,t.providerId,t.modelId),baseUrl:t.baseUrl,apiKey:"",apiKeyConfigured:t.apiKeyConfigured,apiKeyChanged:!1,modelId:t.modelId,saved:!0,canDelete:t.kind==="custom",readonlyModelIdentity:n}}function js(){return{kind:"custom",originalProviderId:null,originalModelId:null,providerIdHint:"custom",displayName:"",baseUrl:"",apiKey:"",apiKeyConfigured:!1,apiKeyChanged:!1,modelId:"",saved:!1,canDelete:!1,readonlyModelIdentity:!1}}function ai(e){const t=as(e.configSnapshot),n=Hc(t),s=Ep(t),i=rp(t.agents?.defaults?.model)??"",r=s.some(d=>d.modelRef===i)?i:s[0]?.modelRef??i,l=e.modelsSelectedProviderId===pn?pn:n.some(d=>d.modelRef===e.modelsSelectedProviderId)?e.modelsSelectedProviderId:n[0]?.modelRef??pn;if(e.modelsProviders=n,e.modelsSwitchableModels=s,e.modelsSelectedDefault=r,e.modelsSelectedProviderId=l,l===pn){e.modelsDraft=js();return}const a=n.find(d=>d.modelRef===l);e.modelsDraft=a?zc(t,a):js()}async function nr(e,t){const n=e.configSnapshot?.hash;return n?(await e.client?.request("config.set",{raw:$n(t),baseHash:n}),await Ae(e),ai(e),!0):(e.modelsError="Config hash missing; reload and retry.",!1)}async function jc(e){if(!(!e.client||!e.connected)){e.modelsLoading=!0,e.modelsError=null,e.modelsDefaultState=null;try{e.configSnapshot?.hash||await Ae(e),ai(e)}catch(t){e.modelsError=String(t)}finally{e.modelsLoading=!1}}}function ma(e,t){e.modelsSelectedProviderId=t,hn(e,null);const n=as(e.configSnapshot);if(t===pn){e.modelsDraft=js();return}const s=Hc(n).find(i=>i.modelRef===t);e.modelsDraft=s?zc(n,s):js()}function Ip(e,t,n){if(!e.modelsDraft||t!=="apiKey"&&e.modelsDraft.readonlyModelIdentity)return;const s={...e.modelsDraft,[t]:n};t==="baseUrl"&&!s.originalProviderId&&(s.providerIdHint=Oc(n.trim())||"custom"),t==="apiKey"&&(s.apiKeyChanged=!0),e.modelsDraft=s,hn(e,null)}async function Rp(e){if(!(!e.client||!e.connected||!e.modelsDraft)){e.modelsSaving=!0,e.modelsError=null;try{const t=e.modelsDraft;if(t.kind==="bitseek"){if(!t.apiKeyChanged)return;const u=t.apiKey.trim();if(!u)throw new Error("BitSeek API key cannot be empty.");await e.client.request("models.auth.set",{providerId:Xn,apiKey:u}),e.modelsDraft={...t,apiKey:"",apiKeyChanged:!1,apiKeyConfigured:!0},e.modelsVerifyState={tone:"success",message:"BitSeek API key saved."};return}const n=as(e.configSnapshot),s=t.originalProviderId&&t.originalModelId?`${t.originalProviderId}/${t.originalModelId}`:"",i=xp({config:n,baseUrl:t.baseUrl,modelId:t.modelId,providerId:t.originalProviderId??void 0,alias:t.displayName,apiKey:t.apiKeyChanged?t.apiKey:void 0,replaceApiKey:t.apiKeyChanged,previousModelId:t.originalModelId??void 0}),o=`${i.providerId}/${i.modelId}`;let r=[];try{const u=await e.client.request("models.list",{});r=Array.isArray(u?.models)?u.models:[]}catch{r=[]}const l=Nc({config:i.config,modelRef:o,catalogModels:r}),a=e.modelsSelectedDefault===s?o:e.modelsSelectedDefault,d=Zo(l,a||o);if(!await nr(e,d))return;e.modelsSelectedProviderId=o,ai(e)}catch(t){e.modelsError=t instanceof Error?t.message:String(t)}finally{e.modelsSaving=!1}}}async function Mp(e){if(!(!e.client||!e.connected||!e.modelsSelectedDefault.trim())){e.modelsDefaultSaving=!0,e.modelsError=null,e.modelsDefaultState=null;try{const t=e.modelsSelectedDefault.trim();let n=[];try{const o=await e.client.request("models.list",{});n=Array.isArray(o?.models)?o.models:[]}catch{n=[]}const s=Nc({config:as(e.configSnapshot),modelRef:t,catalogModels:n}),i=Zo(s,t);await nr(e,i),e.modelsDefaultState={tone:"success",message:"Default model saved."}}catch(t){e.modelsError=t instanceof Error?t.message:String(t)}finally{e.modelsDefaultSaving=!1}}}async function Lp(e){if(!(!e.client||!e.connected||!e.modelsDraft?.originalProviderId)&&e.modelsDraft.kind==="custom"){e.modelsSaving=!0,e.modelsError=null;try{const t=Sp({config:as(e.configSnapshot),providerId:e.modelsDraft.originalProviderId});await nr(e,t),e.modelsSelectedProviderId=null,ai(e)}catch(t){e.modelsError=t instanceof Error?t.message:String(t)}finally{e.modelsSaving=!1}}}async function Dp(e){if(!e.client||!e.connected||!e.modelsDraft)return;const t=e.modelsDraft.apiKey.trim();e.modelsVerifyBusy=!0,hn(e,null),e.modelsError=null;try{const n={baseUrl:e.modelsDraft.baseUrl.trim(),modelId:e.modelsDraft.modelId.trim(),...e.modelsDraft.originalProviderId?{providerId:e.modelsDraft.originalProviderId}:{},...t?{apiKey:t}:{}};let s;try{s=await e.client.request("models.verify",n)}catch(i){if(!n.providerId||!Cp(i))throw i;const{providerId:o,...r}=n;s=await e.client.request("models.verify",r)}if(s.ok){hn(e,{tone:"success",message:s.status!==void 0?`Verification successful (HTTP ${s.status}).`:"Verification successful."});return}hn(e,{tone:"danger",message:s.status!==void 0?`Verification failed (HTTP ${s.status}).`:s.error||"Verification failed."})}catch(n){hn(e,{tone:"danger",message:n instanceof Error?n.message:String(n)})}finally{e.modelsVerifyBusy=!1}}function Pp(e,t){e.modelsSelectedDefault=t,e.modelsDefaultState=null}function Fp(){return pn}async function sr(e){if(!(!e.client||!e.connected)&&!e.presenceLoading){e.presenceLoading=!0,e.presenceError=null,e.presenceStatus=null;try{const 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}}}async function Yt(e,t){if(!(!e.client||!e.connected)&&!e.sessionsLoading){e.sessionsLoading=!0,e.sessionsError=null;try{const n=t?.includeGlobal??e.sessionsIncludeGlobal,s=t?.includeUnknown??e.sessionsIncludeUnknown,i=t?.activeMinutes??Ne(e.sessionsFilterActive,0),o=t?.limit??Ne(e.sessionsFilterLimit,0),r={includeGlobal:n,includeUnknown:s};i>0&&(r.activeMinutes=i),o>0&&(r.limit=o);const l=await e.client.request("sessions.list",r);l&&(e.sessionsResult=l)}catch(n){e.sessionsError=String(n)}finally{e.sessionsLoading=!1}}}async function Np(e,t,n){if(!e.client||!e.connected)return;const s={key:t};"label"in n&&(s.label=n.label),"thinkingLevel"in n&&(s.thinkingLevel=n.thinkingLevel),"verboseLevel"in n&&(s.verboseLevel=n.verboseLevel),"reasoningLevel"in n&&(s.reasoningLevel=n.reasoningLevel);try{await e.client.request("sessions.patch",s),await Yt(e)}catch(i){e.sessionsError=String(i)}}async function Op(e,t){if(!e.client||!e.connected||e.sessionsLoading||!window.confirm(`Delete session "${t}"?
127
127
 
128
128
  Deletes 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(s){return e.sessionsError=String(s),!1}finally{e.sessionsLoading=!1}}async function Up(e,t){return await Op(e,t)?(await Yt(e),!0):!1}function wn(e,t,n){if(!t.trim())return;const s={...e.skillMessages};n?s[t]=n:delete s[t],e.skillMessages=s}function li(e){return e instanceof Error?e.message:String(e)}async function ls(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{const n=await e.client.request("skills.status",{});n&&(e.skillsReport=n)}catch(n){e.skillsError=li(n)}finally{e.skillsLoading=!1}}}function Bp(e,t,n){e.skillEdits={...e.skillEdits,[t]:n}}async function Hp(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 ls(e),wn(e,t,{kind:"success",message:n?"Skill enabled":"Skill disabled"})}catch(s){const i=li(s);e.skillsError=i,wn(e,t,{kind:"error",message:i})}finally{e.skillsBusyKey=null}}}async function zp(e,t){if(!(!e.client||!e.connected)){e.skillsBusyKey=t,e.skillsError=null;try{const n=e.skillEdits[t]??"";await e.client.request("skills.update",{skillKey:t,apiKey:n}),await ls(e),wn(e,t,{kind:"success",message:"API key saved"})}catch(n){const s=li(n);e.skillsError=s,wn(e,t,{kind:"error",message:s})}finally{e.skillsBusyKey=null}}}async function jp(e,t,n,s){if(!(!e.client||!e.connected)){e.skillsBusyKey=t,e.skillsError=null;try{const i=await e.client.request("skills.install",{name:n,installId:s,timeoutMs:12e4});await ls(e),wn(e,t,{kind:"success",message:i?.message??"Installed"})}catch(i){const o=li(i);e.skillsError=o,wn(e,t,{kind:"error",message:o})}finally{e.skillsBusyKey=null}}}const Kp=[{label:"chat",tabs:["chat"]},{label:"control",tabs:["overview","channels","instances","sessions","usage","cron"]},{label:"agent",tabs:["agents","skills","market","nodes"]},{label:"settings",tabs:["models","config","debug","logs"]}],Kc={agents:"/agents",overview:"/overview",channels:"/channels",instances:"/instances",sessions:"/sessions",usage:"/usage",cron:"/cron",skills:"/skills",market:"/market",nodes:"/nodes",chat:"/chat",models:"/models",config:"/config",debug:"/debug",logs:"/logs"},Wc=new Map(Object.entries(Kc).map(([e,t])=>[t,e]));function Xt(e){if(!e)return"";let t=e.trim();return t.startsWith("/")||(t=`/${t}`),t==="/"?"":(t.endsWith("/")&&(t=t.slice(0,-1)),t)}function Zn(e){if(!e)return"/";let t=e.trim();return t.startsWith("/")||(t=`/${t}`),t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t}function ci(e,t=""){const n=Xt(t),s=Kc[e];return n?`${n}${s}`:s}function qc(e,t=""){const n=Xt(t);let s=e||"/";n&&(s===n?s="/":s.startsWith(`${n}/`)&&(s=s.slice(n.length)));let i=Zn(s).toLowerCase();return i.endsWith("/index.html")&&(i="/"),i==="/"?"chat":Wc.get(i)??null}function Gc(e){let t=Zn(e);if(t.endsWith("/index.html")&&(t=Zn(t.slice(0,-11))),t==="/")return"";const n=t.split("/").filter(Boolean);if(n.length===0)return"";for(let s=0;s<n.length;s++){const i=`/${n.slice(s).join("/")}`.toLowerCase();if(Wc.has(i)){const o=n.slice(0,s);return o.length?`/${o.join("/")}`:""}}return`/${n.join("/")}`}function Wp(e){switch(e){case"agents":return"folder";case"chat":return"messageSquare";case"overview":return"barChart";case"channels":return"link";case"instances":return"radio";case"sessions":return"fileText";case"usage":return"barChart";case"cron":return"loader";case"skills":return"zap";case"market":return"puzzle";case"nodes":return"monitor";case"models":return"folder";case"config":return"settings";case"debug":return"bug";case"logs":return"scrollText";default:return"folder"}}function uo(e){return p(`tabs.${e}`)}function qp(e){return p(`subtitles.${e}`)}const Vc="openclaw.control.settings.v1";function Gp(){const t={gatewayUrl:(()=>{const n=location.protocol==="https:"?"wss":"ws",s=typeof window<"u"&&typeof window.__OPENCLAW_CONTROL_UI_BASE_PATH__=="string"&&window.__OPENCLAW_CONTROL_UI_BASE_PATH__.trim(),i=s?Xt(s):Gc(location.pathname);return`${n}://${location.host}${i}`})(),token:"",sessionKey:"main",lastActiveSessionKey:"main",theme:"light",chatFocusMode:!1,chatShowThinking:!0,splitRatio:.6,navCollapsed:!1,navGroupsCollapsed:{}};try{const n=localStorage.getItem(Vc);if(!n)return t;const s=JSON.parse(n);return{gatewayUrl:typeof s.gatewayUrl=="string"&&s.gatewayUrl.trim()?s.gatewayUrl.trim():t.gatewayUrl,token:typeof s.token=="string"?s.token:t.token,sessionKey:typeof s.sessionKey=="string"&&s.sessionKey.trim()?s.sessionKey.trim():t.sessionKey,lastActiveSessionKey:typeof s.lastActiveSessionKey=="string"&&s.lastActiveSessionKey.trim()?s.lastActiveSessionKey.trim():typeof s.sessionKey=="string"&&s.sessionKey.trim()||t.lastActiveSessionKey,theme:s.theme==="light"||s.theme==="dark"||s.theme==="system"?s.theme:t.theme,chatFocusMode:typeof s.chatFocusMode=="boolean"?s.chatFocusMode:t.chatFocusMode,chatShowThinking:typeof s.chatShowThinking=="boolean"?s.chatShowThinking:t.chatShowThinking,splitRatio:typeof s.splitRatio=="number"&&s.splitRatio>=.4&&s.splitRatio<=.7?s.splitRatio:t.splitRatio,navCollapsed:typeof s.navCollapsed=="boolean"?s.navCollapsed:t.navCollapsed,navGroupsCollapsed:typeof s.navGroupsCollapsed=="object"&&s.navGroupsCollapsed!==null?s.navGroupsCollapsed:t.navGroupsCollapsed,locale:Xl(s.locale)?s.locale:void 0}}catch{return t}}function Vp(e){localStorage.setItem(Vc,JSON.stringify(e))}const ms=e=>Number.isNaN(e)?.5:e<=0?0:e>=1?1:e,Jp=()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches??!1,vs=e=>{e.classList.remove("theme-transition"),e.style.removeProperty("--theme-switch-x"),e.style.removeProperty("--theme-switch-y")},Qp=({nextTheme:e,applyTheme:t,context:n,currentTheme:s})=>{if(s===e)return;const i=globalThis.document??null;if(!i){t();return}const o=i.documentElement,r=i,l=Jp();if(!!r.startViewTransition&&!l){let d=.5,g=.5;if(n?.pointerClientX!==void 0&&n?.pointerClientY!==void 0&&typeof window<"u")d=ms(n.pointerClientX/window.innerWidth),g=ms(n.pointerClientY/window.innerHeight);else if(n?.element){const u=n.element.getBoundingClientRect();u.width>0&&u.height>0&&typeof window<"u"&&(d=ms((u.left+u.width/2)/window.innerWidth),g=ms((u.top+u.height/2)/window.innerHeight))}o.style.setProperty("--theme-switch-x",`${d*100}%`),o.style.setProperty("--theme-switch-y",`${g*100}%`),o.classList.add("theme-transition");try{const u=r.startViewTransition?.(()=>{t()});u?.finished?u.finished.finally(()=>vs(o)):vs(o)}catch{vs(o),t()}return}t(),vs(o)};function Yp(){return typeof window>"u"||typeof window.matchMedia!="function"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function ir(e){return e==="system"?Yp():e}function At(e,t){const n={...t,lastActiveSessionKey:t.lastActiveSessionKey?.trim()||t.sessionKey.trim()||"main"};e.settings=n,Vp(n),t.theme!==e.theme&&(e.theme=t.theme,di(e,ir(t.theme))),e.applySessionKey=e.settings.lastActiveSessionKey}function Jc(e,t){const n=t.trim();n&&e.settings.lastActiveSessionKey!==n&&At(e,{...e.settings,lastActiveSessionKey:n})}function Xp(e){if(!window.location.search&&!window.location.hash)return;const t=new URL(window.location.href),n=new URLSearchParams(t.search),s=new URLSearchParams(t.hash.startsWith("#")?t.hash.slice(1):t.hash),i=n.get("token")??s.get("token"),o=n.get("password")??s.get("password"),r=n.get("session")??s.get("session"),l=n.get("gatewayUrl")??s.get("gatewayUrl");let a=!1;if(i!=null){const g=i.trim();g&&g!==e.settings.token&&At(e,{...e.settings,token:g}),n.delete("token"),s.delete("token"),a=!0}if(o!=null&&(n.delete("password"),s.delete("password"),a=!0),r!=null){const g=r.trim();g&&(e.sessionKey=g,At(e,{...e.settings,sessionKey:g,lastActiveSessionKey:g}))}if(l!=null){const g=l.trim();g&&g!==e.settings.gatewayUrl&&(e.pendingGatewayUrl=g),n.delete("gatewayUrl"),s.delete("gatewayUrl"),a=!0}if(!a)return;t.search=n.toString();const d=s.toString();t.hash=d?`#${d}`:"",window.history.replaceState({},"",t.toString())}function Zp(e,t){Xc(e,t,{refreshPolicy:"always",syncUrl:!0})}function eh(e,t,n){Qp({nextTheme:t,applyTheme:()=>{e.theme=t,At(e,{...e.settings,theme:t}),di(e,ir(t))},context:n,currentTheme:e.theme})}async function Qc(e){if(e.tab==="overview"&&await ed(e),e.tab==="channels"&&await lh(e),e.tab==="instances"&&await sr(e),e.tab==="sessions"&&await Yt(e),e.tab==="cron"&&await Ks(e),e.tab==="skills"&&await ls(e),e.tab==="market"&&await Xo(e),e.tab==="agents"){await Uo(e),await Hn(e),await Ae(e);const t=e.agentsList?.agents?.map(s=>s.id)??[];t.length>0&&fc(e,t);const n=e.agentsSelectedId??e.agentsList?.defaultId??e.agentsList?.agents?.[0]?.id;n&&(gc(e,n),e.agentsPanel==="skills"&&_s(e,n),e.agentsPanel==="channels"&&Me(e,!1),e.agentsPanel==="cron"&&Ks(e))}e.tab==="models"&&await jc(e),e.tab==="nodes"&&(await ii(e),await _t(e),await Ae(e),await Yo(e)),e.tab==="chat"&&(await fd(e),ss(e,!e.chatHasAutoScrolled)),e.tab==="config"&&(await nc(e),await Ae(e)),e.tab==="debug"&&(await si(e),e.eventLog=e.eventLogBuffer),e.tab==="logs"&&(e.logsAtBottom=!0,await Oo(e,{reset:!0}),ac(e,!0))}function th(){if(typeof window>"u")return"";const e=window.__OPENCLAW_CONTROL_UI_BASE_PATH__;return typeof e=="string"&&e.trim()?Xt(e):Gc(window.location.pathname)}function nh(e){e.theme=e.settings.theme??"system",di(e,ir(e.theme))}function di(e,t){if(e.themeResolved=t,typeof document>"u")return;const n=document.documentElement;n.dataset.theme=t,n.style.colorScheme=t}function sh(e){if(typeof window>"u"||typeof window.matchMedia!="function")return;if(e.themeMedia=window.matchMedia("(prefers-color-scheme: dark)"),e.themeMediaHandler=n=>{e.theme==="system"&&di(e,n.matches?"dark":"light")},typeof e.themeMedia.addEventListener=="function"){e.themeMedia.addEventListener("change",e.themeMediaHandler);return}e.themeMedia.addListener(e.themeMediaHandler)}function ih(e){if(!e.themeMedia||!e.themeMediaHandler)return;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 oh(e,t){if(typeof window>"u")return;const n=qc(window.location.pathname,e.basePath)??"chat";Yc(e,n),Zc(e,n,t)}function rh(e){if(typeof window>"u")return;const t=qc(window.location.pathname,e.basePath);if(!t)return;const s=new URL(window.location.href).searchParams.get("session")?.trim();s&&(e.sessionKey=s,At(e,{...e.settings,sessionKey:s,lastActiveSessionKey:s})),Yc(e,t)}function Yc(e,t){Xc(e,t,{refreshPolicy:"connected"})}function Xc(e,t,n){e.tab!==t&&(e.tab=t),t==="chat"&&(e.chatHasAutoScrolled=!1),t==="logs"?lc(e):cc(e),t==="debug"?dc(e):uc(e),(n.refreshPolicy==="always"||e.connected)&&Qc(e),n.syncUrl&&Zc(e,t,!1)}function Zc(e,t,n){if(typeof window>"u")return;const s=Zn(ci(t,e.basePath)),i=Zn(window.location.pathname),o=new URL(window.location.href);t==="chat"&&e.sessionKey?o.searchParams.set("session",e.sessionKey):o.searchParams.delete("session"),i!==s&&(o.pathname=s),n?window.history.replaceState({},"",o.toString()):window.history.pushState({},"",o.toString())}function ah(e,t,n){if(typeof window>"u")return;const s=new URL(window.location.href);s.searchParams.set("session",t),window.history.replaceState({},"",s.toString())}async function ed(e){await Promise.all([Me(e,!1),sr(e),Yt(e),os(e),si(e)])}async function lh(e){await Promise.all([Me(e,!0),nc(e),Ae(e)])}async function Ks(e){const t=e;if(await Promise.all([Me(e,!1),os(t),oi(t),ef(t)]),t.cronRunsScope==="all"){await yt(t,null);return}t.cronRunsJobId&&await yt(t,t.cronRunsJobId)}const va=50,ch=80,dh=12e4;function Oe(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function an(e,t){const n=Oe(t);if(!n)return null;const s=Oe(e);if(s){const o=`${s}/`;if(n.toLowerCase().startsWith(o.toLowerCase())){const r=n.slice(o.length).trim();if(r)return`${s}/${r}`}return`${s}/${n}`}const i=n.indexOf("/");if(i>0){const o=n.slice(0,i).trim(),r=n.slice(i+1).trim();if(o&&r)return`${o}/${r}`}return n}function uh(e){return Array.isArray(e)?e.map(t=>Oe(t)).filter(t=>!!t):[]}function gh(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||typeof n!="object")continue;const s=n,i=Oe(s.provider),o=Oe(s.model);if(!i||!o)continue;const r=Oe(s.reason)?.replace(/_/g," ")??Oe(s.code)??(typeof s.status=="number"?`HTTP ${s.status}`:null)??Oe(s.error)??"error";t.push({provider:i,model:o,reason:r})}return t}function fh(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.text=="string")return t.text;const n=t.content;if(!Array.isArray(n))return null;const s=n.map(i=>{if(!i||typeof i!="object")return null;const o=i;return o.type==="text"&&typeof o.text=="string"?o.text:null}).filter(i=>!!i);return s.length===0?null:s.join(`
129
129
  `)}function ba(e){if(e==null)return null;if(typeof e=="number"||typeof e=="boolean")return String(e);const t=fh(e);let n;if(typeof e=="string")n=e;else if(t)n=t;else try{n=JSON.stringify(e,null,2)}catch{n=String(e)}const s=pc(n,dh);return s.truncated?`${s.text}
@@ -8639,4 +8639,4 @@ ${JSON.stringify(e.issues,null,2)}</pre
8639
8639
  `}var Yw=Object.defineProperty,Xw=Object.getOwnPropertyDescriptor,$=(e,t,n,s)=>{for(var i=s>1?void 0:s?Xw(t,n):t,o=e.length-1,r;o>=0;o--)(r=e[o])&&(i=(s?r(t,n,i):r(i))||i);return s&&i&&Yw(t,n,i),i};const Xi=or({});function Zw(){if(!window.location.search)return!1;const t=new URLSearchParams(window.location.search).get("onboarding");if(!t)return!1;const n=t.trim().toLowerCase();return n==="1"||n==="true"||n==="yes"||n==="on"}let y=class extends mn{constructor(){super(),this.i18nController=new lg(this),this.clientInstanceId=gi(),this.settings=Gp(),this.password="",this.tab="chat",this.onboarding=Zw(),this.connected=!1,this.theme=this.settings.theme??"system",this.themeResolved="light",this.hello=null,this.lastError=null,this.lastErrorCode=null,this.eventLog=[],this.eventLogBuffer=[],this.toolStreamSyncTimer=null,this.sidebarCloseTimer=null,this.assistantName=Xi.name,this.assistantAvatar=Xi.avatar,this.assistantAgentId=Xi.agentId??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=`{
8640
8640
  }
8641
8641
  `,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.modelsLoading=!1,this.modelsSaving=!1,this.modelsDefaultSaving=!1,this.modelsVerifyBusy=!1,this.modelsError=null,this.modelsProviders=[],this.modelsSwitchableModels=[],this.modelsSelectedProviderId=null,this.modelsSelectedDefault="",this.modelsDraft=null,this.modelsDefaultState=null,this.modelsVerifyState=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.sessionsHideCron=!0,this.usageLoading=!1,this.usageResult=null,this.usageCostSummary=null,this.usageError=null,this.usageStartDate=(()=>{const e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`})(),this.usageEndDate=(()=>{const 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={...Os},this.cronFieldErrors={},this.cronEditingJobId=null,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.updateAvailable=null,this.skillsLoading=!1,this.skillsReport=null,this.skillsError=null,this.skillsFilter="",this.skillEdits={},this.skillsBusyKey=null,this.skillMessages={},this.marketLoading=!1,this.marketCatalog=[],this.marketError=null,this.marketFilter="",this.marketBusyKey=null,this.marketMessages={},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={...Wg},this.logsAutoFollow=!0,this.logsTruncated=!1,this.logsCursor=null,this.logsLastFetchAt=null,this.logsLimit=500,this.logsMaxBytes=25e4,this.logsAtBottom=!0,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.logsScrollFrame=null,this.toolStreamById=new Map,this.toolStreamOrder=[],this.refreshSessionsAfterChat=new Set,this.basePath="",this.popStateHandler=()=>rh(this),this.themeMedia=null,this.themeMediaHandler=null,this.topbarObserver=null,Xl(this.settings.locale)&&Jn.setLocale(this.settings.locale)}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),pm(this)}firstUpdated(){hm(this)}disconnectedCallback(){mm(this),super.disconnectedCallback()}updated(e){vm(this,e)}connect(){vd(this)}handleChatScroll(e){Lg(this,e)}handleLogsScroll(e){Dg(this,e)}exportLogs(e,t){Pg(e,t)}resetToolStream(){ui(this)}resetChatScroll(){na(this)}scrollToBottom(e){na(this),ss(this,!0,!!e?.smooth)}async loadAssistantIdentity(){await pd(this)}applySettings(e){At(this,e)}setTab(e){Zp(this,e)}setTheme(e,t){eh(this,e,t)}async loadOverview(){await ed(this)}async loadCron(){await Ks(this)}async handleAbortChat(){await dd(this)}removeQueuedMessage(e){jh(this,e)}async handleSendChat(e,t){await Kh(this,e,t)}async handleWhatsAppStart(e){await yg(this,e)}async handleWhatsAppWait(){await $g(this)}async handleWhatsAppLogout(){await xg(this)}async handleChannelConfigSave(){await wg(this)}async handleChannelConfigReload(){await Sg(this)}handleNostrProfileEdit(e,t){Cg(this,e,t)}handleNostrProfileCancel(){Tg(this)}handleNostrProfileFieldChange(e,t){_g(this,e,t)}async handleNostrProfileSave(){await Ig(this)}async handleNostrProfileImport(){await Rg(this)}handleNostrProfileToggleAdvanced(){Eg(this)}async handleExecApprovalDecision(e){const 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(n=>n.id!==t.id)}catch(n){this.execApprovalError=`Exec approval failed: ${String(n)}`}finally{this.execApprovalBusy=!1}}}handleGatewayUrlConfirm(){const e=this.pendingGatewayUrl;e&&(this.pendingGatewayUrl=null,At(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){const t=Math.max(.4,Math.min(.7,e));this.splitRatio=t,this.applySettings({...this.settings,splitRatio:t})}render(){return Qw(this)}};$([x()],y.prototype,"settings",2);$([x()],y.prototype,"password",2);$([x()],y.prototype,"tab",2);$([x()],y.prototype,"onboarding",2);$([x()],y.prototype,"connected",2);$([x()],y.prototype,"theme",2);$([x()],y.prototype,"themeResolved",2);$([x()],y.prototype,"hello",2);$([x()],y.prototype,"lastError",2);$([x()],y.prototype,"lastErrorCode",2);$([x()],y.prototype,"eventLog",2);$([x()],y.prototype,"assistantName",2);$([x()],y.prototype,"assistantAvatar",2);$([x()],y.prototype,"assistantAgentId",2);$([x()],y.prototype,"sessionKey",2);$([x()],y.prototype,"chatLoading",2);$([x()],y.prototype,"chatSending",2);$([x()],y.prototype,"chatMessage",2);$([x()],y.prototype,"chatMessages",2);$([x()],y.prototype,"chatToolMessages",2);$([x()],y.prototype,"chatStream",2);$([x()],y.prototype,"chatStreamStartedAt",2);$([x()],y.prototype,"chatRunId",2);$([x()],y.prototype,"compactionStatus",2);$([x()],y.prototype,"fallbackStatus",2);$([x()],y.prototype,"chatAvatarUrl",2);$([x()],y.prototype,"chatThinkingLevel",2);$([x()],y.prototype,"chatQueue",2);$([x()],y.prototype,"chatAttachments",2);$([x()],y.prototype,"chatManualRefreshInFlight",2);$([x()],y.prototype,"sidebarOpen",2);$([x()],y.prototype,"sidebarContent",2);$([x()],y.prototype,"sidebarError",2);$([x()],y.prototype,"splitRatio",2);$([x()],y.prototype,"nodesLoading",2);$([x()],y.prototype,"nodes",2);$([x()],y.prototype,"devicesLoading",2);$([x()],y.prototype,"devicesError",2);$([x()],y.prototype,"devicesList",2);$([x()],y.prototype,"execApprovalsLoading",2);$([x()],y.prototype,"execApprovalsSaving",2);$([x()],y.prototype,"execApprovalsDirty",2);$([x()],y.prototype,"execApprovalsSnapshot",2);$([x()],y.prototype,"execApprovalsForm",2);$([x()],y.prototype,"execApprovalsSelectedAgent",2);$([x()],y.prototype,"execApprovalsTarget",2);$([x()],y.prototype,"execApprovalsTargetNodeId",2);$([x()],y.prototype,"execApprovalQueue",2);$([x()],y.prototype,"execApprovalBusy",2);$([x()],y.prototype,"execApprovalError",2);$([x()],y.prototype,"pendingGatewayUrl",2);$([x()],y.prototype,"configLoading",2);$([x()],y.prototype,"configRaw",2);$([x()],y.prototype,"configRawOriginal",2);$([x()],y.prototype,"configValid",2);$([x()],y.prototype,"configIssues",2);$([x()],y.prototype,"configSaving",2);$([x()],y.prototype,"configApplying",2);$([x()],y.prototype,"updateRunning",2);$([x()],y.prototype,"applySessionKey",2);$([x()],y.prototype,"configSnapshot",2);$([x()],y.prototype,"configSchema",2);$([x()],y.prototype,"configSchemaVersion",2);$([x()],y.prototype,"configSchemaLoading",2);$([x()],y.prototype,"configUiHints",2);$([x()],y.prototype,"configForm",2);$([x()],y.prototype,"configFormOriginal",2);$([x()],y.prototype,"configFormDirty",2);$([x()],y.prototype,"configFormMode",2);$([x()],y.prototype,"configSearchQuery",2);$([x()],y.prototype,"configActiveSection",2);$([x()],y.prototype,"configActiveSubsection",2);$([x()],y.prototype,"modelsLoading",2);$([x()],y.prototype,"modelsSaving",2);$([x()],y.prototype,"modelsDefaultSaving",2);$([x()],y.prototype,"modelsVerifyBusy",2);$([x()],y.prototype,"modelsError",2);$([x()],y.prototype,"modelsProviders",2);$([x()],y.prototype,"modelsSwitchableModels",2);$([x()],y.prototype,"modelsSelectedProviderId",2);$([x()],y.prototype,"modelsSelectedDefault",2);$([x()],y.prototype,"modelsDraft",2);$([x()],y.prototype,"modelsDefaultState",2);$([x()],y.prototype,"modelsVerifyState",2);$([x()],y.prototype,"channelsLoading",2);$([x()],y.prototype,"channelsSnapshot",2);$([x()],y.prototype,"channelsError",2);$([x()],y.prototype,"channelsLastSuccess",2);$([x()],y.prototype,"whatsappLoginMessage",2);$([x()],y.prototype,"whatsappLoginQrDataUrl",2);$([x()],y.prototype,"whatsappLoginConnected",2);$([x()],y.prototype,"whatsappBusy",2);$([x()],y.prototype,"nostrProfileFormState",2);$([x()],y.prototype,"nostrProfileAccountId",2);$([x()],y.prototype,"presenceLoading",2);$([x()],y.prototype,"presenceEntries",2);$([x()],y.prototype,"presenceError",2);$([x()],y.prototype,"presenceStatus",2);$([x()],y.prototype,"agentsLoading",2);$([x()],y.prototype,"agentsList",2);$([x()],y.prototype,"agentsError",2);$([x()],y.prototype,"agentsSelectedId",2);$([x()],y.prototype,"toolsCatalogLoading",2);$([x()],y.prototype,"toolsCatalogError",2);$([x()],y.prototype,"toolsCatalogResult",2);$([x()],y.prototype,"agentsPanel",2);$([x()],y.prototype,"agentFilesLoading",2);$([x()],y.prototype,"agentFilesError",2);$([x()],y.prototype,"agentFilesList",2);$([x()],y.prototype,"agentFileContents",2);$([x()],y.prototype,"agentFileDrafts",2);$([x()],y.prototype,"agentFileActive",2);$([x()],y.prototype,"agentFileSaving",2);$([x()],y.prototype,"agentIdentityLoading",2);$([x()],y.prototype,"agentIdentityError",2);$([x()],y.prototype,"agentIdentityById",2);$([x()],y.prototype,"agentSkillsLoading",2);$([x()],y.prototype,"agentSkillsError",2);$([x()],y.prototype,"agentSkillsReport",2);$([x()],y.prototype,"agentSkillsAgentId",2);$([x()],y.prototype,"sessionsLoading",2);$([x()],y.prototype,"sessionsResult",2);$([x()],y.prototype,"sessionsError",2);$([x()],y.prototype,"sessionsFilterActive",2);$([x()],y.prototype,"sessionsFilterLimit",2);$([x()],y.prototype,"sessionsIncludeGlobal",2);$([x()],y.prototype,"sessionsIncludeUnknown",2);$([x()],y.prototype,"sessionsHideCron",2);$([x()],y.prototype,"usageLoading",2);$([x()],y.prototype,"usageResult",2);$([x()],y.prototype,"usageCostSummary",2);$([x()],y.prototype,"usageError",2);$([x()],y.prototype,"usageStartDate",2);$([x()],y.prototype,"usageEndDate",2);$([x()],y.prototype,"usageSelectedSessions",2);$([x()],y.prototype,"usageSelectedDays",2);$([x()],y.prototype,"usageSelectedHours",2);$([x()],y.prototype,"usageChartMode",2);$([x()],y.prototype,"usageDailyChartMode",2);$([x()],y.prototype,"usageTimeSeriesMode",2);$([x()],y.prototype,"usageTimeSeriesBreakdownMode",2);$([x()],y.prototype,"usageTimeSeries",2);$([x()],y.prototype,"usageTimeSeriesLoading",2);$([x()],y.prototype,"usageTimeSeriesCursorStart",2);$([x()],y.prototype,"usageTimeSeriesCursorEnd",2);$([x()],y.prototype,"usageSessionLogs",2);$([x()],y.prototype,"usageSessionLogsLoading",2);$([x()],y.prototype,"usageSessionLogsExpanded",2);$([x()],y.prototype,"usageQuery",2);$([x()],y.prototype,"usageQueryDraft",2);$([x()],y.prototype,"usageSessionSort",2);$([x()],y.prototype,"usageSessionSortDir",2);$([x()],y.prototype,"usageRecentSessions",2);$([x()],y.prototype,"usageTimeZone",2);$([x()],y.prototype,"usageContextExpanded",2);$([x()],y.prototype,"usageHeaderPinned",2);$([x()],y.prototype,"usageSessionsTab",2);$([x()],y.prototype,"usageVisibleColumns",2);$([x()],y.prototype,"usageLogFilterRoles",2);$([x()],y.prototype,"usageLogFilterTools",2);$([x()],y.prototype,"usageLogFilterHasTools",2);$([x()],y.prototype,"usageLogFilterQuery",2);$([x()],y.prototype,"cronLoading",2);$([x()],y.prototype,"cronJobsLoadingMore",2);$([x()],y.prototype,"cronJobs",2);$([x()],y.prototype,"cronJobsTotal",2);$([x()],y.prototype,"cronJobsHasMore",2);$([x()],y.prototype,"cronJobsNextOffset",2);$([x()],y.prototype,"cronJobsLimit",2);$([x()],y.prototype,"cronJobsQuery",2);$([x()],y.prototype,"cronJobsEnabledFilter",2);$([x()],y.prototype,"cronJobsScheduleKindFilter",2);$([x()],y.prototype,"cronJobsLastStatusFilter",2);$([x()],y.prototype,"cronJobsSortBy",2);$([x()],y.prototype,"cronJobsSortDir",2);$([x()],y.prototype,"cronStatus",2);$([x()],y.prototype,"cronError",2);$([x()],y.prototype,"cronForm",2);$([x()],y.prototype,"cronFieldErrors",2);$([x()],y.prototype,"cronEditingJobId",2);$([x()],y.prototype,"cronRunsJobId",2);$([x()],y.prototype,"cronRunsLoadingMore",2);$([x()],y.prototype,"cronRuns",2);$([x()],y.prototype,"cronRunsTotal",2);$([x()],y.prototype,"cronRunsHasMore",2);$([x()],y.prototype,"cronRunsNextOffset",2);$([x()],y.prototype,"cronRunsLimit",2);$([x()],y.prototype,"cronRunsScope",2);$([x()],y.prototype,"cronRunsStatuses",2);$([x()],y.prototype,"cronRunsDeliveryStatuses",2);$([x()],y.prototype,"cronRunsStatusFilter",2);$([x()],y.prototype,"cronRunsQuery",2);$([x()],y.prototype,"cronRunsSortDir",2);$([x()],y.prototype,"cronModelSuggestions",2);$([x()],y.prototype,"cronBusy",2);$([x()],y.prototype,"updateAvailable",2);$([x()],y.prototype,"skillsLoading",2);$([x()],y.prototype,"skillsReport",2);$([x()],y.prototype,"skillsError",2);$([x()],y.prototype,"skillsFilter",2);$([x()],y.prototype,"skillEdits",2);$([x()],y.prototype,"skillsBusyKey",2);$([x()],y.prototype,"skillMessages",2);$([x()],y.prototype,"marketLoading",2);$([x()],y.prototype,"marketCatalog",2);$([x()],y.prototype,"marketError",2);$([x()],y.prototype,"marketFilter",2);$([x()],y.prototype,"marketBusyKey",2);$([x()],y.prototype,"marketMessages",2);$([x()],y.prototype,"debugLoading",2);$([x()],y.prototype,"debugStatus",2);$([x()],y.prototype,"debugHealth",2);$([x()],y.prototype,"debugModels",2);$([x()],y.prototype,"debugHeartbeat",2);$([x()],y.prototype,"debugCallMethod",2);$([x()],y.prototype,"debugCallParams",2);$([x()],y.prototype,"debugCallResult",2);$([x()],y.prototype,"debugCallError",2);$([x()],y.prototype,"logsLoading",2);$([x()],y.prototype,"logsError",2);$([x()],y.prototype,"logsFile",2);$([x()],y.prototype,"logsEntries",2);$([x()],y.prototype,"logsFilterText",2);$([x()],y.prototype,"logsLevelFilters",2);$([x()],y.prototype,"logsAutoFollow",2);$([x()],y.prototype,"logsTruncated",2);$([x()],y.prototype,"logsCursor",2);$([x()],y.prototype,"logsLastFetchAt",2);$([x()],y.prototype,"logsLimit",2);$([x()],y.prototype,"logsMaxBytes",2);$([x()],y.prototype,"logsAtBottom",2);$([x()],y.prototype,"chatNewMessagesBelow",2);y=$([Jl("openclaw-app")],y);
8642
- //# sourceMappingURL=index-CZbqZLPL.js.map
8642
+ //# sourceMappingURL=index-CRehj7ln.js.map