@feltdb/core 0.12.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/agent-runtime.d.ts +64 -2
  2. package/dist/agent-runtime.d.ts.map +1 -1
  3. package/dist/agent-runtime.js +121 -11
  4. package/dist/agent-state.d.ts +48 -0
  5. package/dist/agent-state.d.ts.map +1 -1
  6. package/dist/agent-state.js +174 -12
  7. package/dist/agent.d.ts +10 -1
  8. package/dist/agent.d.ts.map +1 -1
  9. package/dist/agent.js +10 -1
  10. package/dist/build-identity.json +4 -4
  11. package/dist/cli/commands.js +34 -7
  12. package/dist/cli/workspace-integration.js +8 -0
  13. package/dist/collection.d.ts +3 -1
  14. package/dist/collection.d.ts.map +1 -1
  15. package/dist/collection.js +30 -8
  16. package/dist/create/build-identity.json +4 -4
  17. package/dist/create/cli.js +47 -38
  18. package/dist/create/create.js +21 -8
  19. package/dist/create/package-versions.js +1 -1
  20. package/dist/create/server-source/Cargo.lock +6 -6
  21. package/dist/create/server-source/Cargo.toml +1 -1
  22. package/dist/create/server-source/crates/feltdb/src/lib.rs +126 -35
  23. package/dist/create/server-source/crates/feltdb/src/state_contract.rs +162 -53
  24. package/dist/create/server-source/crates/feltdb/src/worker_mesh.rs +341 -2
  25. package/dist/create/server-source/crates/feltdb/src/workload.rs +2094 -126
  26. package/dist/create/server-source/crates/feltdb/tests/production_readiness_contract.rs +18 -12
  27. package/dist/create/server-source/crates/feltdb/tests/workload_envelope_contract.rs +17 -5
  28. package/dist/create/server-source/crates/feltdb-client/Cargo.toml +1 -1
  29. package/dist/create/server-source/crates/feltdb-server/Cargo.toml +1 -1
  30. package/dist/create/server-source/crates/feltdb-server/README.md +6 -1
  31. package/dist/create/server-source/crates/feltdb-server/src/agent_execution.rs +511 -0
  32. package/dist/create/server-source/crates/feltdb-server/src/app_state.rs +9 -1
  33. package/dist/create/server-source/crates/feltdb-server/src/auth.rs +113 -25
  34. package/dist/create/server-source/crates/feltdb-server/src/backup.rs +4 -0
  35. package/dist/create/server-source/crates/feltdb-server/src/console_accounts.rs +1009 -0
  36. package/dist/create/server-source/crates/feltdb-server/src/control_authorization.rs +441 -0
  37. package/dist/create/server-source/crates/feltdb-server/src/identity.rs +68 -6
  38. package/dist/create/server-source/crates/feltdb-server/src/key_management.rs +355 -23
  39. package/dist/create/server-source/crates/feltdb-server/src/lib.rs +4 -0
  40. package/dist/create/server-source/crates/feltdb-server/src/main.rs +1740 -236
  41. package/dist/create/server-source/crates/feltdb-server/src/redaction.rs +208 -0
  42. package/dist/create/server-source/crates/feltdb-server/src/tenancy.rs +198 -19
  43. package/dist/create/server-source/crates/feltdb-server/tests/transaction_precondition_contract.rs +403 -0
  44. package/dist/create/setup-summary.js +40 -0
  45. package/dist/db.d.ts +91 -10
  46. package/dist/db.d.ts.map +1 -1
  47. package/dist/db.js +170 -31
  48. package/dist/deployment.d.ts +19 -0
  49. package/dist/deployment.d.ts.map +1 -1
  50. package/dist/deployment.js +38 -2
  51. package/dist/development-runtime-bridge.d.ts +20 -0
  52. package/dist/development-runtime-bridge.d.ts.map +1 -1
  53. package/dist/development-runtime-bridge.js +61 -12
  54. package/dist/embedded-query.d.ts.map +1 -1
  55. package/dist/embedded-query.js +5 -4
  56. package/dist/embedded-transaction.d.ts +8 -4
  57. package/dist/embedded-transaction.d.ts.map +1 -1
  58. package/dist/embedded-transaction.js +55 -19
  59. package/dist/error-codes.d.ts +31 -2
  60. package/dist/error-codes.d.ts.map +1 -1
  61. package/dist/error-codes.js +41 -2
  62. package/dist/feltdb.d.ts +7 -0
  63. package/dist/feltdb.d.ts.map +1 -1
  64. package/dist/file-db.d.ts +27 -0
  65. package/dist/file-db.d.ts.map +1 -1
  66. package/dist/file-db.js +145 -7
  67. package/dist/http-client.d.ts +11 -3
  68. package/dist/http-client.d.ts.map +1 -1
  69. package/dist/http-client.js +27 -14
  70. package/dist/http-db.d.ts +40 -1
  71. package/dist/http-db.d.ts.map +1 -1
  72. package/dist/http-db.js +285 -58
  73. package/dist/index.js +1 -1
  74. package/dist/local-state-lock.d.ts +34 -0
  75. package/dist/local-state-lock.d.ts.map +1 -0
  76. package/dist/local-state-lock.js +225 -0
  77. package/dist/reactive-graph.d.ts +0 -3
  78. package/dist/reactive-graph.d.ts.map +1 -1
  79. package/dist/reactive-graph.js +11 -1
  80. package/dist/runtime-registry.d.ts +7 -2
  81. package/dist/runtime-registry.d.ts.map +1 -1
  82. package/dist/runtime-registry.js +2 -2
  83. package/dist/studio/{KeyManagementPanel-D5FMvvU9.js → KeyManagementPanel-skUNnKRw.js} +36 -29
  84. package/dist/studio/app.d.ts +8 -1
  85. package/dist/studio/app.d.ts.map +1 -1
  86. package/dist/studio/components/KeyManagementPanel.d.ts.map +1 -1
  87. package/dist/studio/components/KeyManagementPanel.js +1 -1
  88. package/dist/studio/components/index.js +2 -2
  89. package/dist/studio/{components-B4eKIUN5.js → components-CJmzntBi.js} +8 -7
  90. package/dist/studio/control-plane/Data.d.ts.map +1 -1
  91. package/dist/studio/control-plane/Instance.d.ts +4 -1
  92. package/dist/studio/control-plane/Instance.d.ts.map +1 -1
  93. package/dist/studio/control-plane/Operations.d.ts +4 -1
  94. package/dist/studio/control-plane/Operations.d.ts.map +1 -1
  95. package/dist/studio/control-plane/index.js +2 -2
  96. package/dist/studio/control-plane/primitives.d.ts +16 -0
  97. package/dist/studio/control-plane/primitives.d.ts.map +1 -1
  98. package/dist/studio/{control-plane-fxMcJn74.js → control-plane-CaBA7Rgv.js} +448 -424
  99. package/dist/studio/index.d.ts +1 -0
  100. package/dist/studio/index.d.ts.map +1 -1
  101. package/dist/studio/index.js +384 -247
  102. package/dist/studio/navigation.d.ts +57 -0
  103. package/dist/studio/navigation.d.ts.map +1 -0
  104. package/dist/studio/studio.css +1 -1
  105. package/dist/studio/utils/control-plane-api.d.ts +2 -0
  106. package/dist/studio/utils/control-plane-api.d.ts.map +1 -1
  107. package/dist/studio/utils/control-plane-api.js +5 -1
  108. package/dist/studio-app/assets/{feltdb_wasm-BatwwogY.js → feltdb_wasm-BjM1ylL3.js} +1 -1
  109. package/dist/studio-app/assets/feltdb_wasm_bg-TseJn2Ax.wasm +0 -0
  110. package/dist/studio-app/assets/index-1wd0uKua.js +30 -0
  111. package/dist/studio-app/assets/{index-CiC8VY-a.css → index-vi21oEQa.css} +1 -1
  112. package/dist/studio-app/index.html +2 -2
  113. package/dist/transaction.d.ts +27 -11
  114. package/dist/transaction.d.ts.map +1 -1
  115. package/dist/transaction.js +20 -14
  116. package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
  117. package/dist/wasm/package.json +1 -1
  118. package/dist/workload.d.ts +31 -3
  119. package/dist/workload.d.ts.map +1 -1
  120. package/dist/workload.js +28 -3
  121. package/dist/workspace/local-development-authority.d.ts +19 -0
  122. package/dist/workspace/local-development-authority.d.ts.map +1 -1
  123. package/dist/workspace/local-development-authority.js +335 -15
  124. package/package.json +1 -1
  125. package/dist/studio-app/assets/feltdb_wasm_bg-BX0newOr.wasm +0 -0
  126. package/dist/studio-app/assets/index-DoVvbIay.js +0 -30
