@lunora/studio 1.0.0-alpha.57 → 1.0.0-alpha.59

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 (115) hide show
  1. package/dist/index.d.ts +61 -4
  2. package/dist/index.js +8 -6
  3. package/dist/mount.d.ts +1 -1
  4. package/dist/mount.js +1 -1
  5. package/dist/packem_chunks/ApiTab.js +1 -1
  6. package/dist/packem_chunks/AuditPanel.js +1 -1
  7. package/dist/packem_chunks/DeploymentHealthPanel.js +664 -0
  8. package/dist/packem_chunks/ExportImportPanel.js +1 -1
  9. package/dist/packem_chunks/FileBrowser.js +1 -1
  10. package/dist/packem_chunks/FunctionRunner.js +1 -1
  11. package/dist/packem_chunks/FunctionStatsPanel.js +1 -1
  12. package/dist/packem_chunks/HealthPanel.js +1 -1
  13. package/dist/packem_chunks/InsightsPanel.js +1 -1
  14. package/dist/packem_chunks/LogsPanel.js +1 -1
  15. package/dist/packem_chunks/MailPanel.js +1 -1
  16. package/dist/packem_chunks/MetricsPanel.js +473 -242
  17. package/dist/packem_chunks/MigrationsPanel.js +1 -1
  18. package/dist/packem_chunks/NotificationsPanel.js +306 -0
  19. package/dist/packem_chunks/PitrPanel.js +1 -1
  20. package/dist/packem_chunks/SchemaViewer.js +1 -1
  21. package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -1
  22. package/dist/packem_chunks/SettingsPanel.js +1 -1
  23. package/dist/packem_chunks/SqlEditorPanel.js +1 -1
  24. package/dist/packem_chunks/TableEditor.js +1 -1
  25. package/dist/packem_chunks/agents-panel.js +1 -1
  26. package/dist/packem_chunks/auth-audit-panel.js +247 -0
  27. package/dist/packem_chunks/containers-panel.js +1 -1
  28. package/dist/packem_chunks/dashboards-panel.js +1 -1
  29. package/dist/packem_chunks/fanout-panel.js +1 -1
  30. package/dist/packem_chunks/flags-panel.js +1 -1
  31. package/dist/packem_chunks/issues-panel.js +1 -1
  32. package/dist/packem_chunks/kv-browser.js +1 -1
  33. package/dist/packem_chunks/payments-panel.js +28 -1
  34. package/dist/packem_chunks/permissions-panel.js +1 -1
  35. package/dist/packem_chunks/queues-panel.js +1 -1
  36. package/dist/packem_chunks/rls-panel.js +1 -1
  37. package/dist/packem_chunks/storage-rules-panel.js +1 -1
  38. package/dist/packem_chunks/subscriptions-panel.js +1 -1
  39. package/dist/packem_chunks/traces-panel.js +125 -112
  40. package/dist/packem_chunks/workflows-panel.js +1 -1
  41. package/dist/packem_shared/{ADMIN_FUNCTIONS-C1LXrovV.js → ADMIN_FUNCTIONS-P2UzJscH.js} +3 -0
  42. package/dist/packem_shared/{ApiDocsPanel-BBvinlRD.js → ApiDocsPanel-DNDpeR5O.js} +1 -1
  43. package/dist/packem_shared/{DataBrowser-BoinTGxr.js → DataBrowser-obTn4sKX.js} +1 -1
  44. package/dist/packem_shared/{HomePanel-BpdGcW4L.js → HomePanel-DCRj3hGB.js} +2 -2
  45. package/dist/packem_shared/{Studio-BpnYw3lc.js → Studio-DnlPCbID.js} +2 -2
  46. package/dist/packem_shared/{StudioApp-DRGVBnFx.js → StudioApp-CzqlB4zO.js} +1 -1
  47. package/dist/packem_shared/{app.d-C-kxb-1T.d.ts → app.d-bRPJhby-.d.ts} +1 -1
  48. package/dist/packem_shared/{home-panel-Dmg4sNiv.js → home-panel-BRAA2UlM.js} +1 -1
  49. package/dist/packem_shared/{studio-LL4iP8fZ.js → studio-8QSXbZ98.js} +682 -607
  50. package/dist/packem_shared/trace-handoff-CGolF3KS.js +38 -0
  51. package/dist/standalone/{chunk-C7UZEQZ7.js → chunk-3LJEGSMK.js} +2 -2
  52. package/dist/standalone/{chunk-SAQU44MF.js → chunk-56XQYNUJ.js} +1 -1
  53. package/dist/standalone/chunk-5QT5JRXD.js +3 -0
  54. package/dist/standalone/{chunk-JM3ZISDM.js → chunk-6RLPR7PL.js} +1 -1
  55. package/dist/standalone/{chunk-T3R6VHAT.js → chunk-6V74EUPK.js} +1 -1
  56. package/dist/standalone/{chunk-27JTW53L.js → chunk-7EE33WLB.js} +1 -1
  57. package/dist/standalone/{chunk-R4ALMCZA.js → chunk-AXNGWSBM.js} +1 -1
  58. package/dist/standalone/{chunk-OHCGUIOG.js → chunk-AXZILWRM.js} +1 -1
  59. package/dist/standalone/{chunk-J2DQ63SR.js → chunk-C7RHEBOH.js} +1 -1
  60. package/dist/standalone/chunk-CSWIYOB3.js +1 -0
  61. package/dist/standalone/{chunk-NV5LO5I6.js → chunk-D3VAON25.js} +1 -1
  62. package/dist/standalone/{chunk-HQ2CPGA4.js → chunk-DDLQN67F.js} +1 -1
  63. package/dist/standalone/chunk-DGHW5JG5.js +1 -0
  64. package/dist/standalone/{chunk-EFYZYQUA.js → chunk-DMCSOTAE.js} +1 -1
  65. package/dist/standalone/{chunk-MBG7XWNH.js → chunk-E3BKETAS.js} +1 -1
  66. package/dist/standalone/{chunk-IMVAYDPK.js → chunk-E3OXNN6O.js} +1 -1
  67. package/dist/standalone/chunk-E6BOGDIS.js +1 -0
  68. package/dist/standalone/{chunk-2ICZ6HXQ.js → chunk-F7GE4X2U.js} +1 -1
  69. package/dist/standalone/{chunk-CENYZ5GF.js → chunk-FAVUOGJR.js} +1 -1
  70. package/dist/standalone/{chunk-NIC6UYAQ.js → chunk-FXP6256Q.js} +1 -1
  71. package/dist/standalone/{chunk-X34PHGZF.js → chunk-G6CTAYHJ.js} +1 -1
  72. package/dist/standalone/chunk-H42W62SE.js +1 -0
  73. package/dist/standalone/{chunk-LABWKVKR.js → chunk-HTF5ZX4I.js} +1 -1
  74. package/dist/standalone/{chunk-AYHAJL3Z.js → chunk-I2PS4L74.js} +1 -1
  75. package/dist/standalone/{chunk-MJ4HATA2.js → chunk-J7OGP4NN.js} +1 -1
  76. package/dist/standalone/{chunk-2XUT4Z4W.js → chunk-L2LN3MK4.js} +1 -1
  77. package/dist/standalone/{chunk-2BSDITP4.js → chunk-LT3FH6MW.js} +1 -1
  78. package/dist/standalone/{chunk-ZXLEXF4X.js → chunk-LXULVPEM.js} +3 -3
  79. package/dist/standalone/{chunk-RIZDNIW7.js → chunk-LZUWZBPE.js} +1 -1
  80. package/dist/standalone/{chunk-W3EYW2EA.js → chunk-M4JM3TOY.js} +1 -1
  81. package/dist/standalone/{chunk-P7MZQ6VJ.js → chunk-MLA5ZAEB.js} +1 -1
  82. package/dist/standalone/{chunk-67YMILPJ.js → chunk-MRBI5HNQ.js} +1 -1
  83. package/dist/standalone/{chunk-53J4JZ2D.js → chunk-NKFXMDOD.js} +1 -1
  84. package/dist/standalone/{chunk-WAX3RSAI.js → chunk-NPSNKFHE.js} +1 -1
  85. package/dist/standalone/{chunk-ZVQMTQYX.js → chunk-O7FVPUCO.js} +1 -1
  86. package/dist/standalone/{chunk-227DORM6.js → chunk-OKQXTLFX.js} +1 -1
  87. package/dist/standalone/{chunk-OPSAI5PZ.js → chunk-QAIM6KWT.js} +1 -1
  88. package/dist/standalone/{chunk-7YGTGBP7.js → chunk-QCPMTB6W.js} +1 -1
  89. package/dist/standalone/{chunk-XAGYDGI6.js → chunk-QQ2LOSZL.js} +1 -1
  90. package/dist/standalone/{chunk-Y26ZIWUZ.js → chunk-R2GMHLJY.js} +1 -1
  91. package/dist/standalone/{chunk-2YUYNNHQ.js → chunk-RD5UG2YL.js} +1 -1
  92. package/dist/standalone/chunk-RJTIP3WF.js +1 -0
  93. package/dist/standalone/{chunk-BIA2DLBR.js → chunk-SOC5CY3F.js} +1 -1
  94. package/dist/standalone/{chunk-GF6GF6CF.js → chunk-SS7JLF2I.js} +1 -1
  95. package/dist/standalone/{chunk-PYPWIYI2.js → chunk-SWWYUGPL.js} +1 -1
  96. package/dist/standalone/chunk-TEWVD66F.js +1 -0
  97. package/dist/standalone/{chunk-QAW6AWOE.js → chunk-TTXRHJUP.js} +1 -1
  98. package/dist/standalone/{chunk-4Q66FL5S.js → chunk-UKDHGVOC.js} +1 -1
  99. package/dist/standalone/{chunk-5IGHDPEP.js → chunk-UPNTMJFF.js} +1 -1
  100. package/dist/standalone/{chunk-PRHAIUWS.js → chunk-XN6QYJQ6.js} +1 -1
  101. package/dist/standalone/chunk-Y4U6CC22.js +1 -0
  102. package/dist/standalone/{chunk-SWMBBYJU.js → chunk-Y7PD5KP4.js} +1 -1
  103. package/dist/standalone/chunk-YFIPHCEC.js +1 -0
  104. package/dist/standalone/chunk-YJXOWLFJ.js +1 -0
  105. package/dist/standalone/{chunk-CURAOCQJ.js → chunk-YNN6NFRZ.js} +1 -1
  106. package/dist/standalone/{chunk-LFORIMS7.js → chunk-YUGHRVPD.js} +1 -1
  107. package/dist/standalone/studio.js +1 -1
  108. package/dist/styles.css +1 -1
  109. package/package.json +6 -6
  110. package/dist/standalone/chunk-EXNK5XAW.js +0 -1
  111. package/dist/standalone/chunk-LT2HPR6R.js +0 -3
  112. package/dist/standalone/chunk-MHGJUKCZ.js +0 -1
  113. package/dist/standalone/chunk-N2E4TKRD.js +0 -1
  114. package/dist/standalone/chunk-S6PTK7Y2.js +0 -1
  115. package/dist/standalone/chunk-X3VAERRH.js +0 -1
@@ -21,7 +21,7 @@ import { B as Button } from './button-BhsN2uZH.js';
21
21
  import { Dialog } from '@base-ui/react/dialog';
22
22
  import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
23
23
  import { S as Skeleton } from './skeleton-CGhL0p20.js';
24
- import { u as useStudioFeatures, H as HomePanel } from './home-panel-Dmg4sNiv.js';
24
+ import { u as useStudioFeatures, H as HomePanel } from './home-panel-BRAA2UlM.js';
25
25
  import { StudioI18nProvider } from './StudioI18nProvider-B-tDCZIi.js';
26
26
  import { v as validateDataViewSearch } from './data-view-params-Cd6yRVbv.js';
27
27
  import { f as fireAndForget } from './internal-DzHCc2Rq.js';
