openclaw-cortex 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/dist/{agents-DFGWWUWP.js → agents-Connanf3.js} +9 -9
  2. package/dist/{audio-preflight-CJMYPxgz.js → audio-preflight-CketII1D.js} +4 -4
  3. package/dist/{audio-preflight-Da8wJ2aM.js → audio-preflight-uMyPrpUu.js} +2 -2
  4. package/dist/{audit-D2RyL2xf.js → audit-DkAW6KBR.js} +5 -5
  5. package/dist/audit-cli-BXgvg5ZF.js +149 -0
  6. package/dist/audit-cli-DtqyB9AV.js +142 -0
  7. package/dist/{audit-BjY3NDuN.js → audit-qELipjtd.js} +5 -5
  8. package/dist/{auth-choice-GohCLqPi.js → auth-choice-iBFMtcSX.js} +6 -6
  9. package/dist/{auth-choice-options-DnA9f3yX.js → auth-choice-options-B1kkod6_.js} +1 -1
  10. package/dist/{auth-choice-options-DEXqZb42.js → auth-choice-options-ypl3E9Ly.js} +1 -1
  11. package/dist/{auth-choice-prompt-Dl-yzpY0.js → auth-choice-prompt-BRyWAtfZ.js} +1 -1
  12. package/dist/{auth-choice-prompt-UUacbtn9.js → auth-choice-prompt-HAxprx2p.js} +1 -1
  13. package/dist/{auth-choice-Ts5V5Aeh.js → auth-choice-qtLrrNVz.js} +5 -5
  14. package/dist/{banner-Bg78pfCD.js → banner-D_oPGRF8.js} +1 -1
  15. package/dist/{bonjour-discovery-Dci4cd0G.js → bonjour-discovery-D7009yxB.js} +1 -1
  16. package/dist/{bonjour-discovery-Bbq821TB.js → bonjour-discovery-DZl6ArZI.js} +1 -1
  17. package/dist/{browser-cli-Br6_uOTg.js → browser-cli-B9Vh8gTE.js} +1 -1
  18. package/dist/{browser-cli-6clFJFS6.js → browser-cli-BTtbPQaz.js} +1 -1
  19. package/dist/build-info.json +3 -3
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-options-DWVQz-Pr.js → channel-options-B48SGv9h.js} +1 -1
  22. package/dist/{channel-options-VO3dsstv.js → channel-options-BcJt26VG.js} +2 -2
  23. package/dist/{channel-web-CfYHK75g.js → channel-web-CgFmP49a.js} +2 -2
  24. package/dist/{channels-cli-CgzGUhuU.js → channels-cli-CL1qUEGy.js} +19 -19
  25. package/dist/{channels-cli-ClaXI2LY.js → channels-cli-DKyMl3-J.js} +18 -18
  26. package/dist/{chrome-jiKls1lm.js → chrome-7PNldBIY.js} +7 -7
  27. package/dist/{clack-prompter-xfiETF85.js → clack-prompter-CTPf_777.js} +2 -2
  28. package/dist/{clack-prompter-BKrj0iD5.js → clack-prompter-KpWBIhc1.js} +2 -2
  29. package/dist/{clawbot-cli-BLkszw7f.js → clawbot-cli-DbkjoCG5.js} +1 -1
  30. package/dist/{clawbot-cli-D--KZtXG.js → clawbot-cli-i4NzkdF4.js} +1 -1
  31. package/dist/{cli-jzRaj4XC.js → cli-DsZC1vDc.js} +2 -2
  32. package/dist/{cli-VXGGV02p.js → cli-lEZ3mJ9g.js} +4 -4
  33. package/dist/{command-registry-DdnU-C_q.js → command-registry-C2HYRZO_.js} +12 -12
  34. package/dist/{completion-cli-DuxZVRrg.js → completion-cli-DB5qbPxk.js} +1 -1
  35. package/dist/{completion-cli-BiPxrDMm.js → completion-cli-rVm9UjTQ.js} +3 -3
  36. package/dist/{config-cli-CxCTGO_g.js → config-cli-1O6rmVow.js} +1 -1
  37. package/dist/{config-cli-WYe98Ox0.js → config-cli-DKFT2jQY.js} +1 -1
  38. package/dist/{config-guard-DgjGJ8Lb.js → config-guard-BAA0NN6K.js} +3 -3
  39. package/dist/{config-guard-Fvw_vc_U.js → config-guard-FQYcQKxs.js} +1 -1
  40. package/dist/{configure--dU6eZNK.js → configure-Bq40wO_g.js} +18 -18
  41. package/dist/{configure-D83Cw4Tz.js → configure-Hjs-w_V-.js} +18 -18
  42. package/dist/control-ui/_app/immutable/assets/0.CIIOt0aD.css +1 -0
  43. package/dist/control-ui/_app/immutable/chunks/{DXhHboeH.js → PR_wZ9tz.js} +1 -1
  44. package/dist/control-ui/_app/immutable/entry/app.DKU3ZeOo.js +2 -0
  45. package/dist/control-ui/_app/immutable/entry/start.Bt2xwOar.js +1 -0
  46. package/dist/control-ui/_app/immutable/nodes/{0.B62uYxuw.js → 0.CDaa-GWT.js} +8 -8
  47. package/dist/control-ui/_app/immutable/nodes/{1.CDpdCVD0.js → 1.CYtkLWum.js} +1 -1
  48. package/dist/control-ui/_app/immutable/nodes/{9.DFhiU3G3.js → 10.DfK8stgG.js} +1 -1
  49. package/dist/control-ui/_app/immutable/nodes/{10.CFP8x2TH.js → 11.Dzw5x9Jt.js} +1 -1
  50. package/dist/control-ui/_app/immutable/nodes/{14.DP0eaD-P.js → 15.7DnWqn28.js} +1 -1
  51. package/dist/control-ui/_app/immutable/nodes/5.BbK5Iwro.js +4 -0
  52. package/dist/control-ui/_app/immutable/nodes/{5._XvLegf_.js → 6.CbanPjIA.js} +1 -1
  53. package/dist/control-ui/_app/immutable/nodes/{8.B5aVfCJN.js → 9.D4Abr5tX.js} +1 -1
  54. package/dist/control-ui/_app/version.json +1 -1
  55. package/dist/control-ui/index.html +6 -6
  56. package/dist/{cron-cli-QB8r6K_w.js → cron-cli-aGCB_2-m.js} +1 -1
  57. package/dist/{daemon-Cb7wiTzs.js → daemon-CrTIKc6F.js} +6 -6
  58. package/dist/{daemon-Des4AgjX.js → daemon-DP4R5-Kf.js} +6 -6
  59. package/dist/{daemon-cli-BlsF7JRB.js → daemon-cli-Bpc5ZmKC.js} +1 -1
  60. package/dist/{daemon-cli-sM-6bwnt.js → daemon-cli-CUh4NlQ7.js} +8 -8
  61. package/dist/{daemon-cli-CAME8LzX.js → daemon-cli-zo00dvxw.js} +1 -1
  62. package/dist/{daemon-runtime-CS81-2xm.js → daemon-runtime-DnzXuU_x.js} +1 -1
  63. package/dist/{deliver-DXKF_Nu0.js → deliver-CFSxoz2_.js} +1 -1
  64. package/dist/{devices-cli-DeDV4Bqj.js → devices-cli-3ZwsBIF1.js} +1 -1
  65. package/dist/{devices-cli-DC0MbgAK.js → devices-cli-D4MzUzC7.js} +1 -1
  66. package/dist/{diagnostics-23-FTnVz.js → diagnostics-D3Hu1kBI.js} +1 -1
  67. package/dist/{diagnostics-Ef27CLfy.js → diagnostics-D7bn87xJ.js} +1 -1
  68. package/dist/{directory-cli-SE46S0CB.js → directory-cli-CcPugz8R.js} +2 -2
  69. package/dist/{directory-cli-BIjxWy1d.js → directory-cli-DXwiDLrf.js} +2 -2
  70. package/dist/{dns-cli-74dMXPOa.js → dns-cli-DKZyzBHW.js} +2 -2
  71. package/dist/{dns-cli-B5TFMuUd.js → dns-cli-Dj9PvwCt.js} +2 -2
  72. package/dist/{doctor-completion-D0-JkRk1.js → doctor-completion-CDdw31wQ.js} +2 -2
  73. package/dist/{doctor-completion-DcqQQvqC.js → doctor-completion-lw65Gm69.js} +2 -2
  74. package/dist/{doctor-config-flow-VkeqkE_0.js → doctor-config-flow-BeaKHczK.js} +4 -4
  75. package/dist/{doctor-config-flow-CCgRJLm0.js → doctor-config-flow-H0rj1G82.js} +4 -4
  76. package/dist/{enable-55n-WSsE.js → enable-C2kZT1wf.js} +1 -1
  77. package/dist/{enable-CknE1f0w.js → enable-CBGVOpes.js} +1 -1
  78. package/dist/entry.js +1 -1
  79. package/dist/{exec-approvals-cli-Dd_vBz5L.js → exec-approvals-cli-Bnd2QORy.js} +5 -5
  80. package/dist/{exec-approvals-cli-oCsC4ad1.js → exec-approvals-cli-y-rX8HdN.js} +5 -5
  81. package/dist/extensionAPI.js +6 -6
  82. package/dist/{gateway-cli-Cfs77-mk.js → gateway-cli-D_RCXTvo.js} +389 -69
  83. package/dist/{gateway-cli-bSwcceJd.js → gateway-cli-yd0wJM_1.js} +388 -68
  84. package/dist/{health-fyXf4lEO.js → health-CuD8XoQy.js} +2 -2
  85. package/dist/{health-6g5hi28u.js → health-HfXeNmAj.js} +2 -2
  86. package/dist/{hooks-cli-CZfvOlY1.js → hooks-cli-B9pYOLSo.js} +10 -10
  87. package/dist/{hooks-cli-D59S5DQ3.js → hooks-cli-CfXcytes.js} +8 -8
  88. package/dist/{hooks-status-C9KqWt8h.js → hooks-status-Cp7ejPFf.js} +1 -1
  89. package/dist/{hooks-status-QGgVvmRr.js → hooks-status-b7LxQMuo.js} +1 -1
  90. package/dist/{image-DChVqMFC.js → image-DafeVSso.js} +1 -1
  91. package/dist/index.js +10 -10
  92. package/dist/{inspect-CKqi1YnO.js → inspect-CRH0n6VO.js} +1 -1
  93. package/dist/{inspect-cZ9bY884.js → inspect-De36nczp.js} +1 -1
  94. package/dist/{install-safe-path-Cx0jIhFX.js → install-safe-path-BUZoxvjo.js} +1 -1
  95. package/dist/{install-safe-path-BK8js28D.js → install-safe-path-C__62m3G.js} +1 -1
  96. package/dist/{installs-Bb-tLJtw.js → installs-BQomWNkv.js} +3 -3
  97. package/dist/{installs-D96MHCfz.js → installs-DOzoX6Lj.js} +3 -3
  98. package/dist/{lifecycle-core-BsxpzMSa.js → lifecycle-core-D-idKcJT.js} +4 -4
  99. package/dist/{lifecycle-core-Bt5BqaIY.js → lifecycle-core-DtN4Wg9p.js} +4 -4
  100. package/dist/{logs-cli-3J59cVdu.js → logs-cli-Co-dRkBt.js} +1 -1
  101. package/dist/{logs-cli-v35EJjb3.js → logs-cli-DxRr-okE.js} +1 -1
  102. package/dist/{memory-cli-DWydhV-V.js → memory-cli-BuqY12GX.js} +1 -1
  103. package/dist/{memory-cli-D1uj5PFF.js → memory-cli-oTchxxCo.js} +1 -1
  104. package/dist/{model-catalog-yzrJiO3y.js → model-catalog-CbowpOxX.js} +1 -1
  105. package/dist/{model-picker-ei3br5zp.js → model-picker-C8wvNgLt.js} +2 -2
  106. package/dist/{model-picker-nxntGU8X.js → model-picker-CfpSzPcs.js} +3 -3
  107. package/dist/{models-cli-CY__bDc5.js → models-cli-C9laZsKz.js} +14 -14
  108. package/dist/{models-cli-Bk9n0tJe.js → models-cli-rLp2PtTV.js} +10 -10
  109. package/dist/{models-g128XKsn.js → models-iwnnK-j-.js} +9 -9
  110. package/dist/{node-cli-Bj8ON11k.js → node-cli-Dp7mtofP.js} +10 -10
  111. package/dist/{node-cli-CJjrrKq9.js → node-cli-iV-j-wYM.js} +9 -9
  112. package/dist/{node-service-CPLJsCSU.js → node-service-BuwCiN6g.js} +1 -1
  113. package/dist/{node-service-D1-7_1cb.js → node-service-DMNdtnuy.js} +1 -1
  114. package/dist/{nodes-cli-Ci-Bcwf8.js → nodes-cli-CzfzXfgv.js} +2 -2
  115. package/dist/{nodes-cli-BxRAQoe9.js → nodes-cli-DYLMQpcr.js} +2 -2
  116. package/dist/{npm-registry-spec-KNhAHcQS.js → npm-registry-spec-GhKQD8SI.js} +1 -1
  117. package/dist/{npm-registry-spec-DkaZNHAW.js → npm-registry-spec-PuS2I1Em.js} +1 -1
  118. package/dist/{onboard-DmTh7SXf.js → onboard-Bd7A_X5U.js} +14 -14
  119. package/dist/{onboard-DMifN-i1.js → onboard-DtWmcQlQ.js} +15 -15
  120. package/dist/{onboard-channels-DvKfcKcM.js → onboard-channels-CUrbd3Wb.js} +5 -5
  121. package/dist/{onboard-channels-OJRGzltw.js → onboard-channels-jQ3eUVs5.js} +6 -6
  122. package/dist/{onboard-custom-CVkHP2LI.js → onboard-custom-DGPRdl88.js} +2 -2
  123. package/dist/{onboard-custom-EVjMXHxg.js → onboard-custom-zu25Ce3O.js} +2 -2
  124. package/dist/{onboard-hooks-CbvnumRC.js → onboard-hooks-BGNKszKA.js} +2 -2
  125. package/dist/{onboard-hooks-Bf71KQxe.js → onboard-hooks-Bfe1d0y4.js} +2 -2
  126. package/dist/{onboard-remote-B1ALuxz1.js → onboard-remote-Crh1ykbv.js} +2 -2
  127. package/dist/{onboard-remote-DvD400Xk.js → onboard-remote-DNAePOvY.js} +2 -2
  128. package/dist/{onboard-skills-DADB1X8v.js → onboard-skills-JPKMqrus.js} +1 -1
  129. package/dist/{onboard-skills-B-SjYRhY.js → onboard-skills-Xk7z94Bl.js} +1 -1
  130. package/dist/{onboarding-CQzBfGpz.js → onboarding-D5BRyKY0.js} +14 -14
  131. package/dist/{onboarding-De7bUYn0.js → onboarding-JoS3gVBZ.js} +14 -14
  132. package/dist/{onboarding.finalize-CfRbKgYD.js → onboarding.finalize-Bbi4NFVI.js} +16 -16
  133. package/dist/{onboarding.finalize-FFs7GkQQ.js → onboarding.finalize-DwWgfZqG.js} +17 -17
  134. package/dist/{onboarding.gateway-config-BtNlVRR8.js → onboarding.gateway-config-C57J8mMa.js} +1 -1
  135. package/dist/{onboarding.gateway-config-DcPeHQOU.js → onboarding.gateway-config-DnCISZSx.js} +1 -1
  136. package/dist/{openai-model-default-nCXNgugA.js → openai-model-default-Cr6-L10w.js} +1 -1
  137. package/dist/{openai-model-default-DPkXfXr6.js → openai-model-default-JoN5c4An.js} +1 -1
  138. package/dist/{pairing-cli-BLo9Ainb.js → pairing-cli-Bcec_R3Q.js} +1 -1
  139. package/dist/{pairing-cli-_0WmOf9q.js → pairing-cli-PoxPVvhd.js} +1 -1
  140. package/dist/{pi-auth-json-CSe5xRCM.js → pi-auth-json-DoNJ0jhK.js} +1 -1
  141. package/dist/{pi-embedded-DPsT4Vb4.js → pi-embedded-Ig1YOX5t.js} +16 -16
  142. package/dist/{pi-embedded-helpers--8pQ_5Ix.js → pi-embedded-helpers-C-3FQnQz.js} +4 -4
  143. package/dist/{plugin-auto-enable-Czk5vqi1.js → plugin-auto-enable-CgzsK3UF.js} +1 -1
  144. package/dist/{plugin-auto-enable-bi7o87Rj.js → plugin-auto-enable-Co1CxSEm.js} +2 -2
  145. package/dist/{plugin-registry-Bq3rtiCL.js → plugin-registry-6pWyMqfg.js} +1 -1
  146. package/dist/{plugin-registry-D6-nPnzv.js → plugin-registry-CAfPxKab.js} +1 -1
  147. package/dist/plugin-sdk/{accounts-vV5Gfd26.js → accounts-CRs7kbLB.js} +1 -1
  148. package/dist/plugin-sdk/{accounts-iN-dbgw4.js → accounts-b1Cok6r_.js} +3 -3
  149. package/dist/plugin-sdk/{accounts-LxMkgia0.js → accounts-uAqOguyH.js} +1 -1
  150. package/dist/plugin-sdk/{active-listener-Bh0LXjEI.js → active-listener-BdVTYHTN.js} +1 -1
  151. package/dist/plugin-sdk/{agent-scope-BS_vck4W.js → agent-scope-OWMdRegz.js} +2 -2
  152. package/dist/plugin-sdk/{api-key-rotation-LkecAWT_.js → api-key-rotation-DedcgBOR.js} +1 -1
  153. package/dist/plugin-sdk/{audio-preflight-Bs1SkEb1.js → audio-preflight-EYVIo5wC.js} +25 -25
  154. package/dist/plugin-sdk/{bindings-CTCkMENc.js → bindings-LROfNV1W.js} +2 -2
  155. package/dist/plugin-sdk/{channel-activity-PV3vhwo2.js → channel-activity-DHI8R5Xg.js} +1 -1
  156. package/dist/plugin-sdk/{channel-web-C1Hsjdgf.js → channel-web-CGp1_ZH4.js} +22 -22
  157. package/dist/plugin-sdk/{chrome-cWvSiZw3.js → chrome-BS8LYp6z.js} +3 -3
  158. package/dist/plugin-sdk/{chunk-CyOBR4uk.js → chunk-C9J4kyVw.js} +1 -1
  159. package/dist/plugin-sdk/{command-format-C5kdEGEu.js → command-format-BTciq6Gg.js} +1 -1
  160. package/dist/plugin-sdk/{commands-registry-Bvksrm0n.js → commands-registry-pHxVP_Zd.js} +3 -3
  161. package/dist/plugin-sdk/{common-CJo4CK5_.js → common-CCPGi5xr.js} +2 -2
  162. package/dist/plugin-sdk/{config-B8Nc1zrG.js → config-DemNgb7Z.js} +9 -9
  163. package/dist/plugin-sdk/{deliver-Dut_1pt2.js → deliver-BCvqh6o3.js} +10 -10
  164. package/dist/plugin-sdk/{diagnostic-DFXnVf2I.js → diagnostic-oBxO5N68.js} +1 -1
  165. package/dist/plugin-sdk/{fs-safe-CdpuSWry.js → fs-safe-CGcLaY9D.js} +1 -1
  166. package/dist/plugin-sdk/{image-B3tSrFDE.js → image-BHSeZfna.js} +4 -4
  167. package/dist/plugin-sdk/index.js +52 -52
  168. package/dist/plugin-sdk/{ir-05vuco_v.js → ir-JSGKj1e6.js} +4 -4
  169. package/dist/plugin-sdk/{local-roots-DlmKIABh.js → local-roots-jpNoUngc.js} +3 -3
  170. package/dist/plugin-sdk/{login-_t6d0RBi.js → login-Ckh0Yz4j.js} +7 -7
  171. package/dist/plugin-sdk/{login-qr-Czq6nBnB.js → login-qr-DRY27T-V.js} +9 -9
  172. package/dist/plugin-sdk/{manager-DEOMAxd_.js → manager-B9XMF8DU.js} +8 -8
  173. package/dist/plugin-sdk/{manifest-registry-BgkX6ON4.js → manifest-registry-Lzj-fZNH.js} +1 -1
  174. package/dist/plugin-sdk/{markdown-tables-FF81O4MP.js → markdown-tables-CgnPuqk-.js} +1 -1
  175. package/dist/plugin-sdk/{message-channel-DxNExIdv.js → message-channel-C3OrO29D.js} +1 -1
  176. package/dist/plugin-sdk/{model-selection-Bj-E4zbc.js → model-selection-BQiSfqzh.js} +4 -4
  177. package/dist/plugin-sdk/{normalize-DWmWs1Oq.js → normalize-raRH8X3d.js} +4 -4
  178. package/dist/plugin-sdk/{outbound-D2-05wUl.js → outbound-CtRrsxZT.js} +7 -7
  179. package/dist/plugin-sdk/{outbound-attachment-DmbQx_Vk.js → outbound-attachment-BD9q-xgD.js} +2 -2
  180. package/dist/plugin-sdk/{pi-auth-json-D-qvsSpX.js → pi-auth-json-BlIDGSl5.js} +5 -5
  181. package/dist/plugin-sdk/{pi-embedded-helpers-C1u6XyK5.js → pi-embedded-helpers-0qu1zxwF.js} +17 -17
  182. package/dist/plugin-sdk/{plugins-0PB0IWJL.js → plugins-BJciHbYr.js} +3 -3
  183. package/dist/plugin-sdk/{pw-ai-BIyeKPJF.js → pw-ai-DkUDisr8.js} +8 -8
  184. package/dist/plugin-sdk/{qmd-manager-DeQxerRp.js → qmd-manager-kPD4Wyie.js} +4 -4
  185. package/dist/plugin-sdk/{registry-BECEtj9n.js → registry-C8pj8ctW.js} +2 -2
  186. package/dist/plugin-sdk/{replies-DnGHvUeV.js → replies-0BFlZXJ5.js} +3 -3
  187. package/dist/plugin-sdk/{reply-Due6Dl-a.js → reply-BUzGHOJ7.js} +78 -78
  188. package/dist/plugin-sdk/{reply-prefix-UgReuQSG.js → reply-prefix-YUOHz1rF.js} +1 -1
  189. package/dist/plugin-sdk/{resolve-route-BaFHJbum.js → resolve-route-DudlMKs4.js} +3 -3
  190. package/dist/plugin-sdk/{retry-Bkj1k1me.js → retry-B8Oq5mgi.js} +1 -1
  191. package/dist/plugin-sdk/{runner-Bq1wBell.js → runner-BkD3LLSl.js} +9 -9
  192. package/dist/plugin-sdk/{send-MrY4gJ_w.js → send-9i1KJYhJ.js} +7 -7
  193. package/dist/plugin-sdk/{send-D4HKCCvV.js → send-A_uouj00.js} +7 -7
  194. package/dist/plugin-sdk/{send-By-dm-fT.js → send-CpfmIaxP.js} +11 -11
  195. package/dist/plugin-sdk/{send-NUKqMNZh.js → send-DREpPboJ.js} +6 -6
  196. package/dist/plugin-sdk/{send-M99nJHP9.js → send-Di1hHvf2.js} +11 -11
  197. package/dist/plugin-sdk/{session-DGLRioDC.js → session-CpS-Mhnp.js} +4 -4
  198. package/dist/plugin-sdk/{skill-commands-Cw-IRPUz.js → skill-commands-CTB7AZXn.js} +5 -5
  199. package/dist/plugin-sdk/{skills-D0-IpJne.js → skills-BCD1hFBZ.js} +7 -7
  200. package/dist/plugin-sdk/{sqlite-DtIiUWZr.js → sqlite-Yn48izJ_.js} +1 -1
  201. package/dist/plugin-sdk/{store-BcTI1iBS.js → store-BJRhX9Bi.js} +2 -2
  202. package/dist/plugin-sdk/{subsystem-Ck27y_6W.js → subsystem-BfLMZ8kW.js} +1 -1
  203. package/dist/plugin-sdk/{tables-B6ajREI6.js → tables-D5aPNTF6.js} +1 -1
  204. package/dist/plugin-sdk/{thinking-D81fexfE.js → thinking-BACprzA0.js} +5 -5
  205. package/dist/plugin-sdk/{tokens-B6GWdF_0.js → tokens-D1LxPszt.js} +1 -1
  206. package/dist/plugin-sdk/{tool-loop-detection-CbPwu1_R.js → tool-loop-detection-CYSptBsl.js} +2 -2
  207. package/dist/plugin-sdk/web-DNugKZLo.js +65 -0
  208. package/dist/plugin-sdk/{whatsapp-actions-B8IYO5sc.js → whatsapp-actions-CGuheX42.js} +20 -20
  209. package/dist/{plugins-cli-BBPth1Z6.js → plugins-cli-B1yYys0A.js} +11 -11
  210. package/dist/{plugins-cli-C9JJoC7q.js → plugins-cli-Dl95iV2J.js} +9 -9
  211. package/dist/{program-BEFngAg_.js → program-a6gIDhmg.js} +12 -12
  212. package/dist/{program-context-Bd7FDrI6.js → program-context-a5xRVp1E.js} +47 -39
  213. package/dist/{prompt-select-styled-rdKrlwqC.js → prompt-select-styled-BEAD7Qf_.js} +20 -20
  214. package/dist/{prompt-select-styled-0lIQRloq.js → prompt-select-styled-pDE5STe1.js} +21 -21
  215. package/dist/{provider-auth-helpers-1tpv3AhX.js → provider-auth-helpers-C2efwIJ1.js} +4 -4
  216. package/dist/{provider-auth-helpers-C3rs3jFv.js → provider-auth-helpers-Cgi-JpAw.js} +4 -4
  217. package/dist/{push-apns-ByshEodu.js → push-apns-CBVQ1O88.js} +1 -1
  218. package/dist/{push-apns-CdHUueH2.js → push-apns-DgHzRUEl.js} +1 -1
  219. package/dist/{pw-ai-D6PxL0UG.js → pw-ai-CNp2t_EO.js} +1 -1
  220. package/dist/{register.agent-KAixKF-e.js → register.agent-BzIdik-2.js} +22 -22
  221. package/dist/{register.agent-DY1rT-kZ.js → register.agent-C_hXidrG.js} +24 -24
  222. package/dist/{register.configure-CvKA3Sss.js → register.configure-DQeftoKx.js} +34 -34
  223. package/dist/{register.configure-DH6m9Dbt.js → register.configure-g10-MK8e.js} +34 -34
  224. package/dist/{register.init-C7vQ5ty0.js → register.init-CUPE0cHA.js} +4 -4
  225. package/dist/{register.init-p2x-x-f8.js → register.init-Dij0ZrC0.js} +4 -4
  226. package/dist/{register.maintenance-vVCRwkP4.js → register.maintenance-C0OozXb_.js} +26 -26
  227. package/dist/{register.maintenance-BgHX_v3B.js → register.maintenance-CkXb4wzI.js} +28 -28
  228. package/dist/{register.message-gR7FXB8b.js → register.message-C0zBUZj1.js} +5 -5
  229. package/dist/{register.message-i1zkq7RF.js → register.message-De4xgZGu.js} +6 -6
  230. package/dist/{register.onboard-ZV_tfZG_.js → register.onboard-B612Ekbb.js} +20 -20
  231. package/dist/{register.onboard-DfrgIeaZ.js → register.onboard-BFR0fFZX.js} +21 -21
  232. package/dist/{register.setup-Bsl2gf-B.js → register.setup-Caf3i42W.js} +20 -20
  233. package/dist/{register.setup-D-hAPrfW.js → register.setup-CtDlzU4V.js} +21 -21
  234. package/dist/{register.status-health-sessions-7cVPFmZG.js → register.status-health-sessions-B4fHdwpJ.js} +18 -18
  235. package/dist/{register.status-health-sessions-D5r2mHKj.js → register.status-health-sessions-B_yvC_IP.js} +17 -17
  236. package/dist/{register.subclis-abFJJY6D.js → register.subclis-7bpaXBdE.js} +37 -29
  237. package/dist/{reply-CwuYaPUY.js → reply-BNfv4Ttn.js} +9 -9
  238. package/dist/{run-main-DYoPNoW5.js → run-main-Y3Uf0qp5.js} +24 -24
  239. package/dist/{runner-CRUcM4a1.js → runner-BN1T_Ne4.js} +1 -1
  240. package/dist/{runner-CXxgpUTT.js → runner-DZGwjCQ8.js} +1 -1
  241. package/dist/{runners-BrJPcqyJ.js → runners-C2-1DcXS.js} +7 -7
  242. package/dist/{runners-BAXojh38.js → runners-GZYUkx-2.js} +7 -7
  243. package/dist/{security-cli-D4GRgOyQ.js → security-cli-BBZ808uq.js} +3 -3
  244. package/dist/{security-cli-DWY-vrKB.js → security-cli-Ci9uePi2.js} +3 -3
  245. package/dist/{server-node-events-7Xu3f7tS.js → server-node-events-BBifAwDM.js} +5 -5
  246. package/dist/{server-node-events-GvqKSJEV.js → server-node-events-DWWxWJHk.js} +3 -3
  247. package/dist/{service-Bci1KDFO.js → service-7TtUcMJq.js} +1 -1
  248. package/dist/{service-0NbohZ8s.js → service-Cu7ieLvZ.js} +1 -1
  249. package/dist/{session-dirs-HNLtHJ3O.js → session-dirs-CCdhZT0k.js} +3 -3
  250. package/dist/{session-dirs-BMCU5I9u.js → session-dirs-CIPNs4EK.js} +3 -3
  251. package/dist/{setup-qSIfHSqC.js → setup-DwAfJSCF.js} +1 -1
  252. package/dist/{setup-Dldkh1a8.js → setup-RQ3Uj-Tt.js} +1 -1
  253. package/dist/{shared-D8AUGe9Z.js → shared-CrPSzpAK.js} +1 -1
  254. package/dist/{shared-DNTO_mJp.js → shared-CzoHL8EG.js} +1 -1
  255. package/dist/{skills-cli-CM3wAhcI.js → skills-cli-BH0eERa-.js} +1 -1
  256. package/dist/{skills-cli-r1KS1oIQ.js → skills-cli-DiPfBmlI.js} +1 -1
  257. package/dist/{skills-install-D9QMhbxP.js → skills-install-Czf3NCmL.js} +3 -3
  258. package/dist/{skills-install-DlMTcQDE.js → skills-install-DZ5aRsyP.js} +3 -3
  259. package/dist/{status-_qW_2na1.js → status--mrN_W_U.js} +14 -14
  260. package/dist/{status-V-dQaLmz.js → status-Br2tlhc-.js} +1 -1
  261. package/dist/{status-BP3UtuGr.js → status-CwTBZYF8.js} +14 -14
  262. package/dist/{status-C6MlKGQ4.js → status-pSqbCX9M.js} +1 -1
  263. package/dist/{status.update-BUCokEjk.js → status.update-DUXJAggs.js} +1 -1
  264. package/dist/{status.update-P7aU2obf.js → status.update-s8H29Man.js} +1 -1
  265. package/dist/{subagent-registry-D5OOZhWd.js → subagent-registry-zIjho4Sx.js} +7 -7
  266. package/dist/{systemd-hints-BgcSCvUs.js → systemd-hints-D6arXULU.js} +4 -4
  267. package/dist/{systemd-hints-k45i-vVl.js → systemd-hints-DKcj1qba.js} +4 -4
  268. package/dist/{systemd-linger-BZTSu7IW.js → systemd-linger-CS2529_b.js} +2 -2
  269. package/dist/{systemd-linger-BGSDHb2w.js → systemd-linger-Doc2XbHm.js} +2 -2
  270. package/dist/{tui-cli-D7h8fAwG.js → tui-cli-BxmbE0rC.js} +1 -1
  271. package/dist/{tui-cli-CPhjIczA.js → tui-cli-CQXfzM3c.js} +1 -1
  272. package/dist/{update-CbOSx9mE.js → update-BQD52CHs.js} +1 -1
  273. package/dist/{update-blirS9pH.js → update-DCT94pb8.js} +1 -1
  274. package/dist/{update-check-BJw7yNjU.js → update-check-BrrYgTQO.js} +1 -1
  275. package/dist/{update-cli-t7J2ZeJa.js → update-cli-D-f0EC6V.js} +37 -37
  276. package/dist/{update-cli-BIbwcmoL.js → update-cli-DQ-gzfuL.js} +35 -35
  277. package/dist/{web-QGqe0Uj4.js → web-ComVBhjb.js} +6 -6
  278. package/dist/{web-By-kRvFi.js → web-CuEg5tFB.js} +2 -2
  279. package/dist/{web-C9vY5D5V.js → web-Uu6oWOPn.js} +5 -5
  280. package/dist/{webhooks-cli-BvrLfKKF.js → webhooks-cli-BLnOPXwx.js} +1 -1
  281. package/dist/{webhooks-cli-D5mvAQYZ.js → webhooks-cli-DdpgWHN2.js} +1 -1
  282. package/package.json +1 -1
  283. package/dist/control-ui/_app/immutable/assets/0.z0sOcqs9.css +0 -1
  284. package/dist/control-ui/_app/immutable/entry/app.BJP-sOIH.js +0 -2
  285. package/dist/control-ui/_app/immutable/entry/start.PIf-cCdk.js +0 -1
  286. package/dist/plugin-sdk/web-BfmMxgKj.js +0 -65
  287. /package/dist/{agents.config-BPyTmpPK.js → agents.config-DHoLdlhC.js} +0 -0
  288. /package/dist/{agents.config-D731KhB0.js → agents.config-sDVfdzxD.js} +0 -0
  289. /package/dist/{allow-from-BzKkMBk8.js → allow-from-BWMFfmlZ.js} +0 -0
  290. /package/dist/{allow-from-Cnsv6ADB.js → allow-from-Cm2uzFk5.js} +0 -0
  291. /package/dist/{audio-preflight-CZ94CIQw.js → audio-preflight-qssIjQ-F.js} +0 -0
  292. /package/dist/{auth-choice-legacy-BKXTgyr4.js → auth-choice-legacy-DxCamFcQ.js} +0 -0
  293. /package/dist/{auth-choice-legacy-hjIR80f8.js → auth-choice-legacy-E4Y1ux1Z.js} +0 -0
  294. /package/dist/{auth-token-Ci5rpCz5.js → auth-token-DATumkKN.js} +0 -0
  295. /package/dist/{auth-token-DpULas_n.js → auth-token-NZQN5y-U.js} +0 -0
  296. /package/dist/{catalog-DAXVp4Hp.js → catalog-2EmOju0o.js} +0 -0
  297. /package/dist/{channels-status-issues-DanmEwDB.js → channels-status-issues-C4ciBh-M.js} +0 -0
  298. /package/dist/{channels-status-issues-COukP8Y6.js → channels-status-issues-xbZicfvF.js} +0 -0
  299. /package/dist/{clipboard-C0XDE_OY.js → clipboard-DHic8nRu.js} +0 -0
  300. /package/dist/{clipboard-B7hFDaBm.js → clipboard-DuDW3vYo.js} +0 -0
  301. /package/dist/{config-validation-CQ0H2AMy.js → config-validation-B1DoZdes.js} +0 -0
  302. /package/dist/{config-validation-CVifNndy.js → config-validation-lwkaqwYa.js} +0 -0
  303. /package/dist/control-ui/_app/immutable/nodes/{11.Sd6L6Nq2.js → 12.Sd6L6Nq2.js} +0 -0
  304. /package/dist/control-ui/_app/immutable/nodes/{12.tVVXkjFh.js → 13.tVVXkjFh.js} +0 -0
  305. /package/dist/control-ui/_app/immutable/nodes/{13.D93_LX58.js → 14.D93_LX58.js} +0 -0
  306. /package/dist/control-ui/_app/immutable/nodes/{15.CIr4ejir.js → 16.CIr4ejir.js} +0 -0
  307. /package/dist/control-ui/_app/immutable/nodes/{16.QX2ielYQ.js → 17.QX2ielYQ.js} +0 -0
  308. /package/dist/control-ui/_app/immutable/nodes/{17.6qOW3iFE.js → 18.6qOW3iFE.js} +0 -0
  309. /package/dist/control-ui/_app/immutable/nodes/{6.B2G6IFSu.js → 7.B2G6IFSu.js} +0 -0
  310. /package/dist/control-ui/_app/immutable/nodes/{7.C7FQ9bAP.js → 8.C7FQ9bAP.js} +0 -0
  311. /package/dist/{control-ui-assets-DVRic6kO.js → control-ui-assets-DnNkT3mI.js} +0 -0
  312. /package/dist/{control-ui-assets-DDs6rXoP.js → control-ui-assets-LA1g8l2Z.js} +0 -0
  313. /package/dist/{cron-cli-CI-bQlmZ.js → cron-cli-DAFfUWqL.js} +0 -0
  314. /package/dist/{daemon-runtime-D4iQgg-u.js → daemon-runtime-diKhAkzH.js} +0 -0
  315. /package/dist/{dm-policy-shared-CVbsDo_m.js → dm-policy-shared-CwzTKPWR.js} +0 -0
  316. /package/dist/{dm-policy-shared-ClEAJ4JJ.js → dm-policy-shared-DfAxaWbA.js} +0 -0
  317. /package/dist/{docs-cli-uSamdGao.js → docs-cli-CmcfAiHF.js} +0 -0
  318. /package/dist/{docs-cli-BZGTgGrB.js → docs-cli-WYkzyw8T.js} +0 -0
  319. /package/dist/{format-C7-5KbO2.js → format-CTmea3zf.js} +0 -0
  320. /package/dist/{format-DBqU4ar8.js → format-wIeBvJLR.js} +0 -0
  321. /package/dist/{gmail-setup-utils-ZFcCjPly.js → gmail-setup-utils-C4IVVrZO.js} +0 -0
  322. /package/dist/{gmail-setup-utils-DhpSrQNl.js → gmail-setup-utils-Rfb3FX0J.js} +0 -0
  323. /package/dist/{health-format-if3Q3vD2.js → health-format-S-b7sQsV.js} +0 -0
  324. /package/dist/{health-format-BC_LUyJS.js → health-format-azWJfp5e.js} +0 -0
  325. /package/dist/{helpers-BMqFgDx8.js → helpers-CRF4tyVM.js} +0 -0
  326. /package/dist/{helpers-BIUvY7vn.js → helpers-Npa3_iL5.js} +0 -0
  327. /package/dist/{helpers-Ctj8giHC.js → helpers-xdkmLQDw.js} +0 -0
  328. /package/dist/{ipv4-CVdlCn-2.js → ipv4-C52gDH2M.js} +0 -0
  329. /package/dist/{ipv4-JtDdwuHX.js → ipv4-Dz51vmVq.js} +0 -0
  330. /package/dist/{logging-DhPrhYzz.js → logging-C8-t269D.js} +0 -0
  331. /package/dist/{logging-91m0KJMN.js → logging-D59-dc0L.js} +0 -0
  332. /package/dist/{login-qr-4D0SkvgJ.js → login-qr-Bhy40v7Q.js} +0 -0
  333. /package/dist/{login-qr-Cx7POWvS.js → login-qr-DFnPwMt5.js} +0 -0
  334. /package/dist/{model-param-b-B6FHfgGB.js → model-param-b-CMJBkHox.js} +0 -0
  335. /package/dist/{model-param-b-YCqgSBAn.js → model-param-b-CtugMKF_.js} +0 -0
  336. /package/dist/{note-DLcYjdh7.js → note-COLxJd1A.js} +0 -0
  337. /package/dist/{note-B8g6kl8x.js → note-DewoEWtc.js} +0 -0
  338. /package/dist/{onboard-config-7cR7QGjL.js → onboard-config-BZIxuZ7r.js} +0 -0
  339. /package/dist/{onboard-config-DeF7eIAr.js → onboard-config-C5M0ze8s.js} +0 -0
  340. /package/dist/{parse-log-line-C6yJx969.js → parse-log-line-C2bNfwG3.js} +0 -0
  341. /package/dist/{parse-log-line-C7ynn72M.js → parse-log-line-DvyqdjCI.js} +0 -0
  342. /package/dist/{parse-port-C02PeAGr.js → parse-port-BnVa643B.js} +0 -0
  343. /package/dist/{parse-port-DnJYkByg.js → parse-port-QkaTJ4ru.js} +0 -0
  344. /package/dist/{path-safety-BEgQ9rq6.js → path-safety-BL0luniQ.js} +0 -0
  345. /package/dist/{path-safety-CP6a8uVu.js → path-safety-Yi1WxZLl.js} +0 -0
  346. /package/dist/{plugins-allowlist-CCpr61rO.js → plugins-allowlist-CLU_IjDy.js} +0 -0
  347. /package/dist/{plugins-allowlist-GsmzvLs7.js → plugins-allowlist-Ci7ynogX.js} +0 -0
  348. /package/dist/{ports-BsxTf9Nu.js → ports-DCcAHTa_.js} +0 -0
  349. /package/dist/{program-context-5q-A0wbP.js → program-context-Ds_91dTq.js} +0 -0
  350. /package/dist/{prompts-NOUgk6FH.js → prompts-C27EhvcG.js} +0 -0
  351. /package/dist/{prompts-m1IJwIAx.js → prompts-DbHSz44H.js} +0 -0
  352. /package/dist/{qmd-manager-C06_28MM.js → qmd-manager-3oLU7g8E.js} +0 -0
  353. /package/dist/{qmd-manager-BvV80INM.js → qmd-manager-C2OgnXnr.js} +0 -0
  354. /package/dist/{qr-cli-2Fy8laX0.js → qr-cli-C-M7Cr8-.js} +0 -0
  355. /package/dist/{qr-cli-snlmcHOZ.js → qr-cli-CFf4WwCt.js} +0 -0
  356. /package/dist/{rpc-B53Lst62.js → rpc-DhW1No2D.js} +0 -0
  357. /package/dist/{rpc-DOYJ1ToJ.js → rpc-wVn8a1qC.js} +0 -0
  358. /package/dist/{runtime-guard-Cs_ClFhP.js → runtime-guard-DOhPjoet.js} +0 -0
  359. /package/dist/{runtime-status-B3l0ReO9.js → runtime-status-D0P5lDGf.js} +0 -0
  360. /package/dist/{runtime-status-D6c3G7my.js → runtime-status-DKnpLP5Q.js} +0 -0
  361. /package/dist/{sandbox-cli-B2nWROn6.js → sandbox-cli-BZzO-G-E.js} +0 -0
  362. /package/dist/{sandbox-cli-C7vkwMnP.js → sandbox-cli-ner0PQZU.js} +0 -0
  363. /package/dist/{sessions-R_on4Zw8.js → sessions-DKM968hA.js} +0 -0
  364. /package/dist/{shared-BQtDR2KM.js → shared-C6D7PTpH.js} +0 -0
  365. /package/dist/{shared-BDiw3_ym.js → shared-TnZhahku.js} +0 -0
  366. /package/dist/{skill-scanner-Bheo_OM5.js → skill-scanner-CIuC1feQ.js} +0 -0
  367. /package/dist/{skill-scanner-CwX9i_5k.js → skill-scanner-DnsSvRKK.js} +0 -0
  368. /package/dist/{status-BUedPCLb.js → status-B8TZsG0t.js} +0 -0
  369. /package/dist/{status-TtGsgDjP.js → status-DmhrztXn.js} +0 -0
  370. /package/dist/{system-cli-BlP6wWBy.js → system-cli-BnE7tN9V.js} +0 -0
  371. /package/dist/{system-cli-BTjyT8Gj.js → system-cli-CWgd7EB8.js} +0 -0
  372. /package/dist/{system-run-command-BOJwzLhj.js → system-run-command-B8ZYVrSF.js} +0 -0
  373. /package/dist/{system-run-command-PyKttz6b.js → system-run-command-CPFFvnG3.js} +0 -0
  374. /package/dist/{systemd-CzUdukgB.js → systemd-DemAzd31.js} +0 -0
  375. /package/dist/{systemd-0aPKXWO6.js → systemd-DokFcnJ7.js} +0 -0
  376. /package/dist/{table-CnYUWV1p.js → table-CUa4MMQL.js} +0 -0
  377. /package/dist/{table-BUWXR5y-.js → table-D6Gdu916.js} +0 -0
  378. /package/dist/{tui-B3G_mrHY.js → tui-B0NcNHYX.js} +0 -0
  379. /package/dist/{tui-DVdma27Y.js → tui-pbn3ONIE.js} +0 -0
  380. /package/dist/{update-check-xr9SsfM1.js → update-check-DnX0d2ne.js} +0 -0
  381. /package/dist/{vllm-setup-CAy1vRJ-.js → vllm-setup-BNKMIbIo.js} +0 -0
  382. /package/dist/{vllm-setup-POm89Pya.js → vllm-setup-CDcd_nVe.js} +0 -0
  383. /package/dist/{widearea-dns-Ch3SpQBE.js → widearea-dns-5AVs3ht0.js} +0 -0
  384. /package/dist/{widearea-dns-D_JsGJ9_.js → widearea-dns-BiHqFzVe.js} +0 -0
  385. /package/dist/{workspace-BPoYjLyJ.js → workspace-C1EdIb-r.js} +0 -0
  386. /package/dist/{workspace-NVPAcG5w.js → workspace-IziJxxVr.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{d as fe,b as l,f,s as Q,a as j,e as Se,g as ke,t as he}from"../chunks/B2A7gHtL.js";import{p as de,c as ve,r as t,h as a,f as r,g as e,t as V,a6 as Ee,s as K,a as Oe,u as re,b as me,j as oe,d as o,n as ye,i as He,bd as Te}from"../chunks/qR_TM3YX.js";import{s as Be,g as Ue}from"../chunks/Tfaq1PK1.js";import{i as R}from"../chunks/DpBBTLWw.js";import{e as ce,s as ie,b as ge,g as Ce,r as we,i as pe,l as Ae,a as je}from"../chunks/BLtDog0v.js";import{g as De}from"../chunks/C--qzJ6W.js";import{g as Me}from"../chunks/Be_uRYmX.js";import{g as Ie,a as Ve}from"../chunks/CktI4lAE.js";import{i as Ke}from"../chunks/KBP0Pl-D.js";import{b as _e}from"../chunks/nnazh41B.js";import{b as Re}from"../chunks/BYXRTvT-.js";import{p as be,s as Pe,a as qe}from"../chunks/CkAYskLX.js";import{s as Ne,g as Le}from"../chunks/DXhHboeH.js";const We=!1,Ge=!1,Jt=Object.freeze(Object.defineProperty({__proto__:null,prerender:We,ssr:Ge},Symbol.toStringTag,{value:"Module"}));var Ye=f('<p class="text-xs text-text-secondary mt-1"> </p>'),$e=f('<div role="alert"><div class="flex items-start gap-3"><div class="flex-shrink-0 w-5 h-5 mt-0.5"><svg class="w-full h-full" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></div> <div class="flex-1 min-w-0"><p class="text-sm font-medium text-text-primary"> </p> <!></div> <button class="flex-shrink-0 ml-auto p-1 rounded hover:bg-bg-hover text-text-muted hover:text-text-primary transition-colors" aria-label="Close notification"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button></div></div>'),Fe=f('<div class="fixed bottom-4 right-4 z-50 space-y-2 max-w-sm" aria-live="polite" aria-relevant="additions removals"></div>');function Xe(P,O){de(O,!1);const m=Me(),q={success:{color:"bg-accent-green border-accent-green",glow:"glow-green",icon:"M5 13l4 4L19 7"},error:{color:"bg-accent-red border-accent-red",glow:"glow-red",icon:"M6 18L18 6M6 6l12 12"},warning:{color:"bg-accent-amber border-accent-amber",glow:"glow-amber",icon:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"},info:{color:"bg-accent-cyan border-accent-cyan",glow:"glow-cyan",icon:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}};Ke();var y=Fe();ce(y,5,()=>m.list,v=>v.id,(v,n)=>{const p=Ee(()=>q[e(n).type]);var x=$e(),S=a(x),k=a(S),C=a(k),H=a(C);t(C),t(k);var D=r(k,2),T=a(D),Z=a(T,!0);t(T);var N=r(T,2);{var Y=g=>{var s=Ye(),u=a(s,!0);t(s),V(()=>Q(u,e(n).message)),l(g,s)};R(N,g=>{e(n).message&&g(Y)})}t(D);var ee=r(D,2);t(S),t(x),V(()=>{ie(x,1,`gradient-border glass p-4 rounded-lg shadow-lg ${e(p).color??""} ${e(p).glow??""} animate-in slide-in-from-right-full duration-300`,"svelte-cqwvc2"),ge(H,"d",e(p).icon),Q(Z,e(n).title)}),j("click",ee,()=>m.remove(e(n).id)),l(v,x)}),t(y),l(P,y),ve()}fe(["click"]);var Je=f(`<div><label for="gateway-token" class="block text-sm font-medium text-text-secondary mb-2">Access Token <span class="text-text-muted font-normal">(optional)</span></label> <input id="gateway-token" type="password" placeholder="Leave empty to use device pairing" class="w-full px-3 py-2 rounded-lg glass border border-border-default bg-bg-secondary
1
+ import{d as fe,b as l,f,s as Q,a as j,e as Se,g as ke,t as he}from"../chunks/B2A7gHtL.js";import{p as de,c as ve,r as t,h as a,f as r,g as e,t as I,a6 as Ee,s as K,a as He,u as re,b as me,j as oe,d as o,n as ye,i as Oe,bd as Te}from"../chunks/qR_TM3YX.js";import{s as Be,g as Ue}from"../chunks/Tfaq1PK1.js";import{i as R}from"../chunks/DpBBTLWw.js";import{e as ce,s as ie,b as ge,g as Ce,r as we,i as pe,l as Ae,a as je}from"../chunks/BLtDog0v.js";import{g as De}from"../chunks/C--qzJ6W.js";import{g as Me}from"../chunks/Be_uRYmX.js";import{g as Ve,a as Ie}from"../chunks/CktI4lAE.js";import{i as Ke}from"../chunks/KBP0Pl-D.js";import{b as _e}from"../chunks/nnazh41B.js";import{b as Re}from"../chunks/BYXRTvT-.js";import{p as be,s as Pe,a as qe}from"../chunks/CkAYskLX.js";import{s as Ne,g as Le}from"../chunks/PR_wZ9tz.js";const We=!1,Ge=!1,Jt=Object.freeze(Object.defineProperty({__proto__:null,prerender:We,ssr:Ge},Symbol.toStringTag,{value:"Module"}));var Ye=f('<p class="text-xs text-text-secondary mt-1"> </p>'),$e=f('<div role="alert"><div class="flex items-start gap-3"><div class="flex-shrink-0 w-5 h-5 mt-0.5"><svg class="w-full h-full" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></div> <div class="flex-1 min-w-0"><p class="text-sm font-medium text-text-primary"> </p> <!></div> <button class="flex-shrink-0 ml-auto p-1 rounded hover:bg-bg-hover text-text-muted hover:text-text-primary transition-colors" aria-label="Close notification"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button></div></div>'),Fe=f('<div class="fixed bottom-4 right-4 z-50 space-y-2 max-w-sm" aria-live="polite" aria-relevant="additions removals"></div>');function Xe(P,H){de(H,!1);const m=Me(),q={success:{color:"bg-accent-green border-accent-green",glow:"glow-green",icon:"M5 13l4 4L19 7"},error:{color:"bg-accent-red border-accent-red",glow:"glow-red",icon:"M6 18L18 6M6 6l12 12"},warning:{color:"bg-accent-amber border-accent-amber",glow:"glow-amber",icon:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"},info:{color:"bg-accent-cyan border-accent-cyan",glow:"glow-cyan",icon:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}};Ke();var y=Fe();ce(y,5,()=>m.list,v=>v.id,(v,n)=>{const p=Ee(()=>q[e(n).type]);var x=$e(),S=a(x),k=a(S),C=a(k),O=a(C);t(C),t(k);var D=r(k,2),T=a(D),Z=a(T,!0);t(T);var N=r(T,2);{var Y=g=>{var s=Ye(),u=a(s,!0);t(s),I(()=>Q(u,e(n).message)),l(g,s)};R(N,g=>{e(n).message&&g(Y)})}t(D);var ee=r(D,2);t(S),t(x),I(()=>{ie(x,1,`gradient-border glass p-4 rounded-lg shadow-lg ${e(p).color??""} ${e(p).glow??""} animate-in slide-in-from-right-full duration-300`,"svelte-cqwvc2"),ge(O,"d",e(p).icon),Q(Z,e(n).title)}),j("click",ee,()=>m.remove(e(n).id)),l(v,x)}),t(y),l(P,y),ve()}fe(["click"]);var Je=f(`<div><label for="gateway-token" class="block text-sm font-medium text-text-secondary mb-2">Access Token <span class="text-text-muted font-normal">(optional)</span></label> <input id="gateway-token" type="password" placeholder="Leave empty to use device pairing" class="w-full px-3 py-2 rounded-lg glass border border-border-default bg-bg-secondary
2
2
  text-text-primary placeholder-text-muted
3
3
  focus:outline-none focus:border-accent-cyan focus:glow-cyan
4
4
  transition-all duration-200"/> <p class="text-xs text-text-muted mt-1">If provided, connects immediately. If empty, your gateway owner will need to approve this device.</p></div>`),Qe=f('<button type="button" class="text-xs text-text-muted hover:text-accent-cyan transition-colors flex items-center gap-1"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg> I have an access token</button>'),Ze=f('<div class="p-3 rounded-lg border border-accent-amber/30 bg-accent-amber/10" role="status"><div class="flex items-start gap-2"><svg class="w-5 h-5 text-accent-amber flex-shrink-0 animate-pulse mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> <div><p class="text-sm font-medium text-accent-amber">Device Pairing Required</p> <p class="text-xs text-text-muted mt-1">Your gateway owner needs to approve this device. Ask them to run:</p> <code class="block text-xs font-mono text-accent-cyan bg-bg-primary/50 px-2 py-1 rounded mt-1">openclaw devices approve</code></div></div></div>'),et=f('<div class="p-3 rounded-lg border border-accent-red/30 bg-accent-red/10 glow-red" role="alert" aria-live="assertive"><div class="flex items-center gap-2"><svg class="w-4 h-4 text-accent-red flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"></path></svg> <p class="text-sm text-accent-red"> </p></div></div>'),tt=f('<div class="flex items-center justify-center gap-2"><svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg> Connecting...</div>'),at=f(`<div class="fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm" role="dialog" aria-modal="true" aria-labelledby="auth-dialog-title"><div class="w-full max-w-md gradient-border glass p-6 rounded-lg glow-cyan animate-in zoom-in-95 duration-300 svelte-htsx5a"><div class="flex items-center gap-3 mb-6"><div class="w-12 h-12 rounded-lg gradient-bg flex items-center justify-center glow-purple"><svg class="w-6 h-6 text-accent-purple" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg></div> <div><h2 id="auth-dialog-title" class="text-lg font-semibold gradient-text">Connect to OpenClaw</h2> <p class="text-sm text-text-muted">Enter your gateway credentials to get started</p></div></div> <form class="space-y-4"><div><label for="gateway-url" class="block text-sm font-medium text-text-secondary mb-2">Gateway URL</label> <input id="gateway-url" type="url" placeholder="wss://your-openclaw-gateway.com" class="w-full px-3 py-2 rounded-lg glass border border-border-default bg-bg-secondary
@@ -8,14 +8,14 @@ import{d as fe,b as l,f,s as Q,a as j,e as Se,g as ke,t as he}from"../chunks/B2A
8
8
  hover:bg-bg-hover hover:text-text-primary transition-colors">Cancel</button> <button type="submit" class="flex-1 px-4 py-2 rounded-lg gradient-bg gradient-border glow-cyan
9
9
  text-text-primary font-medium hover:brightness-110
10
10
  disabled:opacity-50 disabled:cursor-not-allowed
11
- transition-all duration-200"><!></button></div></form> <div class="mt-4 pt-4 border-t border-border-default"><p class="text-xs text-text-muted text-center"><!> <br/> Need help? Check the <a href="https://docs.openclaw.ai" target="_blank" class="text-accent-cyan hover:underline">OpenClaw documentation</a>.</p></div></div></div>`);function rt(P,O){de(O,!0);const m=Ce(),q=Me();let y=be(O,"show",15,!1);const v=m.getConfiguredWsUrl();let n=K(Oe(v||"")),p=K(""),x=K(!1),S=K(""),k=K(!1),C=K(!1);re(()=>{const g=m.initialized;me(()=>{if(typeof window<"u"&&g){const{url:s,token:u}=m.loadSettings();(!s||!u)&&(!e(n)&&v&&o(n,v,!0),y(!0))}})});async function H(){if(!e(n).trim()){o(S,"Gateway URL is required");return}!e(p).trim()&&e(k),o(S,""),o(x,!0),o(C,!1);try{const g=e(p).trim()||"__device_auth__";m.connect(e(n).trim(),g),await new Promise((s,u)=>{const b=setTimeout(()=>{u(new Error("Connection timeout — check your gateway URL"))},15e3),_=m.onStateChange(M=>{M.status==="connected"?(clearTimeout(b),_(),s()):M.status==="error"&&(clearTimeout(b),_(),M.error?.includes("pairing")?(o(C,!0),u(new Error("Device pairing required — approve this device on your gateway"))):u(new Error(M.error||"Connection failed")))})}),y(!1),o(C,!1),q.success("Connected","Successfully connected to OpenClaw Gateway")}catch(g){o(S,g instanceof Error?g.message:"Connection failed",!0),e(C)||q.error("Connection Failed",e(S))}finally{o(x,!1)}}function D(){y(!1),o(S,"")}let T=K(void 0);re(()=>{if(y()&&e(T)){const g=e(T).querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])');g.length&&g[0].focus()}});function Z(g){if(g.key==="Enter")H();else if(g.key==="Escape")D();else if(g.key==="Tab"&&e(T)){const s=e(T).querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])');if(s.length===0)return;const u=s[0],b=s[s.length-1];g.shiftKey&&document.activeElement===u?(g.preventDefault(),b.focus()):!g.shiftKey&&document.activeElement===b&&(g.preventDefault(),u.focus())}}var N=Se(),Y=oe(N);{var ee=g=>{var s=at(),u=a(s),b=r(a(u),2),_=a(b),M=r(a(_),2);we(M),t(_);var c=r(_,2);{var U=i=>{var A=Je(),F=r(a(A),2);we(F),ye(2),t(A),V(()=>F.disabled=e(x)),_e(F,()=>e(p),X=>o(p,X)),l(i,A)},te=i=>{var A=Qe();j("click",A,()=>o(k,!0)),l(i,A)};R(c,i=>{e(k)?i(U):i(te,!1)})}var h=r(c,2);{var d=i=>{var A=Ze();l(i,A)};R(h,i=>{e(C)&&i(d)})}var w=r(h,2);{var z=i=>{var A=et(),F=a(A),X=r(a(F),2),E=a(X,!0);t(X),t(F),t(A),V(()=>Q(E,e(S))),l(i,A)};R(w,i=>{e(S)&&!e(C)&&i(z)})}var I=r(w,2),ae=a(I),W=r(ae,2),B=a(W);{var L=i=>{var A=tt();l(i,A)},$=i=>{var A=he("Connect");l(i,A)};R(B,i=>{e(x)?i(L):i($,!1)})}t(W),t(I),t(b);var G=r(b,2),se=a(G),ne=a(se);{var ue=i=>{var A=he("Credentials are saved locally and remembered for future sessions.");l(i,A)},le=i=>{var A=he("Your device will be paired with the gateway. The gateway owner will approve your access.");l(i,A)};R(ne,i=>{e(k)?i(ue):i(le,!1)})}ye(5),t(se),t(G),t(u),Re(u,i=>o(T,i),()=>e(T)),t(s),V(i=>{M.disabled=e(x),ae.disabled=e(x),W.disabled=i},[()=>e(x)||!e(n).trim()]),j("click",s,D),j("keydown",s,Z),j("click",u,i=>i.stopPropagation()),ke("submit",b,i=>{i.preventDefault(),H()}),_e(M,()=>e(n),i=>o(n,i)),j("click",ae,D),l(g,s)};R(Y,g=>{y()&&g(ee)})}l(P,N),ve()}fe(["click","keydown"]);const st=()=>{const P=Ne;return{page:{subscribe:P.page.subscribe},navigating:{subscribe:P.navigating.subscribe},updated:P.updated}},ot={subscribe(P){return st().page.subscribe(P)}};var nt=f('<img src="/logo.png" alt="Cortex" class="w-8 h-8 rounded-lg"/> <span class="text-base font-bold gradient-text tracking-wider">CORTEX</span> <button class="ml-auto p-1 rounded hover:bg-bg-hover text-text-muted hover:text-text-primary transition-colors" aria-label="Collapse navigation"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7"></path></svg></button>',1),it=f('<button class="mx-auto p-1 rounded hover:bg-bg-hover text-text-muted hover:text-accent-cyan transition-colors" aria-label="Expand navigation"><img src="/logo.png" alt="Cortex" class="w-7 h-7 rounded-lg"/></button>'),lt=f('<div class="px-3 pt-3 pb-1"><span class="text-[10px] font-semibold uppercase tracking-widest text-text-muted/60"> </span></div>'),ct=f('<div class="max-md:hidden pt-2 pb-1"><div class="mx-auto w-6 h-px bg-border-default"></div></div> <div class="hidden max-md:block px-3 pt-3 pb-1"><span class="text-[10px] font-semibold uppercase tracking-widest text-text-muted/60"> </span></div>',1),dt=f("<span> </span>"),vt=f('<span class="hidden max-md:inline"> </span>'),ut=f('<a><svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg> <!></a>'),pt=f("<!> <!>",1),ft=f('<div class="flex items-center gap-2 px-2 py-1.5 text-xs"><span aria-hidden="true"></span> <span class="text-text-muted truncate"> </span></div>'),xt=f('<div class="max-md:hidden flex justify-center py-1"><span aria-hidden="true"></span> <span class="sr-only"> </span></div> <div class="hidden max-md:flex items-center gap-2 px-2 py-1.5 text-xs"><span aria-hidden="true"></span> <span class="text-text-muted truncate"> </span></div>',1),mt=f('<nav aria-label="Main navigation"><div class="flex items-center gap-2 p-3 border-b border-border-default"><div class="hidden max-md:flex items-center gap-2 w-full"><img src="/logo.png" alt="Cortex" class="w-8 h-8 rounded-lg"/> <span class="text-base font-bold gradient-text tracking-wider">CORTEX</span> <button class="ml-auto p-1.5 rounded-lg hover:bg-bg-hover text-text-muted hover:text-text-primary transition-colors" aria-label="Close navigation"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button></div> <div class="max-md:hidden flex items-center gap-2 w-full"><!></div></div> <div class="flex-1 overflow-y-auto py-2"></div> <div class="p-2 border-t border-border-default"><div class="flex justify-center mb-1"><button class="w-6 h-6 flex items-center justify-center rounded-full text-[11px] font-mono font-semibold text-text-muted hover:text-accent-cyan hover:bg-bg-hover transition-colors" title="Keyboard shortcuts (Ctrl+/)" aria-label="Show keyboard shortcuts">?</button></div></div> <div class="p-2 border-t border-border-default" aria-live="polite" role="status"><!></div></nav>');function gt(P,O){de(O,!0);const m=()=>qe(ot,"$page",q),[q,y]=Pe(),v=Ce(),n=[{label:"Chat",items:[{label:"Chat",href:"/",icon:"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"}]},{label:"Control",items:[{label:"Overview",href:"/overview",icon:"M4 6h16M4 10h16M4 14h16M4 18h16"},{label:"Channels",href:"/channels",icon:"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101"},{label:"Instances",href:"/instances",icon:"M5.636 18.364a9 9 0 010-12.728m12.728 0a9 9 0 010 12.728M12 12h.01"},{label:"Sessions",href:"/sessions",icon:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},{label:"Usage",href:"/usage",icon:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"},{label:"Cron Jobs",href:"/cron",icon:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"},{label:"Approvals",href:"/approvals",icon:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"}]},{label:"Agent",items:[{label:"Agents",href:"/agents",icon:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"},{label:"Skills",href:"/skills",icon:"M13 10V3L4 14h7v7l9-11h-7z"},{label:"Nodes",href:"/nodes",icon:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},{label:"Memory",href:"/memory",icon:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"}]},{label:"Settings",items:[{label:"Connection",href:"/settings",icon:"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101"},{label:"Gateway Config",href:"/config",icon:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"},{label:"Debug",href:"/debug",icon:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},{label:"Logs",href:"/logs",icon:"M4 6h16M4 12h16m-7 6h7"}]}];let p=be(O,"collapsed",15,!1),x=be(O,"mobileOpen",15,!1);function S(h,d){return h==="/"?d==="/":d.startsWith(h)}function k(){x()&&(x(!1),O.onnavigate?.())}var C=mt();let H;var D=a(C),T=a(D),Z=r(a(T),4);t(T);var N=r(T,2),Y=a(N);{var ee=h=>{var d=nt(),w=r(oe(d),4);j("click",w,()=>p(!0)),l(h,d)},g=h=>{var d=it();j("click",d,()=>p(!1)),l(h,d)};R(Y,h=>{p()?h(g,!1):h(ee)})}t(N),t(D);var s=r(D,2);ce(s,21,()=>n,pe,(h,d)=>{var w=pt(),z=oe(w);{var I=B=>{var L=lt(),$=a(L),G=a($,!0);t($),t(L),V(()=>Q(G,e(d).label)),l(B,L)},ae=B=>{var L=ct(),$=r(oe(L),2),G=a($),se=a(G,!0);t(G),t($),V(()=>Q(se,e(d).label)),l(B,L)};R(z,B=>{p()?B(ae,!1):B(I)})}var W=r(z,2);ce(W,17,()=>e(d).items,pe,(B,L)=>{const $=He(()=>S(e(L).href,m().url.pathname));var G=ut();let se;var ne=a(G),ue=a(ne);t(ne);var le=r(ne,2);{var i=F=>{var X=dt(),E=a(X,!0);t(X),V(()=>Q(E,e(L).label)),l(F,X)},A=F=>{var X=vt(),E=a(X,!0);t(X),V(()=>Q(E,e(L).label)),l(F,X)};R(le,F=>{p()?F(A,!1):F(i)})}t(G),V(()=>{ge(G,"href",e(L).href),ge(G,"aria-current",e($)?"page":void 0),se=ie(G,1,`flex items-center gap-2.5 mx-2 my-0.5 px-2.5 py-2 rounded-lg text-sm transition-all duration-200
11
+ transition-all duration-200"><!></button></div></form> <div class="mt-4 pt-4 border-t border-border-default"><p class="text-xs text-text-muted text-center"><!> <br/> Need help? Check the <a href="https://docs.openclaw.ai" target="_blank" class="text-accent-cyan hover:underline">OpenClaw documentation</a>.</p></div></div></div>`);function rt(P,H){de(H,!0);const m=Ce(),q=Me();let y=be(H,"show",15,!1);const v=m.getConfiguredWsUrl();let n=K(He(v||"")),p=K(""),x=K(!1),S=K(""),k=K(!1),C=K(!1);re(()=>{const g=m.initialized;me(()=>{if(typeof window<"u"&&g){const{url:s,token:u}=m.loadSettings();(!s||!u)&&(!e(n)&&v&&o(n,v,!0),y(!0))}})});async function O(){if(!e(n).trim()){o(S,"Gateway URL is required");return}!e(p).trim()&&e(k),o(S,""),o(x,!0),o(C,!1);try{const g=e(p).trim()||"__device_auth__";m.connect(e(n).trim(),g),await new Promise((s,u)=>{const b=setTimeout(()=>{u(new Error("Connection timeout — check your gateway URL"))},15e3),_=m.onStateChange(M=>{M.status==="connected"?(clearTimeout(b),_(),s()):M.status==="error"&&(clearTimeout(b),_(),M.error?.includes("pairing")?(o(C,!0),u(new Error("Device pairing required — approve this device on your gateway"))):u(new Error(M.error||"Connection failed")))})}),y(!1),o(C,!1),q.success("Connected","Successfully connected to OpenClaw Gateway")}catch(g){o(S,g instanceof Error?g.message:"Connection failed",!0),e(C)||q.error("Connection Failed",e(S))}finally{o(x,!1)}}function D(){y(!1),o(S,"")}let T=K(void 0);re(()=>{if(y()&&e(T)){const g=e(T).querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])');g.length&&g[0].focus()}});function Z(g){if(g.key==="Enter")O();else if(g.key==="Escape")D();else if(g.key==="Tab"&&e(T)){const s=e(T).querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])');if(s.length===0)return;const u=s[0],b=s[s.length-1];g.shiftKey&&document.activeElement===u?(g.preventDefault(),b.focus()):!g.shiftKey&&document.activeElement===b&&(g.preventDefault(),u.focus())}}var N=Se(),Y=oe(N);{var ee=g=>{var s=at(),u=a(s),b=r(a(u),2),_=a(b),M=r(a(_),2);we(M),t(_);var c=r(_,2);{var U=i=>{var A=Je(),F=r(a(A),2);we(F),ye(2),t(A),I(()=>F.disabled=e(x)),_e(F,()=>e(p),X=>o(p,X)),l(i,A)},te=i=>{var A=Qe();j("click",A,()=>o(k,!0)),l(i,A)};R(c,i=>{e(k)?i(U):i(te,!1)})}var h=r(c,2);{var d=i=>{var A=Ze();l(i,A)};R(h,i=>{e(C)&&i(d)})}var w=r(h,2);{var z=i=>{var A=et(),F=a(A),X=r(a(F),2),E=a(X,!0);t(X),t(F),t(A),I(()=>Q(E,e(S))),l(i,A)};R(w,i=>{e(S)&&!e(C)&&i(z)})}var V=r(w,2),ae=a(V),W=r(ae,2),B=a(W);{var L=i=>{var A=tt();l(i,A)},$=i=>{var A=he("Connect");l(i,A)};R(B,i=>{e(x)?i(L):i($,!1)})}t(W),t(V),t(b);var G=r(b,2),se=a(G),ne=a(se);{var ue=i=>{var A=he("Credentials are saved locally and remembered for future sessions.");l(i,A)},le=i=>{var A=he("Your device will be paired with the gateway. The gateway owner will approve your access.");l(i,A)};R(ne,i=>{e(k)?i(ue):i(le,!1)})}ye(5),t(se),t(G),t(u),Re(u,i=>o(T,i),()=>e(T)),t(s),I(i=>{M.disabled=e(x),ae.disabled=e(x),W.disabled=i},[()=>e(x)||!e(n).trim()]),j("click",s,D),j("keydown",s,Z),j("click",u,i=>i.stopPropagation()),ke("submit",b,i=>{i.preventDefault(),O()}),_e(M,()=>e(n),i=>o(n,i)),j("click",ae,D),l(g,s)};R(Y,g=>{y()&&g(ee)})}l(P,N),ve()}fe(["click","keydown"]);const st=()=>{const P=Ne;return{page:{subscribe:P.page.subscribe},navigating:{subscribe:P.navigating.subscribe},updated:P.updated}},ot={subscribe(P){return st().page.subscribe(P)}};var nt=f('<img src="/logo.png" alt="Cortex" class="w-8 h-8 rounded-lg"/> <span class="text-base font-bold gradient-text tracking-wider">CORTEX</span> <button class="ml-auto p-1 rounded hover:bg-bg-hover text-text-muted hover:text-text-primary transition-colors" aria-label="Collapse navigation"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7"></path></svg></button>',1),it=f('<button class="mx-auto p-1 rounded hover:bg-bg-hover text-text-muted hover:text-accent-cyan transition-colors" aria-label="Expand navigation"><img src="/logo.png" alt="Cortex" class="w-7 h-7 rounded-lg"/></button>'),lt=f('<div class="px-3 pt-3 pb-1"><span class="text-[10px] font-semibold uppercase tracking-widest text-text-muted/60"> </span></div>'),ct=f('<div class="max-md:hidden pt-2 pb-1"><div class="mx-auto w-6 h-px bg-border-default"></div></div> <div class="hidden max-md:block px-3 pt-3 pb-1"><span class="text-[10px] font-semibold uppercase tracking-widest text-text-muted/60"> </span></div>',1),dt=f("<span> </span>"),vt=f('<span class="hidden max-md:inline"> </span>'),ut=f('<a><svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg> <!></a>'),pt=f("<!> <!>",1),ft=f('<div class="flex items-center gap-2 px-2 py-1.5 text-xs"><span aria-hidden="true"></span> <span class="text-text-muted truncate"> </span></div>'),xt=f('<div class="max-md:hidden flex justify-center py-1"><span aria-hidden="true"></span> <span class="sr-only"> </span></div> <div class="hidden max-md:flex items-center gap-2 px-2 py-1.5 text-xs"><span aria-hidden="true"></span> <span class="text-text-muted truncate"> </span></div>',1),mt=f('<nav aria-label="Main navigation"><div class="flex items-center gap-2 p-3 border-b border-border-default"><div class="hidden max-md:flex items-center gap-2 w-full"><img src="/logo.png" alt="Cortex" class="w-8 h-8 rounded-lg"/> <span class="text-base font-bold gradient-text tracking-wider">CORTEX</span> <button class="ml-auto p-1.5 rounded-lg hover:bg-bg-hover text-text-muted hover:text-text-primary transition-colors" aria-label="Close navigation"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button></div> <div class="max-md:hidden flex items-center gap-2 w-full"><!></div></div> <div class="flex-1 overflow-y-auto py-2"></div> <div class="p-2 border-t border-border-default"><div class="flex justify-center mb-1"><button class="w-6 h-6 flex items-center justify-center rounded-full text-[11px] font-mono font-semibold text-text-muted hover:text-accent-cyan hover:bg-bg-hover transition-colors" title="Keyboard shortcuts (Ctrl+/)" aria-label="Show keyboard shortcuts">?</button></div></div> <div class="p-2 border-t border-border-default" aria-live="polite" role="status"><!></div></nav>');function gt(P,H){de(H,!0);const m=()=>qe(ot,"$page",q),[q,y]=Pe(),v=Ce(),n=[{label:"Chat",items:[{label:"Chat",href:"/",icon:"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"}]},{label:"Control",items:[{label:"Overview",href:"/overview",icon:"M4 6h16M4 10h16M4 14h16M4 18h16"},{label:"Channels",href:"/channels",icon:"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101"},{label:"Instances",href:"/instances",icon:"M5.636 18.364a9 9 0 010-12.728m12.728 0a9 9 0 010 12.728M12 12h.01"},{label:"Sessions",href:"/sessions",icon:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},{label:"Usage",href:"/usage",icon:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"},{label:"Cron Jobs",href:"/cron",icon:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"},{label:"Approvals",href:"/approvals",icon:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"},{label:"Audit Log",href:"/audit",icon:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"}]},{label:"Agent",items:[{label:"Agents",href:"/agents",icon:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"},{label:"Skills",href:"/skills",icon:"M13 10V3L4 14h7v7l9-11h-7z"},{label:"Nodes",href:"/nodes",icon:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},{label:"Memory",href:"/memory",icon:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"}]},{label:"Settings",items:[{label:"Connection",href:"/settings",icon:"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101"},{label:"Gateway Config",href:"/config",icon:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"},{label:"Debug",href:"/debug",icon:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},{label:"Logs",href:"/logs",icon:"M4 6h16M4 12h16m-7 6h7"}]}];let p=be(H,"collapsed",15,!1),x=be(H,"mobileOpen",15,!1);function S(h,d){return h==="/"?d==="/":d.startsWith(h)}function k(){x()&&(x(!1),H.onnavigate?.())}var C=mt();let O;var D=a(C),T=a(D),Z=r(a(T),4);t(T);var N=r(T,2),Y=a(N);{var ee=h=>{var d=nt(),w=r(oe(d),4);j("click",w,()=>p(!0)),l(h,d)},g=h=>{var d=it();j("click",d,()=>p(!1)),l(h,d)};R(Y,h=>{p()?h(g,!1):h(ee)})}t(N),t(D);var s=r(D,2);ce(s,21,()=>n,pe,(h,d)=>{var w=pt(),z=oe(w);{var V=B=>{var L=lt(),$=a(L),G=a($,!0);t($),t(L),I(()=>Q(G,e(d).label)),l(B,L)},ae=B=>{var L=ct(),$=r(oe(L),2),G=a($),se=a(G,!0);t(G),t($),I(()=>Q(se,e(d).label)),l(B,L)};R(z,B=>{p()?B(ae,!1):B(V)})}var W=r(z,2);ce(W,17,()=>e(d).items,pe,(B,L)=>{const $=Oe(()=>S(e(L).href,m().url.pathname));var G=ut();let se;var ne=a(G),ue=a(ne);t(ne);var le=r(ne,2);{var i=F=>{var X=dt(),E=a(X,!0);t(X),I(()=>Q(E,e(L).label)),l(F,X)},A=F=>{var X=vt(),E=a(X,!0);t(X),I(()=>Q(E,e(L).label)),l(F,X)};R(le,F=>{p()?F(A,!1):F(i)})}t(G),I(()=>{ge(G,"href",e(L).href),ge(G,"aria-current",e($)?"page":void 0),se=ie(G,1,`flex items-center gap-2.5 mx-2 my-0.5 px-2.5 py-2 rounded-lg text-sm transition-all duration-200
12
12
  max-md:py-2.5 max-md:text-base
13
- ${e($)?"gradient-bg glow-cyan text-accent-cyan font-medium":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"}`,null,se,{"md:justify-center":p()}),ge(G,"title",p()?e(L).label:void 0),ie(ne,0,`w-4 h-4 max-md:w-5 max-md:h-5 flex-shrink-0 ${e($)?"text-accent-cyan":""}`),ge(ue,"d",e(L).icon)}),j("click",G,k),l(B,G)}),l(h,w)}),t(s);var u=r(s,2),b=a(u),_=a(b);t(b),t(u);var M=r(u,2),c=a(M);{var U=h=>{var d=ft(),w=a(d),z=r(w,2),I=a(z,!0);t(z),t(d),V(()=>{ie(w,1,`w-2 h-2 rounded-full flex-shrink-0
14
- ${v.state.status==="connected"?"bg-accent-green glow-green":v.state.status==="connecting"||v.state.status==="authenticating"?"bg-amber-500 animate-pulse":"bg-red-500"}`),Q(I,v.state.status==="connected"?`v${v.state.serverVersion??"?"}`:v.state.status)}),l(h,d)},te=h=>{var d=xt(),w=oe(d),z=a(w),I=r(z,2),ae=a(I,!0);t(I),t(w);var W=r(w,2),B=a(W),L=r(B,2),$=a(L,!0);t(L),t(W),V(()=>{ie(z,1,`w-2.5 h-2.5 rounded-full
13
+ ${e($)?"gradient-bg glow-cyan text-accent-cyan font-medium":"text-text-secondary hover:text-text-primary hover:bg-bg-hover"}`,null,se,{"md:justify-center":p()}),ge(G,"title",p()?e(L).label:void 0),ie(ne,0,`w-4 h-4 max-md:w-5 max-md:h-5 flex-shrink-0 ${e($)?"text-accent-cyan":""}`),ge(ue,"d",e(L).icon)}),j("click",G,k),l(B,G)}),l(h,w)}),t(s);var u=r(s,2),b=a(u),_=a(b);t(b),t(u);var M=r(u,2),c=a(M);{var U=h=>{var d=ft(),w=a(d),z=r(w,2),V=a(z,!0);t(z),t(d),I(()=>{ie(w,1,`w-2 h-2 rounded-full flex-shrink-0
14
+ ${v.state.status==="connected"?"bg-accent-green glow-green":v.state.status==="connecting"||v.state.status==="authenticating"?"bg-amber-500 animate-pulse":"bg-red-500"}`),Q(V,v.state.status==="connected"?`v${v.state.serverVersion??"?"}`:v.state.status)}),l(h,d)},te=h=>{var d=xt(),w=oe(d),z=a(w),V=r(z,2),ae=a(V,!0);t(V),t(w);var W=r(w,2),B=a(W),L=r(B,2),$=a(L,!0);t(L),t(W),I(()=>{ie(z,1,`w-2.5 h-2.5 rounded-full
15
15
  ${v.state.status==="connected"?"bg-accent-green glow-green":v.state.status==="connecting"||v.state.status==="authenticating"?"bg-amber-500 animate-pulse":"bg-red-500"}`),Q(ae,v.state.status),ie(B,1,`w-2 h-2 rounded-full flex-shrink-0
16
- ${v.state.status==="connected"?"bg-accent-green glow-green":v.state.status==="connecting"||v.state.status==="authenticating"?"bg-amber-500 animate-pulse":"bg-red-500"}`),Q($,v.state.status==="connected"?`v${v.state.serverVersion??"?"}`:v.state.status)}),l(h,d)};R(c,h=>{p()?h(te,!1):h(U)})}t(M),t(C),V(()=>H=ie(C,1,`h-full flex flex-col border-r border-border-default bg-bg-secondary/80 transition-all duration-300
16
+ ${v.state.status==="connected"?"bg-accent-green glow-green":v.state.status==="connecting"||v.state.status==="authenticating"?"bg-amber-500 animate-pulse":"bg-red-500"}`),Q($,v.state.status==="connected"?`v${v.state.serverVersion??"?"}`:v.state.status)}),l(h,d)};R(c,h=>{p()?h(te,!1):h(U)})}t(M),t(C),I(()=>O=ie(C,1,`h-full flex flex-col border-r border-border-default bg-bg-secondary/80 transition-all duration-300
17
17
  max-md:fixed max-md:inset-y-0 max-md:left-0 max-md:z-50 max-md:w-64 max-md:shadow-2xl
18
- max-md:transition-transform max-md:duration-300 max-md:ease-in-out`,null,H,{"w-56":!p(),"w-14":p(),"max-md:translate-x-0":x(),"max-md:-translate-x-full":!x()})),j("click",Z,()=>x(!1)),j("click",_,()=>O.onshortcuthelp?.()),l(P,C),ve(),y()}fe(["click"]);function bt(P,O){de(O,!0);let m=be(O,"showHelp",15,!1);const q=["/","/overview","/channels","/instances","/sessions","/usage","/cron","/approvals","/agents"];function y(){const n=document.activeElement;if(!n)return!1;const p=n.tagName.toLowerCase();return!!(p==="input"||p==="textarea"||p==="select"||n.isContentEditable)}function v(n){const p=n.metaKey||n.ctrlKey;if(n.key==="Escape"){if(m()){m(!1),n.preventDefault();return}document.activeElement&&document.activeElement!==document.body&&document.activeElement.blur?.();return}if(!y()){if(p&&n.key.toLowerCase()==="k"){n.preventDefault(),Le("/").then(()=>{requestAnimationFrame(()=>{document.querySelector("textarea[data-chat-input], input[data-chat-input], textarea, .chat-input textarea")?.focus()})});return}if(p&&n.key==="/"){n.preventDefault(),m(!m());return}if(p&&n.key===","){n.preventDefault(),Le("/settings");return}if(p&&n.key>="1"&&n.key<="9"){const x=parseInt(n.key)-1;x<q.length&&(n.preventDefault(),Le(q[x]));return}}}ke("keydown",Te,v),ve()}var ht=f('<kbd class="inline-flex items-center justify-center min-w-[1.75rem] h-7 px-1.5 rounded-md border border-border-default bg-bg-primary/80 text-[11px] font-mono font-medium text-accent-cyan shadow-[0_1px_0_1px_rgba(30,41,59,0.5)]"> </kbd>'),yt=f('<div class="flex items-center justify-between py-1"><span class="text-sm text-text-secondary"> </span> <div class="flex items-center gap-1"></div></div>'),wt=f('<div class="flex items-center gap-1.5 text-xs"><kbd class="inline-flex items-center justify-center w-5 h-5 rounded border border-border-default bg-bg-primary/80 text-[10px] font-mono text-accent-cyan"></kbd> <span class="text-text-muted truncate"> </span></div>'),_t=f('<div class="fixed inset-0 z-[999] flex items-center justify-center bg-black/60 backdrop-blur-sm"><div class="relative w-full max-w-md mx-4 rounded-xl border border-accent-cyan/30 bg-bg-surface/95 backdrop-blur-md shadow-[0_0_30px_rgba(124,77,255,0.15)] overflow-hidden"><div class="flex items-center justify-between px-5 py-4 border-b border-border-default"><h2 class="text-base font-semibold text-text-primary tracking-wide flex items-center gap-2"><svg class="w-4 h-4 text-accent-cyan" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg> Keyboard Shortcuts</h2> <button class="p-1 rounded-lg text-text-muted hover:text-text-primary hover:bg-bg-hover transition-colors" aria-label="Close"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button></div> <div class="px-5 py-4 space-y-2.5"></div> <div class="px-5 pb-4"><div class="rounded-lg border border-border-default/50 bg-bg-primary/40 p-3"><div class="text-[10px] uppercase tracking-widest text-text-muted/60 mb-2 font-semibold">Page Numbers</div> <div class="grid grid-cols-3 gap-x-3 gap-y-1"></div></div></div></div></div>');function kt(P,O){de(O,!0);let m=be(O,"show",15,!1);const y=typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"⌘":"Ctrl",v=[{keys:[y,"K"],desc:"Focus chat input"},{keys:[y,"/"],desc:"Toggle this help"},{keys:[y,","],desc:"Open Settings"},{keys:[y,"1–9"],desc:"Navigate to page by order"},{keys:["Esc"],desc:"Close modal / deselect"}],n=["Chat","Overview","Channels","Instances","Sessions","Usage","Cron Jobs","Approvals","Agents"];function p(){m(!1)}var x=Se(),S=oe(x);{var k=C=>{var H=_t(),D=a(H),T=a(D),Z=r(a(T),2);t(T);var N=r(T,2);ce(N,21,()=>v,pe,(s,u)=>{var b=yt(),_=a(b),M=a(_,!0);t(_);var c=r(_,2);ce(c,21,()=>e(u).keys,pe,(U,te)=>{var h=ht(),d=a(h,!0);t(h),V(()=>Q(d,e(te))),l(U,h)}),t(c),t(b),V(()=>Q(M,e(u).desc)),l(s,b)}),t(N);var Y=r(N,2),ee=a(Y),g=r(a(ee),2);ce(g,21,()=>n,pe,(s,u,b)=>{var _=wt(),M=a(_);M.textContent=b+1;var c=r(M,2),U=a(c,!0);t(c),t(_),V(()=>Q(U,e(u))),l(s,_)}),t(g),t(ee),t(Y),t(D),t(H),j("keydown",H,s=>{s.key==="Escape"&&m(!1)}),j("click",H,p),j("click",D,s=>s.stopPropagation()),j("click",Z,()=>m(!1)),l(C,H)};R(S,C=>{m()&&C(k)})}l(P,x),ve()}fe(["keydown","click"]);var Ct=f("<div></div>"),Mt=f(`<div class="space-y-4"><div><label for="setup-url" class="block text-sm font-medium text-text-secondary mb-2">Gateway URL</label> <input id="setup-url" type="text" placeholder="openclaw.example.com" class="w-full px-4 py-3 rounded-xl glass border border-border-default bg-bg-secondary
18
+ max-md:transition-transform max-md:duration-300 max-md:ease-in-out`,null,O,{"w-56":!p(),"w-14":p(),"max-md:translate-x-0":x(),"max-md:-translate-x-full":!x()})),j("click",Z,()=>x(!1)),j("click",_,()=>H.onshortcuthelp?.()),l(P,C),ve(),y()}fe(["click"]);function bt(P,H){de(H,!0);let m=be(H,"showHelp",15,!1);const q=["/","/overview","/channels","/instances","/sessions","/usage","/cron","/approvals","/agents"];function y(){const n=document.activeElement;if(!n)return!1;const p=n.tagName.toLowerCase();return!!(p==="input"||p==="textarea"||p==="select"||n.isContentEditable)}function v(n){const p=n.metaKey||n.ctrlKey;if(n.key==="Escape"){if(m()){m(!1),n.preventDefault();return}document.activeElement&&document.activeElement!==document.body&&document.activeElement.blur?.();return}if(!y()){if(p&&n.key.toLowerCase()==="k"){n.preventDefault(),Le("/").then(()=>{requestAnimationFrame(()=>{document.querySelector("textarea[data-chat-input], input[data-chat-input], textarea, .chat-input textarea")?.focus()})});return}if(p&&n.key==="/"){n.preventDefault(),m(!m());return}if(p&&n.key===","){n.preventDefault(),Le("/settings");return}if(p&&n.key>="1"&&n.key<="9"){const x=parseInt(n.key)-1;x<q.length&&(n.preventDefault(),Le(q[x]));return}}}ke("keydown",Te,v),ve()}var ht=f('<kbd class="inline-flex items-center justify-center min-w-[1.75rem] h-7 px-1.5 rounded-md border border-border-default bg-bg-primary/80 text-[11px] font-mono font-medium text-accent-cyan shadow-[0_1px_0_1px_rgba(30,41,59,0.5)]"> </kbd>'),yt=f('<div class="flex items-center justify-between py-1"><span class="text-sm text-text-secondary"> </span> <div class="flex items-center gap-1"></div></div>'),wt=f('<div class="flex items-center gap-1.5 text-xs"><kbd class="inline-flex items-center justify-center w-5 h-5 rounded border border-border-default bg-bg-primary/80 text-[10px] font-mono text-accent-cyan"></kbd> <span class="text-text-muted truncate"> </span></div>'),_t=f('<div class="fixed inset-0 z-[999] flex items-center justify-center bg-black/60 backdrop-blur-sm"><div class="relative w-full max-w-md mx-4 rounded-xl border border-accent-cyan/30 bg-bg-surface/95 backdrop-blur-md shadow-[0_0_30px_rgba(124,77,255,0.15)] overflow-hidden"><div class="flex items-center justify-between px-5 py-4 border-b border-border-default"><h2 class="text-base font-semibold text-text-primary tracking-wide flex items-center gap-2"><svg class="w-4 h-4 text-accent-cyan" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg> Keyboard Shortcuts</h2> <button class="p-1 rounded-lg text-text-muted hover:text-text-primary hover:bg-bg-hover transition-colors" aria-label="Close"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></button></div> <div class="px-5 py-4 space-y-2.5"></div> <div class="px-5 pb-4"><div class="rounded-lg border border-border-default/50 bg-bg-primary/40 p-3"><div class="text-[10px] uppercase tracking-widest text-text-muted/60 mb-2 font-semibold">Page Numbers</div> <div class="grid grid-cols-3 gap-x-3 gap-y-1"></div></div></div></div></div>');function kt(P,H){de(H,!0);let m=be(H,"show",15,!1);const y=typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"⌘":"Ctrl",v=[{keys:[y,"K"],desc:"Focus chat input"},{keys:[y,"/"],desc:"Toggle this help"},{keys:[y,","],desc:"Open Settings"},{keys:[y,"1–9"],desc:"Navigate to page by order"},{keys:["Esc"],desc:"Close modal / deselect"}],n=["Chat","Overview","Channels","Instances","Sessions","Usage","Cron Jobs","Approvals","Agents"];function p(){m(!1)}var x=Se(),S=oe(x);{var k=C=>{var O=_t(),D=a(O),T=a(D),Z=r(a(T),2);t(T);var N=r(T,2);ce(N,21,()=>v,pe,(s,u)=>{var b=yt(),_=a(b),M=a(_,!0);t(_);var c=r(_,2);ce(c,21,()=>e(u).keys,pe,(U,te)=>{var h=ht(),d=a(h,!0);t(h),I(()=>Q(d,e(te))),l(U,h)}),t(c),t(b),I(()=>Q(M,e(u).desc)),l(s,b)}),t(N);var Y=r(N,2),ee=a(Y),g=r(a(ee),2);ce(g,21,()=>n,pe,(s,u,b)=>{var _=wt(),M=a(_);M.textContent=b+1;var c=r(M,2),U=a(c,!0);t(c),t(_),I(()=>Q(U,e(u))),l(s,_)}),t(g),t(ee),t(Y),t(D),t(O),j("keydown",O,s=>{s.key==="Escape"&&m(!1)}),j("click",O,p),j("click",D,s=>s.stopPropagation()),j("click",Z,()=>m(!1)),l(C,O)};R(S,C=>{m()&&C(k)})}l(P,x),ve()}fe(["keydown","click"]);var Ct=f("<div></div>"),Mt=f(`<div class="space-y-4"><div><label for="setup-url" class="block text-sm font-medium text-text-secondary mb-2">Gateway URL</label> <input id="setup-url" type="text" placeholder="openclaw.example.com" class="w-full px-4 py-3 rounded-xl glass border border-border-default bg-bg-secondary
19
19
  text-text-primary placeholder-text-muted text-center text-lg
20
20
  focus:outline-none focus:border-accent-cyan focus:glow-cyan
21
21
  transition-all duration-200"/> <p class="text-xs text-text-muted mt-2 text-center">The URL where your OpenClaw gateway is running</p></div> <div class="flex gap-3"><button class="flex-1 px-4 py-2.5 rounded-xl border border-border-default text-text-secondary
@@ -29,5 +29,5 @@ import{d as fe,b as l,f,s as Q,a as j,e as Se,g as ke,t as he}from"../chunks/B2A
29
29
  transition-all duration-200"/></div>`),St=f('<button class="text-xs text-text-muted hover:text-accent-cyan transition-colors flex items-center gap-1 mx-auto"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"></path></svg> I have an access token</button>'),jt=f('<div class="p-3 rounded-xl border border-accent-red/30 bg-accent-red/10"><p class="text-sm text-accent-red"> </p></div>'),Tt=f('<span class="flex items-center justify-center gap-2"><svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg> Connecting...</span>'),At=f(`<div class="p-4 rounded-xl border border-accent-cyan/20 bg-accent-cyan/5"><p class="text-sm text-text-secondary"><strong class="text-text-primary">Two ways to connect:</strong></p> <ul class="text-sm text-text-secondary mt-2 space-y-1"><li>🔗 <strong>Device pairing</strong> — just click Connect, gateway owner approves</li> <li>🔑 <strong>Token</strong> — paste your gateway token for instant access</li></ul></div> <!> <!> <div class="flex gap-3"><button class="flex-1 px-4 py-2.5 rounded-xl border border-border-default text-text-secondary
30
30
  hover:bg-bg-hover transition-colors text-sm">← Back</button> <button class="flex-1 px-4 py-2.5 rounded-xl gradient-bg text-text-primary font-medium
31
31
  hover:brightness-110 disabled:opacity-40 disabled:cursor-not-allowed
32
- transition-all text-sm"><!></button></div>`,1),Et=f('<div class="space-y-4"><!></div>'),Ot=f(`<div class="text-center space-y-4 py-4"><div class="text-5xl animate-bounce">🎉</div> <h2 class="text-xl font-bold text-text-primary">Connected!</h2> <p class="text-text-secondary text-sm">You're all set. Your gateway is ready to go.</p> <div class="pt-2"><button class="px-6 py-2.5 rounded-xl gradient-bg text-text-primary font-medium
33
- hover:brightness-110 transition-all text-sm">Let's go →</button></div></div>`),Ht=f(`<div class="fixed inset-0 z-[100] flex items-center justify-center bg-black/70 backdrop-blur-sm"><div class="glass border border-border-default rounded-2xl max-w-lg w-full mx-4 overflow-hidden shadow-2xl" style="box-shadow: 0 0 60px rgba(124, 77, 255, 0.15), 0 0 120px rgba(0, 229, 255, 0.05);"><div class="px-8 pt-8 pb-4 text-center"><div class="text-5xl mb-3">🧠</div> <h1 class="text-2xl font-bold text-text-primary">Welcome to Cortex</h1> <p class="text-text-secondary mt-1 text-sm">Let's connect to your OpenClaw gateway</p></div> <div class="flex justify-center gap-2 py-3"></div> <div class="px-8 pb-8"><!></div></div></div>`);function Bt(P,O){de(O,!0);const m=Ce(),q=Me();let y=K(1),v=K(""),n=K(""),p=K(!1),x=K(!1),S=K(""),k=K(!1),C=K(!1),H=null;re(()=>{const s=localStorage.getItem("cortex:gatewayUrl"),u=localStorage.getItem("openclaw-setup-dismissed");!s&&!u&&m.state.status==="disconnected"&&(o(k,!0),Ae().then(b=>{if(b.gatewayUrl){const _=b.gatewayWs||b.gatewayUrl.replace(/^http/,"ws");o(v,_,!0)}}))});function D(){o(k,!1),localStorage.setItem("openclaw-setup-dismissed","true")}function T(){H&&(clearInterval(H),H=null),o(C,!1)}async function Z(){if(!e(v).trim()){o(S,"Please enter your gateway URL");return}o(S,""),o(x,!0),T();try{const s=e(n).trim()||"__device_auth__";m.connect(e(v).trim(),s),await new Promise((u,b)=>{const _=setTimeout(()=>b(new Error("Connection timeout")),15e3),M=m.onStateChange(c=>{c.status==="connected"?(clearTimeout(_),M(),u()):c.status==="error"&&(clearTimeout(_),M(),b(new Error(c.error||"Connection failed")))})}),o(y,3),q.success("Connected!","You're all set."),setTimeout(()=>{o(k,!1)},3e3)}catch(s){const u=s instanceof Error?s.message:"Connection failed";if(u.toLowerCase().includes("pairing")||u.toLowerCase().includes("pair")){o(C,!0),o(S,"");const b=e(n).trim()||"__device_auth__";H=setInterval(()=>{m.connect(e(v).trim(),b);const _=m.onStateChange(M=>{M.status==="connected"?(_(),T(),o(x,!1),o(y,3),q.success("Device approved!","You're connected."),setTimeout(()=>{o(k,!1)},3e3)):M.status==="error"&&_()})},5e3);return}o(S,u,!0)}finally{e(C)||o(x,!1)}}function N(){let s=e(v).trim();s&&(s.match(/^(wss?|https?):\/\//)||(s="wss://"+s),s=s.replace(/^https:\/\//,"wss://").replace(/^http:\/\//,"ws://"),o(v,s,!0))}var Y=Se(),ee=oe(Y);{var g=s=>{var u=Ht(),b=a(u),_=r(a(b),2);ce(_,20,()=>[1,2,3],pe,(d,w)=>{var z=Ct();let I;V(()=>I=ie(z,1,"w-2 h-2 rounded-full transition-all duration-300",null,I,{"bg-accent-cyan":e(y)>=w,"scale-125":e(y)===w,"bg-border-default":e(y)<w})),l(d,z)}),t(_);var M=r(_,2),c=a(M);{var U=d=>{var w=Mt(),z=a(w),I=r(a(z),2);we(I),ye(2),t(z);var ae=r(z,2),W=a(ae),B=r(W,2);t(ae),t(w),V(L=>B.disabled=L,[()=>!e(v).trim()]),ke("blur",I,N),_e(I,()=>e(v),L=>o(v,L)),j("click",W,D),j("click",B,()=>{N(),o(y,2)}),l(d,w)},te=d=>{var w=Et(),z=a(w);{var I=W=>{var B=zt(),L=r(oe(B),2);j("click",L,()=>{T(),o(x,!1)}),l(W,B)},ae=W=>{var B=At(),L=r(oe(B),2);{var $=E=>{var J=Lt(),xe=r(a(J),2);we(xe),t(J),_e(xe,()=>e(n),ze=>o(n,ze)),l(E,J)},G=E=>{var J=St();j("click",J,()=>o(p,!0)),l(E,J)};R(L,E=>{e(p)?E($):E(G,!1)})}var se=r(L,2);{var ne=E=>{var J=jt(),xe=a(J),ze=a(xe,!0);t(xe),t(J),V(()=>Q(ze,e(S))),l(E,J)};R(se,E=>{e(S)&&E(ne)})}var ue=r(se,2),le=a(ue),i=r(le,2),A=a(i);{var F=E=>{var J=Tt();l(E,J)},X=E=>{var J=he("Connect");l(E,J)};R(A,E=>{e(x)?E(F):E(X,!1)})}t(i),t(ue),V(()=>{le.disabled=e(x),i.disabled=e(x)}),j("click",le,()=>{o(y,1),o(S,"")}),j("click",i,Z),l(W,B)};R(z,W=>{e(C)?W(I):W(ae,!1)})}t(w),l(d,w)},h=d=>{var w=Ot(),z=r(a(w),6),I=a(z);t(z),t(w),j("click",I,()=>o(k,!1)),l(d,w)};R(c,d=>{e(y)===1?d(U):e(y)===2?d(te,1):e(y)===3&&d(h,2)})}t(M),t(b),t(u),l(s,u)};R(ee,s=>{e(k)&&s(g)})}l(P,Y),ve()}fe(["click"]);var Ut=f('<div class="fixed inset-0 bg-black/60 z-40 md:hidden backdrop-blur-sm" role="button" tabindex="0" aria-label="Close navigation"></div>'),Dt=f('<div class="h-screen w-screen overflow-hidden bg-bg-primary flex"><a href="#main-content" class="skip-to-content">Skip to content</a> <!> <!> <div id="main-content" class="flex-1 flex flex-col min-w-0 overflow-hidden" role="main"><header class="flex items-center gap-3 px-3 py-2 border-b border-border-default bg-bg-secondary/50 md:hidden flex-shrink-0"><button class="p-2 rounded-lg hover:bg-bg-hover text-text-muted hover:text-accent-cyan transition-colors" aria-label="Open navigation menu"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button> <img src="/logo.png" alt="Cortex" class="w-6 h-6 rounded-lg"/> <span class="text-sm font-bold gradient-text tracking-wider">CORTEX</span></header> <!></div> <!> <!> <!> <!> <!></div>');function Qt(P,O){de(O,!0);const m=Ce(),q=De(),y=Ue(),v=Me(),n=Ve();Ie();let p=K(!1),x=K(!1),S=K(!1),k=K(!1),C=K(!1);re(()=>{Ae().then(()=>{m.init()})}),re(()=>{typeof window<"u"&&"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").catch(()=>{})}),re(()=>{const c=m.state.status;me(()=>{if(c==="connected"&&!e(p)){o(p,!0),q.fetchSessions();const U=q.activeKey||m.state.mainSessionKey;U&&(q.setActiveSession(U),y.loadHistory(U))}c==="disconnected"&&o(p,!1)})}),re(()=>{const c=q.activeKey;me(()=>{c&&c!==y.activeSessionKey&&je.connected&&y.loadHistory(c)})}),re(()=>{const c=m.state.status;me(()=>{c==="error"&&m.state.error&&v.error("Connection Error",m.state.error,8e3)})}),re(()=>{me(()=>n.init())}),re(()=>je.on("chat",U=>{const te=U;if(te.state!=="final"||!n.notifyOnMessages)return;const h=te.message;if(!h||h.role!=="assistant")return;let d="";if(typeof h.content=="string"?d=h.content:Array.isArray(h.content)&&(d=h.content.filter(z=>z.type==="text"&&typeof z.text=="string").map(z=>z.text).join(" ")),!d)return;const w=d.length>100?d.slice(0,100)+"…":d;n.notify("Cortex — New message",w)})),re(()=>m.onStateChange(U=>{U.status==="disconnected"&&n.notifyOnDisconnect&&n.notify("Cortex — Connection lost","The gateway connection was lost. Attempting to reconnect…")}));var H=Dt();ke("keydown",Te,c=>{c.key==="Escape"&&e(k)&&o(k,!1)});var D=r(a(H),2);{var T=c=>{var U=Ut();j("click",U,()=>o(k,!1)),j("keydown",U,te=>te.key==="Escape"&&o(k,!1)),l(c,U)};R(D,c=>{e(k)&&c(T)})}var Z=r(D,2);gt(Z,{onshortcuthelp:()=>o(C,!0),onnavigate:()=>o(k,!1),get collapsed(){return e(S)},set collapsed(c){o(S,c,!0)},get mobileOpen(){return e(k)},set mobileOpen(c){o(k,c,!0)}});var N=r(Z,2),Y=a(N),ee=a(Y);ye(4),t(Y);var g=r(Y,2);Be(g,()=>O.children),t(N);var s=r(N,2);Xe(s,{});var u=r(s,2);rt(u,{get show(){return e(x)},set show(c){o(x,c,!0)}});var b=r(u,2);bt(b,{get showHelp(){return e(C)},set showHelp(c){o(C,c,!0)}});var _=r(b,2);kt(_,{get show(){return e(C)},set show(c){o(C,c,!0)}});var M=r(_,2);Bt(M,{}),t(H),j("click",ee,()=>o(k,!0)),l(P,H),ve()}fe(["click","keydown"]);export{Qt as component,Jt as universal};
32
+ transition-all text-sm"><!></button></div>`,1),Et=f('<div class="space-y-4"><!></div>'),Ht=f(`<div class="text-center space-y-4 py-4"><div class="text-5xl animate-bounce">🎉</div> <h2 class="text-xl font-bold text-text-primary">Connected!</h2> <p class="text-text-secondary text-sm">You're all set. Your gateway is ready to go.</p> <div class="pt-2"><button class="px-6 py-2.5 rounded-xl gradient-bg text-text-primary font-medium
33
+ hover:brightness-110 transition-all text-sm">Let's go →</button></div></div>`),Ot=f(`<div class="fixed inset-0 z-[100] flex items-center justify-center bg-black/70 backdrop-blur-sm"><div class="glass border border-border-default rounded-2xl max-w-lg w-full mx-4 overflow-hidden shadow-2xl" style="box-shadow: 0 0 60px rgba(124, 77, 255, 0.15), 0 0 120px rgba(0, 229, 255, 0.05);"><div class="px-8 pt-8 pb-4 text-center"><div class="text-5xl mb-3">🧠</div> <h1 class="text-2xl font-bold text-text-primary">Welcome to Cortex</h1> <p class="text-text-secondary mt-1 text-sm">Let's connect to your OpenClaw gateway</p></div> <div class="flex justify-center gap-2 py-3"></div> <div class="px-8 pb-8"><!></div></div></div>`);function Bt(P,H){de(H,!0);const m=Ce(),q=Me();let y=K(1),v=K(""),n=K(""),p=K(!1),x=K(!1),S=K(""),k=K(!1),C=K(!1),O=null;re(()=>{const s=localStorage.getItem("cortex:gatewayUrl"),u=localStorage.getItem("openclaw-setup-dismissed");!s&&!u&&m.state.status==="disconnected"&&(o(k,!0),Ae().then(b=>{if(b.gatewayUrl){const _=b.gatewayWs||b.gatewayUrl.replace(/^http/,"ws");o(v,_,!0)}}))});function D(){o(k,!1),localStorage.setItem("openclaw-setup-dismissed","true")}function T(){O&&(clearInterval(O),O=null),o(C,!1)}async function Z(){if(!e(v).trim()){o(S,"Please enter your gateway URL");return}o(S,""),o(x,!0),T();try{const s=e(n).trim()||"__device_auth__";m.connect(e(v).trim(),s),await new Promise((u,b)=>{const _=setTimeout(()=>b(new Error("Connection timeout")),15e3),M=m.onStateChange(c=>{c.status==="connected"?(clearTimeout(_),M(),u()):c.status==="error"&&(clearTimeout(_),M(),b(new Error(c.error||"Connection failed")))})}),o(y,3),q.success("Connected!","You're all set."),setTimeout(()=>{o(k,!1)},3e3)}catch(s){const u=s instanceof Error?s.message:"Connection failed";if(u.toLowerCase().includes("pairing")||u.toLowerCase().includes("pair")){o(C,!0),o(S,"");const b=e(n).trim()||"__device_auth__";O=setInterval(()=>{m.connect(e(v).trim(),b);const _=m.onStateChange(M=>{M.status==="connected"?(_(),T(),o(x,!1),o(y,3),q.success("Device approved!","You're connected."),setTimeout(()=>{o(k,!1)},3e3)):M.status==="error"&&_()})},5e3);return}o(S,u,!0)}finally{e(C)||o(x,!1)}}function N(){let s=e(v).trim();s&&(s.match(/^(wss?|https?):\/\//)||(s="wss://"+s),s=s.replace(/^https:\/\//,"wss://").replace(/^http:\/\//,"ws://"),o(v,s,!0))}var Y=Se(),ee=oe(Y);{var g=s=>{var u=Ot(),b=a(u),_=r(a(b),2);ce(_,20,()=>[1,2,3],pe,(d,w)=>{var z=Ct();let V;I(()=>V=ie(z,1,"w-2 h-2 rounded-full transition-all duration-300",null,V,{"bg-accent-cyan":e(y)>=w,"scale-125":e(y)===w,"bg-border-default":e(y)<w})),l(d,z)}),t(_);var M=r(_,2),c=a(M);{var U=d=>{var w=Mt(),z=a(w),V=r(a(z),2);we(V),ye(2),t(z);var ae=r(z,2),W=a(ae),B=r(W,2);t(ae),t(w),I(L=>B.disabled=L,[()=>!e(v).trim()]),ke("blur",V,N),_e(V,()=>e(v),L=>o(v,L)),j("click",W,D),j("click",B,()=>{N(),o(y,2)}),l(d,w)},te=d=>{var w=Et(),z=a(w);{var V=W=>{var B=zt(),L=r(oe(B),2);j("click",L,()=>{T(),o(x,!1)}),l(W,B)},ae=W=>{var B=At(),L=r(oe(B),2);{var $=E=>{var J=Lt(),xe=r(a(J),2);we(xe),t(J),_e(xe,()=>e(n),ze=>o(n,ze)),l(E,J)},G=E=>{var J=St();j("click",J,()=>o(p,!0)),l(E,J)};R(L,E=>{e(p)?E($):E(G,!1)})}var se=r(L,2);{var ne=E=>{var J=jt(),xe=a(J),ze=a(xe,!0);t(xe),t(J),I(()=>Q(ze,e(S))),l(E,J)};R(se,E=>{e(S)&&E(ne)})}var ue=r(se,2),le=a(ue),i=r(le,2),A=a(i);{var F=E=>{var J=Tt();l(E,J)},X=E=>{var J=he("Connect");l(E,J)};R(A,E=>{e(x)?E(F):E(X,!1)})}t(i),t(ue),I(()=>{le.disabled=e(x),i.disabled=e(x)}),j("click",le,()=>{o(y,1),o(S,"")}),j("click",i,Z),l(W,B)};R(z,W=>{e(C)?W(V):W(ae,!1)})}t(w),l(d,w)},h=d=>{var w=Ht(),z=r(a(w),6),V=a(z);t(z),t(w),j("click",V,()=>o(k,!1)),l(d,w)};R(c,d=>{e(y)===1?d(U):e(y)===2?d(te,1):e(y)===3&&d(h,2)})}t(M),t(b),t(u),l(s,u)};R(ee,s=>{e(k)&&s(g)})}l(P,Y),ve()}fe(["click"]);var Ut=f('<div class="fixed inset-0 bg-black/60 z-40 md:hidden backdrop-blur-sm" role="button" tabindex="0" aria-label="Close navigation"></div>'),Dt=f('<div class="h-screen w-screen overflow-hidden bg-bg-primary flex"><a href="#main-content" class="skip-to-content">Skip to content</a> <!> <!> <div id="main-content" class="flex-1 flex flex-col min-w-0 overflow-hidden" role="main"><header class="flex items-center gap-3 px-3 py-2 border-b border-border-default bg-bg-secondary/50 md:hidden flex-shrink-0"><button class="p-2 rounded-lg hover:bg-bg-hover text-text-muted hover:text-accent-cyan transition-colors" aria-label="Open navigation menu"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button> <img src="/logo.png" alt="Cortex" class="w-6 h-6 rounded-lg"/> <span class="text-sm font-bold gradient-text tracking-wider">CORTEX</span></header> <!></div> <!> <!> <!> <!> <!></div>');function Qt(P,H){de(H,!0);const m=Ce(),q=De(),y=Ue(),v=Me(),n=Ie();Ve();let p=K(!1),x=K(!1),S=K(!1),k=K(!1),C=K(!1);re(()=>{Ae().then(()=>{m.init()})}),re(()=>{typeof window<"u"&&"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").catch(()=>{})}),re(()=>{const c=m.state.status;me(()=>{if(c==="connected"&&!e(p)){o(p,!0),q.fetchSessions();const U=q.activeKey||m.state.mainSessionKey;U&&(q.setActiveSession(U),y.loadHistory(U))}c==="disconnected"&&o(p,!1)})}),re(()=>{const c=q.activeKey;me(()=>{c&&c!==y.activeSessionKey&&je.connected&&y.loadHistory(c)})}),re(()=>{const c=m.state.status;me(()=>{c==="error"&&m.state.error&&v.error("Connection Error",m.state.error,8e3)})}),re(()=>{me(()=>n.init())}),re(()=>je.on("chat",U=>{const te=U;if(te.state!=="final"||!n.notifyOnMessages)return;const h=te.message;if(!h||h.role!=="assistant")return;let d="";if(typeof h.content=="string"?d=h.content:Array.isArray(h.content)&&(d=h.content.filter(z=>z.type==="text"&&typeof z.text=="string").map(z=>z.text).join(" ")),!d)return;const w=d.length>100?d.slice(0,100)+"…":d;n.notify("Cortex — New message",w)})),re(()=>m.onStateChange(U=>{U.status==="disconnected"&&n.notifyOnDisconnect&&n.notify("Cortex — Connection lost","The gateway connection was lost. Attempting to reconnect…")}));var O=Dt();ke("keydown",Te,c=>{c.key==="Escape"&&e(k)&&o(k,!1)});var D=r(a(O),2);{var T=c=>{var U=Ut();j("click",U,()=>o(k,!1)),j("keydown",U,te=>te.key==="Escape"&&o(k,!1)),l(c,U)};R(D,c=>{e(k)&&c(T)})}var Z=r(D,2);gt(Z,{onshortcuthelp:()=>o(C,!0),onnavigate:()=>o(k,!1),get collapsed(){return e(S)},set collapsed(c){o(S,c,!0)},get mobileOpen(){return e(k)},set mobileOpen(c){o(k,c,!0)}});var N=r(Z,2),Y=a(N),ee=a(Y);ye(4),t(Y);var g=r(Y,2);Be(g,()=>H.children),t(N);var s=r(N,2);Xe(s,{});var u=r(s,2);rt(u,{get show(){return e(x)},set show(c){o(x,c,!0)}});var b=r(u,2);bt(b,{get showHelp(){return e(C)},set showHelp(c){o(C,c,!0)}});var _=r(b,2);kt(_,{get show(){return e(C)},set show(c){o(C,c,!0)}});var M=r(_,2);Bt(M,{}),t(O),j("click",ee,()=>o(k,!0)),l(P,O),ve()}fe(["click","keydown"]);export{Qt as component,Jt as universal};
@@ -1 +1 @@
1
- import{b as h,f as u,s as e}from"../chunks/B2A7gHtL.js";import{i as g}from"../chunks/KBP0Pl-D.js";import{p as l,j as v,t as d,c as _,h as a,r as o,f as x}from"../chunks/qR_TM3YX.js";import{s as $,p}from"../chunks/DXhHboeH.js";const b={get error(){return p.error},get status(){return p.status}};$.updated.check;const m=b;var k=u("<h1> </h1> <p> </p>",1);function y(f,i){l(i,!1),g();var t=k(),r=v(t),c=a(r,!0);o(r);var s=x(r,2),n=a(s,!0);o(s),d(()=>{e(c,m.status),e(n,m.error?.message)}),h(f,t),_()}export{y as component};
1
+ import{b as h,f as u,s as e}from"../chunks/B2A7gHtL.js";import{i as g}from"../chunks/KBP0Pl-D.js";import{p as l,j as v,t as d,c as _,h as a,r as o,f as x}from"../chunks/qR_TM3YX.js";import{s as $,p}from"../chunks/PR_wZ9tz.js";const b={get error(){return p.error},get status(){return p.status}};$.updated.check;const m=b;var k=u("<h1> </h1> <p> </p>",1);function y(f,i){l(i,!1),g();var t=k(),r=v(t),c=a(r,!0);o(r);var s=x(r,2),n=a(s,!0);o(s),d(()=>{e(c,m.status),e(n,m.error?.message)}),h(f,t),_()}export{y as component};
@@ -1,4 +1,4 @@
1
- import{d as Nt,a as D,b as v,f as p,s as c,t as ie,e as Tt}from"../chunks/B2A7gHtL.js";import{p as zt,s as A,a as Dt,u as ze,b as Ft,d as w,t as x,c as Ht,e as Pt,g as e,f as i,$ as Et,h as n,r,i as F,j as Ut}from"../chunks/qR_TM3YX.js";import{i as f}from"../chunks/DpBBTLWw.js";import{g as Ot,a as H,s as V,e as C,i as L,b as De}from"../chunks/BLtDog0v.js";import{h as Rt}from"../chunks/CXQ1lKJR.js";import{s as qt}from"../chunks/SHB02qEx.js";import{g as Gt}from"../chunks/Be_uRYmX.js";var Jt=p('<div class="flex items-center gap-1.5 mt-3 text-xs"><span class="w-2 h-2 rounded-full bg-accent-green glow-pulse"></span> <span class="text-text-muted">Active instances:</span> <span class="text-accent-green font-mono font-semibold"> </span></div>'),Qt=p('<div class="flex flex-col items-center justify-center h-full text-center"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4"><svg class="w-8 h-8 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636a9 9 0 010 12.728m-2.829-2.829a5 5 0 000-7.07"></path></svg></div> <p class="text-text-muted text-sm">Connect to the gateway to view instances.</p></div>'),Wt=p('<div class="glass rounded-xl p-4 border border-accent-pink/30 mb-4"><div class="flex items-center gap-2 text-accent-pink text-sm"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg> <span> </span></div></div>'),Xt=p('<div class="glass rounded-xl p-5 border border-border-default animate-pulse"><div class="h-4 w-40 bg-bg-tertiary rounded mb-2"></div> <div class="h-3 w-64 bg-bg-tertiary rounded mb-3"></div> <div class="flex gap-2"><div class="h-5 w-14 bg-bg-tertiary rounded-full"></div> <div class="h-5 w-14 bg-bg-tertiary rounded-full"></div></div></div>'),Yt=p('<div class="flex flex-col gap-3"></div>'),Zt=p('<div class="flex flex-col items-center justify-center h-64 text-center"><p class="text-text-muted text-sm">No instances reported yet.</p></div>'),ea=p('<span class="text-xs text-text-muted"> </span>'),ta=p('<span class="text-text-muted/50"> </span>'),aa=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-cyan/10 text-accent-cyan border border-accent-cyan/20"> </span>'),ra=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-purple/10 text-accent-purple border border-accent-purple/20"> </span>'),sa=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-bg-tertiary text-text-muted border border-border-default"> </span>'),oa=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-green/10 text-accent-green border border-accent-green/10"> </span>'),na=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-bg-tertiary text-text-muted border border-border-default"> </span>'),ia=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-purple/10 text-purple-300 border border-accent-purple/10"> </span>'),da=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-amber/10 text-accent-amber border border-accent-amber/10"> </span>'),la=p('<div class="flex items-center gap-1 justify-end"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> </div>'),va=p("<div> </div>"),ca=p('<div class="text-text-muted/60"> </div>'),pa=p('<div class="flex items-center gap-1"><button><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"></path></svg> </button> <button><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg> </button></div>'),xa=p('<div class="col-span-2 md:col-span-3"><span class="text-text-muted block mb-0.5">Session Key</span> <span class="text-text-primary font-mono text-[10px] break-all"> </span></div>'),ua=p('<div><span class="text-text-muted block mb-0.5">Model</span> <span class="text-accent-purple font-mono"> </span></div>'),fa=p('<span class="px-1.5 py-0.5 rounded text-[10px] bg-bg-tertiary text-text-muted border border-border-default font-mono"> </span>'),ma=p('<div class="col-span-2 md:col-span-3"><span class="text-text-muted block mb-0.5">Scopes</span> <div class="flex flex-wrap gap-1 mt-1"></div></div>'),ba=p('<span class="px-1.5 py-0.5 rounded text-[10px] bg-accent-green/10 text-accent-green border border-accent-green/10 font-mono"> </span>'),_a=p('<div class="col-span-2 md:col-span-3"><span class="text-text-muted block mb-0.5">Capabilities</span> <div class="flex flex-wrap gap-1 mt-1"></div></div>'),ga=p('<div class="px-4 pb-4 border-t border-border-default/50 pt-3 animate-fade-in"><div class="grid grid-cols-2 md:grid-cols-3 gap-3 text-xs"><div><span class="text-text-muted block mb-0.5">Mode</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Platform</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Device</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Model ID</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Client Version</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Client ID</span> <span class="text-text-primary font-mono"> </span></div> <!> <!> <!> <!></div></div>'),ha=p('<div class="rounded-xl border border-border-default bg-bg-secondary/50 hover:border-accent-cyan/20 transition-all animate-fade-in"><div class="p-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><div class="flex items-center gap-2 mb-1.5"><span></span> <h3 class="text-sm font-semibold text-text-primary truncate"> </h3> <!></div> <p class="text-xs text-text-muted mb-2"><!> <!> <!> <!></p> <div class="flex flex-wrap gap-1.5"><!> <!> <!> <!> <!> <!></div></div> <div class="flex flex-col items-end gap-2 flex-shrink-0"><div class="text-right text-xs text-text-muted space-y-0.5"><!> <!> <!></div> <!> <button class="flex items-center gap-1 text-[10px] text-text-muted hover:text-accent-cyan transition-colors"><svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg> </button></div></div></div> <!></div>'),ka=p('<div class="flex flex-col gap-3"></div>'),wa=p('<div class="h-full flex flex-col overflow-hidden"><div class="flex-shrink-0 p-4 md:p-6 pb-4 border-b border-border-default"><div class="flex items-start justify-between gap-4 flex-wrap"><div class="flex items-center gap-3"><div class="w-10 h-10 rounded-xl gradient-bg border border-border-glow flex items-center justify-center"><svg class="w-5 h-5 text-accent-cyan" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.636 18.364a9 9 0 010-12.728m12.728 0a9 9 0 010 12.728M12 12h.01"></path></svg></div> <div><h1 class="text-xl font-bold text-text-primary glow-text-cyan">Connected Instances</h1> <p class="text-sm text-text-muted">Presence beacons from the gateway and clients</p></div></div> <button class="flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bg-tertiary border border-border-default rounded-lg text-text-secondary hover:text-accent-cyan hover:border-accent-cyan/30 transition-all disabled:opacity-40 disabled:cursor-not-allowed"><svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg> </button></div> <!></div> <div class="flex-1 overflow-y-auto p-4 md:p-6"><!></div></div>');function Sa(Fe,He){zt(He,!0);const P=Ot(),E=Gt();let y=A(Dt([])),M=A(!1),B=A(null),de=A(null),U=A(null);async function O(){if(!(!H.connected||e(M))){w(M,!0),w(B,null);try{const o=await H.call("system-presence",{});Array.isArray(o)?w(y,o,!0):o&&Array.isArray(o.entries)?w(y,o.entries,!0):w(y,[],!0)}catch(o){w(B,String(o),!0)}finally{w(M,!1)}}}async function le(o,l,u){if(!o.sessionKey){E.error("No Session","This instance has no active session to patch");return}w(U,l,!0);try{await H.call("sessions.patch",{key:o.sessionKey,...u}),E.success("Updated","Session settings saved"),await O()}catch(t){E.error("Failed",String(t))}finally{w(U,null)}}async function Pe(o,l){const u=["off","on","stream"],t=o.thinkingLevel??"off",m=u.indexOf(t),N=u[(m+1)%u.length];await le(o,l,{thinkingLevel:N})}async function Ee(o,l){const t=(o.verboseLevel??"off")==="off"?"on":"off";await le(o,l,{verboseLevel:t})}function Ue(o){if(typeof o!="number"||o<=0)return"—";const l=Math.floor(o/1e3),u=Math.floor(l/60),t=Math.floor(u/60),m=Math.floor(t/24);return m>0?`${m}d ${t%24}h`:t>0?`${t}h ${u%60}m`:u>0?`${u}m`:`${l}s`}function Oe(o){return o==null?"—":o<60?`${o}s ago`:o<3600?`${Math.floor(o/60)}m ago`:o<86400?`${Math.floor(o/3600)}h ago`:`${Math.floor(o/86400)}d ago`}function Re(o){return o.lastInputSeconds!=null?o.lastInputSeconds<300?"online":o.lastInputSeconds<3600?"idle":"stale":"online"}let qe=F(()=>[...e(y)].sort((o,l)=>{const u=o.mode==="gateway"?0:1,t=l.mode==="gateway"?0:1;return u!==t?u-t:(l.uptimeMs??0)-(o.uptimeMs??0)}));ze(()=>{P.state.status==="connected"&&Ft(()=>O())}),ze(()=>H.on("system-presence",l=>{Array.isArray(l)&&w(y,l,!0)}));var R=wa();Rt("aye7dn",o=>{Pt(()=>{Et.title="Instances — Cortex"})});var q=n(R),G=n(q),K=i(n(G),2),ve=n(K),Ge=i(ve);r(K),r(G);var Je=i(G,2);{var Qe=o=>{var l=Jt(),u=i(n(l),4),t=n(u,!0);r(u),r(l),x(()=>c(t,e(y).length)),v(o,l)};f(Je,o=>{e(y).length>0&&o(Qe)})}r(q);var ce=i(q,2),We=n(ce);{var Xe=o=>{var l=Qt();v(o,l)},Ye=o=>{var l=Wt(),u=n(l),t=i(n(u),2),m=n(t,!0);r(t),r(u),r(l),x(()=>c(m,e(B))),v(o,l)},Ze=o=>{var l=Yt();C(l,20,()=>Array(3),L,(u,t)=>{var m=Xt();v(u,m)}),r(l),v(o,l)},et=o=>{var l=Zt();v(o,l)},tt=o=>{var l=ka();C(l,21,()=>e(qe),L,(u,t,m)=>{const N=F(()=>Re(e(t))),T=F(()=>e(de)===m),pe=F(()=>e(U)===m);var z=ha();qt(z,`animation-delay: ${m*50}ms`);var J=n(z),xe=n(J),Q=n(xe),W=n(Q),ue=n(W),X=i(ue,2),at=n(X,!0);r(X);var rt=i(X,2);{var st=a=>{var s=ea(),d=n(s);r(s),x(()=>c(d,`(${e(t).host??""})`)),v(a,s)};f(rt,a=>{e(t).displayName&&e(t).host&&e(t).displayName!==e(t).host&&a(st)})}r(W);var Y=i(W,2),fe=n(Y);{var ot=a=>{var s=ie();x(()=>c(s,e(t).platform)),v(a,s)};f(fe,a=>{e(t).platform&&a(ot)})}var me=i(fe,2);{var nt=a=>{var s=ie();x(()=>c(s,`· ${e(t).deviceFamily??""}`)),v(a,s)};f(me,a=>{e(t).deviceFamily&&a(nt)})}var be=i(me,2);{var it=a=>{var s=ie();x(()=>c(s,`· ${e(t).modelIdentifier??""}`)),v(a,s)};f(be,a=>{e(t).modelIdentifier&&a(it)})}var dt=i(be,2);{var lt=a=>{var s=ta(),d=n(s);r(s),x(()=>c(d,`· ${e(t).clientId??""}`)),v(a,s)};f(dt,a=>{e(t).clientId&&e(t).clientId!==e(t).host&&a(lt)})}r(Y);var _e=i(Y,2),ge=n(_e);{var vt=a=>{var s=aa(),d=n(s,!0);r(s),x(()=>c(d,e(t).mode)),v(a,s)};f(ge,a=>{e(t).mode&&a(vt)})}var he=i(ge,2);C(he,17,()=>e(t).roles??[],L,(a,s)=>{var d=ra(),g=n(d,!0);r(d),x(()=>c(g,e(s))),v(a,d)});var ke=i(he,2);{var ct=a=>{var s=sa(),d=n(s);r(s),x(()=>c(d,`v${e(t).clientVersion??e(t).version??""}`)),v(a,s)};f(ke,a=>{(e(t).version||e(t).clientVersion)&&a(ct)})}var we=i(ke,2);{var pt=a=>{var s=Tt(),d=Ut(s);C(d,17,()=>e(t).capabilities??[],L,(g,h)=>{var $=oa(),S=n($,!0);r($),x(()=>c(S,e(h))),v(g,$)}),v(a,s)},xt=a=>{var s=na(),d=n(s);r(s),x(()=>c(d,`${(e(t).scopes??[]).length??""} scopes`)),v(a,s)};f(we,a=>{(e(t).capabilities??[]).length>0?a(pt):(e(t).scopes??[]).length>0&&a(xt,1)})}var ye=i(we,2);{var ut=a=>{var s=ia(),d=n(s,!0);r(s),x(()=>c(d,e(t).model)),v(a,s)};f(ye,a=>{e(t).model&&a(ut)})}var ft=i(ye,2);{var mt=a=>{var s=da(),d=n(s,!0);r(s),x(()=>c(d,e(t).agentId)),v(a,s)};f(ft,a=>{e(t).agentId&&a(mt)})}r(_e),r(Q);var Me=i(Q,2),Z=n(Me),$e=n(Z);{var bt=a=>{var s=la(),d=i(n(s));r(s),x(g=>c(d,` Up ${g??""}`),[()=>Ue(e(t).uptimeMs)]),v(a,s)};f($e,a=>{e(t).uptimeMs&&a(bt)})}var Ie=i($e,2);{var _t=a=>{var s=va(),d=n(s);r(s),x(g=>c(d,`Input ${g??""}`),[()=>Oe(e(t).lastInputSeconds)]),v(a,s)};f(Ie,a=>{e(t).lastInputSeconds!=null&&a(_t)})}var gt=i(Ie,2);{var ht=a=>{var s=ca(),d=n(s,!0);r(s),x(()=>c(d,e(t).reason)),v(a,s)};f(gt,a=>{e(t).reason&&a(ht)})}r(Z);var je=i(Z,2);{var kt=a=>{var s=pa(),d=n(s),g=i(n(d));r(d);var h=i(d,2),$=i(n(h));r(h),r(s),x(()=>{d.disabled=e(pe),V(d,1,`flex items-center gap-1 px-2 py-1 rounded-lg text-[10px] font-medium border transition-all disabled:opacity-50
1
+ import{d as Nt,a as D,b as v,f as p,s as c,t as ie,e as Tt}from"../chunks/B2A7gHtL.js";import{p as zt,s as A,a as Dt,u as ze,b as Ft,d as w,t as x,c as Ht,e as Pt,g as e,f as i,h as n,$ as Et,r,i as F,j as Ut}from"../chunks/qR_TM3YX.js";import{i as f}from"../chunks/DpBBTLWw.js";import{g as Ot,a as H,s as V,e as C,i as L,b as De}from"../chunks/BLtDog0v.js";import{h as Rt}from"../chunks/CXQ1lKJR.js";import{s as qt}from"../chunks/SHB02qEx.js";import{g as Gt}from"../chunks/Be_uRYmX.js";var Jt=p('<div class="flex items-center gap-1.5 mt-3 text-xs"><span class="w-2 h-2 rounded-full bg-accent-green glow-pulse"></span> <span class="text-text-muted">Active instances:</span> <span class="text-accent-green font-mono font-semibold"> </span></div>'),Qt=p('<div class="flex flex-col items-center justify-center h-full text-center"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4"><svg class="w-8 h-8 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636a9 9 0 010 12.728m-2.829-2.829a5 5 0 000-7.07"></path></svg></div> <p class="text-text-muted text-sm">Connect to the gateway to view instances.</p></div>'),Wt=p('<div class="glass rounded-xl p-4 border border-accent-pink/30 mb-4"><div class="flex items-center gap-2 text-accent-pink text-sm"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg> <span> </span></div></div>'),Xt=p('<div class="glass rounded-xl p-5 border border-border-default animate-pulse"><div class="h-4 w-40 bg-bg-tertiary rounded mb-2"></div> <div class="h-3 w-64 bg-bg-tertiary rounded mb-3"></div> <div class="flex gap-2"><div class="h-5 w-14 bg-bg-tertiary rounded-full"></div> <div class="h-5 w-14 bg-bg-tertiary rounded-full"></div></div></div>'),Yt=p('<div class="flex flex-col gap-3"></div>'),Zt=p('<div class="flex flex-col items-center justify-center h-64 text-center"><p class="text-text-muted text-sm">No instances reported yet.</p></div>'),ea=p('<span class="text-xs text-text-muted"> </span>'),ta=p('<span class="text-text-muted/50"> </span>'),aa=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-cyan/10 text-accent-cyan border border-accent-cyan/20"> </span>'),ra=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-purple/10 text-accent-purple border border-accent-purple/20"> </span>'),sa=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-bg-tertiary text-text-muted border border-border-default"> </span>'),oa=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-green/10 text-accent-green border border-accent-green/10"> </span>'),na=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-bg-tertiary text-text-muted border border-border-default"> </span>'),ia=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-purple/10 text-purple-300 border border-accent-purple/10"> </span>'),da=p('<span class="px-2 py-0.5 rounded-full text-[10px] font-medium bg-accent-amber/10 text-accent-amber border border-accent-amber/10"> </span>'),la=p('<div class="flex items-center gap-1 justify-end"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> </div>'),va=p("<div> </div>"),ca=p('<div class="text-text-muted/60"> </div>'),pa=p('<div class="flex items-center gap-1"><button><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"></path></svg> </button> <button><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg> </button></div>'),xa=p('<div class="col-span-2 md:col-span-3"><span class="text-text-muted block mb-0.5">Session Key</span> <span class="text-text-primary font-mono text-[10px] break-all"> </span></div>'),ua=p('<div><span class="text-text-muted block mb-0.5">Model</span> <span class="text-accent-purple font-mono"> </span></div>'),fa=p('<span class="px-1.5 py-0.5 rounded text-[10px] bg-bg-tertiary text-text-muted border border-border-default font-mono"> </span>'),ma=p('<div class="col-span-2 md:col-span-3"><span class="text-text-muted block mb-0.5">Scopes</span> <div class="flex flex-wrap gap-1 mt-1"></div></div>'),ba=p('<span class="px-1.5 py-0.5 rounded text-[10px] bg-accent-green/10 text-accent-green border border-accent-green/10 font-mono"> </span>'),_a=p('<div class="col-span-2 md:col-span-3"><span class="text-text-muted block mb-0.5">Capabilities</span> <div class="flex flex-wrap gap-1 mt-1"></div></div>'),ga=p('<div class="px-4 pb-4 border-t border-border-default/50 pt-3 animate-fade-in"><div class="grid grid-cols-2 md:grid-cols-3 gap-3 text-xs"><div><span class="text-text-muted block mb-0.5">Mode</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Platform</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Device</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Model ID</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Client Version</span> <span class="text-text-primary font-mono"> </span></div> <div><span class="text-text-muted block mb-0.5">Client ID</span> <span class="text-text-primary font-mono"> </span></div> <!> <!> <!> <!></div></div>'),ha=p('<div class="rounded-xl border border-border-default bg-bg-secondary/50 hover:border-accent-cyan/20 transition-all animate-fade-in"><div class="p-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><div class="flex items-center gap-2 mb-1.5"><span></span> <h3 class="text-sm font-semibold text-text-primary truncate"> </h3> <!></div> <p class="text-xs text-text-muted mb-2"><!> <!> <!> <!></p> <div class="flex flex-wrap gap-1.5"><!> <!> <!> <!> <!> <!></div></div> <div class="flex flex-col items-end gap-2 flex-shrink-0"><div class="text-right text-xs text-text-muted space-y-0.5"><!> <!> <!></div> <!> <button class="flex items-center gap-1 text-[10px] text-text-muted hover:text-accent-cyan transition-colors"><svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg> </button></div></div></div> <!></div>'),ka=p('<div class="flex flex-col gap-3"></div>'),wa=p('<div class="h-full flex flex-col overflow-hidden"><div class="flex-shrink-0 p-4 md:p-6 pb-4 border-b border-border-default"><div class="flex items-start justify-between gap-4 flex-wrap"><div class="flex items-center gap-3"><div class="w-10 h-10 rounded-xl gradient-bg border border-border-glow flex items-center justify-center"><svg class="w-5 h-5 text-accent-cyan" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.636 18.364a9 9 0 010-12.728m12.728 0a9 9 0 010 12.728M12 12h.01"></path></svg></div> <div><h1 class="text-xl font-bold text-text-primary glow-text-cyan">Connected Instances</h1> <p class="text-sm text-text-muted">Presence beacons from the gateway and clients</p></div></div> <button class="flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bg-tertiary border border-border-default rounded-lg text-text-secondary hover:text-accent-cyan hover:border-accent-cyan/30 transition-all disabled:opacity-40 disabled:cursor-not-allowed"><svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg> </button></div> <!></div> <div class="flex-1 overflow-y-auto p-4 md:p-6"><!></div></div>');function Sa(Fe,He){zt(He,!0);const P=Ot(),E=Gt();let y=A(Dt([])),M=A(!1),B=A(null),de=A(null),U=A(null);async function O(){if(!(!H.connected||e(M))){w(M,!0),w(B,null);try{const o=await H.call("system-presence",{});Array.isArray(o)?w(y,o,!0):o&&Array.isArray(o.entries)?w(y,o.entries,!0):w(y,[],!0)}catch(o){w(B,String(o),!0)}finally{w(M,!1)}}}async function le(o,l,u){if(!o.sessionKey){E.error("No Session","This instance has no active session to patch");return}w(U,l,!0);try{await H.call("sessions.patch",{key:o.sessionKey,...u}),E.success("Updated","Session settings saved"),await O()}catch(t){E.error("Failed",String(t))}finally{w(U,null)}}async function Pe(o,l){const u=["off","on","stream"],t=o.thinkingLevel??"off",m=u.indexOf(t),N=u[(m+1)%u.length];await le(o,l,{thinkingLevel:N})}async function Ee(o,l){const t=(o.verboseLevel??"off")==="off"?"on":"off";await le(o,l,{verboseLevel:t})}function Ue(o){if(typeof o!="number"||o<=0)return"—";const l=Math.floor(o/1e3),u=Math.floor(l/60),t=Math.floor(u/60),m=Math.floor(t/24);return m>0?`${m}d ${t%24}h`:t>0?`${t}h ${u%60}m`:u>0?`${u}m`:`${l}s`}function Oe(o){return o==null?"—":o<60?`${o}s ago`:o<3600?`${Math.floor(o/60)}m ago`:o<86400?`${Math.floor(o/3600)}h ago`:`${Math.floor(o/86400)}d ago`}function Re(o){return o.lastInputSeconds!=null?o.lastInputSeconds<300?"online":o.lastInputSeconds<3600?"idle":"stale":"online"}let qe=F(()=>[...e(y)].sort((o,l)=>{const u=o.mode==="gateway"?0:1,t=l.mode==="gateway"?0:1;return u!==t?u-t:(l.uptimeMs??0)-(o.uptimeMs??0)}));ze(()=>{P.state.status==="connected"&&Ft(()=>O())}),ze(()=>H.on("system-presence",l=>{Array.isArray(l)&&w(y,l,!0)}));var R=wa();Rt("aye7dn",o=>{Pt(()=>{Et.title="Instances — Cortex"})});var q=n(R),G=n(q),K=i(n(G),2),ve=n(K),Ge=i(ve);r(K),r(G);var Je=i(G,2);{var Qe=o=>{var l=Jt(),u=i(n(l),4),t=n(u,!0);r(u),r(l),x(()=>c(t,e(y).length)),v(o,l)};f(Je,o=>{e(y).length>0&&o(Qe)})}r(q);var ce=i(q,2),We=n(ce);{var Xe=o=>{var l=Qt();v(o,l)},Ye=o=>{var l=Wt(),u=n(l),t=i(n(u),2),m=n(t,!0);r(t),r(u),r(l),x(()=>c(m,e(B))),v(o,l)},Ze=o=>{var l=Yt();C(l,20,()=>Array(3),L,(u,t)=>{var m=Xt();v(u,m)}),r(l),v(o,l)},et=o=>{var l=Zt();v(o,l)},tt=o=>{var l=ka();C(l,21,()=>e(qe),L,(u,t,m)=>{const N=F(()=>Re(e(t))),T=F(()=>e(de)===m),pe=F(()=>e(U)===m);var z=ha();qt(z,`animation-delay: ${m*50}ms`);var J=n(z),xe=n(J),Q=n(xe),W=n(Q),ue=n(W),X=i(ue,2),at=n(X,!0);r(X);var rt=i(X,2);{var st=a=>{var s=ea(),d=n(s);r(s),x(()=>c(d,`(${e(t).host??""})`)),v(a,s)};f(rt,a=>{e(t).displayName&&e(t).host&&e(t).displayName!==e(t).host&&a(st)})}r(W);var Y=i(W,2),fe=n(Y);{var ot=a=>{var s=ie();x(()=>c(s,e(t).platform)),v(a,s)};f(fe,a=>{e(t).platform&&a(ot)})}var me=i(fe,2);{var nt=a=>{var s=ie();x(()=>c(s,`· ${e(t).deviceFamily??""}`)),v(a,s)};f(me,a=>{e(t).deviceFamily&&a(nt)})}var be=i(me,2);{var it=a=>{var s=ie();x(()=>c(s,`· ${e(t).modelIdentifier??""}`)),v(a,s)};f(be,a=>{e(t).modelIdentifier&&a(it)})}var dt=i(be,2);{var lt=a=>{var s=ta(),d=n(s);r(s),x(()=>c(d,`· ${e(t).clientId??""}`)),v(a,s)};f(dt,a=>{e(t).clientId&&e(t).clientId!==e(t).host&&a(lt)})}r(Y);var _e=i(Y,2),ge=n(_e);{var vt=a=>{var s=aa(),d=n(s,!0);r(s),x(()=>c(d,e(t).mode)),v(a,s)};f(ge,a=>{e(t).mode&&a(vt)})}var he=i(ge,2);C(he,17,()=>e(t).roles??[],L,(a,s)=>{var d=ra(),g=n(d,!0);r(d),x(()=>c(g,e(s))),v(a,d)});var ke=i(he,2);{var ct=a=>{var s=sa(),d=n(s);r(s),x(()=>c(d,`v${e(t).clientVersion??e(t).version??""}`)),v(a,s)};f(ke,a=>{(e(t).version||e(t).clientVersion)&&a(ct)})}var we=i(ke,2);{var pt=a=>{var s=Tt(),d=Ut(s);C(d,17,()=>e(t).capabilities??[],L,(g,h)=>{var $=oa(),S=n($,!0);r($),x(()=>c(S,e(h))),v(g,$)}),v(a,s)},xt=a=>{var s=na(),d=n(s);r(s),x(()=>c(d,`${(e(t).scopes??[]).length??""} scopes`)),v(a,s)};f(we,a=>{(e(t).capabilities??[]).length>0?a(pt):(e(t).scopes??[]).length>0&&a(xt,1)})}var ye=i(we,2);{var ut=a=>{var s=ia(),d=n(s,!0);r(s),x(()=>c(d,e(t).model)),v(a,s)};f(ye,a=>{e(t).model&&a(ut)})}var ft=i(ye,2);{var mt=a=>{var s=da(),d=n(s,!0);r(s),x(()=>c(d,e(t).agentId)),v(a,s)};f(ft,a=>{e(t).agentId&&a(mt)})}r(_e),r(Q);var Me=i(Q,2),Z=n(Me),$e=n(Z);{var bt=a=>{var s=la(),d=i(n(s));r(s),x(g=>c(d,` Up ${g??""}`),[()=>Ue(e(t).uptimeMs)]),v(a,s)};f($e,a=>{e(t).uptimeMs&&a(bt)})}var Ie=i($e,2);{var _t=a=>{var s=va(),d=n(s);r(s),x(g=>c(d,`Input ${g??""}`),[()=>Oe(e(t).lastInputSeconds)]),v(a,s)};f(Ie,a=>{e(t).lastInputSeconds!=null&&a(_t)})}var gt=i(Ie,2);{var ht=a=>{var s=ca(),d=n(s,!0);r(s),x(()=>c(d,e(t).reason)),v(a,s)};f(gt,a=>{e(t).reason&&a(ht)})}r(Z);var je=i(Z,2);{var kt=a=>{var s=pa(),d=n(s),g=i(n(d));r(d);var h=i(d,2),$=i(n(h));r(h),r(s),x(()=>{d.disabled=e(pe),V(d,1,`flex items-center gap-1 px-2 py-1 rounded-lg text-[10px] font-medium border transition-all disabled:opacity-50
2
2
  ${e(t).thinkingLevel==="stream"?"bg-accent-cyan/15 text-accent-cyan border-accent-cyan/30":e(t).thinkingLevel==="on"?"bg-accent-purple/15 text-accent-purple border-accent-purple/30":"bg-bg-tertiary text-text-muted border-border-default hover:border-accent-cyan/30"}`),De(d,"title",`Thinking: ${e(t).thinkingLevel??"off"??""}`),c(g,` T:${e(t).thinkingLevel??"off"??""}`),h.disabled=e(pe),V(h,1,`flex items-center gap-1 px-2 py-1 rounded-lg text-[10px] font-medium border transition-all disabled:opacity-50
3
3
  ${e(t).verboseLevel==="on"?"bg-accent-green/15 text-accent-green border-accent-green/30":"bg-bg-tertiary text-text-muted border-border-default hover:border-accent-green/30"}`),De(h,"title",`Verbose: ${e(t).verboseLevel??"off"??""}`),c($,` V:${e(t).verboseLevel??"off"??""}`)}),D("click",d,()=>Pe(e(t),m)),D("click",h,()=>Ee(e(t),m)),v(a,s)};f(je,a=>{e(t).sessionKey&&a(kt)})}var ee=i(je,2),Ce=n(ee),wt=i(Ce);r(ee),r(Me),r(xe),r(J);var yt=i(J,2);{var Mt=a=>{var s=ga(),d=n(s),g=n(d),h=i(n(g),2),$=n(h,!0);r(h),r(g);var S=i(g,2),Le=i(n(S),2),$t=n(Le,!0);r(Le),r(S);var te=i(S,2),Se=i(n(te),2),It=n(Se,!0);r(Se),r(te);var ae=i(te,2),Ae=i(n(ae),2),jt=n(Ae,!0);r(Ae),r(ae);var re=i(ae,2),Ve=i(n(re),2),Ct=n(Ve,!0);r(Ve),r(re);var se=i(re,2),Be=i(n(se),2),Lt=n(Be,!0);r(Be),r(se);var Ke=i(se,2);{var St=b=>{var _=xa(),k=i(n(_),2),I=n(k,!0);r(k),r(_),x(()=>c(I,e(t).sessionKey)),v(b,_)};f(Ke,b=>{e(t).sessionKey&&b(St)})}var Ne=i(Ke,2);{var At=b=>{var _=ua(),k=i(n(_),2),I=n(k,!0);r(k),r(_),x(()=>c(I,e(t).model)),v(b,_)};f(Ne,b=>{e(t).model&&b(At)})}var Te=i(Ne,2);{var Vt=b=>{var _=ma(),k=i(n(_),2);C(k,21,()=>e(t).scopes??[],L,(I,oe)=>{var j=fa(),ne=n(j,!0);r(j),x(()=>c(ne,e(oe))),v(I,j)}),r(k),r(_),v(b,_)};f(Te,b=>{(e(t).scopes??[]).length>0&&b(Vt)})}var Bt=i(Te,2);{var Kt=b=>{var _=_a(),k=i(n(_),2);C(k,21,()=>e(t).capabilities??[],L,(I,oe)=>{var j=ba(),ne=n(j,!0);r(j),x(()=>c(ne,e(oe))),v(I,j)}),r(k),r(_),v(b,_)};f(Bt,b=>{(e(t).capabilities??[]).length>0&&b(Kt)})}r(d),r(s),x(()=>{c($,e(t).mode??"—"),c($t,e(t).platform??"—"),c(It,e(t).deviceFamily??"—"),c(jt,e(t).modelIdentifier??"—"),c(Ct,e(t).clientVersion??e(t).version??"—"),c(Lt,e(t).clientId??"—")}),v(a,s)};f(yt,a=>{e(T)&&a(Mt)})}r(z),x(()=>{V(ue,1,`w-2 h-2 rounded-full flex-shrink-0
4
4
  ${e(N)==="online"?"bg-accent-green glow-pulse":e(N)==="idle"?"bg-accent-amber":"bg-text-muted"}`),c(at,e(t).displayName??e(t).host??"unknown host"),V(Ce,0,`w-3.5 h-3.5 transition-transform ${e(T)?"rotate-180":""}`),c(wt,` ${e(T)?"Less":"Details"}`)}),D("click",ee,()=>w(de,e(T)?null:m,!0)),v(u,z)}),r(l),v(o,l)};f(We,o=>{P.state.status!=="connected"?o(Xe):e(B)?o(Ye,1):e(M)&&e(y).length===0?o(Ze,2):e(y).length===0?o(et,3):o(tt,!1)})}r(ce),r(R),x(()=>{K.disabled=e(M)||P.state.status!=="connected",V(ve,0,`w-4 h-4 ${e(M)?"animate-spin":""}`),c(Ge,` ${e(M)?"Loading…":"Refresh"}`)}),D("click",K,O),v(Fe,R),Ht()}Nt(["click"]);export{Sa as component};
@@ -1,4 +1,4 @@
1
- import{d as nt,a as ee,b as c,f as u,s as m,g as lt,c as ot,t as it}from"../chunks/B2A7gHtL.js";import{p as ct,s as g,a as xe,u as be,b as me,g as r,d,t as _,c as dt,e as ut,f as i,i as ge,$ as ft,h as l,r as s,n as P,j as vt}from"../chunks/qR_TM3YX.js";import{i as y}from"../chunks/DpBBTLWw.js";import{g as pt,a as te,r as re,e as he,s as ae,d as xt,i as _e,b as bt}from"../chunks/BLtDog0v.js";import{h as mt}from"../chunks/CXQ1lKJR.js";import{b as gt,a as ht}from"../chunks/nnazh41B.js";import{b as _t}from"../chunks/BYXRTvT-.js";var yt=u('<span class="font-mono text-xs text-text-muted/60"> </span>'),wt=ot('<svg class="w-3 h-3 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg>'),kt=u('<div class="flex-1 flex items-center justify-center"><div class="rounded-xl border border-border-default bg-bg-secondary/50 p-8 text-center"><div class="text-text-muted text-sm">Connect to the gateway to view logs.</div></div></div>'),Lt=u('<label><input type="checkbox" class="sr-only"/> </label>'),Ct=u('<div class="rounded-lg border border-amber-500/30 bg-amber-500/5 px-3 py-1.5 text-amber-400 text-xs mb-2 flex-shrink-0">Log output truncated — showing latest chunk.</div>'),jt=u('<div class="rounded-lg border border-red-500/30 bg-red-500/5 px-3 py-1.5 text-red-400 text-xs mb-2 flex-shrink-0"> </div>'),Bt=u('<div class="flex items-center justify-center h-full text-text-muted/40 text-sm"> </div>'),Tt=u('<span class="w-[140px] flex-shrink-0 text-accent-purple/70 truncate"> </span>'),St=u('<span class="w-[140px] flex-shrink-0"></span>'),Ft=u('<div><span class="w-[85px] flex-shrink-0 text-text-muted/70 select-all"> </span> <span> </span> <!> <span class="flex-1 text-text-secondary break-all select-all whitespace-pre-wrap"> </span></div>'),qt=u('<div class="divide-y divide-border-default/30"></div>'),Ot=u('<span class="inline-block w-1.5 h-1.5 rounded-full bg-accent-green/60 mr-1 animate-pulse"></span> Polling every 3s',1),Rt=u('<span class="inline-block w-1.5 h-1.5 rounded-full bg-text-muted/30 mr-1"></span> Paused',1),$t=u(`<div class="flex flex-wrap items-center gap-3 mb-3 flex-shrink-0"><div class="relative flex-1 min-w-[200px] max-w-sm"><svg class="absolute left-3 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg> <input placeholder="Filter logs…" class="w-full bg-bg-input border border-border-default rounded-lg pl-9 pr-3 py-2
1
+ import{d as nt,a as ee,b as c,f as u,s as m,g as lt,c as ot,t as it}from"../chunks/B2A7gHtL.js";import{p as ct,s as g,a as xe,u as be,b as me,g as r,d,t as _,c as dt,e as ut,f as i,i as ge,h as l,$ as ft,r as s,n as P,j as vt}from"../chunks/qR_TM3YX.js";import{i as y}from"../chunks/DpBBTLWw.js";import{g as pt,a as te,r as re,e as he,s as ae,d as xt,i as _e,b as bt}from"../chunks/BLtDog0v.js";import{h as mt}from"../chunks/CXQ1lKJR.js";import{b as gt,a as ht}from"../chunks/nnazh41B.js";import{b as _t}from"../chunks/BYXRTvT-.js";var yt=u('<span class="font-mono text-xs text-text-muted/60"> </span>'),wt=ot('<svg class="w-3 h-3 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg>'),kt=u('<div class="flex-1 flex items-center justify-center"><div class="rounded-xl border border-border-default bg-bg-secondary/50 p-8 text-center"><div class="text-text-muted text-sm">Connect to the gateway to view logs.</div></div></div>'),Lt=u('<label><input type="checkbox" class="sr-only"/> </label>'),Ct=u('<div class="rounded-lg border border-amber-500/30 bg-amber-500/5 px-3 py-1.5 text-amber-400 text-xs mb-2 flex-shrink-0">Log output truncated — showing latest chunk.</div>'),jt=u('<div class="rounded-lg border border-red-500/30 bg-red-500/5 px-3 py-1.5 text-red-400 text-xs mb-2 flex-shrink-0"> </div>'),Bt=u('<div class="flex items-center justify-center h-full text-text-muted/40 text-sm"> </div>'),Tt=u('<span class="w-[140px] flex-shrink-0 text-accent-purple/70 truncate"> </span>'),St=u('<span class="w-[140px] flex-shrink-0"></span>'),Ft=u('<div><span class="w-[85px] flex-shrink-0 text-text-muted/70 select-all"> </span> <span> </span> <!> <span class="flex-1 text-text-secondary break-all select-all whitespace-pre-wrap"> </span></div>'),qt=u('<div class="divide-y divide-border-default/30"></div>'),Ot=u('<span class="inline-block w-1.5 h-1.5 rounded-full bg-accent-green/60 mr-1 animate-pulse"></span> Polling every 3s',1),Rt=u('<span class="inline-block w-1.5 h-1.5 rounded-full bg-text-muted/30 mr-1"></span> Paused',1),$t=u(`<div class="flex flex-wrap items-center gap-3 mb-3 flex-shrink-0"><div class="relative flex-1 min-w-[200px] max-w-sm"><svg class="absolute left-3 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg> <input placeholder="Filter logs…" class="w-full bg-bg-input border border-border-default rounded-lg pl-9 pr-3 py-2
2
2
  text-sm text-text-primary placeholder:text-text-muted/50
3
3
  focus:outline-none focus:border-accent-cyan focus:shadow-[0_0_8px_rgba(0,229,255,0.15)]
4
4
  transition-all"/></div> <div class="flex items-center gap-1.5"></div> <label class="inline-flex items-center gap-1.5 text-xs text-text-muted cursor-pointer select-none ml-auto"><input type="checkbox" class="w-3.5 h-3.5 rounded border-border-default bg-bg-input accent-accent-cyan"/> Auto-scroll</label></div> <!> <!> <div class="flex-1 overflow-y-auto bg-bg-input/30 border border-border-default rounded-xl"><!></div> <div class="flex items-center justify-between mt-2 flex-shrink-0 text-[10px] text-text-muted/50 font-mono"><span><!></span> <span> <!></span></div>`,1),At=u(`<div class="h-full flex flex-col overflow-hidden"><div class="flex-1 flex flex-col max-w-full p-4 md:p-6 overflow-hidden"><div class="flex items-center justify-between mb-4 flex-shrink-0 flex-wrap gap-3"><div><h1 class="text-2xl font-bold text-text-primary flex items-center gap-3"><span class="text-accent-cyan">📋</span> Logs</h1> <p class="text-sm text-text-muted mt-0.5">Live gateway log tail <!></p></div> <div class="flex items-center gap-3"><span class="text-xs text-text-muted font-mono"> </span> <button class="px-3 py-2 rounded-lg text-xs border border-border-default hover:border-accent-purple
@@ -1,4 +1,4 @@
1
- import{d as _a,a as k,b as x,s as g,f as b,e as ka,g as Cr}from"../chunks/B2A7gHtL.js";import{p as wa,s as L,a as q,u as Ar,g as e,d as f,b as Ma,t as y,c as Ca,e as Aa,h as a,f as n,i as D,$ as Ta,r,n as O,j as Kt,m as Tr,o as Lr}from"../chunks/qR_TM3YX.js";import{i as w}from"../chunks/DpBBTLWw.js";import{g as La,a as Pt,s as S,r as K,e as ne,i as Qt,b as xe}from"../chunks/BLtDog0v.js";import{h as Sa}from"../chunks/CXQ1lKJR.js";import{s as ja}from"../chunks/SHB02qEx.js";import{b as $e,a as Be}from"../chunks/nnazh41B.js";import{b as Da,i as Sr,s as jr}from"../chunks/DVP7Iy08.js";import{g as $a}from"../chunks/C--qzJ6W.js";import{g as Ba}from"../chunks/Be_uRYmX.js";import{g as Fa}from"../chunks/DXhHboeH.js";var za=b('<div class="mt-4 rounded-xl border border-border-default bg-bg-secondary/50 p-4 animate-fade-in"><div class="grid grid-cols-2 md:grid-cols-4 gap-4"><div><label class="block text-xs text-text-muted mb-1">Active Minutes (0=all)</label> <input type="number" min="0" step="1" class="w-full px-3 py-1.5 text-sm rounded-lg border border-border-default bg-bg-tertiary text-text-primary focus:outline-none focus:border-accent-cyan transition-all"/></div> <div><label class="block text-xs text-text-muted mb-1">Limit</label> <input type="number" min="1" max="500" step="1" class="w-full px-3 py-1.5 text-sm rounded-lg border border-border-default bg-bg-tertiary text-text-primary focus:outline-none focus:border-accent-cyan transition-all"/></div> <div class="flex flex-col justify-end gap-2"><label class="flex items-center gap-2 text-sm text-text-secondary cursor-pointer"><input type="checkbox" class="rounded border-border-default bg-bg-tertiary text-accent-cyan focus:ring-accent-cyan/30"/> Include Global</label> <label class="flex items-center gap-2 text-sm text-text-secondary cursor-pointer"><input type="checkbox" class="rounded border-border-default bg-bg-tertiary text-accent-cyan focus:ring-accent-cyan/30"/> Include Unknown</label></div> <div class="flex items-end"><button class="w-full px-3 py-1.5 text-sm rounded-lg bg-accent-cyan/10 text-accent-cyan border border-accent-cyan/30 hover:bg-accent-cyan/20 transition-all">Apply Filters</button></div></div></div>'),Va=b('<div class="flex rounded-lg border border-border-default overflow-hidden"><button>Grouped</button> <button>All</button></div>'),Ha=b('<div class="flex items-center gap-1"><button class="px-2 py-2 text-xs rounded-lg bg-bg-tertiary border border-border-default text-text-muted hover:text-text-secondary transition-all" title="Expand all"><svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button> <button class="px-2 py-2 text-xs rounded-lg bg-bg-tertiary border border-border-default text-text-muted hover:text-text-secondary transition-all" title="Collapse all"><svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></button> <span class="text-[10px] text-text-muted ml-1"> </span></div>'),Ia=b('<div class="flex flex-col items-center justify-center h-full text-center"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4"><svg class="w-8 h-8 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636a9 9 0 010 12.728m-2.829-2.829a5 5 0 000-7.07"></path></svg></div> <p class="text-text-muted text-sm">Connect to the gateway to view sessions.</p></div>'),Na=b('<div class="rounded-xl border border-border-default bg-bg-secondary/50 p-5 animate-pulse"><div class="h-4 w-48 bg-bg-tertiary rounded mb-3"></div> <div class="h-3 w-96 bg-bg-tertiary rounded mb-2"></div> <div class="flex gap-2"><div class="h-5 w-16 bg-bg-tertiary rounded-full"></div> <div class="h-5 w-20 bg-bg-tertiary rounded-full"></div> <div class="h-5 w-14 bg-bg-tertiary rounded-full"></div></div></div>'),Ra=b('<div class="flex flex-col gap-3"></div>'),Ua=b('<div class="flex flex-col items-center justify-center h-64 text-center"><p class="text-text-muted text-sm"> </p></div>'),Ea=b('<div class="flex flex-col items-center justify-center h-64 text-center"><p class="text-text-muted text-sm"> </p></div>'),Oa=b('<button><svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></button>'),Ga=b('<div class="w-6 flex-shrink-0 mt-0.5 flex items-center justify-center"><span></span></div>'),qa=b('<form class="flex items-center gap-2"><input type="text" class="px-2 py-1 text-sm rounded border border-accent-cyan/50 bg-bg-tertiary text-text-primary focus:outline-none focus:border-accent-cyan w-48"/> <button type="submit" class="text-accent-cyan text-xs hover:underline">Save</button> <button type="button" class="text-text-muted text-xs hover:text-text-secondary">Cancel</button></form>'),Ka=b('<span> </span> <button class="p-0.5 rounded hover:bg-bg-hover text-text-muted hover:text-accent-cyan transition-colors" title="Rename"><svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path></svg></button>',1),Pa=b('<span class="px-2 py-0.5 rounded text-[10px] font-medium bg-bg-tertiary text-text-muted border border-border-default"> </span>'),Qa=b('<span class="px-2 py-0.5 rounded text-[10px] font-medium bg-accent-purple/10 text-purple-300 border border-accent-purple/10"> </span>'),Wa=b("<span> </span>"),Ja=b('<span class="flex items-center gap-1 px-2 py-0.5 rounded text-[10px] bg-accent-purple/10 text-purple-300 border border-accent-purple/10"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg> </span>'),Xa=b('<span class="px-2 py-0.5 rounded text-[10px] bg-bg-tertiary text-text-muted border border-border-default"> </span>'),Ya=b('<span class="flex items-center gap-1 px-2 py-0.5 rounded text-[10px] bg-accent-green/10 text-accent-green border border-accent-green/10"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A2 2 0 013 12V7a4 4 0 014-4z"></path></svg> </span>'),Za=b('<p class="text-xs text-text-muted truncate mb-1.5 max-w-[500px]"> </p>'),en=b('<span class="flex items-center gap-1 px-2 py-1 rounded-lg text-[10px] font-medium bg-accent-amber/15 text-accent-amber border border-accent-amber/30"> </span>'),tn=b("<option> </option>"),rn=b(`<select class="px-2 py-1 rounded-lg text-[11px] border border-border-default bg-bg-tertiary
1
+ import{d as _a,a as k,b as x,s as g,f as b,e as ka,g as Cr}from"../chunks/B2A7gHtL.js";import{p as wa,s as L,a as q,u as Ar,g as e,d as f,b as Ma,t as y,c as Ca,e as Aa,h as a,f as n,i as D,$ as Ta,r,n as O,j as Kt,m as Tr,o as Lr}from"../chunks/qR_TM3YX.js";import{i as w}from"../chunks/DpBBTLWw.js";import{g as La,a as Pt,s as S,r as K,e as ne,i as Qt,b as xe}from"../chunks/BLtDog0v.js";import{h as Sa}from"../chunks/CXQ1lKJR.js";import{s as ja}from"../chunks/SHB02qEx.js";import{b as $e,a as Be}from"../chunks/nnazh41B.js";import{b as Da,i as Sr,s as jr}from"../chunks/DVP7Iy08.js";import{g as $a}from"../chunks/C--qzJ6W.js";import{g as Ba}from"../chunks/Be_uRYmX.js";import{g as Fa}from"../chunks/PR_wZ9tz.js";var za=b('<div class="mt-4 rounded-xl border border-border-default bg-bg-secondary/50 p-4 animate-fade-in"><div class="grid grid-cols-2 md:grid-cols-4 gap-4"><div><label class="block text-xs text-text-muted mb-1">Active Minutes (0=all)</label> <input type="number" min="0" step="1" class="w-full px-3 py-1.5 text-sm rounded-lg border border-border-default bg-bg-tertiary text-text-primary focus:outline-none focus:border-accent-cyan transition-all"/></div> <div><label class="block text-xs text-text-muted mb-1">Limit</label> <input type="number" min="1" max="500" step="1" class="w-full px-3 py-1.5 text-sm rounded-lg border border-border-default bg-bg-tertiary text-text-primary focus:outline-none focus:border-accent-cyan transition-all"/></div> <div class="flex flex-col justify-end gap-2"><label class="flex items-center gap-2 text-sm text-text-secondary cursor-pointer"><input type="checkbox" class="rounded border-border-default bg-bg-tertiary text-accent-cyan focus:ring-accent-cyan/30"/> Include Global</label> <label class="flex items-center gap-2 text-sm text-text-secondary cursor-pointer"><input type="checkbox" class="rounded border-border-default bg-bg-tertiary text-accent-cyan focus:ring-accent-cyan/30"/> Include Unknown</label></div> <div class="flex items-end"><button class="w-full px-3 py-1.5 text-sm rounded-lg bg-accent-cyan/10 text-accent-cyan border border-accent-cyan/30 hover:bg-accent-cyan/20 transition-all">Apply Filters</button></div></div></div>'),Va=b('<div class="flex rounded-lg border border-border-default overflow-hidden"><button>Grouped</button> <button>All</button></div>'),Ha=b('<div class="flex items-center gap-1"><button class="px-2 py-2 text-xs rounded-lg bg-bg-tertiary border border-border-default text-text-muted hover:text-text-secondary transition-all" title="Expand all"><svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button> <button class="px-2 py-2 text-xs rounded-lg bg-bg-tertiary border border-border-default text-text-muted hover:text-text-secondary transition-all" title="Collapse all"><svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></button> <span class="text-[10px] text-text-muted ml-1"> </span></div>'),Ia=b('<div class="flex flex-col items-center justify-center h-full text-center"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4"><svg class="w-8 h-8 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636a9 9 0 010 12.728m-2.829-2.829a5 5 0 000-7.07"></path></svg></div> <p class="text-text-muted text-sm">Connect to the gateway to view sessions.</p></div>'),Na=b('<div class="rounded-xl border border-border-default bg-bg-secondary/50 p-5 animate-pulse"><div class="h-4 w-48 bg-bg-tertiary rounded mb-3"></div> <div class="h-3 w-96 bg-bg-tertiary rounded mb-2"></div> <div class="flex gap-2"><div class="h-5 w-16 bg-bg-tertiary rounded-full"></div> <div class="h-5 w-20 bg-bg-tertiary rounded-full"></div> <div class="h-5 w-14 bg-bg-tertiary rounded-full"></div></div></div>'),Ra=b('<div class="flex flex-col gap-3"></div>'),Ua=b('<div class="flex flex-col items-center justify-center h-64 text-center"><p class="text-text-muted text-sm"> </p></div>'),Ea=b('<div class="flex flex-col items-center justify-center h-64 text-center"><p class="text-text-muted text-sm"> </p></div>'),Oa=b('<button><svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></button>'),Ga=b('<div class="w-6 flex-shrink-0 mt-0.5 flex items-center justify-center"><span></span></div>'),qa=b('<form class="flex items-center gap-2"><input type="text" class="px-2 py-1 text-sm rounded border border-accent-cyan/50 bg-bg-tertiary text-text-primary focus:outline-none focus:border-accent-cyan w-48"/> <button type="submit" class="text-accent-cyan text-xs hover:underline">Save</button> <button type="button" class="text-text-muted text-xs hover:text-text-secondary">Cancel</button></form>'),Ka=b('<span> </span> <button class="p-0.5 rounded hover:bg-bg-hover text-text-muted hover:text-accent-cyan transition-colors" title="Rename"><svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path></svg></button>',1),Pa=b('<span class="px-2 py-0.5 rounded text-[10px] font-medium bg-bg-tertiary text-text-muted border border-border-default"> </span>'),Qa=b('<span class="px-2 py-0.5 rounded text-[10px] font-medium bg-accent-purple/10 text-purple-300 border border-accent-purple/10"> </span>'),Wa=b("<span> </span>"),Ja=b('<span class="flex items-center gap-1 px-2 py-0.5 rounded text-[10px] bg-accent-purple/10 text-purple-300 border border-accent-purple/10"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg> </span>'),Xa=b('<span class="px-2 py-0.5 rounded text-[10px] bg-bg-tertiary text-text-muted border border-border-default"> </span>'),Ya=b('<span class="flex items-center gap-1 px-2 py-0.5 rounded text-[10px] bg-accent-green/10 text-accent-green border border-accent-green/10"><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A2 2 0 013 12V7a4 4 0 014-4z"></path></svg> </span>'),Za=b('<p class="text-xs text-text-muted truncate mb-1.5 max-w-[500px]"> </p>'),en=b('<span class="flex items-center gap-1 px-2 py-1 rounded-lg text-[10px] font-medium bg-accent-amber/15 text-accent-amber border border-accent-amber/30"> </span>'),tn=b("<option> </option>"),rn=b(`<select class="px-2 py-1 rounded-lg text-[11px] border border-border-default bg-bg-tertiary
2
2
  text-text-secondary hover:border-accent-purple/40 focus:outline-none focus:border-accent-purple
3
3
  transition-all disabled:opacity-50 max-w-[200px] cursor-pointer appearance-none
4
4
  bg-[url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2388929e%22%20stroke-width%3D%222%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E')]
@@ -0,0 +1,4 @@
1
+ import{d as _e,a as f,b as c,f as v,s as n}from"../chunks/B2A7gHtL.js";import{p as ge,s as p,a as ye,u as Bt,b as O,t as m,g as t,c as he,e as we,f as o,h as a,d as l,$ as ke,r,i as kt,j as Mt,n as st,l as Ae}from"../chunks/qR_TM3YX.js";import{i as k}from"../chunks/DpBBTLWw.js";import{g as $e,e as Q,a as Nt,i as ot,r as Se,s as V,b as Re}from"../chunks/BLtDog0v.js";import{h as Ie}from"../chunks/CXQ1lKJR.js";import{b as Le}from"../chunks/nnazh41B.js";import{b as Pt}from"../chunks/DVP7Iy08.js";import{g as Te}from"../chunks/Be_uRYmX.js";var je=v('<button class="px-2.5 py-1 text-xs rounded-full border border-border-default bg-bg-primary/50 text-text-secondary hover:border-accent-cyan/50 hover:text-accent-cyan transition-colors"> <span class="text-text-muted ml-1"> </span></button>'),Ee=v('<div class="p-4 rounded-xl border border-border-default bg-bg-secondary/60"><h3 class="text-sm font-semibold text-text-primary mb-3">Top Actions</h3> <div class="flex flex-wrap gap-2"></div></div>'),qe=v('<div class="grid grid-cols-2 md:grid-cols-4 gap-3"><div class="p-4 rounded-xl border border-border-default bg-bg-secondary/60"><div class="text-2xl font-bold text-accent-cyan"> </div> <div class="text-xs text-text-muted mt-1">Total Events</div></div> <div class="p-4 rounded-xl border border-border-default bg-bg-secondary/60"><div> </div> <div class="text-xs text-text-muted mt-1">Failures / Denied</div></div> <div class="p-4 rounded-xl border border-border-default bg-bg-secondary/60"><div class="text-2xl font-bold text-accent-purple"> </div> <div class="text-xs text-text-muted mt-1">Unique Actions</div></div> <div class="p-4 rounded-xl border border-border-default bg-bg-secondary/60"><div class="text-2xl font-bold text-amber-400"> </div> <div class="text-xs text-text-muted mt-1">Unique Actors</div></div></div> <!>',1),De=v("<button> </button>"),Ce=v("<option> </option>"),Oe=v("<option> </option>"),Fe=v('<button class="px-2 py-1 text-xs text-red-400 hover:text-red-300 transition-colors">✕ Clear</button>'),Ue=v('<div class="p-3 rounded-lg border border-red-500/30 bg-red-500/10 text-red-400 text-sm"> </div>'),Be=v('<div class="flex items-center justify-center py-12"><div class="animate-spin w-6 h-6 border-2 border-accent-cyan/30 border-t-accent-cyan rounded-full"></div> <span class="ml-3 text-text-muted text-sm">Loading audit entries...</span></div>'),Me=v('<div class="col-span-full"><span class="text-text-muted">Details:</span> <span class="text-text-secondary ml-1 font-mono"> </span></div>'),Ne=v('<tr class="bg-bg-secondary/30"><td colspan="5" class="px-4 py-3"><div class="grid grid-cols-2 md:grid-cols-4 gap-3 text-xs"><div><span class="text-text-muted">ID:</span> <span class="text-text-secondary ml-1 font-mono"> </span></div> <div><span class="text-text-muted">Actor Type:</span> <span class="text-text-secondary ml-1"> </span></div> <div><span class="text-text-muted">Resource:</span> <span class="text-text-secondary ml-1"> </span></div> <div><span class="text-text-muted">Epoch:</span> <span class="text-text-secondary ml-1 font-mono"> </span></div> <!></div></td></tr>'),Pe=v('<tr class="border-b border-border-default/50 hover:bg-bg-hover/50 cursor-pointer transition-colors"><td class="px-4 py-2.5 text-text-muted whitespace-nowrap text-xs"> </td><td class="px-4 py-2.5"><span class="font-mono text-xs text-accent-cyan"> </span></td><td class="px-4 py-2.5"><span class="text-xs"> <span class="text-text-secondary ml-1"> </span></span></td><td class="px-4 py-2.5"><span> </span></td><td class="px-4 py-2.5 text-text-muted text-xs font-mono max-md:hidden"> </td></tr> <!>',1),ze=v('<div class="rounded-xl border border-border-default overflow-hidden"><table class="w-full text-sm"><thead><tr class="bg-bg-secondary/80 border-b border-border-default"><th class="text-left px-4 py-2.5 text-xs font-semibold text-text-muted uppercase tracking-wider">Time</th><th class="text-left px-4 py-2.5 text-xs font-semibold text-text-muted uppercase tracking-wider">Action</th><th class="text-left px-4 py-2.5 text-xs font-semibold text-text-muted uppercase tracking-wider">Actor</th><th class="text-left px-4 py-2.5 text-xs font-semibold text-text-muted uppercase tracking-wider">Result</th><th class="text-left px-4 py-2.5 text-xs font-semibold text-text-muted uppercase tracking-wider max-md:hidden">IP</th></tr></thead><tbody></tbody></table></div>'),Ge=v('<div class="text-center py-12 text-text-muted"><div class="text-4xl mb-3">🔒</div> <p class="text-lg font-medium">No audit entries</p> <p class="text-sm mt-1">Events will appear here as gateway operations are performed.</p></div>'),He=v('<div class="p-4 md:p-6 max-w-[1400px] mx-auto space-y-6"><div class="flex items-center justify-between flex-wrap gap-3"><div><h1 class="text-2xl font-bold gradient-text tracking-wide">Audit Log</h1> <p class="text-sm text-text-muted mt-1">Security event tracking and compliance monitoring</p></div> <div class="flex items-center gap-2"><button>📊 Stats</button> <button> </button> <button class="px-3 py-1.5 text-sm rounded-lg border border-border-default bg-bg-secondary text-text-muted hover:text-text-primary hover:border-border-hover transition-colors">🔄 Refresh</button></div></div> <!> <div class="flex flex-wrap items-center gap-3 p-3 rounded-xl border border-border-default bg-bg-secondary/40"><div class="flex items-center gap-1 bg-bg-primary/50 rounded-lg p-0.5"></div> <select class="px-2.5 py-1.5 text-xs rounded-lg border border-border-default bg-bg-primary text-text-secondary focus:border-accent-cyan/50 focus:outline-none"><option>All Actions</option><!></select> <select class="px-2.5 py-1.5 text-xs rounded-lg border border-border-default bg-bg-primary text-text-secondary focus:border-accent-cyan/50 focus:outline-none"><option>All Results</option><!></select> <input type="text" placeholder="Filter by actor..." class="px-2.5 py-1.5 text-xs rounded-lg border border-border-default bg-bg-primary text-text-secondary placeholder-text-muted/50 focus:border-accent-cyan/50 focus:outline-none w-40"/> <!> <span class="text-xs text-text-muted ml-auto"> </span></div> <!> <!> <!></div>');function tr(zt,Gt){ge(Gt,!0);const dt=$e(),Ht=Te();let I=p(ye([])),_=p(null),F=p(!1),At=p(!1),U=p(null),A=p(""),L=p(""),T=p(""),nt=p("24h"),Jt=100,B=p(!1),$=null,W=p(!1),it=p(null);const $t=[{label:"1h",value:"1h",seconds:3600},{label:"6h",value:"6h",seconds:21600},{label:"24h",value:"24h",seconds:86400},{label:"7d",value:"7d",seconds:604800},{label:"30d",value:"30d",seconds:2592e3},{label:"All",value:"all",seconds:0}];function Kt(){const e=$t.find(s=>s.value===t(nt));if(!(!e||e.seconds===0))return Math.floor(Date.now()/1e3)-e.seconds}async function g(){if(dt.state.status==="connected"){l(F,!0),l(U,null);try{const e={limit:Jt},s=Kt();s&&(e.since=s),t(A)&&(e.action=t(A)),t(L)&&(e.actor=t(L)),t(T)&&(e.result=t(T));const d=await Nt.call("audit.query",e);O(()=>{l(I,d.entries??[],!0)})}catch(e){const s=e instanceof Error?e.message:String(e);O(()=>{l(U,s,!0)})}finally{O(()=>{l(F,!1)})}}}async function St(){if(dt.state.status==="connected"){l(At,!0);try{const e=await Nt.call("audit.stats",{});O(()=>{l(_,e,!0)})}catch(e){const s=e instanceof Error?e.message:String(e);Ht.add("error",`Stats failed: ${s}`)}finally{O(()=>{l(At,!1)})}}}function Qt(){l(B,!t(B)),t(B)?$=setInterval(()=>{g()},1e4):$&&(clearInterval($),$=null)}Bt(()=>{dt.state.status==="connected"&&O(()=>{g(),St()})}),Bt(()=>()=>{$&&(clearInterval($),$=null)});function Vt(e){try{return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return e}}function Wt(e){return e==="success"?"bg-accent-green/20 text-accent-green border-accent-green/30":e==="denied"?"bg-amber-500/20 text-amber-400 border-amber-500/30":"bg-red-500/20 text-red-400 border-red-500/30"}function Xt(e){switch(e){case"operator":return"👤";case"node":return"🖥️";case"device":return"📱";case"system":return"⚙️";case"webchat":return"💬";default:return"❓"}}let Yt=kt(()=>[...new Set(t(I).map(e=>e.action))].sort()),Zt=["success","failure","denied"];var lt=He();Ie("1qyu7y8",e=>{we(()=>{ke.title="Audit Log — Cortex"})});var ct=a(lt),Rt=o(a(ct),2),vt=a(Rt),M=o(vt,2),te=a(M,!0);r(M);var It=o(M,2);r(Rt),r(ct);var Lt=o(ct,2);{var ee=e=>{var s=qe(),d=Mt(s),x=a(d),u=a(x),i=a(u,!0);r(u),st(2),r(x);var j=o(x,2),w=a(j),z=a(w,!0);r(w),st(2),r(j);var G=o(j,2),E=a(G),Y=a(E,!0);r(E),st(2),r(G);var Z=o(G,2),q=a(Z),H=a(q,!0);r(q),st(2),r(Z),r(d);var tt=o(d,2);{var et=y=>{var h=Ee(),D=o(a(h),2);Q(D,21,()=>Object.entries(t(_).byAction).slice(0,12),ot,(C,mt)=>{var rt=kt(()=>Ae(t(mt),2));let at=()=>t(rt)[0],S=()=>t(rt)[1];var b=je(),R=a(b),J=o(R),K=a(J);r(J),r(b),m(()=>{n(R,`${at()??""} `),n(K,`(${S()??""})`)}),f("click",b,()=>{l(A,at(),!0),g()}),c(C,b)}),r(D),r(h),c(y,h)},ft=kt(()=>Object.keys(t(_).byAction).length>0);k(tt,y=>{t(ft)&&y(et)})}m((y,h,D,C)=>{n(i,y),V(w,1,`text-2xl font-bold ${t(_).failures>0?"text-red-400":"text-accent-green"}`),n(z,h),n(Y,D),n(H,C)},[()=>t(_).total.toLocaleString(),()=>t(_).failures.toLocaleString(),()=>Object.keys(t(_).byAction).length,()=>Object.keys(t(_).byActor).length]),c(e,s)};k(Lt,e=>{t(W)&&t(_)&&e(ee)})}var xt=o(Lt,2),ut=a(xt);Q(ut,21,()=>$t,ot,(e,s)=>{var d=De(),x=a(d,!0);r(d),m(()=>{V(d,1,`px-2.5 py-1 text-xs rounded-md transition-colors
2
+ ${t(nt)===t(s).value?"bg-accent-cyan/20 text-accent-cyan font-medium":"text-text-muted hover:text-text-primary"}`),n(x,t(s).label)}),f("click",d,()=>{l(nt,t(s).value,!0),g()}),c(e,d)}),r(ut);var N=o(ut,2),pt=a(N);pt.value=pt.__value="";var re=o(pt);Q(re,17,()=>t(Yt),ot,(e,s)=>{var d=Ce(),x=a(d,!0);r(d);var u={};m(()=>{n(x,t(s)),u!==(u=t(s))&&(d.value=(d.__value=t(s))??"")}),c(e,d)}),r(N);var P=o(N,2),bt=a(P);bt.value=bt.__value="";var ae=o(bt);Q(ae,17,()=>Zt,ot,(e,s)=>{var d=Oe(),x=a(d,!0);r(d);var u={};m(()=>{n(x,t(s)),u!==(u=t(s))&&(d.value=(d.__value=t(s))??"")}),c(e,d)}),r(P);var X=o(P,2);Se(X);var Tt=o(X,2);{var se=e=>{var s=Fe();f("click",s,()=>{l(A,""),l(L,""),l(T,""),g()}),c(e,s)};k(Tt,e=>{(t(A)||t(L)||t(T))&&e(se)})}var jt=o(Tt,2),oe=a(jt);r(jt),r(xt);var Et=o(xt,2);{var de=e=>{var s=Ue(),d=a(s,!0);r(s),m(()=>n(d,t(U))),c(e,s)};k(Et,e=>{t(U)&&e(de)})}var qt=o(Et,2);{var ne=e=>{var s=Be();c(e,s)};k(qt,e=>{t(F)&&t(I).length===0&&e(ne)})}var ie=o(qt,2);{var le=e=>{var s=ze(),d=a(s),x=o(a(d));Q(x,21,()=>t(I),u=>u.id,(u,i)=>{var j=Pe(),w=Mt(j),z=a(w),G=a(z,!0);r(z);var E=o(z),Y=a(E),Z=a(Y,!0);r(Y),r(E);var q=o(E),H=a(q),tt=a(H),et=o(tt),ft=a(et,!0);r(et),r(H),r(q);var y=o(q),h=a(y),D=a(h,!0);r(h),r(y);var C=o(y),mt=a(C,!0);r(C),r(w);var rt=o(w,2);{var at=S=>{var b=Ne(),R=a(b),J=a(R),K=a(J),Dt=o(a(K),2),ve=a(Dt,!0);r(Dt),r(K);var _t=o(K,2),Ct=o(a(_t),2),xe=a(Ct,!0);r(Ct),r(_t);var gt=o(_t,2),Ot=o(a(gt),2),ue=a(Ot,!0);r(Ot),r(gt);var yt=o(gt,2),Ft=o(a(yt),2),pe=a(Ft,!0);r(Ft),r(yt);var be=o(yt,2);{var fe=ht=>{var wt=Me(),Ut=o(a(wt),2),me=a(Ut,!0);r(Ut),r(wt),m(()=>n(me,t(i).details)),c(ht,wt)};k(be,ht=>{t(i).details&&ht(fe)})}r(J),r(R),r(b),m(()=>{n(ve,t(i).id),n(xe,t(i).actor_type),n(ue,t(i).resource??"—"),n(pe,t(i).created_at)}),c(S,b)};k(rt,S=>{t(it)===t(i).id&&S(at)})}m((S,b,R)=>{n(G,S),n(Z,t(i).action),Re(H,"title",t(i).actor_type),n(tt,`${b??""} `),n(ft,t(i).actor_id??t(i).actor_type),V(h,1,`px-2 py-0.5 text-[10px] font-semibold uppercase rounded-full border ${R??""}`),n(D,t(i).result),n(mt,t(i).ip??"—")},[()=>Vt(t(i).timestamp),()=>Xt(t(i).actor_type),()=>Wt(t(i).result)]),f("click",w,()=>{l(it,t(it)===t(i).id?null:t(i).id,!0)}),c(u,j)}),r(x),r(d),r(s),c(e,s)},ce=e=>{var s=Ge();c(e,s)};k(ie,e=>{t(I).length>0?e(le):!t(F)&&!t(U)&&e(ce,1)})}r(lt),m(()=>{V(vt,1,`px-3 py-1.5 text-sm rounded-lg border transition-colors
3
+ ${t(W)?"border-accent-cyan/50 bg-accent-cyan/10 text-accent-cyan":"border-border-default bg-bg-secondary text-text-muted hover:text-text-primary hover:border-border-hover"}`),V(M,1,`px-3 py-1.5 text-sm rounded-lg border transition-colors
4
+ ${t(B)?"border-accent-green/50 bg-accent-green/10 text-accent-green":"border-border-default bg-bg-secondary text-text-muted hover:text-text-primary hover:border-border-hover"}`),n(te,t(B)?"⏸ Auto":"▶ Auto"),It.disabled=t(F),n(oe,`${t(I).length??""} entries`)}),f("click",vt,()=>{l(W,!t(W))}),f("click",M,Qt),f("click",It,()=>{g(),St()}),f("change",N,()=>{g()}),Pt(N,()=>t(A),e=>l(A,e)),f("change",P,()=>{g()}),Pt(P,()=>t(T),e=>l(T,e)),f("keydown",X,e=>{e.key==="Enter"&&g()}),Le(X,()=>t(L),e=>l(L,e)),c(zt,lt),he()}_e(["click","change","keydown"]);export{tr as component};
@@ -1,4 +1,4 @@
1
- import{d as Xe,a as it,b as d,f as v,s as l,t as Et,c as ie}from"../chunks/B2A7gHtL.js";import{p as Ze,s as q,a as tr,u as er,b as rr,t as g,c as ar,e as sr,g as t,d as m,f as s,$ as or,h as r,r as e,i as F,j as Rt,n as Dt}from"../chunks/qR_TM3YX.js";import{i as x}from"../chunks/DpBBTLWw.js";import{g as nr,a as at,s as j,e as Tt,i as ne,b as de}from"../chunks/BLtDog0v.js";import{h as dr}from"../chunks/CXQ1lKJR.js";import{g as ir}from"../chunks/Be_uRYmX.js";import{f as lt}from"../chunks/DPrxUVm_.js";var lr=v('<span class="text-xs text-text-muted font-mono"> </span>'),cr=v('<div class="flex items-center gap-1.5 text-xs"><span class="w-2 h-2 rounded-full bg-red-500"></span> <span class="text-text-muted">Errors</span> <span class="text-red-400 font-mono font-semibold"> </span></div>'),vr=v('<div class="flex items-center gap-4 mt-4"><div class="flex items-center gap-1.5 text-xs"><span class="w-2 h-2 rounded-full bg-accent-cyan"></span> <span class="text-text-muted">Total</span> <span class="text-text-primary font-mono font-semibold"> </span></div> <div class="flex items-center gap-1.5 text-xs"><span class="w-2 h-2 rounded-full bg-accent-green glow-pulse"></span> <span class="text-text-muted">Connected</span> <span class="text-accent-green font-mono font-semibold"> </span></div> <div class="flex items-center gap-1.5 text-xs"><span class="w-2 h-2 rounded-full bg-accent-amber"></span> <span class="text-text-muted">Configured</span> <span class="text-text-secondary font-mono font-semibold"> </span></div> <!></div>'),ur=v('<div class="flex flex-col items-center justify-center h-full text-center"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4"><svg class="w-8 h-8 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636a9 9 0 010 12.728m-2.829-2.829a5 5 0 000-7.07m-4.243 9.9a9 9 0 01-4.242-1.757"></path></svg></div> <p class="text-text-muted text-sm">Connect to the gateway to view channel status.</p></div>'),pr=v('<div class="glass rounded-xl p-4 border border-accent-pink/30 mb-4"><div class="flex items-center gap-2 text-accent-pink text-sm"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg> <span> </span></div></div>'),xr=v('<div class="glass rounded-xl p-5 border border-border-default animate-pulse"><div class="flex items-center gap-3 mb-4"><div class="w-10 h-10 rounded-xl bg-bg-tertiary"></div> <div><div class="h-4 w-24 bg-bg-tertiary rounded mb-1.5"></div> <div class="h-3 w-36 bg-bg-tertiary rounded"></div></div></div> <div class="space-y-2.5"><div class="h-3 w-full bg-bg-tertiary rounded"></div> <div class="h-3 w-3/4 bg-bg-tertiary rounded"></div> <div class="h-3 w-1/2 bg-bg-tertiary rounded"></div></div></div>'),gr=v('<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4"></div>'),br=v('<div class="flex flex-col items-center justify-center h-64 text-center"><div class="w-14 h-14 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4"><svg class="w-7 h-7 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path></svg></div> <p class="text-text-muted text-sm">No channels configured. Add channels in your gateway config.</p></div>'),fr=v("<div> </div>"),mr=v('<div class="flex justify-between"><span class="text-text-muted">Linked</span> <span> </span></div>'),_r=v('<div class="flex justify-between"><span class="text-text-muted">Mode</span> <span class="text-text-primary font-mono"> </span></div>'),hr=v('<div class="mx-4 mb-3 p-2.5 rounded-lg bg-red-500/8 border border-red-500/20"><p class="text-xs text-red-400 leading-relaxed break-words"> </p></div>'),wr=v("<div><p> <!> <!> <!></p></div>"),yr=v('<div class="mx-4 mb-3 p-2.5 rounded-lg bg-accent-cyan/8 border border-accent-cyan/20"><p class="text-xs text-accent-cyan"> </p></div>'),kr=v('<div class="mx-4 mb-3 p-2.5 rounded-lg bg-accent-green/8 border border-accent-green/20"><div class="flex items-center gap-2"><svg class="w-4 h-4 text-accent-green" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> <p class="text-xs text-accent-green font-medium">WhatsApp connected successfully!</p></div></div>'),Mr=v('<div class="mx-4 mb-3 text-center"><p class="text-xs text-text-muted animate-pulse">Waiting for scan…</p></div>'),Cr=v('<div class="mx-4 mb-3 flex justify-center"><div><img alt="WhatsApp QR Code" class="w-48 h-48"/></div></div> <!>',1),Ar=ie('<svg class="w-3.5 h-3.5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg> Working…',1),zr=ie('<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg> Show QR',1),Lr=v(`<button class="px-3 py-1.5 text-xs font-medium rounded-lg transition-all
1
+ import{d as Xe,a as it,b as d,f as v,s as l,t as Et,c as ie}from"../chunks/B2A7gHtL.js";import{p as Ze,s as q,a as tr,u as er,b as rr,t as g,c as ar,e as sr,g as t,d as m,f as s,h as r,$ as or,r as e,i as F,j as Rt,n as Dt}from"../chunks/qR_TM3YX.js";import{i as x}from"../chunks/DpBBTLWw.js";import{g as nr,a as at,s as j,e as Tt,i as ne,b as de}from"../chunks/BLtDog0v.js";import{h as dr}from"../chunks/CXQ1lKJR.js";import{g as ir}from"../chunks/Be_uRYmX.js";import{f as lt}from"../chunks/DPrxUVm_.js";var lr=v('<span class="text-xs text-text-muted font-mono"> </span>'),cr=v('<div class="flex items-center gap-1.5 text-xs"><span class="w-2 h-2 rounded-full bg-red-500"></span> <span class="text-text-muted">Errors</span> <span class="text-red-400 font-mono font-semibold"> </span></div>'),vr=v('<div class="flex items-center gap-4 mt-4"><div class="flex items-center gap-1.5 text-xs"><span class="w-2 h-2 rounded-full bg-accent-cyan"></span> <span class="text-text-muted">Total</span> <span class="text-text-primary font-mono font-semibold"> </span></div> <div class="flex items-center gap-1.5 text-xs"><span class="w-2 h-2 rounded-full bg-accent-green glow-pulse"></span> <span class="text-text-muted">Connected</span> <span class="text-accent-green font-mono font-semibold"> </span></div> <div class="flex items-center gap-1.5 text-xs"><span class="w-2 h-2 rounded-full bg-accent-amber"></span> <span class="text-text-muted">Configured</span> <span class="text-text-secondary font-mono font-semibold"> </span></div> <!></div>'),ur=v('<div class="flex flex-col items-center justify-center h-full text-center"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4"><svg class="w-8 h-8 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636a9 9 0 010 12.728m-2.829-2.829a5 5 0 000-7.07m-4.243 9.9a9 9 0 01-4.242-1.757"></path></svg></div> <p class="text-text-muted text-sm">Connect to the gateway to view channel status.</p></div>'),pr=v('<div class="glass rounded-xl p-4 border border-accent-pink/30 mb-4"><div class="flex items-center gap-2 text-accent-pink text-sm"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg> <span> </span></div></div>'),xr=v('<div class="glass rounded-xl p-5 border border-border-default animate-pulse"><div class="flex items-center gap-3 mb-4"><div class="w-10 h-10 rounded-xl bg-bg-tertiary"></div> <div><div class="h-4 w-24 bg-bg-tertiary rounded mb-1.5"></div> <div class="h-3 w-36 bg-bg-tertiary rounded"></div></div></div> <div class="space-y-2.5"><div class="h-3 w-full bg-bg-tertiary rounded"></div> <div class="h-3 w-3/4 bg-bg-tertiary rounded"></div> <div class="h-3 w-1/2 bg-bg-tertiary rounded"></div></div></div>'),gr=v('<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4"></div>'),br=v('<div class="flex flex-col items-center justify-center h-64 text-center"><div class="w-14 h-14 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4"><svg class="w-7 h-7 text-text-muted" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path></svg></div> <p class="text-text-muted text-sm">No channels configured. Add channels in your gateway config.</p></div>'),fr=v("<div> </div>"),mr=v('<div class="flex justify-between"><span class="text-text-muted">Linked</span> <span> </span></div>'),_r=v('<div class="flex justify-between"><span class="text-text-muted">Mode</span> <span class="text-text-primary font-mono"> </span></div>'),hr=v('<div class="mx-4 mb-3 p-2.5 rounded-lg bg-red-500/8 border border-red-500/20"><p class="text-xs text-red-400 leading-relaxed break-words"> </p></div>'),wr=v("<div><p> <!> <!> <!></p></div>"),yr=v('<div class="mx-4 mb-3 p-2.5 rounded-lg bg-accent-cyan/8 border border-accent-cyan/20"><p class="text-xs text-accent-cyan"> </p></div>'),kr=v('<div class="mx-4 mb-3 p-2.5 rounded-lg bg-accent-green/8 border border-accent-green/20"><div class="flex items-center gap-2"><svg class="w-4 h-4 text-accent-green" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> <p class="text-xs text-accent-green font-medium">WhatsApp connected successfully!</p></div></div>'),Mr=v('<div class="mx-4 mb-3 text-center"><p class="text-xs text-text-muted animate-pulse">Waiting for scan…</p></div>'),Cr=v('<div class="mx-4 mb-3 flex justify-center"><div><img alt="WhatsApp QR Code" class="w-48 h-48"/></div></div> <!>',1),Ar=ie('<svg class="w-3.5 h-3.5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg> Working…',1),zr=ie('<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg> Show QR',1),Lr=v(`<button class="px-3 py-1.5 text-xs font-medium rounded-lg transition-all
2
2
  bg-bg-tertiary text-text-secondary border border-border-default
3
3
  hover:text-accent-cyan hover:border-accent-cyan/30
4
4
  disabled:opacity-40 disabled:cursor-not-allowed">Wait for scan</button>`),jr=v(`<!> <!> <!> <div class="px-4 pb-3 flex flex-wrap gap-2"><button class="flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-all
@@ -1,4 +1,4 @@
1
- import{d as ve,a as z,b as i,f as c,s as b,c as Mt,t as ue}from"../chunks/B2A7gHtL.js";import{p as xe,s as y,a as Ct,u as pe,b as me,t as _,c as fe,g as t,d as v,e as be,f as l,$ as ge,h as s,n as Nt,r as a,j as K,k as _e,i as R,l as Ot}from"../chunks/qR_TM3YX.js";import{i as h}from"../chunks/DpBBTLWw.js";import{g as he,a as M,r as ye,b as Y,e as Z,s as Jt,i as $}from"../chunks/BLtDog0v.js";import{h as we}from"../chunks/CXQ1lKJR.js";import{b as jt}from"../chunks/nnazh41B.js";var ke=Mt('<svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg>'),Se=c('<div class="rounded-xl border border-border-default bg-bg-secondary/50 p-8 text-center"><div class="text-text-muted text-sm">Connect to the gateway to use debug tools.</div></div>'),Ce=Mt('<svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg> Executing…',1),Ne=c('<div class="absolute top-2 right-2 px-2 py-0.5 rounded text-[10px] font-bold bg-red-500/20 text-red-400 uppercase tracking-wider">Error</div> <pre class="p-3 text-sm font-mono text-red-400 overflow-auto max-h-[280px] whitespace-pre-wrap"> </pre>',1),Oe=c('<div class="absolute top-2 right-2 px-2 py-0.5 rounded text-[10px] font-bold bg-accent-green/20 text-accent-green uppercase tracking-wider">OK</div> <pre class="p-3 text-sm font-mono text-accent-green/90 overflow-auto max-h-[280px] whitespace-pre-wrap"> </pre>',1),Je=c('<div class="h-full flex items-center justify-center text-text-muted/40 text-sm">Response will appear here</div>'),je=c("<button> </button>"),Me=c('<div class="mt-4 pt-3 border-t border-border-default"><div class="text-xs font-medium text-text-muted mb-2">Recent Calls</div> <div class="flex flex-wrap gap-2"></div></div>'),Ee=c('<div class="rounded-xl border border-red-500/30 bg-red-500/5 p-4 text-red-400 text-sm"> </div>'),He=c("<span> </span>"),We=c('<div><div class="text-[11px] text-text-muted uppercase tracking-wider"> </div> <div class="text-sm text-text-secondary font-mono truncate"> </div></div>'),De=c('<div class="mt-4 pt-3 border-t border-border-default"><details><summary class="text-xs text-text-muted cursor-pointer hover:text-text-secondary transition-colors">Full JSON</summary> <pre class="mt-2 p-3 bg-bg-input rounded-lg text-xs font-mono text-text-secondary overflow-auto max-h-48"> </pre></details></div>'),Re=c('<div class="grid grid-cols-2 gap-3"></div> <!>',1),Ae=c('<div class="text-sm text-text-muted">No data loaded</div>'),Pe=c('<div><div class="text-[11px] text-text-muted uppercase tracking-wider"> </div> <div class="text-sm text-text-secondary font-mono truncate"> </div></div>'),ze=c('<div class="mt-4 pt-3 border-t border-border-default"><details><summary class="text-xs text-text-muted cursor-pointer hover:text-text-secondary transition-colors">Full JSON</summary> <pre class="mt-2 p-3 bg-bg-input rounded-lg text-xs font-mono text-text-secondary overflow-auto max-h-48"> </pre></details></div>'),Ke=c('<div class="grid grid-cols-2 gap-3"></div> <!>',1),Be=c('<div class="text-sm text-text-muted">No data loaded</div>'),Le=c(`<div class="flex items-center gap-2 px-3 py-1.5 rounded-lg bg-bg-input/50 border border-border-default/50
1
+ import{d as ve,a as z,b as i,f as c,s as b,c as Mt,t as ue}from"../chunks/B2A7gHtL.js";import{p as xe,s as y,a as Ct,u as pe,b as me,t as _,c as fe,g as t,d as v,e as be,f as l,h as s,$ as ge,n as Nt,r as a,j as K,k as _e,i as R,l as Ot}from"../chunks/qR_TM3YX.js";import{i as h}from"../chunks/DpBBTLWw.js";import{g as he,a as M,r as ye,b as Y,e as Z,s as Jt,i as $}from"../chunks/BLtDog0v.js";import{h as we}from"../chunks/CXQ1lKJR.js";import{b as jt}from"../chunks/nnazh41B.js";var ke=Mt('<svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg>'),Se=c('<div class="rounded-xl border border-border-default bg-bg-secondary/50 p-8 text-center"><div class="text-text-muted text-sm">Connect to the gateway to use debug tools.</div></div>'),Ce=Mt('<svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg> Executing…',1),Ne=c('<div class="absolute top-2 right-2 px-2 py-0.5 rounded text-[10px] font-bold bg-red-500/20 text-red-400 uppercase tracking-wider">Error</div> <pre class="p-3 text-sm font-mono text-red-400 overflow-auto max-h-[280px] whitespace-pre-wrap"> </pre>',1),Oe=c('<div class="absolute top-2 right-2 px-2 py-0.5 rounded text-[10px] font-bold bg-accent-green/20 text-accent-green uppercase tracking-wider">OK</div> <pre class="p-3 text-sm font-mono text-accent-green/90 overflow-auto max-h-[280px] whitespace-pre-wrap"> </pre>',1),Je=c('<div class="h-full flex items-center justify-center text-text-muted/40 text-sm">Response will appear here</div>'),je=c("<button> </button>"),Me=c('<div class="mt-4 pt-3 border-t border-border-default"><div class="text-xs font-medium text-text-muted mb-2">Recent Calls</div> <div class="flex flex-wrap gap-2"></div></div>'),Ee=c('<div class="rounded-xl border border-red-500/30 bg-red-500/5 p-4 text-red-400 text-sm"> </div>'),He=c("<span> </span>"),We=c('<div><div class="text-[11px] text-text-muted uppercase tracking-wider"> </div> <div class="text-sm text-text-secondary font-mono truncate"> </div></div>'),De=c('<div class="mt-4 pt-3 border-t border-border-default"><details><summary class="text-xs text-text-muted cursor-pointer hover:text-text-secondary transition-colors">Full JSON</summary> <pre class="mt-2 p-3 bg-bg-input rounded-lg text-xs font-mono text-text-secondary overflow-auto max-h-48"> </pre></details></div>'),Re=c('<div class="grid grid-cols-2 gap-3"></div> <!>',1),Ae=c('<div class="text-sm text-text-muted">No data loaded</div>'),Pe=c('<div><div class="text-[11px] text-text-muted uppercase tracking-wider"> </div> <div class="text-sm text-text-secondary font-mono truncate"> </div></div>'),ze=c('<div class="mt-4 pt-3 border-t border-border-default"><details><summary class="text-xs text-text-muted cursor-pointer hover:text-text-secondary transition-colors">Full JSON</summary> <pre class="mt-2 p-3 bg-bg-input rounded-lg text-xs font-mono text-text-secondary overflow-auto max-h-48"> </pre></details></div>'),Ke=c('<div class="grid grid-cols-2 gap-3"></div> <!>',1),Be=c('<div class="text-sm text-text-muted">No data loaded</div>'),Le=c(`<div class="flex items-center gap-2 px-3 py-1.5 rounded-lg bg-bg-input/50 border border-border-default/50
2
2
  hover:border-accent-amber/30 transition-colors group"><span class="text-[10px] text-text-muted font-mono w-5 text-right"></span> <span class="text-sm font-mono text-text-secondary group-hover:text-accent-amber transition-colors truncate"> </span></div>`),Ve=c('<div class="space-y-1.5 max-h-64 overflow-y-auto"></div>'),Fe=c('<div class="text-sm text-text-muted">No models available</div>'),Te=c('<pre class="p-3 bg-bg-input rounded-lg text-xs font-mono text-text-secondary overflow-auto max-h-64 whitespace-pre-wrap"> </pre>'),Ge=c('<div class="text-sm text-text-muted">No heartbeat data</div>'),qe=c(`<div class="rounded-xl border border-accent-cyan/30 bg-bg-secondary/60 p-5
3
3
  shadow-[0_0_30px_rgba(0,229,255,0.06)]"><div class="flex items-center justify-between mb-4"><div><h2 class="text-lg font-semibold text-accent-cyan flex items-center gap-2"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg> Manual RPC Console</h2> <p class="text-xs text-text-muted mt-0.5">Send raw gateway methods with JSON params. <kbd class="text-accent-cyan/70">Ctrl+Enter</kbd> to execute.</p></div></div> <div class="grid grid-cols-1 lg:grid-cols-2 gap-4"><div class="space-y-3"><div><label for="rpc-method" class="block text-xs font-medium text-text-muted mb-1.5">Method</label> <input id="rpc-method" placeholder="e.g. status, health, models.list" class="w-full bg-bg-input border border-border-default rounded-lg px-3 py-2.5
4
4
  font-mono text-sm text-text-primary placeholder:text-text-muted/50
@@ -1 +1 @@
1
- {"version":"1771708916146"}
1
+ {"version":"1771710787483"}
@@ -13,12 +13,12 @@
13
13
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
14
14
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
15
15
  <link rel="preconnect" href="wss://openclaw.honercloud.com" />
16
- <link href="/_app/immutable/entry/start.PIf-cCdk.js" rel="modulepreload">
17
- <link href="/_app/immutable/chunks/DXhHboeH.js" rel="modulepreload">
16
+ <link href="/_app/immutable/entry/start.Bt2xwOar.js" rel="modulepreload">
17
+ <link href="/_app/immutable/chunks/PR_wZ9tz.js" rel="modulepreload">
18
18
  <link href="/_app/immutable/chunks/qR_TM3YX.js" rel="modulepreload">
19
19
  <link href="/_app/immutable/chunks/B3DkuU-J.js" rel="modulepreload">
20
20
  <link href="/_app/immutable/chunks/B-drBnSa.js" rel="modulepreload">
21
- <link href="/_app/immutable/entry/app.BJP-sOIH.js" rel="modulepreload">
21
+ <link href="/_app/immutable/entry/app.DKU3ZeOo.js" rel="modulepreload">
22
22
  <link href="/_app/immutable/chunks/DpBBTLWw.js" rel="modulepreload">
23
23
  <link href="/_app/immutable/chunks/B2A7gHtL.js" rel="modulepreload">
24
24
  <link href="/_app/immutable/chunks/BYXRTvT-.js" rel="modulepreload">
@@ -29,15 +29,15 @@
29
29
  <div style="display: contents">
30
30
  <script>
31
31
  {
32
- __sveltekit_1bzhfcn = {
32
+ __sveltekit_1kv11x0 = {
33
33
  base: ""
34
34
  };
35
35
 
36
36
  const element = document.currentScript.parentElement;
37
37
 
38
38
  Promise.all([
39
- import("/_app/immutable/entry/start.PIf-cCdk.js"),
40
- import("/_app/immutable/entry/app.BJP-sOIH.js")
39
+ import("/_app/immutable/entry/start.Bt2xwOar.js"),
40
+ import("/_app/immutable/entry/app.DKU3ZeOo.js")
41
41
  ]).then(([kit, app]) => {
42
42
  kit.start(app, element);
43
43
  });
@@ -20,7 +20,7 @@ import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-C
20
20
  import { t as formatDocsLink } from "./links-Bo61kCF8.js";
21
21
  import "./progress-HK2tT7Yf.js";
22
22
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-D1zo46ZK.js";
23
- import { n as parsePositiveIntOrUndefined } from "./helpers-BMqFgDx8.js";
23
+ import { n as parsePositiveIntOrUndefined } from "./helpers-CRF4tyVM.js";
24
24
 
25
25
  //#region src/cli/cron-cli/shared.ts
26
26
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");