openclaw-cortex 3.2.4 → 3.2.5

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 (162) hide show
  1. package/dist/{audio-preflight-BT6BcGi_.js → audio-preflight-DgmMV8p-.js} +4 -4
  2. package/dist/build-info.json +3 -3
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/{chrome-CBhKqm1e.js → chrome-DxhUHYxR.js} +7 -7
  5. package/dist/control-ui/_app/immutable/chunks/2UnHt_9K.js +1 -0
  6. package/dist/control-ui/_app/immutable/chunks/B4GbTqhO.js +1 -0
  7. package/dist/control-ui/_app/immutable/chunks/BFumT5Y0.js +112 -0
  8. package/dist/control-ui/_app/immutable/chunks/{C7KVOWgV.js → BLM6VoLO.js} +1 -1
  9. package/dist/control-ui/_app/immutable/chunks/{C9VLzrYr.js → BQKxqYwa.js} +1 -1
  10. package/dist/control-ui/_app/immutable/chunks/{CVAw3cDG.js → BR-s7H7s.js} +1 -1
  11. package/dist/control-ui/_app/immutable/chunks/{Bt3hjGaS.js → BhDMmVbO.js} +1 -1
  12. package/dist/control-ui/_app/immutable/chunks/{kbQmmJpo.js → BpdIPI45.js} +1 -1
  13. package/dist/control-ui/_app/immutable/chunks/{BhXAsS8g.js → BwK9WVrR.js} +1 -1
  14. package/dist/control-ui/_app/immutable/chunks/{CLY1rHgs.js → BwY8sfED.js} +1 -1
  15. package/dist/control-ui/_app/immutable/chunks/{C_LuOpHS.js → C1Eymii5.js} +1 -1
  16. package/dist/control-ui/_app/immutable/chunks/{CseiHJK5.js → CGNab0sK.js} +1 -1
  17. package/dist/control-ui/_app/immutable/chunks/{DCXXFcx5.js → CMAgoL0b.js} +1 -1
  18. package/dist/control-ui/_app/immutable/chunks/{BsUBloFL.js → CRqxfK8Q.js} +1 -1
  19. package/dist/control-ui/_app/immutable/chunks/{C7m1KhrR.js → CTNPOj0C.js} +1 -1
  20. package/dist/control-ui/_app/immutable/chunks/{CHTlfT2F.js → CTWxnwAC.js} +1 -1
  21. package/dist/control-ui/_app/immutable/chunks/{Bh6lEBNv.js → CToOwI3J.js} +1 -1
  22. package/dist/control-ui/_app/immutable/chunks/{BQJCZmRh.js → C_KVsgu8.js} +1 -1
  23. package/dist/control-ui/_app/immutable/chunks/{DJjlYUoC.js → CjRaiADz.js} +1 -1
  24. package/dist/control-ui/_app/immutable/chunks/{DZsBL6ln.js → CmisPrPB.js} +1 -1
  25. package/dist/control-ui/_app/immutable/chunks/{B8DrosHE.js → CtgLaeta.js} +1 -1
  26. package/dist/control-ui/_app/immutable/chunks/{BEwWGCvZ.js → D3i-icoF.js} +1 -1
  27. package/dist/control-ui/_app/immutable/chunks/{CrremO5S.js → D6TmrqPb.js} +4 -4
  28. package/dist/control-ui/_app/immutable/chunks/{BSVakDDW.js → DA25TLUp.js} +1 -1
  29. package/dist/control-ui/_app/immutable/chunks/{DRZM4rH8.js → DBlwFnJd.js} +1 -1
  30. package/dist/control-ui/_app/immutable/chunks/{SHB02qEx.js → DFN8J1NF.js} +1 -1
  31. package/dist/control-ui/_app/immutable/chunks/{dQY-7VfC.js → DLqjuVZy.js} +1 -1
  32. package/dist/control-ui/_app/immutable/chunks/{TuMlQKbB.js → DM2PI6Ub.js} +1 -1
  33. package/dist/control-ui/_app/immutable/chunks/{CiyAy8dp.js → DN-9aXEU.js} +1 -1
  34. package/dist/control-ui/_app/immutable/chunks/{-WaG6-Wa.js → DREM5LJO.js} +1 -1
  35. package/dist/control-ui/_app/immutable/chunks/{Tfaq1PK1.js → DRMrozhP.js} +1 -1
  36. package/dist/control-ui/_app/immutable/chunks/{Ba7JwTQm.js → DVR5y4oH.js} +1 -1
  37. package/dist/control-ui/_app/immutable/chunks/{DMY-Nl0I.js → DcdYjMti.js} +1 -1
  38. package/dist/control-ui/_app/immutable/chunks/{BLtDog0v.js → DeOOVYCg.js} +2 -2
  39. package/dist/control-ui/_app/immutable/chunks/{CPgEtRZT.js → Dgn5d0KE.js} +1 -1
  40. package/dist/control-ui/_app/immutable/chunks/{Bae3KkPP.js → DkQuM6_3.js} +1 -1
  41. package/dist/control-ui/_app/immutable/chunks/{CxBb1Xul.js → Dp0CT_qn.js} +1 -1
  42. package/dist/control-ui/_app/immutable/chunks/{5eXlR5OL.js → Dr9WtqlZ.js} +1 -1
  43. package/dist/control-ui/_app/immutable/chunks/{Du2cKiDo.js → DvXEWbFO.js} +1 -1
  44. package/dist/control-ui/_app/immutable/chunks/{DnRi7lHs.js → FrknC80A.js} +1 -1
  45. package/dist/control-ui/_app/immutable/chunks/{DtDnO4qq.js → HSq6Z-Ri.js} +1 -1
  46. package/dist/control-ui/_app/immutable/chunks/{BrxfYBSP.js → L9tM3YT2.js} +1 -1
  47. package/dist/control-ui/_app/immutable/chunks/{CgWI5Oik.js → Mcnmm_vJ.js} +1 -1
  48. package/dist/control-ui/_app/immutable/chunks/{C--qzJ6W.js → X1MNi0qp.js} +1 -1
  49. package/dist/control-ui/_app/immutable/chunks/{C-JVM0la.js → XUyUXXap.js} +1 -1
  50. package/dist/control-ui/_app/immutable/chunks/{C8PuvvjP.js → XzWkBa-Y.js} +1 -1
  51. package/dist/control-ui/_app/immutable/chunks/{BsZ_uYnn.js → YH-SwxLT.js} +1 -1
  52. package/dist/control-ui/_app/immutable/chunks/{CVZCvD9s.js → c7C9Q4bC.js} +1 -1
  53. package/dist/control-ui/_app/immutable/chunks/{CkF797NI.js → f2z7Vhzy.js} +1 -1
  54. package/dist/control-ui/_app/immutable/chunks/{DwPRscxf.js → qjmh8Sgh.js} +1 -1
  55. package/dist/control-ui/_app/immutable/chunks/{DVy-_nYK.js → xY7vVkih.js} +1 -1
  56. package/dist/control-ui/_app/immutable/chunks/{aXQqHONi.js → xiH5_-XQ.js} +1 -1
  57. package/dist/control-ui/_app/immutable/entry/{app.DdWEO2JM.js → app.D7kdWIZ9.js} +2 -2
  58. package/dist/control-ui/_app/immutable/entry/start.BYvWRDfG.js +1 -0
  59. package/dist/control-ui/_app/immutable/nodes/{0.C6WLhEYF.js → 0.D6FVZzqA.js} +1 -1
  60. package/dist/control-ui/_app/immutable/nodes/{1.C8XVTSEb.js → 1.C9c9_PmZ.js} +1 -1
  61. package/dist/control-ui/_app/immutable/nodes/{10.DfK8stgG.js → 10.BDapaGMa.js} +1 -1
  62. package/dist/control-ui/_app/immutable/nodes/{11.Dzw5x9Jt.js → 11.DBYtQZHB.js} +1 -1
  63. package/dist/control-ui/_app/immutable/nodes/{12.Sd6L6Nq2.js → 12.D8XUK_lu.js} +1 -1
  64. package/dist/control-ui/_app/immutable/nodes/{13.tVVXkjFh.js → 13.BDfcMPWD.js} +1 -1
  65. package/dist/control-ui/_app/immutable/nodes/{14.D93_LX58.js → 14.CRNfMLjf.js} +1 -1
  66. package/dist/control-ui/_app/immutable/nodes/{15.hsoE3Qhh.js → 15.CQ6Hk24N.js} +1 -1
  67. package/dist/control-ui/_app/immutable/nodes/{16.Cf772zrj.js → 16.C4l7NDBm.js} +1 -1
  68. package/dist/control-ui/_app/immutable/nodes/{17.QX2ielYQ.js → 17.BkTX8oXe.js} +1 -1
  69. package/dist/control-ui/_app/immutable/nodes/{18.6qOW3iFE.js → 18.B5ULV77i.js} +1 -1
  70. package/dist/control-ui/_app/immutable/nodes/2.BbOfUph1.js +1 -0
  71. package/dist/control-ui/_app/immutable/nodes/{3.CJTqvGaW.js → 3.CAwDlZXX.js} +1 -1
  72. package/dist/control-ui/_app/immutable/nodes/{4.Dz3JH-PB.js → 4.UqbCNSjq.js} +1 -1
  73. package/dist/control-ui/_app/immutable/nodes/{5.BbK5Iwro.js → 5.fyz3FwUS.js} +1 -1
  74. package/dist/control-ui/_app/immutable/nodes/{6.CbanPjIA.js → 6.Dico67qE.js} +1 -1
  75. package/dist/control-ui/_app/immutable/nodes/{7.B2G6IFSu.js → 7.CTGW4yVr.js} +1 -1
  76. package/dist/control-ui/_app/immutable/nodes/{8.C7FQ9bAP.js → 8.B4g5dpji.js} +1 -1
  77. package/dist/control-ui/_app/immutable/nodes/{9.D4Abr5tX.js → 9.BzrUr7aI.js} +1 -1
  78. package/dist/control-ui/_app/version.json +1 -1
  79. package/dist/control-ui/index.html +6 -6
  80. package/dist/{deliver-6ybd_3jT.js → deliver-Brnl4HfK.js} +1 -1
  81. package/dist/extensionAPI.js +6 -6
  82. package/dist/{image-BccL3ngs.js → image-4JNpzCjn.js} +1 -1
  83. package/dist/{pi-embedded-BgUNEKQv.js → pi-embedded-DCp1o-Q-.js} +16 -16
  84. package/dist/{pi-embedded-helpers-Dh6fWzG0.js → pi-embedded-helpers-OUBsvbo7.js} +4 -4
  85. package/dist/plugin-sdk/{accounts-uAqOguyH.js → accounts-LxMkgia0.js} +1 -1
  86. package/dist/plugin-sdk/{accounts-b1Cok6r_.js → accounts-iN-dbgw4.js} +3 -3
  87. package/dist/plugin-sdk/{accounts-CRs7kbLB.js → accounts-vV5Gfd26.js} +1 -1
  88. package/dist/plugin-sdk/{active-listener-BdVTYHTN.js → active-listener-Bh0LXjEI.js} +1 -1
  89. package/dist/plugin-sdk/{agent-scope-Bs92YR2y.js → agent-scope-CbyigN8s.js} +2 -2
  90. package/dist/plugin-sdk/{api-key-rotation-wd2Jnynp.js → api-key-rotation--_SHlBvO.js} +1 -1
  91. package/dist/plugin-sdk/{audio-preflight-CblfMzuT.js → audio-preflight-Cs-ml8zg.js} +25 -25
  92. package/dist/plugin-sdk/{bindings-BiEEaTNG.js → bindings-EiVe9I7R.js} +2 -2
  93. package/dist/plugin-sdk/{channel-activity-DHI8R5Xg.js → channel-activity-PV3vhwo2.js} +1 -1
  94. package/dist/plugin-sdk/{channel-web-B06HVGIL.js → channel-web-21Mv-TmV.js} +22 -22
  95. package/dist/plugin-sdk/{chrome-ORXV3sOi.js → chrome-DY36v1wL.js} +3 -3
  96. package/dist/plugin-sdk/{chunk-C9J4kyVw.js → chunk-CyOBR4uk.js} +1 -1
  97. package/dist/plugin-sdk/{command-format-BTciq6Gg.js → command-format-C5kdEGEu.js} +1 -1
  98. package/dist/plugin-sdk/{commands-registry-B03cVRjI.js → commands-registry-OichNmLJ.js} +3 -3
  99. package/dist/plugin-sdk/{common-xLIrQlvS.js → common-BnJL1iD6.js} +2 -2
  100. package/dist/plugin-sdk/{config-gGD5Rkaw.js → config-BG3Dq3SQ.js} +9 -9
  101. package/dist/plugin-sdk/{deliver-DrIvPqH5.js → deliver-BtCdGBea.js} +10 -10
  102. package/dist/plugin-sdk/{diagnostic-oBxO5N68.js → diagnostic-DFXnVf2I.js} +1 -1
  103. package/dist/plugin-sdk/{fs-safe--E2UxVCE.js → fs-safe-D3UMk9-G.js} +1 -1
  104. package/dist/plugin-sdk/{image-psst3EfB.js → image-CcHh2-91.js} +4 -4
  105. package/dist/plugin-sdk/index.js +52 -52
  106. package/dist/plugin-sdk/{ir-B7KEB-SH.js → ir-CyBaWJwF.js} +4 -4
  107. package/dist/plugin-sdk/{local-roots-BCWc25rb.js → local-roots-BO0Dyqgm.js} +3 -3
  108. package/dist/plugin-sdk/{login-B3Mf_yyo.js → login-gAP1E9vw.js} +7 -7
  109. package/dist/plugin-sdk/{login-qr-BwyNiRRo.js → login-qr-C_TnVe07.js} +9 -9
  110. package/dist/plugin-sdk/{manager-Dv8oeW8Q.js → manager-CC6jXeB-.js} +8 -8
  111. package/dist/plugin-sdk/{manifest-registry-Lzj-fZNH.js → manifest-registry-BgkX6ON4.js} +1 -1
  112. package/dist/plugin-sdk/{markdown-tables-JToF08xk.js → markdown-tables-Q9Bw5OWT.js} +1 -1
  113. package/dist/plugin-sdk/{message-channel-C3OrO29D.js → message-channel-DxNExIdv.js} +1 -1
  114. package/dist/plugin-sdk/{model-selection-BP-yZfgL.js → model-selection-CcOKuG2n.js} +4 -4
  115. package/dist/plugin-sdk/{normalize-CALo0r3J.js → normalize-DQzsuqr8.js} +4 -4
  116. package/dist/plugin-sdk/{outbound-Xv_dXAwT.js → outbound-BNo9XNzM.js} +7 -7
  117. package/dist/plugin-sdk/{outbound-attachment-BcrG8SHW.js → outbound-attachment-CisuJmNV.js} +2 -2
  118. package/dist/plugin-sdk/{pi-auth-json-cJTtFNw1.js → pi-auth-json-BHnQjxub.js} +5 -5
  119. package/dist/plugin-sdk/{pi-embedded-helpers-DjyrCaOR.js → pi-embedded-helpers-D5mU_VuV.js} +17 -17
  120. package/dist/plugin-sdk/{plugins-DkDfsqpU.js → plugins-DZx_qlHO.js} +3 -3
  121. package/dist/plugin-sdk/{pw-ai-DzpfUQcL.js → pw-ai-DYABE96f.js} +8 -8
  122. package/dist/plugin-sdk/{qmd-manager-CJcPR4Tl.js → qmd-manager-B3_LuPWI.js} +4 -4
  123. package/dist/plugin-sdk/{registry-C8pj8ctW.js → registry-BECEtj9n.js} +2 -2
  124. package/dist/plugin-sdk/{replies-D70UX9el.js → replies-DYi7SN77.js} +3 -3
  125. package/dist/plugin-sdk/{reply-Bd2hTqt2.js → reply-Cjk7LMy5.js} +78 -78
  126. package/dist/plugin-sdk/{reply-prefix-C4uKnJw5.js → reply-prefix-CjyfQ_d1.js} +1 -1
  127. package/dist/plugin-sdk/{resolve-route-D3KbwzED.js → resolve-route-DcFELQ2A.js} +3 -3
  128. package/dist/plugin-sdk/{retry-B8Oq5mgi.js → retry-Bkj1k1me.js} +1 -1
  129. package/dist/plugin-sdk/{runner-eN6avbf7.js → runner-DpYDxpAW.js} +9 -9
  130. package/dist/plugin-sdk/{send-DbftCLdT.js → send-BZCJA8cX.js} +11 -11
  131. package/dist/plugin-sdk/{send-NfHYBhul.js → send-DZKSn0On.js} +7 -7
  132. package/dist/plugin-sdk/{send-g2G5-BE1.js → send-DstsvZrR.js} +7 -7
  133. package/dist/plugin-sdk/{send-DTQ35K1k.js → send-L7Qzaw1k.js} +11 -11
  134. package/dist/plugin-sdk/{send-CYWWJEcn.js → send-ydtZKtPY.js} +6 -6
  135. package/dist/plugin-sdk/{session-BS3El_89.js → session-hN4eOpFg.js} +4 -4
  136. package/dist/plugin-sdk/{skill-commands-Cle2Lzhm.js → skill-commands-BI1wVtHZ.js} +5 -5
  137. package/dist/plugin-sdk/{skills-BKSekIbi.js → skills-Xz3Fbq-R.js} +7 -7
  138. package/dist/plugin-sdk/{sqlite-Yn48izJ_.js → sqlite-DtIiUWZr.js} +1 -1
  139. package/dist/plugin-sdk/{store-Cz4sBcdW.js → store-w9NR0-ll.js} +2 -2
  140. package/dist/plugin-sdk/{subsystem-BfLMZ8kW.js → subsystem-Ck27y_6W.js} +1 -1
  141. package/dist/plugin-sdk/{tables-gytp5jHK.js → tables-CmVJrzl_.js} +1 -1
  142. package/dist/plugin-sdk/{thinking-BOKrkVfN.js → thinking-DIWJ8ngy.js} +5 -5
  143. package/dist/plugin-sdk/{tokens-D1LxPszt.js → tokens-B6GWdF_0.js} +1 -1
  144. package/dist/plugin-sdk/{tool-loop-detection-CYSptBsl.js → tool-loop-detection-CbPwu1_R.js} +2 -2
  145. package/dist/plugin-sdk/web-DV9s3A0M.js +65 -0
  146. package/dist/plugin-sdk/{whatsapp-actions-Cxf0P-Zz.js → whatsapp-actions-DdnRWwJa.js} +20 -20
  147. package/dist/{pw-ai-Bp7tQXP7.js → pw-ai-ByDR1q8k.js} +1 -1
  148. package/dist/{runner-j4Bfr_LY.js → runner-BYhtaPKn.js} +1 -1
  149. package/dist/{web-y3J71ECd.js → web-ZW9Geotk.js} +6 -6
  150. package/package.json +1 -1
  151. package/dist/control-ui/_app/immutable/chunks/BBXALFLP.js +0 -112
  152. package/dist/control-ui/_app/immutable/chunks/BZPuz03W.js +0 -1
  153. package/dist/control-ui/_app/immutable/chunks/CbL4AD8o.js +0 -1
  154. package/dist/control-ui/_app/immutable/chunks/CrSotJB3.js +0 -1
  155. package/dist/control-ui/_app/immutable/entry/app._v8i6nBc.js +0 -2
  156. package/dist/control-ui/_app/immutable/entry/start.B3_R8Pb8.js +0 -1
  157. package/dist/control-ui/_app/immutable/entry/start.lsitudt4.js +0 -1
  158. package/dist/control-ui/_app/immutable/nodes/0.CPUGwa5J.js +0 -33
  159. package/dist/control-ui/_app/immutable/nodes/1.e1sYpbGn.js +0 -1
  160. package/dist/control-ui/_app/immutable/nodes/15.jtEPdobl.js +0 -30
  161. package/dist/control-ui/_app/immutable/nodes/2.BTwPpsUd.js +0 -1
  162. package/dist/plugin-sdk/web-CHrq1191.js +0 -65