@@ -1,44 +1,202 @@
1
- import { A as e, C as t, D as n, E as r, F as i, I as a, L as o, M as s, N as c, O as l, P as u, R as d, S as f, T as p, _ as m, a as h, b as g, c as _, d as v, f as y, g as b, h as x, i as S, j as C, k as w, l as T, m as ee, n as E, o as D, p as O, r as k, s as te, t as A, u as j, v as M, w as N, x as ne, y as re } from "./control-plane-fxMcJn74.js";
2
- import { C as P, E as ie, S as ae, T as oe, _ as F, a as se, b as I, c as ce, d as le, f as L, g as R, h as z, i as ue, l as B, m as V, n as de, o as fe, p as H, r as pe, s as me, t as he, u as U, v as W, w as ge, x as _e, y as G } from "./components-B4eKIUN5.js";
3
- import { ServiceApiError as ve, StudioServiceApi as ye, isSecretField as be, resolveStudioApplicationId as xe, safeDisplayValue as Se, serviceApiErrorMessage as Ce } from "./utils/service-api.js";
4
- import { StudioProposalApi as we, proposalErrorMessage as Te, proposalSections as Ee } from "./utils/proposal-api.js";
5
- import { t as K } from "./KeyManagementPanel-D5FMvvU9.js";
6
- import { CapabilitySet as De, ControlPlaneApi as Oe, ControlPlaneError as ke, controlPlaneErrorMessage as Ae, formatStatePath as je } from "./utils/control-plane-api.js";
7
- import { ManagedInstanceUtil as Me } from "./utils/managed-instance.js";
8
- import { ManagedInstancePanel as Ne } from "./components/ManagedInstancePanel.js";
9
- import { capitalize as Pe, fetchDashboardStats as Fe, fetchDiagnostics as Ie, fetchPeers as Le, fetchProvenance as Re, formatBytes as ze, formatReference as Be, formatRelativeTime as Ve, formatTime as He, searchReferences as Ue } from "./utils/index.js";
10
- import We, { useEffect as q, useRef as Ge, useState as J } from "react";
11
- import { BrowserRouter as Ke, Route as Y, Routes as qe, useLocation as X, useNavigate as Je } from "react-router-dom";
12
- import { Fragment as Ye, jsx as Z, jsxs as Q } from "react/jsx-runtime";
13
- import { parseFlowSpec as Xe } from "@feltdb/core";
1
+ import { A as e, C as t, D as n, E as r, F as i, I as a, L as o, M as s, N as c, O as l, P as u, R as d, S as f, T as p, _ as m, a as h, b as g, c as ee, d as _, f as v, g as te, h as y, i as b, j as ne, k as x, l as S, m as re, n as C, o as w, p as T, r as E, s as D, t as ie, u as O, v as ae, w as oe, x as k, y as A, z as se } from "./control-plane-CaBA7Rgv.js";
2
+ import { C as j, E as ce, S as le, T as ue, _ as M, a as de, b as N, c as fe, d as pe, f as P, g as F, h as I, i as me, l as L, m as R, n as he, o as ge, p as z, r as _e, s as ve, t as ye, u as B, v as V, w as be, x as xe, y as H } from "./components-CJmzntBi.js";
3
+ import { ServiceApiError as Se, StudioServiceApi as Ce, isSecretField as we, resolveStudioApplicationId as Te, safeDisplayValue as Ee, serviceApiErrorMessage as De } from "./utils/service-api.js";
4
+ import { StudioProposalApi as Oe, proposalErrorMessage as ke, proposalSections as Ae } from "./utils/proposal-api.js";
5
+ import { t as U } from "./KeyManagementPanel-skUNnKRw.js";
6
+ import { CapabilitySet as je, ControlPlaneApi as Me, ControlPlaneError as Ne, controlPlaneErrorMessage as Pe, formatStatePath as Fe } from "./utils/control-plane-api.js";
7
+ import { ManagedInstanceUtil as Ie } from "./utils/managed-instance.js";
8
+ import { ManagedInstancePanel as Le } from "./components/ManagedInstancePanel.js";
9
+ import { capitalize as Re, fetchDashboardStats as ze, fetchDiagnostics as Be, fetchPeers as Ve, fetchProvenance as He, formatBytes as Ue, formatReference as We, formatRelativeTime as Ge, formatTime as Ke, searchReferences as qe } from "./utils/index.js";
10
+ import Je, { useEffect as W, useRef as Ye, useState as G } from "react";
11
+ import { BrowserRouter as Xe, Route as K, Routes as Ze, useLocation as q, useNavigate as Qe } from "react-router-dom";
12
+ import { Fragment as J, jsx as Y, jsxs as X } from "react/jsx-runtime";
13
+ import { parseFlowSpec as $e } from "@feltdb/core";
14
14
  //#region vendor/stack-ui/core/src/dom.js
