rabbitmq-forward-control 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-build-manifest.json +127 -0
  3. package/.next/app-path-routes-manifest.json +16 -0
  4. package/.next/build-manifest.json +33 -0
  5. package/.next/cache/.previewinfo +1 -0
  6. package/.next/cache/.rscinfo +1 -0
  7. package/.next/cache/.tsbuildinfo +1 -0
  8. package/.next/cache/config.json +7 -0
  9. package/.next/cache/next-devtools-config.json +1 -0
  10. package/.next/cache/webpack/client-development/0.pack.gz +0 -0
  11. package/.next/cache/webpack/client-development/1.pack.gz +0 -0
  12. package/.next/cache/webpack/client-development/2.pack.gz +0 -0
  13. package/.next/cache/webpack/client-development/3.pack.gz +0 -0
  14. package/.next/cache/webpack/client-development/4.pack.gz +0 -0
  15. package/.next/cache/webpack/client-development/index.pack.gz +0 -0
  16. package/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
  17. package/.next/cache/webpack/client-development-fallback/0.pack.gz +0 -0
  18. package/.next/cache/webpack/client-development-fallback/index.pack.gz +0 -0
  19. package/.next/cache/webpack/client-development-fallback/index.pack.gz.old +0 -0
  20. package/.next/cache/webpack/client-production/0.pack +0 -0
  21. package/.next/cache/webpack/client-production/1.pack +0 -0
  22. package/.next/cache/webpack/client-production/2.pack +0 -0
  23. package/.next/cache/webpack/client-production/3.pack +0 -0
  24. package/.next/cache/webpack/client-production/4.pack +0 -0
  25. package/.next/cache/webpack/client-production/5.pack +0 -0
  26. package/.next/cache/webpack/client-production/6.pack +0 -0
  27. package/.next/cache/webpack/client-production/index.pack +0 -0
  28. package/.next/cache/webpack/client-production/index.pack.old +0 -0
  29. package/.next/cache/webpack/edge-server-development/0.pack.gz +0 -0
  30. package/.next/cache/webpack/edge-server-development/1.pack.gz +0 -0
  31. package/.next/cache/webpack/edge-server-development/2.pack.gz +0 -0
  32. package/.next/cache/webpack/edge-server-development/3.pack.gz +0 -0
  33. package/.next/cache/webpack/edge-server-development/index.pack.gz +0 -0
  34. package/.next/cache/webpack/edge-server-development/index.pack.gz.old +0 -0
  35. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  36. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  37. package/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  38. package/.next/cache/webpack/server-development/0.pack.gz +0 -0
  39. package/.next/cache/webpack/server-development/1.pack.gz +0 -0
  40. package/.next/cache/webpack/server-development/2.pack.gz +0 -0
  41. package/.next/cache/webpack/server-development/3.pack.gz +0 -0
  42. package/.next/cache/webpack/server-development/4.pack.gz +0 -0
  43. package/.next/cache/webpack/server-development/index.pack.gz +0 -0
  44. package/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
  45. package/.next/cache/webpack/server-production/0.pack +0 -0
  46. package/.next/cache/webpack/server-production/1.pack +0 -0
  47. package/.next/cache/webpack/server-production/2.pack +0 -0
  48. package/.next/cache/webpack/server-production/3.pack +0 -0
  49. package/.next/cache/webpack/server-production/4.pack +0 -0
  50. package/.next/cache/webpack/server-production/index.pack +0 -0
  51. package/.next/cache/webpack/server-production/index.pack.old +0 -0
  52. package/.next/diagnostics/build-diagnostics.json +6 -0
  53. package/.next/diagnostics/framework.json +1 -0
  54. package/.next/export-marker.json +6 -0
  55. package/.next/images-manifest.json +58 -0
  56. package/.next/next-minimal-server.js.nft.json +1 -0
  57. package/.next/next-server.js.nft.json +1 -0
  58. package/.next/package.json +1 -0
  59. package/.next/prerender-manifest.json +157 -0
  60. package/.next/react-loadable-manifest.json +1 -0
  61. package/.next/required-server-files.json +323 -0
  62. package/.next/routes-manifest.json +77 -0
  63. package/.next/server/app/_not-found/page.js +2 -0
  64. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  65. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  66. package/.next/server/app/_not-found.html +1 -0
  67. package/.next/server/app/_not-found.meta +8 -0
  68. package/.next/server/app/_not-found.rsc +16 -0
  69. package/.next/server/app/api/console/channel/content/route.js +1 -0
  70. package/.next/server/app/api/console/channel/content/route.js.nft.json +1 -0
  71. package/.next/server/app/api/console/channel/content/route_client-reference-manifest.js +1 -0
  72. package/.next/server/app/api/console/channel/list/route.js +1 -0
  73. package/.next/server/app/api/console/channel/list/route.js.nft.json +1 -0
  74. package/.next/server/app/api/console/channel/list/route_client-reference-manifest.js +1 -0
  75. package/.next/server/app/api/console/forwarders/route.js +7 -0
  76. package/.next/server/app/api/console/forwarders/route.js.nft.json +1 -0
  77. package/.next/server/app/api/console/forwarders/route_client-reference-manifest.js +1 -0
  78. package/.next/server/app/api/console/logs/content/route.js +1 -0
  79. package/.next/server/app/api/console/logs/content/route.js.nft.json +1 -0
  80. package/.next/server/app/api/console/logs/content/route_client-reference-manifest.js +1 -0
  81. package/.next/server/app/api/console/logs/route.js +1 -0
  82. package/.next/server/app/api/console/logs/route.js.nft.json +1 -0
  83. package/.next/server/app/api/console/logs/route_client-reference-manifest.js +1 -0
  84. package/.next/server/app/api/console/settings/route.js +6 -0
  85. package/.next/server/app/api/console/settings/route.js.nft.json +1 -0
  86. package/.next/server/app/api/console/settings/route_client-reference-manifest.js +1 -0
  87. package/.next/server/app/api/console/stats/route.js +2 -0
  88. package/.next/server/app/api/console/stats/route.js.nft.json +1 -0
  89. package/.next/server/app/api/console/stats/route_client-reference-manifest.js +1 -0
  90. package/.next/server/app/api/ingest/route.js +6 -0
  91. package/.next/server/app/api/ingest/route.js.nft.json +1 -0
  92. package/.next/server/app/api/ingest/route_client-reference-manifest.js +1 -0
  93. package/.next/server/app/console/forward/page.js +2 -0
  94. package/.next/server/app/console/forward/page.js.nft.json +1 -0
  95. package/.next/server/app/console/forward/page_client-reference-manifest.js +1 -0
  96. package/.next/server/app/console/forward.html +1 -0
  97. package/.next/server/app/console/forward.meta +7 -0
  98. package/.next/server/app/console/forward.rsc +18 -0
  99. package/.next/server/app/console/logs/page.js +2 -0
  100. package/.next/server/app/console/logs/page.js.nft.json +1 -0
  101. package/.next/server/app/console/logs/page_client-reference-manifest.js +1 -0
  102. package/.next/server/app/console/logs.html +1 -0
  103. package/.next/server/app/console/logs.meta +7 -0
  104. package/.next/server/app/console/logs.rsc +18 -0
  105. package/.next/server/app/console/page.js +2 -0
  106. package/.next/server/app/console/page.js.nft.json +1 -0
  107. package/.next/server/app/console/page_client-reference-manifest.js +1 -0
  108. package/.next/server/app/console/receive/page.js +5 -0
  109. package/.next/server/app/console/receive/page.js.nft.json +1 -0
  110. package/.next/server/app/console/receive/page_client-reference-manifest.js +1 -0
  111. package/.next/server/app/console/receive.html +3 -0
  112. package/.next/server/app/console/receive.meta +7 -0
  113. package/.next/server/app/console/receive.rsc +18 -0
  114. package/.next/server/app/console.html +1 -0
  115. package/.next/server/app/console.meta +7 -0
  116. package/.next/server/app/console.rsc +18 -0
  117. package/.next/server/app/index.html +1 -0
  118. package/.next/server/app/index.meta +9 -0
  119. package/.next/server/app/index.rsc +17 -0
  120. package/.next/server/app/page.js +2 -0
  121. package/.next/server/app/page.js.nft.json +1 -0
  122. package/.next/server/app/page_client-reference-manifest.js +1 -0
  123. package/.next/server/app-paths-manifest.json +16 -0
  124. package/.next/server/chunks/393.js +9 -0
  125. package/.next/server/chunks/404.js +6 -0
  126. package/.next/server/chunks/611.js +6 -0
  127. package/.next/server/chunks/730.js +3 -0
  128. package/.next/server/chunks/873.js +22 -0
  129. package/.next/server/chunks/877.js +1 -0
  130. package/.next/server/chunks/880.js +1 -0
  131. package/.next/server/functions-config-manifest.json +4 -0
  132. package/.next/server/instrumentation.js +1 -0
  133. package/.next/server/instrumentation.js.nft.json +1 -0
  134. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  135. package/.next/server/middleware-build-manifest.js +1 -0
  136. package/.next/server/middleware-manifest.json +6 -0
  137. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  138. package/.next/server/next-font-manifest.js +1 -0
  139. package/.next/server/next-font-manifest.json +1 -0
  140. package/.next/server/pages/404.html +1 -0
  141. package/.next/server/pages/500.html +1 -0
  142. package/.next/server/pages/_app.js +1 -0
  143. package/.next/server/pages/_app.js.nft.json +1 -0
  144. package/.next/server/pages/_document.js +1 -0
  145. package/.next/server/pages/_document.js.nft.json +1 -0
  146. package/.next/server/pages/_error.js +19 -0
  147. package/.next/server/pages/_error.js.nft.json +1 -0
  148. package/.next/server/pages-manifest.json +6 -0
  149. package/.next/server/server-reference-manifest.js +1 -0
  150. package/.next/server/server-reference-manifest.json +1 -0
  151. package/.next/server/webpack-runtime.js +1 -0
  152. package/.next/static/chunks/255-1d1a1d3a2611d01b.js +1 -0
  153. package/.next/static/chunks/4bd1b696-844b1d0e78245c10.js +1 -0
  154. package/.next/static/chunks/657-0a7b4068b17a498e.js +1 -0
  155. package/.next/static/chunks/720-7c503373571041c5.js +1 -0
  156. package/.next/static/chunks/909-df1df79f44c4b47c.js +1 -0
  157. package/.next/static/chunks/930-3035d0b294080d0b.js +1 -0
  158. package/.next/static/chunks/app/_not-found/page-e73823794ff40fe9.js +1 -0
  159. package/.next/static/chunks/app/api/console/channel/content/route-70fb17a7b66a8fc3.js +1 -0
  160. package/.next/static/chunks/app/api/console/channel/list/route-70fb17a7b66a8fc3.js +1 -0
  161. package/.next/static/chunks/app/api/console/forwarders/route-70fb17a7b66a8fc3.js +1 -0
  162. package/.next/static/chunks/app/api/console/logs/content/route-70fb17a7b66a8fc3.js +1 -0
  163. package/.next/static/chunks/app/api/console/logs/route-70fb17a7b66a8fc3.js +1 -0
  164. package/.next/static/chunks/app/api/console/settings/route-70fb17a7b66a8fc3.js +1 -0
  165. package/.next/static/chunks/app/api/console/stats/route-70fb17a7b66a8fc3.js +1 -0
  166. package/.next/static/chunks/app/api/ingest/route-70fb17a7b66a8fc3.js +1 -0
  167. package/.next/static/chunks/app/console/forward/page-d9a759ec439080b4.js +1 -0
  168. package/.next/static/chunks/app/console/layout-194de38c97cedfc1.js +1 -0
  169. package/.next/static/chunks/app/console/logs/page-85e15a637bc4c004.js +1 -0
  170. package/.next/static/chunks/app/console/page-4f8bee8de21f562c.js +1 -0
  171. package/.next/static/chunks/app/console/receive/page-abda78a86a468f80.js +1 -0
  172. package/.next/static/chunks/app/layout-4e9c323eacd521ee.js +1 -0
  173. package/.next/static/chunks/app/page-70fb17a7b66a8fc3.js +1 -0
  174. package/.next/static/chunks/framework-0da1eca3ad5a591d.js +1 -0
  175. package/.next/static/chunks/main-891c01a9eeff970d.js +1 -0
  176. package/.next/static/chunks/main-app-c9ceb62c33b0b3f6.js +1 -0
  177. package/.next/static/chunks/pages/_app-5addca2b3b969fde.js +1 -0
  178. package/.next/static/chunks/pages/_error-022e4ac7bbb9914f.js +1 -0
  179. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  180. package/.next/static/chunks/webpack-ad3ccc1e9012aeca.js +1 -0
  181. package/.next/static/css/192808ba9ceee1ad.css +3 -0
  182. package/.next/static/y_Jw6-VHCvpm3If2CrLiz/_buildManifest.js +1 -0
  183. package/.next/static/y_Jw6-VHCvpm3If2CrLiz/_ssgManifest.js +1 -0
  184. package/.next/trace +3 -0
  185. package/.next/types/app/api/console/channel/content/route.ts +347 -0
  186. package/.next/types/app/api/console/channel/list/route.ts +347 -0
  187. package/.next/types/app/api/console/forwarders/route.ts +347 -0
  188. package/.next/types/app/api/console/logs/content/route.ts +347 -0
  189. package/.next/types/app/api/console/logs/route.ts +347 -0
  190. package/.next/types/app/api/console/settings/route.ts +347 -0
  191. package/.next/types/app/api/console/stats/route.ts +347 -0
  192. package/.next/types/app/api/ingest/route.ts +347 -0
  193. package/.next/types/app/console/forward/page.ts +84 -0
  194. package/.next/types/app/console/layout.ts +84 -0
  195. package/.next/types/app/console/logs/page.ts +84 -0
  196. package/.next/types/app/console/page.ts +84 -0
  197. package/.next/types/app/console/receive/page.ts +84 -0
  198. package/.next/types/app/layout.ts +84 -0
  199. package/.next/types/app/page.ts +84 -0
  200. package/.next/types/cache-life.d.ts +141 -0
  201. package/.next/types/package.json +1 -0
  202. package/.next/types/routes.d.ts +85 -0
  203. package/.next/types/validator.ts +187 -0
  204. package/bin/cli.mjs +36 -0
  205. package/next.config.ts +16 -0
  206. package/package.json +63 -0
  207. package/postcss.config.mjs +8 -0
  208. package/tailwind.config.ts +35 -0
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><!--y_Jw6_VHCvpm3If2CrLiz--><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/192808ba9ceee1ad.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ad3ccc1e9012aeca.js"/><script src="/_next/static/chunks/4bd1b696-844b1d0e78245c10.js" async=""></script><script src="/_next/static/chunks/255-1d1a1d3a2611d01b.js" async=""></script><script src="/_next/static/chunks/main-app-c9ceb62c33b0b3f6.js" async=""></script><script src="/_next/static/chunks/720-7c503373571041c5.js" async=""></script><script src="/_next/static/chunks/app/layout-4e9c323eacd521ee.js" async=""></script><script src="/_next/static/chunks/909-df1df79f44c4b47c.js" async=""></script><script src="/_next/static/chunks/app/console/layout-194de38c97cedfc1.js" async=""></script><script src="/_next/static/chunks/app/console/logs/page-85e15a637bc4c004.js" async=""></script><title>RabbitMQ Forward Control</title><meta name="description" content="HTTP ingest, DingTalk forward, local logs"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-dvh"><div hidden=""><!--$--><!--/$--></div><div class="min-h-dvh bg-[#f0f0f2] text-zinc-900 antialiased dark:bg-zinc-950 dark:text-zinc-100 md:h-dvh md:overflow-hidden"><div class="flex h-dvh min-h-0 w-full min-w-0 md:h-full md:min-h-0"><aside class="hidden h-full w-[240px] shrink-0 flex-col border-r border-zinc-200/80 bg-white dark:border-zinc-800 dark:bg-zinc-950 md:flex"><div class="shrink-0 border-b border-zinc-100 px-3 py-4 dark:border-zinc-800"><div class="flex items-center gap-2.5"><div class="flex h-9 w-9 items-center justify-center rounded-xl bg-rose-600 text-sm font-bold text-white shadow-sm">R</div><div class="min-w-0"><div class="truncate text-[15px] font-semibold tracking-tight text-zinc-900 dark:text-white">RabbitMQ 转发台</div><p class="text-[11px] leading-snug text-zinc-500 dark:text-zinc-400">控制台</p></div></div></div><nav class="flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto p-2"><p class="mb-1 px-2.5 pt-1 text-[10px] font-semibold uppercase tracking-[0.14em] text-zinc-400 dark:text-zinc-500">菜单</p><a class="flex cursor-pointer items-center gap-3 rounded-r-xl border-l-2 py-2.5 pl-[calc(0.75rem-2px)] pr-3 text-[13px] font-medium transition-colors border-transparent text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-zinc-100" href="/console"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard h-[18px] w-[18px] text-zinc-400 dark:text-zinc-500"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span class="truncate">Dashboard</span></a><a class="flex cursor-pointer items-center gap-3 rounded-r-xl border-l-2 py-2.5 pl-[calc(0.75rem-2px)] pr-3 text-[13px] font-medium transition-colors border-transparent text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-zinc-100" href="/console/receive"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-inbox h-[18px] w-[18px] text-zinc-400 dark:text-zinc-500"><polyline points="22 12 16 12 14 15 10 15 8 12 2 12"></polyline><path d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></path></svg><span class="truncate">接收端</span></a><a class="flex cursor-pointer items-center gap-3 rounded-r-xl border-l-2 py-2.5 pl-[calc(0.75rem-2px)] pr-3 text-[13px] font-medium transition-colors border-transparent text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-zinc-100" href="/console/forward"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share2 h-[18px] w-[18px] text-zinc-400 dark:text-zinc-500"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" x2="15.42" y1="13.51" y2="17.49"></line><line x1="15.41" x2="8.59" y1="6.51" y2="10.49"></line></svg><span class="truncate">转发端</span></a><a class="flex cursor-pointer items-center gap-3 rounded-r-xl border-l-2 py-2.5 pl-[calc(0.75rem-2px)] pr-3 text-[13px] font-medium transition-colors border-rose-600 bg-rose-50/95 text-rose-950 dark:border-rose-500 dark:bg-rose-950/35 dark:text-rose-100" href="/console/logs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scroll-text h-[18px] w-[18px] text-rose-600 dark:text-rose-300"><path d="M15 12h-5"></path><path d="M15 8h-5"></path><path d="M19 17V5a2 2 0 0 0-2-2H4"></path><path d="M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3"></path></svg><span class="truncate">日志</span></a></nav></aside><div class="flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden"><nav class="flex shrink-0 gap-1 overflow-x-auto border-b border-zinc-200/80 bg-white px-3 py-2 dark:border-zinc-800 dark:bg-zinc-950 md:hidden"><a class="shrink-0 rounded-lg px-3 py-1.5 text-xs font-medium text-zinc-600 dark:text-zinc-400" href="/console">概览</a><a class="shrink-0 rounded-lg px-3 py-1.5 text-xs font-medium text-zinc-600 dark:text-zinc-400" href="/console/receive">接收</a><a class="shrink-0 rounded-lg px-3 py-1.5 text-xs font-medium text-zinc-600 dark:text-zinc-400" href="/console/forward">转发</a><a class="shrink-0 rounded-lg px-3 py-1.5 text-xs font-medium bg-rose-50 text-rose-900 dark:bg-rose-950/40 dark:text-rose-100" href="/console/logs">日志</a></nav><header class="hidden shrink-0 border-b border-zinc-200/80 bg-white/90 px-6 py-3 backdrop-blur dark:border-zinc-800 dark:bg-zinc-950/90 md:block"><div class="flex items-center justify-between gap-3"><div class="min-w-0 text-sm text-zinc-500 dark:text-zinc-400"><span class="font-medium text-zinc-800 dark:text-zinc-200">RabbitMQ Forward</span><span class="mx-2 text-zinc-300 dark:text-zinc-600">/</span><span>运行日志</span></div><div class="flex items-center gap-2 rounded-xl border border-zinc-200/90 bg-zinc-50/80 px-3 py-1.5 text-xs text-zinc-400 dark:border-zinc-800 dark:bg-zinc-900/50 dark:text-zinc-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search h-3.5 w-3.5"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg>本地控制台</div></div></header><main class="flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-y-contain bg-[#f0f0f2] px-4 py-4 dark:bg-zinc-950 sm:px-5 md:px-6 md:py-5"><div class="-mx-4 -mt-2 flex min-h-0 flex-1 flex-col overflow-hidden sm:-mx-5 md:mx-0 md:mt-0"><main class="flex min-h-0 flex-1 flex-col overflow-hidden p-2 pt-2 lg:flex-row lg:p-4 lg:pt-3"><aside class="mb-3 hidden w-56 shrink-0 flex-col rounded-2xl border border-zinc-200/80 bg-white dark:border-zinc-800 dark:bg-zinc-950 lg:mb-0 lg:mr-3 lg:flex"><div class="border-b border-zinc-100 p-3 dark:border-zinc-800"><h2 class="text-xs font-semibold text-zinc-900 dark:text-white">日志文件</h2><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/40 disabled:pointer-events-none disabled:opacity-50 border border-zinc-200 bg-white text-zinc-900 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:bg-zinc-900 h-8 rounded-lg px-3 mt-2 w-full text-xs" type="button">刷新列表</button></div><ul class="max-h-[60vh] overflow-y-auto p-2"></ul></aside><div class="flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden"><div class="mb-2 shrink-0 lg:mb-3"><h1 class="text-base font-semibold tracking-tight text-zinc-900 dark:text-white lg:text-lg">运行日志</h1><p class="mt-0.5 hidden text-xs text-zinc-500 dark:text-zinc-400 md:block">按天切分文件 rmq-forward-YYYY-MM-DD.log,与 chat-client-proxy 的 connector 日志交互一致:支持尾部/分页与关键字扫描。</p></div><div class="mb-2 flex flex-wrap items-end gap-2 lg:hidden"><div class="min-w-[140px] flex-1 space-y-1"><label class="font-medium text-zinc-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 dark:text-zinc-300 text-[10px]">文件</label><select class="h-9 w-full rounded-lg border border-zinc-200 bg-white px-2 text-xs dark:border-zinc-800 dark:bg-zinc-950"></select></div></div><div class="mb-2 flex flex-wrap gap-3 rounded-xl border border-zinc-200/80 bg-white/80 p-3 text-xs dark:border-zinc-800 dark:bg-zinc-950/80"><label class="flex cursor-pointer items-center gap-2"><input type="checkbox" class="rounded border-zinc-300" checked=""/>最新(尾部)</label><label class="flex cursor-pointer items-center gap-2"><input type="checkbox" class="rounded border-zinc-300" checked=""/>自动刷新</label><div class="flex items-center gap-1"><span class="text-zinc-500">间隔</span><input type="number" class="flex rounded-xl border border-zinc-200 bg-white px-3 py-2 text-zinc-900 shadow-sm transition-colors placeholder:text-zinc-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/30 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100 h-8 w-16 text-xs" min="2" value="5"/><span class="text-zinc-500">秒</span></div><div class="flex items-center gap-1"><span class="text-zinc-500">行数</span><input type="number" class="flex rounded-xl border border-zinc-200 bg-white px-3 py-2 text-zinc-900 shadow-sm transition-colors placeholder:text-zinc-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/30 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100 h-8 w-16 text-xs" min="20" max="500" value="150"/></div><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/40 disabled:pointer-events-none disabled:opacity-50 border border-zinc-200 bg-white text-zinc-900 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:bg-zinc-900 h-8 rounded-lg px-3 text-xs" type="button">刷新</button></div><div class="mb-2 hidden lg:block"><input class="flex w-full rounded-xl border border-zinc-200 bg-white px-3 py-2 text-zinc-900 shadow-sm transition-colors placeholder:text-zinc-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/30 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100 h-8 max-w-xs text-xs" placeholder="筛选左侧文件列表…" value=""/></div><div class="min-h-0 flex-1 overflow-auto rounded-xl border border-zinc-200/80 bg-zinc-50/50 p-2 font-mono text-[11px] dark:border-zinc-800 dark:bg-zinc-900/40"></div></div></main></div><!--$--><!--/$--></main></div></div></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/_next/static/chunks/webpack-ad3ccc1e9012aeca.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[98924,[],\"\"]\n4:I[18720,[\"720\",\"static/chunks/720-7c503373571041c5.js\",\"177\",\"static/chunks/app/layout-4e9c323eacd521ee.js\"],\"Toaster\"]\n5:I[64446,[\"909\",\"static/chunks/909-df1df79f44c4b47c.js\",\"99\",\"static/chunks/app/console/layout-194de38c97cedfc1.js\"],\"ConsoleShell\"]\n6:I[1540,[\"909\",\"static/chunks/909-df1df79f44c4b47c.js\",\"34\",\"static/chunks/app/console/logs/page-85e15a637bc4c004.js\"],\"LogsClient\"]\n7:I[24431,[],\"OutletBoundary\"]\n9:I[15278,[],\"AsyncMetadataOutlet\"]\nb:I[24431,[],\"ViewportBoundary\"]\nd:I[24431,[],\"MetadataBoundary\"]\ne:\"$Sreact.suspense\"\n10:I[57150,[],\"\"]\n:HL[\"/_next/static/css/192808ba9ceee1ad.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"y_Jw6-VHCvpm3If2CrLiz\",\"p\":\"\",\"c\":[\"\",\"console\",\"logs\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"console\",{\"children\":[\"logs\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/192808ba9ceee1ad.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-dvh\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{\"position\":\"top-center\",\"richColors\":true,\"expand\":false,\"duration\":4000,\"toastOptions\":{\"classNames\":{\"toast\":\"border border-zinc-200 bg-white text-zinc-900 shadow-lg dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100\"}}}]]}]}]]}],{\"children\":[\"console\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],{\"children\":[\"logs\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"-mx-4 -mt-2 flex min-h-0 flex-1 flex-col overflow-hidden sm:-mx-5 md:mx-0 md:mt-0\",\"children\":[\"$\",\"$L6\",null,{}]}],null,[\"$\",\"$L7\",null,{\"children\":[\"$L8\",[\"$\",\"$L9\",null,{\"promise\":\"$@a\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],null],[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$e\",null,{\"fallback\":null,\"children\":\"$Lf\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n8:null\n"])</script><script>self.__next_f.push([1,"a:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"RabbitMQ Forward Control\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"HTTP ingest, DingTalk forward, local logs\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"f:\"$a:metadata\"\n"])</script></body></html>
@@ -0,0 +1,7 @@
1
+ {
2
+ "headers": {
3
+ "x-nextjs-stale-time": "300",
4
+ "x-nextjs-prerender": "1",
5
+ "x-next-cache-tags": "_N_T_/layout,_N_T_/console/layout,_N_T_/console/logs/layout,_N_T_/console/logs/page,_N_T_/console/logs"
6
+ }
7
+ }
@@ -0,0 +1,18 @@
1
+ 1:"$Sreact.fragment"
2
+ 2:I[9766,[],""]
3
+ 3:I[98924,[],""]
4
+ 4:I[18720,["720","static/chunks/720-7c503373571041c5.js","177","static/chunks/app/layout-4e9c323eacd521ee.js"],"Toaster"]
5
+ 5:I[64446,["909","static/chunks/909-df1df79f44c4b47c.js","99","static/chunks/app/console/layout-194de38c97cedfc1.js"],"ConsoleShell"]
6
+ 6:I[1540,["909","static/chunks/909-df1df79f44c4b47c.js","34","static/chunks/app/console/logs/page-85e15a637bc4c004.js"],"LogsClient"]
7
+ 7:I[24431,[],"OutletBoundary"]
8
+ 9:I[15278,[],"AsyncMetadataOutlet"]
9
+ b:I[24431,[],"ViewportBoundary"]
10
+ d:I[24431,[],"MetadataBoundary"]
11
+ e:"$Sreact.suspense"
12
+ 10:I[57150,[],""]
13
+ :HL["/_next/static/css/192808ba9ceee1ad.css","style"]
14
+ 0:{"P":null,"b":"y_Jw6-VHCvpm3If2CrLiz","p":"","c":["","console","logs"],"i":false,"f":[[["",{"children":["console",{"children":["logs",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/192808ba9ceee1ad.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"zh-CN","children":["$","body",null,{"className":"min-h-dvh","children":[["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L4",null,{"position":"top-center","richColors":true,"expand":false,"duration":4000,"toastOptions":{"classNames":{"toast":"border border-zinc-200 bg-white text-zinc-900 shadow-lg dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100"}}}]]}]}]]}],{"children":["console",["$","$1","c",{"children":[null,["$","$L5",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":["logs",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"-mx-4 -mt-2 flex min-h-0 flex-1 flex-col overflow-hidden sm:-mx-5 md:mx-0 md:mt-0","children":["$","$L6",null,{}]}],null,["$","$L7",null,{"children":["$L8",["$","$L9",null,{"promise":"$@a"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lb",null,{"children":"$Lc"}],null],["$","$Ld",null,{"children":["$","div",null,{"hidden":true,"children":["$","$e",null,{"fallback":null,"children":"$Lf"}]}]}]]}],false]],"m":"$undefined","G":["$10",[]],"s":false,"S":true}
15
+ c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
16
+ 8:null
17
+ a:{"metadata":[["$","title","0",{"children":"RabbitMQ Forward Control"}],["$","meta","1",{"name":"description","content":"HTTP ingest, DingTalk forward, local logs"}]],"error":null,"digest":"$undefined"}
18
+ f:"$a:metadata"