@@ -1,4 +1,4 @@
1
- import{d as Is,a as y,b as l,f as i,s as f,c as Fe}from"../chunks/B2A7gHtL.js";import{p as Ks,s as H,a as Ye,u as yt,d,g as e,b as kt,t as h,c as Ns,e as Qs,h as s,f as o,$ as Ws,r as t,n as De,i as te,j as Zt,o as Gs}from"../chunks/qR_TM3YX.js";import{i as _}from"../chunks/DpBBTLWw.js";import{g as Js,a as ze,s as S,e as Ze,i as es,r as ts,b as ss}from"../chunks/BLtDog0v.js";import{h as Xs}from"../chunks/CXQ1lKJR.js";import{s as Ys}from"../chunks/SHB02qEx.js";import{b as as}from"../chunks/nnazh41B.js";import{i as Se,s as $e}from"../chunks/DVP7Iy08.js";import{g as Zs}from"../chunks/Be_uRYmX.js";var ea=i("<span> </span>"),ta=i('<span class="ml-1 px-1.5 py-0.5 rounded-full bg-accent-pink/20 text-accent-pink text-[10px] font-bold svelte-19gsovj"> </span>'),sa=i('<span class="ml-1 px-1.5 py-0.5 rounded-full bg-accent-green/20 text-accent-green text-[10px] font-bold svelte-19gsovj"> </span>'),aa=i('<div class="flex flex-col items-center justify-center h-full text-center svelte-19gsovj"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4 svelte-19gsovj"><svg class="w-8 h-8 text-text-muted svelte-19gsovj" 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" class="svelte-19gsovj"></path></svg></div> <p class="text-text-muted text-sm svelte-19gsovj">Connect to the gateway to manage exec approvals.</p></div>'),oa=i('<span class="text-accent-amber svelte-19gsovj"> </span>'),ra=i('<div class="rounded-xl border border-border-default bg-bg-secondary/50 p-8 text-center svelte-19gsovj"><div class="w-12 h-12 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mx-auto mb-3 svelte-19gsovj"><svg class="w-6 h-6 text-accent-green svelte-19gsovj" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" class="svelte-19gsovj"></path></svg></div> <p class="text-text-muted text-sm svelte-19gsovj">No pending approval requests</p> <p class="text-text-muted text-xs mt-1 svelte-19gsovj">Requests will appear here in real-time when agents need permission</p></div>'),la=i('<span class="flex items-center gap-1 font-mono svelte-19gsovj"> </span>'),va=i('<span class="flex items-center gap-1 svelte-19gsovj"> </span>'),na=i('<span class="flex items-center gap-1 svelte-19gsovj"> </span>'),ia=i('<span class="font-mono svelte-19gsovj"> </span>'),da=i('<span class="px-1.5 py-0.5 rounded bg-accent-purple/10 text-accent-purple border border-accent-purple/20 font-mono svelte-19gsovj"> </span>'),ca=Fe('<svg class="w-4 h-4 animate-spin svelte-19gsovj" 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" class="svelte-19gsovj"></path></svg>'),ua=Fe('<svg class="w-4 h-4 svelte-19gsovj" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" class="svelte-19gsovj"></path></svg>'),ga=i(`<div><div class="h-1 bg-bg-tertiary svelte-19gsovj"><div></div></div> <div class="p-4 svelte-19gsovj"><div class="flex items-start justify-between gap-4 mb-3 svelte-19gsovj"><div class="min-w-0 flex-1 svelte-19gsovj"><div class="flex items-center gap-2 mb-1 svelte-19gsovj"><svg class="w-4 h-4 text-accent-amber flex-shrink-0 svelte-19gsovj" 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" class="svelte-19gsovj"></path></svg> <code class="text-sm font-mono text-accent-cyan break-all svelte-19gsovj"> </code></div></div> <div><svg class="w-3.5 h-3.5 svelte-19gsovj" 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" class="svelte-19gsovj"></path></svg> </div></div> <div class="flex flex-wrap items-center gap-x-4 gap-y-1.5 text-xs text-text-muted mb-4 svelte-19gsovj"><!> <!> <!> <!> <!> <span class="font-mono text-text-muted/60 svelte-19gsovj"> </span></div> <div class="flex items-center gap-2 svelte-19gsovj"><button class="flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-lg transition-all
1
+ import{d as Is,a as y,b as l,f as i,s as f,c as Fe}from"../chunks/B2A7gHtL.js";import{p as Ks,s as H,a as Ye,u as yt,d,g as e,b as kt,t as h,c as Ns,e as Qs,h as s,f as o,$ as Ws,r as t,n as De,i as te,j as Zt,o as Gs}from"../chunks/qR_TM3YX.js";import{i as _}from"../chunks/DpBBTLWw.js";import{g as Js,a as ze,s as S,e as Ze,i as es,r as ts,b as ss}from"../chunks/DeOOVYCg.js";import{h as Xs}from"../chunks/CXQ1lKJR.js";import{s as Ys}from"../chunks/DFN8J1NF.js";import{b as as}from"../chunks/nnazh41B.js";import{i as Se,s as $e}from"../chunks/DVP7Iy08.js";import{g as Zs}from"../chunks/Be_uRYmX.js";var ea=i("<span> </span>"),ta=i('<span class="ml-1 px-1.5 py-0.5 rounded-full bg-accent-pink/20 text-accent-pink text-[10px] font-bold svelte-19gsovj"> </span>'),sa=i('<span class="ml-1 px-1.5 py-0.5 rounded-full bg-accent-green/20 text-accent-green text-[10px] font-bold svelte-19gsovj"> </span>'),aa=i('<div class="flex flex-col items-center justify-center h-full text-center svelte-19gsovj"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mb-4 svelte-19gsovj"><svg class="w-8 h-8 text-text-muted svelte-19gsovj" 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" class="svelte-19gsovj"></path></svg></div> <p class="text-text-muted text-sm svelte-19gsovj">Connect to the gateway to manage exec approvals.</p></div>'),oa=i('<span class="text-accent-amber svelte-19gsovj"> </span>'),ra=i('<div class="rounded-xl border border-border-default bg-bg-secondary/50 p-8 text-center svelte-19gsovj"><div class="w-12 h-12 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mx-auto mb-3 svelte-19gsovj"><svg class="w-6 h-6 text-accent-green svelte-19gsovj" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" class="svelte-19gsovj"></path></svg></div> <p class="text-text-muted text-sm svelte-19gsovj">No pending approval requests</p> <p class="text-text-muted text-xs mt-1 svelte-19gsovj">Requests will appear here in real-time when agents need permission</p></div>'),la=i('<span class="flex items-center gap-1 font-mono svelte-19gsovj"> </span>'),va=i('<span class="flex items-center gap-1 svelte-19gsovj"> </span>'),na=i('<span class="flex items-center gap-1 svelte-19gsovj"> </span>'),ia=i('<span class="font-mono svelte-19gsovj"> </span>'),da=i('<span class="px-1.5 py-0.5 rounded bg-accent-purple/10 text-accent-purple border border-accent-purple/20 font-mono svelte-19gsovj"> </span>'),ca=Fe('<svg class="w-4 h-4 animate-spin svelte-19gsovj" 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" class="svelte-19gsovj"></path></svg>'),ua=Fe('<svg class="w-4 h-4 svelte-19gsovj" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" class="svelte-19gsovj"></path></svg>'),ga=i(`<div><div class="h-1 bg-bg-tertiary svelte-19gsovj"><div></div></div> <div class="p-4 svelte-19gsovj"><div class="flex items-start justify-between gap-4 mb-3 svelte-19gsovj"><div class="min-w-0 flex-1 svelte-19gsovj"><div class="flex items-center gap-2 mb-1 svelte-19gsovj"><svg class="w-4 h-4 text-accent-amber flex-shrink-0 svelte-19gsovj" 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" class="svelte-19gsovj"></path></svg> <code class="text-sm font-mono text-accent-cyan break-all svelte-19gsovj"> </code></div></div> <div><svg class="w-3.5 h-3.5 svelte-19gsovj" 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" class="svelte-19gsovj"></path></svg> </div></div> <div class="flex flex-wrap items-center gap-x-4 gap-y-1.5 text-xs text-text-muted mb-4 svelte-19gsovj"><!> <!> <!> <!> <!> <span class="font-mono text-text-muted/60 svelte-19gsovj"> </span></div> <div class="flex items-center gap-2 svelte-19gsovj"><button class="flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-lg transition-all
2
2
  bg-accent-green/15 text-accent-green border border-accent-green/30
3
3
  hover:bg-accent-green/25 hover:border-accent-green/50 hover:shadow-[0_0_12px_rgba(0,255,136,0.15)]
4
4
  disabled:opacity-40 disabled:cursor-not-allowed svelte-19gsovj"><!> Approve</button> <button class="flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-lg transition-all
@@ -1,4 +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
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/DeOOVYCg.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
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
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
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,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
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/DeOOVYCg.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 zr,a as k,b as c,f as v,s as S,c as qe,e as Lr}from"../chunks/B2A7gHtL.js";import{p as $r,s as C,a as Se,u as Fr,b as Rr,t as m,c as Tr,e as qr,d as l,g as e,h as o,f as p,$ as Er,r as n,n as Fe,k as de,j as Lt,i as _,l as Ur}from"../chunks/qR_TM3YX.js";import{i as y}from"../chunks/DpBBTLWw.js";import{g as Br,a as D,s as $,e as ue,i as ve,r as Re,c as pe,d as Hr,b as Te}from"../chunks/BLtDog0v.js";import{h as Ir}from"../chunks/CXQ1lKJR.js";import{b as lt}from"../chunks/nnazh41B.js";import{i as Dr,s as Pr}from"../chunks/DVP7Iy08.js";import{g as Gr}from"../chunks/Be_uRYmX.js";var Kr=v('<span class="text-xs text-text-muted ml-2"> </span>'),Qr=qe('<svg class="w-4 h-4 animate-spin inline mr-1" 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>'),Zr=v('<p class="text-xs text-status-error/80 font-mono"> </p>'),Wr=v('<div class="rounded-xl border border-status-error/30 bg-status-error/10 p-4"><p class="text-sm font-medium text-status-error mb-2">⚠️ Configuration Issues</p> <!></div>'),Xr=v('<div class="rounded-xl border border-status-error/30 bg-status-error/10 p-4"><p class="text-sm text-status-error"> </p></div>'),Yr=v('<div class="text-center py-16"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mx-auto 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="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"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg></div> <p class="text-text-muted text-sm">Connect to the gateway to edit configuration.</p></div>'),ea=v('<div class="rounded-xl border border-border-default bg-bg-secondary/50 p-4 animate-pulse"><div class="h-4 w-32 bg-bg-tertiary rounded mb-3"></div> <div class="h-3 w-full bg-bg-tertiary rounded mb-2"></div> <div class="h-3 w-3/4 bg-bg-tertiary rounded"></div></div>'),ta=v('<div class="space-y-4"></div>'),ra=v(`<div class="rounded-xl border border-border-default bg-bg-secondary/50 overflow-hidden"><div class="px-4 py-3 border-b border-border-default flex items-center justify-between"><span class="text-sm font-medium text-text-primary">Raw Configuration (JSON)</span> <span class="text-xs text-text-muted font-mono"> </span></div> <textarea class="w-full h-[600px] p-4 bg-bg-primary text-text-primary font-mono text-sm
1
+ import{d as zr,a as k,b as c,f as v,s as S,c as qe,e as Lr}from"../chunks/B2A7gHtL.js";import{p as $r,s as C,a as Se,u as Fr,b as Rr,t as m,c as Tr,e as qr,d as l,g as e,h as o,f as p,$ as Er,r as n,n as Fe,k as de,j as Lt,i as _,l as Ur}from"../chunks/qR_TM3YX.js";import{i as y}from"../chunks/DpBBTLWw.js";import{g as Br,a as D,s as $,e as ue,i as ve,r as Re,c as pe,d as Hr,b as Te}from"../chunks/DeOOVYCg.js";import{h as Ir}from"../chunks/CXQ1lKJR.js";import{b as lt}from"../chunks/nnazh41B.js";import{i as Dr,s as Pr}from"../chunks/DVP7Iy08.js";import{g as Gr}from"../chunks/Be_uRYmX.js";var Kr=v('<span class="text-xs text-text-muted ml-2"> </span>'),Qr=qe('<svg class="w-4 h-4 animate-spin inline mr-1" 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>'),Zr=v('<p class="text-xs text-status-error/80 font-mono"> </p>'),Wr=v('<div class="rounded-xl border border-status-error/30 bg-status-error/10 p-4"><p class="text-sm font-medium text-status-error mb-2">⚠️ Configuration Issues</p> <!></div>'),Xr=v('<div class="rounded-xl border border-status-error/30 bg-status-error/10 p-4"><p class="text-sm text-status-error"> </p></div>'),Yr=v('<div class="text-center py-16"><div class="w-16 h-16 rounded-2xl bg-bg-tertiary border border-border-default flex items-center justify-center mx-auto 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="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"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg></div> <p class="text-text-muted text-sm">Connect to the gateway to edit configuration.</p></div>'),ea=v('<div class="rounded-xl border border-border-default bg-bg-secondary/50 p-4 animate-pulse"><div class="h-4 w-32 bg-bg-tertiary rounded mb-3"></div> <div class="h-3 w-full bg-bg-tertiary rounded mb-2"></div> <div class="h-3 w-3/4 bg-bg-tertiary rounded"></div></div>'),ta=v('<div class="space-y-4"></div>'),ra=v(`<div class="rounded-xl border border-border-default bg-bg-secondary/50 overflow-hidden"><div class="px-4 py-3 border-b border-border-default flex items-center justify-between"><span class="text-sm font-medium text-text-primary">Raw Configuration (JSON)</span> <span class="text-xs text-text-muted font-mono"> </span></div> <textarea class="w-full h-[600px] p-4 bg-bg-primary text-text-primary font-mono text-sm
2
2
  resize-none focus:outline-none border-none" spellcheck="false"></textarea></div>`),aa=v("<button> </button>"),na=v('<span class="text-xs text-text-muted hidden md:inline"> </span>'),oa=v('<span class="text-xs text-accent-green">configured</span>'),sa=v('<span class="text-text-primary"> </span>'),ia=v('<span class="text-text-primary"> </span>'),la=v('<span class="text-red-400 ml-0.5 text-xs">*</span>'),ca=v('<p class="text-xs text-text-muted mb-2"> </p>'),da=v('<label class="inline-flex items-center gap-2 cursor-pointer"><input type="checkbox" class="w-4 h-4 rounded border-border-default bg-bg-tertiary accent-accent-cyan"/> <span class="text-sm text-text-secondary"> </span></label>'),ua=v("<option> </option>"),va=v("<select><option>— not set —</option><!></select>"),pa=v('<input type="number"/>'),fa=v('<textarea spellcheck="false"></textarea>'),xa=v('<div class="mt-1"><button class="text-xs text-accent-cyan hover:underline"> </button> <!></div>'),ba=v('<textarea spellcheck="false"></textarea>'),ma=v("<textarea></textarea>"),ga=v("<input/>"),ya=v('<p class="mt-1 text-xs text-red-400 bg-red-500/5 border border-red-500/30 rounded px-2 py-1"> </p>'),_a=v('<span class="text-[10px] text-text-muted"> </span>'),ha=v('<span class="text-[10px] text-accent-amber">nullable</span>'),wa=v('<div class="group"><div class="flex items-start gap-3"><div class="flex-1 min-w-0"><label class="block text-sm font-medium text-text-secondary mb-1"><span class="font-mono text-xs text-accent-purple mr-1"> </span> <!> <!></label> <!> <!> <!> <div class="mt-1 flex items-center gap-2"><span class="text-[10px] text-text-muted font-mono"> </span> <!> <!></div></div></div></div>'),ka=v(`<textarea class="w-full h-32 px-3 py-2 rounded-lg border border-border-default bg-bg-primary
3
3
  text-xs text-text-primary font-mono resize-y focus:outline-none focus:border-accent-cyan" spellcheck="false"></textarea>`),Sa=v('<div class="border-t border-border-default px-4 py-3 space-y-4"><!></div>'),Ca=v('<div class="rounded-xl border border-border-default bg-bg-secondary/50 overflow-hidden"><button class="w-full px-4 py-3 flex items-center justify-between hover:bg-bg-tertiary/50 transition-all"><div class="flex items-center gap-3"><span class="text-sm font-mono text-accent-cyan"> </span> <span class="text-sm text-text-primary font-medium"> </span> <!></div> <div class="flex items-center gap-2"><!> <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></div></button> <!></div>'),ja=v(`<div class="flex items-center gap-3 flex-wrap"><input type="text" placeholder="Search config keys..." class="flex-1 min-w-[200px] px-4 py-2 rounded-lg border border-border-default bg-bg-tertiary
4
4
  text-sm text-text-primary placeholder:text-text-muted
@@ -1,4 +1,4 @@
1
- import{d as nr,a as D,b as c,s as v,f as x,t as ct}from"../chunks/B2A7gHtL.js";import{p as or,s as m,a as $t,u as sr,b as lr,t as h,c as dr,d as o,e as ir,g as e,f as n,h as a,$ as cr,r,n as St,i as ye,l as ut,k as Mt}from"../chunks/qR_TM3YX.js";import{i as M}from"../chunks/DpBBTLWw.js";import{g as ur,a as ce,s as H,r as Z,e as ne,i as ge,b as vt}from"../chunks/BLtDog0v.js";import{h as vr}from"../chunks/CXQ1lKJR.js";import{b as j,a as Tt}from"../chunks/nnazh41B.js";import{b as Et}from"../chunks/DVP7Iy08.js";import{g as xr}from"../chunks/Be_uRYmX.js";var pr=x("<span> </span>"),br=x('<div class="p-3 rounded-lg bg-red-500/10 border border-red-500/30 text-red-400 text-sm"> </div>'),mr=x("<button> </button>"),fr=x(`<div><label class="block text-xs text-text-muted mb-1">Date & Time</label> <input type="datetime-local" class="px-3 py-2 rounded-lg bg-bg-tertiary border border-border-default
1
+ import{d as nr,a as D,b as c,s as v,f as x,t as ct}from"../chunks/B2A7gHtL.js";import{p as or,s as m,a as $t,u as sr,b as lr,t as h,c as dr,d as o,e as ir,g as e,f as n,h as a,$ as cr,r,n as St,i as ye,l as ut,k as Mt}from"../chunks/qR_TM3YX.js";import{i as M}from"../chunks/DpBBTLWw.js";import{g as ur,a as ce,s as H,r as Z,e as ne,i as ge,b as vt}from"../chunks/DeOOVYCg.js";import{h as vr}from"../chunks/CXQ1lKJR.js";import{b as j,a as Tt}from"../chunks/nnazh41B.js";import{b as Et}from"../chunks/DVP7Iy08.js";import{g as xr}from"../chunks/Be_uRYmX.js";var pr=x("<span> </span>"),br=x('<div class="p-3 rounded-lg bg-red-500/10 border border-red-500/30 text-red-400 text-sm"> </div>'),mr=x("<button> </button>"),fr=x(`<div><label class="block text-xs text-text-muted mb-1">Date & Time</label> <input type="datetime-local" class="px-3 py-2 rounded-lg bg-bg-tertiary border border-border-default
2
2
  text-text-primary text-sm focus:outline-none focus:border-accent-purple/60 transition-all"/></div>`),yr=x("<button> </button>"),gr=x(`<div><label class="block text-xs text-text-muted mb-1.5">Interval</label> <div class="flex flex-wrap gap-1.5 mb-2"></div> <div class="flex items-center gap-2"><input type="number" min="1000" step="1000" class="w-40 px-3 py-2 rounded-lg bg-bg-tertiary border border-border-default
3
3
  text-text-primary text-sm focus:outline-none focus:border-accent-purple/60 transition-all"/> <span class="text-xs text-text-muted"> </span></div></div>`),_r=x('<p class="mt-1 text-xs text-accent-cyan"> </p>'),hr=x("<button> </button>"),kr=x("<option> </option>"),wr=x(`<div class="space-y-3"><div><label class="block text-xs text-text-muted mb-1.5">Cron Expression</label> <input type="text" placeholder="*/5 * * * *" class="w-full px-3 py-2 rounded-lg bg-bg-tertiary border border-border-default
4
4
  text-text-primary font-mono text-sm placeholder:text-text-muted/50
@@ -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,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
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/DeOOVYCg.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":"1771722669035"}
1
+ {"version":"1771729985472"}
@@ -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.lsitudt4.js" rel="modulepreload">
17
- <link href="/_app/immutable/chunks/CrSotJB3.js" rel="modulepreload">
16
+ <link href="/_app/immutable/entry/start.BYvWRDfG.js" rel="modulepreload">
17
+ <link href="/_app/immutable/chunks/BhDMmVbO.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.DdWEO2JM.js" rel="modulepreload">
21
+ <link href="/_app/immutable/entry/app.D7kdWIZ9.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_1iyr1tn = {
32
+ __sveltekit_1tos2po = {
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.lsitudt4.js"),
40
- import("/_app/immutable/entry/app.DdWEO2JM.js")
39
+ import("/_app/immutable/entry/start.BYvWRDfG.js"),
40
+ import("/_app/immutable/entry/app.D7kdWIZ9.js")
41
41
  ]).then(([kit, app]) => {
42
42
  kit.start(app, element);
43
43
  });
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, y as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-CGx2ESmP.js";
6
6
  import { n as SILENT_REPLY_TOKEN, r as isSilentReplyText } from "./tokens-B8d2DiXw.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-C2vFjSxX.js";
8
- import { R as appendAssistantMessageToSessionTranscript, i as isMessagingToolDuplicate, z as resolveMirroredTranscriptText } from "./pi-embedded-helpers-Dh6fWzG0.js";
8
+ import { R as appendAssistantMessageToSessionTranscript, i as isMessagingToolDuplicate, z as resolveMirroredTranscriptText } from "./pi-embedded-helpers-OUBsvbo7.js";
9
9
  import { d as getChannelDock } from "./thinking-sqH8qhVZ.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-YQGDBsHo.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CNKgA0te.js";
@@ -7,14 +7,14 @@ import { a as resolveAgentIdentity } from "./reply-prefix-grMDaiM2.js";
7
7
  import "./github-copilot-token-ttqQRqMA.js";
8
8
  import "./env-DgmT4mUn.js";
9
9
  import "./tokens-B8d2DiXw.js";
10
- import { D as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-BgUNEKQv.js";
10
+ import { D as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-DCp1o-Q-.js";
11
11
  import "./normalize-CfNzaFyq.js";
12
12
  import "./accounts-DAComajo.js";
13
13
  import "./bindings-DKo-BShN.js";
14
14
  import "./send-DvsUXpdt.js";
15
15
  import "./plugins-C2vFjSxX.js";
16
16
  import "./send-Upj0eHCP.js";
17
- import "./deliver-6ybd_3jT.js";
17
+ import "./deliver-Brnl4HfK.js";
18
18
  import "./diagnostic-BPqN_C5K.js";
19
19
  import "./diagnostic-session-state-Bu3E4Enn.js";
20
20
  import "./accounts-4VxR4Yrw.js";
@@ -22,11 +22,11 @@ import "./send-hqBIWGzJ.js";
22
22
  import "./fs-safe-BNEy-_bK.js";
23
23
  import "./pi-model-discovery-DaNAekda.js";
24
24
  import "./message-channel-BxsLQyfw.js";
25
- import { B as loadSessionStore, U as saveSessionStore } from "./pi-embedded-helpers-Dh6fWzG0.js";
25
+ import { B as loadSessionStore, U as saveSessionStore } from "./pi-embedded-helpers-OUBsvbo7.js";
26
26
  import "./config-DZybbpxs.js";
27
27
  import "./manifest-registry-DmjapxrQ.js";
28
28
  import "./common-DqP79TiS.js";
29
- import "./chrome-CBhKqm1e.js";
29
+ import "./chrome-DxhUHYxR.js";
30
30
  import "./skills-BJhU2buL.js";
31
31
  import "./redact-DAKoy-tb.js";
32
32
  import "./errors-BxR4oB-s.js";
@@ -35,7 +35,7 @@ import "./store-DVZZrj-c.js";
35
35
  import "./thinking-sqH8qhVZ.js";
36
36
  import "./accounts-Dh62JQhz.js";
37
37
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-COn9vdws.js";
38
- import "./image-BccL3ngs.js";
38
+ import "./image-4JNpzCjn.js";
39
39
  import "./manager-BKOqLHFc.js";
40
40
  import "./gemini-auth-C_n3M1sL.js";
41
41
  import "./sqlite-CNpRo6JS.js";
@@ -47,7 +47,7 @@ import "./ir-DGItgw6U.js";
47
47
  import "./render-B1VqYyvo.js";
48
48
  import "./commands-registry-C4h5lzUe.js";
49
49
  import "./skill-commands-BI5yKCkL.js";
50
- import "./runner-j4Bfr_LY.js";
50
+ import "./runner-BYhtaPKn.js";
51
51
  import "./fetch-BMa0enEg.js";
52
52
  import "./send-Gf-yf1jA.js";
53
53
  import "./outbound-attachment-BIo6SQN8.js";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { D as isRecord, I as shortenHomeInString } from "./registry-dD2_jBuv.js";
3
3
  import { G as resolveOpenClawAgentDir, S as getApiKeyForModel, Y as normalizeSecretInput, _ as resolveImplicitBedrockProvider, g as normalizeProviders, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-C5wgk3PY.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-Dh6fWzG0.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-OUBsvbo7.js";
6
6
  import { n as loadConfig } from "./config-DZybbpxs.js";
7
7
  import { n as redactToolDetail } from "./redact-DAKoy-tb.js";
8
8
  import path from "node:path";
@@ -15,7 +15,7 @@ import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
15
15
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-DvsUXpdt.js";
16
16
  import { n as listChannelPlugins, r as normalizeChannelId$1, t as getChannelPlugin } from "./plugins-C2vFjSxX.js";
17
17
  import { $ as hasAnyGuildPermissionDiscord, A as addRoleDiscord, B as removeRoleDiscord, C as fetchMessageDiscord, Ct as applyChannelMatchMeta, D as readMessagesDiscord, E as pinMessageDiscord, Et as resolveChannelEntryMatchWithFallback, F as fetchRoleInfoDiscord, G as createChannelDiscord, H as listGuildEmojisDiscord, I as fetchVoiceStatusDiscord, J as moveChannelDiscord, K as deleteChannelDiscord, L as kickMemberDiscord, M as createScheduledEventDiscord, N as fetchChannelInfoDiscord, O as searchMessagesDiscord, P as fetchMemberInfoDiscord, Q as fetchChannelPermissionsDiscord, R as listGuildChannelsDiscord, S as editMessageDiscord, St as fetchDiscord, T as listThreadsDiscord, Tt as normalizeChannelSlug, U as uploadEmojiDiscord, V as timeoutMemberDiscord, W as uploadStickerDiscord, X as setChannelPermissionDiscord, Y as removeChannelPermissionDiscord, Z as stripUndefinedFields, _ as sendPollDiscord, _t as shouldEmitDiscordReactionNotification, a as removeReactionDiscord, at as listDiscordDirectoryPeersLive, b as createThreadDiscord, bt as resolveDiscordSystemLocation, c as formatDiscordComponentEventText, ct as normalizeDiscordAllowList, d as parseDiscordModalCustomId, dt as resolveDiscordChannelConfigWithFallback, et as createDiscordClient, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordGuildEntry, g as sendMessageDiscord, gt as resolveGroupDmAllow, h as resolveDiscordModalEntry, ht as resolveDiscordShouldRequireMention, i as removeOwnReactionsDiscord, it as listDiscordDirectoryGroupsLive, j as banMemberDiscord, k as unpinMessageDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordSlug, m as resolveDiscordComponentEntry, mt as resolveDiscordOwnerAllowFrom, n as fetchReactionsDiscord, nt as parseDiscordTarget, o as sendDiscordComponentMessage, ot as allowListMatches$1, p as readDiscordComponentSpec, pt as resolveDiscordMemberAccessState, q as editChannelDiscord, r as reactMessageDiscord, rt as resolveDiscordChannelId, s as createDiscordFormModal, st as isDiscordGroupAllowedByPolicy, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordAllowListMatch, v as sendStickerDiscord, vt as formatDiscordReactionEmoji, w as listPinsDiscord, wt as buildChannelKeyCandidates, x as deleteMessageDiscord, xt as resolveTimestampMs, y as sendVoiceMessageDiscord, yt as formatDiscordUserTag, z as listScheduledEventsDiscord } from "./send-Upj0eHCP.js";
18
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-6ybd_3jT.js";
18
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-Brnl4HfK.js";
19
19
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-BPqN_C5K.js";
20
20
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bu3E4Enn.js";
21
21
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-4VxR4Yrw.js";
@@ -23,11 +23,11 @@ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normali
23
23
  import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, m as imageMimeFromFormat, s as getImageMetadata, u as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./fs-safe-BNEy-_bK.js";
24
24
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
25
25
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BxsLQyfw.js";
26
- import { $ as normalizeSessionDeliveryFields, A as isTransientHttpError, At as getBridgeAuthForPort, B as loadSessionStore, Bt as normalizeToolName, C as isContextOverflowError, Ct as resolveSessionLockMaxHoldFromTimeout, D as isRateLimitAssistantError, Dt as resolveProfile, E as isLikelyContextOverflowError, Et as resolveBrowserConfig, F as resolveSandboxContext, Ft as buildPluginToolGroups, G as updateSessionStore, Gt as buildBootstrapContextFiles, H as recordSessionMetaFromInbound, Ht as stripPluginOnlyAllowlist, I as resolveSandboxRuntimeStatus, It as collectExplicitAllowlist, J as resolveCacheTtlMs$1, Jt as resolveBootstrapTotalMaxChars, K as updateSessionStoreEntry, Kt as ensureSessionHeader, L as extractDeliveryInfo, Lt as expandPolicyWithPluginGroups, M as parseImageSizeError, Mt as resolveBrowserControlAuth, N as sanitizeUserFacingText, Nt as resolveSandboxConfigForAgent, O as isRawApiErrorPayload, Ot as DEFAULT_UPLOAD_DIR, P as ensureSandboxWorkspaceForSession, Pt as applyOwnerOnlyToolPolicy, Q as normalizeDeliveryContext, R as appendAssistantMessageToSessionTranscript, Rt as expandToolGroups, S as isCompactionFailureError, St as acquireSessionWriteLock, T as isFailoverErrorMessage, Tt as registerBrowserRoutes, Ut as compileGlobPatterns, V as readSessionUpdatedAt, Vt as resolveToolProfilePolicy, W as updateLastRoute, Wt as matchesAnyGlobPattern, X as deliveryContextKey, Y as deliveryContextFromSession, Yt as sanitizeGoogleTurnOrdering, Z as mergeDeliveryContext, _ as formatRawAssistantErrorForUi, _t as canonicalizeMainSessionAlias, a as isMessagingToolDuplicateNormalized, at as INPUT_PROVENANCE_KIND_VALUES, b as isBillingAssistantError, bt as deriveSessionMetaPatch, c as extractToolCallsFromAssistant, ct as normalizeInputProvenance, d as isAntigravityClaude, dt as resolveChannelResetConfig, et as normalizeAccountId$4, f as isGoogleModelApi, ft as resolveSessionResetPolicy, g as formatBillingErrorMessage, gt as resolveFreshSessionTotalTokens, h as formatAssistantErrorText, ht as DEFAULT_RESET_TRIGGERS, it as extractToolCallNames, j as parseImageDimensionError, jt as ensureBrowserControlAuth, k as isTimeoutErrorMessage, kt as resolveExistingPathsWithinRoot, l as extractToolResultId, lt as resolveSessionKey, m as classifyFailoverReason, mt as resolveThreadFlag, n as validateGeminiTurns, nt as capArrayByJsonBytes, o as normalizeTextForComparison, ot as applyInputProvenanceToUserMessage, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetType, q as isCacheEnabled, qt as resolveBootstrapMaxChars, r as pickFallbackThinkingLevel, rt as countToolResults, s as sanitizeSessionMessagesImages, st as hasInterSessionUserProvenance, t as validateAnthropicTurns, tt as archiveSessionTranscripts, u as downgradeOpenAIReasoningBlocks, ut as evaluateSessionFreshness, v as getApiErrorPayloadFingerprint, vt as resolveExplicitAgentSessionKey, w as isFailoverAssistantError, wt as createBrowserRouteContext, x as isCloudCodeAssistFormatError, xt as resolveGroupSessionKey, y as isAuthAssistantError, yt as resolveMainSessionKey, zt as mergeAlsoAllowPolicy } from "./pi-embedded-helpers-Dh6fWzG0.js";
26
+ import { $ as normalizeSessionDeliveryFields, A as isTransientHttpError, At as getBridgeAuthForPort, B as loadSessionStore, Bt as normalizeToolName, C as isContextOverflowError, Ct as resolveSessionLockMaxHoldFromTimeout, D as isRateLimitAssistantError, Dt as resolveProfile, E as isLikelyContextOverflowError, Et as resolveBrowserConfig, F as resolveSandboxContext, Ft as buildPluginToolGroups, G as updateSessionStore, Gt as buildBootstrapContextFiles, H as recordSessionMetaFromInbound, Ht as stripPluginOnlyAllowlist, I as resolveSandboxRuntimeStatus, It as collectExplicitAllowlist, J as resolveCacheTtlMs$1, Jt as resolveBootstrapTotalMaxChars, K as updateSessionStoreEntry, Kt as ensureSessionHeader, L as extractDeliveryInfo, Lt as expandPolicyWithPluginGroups, M as parseImageSizeError, Mt as resolveBrowserControlAuth, N as sanitizeUserFacingText, Nt as resolveSandboxConfigForAgent, O as isRawApiErrorPayload, Ot as DEFAULT_UPLOAD_DIR, P as ensureSandboxWorkspaceForSession, Pt as applyOwnerOnlyToolPolicy, Q as normalizeDeliveryContext, R as appendAssistantMessageToSessionTranscript, Rt as expandToolGroups, S as isCompactionFailureError, St as acquireSessionWriteLock, T as isFailoverErrorMessage, Tt as registerBrowserRoutes, Ut as compileGlobPatterns, V as readSessionUpdatedAt, Vt as resolveToolProfilePolicy, W as updateLastRoute, Wt as matchesAnyGlobPattern, X as deliveryContextKey, Y as deliveryContextFromSession, Yt as sanitizeGoogleTurnOrdering, Z as mergeDeliveryContext, _ as formatRawAssistantErrorForUi, _t as canonicalizeMainSessionAlias, a as isMessagingToolDuplicateNormalized, at as INPUT_PROVENANCE_KIND_VALUES, b as isBillingAssistantError, bt as deriveSessionMetaPatch, c as extractToolCallsFromAssistant, ct as normalizeInputProvenance, d as isAntigravityClaude, dt as resolveChannelResetConfig, et as normalizeAccountId$4, f as isGoogleModelApi, ft as resolveSessionResetPolicy, g as formatBillingErrorMessage, gt as resolveFreshSessionTotalTokens, h as formatAssistantErrorText, ht as DEFAULT_RESET_TRIGGERS, it as extractToolCallNames, j as parseImageDimensionError, jt as ensureBrowserControlAuth, k as isTimeoutErrorMessage, kt as resolveExistingPathsWithinRoot, l as extractToolResultId, lt as resolveSessionKey, m as classifyFailoverReason, mt as resolveThreadFlag, n as validateGeminiTurns, nt as capArrayByJsonBytes, o as normalizeTextForComparison, ot as applyInputProvenanceToUserMessage, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetType, q as isCacheEnabled, qt as resolveBootstrapMaxChars, r as pickFallbackThinkingLevel, rt as countToolResults, s as sanitizeSessionMessagesImages, st as hasInterSessionUserProvenance, t as validateAnthropicTurns, tt as archiveSessionTranscripts, u as downgradeOpenAIReasoningBlocks, ut as evaluateSessionFreshness, v as getApiErrorPayloadFingerprint, vt as resolveExplicitAgentSessionKey, w as isFailoverAssistantError, wt as createBrowserRouteContext, x as isCloudCodeAssistFormatError, xt as resolveGroupSessionKey, y as isAuthAssistantError, yt as resolveMainSessionKey, zt as mergeAlsoAllowPolicy } from "./pi-embedded-helpers-OUBsvbo7.js";
27
27
  import { C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as resolveAgentMaxConcurrent, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as VERSION, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-DZybbpxs.js";
28
28
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverOpenClawPlugins, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-DmjapxrQ.js";
29
29
  import { a as parseAvailableTags, c as readStringArrayParam, h as resolveImageSanitizationLimits, i as jsonResult, l as readStringOrNumberParam, m as sanitizeToolResultImages, n as imageResult, o as readNumberParam, p as sanitizeImageBlocks, r as imageResultFromFile, s as readReactionParams, t as createActionGate, u as readStringParam } from "./common-DqP79TiS.js";
30
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CBhKqm1e.js";
30
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DxhUHYxR.js";
31
31
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-BJhU2buL.js";
32
32
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BxR4oB-s.js";
33
33
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DH-Ltk62.js";
@@ -37,7 +37,7 @@ import { n as resolveConversationLabel } from "./conversation-label-BqCuLhlF.js"
37
37
  import { t as resolveIMessageAccount } from "./accounts-Dh62JQhz.js";
38
38
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-COn9vdws.js";
39
39
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-Cj85Mq0h.js";
40
- import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BccL3ngs.js";
40
+ import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-4JNpzCjn.js";
41
41
  import { n as resolveMemorySearchConfig } from "./manager-BKOqLHFc.js";
42
42
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-CNpRo6JS.js";
43
43
  import { n as retryAsync } from "./retry-CZWUKIdy.js";
@@ -49,7 +49,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DGItgw6U.js";
49
49
  import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-C4h5lzUe.js";
50
50
  import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-BI5yKCkL.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-C5ohLdkB.js";
52
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-j4Bfr_LY.js";
52
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-BYhtaPKn.js";
53
53
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BMa0enEg.js";
54
54
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-DtXYsHEc.js";
55
55
  import { n as normalizePollInput } from "./polls-BloyMqd2.js";
@@ -79,7 +79,7 @@ import { EdgeTTS } from "node-edge-tts";
79
79
  import AjvPkg from "ajv";
80
80
  import { createServer } from "node:http";
81
81
  import { ProxyAgent, fetch as fetch$1 } from "undici";
82
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
82
+ import WebSocket$1, { WebSocket } from "ws";
83
83
  import { Buffer as Buffer$1 } from "node:buffer";
84
84
  import { createJiti } from "jiti";
85
85
  import { Type } from "@sinclair/typebox";
@@ -5712,7 +5712,7 @@ var GatewayClient = class {
5712
5712
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5713
5713
  });
5714
5714
  }
5715
- this.ws = new WebSocket$1(url, wsOptions);
5715
+ this.ws = new WebSocket(url, wsOptions);
5716
5716
  this.ws.on("open", () => {
5717
5717
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5718
5718
  const tlsError = this.validateTlsFingerprint();
@@ -5931,7 +5931,7 @@ var GatewayClient = class {
5931
5931
  return null;
5932
5932
  }
5933
5933
  async request(method, params, opts) {
5934
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
5934
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
5935
5935
  const id = randomUUID();
5936
5936
  const frame = {
5937
5937
  type: "req",
@@ -7195,7 +7195,7 @@ async function routeReply(params) {
7195
7195
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7196
7196
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7197
7197
  try {
7198
- const { deliverOutboundPayloads } = await import("./deliver-6ybd_3jT.js").then((n) => n.n);
7198
+ const { deliverOutboundPayloads } = await import("./deliver-Brnl4HfK.js").then((n) => n.n);
7199
7199
  return {
7200
7200
  ok: true,
7201
7201
  messageId: (await deliverOutboundPayloads({
@@ -39751,7 +39751,7 @@ async function deliverSessionMaintenanceWarning(params) {
39751
39751
  return;
39752
39752
  }
39753
39753
  try {
39754
- const { deliverOutboundPayloads } = await import("./deliver-6ybd_3jT.js").then((n) => n.n);
39754
+ const { deliverOutboundPayloads } = await import("./deliver-Brnl4HfK.js").then((n) => n.n);
39755
39755
  await deliverOutboundPayloads({
39756
39756
  cfg: params.cfg,
39757
39757
  channel,
@@ -43183,7 +43183,7 @@ async function describeStickerImage(params) {
43183
43183
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
43184
43184
  try {
43185
43185
  const buffer = await fs$1.readFile(imagePath);
43186
- const { describeImageWithModel } = await import("./image-BccL3ngs.js").then((n) => n.n);
43186
+ const { describeImageWithModel } = await import("./image-4JNpzCjn.js").then((n) => n.n);
43187
43187
  return (await describeImageWithModel({
43188
43188
  buffer,
43189
43189
  fileName: "sticker.webp",
@@ -45603,7 +45603,7 @@ async function preflightDiscordMessage(params) {
45603
45603
  let preflightTranscript;
45604
45604
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
45605
45605
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
45606
- const { transcribeFirstAudio } = await import("./audio-preflight-BT6BcGi_.js");
45606
+ const { transcribeFirstAudio } = await import("./audio-preflight-DgmMV8p-.js");
45607
45607
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
45608
45608
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
45609
45609
  ctx: {
@@ -49734,7 +49734,7 @@ function isVoiceChannelType(type) {
49734
49734
  function createDefaultDeps() {
49735
49735
  return {
49736
49736
  sendMessageWhatsApp: async (...args) => {
49737
- const { sendMessageWhatsApp } = await import("./web-y3J71ECd.js");
49737
+ const { sendMessageWhatsApp } = await import("./web-ZW9Geotk.js");
49738
49738
  return await sendMessageWhatsApp(...args);
49739
49739
  },
49740
49740
  sendMessageTelegram: async (...args) => {
@@ -52630,7 +52630,7 @@ function createDiscordGatewayPlugin(params) {
52630
52630
  super(options);
52631
52631
  }
52632
52632
  createWebSocket(url) {
52633
- return new WebSocket(url, { agent });
52633
+ return new WebSocket$1(url, { agent });
52634
52634
  }
52635
52635
  }
52636
52636
  return new ProxyGatewayPlugin();
@@ -62378,7 +62378,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
62378
62378
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
62379
62379
  let preflightTranscript;
62380
62380
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
62381
- const { transcribeFirstAudio } = await import("./audio-preflight-BT6BcGi_.js");
62381
+ const { transcribeFirstAudio } = await import("./audio-preflight-DgmMV8p-.js");
62382
62382
  preflightTranscript = await transcribeFirstAudio({
62383
62383
  ctx: {
62384
62384
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -64556,7 +64556,7 @@ function loadWebLoginQr() {
64556
64556
  return webLoginQrPromise;
64557
64557
  }
64558
64558
  function loadWebChannel() {
64559
- webChannelPromise ??= import("./web-y3J71ECd.js");
64559
+ webChannelPromise ??= import("./web-ZW9Geotk.js");
64560
64560
  return webChannelPromise;
64561
64561
  }
64562
64562
  function loadWhatsAppActions() {
@@ -11,7 +11,7 @@ import { a as buildImageResizeSideGrid, i as IMAGE_REDUCE_QUALITY_STEPS, n as op
11
11
  import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-BxsLQyfw.js";
12
12
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-DZybbpxs.js";
13
13
  import { d as wrapOwnerOnlyToolExecution, f as sanitizeContentBlocksImages } from "./common-DqP79TiS.js";
14
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_ENABLED, N as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchOpenClawChrome, j as DEFAULT_OPENCLAW_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CBhKqm1e.js";
14
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_ENABLED, N as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchOpenClawChrome, j as DEFAULT_OPENCLAW_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DxhUHYxR.js";
15
15
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BJhU2buL.js";
16
16
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BxR4oB-s.js";
17
17
  import { t as SsrFBlockedError } from "./ssrf-DH-Ltk62.js";
@@ -917,7 +917,7 @@ function isModuleNotFoundError(err) {
917
917
  }
918
918
  async function loadPwAiModule(mode) {
919
919
  try {
920
- return await import("./pw-ai-Bp7tQXP7.js");
920
+ return await import("./pw-ai-ByDR1q8k.js");
921
921
  } catch (err) {
922
922
  if (mode === "soft") return null;
923
923
  if (isModuleNotFoundError(err)) return null;
@@ -3459,11 +3459,11 @@ function createProfileContext(opts, profile) {
3459
3459
  const userDataDir = resolveOpenClawUserDataDir(profile.name);
3460
3460
  const profileState = getProfileState();
3461
3461
  if (await isHttpReachable(300) && !profileState.running) try {
3462
- await (await import("./pw-ai-Bp7tQXP7.js")).closePlaywrightBrowserConnection();
3462
+ await (await import("./pw-ai-ByDR1q8k.js")).closePlaywrightBrowserConnection();
3463
3463
  } catch {}
3464
3464
  if (profileState.running) await stopRunningBrowser();
3465
3465
  try {
3466
- await (await import("./pw-ai-Bp7tQXP7.js")).closePlaywrightBrowserConnection();
3466
+ await (await import("./pw-ai-ByDR1q8k.js")).closePlaywrightBrowserConnection();
3467
3467
  } catch {}
3468
3468
  if (!fs.existsSync(userDataDir)) return {
3469
3469
  moved: false,
@@ -1,5 +1,5 @@
1
1
  import { c as normalizeAccountId } from "./session-key-9yEYlIQe.js";
2
- import { _ as createAccountListHelpers } from "./accounts-b1Cok6r_.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-iN-dbgw4.js";
3
3
 
4
4
  //#region src/signal/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
@@ -1,8 +1,8 @@
1
1
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-9yEYlIQe.js";
2
- import { E as jidToE164, Q as getChildLogger, V as info, j as resolveUserPath, q as success } from "./registry-C8pj8ctW.js";
2
+ import { E as jidToE164, Q as getChildLogger, V as info, j as resolveUserPath, q as success } from "./registry-BECEtj9n.js";
3
3
  import { a as resolveOAuthDir } from "./paths-DJmOcr7Q.js";
4
- import { i as defaultRuntime } from "./subsystem-BfLMZ8kW.js";
5
- import { t as formatCliCommand } from "./command-format-BTciq6Gg.js";
4
+ import { i as defaultRuntime } from "./subsystem-Ck27y_6W.js";
5
+ import { t as formatCliCommand } from "./command-format-C5kdEGEu.js";
6
6
  import path from "node:path";
7
7
  import fs from "node:fs";
8
8
  import fs$1 from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  import { c as normalizeAccountId } from "./session-key-9yEYlIQe.js";
2
- import { _ as createAccountListHelpers } from "./accounts-b1Cok6r_.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-iN-dbgw4.js";
3
3
 
4
4
  //#region src/imessage/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
@@ -1,5 +1,5 @@
1
1
  import { t as DEFAULT_ACCOUNT_ID } from "./session-key-9yEYlIQe.js";
2
- import { t as formatCliCommand } from "./command-format-BTciq6Gg.js";
2
+ import { t as formatCliCommand } from "./command-format-C5kdEGEu.js";
3
3
 
4
4
  //#region src/web/active-listener.ts
5
5
  const listeners = /* @__PURE__ */ new Map();
@@ -1,7 +1,7 @@
1
1
  import { _ as isSubagentSessionKey, g as isCronSessionKey, l as normalizeAgentId, n as DEFAULT_AGENT_ID, v as parseAgentSessionKey } from "./session-key-9yEYlIQe.js";
2
- import { $ as getLogger, B as danger, J as warn, K as shouldLogVerbose, O as pathExists, V as info, W as logVerboseConsole, j as resolveUserPath } from "./registry-C8pj8ctW.js";
2
+ import { $ as getLogger, B as danger, J as warn, K as shouldLogVerbose, O as pathExists, V as info, W as logVerboseConsole, j as resolveUserPath } from "./registry-BECEtj9n.js";
3
3
  import { s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-DJmOcr7Q.js";
4
- import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BfLMZ8kW.js";
4
+ import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Ck27y_6W.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
7
7
  import os from "node:os";