@lunora/studio 1.0.0-alpha.49 → 1.0.0-alpha.50

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 (85) hide show
  1. package/dist/index.d.ts +10 -5
  2. package/dist/index.js +6 -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/ExportImportPanel.js +1 -1
  8. package/dist/packem_chunks/FileBrowser.js +1 -1
  9. package/dist/packem_chunks/FunctionRunner.js +1 -1
  10. package/dist/packem_chunks/FunctionStatsPanel.js +1 -1
  11. package/dist/packem_chunks/HealthPanel.js +1 -1
  12. package/dist/packem_chunks/InsightsPanel.js +1 -1
  13. package/dist/packem_chunks/LogsPanel.js +1 -1
  14. package/dist/packem_chunks/MailPanel.js +1 -1
  15. package/dist/packem_chunks/MetricsPanel.js +1 -1
  16. package/dist/packem_chunks/MigrationsPanel.js +1 -1
  17. package/dist/packem_chunks/PitrPanel.js +1 -1
  18. package/dist/packem_chunks/SchemaViewer.js +1 -1
  19. package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -1
  20. package/dist/packem_chunks/SettingsPanel.js +1 -1
  21. package/dist/packem_chunks/SqlEditorPanel.js +1 -1
  22. package/dist/packem_chunks/TableEditor.js +1 -1
  23. package/dist/packem_chunks/agents-panel.js +1 -1
  24. package/dist/packem_chunks/containers-panel.js +21 -7
  25. package/dist/packem_chunks/dashboards-panel.js +1 -1
  26. package/dist/packem_chunks/fanout-panel.js +1 -1
  27. package/dist/packem_chunks/flags-panel.js +1 -1
  28. package/dist/packem_chunks/issues-panel.js +188 -0
  29. package/dist/packem_chunks/kv-browser.js +1 -1
  30. package/dist/packem_chunks/payments-panel.js +1 -1
  31. package/dist/packem_chunks/permissions-panel.js +1 -1
  32. package/dist/packem_chunks/queues-panel.js +1 -1
  33. package/dist/packem_chunks/rls-panel.js +1 -1
  34. package/dist/packem_chunks/storage-rules-panel.js +1 -1
  35. package/dist/packem_chunks/subscriptions-panel.js +1 -1
  36. package/dist/packem_chunks/workflows-panel.js +1 -1
  37. package/dist/packem_shared/{ADMIN_FUNCTIONS-BHHJi3Gb.js → ADMIN_FUNCTIONS-DNeyYtUN.js} +1 -0
  38. package/dist/packem_shared/{ApiDocsPanel-B2Rc7nOF.js → ApiDocsPanel-_aEZxAMX.js} +1 -1
  39. package/dist/packem_shared/{DataBrowser-Cc197zke.js → DataBrowser-C8hejnub.js} +1 -1
  40. package/dist/packem_shared/{HomePanel-CjDlJzzs.js → HomePanel-Ye8PaqQL.js} +2 -2
  41. package/dist/packem_shared/{Studio-MB2VTLwI.js → Studio-xJLTlLpf.js} +2 -2
  42. package/dist/packem_shared/{StudioApp-Ds6u0iY5.js → StudioApp-oCQholCL.js} +1 -1
  43. package/dist/packem_shared/{app.d-Bly6zmWK.d.ts → app.d-CGdOmLTm.d.ts} +1 -1
  44. package/dist/packem_shared/{home-panel-BohxdqDb.js → home-panel-D62G8108.js} +1 -1
  45. package/dist/packem_shared/{studio-Bv27fj7n.js → studio-WZUOecDv.js} +578 -551
  46. package/dist/standalone/{chunk-2JUOJEKE.js → chunk-2JTPX3CV.js} +1 -1
  47. package/dist/standalone/{chunk-2O4BHAHA.js → chunk-3CPQ5IQU.js} +1 -1
  48. package/dist/standalone/{chunk-BTODL6SI.js → chunk-4AXW2ECS.js} +1 -1
  49. package/dist/standalone/chunk-4BVRLBEW.js +1 -0
  50. package/dist/standalone/{chunk-QCW4BAH5.js → chunk-6RREMPQX.js} +1 -1
  51. package/dist/standalone/{chunk-AHDVD4KF.js → chunk-6ZBU3JWR.js} +1 -1
  52. package/dist/standalone/chunk-A2DBMISD.js +1 -0
  53. package/dist/standalone/{chunk-Q7HPS6TW.js → chunk-A66LI6OV.js} +1 -1
  54. package/dist/standalone/{chunk-CDHEMVIY.js → chunk-CJXJIRSN.js} +1 -1
  55. package/dist/standalone/{chunk-R6H6DUPU.js → chunk-DR6LGPXE.js} +1 -1
  56. package/dist/standalone/{chunk-CTOOUWO4.js → chunk-FAUN4Z72.js} +1 -1
  57. package/dist/standalone/chunk-G7ZBM54M.js +1 -0
  58. package/dist/standalone/{chunk-5YPIP3G7.js → chunk-HAJSYWFT.js} +1 -1
  59. package/dist/standalone/{chunk-6U45TJXA.js → chunk-HQM6MBPS.js} +1 -1
  60. package/dist/standalone/{chunk-ECJPFPHR.js → chunk-HTQNZXDT.js} +1 -1
  61. package/dist/standalone/{chunk-W5BAQMIE.js → chunk-IO2XEI6T.js} +1 -1
  62. package/dist/standalone/{chunk-WK7VHQTQ.js → chunk-K4S652EQ.js} +1 -1
  63. package/dist/standalone/{chunk-L4UCG6XZ.js → chunk-KJFFID72.js} +1 -1
  64. package/dist/standalone/{chunk-R2HA2NVX.js → chunk-LJAAZNQ6.js} +1 -1
  65. package/dist/standalone/{chunk-UWSLX56Q.js → chunk-LX7KONE3.js} +1 -1
  66. package/dist/standalone/{chunk-XGPFWZPJ.js → chunk-NW6SZZ5O.js} +1 -1
  67. package/dist/standalone/{chunk-NH4FSHFO.js → chunk-P2ERTKMB.js} +1 -1
  68. package/dist/standalone/{chunk-N4TGVH2R.js → chunk-PS3XCCZD.js} +1 -1
  69. package/dist/standalone/{chunk-ALTQC4S5.js → chunk-RS7S7XVP.js} +1 -1
  70. package/dist/standalone/{chunk-GA6K5WS5.js → chunk-S7AB7Y75.js} +1 -1
  71. package/dist/standalone/{chunk-FFCUV3TZ.js → chunk-SHJUAHC6.js} +1 -1
  72. package/dist/standalone/{chunk-RE4LLVPN.js → chunk-TYN6SQ73.js} +1 -1
  73. package/dist/standalone/{chunk-XPLUSBKA.js → chunk-U26QNHMO.js} +1 -1
  74. package/dist/standalone/{chunk-Q6356GAQ.js → chunk-VL6HOZHF.js} +1 -1
  75. package/dist/standalone/{chunk-RYF5EUQA.js → chunk-X2TQRMQV.js} +1 -1
  76. package/dist/standalone/{chunk-ZANX3V5B.js → chunk-X4676IX6.js} +1 -1
  77. package/dist/standalone/{chunk-3JXKA6BH.js → chunk-XJU5SRNL.js} +1 -1
  78. package/dist/standalone/chunk-XWPZBZSZ.js +3 -0
  79. package/dist/standalone/{chunk-CCRVGYTN.js → chunk-YLHDKM2P.js} +1 -1
  80. package/dist/standalone/studio.js +1 -1
  81. package/dist/styles.css +1 -1
  82. package/package.json +1 -1
  83. package/dist/standalone/chunk-4TV6S6AO.js +0 -3
  84. package/dist/standalone/chunk-BOXSWNXZ.js +0 -1
  85. package/dist/standalone/chunk-ZVLQVBTM.js +0 -1
