@qqbrowser/openclaw-qbot 0.0.73 → 0.0.74

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 (324) hide show
  1. package/README.md +1 -1
  2. package/dist/{active-listener-DxNSGN9U.js → active-listener-CROf1Uy1.js} +2 -2
  3. package/dist/{agents-BV_FaMHU.js → agents-CYWlMAWH.js} +6 -6
  4. package/dist/{agents.config-B9V48rWk.js → agents.config-BJn6d6DN.js} +1 -1
  5. package/dist/{agents.config-GyCLMlbL.js → agents.config-wTj_OaU_.js} +1 -1
  6. package/dist/{api-key-rotation-CTQfWSIv.js → api-key-rotation-BbdgQk0n.js} +1 -1
  7. package/dist/{audio-preflight-CzCees3e.js → audio-preflight-Bn2FtPU3.js} +15 -15
  8. package/dist/{audio-transcription-runner-DNLKfdoM.js → audio-transcription-runner-8_mMc2YC.js} +10 -10
  9. package/dist/{audit-membership-runtime-CCJD0aBd.js → audit-membership-runtime-DvvzZwni.js} +6 -6
  10. package/dist/{auth-choice-DU5tc_h1.js → auth-choice-5BtdgzSI.js} +1 -1
  11. package/dist/{auth-choice-DBoi--mB.js → auth-choice-B5ngE4A2.js} +1 -1
  12. package/dist/{banner-C_4QrBWL.js → banner-BGXVW1A5.js} +1 -1
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +35 -35
  15. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  16. package/dist/bundled/command-logger/handler.js +2 -2
  17. package/dist/bundled/session-memory/handler.js +35 -35
  18. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  19. package/dist/{channel-activity-C8YYzXcX.js → channel-activity-BUaFQGrv.js} +2 -2
  20. package/dist/{channel-options-CJsrr-rH.js → channel-options-BmYMsEjg.js} +1 -1
  21. package/dist/{channel-options-TMN7Iiqz.js → channel-options-nhLIf9WS.js} +1 -1
  22. package/dist/{channel-web-D5XrPlVy.js → channel-web-B0YjlQBG.js} +1 -1
  23. package/dist/{channel-web-6wYIjWUq.js → channel-web-DVCk5Fds.js} +1 -1
  24. package/dist/{channels-cli-BDSdy1VE.js → channels-cli-DI9o3gyE.js} +6 -6
  25. package/dist/{channels-cli-B6qHXKEd.js → channels-cli-DPtLHM0J.js} +6 -6
  26. package/dist/{cli-aFUGe8HU.js → cli-BrnCq769.js} +1 -1
  27. package/dist/{cli-DLhLAHco.js → cli-C4qSin3m.js} +1 -1
  28. package/dist/{command-registry-CwxQ7wlg.js → command-registry-Dc-Pr3ej.js} +9 -9
  29. package/dist/{commands-registry-CDA-YP5a.js → commands-registry-Clw9C2_Y.js} +2 -2
  30. package/dist/{compact-C64tGh1Q.js → compact-w86MjF5r.js} +6 -6
  31. package/dist/compact.runtime-BB3ne62u.js +39 -0
  32. package/dist/{compact.runtime-B3X4xckf.js → compact.runtime-C4VGJyzb.js} +1 -1
  33. package/dist/{compact.runtime-BoZUJOVD.js → compact.runtime-C7vtRrUH.js} +1 -1
  34. package/dist/{compact.runtime-CvcXbtEl.js → compact.runtime-D9TdYJL-.js} +1 -1
  35. package/dist/{completion-cli-DEvhh5Cf.js → completion-cli-C01aSJaG.js} +2 -2
  36. package/dist/{completion-cli-9KLIB7_X.js → completion-cli-DVgSnpx0.js} +1 -1
  37. package/dist/{config-cli-CrYtt78d.js → config-cli-DRN8Xk_M.js} +1 -1
  38. package/dist/{config-cli-BPUUTQvi.js → config-cli-DpWTFuhw.js} +1 -1
  39. package/dist/{configure-BkAlWi6d.js → configure-3u-AEpBv.js} +6 -6
  40. package/dist/{configure-BIqZBBEN.js → configure-Um8aXBGc.js} +6 -6
  41. package/dist/control-ui/apple-touch-icon.png +0 -0
  42. package/dist/control-ui/assets/de-DuUYLvt1.js +2 -0
  43. package/dist/control-ui/assets/de-DuUYLvt1.js.map +1 -0
  44. package/dist/control-ui/assets/es-DHtyqUQZ.js +2 -0
  45. package/dist/control-ui/assets/es-DHtyqUQZ.js.map +1 -0
  46. package/dist/control-ui/assets/index-CYbiPp9k.js +8384 -0
  47. package/dist/control-ui/assets/index-CYbiPp9k.js.map +1 -0
  48. package/dist/control-ui/assets/index-C_GaJ8wS.css +1 -0
  49. package/dist/control-ui/assets/pt-BR-D2dJb9G8.js +2 -0
  50. package/dist/control-ui/assets/pt-BR-D2dJb9G8.js.map +1 -0
  51. package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js +2 -0
  52. package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js.map +1 -0
  53. package/dist/control-ui/assets/zh-TW-cW5xB87I.js +2 -0
  54. package/dist/control-ui/assets/zh-TW-cW5xB87I.js.map +1 -0
  55. package/dist/control-ui/favicon-32.png +0 -0
  56. package/dist/control-ui/favicon.ico +0 -0
  57. package/dist/control-ui/favicon.svg +22 -0
  58. package/dist/control-ui/index.html +17 -0
  59. package/dist/{deliver-C8ckP9ew.js → deliver-Bj-7Vo_A.js} +19 -19
  60. package/dist/deliver-runtime-BhtIY2eR.js +19 -0
  61. package/dist/deps-send-discord.runtime-CQ2BQVgx.js +19 -0
  62. package/dist/deps-send-imessage.runtime-CuiJDds-.js +18 -0
  63. package/dist/deps-send-signal.runtime-D6FW_3lV.js +17 -0
  64. package/dist/deps-send-slack.runtime-DMtZWnBE.js +17 -0
  65. package/dist/deps-send-telegram.runtime-FtgFHfzz.js +20 -0
  66. package/dist/{deps-send-whatsapp.runtime-Zlv01k3L.js → deps-send-whatsapp.runtime-BSjKIQ6-.js} +3 -3
  67. package/dist/deps-send-whatsapp.runtime-BrOASoRz.js +43 -0
  68. package/dist/{deps-send-whatsapp.runtime-B--hgVLj.js → deps-send-whatsapp.runtime-C0qrh-1q.js} +3 -3
  69. package/dist/{deps-send-whatsapp.runtime-C4jJ1cJr.js → deps-send-whatsapp.runtime-DKdcBa5f.js} +2 -2
  70. package/dist/{diagnostic-Dmrwg73v.js → diagnostic-qjjamhzV.js} +2 -2
  71. package/dist/{doctor-completion-11bEAfBi.js → doctor-completion-CcMQPwS8.js} +1 -1
  72. package/dist/{doctor-completion-CK8FANuP.js → doctor-completion-h4hJ8EC_.js} +1 -1
  73. package/dist/entry.js +2 -2
  74. package/dist/extensionAPI.js +1 -1
  75. package/dist/{fetch-Kd-ZkhaC.js → fetch-Bd6dZr3f.js} +4 -4
  76. package/dist/{fetch-guard-dSFwQVdY.js → fetch-guard-CcIHzaq9.js} +3 -3
  77. package/dist/{fetch-DB60S6Pe.js → fetch-jnMCAr8M.js} +3 -3
  78. package/dist/{frontmatter-D5wSndvU.js → frontmatter-B3DSwN7Q.js} +3 -3
  79. package/dist/{gateway-cli-BF0dwPvr.js → gateway-cli-EoE6lkiM.js} +8 -8
  80. package/dist/{gateway-cli-C1AaS4sS.js → gateway-cli-lxMPuiGp.js} +8 -8
  81. package/dist/{github-copilot-token-BsRMNR1J.js → github-copilot-token-Cv01j7Da.js} +7 -7
  82. package/dist/{health-CHSSafxz.js → health-CwrmDX6F.js} +1 -1
  83. package/dist/{health-DZC6FQVq.js → health-JkRatG0y.js} +1 -1
  84. package/dist/{hooks-cli-BD5QZVI0.js → hooks-cli-D31CYG6U.js} +2 -2
  85. package/dist/{hooks-cli-gMEa1lC5.js → hooks-cli-oX2gUZMg.js} +2 -2
  86. package/dist/{image-CzbVS4Px.js → image-CUHtH2ov.js} +4 -4
  87. package/dist/image-runtime-CyCflyrd.js +12 -0
  88. package/dist/index.js +6 -6
  89. package/dist/{ir-DpC-GTgx.js → ir-DqRr7hEM.js} +6 -6
  90. package/dist/llm-slug-generator.js +35 -35
  91. package/dist/{logger-6VOE82vC.js → logger-Dk0Ze7CZ.js} +7 -7
  92. package/dist/{login-C0Aj2wbv.js → login-ii3VsVTs.js} +4 -4
  93. package/dist/{login-qr-Bvddvj_q.js → login-qr-DtCHsF-S.js} +10 -10
  94. package/dist/{manager-BbQytYnR.js → manager-DSp4S63y.js} +12 -12
  95. package/dist/manager-runtime-BPcwKtWq.js +15 -0
  96. package/dist/{model-selection-Dv7kUD2t.js → model-selection-CTRvq26d.js} +120 -120
  97. package/dist/{models-BstWPD04.js → models-ClLAqwV2.js} +2 -2
  98. package/dist/{models-cli-BgafLcSs.js → models-cli-BoabFG-z.js} +2 -2
  99. package/dist/{models-cli-Ben00rns.js → models-cli-Cv4XnpgY.js} +3 -3
  100. package/dist/{npm-resolution-B-lXuFGR.js → npm-resolution-AC4pvDCN.js} +1 -1
  101. package/dist/{npm-resolution-DwGz5wym.js → npm-resolution-BfTmdPkZ.js} +1 -1
  102. package/dist/{onboard-Bx1a58T2.js → onboard-0NLi57Vh.js} +2 -2
  103. package/dist/{onboard-BT8SVF6e.js → onboard-8vbfU3ju.js} +2 -2
  104. package/dist/{onboard-channels-COD821xq.js → onboard-channels-B2leCjTi.js} +1 -1
  105. package/dist/{onboard-channels-CeptZCQY.js → onboard-channels-Bxw-iRlq.js} +1 -1
  106. package/dist/{onboarding-D8iKH6re.js → onboarding-D0MXwUPz.js} +3 -3
  107. package/dist/{onboarding-CKcNAv-6.js → onboarding-DJWOb_0C.js} +3 -3
  108. package/dist/{onboarding.finalize-df4t6_rY.js → onboarding.finalize-3NjT6e9z.js} +6 -6
  109. package/dist/{onboarding.finalize-CBGbT5-V.js → onboarding.finalize-Dw8u3Fwp.js} +5 -5
  110. package/dist/{outbound-CilWYThF.js → outbound-DOEYCXCG.js} +6 -6
  111. package/dist/{outbound-attachment-Cc92tlRX.js → outbound-attachment-D1EEHUb5.js} +2 -2
  112. package/dist/{paths-WADFVav-.js → paths-CqN6xa62.js} +7 -7
  113. package/dist/{paths-DLyW11Uc.js → paths-DH2q2Tz2.js} +5 -5
  114. package/dist/{pi-embedded-BBUpW_TK.js → pi-embedded-CU8OaUk7.js} +6 -6
  115. package/dist/{pi-embedded-D0Iyms7S.js → pi-embedded-DeLrT8gJ.js} +150 -150
  116. package/dist/{pi-model-discovery-DKNkGdYS.js → pi-model-discovery-CpH_dmZF.js} +7 -7
  117. package/dist/pi-model-discovery-runtime-BtVHvn2Z.js +12 -0
  118. package/dist/{pi-tools.before-tool-call.runtime-B9pxTmwu.js → pi-tools.before-tool-call.runtime-Cv-EQBKI.js} +10 -10
  119. package/dist/{plugin-registry-DsHpkm1z.js → plugin-registry-C6m72uQY.js} +1 -1
  120. package/dist/{plugin-registry-_w9cCLPf.js → plugin-registry-CPPgLat0.js} +1 -1
  121. package/dist/plugin-sdk/{active-listener-DHUCSwd_.js → active-listener-DneY0bNi.js} +2 -2
  122. package/dist/plugin-sdk/{api-key-rotation-C9Opm2pi.js → api-key-rotation-D8Ypq4t-.js} +1 -1
  123. package/dist/plugin-sdk/{audio-preflight-DgcACjGT.js → audio-preflight-FQFDI7o4.js} +10 -10
  124. package/dist/plugin-sdk/{audio-transcription-runner-DxPpYMb2.js → audio-transcription-runner-DrpD4ePb.js} +9 -9
  125. package/dist/plugin-sdk/{audit-membership-runtime-BANoF7Db.js → audit-membership-runtime-oS2QK_tV.js} +4 -4
  126. package/dist/plugin-sdk/{channel-activity-BhpE1hfX.js → channel-activity-DpLEjcVa.js} +2 -2
  127. package/dist/plugin-sdk/{channel-web-BwOMVdgC.js → channel-web-CWFhLqx-.js} +1 -1
  128. package/dist/plugin-sdk/{channel-web-kZltMKfK.js → channel-web-Do0vefZK.js} +1 -1
  129. package/dist/plugin-sdk/{commands-registry-CuA1Jtia.js → commands-registry-DPhO7gsj.js} +2 -2
  130. package/dist/plugin-sdk/compact.runtime-Bw3bBQRf.js +35 -0
  131. package/dist/plugin-sdk/{compact.runtime-D99h-K7Q.js → compact.runtime-C2sRr77b.js} +1 -1
  132. package/dist/plugin-sdk/{compact.runtime-XfJjLlGG.js → compact.runtime-CZpINwLk.js} +1 -1
  133. package/dist/plugin-sdk/{compact.runtime-D1gpvBez.js → compact.runtime-CqVArbOy.js} +1 -1
  134. package/dist/plugin-sdk/{compact.runtime-fX5K2yza.js → compact.runtime-DwpdEjMZ.js} +1 -1
  135. package/dist/plugin-sdk/{compact.runtime-BK7DkulA.js → compact.runtime-kXlwyoyQ.js} +1 -1
  136. package/dist/plugin-sdk/compat.js +2 -2
  137. package/dist/plugin-sdk/{deliver-XQ0wySLe.js → deliver-DH8opED3.js} +7 -7
  138. package/dist/plugin-sdk/deliver-runtime-C2AGd-Fx.js +15 -0
  139. package/dist/plugin-sdk/deps-send-discord.runtime-BldRteZ-.js +15 -0
  140. package/dist/plugin-sdk/deps-send-imessage.runtime-CJj8OonF.js +14 -0
  141. package/dist/plugin-sdk/deps-send-signal.runtime-BssZdgwz.js +13 -0
  142. package/dist/plugin-sdk/deps-send-slack.runtime-DNHUnl8Z.js +13 -0
  143. package/dist/plugin-sdk/deps-send-telegram.runtime-Rb_PHfoZ.js +16 -0
  144. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BxanPbyv.js → deps-send-whatsapp.runtime-C-h50AAy.js} +2 -2
  145. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DLbe9BEI.js → deps-send-whatsapp.runtime-CLhapJ1n.js} +2 -2
  146. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CSdMSf4P.js +39 -0
  147. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-zRy8zuUS.js → deps-send-whatsapp.runtime-DJgNi3YT.js} +2 -2
  148. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Bz-OzGha.js → deps-send-whatsapp.runtime-DRNsCqBq.js} +3 -3
  149. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DmnMuABt.js → deps-send-whatsapp.runtime-DdrmcA-s.js} +3 -3
  150. package/dist/plugin-sdk/{diagnostic-BhKlOjt1.js → diagnostic-CHUX2izx.js} +2 -2
  151. package/dist/plugin-sdk/{dispatch-ByQ4YKaP.js → dispatch-B0WozmFd.js} +6 -6
  152. package/dist/plugin-sdk/{dispatch-BqqcXgMT.js → dispatch-D0RGlExZ.js} +6 -6
  153. package/dist/plugin-sdk/{dispatch-BozdMzjL.js → dispatch-DEONo5y4.js} +6 -6
  154. package/dist/plugin-sdk/{dispatch-BJY_kIZN.js → dispatch-Dk3oVErV.js} +6 -6
  155. package/dist/plugin-sdk/{dispatch-DJzEpfLy.js → dispatch-HE08O-sT.js} +60 -60
  156. package/dist/plugin-sdk/{fetch-Bo_2gd3j.js → fetch-CCj4rGzv.js} +3 -3
  157. package/dist/plugin-sdk/{fetch-guard-Cuze2vRj.js → fetch-guard-DwKQhbjg.js} +3 -3
  158. package/dist/plugin-sdk/{image-BIWFJjhD.js → image-DcnZ7H0m.js} +4 -4
  159. package/dist/plugin-sdk/image-runtime-DwNHiZsc.js +8 -0
  160. package/dist/plugin-sdk/imessage.js +2 -2
  161. package/dist/plugin-sdk/index.js +2 -2
  162. package/dist/plugin-sdk/{ir-D5oLoLwO.js → ir-Wcn2MuS6.js} +4 -4
  163. package/dist/plugin-sdk/irc.js +1 -1
  164. package/dist/plugin-sdk/{local-roots-Ba-vCmST.js → local-roots-m3E1qh29.js} +3 -3
  165. package/dist/plugin-sdk/{logger-gkkSl4rm.js → logger-b49mPkXE.js} +2 -2
  166. package/dist/plugin-sdk/{login-hhWtd8wj.js → login-DSsXjZtA.js} +3 -3
  167. package/dist/plugin-sdk/{login-qr-BWJwYOch.js → login-qr-xhsSqelV.js} +5 -5
  168. package/dist/plugin-sdk/{manager-CDUT9HE2.js → manager-DqkhVP3P.js} +7 -7
  169. package/dist/plugin-sdk/manager-runtime-CJyxV92f.js +11 -0
  170. package/dist/plugin-sdk/matrix.js +1 -1
  171. package/dist/plugin-sdk/{model-auth-IPhZKXZh.js → model-auth-CyziUml9.js} +12 -12
  172. package/dist/plugin-sdk/msteams.js +30 -30
  173. package/dist/plugin-sdk/nextcloud-talk.js +1 -1
  174. package/dist/plugin-sdk/{outbound-DODmsGUJ.js → outbound-Qi0MhCES.js} +5 -5
  175. package/dist/plugin-sdk/{outbound-attachment-CtW_rarD.js → outbound-attachment-B7FfzWUQ.js} +2 -2
  176. package/dist/plugin-sdk/{paths-DKnAgHLh.js → paths-LTUtFCPb.js} +1 -1
  177. package/dist/plugin-sdk/{pi-model-discovery-BiXHqP7l.js → pi-model-discovery-AJ-yKYRw.js} +1 -1
  178. package/dist/plugin-sdk/{pi-model-discovery-runtime-BhwOfFKp.js → pi-model-discovery-runtime-By5bFml0.js} +5 -5
  179. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-BIE7MANa.js → pi-tools.before-tool-call.runtime-c3yWR9gJ.js} +5 -5
  180. package/dist/plugin-sdk/{proxy-env-BDMQGH-A.js → proxy-env-CezuMQsC.js} +1 -1
  181. package/dist/{proxy-fetch-Hz2DPH2J.js → plugin-sdk/proxy-fetch-Dn-odmKS.js} +2 -2
  182. package/dist/plugin-sdk/{pw-ai-pMYERveQ.js → pw-ai-BaLlStd1.js} +4 -4
  183. package/dist/plugin-sdk/{qmd-manager-BebAIhGS.js → qmd-manager-KAGKwJXg.js} +3 -3
  184. package/dist/plugin-sdk/qqbrowser/system_prompt/custom-prompt.generated.d.ts +1 -1
  185. package/dist/plugin-sdk/{reply-BKVG6l__.js → reply-C0XujVAb.js} +6 -6
  186. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-DxQrr1vf.js +9 -0
  187. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-ezj35O_y.js +13 -0
  188. package/dist/plugin-sdk/{send-BmB0T72m.js → send-BgQuEvFO.js} +9 -9
  189. package/dist/plugin-sdk/{send-CNj3lvAP.js → send-BnfXefQY.js} +5 -5
  190. package/dist/plugin-sdk/{send-xpsFIt1O.js → send-Bt8Qf38T.js} +6 -6
  191. package/dist/plugin-sdk/{send-DeN-IpBX.js → send-CplTQ3JD.js} +4 -4
  192. package/dist/plugin-sdk/{send-BOGjU77W.js → send-DqdSIoGB.js} +6 -6
  193. package/dist/plugin-sdk/{session-QXpvYS-o.js → session-DkVTYkzA.js} +2 -2
  194. package/dist/plugin-sdk/signal.js +2 -2
  195. package/dist/plugin-sdk/{skill-commands-CCfIVnV4.js → skill-commands-C7MWJscC.js} +4 -4
  196. package/dist/plugin-sdk/{slash-commands.runtime-B3aqusJt.js → slash-commands.runtime-RvSO86D8.js} +5 -5
  197. package/dist/plugin-sdk/slash-dispatch.runtime-BnfWfK8c.js +35 -0
  198. package/dist/plugin-sdk/{slash-dispatch.runtime-Cf9xcn1e.js → slash-dispatch.runtime-CdKqAW34.js} +1 -1
  199. package/dist/plugin-sdk/{slash-dispatch.runtime-DRNyRHzJ.js → slash-dispatch.runtime-CmI_GLXt.js} +1 -1
  200. package/dist/plugin-sdk/{slash-dispatch.runtime-kG3WEn_Y.js → slash-dispatch.runtime-CntjZmOU.js} +1 -1
  201. package/dist/plugin-sdk/{slash-dispatch.runtime-CUJ3PyIW.js → slash-dispatch.runtime-D8nUj6YM.js} +1 -1
  202. package/dist/plugin-sdk/{slash-dispatch.runtime-CVQBRjnm.js → slash-dispatch.runtime-DGc5dzf4.js} +1 -1
  203. package/dist/plugin-sdk/slash-skill-commands.runtime-DdVX1pxo.js +9 -0
  204. package/dist/plugin-sdk/{sqlite-xEi0CAvK.js → sqlite-Ep7zBzx2.js} +2 -2
  205. package/dist/plugin-sdk/{subagent-registry-runtime-gyWtGO2W.js → subagent-registry-runtime-6xQtRr93.js} +1 -1
  206. package/dist/plugin-sdk/{subagent-registry-runtime-x4W_TgfA.js → subagent-registry-runtime-BU6cqFa7.js} +1 -1
  207. package/dist/plugin-sdk/{subagent-registry-runtime-CB5zhN4l.js → subagent-registry-runtime-BVc9snlu.js} +1 -1
  208. package/dist/plugin-sdk/subagent-registry-runtime-D6u7_AUt.js +35 -0
  209. package/dist/plugin-sdk/{subagent-registry-runtime-DrMkyHPW.js → subagent-registry-runtime-gla7pFj7.js} +1 -1
  210. package/dist/plugin-sdk/{subagent-registry-runtime-8_NEpm08.js → subagent-registry-runtime-jaPacPP9.js} +1 -1
  211. package/dist/plugin-sdk/{tables-DnB_pxHh.js → tables-m7wUH5t9.js} +1 -1
  212. package/dist/plugin-sdk/{target-errors-CvpKDWhY.js → target-errors-BBDzJUoG.js} +2 -2
  213. package/dist/plugin-sdk/telegram.js +2 -2
  214. package/dist/{tokens-CVetWOS2.js → plugin-sdk/tokens-BKV1QCXt.js} +1 -1
  215. package/dist/plugin-sdk/{web-DKXHyg4V.js → web-8kSmEkNl.js} +1 -1
  216. package/dist/plugin-sdk/{web-Dq7rzGDp.js → web-BooFpwid.js} +2 -2
  217. package/dist/plugin-sdk/{web-HdySWqm5.js → web-Cgz1BvI7.js} +1 -1
  218. package/dist/plugin-sdk/{web-Ck6arE6Q.js → web-DG8OnguX.js} +2 -2
  219. package/dist/plugin-sdk/{web-wEgBmpK3.js → web-DVQg8GC6.js} +34 -34
  220. package/dist/plugin-sdk/{web-D3Z-AKng.js → web-DzDiDxMa.js} +1 -1
  221. package/dist/plugin-sdk/{whatsapp-actions-B03_B0tu.js → whatsapp-actions-Bk4kndY9.js} +10 -10
  222. package/dist/plugin-sdk/whatsapp.js +2 -2
  223. package/dist/{plugins-cli-DSIOOCUL.js → plugins-cli-Cp1cM9yu.js} +2 -2
  224. package/dist/{plugins-cli-PeTyq4CV.js → plugins-cli-D2Mqyo-n.js} +2 -2
  225. package/dist/{program-CFA9wIFl.js → program-BX3a8b7b.js} +7 -7
  226. package/dist/{program-context-CmgWgfyz.js → program-context-CXaJyU0p.js} +17 -17
  227. package/dist/{prompt-select-styled-BdzUQdk4.js → prompt-select-styled-0bncCYy7.js} +4 -4
  228. package/dist/{prompt-select-styled-CA9NHRFI.js → prompt-select-styled-DZWBMvgJ.js} +4 -4
  229. package/dist/{provider-auth-helpers-CdcMQChI.js → provider-auth-helpers-6qoMKvbS.js} +1 -1
  230. package/dist/{provider-auth-helpers-CxjLuoTn.js → provider-auth-helpers-C3qQvpRQ.js} +1 -1
  231. package/dist/{proxy-env-BONg_IRb.js → proxy-env-DgYLHn1g.js} +1 -1
  232. package/dist/{plugin-sdk/proxy-fetch-BRYObOFw.js → proxy-fetch-BjBqq0S4.js} +2 -2
  233. package/dist/{push-apns-MkMTH566.js → push-apns-C-Zj7LE6.js} +1 -1
  234. package/dist/{push-apns-BY5FzfVx.js → push-apns-CwfdCIaD.js} +1 -1
  235. package/dist/{pw-ai-BF0P8FMp.js → pw-ai-CLIIEeAR.js} +9 -9
  236. package/dist/{qmd-manager-B30UiQgm.js → qmd-manager-Cc9_yffU.js} +6 -6
  237. package/dist/{query-expansion-9YZHQs6q.js → query-expansion-V2e9egpC.js} +4 -4
  238. package/dist/{register.agent-yR9jfzCN.js → register.agent-DITgBVOG.js} +7 -7
  239. package/dist/{register.agent-CB6MWN6M.js → register.agent-H7lwExvJ.js} +6 -6
  240. package/dist/{register.configure-C_89ZtSZ.js → register.configure-BFquRP1q.js} +7 -7
  241. package/dist/{register.configure-DnaCdMI0.js → register.configure-BhIyf0OD.js} +7 -7
  242. package/dist/{register.maintenance-VsSCW4fQ.js → register.maintenance-BoSqsQVo.js} +8 -8
  243. package/dist/{register.maintenance-BVc3SCOZ.js → register.maintenance-DroeNM_X.js} +7 -7
  244. package/dist/{register.message-CFWGrYxn.js → register.message-B8vfflz0.js} +2 -2
  245. package/dist/{register.message-8zFXQKgC.js → register.message-BCBlgL41.js} +2 -2
  246. package/dist/{register.onboard-9zNrLLh9.js → register.onboard-C0xiFyU0.js} +2 -2
  247. package/dist/{register.onboard-CBzdfmxf.js → register.onboard-dARAkFg8.js} +2 -2
  248. package/dist/{register.setup-CLR-UW8R.js → register.setup-0uBLFjFi.js} +2 -2
  249. package/dist/{register.setup-C_DTG8gR.js → register.setup-B6QWE5lp.js} +2 -2
  250. package/dist/{register.status-health-sessions-rMAbUJlg.js → register.status-health-sessions-Cueh5dxB.js} +3 -3
  251. package/dist/{register.status-health-sessions-j-RyywjN.js → register.status-health-sessions-KKSKLq2h.js} +3 -3
  252. package/dist/{register.subclis-DgH_EwI_.js → register.subclis-BFtmge-U.js} +9 -9
  253. package/dist/{reply-Mgl_h9G3.js → reply-DmwD0IYg.js} +6 -6
  254. package/dist/{run-main-Cq4M3yM7.js → run-main-BgboK6f7.js} +15 -15
  255. package/dist/runtime-whatsapp-login.runtime-D-Rp1pTh.js +13 -0
  256. package/dist/runtime-whatsapp-outbound.runtime-DkxUInN9.js +17 -0
  257. package/dist/{send-BQ-Nw5o92.js → send-7RZ-_vAv2.js} +4 -4
  258. package/dist/{send-Bl_SVPlR.js → send-ByxspBIF.js} +7 -7
  259. package/dist/{send-Bja-rBOy.js → send-CVutquyB.js} +5 -5
  260. package/dist/{send-DeyYf_ua.js → send-DrNWTcOY.js} +25 -25
  261. package/dist/{send-goljIDwD.js → send-z8qRRlrK.js} +6 -6
  262. package/dist/{server-node-events-BYNOBkHr.js → server-node-events-CFAYug3Y.js} +2 -2
  263. package/dist/{server-node-events-B3qQLmud.js → server-node-events-CSYxGvqr.js} +2 -2
  264. package/dist/{session-DldhE9PT.js → session-C8WpWPX4.js} +7 -7
  265. package/dist/{skill-commands-GVIiyqZ8.js → skill-commands-BYYuxeuS.js} +8 -8
  266. package/dist/slash-commands.runtime-B3LvZpKf.js +12 -0
  267. package/dist/{slash-dispatch.runtime-Bh-pycwm.js → slash-dispatch.runtime-B0m_ytsf.js} +1 -1
  268. package/dist/slash-dispatch.runtime-BWLAbYRN.js +39 -0
  269. package/dist/{slash-dispatch.runtime-DDo70iAs.js → slash-dispatch.runtime-D8x2BDky.js} +1 -1
  270. package/dist/{slash-dispatch.runtime-BOatIfnU.js → slash-dispatch.runtime-awRYlRPW.js} +1 -1
  271. package/dist/slash-skill-commands.runtime-zU1kVi9u.js +13 -0
  272. package/dist/{status-Bpdz-6yW.js → status-Cg4qCb6L.js} +2 -2
  273. package/dist/{status-BCKTYN-b.js → status-OryV-dwh.js} +2 -2
  274. package/dist/{subagent-registry-runtime-DqvsjAYM.js → subagent-registry-runtime-D8RYoN0p.js} +1 -1
  275. package/dist/{subagent-registry-runtime-pX4vRbP9.js → subagent-registry-runtime-DWp2m4rb.js} +1 -1
  276. package/dist/{subagent-registry-runtime-8QMQdPQq.js → subagent-registry-runtime-DdFDqNPO.js} +1 -1
  277. package/dist/subagent-registry-runtime-sE41prmG.js +39 -0
  278. package/dist/{subsystem-DNNJDVQe.js → subsystem-BKsORW9w.js} +14 -14
  279. package/dist/{tables-DMsvolAm.js → tables-BU_H4nY6.js} +1 -1
  280. package/dist/{target-errors-8jjNoBL0.js → target-errors-BIzjX1fS.js} +2 -2
  281. package/dist/{plugin-sdk/tokens-C7z0GjTP.js → tokens-Bni6rpzF.js} +1 -1
  282. package/dist/{update-cli-DWYZ1tUm.js → update-cli-CEdR0Ynr.js} +7 -7
  283. package/dist/{update-cli-CL7uUgaP.js → update-cli-D1brJHee.js} +8 -8
  284. package/dist/{update-runner-BqSKGaJN.js → update-runner-BHJAqAWW.js} +1 -1
  285. package/dist/{update-runner-CEYdupYX.js → update-runner-VYVhCqYi.js} +1 -1
  286. package/dist/{web-BIi6BO7W.js → web-BiMwVGat.js} +39 -39
  287. package/dist/{web-BPbbgjpU.js → web-BkrHANg4.js} +2 -2
  288. package/dist/{web-DBq9huL6.js → web-C9AKRZah.js} +2 -2
  289. package/dist/{web-Bjan-Rsw.js → web-CPjSHqun.js} +1 -1
  290. package/dist/{whatsapp-actions-BxKgTbFB.js → whatsapp-actions-Dj7amXQf.js} +15 -15
  291. package/dist/{workspace-DbJSpu_1.js → workspace-DKFhGA36.js} +19 -19
  292. package/package.json +1 -1
  293. package/dist/compact.runtime-Dg0TmuzG.js +0 -39
  294. package/dist/deliver-runtime-DyMFu2FO.js +0 -19
  295. package/dist/deps-send-discord.runtime-gRnUgs2H.js +0 -19
  296. package/dist/deps-send-imessage.runtime-5FilPWGb.js +0 -18
  297. package/dist/deps-send-signal.runtime-gS6ZPRwB.js +0 -17
  298. package/dist/deps-send-slack.runtime-DTzQNAy6.js +0 -17
  299. package/dist/deps-send-telegram.runtime-Q2yCOTPa.js +0 -20
  300. package/dist/deps-send-whatsapp.runtime-Bvft5vAZ.js +0 -43
  301. package/dist/image-runtime-CpWYN3Ha.js +0 -12
  302. package/dist/manager-runtime-Fh2dlaK2.js +0 -15
  303. package/dist/pi-model-discovery-runtime-Gxda8_lc.js +0 -12
  304. package/dist/plugin-sdk/compact.runtime-DwmAb9nx.js +0 -35
  305. package/dist/plugin-sdk/deliver-runtime-DNOJ4OJQ.js +0 -15
  306. package/dist/plugin-sdk/deps-send-discord.runtime-BqvwEzKm.js +0 -15
  307. package/dist/plugin-sdk/deps-send-imessage.runtime-CbkVBXpM.js +0 -14
  308. package/dist/plugin-sdk/deps-send-signal.runtime-GuMM4vi_.js +0 -13
  309. package/dist/plugin-sdk/deps-send-slack.runtime-CyeC0GC4.js +0 -13
  310. package/dist/plugin-sdk/deps-send-telegram.runtime-B1OdPD47.js +0 -16
  311. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CAGeTaCS.js +0 -39
  312. package/dist/plugin-sdk/image-runtime-DiLZ3JHF.js +0 -8
  313. package/dist/plugin-sdk/manager-runtime-Xfz0umAw.js +0 -11
  314. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-DHmdnfYc.js +0 -9
  315. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-Bc8wvDBD.js +0 -13
  316. package/dist/plugin-sdk/slash-dispatch.runtime-Sx51CCEH.js +0 -35
  317. package/dist/plugin-sdk/slash-skill-commands.runtime-CaZ-hyQx.js +0 -9
  318. package/dist/plugin-sdk/subagent-registry-runtime-ts_kQGiR.js +0 -35
  319. package/dist/runtime-whatsapp-login.runtime-CH0uHMT2.js +0 -13
  320. package/dist/runtime-whatsapp-outbound.runtime-DQrA9vyJ.js +0 -17
  321. package/dist/slash-commands.runtime-bre1xiAP.js +0 -12
  322. package/dist/slash-dispatch.runtime-DkGyW6Mw.js +0 -39
  323. package/dist/slash-skill-commands.runtime-DrY95thE.js +0 -13
  324. package/dist/subagent-registry-runtime-TRroxozR.js +0 -39