@@ -1645,11 +1645,13 @@ const SecurityAdvisorPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks
1645
1645
  const AgentsPanel = lazyNamed(() => import('../packem_chunks/agents-panel.js'), "AgentsPanel");
1646
1646
  const AnalyticsPanel = lazyNamed(() => import('../packem_chunks/analytics-panel.js'), "AnalyticsPanel");
1647
1647
  const ApiTab = /* @__PURE__ */ lazy(() => import('../packem_chunks/ApiTab.js'));
1648
+ const AuthAuditPanel = lazyNamed(() => import('../packem_chunks/auth-audit-panel.js'), "AuthAuditPanel");
1648
1649
  const AuthConfigPanel = lazyNamed(() => import('../packem_chunks/auth-config-panel.js'), "AuthConfigPanel");
1649
1650
  const AuthSessionsPanel = lazyNamed(() => import('../packem_chunks/auth-sessions-panel.js'), "AuthSessionsPanel");
1650
1651
  const OrganizationsPanel = lazyNamed(() => import('../packem_chunks/organizations-panel.js'), "OrganizationsPanel");
1651
1652
  const UsersPanel = lazyNamed(() => import('../packem_chunks/users-panel.js'), "UsersPanel");
1652
1653
  const ContainersPanel = lazyNamed(() => import('../packem_chunks/containers-panel.js'), "ContainersPanel");
1654
+ const DeploymentHealthPanel = lazyNamed(() => import('../packem_chunks/DeploymentHealthPanel.js'), "DeploymentHealthPanel");
1653
1655
  const TableEditor = lazyNamed(() => import('../packem_chunks/TableEditor.js'), "TableEditor");
1654
1656
  const ExportImportPanel = lazyNamed(() => import('../packem_chunks/ExportImportPanel.js'), "ExportImportPanel");
1655
1657
  const MigrationsPanel = lazyNamed(() => import('../packem_chunks/MigrationsPanel.js'), "MigrationsPanel");