@@ -8,7 +8,7 @@ import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as Table
8
8
  import { T as Textarea } from '../packem_shared/textarea-D3gaCU_-.js';
9
9
  import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js';
10
10
  import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
11
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js';
11
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
12
12
  import { jsxDEV } from 'react/jsx-dev-runtime';
13
13
 
14
14
  const parseContext = (raw) => {
@@ -0,0 +1,188 @@
1
+ import { c } from 'react/compiler-runtime';
2
+ import { useState } from 'react';
3
+ import { L as LiveError } from '../packem_shared/live-status-FZ0psC1z.js';
4
+ import { ShardInput } from '../packem_shared/ShardInput-CZnpHILL.js';
5
+ import { B as Badge } from '../packem_shared/badge-B2PKA1-5.js';
6
+ import { C as Card, a as CardContent } from '../packem_shared/card-DURq3ElK.js';
7
+ import { E as EmptyState } from '../packem_shared/empty-state-DY_oe0k6.js';
8
+ import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as TableBody, e as TableCell } from '../packem_shared/table-DsCa9Qp9.js';
9
+ import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js';
10
+ import useDebounced from '../packem_shared/useDebounced-Dxncpg6z.js';
11
+ import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
12
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
13
+ import { i as formatTimestamp } from '../packem_shared/internal-zwBoOv24.js';
14
+ import { jsxDEV } from 'react/jsx-dev-runtime';
15
+
16
+ const issuesOf = (result) => Array.isArray(result?.issues) ? result.issues : [];
17
+ const IssuesPanel = (t0) => {
18
+ const $ = c(21);
19
+ const {
20
+ initialShardKey
21
+ } = t0;
22
+ const t = useT();
23
+ const [shardKey, setShardKey] = useState(initialShardKey ?? "");
24
+ let t1;
25
+ if ($[0] !== shardKey) {
26
+ t1 = shardKey.trim();
27
+ $[0] = shardKey;
28
+ $[1] = t1;
29
+ } else {
30
+ t1 = $[1];
31
+ }
32
+ const debouncedShard = useDebounced(t1, 400);
33
+ let t2;
34
+ if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35
+ t2 = {};
36
+ $[2] = t2;
37
+ } else {
38
+ t2 = $[2];
39
+ }
40
+ let t3;
41
+ if ($[3] !== debouncedShard) {
42
+ t3 = {
43
+ live: true,
44
+ shardKey: debouncedShard
45
+ };
46
+ $[3] = debouncedShard;
47
+ $[4] = t3;
48
+ } else {
49
+ t3 = $[4];
50
+ }
51
+ const {
52
+ data,
53
+ error,
54
+ liveError
55
+ } = useAdminQuery(ADMIN_FUNCTIONS.getIssues, t2, t3);
56
+ const loaded = data !== void 0;
57
+ let t4;
58
+ if ($[5] !== data || $[6] !== error || $[7] !== liveError || $[8] !== loaded || $[9] !== shardKey || $[10] !== t) {
59
+ const issues = issuesOf(data);
60
+ let t5;
61
+ if ($[12] !== error) {
62
+ t5 = error !== null && /* @__PURE__ */ jsxDEV("p", {
63
+ className: "text-sm text-destructive",
64
+ "data-testid": "issues-error",
65
+ role: "alert",
66
+ children: error
67
+ }, void 0, false);
68
+ $[12] = error;
69
+ $[13] = t5;
70
+ } else {
71
+ t5 = $[13];
72
+ }
73
+ let t6;
74
+ if ($[14] !== shardKey) {
75
+ t6 = /* @__PURE__ */ jsxDEV(ShardInput, {
76
+ onChange: setShardKey,
77
+ testId: "issues-shard-input",
78
+ value: shardKey
79
+ }, void 0, false);
80
+ $[14] = shardKey;
81
+ $[15] = t6;
82
+ } else {
83
+ t6 = $[15];
84
+ }
85
+ let t7;
86
+ if ($[16] !== liveError) {
87
+ t7 = /* @__PURE__ */ jsxDEV(LiveError, {
88
+ message: liveError,
89
+ prefix: "issues"
90
+ }, void 0, false);
91
+ $[16] = liveError;
92
+ $[17] = t7;
93
+ } else {
94
+ t7 = $[17];
95
+ }
96
+ let t8;
97
+ if ($[18] !== t6 || $[19] !== t7) {
98
+ t8 = /* @__PURE__ */ jsxDEV("div", {
99
+ className: "flex flex-wrap items-center gap-2",
100
+ children: [t6, t7]
101
+ }, void 0, true);
102
+ $[18] = t6;
103
+ $[19] = t7;
104
+ $[20] = t8;
105
+ } else {
106
+ t8 = $[20];
107
+ }
108
+ t4 = /* @__PURE__ */ jsxDEV("div", {
109
+ className: "flex flex-col gap-6",
110
+ "data-testid": "lunora-issues-panel",
111
+ children: [t5, t8, loaded && issues.length === 0 ? /* @__PURE__ */ jsxDEV(EmptyState, {
112
+ description: t("No grouped errors yet. When a function throws or a container crashes, matching errors fold into a single issue here."),
113
+ testId: "issues-empty",
114
+ title: t("No issues")
115
+ }, void 0, false) : /* @__PURE__ */ jsxDEV(Card, {
116
+ className: "overflow-hidden py-0",
117
+ children: /* @__PURE__ */ jsxDEV(CardContent, {
118
+ className: "px-0",
119
+ children: /* @__PURE__ */ jsxDEV(Table, {
120
+ "data-testid": "issues-table",
121
+ children: [/* @__PURE__ */ jsxDEV(TableHeader, {
122
+ children: /* @__PURE__ */ jsxDEV(TableRow, {
123
+ children: [/* @__PURE__ */ jsxDEV(TableHead, {
124
+ children: t("Issue")
125
+ }, void 0, false), /* @__PURE__ */ jsxDEV(TableHead, {
126
+ children: t("Source")
127
+ }, void 0, false), /* @__PURE__ */ jsxDEV(TableHead, {
128
+ className: "text-right",
129
+ children: t("Events")
130
+ }, void 0, false), /* @__PURE__ */ jsxDEV(TableHead, {
131
+ children: t("First seen")
132
+ }, void 0, false), /* @__PURE__ */ jsxDEV(TableHead, {
133
+ children: t("Last seen")
134
+ }, void 0, false)]
135
+ }, void 0, true)
136
+ }, void 0, false), /* @__PURE__ */ jsxDEV(TableBody, {
137
+ children: issues.map(_temp)
138
+ }, void 0, false)]
139
+ }, void 0, true)
140
+ }, void 0, false)
141
+ }, void 0, false)]
142
+ }, void 0, true);
143
+ $[5] = data;
144
+ $[6] = error;
145
+ $[7] = liveError;
146
+ $[8] = loaded;
147
+ $[9] = shardKey;
148
+ $[10] = t;
149
+ $[11] = t4;
150
+ } else {
151
+ t4 = $[11];
152
+ }
153
+ return t4;
154
+ };
155
+ function _temp(issue) {
156
+ return /* @__PURE__ */ jsxDEV(TableRow, {
157
+ "data-testid": `issues-row-${issue.hash}`,
158
+ children: [/* @__PURE__ */ jsxDEV(TableCell, {
159
+ className: "max-w-96",
160
+ children: [/* @__PURE__ */ jsxDEV("div", {
161
+ className: "truncate font-medium",
162
+ title: issue.title,
163
+ children: issue.title
164
+ }, void 0, false), /* @__PURE__ */ jsxDEV("div", {
165
+ className: "truncate text-xs text-muted-foreground",
166
+ title: issue.sampleMessage,
167
+ children: issue.sampleMessage
168
+ }, void 0, false)]
169
+ }, void 0, true), /* @__PURE__ */ jsxDEV(TableCell, {
170
+ className: "font-mono text-xs text-muted-foreground",
171
+ children: issue.culprit
172
+ }, void 0, false), /* @__PURE__ */ jsxDEV(TableCell, {
173
+ className: "text-right",
174
+ children: /* @__PURE__ */ jsxDEV(Badge, {
175
+ variant: "secondary",
176
+ children: issue.count
177
+ }, void 0, false)
178
+ }, void 0, false), /* @__PURE__ */ jsxDEV(TableCell, {
179
+ className: "text-xs tabular-nums text-muted-foreground",
180
+ children: formatTimestamp(issue.firstSeen)
181
+ }, void 0, false), /* @__PURE__ */ jsxDEV(TableCell, {
182
+ className: "text-xs tabular-nums text-muted-foreground",
183
+ children: formatTimestamp(issue.lastSeen)
184
+ }, void 0, false)]
185
+ }, issue.hash, true);
186
+ }
187
+
188
+ export { IssuesPanel };
@@ -8,7 +8,7 @@ import { f as fireAndForget, e as errorMessage, k as formatBytes, g as copyToCli
8
8
  import { B as Button } from '../packem_shared/button-BhsN2uZH.js';
9
9
  import { C as Checkbox } from '../packem_shared/checkbox-UNkzAxl-.js';
10
10
  import { I as Input } from '../packem_shared/input-XH4r1Pt1.js';
11
- import { b as Sheet, c as SheetContent, d as SheetHeader, e as SheetTitle } from '../packem_shared/studio-Bv27fj7n.js';
11
+ import { b as Sheet, c as SheetContent, d as SheetHeader, e as SheetTitle } from '../packem_shared/studio-WZUOecDv.js';
12
12
  import { c } from 'react/compiler-runtime';
13
13
  import { L as Label } from '../packem_shared/label-D8ykjn5J.js';
14
14
  import { T as Textarea } from '../packem_shared/textarea-D3gaCU_-.js';
@@ -6,7 +6,7 @@ import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as Table
6
6
  import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js';
7
7
  import { useAutoRefresh } from '../packem_shared/DEFAULT_AUTO_REFRESH_MS-Vxwaxx51.js';
8
8
  import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
9
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js';
9
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
10
10
  import { i as formatTimestamp } from '../packem_shared/internal-zwBoOv24.js';
11
11
  import { jsxDEV } from 'react/jsx-dev-runtime';
12
12
 
@@ -9,7 +9,7 @@ import { B as Button } from '../packem_shared/button-BhsN2uZH.js';
9
9
  import { E as EmptyState } from '../packem_shared/empty-state-DY_oe0k6.js';
10
10
  import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as TableBody, e as TableCell } from '../packem_shared/table-DsCa9Qp9.js';