@@ -0,0 +1 @@
1
+ :root{--bg: #12141a;--bg-accent: #14161d;--bg-elevated: #1a1d25;--bg-hover: #262a35;--bg-muted: #262a35;--card: #181b22;--card-foreground: #f4f4f5;--card-highlight: rgba(255, 255, 255, .05);--popover: #181b22;--popover-foreground: #f4f4f5;--panel: #12141a;--panel-strong: #1a1d25;--panel-hover: #262a35;--chrome: rgba(18, 20, 26, .95);--chrome-strong: rgba(18, 20, 26, .98);--text: #e4e4e7;--text-strong: #fafafa;--chat-text: #e4e4e7;--muted: #71717a;--muted-strong: #52525b;--muted-foreground: #71717a;--border: #27272a;--border-strong: #3f3f46;--border-hover: #52525b;--input: #27272a;--ring: #ff5c5c;--accent: #ff5c5c;--accent-hover: #ff7070;--accent-muted: #ff5c5c;--accent-subtle: rgba(255, 92, 92, .15);--accent-foreground: #fafafa;--accent-glow: rgba(255, 92, 92, .25);--primary: #ff5c5c;--primary-foreground: #ffffff;--secondary: #1e2028;--secondary-foreground: #f4f4f5;--accent-2: #14b8a6;--accent-2-muted: rgba(20, 184, 166, .7);--accent-2-subtle: rgba(20, 184, 166, .15);--ok: #22c55e;--ok-muted: rgba(34, 197, 94, .75);--ok-subtle: rgba(34, 197, 94, .12);--destructive: #ef4444;--destructive-foreground: #fafafa;--warn: #f59e0b;--warn-muted: rgba(245, 158, 11, .75);--warn-subtle: rgba(245, 158, 11, .12);--danger: #ef4444;--danger-muted: rgba(239, 68, 68, .75);--danger-subtle: rgba(239, 68, 68, .12);--info: #3b82f6;--focus: rgba(255, 92, 92, .25);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--ring);--focus-glow: 0 0 0 2px var(--bg), 0 0 0 4px var(--ring), 0 0 20px var(--accent-glow);--grid-line: rgba(255, 255, 255, .04);--theme-switch-x: 50%;--theme-switch-y: 50%;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: var(--font-body);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-lg: 0 12px 28px rgba(0, 0, 0, .35), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .4), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-glow: 0 0 30px var(--accent-glow);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--radius: 8px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .35s;color-scheme:dark}:root[data-theme=light]{--bg: #fafafa;--bg-accent: #f5f5f5;--bg-elevated: #ffffff;--bg-hover: #f0f0f0;--bg-muted: #f0f0f0;--bg-content: #f5f5f5;--card: #ffffff;--card-foreground: #18181b;--card-highlight: rgba(0, 0, 0, .03);--popover: #ffffff;--popover-foreground: #18181b;--panel: #fafafa;--panel-strong: #f5f5f5;--panel-hover: #ebebeb;--chrome: rgba(250, 250, 250, .95);--chrome-strong: rgba(250, 250, 250, .98);--text: #3f3f46;--text-strong: #18181b;--chat-text: #3f3f46;--muted: #71717a;--muted-strong: #52525b;--muted-foreground: #71717a;--border: #e4e4e7;--border-strong: #d4d4d8;--border-hover: #a1a1aa;--input: #e4e4e7;--accent: #dc2626;--accent-hover: #ef4444;--accent-muted: #dc2626;--accent-subtle: rgba(220, 38, 38, .12);--accent-foreground: #ffffff;--accent-glow: rgba(220, 38, 38, .15);--primary: #dc2626;--primary-foreground: #ffffff;--secondary: #f4f4f5;--secondary-foreground: #3f3f46;--accent-2: #0d9488;--accent-2-muted: rgba(13, 148, 136, .75);--accent-2-subtle: rgba(13, 148, 136, .12);--ok: #16a34a;--ok-muted: rgba(22, 163, 74, .75);--ok-subtle: rgba(22, 163, 74, .1);--destructive: #dc2626;--destructive-foreground: #fafafa;--warn: #d97706;--warn-muted: rgba(217, 119, 6, .75);--warn-subtle: rgba(217, 119, 6, .1);--danger: #dc2626;--danger-muted: rgba(220, 38, 38, .75);--danger-subtle: rgba(220, 38, 38, .1);--info: #2563eb;--focus: rgba(220, 38, 38, .2);--focus-glow: 0 0 0 2px var(--bg), 0 0 0 4px var(--ring), 0 0 16px var(--accent-glow);--grid-line: rgba(0, 0, 0, .05);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 0 0 1px rgba(0, 0, 0, .04);--shadow-lg: 0 12px 28px rgba(0, 0, 0, .12), 0 0 0 1px rgba(0, 0, 0, .04);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .15), 0 0 0 1px rgba(0, 0, 0, .04);--shadow-glow: 0 0 24px var(--accent-glow);color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font:400 14px/1.55 var(--font-body);letter-spacing:-.02em;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes theme-circle-transition{0%{clip-path:circle(0% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%))}to{clip-path:circle(150% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%))}}html.theme-transition{view-transition-name:theme}html.theme-transition::view-transition-old(theme){mix-blend-mode:normal;animation:none;z-index:1}html.theme-transition::view-transition-new(theme){mix-blend-mode:normal;z-index:2;animation:theme-circle-transition .4s var(--ease-out) forwards}@media(prefers-reduced-motion:reduce){html.theme-transition::view-transition-old(theme),html.theme-transition::view-transition-new(theme){animation:none!important}}openclaw-app{display:block;position:relative;z-index:1;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent-subtle);color:var(--text-strong)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes dashboard-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.7}}@keyframes glow-pulse{0%,to{box-shadow:0 0 #ff5c5c00}50%{box-shadow:0 0 20px var(--accent-glow)}}.stagger-1{animation-delay:0ms}.stagger-2{animation-delay:50ms}.stagger-3{animation-delay:.1s}.stagger-4{animation-delay:.15s}.stagger-5{animation-delay:.2s}.stagger-6{animation-delay:.25s}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.shell{--shell-pad: 16px;--shell-gap: 16px;--shell-nav-width: 220px;--shell-topbar-height: 56px;--shell-focus-duration: .2s;--shell-focus-ease: var(--ease-out);height:100vh;display:grid;grid-template-columns:var(--shell-nav-width) minmax(0,1fr);grid-template-rows:var(--shell-topbar-height) 1fr;grid-template-areas:"topbar topbar" "nav content";gap:0;animation:dashboard-enter .4s var(--ease-out);transition:grid-template-columns var(--shell-focus-duration) var(--shell-focus-ease);overflow:hidden}@supports (height: 100dvh){.shell{height:100dvh}}.shell--chat{min-height:100vh;height:100vh;overflow:hidden}@supports (height: 100dvh){.shell--chat{height:100dvh}}.shell--nav-collapsed,.shell--chat-focus{grid-template-columns:0px minmax(0,1fr)}.shell--onboarding{grid-template-rows:0 1fr}.shell--onboarding .topbar{display:none}.shell--onboarding .content,.shell--chat-focus .content{padding-top:0}.shell--chat-focus .content>*+*{margin-top:0}.topbar{grid-area:topbar;position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 20px;height:var(--shell-topbar-height);border-bottom:1px solid var(--border);background:var(--bg)}.topbar-left{display:flex;align-items:center;gap:12px}.topbar .nav-collapse-toggle{width:36px;height:36px;margin-bottom:0}.topbar .nav-collapse-toggle__icon{width:20px;height:20px}.topbar .nav-collapse-toggle__icon svg{width:20px;height:20px}.brand{display:flex;align-items:center;gap:10px}.brand-logo{width:28px;height:28px;flex-shrink:0}.brand-logo img{width:100%;height:100%;object-fit:contain}.brand-text{display:flex;flex-direction:column;gap:1px}.brand-title{font-size:16px;font-weight:700;letter-spacing:-.03em;line-height:1.1;color:var(--text-strong)}.brand-sub{font-size:10px;font-weight:500;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;line-height:1}.topbar-status{display:flex;align-items:center;gap:8px}.topbar-status .pill{padding:6px 10px;gap:6px;font-size:12px;font-weight:500;height:32px;box-sizing:border-box}.topbar-status .pill .mono{display:flex;align-items:center;line-height:1;margin-top:0}.topbar-status .statusDot{width:6px;height:6px}.topbar-status .theme-toggle{--theme-item: 24px;--theme-gap: 2px;--theme-pad: 3px}.topbar-status .theme-icon{width:12px;height:12px}.nav{grid-area:nav;overflow-y:auto;overflow-x:hidden;padding:16px 12px;background:var(--bg);scrollbar-width:none;transition:width var(--shell-focus-duration) var(--shell-focus-ease),padding var(--shell-focus-duration) var(--shell-focus-ease),opacity var(--shell-focus-duration) var(--shell-focus-ease);min-height:0}.nav::-webkit-scrollbar{display:none}.shell--chat-focus .nav{width:0;padding:0;border-width:0;overflow:hidden;pointer-events:none;opacity:0}.nav--collapsed{width:0;min-width:0;padding:0;overflow:hidden;border:none;opacity:0;pointer-events:none}.nav-collapse-toggle{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease;margin-bottom:16px}.nav-collapse-toggle:hover{background:var(--bg-hover);border-color:var(--border)}.nav-collapse-toggle__icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--muted);transition:color var(--duration-fast) ease}.nav-collapse-toggle__icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.nav-collapse-toggle:hover .nav-collapse-toggle__icon{color:var(--text)}.nav-group{margin-bottom:20px;display:grid;gap:2px}.nav-group:last-child{margin-bottom:0}.nav-group__items{display:grid;gap:1px}.nav-group--collapsed .nav-group__items{display:none}.nav-label{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:6px 10px;font-size:11px;font-weight:500;color:var(--muted);margin-bottom:4px;background:transparent;border:none;cursor:pointer;text-align:left;border-radius:var(--radius-sm);transition:color var(--duration-fast) ease,background var(--duration-fast) ease}.nav-label:hover{color:var(--text);background:var(--bg-hover)}.nav-label--static{cursor:default}.nav-label--static:hover{color:var(--muted);background:transparent}.nav-label__text{flex:1}.nav-label__chevron{font-size:10px;opacity:.5;transition:transform var(--duration-fast) ease}.nav-group--collapsed .nav-label__chevron{transform:rotate(-90deg)}.nav-item{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:8px 10px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;text-decoration:none;transition:border-color var(--duration-fast) ease,background var(--duration-fast) ease,color var(--duration-fast) ease}.nav-item__icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.7;transition:opacity var(--duration-fast) ease}.nav-item__icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.nav-item__text{font-size:13px;font-weight:500;white-space:nowrap}.nav-item:hover{color:var(--text);background:var(--bg-hover);text-decoration:none}.nav-item:hover .nav-item__icon{opacity:1}.nav-item.active{color:var(--text-strong);background:var(--accent-subtle)}.nav-item.active .nav-item__icon{opacity:1;color:var(--accent)}.content{grid-area:content;padding:12px 16px 32px;display:block;min-height:0;overflow-y:auto;overflow-x:hidden}.content>*+*{margin-top:24px}:root[data-theme=light] .content{background:var(--bg-content)}.content--chat{display:flex;flex-direction:column;gap:24px;overflow:hidden;padding-bottom:0}.content--chat>*+*{margin-top:0}.content-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:4px 8px;overflow:hidden;transform-origin:top center;transition:opacity var(--shell-focus-duration) var(--shell-focus-ease),transform var(--shell-focus-duration) var(--shell-focus-ease),max-height var(--shell-focus-duration) var(--shell-focus-ease),padding var(--shell-focus-duration) var(--shell-focus-ease);max-height:80px}.shell--chat-focus .content-header{opacity:0;transform:translateY(-8px);max-height:0px;padding:0;pointer-events:none}.page-title{font-size:26px;font-weight:700;letter-spacing:-.035em;line-height:1.15;color:var(--text-strong)}.page-sub{color:var(--muted);font-size:14px;font-weight:400;margin-top:6px;letter-spacing:-.01em}.page-meta{display:flex;gap:8px}.content--chat .content-header{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.content--chat .content-header>div:first-child{text-align:left}.content--chat .page-meta{justify-content:flex-start}.content--chat .chat-controls{flex-shrink:0}.grid{display:grid;gap:20px}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.note-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.row{display:flex;gap:12px;align-items:center}.stack{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}@media(max-width:1100px){.shell{--shell-pad: 12px;--shell-gap: 12px;grid-template-columns:1fr;grid-template-rows:auto auto 1fr;grid-template-areas:"topbar" "nav" "content"}.nav{position:static;max-height:none;display:flex;gap:6px;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);padding:10px 14px;background:var(--bg)}.nav-group{grid-auto-flow:column;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));margin-bottom:0}.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}.topbar{position:static;padding:12px 14px;gap:10px}.topbar-status{flex-wrap:wrap}.table-head,.table-row,.list-item{grid-template-columns:1fr}}@media(max-width:1100px){.nav{display:flex;flex-direction:row;flex-wrap:nowrap;gap:4px;padding:10px 14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav-group,.nav-group__items{display:contents}.nav-label{display:none}.nav-group--collapsed .nav-group__items{display:contents}.nav-item{padding:8px 14px;font-size:13px;border-radius:var(--radius-md);white-space:nowrap;flex-shrink:0}}@media(max-width:600px){.shell{--shell-pad: 8px;--shell-gap: 8px}.topbar{padding:10px 12px;gap:8px;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center}.brand{flex:1;min-width:0}.brand-title{font-size:14px}.brand-sub{display:none}.topbar-status{gap:6px;width:auto;flex-wrap:nowrap}.topbar-status .pill{padding:4px 8px;font-size:11px;gap:4px}.topbar-status .pill .mono{display:none}.topbar-status .pill span:nth-child(2){display:none}.nav{padding:8px 10px;gap:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav-group{display:contents}.nav-label{display:none}.nav-item{padding:6px 10px;font-size:12px;border-radius:var(--radius-md);white-space:nowrap;flex-shrink:0}.content-header{display:none}.content{padding:4px 4px 16px;gap:12px}.card{padding:12px;border-radius:var(--radius-md)}.card-title{font-size:13px}.stat-grid{gap:8px;grid-template-columns:repeat(2,1fr)}.stat{padding:10px;border-radius:var(--radius-md)}.stat-label{font-size:11px}.stat-value{font-size:18px}.note-grid{grid-template-columns:1fr;gap:8px}.form-grid{grid-template-columns:1fr;gap:10px}.field input,.field textarea,.field select{padding:8px 10px;border-radius:var(--radius-md);font-size:14px}.btn{padding:8px 12px;font-size:12px}.pill{padding:4px 10px;font-size:12px}.chat-header{flex-direction:column;align-items:stretch;gap:8px}.chat-header__left{flex-direction:column;align-items:stretch}.chat-header__right{justify-content:space-between}.chat-session{min-width:unset;width:100%}.chat-thread{margin-top:8px;padding:12px 8px}.chat-msg{max-width:90%}.chat-bubble{padding:8px 12px;border-radius:var(--radius-md)}.chat-compose{gap:8px}.chat-compose__field textarea{min-height:60px;padding:8px 10px;border-radius:var(--radius-md);font-size:14px}.log-stream{border-radius:var(--radius-md);max-height:380px}.log-row{grid-template-columns:1fr;gap:4px;padding:8px}.log-time{font-size:10px}.log-level{font-size:9px}.log-subsystem{font-size:11px}.log-message{font-size:12px}.list-item{padding:10px;border-radius:var(--radius-md)}.list-title{font-size:13px}.list-sub{font-size:11px}.code-block{padding:8px;border-radius:var(--radius-md);font-size:11px}.theme-toggle{--theme-item: 24px;--theme-gap: 2px;--theme-pad: 3px}.theme-icon{width:12px;height:12px}}@media(max-width:400px){.shell{--shell-pad: 4px}.topbar{padding:8px 10px}.brand-title{font-size:13px}.nav{padding:6px 8px}.nav-item{padding:6px 8px;font-size:11px}.content{padding:4px 4px 12px;gap:10px}.card{padding:10px}.stat{padding:8px}.stat-value{font-size:16px}.chat-bubble{padding:8px 10px}.chat-compose__field textarea{min-height:52px;padding:8px 10px;font-size:13px}.btn{padding:6px 10px;font-size:11px}.topbar-status .pill{padding:3px 6px;font-size:10px}.theme-toggle{--theme-item: 22px;--theme-gap: 2px;--theme-pad: 2px}.theme-icon{width:11px;height:11px}}.chat{position:relative;display:flex;flex-direction:column;flex:1 1 0;height:100%;min-height:0;overflow:hidden;background:transparent!important;border:none!important;box-shadow:none!important}.chat-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:nowrap;flex-shrink:0;padding-bottom:12px;margin-bottom:12px;background:transparent}.chat-header__left{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.chat-session{min-width:180px}.chat-thread{flex:1 1 0;overflow-y:auto;overflow-x:hidden;padding:12px 4px;margin:0 -4px;min-height:0;border-radius:12px;background:transparent}.chat-focus-exit{position:absolute;top:12px;right:12px;z-index:100;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease-out,color .15s ease-out,border-color .15s ease-out;box-shadow:0 4px 12px #0003}.chat-focus-exit:hover{background:var(--panel-strong);color:var(--text);border-color:var(--accent)}.chat-focus-exit svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chat-new-messages{align-self:center;display:inline-flex;align-items:center;gap:6px;padding:6px 14px;margin:8px auto;font-size:13px;font-family:var(--font-body);color:var(--text);background:var(--panel-strong);border:1px solid var(--border);border-radius:999px;cursor:pointer;white-space:nowrap;z-index:10;transition:background .15s ease-out,border-color .15s ease-out}.chat-new-messages:hover{background:var(--panel);border-color:var(--accent)}.chat-new-messages svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.chat-compose{position:sticky;bottom:0;flex-shrink:0;display:flex;flex-direction:column;gap:12px;margin-top:auto;padding:12px 4px 4px;background:linear-gradient(to bottom,transparent,var(--bg) 20%);z-index:10}.chat-attachments{display:inline-flex;flex-wrap:wrap;gap:8px;padding:8px;background:var(--panel);border-radius:8px;border:1px solid var(--border);width:fit-content;max-width:100%;align-self:flex-start}.chat-attachment{position:relative;width:80px;height:80px;border-radius:6px;overflow:hidden;border:1px solid var(--border);background:var(--bg)}.chat-attachment__img{width:100%;height:100%;object-fit:contain}.chat-attachment__remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:none;background:#000000b3;color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease-out}.chat-attachment:hover .chat-attachment__remove{opacity:1}.chat-attachment__remove:hover{background:#dc2626e6}.chat-attachment__remove svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2px}:root[data-theme=light] .chat-attachments{background:#f8fafc;border-color:#1018281a}:root[data-theme=light] .chat-attachment{border-color:#10182826;background:#fff}:root[data-theme=light] .chat-attachment__remove{background:#0009}.chat-message-images{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.chat-message-image{max-width:300px;max-height:200px;border-radius:8px;object-fit:contain;cursor:pointer;transition:transform .15s ease-out}.chat-message-image:hover{transform:scale(1.02)}.chat-group.user .chat-message-images{justify-content:flex-end}.chat-compose__row{display:flex;align-items:stretch;gap:12px;flex:1}:root[data-theme=light] .chat-compose{background:linear-gradient(to bottom,transparent,var(--bg-content) 20%)}.chat-compose__field{flex:1 1 auto;min-width:0;display:flex;align-items:stretch}.chat-compose__field>span{display:none}.chat-compose .chat-compose__field textarea{width:100%;height:40px;min-height:40px;max-height:150px;padding:9px 12px;border-radius:8px;overflow-y:auto;resize:none;white-space:pre-wrap;font-family:var(--font-body);font-size:14px;line-height:1.45}.chat-compose__field textarea:disabled{opacity:.7;cursor:not-allowed}.chat-compose__actions{flex-shrink:0;display:flex;align-items:stretch;gap:8px}.chat-compose .chat-compose__actions .btn{padding:0 16px;font-size:13px;height:40px;min-height:40px;max-height:40px;line-height:1;white-space:nowrap;box-sizing:border-box}.chat-controls{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.chat-controls__session{min-width:140px;max-width:300px}.chat-controls__thinking{display:flex;align-items:center;gap:6px;font-size:13px}.btn--icon{padding:8px!important;min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#ffffff0f}.chat-controls__separator{color:#fff6;font-size:18px;margin:0 8px;font-weight:300}:root[data-theme=light] .chat-controls__separator{color:#1018284d}.btn--icon:hover{background:#ffffff1f;border-color:#fff3}:root[data-theme=light] .btn--icon{background:#fff;border-color:var(--border);box-shadow:0 1px 2px #1018280d;color:var(--muted)}:root[data-theme=light] .btn--icon:hover{background:#fff;border-color:var(--border-strong);color:var(--text)}:root[data-theme=light] .chat-controls .btn--icon.active{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent);box-shadow:0 0 0 1px var(--accent-subtle)}.btn--icon svg{display:block;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-controls__session select{padding:6px 10px;font-size:13px;max-width:300px;overflow:hidden;text-overflow:ellipsis}.chat-controls__thinking{display:flex;align-items:center;gap:4px;font-size:12px;padding:4px 10px;background:#ffffff0a;border-radius:6px;border:1px solid var(--border)}:root[data-theme=light] .chat-controls__thinking{background:#ffffffe6;border-color:#10182826}@media(max-width:640px){.chat-session{min-width:140px}.chat-compose{grid-template-columns:1fr}.chat-compose__row{flex-direction:column;gap:8px}.chat-compose__actions{flex-direction:column;width:100%;gap:8px}.chat-compose .chat-compose__actions .btn{width:100%}.chat-controls{flex-wrap:wrap;gap:8px}.chat-controls__session{min-width:120px}}.chat-thinking{margin-bottom:10px;padding:10px 12px;border-radius:10px;border:1px dashed rgba(255,255,255,.18);background:#ffffff0a;color:var(--muted);font-size:12px;line-height:1.4}:root[data-theme=light] .chat-thinking{border-color:#10182840;background:#1018280a}.chat-text{font-size:14px;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word}.chat-text :where(p+p,p+ul,p+ol,p+pre,p+blockquote){margin-top:.75em}.chat-text :where(ul,ol){padding-left:1.5em}.chat-text :where(a){color:var(--accent);text-decoration:underline;text-underline-offset:2px}.chat-text :where(a:hover){opacity:.8}.chat-text :where(:not(pre)>code){background:#00000026;padding:.15em .4em;border-radius:4px;overflow-wrap:normal;word-break:keep-all}.chat-text :where(pre){background:#00000026;border-radius:6px;padding:10px 12px;overflow-x:auto}.chat-text :where(pre code){background:none;padding:0}.chat-text :where(blockquote){border-left:3px solid var(--border-strong);margin-left:0;color:var(--muted);background:#ffffff05;padding:8px 12px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.chat-text :where(blockquote blockquote){margin-top:8px;border-left-color:var(--border-hover);background:#ffffff08}.chat-text :where(blockquote blockquote blockquote){border-left-color:var(--muted-strong);background:#ffffff0a}:root[data-theme=light] .chat-text :where(blockquote){background:#00000008}:root[data-theme=light] .chat-text :where(blockquote blockquote){background:#0000000d}:root[data-theme=light] .chat-text :where(blockquote blockquote blockquote){background:#0000000a}:root[data-theme=light] .chat-text :where(:not(pre)>code){background:#00000014;border:1px solid rgba(0,0,0,.1)}:root[data-theme=light] .chat-text :where(pre){background:#0000000d;border:1px solid rgba(0,0,0,.1)}.chat-text :where(hr){border:none;border-top:1px solid var(--border);margin:1em 0}.chat-text[dir=rtl]{text-align:right}.chat-text[dir=rtl] :where(ul,ol){padding-left:0;padding-right:1.5em}.chat-text[dir=rtl] :where(blockquote){border-left:none;border-right:3px solid var(--border);padding-left:0;padding-right:1em}.chat-group{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;margin-left:4px;margin-right:16px}.chat-group.user{flex-direction:row-reverse;justify-content:flex-start}.chat-group-messages{display:flex;flex-direction:column;gap:2px;max-width:min(900px,calc(100% - 60px))}.chat-group.user .chat-group-messages{align-items:flex-end}.chat-group.user .chat-group-footer{justify-content:flex-end}.chat-group-footer{display:flex;gap:8px;align-items:baseline;margin-top:6px}.chat-sender-name{font-weight:500;font-size:12px;color:var(--muted)}.chat-group-timestamp{font-size:11px;color:var(--muted);opacity:.7}.chat-divider{display:flex;align-items:center;gap:10px;margin:18px 8px;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.chat-divider__line{flex:1 1 0;height:1px;background:var(--border);opacity:.9}.chat-divider__label{padding:2px 10px;border:1px solid var(--border);border-radius:999px;background:#ffffff05}.chat-avatar{width:40px;height:40px;border-radius:8px;background:var(--panel-strong);display:grid;place-items:center;font-weight:600;font-size:14px;flex-shrink:0;align-self:flex-end;margin-bottom:4px}.chat-avatar.user{background:var(--accent-subtle);color:var(--accent)}.chat-avatar.assistant,.chat-avatar.other,.chat-avatar.tool{background:var(--secondary);color:var(--muted)}img.chat-avatar{display:block;object-fit:cover;object-position:center}.chat-bubble{position:relative;display:inline-block;border:1px solid transparent;background:var(--card);border-radius:var(--radius-lg);padding:10px 14px;box-shadow:none;transition:background .15s ease-out,border-color .15s ease-out;max-width:100%;word-wrap:break-word}.chat-bubble.has-copy{padding-right:36px}.chat-copy-btn{position:absolute;top:6px;right:8px;border:1px solid var(--border);background:var(--bg);color:var(--muted);border-radius:var(--radius-md);padding:4px 6px;font-size:14px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s ease-out,background .12s ease-out}.chat-copy-btn__icon{display:inline-flex;width:14px;height:14px;position:relative}.chat-copy-btn__icon svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-copy-btn__icon-copy,.chat-copy-btn__icon-check{position:absolute;top:0;left:0;transition:opacity .15s ease}.chat-copy-btn__icon-check,.chat-copy-btn[data-copied="1"] .chat-copy-btn__icon-copy{opacity:0}.chat-copy-btn[data-copied="1"] .chat-copy-btn__icon-check{opacity:1}.chat-bubble:hover .chat-copy-btn{opacity:1;pointer-events:auto}.chat-copy-btn:hover{background:var(--bg-hover)}.chat-copy-btn[data-copying="1"]{opacity:0;pointer-events:none}.chat-copy-btn[data-error="1"]{opacity:1;pointer-events:auto;border-color:var(--danger-subtle);background:var(--danger-subtle);color:var(--danger)}.chat-copy-btn[data-copied="1"]{opacity:1;pointer-events:auto;border-color:var(--ok-subtle);background:var(--ok-subtle);color:var(--ok)}.chat-copy-btn:focus-visible{opacity:1;pointer-events:auto;outline:2px solid var(--accent);outline-offset:2px}@media(hover:none){.chat-copy-btn{opacity:1;pointer-events:auto}}:root[data-theme=light] .chat-bubble{border-color:var(--border);box-shadow:inset 0 1px 0 var(--card-highlight)}.chat-bubble:hover{background:var(--bg-hover)}.chat-group.user .chat-bubble{background:var(--accent-subtle);border-color:transparent}:root[data-theme=light] .chat-group.user .chat-bubble{border-color:#ea580c33;background:#fb923c1f}.chat-group.user .chat-bubble:hover{background:#ff4d4d26}.chat-bubble.streaming{animation:pulsing-border 1.5s ease-out infinite}@keyframes pulsing-border{0%,to{border-color:var(--border)}50%{border-color:var(--accent)}}.chat-bubble.fade-in{animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-tool-card{border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:8px;background:var(--card);box-shadow:inset 0 1px 0 var(--card-highlight);transition:border-color .15s ease-out,background .15s ease-out;max-height:120px;overflow:hidden}.chat-tool-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}.chat-tool-card:first-child{margin-top:0}.chat-tool-card--clickable{cursor:pointer}.chat-tool-card--clickable:focus{outline:2px solid var(--accent);outline-offset:2px}.chat-tool-card__header{display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-tool-card__title{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;line-height:1.2}.chat-tool-card__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.chat-tool-card__icon svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-tool-card__action{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--accent);opacity:.8;transition:opacity .15s ease-out}.chat-tool-card__action svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chat-tool-card--clickable:hover .chat-tool-card__action{opacity:1}.chat-tool-card__status{display:inline-flex;align-items:center;color:var(--ok)}.chat-tool-card__status svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chat-tool-card__status-text{font-size:11px;margin-top:4px}.chat-tool-card__detail{font-size:12px;color:var(--muted);margin-top:4px}.chat-tool-card__preview{font-size:11px;color:var(--muted);margin-top:8px;padding:8px 10px;background:var(--secondary);border-radius:var(--radius-md);white-space:pre-wrap;overflow:hidden;max-height:44px;line-height:1.4;border:1px solid var(--border)}.chat-tool-card--clickable:hover .chat-tool-card__preview{background:var(--bg-hover);border-color:var(--border-strong)}.chat-tool-card__inline{font-size:11px;color:var(--text);margin-top:6px;padding:6px 8px;background:var(--secondary);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word}.chat-reading-indicator{background:transparent;border:1px solid var(--border);padding:12px;display:inline-flex}.chat-reading-indicator__dots{display:flex;gap:6px;align-items:center}.chat-reading-indicator__dots span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:reading-pulse 1.4s ease-in-out infinite}.chat-reading-indicator__dots span:nth-child(1){animation-delay:0s}.chat-reading-indicator__dots span:nth-child(2){animation-delay:.2s}.chat-reading-indicator__dots span:nth-child(3){animation-delay:.4s}@keyframes reading-pulse{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-split-container{display:flex;gap:0;flex:1;min-height:0;height:100%}.chat-main{min-width:400px;display:flex;flex-direction:column;overflow:hidden;transition:flex .25s ease-out}.chat-sidebar{flex:1;min-width:300px;border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;animation:slide-in .2s ease-out}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.sidebar-panel{display:flex;flex-direction:column;height:100%;background:var(--panel)}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0;position:sticky;top:0;z-index:10;background:var(--panel)}.sidebar-header .btn{padding:4px 8px;font-size:14px;min-width:auto;line-height:1}.sidebar-title{font-weight:600;font-size:14px}.sidebar-content{flex:1;overflow:auto;padding:16px}.sidebar-markdown{font-size:14px;line-height:1.5}.sidebar-markdown pre{background:#0000001f;border-radius:4px;padding:12px;overflow-x:auto}.sidebar-markdown code{font-family:var(--mono);font-size:13px}@media(max-width:768px){.chat-split-container--open{position:fixed;inset:0;z-index:1000}.chat-split-container--open .chat-main{display:none}.chat-split-container--open .chat-sidebar{width:100%;min-width:0;border-left:none}}.update-banner{position:sticky;top:0;z-index:10;margin:0 calc(-1 * var(--shell-pad)) 0;border-radius:0;border-left:none;border-right:none;text-align:center;font-weight:500;padding:10px 16px}.update-banner__btn{margin-left:8px;border-color:var(--danger);color:var(--danger);font-size:12px;padding:4px 12px}.update-banner__btn:hover:not(:disabled){background:#ef444426}.card{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-lg);padding:20px;animation:rise .35s var(--ease-out) backwards;transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--card-highlight)}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md),inset 0 1px 0 var(--card-highlight)}.card-title{font-size:15px;font-weight:600;letter-spacing:-.02em;color:var(--text-strong)}.card-sub{color:var(--muted);font-size:13px;margin-top:6px;line-height:1.5}.stat{background:var(--card);border-radius:var(--radius-md);padding:14px 16px;border:1px solid var(--border);transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out);box-shadow:inset 0 1px 0 var(--card-highlight)}.stat:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--card-highlight)}.stat-label{color:var(--muted);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:24px;font-weight:700;margin-top:6px;letter-spacing:-.03em;line-height:1.1}.stat-value.ok{color:var(--ok)}.stat-value.warn{color:var(--warn)}.stat-card{display:grid;gap:6px}.note-title{font-weight:600;letter-spacing:-.01em}.status-list{display:grid;gap:8px}.status-list div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.status-list div:last-child{border-bottom:none}.account-count{margin-top:10px;font-size:12px;font-weight:500;color:var(--muted)}.account-card-list{margin-top:16px;display:grid;gap:12px}.account-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;background:var(--bg-elevated);transition:border-color var(--duration-fast) ease}.account-card:hover{border-color:var(--border-strong)}.account-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.account-card-title{font-weight:500}.account-card-id{font-family:var(--mono);font-size:12px;color:var(--muted)}.account-card-status{margin-top:10px;font-size:13px}.account-card-status div{padding:4px 0}.account-card-error{margin-top:8px;color:var(--danger);font-size:12px}.label{color:var(--muted);font-size:12px;font-weight:500}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius-full);background:var(--secondary);font-size:13px;font-weight:500;transition:border-color var(--duration-fast) ease}.pill:hover{border-color:var(--border-strong)}.pill.danger{border-color:var(--danger-subtle);background:var(--danger-subtle);color:var(--danger)}.theme-toggle{--theme-item: 28px;--theme-gap: 2px;--theme-pad: 4px;position:relative}.theme-toggle__track{position:relative;display:grid;grid-template-columns:repeat(3,var(--theme-item));gap:var(--theme-gap);padding:var(--theme-pad);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--secondary)}.theme-toggle__indicator{position:absolute;top:50%;left:var(--theme-pad);width:var(--theme-item);height:var(--theme-item);border-radius:var(--radius-full);transform:translateY(-50%) translate(calc(var(--theme-index, 0) * (var(--theme-item) + var(--theme-gap))));background:var(--accent);transition:transform var(--duration-normal) var(--ease-out);z-index:0}.theme-toggle__button{height:var(--theme-item);width:var(--theme-item);display:grid;place-items:center;border:0;border-radius:var(--radius-full);background:transparent;color:var(--muted);cursor:pointer;position:relative;z-index:1;transition:color var(--duration-fast) ease}.theme-toggle__button:hover{color:var(--text)}.theme-toggle__button.active{color:var(--accent-foreground)}.theme-toggle__button.active .theme-icon{stroke:var(--accent-foreground)}.theme-icon{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.statusDot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--danger);box-shadow:0 0 8px #ef444480;animation:pulse-subtle 2s ease-in-out infinite}.statusDot.ok{background:var(--ok);box-shadow:0 0 8px #22c55e80;animation:none}.statusDot.warn{background:var(--warn);box-shadow:0 0 8px #f59e0b80;animation:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);background:var(--bg-elevated);padding:9px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;letter-spacing:-.01em;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active{background:var(--secondary);transform:translateY(0);box-shadow:none}.btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.btn.primary{border-color:var(--accent);background:var(--accent);color:var(--primary-foreground);box-shadow:0 1px 2px #0003}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-md),0 0 20px var(--accent-glow)}.btn-kbd{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:2px 5px;font-family:var(--mono);font-size:11px;font-weight:500;line-height:1;border-radius:4px;background:#ffffff26;color:inherit;opacity:.8}.btn.primary .btn-kbd{background:#fff3}:root[data-theme=light] .btn-kbd{background:#00000014}:root[data-theme=light] .btn.primary .btn-kbd{background:#ffffff40}.btn.active{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.btn.danger{border-color:transparent;background:var(--danger-subtle);color:var(--danger)}.btn.danger:hover{background:#ef444426}.btn--sm{padding:6px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:grid;gap:6px}.field.full{grid-column:1 / -1}.field span{color:var(--muted);font-size:13px;font-weight:500}.field input,.field textarea,.field select{border:1px solid var(--input);background:var(--card);border-radius:var(--radius-md);padding:8px 12px;outline:none;box-shadow:inset 0 1px 0 var(--card-highlight);transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ring);box-shadow:var(--focus-ring)}.field select{appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.field textarea{font-family:var(--mono);min-height:160px;resize:vertical;white-space:pre;line-height:1.5}.field.checkbox{grid-template-columns:auto 1fr;align-items:center}.config-form .field.checkbox{grid-template-columns:18px minmax(0,1fr);column-gap:10px}.config-form .field.checkbox input[type=checkbox]{margin:0;width:16px;height:16px;accent-color:var(--accent)}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.cron-summary-strip{display:flex;justify-content:space-between;align-items:flex-start;gap:12px 18px;padding:14px 16px}.cron-summary-strip__left{display:grid;gap:8px 14px;grid-template-columns:repeat(3,minmax(0,1fr));flex:1 1 auto;min-width:0}.cron-summary-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);padding:10px 12px;min-height:62px;display:grid;gap:6px}.cron-summary-item--wide{grid-column:span 1}.cron-summary-label{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.cron-summary-value{color:var(--text-strong);font-size:15px;font-weight:600;line-height:1.3;display:flex;align-items:center;gap:8px}.cron-summary-strip__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.cron-workspace{margin-top:16px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:16px;align-items:start}.cron-workspace-main{display:grid;gap:16px}.cron-workspace-form{position:sticky;top:74px;max-height:calc(100vh - 106px);overflow-y:auto}.cron-form{margin-top:16px;display:grid;gap:14px}.cron-form-section{border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;background:var(--bg-elevated);display:grid;gap:12px}.cron-form-section__title{font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--text-strong)}.cron-form-section__sub{color:var(--muted);font-size:12px;line-height:1.45}.cron-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.cron-help{color:var(--muted);font-size:12px;line-height:1.45;margin-top:2px}.cron-error{color:var(--danger-color)}.cron-required-legend{color:var(--muted);font-size:12px;line-height:1.4}.cron-required-marker{color:var(--danger-color);font-weight:700;margin-left:3px}.cron-required-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.field input[aria-invalid=true],.field textarea[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 1px 0 var(--card-highlight),0 0 0 1px #ef444433}.cron-form-status{margin-top:4px;border:1px solid var(--danger-subtle);background:var(--danger-subtle);border-radius:var(--radius-md);padding:10px 12px}.cron-form-status__title{color:var(--text-strong);font-size:13px;font-weight:600;margin-bottom:6px}.cron-form-status__list{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px}.cron-form-status__link{border:0;background:transparent;color:var(--text);cursor:pointer;font-size:12px;line-height:1.4;padding:0;text-align:left;text-decoration:underline;text-underline-offset:2px}.cron-form-status__link:hover{color:var(--text-strong)}.cron-span-2{grid-column:1 / -1}.cron-checkbox{align-items:center;grid-template-columns:16px minmax(0,1fr);column-gap:10px}.cron-checkbox input[type=checkbox]{margin:2px 0 0;width:16px;height:16px;accent-color:var(--accent)}.cron-checkbox .field-checkbox__label{color:var(--text-strong);font-size:13px;font-weight:500}.cron-checkbox .cron-help{grid-column:2}.cron-checkbox-inline{align-content:start;align-items:start;padding-top:28px}.cron-advanced{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;background:var(--bg-elevated);display:grid;gap:10px}.cron-advanced__summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:500}.cron-stagger-group{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:14px 16px;align-items:start}.cron-form-actions{margin-top:14px;justify-content:flex-start;align-items:center;gap:10px 14px;flex-wrap:wrap}.cron-submit-reason{color:var(--muted);font-size:12px;line-height:1.4}.cron-filter-search{flex:1 1 320px;min-width:280px}.cron-workspace .filters .field{min-width:160px}.cron-run-filters{margin-top:12px;display:grid;gap:12px}.cron-run-filters__row{display:grid;gap:12px}.cron-run-filters__row--primary{grid-template-columns:minmax(160px,220px) minmax(240px,1fr) minmax(160px,220px)}.cron-run-filters__row--secondary{grid-template-columns:repeat(2,minmax(220px,1fr))}.cron-run-filter-search,.cron-filter-dropdown{min-width:0}.cron-filter-dropdown__details{position:relative}.cron-filter-dropdown__details>summary{list-style:none}.cron-filter-dropdown__details>summary::-webkit-details-marker{display:none}.cron-filter-dropdown__trigger{width:100%;justify-content:space-between;text-align:left}.cron-filter-dropdown__panel{position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:min(360px,calc(100vw - 48px));border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);padding:10px;display:grid;gap:10px;box-shadow:var(--shadow-card)}.cron-filter-dropdown__list{display:grid;gap:6px}.cron-filter-dropdown__option{display:grid;grid-template-columns:16px minmax(0,1fr);gap:8px;align-items:center;color:var(--text);font-size:13px}.cron-filter-dropdown__option input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent)}.cron-run-entry{align-items:start}.cron-run-entry__meta{text-align:right;min-width:220px}.cron-run-entry__summary{white-space:pre-wrap;line-height:1.45}@media(max-width:1100px){.cron-summary-strip{flex-direction:column}.cron-summary-strip__left{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.cron-summary-strip__actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.cron-workspace{grid-template-columns:1fr}.cron-workspace-form{position:static;order:-1}.cron-form-grid{grid-template-columns:1fr;gap:12px}.cron-span-2{grid-column:auto}.cron-checkbox-inline{padding-top:0}.cron-stagger-group{grid-template-columns:1fr;gap:12px}.cron-filter-search{min-width:0;flex:1 1 100%}.cron-run-filters__row--primary,.cron-run-filters__row--secondary{grid-template-columns:1fr}.cron-filter-dropdown__panel{width:100%;max-width:none;position:static;margin-top:8px}.cron-run-entry__meta{min-width:0;text-align:left}}:root[data-theme=light] .field input,:root[data-theme=light] .field textarea,:root[data-theme=light] .field select{background:var(--card);border-color:var(--input)}:root[data-theme=light] .btn{background:var(--bg);border-color:var(--input)}:root[data-theme=light] .btn:hover{background:var(--bg-hover)}:root[data-theme=light] .btn.active{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}:root[data-theme=light] .btn.primary{background:var(--accent);border-color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.callout{padding:14px 16px;border-radius:var(--radius-md);background:var(--secondary);border:1px solid var(--border);font-size:13px;line-height:1.5;position:relative}.callout.danger{border-color:#ef444440;background:linear-gradient(135deg,#ef444414,#ef44440a);color:var(--danger)}.callout.info{border-color:#3b82f640;background:linear-gradient(135deg,#3b82f614,#3b82f60a);color:var(--info)}.callout.success{border-color:#22c55e40;background:linear-gradient(135deg,#22c55e14,#22c55e0a);color:var(--ok)}.compaction-indicator{align-self:center;display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:1.2;padding:6px 14px;margin-bottom:8px;border-radius:999px;border:1px solid var(--border);background:var(--panel-strong);color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none;animation:fade-in .2s var(--ease-out)}.compaction-indicator svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.compaction-indicator--active{color:var(--info);border-color:#3b82f659}.compaction-indicator--active svg{animation:compaction-spin 1s linear infinite}.compaction-indicator--complete{color:var(--ok);border-color:#22c55e59}.compaction-indicator--fallback{color:#d97706;border-color:#d9770659}.compaction-indicator--fallback-cleared{color:var(--ok);border-color:#22c55e59}@keyframes compaction-spin{to{transform:rotate(360deg)}}.code-block{font-family:var(--mono);font-size:13px;line-height:1.5;background:var(--secondary);padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);max-height:360px;overflow:auto;max-width:100%}:root[data-theme=light] .code-block,:root[data-theme=light] .list-item,:root[data-theme=light] .table-row,:root[data-theme=light] .chip{background:var(--bg)}.list{display:grid;gap:8px;container-type:inline-size}.list-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,260px);gap:16px;align-items:start;border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;background:var(--card);transition:border-color var(--duration-fast) ease}.list-item-clickable{cursor:pointer}.list-item-clickable:hover{border-color:var(--border-strong)}.list-item-selected{border-color:var(--accent);box-shadow:var(--focus-ring)}.list-main{display:grid;gap:4px;min-width:0}.list-title{font-weight:500}.list-sub{color:var(--muted);font-size:12px}.list-meta{text-align:right;color:var(--muted);font-size:12px;display:grid;gap:4px;min-width:200px}.list-meta .btn{padding:6px 10px}.list-meta .field input,.list-meta .field textarea,.list-meta .field select{width:100%}.debug-event-log__item{grid-template-columns:minmax(0,1fr)}.debug-event-log__meta{min-width:0;text-align:left}.debug-event-log__payload{margin:0;max-width:100%}.cron-job-payload,.cron-job-agent,.cron-job-state{overflow-wrap:anywhere;word-break:break-word}.cron-job .list-title{font-weight:600;font-size:15px;letter-spacing:-.015em}.cron-job{grid-template-columns:minmax(0,1fr) minmax(240px,300px);grid-template-areas:"main meta" "footer footer";row-gap:10px}.cron-job .list-main{grid-area:main}.cron-job .list-meta{grid-area:meta;min-width:240px;gap:8px}.cron-job-footer{grid-area:footer;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--border);padding-top:10px}.cron-job-chips{flex:1 1 auto}.cron-job-detail{display:grid;gap:3px;margin-top:2px}.cron-job-detail-label{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.cron-job-detail-value{font-size:13px;line-height:1.35}.cron-job-state{display:grid;gap:4px}.cron-job-state-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.cron-job-state-key{color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.cron-job-state-value{color:var(--text);font-size:12px;white-space:nowrap}.cron-job-status-pill{font-size:11px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-full);padding:2px 8px;text-transform:lowercase}.cron-job-status-ok{color:var(--ok);border-color:#22c55e59;background:var(--ok-subtle)}.cron-job-status-error{color:var(--danger);border-color:#ef444459;background:var(--danger-subtle)}.cron-job-status-skipped{color:var(--warn);border-color:#f59e0b59;background:var(--warn-subtle)}.cron-job-status-na{color:var(--muted)}.cron-job-actions{flex-wrap:wrap;justify-content:flex-end;margin-top:0}.cron-job-actions .btn{flex:0 0 auto}@container (max-width: 560px){.list-item{grid-template-columns:1fr}.list-meta{min-width:0;text-align:left}.cron-job-actions{justify-content:flex-start}.cron-job{grid-template-columns:1fr;grid-template-areas:"main" "meta" "footer"}.cron-job-footer{flex-direction:column;align-items:stretch}}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:12px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-full);padding:5px 12px;color:var(--muted);background:var(--secondary);transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.chip:hover{border-color:var(--border-strong);transform:translateY(-1px)}.chip input{margin-right:6px}.chip-ok{color:var(--ok);border-color:#22c55e4d;background:var(--ok-subtle)}.chip-warn{color:var(--warn);border-color:#f59e0b4d;background:var(--warn-subtle)}.chip-danger{color:var(--danger);border-color:#ef44444d;background:var(--danger-subtle)}.table{display:grid;container-type:inline-size;gap:6px}.table-head,.table-row{display:grid;grid-template-columns:1.4fr 1fr .8fr .7fr .8fr .8fr .8fr .8fr .6fr;gap:12px;align-items:center}.table-head{font-size:12px;font-weight:500;color:var(--muted);padding:0 12px}.table-row{border:1px solid var(--border);padding:10px 12px;border-radius:var(--radius-md);background:var(--card);transition:border-color var(--duration-fast) ease}.table-row:hover{border-color:var(--border-strong)}@media(max-width:1100px){.table-head,.table-row{grid-template-columns:1fr}}@container (max-width: 1100px){.table-head,.table-row{grid-template-columns:1fr}}.session-link{text-decoration:none;color:var(--accent);font-weight:500}.session-link:hover{text-decoration:underline}.session-key-cell{display:grid;gap:4px;min-width:0}.session-key-cell .session-link,.session-key-display-name{overflow-wrap:anywhere;word-break:break-word}.session-key-display-name{font-size:11px}.log-stream{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);max-height:500px;overflow:auto;container-type:inline-size}.log-row{display:grid;grid-template-columns:90px 70px minmax(140px,200px) minmax(0,1fr);gap:12px;align-items:start;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;transition:background var(--duration-fast) ease}.log-row:hover{background:var(--bg-hover)}.log-row:last-child{border-bottom:none}.log-time{color:var(--muted);font-family:var(--mono)}.log-level{font-size:11px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 6px;width:fit-content}.log-level.trace,.log-level.debug{color:var(--muted)}.log-level.info{color:var(--info);border-color:#3b82f64d}.log-level.warn{color:var(--warn);border-color:var(--warn-subtle)}.log-level.error,.log-level.fatal{color:var(--danger);border-color:var(--danger-subtle)}.log-chip.trace,.log-chip.debug{color:var(--muted)}.log-chip.info{color:var(--info);border-color:#3b82f64d}.log-chip.warn{color:var(--warn);border-color:var(--warn-subtle)}.log-chip.error,.log-chip.fatal{color:var(--danger);border-color:var(--danger-subtle)}.log-subsystem{color:var(--muted);font-family:var(--mono)}.log-message{white-space:pre-wrap;word-break:break-word;font-family:var(--mono)}@container (max-width: 620px){.log-row{grid-template-columns:70px 60px minmax(0,1fr)}.log-subsystem{display:none}}.chat{display:flex;flex-direction:column;min-height:0}.shell--chat .chat{flex:1}.chat-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.chat-header__left{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;min-width:0}.chat-header__right{display:flex;align-items:center;gap:8px}.chat-session{min-width:240px}.chat-thread{margin-top:16px;display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px 12px;min-width:0;border-radius:0;border:none;background:transparent}.chat-queue{margin-top:12px;padding:12px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--card);display:grid;gap:8px}.chat-queue__title{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--muted)}.chat-queue__list{display:grid;gap:8px}.chat-queue__item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px 12px;border-radius:var(--radius-md);border:1px dashed var(--border-strong);background:var(--secondary)}.chat-queue__text{color:var(--chat-text);font-size:13px;line-height:1.45;white-space:pre-wrap;overflow:hidden;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical}.chat-queue__remove{align-self:start;padding:4px 10px;font-size:12px;line-height:1}.chat-new-messages{align-self:center;margin:8px auto 0;border-radius:999px;padding:6px 12px;font-size:12px;line-height:1}.chat-line{display:flex}.chat-line.user{justify-content:flex-end}.chat-line.assistant,.chat-line.other{justify-content:flex-start}.chat-msg{display:grid;gap:6px;max-width:min(700px,82%)}.chat-line.user .chat-msg{justify-items:end}.chat-bubble{border:1px solid transparent;background:var(--card);border-radius:var(--radius-lg);padding:10px 14px;min-width:0}:root[data-theme=light] .chat-bubble{border-color:var(--border);background:var(--bg)}.chat-line.user .chat-bubble{border-color:transparent;background:var(--accent-subtle)}:root[data-theme=light] .chat-line.user .chat-bubble{border-color:#ea580c33;background:#fb923c1f}.chat-line.assistant .chat-bubble{border-color:transparent;background:var(--secondary)}:root[data-theme=light] .chat-line.assistant .chat-bubble{border-color:var(--border);background:var(--bg-muted)}@keyframes chatStreamPulse{0%,to{border-color:var(--border)}50%{border-color:var(--accent)}}.chat-bubble.streaming{animation:chatStreamPulse 1.5s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.chat-bubble.streaming{animation:none;border-color:var(--accent)}}.chat-bubble.chat-reading-indicator{width:fit-content;padding:10px 16px}.chat-reading-indicator__dots{display:inline-flex;align-items:center;gap:4px;height:12px}.chat-reading-indicator__dots>span{display:inline-block;width:6px;height:6px;border-radius:var(--radius-full);background:var(--muted);opacity:.6;transform:translateY(0);animation:chatReadingDot 1.2s ease-in-out infinite;will-change:transform,opacity}.chat-reading-indicator__dots>span:nth-child(2){animation-delay:.15s}.chat-reading-indicator__dots>span:nth-child(3){animation-delay:.3s}@keyframes chatReadingDot{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.chat-reading-indicator__dots>span{animation:none;opacity:.6}}.chat-text{overflow-wrap:anywhere;word-break:break-word;color:var(--chat-text);line-height:1.5}.chat-text :where(p,ul,ol,pre,blockquote,table){margin:0}.chat-text :where(p+p,p+ul,p+ol,p+pre,p+blockquote,p+table){margin-top:.75em}.chat-text :where(ul,ol){padding-left:1.2em}.chat-text :where(li+li){margin-top:.25em}.chat-text :where(a){color:var(--accent)}.chat-text :where(a:hover){text-decoration:underline}.chat-text :where(blockquote){border-left:2px solid var(--border-strong);padding-left:12px;color:var(--muted)}.chat-text :where(hr){border:0;border-top:1px solid var(--border);margin:1em 0}.chat-text :where(code){font-family:var(--mono);font-size:.9em}.chat-text :where(:not(pre)>code){padding:.15em .35em;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--secondary)}:root[data-theme=light] .chat-text :where(:not(pre)>code){background:var(--bg-muted)}.chat-text :where(pre){margin-top:.75em;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--secondary);overflow:auto}:root[data-theme=light] .chat-text :where(pre){background:var(--bg-muted)}.chat-text :where(pre code){font-size:12px;white-space:pre}.chat-text :where(table){margin-top:.75em;border-collapse:collapse;width:100%;max-width:100%;font-size:13px;display:block;overflow-x:auto}.chat-text :where(th,td){border:1px solid var(--border);padding:6px 10px;vertical-align:top}.chat-text :where(th){font-family:var(--mono);font-weight:500;color:var(--muted);background:var(--secondary)}.chat-tool-card{margin-top:8px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--secondary);display:grid;gap:4px}:root[data-theme=light] .chat-tool-card{background:var(--bg-muted)}.chat-tool-card__title{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--text)}.chat-tool-card__detail{font-family:var(--mono);font-size:11px;color:var(--muted)}.chat-tool-card__details{margin-top:6px}.chat-tool-card__summary{font-family:var(--mono);font-size:11px;color:var(--muted);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px}.chat-tool-card__summary::-webkit-details-marker{display:none}.chat-tool-card__summary-meta{color:var(--muted);opacity:.7}.chat-tool-card__details[open] .chat-tool-card__summary{color:var(--text)}.chat-tool-card__output{margin-top:8px;font-family:var(--mono);font-size:11px;line-height:1.5;white-space:pre-wrap;color:var(--chat-text);padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card)}:root[data-theme=light] .chat-tool-card__output{background:var(--bg)}.chat-stamp{font-size:11px;color:var(--muted)}.chat-line.user .chat-stamp{text-align:right}.chat-compose{margin-top:12px;display:flex;flex-direction:column;gap:10px}.shell--chat .chat-compose{position:sticky;bottom:0;z-index:5;margin-top:0;padding-top:12px;background:linear-gradient(180deg,transparent 0%,var(--bg) 40%)}.shell--chat-focus .chat-compose{bottom:calc(var(--shell-pad) + 8px);padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.chat-compose__field{gap:4px}.chat-compose__field textarea{min-height:72px;padding:10px 14px;border-radius:var(--radius-lg);resize:vertical;white-space:pre-wrap;font-family:var(--font-body);line-height:1.5;border:1px solid var(--input);background:var(--card);box-shadow:inset 0 1px 0 var(--card-highlight);transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.chat-compose__field textarea:focus{border-color:var(--ring);box-shadow:var(--focus-ring)}.chat-compose__field textarea:disabled{opacity:.5;cursor:not-allowed}.chat-compose__actions{justify-content:flex-end;align-self:end}@media(max-width:900px){.chat-session{min-width:180px}.chat-compose{grid-template-columns:1fr}}.qr-wrap{margin-top:16px;border-radius:var(--radius-md);background:var(--card);border:1px dashed var(--border-strong);padding:16px;display:inline-flex}.qr-wrap img{width:160px;height:160px;border-radius:var(--radius-sm);image-rendering:pixelated}.exec-approval-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:200}.exec-approval-card{width:min(540px,100%);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;animation:scale-in .2s var(--ease-out)}.exec-approval-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.exec-approval-title{font-size:14px;font-weight:600}.exec-approval-sub{color:var(--muted);font-size:13px;margin-top:4px}.exec-approval-queue{font-size:11px;font-weight:500;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-full);padding:4px 10px}.exec-approval-command{margin-top:12px;padding:10px 12px;background:var(--secondary);border:1px solid var(--border);border-radius:var(--radius-md);word-break:break-word;white-space:pre-wrap;font-family:var(--mono);font-size:13px}.exec-approval-meta{margin-top:12px;display:grid;gap:6px;font-size:13px;color:var(--muted)}.exec-approval-meta-row{display:flex;justify-content:space-between;gap:12px}.exec-approval-meta-row span:last-child{color:var(--text);font-family:var(--mono)}.exec-approval-error{margin-top:10px;font-size:13px;color:var(--danger)}.exec-approval-actions{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}.agents-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px}.agents-sidebar{display:grid;gap:12px;align-self:start}.agents-main{display:grid;gap:16px}.agent-list{display:grid;gap:8px}.agent-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);padding:10px 12px;cursor:pointer;transition:border-color var(--duration-fast) ease}.agent-row:hover{border-color:var(--border-strong)}.agent-row.active{border-color:var(--accent);box-shadow:var(--focus-ring)}.agent-avatar{width:32px;height:32px;border-radius:50%;background:var(--secondary);display:grid;place-items:center;font-weight:600}.agent-avatar--lg{width:48px;height:48px;font-size:20px}.agent-info{display:grid;gap:2px;min-width:0}.agent-title{font-weight:600}.agent-sub{color:var(--muted);font-size:12px}.agent-pill{border:1px solid var(--border);border-radius:var(--radius-full);padding:4px 10px;font-size:11px;color:var(--muted);background:var(--secondary);text-transform:uppercase;letter-spacing:.04em}.agent-pill.warn{color:var(--warn);border-color:var(--warn)}.agent-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.agent-header-main{display:flex;gap:16px;align-items:center}.agent-header-meta{display:grid;justify-items:end;gap:6px;color:var(--muted)}.agent-tabs{display:flex;gap:8px;flex-wrap:wrap}.agent-tab{border:1px solid var(--border);border-radius:var(--radius-full);padding:6px 14px;font-size:12px;font-weight:600;background:var(--secondary);cursor:pointer;transition:border-color var(--duration-fast) ease,background var(--duration-fast) ease}.agent-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.agents-overview-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.agent-kv{display:grid;gap:6px;min-width:0}.agent-kv>div{min-width:0;overflow-wrap:anywhere;word-break:break-word}.agent-kv-sub{font-size:12px}.agent-model-select{display:grid;gap:12px}.agent-model-meta{display:grid;gap:6px;min-width:200px}.agent-files-grid{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px}.agent-files-list{display:grid;gap:8px}.agent-file-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);padding:10px 12px;cursor:pointer;transition:border-color var(--duration-fast) ease}.agent-file-row:hover{border-color:var(--border-strong)}.agent-file-row.active{border-color:var(--accent);box-shadow:var(--focus-ring)}.agent-file-name{font-weight:600}.agent-file-meta{color:var(--muted);font-size:12px;margin-top:4px}.agent-files-editor{border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;background:var(--card)}.agent-file-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.agent-file-title{font-weight:600}.agent-file-sub{color:var(--muted);font-size:12px;margin-top:4px}.agent-file-actions{display:flex;gap:8px}.agent-tools-meta{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.agent-tools-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.agent-tools-grid{display:grid;gap:16px}.agent-tools-section{border:1px solid var(--border);border-radius:var(--radius-md);padding:10px;background:var(--bg-elevated)}.agent-tools-header{font-weight:600;margin-bottom:10px}.agent-tools-list{display:grid;gap:8px 12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.agent-tool-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card)}.agent-tool-title{font-weight:600;font-size:13px}.agent-tool-sub{color:var(--muted);font-size:11px;margin-top:2px}.agent-skills-groups{display:grid;gap:16px}.agent-skills-group{display:grid;gap:10px}.agent-skills-group summary{list-style:none}.agent-skills-header{display:flex;align-items:center;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;gap:8px}.agent-skills-header>span:last-child{margin-left:auto}.agent-skills-group summary::-webkit-details-marker{display:none}.agent-skills-group summary::marker{content:""}.agent-skills-header:after{content:"▸";font-size:12px;color:var(--muted);transition:transform var(--duration-fast) ease;margin-left:8px}.agent-skills-group[open] .agent-skills-header:after{transform:rotate(90deg)}.agent-skill-row{align-items:flex-start;gap:18px}.agent-skill-row .list-meta{display:flex;align-items:flex-start;justify-content:flex-end;min-width:auto}.skills-grid{grid-template-columns:1fr}@container (min-width: 900px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.agents-layout,.agent-header{grid-template-columns:1fr}.agent-header-meta{justify-items:start}.agent-files-grid,.agent-tools-list{grid-template-columns:1fr}}.config-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:0;height:calc(100vh - 160px);margin:0 -16px -32px;border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--panel);overflow:hidden;overflow:clip}@media(max-width:600px){.config-layout{margin:0}}@media(max-width:400px){.config-layout{margin:0}}.config-sidebar{display:flex;flex-direction:column;background:var(--bg-accent);border-right:1px solid var(--border);min-height:0;overflow:hidden}:root[data-theme=light] .config-sidebar{background:var(--bg-hover)}.config-sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--border)}.config-sidebar__title{font-weight:600;font-size:14px;letter-spacing:-.01em}.config-sidebar__footer{margin-top:auto;padding:14px;border-top:1px solid var(--border)}.config-search{display:grid;gap:6px;padding:12px 14px 10px;border-bottom:1px solid var(--border)}.config-search__input-row{position:relative}.config-search__icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}.config-search__input{width:100%;padding:11px 36px 11px 42px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);font-size:13px;outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,background var(--duration-fast) ease}.config-search__input::placeholder{color:var(--muted)}.config-search__input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);background:var(--bg-hover)}:root[data-theme=light] .config-search__input{background:#fff}:root[data-theme=light] .config-search__input:focus{background:#fff}.config-search__clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:none;border-radius:var(--radius-full);background:var(--bg-hover);color:var(--muted);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.config-search__clear:hover{background:var(--border-strong);color:var(--text)}.config-search__hint{display:grid;gap:6px}.config-search__hint-label{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.config-search__tag-picker{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,background var(--duration-fast) ease}.config-search__tag-picker[open]{border-color:var(--accent);box-shadow:var(--focus-ring);background:var(--bg-hover)}:root[data-theme=light] .config-search__tag-picker{background:#fff}.config-search__tag-trigger{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;padding:6px 8px;cursor:pointer}.config-search__tag-trigger::-webkit-details-marker{display:none}.config-search__tag-placeholder{font-size:11px;color:var(--muted)}.config-search__tag-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.config-search__tag-chip{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-full);padding:2px 7px;font-size:10px;font-weight:500;color:var(--text);background:var(--bg)}.config-search__tag-chip--count{color:var(--muted)}.config-search__tag-caret{color:var(--muted);font-size:12px;line-height:1}.config-search__tag-picker[open] .config-search__tag-caret{transform:rotate(180deg)}.config-search__tag-menu{max-height:104px;overflow-y:auto;border-top:1px solid var(--border);padding:6px;display:grid;gap:6px}.config-search__tag-option{display:block;width:100%;border:1px solid transparent;border-radius:var(--radius-sm);padding:6px 8px;background:transparent;color:var(--muted);font-size:11px;text-align:left;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease,border-color var(--duration-fast) ease}.config-search__tag-option:hover{background:var(--bg-hover);color:var(--text)}.config-search__tag-option.active{background:var(--accent-subtle);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 34%,transparent)}.config-nav{flex:1;overflow-y:auto;padding:10px}.config-nav__item{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);font-size:13px;font-weight:500;text-align:left;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.config-nav__item:hover{background:var(--bg-hover);color:var(--text)}:root[data-theme=light] .config-nav__item:hover{background:#0000000a}.config-nav__item.active{background:var(--accent-subtle);color:var(--accent)}.config-nav__icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:15px;opacity:.7}.config-nav__item:hover .config-nav__icon,.config-nav__item.active .config-nav__icon{opacity:1}.config-nav__icon svg{width:18px;height:18px;stroke:currentColor;fill:none}.config-nav__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-mode-toggle{display:flex;padding:4px;background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}:root[data-theme=light] .config-mode-toggle{background:#fff}.config-mode-toggle__btn{flex:1;padding:9px 14px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.config-mode-toggle__btn:hover{color:var(--text)}.config-mode-toggle__btn.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.config-main{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--panel);overflow:hidden;overflow:clip}.config-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 22px;background:var(--bg-accent);border-bottom:1px solid var(--border);flex-shrink:0;position:relative;z-index:2}:root[data-theme=light] .config-actions{background:var(--bg-hover)}.config-actions__left,.config-actions__right{display:flex;align-items:center;gap:10px}.config-changes-badge{padding:6px 14px;border-radius:var(--radius-full);background:var(--accent-subtle);border:1px solid rgba(255,77,77,.3);color:var(--accent);font-size:12px;font-weight:600}.config-status{font-size:13px;color:var(--muted)}.config-diff{margin:18px 22px 0;border:1px solid rgba(255,77,77,.25);border-radius:var(--radius-lg);background:var(--accent-subtle);overflow:hidden}.config-diff__summary{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;font-size:13px;font-weight:600;color:var(--accent);list-style:none}.config-diff__summary::-webkit-details-marker{display:none}.config-diff__chevron{width:16px;height:16px;transition:transform var(--duration-normal) var(--ease-out)}.config-diff__chevron svg{width:100%;height:100%}.config-diff[open] .config-diff__chevron{transform:rotate(180deg)}.config-diff__content{padding:0 18px 18px;display:grid;gap:10px}.config-diff__item{display:flex;align-items:baseline;gap:14px;padding:10px 14px;border-radius:var(--radius-md);background:var(--bg-elevated);font-size:12px;font-family:var(--mono)}:root[data-theme=light] .config-diff__item{background:#fff}.config-diff__path{font-weight:600;color:var(--text);flex-shrink:0}.config-diff__values{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap}.config-diff__from{color:var(--danger);opacity:.85}.config-diff__arrow{color:var(--muted)}.config-diff__to{color:var(--ok)}.config-section-hero{display:flex;align-items:center;gap:16px;padding:16px 22px;border-bottom:1px solid var(--border);background:var(--bg-accent)}:root[data-theme=light] .config-section-hero{background:var(--bg-hover)}.config-section-hero__icon{width:30px;height:30px;color:var(--accent);display:flex;align-items:center;justify-content:center}.config-section-hero__icon svg{width:100%;height:100%;stroke:currentColor;fill:none}.config-section-hero__text{display:grid;gap:3px;min-width:0}.config-section-hero__title{font-size:16px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-section-hero__desc{font-size:13px;color:var(--muted)}.config-subnav{display:flex;gap:8px;padding:12px 22px 14px;border-bottom:1px solid var(--border);background:var(--bg-accent);overflow-x:auto}:root[data-theme=light] .config-subnav{background:var(--bg-hover)}.config-subnav__item{border:1px solid transparent;border-radius:var(--radius-full);padding:7px 14px;font-size:12px;font-weight:600;color:var(--muted);background:var(--bg-elevated);cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease,border-color var(--duration-fast) ease;white-space:nowrap}:root[data-theme=light] .config-subnav__item{background:#fff}.config-subnav__item:hover{color:var(--text);border-color:var(--border)}.config-subnav__item.active{color:var(--accent);border-color:#ff4d4d66;background:var(--accent-subtle)}.config-content{flex:1;overflow-y:auto;padding:22px}.config-raw-field textarea{min-height:500px;font-family:var(--mono);font-size:13px;line-height:1.55}.config-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:80px 24px;color:var(--muted)}.config-loading__spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:var(--radius-full);animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.config-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:80px 24px;text-align:center}.config-empty__icon{font-size:56px;opacity:.35}.config-empty__text{color:var(--muted);font-size:15px}.config-form--modern{display:grid;gap:20px}.config-section-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);overflow:hidden;transition:border-color var(--duration-fast) ease}.config-section-card:hover{border-color:var(--border-strong)}:root[data-theme=light] .config-section-card{background:#fff}.config-section-card__header{display:flex;align-items:flex-start;gap:16px;padding:20px 22px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .config-section-card__header{background:var(--bg-hover)}.config-section-card__icon{width:34px;height:34px;color:var(--accent);flex-shrink:0}.config-section-card__icon svg{width:100%;height:100%}.config-section-card__titles{flex:1;min-width:0}.config-section-card__title{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-section-card__desc{margin:5px 0 0;font-size:13px;color:var(--muted);line-height:1.45}.config-section-card__content{padding:18px}.cfg-fields{display:grid;gap:14px}.cfg-fields--inline{gap:10px}.cfg-field{display:grid;gap:6px}.cfg-field--error{padding:14px;border-radius:var(--radius-md);background:var(--danger-subtle);border:1px solid rgba(239,68,68,.3)}.cfg-field__label{font-size:13px;font-weight:600;color:var(--text)}.cfg-field__help{font-size:12px;color:var(--muted);line-height:1.45}.cfg-tags{display:flex;flex-wrap:wrap;gap:6px}.cfg-tag{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-full);padding:2px 8px;font-size:11px;color:var(--muted);background:var(--bg-elevated);white-space:nowrap}:root[data-theme=light] .cfg-tag{background:#fff}.cfg-field__error{font-size:12px;color:var(--danger)}.cfg-input-wrap{display:flex;gap:10px}.cfg-input{flex:1;padding:11px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-accent);font-size:14px;outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,background var(--duration-fast) ease}.cfg-input::placeholder{color:var(--muted);opacity:.7}.cfg-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);background:var(--bg-hover)}:root[data-theme=light] .cfg-input{background:#fff}:root[data-theme=light] .cfg-input:focus{background:#fff}.cfg-input--sm{padding:9px 12px;font-size:13px}.cfg-input__reset{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--muted);font-size:14px;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.cfg-input__reset:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.cfg-input__reset:disabled{opacity:.5;cursor:not-allowed}.cfg-textarea{width:100%;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-accent);font-family:var(--mono);font-size:13px;line-height:1.55;resize:vertical;outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.cfg-textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}:root[data-theme=light] .cfg-textarea{background:#fff}.cfg-textarea--sm{padding:10px 12px;font-size:12px}.cfg-number{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-accent)}:root[data-theme=light] .cfg-number{background:#fff}.cfg-number__btn{width:44px;border:none;background:var(--bg-elevated);color:var(--text);font-size:18px;font-weight:300;cursor:pointer;transition:background var(--duration-fast) ease}.cfg-number__btn:hover:not(:disabled){background:var(--bg-hover)}.cfg-number__btn:disabled{opacity:.4;cursor:not-allowed}:root[data-theme=light] .cfg-number__btn{background:var(--bg-hover)}:root[data-theme=light] .cfg-number__btn:hover:not(:disabled){background:var(--border)}.cfg-number__input{width:85px;padding:11px;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);background:transparent;font-size:14px;text-align:center;outline:none;-moz-appearance:textfield}.cfg-number__input::-webkit-outer-spin-button,.cfg-number__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cfg-select{padding:11px 40px 11px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background-color:var(--bg-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;font-size:14px;cursor:pointer;outline:none;appearance:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.cfg-select:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}:root[data-theme=light] .cfg-select{background-color:#fff}.cfg-segmented{display:inline-flex;padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-accent)}:root[data-theme=light] .cfg-segmented{background:var(--bg-hover)}.cfg-segmented__btn{padding:9px 18px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.cfg-segmented__btn:hover:not(:disabled):not(.active){color:var(--text)}.cfg-segmented__btn.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.cfg-segmented__btn:disabled{opacity:.5;cursor:not-allowed}.cfg-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-accent);cursor:pointer;transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease}.cfg-toggle-row:hover:not(.disabled){background:var(--bg-hover);border-color:var(--border-strong)}.cfg-toggle-row.disabled{opacity:.55;cursor:not-allowed}:root[data-theme=light] .cfg-toggle-row{background:#fff}:root[data-theme=light] .cfg-toggle-row:hover:not(.disabled){background:var(--bg-hover)}.cfg-toggle-row__content{flex:1;min-width:0}.cfg-toggle-row__label{display:block;font-size:14px;font-weight:500;color:var(--text)}.cfg-toggle-row__help{display:block;margin-top:3px;font-size:12px;color:var(--muted);line-height:1.45}.cfg-toggle{position:relative;flex-shrink:0}.cfg-toggle input{position:absolute;opacity:0;width:0;height:0}.cfg-toggle__track{display:block;width:50px;height:28px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-full);position:relative;transition:background var(--duration-normal) ease,border-color var(--duration-normal) ease}:root[data-theme=light] .cfg-toggle__track{background:var(--border)}.cfg-toggle__track:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--text);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-out),background var(--duration-normal) ease}.cfg-toggle input:checked+.cfg-toggle__track{background:var(--ok-subtle);border-color:#22c55e66}.cfg-toggle input:checked+.cfg-toggle__track:after{transform:translate(22px);background:var(--ok)}.cfg-toggle input:focus+.cfg-toggle__track{box-shadow:var(--focus-ring)}.cfg-object{border:1px solid var(--border);border-radius:var(--radius-lg);background:transparent;overflow:hidden}:root[data-theme=light] .cfg-object{background:transparent}.cfg-object__header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:pointer;list-style:none;transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease;border-radius:var(--radius-md)}.cfg-object__header:hover{background:var(--bg-hover)}.cfg-object__header::-webkit-details-marker{display:none}.cfg-object__title{font-size:14px;font-weight:600;color:var(--text)}.cfg-object__title-wrap{display:grid;gap:6px;min-width:0}.cfg-object__chevron{width:18px;height:18px;color:var(--muted);transition:transform var(--duration-normal) var(--ease-out)}.cfg-object__chevron svg{width:100%;height:100%}.cfg-object[open] .cfg-object__chevron{transform:rotate(180deg)}.cfg-object__help{padding:0 12px 10px;font-size:12px;color:var(--muted)}.cfg-object__content{padding:12px;display:grid;gap:12px;border-top:1px solid var(--border)}.cfg-array{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.cfg-array__header{display:flex;align-items:center;gap:14px;padding:10px 12px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .cfg-array__header{background:var(--bg-hover)}.cfg-array__label{font-size:14px;font-weight:600;color:var(--text)}.cfg-array__title{flex:1;min-width:0;display:grid;gap:6px}.cfg-array__count{font-size:12px;color:var(--muted);padding:4px 10px;background:var(--bg-elevated);border-radius:var(--radius-full)}:root[data-theme=light] .cfg-array__count{background:#fff}.cfg-array__add{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--duration-fast) ease}.cfg-array__add:hover:not(:disabled){background:var(--bg-hover)}.cfg-array__add:disabled{opacity:.5;cursor:not-allowed}.cfg-array__add-icon{width:14px;height:14px}.cfg-array__add-icon svg{width:100%;height:100%}.cfg-array__help{padding:10px 12px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}.cfg-array__empty{padding:36px 18px;text-align:center;color:var(--muted);font-size:13px}.cfg-array__items{display:grid;gap:1px;background:var(--border)}.cfg-array__item{background:var(--panel)}.cfg-array__item-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .cfg-array__item-header{background:var(--bg-hover)}.cfg-array__item-index{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.cfg-array__item-remove{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.cfg-array__item-remove svg{width:16px;height:16px}.cfg-array__item-remove:hover:not(:disabled){background:var(--danger-subtle);color:var(--danger)}.cfg-array__item-remove:disabled{opacity:.4;cursor:not-allowed}.cfg-array__item-content{padding:12px}.cfg-map{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.cfg-map__header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;background:var(--bg-accent);border-bottom:1px solid var(--border)}:root[data-theme=light] .cfg-map__header{background:var(--bg-hover)}.cfg-map__label{font-size:13px;font-weight:600;color:var(--muted)}.cfg-map__add{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--duration-fast) ease}.cfg-map__add:hover:not(:disabled){background:var(--bg-hover)}.cfg-map__add-icon{width:14px;height:14px}.cfg-map__add-icon svg{width:100%;height:100%}.cfg-map__empty{padding:28px 18px;text-align:center;color:var(--muted);font-size:13px}.cfg-map__items{display:grid;gap:8px;padding:10px 12px 12px}.cfg-map__item{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-accent)}:root[data-theme=light] .cfg-map__item{background:#fff}.cfg-map__item-header{display:grid;grid-template-columns:minmax(0,300px) auto;gap:8px;align-items:center}.cfg-map__item-key,.cfg-map__item-value{min-width:0}.cfg-map__item-value>.cfg-fields{gap:10px}.cfg-map__item-remove{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.cfg-map__item-remove svg{width:16px;height:16px}.cfg-map__item-remove:hover:not(:disabled){background:var(--danger-subtle);color:var(--danger)}.pill--sm{padding:5px 12px;font-size:11px}.pill--ok{border-color:#22c55e59;color:var(--ok)}.pill--danger{border-color:#ef444459;color:var(--danger)}@media(max-width:768px){.config-layout{grid-template-columns:1fr}.config-sidebar{border-right:none;border-bottom:1px solid var(--border)}.config-sidebar__header{padding:14px 16px}.config-nav{display:flex;flex-wrap:nowrap;gap:6px;padding:10px 14px;overflow-x:auto;-webkit-overflow-scrolling:touch}.config-nav__item{flex:0 0 auto;padding:9px 14px;white-space:nowrap}.config-nav__label{display:inline}.config-sidebar__footer{display:none}.config-actions{flex-wrap:wrap;padding:14px 16px}.config-actions__left,.config-actions__right{width:100%;justify-content:center}.config-section-hero{padding:14px 16px}.config-subnav{padding:10px 16px 12px}.config-content{padding:18px}.config-section-card__header{padding:16px 18px}.config-section-card__content{padding:18px}.cfg-toggle-row{padding:14px 16px}.cfg-map__item{grid-template-columns:1fr;gap:10px}.cfg-map__item-header{grid-template-columns:1fr auto}.cfg-map__item-remove{justify-self:end}}@media(max-width:480px){.config-nav__icon{width:26px;height:26px;font-size:17px}.config-nav__label{display:none}.config-section-card__icon{width:30px;height:30px}.config-section-card__title{font-size:16px}.cfg-segmented{flex-wrap:wrap}.cfg-segmented__btn{flex:1 0 auto;min-width:70px}}
@@ -0,0 +1,2 @@
1
+ const e={common:{version:"Versão",health:"Saúde",ok:"OK",offline:"Offline",connect:"Conectar",refresh:"Atualizar",enabled:"Ativado",disabled:"Desativado",na:"n/a",docs:"Docs",resources:"Recursos"},nav:{chat:"Chat",control:"Controle",agent:"Agente",settings:"Configurações",expand:"Expandir barra lateral",collapse:"Recolher barra lateral"},tabs:{agents:"Agentes",overview:"Visão Geral",channels:"Canais",instances:"Instâncias",sessions:"Sessões",usage:"Uso",cron:"Tarefas Cron",skills:"Habilidades",nodes:"Nós",chat:"Chat",config:"Config",debug:"Debug",logs:"Logs"},subtitles:{agents:"Gerenciar espaços de trabalho, ferramentas e identidades de agentes.",overview:"Status do gateway, pontos de entrada e leitura rápida de saúde.",channels:"Gerenciar canais e configurações.",instances:"Beacons de presença de clientes e nós conectados.",sessions:"Inspecionar sessões ativas e ajustar padrões por sessão.",usage:"Monitorar uso e custos da API.",cron:"Agendar despertares e execuções recorrentes de agentes.",skills:"Gerenciar disponibilidade de habilidades e injeção de chaves de API.",nodes:"Dispositivos pareados, capacidades e exposição de comandos.",chat:"Sessão de chat direta com o gateway para intervenções rápidas.",config:"Editar ~/.openclaw/openclaw.json com segurança.",debug:"Snapshots do gateway, eventos e chamadas RPC manuais.",logs:"Acompanhamento ao vivo dos logs de arquivo do gateway."},overview:{access:{title:"Acesso ao Gateway",subtitle:"Onde o dashboard se conecta e como ele se autentica.",wsUrl:"URL WebSocket",token:"Token do Gateway",password:"Senha (não armazenada)",sessionKey:"Chave de Sessão Padrão",language:"Idioma",connectHint:"Clique em Conectar para aplicar as alterações de conexão.",trustedProxy:"Autenticado por proxy confiável."},snapshot:{title:"Snapshot",subtitle:"Informações mais recentes do handshake do gateway.",status:"Status",uptime:"Tempo de Atividade",tickInterval:"Intervalo de Tick",lastChannelsRefresh:"Última Atualização de Canais",channelsHint:"Use Canais para vincular WhatsApp, Telegram, Discord, Signal ou iMessage."},stats:{instances:"Instâncias",instancesHint:"Beacons de presença nos últimos 5 minutos.",sessions:"Sessões",sessionsHint:"Chaves de sessão recentes rastreadas pelo gateway.",cron:"Cron",cronNext:"Próximo despertar {time}"},notes:{title:"Notas",subtitle:"Lembretes rápidos para configurações de controle remoto.",tailscaleTitle:"Tailscale serve",tailscaleText:"Prefira o modo serve para manter o gateway em loopback com autenticação tailnet.",sessionTitle:"Higiene de sessão",sessionText:"Use /new ou sessions.patch para redefinir o contexto.",cronTitle:"Lembretes de Cron",cronText:"Use sessões isoladas para execuções recorrentes."},auth:{required:"Este gateway requer autenticação. Adicione um token ou senha e clique em Conectar.",failed:"Falha na autenticação. Recopie uma URL com token usando {command}, ou atualize o token e clique em Conectar."},pairing:{hint:"Este dispositivo precisa de aprovação de pareamento do host do gateway.",mobileHint:"No celular? Copie a URL completa (incluindo #token=...) executando openclaw dashboard --no-open no desktop."},insecure:{hint:"Esta página é HTTP, então o navegador bloqueia a identidade do dispositivo. Use HTTPS (Tailscale Serve) ou abra {url} no host do gateway.",stayHttp:"Se você precisar permanecer em HTTP, defina {config} (apenas token)."}},chat:{disconnected:"Desconectado do gateway.",refreshTitle:"Atualizar dados do chat",thinkingToggle:"Alternar saída de pensamento/trabalho do assistente",focusToggle:"Alternar modo de foco (ocultar barra lateral + cabeçalho da página)",hideCronSessions:"Ocultar sessões de cron",showCronSessions:"Mostrar sessões de cron",showCronSessionsHidden:"Mostrar sessões de cron ({count} ocultas)",onboardingDisabled:"Desativado durante a integração"},languages:{en:"English",zhCN:"简体中文 (Chinês Simplificado)",zhTW:"繁體中文 (Chinês Tradicional)",ptBR:"Português (Português Brasileiro)",de:"Deutsch (Alemão)",es:"Español (Espanhol)"}};export{e as pt_BR};
2
+ //# sourceMappingURL=pt-BR-D2dJb9G8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pt-BR-D2dJb9G8.js","sources":["../../../ui/src/i18n/locales/pt-BR.ts"],"sourcesContent":["import type { TranslationMap } from \"../lib/types.ts\";\n\nexport const pt_BR: TranslationMap = {\n common: {\n version: \"Versão\",\n health: \"Saúde\",\n ok: \"OK\",\n offline: \"Offline\",\n connect: \"Conectar\",\n refresh: \"Atualizar\",\n enabled: \"Ativado\",\n disabled: \"Desativado\",\n na: \"n/a\",\n docs: \"Docs\",\n resources: \"Recursos\",\n },\n nav: {\n chat: \"Chat\",\n control: \"Controle\",\n agent: \"Agente\",\n settings: \"Configurações\",\n expand: \"Expandir barra lateral\",\n collapse: \"Recolher barra lateral\",\n },\n tabs: {\n agents: \"Agentes\",\n overview: \"Visão Geral\",\n channels: \"Canais\",\n instances: \"Instâncias\",\n sessions: \"Sessões\",\n usage: \"Uso\",\n cron: \"Tarefas Cron\",\n skills: \"Habilidades\",\n nodes: \"Nós\",\n chat: \"Chat\",\n config: \"Config\",\n debug: \"Debug\",\n logs: \"Logs\",\n },\n subtitles: {\n agents: \"Gerenciar espaços de trabalho, ferramentas e identidades de agentes.\",\n overview: \"Status do gateway, pontos de entrada e leitura rápida de saúde.\",\n channels: \"Gerenciar canais e configurações.\",\n instances: \"Beacons de presença de clientes e nós conectados.\",\n sessions: \"Inspecionar sessões ativas e ajustar padrões por sessão.\",\n usage: \"Monitorar uso e custos da API.\",\n cron: \"Agendar despertares e execuções recorrentes de agentes.\",\n skills: \"Gerenciar disponibilidade de habilidades e injeção de chaves de API.\",\n nodes: \"Dispositivos pareados, capacidades e exposição de comandos.\",\n chat: \"Sessão de chat direta com o gateway para intervenções rápidas.\",\n config: \"Editar ~/.openclaw/openclaw.json com segurança.\",\n debug: \"Snapshots do gateway, eventos e chamadas RPC manuais.\",\n logs: \"Acompanhamento ao vivo dos logs de arquivo do gateway.\",\n },\n overview: {\n access: {\n title: \"Acesso ao Gateway\",\n subtitle: \"Onde o dashboard se conecta e como ele se autentica.\",\n wsUrl: \"URL WebSocket\",\n token: \"Token do Gateway\",\n password: \"Senha (não armazenada)\",\n sessionKey: \"Chave de Sessão Padrão\",\n language: \"Idioma\",\n connectHint: \"Clique em Conectar para aplicar as alterações de conexão.\",\n trustedProxy: \"Autenticado por proxy confiável.\",\n },\n snapshot: {\n title: \"Snapshot\",\n subtitle: \"Informações mais recentes do handshake do gateway.\",\n status: \"Status\",\n uptime: \"Tempo de Atividade\",\n tickInterval: \"Intervalo de Tick\",\n lastChannelsRefresh: \"Última Atualização de Canais\",\n channelsHint: \"Use Canais para vincular WhatsApp, Telegram, Discord, Signal ou iMessage.\",\n },\n stats: {\n instances: \"Instâncias\",\n instancesHint: \"Beacons de presença nos últimos 5 minutos.\",\n sessions: \"Sessões\",\n sessionsHint: \"Chaves de sessão recentes rastreadas pelo gateway.\",\n cron: \"Cron\",\n cronNext: \"Próximo despertar {time}\",\n },\n notes: {\n title: \"Notas\",\n subtitle: \"Lembretes rápidos para configurações de controle remoto.\",\n tailscaleTitle: \"Tailscale serve\",\n tailscaleText:\n \"Prefira o modo serve para manter o gateway em loopback com autenticação tailnet.\",\n sessionTitle: \"Higiene de sessão\",\n sessionText: \"Use /new ou sessions.patch para redefinir o contexto.\",\n cronTitle: \"Lembretes de Cron\",\n cronText: \"Use sessões isoladas para execuções recorrentes.\",\n },\n auth: {\n required:\n \"Este gateway requer autenticação. Adicione um token ou senha e clique em Conectar.\",\n failed:\n \"Falha na autenticação. Recopie uma URL com token usando {command}, ou atualize o token e clique em Conectar.\",\n },\n pairing: {\n hint: \"Este dispositivo precisa de aprovação de pareamento do host do gateway.\",\n mobileHint:\n \"No celular? Copie a URL completa (incluindo #token=...) executando openclaw dashboard --no-open no desktop.\",\n },\n insecure: {\n hint: \"Esta página é HTTP, então o navegador bloqueia a identidade do dispositivo. Use HTTPS (Tailscale Serve) ou abra {url} no host do gateway.\",\n stayHttp: \"Se você precisar permanecer em HTTP, defina {config} (apenas token).\",\n },\n },\n chat: {\n disconnected: \"Desconectado do gateway.\",\n refreshTitle: \"Atualizar dados do chat\",\n thinkingToggle: \"Alternar saída de pensamento/trabalho do assistente\",\n focusToggle: \"Alternar modo de foco (ocultar barra lateral + cabeçalho da página)\",\n hideCronSessions: \"Ocultar sessões de cron\",\n showCronSessions: \"Mostrar sessões de cron\",\n showCronSessionsHidden: \"Mostrar sessões de cron ({count} ocultas)\",\n onboardingDisabled: \"Desativado durante a integração\",\n },\n languages: {\n en: \"English\",\n zhCN: \"简体中文 (Chinês Simplificado)\",\n zhTW: \"繁體中文 (Chinês Tradicional)\",\n ptBR: \"Português (Português Brasileiro)\",\n de: \"Deutsch (Alemão)\",\n es: \"Español (Espanhol)\",\n },\n};\n"],"names":["pt_BR"],"mappings":"AAEO,MAAMA,EAAwB,CACnC,OAAQ,CACN,QAAS,SACT,OAAQ,QACR,GAAI,KACJ,QAAS,UACT,QAAS,WACT,QAAS,YACT,QAAS,UACT,SAAU,aACV,GAAI,MACJ,KAAM,OACN,UAAW,UAAA,EAEb,IAAK,CACH,KAAM,OACN,QAAS,WACT,MAAO,SACP,SAAU,gBACV,OAAQ,yBACR,SAAU,wBAAA,EAEZ,KAAM,CACJ,OAAQ,UACR,SAAU,cACV,SAAU,SACV,UAAW,aACX,SAAU,UACV,MAAO,MACP,KAAM,eACN,OAAQ,cACR,MAAO,MACP,KAAM,OACN,OAAQ,SACR,MAAO,QACP,KAAM,MAAA,EAER,UAAW,CACT,OAAQ,uEACR,SAAU,kEACV,SAAU,oCACV,UAAW,oDACX,SAAU,2DACV,MAAO,iCACP,KAAM,0DACN,OAAQ,uEACR,MAAO,8DACP,KAAM,iEACN,OAAQ,kDACR,MAAO,wDACP,KAAM,wDAAA,EAER,SAAU,CACR,OAAQ,CACN,MAAO,oBACP,SAAU,uDACV,MAAO,gBACP,MAAO,mBACP,SAAU,yBACV,WAAY,yBACZ,SAAU,SACV,YAAa,4DACb,aAAc,kCAAA,EAEhB,SAAU,CACR,MAAO,WACP,SAAU,qDACV,OAAQ,SACR,OAAQ,qBACR,aAAc,oBACd,oBAAqB,+BACrB,aAAc,2EAAA,EAEhB,MAAO,CACL,UAAW,aACX,cAAe,6CACf,SAAU,UACV,aAAc,qDACd,KAAM,OACN,SAAU,0BAAA,EAEZ,MAAO,CACL,MAAO,QACP,SAAU,2DACV,eAAgB,kBAChB,cACE,mFACF,aAAc,oBACd,YAAa,wDACb,UAAW,oBACX,SAAU,kDAAA,EAEZ,KAAM,CACJ,SACE,qFACF,OACE,8GAAA,EAEJ,QAAS,CACP,KAAM,0EACN,WACE,6GAAA,EAEJ,SAAU,CACR,KAAM,4IACN,SAAU,sEAAA,CACZ,EAEF,KAAM,CACJ,aAAc,2BACd,aAAc,0BACd,eAAgB,sDAChB,YAAa,sEACb,iBAAkB,0BAClB,iBAAkB,0BAClB,uBAAwB,4CACxB,mBAAoB,iCAAA,EAEtB,UAAW,CACT,GAAI,UACJ,KAAM,6BACN,KAAM,4BACN,KAAM,mCACN,GAAI,mBACJ,GAAI,oBAAA,CAER"}
@@ -0,0 +1,2 @@
1
+ const e={common:{version:"版本",health:"健康状况",ok:"正常",offline:"离线",connect:"连接",refresh:"刷新",enabled:"已启用",disabled:"已禁用",na:"不适用",docs:"文档",resources:"资源"},nav:{chat:"聊天",control:"控制",agent:"代理",settings:"设置",expand:"展开侧边栏",collapse:"折叠侧边栏"},tabs:{agents:"代理",overview:"概览",channels:"频道",instances:"实例",sessions:"会话",usage:"使用情况",cron:"定时任务",skills:"技能",nodes:"节点",chat:"聊天",config:"配置",debug:"调试",logs:"日志"},subtitles:{agents:"管理代理工作区、工具和身份。",overview:"网关状态、入口点和快速健康读取。",channels:"管理频道和设置。",instances:"来自已连接客户端和节点的在线信号。",sessions:"检查活动会话并调整每个会话的默认设置。",usage:"监控 API 使用情况和成本。",cron:"安排唤醒和重复的代理运行。",skills:"管理技能可用性和 API 密钥注入。",nodes:"配对设备、功能和命令公开。",chat:"用于快速干预的直接网关聊天会话。",config:"安全地编辑 ~/.openclaw/openclaw.json。",debug:"网关快照、事件和手动 RPC 调用。",logs:"网关文件日志的实时追踪。"},overview:{access:{title:"网关访问",subtitle:"仪表板连接的位置及其身份验证方式。",wsUrl:"WebSocket URL",token:"网关令牌",password:"密码 (不存储)",sessionKey:"默认会话密钥",language:"语言",connectHint:"点击连接以应用连接更改。",trustedProxy:"通过受信任代理认证。"},snapshot:{title:"快照",subtitle:"最新的网关握手信息。",status:"状态",uptime:"运行时间",tickInterval:"刻度间隔",lastChannelsRefresh:"最后频道刷新",channelsHint:"使用频道链接 WhatsApp、Telegram、Discord、Signal 或 iMessage。"},stats:{instances:"实例",instancesHint:"过去 5 分钟内的在线信号。",sessions:"会话",sessionsHint:"网关跟踪的最近会话密钥。",cron:"定时任务",cronNext:"下次唤醒 {time}"},notes:{title:"备注",subtitle:"远程控制设置的快速提醒。",tailscaleTitle:"Tailscale serve",tailscaleText:"首选 serve 模式以通过 tailnet 身份验证将网关保持在回环地址。",sessionTitle:"会话清理",sessionText:"使用 /new 或 sessions.patch 重置上下文。",cronTitle:"定时任务提醒",cronText:"为重复运行使用隔离的会话。"},auth:{required:"此网关需要身份验证。添加令牌或密码,然后点击连接。",failed:"身份验证失败。请使用 {command} 重新复制令牌化 URL,或更新令牌,然后点击连接。"},pairing:{hint:"此设备需要网关主机的配对批准。",mobileHint:"在手机上?从桌面运行 openclaw dashboard --no-open 复制完整 URL(包括 #token=...)。"},insecure:{hint:"此页面为 HTTP,因此浏览器阻止设备标识。请使用 HTTPS (Tailscale Serve) 或在网关主机上打开 {url}。",stayHttp:"如果您必须保持 HTTP,请设置 {config} (仅限令牌)。"}},chat:{disconnected:"已断开与网关的连接。",refreshTitle:"刷新聊天数据",thinkingToggle:"切换助手思考/工作输出",focusToggle:"切换专注模式 (隐藏侧边栏 + 页面页眉)",hideCronSessions:"隐藏定时任务会话",showCronSessions:"显示定时任务会话",showCronSessionsHidden:"显示定时任务会话 (已隐藏 {count} 个)",onboardingDisabled:"引导期间禁用"},languages:{en:"English",zhCN:"简体中文 (简体中文)",zhTW:"繁體中文 (繁体中文)",ptBR:"Português (巴西葡萄牙语)",de:"Deutsch (德语)",es:"Español (西班牙语)"},cron:{summary:{enabled:"已启用",yes:"是",no:"否",jobs:"任务数",nextWake:"下次唤醒",refreshing:"刷新中...",refresh:"刷新"},jobs:{title:"任务列表",subtitle:"网关中存储的所有定时任务。",shownOf:"显示 {shown} / 共 {total}",searchJobs:"搜索任务",searchPlaceholder:"名称、描述或代理",enabled:"启用状态",all:"全部",sort:"排序",nextRun:"下次运行",recentlyUpdated:"最近更新",name:"名称",direction:"方向",ascending:"升序",descending:"降序",noMatching:"没有匹配的任务。",loading:"加载中...",loadMore:"加载更多任务"},runs:{title:"运行历史",subtitleAll:"所有任务的最新运行记录。",subtitleJob:"{title} 的最新运行记录。",scope:"范围",allJobs:"所有任务",selectedJob:"已选任务",searchRuns:"搜索运行",searchPlaceholder:"摘要、错误或任务",newestFirst:"最新优先",oldestFirst:"最早优先",status:"状态",delivery:"投递",clear:"清除",allStatuses:"全部状态",allDelivery:"全部投递",selectJobHint:"请选择一个任务以查看运行历史。",noMatching:"没有匹配的运行记录。",loadMore:"加载更多运行",runStatusOk:"成功",runStatusError:"错误",runStatusSkipped:"已跳过",runStatusUnknown:"未知",deliveryDelivered:"已投递",deliveryNotDelivered:"未投递",deliveryUnknown:"未知",deliveryNotRequested:"未请求"},form:{editJob:"编辑任务",newJob:"新建任务",updateSubtitle:"更新所选定时任务。",createSubtitle:"创建定时唤醒或代理运行。",required:"必填",requiredSr:"必填",basics:"基本信息",basicsSub:"命名、选择助手并设置启用状态。",fieldName:"名称",description:"描述",agentId:"代理 ID",namePlaceholder:"晨间简报",descriptionPlaceholder:"此任务的可选说明",agentPlaceholder:"main 或 ops",agentHelp:"输入以选择已知代理,或输入自定义 ID。",schedule:"调度",scheduleSub:"控制任务运行时间。",every:"每隔",at:"指定时间",cronOption:"Cron",runAt:"运行时间",unit:"单位",minutes:"分钟",hours:"小时",days:"天",expression:"表达式",expressionPlaceholder:"0 7 * * *",everyAmountPlaceholder:"30",timezoneOptional:"时区(可选)",timezonePlaceholder:"America/Los_Angeles",timezoneHelp:"选择常用时区或输入有效的 IANA 时区。",jitterHelp:"需要抖动?使用高级 → 抖动窗口 / 抖动单位。",execution:"执行",executionSub:"选择唤醒时机和任务执行内容。",session:"会话",main:"主会话",isolated:"隔离会话",sessionHelp:"主会话发布系统事件。隔离会话运行独立的代理轮次。",wakeMode:"唤醒模式",now:"立即",nextHeartbeat:"下次心跳",wakeModeHelp:"立即模式立即触发。下次心跳等待下一个周期。",payloadKind:"执行内容",systemEvent:"发布消息到主时间线",agentTurn:"运行助手任务(隔离)",systemEventHelp:"将文本发送到网关主时间线(适用于提醒/触发)。",agentTurnHelp:"使用您的提示在独立会话中启动助手运行。",timeoutSeconds:"超时(秒)",timeoutPlaceholder:"可选,如 90",timeoutHelp:"可选。留空以使用网关默认超时行为。",mainTimelineMessage:"主时间线消息",assistantTaskPrompt:"助手任务提示",deliverySection:"投递",deliverySub:"选择运行摘要的发送位置。",resultDelivery:"结果投递",announceDefault:"发布摘要(默认)",webhookPost:"Webhook POST",noneInternal:"无(仅内部)",deliveryHelp:"发布将摘要发送到聊天。无保持执行仅内部。",webhookUrl:"Webhook URL",channel:"频道",webhookPlaceholder:"https://example.com/cron",channelHelp:"选择接收摘要的已连接频道。",webhookHelp:"将运行摘要发送到 Webhook 端点。",to:"收件人",toPlaceholder:"+1555... 或聊天 ID",toHelp:"可选收件人覆盖(聊天 ID、电话或用户 ID)。",advanced:"高级",advancedHelp:"投递保证、调度抖动和模型控制的可选覆盖。",deleteAfterRun:"运行后删除",deleteAfterRunHelp:"适用于应自动清理的一次性提醒。",clearAgentOverride:"清除代理覆盖",clearAgentHelp:"强制此任务使用网关默认助手。",exactTiming:"精确时间(无抖动)",exactTimingHelp:"在精确的 cron 边界运行,无分散。",staggerWindow:"抖动窗口",staggerUnit:"抖动单位",staggerPlaceholder:"30",seconds:"秒",model:"模型",modelPlaceholder:"openai/gpt-5.2",modelHelp:"输入以选择已知模型,或输入自定义模型。",thinking:"思考",thinkingPlaceholder:"low",thinkingHelp:"使用建议级别或输入提供商特定值。",bestEffortDelivery:"尽力投递",bestEffortHelp:"投递失败时不使任务失败。",cantAddYet:"暂无法添加任务",fillRequired:"填写下方必填项以启用提交。",fixFields:"修复 {count} 个字段以继续。",fixFieldsPlural:"修复 {count} 个字段以继续。",saving:"保存中...",saveChanges:"保存更改",addJob:"添加任务",cancel:"取消"},jobList:{allJobs:"所有任务",selectJob:"(选择任务)",enabled:"已启用",disabled:"已禁用",edit:"编辑",clone:"克隆",disable:"禁用",enable:"启用",run:"运行",history:"历史",remove:"删除"},jobDetail:{system:"系统",prompt:"提示",delivery:"投递",agent:"代理"},jobState:{status:"状态",next:"下次",last:"上次"},runEntry:{noSummary:"无摘要。",runAt:"运行于",openRunChat:"打开运行聊天",next:"下次 {rel}",due:"到期 {rel}"},errors:{nameRequired:"名称为必填项。",scheduleAtInvalid:"请输入有效的日期/时间。",everyAmountInvalid:"间隔必须大于 0。",cronExprRequired:"Cron 表达式为必填项。",staggerAmountInvalid:"抖动值必须大于 0。",systemTextRequired:"系统文本为必填项。",agentMessageRequired:"代理消息为必填项。",timeoutInvalid:"若设置超时,必须大于 0 秒。",webhookUrlRequired:"Webhook URL 为必填项。",webhookUrlInvalid:"Webhook URL 必须以 http:// 或 https:// 开头。",invalidRunTime:"无效的运行时间。",invalidIntervalAmount:"无效的间隔值。",cronExprRequiredShort:"Cron 表达式为必填。",invalidStaggerAmount:"无效的抖动值。",systemEventTextRequired:"系统事件文本为必填。",agentMessageRequiredShort:"代理消息为必填。",nameRequiredShort:"名称为必填。"}}};export{e as zh_CN};
2
+ //# sourceMappingURL=zh-CN-BgJ8_lE3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-CN-BgJ8_lE3.js","sources":["../../../ui/src/i18n/locales/zh-CN.ts"],"sourcesContent":["import type { TranslationMap } from \"../lib/types.ts\";\n\nexport const zh_CN: TranslationMap = {\n common: {\n version: \"版本\",\n health: \"健康状况\",\n ok: \"正常\",\n offline: \"离线\",\n connect: \"连接\",\n refresh: \"刷新\",\n enabled: \"已启用\",\n disabled: \"已禁用\",\n na: \"不适用\",\n docs: \"文档\",\n resources: \"资源\",\n },\n nav: {\n chat: \"聊天\",\n control: \"控制\",\n agent: \"代理\",\n settings: \"设置\",\n expand: \"展开侧边栏\",\n collapse: \"折叠侧边栏\",\n },\n tabs: {\n agents: \"代理\",\n overview: \"概览\",\n channels: \"频道\",\n instances: \"实例\",\n sessions: \"会话\",\n usage: \"使用情况\",\n cron: \"定时任务\",\n skills: \"技能\",\n nodes: \"节点\",\n chat: \"聊天\",\n config: \"配置\",\n debug: \"调试\",\n logs: \"日志\",\n },\n subtitles: {\n agents: \"管理代理工作区、工具和身份。\",\n overview: \"网关状态、入口点和快速健康读取。\",\n channels: \"管理频道和设置。\",\n instances: \"来自已连接客户端和节点的在线信号。\",\n sessions: \"检查活动会话并调整每个会话的默认设置。\",\n usage: \"监控 API 使用情况和成本。\",\n cron: \"安排唤醒和重复的代理运行。\",\n skills: \"管理技能可用性和 API 密钥注入。\",\n nodes: \"配对设备、功能和命令公开。\",\n chat: \"用于快速干预的直接网关聊天会话。\",\n config: \"安全地编辑 ~/.openclaw/openclaw.json。\",\n debug: \"网关快照、事件和手动 RPC 调用。\",\n logs: \"网关文件日志的实时追踪。\",\n },\n overview: {\n access: {\n title: \"网关访问\",\n subtitle: \"仪表板连接的位置及其身份验证方式。\",\n wsUrl: \"WebSocket URL\",\n token: \"网关令牌\",\n password: \"密码 (不存储)\",\n sessionKey: \"默认会话密钥\",\n language: \"语言\",\n connectHint: \"点击连接以应用连接更改。\",\n trustedProxy: \"通过受信任代理认证。\",\n },\n snapshot: {\n title: \"快照\",\n subtitle: \"最新的网关握手信息。\",\n status: \"状态\",\n uptime: \"运行时间\",\n tickInterval: \"刻度间隔\",\n lastChannelsRefresh: \"最后频道刷新\",\n channelsHint: \"使用频道链接 WhatsApp、Telegram、Discord、Signal 或 iMessage。\",\n },\n stats: {\n instances: \"实例\",\n instancesHint: \"过去 5 分钟内的在线信号。\",\n sessions: \"会话\",\n sessionsHint: \"网关跟踪的最近会话密钥。\",\n cron: \"定时任务\",\n cronNext: \"下次唤醒 {time}\",\n },\n notes: {\n title: \"备注\",\n subtitle: \"远程控制设置的快速提醒。\",\n tailscaleTitle: \"Tailscale serve\",\n tailscaleText: \"首选 serve 模式以通过 tailnet 身份验证将网关保持在回环地址。\",\n sessionTitle: \"会话清理\",\n sessionText: \"使用 /new 或 sessions.patch 重置上下文。\",\n cronTitle: \"定时任务提醒\",\n cronText: \"为重复运行使用隔离的会话。\",\n },\n auth: {\n required: \"此网关需要身份验证。添加令牌或密码,然后点击连接。\",\n failed: \"身份验证失败。请使用 {command} 重新复制令牌化 URL,或更新令牌,然后点击连接。\",\n },\n pairing: {\n hint: \"此设备需要网关主机的配对批准。\",\n mobileHint:\n \"在手机上?从桌面运行 openclaw dashboard --no-open 复制完整 URL(包括 #token=...)。\",\n },\n insecure: {\n hint: \"此页面为 HTTP,因此浏览器阻止设备标识。请使用 HTTPS (Tailscale Serve) 或在网关主机上打开 {url}。\",\n stayHttp: \"如果您必须保持 HTTP,请设置 {config} (仅限令牌)。\",\n },\n },\n chat: {\n disconnected: \"已断开与网关的连接。\",\n refreshTitle: \"刷新聊天数据\",\n thinkingToggle: \"切换助手思考/工作输出\",\n focusToggle: \"切换专注模式 (隐藏侧边栏 + 页面页眉)\",\n hideCronSessions: \"隐藏定时任务会话\",\n showCronSessions: \"显示定时任务会话\",\n showCronSessionsHidden: \"显示定时任务会话 (已隐藏 {count} 个)\",\n onboardingDisabled: \"引导期间禁用\",\n },\n languages: {\n en: \"English\",\n zhCN: \"简体中文 (简体中文)\",\n zhTW: \"繁體中文 (繁体中文)\",\n ptBR: \"Português (巴西葡萄牙语)\",\n de: \"Deutsch (德语)\",\n es: \"Español (西班牙语)\",\n },\n cron: {\n summary: {\n enabled: \"已启用\",\n yes: \"是\",\n no: \"否\",\n jobs: \"任务数\",\n nextWake: \"下次唤醒\",\n refreshing: \"刷新中...\",\n refresh: \"刷新\",\n },\n jobs: {\n title: \"任务列表\",\n subtitle: \"网关中存储的所有定时任务。\",\n shownOf: \"显示 {shown} / 共 {total}\",\n searchJobs: \"搜索任务\",\n searchPlaceholder: \"名称、描述或代理\",\n enabled: \"启用状态\",\n all: \"全部\",\n sort: \"排序\",\n nextRun: \"下次运行\",\n recentlyUpdated: \"最近更新\",\n name: \"名称\",\n direction: \"方向\",\n ascending: \"升序\",\n descending: \"降序\",\n noMatching: \"没有匹配的任务。\",\n loading: \"加载中...\",\n loadMore: \"加载更多任务\",\n },\n runs: {\n title: \"运行历史\",\n subtitleAll: \"所有任务的最新运行记录。\",\n subtitleJob: \"{title} 的最新运行记录。\",\n scope: \"范围\",\n allJobs: \"所有任务\",\n selectedJob: \"已选任务\",\n searchRuns: \"搜索运行\",\n searchPlaceholder: \"摘要、错误或任务\",\n newestFirst: \"最新优先\",\n oldestFirst: \"最早优先\",\n status: \"状态\",\n delivery: \"投递\",\n clear: \"清除\",\n allStatuses: \"全部状态\",\n allDelivery: \"全部投递\",\n selectJobHint: \"请选择一个任务以查看运行历史。\",\n noMatching: \"没有匹配的运行记录。\",\n loadMore: \"加载更多运行\",\n runStatusOk: \"成功\",\n runStatusError: \"错误\",\n runStatusSkipped: \"已跳过\",\n runStatusUnknown: \"未知\",\n deliveryDelivered: \"已投递\",\n deliveryNotDelivered: \"未投递\",\n deliveryUnknown: \"未知\",\n deliveryNotRequested: \"未请求\",\n },\n form: {\n editJob: \"编辑任务\",\n newJob: \"新建任务\",\n updateSubtitle: \"更新所选定时任务。\",\n createSubtitle: \"创建定时唤醒或代理运行。\",\n required: \"必填\",\n requiredSr: \"必填\",\n basics: \"基本信息\",\n basicsSub: \"命名、选择助手并设置启用状态。\",\n fieldName: \"名称\",\n description: \"描述\",\n agentId: \"代理 ID\",\n namePlaceholder: \"晨间简报\",\n descriptionPlaceholder: \"此任务的可选说明\",\n agentPlaceholder: \"main 或 ops\",\n agentHelp: \"输入以选择已知代理,或输入自定义 ID。\",\n schedule: \"调度\",\n scheduleSub: \"控制任务运行时间。\",\n every: \"每隔\",\n at: \"指定时间\",\n cronOption: \"Cron\",\n runAt: \"运行时间\",\n unit: \"单位\",\n minutes: \"分钟\",\n hours: \"小时\",\n days: \"天\",\n expression: \"表达式\",\n expressionPlaceholder: \"0 7 * * *\",\n everyAmountPlaceholder: \"30\",\n timezoneOptional: \"时区(可选)\",\n timezonePlaceholder: \"America/Los_Angeles\",\n timezoneHelp: \"选择常用时区或输入有效的 IANA 时区。\",\n jitterHelp: \"需要抖动?使用高级 → 抖动窗口 / 抖动单位。\",\n execution: \"执行\",\n executionSub: \"选择唤醒时机和任务执行内容。\",\n session: \"会话\",\n main: \"主会话\",\n isolated: \"隔离会话\",\n sessionHelp: \"主会话发布系统事件。隔离会话运行独立的代理轮次。\",\n wakeMode: \"唤醒模式\",\n now: \"立即\",\n nextHeartbeat: \"下次心跳\",\n wakeModeHelp: \"立即模式立即触发。下次心跳等待下一个周期。\",\n payloadKind: \"执行内容\",\n systemEvent: \"发布消息到主时间线\",\n agentTurn: \"运行助手任务(隔离)\",\n systemEventHelp: \"将文本发送到网关主时间线(适用于提醒/触发)。\",\n agentTurnHelp: \"使用您的提示在独立会话中启动助手运行。\",\n timeoutSeconds: \"超时(秒)\",\n timeoutPlaceholder: \"可选,如 90\",\n timeoutHelp: \"可选。留空以使用网关默认超时行为。\",\n mainTimelineMessage: \"主时间线消息\",\n assistantTaskPrompt: \"助手任务提示\",\n deliverySection: \"投递\",\n deliverySub: \"选择运行摘要的发送位置。\",\n resultDelivery: \"结果投递\",\n announceDefault: \"发布摘要(默认)\",\n webhookPost: \"Webhook POST\",\n noneInternal: \"无(仅内部)\",\n deliveryHelp: \"发布将摘要发送到聊天。无保持执行仅内部。\",\n webhookUrl: \"Webhook URL\",\n channel: \"频道\",\n webhookPlaceholder: \"https://example.com/cron\",\n channelHelp: \"选择接收摘要的已连接频道。\",\n webhookHelp: \"将运行摘要发送到 Webhook 端点。\",\n to: \"收件人\",\n toPlaceholder: \"+1555... 或聊天 ID\",\n toHelp: \"可选收件人覆盖(聊天 ID、电话或用户 ID)。\",\n advanced: \"高级\",\n advancedHelp: \"投递保证、调度抖动和模型控制的可选覆盖。\",\n deleteAfterRun: \"运行后删除\",\n deleteAfterRunHelp: \"适用于应自动清理的一次性提醒。\",\n clearAgentOverride: \"清除代理覆盖\",\n clearAgentHelp: \"强制此任务使用网关默认助手。\",\n exactTiming: \"精确时间(无抖动)\",\n exactTimingHelp: \"在精确的 cron 边界运行,无分散。\",\n staggerWindow: \"抖动窗口\",\n staggerUnit: \"抖动单位\",\n staggerPlaceholder: \"30\",\n seconds: \"秒\",\n model: \"模型\",\n modelPlaceholder: \"openai/gpt-5.2\",\n modelHelp: \"输入以选择已知模型,或输入自定义模型。\",\n thinking: \"思考\",\n thinkingPlaceholder: \"low\",\n thinkingHelp: \"使用建议级别或输入提供商特定值。\",\n bestEffortDelivery: \"尽力投递\",\n bestEffortHelp: \"投递失败时不使任务失败。\",\n cantAddYet: \"暂无法添加任务\",\n fillRequired: \"填写下方必填项以启用提交。\",\n fixFields: \"修复 {count} 个字段以继续。\",\n fixFieldsPlural: \"修复 {count} 个字段以继续。\",\n saving: \"保存中...\",\n saveChanges: \"保存更改\",\n addJob: \"添加任务\",\n cancel: \"取消\",\n },\n jobList: {\n allJobs: \"所有任务\",\n selectJob: \"(选择任务)\",\n enabled: \"已启用\",\n disabled: \"已禁用\",\n edit: \"编辑\",\n clone: \"克隆\",\n disable: \"禁用\",\n enable: \"启用\",\n run: \"运行\",\n history: \"历史\",\n remove: \"删除\",\n },\n jobDetail: {\n system: \"系统\",\n prompt: \"提示\",\n delivery: \"投递\",\n agent: \"代理\",\n },\n jobState: {\n status: \"状态\",\n next: \"下次\",\n last: \"上次\",\n },\n runEntry: {\n noSummary: \"无摘要。\",\n runAt: \"运行于\",\n openRunChat: \"打开运行聊天\",\n next: \"下次 {rel}\",\n due: \"到期 {rel}\",\n },\n errors: {\n nameRequired: \"名称为必填项。\",\n scheduleAtInvalid: \"请输入有效的日期/时间。\",\n everyAmountInvalid: \"间隔必须大于 0。\",\n cronExprRequired: \"Cron 表达式为必填项。\",\n staggerAmountInvalid: \"抖动值必须大于 0。\",\n systemTextRequired: \"系统文本为必填项。\",\n agentMessageRequired: \"代理消息为必填项。\",\n timeoutInvalid: \"若设置超时,必须大于 0 秒。\",\n webhookUrlRequired: \"Webhook URL 为必填项。\",\n webhookUrlInvalid: \"Webhook URL 必须以 http:// 或 https:// 开头。\",\n invalidRunTime: \"无效的运行时间。\",\n invalidIntervalAmount: \"无效的间隔值。\",\n cronExprRequiredShort: \"Cron 表达式为必填。\",\n invalidStaggerAmount: \"无效的抖动值。\",\n systemEventTextRequired: \"系统事件文本为必填。\",\n agentMessageRequiredShort: \"代理消息为必填。\",\n nameRequiredShort: \"名称为必填。\",\n },\n },\n};\n"],"names":["zh_CN"],"mappings":"AAEO,MAAMA,EAAwB,CACnC,OAAQ,CACN,QAAS,KACT,OAAQ,OACR,GAAI,KACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,MACT,SAAU,MACV,GAAI,MACJ,KAAM,KACN,UAAW,IAAA,EAEb,IAAK,CACH,KAAM,KACN,QAAS,KACT,MAAO,KACP,SAAU,KACV,OAAQ,QACR,SAAU,OAAA,EAEZ,KAAM,CACJ,OAAQ,KACR,SAAU,KACV,SAAU,KACV,UAAW,KACX,SAAU,KACV,MAAO,OACP,KAAM,OACN,OAAQ,KACR,MAAO,KACP,KAAM,KACN,OAAQ,KACR,MAAO,KACP,KAAM,IAAA,EAER,UAAW,CACT,OAAQ,iBACR,SAAU,mBACV,SAAU,WACV,UAAW,oBACX,SAAU,sBACV,MAAO,kBACP,KAAM,gBACN,OAAQ,qBACR,MAAO,gBACP,KAAM,mBACN,OAAQ,mCACR,MAAO,qBACP,KAAM,cAAA,EAER,SAAU,CACR,OAAQ,CACN,MAAO,OACP,SAAU,oBACV,MAAO,gBACP,MAAO,OACP,SAAU,WACV,WAAY,SACZ,SAAU,KACV,YAAa,eACb,aAAc,YAAA,EAEhB,SAAU,CACR,MAAO,KACP,SAAU,aACV,OAAQ,KACR,OAAQ,OACR,aAAc,OACd,oBAAqB,SACrB,aAAc,qDAAA,EAEhB,MAAO,CACL,UAAW,KACX,cAAe,iBACf,SAAU,KACV,aAAc,eACd,KAAM,OACN,SAAU,aAAA,EAEZ,MAAO,CACL,MAAO,KACP,SAAU,eACV,eAAgB,kBAChB,cAAe,yCACf,aAAc,OACd,YAAa,kCACb,UAAW,SACX,SAAU,eAAA,EAEZ,KAAM,CACJ,SAAU,4BACV,OAAQ,gDAAA,EAEV,QAAS,CACP,KAAM,kBACN,WACE,kEAAA,EAEJ,SAAU,CACR,KAAM,qEACN,SAAU,mCAAA,CACZ,EAEF,KAAM,CACJ,aAAc,aACd,aAAc,SACd,eAAgB,cAChB,YAAa,wBACb,iBAAkB,WAClB,iBAAkB,WAClB,uBAAwB,2BACxB,mBAAoB,QAAA,EAEtB,UAAW,CACT,GAAI,UACJ,KAAM,cACN,KAAM,cACN,KAAM,qBACN,GAAI,eACJ,GAAI,gBAAA,EAEN,KAAM,CACJ,QAAS,CACP,QAAS,MACT,IAAK,IACL,GAAI,IACJ,KAAM,MACN,SAAU,OACV,WAAY,SACZ,QAAS,IAAA,EAEX,KAAM,CACJ,MAAO,OACP,SAAU,gBACV,QAAS,yBACT,WAAY,OACZ,kBAAmB,WACnB,QAAS,OACT,IAAK,KACL,KAAM,KACN,QAAS,OACT,gBAAiB,OACjB,KAAM,KACN,UAAW,KACX,UAAW,KACX,WAAY,KACZ,WAAY,WACZ,QAAS,SACT,SAAU,QAAA,EAEZ,KAAM,CACJ,MAAO,OACP,YAAa,eACb,YAAa,mBACb,MAAO,KACP,QAAS,OACT,YAAa,OACb,WAAY,OACZ,kBAAmB,WACnB,YAAa,OACb,YAAa,OACb,OAAQ,KACR,SAAU,KACV,MAAO,KACP,YAAa,OACb,YAAa,OACb,cAAe,kBACf,WAAY,aACZ,SAAU,SACV,YAAa,KACb,eAAgB,KAChB,iBAAkB,MAClB,iBAAkB,KAClB,kBAAmB,MACnB,qBAAsB,MACtB,gBAAiB,KACjB,qBAAsB,KAAA,EAExB,KAAM,CACJ,QAAS,OACT,OAAQ,OACR,eAAgB,YAChB,eAAgB,eAChB,SAAU,KACV,WAAY,KACZ,OAAQ,OACR,UAAW,kBACX,UAAW,KACX,YAAa,KACb,QAAS,QACT,gBAAiB,OACjB,uBAAwB,WACxB,iBAAkB,aAClB,UAAW,uBACX,SAAU,KACV,YAAa,YACb,MAAO,KACP,GAAI,OACJ,WAAY,OACZ,MAAO,OACP,KAAM,KACN,QAAS,KACT,MAAO,KACP,KAAM,IACN,WAAY,MACZ,sBAAuB,YACvB,uBAAwB,KACxB,iBAAkB,SAClB,oBAAqB,sBACrB,aAAc,wBACd,WAAY,2BACZ,UAAW,KACX,aAAc,iBACd,QAAS,KACT,KAAM,MACN,SAAU,OACV,YAAa,2BACb,SAAU,OACV,IAAK,KACL,cAAe,OACf,aAAc,wBACd,YAAa,OACb,YAAa,YACb,UAAW,aACX,gBAAiB,0BACjB,cAAe,sBACf,eAAgB,QAChB,mBAAoB,UACpB,YAAa,oBACb,oBAAqB,SACrB,oBAAqB,SACrB,gBAAiB,KACjB,YAAa,eACb,eAAgB,OAChB,gBAAiB,WACjB,YAAa,eACb,aAAc,SACd,aAAc,uBACd,WAAY,cACZ,QAAS,KACT,mBAAoB,2BACpB,YAAa,gBACb,YAAa,uBACb,GAAI,MACJ,cAAe,kBACf,OAAQ,2BACR,SAAU,KACV,aAAc,uBACd,eAAgB,QAChB,mBAAoB,kBACpB,mBAAoB,SACpB,eAAgB,iBAChB,YAAa,YACb,gBAAiB,sBACjB,cAAe,OACf,YAAa,OACb,mBAAoB,KACpB,QAAS,IACT,MAAO,KACP,iBAAkB,iBAClB,UAAW,sBACX,SAAU,KACV,oBAAqB,MACrB,aAAc,mBACd,mBAAoB,OACpB,eAAgB,eAChB,WAAY,UACZ,aAAc,gBACd,UAAW,qBACX,gBAAiB,qBACjB,OAAQ,SACR,YAAa,OACb,OAAQ,OACR,OAAQ,IAAA,EAEV,QAAS,CACP,QAAS,OACT,UAAW,SACX,QAAS,MACT,SAAU,MACV,KAAM,KACN,MAAO,KACP,QAAS,KACT,OAAQ,KACR,IAAK,KACL,QAAS,KACT,OAAQ,IAAA,EAEV,UAAW,CACT,OAAQ,KACR,OAAQ,KACR,SAAU,KACV,MAAO,IAAA,EAET,SAAU,CACR,OAAQ,KACR,KAAM,KACN,KAAM,IAAA,EAER,SAAU,CACR,UAAW,OACX,MAAO,MACP,YAAa,SACb,KAAM,WACN,IAAK,UAAA,EAEP,OAAQ,CACN,aAAc,UACd,kBAAmB,eACnB,mBAAoB,YACpB,iBAAkB,gBAClB,qBAAsB,aACtB,mBAAoB,YACpB,qBAAsB,YACtB,eAAgB,kBAChB,mBAAoB,oBACpB,kBAAmB,yCACnB,eAAgB,WAChB,sBAAuB,UACvB,sBAAuB,eACvB,qBAAsB,UACtB,wBAAyB,aACzB,0BAA2B,WAC3B,kBAAmB,QAAA,CACrB,CAEJ"}
@@ -0,0 +1,2 @@
1
+ const e={common:{version:"版本",health:"健康狀況",ok:"正常",offline:"離線",connect:"連接",refresh:"刷新",enabled:"已啟用",disabled:"已禁用",na:"不適用",docs:"文檔",resources:"資源"},nav:{chat:"聊天",control:"控制",agent:"代理",settings:"設置",expand:"展開側邊欄",collapse:"折疊側邊欄"},tabs:{agents:"代理",overview:"概覽",channels:"頻道",instances:"實例",sessions:"會話",usage:"使用情況",cron:"定時任務",skills:"技能",nodes:"節點",chat:"聊天",config:"配置",debug:"調試",logs:"日誌"},subtitles:{agents:"管理代理工作區、工具和身份。",overview:"網關狀態、入口點和快速健康讀取。",channels:"管理頻道和設置。",instances:"來自已連接客戶端和節點的在線信號。",sessions:"檢查活動會話並調整每個會話的默認設置。",usage:"監控 API 使用情況和成本。",cron:"安排喚醒和重複的代理運行。",skills:"管理技能可用性和 API 密鑰注入。",nodes:"配對設備、功能和命令公開。",chat:"用於快速干預的直接網關聊天會話。",config:"安全地編輯 ~/.openclaw/openclaw.json。",debug:"網關快照、事件和手動 RPC 調用。",logs:"網關文件日志的實時追蹤。"},overview:{access:{title:"網關訪問",subtitle:"儀表板連接的位置及其身份驗證方式。",wsUrl:"WebSocket URL",token:"網關令牌",password:"密碼 (不存儲)",sessionKey:"默認會話密鑰",language:"語言",connectHint:"點擊連接以應用連接更改。",trustedProxy:"通過受信任代理身份驗證。"},snapshot:{title:"快照",subtitle:"最新的網關握手信息。",status:"狀態",uptime:"運行時間",tickInterval:"刻度間隔",lastChannelsRefresh:"最後頻道刷新",channelsHint:"使用頻道鏈接 WhatsApp、Telegram、Discord、Signal 或 iMessage。"},stats:{instances:"實例",instancesHint:"過去 5 分鐘內的在線信號。",sessions:"會話",sessionsHint:"網關跟蹤的最近會話密鑰。",cron:"定時任務",cronNext:"下次喚醒 {time}"},notes:{title:"備註",subtitle:"遠程控制設置的快速提醒。",tailscaleTitle:"Tailscale serve",tailscaleText:"首選 serve 模式以通過 tailnet 身份驗證將網關保持在回環地址。",sessionTitle:"會話清理",sessionText:"使用 /new 或 sessions.patch 重置上下文。",cronTitle:"定時任務提醒",cronText:"為重複運行使用隔離的會話。"},auth:{required:"此網關需要身份驗證。添加令牌或密碼,然後點擊連接。",failed:"身份驗證失敗。請使用 {command} 重新複製令牌化 URL,或更新令牌,然後點擊連接。"},pairing:{hint:"此裝置需要閘道主機的配對批准。",mobileHint:"在手機上?從桌面執行 openclaw dashboard --no-open 複製完整 URL(包括 #token=...)。"},insecure:{hint:"此頁面為 HTTP,因此瀏覽器阻止設備標識。請使用 HTTPS (Tailscale Serve) 或在網關主機上打開 {url}。",stayHttp:"如果您必須保持 HTTP,請設置 {config} (僅限令牌)。"}},chat:{disconnected:"已斷開與網關的連接。",refreshTitle:"刷新聊天數據",thinkingToggle:"切換助手思考/工作輸出",focusToggle:"切換專注模式 (隱藏側邊欄 + 頁面頁眉)",hideCronSessions:"隱藏定時任務會話",showCronSessions:"顯示定時任務會話",showCronSessionsHidden:"顯示定時任務會話 (已隱藏 {count} 個)",onboardingDisabled:"引導期間禁用"},languages:{en:"English",zhCN:"简体中文 (簡體中文)",zhTW:"繁體中文 (繁體中文)",ptBR:"Português (巴西葡萄牙語)",de:"Deutsch (德語)",es:"Español (西班牙語)"}};export{e as zh_TW};
2
+ //# sourceMappingURL=zh-TW-cW5xB87I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-TW-cW5xB87I.js","sources":["../../../ui/src/i18n/locales/zh-TW.ts"],"sourcesContent":["import type { TranslationMap } from \"../lib/types.ts\";\n\nexport const zh_TW: TranslationMap = {\n common: {\n version: \"版本\",\n health: \"健康狀況\",\n ok: \"正常\",\n offline: \"離線\",\n connect: \"連接\",\n refresh: \"刷新\",\n enabled: \"已啟用\",\n disabled: \"已禁用\",\n na: \"不適用\",\n docs: \"文檔\",\n resources: \"資源\",\n },\n nav: {\n chat: \"聊天\",\n control: \"控制\",\n agent: \"代理\",\n settings: \"設置\",\n expand: \"展開側邊欄\",\n collapse: \"折疊側邊欄\",\n },\n tabs: {\n agents: \"代理\",\n overview: \"概覽\",\n channels: \"頻道\",\n instances: \"實例\",\n sessions: \"會話\",\n usage: \"使用情況\",\n cron: \"定時任務\",\n skills: \"技能\",\n nodes: \"節點\",\n chat: \"聊天\",\n config: \"配置\",\n debug: \"調試\",\n logs: \"日誌\",\n },\n subtitles: {\n agents: \"管理代理工作區、工具和身份。\",\n overview: \"網關狀態、入口點和快速健康讀取。\",\n channels: \"管理頻道和設置。\",\n instances: \"來自已連接客戶端和節點的在線信號。\",\n sessions: \"檢查活動會話並調整每個會話的默認設置。\",\n usage: \"監控 API 使用情況和成本。\",\n cron: \"安排喚醒和重複的代理運行。\",\n skills: \"管理技能可用性和 API 密鑰注入。\",\n nodes: \"配對設備、功能和命令公開。\",\n chat: \"用於快速干預的直接網關聊天會話。\",\n config: \"安全地編輯 ~/.openclaw/openclaw.json。\",\n debug: \"網關快照、事件和手動 RPC 調用。\",\n logs: \"網關文件日志的實時追蹤。\",\n },\n overview: {\n access: {\n title: \"網關訪問\",\n subtitle: \"儀表板連接的位置及其身份驗證方式。\",\n wsUrl: \"WebSocket URL\",\n token: \"網關令牌\",\n password: \"密碼 (不存儲)\",\n sessionKey: \"默認會話密鑰\",\n language: \"語言\",\n connectHint: \"點擊連接以應用連接更改。\",\n trustedProxy: \"通過受信任代理身份驗證。\",\n },\n snapshot: {\n title: \"快照\",\n subtitle: \"最新的網關握手信息。\",\n status: \"狀態\",\n uptime: \"運行時間\",\n tickInterval: \"刻度間隔\",\n lastChannelsRefresh: \"最後頻道刷新\",\n channelsHint: \"使用頻道鏈接 WhatsApp、Telegram、Discord、Signal 或 iMessage。\",\n },\n stats: {\n instances: \"實例\",\n instancesHint: \"過去 5 分鐘內的在線信號。\",\n sessions: \"會話\",\n sessionsHint: \"網關跟蹤的最近會話密鑰。\",\n cron: \"定時任務\",\n cronNext: \"下次喚醒 {time}\",\n },\n notes: {\n title: \"備註\",\n subtitle: \"遠程控制設置的快速提醒。\",\n tailscaleTitle: \"Tailscale serve\",\n tailscaleText: \"首選 serve 模式以通過 tailnet 身份驗證將網關保持在回環地址。\",\n sessionTitle: \"會話清理\",\n sessionText: \"使用 /new 或 sessions.patch 重置上下文。\",\n cronTitle: \"定時任務提醒\",\n cronText: \"為重複運行使用隔離的會話。\",\n },\n auth: {\n required: \"此網關需要身份驗證。添加令牌或密碼,然後點擊連接。\",\n failed: \"身份驗證失敗。請使用 {command} 重新複製令牌化 URL,或更新令牌,然後點擊連接。\",\n },\n pairing: {\n hint: \"此裝置需要閘道主機的配對批准。\",\n mobileHint:\n \"在手機上?從桌面執行 openclaw dashboard --no-open 複製完整 URL(包括 #token=...)。\",\n },\n insecure: {\n hint: \"此頁面為 HTTP,因此瀏覽器阻止設備標識。請使用 HTTPS (Tailscale Serve) 或在網關主機上打開 {url}。\",\n stayHttp: \"如果您必須保持 HTTP,請設置 {config} (僅限令牌)。\",\n },\n },\n chat: {\n disconnected: \"已斷開與網關的連接。\",\n refreshTitle: \"刷新聊天數據\",\n thinkingToggle: \"切換助手思考/工作輸出\",\n focusToggle: \"切換專注模式 (隱藏側邊欄 + 頁面頁眉)\",\n hideCronSessions: \"隱藏定時任務會話\",\n showCronSessions: \"顯示定時任務會話\",\n showCronSessionsHidden: \"顯示定時任務會話 (已隱藏 {count} 個)\",\n onboardingDisabled: \"引導期間禁用\",\n },\n languages: {\n en: \"English\",\n zhCN: \"简体中文 (簡體中文)\",\n zhTW: \"繁體中文 (繁體中文)\",\n ptBR: \"Português (巴西葡萄牙語)\",\n de: \"Deutsch (德語)\",\n es: \"Español (西班牙語)\",\n },\n};\n"],"names":["zh_TW"],"mappings":"AAEO,MAAMA,EAAwB,CACnC,OAAQ,CACN,QAAS,KACT,OAAQ,OACR,GAAI,KACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,MACT,SAAU,MACV,GAAI,MACJ,KAAM,KACN,UAAW,IAAA,EAEb,IAAK,CACH,KAAM,KACN,QAAS,KACT,MAAO,KACP,SAAU,KACV,OAAQ,QACR,SAAU,OAAA,EAEZ,KAAM,CACJ,OAAQ,KACR,SAAU,KACV,SAAU,KACV,UAAW,KACX,SAAU,KACV,MAAO,OACP,KAAM,OACN,OAAQ,KACR,MAAO,KACP,KAAM,KACN,OAAQ,KACR,MAAO,KACP,KAAM,IAAA,EAER,UAAW,CACT,OAAQ,iBACR,SAAU,mBACV,SAAU,WACV,UAAW,oBACX,SAAU,sBACV,MAAO,kBACP,KAAM,gBACN,OAAQ,qBACR,MAAO,gBACP,KAAM,mBACN,OAAQ,mCACR,MAAO,qBACP,KAAM,cAAA,EAER,SAAU,CACR,OAAQ,CACN,MAAO,OACP,SAAU,oBACV,MAAO,gBACP,MAAO,OACP,SAAU,WACV,WAAY,SACZ,SAAU,KACV,YAAa,eACb,aAAc,cAAA,EAEhB,SAAU,CACR,MAAO,KACP,SAAU,aACV,OAAQ,KACR,OAAQ,OACR,aAAc,OACd,oBAAqB,SACrB,aAAc,qDAAA,EAEhB,MAAO,CACL,UAAW,KACX,cAAe,iBACf,SAAU,KACV,aAAc,eACd,KAAM,OACN,SAAU,aAAA,EAEZ,MAAO,CACL,MAAO,KACP,SAAU,eACV,eAAgB,kBAChB,cAAe,yCACf,aAAc,OACd,YAAa,kCACb,UAAW,SACX,SAAU,eAAA,EAEZ,KAAM,CACJ,SAAU,4BACV,OAAQ,gDAAA,EAEV,QAAS,CACP,KAAM,kBACN,WACE,kEAAA,EAEJ,SAAU,CACR,KAAM,qEACN,SAAU,mCAAA,CACZ,EAEF,KAAM,CACJ,aAAc,aACd,aAAc,SACd,eAAgB,cAChB,YAAa,wBACb,iBAAkB,WAClB,iBAAkB,WAClB,uBAAwB,2BACxB,mBAAoB,QAAA,EAEtB,UAAW,CACT,GAAI,UACJ,KAAM,cACN,KAAM,cACN,KAAM,qBACN,GAAI,eACJ,GAAI,gBAAA,CAER"}
Binary file
Binary file
@@ -0,0 +1,22 @@
1
+ <svg viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="lobster-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" stop-color="#ff4d4d"/>
5
+ <stop offset="100%" stop-color="#991b1b"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <!-- Body -->
9
+ <path d="M60 10 C30 10 15 35 15 55 C15 75 30 95 45 100 L45 110 L55 110 L55 100 C55 100 60 102 65 100 L65 110 L75 110 L75 100 C90 95 105 75 105 55 C105 35 90 10 60 10Z" fill="url(#lobster-gradient)"/>
10
+ <!-- Left Claw -->
11
+ <path d="M20 45 C5 40 0 50 5 60 C10 70 20 65 25 55 C28 48 25 45 20 45Z" fill="url(#lobster-gradient)"/>
12
+ <!-- Right Claw -->
13
+ <path d="M100 45 C115 40 120 50 115 60 C110 70 100 65 95 55 C92 48 95 45 100 45Z" fill="url(#lobster-gradient)"/>
14
+ <!-- Antenna -->
15
+ <path d="M45 15 Q35 5 30 8" stroke="#ff4d4d" stroke-width="3" stroke-linecap="round"/>
16
+ <path d="M75 15 Q85 5 90 8" stroke="#ff4d4d" stroke-width="3" stroke-linecap="round"/>
17
+ <!-- Eyes -->
18
+ <circle cx="45" cy="35" r="6" fill="#050810"/>
19
+ <circle cx="75" cy="35" r="6" fill="#050810"/>
20
+ <circle cx="46" cy="34" r="2.5" fill="#00e5cc"/>
21
+ <circle cx="76" cy="34" r="2.5" fill="#00e5cc"/>
22
+ </svg>
@@ -0,0 +1,17 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>OpenClaw Control</title>
7
+ <meta name="color-scheme" content="dark light" />
8
+ <link rel="icon" type="image/svg+xml" href="./favicon.svg" />
9
+ <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
10
+ <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
11
+ <script type="module" crossorigin src="./assets/index-CYbiPp9k.js"></script>
12
+ <link rel="stylesheet" crossorigin href="./assets/index-C_GaJ8wS.css">
13
+ </head>
14
+ <body>
15
+ <openclaw-app></openclaw-app>
16
+ </body>
17
+ </html>
@@ -1,15 +1,15 @@
1
- import { c as resolveStateDir } from "./paths-DLyW11Uc.js";
2
- import { d as logVerbose, t as createSubsystemLogger } from "./subsystem-DNNJDVQe.js";
3
- import { X as normalizeOptionalAccountId, Y as normalizeAccountId } from "./workspace-DbJSpu_1.js";
4
- import { Bn as getChannelPlugin, Fo as getActivePluginRegistry, Hn as normalizeChannelId, Kt as appendAssistantMessageToSessionTranscript, Lo as getActivePluginRegistryVersion, Si as generateSecureUuid, Un as getChannelDock, at as isMessagingToolDuplicate, qt as resolveMirroredTranscriptText, yn as parseInlineDirectives } from "./model-selection-Dv7kUD2t.js";
5
- import { h as createInternalHookEvent, y as triggerInternalHook } from "./frontmatter-D5wSndvU.js";
6
- import { i as isSilentReplyText } from "./tokens-CVetWOS2.js";
1
+ import { c as resolveStateDir } from "./paths-DH2q2Tz2.js";
2
+ import { d as logVerbose, t as createSubsystemLogger } from "./subsystem-BKsORW9w.js";
3
+ import { X as normalizeOptionalAccountId, Y as normalizeAccountId } from "./workspace-DKFhGA36.js";
4
+ import { Bn as getChannelPlugin, Fo as getActivePluginRegistry, Hn as normalizeChannelId, Kt as appendAssistantMessageToSessionTranscript, Lo as getActivePluginRegistryVersion, Si as generateSecureUuid, Un as getChannelDock, at as isMessagingToolDuplicate, qt as resolveMirroredTranscriptText, yn as parseInlineDirectives } from "./model-selection-CTRvq26d.js";
5
+ import { h as createInternalHookEvent, y as triggerInternalHook } from "./frontmatter-B3DSwN7Q.js";
6
+ import { i as isSilentReplyText } from "./tokens-Bni6rpzF.js";
7
7
  import { r as parseTelegramTarget } from "./targets-D4pwl9LR.js";
8
- import { i as getAgentScopedMediaLocalRoots } from "./fetch-Kd-ZkhaC.js";
9
- import { d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, l as chunkByParagraph, m as resolveChunkMode, s as resolveMarkdownTableMode, v as parseFenceSpans } from "./ir-DpC-GTgx.js";
10
- import { c as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BQ-Nw5o92.js";
8
+ import { i as getAgentScopedMediaLocalRoots } from "./fetch-Bd6dZr3f.js";
9
+ import { d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, l as chunkByParagraph, m as resolveChunkMode, s as resolveMarkdownTableMode, v as parseFenceSpans } from "./ir-DqRr7hEM.js";
10
+ import { c as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-7RZ-_vAv2.js";
11
11
  import path from "node:path";
12
- import fs from "node:fs";
12
+ import syncFs from "node:fs";
13
13
  //#region src/shared/text/join-segments.ts
14
14
  function concatOptionalTextSegments(params) {
15
15
  const separator = params.separator ?? "\n\n";
@@ -1104,17 +1104,17 @@ function getErrnoCode(err) {
1104
1104
  }
1105
1105
  async function unlinkBestEffort(filePath) {
1106
1106
  try {
1107
- await fs.promises.unlink(filePath);
1107
+ await syncFs.promises.unlink(filePath);
1108
1108
  } catch {}
1109
1109
  }
1110
1110
  /** Ensure the queue directory (and failed/ subdirectory) exist. */
1111
1111
  async function ensureQueueDir(stateDir) {
1112
1112
  const queueDir = resolveQueueDir(stateDir);
1113
- await fs.promises.mkdir(queueDir, {
1113
+ await syncFs.promises.mkdir(queueDir, {
1114
1114
  recursive: true,
1115
1115
  mode: 448
1116
1116
  });
1117
- await fs.promises.mkdir(resolveFailedDir(stateDir), {
1117
+ await syncFs.promises.mkdir(resolveFailedDir(stateDir), {
1118
1118
  recursive: true,
1119
1119
  mode: 448
1120
1120
  });
@@ -1141,11 +1141,11 @@ async function enqueueDelivery(params, stateDir) {
1141
1141
  const filePath = path.join(queueDir, `${id}.json`);
1142
1142
  const tmp = `${filePath}.${process.pid}.tmp`;
1143
1143
  const json = JSON.stringify(entry, null, 2);
1144
- await fs.promises.writeFile(tmp, json, {
1144
+ await syncFs.promises.writeFile(tmp, json, {
1145
1145
  encoding: "utf-8",
1146
1146
  mode: 384
1147
1147
  });
1148
- await fs.promises.rename(tmp, filePath);
1148
+ await syncFs.promises.rename(tmp, filePath);
1149
1149
  return id;
1150
1150
  }
1151
1151
  /** Remove a successfully delivered entry from the queue.
@@ -1160,7 +1160,7 @@ async function enqueueDelivery(params, stateDir) {
1160
1160
  async function ackDelivery(id, stateDir) {
1161
1161
  const { jsonPath, deliveredPath } = resolveQueueEntryPaths(id, stateDir);
1162
1162
  try {
1163
- await fs.promises.rename(jsonPath, deliveredPath);
1163
+ await syncFs.promises.rename(jsonPath, deliveredPath);
1164
1164
  } catch (err) {
1165
1165
  if (getErrnoCode(err) === "ENOENT") {
1166
1166
  await unlinkBestEffort(deliveredPath);
@@ -1173,17 +1173,17 @@ async function ackDelivery(id, stateDir) {
1173
1173
  /** Update a queue entry after a failed delivery attempt. */
1174
1174
  async function failDelivery(id, error, stateDir) {
1175
1175
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
1176
- const raw = await fs.promises.readFile(filePath, "utf-8");
1176
+ const raw = await syncFs.promises.readFile(filePath, "utf-8");
1177
1177
  const entry = JSON.parse(raw);
1178
1178
  entry.retryCount += 1;
1179
1179
  entry.lastAttemptAt = Date.now();
1180
1180
  entry.lastError = error;
1181
1181
  const tmp = `${filePath}.${process.pid}.tmp`;
1182
- await fs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
1182
+ await syncFs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
1183
1183
  encoding: "utf-8",
1184
1184
  mode: 384
1185
1185
  });
1186
- await fs.promises.rename(tmp, filePath);
1186
+ await syncFs.promises.rename(tmp, filePath);
1187
1187
  }
1188
1188
  //#endregion
1189
1189
  //#region src/infra/outbound/payloads.ts
@@ -0,0 +1,19 @@
1
+ import "./paths-CqN6xa62.js";
2
+ import "./paths-DH2q2Tz2.js";
3
+ import "./subsystem-BKsORW9w.js";
4
+ import "./workspace-DKFhGA36.js";
5
+ import "./logger-Dk0Ze7CZ.js";
6
+ import "./model-selection-CTRvq26d.js";
7
+ import "./github-copilot-token-Cv01j7Da.js";
8
+ import "./boolean-C7Ct_klp.js";
9
+ import "./proxy-env-DgYLHn1g.js";
10
+ import "./frontmatter-B3DSwN7Q.js";
11
+ import "./tokens-Bni6rpzF.js";
12
+ import { t as deliverOutboundPayloads } from "./deliver-Bj-7Vo_A.js";
13
+ import "./fetch-Bd6dZr3f.js";
14
+ import "./fetch-guard-CcIHzaq9.js";
15
+ import "./ir-DqRr7hEM.js";
16
+ import "./fetch-CBrh_wN0.js";
17
+ import "./send-7RZ-_vAv2.js";
18
+ import "./outbound-attachment-D1EEHUb5.js";
19
+ export { deliverOutboundPayloads };
@@ -0,0 +1,19 @@
1
+ import "./paths-CqN6xa62.js";
2
+ import "./paths-DH2q2Tz2.js";
3
+ import "./subsystem-BKsORW9w.js";
4
+ import "./workspace-DKFhGA36.js";
5
+ import "./logger-Dk0Ze7CZ.js";
6
+ import "./model-selection-CTRvq26d.js";
7
+ import "./github-copilot-token-Cv01j7Da.js";
8
+ import "./boolean-C7Ct_klp.js";
9
+ import "./proxy-env-DgYLHn1g.js";
10
+ import "./frontmatter-B3DSwN7Q.js";
11
+ import { h as sendMessageDiscord } from "./send-ByxspBIF.js";
12
+ import "./fetch-Bd6dZr3f.js";
13
+ import "./fetch-guard-CcIHzaq9.js";
14
+ import "./ir-DqRr7hEM.js";
15
+ import "./render-IRnn-2gt.js";
16
+ import "./fetch-CBrh_wN0.js";
17
+ import "./channel-activity-BUaFQGrv.js";
18
+ import "./tables-BU_H4nY6.js";
19
+ export { sendMessageDiscord };
@@ -0,0 +1,18 @@
1
+ import "./paths-CqN6xa62.js";
2
+ import "./paths-DH2q2Tz2.js";
3
+ import "./subsystem-BKsORW9w.js";
4
+ import "./workspace-DKFhGA36.js";
5
+ import "./logger-Dk0Ze7CZ.js";
6
+ import "./model-selection-CTRvq26d.js";
7
+ import "./github-copilot-token-Cv01j7Da.js";
8
+ import "./boolean-C7Ct_klp.js";
9
+ import "./proxy-env-DgYLHn1g.js";
10
+ import "./frontmatter-B3DSwN7Q.js";
11
+ import "./fetch-Bd6dZr3f.js";
12
+ import "./fetch-guard-CcIHzaq9.js";
13
+ import "./ir-DqRr7hEM.js";
14
+ import "./render-IRnn-2gt.js";
15
+ import "./tables-BU_H4nY6.js";
16
+ import "./outbound-attachment-D1EEHUb5.js";
17
+ import { t as sendMessageIMessage } from "./send-z8qRRlrK.js";
18
+ export { sendMessageIMessage };
@@ -0,0 +1,17 @@
1
+ import "./paths-CqN6xa62.js";
2
+ import "./paths-DH2q2Tz2.js";
3
+ import "./subsystem-BKsORW9w.js";
4
+ import "./workspace-DKFhGA36.js";
5
+ import "./logger-Dk0Ze7CZ.js";
6
+ import "./model-selection-CTRvq26d.js";
7
+ import "./github-copilot-token-Cv01j7Da.js";
8
+ import "./boolean-C7Ct_klp.js";
9
+ import "./proxy-env-DgYLHn1g.js";
10
+ import "./frontmatter-B3DSwN7Q.js";
11
+ import "./fetch-Bd6dZr3f.js";
12
+ import "./fetch-guard-CcIHzaq9.js";
13
+ import "./ir-DqRr7hEM.js";
14
+ import "./fetch-CBrh_wN0.js";
15
+ import { t as sendMessageSignal } from "./send-7RZ-_vAv2.js";
16
+ import "./outbound-attachment-D1EEHUb5.js";
17
+ export { sendMessageSignal };
@@ -0,0 +1,17 @@
1
+ import "./paths-CqN6xa62.js";
2
+ import "./paths-DH2q2Tz2.js";
3
+ import "./subsystem-BKsORW9w.js";
4
+ import "./workspace-DKFhGA36.js";
5
+ import "./logger-Dk0Ze7CZ.js";
6
+ import "./model-selection-CTRvq26d.js";
7
+ import "./github-copilot-token-Cv01j7Da.js";
8
+ import "./boolean-C7Ct_klp.js";
9
+ import "./proxy-env-DgYLHn1g.js";
10
+ import "./frontmatter-B3DSwN7Q.js";
11
+ import { t as sendMessageSlack } from "./send-CVutquyB.js";
12
+ import "./tokens-Bni6rpzF.js";
13
+ import "./fetch-Bd6dZr3f.js";
14
+ import "./fetch-guard-CcIHzaq9.js";
15
+ import "./ir-DqRr7hEM.js";
16
+ import "./render-IRnn-2gt.js";
17
+ export { sendMessageSlack };