@@ -1669,6 +1671,7 @@ const MailPanel = lazyNamed(() => import('../packem_chunks/MailPanel.js'), "Mail
1669
1671
  const SchedulePanel = lazyNamed(() => import('../packem_chunks/schedule-panel.js'), "SchedulePanel");
1670
1672
  const SubscriptionsPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/subscriptions-panel.js'));
1671
1673
  const KvBrowser = lazyNamed(() => import('../packem_chunks/kv-browser.js'), "KvBrowser");
1674
+ const NotificationsPanel = lazyNamed(() => import('../packem_chunks/NotificationsPanel.js'), "NotificationsPanel");
1672
1675
  const PaymentsPanel = lazyNamed(() => import('../packem_chunks/payments-panel.js'), "PaymentsPanel");
1673
1676
  const PermissionsPanel = lazyNamed(() => import('../packem_chunks/permissions-panel.js'), "PermissionsPanel");
1674
1677
  const QueuesPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/queues-panel.js'));
@@ -1695,6 +1698,9 @@ const TAB_ICONS = {
1695
1698
  audit: /* @__PURE__ */ jsxDEV("path", {
1696
1699
  d: "M7 4h7l4 4v11a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Zm6 0v5h5M9 13h6M9 16h6M9 10h2"
1697
1700
  }, void 0, false),
1701
+ authAudit: /* @__PURE__ */ jsxDEV("path", {
1702
+ d: "M12 3 5 6v5c0 4.5 3 7.8 7 9 4-1.2 7-4.5 7-9V6l-7-3Zm-3 8h6m-6 3h6"
1703
+ }, void 0, false),
1698
1704
  authConfig: /* @__PURE__ */ jsxDEV("path", {
1699
1705
  d: "M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm7.4-3a7.4 7.4 0 0 0-.1-1.2l2-1.6-2-3.4-2.4 1a7.3 7.3 0 0 0-2-1.2l-.4-2.6h-3.6l-.4 2.6a7.3 7.3 0 0 0-2 1.2l-2.4-1-2 3.4 2 1.6a7.4 7.4 0 0 0 0 2.4l-2 1.6 2 3.4 2.4-1a7.3 7.3 0 0 0 2 1.2l.4 2.6h3.6l.4-2.6a7.3 7.3 0 0 0 2-1.2l2.4 1 2-3.4-2-1.6a7.4 7.4 0 0 0 .1-1.2Z"
1700
1706
  }, void 0, false),
@@ -1710,6 +1716,9 @@ const TAB_ICONS = {
1710
1716
  dashboards: /* @__PURE__ */ jsxDEV("path", {
1711
1717
  d: "M4 5h7v6H4V5Zm9 0h7v4h-7V5ZM4 14h7v5H4v-5Zm9-1h7v6h-7v-6Z"
1712
1718
  }, void 0, false),
1719
+ deploymentHealth: /* @__PURE__ */ jsxDEV("path", {
1720
+ d: "M12 3 5 6v5c0 4.5 3 7.8 7 9 4-1.2 7-4.5 7-9V6l-7-3Zm-3 8 2 3 4-5"
1721
+ }, void 0, false),
1713
1722
  drains: /* @__PURE__ */ jsxDEV("path", {
1714
1723
  d: "M5 5h14M7 5v6a5 5 0 0 0 10 0V5M10 16h4v3h-4zM12 19v2"
1715
1724
  }, void 0, false),
@@ -1761,6 +1770,9 @@ const TAB_ICONS = {
1761
1770
  migrations: /* @__PURE__ */ jsxDEV("path", {
1762
1771
  d: "M4 12a8 8 0 0 1 13.7-5.6L20 8M20 4v4h-4M20 12a8 8 0 0 1-13.7 5.6L4 16m0 4v-4h4"
1763
1772
  }, void 0, false),
1773
+ notifications: /* @__PURE__ */ jsxDEV("path", {
1774
+ d: "M15 17h5l-1.4-1.4A2 2 0 0 1 18 14.2V11a6 6 0 0 0-4-5.7V5a2 2 0 1 0-4 0v.3A6 6 0 0 0 6 11v3.2a2 2 0 0 1-.6 1.4L4 17h5m6 0v1a3 3 0 1 1-6 0v-1m6 0H9"
1775
+ }, void 0, false),
1764
1776
  organizations: /* @__PURE__ */ jsxDEV("path", {
1765
1777
  d: "M3 21V8l6-4 6 4v13M9 21v-5h2v5M15 11h6v10M18 14v.01M18 17v.01M6 9v.01M6 12v.01M6 15v.01"
1766
1778
  }, void 0, false),
@@ -1821,19 +1833,19 @@ const NAV_GROUPS = [{
1821
1833
  tabs: ["functions", "api", "workflows", "agents", "queues"]
1822
1834
  }, {
1823
1835
  key: "auth",
1824
- tabs: ["users", "organizations", "authSessions", "authConfig"]
1836
+ tabs: ["users", "organizations", "authSessions", "authAudit", "authConfig"]
1825
1837
  }, {
1826
1838
  key: "storage",
1827
1839
  tabs: ["files", "storageRules", "kv"]
1828
1840
  }, {
1829
1841
  key: "observability",
1830
- tabs: ["issues", "logs", "traces", "audit", "realtime", "fanout", "containers", "metrics", "analytics", "health"]
1842
+ tabs: ["issues", "logs", "traces", "audit", "realtime", "fanout", "containers", "metrics", "analytics", "health", "deploymentHealth"]
1831
1843
  }, {
1832
1844
  key: "advisors",
1833
1845
  tabs: ["security", "rls", "permissions", "insights"]
1834
1846
  }, {
1835
1847
  key: "operations",
1836
- tabs: ["schedule", "mail", "drains", "payments", "flags"]
1848
+ tabs: ["schedule", "mail", "drains", "notifications", "payments", "flags"]
1837
1849
  }, {
1838
1850
  key: "settings",
1839
1851
  tabs: ["settings"]
@@ -1887,7 +1899,7 @@ const TabIcon = (t0) => {
1887
1899
  return t2;
1888
1900
  };
1889
1901
  const exhaustiveRouteTabs = (tabs) => tabs;
1890
- const TABS = exhaustiveRouteTabs(["home", "data", "sql", "functions", "api", "workflows", "agents", "queues", "containers", "schema", "migrations", "vectors", "export", "pitr", "users", "organizations", "authSessions", "authConfig", "files", "storageRules", "kv", "dashboards", "metrics", "analytics", "health", "security", "rls", "permissions", "insights", "issues", "logs", "traces", "realtime", "fanout", "mail", "payments", "audit", "schedule", "drains", "flags", "settings"]);
1902
+ const TABS = exhaustiveRouteTabs(["home", "data", "sql", "functions", "api", "workflows", "agents", "queues", "containers", "schema", "migrations", "vectors", "export", "pitr", "users", "organizations", "authSessions", "authAudit", "authConfig", "files", "storageRules", "kv", "dashboards", "metrics", "analytics", "health", "deploymentHealth", "security", "rls", "permissions", "insights", "issues", "logs", "traces", "realtime", "fanout", "mail", "notifications", "payments", "audit", "schedule", "drains", "flags", "settings"]);
1891
1903
  const FULL_HEIGHT_TABS = /* @__PURE__ */ new Set(["api", "data", "sql"]);
1892
1904
  const tabFromPathname = (pathname) => {
1893
1905
  const slug = pathname.split("/").findLast(Boolean) ?? "";
@@ -2518,7 +2530,7 @@ const RoutePending = () => {
2518
2530
  return t0;
2519
2531
  };
2520
2532
  const StudioLayout = () => {
2521
- const $ = c(312);
2533
+ const $ = c(330);
2522
2534
  const t = useT();
2523
2535
  const navigate = useNavigate();
2524
2536
  let t0;
@@ -2613,7 +2625,7 @@ const StudioLayout = () => {
2613
2625
  }
2614
2626
  let t9;
2615
2627
  if ($[19] !== t) {
2616
- t9 = t("Configuration");
2628
+ t9 = t("Auth audit");
2617
2629
  $[19] = t;
2618
2630
  $[20] = t9;
2619
2631
  } else {
@@ -2621,7 +2633,7 @@ const StudioLayout = () => {
2621
2633
  }
2622
2634
  let t10;
2623
2635
  if ($[21] !== t) {
2624
- t10 = t("Sessions");
2636
+ t10 = t("Configuration");
2625
2637
  $[21] = t;
2626
2638
  $[22] = t10;
2627
2639
  } else {
@@ -2629,7 +2641,7 @@ const StudioLayout = () => {
2629
2641
  }
2630
2642
  let t11;
2631
2643
  if ($[23] !== t) {
2632
- t11 = t("Containers");
2644
+ t11 = t("Sessions");
2633
2645
  $[23] = t;
2634
2646
  $[24] = t11;
2635
2647
  } else {
@@ -2637,7 +2649,7 @@ const StudioLayout = () => {
2637
2649
  }
2638
2650
  let t12;
2639
2651
  if ($[25] !== t) {
2640
- t12 = t("Dashboards");
2652
+ t12 = t("Containers");
2641
2653
  $[25] = t;
2642
2654
  $[26] = t12;
2643
2655
  } else {
@@ -2645,7 +2657,7 @@ const StudioLayout = () => {
2645
2657
  }
2646
2658
  let t13;
2647
2659
  if ($[27] !== t) {
2648
- t13 = t("Data");
2660
+ t13 = t("Dashboards");
2649
2661
  $[27] = t;
2650
2662
  $[28] = t13;
2651
2663
  } else {
@@ -2653,7 +2665,7 @@ const StudioLayout = () => {
2653
2665
  }
2654
2666
  let t14;
2655
2667
  if ($[29] !== t) {
2656
- t14 = t("Log drains");
2668
+ t14 = t("Data");
2657
2669
  $[29] = t;
2658
2670
  $[30] = t14;
2659
2671
  } else {
@@ -2661,7 +2673,7 @@ const StudioLayout = () => {
2661
2673
  }
2662
2674
  let t15;
2663
2675
  if ($[31] !== t) {
2664
- t15 = t("Export / Import");
2676
+ t15 = t("Deployment health");
2665
2677
  $[31] = t;
2666
2678
  $[32] = t15;
2667
2679
  } else {
@@ -2669,7 +2681,7 @@ const StudioLayout = () => {
2669
2681
  }
2670
2682
  let t16;
2671
2683
  if ($[33] !== t) {
2672
- t16 = t("Fan-out");
2684
+ t16 = t("Log drains");
2673
2685
  $[33] = t;
2674
2686
  $[34] = t16;
2675
2687
  } else {
@@ -2677,7 +2689,7 @@ const StudioLayout = () => {
2677
2689
  }
2678
2690
  let t17;
2679
2691
  if ($[35] !== t) {
2680
- t17 = t("Files");
2692
+ t17 = t("Export / Import");
2681
2693
  $[35] = t;
2682
2694
  $[36] = t17;
2683
2695
  } else {
@@ -2685,7 +2697,7 @@ const StudioLayout = () => {
2685
2697
  }
2686
2698
  let t18;
2687
2699
  if ($[37] !== t) {
2688
- t18 = t("Flags");
2700
+ t18 = t("Fan-out");
2689
2701
  $[37] = t;
2690
2702
  $[38] = t18;
2691
2703
  } else {
@@ -2693,7 +2705,7 @@ const StudioLayout = () => {
2693
2705
  }
2694
2706
  let t19;
2695
2707
  if ($[39] !== t) {
2696
- t19 = t("Functions");
2708
+ t19 = t("Files");
2697
2709
  $[39] = t;
2698
2710
  $[40] = t19;
2699
2711
  } else {
@@ -2701,7 +2713,7 @@ const StudioLayout = () => {
2701
2713
  }
2702
2714
  let t20;
2703
2715
  if ($[41] !== t) {
2704
- t20 = t("Health");
2716
+ t20 = t("Flags");
2705
2717
  $[41] = t;
2706
2718
  $[42] = t20;
2707
2719
  } else {
@@ -2709,7 +2721,7 @@ const StudioLayout = () => {
2709
2721
  }
2710
2722
  let t21;
2711
2723
  if ($[43] !== t) {
2712
- t21 = t("Home");
2724
+ t21 = t("Functions");
2713
2725
  $[43] = t;
2714
2726
  $[44] = t21;
2715
2727
  } else {
@@ -2717,7 +2729,7 @@ const StudioLayout = () => {
2717
2729
  }
2718
2730
  let t22;
2719
2731
  if ($[45] !== t) {
2720
- t22 = t("Performance");
2732
+ t22 = t("Health");
2721
2733
  $[45] = t;
2722
2734
  $[46] = t22;
2723
2735
  } else {
@@ -2725,7 +2737,7 @@ const StudioLayout = () => {
2725
2737
  }
2726
2738
  let t23;
2727
2739
  if ($[47] !== t) {
2728
- t23 = t("Issues");
2740
+ t23 = t("Home");
2729
2741
  $[47] = t;
2730
2742
  $[48] = t23;
2731
2743
  } else {
@@ -2733,7 +2745,7 @@ const StudioLayout = () => {
2733
2745
  }
2734
2746
  let t24;
2735
2747
  if ($[49] !== t) {
2736
- t24 = t("KV");
2748
+ t24 = t("Performance");
2737
2749
  $[49] = t;
2738
2750
  $[50] = t24;
2739
2751
  } else {
@@ -2741,7 +2753,7 @@ const StudioLayout = () => {
2741
2753
  }
2742
2754
  let t25;
2743
2755
  if ($[51] !== t) {
2744
- t25 = t("Logs");
2756
+ t25 = t("Issues");
2745
2757
  $[51] = t;
2746
2758
  $[52] = t25;
2747
2759
  } else {
@@ -2749,7 +2761,7 @@ const StudioLayout = () => {
2749
2761
  }
2750
2762
  let t26;
2751
2763
  if ($[53] !== t) {
2752
- t26 = t("Metrics");
2764
+ t26 = t("KV");
2753
2765
  $[53] = t;
2754
2766
  $[54] = t26;
2755
2767
  } else {
@@ -2757,7 +2769,7 @@ const StudioLayout = () => {
2757
2769
  }
2758
2770
  let t27;
2759
2771
  if ($[55] !== t) {
2760
- t27 = t("Migrations");
2772
+ t27 = t("Logs");
2761
2773
  $[55] = t;
2762
2774
  $[56] = t27;
2763
2775
  } else {
@@ -2765,7 +2777,7 @@ const StudioLayout = () => {
2765
2777
  }
2766
2778
  let t28;
2767
2779
  if ($[57] !== t) {
2768
- t28 = t("Organizations");
2780
+ t28 = t("Metrics");
2769
2781
  $[57] = t;
2770
2782
  $[58] = t28;
2771
2783
  } else {
@@ -2773,7 +2785,7 @@ const StudioLayout = () => {
2773
2785
  }
2774
2786
  let t29;
2775
2787
  if ($[59] !== t) {
2776
- t29 = t("Time Travel");
2788
+ t29 = t("Migrations");
2777
2789
  $[59] = t;
2778
2790
  $[60] = t29;
2779
2791
  } else {
@@ -2781,7 +2793,7 @@ const StudioLayout = () => {
2781
2793
  }
2782
2794
  let t30;
2783
2795
  if ($[61] !== t) {
2784
- t30 = t("Mail");
2796
+ t30 = t("Notifications");
2785
2797
  $[61] = t;
2786
2798
  $[62] = t30;
2787
2799
  } else {
@@ -2789,7 +2801,7 @@ const StudioLayout = () => {
2789
2801
  }
2790
2802
  let t31;
2791
2803
  if ($[63] !== t) {
2792
- t31 = t("Payments");
2804
+ t31 = t("Organizations");
2793
2805
  $[63] = t;
2794
2806
  $[64] = t31;
2795
2807
  } else {
@@ -2797,7 +2809,7 @@ const StudioLayout = () => {
2797
2809
  }
2798
2810
  let t32;
2799
2811
  if ($[65] !== t) {
2800
- t32 = t("Permissions");
2812
+ t32 = t("Time Travel");
2801
2813
  $[65] = t;
2802
2814
  $[66] = t32;
2803
2815
  } else {
@@ -2805,7 +2817,7 @@ const StudioLayout = () => {
2805
2817
  }
2806
2818
  let t33;
2807
2819
  if ($[67] !== t) {
2808
- t33 = t("Queues");
2820
+ t33 = t("Mail");
2809
2821
  $[67] = t;
2810
2822
  $[68] = t33;
2811
2823
  } else {
@@ -2813,7 +2825,7 @@ const StudioLayout = () => {
2813
2825
  }
2814
2826
  let t34;
2815
2827
  if ($[69] !== t) {
2816
- t34 = t("Realtime");
2828
+ t34 = t("Payments");
2817
2829
  $[69] = t;
2818
2830
  $[70] = t34;
2819
2831
  } else {
@@ -2821,7 +2833,7 @@ const StudioLayout = () => {
2821
2833
  }
2822
2834
  let t35;
2823
2835
  if ($[71] !== t) {
2824
- t35 = t("RLS Policies");
2836
+ t35 = t("Permissions");
2825
2837
  $[71] = t;
2826
2838
  $[72] = t35;
2827
2839
  } else {
@@ -2829,7 +2841,7 @@ const StudioLayout = () => {
2829
2841
  }
2830
2842
  let t36;
2831
2843
  if ($[73] !== t) {
2832
- t36 = t("Scheduled");
2844
+ t36 = t("Queues");
2833
2845
  $[73] = t;
2834
2846
  $[74] = t36;
2835
2847
  } else {
@@ -2837,7 +2849,7 @@ const StudioLayout = () => {
2837
2849
  }
2838
2850
  let t37;
2839
2851
  if ($[75] !== t) {
2840
- t37 = t("Schema");
2852
+ t37 = t("Realtime");
2841
2853
  $[75] = t;
2842
2854
  $[76] = t37;
2843
2855
  } else {
@@ -2845,7 +2857,7 @@ const StudioLayout = () => {
2845
2857
  }
2846
2858
  let t38;
2847
2859
  if ($[77] !== t) {
2848
- t38 = t("Security");
2860
+ t38 = t("RLS Policies");
2849
2861
  $[77] = t;
2850
2862
  $[78] = t38;
2851
2863
  } else {
@@ -2853,7 +2865,7 @@ const StudioLayout = () => {
2853
2865
  }
2854
2866
  let t39;
2855
2867
  if ($[79] !== t) {
2856
- t39 = t("Settings");
2868
+ t39 = t("Scheduled");
2857
2869
  $[79] = t;
2858
2870
  $[80] = t39;
2859
2871
  } else {
@@ -2861,7 +2873,7 @@ const StudioLayout = () => {
2861
2873
  }
2862
2874
  let t40;
2863
2875
  if ($[81] !== t) {
2864
- t40 = t("SQL editor");
2876
+ t40 = t("Schema");
2865
2877
  $[81] = t;
2866
2878
  $[82] = t40;
2867
2879
  } else {
@@ -2869,7 +2881,7 @@ const StudioLayout = () => {
2869
2881
  }
2870
2882
  let t41;
2871
2883
  if ($[83] !== t) {
2872
- t41 = t("Traces");
2884
+ t41 = t("Security");
2873
2885
  $[83] = t;
2874
2886
  $[84] = t41;
2875
2887
  } else {
@@ -2877,7 +2889,7 @@ const StudioLayout = () => {
2877
2889
  }
2878
2890
  let t42;
2879
2891
  if ($[85] !== t) {
2880
- t42 = t("Access Rules");
2892
+ t42 = t("Settings");
2881
2893
  $[85] = t;
2882
2894
  $[86] = t42;
2883
2895
  } else {
@@ -2885,7 +2897,7 @@ const StudioLayout = () => {
2885
2897
  }
2886
2898
  let t43;
2887
2899
  if ($[87] !== t) {
2888
- t43 = t("Users");
2900
+ t43 = t("SQL editor");
2889
2901
  $[87] = t;
2890
2902
  $[88] = t43;
2891
2903
  } else {
@@ -2893,7 +2905,7 @@ const StudioLayout = () => {
2893
2905
  }
2894
2906
  let t44;
2895
2907
  if ($[89] !== t) {
2896
- t44 = t("Vectors");
2908
+ t44 = t("Traces");
2897
2909
  $[89] = t;
2898
2910
  $[90] = t44;
2899
2911
  } else {
@@ -2901,103 +2913,133 @@ const StudioLayout = () => {
2901
2913
  }
2902
2914
  let t45;
2903
2915
  if ($[91] !== t) {
2904
- t45 = t("Workflows");
2916
+ t45 = t("Access Rules");
2905
2917
  $[91] = t;
2906
2918
  $[92] = t45;
2907
2919
  } else {
2908
2920
  t45 = $[92];
2909
2921
  }
2910
2922
  let t46;
2911
- if ($[93] !== t10 || $[94] !== t11 || $[95] !== t12 || $[96] !== t13 || $[97] !== t14 || $[98] !== t15 || $[99] !== t16 || $[100] !== t17 || $[101] !== t18 || $[102] !== t19 || $[103] !== t20 || $[104] !== t21 || $[105] !== t22 || $[106] !== t23 || $[107] !== t24 || $[108] !== t25 || $[109] !== t26 || $[110] !== t27 || $[111] !== t28 || $[112] !== t29 || $[113] !== t30 || $[114] !== t31 || $[115] !== t32 || $[116] !== t33 || $[117] !== t34 || $[118] !== t35 || $[119] !== t36 || $[120] !== t37 || $[121] !== t38 || $[122] !== t39 || $[123] !== t40 || $[124] !== t41 || $[125] !== t42 || $[126] !== t43 || $[127] !== t44 || $[128] !== t45 || $[129] !== t5 || $[130] !== t6 || $[131] !== t7 || $[132] !== t8 || $[133] !== t9) {
2912
- t46 = {
2923
+ if ($[93] !== t) {
2924
+ t46 = t("Users");
2925
+ $[93] = t;
2926
+ $[94] = t46;
2927
+ } else {
2928
+ t46 = $[94];
2929
+ }
2930
+ let t47;
2931
+ if ($[95] !== t) {
2932
+ t47 = t("Vectors");
2933
+ $[95] = t;
2934
+ $[96] = t47;
2935
+ } else {
2936
+ t47 = $[96];
2937
+ }
2938
+ let t48;
2939
+ if ($[97] !== t) {
2940
+ t48 = t("Workflows");
2941
+ $[97] = t;
2942
+ $[98] = t48;
2943
+ } else {
2944
+ t48 = $[98];
2945
+ }
2946
+ let t49;
2947
+ if ($[99] !== t10 || $[100] !== t11 || $[101] !== t12 || $[102] !== t13 || $[103] !== t14 || $[104] !== t15 || $[105] !== t16 || $[106] !== t17 || $[107] !== t18 || $[108] !== t19 || $[109] !== t20 || $[110] !== t21 || $[111] !== t22 || $[112] !== t23 || $[113] !== t24 || $[114] !== t25 || $[115] !== t26 || $[116] !== t27 || $[117] !== t28 || $[118] !== t29 || $[119] !== t30 || $[120] !== t31 || $[121] !== t32 || $[122] !== t33 || $[123] !== t34 || $[124] !== t35 || $[125] !== t36 || $[126] !== t37 || $[127] !== t38 || $[128] !== t39 || $[129] !== t40 || $[130] !== t41 || $[131] !== t42 || $[132] !== t43 || $[133] !== t44 || $[134] !== t45 || $[135] !== t46 || $[136] !== t47 || $[137] !== t48 || $[138] !== t5 || $[139] !== t6 || $[140] !== t7 || $[141] !== t8 || $[142] !== t9) {
2948
+ t49 = {
2913
2949
  agents: t5,
2914
2950
  analytics: t6,
2915
2951
  api: t7,
2916
2952
  audit: t8,
2917
- authConfig: t9,
2918
- authSessions: t10,
2919
- containers: t11,
2920
- dashboards: t12,
2921
- data: t13,
2922
- drains: t14,
2923
- export: t15,
2924
- fanout: t16,
2925
- files: t17,
2926
- flags: t18,
2927
- functions: t19,
2928
- health: t20,
2929
- home: t21,
2930
- insights: t22,
2931
- issues: t23,
2932
- kv: t24,
2933
- logs: t25,
2934
- metrics: t26,
2935
- migrations: t27,
2936
- organizations: t28,
2937
- pitr: t29,
2938
- mail: t30,
2939
- payments: t31,
2940
- permissions: t32,
2941
- queues: t33,
2942
- realtime: t34,
2943
- rls: t35,
2944
- schedule: t36,
2945
- schema: t37,
2946
- security: t38,
2947
- settings: t39,
2948
- sql: t40,
2949
- traces: t41,
2950
- storageRules: t42,
2951
- users: t43,
2952
- vectors: t44,
2953
- workflows: t45
2953
+ authAudit: t9,
2954
+ authConfig: t10,
2955
+ authSessions: t11,
2956
+ containers: t12,
2957
+ dashboards: t13,
2958
+ data: t14,
2959
+ deploymentHealth: t15,
2960
+ drains: t16,
2961
+ export: t17,
2962
+ fanout: t18,
2963
+ files: t19,
2964
+ flags: t20,
2965
+ functions: t21,
2966
+ health: t22,
2967
+ home: t23,
2968
+ insights: t24,
2969
+ issues: t25,
2970
+ kv: t26,
2971
+ logs: t27,
2972
+ metrics: t28,
2973
+ migrations: t29,
2974
+ notifications: t30,
2975
+ organizations: t31,
2976
+ pitr: t32,
2977
+ mail: t33,
2978
+ payments: t34,
2979
+ permissions: t35,
2980
+ queues: t36,
2981
+ realtime: t37,
2982
+ rls: t38,
2983
+ schedule: t39,
2984
+ schema: t40,
2985
+ security: t41,
2986
+ settings: t42,
2987
+ sql: t43,
2988
+ traces: t44,
2989
+ storageRules: t45,
2990
+ users: t46,
2991
+ vectors: t47,
2992
+ workflows: t48
2954
2993
  };
2955
- $[93] = t10;
2956
- $[94] = t11;
2957
- $[95] = t12;
2958
- $[96] = t13;
2959
- $[97] = t14;
2960
- $[98] = t15;
2961
- $[99] = t16;
2962
- $[100] = t17;
2963
- $[101] = t18;
2964
- $[102] = t19;
2965
- $[103] = t20;
2966
- $[104] = t21;
2967
- $[105] = t22;
2968
- $[106] = t23;
2969
- $[107] = t24;
2970
- $[108] = t25;
2971
- $[109] = t26;
2972
- $[110] = t27;
2973
- $[111] = t28;
2974
- $[112] = t29;
2975
- $[113] = t30;
2976
- $[114] = t31;
2977
- $[115] = t32;
2978
- $[116] = t33;
2979
- $[117] = t34;
2980
- $[118] = t35;
2981
- $[119] = t36;
2982
- $[120] = t37;
2983
- $[121] = t38;
2984
- $[122] = t39;
2985
- $[123] = t40;
2986
- $[124] = t41;
2987
- $[125] = t42;
2988
- $[126] = t43;
2989
- $[127] = t44;
2990
- $[128] = t45;
2991
- $[129] = t5;
2992
- $[130] = t6;
2993
- $[131] = t7;
2994
- $[132] = t8;
2995
- $[133] = t9;
2996
- $[134] = t46;
2997
- } else {
2998
- t46 = $[134];
2999
- }
3000
- const tabLabel = t46;
2994
+ $[99] = t10;
2995
+ $[100] = t11;
2996
+ $[101] = t12;
2997
+ $[102] = t13;
2998
+ $[103] = t14;
2999
+ $[104] = t15;
3000
+ $[105] = t16;
3001
+ $[106] = t17;
3002
+ $[107] = t18;
3003
+ $[108] = t19;
3004
+ $[109] = t20;
3005
+ $[110] = t21;
3006
+ $[111] = t22;
3007
+ $[112] = t23;
3008
+ $[113] = t24;
3009
+ $[114] = t25;
3010
+ $[115] = t26;
3011
+ $[116] = t27;
3012
+ $[117] = t28;
3013
+ $[118] = t29;
3014
+ $[119] = t30;
3015
+ $[120] = t31;
3016
+ $[121] = t32;
3017
+ $[122] = t33;
3018
+ $[123] = t34;
3019
+ $[124] = t35;
3020
+ $[125] = t36;
3021
+ $[126] = t37;
3022
+ $[127] = t38;
3023
+ $[128] = t39;
3024
+ $[129] = t40;
3025
+ $[130] = t41;
3026
+ $[131] = t42;
3027
+ $[132] = t43;
3028
+ $[133] = t44;
3029
+ $[134] = t45;
3030
+ $[135] = t46;
3031
+ $[136] = t47;
3032
+ $[137] = t48;
3033
+ $[138] = t5;
3034
+ $[139] = t6;
3035
+ $[140] = t7;
3036
+ $[141] = t8;
3037
+ $[142] = t9;
3038
+ $[143] = t49;
3039
+ } else {
3040
+ t49 = $[143];
3041
+ }
3042
+ const tabLabel = t49;
3001
3043
  const groupLabel = {
3002
3044
  advisors: t("Advisors"),
3003
3045
  auth: t("Auth"),
@@ -3009,456 +3051,486 @@ const StudioLayout = () => {
3009
3051
  settings: t("Settings"),
3010
3052
  storage: t("Storage")
3011
3053
  };
3012
- let t47;
3013
- if ($[135] !== t) {
3014
- t47 = t("Inspect agent threads, message timelines, tool calls, and token usage.");
3015
- $[135] = t;
3016
- $[136] = t47;
3017
- } else {
3018
- t47 = $[136];
3019
- }
3020
- let t48;
3021
- if ($[137] !== t) {
3022
- t48 = t("Usage and latency from Analytics Engine — request volume, p50/p95, and hot shards.");
3023
- $[137] = t;
3024
- $[138] = t48;
3025
- } else {
3026
- t48 = $[138];
3027
- }
3028
- let t49;
3029
- if ($[139] !== t) {
3030
- t49 = t("Interactive OpenAPI reference and copy-paste snippets for your functions.");
3031
- $[139] = t;
3032
- $[140] = t49;
3033
- } else {
3034
- t49 = $[140];
3035
- }
3036
3054
  let t50;
3037
- if ($[141] !== t) {
3038
- t50 = t("A durable log of admin state-changing operations.");
3039
- $[141] = t;
3040
- $[142] = t50;
3055
+ if ($[144] !== t) {
3056
+ t50 = t("Inspect agent threads, message timelines, tool calls, and token usage.");
3057
+ $[144] = t;
3058
+ $[145] = t50;
3041
3059
  } else {
3042
- t50 = $[142];
3060
+ t50 = $[145];
3043
3061
  }
3044
3062
  let t51;
3045
- if ($[143] !== t) {
3046
- t51 = t("Enabled plugins and session config (read-only).");
3047
- $[143] = t;
3048
- $[144] = t51;
3063
+ if ($[146] !== t) {
3064
+ t51 = t("Usage and latency from Analytics Engine — request volume, p50/p95, and hot shards.");
3065
+ $[146] = t;
3066
+ $[147] = t51;
3049
3067
  } else {
3050
- t51 = $[144];
3068
+ t51 = $[147];
3051
3069
  }
3052
3070
  let t52;
3053
- if ($[145] !== t) {
3054
- t52 = t("Browse and revoke active sessions across all users.");
3055
- $[145] = t;
3056
- $[146] = t52;
3071
+ if ($[148] !== t) {
3072
+ t52 = t("Interactive OpenAPI reference and copy-paste snippets for your functions.");
3073
+ $[148] = t;
3074
+ $[149] = t52;
3057
3075
  } else {
3058
- t52 = $[146];
3076
+ t52 = $[149];
3059
3077
  }
3060
3078
  let t53;
3061
- if ($[147] !== t) {
3062
- t53 = t("Live Cloudflare Containers current lifecycle state per instance from the log stream.");
3063
- $[147] = t;
3064
- $[148] = t53;
3079
+ if ($[150] !== t) {
3080
+ t53 = t("A durable log of admin state-changing operations.");
3081
+ $[150] = t;
3082
+ $[151] = t53;
3065
3083
  } else {
3066
- t53 = $[148];
3084
+ t53 = $[151];
3067
3085
  }
3068
3086
  let t54;
3069
- if ($[149] !== t) {
3070
- t54 = t("Chart widgets backed by saved read-only SQL queries.");
3071
- $[149] = t;
3072
- $[150] = t54;
3087
+ if ($[152] !== t) {
3088
+ t54 = t("Authentication and security events sign-ins, MFA, and session changes.");
3089
+ $[152] = t;
3090
+ $[153] = t54;
3073
3091
  } else {
3074
- t54 = $[150];
3092
+ t54 = $[153];
3075
3093
  }
3076
3094
  let t55;
3077
- if ($[151] !== t) {
3078
- t55 = t("Browse and edit rows across your shard and global tables.");
3079
- $[151] = t;
3080
- $[152] = t55;
3095
+ if ($[154] !== t) {
3096
+ t55 = t("Enabled plugins and session config (read-only).");
3097
+ $[154] = t;
3098
+ $[155] = t55;
3081
3099
  } else {
3082
- t55 = $[152];
3100
+ t55 = $[155];
3083
3101
  }
3084
3102
  let t56;
3085
- if ($[153] !== t) {
3086
- t56 = t("Forward logs to Logpush, Tail Workers, or a webhook collector.");
3087
- $[153] = t;
3088
- $[154] = t56;
3103
+ if ($[156] !== t) {
3104
+ t56 = t("Browse and revoke active sessions across all users.");
3105
+ $[156] = t;
3106
+ $[157] = t56;
3089
3107
  } else {
3090
- t56 = $[154];
3108
+ t56 = $[157];
3091
3109
  }
3092
3110
  let t57;
3093
- if ($[155] !== t) {
3094
- t57 = t("Export a shard to NDJSON, or import rows from it.");
3095
- $[155] = t;
3096
- $[156] = t57;
3111
+ if ($[158] !== t) {
3112
+ t57 = t("Live Cloudflare Containers current lifecycle state per instance from the log stream.");
3113
+ $[158] = t;
3114
+ $[159] = t57;
3097
3115
  } else {
3098
- t57 = $[156];
3116
+ t57 = $[159];
3099
3117
  }
3100
3118
  let t58;
3101
- if ($[157] !== t) {
3102
- t58 = t("Realtime fan-out cost and per-topic subscriber counts for this shard.");
3103
- $[157] = t;
3104
- $[158] = t58;
3119
+ if ($[160] !== t) {
3120
+ t58 = t("Chart widgets backed by saved read-only SQL queries.");
3121
+ $[160] = t;
3122
+ $[161] = t58;
3105
3123
  } else {
3106
- t58 = $[158];
3124
+ t58 = $[161];
3107
3125
  }
3108
3126
  let t59;
3109
- if ($[159] !== t) {
3110
- t59 = t("Browse objects in your R2 storage buckets.");
3111
- $[159] = t;
3112
- $[160] = t59;
3127
+ if ($[162] !== t) {
3128
+ t59 = t("Browse and edit rows across your shard and global tables.");
3129
+ $[162] = t;
3130
+ $[163] = t59;
3113
3131
  } else {
3114
- t59 = $[160];
3132
+ t59 = $[163];
3115
3133
  }
3116
3134
  let t60;
3117
- if ($[161] !== t) {
3118
- t60 = t("Inspect feature flags and their live evaluation under a targeting context.");
3119
- $[161] = t;
3120
- $[162] = t60;
3135
+ if ($[164] !== t) {
3136
+ t60 = t("Live liveness, readiness, and per-binding health from the deployment's /_lunora/health endpoint.");
3137
+ $[164] = t;
3138
+ $[165] = t60;
3121
3139
  } else {
3122
- t60 = $[162];
3140
+ t60 = $[165];
3123
3141
  }
3124
3142
  let t61;
3125
- if ($[163] !== t) {
3126
- t61 = t("Run registered queries, mutations, and actions.");
3127
- $[163] = t;
3128
- $[164] = t61;
3143
+ if ($[166] !== t) {
3144
+ t61 = t("Forward logs to Logpush, Tail Workers, or a webhook collector.");
3145
+ $[166] = t;
3146
+ $[167] = t61;
3129
3147
  } else {
3130
- t61 = $[164];
3148
+ t61 = $[167];
3131
3149
  }
3132
3150
  let t62;
3133
- if ($[165] !== t) {
3134
- t62 = t("At-a-glance connection, error, and shard signals.");
3135
- $[165] = t;
3136
- $[166] = t62;
3151
+ if ($[168] !== t) {
3152
+ t62 = t("Export a shard to NDJSON, or import rows from it.");
3153
+ $[168] = t;
3154
+ $[169] = t62;
3137
3155
  } else {
3138
- t62 = $[166];
3156
+ t62 = $[169];
3139
3157
  }
3140
3158
  let t63;
3141
- if ($[167] !== t) {
3142
- t63 = t("Connection, health, and advisor summary for your deployment.");
3143
- $[167] = t;
3144
- $[168] = t63;
3159
+ if ($[170] !== t) {
3160
+ t63 = t("Realtime fan-out cost and per-topic subscriber counts for this shard.");
3161
+ $[170] = t;
3162
+ $[171] = t63;
3145
3163
  } else {
3146
- t63 = $[168];
3164
+ t63 = $[171];
3147
3165
  }
3148
3166
  let t64;
3149
- if ($[169] !== t) {
3150
- t64 = t("Surface slow functions, error spikes, and cache problems.");
3151
- $[169] = t;
3152
- $[170] = t64;
3167
+ if ($[172] !== t) {
3168
+ t64 = t("Browse objects in your R2 storage buckets.");
3169
+ $[172] = t;
3170
+ $[173] = t64;
3153
3171
  } else {
3154
- t64 = $[170];
3172
+ t64 = $[173];
3155
3173
  }
3156
3174
  let t65;
3157
- if ($[171] !== t) {
3158
- t65 = t("Grouped error triage Worker throws and container crashes folded by fingerprint.");
3159
- $[171] = t;
3160
- $[172] = t65;
3175
+ if ($[174] !== t) {
3176
+ t65 = t("Inspect feature flags and their live evaluation under a targeting context.");
3177
+ $[174] = t;
3178
+ $[175] = t65;
3161
3179
  } else {
3162
- t65 = $[172];
3180
+ t65 = $[175];
3163
3181
  }
3164
3182
  let t66;
3165
- if ($[173] !== t) {
3166
- t66 = t("A live stream of recent function logs.");
3167
- $[173] = t;
3168
- $[174] = t66;
3183
+ if ($[176] !== t) {
3184
+ t66 = t("Run registered queries, mutations, and actions.");
3185
+ $[176] = t;
3186
+ $[177] = t66;
3169
3187
  } else {
3170
- t66 = $[174];
3188
+ t66 = $[177];
3171
3189
  }
3172
3190
  let t67;
3173
- if ($[175] !== t) {
3174
- t67 = t("Per-shard health and aggregate metrics.");
3175
- $[175] = t;
3176
- $[176] = t67;
3191
+ if ($[178] !== t) {
3192
+ t67 = t("At-a-glance connection, error, and shard signals.");
3193
+ $[178] = t;
3194
+ $[179] = t67;
3177
3195
  } else {
3178
- t67 = $[176];
3196
+ t67 = $[179];
3179
3197
  }
3180
3198
  let t68;
3181
- if ($[177] !== t) {
3182
- t68 = t("Review migration status and run them.");
3183
- $[177] = t;
3184
- $[178] = t68;
3199
+ if ($[180] !== t) {
3200
+ t68 = t("Connection, health, and advisor summary for your deployment.");
3201
+ $[180] = t;
3202
+ $[181] = t68;
3185
3203
  } else {
3186
- t68 = $[178];
3204
+ t68 = $[181];
3187
3205
  }
3188
3206
  let t69;
3189
- if ($[179] !== t) {
3190
- t69 = t("Browse and manage organizations, members, and invitations.");
3191
- $[179] = t;
3192
- $[180] = t69;
3207
+ if ($[182] !== t) {
3208
+ t69 = t("Surface slow functions, error spikes, and cache problems.");
3209
+ $[182] = t;
3210
+ $[183] = t69;
3193
3211
  } else {
3194
- t69 = $[180];
3212
+ t69 = $[183];
3195
3213
  }
3196
3214
  let t70;
3197
- if ($[181] !== t) {
3198
- t70 = t("Restore a shard to a point in the last 30 days.");
3199
- $[181] = t;
3200
- $[182] = t70;
3215
+ if ($[184] !== t) {
3216
+ t70 = t("Grouped error triage Worker throws and container crashes folded by fingerprint.");
3217
+ $[184] = t;
3218
+ $[185] = t70;
3201
3219
  } else {
3202
- t70 = $[182];
3220
+ t70 = $[185];
3203
3221
  }
3204
3222
  let t71;
3205
- if ($[183] !== t) {
3206
- t71 = t("Email your app sent, captured in dev.");
3207
- $[183] = t;
3208
- $[184] = t71;
3223
+ if ($[186] !== t) {
3224
+ t71 = t("A live stream of recent function logs.");
3225
+ $[186] = t;
3226
+ $[187] = t71;
3209
3227
  } else {
3210
- t71 = $[184];
3228
+ t71 = $[187];
3211
3229
  }
3212
3230
  let t72;
3213
- if ($[185] !== t) {
3214
- t72 = t("Synced customers, subscriptions, and webhook events.");
3215
- $[185] = t;
3216
- $[186] = t72;
3231
+ if ($[188] !== t) {
3232
+ t72 = t("Per-shard health and aggregate metrics.");
3233
+ $[188] = t;
3234
+ $[189] = t72;
3217
3235
  } else {
3218
- t72 = $[186];
3236
+ t72 = $[189];
3219
3237
  }
3220
3238
  let t73;
3221
- if ($[187] !== t) {
3222
- t73 = t("Inspect access policies per table, and probe a function as any identity.");
3223
- $[187] = t;
3224
- $[188] = t73;
3239
+ if ($[190] !== t) {
3240
+ t73 = t("Review migration status and run them.");
3241
+ $[190] = t;
3242
+ $[191] = t73;
3225
3243
  } else {
3226
- t73 = $[188];
3244
+ t73 = $[191];
3227
3245
  }
3228
3246
  let t74;
3229
- if ($[189] !== t) {
3230
- t74 = t("Inspect declared Cloudflare Queues their producer bindings, consumer mode, and dead-letter queue.");
3231
- $[189] = t;
3232
- $[190] = t74;
3247
+ if ($[192] !== t) {
3248
+ t74 = t("Registered push devicesendpoint, kind, last-send status, and delivery errors.");
3249
+ $[192] = t;
3250
+ $[193] = t74;
3233
3251
  } else {
3234
- t74 = $[190];
3252
+ t74 = $[193];
3235
3253
  }
3236
3254
  let t75;
3237
- if ($[191] !== t) {
3238
- t75 = t("Active WebSocket subscriptions on this shard.");
3239
- $[191] = t;
3240
- $[192] = t75;
3255
+ if ($[194] !== t) {
3256
+ t75 = t("Browse and manage organizations, members, and invitations.");
3257
+ $[194] = t;
3258
+ $[195] = t75;
3241
3259
  } else {
3242
- t75 = $[192];
3260
+ t75 = $[195];
3243
3261
  }
3244
3262
  let t76;
3245
- if ($[193] !== t) {
3246
- t76 = t("Inspect row-level-security policies and roles, per table.");
3247
- $[193] = t;
3248
- $[194] = t76;
3263
+ if ($[196] !== t) {
3264
+ t76 = t("Restore a shard to a point in the last 30 days.");
3265
+ $[196] = t;
3266
+ $[197] = t76;
3249
3267
  } else {
3250
- t76 = $[194];
3268
+ t76 = $[197];
3251
3269
  }
3252
3270
  let t77;
3253
- if ($[195] !== t) {
3254
- t77 = t("Inspect and cancel scheduled jobs.");
3255
- $[195] = t;
3256
- $[196] = t77;
3271
+ if ($[198] !== t) {
3272
+ t77 = t("Email your app sent, captured in dev.");
3273
+ $[198] = t;
3274
+ $[199] = t77;
3257
3275
  } else {
3258
- t77 = $[196];
3276
+ t77 = $[199];
3259
3277
  }
3260
3278
  let t78;
3261
- if ($[197] !== t) {
3262
- t78 = t("Inspect each table and its columns.");
3263
- $[197] = t;
3264
- $[198] = t78;
3279
+ if ($[200] !== t) {
3280
+ t78 = t("Synced customers, subscriptions, and webhook events.");
3281
+ $[200] = t;
3282
+ $[201] = t78;
3265
3283
  } else {
3266
- t78 = $[198];
3284
+ t78 = $[201];
3267
3285
  }
3268
3286
  let t79;
3269
- if ($[199] !== t) {
3270
- t79 = t("Review admin gates, credentials, and log redaction.");
3271
- $[199] = t;
3272
- $[200] = t79;
3287
+ if ($[202] !== t) {
3288
+ t79 = t("Inspect access policies per table, and probe a function as any identity.");
3289
+ $[202] = t;
3290
+ $[203] = t79;
3273
3291
  } else {
3274
- t79 = $[200];
3292
+ t79 = $[203];
3275
3293
  }
3276
3294
  let t80;
3277
- if ($[201] !== t) {
3278
- t80 = t("Read-only deployment configvars, secrets, and bindings.");
3279
- $[201] = t;
3280
- $[202] = t80;
3295
+ if ($[204] !== t) {
3296
+ t80 = t("Inspect declared Cloudflare Queues their producer bindings, consumer mode, and dead-letter queue.");
3297
+ $[204] = t;
3298
+ $[205] = t80;
3281
3299
  } else {
3282
- t80 = $[202];
3300
+ t80 = $[205];
3283
3301
  }
3284
3302
  let t81;
3285
- if ($[203] !== t) {
3286
- t81 = t("Run read-only SQL against a shard.");
3287
- $[203] = t;
3288
- $[204] = t81;
3303
+ if ($[206] !== t) {
3304
+ t81 = t("Active WebSocket subscriptions on this shard.");
3305
+ $[206] = t;
3306
+ $[207] = t81;
3289
3307
  } else {
3290
- t81 = $[204];
3308
+ t81 = $[207];
3291
3309
  }
3292
3310
  let t82;
3293
- if ($[205] !== t) {
3294
- t82 = t("Browse and edit key-value pairs in your Workers KV namespaces.");
3295
- $[205] = t;
3296
- $[206] = t82;
3311
+ if ($[208] !== t) {
3312
+ t82 = t("Inspect row-level-security policies and roles, per table.");
3313
+ $[208] = t;
3314
+ $[209] = t82;
3297
3315
  } else {
3298
- t82 = $[206];
3316
+ t82 = $[209];
3299
3317
  }
3300
3318
  let t83;
3301
- if ($[207] !== t) {
3302
- t83 = t("Inspect storage access rules — per bucket, operation, and key prefix.");
3303
- $[207] = t;
3304
- $[208] = t83;
3319
+ if ($[210] !== t) {
3320
+ t83 = t("Inspect and cancel scheduled jobs.");
3321
+ $[210] = t;
3322
+ $[211] = t83;
3305
3323
  } else {
3306
- t83 = $[208];
3324
+ t83 = $[211];
3307
3325
  }
3308
3326
  let t84;
3309
- if ($[209] !== t) {
3310
- t84 = t("Recent ctx.trace waterfalls for this shard — the drill-down from a log line.");
3311
- $[209] = t;
3312
- $[210] = t84;
3327
+ if ($[212] !== t) {
3328
+ t84 = t("Inspect each table and its columns.");
3329
+ $[212] = t;
3330
+ $[213] = t84;
3313
3331
  } else {
3314
- t84 = $[210];
3332
+ t84 = $[213];
3315
3333
  }
3316
3334
  let t85;
3317
- if ($[211] !== t) {
3318
- t85 = t("Manage auth users — roles, bans, sessions, and identity.");
3319
- $[211] = t;
3320
- $[212] = t85;
3335
+ if ($[214] !== t) {
3336
+ t85 = t("Review admin gates, credentials, and log redaction.");
3337
+ $[214] = t;
3338
+ $[215] = t85;
3321
3339
  } else {
3322
- t85 = $[212];
3340
+ t85 = $[215];
3323
3341
  }
3324
3342
  let t86;
3325
- if ($[213] !== t) {
3326
- t86 = t("Browse Vectorize indexes and run similarity searches.");
3327
- $[213] = t;
3328
- $[214] = t86;
3343
+ if ($[216] !== t) {
3344
+ t86 = t("Read-only deployment config vars, secrets, and bindings.");
3345
+ $[216] = t;
3346
+ $[217] = t86;
3329
3347
  } else {
3330
- t86 = $[214];
3348
+ t86 = $[217];
3331
3349
  }
3332
3350
  let t87;
3333
- if ($[215] !== t) {
3334
- t87 = t("Inspect declared Cloudflare Workflows and their bindings.");
3335
- $[215] = t;
3336
- $[216] = t87;
3351
+ if ($[218] !== t) {
3352
+ t87 = t("Run read-only SQL against a shard.");
3353
+ $[218] = t;
3354
+ $[219] = t87;
3337
3355
  } else {
3338
- t87 = $[216];
3356
+ t87 = $[219];
3339
3357
  }
3340
3358
  let t88;
3341
- if ($[217] !== t47 || $[218] !== t48 || $[219] !== t49 || $[220] !== t50 || $[221] !== t51 || $[222] !== t52 || $[223] !== t53 || $[224] !== t54 || $[225] !== t55 || $[226] !== t56 || $[227] !== t57 || $[228] !== t58 || $[229] !== t59 || $[230] !== t60 || $[231] !== t61 || $[232] !== t62 || $[233] !== t63 || $[234] !== t64 || $[235] !== t65 || $[236] !== t66 || $[237] !== t67 || $[238] !== t68 || $[239] !== t69 || $[240] !== t70 || $[241] !== t71 || $[242] !== t72 || $[243] !== t73 || $[244] !== t74 || $[245] !== t75 || $[246] !== t76 || $[247] !== t77 || $[248] !== t78 || $[249] !== t79 || $[250] !== t80 || $[251] !== t81 || $[252] !== t82 || $[253] !== t83 || $[254] !== t84 || $[255] !== t85 || $[256] !== t86 || $[257] !== t87) {
3342
- t88 = {
3343
- agents: t47,
3344
- analytics: t48,
3345
- api: t49,
3346
- audit: t50,
3347
- authConfig: t51,
3348
- authSessions: t52,
3349
- containers: t53,
3350
- dashboards: t54,
3351
- data: t55,
3352
- drains: t56,
3353
- export: t57,
3354
- fanout: t58,
3355
- files: t59,
3356
- flags: t60,
3357
- functions: t61,
3358
- health: t62,
3359
- home: t63,
3360
- insights: t64,
3361
- issues: t65,
3362
- logs: t66,
3363
- metrics: t67,
3364
- migrations: t68,
3365
- organizations: t69,
3366
- pitr: t70,
3367
- mail: t71,
3368
- payments: t72,
3369
- permissions: t73,
3370
- queues: t74,
3371
- realtime: t75,
3372
- rls: t76,
3373
- schedule: t77,
3374
- schema: t78,
3375
- security: t79,
3376
- settings: t80,
3377
- sql: t81,
3378
- kv: t82,
3379
- storageRules: t83,
3380
- traces: t84,
3381
- users: t85,
3382
- vectors: t86,
3383
- workflows: t87
3384
- };
3385
- $[217] = t47;
3386
- $[218] = t48;
3387
- $[219] = t49;
3388
- $[220] = t50;
3389
- $[221] = t51;
3390
- $[222] = t52;
3391
- $[223] = t53;
3392
- $[224] = t54;
3393
- $[225] = t55;
3394
- $[226] = t56;
3395
- $[227] = t57;
3396
- $[228] = t58;
3397
- $[229] = t59;
3398
- $[230] = t60;
3399
- $[231] = t61;
3400
- $[232] = t62;
3401
- $[233] = t63;
3402
- $[234] = t64;
3403
- $[235] = t65;
3404
- $[236] = t66;
3405
- $[237] = t67;
3406
- $[238] = t68;
3407
- $[239] = t69;
3408
- $[240] = t70;
3409
- $[241] = t71;
3410
- $[242] = t72;
3411
- $[243] = t73;
3412
- $[244] = t74;
3413
- $[245] = t75;
3414
- $[246] = t76;
3415
- $[247] = t77;
3416
- $[248] = t78;
3417
- $[249] = t79;
3418
- $[250] = t80;
3419
- $[251] = t81;
3420
- $[252] = t82;
3421
- $[253] = t83;
3422
- $[254] = t84;
3423
- $[255] = t85;
3424
- $[256] = t86;
3425
- $[257] = t87;
3426
- $[258] = t88;
3427
- } else {
3428
- t88 = $[258];
3429
- }
3430
- const tabDescription = t88;
3359
+ if ($[220] !== t) {
3360
+ t88 = t("Browse and edit key-value pairs in your Workers KV namespaces.");
3361
+ $[220] = t;
3362
+ $[221] = t88;
3363
+ } else {
3364
+ t88 = $[221];
3365
+ }
3431
3366
  let t89;
3432
- if ($[259] !== navigate) {
3433
- t89 = (event) => {
3367
+ if ($[222] !== t) {
3368
+ t89 = t("Inspect storage access rules — per bucket, operation, and key prefix.");
3369
+ $[222] = t;
3370
+ $[223] = t89;
3371
+ } else {
3372
+ t89 = $[223];
3373
+ }
3374
+ let t90;
3375
+ if ($[224] !== t) {
3376
+ t90 = t("Recent ctx.trace waterfalls for this shard — the drill-down from a log line.");
3377
+ $[224] = t;
3378
+ $[225] = t90;
3379
+ } else {
3380
+ t90 = $[225];
3381
+ }
3382
+ let t91;
3383
+ if ($[226] !== t) {
3384
+ t91 = t("Manage auth users — roles, bans, sessions, and identity.");
3385
+ $[226] = t;
3386
+ $[227] = t91;
3387
+ } else {
3388
+ t91 = $[227];
3389
+ }
3390
+ let t92;
3391
+ if ($[228] !== t) {
3392
+ t92 = t("Browse Vectorize indexes and run similarity searches.");
3393
+ $[228] = t;
3394
+ $[229] = t92;
3395
+ } else {
3396
+ t92 = $[229];
3397
+ }
3398
+ let t93;
3399
+ if ($[230] !== t) {
3400
+ t93 = t("Inspect declared Cloudflare Workflows and their bindings.");
3401
+ $[230] = t;
3402
+ $[231] = t93;
3403
+ } else {
3404
+ t93 = $[231];
3405
+ }
3406
+ let t94;
3407
+ if ($[232] !== t50 || $[233] !== t51 || $[234] !== t52 || $[235] !== t53 || $[236] !== t54 || $[237] !== t55 || $[238] !== t56 || $[239] !== t57 || $[240] !== t58 || $[241] !== t59 || $[242] !== t60 || $[243] !== t61 || $[244] !== t62 || $[245] !== t63 || $[246] !== t64 || $[247] !== t65 || $[248] !== t66 || $[249] !== t67 || $[250] !== t68 || $[251] !== t69 || $[252] !== t70 || $[253] !== t71 || $[254] !== t72 || $[255] !== t73 || $[256] !== t74 || $[257] !== t75 || $[258] !== t76 || $[259] !== t77 || $[260] !== t78 || $[261] !== t79 || $[262] !== t80 || $[263] !== t81 || $[264] !== t82 || $[265] !== t83 || $[266] !== t84 || $[267] !== t85 || $[268] !== t86 || $[269] !== t87 || $[270] !== t88 || $[271] !== t89 || $[272] !== t90 || $[273] !== t91 || $[274] !== t92 || $[275] !== t93) {
3408
+ t94 = {
3409
+ agents: t50,
3410
+ analytics: t51,
3411
+ api: t52,
3412
+ audit: t53,
3413
+ authAudit: t54,
3414
+ authConfig: t55,
3415
+ authSessions: t56,
3416
+ containers: t57,
3417
+ dashboards: t58,
3418
+ data: t59,
3419
+ deploymentHealth: t60,
3420
+ drains: t61,
3421
+ export: t62,
3422
+ fanout: t63,
3423
+ files: t64,
3424
+ flags: t65,
3425
+ functions: t66,
3426
+ health: t67,
3427
+ home: t68,
3428
+ insights: t69,
3429
+ issues: t70,
3430
+ logs: t71,
3431
+ metrics: t72,
3432
+ migrations: t73,
3433
+ notifications: t74,
3434
+ organizations: t75,
3435
+ pitr: t76,
3436
+ mail: t77,
3437
+ payments: t78,
3438
+ permissions: t79,
3439
+ queues: t80,
3440
+ realtime: t81,
3441
+ rls: t82,
3442
+ schedule: t83,
3443
+ schema: t84,
3444
+ security: t85,
3445
+ settings: t86,
3446
+ sql: t87,
3447
+ kv: t88,
3448
+ storageRules: t89,
3449
+ traces: t90,
3450
+ users: t91,
3451
+ vectors: t92,
3452
+ workflows: t93
3453
+ };
3454
+ $[232] = t50;
3455
+ $[233] = t51;
3456
+ $[234] = t52;
3457
+ $[235] = t53;
3458
+ $[236] = t54;
3459
+ $[237] = t55;
3460
+ $[238] = t56;
3461
+ $[239] = t57;
3462
+ $[240] = t58;
3463
+ $[241] = t59;
3464
+ $[242] = t60;
3465
+ $[243] = t61;
3466
+ $[244] = t62;
3467
+ $[245] = t63;
3468
+ $[246] = t64;
3469
+ $[247] = t65;
3470
+ $[248] = t66;
3471
+ $[249] = t67;
3472
+ $[250] = t68;
3473
+ $[251] = t69;
3474
+ $[252] = t70;
3475
+ $[253] = t71;
3476
+ $[254] = t72;
3477
+ $[255] = t73;
3478
+ $[256] = t74;
3479
+ $[257] = t75;
3480
+ $[258] = t76;
3481
+ $[259] = t77;
3482
+ $[260] = t78;
3483
+ $[261] = t79;
3484
+ $[262] = t80;
3485
+ $[263] = t81;
3486
+ $[264] = t82;
3487
+ $[265] = t83;
3488
+ $[266] = t84;
3489
+ $[267] = t85;
3490
+ $[268] = t86;
3491
+ $[269] = t87;
3492
+ $[270] = t88;
3493
+ $[271] = t89;
3494
+ $[272] = t90;
3495
+ $[273] = t91;
3496
+ $[274] = t92;
3497
+ $[275] = t93;
3498
+ $[276] = t94;
3499
+ } else {
3500
+ t94 = $[276];
3501
+ }
3502
+ const tabDescription = t94;
3503
+ let t95;
3504
+ if ($[277] !== navigate) {
3505
+ t95 = (event) => {
3434
3506
  fireAndForget(navigate({
3435
3507
  to: `/${event.currentTarget.dataset.tab ?? ""}`
3436
3508
  }));
3437
3509
  };
3438
- $[259] = navigate;
3439
- $[260] = t89;
3510
+ $[277] = navigate;
3511
+ $[278] = t95;
3440
3512
  } else {
3441
- t89 = $[260];
3513
+ t95 = $[278];
3442
3514
  }
3443
- const selectTab = t89;
3444
- let t90;
3445
- let t91;
3446
- if ($[261] !== current || $[262] !== tabLabel) {
3447
- t90 = () => {
3515
+ const selectTab = t95;
3516
+ let t96;
3517
+ let t97;
3518
+ if ($[279] !== current || $[280] !== tabLabel) {
3519
+ t96 = () => {
3448
3520
  if (typeof document !== "undefined") {
3449
3521
  document.title = `${tabLabel[current]} · lunora`;
3450
3522
  }
3451
3523
  };
3452
- t91 = [current, tabLabel];
3453
- $[261] = current;
3454
- $[262] = tabLabel;
3455
- $[263] = t90;
3456
- $[264] = t91;
3524
+ t97 = [current, tabLabel];
3525
+ $[279] = current;
3526
+ $[280] = tabLabel;
3527
+ $[281] = t96;
3528
+ $[282] = t97;
3457
3529
  } else {
3458
- t90 = $[263];
3459
- t91 = $[264];
3530
+ t96 = $[281];
3531
+ t97 = $[282];
3460
3532
  }
3461
- useEffect(t90, t91);
3533
+ useEffect(t96, t97);
3462
3534
  const activeGroup = visibleGroups.find((group_1) => group_1.tabs.includes(current)) ?? NAV_GROUPS[0];
3463
3535
  const commandItems = visibleGroups.flatMap((group_2) => group_2.tabs.map((tab_0) => ({
3464
3536
  group: groupLabel[group_2.key],
@@ -3467,48 +3539,48 @@ const StudioLayout = () => {
3467
3539
  })));
3468
3540
  const chrome = use(StudioChromeContext);
3469
3541
  const connected = chrome !== null && chrome.token !== "";
3470
- let t92;
3471
- if ($[265] !== commandItems) {
3472
- t92 = /* @__PURE__ */ jsxDEV(CommandPalette, {
3542
+ let t98;
3543
+ if ($[283] !== commandItems) {
3544
+ t98 = /* @__PURE__ */ jsxDEV(CommandPalette, {
3473
3545
  items: commandItems
3474
3546
  }, void 0, false);
3475
- $[265] = commandItems;
3476
- $[266] = t92;
3547
+ $[283] = commandItems;
3548
+ $[284] = t98;
3477
3549
  } else {
3478
- t92 = $[266];
3550
+ t98 = $[284];
3479
3551
  }
3480
- let t93;
3481
- if ($[267] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3482
- t93 = /* @__PURE__ */ jsxDEV(SidebarTrigger, {
3552
+ let t99;
3553
+ if ($[285] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3554
+ t99 = /* @__PURE__ */ jsxDEV(SidebarTrigger, {
3483
3555
  className: "-ms-1"
3484
3556
  }, void 0, false);
3485
- $[267] = t93;
3557
+ $[285] = t99;
3486
3558
  } else {
3487
- t93 = $[267];
3559
+ t99 = $[285];
3488
3560
  }
3489
- let t94;
3490
- if ($[268] !== t) {
3491
- t94 = t("Breadcrumb");
3492
- $[268] = t;
3493
- $[269] = t94;
3561
+ let t100;
3562
+ if ($[286] !== t) {
3563
+ t100 = t("Breadcrumb");
3564
+ $[286] = t;
3565
+ $[287] = t100;
3494
3566
  } else {
3495
- t94 = $[269];
3567
+ t100 = $[287];
3496
3568
  }
3497
- const t95 = groupLabel[activeGroup.key];
3498
- let t96;
3499
- if ($[270] !== t95) {
3500
- t96 = /* @__PURE__ */ jsxDEV("span", {
3569
+ const t101 = groupLabel[activeGroup.key];
3570
+ let t102;
3571
+ if ($[288] !== t101) {
3572
+ t102 = /* @__PURE__ */ jsxDEV("span", {
3501
3573
  className: "text-muted-foreground",
3502
- children: t95
3574
+ children: t101
3503
3575
  }, void 0, false);
3504
- $[270] = t95;
3505
- $[271] = t96;
3576
+ $[288] = t101;
3577
+ $[289] = t102;
3506
3578
  } else {
3507
- t96 = $[271];
3579
+ t102 = $[289];
3508
3580
  }
3509
- let t97;
3510
- if ($[272] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3511
- t97 = /* @__PURE__ */ jsxDEV("svg", {
3581
+ let t103;
3582
+ if ($[290] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3583
+ t103 = /* @__PURE__ */ jsxDEV("svg", {
3512
3584
  "aria-hidden": "true",
3513
3585
  className: "size-3.5 text-muted-foreground/60",
3514
3586
  fill: "none",
@@ -3521,39 +3593,39 @@ const StudioLayout = () => {
3521
3593
  strokeLinejoin: "round"
3522
3594
  }, void 0, false)
3523
3595
  }, void 0, false);
3524
- $[272] = t97;
3596
+ $[290] = t103;
3525
3597
  } else {
3526
- t97 = $[272];
3598
+ t103 = $[290];
3527
3599
  }
3528
- const t98 = tabLabel[current];
3529
- let t99;
3530
- if ($[273] !== t98) {
3531
- t99 = /* @__PURE__ */ jsxDEV("span", {
3600
+ const t104 = tabLabel[current];
3601
+ let t105;
3602
+ if ($[291] !== t104) {
3603
+ t105 = /* @__PURE__ */ jsxDEV("span", {
3532
3604
  className: "font-medium text-foreground",
3533
- children: t98
3605
+ children: t104
3534
3606
  }, void 0, false);
3535
- $[273] = t98;
3536
- $[274] = t99;
3607
+ $[291] = t104;
3608
+ $[292] = t105;
3537
3609
  } else {
3538
- t99 = $[274];
3610
+ t105 = $[292];
3539
3611
  }
3540
- let t100;
3541
- if ($[275] !== t94 || $[276] !== t96 || $[277] !== t99) {
3542
- t100 = /* @__PURE__ */ jsxDEV("nav", {
3543
- "aria-label": t94,
3612
+ let t106;
3613
+ if ($[293] !== t100 || $[294] !== t102 || $[295] !== t105) {
3614
+ t106 = /* @__PURE__ */ jsxDEV("nav", {
3615
+ "aria-label": t100,
3544
3616
  className: "flex items-center gap-1.5 text-[13px]",
3545
- children: [t96, t97, t99]
3617
+ children: [t102, t103, t105]
3546
3618
  }, void 0, true);
3547
- $[275] = t94;
3548
- $[276] = t96;
3549
- $[277] = t99;
3550
- $[278] = t100;
3619
+ $[293] = t100;
3620
+ $[294] = t102;
3621
+ $[295] = t105;
3622
+ $[296] = t106;
3551
3623
  } else {
3552
- t100 = $[278];
3624
+ t106 = $[296];
3553
3625
  }
3554
- let t101;
3555
- if ($[279] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3556
- t101 = /* @__PURE__ */ jsxDEV("svg", {
3626
+ let t107;
3627
+ if ($[297] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3628
+ t107 = /* @__PURE__ */ jsxDEV("svg", {
3557
3629
  "aria-hidden": "true",
3558
3630
  className: "size-3.5",
3559
3631
  fill: "none",
@@ -3569,167 +3641,167 @@ const StudioLayout = () => {
3569
3641
  strokeLinecap: "round"
3570
3642
  }, void 0, false)]
3571
3643
  }, void 0, true);
3572
- $[279] = t101;
3644
+ $[297] = t107;
3573
3645
  } else {
3574
- t101 = $[279];
3646
+ t107 = $[297];
3575
3647
  }
3576
- let t102;
3577
- if ($[280] !== t) {
3578
- t102 = t("Search…");
3579
- $[280] = t;
3580
- $[281] = t102;
3648
+ let t108;
3649
+ if ($[298] !== t) {
3650
+ t108 = t("Search…");
3651
+ $[298] = t;
3652
+ $[299] = t108;
3581
3653
  } else {
3582
- t102 = $[281];
3654
+ t108 = $[299];
3583
3655
  }
3584
- let t103;
3585
- if ($[282] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3586
- t103 = /* @__PURE__ */ jsxDEV("kbd", {
3656
+ let t109;
3657
+ if ($[300] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3658
+ t109 = /* @__PURE__ */ jsxDEV("kbd", {
3587
3659
  className: "ms-auto rounded border border-border bg-background px-1 font-sans text-[10px] text-muted-foreground",
3588
3660
  children: "⌘K"
3589
3661
  }, void 0, false);
3590
- $[282] = t103;
3662
+ $[300] = t109;
3591
3663
  } else {
3592
- t103 = $[282];
3664
+ t109 = $[300];
3593
3665
  }
3594
- let t104;
3595
- if ($[283] !== t102) {
3596
- t104 = /* @__PURE__ */ jsxDEV("button", {
3666
+ let t110;
3667
+ if ($[301] !== t108) {
3668
+ t110 = /* @__PURE__ */ jsxDEV("button", {
3597
3669
  className: "mx-auto hidden h-8 w-72 items-center gap-2 rounded-lg border border-border bg-muted/40 px-3 text-xs text-muted-foreground transition-colors hover:bg-muted md:flex",
3598
3670
  "data-testid": "dash-app-search",
3599
3671
  onClick: openCommandPalette,
3600
3672
  type: "button",
3601
- children: [t101, t102, t103]
3673
+ children: [t107, t108, t109]
3602
3674
  }, void 0, true);
3603
- $[283] = t102;
3604
- $[284] = t104;
3675
+ $[301] = t108;
3676
+ $[302] = t110;
3605
3677
  } else {
3606
- t104 = $[284];
3678
+ t110 = $[302];
3607
3679
  }
3608
- let t105;
3609
- if ($[285] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3610
- t105 = /* @__PURE__ */ jsxDEV("div", {
3680
+ let t111;
3681
+ if ($[303] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3682
+ t111 = /* @__PURE__ */ jsxDEV("div", {
3611
3683
  className: "ms-auto flex items-center gap-1.5 md:ms-0",
3612
3684
  children: /* @__PURE__ */ jsxDEV(ThemeToggle, {}, void 0, false)
3613
3685
  }, void 0, false);
3614
- $[285] = t105;
3686
+ $[303] = t111;
3615
3687
  } else {
3616
- t105 = $[285];
3688
+ t111 = $[303];
3617
3689
  }
3618
- let t106;
3619
- if ($[286] !== t100 || $[287] !== t104) {
3620
- t106 = /* @__PURE__ */ jsxDEV("header", {
3690
+ let t112;
3691
+ if ($[304] !== t106 || $[305] !== t110) {
3692
+ t112 = /* @__PURE__ */ jsxDEV("header", {
3621
3693
  className: "flex h-11 shrink-0 items-center gap-2 border-b border-border px-4",
3622
3694
  "data-testid": "dash-app-header",
3623
- children: [t93, t100, t104, t105]
3695
+ children: [t99, t106, t110, t111]
3624
3696
  }, void 0, true);
3625
- $[286] = t100;
3626
- $[287] = t104;
3627
- $[288] = t106;
3697
+ $[304] = t106;
3698
+ $[305] = t110;
3699
+ $[306] = t112;
3628
3700
  } else {
3629
- t106 = $[288];
3701
+ t112 = $[306];
3630
3702
  }
3631
- let t107;
3632
- if ($[289] !== chrome?.rulesInstalled) {
3633
- t107 = chrome?.rulesInstalled === false && /* @__PURE__ */ jsxDEV(RulesBanner, {}, void 0, false);
3634
- $[289] = chrome?.rulesInstalled;
3635
- $[290] = t107;
3703
+ let t113;
3704
+ if ($[307] !== chrome?.rulesInstalled) {
3705
+ t113 = chrome?.rulesInstalled === false && /* @__PURE__ */ jsxDEV(RulesBanner, {}, void 0, false);
3706
+ $[307] = chrome?.rulesInstalled;
3707
+ $[308] = t113;
3636
3708
  } else {
3637
- t107 = $[290];
3709
+ t113 = $[308];
3638
3710
  }
3639
- const t108 = `dash-tab-${current}`;
3640
- const t109 = fullHeight ? "flex min-w-0 flex-1 flex-col overflow-hidden" : "min-w-0 flex-1 overflow-auto p-6";
3641
- const t110 = tabLabel[current];
3642
- let t111;
3643
- if ($[291] !== t || $[292] !== t110) {
3644
- t111 = t("{title} failed", {
3645
- title: t110
3711
+ const t114 = `dash-tab-${current}`;
3712
+ const t115 = fullHeight ? "flex min-w-0 flex-1 flex-col overflow-hidden" : "min-w-0 flex-1 overflow-auto p-6";
3713
+ const t116 = tabLabel[current];
3714
+ let t117;
3715
+ if ($[309] !== t || $[310] !== t116) {
3716
+ t117 = t("{title} failed", {
3717
+ title: t116
3646
3718
  });
3647
- $[291] = t;
3648
- $[292] = t110;
3649
- $[293] = t111;
3719
+ $[309] = t;
3720
+ $[310] = t116;
3721
+ $[311] = t117;
3650
3722
  } else {
3651
- t111 = $[293];
3723
+ t117 = $[311];
3652
3724
  }
3653
- const t112 = tabLabel[current];
3654
- let t113;
3655
- if ($[294] !== t) {
3656
- t113 = t("Try again");
3657
- $[294] = t;
3658
- $[295] = t113;
3725
+ const t118 = tabLabel[current];
3726
+ let t119;
3727
+ if ($[312] !== t) {
3728
+ t119 = t("Try again");
3729
+ $[312] = t;
3730
+ $[313] = t119;
3659
3731
  } else {
3660
- t113 = $[295];
3732
+ t119 = $[313];
3661
3733
  }
3662
- let t114;
3663
- if ($[296] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3664
- t114 = /* @__PURE__ */ jsxDEV(Suspense, {
3734
+ let t120;
3735
+ if ($[314] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3736
+ t120 = /* @__PURE__ */ jsxDEV(Suspense, {
3665
3737
  fallback: /* @__PURE__ */ jsxDEV(RoutePending, {}, void 0, false),
3666
3738
  children: /* @__PURE__ */ jsxDEV(Outlet, {}, void 0, false)
3667
3739
  }, void 0, false);
3668
- $[296] = t114;
3740
+ $[314] = t120;
3669
3741
  } else {
3670
- t114 = $[296];
3742
+ t120 = $[314];
3671
3743
  }
3672
- let t115;
3673
- if ($[297] !== current || $[298] !== t111 || $[299] !== t112 || $[300] !== t113) {
3674
- t115 = /* @__PURE__ */ jsxDEV(ErrorBoundary, {
3675
- fallbackTitle: t111,
3676
- label: t112,
3677
- retryLabel: t113,
3678
- children: t114
3744
+ let t121;
3745
+ if ($[315] !== current || $[316] !== t117 || $[317] !== t118 || $[318] !== t119) {
3746
+ t121 = /* @__PURE__ */ jsxDEV(ErrorBoundary, {
3747
+ fallbackTitle: t117,
3748
+ label: t118,
3749
+ retryLabel: t119,
3750
+ children: t120
3679
3751
  }, current, false);
3680
- $[297] = current;
3681
- $[298] = t111;
3682
- $[299] = t112;
3683
- $[300] = t113;
3684
- $[301] = t115;
3685
- } else {
3686
- t115 = $[301];
3687
- }
3688
- let t116;
3689
- if ($[302] !== t109 || $[303] !== t115) {
3690
- t116 = /* @__PURE__ */ jsxDEV("div", {
3691
- className: t109,
3692
- children: t115
3752
+ $[315] = current;
3753
+ $[316] = t117;
3754
+ $[317] = t118;
3755
+ $[318] = t119;
3756
+ $[319] = t121;
3757
+ } else {
3758
+ t121 = $[319];
3759
+ }
3760
+ let t122;
3761
+ if ($[320] !== t115 || $[321] !== t121) {
3762
+ t122 = /* @__PURE__ */ jsxDEV("div", {
3763
+ className: t115,
3764
+ children: t121
3693
3765
  }, void 0, false);
3694
- $[302] = t109;
3695
- $[303] = t115;
3696
- $[304] = t116;
3766
+ $[320] = t115;
3767
+ $[321] = t121;
3768
+ $[322] = t122;
3697
3769
  } else {
3698
- t116 = $[304];
3770
+ t122 = $[322];
3699
3771
  }
3700
- let t117;
3701
- if ($[305] !== t108 || $[306] !== t116) {
3702
- t117 = /* @__PURE__ */ jsxDEV("div", {
3703
- "aria-labelledby": t108,
3772
+ let t123;
3773
+ if ($[323] !== t114 || $[324] !== t122) {
3774
+ t123 = /* @__PURE__ */ jsxDEV("div", {
3775
+ "aria-labelledby": t114,
3704
3776
  className: "flex min-w-0 flex-1 flex-col overflow-hidden",
3705
3777
  "data-testid": "dash-panel",
3706
3778
  id: "dash-panel",
3707
3779
  role: "tabpanel",
3708
- children: t116
3780
+ children: t122
3709
3781
  }, void 0, false);
3710
- $[305] = t108;
3711
- $[306] = t116;
3712
- $[307] = t117;
3782
+ $[323] = t114;
3783
+ $[324] = t122;
3784
+ $[325] = t123;
3713
3785
  } else {
3714
- t117 = $[307];
3786
+ t123 = $[325];
3715
3787
  }
3716
- let t118;
3717
- if ($[308] !== t106 || $[309] !== t107 || $[310] !== t117) {
3718
- t118 = /* @__PURE__ */ jsxDEV(SidebarInset, {
3788
+ let t124;
3789
+ if ($[326] !== t112 || $[327] !== t113 || $[328] !== t123) {
3790
+ t124 = /* @__PURE__ */ jsxDEV(SidebarInset, {
3719
3791
  className: "overflow-hidden md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",
3720
- children: [t106, t107, t117]
3792
+ children: [t112, t113, t123]
3721
3793
  }, void 0, true);
3722
- $[308] = t106;
3723
- $[309] = t107;
3724
- $[310] = t117;
3725
- $[311] = t118;
3794
+ $[326] = t112;
3795
+ $[327] = t113;
3796
+ $[328] = t123;
3797
+ $[329] = t124;
3726
3798
  } else {
3727
- t118 = $[311];
3799
+ t124 = $[329];
3728
3800
  }
3729
3801
  return /* @__PURE__ */ jsxDEV(SidebarProvider, {
3730
3802
  className: "min-h-0 flex-1",
3731
3803
  "data-testid": "lunora-studio",
3732
- children: [t92, /* @__PURE__ */ jsxDEV(StudioSidebar, {
3804
+ children: [t98, /* @__PURE__ */ jsxDEV(StudioSidebar, {
3733
3805
  chrome,
3734
3806
  connected,
3735
3807
  current,
@@ -3738,7 +3810,7 @@ const StudioLayout = () => {
3738
3810
  selectTab,
3739
3811
  tabDescription,
3740
3812
  tabLabel
3741
- }, void 0, false), t118]
3813
+ }, void 0, false), t124]
3742
3814
  }, void 0, true);
3743
3815
  };
3744
3816
  const SchemaRoutePanel = (t0) => {
@@ -3830,6 +3902,7 @@ const buildRouter = ({
3830
3902
  audit: /* @__PURE__ */ jsxDEV(AuditPanel, {
3831
3903
  initialShardKey
3832
3904
  }, void 0, false),
3905
+ authAudit: /* @__PURE__ */ jsxDEV(AuthAuditPanel, {}, void 0, false),
3833
3906
  authConfig: /* @__PURE__ */ jsxDEV(AuthConfigPanel, {}, void 0, false),
3834
3907
  authSessions: /* @__PURE__ */ jsxDEV(AuthSessionsPanel, {}, void 0, false),
3835
3908
  containers: /* @__PURE__ */ jsxDEV(ContainersPanel, {}, void 0, false),
@@ -3840,6 +3913,7 @@ const buildRouter = ({
3840
3913
  editable: dataEditable,
3841
3914
  initialShardKey
3842
3915
  }, void 0, false),
3916
+ deploymentHealth: /* @__PURE__ */ jsxDEV(DeploymentHealthPanel, {}, void 0, false),
3843
3917
  drains: /* @__PURE__ */ jsxDEV(LogDrainsPanel, {}, void 0, false),
3844
3918
  export: /* @__PURE__ */ jsxDEV(ExportImportPanel, {
3845
3919
  initialShardKey
@@ -3886,6 +3960,7 @@ const buildRouter = ({
3886
3960
  migrations: /* @__PURE__ */ jsxDEV(MigrationsPanel, {
3887
3961
  initialShardKey
3888
3962
  }, void 0, false),
3963
+ notifications: /* @__PURE__ */ jsxDEV(NotificationsPanel, {}, void 0, false),
3889
3964
  organizations: /* @__PURE__ */ jsxDEV(OrganizationsPanel, {}, void 0, false),
3890
3965
  permissions: /* @__PURE__ */ jsxDEV(PermissionsPanel, {
3891
3966
  functions,