11
11
  import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js';
12
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js';
12
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
13
13
  import { jsxDEV } from 'react/jsx-dev-runtime';
14
14
  import { useLunora } from '@lunora/react';
15
15
  import { ShardInput } from '../packem_shared/ShardInput-CZnpHILL.js';
@@ -14,7 +14,7 @@ import { T as Textarea } from '../packem_shared/textarea-D3gaCU_-.js';
14
14
  import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js';
15
15
  import { useAutoRefresh } from '../packem_shared/DEFAULT_AUTO_REFRESH_MS-Vxwaxx51.js';
16
16
  import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
17
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js';
17
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
18
18
  import { c as callOptions, e as errorMessage, a as adminRef, f as fireAndForget, i as formatTimestamp } from '../packem_shared/internal-zwBoOv24.js';
19
19
  import { jsxDEV, Fragment } from 'react/jsx-dev-runtime';
20
20
 
@@ -6,7 +6,7 @@ import { E as EmptyState } from '../packem_shared/empty-state-DY_oe0k6.js';
6
6
  import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as TableBody, e as TableCell } from '../packem_shared/table-DsCa9Qp9.js';
7
7
  import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js';
8
8
  import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
9
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js';
9
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
10
10
  import { jsxDEV } from 'react/jsx-dev-runtime';
