@feltdb/core 0.7.3 → 0.7.4
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.
- package/dist/application-development.d.ts +76 -0
- package/dist/application-development.d.ts.map +1 -0
- package/dist/application-development.js +137 -0
- package/dist/application-manifest.d.ts +5 -1
- package/dist/application-manifest.d.ts.map +1 -1
- package/dist/application-manifest.js +10 -3
- package/dist/canonical-application.d.ts +26 -0
- package/dist/canonical-application.d.ts.map +1 -0
- package/dist/canonical-application.js +45 -0
- package/dist/cli/ai-model-config.js +97 -0
- package/dist/cli/commands.js +466 -105
- package/dist/cli/index.js +1 -1
- package/dist/cli/proposal-client.js +54 -0
- package/dist/cli/publish-engine.js +162 -0
- package/dist/cli/source-sync.js +139 -0
- package/dist/create/cli.js +1 -1
- package/dist/create/create.js +30 -6
- package/dist/create/managed-account.js +14 -7
- package/dist/create/package-versions.js +1 -1
- package/dist/create/server-source/crates/feltdb/src/application.rs +31 -1
- package/dist/create/server-source/crates/feltdb/src/authority_failover.rs +84 -6
- package/dist/create/server-source/crates/feltdb/src/bin/feltdb_node.rs +126 -38
- package/dist/create/server-source/crates/feltdb/src/distributed_transactions.rs +72 -34
- package/dist/create/server-source/crates/feltdb-server/src/identity.rs +46 -3
- package/dist/create/server-source/crates/feltdb-server/src/main.rs +315 -16
- package/dist/create/server-source/crates/feltdb-server/src/tenancy.rs +20 -0
- package/dist/create/template/default-project/README.md +57 -0
- package/dist/create/template/default-project/agents/activity-assistant.ts +18 -0
- package/dist/create/template/default-project/agents/project-assistant.ts +19 -0
- package/dist/create/template/default-project/capabilities/activity-summary.ts +14 -0
- package/dist/create/template/default-project/capabilities/project-search.ts +16 -0
- package/dist/create/template/default-project/capabilities/project-summary.ts +15 -0
- package/dist/create/template/default-project/feltdb.flow +169 -0
- package/dist/create/template/default-project/src/App.tsx +20 -0
- package/dist/create/template/default-project/src/context/AuthContext.tsx +27 -0
- package/dist/create/template/default-project/src/feltdb.ts +87 -0
- package/dist/create/template/default-project/src/index.tsx +14 -0
- package/dist/create/template/default-project/src/pages/Activity.tsx +7 -0
- package/dist/create/template/default-project/src/pages/Agents.tsx +15 -0
- package/dist/create/template/default-project/src/pages/Dashboard.tsx +17 -0
- package/dist/create/template/default-project/src/pages/Invitations.tsx +11 -0
- package/dist/create/template/default-project/src/pages/Projects.tsx +11 -0
- package/dist/create/template/default-project/src/pages/SignIn.tsx +8 -0
- package/dist/create/template/default-project/src/pages/SignUp.tsx +8 -0
- package/dist/create/template/default-project/src/styles-application.css +21 -0
- package/dist/create/template/default-project/src/styles.css +1 -0
- package/dist/create/template/default-project/workflows/agent-assisted-summary.ts +1 -0
- package/dist/create/template/default-project/workflows/invitation.ts +30 -0
- package/dist/create/template/default-project/workflows/project-created.ts +2 -0
- package/dist/db.d.ts +49 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +77 -0
- package/dist/error-codes.d.ts +20 -1
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +25 -0
- package/dist/flowspec.d.ts.map +1 -1
- package/dist/flowspec.js +27 -6
- package/dist/http-db.d.ts +15 -2
- package/dist/http-db.d.ts.map +1 -1
- package/dist/http-db.js +113 -5
- package/dist/index-core.d.ts +3 -0
- package/dist/index-core.d.ts.map +1 -1
- package/dist/index-core.js +3 -0
- package/dist/proposal.d.ts +85 -0
- package/dist/proposal.d.ts.map +1 -0
- package/dist/proposal.js +105 -0
- package/dist/studio/app.d.ts +3 -1
- package/dist/studio/app.d.ts.map +1 -1
- package/dist/studio/components/ApplicationDesigner.d.ts +2 -1
- package/dist/studio/components/ApplicationDesigner.d.ts.map +1 -1
- package/dist/studio/components/AskFeltDB.d.ts +20 -0
- package/dist/studio/components/AskFeltDB.d.ts.map +1 -0
- package/dist/studio/components/ProposalBrowser.d.ts +3 -0
- package/dist/studio/components/ProposalBrowser.d.ts.map +1 -0
- package/dist/studio/components/index.d.ts +2 -0
- package/dist/studio/components/index.d.ts.map +1 -1
- package/dist/studio/components/index.js +4 -4
- package/dist/studio/{components-Dxuhrv8_.js → components-Bm4sjhcX.js} +335 -5
- package/dist/studio/index.js +168 -157
- package/dist/studio/studio.css +1 -1
- package/dist/studio-app/assets/dist-DA1MYSzp.js +1 -0
- package/dist/studio-app/assets/{feltdb_wasm-DVKsw75S.js → feltdb_wasm-B-Ccgccb.js} +1 -1
- package/dist/studio-app/assets/feltdb_wasm_bg-wH3enJIA.wasm +0 -0
- package/dist/studio-app/assets/{index-C1GWyazR.css → index-BRrmvaKw.css} +1 -1
- package/dist/studio-app/assets/index-CEIqowCh.js +42 -0
- package/dist/studio-app/assets/lib-B2_7fcn7.js +69 -0
- package/dist/studio-app/assets/worker-CARZ5g7K.js +69 -0
- package/dist/studio-app/index.html +2 -2
- package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
- package/dist/workspace/local-development-authority.d.ts +3 -0
- package/dist/workspace/local-development-authority.d.ts.map +1 -1
- package/dist/workspace/local-development-authority.js +62 -1
- package/package.json +1 -1
- package/dist/studio-app/assets/feltdb_wasm_bg-DNyNf0yy.wasm +0 -0
- package/dist/studio-app/assets/index-B5tnmvSD.js +0 -28
package/dist/studio/index.js
CHANGED
|
@@ -1,325 +1,336 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
3
|
-
import { ManagedInstanceUtil as
|
|
4
|
-
import { ManagedInstancePanel as
|
|
5
|
-
import { capitalize as
|
|
6
|
-
import { useEffect as
|
|
7
|
-
import { BrowserRouter as
|
|
8
|
-
import { jsx as
|
|
9
|
-
import { parseFlowSpec as
|
|
1
|
+
import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, x, y as S } from "./components-Bm4sjhcX.js";
|
|
2
|
+
import { t as C } from "./KeyManagementPanel-DZuSeWBK.js";
|
|
3
|
+
import { ManagedInstanceUtil as w } from "./utils/managed-instance.js";
|
|
4
|
+
import { ManagedInstancePanel as T } from "./components/ManagedInstancePanel.js";
|
|
5
|
+
import { capitalize as E, fetchDashboardStats as D, fetchDiagnostics as O, fetchPeers as k, fetchProvenance as A, formatBytes as j, formatReference as M, formatRelativeTime as N, formatTime as P, searchReferences as F } from "./utils/index.js";
|
|
6
|
+
import { useEffect as I, useState as L } from "react";
|
|
7
|
+
import { BrowserRouter as R, Link as z, Route as B, Routes as V } from "react-router-dom";
|
|
8
|
+
import { Fragment as H, jsx as U, jsxs as W } from "react/jsx-runtime";
|
|
9
|
+
import { parseFlowSpec as G } from "@feltdb/core";
|
|
10
10
|
//#region src/app.tsx
|
|
11
|
-
function
|
|
12
|
-
let [
|
|
11
|
+
function K({ db: n, remoteUrl: x = "", token: w = "", namespace: T = "default", deploymentRuntime: E = "browser", applicationUrl: D = "", developmentSession: O, managedPublish: k, sourceSync: A, onConnect: j }) {
|
|
12
|
+
let [M, N] = L(null), P = S(n || null, T), F = b(n || null, M, T), { diagnostics: K } = t(n || null), ee = i(n || null), [te, ne] = L(), q = E !== "browser" || !!x, [J, Y] = L([]), [X, Z] = L([]), [Q, re] = L(0), $ = (e) => ({
|
|
13
13
|
pathname: e,
|
|
14
14
|
search: window.location.search
|
|
15
15
|
});
|
|
16
|
-
return
|
|
16
|
+
return I(() => {
|
|
17
17
|
let e = !0;
|
|
18
18
|
return fetch("/_feltdb/project", { cache: "no-store" }).then(async (t) => {
|
|
19
19
|
if (!t.ok) throw Error("No project model endpoint");
|
|
20
20
|
let n = await t.json();
|
|
21
|
-
e &&
|
|
21
|
+
e && N(G(n.source));
|
|
22
22
|
}).catch(async () => {
|
|
23
|
-
let t =
|
|
24
|
-
e && t[0]?.spec &&
|
|
23
|
+
let t = n ? await n.collection("_flow_apps").all() : [];
|
|
24
|
+
e && t[0]?.spec && N(t[0].spec);
|
|
25
25
|
}), () => {
|
|
26
26
|
e = !1;
|
|
27
27
|
};
|
|
28
|
-
}, [
|
|
29
|
-
if (!
|
|
28
|
+
}, [n]), I(() => {
|
|
29
|
+
if (!O?.sessionId) return;
|
|
30
30
|
let e = !0, t = () => void fetch("/_feltdb/runtime", { cache: "no-store" }).then((e) => e.ok ? e.json() : { runtimes: [] }).then((t) => {
|
|
31
|
-
e &&
|
|
31
|
+
e && Y(t.runtimes || []);
|
|
32
32
|
}).catch(() => {
|
|
33
|
-
e &&
|
|
33
|
+
e && Y([]);
|
|
34
34
|
});
|
|
35
35
|
t();
|
|
36
36
|
let n = window.setInterval(t, 2e3);
|
|
37
37
|
return () => {
|
|
38
38
|
e = !1, window.clearInterval(n);
|
|
39
39
|
};
|
|
40
|
-
}, [
|
|
41
|
-
let e =
|
|
40
|
+
}, [O?.sessionId]), I(() => {
|
|
41
|
+
let e = J[0]?.runtimeInstanceId;
|
|
42
42
|
if (!e) {
|
|
43
|
-
|
|
43
|
+
Z([]);
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
46
|
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) => {
|
|
47
|
-
t && (n = e.nextCursor ?? n,
|
|
47
|
+
t && (n = e.nextCursor ?? n, re(e.dropped || 0), Z((t) => [...t, ...e.observations || []].slice(-200)));
|
|
48
48
|
}).catch(() => void 0);
|
|
49
49
|
r();
|
|
50
50
|
let i = window.setInterval(r, 1e3);
|
|
51
51
|
return () => {
|
|
52
52
|
t = !1, window.clearInterval(i);
|
|
53
53
|
};
|
|
54
|
-
}, [
|
|
54
|
+
}, [J[0]?.runtimeInstanceId]), /* @__PURE__ */ U(R, { children: /* @__PURE__ */ W("div", {
|
|
55
55
|
className: "studio-app",
|
|
56
|
-
children: [/* @__PURE__ */
|
|
56
|
+
children: [/* @__PURE__ */ W("nav", {
|
|
57
57
|
className: "studio-nav",
|
|
58
58
|
children: [
|
|
59
|
-
/* @__PURE__ */
|
|
59
|
+
/* @__PURE__ */ W("div", {
|
|
60
60
|
className: "nav-header",
|
|
61
|
-
children: [/* @__PURE__ */
|
|
61
|
+
children: [/* @__PURE__ */ U("h1", { children: "FeltDB Studio" }), P && /* @__PURE__ */ U("div", {
|
|
62
62
|
className: "instance-info",
|
|
63
|
-
children:
|
|
63
|
+
children: P.namespace
|
|
64
64
|
})]
|
|
65
65
|
}),
|
|
66
|
-
/* @__PURE__ */
|
|
66
|
+
/* @__PURE__ */ U("div", {
|
|
67
67
|
className: "nav-search",
|
|
68
|
-
children: /* @__PURE__ */
|
|
69
|
-
db:
|
|
70
|
-
model:
|
|
68
|
+
children: /* @__PURE__ */ U(u, {
|
|
69
|
+
db: n,
|
|
70
|
+
model: M
|
|
71
71
|
})
|
|
72
72
|
}),
|
|
73
|
-
/* @__PURE__ */
|
|
73
|
+
/* @__PURE__ */ W("ul", {
|
|
74
74
|
className: "nav-menu",
|
|
75
75
|
children: [
|
|
76
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ U("li", {
|
|
77
77
|
className: "nav-section",
|
|
78
78
|
children: "Design"
|
|
79
79
|
}),
|
|
80
|
-
/* @__PURE__ */
|
|
80
|
+
/* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
81
81
|
to: $("/"),
|
|
82
82
|
children: "Application"
|
|
83
83
|
}) }),
|
|
84
|
-
/* @__PURE__ */
|
|
84
|
+
/* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
85
85
|
to: $("/capabilities"),
|
|
86
86
|
children: "Capabilities"
|
|
87
87
|
}) }),
|
|
88
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
89
89
|
to: $("/workflows"),
|
|
90
90
|
children: "Workflows"
|
|
91
91
|
}) }),
|
|
92
|
-
/* @__PURE__ */
|
|
92
|
+
/* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
93
93
|
to: $("/agents"),
|
|
94
94
|
children: "Agents"
|
|
95
95
|
}) }),
|
|
96
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
97
|
+
to: $("/proposals"),
|
|
98
|
+
children: "Proposals"
|
|
99
|
+
}) }),
|
|
100
|
+
/* @__PURE__ */ U("li", {
|
|
97
101
|
className: "nav-section",
|
|
98
102
|
children: "Observe"
|
|
99
103
|
}),
|
|
100
|
-
|
|
104
|
+
O?.sessionId && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
101
105
|
to: $("/activity"),
|
|
102
106
|
children: "Live Activity"
|
|
103
107
|
}) }),
|
|
104
|
-
|
|
108
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
105
109
|
to: $("/overview"),
|
|
106
110
|
children: "Overview"
|
|
107
111
|
}) }),
|
|
108
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
109
113
|
to: $("/data"),
|
|
110
114
|
children: "Data"
|
|
111
115
|
}) }),
|
|
112
|
-
|
|
116
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
113
117
|
to: $("/references"),
|
|
114
118
|
children: "References"
|
|
115
119
|
}) }),
|
|
116
|
-
|
|
120
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
117
121
|
to: $("/operations"),
|
|
118
122
|
children: "Operations"
|
|
119
123
|
}) }),
|
|
120
|
-
|
|
124
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
121
125
|
to: $("/executions"),
|
|
122
126
|
children: "Executions"
|
|
123
127
|
}) }),
|
|
124
|
-
|
|
128
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
125
129
|
to: $("/peers"),
|
|
126
130
|
children: "Peers"
|
|
127
131
|
}) }),
|
|
128
|
-
|
|
132
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
129
133
|
to: $("/provenance"),
|
|
130
134
|
children: "Provenance"
|
|
131
135
|
}) }),
|
|
132
|
-
|
|
136
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
133
137
|
to: $("/conflicts"),
|
|
134
138
|
children: "Conflicts"
|
|
135
139
|
}) }),
|
|
136
|
-
|
|
140
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
137
141
|
to: $("/health"),
|
|
138
142
|
children: "Health"
|
|
139
143
|
}) }),
|
|
140
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
141
145
|
to: $("/settings"),
|
|
142
146
|
children: "Settings"
|
|
143
147
|
}) }),
|
|
144
|
-
|
|
148
|
+
q && /* @__PURE__ */ U("li", { children: /* @__PURE__ */ U(z, {
|
|
145
149
|
to: $("/api-keys"),
|
|
146
150
|
children: "API Keys"
|
|
147
151
|
}) })
|
|
148
152
|
]
|
|
149
153
|
})
|
|
150
154
|
]
|
|
151
|
-
}), /* @__PURE__ */
|
|
155
|
+
}), /* @__PURE__ */ W("main", {
|
|
152
156
|
className: "studio-content",
|
|
153
157
|
children: [
|
|
154
|
-
|
|
158
|
+
O?.sessionId && /* @__PURE__ */ W("div", {
|
|
155
159
|
className: "runtime-notice",
|
|
156
|
-
children: ["Application runtime: ",
|
|
160
|
+
children: ["Application runtime: ", J.length ? `Connected ✓ (${J[0].runtime}, ${J[0].namespace})` : "Not connected"]
|
|
157
161
|
}),
|
|
158
|
-
!
|
|
162
|
+
!q && /* @__PURE__ */ U("div", {
|
|
159
163
|
className: "runtime-notice",
|
|
160
164
|
children: "Browser data is read live from the generated application origin through the local Studio bridge."
|
|
161
165
|
}),
|
|
162
|
-
/* @__PURE__ */ V
|
|
163
|
-
/* @__PURE__ */ B
|
|
166
|
+
/* @__PURE__ */ W(V, { children: [
|
|
167
|
+
/* @__PURE__ */ U(B, {
|
|
164
168
|
path: "/",
|
|
165
|
-
element: /* @__PURE__ */
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
element: /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(p, {
|
|
170
|
+
configuration: A,
|
|
171
|
+
onApplied: () => window.location.reload()
|
|
172
|
+
}), /* @__PURE__ */ U(g, {
|
|
173
|
+
db: n,
|
|
174
|
+
namespace: T,
|
|
175
|
+
projectSpec: M,
|
|
176
|
+
managedPublish: k,
|
|
177
|
+
onSpecChange: N
|
|
178
|
+
})] })
|
|
172
179
|
}),
|
|
173
|
-
/* @__PURE__ */ B
|
|
180
|
+
/* @__PURE__ */ U(B, {
|
|
174
181
|
path: "/overview",
|
|
175
|
-
element: /* @__PURE__ */
|
|
182
|
+
element: /* @__PURE__ */ U(e, { stats: F })
|
|
176
183
|
}),
|
|
177
|
-
/* @__PURE__ */ B
|
|
184
|
+
/* @__PURE__ */ U(B, {
|
|
178
185
|
path: "/activity",
|
|
179
|
-
element: /* @__PURE__ */
|
|
186
|
+
element: /* @__PURE__ */ W("div", {
|
|
180
187
|
className: "runtime-activity",
|
|
181
188
|
children: [
|
|
182
|
-
/* @__PURE__ */
|
|
183
|
-
/* @__PURE__ */
|
|
184
|
-
|
|
189
|
+
/* @__PURE__ */ U("h1", { children: "Live Activity" }),
|
|
190
|
+
/* @__PURE__ */ W("p", { children: [
|
|
191
|
+
X.some((e) => Date.now() - e.timestamp < 5e3) ? "Active" : "Idle",
|
|
185
192
|
" · Runtime ",
|
|
186
|
-
|
|
193
|
+
J[0]?.runtimeInstanceId || "not connected"
|
|
187
194
|
] }),
|
|
188
|
-
|
|
195
|
+
Q > 0 && /* @__PURE__ */ W("p", {
|
|
189
196
|
className: "runtime-notice",
|
|
190
197
|
children: [
|
|
191
198
|
"Observation is incomplete: ",
|
|
192
|
-
|
|
199
|
+
Q,
|
|
193
200
|
" events dropped."
|
|
194
201
|
]
|
|
195
202
|
}),
|
|
196
|
-
/* @__PURE__ */
|
|
197
|
-
/* @__PURE__ */
|
|
198
|
-
/* @__PURE__ */
|
|
199
|
-
/* @__PURE__ */
|
|
200
|
-
/* @__PURE__ */
|
|
201
|
-
/* @__PURE__ */
|
|
202
|
-
] }) }), /* @__PURE__ */
|
|
203
|
-
/* @__PURE__ */
|
|
204
|
-
/* @__PURE__ */
|
|
205
|
-
/* @__PURE__ */
|
|
206
|
-
/* @__PURE__ */
|
|
207
|
-
/* @__PURE__ */
|
|
203
|
+
/* @__PURE__ */ W("table", { children: [/* @__PURE__ */ U("thead", { children: /* @__PURE__ */ W("tr", { children: [
|
|
204
|
+
/* @__PURE__ */ U("th", { children: "Time" }),
|
|
205
|
+
/* @__PURE__ */ U("th", { children: "Operation" }),
|
|
206
|
+
/* @__PURE__ */ U("th", { children: "Collection" }),
|
|
207
|
+
/* @__PURE__ */ U("th", { children: "Status" }),
|
|
208
|
+
/* @__PURE__ */ U("th", { children: "Duration" })
|
|
209
|
+
] }) }), /* @__PURE__ */ U("tbody", { children: [...X].reverse().map((e) => /* @__PURE__ */ W("tr", { children: [
|
|
210
|
+
/* @__PURE__ */ U("td", { children: new Date(e.timestamp).toLocaleTimeString() }),
|
|
211
|
+
/* @__PURE__ */ U("td", { children: e.operation?.type }),
|
|
212
|
+
/* @__PURE__ */ U("td", { children: e.operation?.collection || "—" }),
|
|
213
|
+
/* @__PURE__ */ U("td", { children: e.status }),
|
|
214
|
+
/* @__PURE__ */ U("td", { children: e.durationMs === void 0 ? "—" : `${e.durationMs} ms` })
|
|
208
215
|
] }, e.cursor || e.eventId)) })] })
|
|
209
216
|
]
|
|
210
217
|
})
|
|
211
218
|
}),
|
|
212
|
-
/* @__PURE__ */ B
|
|
219
|
+
/* @__PURE__ */ U(B, {
|
|
213
220
|
path: "/data",
|
|
214
|
-
element: /* @__PURE__ */
|
|
215
|
-
db:
|
|
216
|
-
model:
|
|
217
|
-
namespace:
|
|
218
|
-
applicationUrl:
|
|
219
|
-
developmentSession:
|
|
221
|
+
element: /* @__PURE__ */ U(c, {
|
|
222
|
+
db: n,
|
|
223
|
+
model: M,
|
|
224
|
+
namespace: T,
|
|
225
|
+
applicationUrl: E === "browser" ? D : "",
|
|
226
|
+
developmentSession: O
|
|
220
227
|
})
|
|
221
228
|
}),
|
|
222
|
-
/* @__PURE__ */ B
|
|
229
|
+
/* @__PURE__ */ U(B, {
|
|
223
230
|
path: "/state",
|
|
224
|
-
element: /* @__PURE__ */
|
|
225
|
-
db:
|
|
226
|
-
model:
|
|
227
|
-
namespace:
|
|
228
|
-
applicationUrl:
|
|
229
|
-
developmentSession:
|
|
231
|
+
element: /* @__PURE__ */ U(c, {
|
|
232
|
+
db: n,
|
|
233
|
+
model: M,
|
|
234
|
+
namespace: T,
|
|
235
|
+
applicationUrl: E === "browser" ? D : "",
|
|
236
|
+
developmentSession: O
|
|
230
237
|
})
|
|
231
238
|
}),
|
|
232
|
-
/* @__PURE__ */ B
|
|
239
|
+
/* @__PURE__ */ U(B, {
|
|
233
240
|
path: "/references",
|
|
234
|
-
element: /* @__PURE__ */
|
|
235
|
-
db:
|
|
236
|
-
model:
|
|
237
|
-
namespace:
|
|
241
|
+
element: /* @__PURE__ */ U(l, {
|
|
242
|
+
db: n,
|
|
243
|
+
model: M,
|
|
244
|
+
namespace: T
|
|
238
245
|
})
|
|
239
246
|
}),
|
|
240
|
-
/* @__PURE__ */ B
|
|
247
|
+
/* @__PURE__ */ U(B, {
|
|
241
248
|
path: "/operations",
|
|
242
|
-
element: /* @__PURE__ */
|
|
243
|
-
db:
|
|
244
|
-
model:
|
|
245
|
-
namespace:
|
|
249
|
+
element: /* @__PURE__ */ U(f, {
|
|
250
|
+
db: n,
|
|
251
|
+
model: M,
|
|
252
|
+
namespace: T
|
|
246
253
|
})
|
|
247
254
|
}),
|
|
248
|
-
/* @__PURE__ */ B
|
|
255
|
+
/* @__PURE__ */ U(B, {
|
|
249
256
|
path: "/peers",
|
|
250
|
-
element: /* @__PURE__ */
|
|
251
|
-
peers:
|
|
252
|
-
localInstance:
|
|
257
|
+
element: /* @__PURE__ */ U(h, {
|
|
258
|
+
peers: ee,
|
|
259
|
+
localInstance: P?.instanceId
|
|
253
260
|
})
|
|
254
261
|
}),
|
|
255
|
-
/* @__PURE__ */ B
|
|
262
|
+
/* @__PURE__ */ U(B, {
|
|
256
263
|
path: "/capabilities",
|
|
257
|
-
element: /* @__PURE__ */
|
|
258
|
-
db:
|
|
259
|
-
model:
|
|
264
|
+
element: /* @__PURE__ */ U(s, {
|
|
265
|
+
db: n,
|
|
266
|
+
model: M
|
|
260
267
|
})
|
|
261
268
|
}),
|
|
262
|
-
/* @__PURE__ */ B
|
|
269
|
+
/* @__PURE__ */ U(B, {
|
|
263
270
|
path: "/executions",
|
|
264
|
-
element: /* @__PURE__ */
|
|
265
|
-
db:
|
|
266
|
-
model:
|
|
271
|
+
element: /* @__PURE__ */ U(o, {
|
|
272
|
+
db: n,
|
|
273
|
+
model: M
|
|
267
274
|
})
|
|
268
275
|
}),
|
|
269
|
-
/* @__PURE__ */ B
|
|
276
|
+
/* @__PURE__ */ U(B, {
|
|
270
277
|
path: "/workflows",
|
|
271
|
-
element: /* @__PURE__ */
|
|
272
|
-
db:
|
|
273
|
-
model:
|
|
278
|
+
element: /* @__PURE__ */ U(d, {
|
|
279
|
+
db: n,
|
|
280
|
+
model: M
|
|
274
281
|
})
|
|
275
282
|
}),
|
|
276
|
-
/* @__PURE__ */ B
|
|
283
|
+
/* @__PURE__ */ U(B, {
|
|
277
284
|
path: "/agents",
|
|
278
|
-
element: /* @__PURE__ */
|
|
279
|
-
db:
|
|
280
|
-
model:
|
|
285
|
+
element: /* @__PURE__ */ U(a, {
|
|
286
|
+
db: n,
|
|
287
|
+
model: M
|
|
281
288
|
})
|
|
282
289
|
}),
|
|
283
|
-
/* @__PURE__ */ B
|
|
290
|
+
/* @__PURE__ */ U(B, {
|
|
291
|
+
path: "/proposals",
|
|
292
|
+
element: /* @__PURE__ */ U(v, {})
|
|
293
|
+
}),
|
|
294
|
+
/* @__PURE__ */ U(B, {
|
|
284
295
|
path: "/provenance",
|
|
285
|
-
element: /* @__PURE__ */
|
|
286
|
-
db:
|
|
287
|
-
model:
|
|
288
|
-
namespace:
|
|
289
|
-
reference:
|
|
296
|
+
element: /* @__PURE__ */ U(_, {
|
|
297
|
+
db: n,
|
|
298
|
+
model: M,
|
|
299
|
+
namespace: T,
|
|
300
|
+
reference: te
|
|
290
301
|
})
|
|
291
302
|
}),
|
|
292
|
-
/* @__PURE__ */ B
|
|
303
|
+
/* @__PURE__ */ U(B, {
|
|
293
304
|
path: "/conflicts",
|
|
294
|
-
element: /* @__PURE__ */
|
|
295
|
-
db:
|
|
296
|
-
diagnostics:
|
|
305
|
+
element: /* @__PURE__ */ U(y, {
|
|
306
|
+
db: n,
|
|
307
|
+
diagnostics: K
|
|
297
308
|
})
|
|
298
309
|
}),
|
|
299
|
-
/* @__PURE__ */ B
|
|
310
|
+
/* @__PURE__ */ U(B, {
|
|
300
311
|
path: "/health",
|
|
301
|
-
element: /* @__PURE__ */
|
|
302
|
-
diagnostics:
|
|
303
|
-
model:
|
|
312
|
+
element: /* @__PURE__ */ U(m, {
|
|
313
|
+
diagnostics: K,
|
|
314
|
+
model: M
|
|
304
315
|
})
|
|
305
316
|
}),
|
|
306
|
-
/* @__PURE__ */ B
|
|
317
|
+
/* @__PURE__ */ U(B, {
|
|
307
318
|
path: "/settings",
|
|
308
|
-
element: /* @__PURE__ */
|
|
309
|
-
db:
|
|
310
|
-
remoteUrl:
|
|
311
|
-
token:
|
|
312
|
-
onConnect:
|
|
319
|
+
element: /* @__PURE__ */ U(r, {
|
|
320
|
+
db: n,
|
|
321
|
+
remoteUrl: x,
|
|
322
|
+
token: w,
|
|
323
|
+
onConnect: j
|
|
313
324
|
})
|
|
314
325
|
}),
|
|
315
|
-
/* @__PURE__ */ B
|
|
326
|
+
/* @__PURE__ */ U(B, {
|
|
316
327
|
path: "/api-keys",
|
|
317
|
-
element: /* @__PURE__ */
|
|
328
|
+
element: /* @__PURE__ */ W("div", {
|
|
318
329
|
style: { padding: "2rem" },
|
|
319
|
-
children: [/* @__PURE__ */
|
|
320
|
-
apiUrl:
|
|
321
|
-
token:
|
|
322
|
-
namespace:
|
|
330
|
+
children: [/* @__PURE__ */ U("h1", { children: "API Key Management" }), /* @__PURE__ */ U(C, {
|
|
331
|
+
apiUrl: x,
|
|
332
|
+
token: w,
|
|
333
|
+
namespace: T,
|
|
323
334
|
onConfigure: () => window.location.assign("/settings")
|
|
324
335
|
})]
|
|
325
336
|
})
|
|
@@ -330,4 +341,4 @@ function U({ db: s, remoteUrl: b = "", token: S = "", namespace: C = "default",
|
|
|
330
341
|
}) });
|
|
331
342
|
}
|
|
332
343
|
//#endregion
|
|
333
|
-
export {
|
|
344
|
+
export { a as AgentExplorer, g as ApplicationDesigner, p as AskFeltDB, s as CapabilityExplorer, y as ConflictExplorer, o as ExecutionViewer, u as GlobalSearch, m as HealthCenter, C as KeyManagementPanel, T as ManagedInstancePanel, w as ManagedInstanceUtil, f as OperationsExplorer, e as OverviewDashboard, h as PeerMap, v as ProposalBrowser, _ as ProvenanceViewer, l as ReferenceExplorer, r as SettingsPanel, c as StateExplorer, K as StudioApp, d as WorkflowVisualizer, E as capitalize, D as fetchDashboardStats, O as fetchDiagnostics, k as fetchPeers, A as fetchProvenance, j as formatBytes, M as formatReference, N as formatRelativeTime, P as formatTime, F as searchReferences, n as useCollection, b as useDashboardStats, S as useFeltDB, i as usePeers, x as useProvenance, t as useRuntimeDiagnostics };
|
package/dist/studio/studio.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._panel_1cbba_1{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2rem}._header_1cbba_8{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}._header_1cbba_8 h2{color:var(--text-primary);margin:0;font-size:1.5rem}._createButton_1cbba_23{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._createButton_1cbba_23:hover{background:var(--accent-hover)}._error_1cbba_38{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:4px;margin-bottom:1rem;padding:1rem}._createForm_1cbba_47{background:var(--surface-alt);border:1px solid var(--border);border-radius:4px;margin-bottom:2rem;padding:1.5rem}._formGroup_1cbba_55{margin-bottom:1.5rem}._formGroup_1cbba_55 label{color:var(--text-primary);margin-bottom:.5rem;font-weight:600;display:block}._formGroup_1cbba_55 input[type=text]{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:4px;padding:.5rem;font-family:inherit}._scopeList_1cbba_76{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}._scopeCheckbox_1cbba_82{cursor:pointer;color:var(--text-primary);align-items:center;display:flex}._scopeCheckbox_1cbba_82 input{cursor:pointer;margin-right:.5rem}._submitButton_1cbba_94{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;width:100%;padding:.75rem 1.5rem;font-weight:600}._submitButton_1cbba_94:hover{background:var(--accent-hover)}._empty_1cbba_109{text-align:center;color:var(--text-secondary);background:var(--surface-alt);border-radius:4px;padding:2rem}._keysList_1cbba_117{flex-direction:column;gap:1rem;display:flex}._keyCard_1cbba_123{border:1px solid var(--border);background:var(--surface-alt);border-radius:4px;padding:1.5rem;transition:border-color .2s}._keyCard_1cbba_123:hover{border-color:var(--accent)}._keyHeader_1cbba_135{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;display:flex}._keyHeader_1cbba_135 h3{color:var(--text-primary);margin:0 0 .25rem;font-size:1.1rem}._namespace_1cbba_150{color:var(--text-secondary);margin:0;font-size:.85rem}._status_1cbba_156{border-radius:12px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}._status_1cbba_156._active_1cbba_163{background:var(--success-bg);color:var(--success-text)}._status_1cbba_156._expired_1cbba_168{background:var(--warning-bg);color:var(--warning-text)}._keyDetails_1cbba_173{gap:1rem;margin-bottom:1rem;display:grid}._detail_1cbba_179{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}._detail_1cbba_179 strong{color:var(--text-primary)}._detail_1cbba_179 span,._detail_1cbba_179 code{color:var(--text-secondary)}._detail_1cbba_179 code{background:var(--code-bg);border-radius:3px;padding:.25rem .5rem;font-family:monospace;font-size:.9rem}._copyBtn_1cbba_203{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:.25rem .5rem;font-size:.85rem}._copyBtn_1cbba_203:hover{background:var(--accent-hover)}._daysLeft_1cbba_217{color:var(--warning-text);font-size:.85rem;font-weight:600}._scopes_1cbba_223{margin-top:.75rem}._scopeTags_1cbba_227{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}._scopeTag_1cbba_227{background:var(--tag-bg);color:var(--tag-text);border-radius:12px;padding:.25rem .75rem;font-family:monospace;font-size:.85rem}._keyActions_1cbba_243{border-top:1px solid var(--border);gap:.5rem;padding-top:1rem;display:flex}._revokeBtn_1cbba_250{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);cursor:pointer;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._revokeBtn_1cbba_250:hover{background:var(--error-hover-bg)}._info_1cbba_265{background:var(--info-bg);color:var(--text-secondary);border-radius:4px;margin-top:2rem;padding:1rem;font-size:.9rem}._info_1cbba_265 p{margin:0}:root{--surface:#fff;--surface-alt:#f5f5f5;--text-primary:#000;--text-secondary:#666;--border:#e0e0e0;--accent:#007bff;--accent-hover:#0056b3;--error-bg:#f8d7da;--error-border:#f5c6cb;--error-text:#721c24;--error-hover-bg:#f5c6cb;--success-bg:#d4edda;--success-text:#155724;--warning-bg:#fff3cd;--warning-text:#856404;--info-bg:#e2e3e5;--input-bg:#fff;--code-bg:#f4f4f4;--tag-bg:#e9ecef;--tag-text:#495057}@media (prefers-color-scheme:dark){:root{--surface:#1e1e1e;--surface-alt:#2d2d2d;--text-primary:#fff;--text-secondary:#b0b0b0;--border:#404040;--accent:#0d6efd;--accent-hover:#0a58ca;--error-bg:#3d1f1f;--error-border:#664141;--error-text:#f8b7bc;--error-hover-bg:#4a2828;--success-bg:#1f3f1f;--success-text:#7ddc7d;--warning-bg:#3f3f1f;--warning-text:#ffdd57;--info-bg:#2d2d3d;--input-bg:#2d2d2d;--code-bg:#2d2d2d;--tag-bg:#3d3d4d;--tag-text:#b0b0b0}}.studio-app{color:#333;background:#f5f5f5;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;display:flex}.studio-nav{color:#fff;background:#1a1a1a;border-right:1px solid #333;width:250px;padding:20px;overflow-y:auto}.nav-header h1{margin:0 0 30px;font-size:18px;font-weight:600}.instance-info{color:#999;border-bottom:1px solid #333;margin-top:-20px;margin-bottom:20px;padding-bottom:10px;font-size:12px}.nav-search{margin-bottom:20px}.nav-search .search-input{color:#fff;background:#2a2a2a;border:1px solid #444;border-radius:4px;width:100%;padding:8px;font-size:12px}.nav-menu{margin:0;padding:0;list-style:none}.nav-menu li{margin-bottom:8px}.nav-menu .nav-section{color:#71717a;letter-spacing:.14em;text-transform:uppercase;margin:22px 14px 7px;font-size:10px;font-weight:800}.application-designer{--ink:#17211b;--muted:#68756d;--line:#dce4de;--paper:#fbfcf9;min-height:100%;color:var(--ink)}.designer-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 4px 22px;display:flex}.designer-header h1{letter-spacing:-.03em;font-family:Georgia,serif;font-size:34px}.designer-header p{color:var(--muted);margin-top:5px}.eyebrow{color:#287052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.designer-actions{flex-wrap:wrap;gap:8px;display:flex}.btn-ghost{color:#33443a;border:1px solid var(--line);background:#fff}.designer-actions .btn-primary{background:#1f684c}.cloud-publisher{background:#fff;border:1px solid #cbdad0;border-radius:10px;gap:14px;margin-bottom:12px;padding:18px;display:grid;box-shadow:0 10px 28px #26372d1a}.cloud-publisher-heading{justify-content:space-between;gap:18px;display:flex}.cloud-publisher-heading h2{margin-top:3px;font:600 20px/1.2 Georgia,serif}.cloud-publisher-heading p{color:var(--muted);margin-top:4px;font-size:12px}.cloud-publisher-heading>button{color:#718078;cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:22px}.cloud-fields{grid-template-columns:1.4fr .7fr 1fr;gap:10px;display:grid}.cloud-fields label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cloud-fields input{color:#20342a;background:#f9fbf9;border:1px solid #cbd8cf;border-radius:6px;outline:0;width:100%;padding:9px 10px;font-size:12px}.cloud-fields input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.cloud-destructive{color:#8b4d22;align-items:center;gap:7px;font-size:11px;display:flex}.cloud-destructive input{accent-color:#a55d2b}.local-destructive{color:#8b4d22;background:#fff7ed;border:1px solid #f0d7bb;border-radius:7px;align-items:center;gap:7px;margin-bottom:12px;padding:9px 12px;font-size:11px;display:flex}.local-destructive input{accent-color:#a55d2b}.cloud-error{color:#9b2c2c;background:#fff0f0;border:1px solid #f1caca;border-radius:6px;padding:8px 10px;font-size:11px}.cloud-actions{justify-content:flex-end;gap:8px;display:flex}.cloud-actions .btn:disabled{cursor:wait;opacity:.65}.designer-status{color:#286046;background:#eaf5ee;border:1px solid #cce5d5;border-radius:8px;justify-content:space-between;margin-bottom:12px;padding:9px 13px;font-size:12px;display:flex}.designer-status.error{color:#9b2c2c;background:#fff0f0;border-color:#f1caca}.designer-grid{background:var(--paper);border:1px solid var(--line);border-radius:12px;grid-template-columns:190px minmax(420px,1fr) minmax(340px,.8fr);height:calc(100vh - 150px);min-height:620px;display:grid;overflow:hidden;box-shadow:0 12px 40px #26372d14}.model-tree,.model-canvas,.dsl-panel{min-width:0}.model-tree{border-right:1px solid var(--line);background:#f2f5f0;padding:14px;overflow:auto}.panel-title{color:#34463b;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:38px;font-size:12px;font-weight:800;display:flex}.panel-title button{color:#286046;cursor:pointer;background:#dce9df;border:0;border-radius:6px;width:25px;height:25px}.model-tree section{margin-top:16px}.model-tree section h3{color:#7a857e;letter-spacing:.12em;text-transform:uppercase;margin:0 7px 6px;font-size:10px}.tree-item,.tree-empty{border-radius:6px;padding:6px 8px;font-size:12px}.tree-item{color:#27372e;background:#ffffffb3;margin-bottom:3px}.tree-empty{color:#9aa39d;font-style:italic}.collection-editor{background:#fff;border:1px solid #d3ded6;border-radius:7px;gap:7px;margin-top:10px;padding:9px;display:grid}.collection-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:800;display:grid}.collection-editor input{color:#20342a;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font-size:11px}.collection-editor input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.collection-editor>div:last-child{justify-content:flex-end;gap:4px;display:flex}.collection-editor button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 7px;font-size:10px}.collection-editor .collection-save{color:#fff;background:#287052}.model-canvas{background-color:#f8faf6;background-image:radial-gradient(#d8e0da 1px,#0000 1px);background-size:18px 18px;flex-direction:column;padding:14px;display:flex;overflow:hidden}.graph-legend{color:#859189;text-transform:none;letter-spacing:0;font-weight:500}.graph-board{flex:1;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:16px;padding:22px 8px;display:grid;overflow:auto}.model-node{background:#fff;border:1px solid #cfdbd2;border-top:3px solid #327258;border-radius:9px;padding:14px;position:relative;box-shadow:0 5px 14px #273d3014}.model-node.workflow-node{border-top-color:#9b6a2f}.model-node.agent-node{border-top-color:#70539b}.node-kind{color:#849087;letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:800}.model-node h3{margin:3px 0 10px;font-family:Georgia,serif;font-size:18px}.node-field,.node-step{border-top:1px solid #eef1ee;justify-content:space-between;gap:8px;padding:5px 0;font-size:11px;display:flex}.node-field code{color:#527060;font-size:10px}.node-step{color:#59675f;display:block}.node-add{color:#357257;cursor:pointer;background:#f0f7f2;border:1px dashed #b9d2c1;border-radius:5px;margin-top:9px;padding:4px 7px;font-size:10px}.field-editor{background:#f5f8f5;border:1px solid #d7e2da;border-radius:7px;gap:9px;margin-top:10px;padding:11px;display:grid}.field-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:700;display:grid}.field-editor input[type=text],.field-editor input:not([type]),.field-editor select{color:#20342a;background:#fff;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font:11px/1.2 inherit}.field-editor input:focus,.field-editor select:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.field-editor-row{grid-template-columns:1fr 1fr;gap:7px;display:grid}.field-editor .field-optional{color:#43564a;letter-spacing:0;text-transform:none;align-items:center;gap:6px;font-size:10px;font-weight:500;display:flex}.field-optional input{accent-color:#287052}.field-error{color:#a13d3d;font-size:10px}.field-editor-actions{justify-content:flex-end;gap:6px;display:flex}.field-editor-actions button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 8px;font-size:10px}.field-editor-actions .field-save{color:#fff;background:#287052}.change-strip{border-top:1px solid var(--line);white-space:nowrap;background:#ffffffeb;align-items:center;gap:12px;min-height:42px;padding:7px 10px;font-size:10px;display:flex;overflow:auto}.change-strip .added{color:#24714f}.change-strip .changed{color:#94611e}.change-strip .removed{color:#a13d3d}.dsl-panel{color:#d9e4dc;background:#17211b;border-left:1px solid #0c1510;flex-direction:column;padding:14px;display:flex}.dsl-panel .panel-title{color:#aebdb3;border-color:#344139}.dsl-panel .panel-title span:last-child{color:#6f8276;text-transform:none;font-weight:500}.dsl-panel textarea{resize:none;color:#d9e4dc;-moz-tab-size:2;tab-size:2;background:0 0;border:0;outline:0;flex:1;width:100%;padding:15px 2px;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.diagnostics{border-top:1px solid #344139;max-height:120px;padding-top:8px;font:10px/1.5 ui-monospace,monospace;overflow:auto}.diagnostics .error{color:#ff9f9f}.diagnostics .warning{color:#f3d18a}@media (max-width:1100px){.designer-grid{grid-template-columns:160px 1fr;height:auto}.dsl-panel{grid-column:1/-1;height:480px}.designer-header{flex-direction:column;align-items:flex-start}.cloud-fields{grid-template-columns:1fr}}.nav-menu a{color:#ccc;border-radius:4px;padding:10px 15px;text-decoration:none;transition:all .2s;display:block}.nav-menu a:hover{color:#fff;background:#333}.studio-content{flex:1;padding:20px;overflow-y:auto}.runtime-notice{color:#65551d;background:#fff9df;border:1px solid #d8c98d;border-radius:8px;max-width:1280px;margin:0 auto 20px;padding:12px 16px;font-size:13px;line-height:1.45}.search-input{border:1px solid #ddd;border-radius:4px;width:100%;padding:10px;font-size:14px}.filter-select{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:14px}.btn{cursor:pointer;border:none;border-radius:4px;padding:10px 15px;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{color:#fff;background:#007bff}.btn-primary:hover{background:#0056b3}.overview-dashboard{background:#fff;border-radius:8px;padding:30px;box-shadow:0 1px 3px #0000001a}.dashboard-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;display:flex}.dashboard-header h1{margin:0;font-size:28px}.namespace-badge{color:#fff;background:#007bff;border-radius:20px;padding:5px 15px;font-size:12px;font-weight:600}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;display:grid}.stat-card{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.stat-card label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.stat-card .status-indicator{margin-right:5px;font-size:20px}.stat-card .status-indicator.healthy{color:#28a745}.stat-card .status-indicator.degraded{color:#ffc107}.stat-card .status-indicator.unhealthy{color:#dc3545}.stat-number{color:#007bff;font-size:24px;font-weight:700;display:block}.explorer-placeholder,.capabilities-placeholder,.executions-placeholder,.provenance-placeholder,.peer-placeholder,.empty-message,.placeholder-text{text-align:center;color:#999;background:#f9f9f9;border:2px dashed #ddd;border-radius:6px;margin-top:20px;padding:40px}.placeholder-text{border:none;padding:20px}.peer-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;margin-top:20px;display:grid}.peer-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.peer-status{font-size:12px}.peer-status.online{color:#28a745}.peer-name{font-weight:500}.health-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.health-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.health-item.status-healthy{background:#f8f9fa;border-color:#d4edda}.health-item.status-warning{background:#fffbf0;border-color:#fff3cd}.health-item.status-error{background:#fff5f5;border-color:#f8d7da}.status-icon{font-size:16px;font-weight:700}.health-item.status-healthy .status-icon{color:#28a745}.health-item.status-warning .status-icon{color:#ffc107}.health-item.status-error .status-icon{color:#dc3545}.component-name{font-weight:500}.reference-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.search-box{margin-bottom:20px}.reference-details{margin-top:20px}.detail-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.detail-row label{color:#666;font-weight:600}.detail-row span{color:#333}.status-materialized{color:#28a745;font-weight:500}.operations-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.filter-controls{margin-bottom:20px}.operations-table{border-collapse:collapse;width:100%;margin-top:20px}.operations-table th{text-align:left;background:#f5f5f5;border-bottom:2px solid #ddd;padding:10px;font-weight:600}.operations-table td{border-bottom:1px solid #f0f0f0;padding:10px}.conflict-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.conflict-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.summary-stat{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.summary-stat label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.workflow-visualizer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.workflow-controls{margin-bottom:20px}.workflows-list,.workflow-detail{margin-top:20px}.agent-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.agents-grid,.agent-detail{margin-top:20px}.provenance-viewer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.provenance-content{margin-top:20px}.settings-panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.settings-tabs{border-bottom:1px solid #e0e0e0;gap:10px;margin:20px 0;display:flex}.tab{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 15px;font-weight:500;transition:all .2s}.tab.active{color:#007bff;border-bottom-color:#007bff}.settings-content{margin-top:20px}.keys-list,.connection-info{margin:20px 0}.info-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.info-row label{color:#666;font-weight:600}.monospace{font-family:Monaco,Courier New,monospace;font-size:12px}.global-search{position:relative}.search-input.global{margin-bottom:10px}.search-results{z-index:1000;background:#fff;border:1px solid #ddd;border-radius:4px;max-height:400px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 2px 8px #0000001a}.results-group{border-bottom:1px solid #f0f0f0;padding:10px}.results-group h4{color:#666;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:600}.results-group .empty-message{color:#999;background:0 0;border:none;padding:5px 0;font-size:12px}@media (max-width:768px){.studio-app{flex-direction:column}.studio-nav{border-bottom:1px solid #333;border-right:none;width:100%;max-height:200px}.nav-menu{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.nav-menu a{padding:8px 5px;font-size:12px}}.studio-model-page{color:#19251f;max-width:1280px;margin:0 auto}.studio-model-page>header{margin-bottom:22px}.studio-model-page>header h1{margin:4px 0 6px;font-family:Georgia,serif;font-size:36px}.studio-model-page>header p{color:#68776f;margin:0}.eyebrow,.card-kind{color:#217052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.model-summary{flex-wrap:wrap;gap:10px;margin:0 0 18px;display:flex}.model-summary>span,.model-summary select{color:#426052;background:#f8fbf9;border:1px solid #d6e1da;border-radius:999px;padding:7px 12px;font-size:12px}.studio-card-grid,.state-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.studio-card{background:#fff;border:1px solid #d7e0da;border-radius:12px;padding:18px;box-shadow:0 6px 22px #1937280d}.studio-card h2{margin:6px 0 14px;font-family:Georgia,serif;font-size:22px}.model-empty{color:#75847c;text-align:center;background:#fafcfb;border:1px dashed #cbd8d0;border-radius:10px;grid-column:1/-1;padding:34px}.model-empty.compact{padding:20px 10px}.state-collection>header{justify-content:space-between;align-items:center;display:flex}.studio-data-bridge{opacity:0;pointer-events:none;border:0;width:1px;height:1px;position:absolute}.state-collection>header h2{margin-bottom:8px}.state-collection>header strong{color:#237154;font:30px Georgia,serif}.state-row{text-align:left;color:#26372f;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;grid-template-columns:1fr auto;gap:8px;width:100%;padding:12px 2px;display:grid}.state-row span:first-child{flex-direction:column;gap:3px;display:flex}.state-row small{color:#859189}.state-row pre{color:#dcebe2;background:#13231b;border-radius:8px;grid-column:1/-1;margin:4px 0 0;padding:12px;overflow:auto}.table-shell{background:#fff;border:1px solid #d7e0da;border-radius:12px;overflow:auto}.table-shell table{width:100%;margin:0}.event-pill{text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-block}.event-pill.put{color:#176443;background:#dff4e9}.event-pill.delete{color:#963e2c;background:#fbe4df}.reference-query{gap:8px;margin-bottom:18px;display:flex}.reference-query input{border:1px solid #cad7cf;border-radius:8px;flex:1;padding:12px 14px;font-family:monospace}.reference-query button{color:#fff;cursor:pointer;background:#1f7152;border:0;border-radius:8px;padding:0 20px;font-weight:700}.reference-layout{grid-template-columns:minmax(220px,.35fr) 1fr;gap:16px;display:grid}.reference-example{cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;justify-content:space-between;width:100%;padding:12px 0;display:flex}.reference-example small{color:#829087}.reference-result pre,.execution-row pre{color:#dcebe2;background:#14231c;border-radius:8px;padding:14px;overflow:auto}.execution-list{gap:10px;margin-bottom:20px;display:grid}.execution-row{background:#fff;border:1px solid #d8e1db;border-radius:10px;grid-template-columns:1fr auto;gap:10px;padding:14px;display:grid}.execution-row>div{flex-direction:column;display:flex}.execution-row small{color:#829087}.execution-row pre{grid-column:1/-1;max-height:180px;margin:0}.execution-empty{margin-top:14px}.provenance-nodes{flex-wrap:wrap;gap:10px;display:flex}.provenance-nodes>div,.provenance-event{border:1px solid #d8e1db;border-radius:8px;flex-direction:column;gap:3px;padding:12px;display:flex}.provenance-nodes small,.provenance-event small{color:#849087}.provenance-event{grid-template-columns:45px 1fr 1fr auto;margin-top:8px;display:grid}.peer-topology{align-items:center;gap:10px;padding:30px 4px;display:flex;overflow:auto}.peer-node{background:#fff;border:1px solid #cad8cf;border-radius:12px;min-width:230px;padding:18px}.peer-node.local{color:#eef7f2;background:#183429}.peer-node span,.peer-node small{opacity:.7;font-size:11px}.peer-node h2{margin:6px 0;font-size:15px}.peer-link{background:#81a893;width:45px;height:2px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.metric-grid article{color:#fff;background:#183429;border-radius:10px;flex-direction:column;padding:18px;display:flex}.metric-grid b{font:32px Georgia,serif}.metric-grid span{opacity:.7;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.health-item{align-items:center;gap:12px;display:flex}.health-item div{flex-direction:column;gap:3px;display:flex}.health-item small{color:#78857e}.health-issue{background:#fff2dc;border-radius:8px;margin:10px 0;padding:12px}.search-result{border-top:1px solid #edf0ee;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 0;display:grid}.search-result span{color:#287254;text-transform:uppercase;font-size:10px}.search-result small{color:#829087;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;overflow:hidden}@media (max-width:800px){.reference-layout,.metric-grid{grid-template-columns:1fr}.provenance-event{grid-template-columns:35px 1fr}.provenance-event code,.provenance-event small{grid-column:2}}
|
|
1
|
+
._panel_1cbba_1{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2rem}._header_1cbba_8{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}._header_1cbba_8 h2{color:var(--text-primary);margin:0;font-size:1.5rem}._createButton_1cbba_23{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._createButton_1cbba_23:hover{background:var(--accent-hover)}._error_1cbba_38{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:4px;margin-bottom:1rem;padding:1rem}._createForm_1cbba_47{background:var(--surface-alt);border:1px solid var(--border);border-radius:4px;margin-bottom:2rem;padding:1.5rem}._formGroup_1cbba_55{margin-bottom:1.5rem}._formGroup_1cbba_55 label{color:var(--text-primary);margin-bottom:.5rem;font-weight:600;display:block}._formGroup_1cbba_55 input[type=text]{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:4px;padding:.5rem;font-family:inherit}._scopeList_1cbba_76{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}._scopeCheckbox_1cbba_82{cursor:pointer;color:var(--text-primary);align-items:center;display:flex}._scopeCheckbox_1cbba_82 input{cursor:pointer;margin-right:.5rem}._submitButton_1cbba_94{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;width:100%;padding:.75rem 1.5rem;font-weight:600}._submitButton_1cbba_94:hover{background:var(--accent-hover)}._empty_1cbba_109{text-align:center;color:var(--text-secondary);background:var(--surface-alt);border-radius:4px;padding:2rem}._keysList_1cbba_117{flex-direction:column;gap:1rem;display:flex}._keyCard_1cbba_123{border:1px solid var(--border);background:var(--surface-alt);border-radius:4px;padding:1.5rem;transition:border-color .2s}._keyCard_1cbba_123:hover{border-color:var(--accent)}._keyHeader_1cbba_135{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;display:flex}._keyHeader_1cbba_135 h3{color:var(--text-primary);margin:0 0 .25rem;font-size:1.1rem}._namespace_1cbba_150{color:var(--text-secondary);margin:0;font-size:.85rem}._status_1cbba_156{border-radius:12px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}._status_1cbba_156._active_1cbba_163{background:var(--success-bg);color:var(--success-text)}._status_1cbba_156._expired_1cbba_168{background:var(--warning-bg);color:var(--warning-text)}._keyDetails_1cbba_173{gap:1rem;margin-bottom:1rem;display:grid}._detail_1cbba_179{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}._detail_1cbba_179 strong{color:var(--text-primary)}._detail_1cbba_179 span,._detail_1cbba_179 code{color:var(--text-secondary)}._detail_1cbba_179 code{background:var(--code-bg);border-radius:3px;padding:.25rem .5rem;font-family:monospace;font-size:.9rem}._copyBtn_1cbba_203{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:.25rem .5rem;font-size:.85rem}._copyBtn_1cbba_203:hover{background:var(--accent-hover)}._daysLeft_1cbba_217{color:var(--warning-text);font-size:.85rem;font-weight:600}._scopes_1cbba_223{margin-top:.75rem}._scopeTags_1cbba_227{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}._scopeTag_1cbba_227{background:var(--tag-bg);color:var(--tag-text);border-radius:12px;padding:.25rem .75rem;font-family:monospace;font-size:.85rem}._keyActions_1cbba_243{border-top:1px solid var(--border);gap:.5rem;padding-top:1rem;display:flex}._revokeBtn_1cbba_250{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);cursor:pointer;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._revokeBtn_1cbba_250:hover{background:var(--error-hover-bg)}._info_1cbba_265{background:var(--info-bg);color:var(--text-secondary);border-radius:4px;margin-top:2rem;padding:1rem;font-size:.9rem}._info_1cbba_265 p{margin:0}:root{--surface:#fff;--surface-alt:#f5f5f5;--text-primary:#000;--text-secondary:#666;--border:#e0e0e0;--accent:#007bff;--accent-hover:#0056b3;--error-bg:#f8d7da;--error-border:#f5c6cb;--error-text:#721c24;--error-hover-bg:#f5c6cb;--success-bg:#d4edda;--success-text:#155724;--warning-bg:#fff3cd;--warning-text:#856404;--info-bg:#e2e3e5;--input-bg:#fff;--code-bg:#f4f4f4;--tag-bg:#e9ecef;--tag-text:#495057}@media (prefers-color-scheme:dark){:root{--surface:#1e1e1e;--surface-alt:#2d2d2d;--text-primary:#fff;--text-secondary:#b0b0b0;--border:#404040;--accent:#0d6efd;--accent-hover:#0a58ca;--error-bg:#3d1f1f;--error-border:#664141;--error-text:#f8b7bc;--error-hover-bg:#4a2828;--success-bg:#1f3f1f;--success-text:#7ddc7d;--warning-bg:#3f3f1f;--warning-text:#ffdd57;--info-bg:#2d2d3d;--input-bg:#2d2d2d;--code-bg:#2d2d2d;--tag-bg:#3d3d4d;--tag-text:#b0b0b0}}.studio-app{color:#333;background:#f5f5f5;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;display:flex}.studio-nav{color:#fff;background:#1a1a1a;border-right:1px solid #333;width:250px;padding:20px;overflow-y:auto}.nav-header h1{margin:0 0 30px;font-size:18px;font-weight:600}.instance-info{color:#999;border-bottom:1px solid #333;margin-top:-20px;margin-bottom:20px;padding-bottom:10px;font-size:12px}.nav-search{margin-bottom:20px}.nav-search .search-input{color:#fff;background:#2a2a2a;border:1px solid #444;border-radius:4px;width:100%;padding:8px;font-size:12px}.nav-menu{margin:0;padding:0;list-style:none}.nav-menu li{margin-bottom:8px}.nav-menu .nav-section{color:#71717a;letter-spacing:.14em;text-transform:uppercase;margin:22px 14px 7px;font-size:10px;font-weight:800}.application-designer{--ink:#17211b;--muted:#68756d;--line:#dce4de;--paper:#fbfcf9;min-height:100%;color:var(--ink)}.designer-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 4px 22px;display:flex}.designer-header h1{letter-spacing:-.03em;font-family:Georgia,serif;font-size:34px}.designer-header p{color:var(--muted);margin-top:5px}.eyebrow{color:#287052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.designer-actions{flex-wrap:wrap;gap:8px;display:flex}.btn-ghost{color:#33443a;border:1px solid var(--line);background:#fff}.designer-actions .btn-primary{background:#1f684c}.cloud-publisher{background:#fff;border:1px solid #cbdad0;border-radius:10px;gap:14px;margin-bottom:12px;padding:18px;display:grid;box-shadow:0 10px 28px #26372d1a}.cloud-publisher-heading{justify-content:space-between;gap:18px;display:flex}.cloud-publisher-heading h2{margin-top:3px;font:600 20px/1.2 Georgia,serif}.cloud-publisher-heading p{color:var(--muted);margin-top:4px;font-size:12px}.cloud-publisher-heading>button{color:#718078;cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:22px}.cloud-fields{grid-template-columns:1.4fr .7fr 1fr;gap:10px;display:grid}.cloud-fields label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cloud-fields input{color:#20342a;background:#f9fbf9;border:1px solid #cbd8cf;border-radius:6px;outline:0;width:100%;padding:9px 10px;font-size:12px}.cloud-fields input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.cloud-destructive{color:#8b4d22;align-items:center;gap:7px;font-size:11px;display:flex}.cloud-destructive input{accent-color:#a55d2b}.local-destructive{color:#8b4d22;background:#fff7ed;border:1px solid #f0d7bb;border-radius:7px;align-items:center;gap:7px;margin-bottom:12px;padding:9px 12px;font-size:11px;display:flex}.local-destructive input{accent-color:#a55d2b}.cloud-error{color:#9b2c2c;background:#fff0f0;border:1px solid #f1caca;border-radius:6px;padding:8px 10px;font-size:11px}.cloud-actions{justify-content:flex-end;gap:8px;display:flex}.cloud-actions .btn:disabled{cursor:wait;opacity:.65}.designer-status{color:#286046;background:#eaf5ee;border:1px solid #cce5d5;border-radius:8px;justify-content:space-between;margin-bottom:12px;padding:9px 13px;font-size:12px;display:flex}.designer-status.error{color:#9b2c2c;background:#fff0f0;border-color:#f1caca}.designer-grid{background:var(--paper);border:1px solid var(--line);border-radius:12px;grid-template-columns:190px minmax(420px,1fr) minmax(340px,.8fr);height:calc(100vh - 150px);min-height:620px;display:grid;overflow:hidden;box-shadow:0 12px 40px #26372d14}.model-tree,.model-canvas,.dsl-panel{min-width:0}.model-tree{border-right:1px solid var(--line);background:#f2f5f0;padding:14px;overflow:auto}.panel-title{color:#34463b;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:38px;font-size:12px;font-weight:800;display:flex}.panel-title button{color:#286046;cursor:pointer;background:#dce9df;border:0;border-radius:6px;width:25px;height:25px}.model-tree section{margin-top:16px}.model-tree section h3{color:#7a857e;letter-spacing:.12em;text-transform:uppercase;margin:0 7px 6px;font-size:10px}.tree-item,.tree-empty{border-radius:6px;padding:6px 8px;font-size:12px}.tree-item{color:#27372e;background:#ffffffb3;margin-bottom:3px}.tree-empty{color:#9aa39d;font-style:italic}.collection-editor{background:#fff;border:1px solid #d3ded6;border-radius:7px;gap:7px;margin-top:10px;padding:9px;display:grid}.collection-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:800;display:grid}.collection-editor input{color:#20342a;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font-size:11px}.collection-editor input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.collection-editor>div:last-child{justify-content:flex-end;gap:4px;display:flex}.collection-editor button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 7px;font-size:10px}.collection-editor .collection-save{color:#fff;background:#287052}.model-canvas{background-color:#f8faf6;background-image:radial-gradient(#d8e0da 1px,#0000 1px);background-size:18px 18px;flex-direction:column;padding:14px;display:flex;overflow:hidden}.graph-legend{color:#859189;text-transform:none;letter-spacing:0;font-weight:500}.graph-board{flex:1;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:16px;padding:22px 8px;display:grid;overflow:auto}.model-node{background:#fff;border:1px solid #cfdbd2;border-top:3px solid #327258;border-radius:9px;padding:14px;position:relative;box-shadow:0 5px 14px #273d3014}.model-node.workflow-node{border-top-color:#9b6a2f}.model-node.agent-node{border-top-color:#70539b}.node-kind{color:#849087;letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:800}.model-node h3{margin:3px 0 10px;font-family:Georgia,serif;font-size:18px}.node-field,.node-step{border-top:1px solid #eef1ee;justify-content:space-between;gap:8px;padding:5px 0;font-size:11px;display:flex}.node-field code{color:#527060;font-size:10px}.node-step{color:#59675f;display:block}.node-add{color:#357257;cursor:pointer;background:#f0f7f2;border:1px dashed #b9d2c1;border-radius:5px;margin-top:9px;padding:4px 7px;font-size:10px}.field-editor{background:#f5f8f5;border:1px solid #d7e2da;border-radius:7px;gap:9px;margin-top:10px;padding:11px;display:grid}.field-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:700;display:grid}.field-editor input[type=text],.field-editor input:not([type]),.field-editor select{color:#20342a;background:#fff;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font:11px/1.2 inherit}.field-editor input:focus,.field-editor select:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.field-editor-row{grid-template-columns:1fr 1fr;gap:7px;display:grid}.field-editor .field-optional{color:#43564a;letter-spacing:0;text-transform:none;align-items:center;gap:6px;font-size:10px;font-weight:500;display:flex}.field-optional input{accent-color:#287052}.field-error{color:#a13d3d;font-size:10px}.field-editor-actions{justify-content:flex-end;gap:6px;display:flex}.field-editor-actions button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 8px;font-size:10px}.field-editor-actions .field-save{color:#fff;background:#287052}.change-strip{border-top:1px solid var(--line);white-space:nowrap;background:#ffffffeb;align-items:center;gap:12px;min-height:42px;padding:7px 10px;font-size:10px;display:flex;overflow:auto}.change-strip .added{color:#24714f}.change-strip .changed{color:#94611e}.change-strip .removed{color:#a13d3d}.dsl-panel{color:#d9e4dc;background:#17211b;border-left:1px solid #0c1510;flex-direction:column;padding:14px;display:flex}.dsl-panel .panel-title{color:#aebdb3;border-color:#344139}.dsl-panel .panel-title span:last-child{color:#6f8276;text-transform:none;font-weight:500}.dsl-panel textarea{resize:none;color:#d9e4dc;-moz-tab-size:2;tab-size:2;background:0 0;border:0;outline:0;flex:1;width:100%;padding:15px 2px;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.diagnostics{border-top:1px solid #344139;max-height:120px;padding-top:8px;font:10px/1.5 ui-monospace,monospace;overflow:auto}.diagnostics .error{color:#ff9f9f}.diagnostics .warning{color:#f3d18a}@media (max-width:1100px){.designer-grid{grid-template-columns:160px 1fr;height:auto}.dsl-panel{grid-column:1/-1;height:480px}.designer-header{flex-direction:column;align-items:flex-start}.cloud-fields{grid-template-columns:1fr}}.nav-menu a{color:#ccc;border-radius:4px;padding:10px 15px;text-decoration:none;transition:all .2s;display:block}.nav-menu a:hover{color:#fff;background:#333}.studio-content{flex:1;padding:20px;overflow-y:auto}.runtime-notice{color:#65551d;background:#fff9df;border:1px solid #d8c98d;border-radius:8px;max-width:1280px;margin:0 auto 20px;padding:12px 16px;font-size:13px;line-height:1.45}.search-input{border:1px solid #ddd;border-radius:4px;width:100%;padding:10px;font-size:14px}.filter-select{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:14px}.btn{cursor:pointer;border:none;border-radius:4px;padding:10px 15px;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{color:#fff;background:#007bff}.btn-primary:hover{background:#0056b3}.overview-dashboard{background:#fff;border-radius:8px;padding:30px;box-shadow:0 1px 3px #0000001a}.dashboard-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;display:flex}.dashboard-header h1{margin:0;font-size:28px}.namespace-badge{color:#fff;background:#007bff;border-radius:20px;padding:5px 15px;font-size:12px;font-weight:600}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;display:grid}.stat-card{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.stat-card label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.stat-card .status-indicator{margin-right:5px;font-size:20px}.stat-card .status-indicator.healthy{color:#28a745}.stat-card .status-indicator.degraded{color:#ffc107}.stat-card .status-indicator.unhealthy{color:#dc3545}.stat-number{color:#007bff;font-size:24px;font-weight:700;display:block}.explorer-placeholder,.capabilities-placeholder,.executions-placeholder,.provenance-placeholder,.peer-placeholder,.empty-message,.placeholder-text{text-align:center;color:#999;background:#f9f9f9;border:2px dashed #ddd;border-radius:6px;margin-top:20px;padding:40px}.placeholder-text{border:none;padding:20px}.peer-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;margin-top:20px;display:grid}.peer-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.peer-status{font-size:12px}.peer-status.online{color:#28a745}.peer-name{font-weight:500}.health-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.health-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.health-item.status-healthy{background:#f8f9fa;border-color:#d4edda}.health-item.status-warning{background:#fffbf0;border-color:#fff3cd}.health-item.status-error{background:#fff5f5;border-color:#f8d7da}.status-icon{font-size:16px;font-weight:700}.health-item.status-healthy .status-icon{color:#28a745}.health-item.status-warning .status-icon{color:#ffc107}.health-item.status-error .status-icon{color:#dc3545}.component-name{font-weight:500}.reference-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.search-box{margin-bottom:20px}.reference-details{margin-top:20px}.detail-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.detail-row label{color:#666;font-weight:600}.detail-row span{color:#333}.status-materialized{color:#28a745;font-weight:500}.operations-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.filter-controls{margin-bottom:20px}.operations-table{border-collapse:collapse;width:100%;margin-top:20px}.operations-table th{text-align:left;background:#f5f5f5;border-bottom:2px solid #ddd;padding:10px;font-weight:600}.operations-table td{border-bottom:1px solid #f0f0f0;padding:10px}.conflict-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.conflict-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.summary-stat{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.summary-stat label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.workflow-visualizer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.workflow-controls{margin-bottom:20px}.workflows-list,.workflow-detail{margin-top:20px}.agent-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.agents-grid,.agent-detail{margin-top:20px}.provenance-viewer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.provenance-content{margin-top:20px}.settings-panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.settings-tabs{border-bottom:1px solid #e0e0e0;gap:10px;margin:20px 0;display:flex}.tab{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 15px;font-weight:500;transition:all .2s}.tab.active{color:#007bff;border-bottom-color:#007bff}.settings-content{margin-top:20px}.keys-list,.connection-info{margin:20px 0}.info-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.info-row label{color:#666;font-weight:600}.monospace{font-family:Monaco,Courier New,monospace;font-size:12px}.global-search{position:relative}.search-input.global{margin-bottom:10px}.search-results{z-index:1000;background:#fff;border:1px solid #ddd;border-radius:4px;max-height:400px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 2px 8px #0000001a}.results-group{border-bottom:1px solid #f0f0f0;padding:10px}.results-group h4{color:#666;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:600}.results-group .empty-message{color:#999;background:0 0;border:none;padding:5px 0;font-size:12px}@media (max-width:768px){.studio-app{flex-direction:column}.studio-nav{border-bottom:1px solid #333;border-right:none;width:100%;max-height:200px}.nav-menu{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.nav-menu a{padding:8px 5px;font-size:12px}}.studio-model-page{color:#19251f;max-width:1280px;margin:0 auto}.studio-model-page>header{margin-bottom:22px}.studio-model-page>header h1{margin:4px 0 6px;font-family:Georgia,serif;font-size:36px}.studio-model-page>header p{color:#68776f;margin:0}.eyebrow,.card-kind{color:#217052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.model-summary{flex-wrap:wrap;gap:10px;margin:0 0 18px;display:flex}.model-summary>span,.model-summary select{color:#426052;background:#f8fbf9;border:1px solid #d6e1da;border-radius:999px;padding:7px 12px;font-size:12px}.studio-card-grid,.state-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.studio-card{background:#fff;border:1px solid #d7e0da;border-radius:12px;padding:18px;box-shadow:0 6px 22px #1937280d}.studio-card h2{margin:6px 0 14px;font-family:Georgia,serif;font-size:22px}.model-empty{color:#75847c;text-align:center;background:#fafcfb;border:1px dashed #cbd8d0;border-radius:10px;grid-column:1/-1;padding:34px}.model-empty.compact{padding:20px 10px}.state-collection>header{justify-content:space-between;align-items:center;display:flex}.studio-data-bridge{opacity:0;pointer-events:none;border:0;width:1px;height:1px;position:absolute}.state-collection>header h2{margin-bottom:8px}.state-collection>header strong{color:#237154;font:30px Georgia,serif}.state-row{text-align:left;color:#26372f;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;grid-template-columns:1fr auto;gap:8px;width:100%;padding:12px 2px;display:grid}.state-row span:first-child{flex-direction:column;gap:3px;display:flex}.state-row small{color:#859189}.state-row pre{color:#dcebe2;background:#13231b;border-radius:8px;grid-column:1/-1;margin:4px 0 0;padding:12px;overflow:auto}.table-shell{background:#fff;border:1px solid #d7e0da;border-radius:12px;overflow:auto}.table-shell table{width:100%;margin:0}.event-pill{text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-block}.event-pill.put{color:#176443;background:#dff4e9}.event-pill.delete{color:#963e2c;background:#fbe4df}.reference-query{gap:8px;margin-bottom:18px;display:flex}.reference-query input{border:1px solid #cad7cf;border-radius:8px;flex:1;padding:12px 14px;font-family:monospace}.reference-query button{color:#fff;cursor:pointer;background:#1f7152;border:0;border-radius:8px;padding:0 20px;font-weight:700}.reference-layout{grid-template-columns:minmax(220px,.35fr) 1fr;gap:16px;display:grid}.reference-example{cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;justify-content:space-between;width:100%;padding:12px 0;display:flex}.reference-example small{color:#829087}.reference-result pre,.execution-row pre{color:#dcebe2;background:#14231c;border-radius:8px;padding:14px;overflow:auto}.execution-list{gap:10px;margin-bottom:20px;display:grid}.execution-row{background:#fff;border:1px solid #d8e1db;border-radius:10px;grid-template-columns:1fr auto;gap:10px;padding:14px;display:grid}.execution-row>div{flex-direction:column;display:flex}.execution-row small{color:#829087}.execution-row pre{grid-column:1/-1;max-height:180px;margin:0}.execution-empty{margin-top:14px}.provenance-nodes{flex-wrap:wrap;gap:10px;display:flex}.provenance-nodes>div,.provenance-event{border:1px solid #d8e1db;border-radius:8px;flex-direction:column;gap:3px;padding:12px;display:flex}.provenance-nodes small,.provenance-event small{color:#849087}.provenance-event{grid-template-columns:45px 1fr 1fr auto;margin-top:8px;display:grid}.peer-topology{align-items:center;gap:10px;padding:30px 4px;display:flex;overflow:auto}.peer-node{background:#fff;border:1px solid #cad8cf;border-radius:12px;min-width:230px;padding:18px}.peer-node.local{color:#eef7f2;background:#183429}.peer-node span,.peer-node small{opacity:.7;font-size:11px}.peer-node h2{margin:6px 0;font-size:15px}.peer-link{background:#81a893;width:45px;height:2px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.metric-grid article{color:#fff;background:#183429;border-radius:10px;flex-direction:column;padding:18px;display:flex}.metric-grid b{font:32px Georgia,serif}.metric-grid span{opacity:.7;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.health-item{align-items:center;gap:12px;display:flex}.health-item div{flex-direction:column;gap:3px;display:flex}.health-item small{color:#78857e}.health-issue{background:#fff2dc;border-radius:8px;margin:10px 0;padding:12px}.search-result{border-top:1px solid #edf0ee;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 0;display:grid}.search-result span{color:#287254;text-transform:uppercase;font-size:10px}.search-result small{color:#829087;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;overflow:hidden}@media (max-width:800px){.reference-layout,.metric-grid{grid-template-columns:1fr}.provenance-event{grid-template-columns:35px 1fr}.provenance-event code,.provenance-event small{grid-column:2}}.ask-feltdb{color:#1d3127;background:linear-gradient(135deg,#f7fbf8,#eef7f2);border:1px solid #cbdad1;border-radius:12px;margin:0 0 18px;padding:18px}.ask-feltdb h2{margin:4px 0;font:26px Georgia,serif}.ask-feltdb p{color:#607268;margin:5px 0 12px}.ask-feltdb textarea{box-sizing:border-box;resize:vertical;background:#fff;border:1px solid #b9cfc2;border-radius:8px;width:100%;min-height:76px;margin:8px 0;padding:12px}.ask-feltdb progress{width:100%}.ai-unavailable,.ai-status,.proposal-boundary{font-size:12px}.proposal-review{border-top:1px solid #cbdad1;margin-top:14px;padding-top:14px}.proposal-review h3{margin:0 0 8px}.proposal-review li{margin:4px 0;font-family:monospace}.proposal-review pre{color:#dcebe2;white-space:pre-wrap;background:#14231c;border-radius:8px;max-height:360px;padding:12px;overflow:auto}.proposal-warning{color:#714c08;background:#fff1d7;border-radius:7px;margin:8px 0;padding:10px}.authorization-approval{color:#77301f;background:#fff5f1;border:2px solid #b65439;border-radius:8px;gap:9px;margin:10px 0;padding:12px;display:flex}.proposal-app-preview{background:#fff;border:1px solid #bfd2c6;border-radius:9px;margin:12px 0;padding:12px}.proposal-app-preview nav{border-bottom:1px solid #e1e9e4;flex-wrap:wrap;gap:6px;padding-bottom:10px;display:flex}.proposal-app-preview nav span{color:#1f6549;background:#e5f3eb;border-radius:999px;padding:4px 8px;font-size:11px}.proposal-app-preview section{border-bottom:1px solid #edf1ee;justify-content:space-between;gap:12px;padding:9px 2px;display:flex}.proposal-app-preview small{color:#718079;text-align:right}.proposal-browser>header{margin-bottom:18px}.proposal-browser>header h1{margin:4px 0;font:36px Georgia,serif}.proposal-browser-layout{grid-template-columns:minmax(280px,.7fr) minmax(360px,1.3fr);gap:16px;display:grid}.proposal-list-row{text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #e4ebe7;justify-content:space-between;gap:12px;width:100%;padding:12px 2px;display:flex}.proposal-list-row span{flex-direction:column;gap:3px;display:flex}.proposal-list-row small{color:#7c8982}.proposal-list-row b{color:#267052;text-transform:uppercase;font-size:10px}.proposal-detail pre{color:#dcebe2;white-space:pre-wrap;background:#14231c;border-radius:8px;padding:12px;overflow:auto}@media (max-width:800px){.proposal-browser-layout{grid-template-columns:1fr}}
|
|
2
2
|
/*$vite$:1*/
|