15
- function $(e, t) {
15
+ function Z(e, t) {
16
16
  let n = t || document;
17
17
  if (e == null || e === !1 || e === !0) return n.createDocumentFragment();
18
18
  if (typeof e == "string" || typeof e == "number") return n.createTextNode(String(e));
19
19
  if (Array.isArray(e)) {
20
20
  let t = n.createDocumentFragment();
21
- for (let r of e) t.appendChild($(r, n));
21
+ for (let r of e) t.appendChild(Z(r, n));
22
22
  return t;
23
23
  }
24
- if (d(e)) {
24
+ if (se(e)) {
25
25
  let t = n.createElement(e.t);
26
26
  for (let [n, r] of Object.entries(e.a)) r != null && r !== !1 && t.setAttribute(n, r === !0 ? "" : String(r));
27
27
  for (let [n, r] of Object.entries(e.on || {})) t.addEventListener(n, r);
28
- for (let r of e.c) t.appendChild($(r, n));
28
+ for (let r of e.c) t.appendChild(Z(r, n));
29
29
  return t;
30
30
  }
31
31
  if (e && typeof e.nodeType == "number") return e;
32
32
  throw TypeError("toDom: unsupported child");
33
33
  }
34
- function Ze(e, t) {
34
+ function et(e, t) {
35
35
  let n = (t || document).getElementById(String(e || "stack-main").replace(/[^A-Za-z0-9_-]/g, "-"));
36
36
  n && typeof n.focus == "function" && n.focus({ preventScroll: !0 });
37
37
  }
38
- Object.freeze(Object.fromEntries(Object.entries(o).map(([e, t]) => [e, (e, n) => $(t(e || {}), n)])));
38
+ Object.freeze(Object.fromEntries(Object.entries(d).map(([e, t]) => [e, (e, n) => Z(t(e || {}), n)])));
39
+ //#endregion
40
+ //#region src/navigation.ts
41
+ var Q = [
42
+ "Run",
43
+ "Build",
44
+ "Operate",
45
+ "Settings"
46
+ ], $ = [
47
+ {
48
+ path: "/overview",
49
+ label: "Overview",
50
+ group: "Run",
51
+ capabilities: ["overview.instance"]
52
+ },
53
+ {
54
+ path: "/data",
55
+ label: "Data",
56
+ group: "Run",
57
+ capabilities: ["data.records.browse"]
58
+ },
59
+ {
60
+ path: "/executions",
61
+ label: "Executions",
62
+ group: "Run"
63
+ },
64
+ {
65
+ path: "/activity",
66
+ label: "Activity",
67
+ group: "Run",
68
+ live: !0
69
+ },
70
+ {
71
+ path: "/",
72
+ label: "Application",
73
+ group: "Build"
74
+ },
75
+ {
76
+ path: "/contract",
77
+ label: "Schema",
78
+ group: "Build"
79
+ },
80
+ {
81
+ path: "/capabilities",
82
+ label: "Capabilities",
83
+ group: "Build"
84
+ },
85
+ {
86
+ path: "/policies",
87
+ label: "Policies",
88
+ group: "Build"
89
+ },
90
+ {
91
+ path: "/workflows",
92
+ label: "Workflows",
93
+ group: "Build"
94
+ },
95
+ {
96
+ path: "/agent-definitions",
97
+ label: "Agents",
98
+ group: "Build"
99
+ },
100
+ {
101
+ path: "/modules",
102
+ label: "Modules",
103
+ group: "Build"
104
+ },
105
+ {
106
+ path: "/proposals",
107
+ label: "Proposals",
108
+ group: "Build",
109
+ requiresApplication: !0
110
+ },
111
+ {
112
+ path: "/state",
113
+ label: "State",
114
+ group: "Operate",
115
+ capabilities: ["state.resources.list", "state.history"]
116
+ },
117
+ {
118
+ path: "/operations",
119
+ label: "Operations",
120
+ group: "Operate",
121
+ capabilities: [
122
+ "provenance.transactions",
123
+ "operations.recent",
124
+ "operations.events"
125
+ ]
126
+ },
127
+ {
128
+ path: "/schema",
129
+ label: "Instance schema",
130
+ group: "Operate",
131
+ capabilities: ["data.schema.inspect"]
132
+ },
133
+ {
134
+ path: "/agents",
135
+ label: "Agent principals",
136
+ group: "Operate",
137
+ capabilities: ["agents.list"]
138
+ },
139
+ {
140
+ path: "/replication",
141
+ label: "Replication",
142
+ group: "Operate",
143
+ capabilities: ["replication.health"]
144
+ },
145
+ {
146
+ path: "/applications",
147
+ label: "Applications",
148
+ group: "Operate",
149
+ capabilities: ["applications.list"]
150
+ },
151
+ {
152
+ path: "/monitoring",
153
+ label: "Monitoring",
154
+ group: "Operate",
155
+ capabilities: ["monitoring.metrics", "monitoring.latency"]
156
+ },
157
+ {
158
+ path: "/connection",
159
+ label: "Connection",
160
+ group: "Settings"
161
+ },
162
+ {
163
+ path: "/settings",
164
+ label: "Instance",
165
+ group: "Settings"
166
+ },
167
+ {
168
+ path: "/api-keys",
169
+ label: "API keys",
170
+ group: "Settings"
171
+ },
172
+ {
173
+ path: "/developer",
174
+ label: "Developer access",
175
+ group: "Settings",
176
+ capabilities: ["developer.access"]
177
+ }
178
+ ];
179
+ function tt(e) {
180
+ return $.filter((t) => !t.live || e.liveActivity).map((t) => t.requiresApplication && !e.applicationSelected ? {
181
+ destination: t,
182
+ available: !1,
183
+ reason: "Needs a deployed application"
184
+ } : t.capabilities && e.usable && !t.capabilities.some(e.usable) ? {
185
+ destination: t,
186
+ available: !1,
187
+ reason: "Not part of this instance"
188
+ } : {
189
+ destination: t,
190
+ available: !0,
191
+ reason: ""
192
+ }).sort((e, t) => Q.indexOf(e.destination.group) - Q.indexOf(t.destination.group));
193
+ }
194
+ function nt(e) {
195
+ return $.find((t) => t.path === e);
196
+ }
39
197
  //#endregion
40
198
  //#region src/components/RouteErrorBoundary.tsx
41
- var Qe = class extends We.Component {
199
+ var rt = class extends Je.Component {
42
200
  constructor(...e) {
43
201
  super(...e), this.state = {};
44
202
  }
@@ -50,17 +208,17 @@ var Qe = class extends We.Component {
50
208
  }
51
209
  render() {
52
210
  let { error: e } = this.state;
53
- return e ? /* @__PURE__ */ Q("section", {
211
+ return e ? /* @__PURE__ */ X("section", {
54
212
  role: "alert",
55
213
  className: "cp-notice",
56
214
  children: [
57
- /* @__PURE__ */ Z("h2", { children: "This screen could not be displayed" }),
58
- /* @__PURE__ */ Z("p", { children: e.message || "An unexpected error occurred while rendering this screen." }),
59
- /* @__PURE__ */ Z("p", {
215
+ /* @__PURE__ */ Y("h2", { children: "This screen could not be displayed" }),
216
+ /* @__PURE__ */ Y("p", { children: e.message || "An unexpected error occurred while rendering this screen." }),
217
+ /* @__PURE__ */ Y("p", {
60
218
  className: "cp-muted",
61
219
  children: "The rest of Studio is unaffected. Choose another screen from the navigation, or reload to try again."
62
220
  }),
63
- /* @__PURE__ */ Z("button", {
221
+ /* @__PURE__ */ Y("button", {
64
222
  className: "btn btn-ghost",
65
223
  onClick: () => this.setState({ error: void 0 }),
66
224
  children: "Try again"
@@ -69,16 +227,16 @@ var Qe = class extends We.Component {
69
227
  }) : this.props.children;
70
228
  }
71
229
  };
72
- function $e({ children: e }) {
73
- let { pathname: t } = X();
74
- return /* @__PURE__ */ Z(Qe, {
230
+ function it({ children: e }) {
231
+ let { pathname: t } = q();
232
+ return /* @__PURE__ */ Y(rt, {
75
233
  routeKey: t,
76
234
  children: e
77
235
  }, t);
78
236
  }
79
237
  //#endregion
80
238
  //#region src/app.tsx
81
- function et(e) {
239
+ function at(e) {
82
240
  return e.explicitAuthority ? {
83
241
  source: "explicit-authority",
84
242
  authorityUrl: e.explicitAuthority
@@ -93,108 +251,92 @@ function et(e) {
93
251
  authorityUrl: ""
94
252
  };
95
253
  }
96
- function tt({ registration: e }) {
97
- return /* @__PURE__ */ Q("div", {
254
+ function ot({ registration: e, session: t = "reachable", applicationUrl: n }) {
255
+ return e ? /* @__PURE__ */ X("div", {
256
+ className: "runtime-notice",
257
+ "data-connection": "connected",
258
+ children: ["Application connection: Connected ✓", e.namespace ? ` (namespace ${e.namespace})` : ""]
259
+ }) : t === "unreachable" ? /* @__PURE__ */ X("div", {
98
260
  className: "runtime-notice",
99
- children: ["Application connection: ", e ? `Connected ✓${e.namespace ? ` (namespace ${e.namespace})` : ""}` : "Not connected"]
261
+ "data-connection": "session-unreachable",
262
+ children: [
263
+ "Application connection: unknown — Studio cannot reach the ",
264
+ /* @__PURE__ */ Y("code", { children: "feltdb dev" }),
265
+ " session. Check that it is still running, then reload."
266
+ ]
267
+ }) : /* @__PURE__ */ X("div", {
268
+ className: "runtime-notice",
269
+ "data-connection": "waiting",
270
+ children: [
271
+ "Application connection: waiting for the application.",
272
+ " ",
273
+ n ? /* @__PURE__ */ X(J, { children: [
274
+ "Open it at ",
275
+ /* @__PURE__ */ Y("a", {
276
+ href: n,
277
+ target: "_blank",
278
+ rel: "noreferrer",
279
+ children: n
280
+ }),
281
+ ". "
282
+ ] }) : "Open the application. ",
283
+ "If it is already open, its browser console names what keeps it from connecting."
284
+ ]
100
285
  });
101
286
  }
102
- var nt = [
103
- {
104
- path: "/overview",
105
- label: "Overview"
106
- },
107
- {
108
- path: "/data",
109
- label: "Data"
110
- },
111
- {
112
- path: "/schema",
113
- label: "Schema"
114
- },
115
- {
116
- path: "/agents",
117
- label: "Agents"
118
- },
119
- {
120
- path: "/state",
121
- label: "State"
122
- },
123
- {
124
- path: "/operations",
125
- label: "Operations"
126
- },
127
- {
128
- path: "/replication",
129
- label: "Replication"
130
- },
131
- {
132
- path: "/applications",
133
- label: "Applications"
134
- },
135
- {
136
- path: "/monitoring",
137
- label: "Monitoring"
138
- },
139
- {
140
- path: "/settings",
141
- label: "Settings"
142
- },
143
- {
144
- path: "/developer",
145
- label: "Developer"
146
- }
147
- ];
148
- function rt({ db: e, remoteUrl: t = "", token: n = "", namespace: r = "default", deploymentRuntime: i = "browser", applicationUrl: a = "", applicationId: o = "", environment: s = "production", developmentSession: l, managedPublish: u, sourceSync: d, onConnect: f }) {
149
- let [p, h] = J(null), g = P(e || null, r), [v, y] = J([]), [C, w] = J([]), [T, te] = J(0), [j, M] = J();
150
- q(() => {
287
+ function st({ db: e, remoteUrl: t = "", token: n = "", namespace: r = "default", deploymentRuntime: i = "browser", applicationUrl: a = "", applicationId: o = "", environment: s = "production", developmentSession: c, managedPublish: l, sourceSync: d, onConnect: f }) {
288
+ let [p, h] = G(null), g = j(e || null, r), [_, v] = G([]), [ne, x] = G("reachable"), [S, D] = G([]), [O, ae] = G(0), [oe, k] = G();
289
+ W(() => {
151
290
  let t = !0;
152
291
  return fetch("/_feltdb/project", { cache: "no-store" }).then(async (e) => {
153
292
  if (!e.ok) throw Error("No project model endpoint");
154
293
  let n = await e.json();
155
- t && h(Xe(n.source));
294
+ t && h($e(n.source));
156
295
  }).catch(async () => {
157
296
  let n = e ? await e.collection("_flow_apps").all() : [];
158
297
  t && n[0]?.spec && h(n[0].spec);
159
298
  }), () => {
160
299
  t = !1;
161
300
  };
162
- }, [e]), q(() => {
163
- if (!l?.sessionId) return;
164
- let e = !0, t = () => void fetch("/_feltdb/runtime", { cache: "no-store" }).then((e) => e.ok ? e.json() : { runtimes: [] }).then((t) => {
165
- e && y(t.runtimes || []);
301
+ }, [e]), W(() => {
302
+ if (!c?.sessionId) return;
303
+ let e = !0, t = () => void fetch("/_feltdb/runtime", { cache: "no-store" }).then((e) => {
304
+ if (!e.ok) throw Error(`development session answered ${e.status}`);
305
+ return e.json();
306
+ }).then((t) => {
307
+ e && (x("reachable"), v(t.runtimes || []));
166
308
  }).catch(() => {
167
- e && y([]);
309
+ e && (x("unreachable"), v([]));
168
310
  });
169
311
  t();
170
312
  let n = window.setInterval(t, 2e3);
171
313
  return () => {
172
314
  e = !1, window.clearInterval(n);
173
315
  };
174
- }, [l?.sessionId]), q(() => {
175
- let e = v[0]?.runtimeInstanceId;
316
+ }, [c?.sessionId]), W(() => {
317
+ let e = _[0]?.runtimeInstanceId;
176
318
  if (!e) {
177
- w([]);
319
+ D([]);
178
320
  return;
179
321
  }
180
322
  let t = !0, n = 0, r = () => void fetch(`/_feltdb/observations?runtimeInstanceId=${encodeURIComponent(e)}&cursor=${n}&limit=100`, { cache: "no-store" }).then((e) => e.ok ? e.json() : { observations: [] }).then((e) => {
181
- t && (n = e.nextCursor ?? n, te(e.dropped || 0), w((t) => [...t, ...e.observations || []].slice(-200)));
323
+ t && (n = e.nextCursor ?? n, ae(e.dropped || 0), D((t) => [...t, ...e.observations || []].slice(-200)));
182
324
  }).catch(() => void 0);
183
325
  r();
184
326
  let i = window.setInterval(r, 1e3);
185
327
  return () => {
186
328
  t = !1, window.clearInterval(i);
187
329
  };
188
- }, [v[0]?.runtimeInstanceId]);
189
- let N = (e, t) => {
190
- M({
330
+ }, [_[0]?.runtimeInstanceId]);
331
+ let A = (e, t) => {
332
+ k({
191
333
  collection: e,
192
334
  id: t
193
335
  });
194
336
  let n = window.location.search;
195
337
  window.history.pushState({}, "", `/data${n}`), window.dispatchEvent(new PopStateEvent("popstate"));
196
338
  };
197
- return /* @__PURE__ */ Z(c, {
339
+ return /* @__PURE__ */ Y(u, {
198
340
  options: {
199
341
  baseUrl: t,
200
342
  token: n,
@@ -202,285 +344,280 @@ function rt({ db: e, remoteUrl: t = "", token: n = "", namespace: r = "default",
202
344
  environment: s
203
345
  },
204
346
  runtime: i,
205
- children: /* @__PURE__ */ Z(Ke, { children: /* @__PURE__ */ Z(at, {
347
+ children: /* @__PURE__ */ Y(Xe, { children: /* @__PURE__ */ Y(lt, {
206
348
  namespace: g?.namespace,
207
- liveActivity: !!l?.sessionId,
208
- search: /* @__PURE__ */ Z(R, {
349
+ liveActivity: !!c?.sessionId,
350
+ applicationSelected: !!o,
351
+ search: /* @__PURE__ */ Y(F, {
209
352
  db: e,
210
353
  model: p
211
354
  }),
212
- children: /* @__PURE__ */ Q("div", {
355
+ children: /* @__PURE__ */ X("div", {
213
356
  className: "studio-content",
214
- children: [l?.sessionId && /* @__PURE__ */ Z(tt, { registration: v[0] }), /* @__PURE__ */ Z($e, { children: /* @__PURE__ */ Q(qe, { children: [
215
- /* @__PURE__ */ Z(Y, {
357
+ children: [c?.sessionId && /* @__PURE__ */ Y(ot, {
358
+ registration: _[0],
359
+ session: ne,
360
+ applicationUrl: a
361
+ }), /* @__PURE__ */ Y(it, { children: /* @__PURE__ */ X(Ze, { children: [
362
+ /* @__PURE__ */ Y(K, {
216
363
  path: "/overview",
217
- element: /* @__PURE__ */ Z(m, {})
364
+ element: /* @__PURE__ */ Y(m, {})
218
365
  }),
219
- /* @__PURE__ */ Z(Y, {
366
+ /* @__PURE__ */ Y(K, {
220
367
  path: "/data",
221
- element: /* @__PURE__ */ Z(b, {
222
- focus: j,
223
- onFocusHandled: () => M(void 0)
368
+ element: /* @__PURE__ */ Y(te, {
369
+ focus: oe,
370
+ onFocusHandled: () => k(void 0)
224
371
  })
225
372
  }),
226
- /* @__PURE__ */ Z(Y, {
373
+ /* @__PURE__ */ Y(K, {
227
374
  path: "/schema",
228
- element: /* @__PURE__ */ Z(x, {})
375
+ element: /* @__PURE__ */ Y(y, {})
229
376
  }),
230
- /* @__PURE__ */ Z(Y, {
377
+ /* @__PURE__ */ Y(K, {
231
378
  path: "/agents",
232
- element: /* @__PURE__ */ Z(ee, { onOpenRecord: N })
379
+ element: /* @__PURE__ */ Y(re, { onOpenRecord: A })
233
380
  }),
234
- /* @__PURE__ */ Z(Y, {
381
+ /* @__PURE__ */ Y(K, {
235
382
  path: "/state",
236
- element: /* @__PURE__ */ Z(O, {})
383
+ element: /* @__PURE__ */ Y(T, {})
237
384
  }),
238
- /* @__PURE__ */ Z(Y, {
385
+ /* @__PURE__ */ Y(K, {
239
386
  path: "/operations",
240
- element: /* @__PURE__ */ Z(_, { onOpenRecord: N })
387
+ element: /* @__PURE__ */ Y(ee, { onOpenRecord: A })
241
388
  }),
242
- /* @__PURE__ */ Z(Y, {
389
+ /* @__PURE__ */ Y(K, {
243
390
  path: "/replication",
244
- element: /* @__PURE__ */ Z(S, {})
391
+ element: /* @__PURE__ */ Y(b, {})
245
392
  }),
246
- /* @__PURE__ */ Z(Y, {
393
+ /* @__PURE__ */ Y(K, {
247
394
  path: "/applications",
248
- element: /* @__PURE__ */ Z(A, {})
395
+ element: /* @__PURE__ */ Y(ie, {})
249
396
  }),
250
- /* @__PURE__ */ Z(Y, {
397
+ /* @__PURE__ */ Y(K, {
251
398
  path: "/monitoring",
252
- element: /* @__PURE__ */ Z(k, {})
399
+ element: /* @__PURE__ */ Y(E, {})
253
400
  }),
254
- /* @__PURE__ */ Z(Y, {
401
+ /* @__PURE__ */ Y(K, {
255
402
  path: "/settings",
256
- element: /* @__PURE__ */ Z(D, {})
403
+ element: /* @__PURE__ */ Y(w, {})
257
404
  }),
258
- /* @__PURE__ */ Z(Y, {
405
+ /* @__PURE__ */ Y(K, {
259
406
  path: "/developer",
260
- element: /* @__PURE__ */ Z(E, {})
407
+ element: /* @__PURE__ */ Y(C, {})
261
408
  }),
262
- /* @__PURE__ */ Z(Y, {
409
+ /* @__PURE__ */ Y(K, {
263
410
  path: "/",
264
- element: /* @__PURE__ */ Q(Ye, { children: [/* @__PURE__ */ Z(V, {
411
+ element: /* @__PURE__ */ X(J, { children: [/* @__PURE__ */ Y(R, {
265
412
  configuration: d,
266
413
  onApplied: () => window.location.reload()
267
- }), /* @__PURE__ */ Z(z, {
414
+ }), /* @__PURE__ */ Y(I, {
268
415
  db: e,
269
416
  namespace: r,
270
417
  projectSpec: p,
271
- managedPublish: u,
418
+ managedPublish: l,
272
419
  onSpecChange: h
273
420
  })] })
274
421
  }),
275
- /* @__PURE__ */ Z(Y, {
422
+ /* @__PURE__ */ Y(K, {
276
423
  path: "/capabilities",
277
- element: /* @__PURE__ */ Z(B, {
424
+ element: /* @__PURE__ */ Y(L, {
278
425
  db: e,
279
426
  model: p
280
427
  })
281
428
  }),
282
- /* @__PURE__ */ Z(Y, {
429
+ /* @__PURE__ */ Y(K, {
283
430
  path: "/contract",
284
- element: /* @__PURE__ */ Z(U, {
431
+ element: /* @__PURE__ */ Y(B, {
285
432
  model: p,
286
433
  section: "schema"
287
434
  })
288
435
  }),
289
- /* @__PURE__ */ Z(Y, {
436
+ /* @__PURE__ */ Y(K, {
290
437
  path: "/policies",
291
- element: /* @__PURE__ */ Z(U, {
438
+ element: /* @__PURE__ */ Y(B, {
292
439
  model: p,
293
440
  section: "policies"
294
441
  })
295
442
  }),
296
- /* @__PURE__ */ Z(Y, {
443
+ /* @__PURE__ */ Y(K, {
297
444
  path: "/workflows",
298
- element: /* @__PURE__ */ Z(G, {
445
+ element: /* @__PURE__ */ Y(H, {
299
446
  db: e,
300
447
  model: p
301
448
  })
302
449
  }),
303
- /* @__PURE__ */ Z(Y, {
450
+ /* @__PURE__ */ Y(K, {
304
451
  path: "/agent-definitions",
305
- element: /* @__PURE__ */ Z(W, {
452
+ element: /* @__PURE__ */ Y(V, {
306
453
  db: e,
307
454
  model: p
308
455
  })
309
456
  }),
310
- /* @__PURE__ */ Z(Y, {
457
+ /* @__PURE__ */ Y(K, {
311
458
  path: "/modules",
312
- element: /* @__PURE__ */ Z(L, { model: p })
459
+ element: /* @__PURE__ */ Y(P, { model: p })
313
460
  }),
314
- /* @__PURE__ */ Z(Y, {
461
+ /* @__PURE__ */ Y(K, {
315
462
  path: "/executions",
316
- element: /* @__PURE__ */ Z(I, {
463
+ element: /* @__PURE__ */ Y(N, {
317
464
  db: e,
318
465
  model: p
319
466
  })
320
467
  }),
321
- /* @__PURE__ */ Z(Y, {
468
+ /* @__PURE__ */ Y(K, {
322
469
  path: "/proposals",
323
- element: o ? /* @__PURE__ */ Z(H, {
470
+ element: o ? /* @__PURE__ */ Y(z, {
324
471
  serviceUrl: t,
325
472
  token: n,
326
473
  applicationId: o,
327
474
  environment: s,
328
475
  applicationName: p?.app,
329
476
  sourceSync: d
330
- }) : /* @__PURE__ */ Z("div", {
477
+ }) : /* @__PURE__ */ X("div", {
331
478
  className: "model-empty",
332
- children: "No active application is selected."
479
+ children: [/* @__PURE__ */ Y("h1", { children: "Proposals" }), /* @__PURE__ */ X("p", { children: [
480
+ "Proposals review changes to a deployed application before they are promoted. A development session applies changes to ",
481
+ /* @__PURE__ */ Y("code", { children: "feltdb.flow" }),
482
+ " directly, so there is nothing to review here; connect Studio to a deployed application to see its proposals."
483
+ ] })]
333
484
  })
334
485
  }),
335
- /* @__PURE__ */ Z(Y, {
486
+ /* @__PURE__ */ Y(K, {
336
487
  path: "/activity",
337
- element: /* @__PURE__ */ Q("div", {
488
+ element: /* @__PURE__ */ X("div", {
338
489
  className: "runtime-activity",
339
490
  children: [
340
- /* @__PURE__ */ Z("h1", { children: "Live Activity" }),
341
- /* @__PURE__ */ Q("p", { children: [
342
- C.some((e) => Date.now() - e.timestamp < 5e3) ? "Active" : "Idle",
491
+ /* @__PURE__ */ Y("h1", { children: "Live Activity" }),
492
+ /* @__PURE__ */ X("p", { children: [
493
+ S.some((e) => Date.now() - e.timestamp < 5e3) ? "Active" : "Idle",
343
494
  " · FeltDB client instance ",
344
- v[0]?.runtimeInstanceId || "not connected"
495
+ _[0]?.runtimeInstanceId || "not connected"
345
496
  ] }),
346
- T > 0 && /* @__PURE__ */ Q("p", {
497
+ O > 0 && /* @__PURE__ */ X("p", {
347
498
  className: "runtime-notice",
348
499
  children: [
349
500
  "Observation is incomplete: ",
350
- T,
501
+ O,
351
502
  " events dropped."
352
503
  ]
353
504
  }),
354
- /* @__PURE__ */ Q("table", { children: [/* @__PURE__ */ Z("thead", { children: /* @__PURE__ */ Q("tr", { children: [
355
- /* @__PURE__ */ Z("th", { children: "Time" }),
356
- /* @__PURE__ */ Z("th", { children: "Operation" }),
357
- /* @__PURE__ */ Z("th", { children: "Collection" }),
358
- /* @__PURE__ */ Z("th", { children: "Status" }),
359
- /* @__PURE__ */ Z("th", { children: "Duration" })
360
- ] }) }), /* @__PURE__ */ Z("tbody", { children: [...C].reverse().map((e) => /* @__PURE__ */ Q("tr", { children: [
361
- /* @__PURE__ */ Z("td", { children: new Date(e.timestamp).toLocaleTimeString() }),
362
- /* @__PURE__ */ Z("td", { children: e.operation?.type }),
363
- /* @__PURE__ */ Z("td", { children: e.operation?.collection || "—" }),
364
- /* @__PURE__ */ Z("td", { children: e.status }),
365
- /* @__PURE__ */ Z("td", { children: e.durationMs === void 0 ? "—" : `${e.durationMs} ms` })
505
+ /* @__PURE__ */ X("table", { children: [/* @__PURE__ */ Y("thead", { children: /* @__PURE__ */ X("tr", { children: [
506
+ /* @__PURE__ */ Y("th", { children: "Time" }),
507
+ /* @__PURE__ */ Y("th", { children: "Operation" }),
508
+ /* @__PURE__ */ Y("th", { children: "Collection" }),
509
+ /* @__PURE__ */ Y("th", { children: "Status" }),
510
+ /* @__PURE__ */ Y("th", { children: "Duration" })
511
+ ] }) }), /* @__PURE__ */ Y("tbody", { children: [...S].reverse().map((e) => /* @__PURE__ */ X("tr", { children: [
512
+ /* @__PURE__ */ Y("td", { children: new Date(e.timestamp).toLocaleTimeString() }),
513
+ /* @__PURE__ */ Y("td", { children: e.operation?.type }),
514
+ /* @__PURE__ */ Y("td", { children: e.operation?.collection || "—" }),
515
+ /* @__PURE__ */ Y("td", { children: e.status }),
516
+ /* @__PURE__ */ Y("td", { children: e.durationMs === void 0 ? "—" : `${e.durationMs} ms` })
366
517
  ] }, e.cursor || e.eventId)) })] })
367
518
  ]
368
519
  })
369
520
  }),
370
- /* @__PURE__ */ Z(Y, {
521
+ /* @__PURE__ */ Y(K, {
371
522
  path: "/connection",
372
- element: /* @__PURE__ */ Z(F, {
523
+ element: /* @__PURE__ */ Y(M, {
373
524
  db: e,
374
525
  remoteUrl: t,
375
526
  token: n,
376
527
  applicationUrl: a,
377
528
  feltDBRuntime: i,
378
- authorityUrl: l?.authorityUrl || t,
529
+ authorityUrl: c?.authorityUrl || t,
379
530
  onConnect: f
380
531
  })
381
532
  }),
382
- /* @__PURE__ */ Z(Y, {
533
+ /* @__PURE__ */ Y(K, {
383
534
  path: "/api-keys",
384
- element: /* @__PURE__ */ Q("div", {
535
+ element: /* @__PURE__ */ X("div", {
385
536
  style: { padding: "2rem" },
386
- children: [/* @__PURE__ */ Z("h1", { children: "API Key Management" }), /* @__PURE__ */ Z(K, {
537
+ children: [/* @__PURE__ */ Y("h1", { children: "API keys" }), /* @__PURE__ */ Y(U, {
387
538
  apiUrl: t,
388
539
  token: n,
389
540
  namespace: r,
390
- onConfigure: () => window.location.assign("/connection")
541
+ onConfigure: () => window.location.assign(`/connection${window.location.search}`)
391
542
  })]
392
543
  })
544
+ }),
545
+ /* @__PURE__ */ Y(K, {
546
+ path: "*",
547
+ element: /* @__PURE__ */ Y(ct, {})
393
548
  })
394
549
  ] }) })]
395
550
  })
396
551
  }) })
397
552
  });
398
553
  }
399
- var it = [
400
- {
401
- path: "/",
402
- label: "Application"
403
- },
404
- {
405
- path: "/capabilities",
406
- label: "Capabilities"
407
- },
408
- {
409
- path: "/contract",
410
- label: "Contract"
411
- },
412
- {
413
- path: "/policies",
414
- label: "Policies"
415
- },
416
- {
417
- path: "/workflows",
418
- label: "Workflows"
419
- },
420
- {
421
- path: "/agent-definitions",
422
- label: "Agent definitions"
423
- },
424
- {
425
- path: "/modules",
426
- label: "Modules"
427
- },
428
- {
429
- path: "/proposals",
430
- label: "Proposals"
431
- },
432
- {
433
- path: "/activity",
434
- label: "Live Activity",
435
- live: !0
436
- },
437
- {
438
- path: "/executions",
439
- label: "Executions"
440
- },
441
- {
442
- path: "/connection",
443
- label: "Connection"
444
- },
445
- {
446
- path: "/api-keys",
447
- label: "API Keys"
448
- }
449
- ];
450
- function at({ namespace: e, liveActivity: t, search: n, children: r }) {
451
- let i = X(), o = Je(), s = Ge(!0);
452
- q(() => {
453
- if (s.current) {
454
- s.current = !1;
554
+ function ct() {
555
+ let e = q();
556
+ return /* @__PURE__ */ X("div", {
557
+ className: "model-empty",
558
+ "data-route": "not-found",
559
+ children: [
560
+ /* @__PURE__ */ Y("h1", { children: "No such page in Studio" }),
561
+ /* @__PURE__ */ X("p", { children: [
562
+ "Studio has no screen at ",
563
+ /* @__PURE__ */ Y("code", { children: e.pathname }),
564
+ "."
565
+ ] }),
566
+ /* @__PURE__ */ Y("p", { children: /* @__PURE__ */ Y("a", {
567
+ href: `/overview${e.search}`,
568
+ children: "Go to the overview"
569
+ }) })
570
+ ]
571
+ });
572
+ }
573
+ function lt({ namespace: e, liveActivity: t, applicationSelected: n, search: r, children: a }) {
574
+ let s = q(), { capabilities: c } = i(), l = Qe(), u = Ye(!0);
575
+ W(() => {
576
+ if (u.current) {
577
+ u.current = !1;
455
578
  return;
456
579
  }
457
- Ze("studio-main");
458
- }, [i.pathname]);
459
- let c = (e) => (t, n) => ({
460
- id: t.path,
461
- label: t.label,
462
- href: `${t.path}${i.search}`,
463
- group: e,
464
- order: n,
465
- current: i.pathname === t.path
466
- });
467
- return /* @__PURE__ */ Z(a, {
580
+ et("studio-main");
581
+ }, [s.pathname]);
582
+ let d = tt({
583
+ usable: c.loaded ? (e) => c.usable(e) : null,
584
+ liveActivity: t,
585
+ applicationSelected: n
586
+ }).map(({ destination: e, available: t, reason: n }, r) => ({
587
+ id: e.path,
588
+ label: t ? e.label : /* @__PURE__ */ X(J, { children: [e.label, /* @__PURE__ */ X("span", {
589
+ className: "nav-note",
590
+ children: [" · ", n.toLowerCase()]
591
+ })] }),
592
+ href: `${e.path}${s.search}`,
593
+ group: e.group,
594
+ order: r,
595
+ current: s.pathname === e.path,
596
+ ...t ? {} : {
597
+ className: "nav-unavailable",
598
+ attrs: {
599
+ title: n,
600
+ "data-availability": "unavailable"
601
+ }
602
+ }
603
+ }));
604
+ return /* @__PURE__ */ Y(o, {
468
605
  product: {
469
606
  name: "FeltDB Studio",
470
- homeHref: `/overview${i.search}`,
607
+ homeHref: `/overview${s.search}`,
471
608
  mark: "F"
472
609
  },
473
610
  mainId: "studio-main",
474
- context: e ? /* @__PURE__ */ Z("span", {
611
+ context: e ? /* @__PURE__ */ Y("span", {
475
612
  className: "instance-info",
476
613
  title: "Namespace",
477
614
  children: e
478
615
  }) : void 0,
479
- search: n,
480
- navigation: [...nt.map(c("Operate")), ...it.filter((e) => !e.live || t).map(c("Design"))],
481
- onNavigate: (e) => o(e),
482
- children: r
616
+ search: r,
617
+ navigation: d,
618
+ onNavigate: (e) => l(e),
619
+ children: a
483
620
  });
484
621
  }
485
622
  //#endregion
486
- export { W as AgentExplorer, ee as Agents, tt as ApplicationConnectionNotice, z as ApplicationDesigner, A as Applications, V as AskFeltDB, M as BrowserRuntimeNotice, B as CapabilityExplorer, De as CapabilitySet, re as Capable, v as CommittedRevision, pe as ConflictExplorer, U as ContractInspector, Oe as ControlPlaneApi, ke as ControlPlaneError, c as ControlPlaneProvider, b as DataBrowser, E as Developer, g as Empty, I as ExecutionViewer, ne as Failure, R as GlobalSearch, he as HealthCenter, y as INTEGRITY_CHECK, f as Identity, m as InstanceOverview, t as Json, K as KeyManagementPanel, N as Loading, Ne as ManagedInstancePanel, Me as ManagedInstanceUtil, L as ModuleExplorer, k as Monitoring, _ as OperationsConsole, se as OperationsExplorer, ce as OverviewDashboard, p as Page, r as PartialNotice, n as Path, ue as PeerMap, H as ProposalBrowser, de as ProvenanceViewer, fe as ReferenceExplorer, S as Replication, h as ReplicationHealthUnavailable, x as SchemaExplorer, ve as ServiceApiError, D as Settings, F as SettingsPanel, l as Stat, me as StateExplorer, O as StateWorkbench, w as StatusPill, rt as StudioApp, we as StudioProposalApi, ye as StudioServiceApi, e as Tabs, C as Timestamp, T as TransactionObservabilityUnavailable, s as Unavailable, G as WorkflowVisualizer, Pe as capitalize, Ae as controlPlaneErrorMessage, le as dataCollectionLocation, Fe as fetchDashboardStats, Ie as fetchDiagnostics, Le as fetchPeers, Re as fetchProvenance, ze as formatBytes, Be as formatReference, Ve as formatRelativeTime, je as formatStatePath, He as formatTime, be as isSecretField, j as operationsAvailability, Te as proposalErrorMessage, Ee as proposalSections, te as replicationAvailability, xe as resolveStudioApplicationId, et as resolveStudioConnection, Se as safeDisplayValue, Ue as searchReferences, Ce as serviceApiErrorMessage, _e as useCollection, u as useControlPlane, i as useControlPlaneResource, ae as useDashboardStats, P as useFeltDB, ge as usePeers, oe as useProvenance, ie as useRuntimeDiagnostics };
623
+ export { V as AgentExplorer, re as Agents, ot as ApplicationConnectionNotice, I as ApplicationDesigner, ie as Applications, R as AskFeltDB, ae as BrowserRuntimeNotice, L as CapabilityExplorer, je as CapabilitySet, A as Capable, _ as CommittedRevision, _e as ConflictExplorer, B as ContractInspector, Me as ControlPlaneApi, Ne as ControlPlaneError, u as ControlPlaneProvider, te as DataBrowser, C as Developer, g as Disconnected, k as Empty, N as ExecutionViewer, f as Failure, F as GlobalSearch, ye as HealthCenter, v as INTEGRITY_CHECK, t as Identity, m as InstanceOverview, oe as Json, U as KeyManagementPanel, p as Loading, Le as ManagedInstancePanel, Ie as ManagedInstanceUtil, P as ModuleExplorer, E as Monitoring, ee as OperationsConsole, de as OperationsExplorer, fe as OverviewDashboard, r as Page, n as PartialNotice, l as Path, me as PeerMap, z as ProposalBrowser, he as ProvenanceViewer, ge as ReferenceExplorer, b as Replication, h as ReplicationHealthUnavailable, Q as STUDIO_GROUPS, $ as STUDIO_NAVIGATION, y as SchemaExplorer, Se as ServiceApiError, w as Settings, M as SettingsPanel, x as Stat, ve as StateExplorer, T as StateWorkbench, e as StatusPill, st as StudioApp, Oe as StudioProposalApi, Ce as StudioServiceApi, ne as Tabs, s as Timestamp, S as TransactionObservabilityUnavailable, c as Unavailable, H as WorkflowVisualizer, Re as capitalize, Pe as controlPlaneErrorMessage, pe as dataCollectionLocation, ze as fetchDashboardStats, Be as fetchDiagnostics, Ve as fetchPeers, He as fetchProvenance, Ue as formatBytes, We as formatReference, Ge as formatRelativeTime, Fe as formatStatePath, Ke as formatTime, we as isSecretField, O as operationsAvailability, ke as proposalErrorMessage, Ae as proposalSections, D as replicationAvailability, Te as resolveStudioApplicationId, at as resolveStudioConnection, Ee as safeDisplayValue, qe as searchReferences, De as serviceApiErrorMessage, nt as studioDestination, tt as studioNavigation, xe as useCollection, i as useControlPlane, a as useControlPlaneResource, le as useDashboardStats, j as useFeltDB, be as usePeers, ue as useProvenance, ce as useRuntimeDiagnostics };