11
11
 
12
12
  const OPERATIONS = ["read", "insert", "update", "delete"];
@@ -6,7 +6,7 @@ import { E as EmptyState } from '../packem_shared/empty-state-DY_oe0k6.js';
6
6
  import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as TableBody, e as TableCell } from '../packem_shared/table-DsCa9Qp9.js';
7
7
  import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js';
8
8
  import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
9
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js';
9
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
10
10
  import { jsxDEV } from 'react/jsx-dev-runtime';
11
11
 
12
12
  const operationLabel = (t, operation) => ({
@@ -10,7 +10,7 @@ import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js
10
10
  import { useAutoRefresh } from '../packem_shared/DEFAULT_AUTO_REFRESH_MS-Vxwaxx51.js';
11
11
  import useDebounced from '../packem_shared/useDebounced-Dxncpg6z.js';
12
12
  import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
13
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js';
13
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
14
14
  import { jsxDEV } from 'react/jsx-dev-runtime';
15
15
 
16
16
  const ARGS_MAX = 80;
@@ -8,7 +8,7 @@ import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as Table
8
8
  import { T as Textarea } from '../packem_shared/textarea-D3gaCU_-.js';
9
9
  import { u as useAdminQuery } from '../packem_shared/use-admin-query-BGJ010yZ.js';
10
10
  import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
11
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js';
11
+ import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-DNeyYtUN.js';
12
12
  import { f as fireAndForget, e as errorMessage, c as callOptions, a as adminRef } from '../packem_shared/internal-zwBoOv24.js';
13
13
  import { jsxDEV } from 'react/jsx-dev-runtime';
14
14
 
@@ -15,6 +15,7 @@ const ADMIN_FUNCTIONS = {
15
15
  getCapturedMail: "__lunora_admin__:getCapturedMail",
16
16
  getFanoutMetrics: "__lunora_admin__:getFanoutMetrics",
17
17
  getFunctionStats: "__lunora_admin__:getFunctionStats",
18
+ getIssues: "__lunora_admin__:getIssues",
18
19
  listFlags: "__lunora_admin__:listFlags",
19
20
  listQueues: "__lunora_admin__:listQueues",
20
21
  listSubscriptions: "__lunora_admin__:listSubscriptions",
@@ -4,7 +4,7 @@ import { useState, useEffect } from 'react';
4
4
  import { B as Button } from './button-BhsN2uZH.js';
5
5
  import { E as EmptyState } from './empty-state-DY_oe0k6.js';
6
6
  import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
7
- import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-BHHJi3Gb.js';
7
+ import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-DNeyYtUN.js';
8
8
  import { c as callOptions, a as adminRef, g as copyToClipboard } from './internal-zwBoOv24.js';
9
9
  import { jsxDEV } from 'react/jsx-dev-runtime';
10
10
 
@@ -5,7 +5,7 @@ import { ConfirmButton } from './ConfirmButton-C2eVi2Qv.js';
5
5
  import { ShardInput } from './ShardInput-CZnpHILL.js';
6
6
  import { E as EmptyState } from './empty-state-DY_oe0k6.js';
7
7
  import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
8
- import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-BHHJi3Gb.js';
8
+ import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-DNeyYtUN.js';
9
9
  import { h as formatCell, f as fireAndForget, c as callOptions, a as adminRef, i as formatTimestamp } from './internal-zwBoOv24.js';
10
10
  import { useReactTable, getSortedRowModel, getCoreRowModel, flexRender } from '@tanstack/react-table';
11
11
  import { useVirtualizer } from '@tanstack/react-virtual';
@@ -6,9 +6,9 @@ import './card-DURq3ElK.js';
6
6
  import './empty-state-DY_oe0k6.js';
7
7
  import './use-admin-query-BGJ010yZ.js';
8
8
  import './DEFAULT_LOCALE-CiX4W7Kr.js';
9
- import './ADMIN_FUNCTIONS-BHHJi3Gb.js';
9
+ import './ADMIN_FUNCTIONS-DNeyYtUN.js';
10
10
  import './internal-zwBoOv24.js';
11
11
  import './utils-B05Dmz_H.js';
12
12
  import './DEFAULT_INSIGHT_THRESHOLDS-DjF0h-gA.js';
13
- export { H as HomePanel } from './home-panel-BohxdqDb.js';
13
+ export { H as HomePanel } from './home-panel-D62G8108.js';
14
14
  import 'react/jsx-dev-runtime';
@@ -1,12 +1,12 @@
1
1
  import 'react/compiler-runtime';
2
2
  import '@tanstack/react-router';
3
3
  import 'react';
4
- export { S as Studio } from './studio-Bv27fj7n.js';
4
+ export { S as Studio } from './studio-WZUOecDv.js';
5
5
  import './ErrorBoundary-BzAApI7J.js';
6
6
  import './badge-B2PKA1-5.js';
7
7
  import './input-XH4r1Pt1.js';
8
8
  import './skeleton-CGhL0p20.js';
9
- import './home-panel-BohxdqDb.js';
9
+ import './home-panel-D62G8108.js';
10
10
  import './DEFAULT_LOCALE-CiX4W7Kr.js';
11
11
  import './StudioI18nProvider-B-tDCZIi.js';
12
12
  import './data-view-params-Cd6yRVbv.js';
@@ -3,7 +3,7 @@ import { LunoraClient } from '@lunora/client';
3
3
  import { LunoraProvider } from '@lunora/react';
4
4
  import { useState, useEffect } from 'react';
5
5
  import { ErrorBoundary } from './ErrorBoundary-BzAApI7J.js';
6
- import { u as useTheme, B as BrandMark, T as ThemeProvider, a as TooltipProvider, S as Studio } from './studio-Bv27fj7n.js';
6
+ import { u as useTheme, B as BrandMark, T as ThemeProvider, a as TooltipProvider, S as Studio } from './studio-WZUOecDv.js';
7
7
  import useDebounced from './useDebounced-Dxncpg6z.js';
8
8
  import { useT, createStudioI18n } from './DEFAULT_LOCALE-CiX4W7Kr.js';
9
9
  import { StudioI18nProvider } from './StudioI18nProvider-B-tDCZIi.js';
@@ -115,7 +115,7 @@ interface FunctionDescriptor {
115
115
  /** Outcome of a single `FunctionRunner` invocation. */
116
116
  type RunStatus = "error" | "idle" | "running" | "success";
117
117
  /** Identifier for each built-in studio tab. */
118
- type StudioTab = "agents" | "analytics" | "api" | "audit" | "authConfig" | "authSessions" | "containers" | "dashboards" | "data" | "drains" | "export" | "fanout" | "files" | "flags" | "functions" | "health" | "home" | "insights" | "kv" | "logs" | "mail" | "metrics" | "migrations" | "organizations" | "payments" | "permissions" | "pitr" | "queues" | "realtime" | "rls" | "schedule" | "schema" | "security" | "settings" | "sql" | "storageRules" | "users" | "vectors" | "workflows";
118
+ type StudioTab = "agents" | "analytics" | "api" | "audit" | "authConfig" | "authSessions" | "containers" | "dashboards" | "data" | "drains" | "export" | "fanout" | "files" | "flags" | "functions" | "health" | "home" | "insights" | "issues" | "kv" | "logs" | "mail" | "metrics" | "migrations" | "organizations" | "payments" | "permissions" | "pitr" | "queues" | "realtime" | "rls" | "schedule" | "schema" | "security" | "settings" | "sql" | "storageRules" | "users" | "vectors" | "workflows";
119
119
  interface StudioProps {
120
120
  /**
121
121
  * URL path prefix the studio is mounted under, passed to the router as its
@@ -6,7 +6,7 @@ import { a as CardContent, C as Card } from './card-DURq3ElK.js';
6
6
  import { E as EmptyState } from './empty-state-DY_oe0k6.js';
7
7
  import { u as useAdminQuery } from './use-admin-query-BGJ010yZ.js';
8
8
  import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
9
- import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-BHHJi3Gb.js';
9
+ import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-DNeyYtUN.js';
10
10
  import { f as fireAndForget, c as callOptions, a as adminRef, r as resolveOrigin, g as copyToClipboard, k as formatBytes } from './internal-zwBoOv24.js';
11
11
  import { c as cn } from './utils-B05Dmz_H.js';
12
12
  import { deriveInsights } from './DEFAULT_INSIGHT_THRESHOLDS-DjF0h-gA.js';