@burdenoff/microfe-botmanor 2026.1027.2 → 2026.1027.3
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/botlit/BotlitRoutes.js +142 -132
- package/dist/botlit/BotlitRoutes.js.map +1 -1
- package/dist/botlit/components/AgentApprovalPanel.js +144 -126
- package/dist/botlit/components/AgentApprovalPanel.js.map +1 -1
- package/dist/botlit/components/ModelRegistrationPanel.js +4 -4
- package/dist/botlit/components/VersionHistoryPanel.js +92 -83
- package/dist/botlit/components/VersionHistoryPanel.js.map +1 -1
- package/dist/botlit/pages/A2AAgentDetailPage.js +212 -203
- package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -1
- package/dist/botlit/pages/A2ARegistryPage.js +129 -117
- package/dist/botlit/pages/A2ARegistryPage.js.map +1 -1
- package/dist/botlit/pages/AgentApprovalsPage.js +122 -110
- package/dist/botlit/pages/AgentApprovalsPage.js.map +1 -1
- package/dist/botlit/pages/AgentBuilderPage.js +18 -18
- package/dist/botlit/pages/AgentDetailPage.js +298 -273
- package/dist/botlit/pages/AgentDetailPage.js.map +1 -1
- package/dist/botlit/pages/AgentsListPage.js +145 -121
- package/dist/botlit/pages/AgentsListPage.js.map +1 -1
- package/dist/botlit/pages/BotChannelsTab.js +238 -226
- package/dist/botlit/pages/BotChannelsTab.js.map +1 -1
- package/dist/botlit/pages/BotDetailPage.js +307 -288
- package/dist/botlit/pages/BotDetailPage.js.map +1 -1
- package/dist/botlit/pages/BotWorkflowTab.js +125 -116
- package/dist/botlit/pages/BotWorkflowTab.js.map +1 -1
- package/dist/botlit/pages/BotsListPage.js +159 -144
- package/dist/botlit/pages/BotsListPage.js.map +1 -1
- package/dist/botlit/pages/BucketsPage.js +279 -258
- package/dist/botlit/pages/BucketsPage.js.map +1 -1
- package/dist/botlit/pages/ChannelDetailPage.js +346 -328
- package/dist/botlit/pages/ChannelDetailPage.js.map +1 -1
- package/dist/botlit/pages/ChannelRoutesPage.js +10 -10
- package/dist/botlit/pages/ChannelsPage.js +163 -148
- package/dist/botlit/pages/ChannelsPage.js.map +1 -1
- package/dist/botlit/pages/DashboardPage.js +129 -114
- package/dist/botlit/pages/DashboardPage.js.map +1 -1
- package/dist/botlit/pages/ExecutionDetailPage.js +145 -139
- package/dist/botlit/pages/ExecutionDetailPage.js.map +1 -1
- package/dist/botlit/pages/ExecutionsPage.js +14 -14
- package/dist/botlit/pages/InstalledPackagesPage.js +245 -227
- package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -1
- package/dist/botlit/pages/KnowledgeBaseDetailPage.js +168 -156
- package/dist/botlit/pages/KnowledgeBaseDetailPage.js.map +1 -1
- package/dist/botlit/pages/KnowledgeBasesPage.js +91 -79
- package/dist/botlit/pages/KnowledgeBasesPage.js.map +1 -1
- package/dist/botlit/pages/MCPServerDetailPage.js +200 -188
- package/dist/botlit/pages/MCPServerDetailPage.js.map +1 -1
- package/dist/botlit/pages/MCPServersPage.js +170 -155
- package/dist/botlit/pages/MCPServersPage.js.map +1 -1
- package/dist/botlit/pages/PoliciesPage.js +113 -104
- package/dist/botlit/pages/PoliciesPage.js.map +1 -1
- package/dist/botlit/pages/PolicyDetailPage.js +145 -133
- package/dist/botlit/pages/PolicyDetailPage.js.map +1 -1
- package/dist/botlit/pages/PromptStudioPage.js +106 -97
- package/dist/botlit/pages/PromptStudioPage.js.map +1 -1
- package/dist/botlit/pages/PromptTemplateDetailPage.js +359 -347
- package/dist/botlit/pages/PromptTemplateDetailPage.js.map +1 -1
- package/dist/botlit/pages/PromptTemplatesPage.js +127 -112
- package/dist/botlit/pages/PromptTemplatesPage.js.map +1 -1
- package/dist/botlit/pages/RetrievalProfileDetailPage.js +219 -210
- package/dist/botlit/pages/RetrievalProfileDetailPage.js.map +1 -1
- package/dist/botlit/pages/RetrievalProfilesPage.js +112 -103
- package/dist/botlit/pages/RetrievalProfilesPage.js.map +1 -1
- package/dist/botlit/pages/SettingsPage.js +264 -252
- package/dist/botlit/pages/SettingsPage.js.map +1 -1
- package/dist/botlit/pages/SkillDetailPage.js +235 -226
- package/dist/botlit/pages/SkillDetailPage.js.map +1 -1
- package/dist/botlit/pages/SkillsPage.js +115 -106
- package/dist/botlit/pages/SkillsPage.js.map +1 -1
- package/dist/botlit/pages/StorePackageDetailPage.js +194 -188
- package/dist/botlit/pages/StorePackageDetailPage.js.map +1 -1
- package/dist/botlit/pages/StorePage.js +161 -155
- package/dist/botlit/pages/StorePage.js.map +1 -1
- package/dist/botlit/permissions/PermissionRequired.js +45 -0
- package/dist/botlit/permissions/PermissionRequired.js.map +1 -0
- package/dist/botlit/permissions/botmanorPermissions.js +72 -0
- package/dist/botlit/permissions/botmanorPermissions.js.map +1 -0
- package/dist/botlit/permissions/index.js +3 -0
- package/dist/botlit/permissions/useBotmanorPermissions.js +19 -0
- package/dist/botlit/permissions/useBotmanorPermissions.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { useBotlit as e } from "../providers/BotlitProvider.js";
|
|
2
|
-
import { isMCPServerHealthy as t, mcpServerDescription as n, mcpServerEndpoint as r, useCreateMCPServer as ee, useDeleteMCPServer as
|
|
3
|
-
import { formatRelativeTime as
|
|
4
|
-
import {
|
|
2
|
+
import { isMCPServerHealthy as t, mcpServerDescription as n, mcpServerEndpoint as r, useCreateMCPServer as ee, useDeleteMCPServer as te, useMCPResources as ne, useMCPServer as i, useMCPTools as re, useTestMCPConnection as ie, useUpdateMCPServer as ae, useUpdateMCPTool as oe } from "../hooks/useMCPServers.js";
|
|
3
|
+
import { formatRelativeTime as a } from "../utils/formatters.js";
|
|
4
|
+
import { BOTMANOR_PERMISSIONS as o } from "../permissions/botmanorPermissions.js";
|
|
5
|
+
import { BotmanorPermissionGate as s, useBotmanorCan as c } from "../permissions/useBotmanorPermissions.js";
|
|
6
|
+
import { PageLayout as l } from "../components/PageLayout.js";
|
|
7
|
+
import { Button as u } from "../components/Button.js";
|
|
8
|
+
import "../permissions/index.js";
|
|
5
9
|
import { Card as d, CardContent as f, CardDescription as p, CardHeader as m, CardTitle as h } from "../components/Card.js";
|
|
6
|
-
import {
|
|
7
|
-
import { Badge as _, StatusBadge as re } from "../components/Badge.js";
|
|
10
|
+
import { Badge as g, StatusBadge as _ } from "../components/Badge.js";
|
|
8
11
|
import { isNative as v, nativeImpact as y, nativeNotify as b } from "../../utils/nativeBridge.js";
|
|
9
12
|
import { EmptyState as x } from "../components/EmptyState.js";
|
|
10
|
-
import { FormField as S, Input as C, Textarea as
|
|
13
|
+
import { FormField as S, Input as C, Textarea as se } from "../components/Input.js";
|
|
11
14
|
import "../hooks/index.js";
|
|
12
|
-
import { useMemo as
|
|
13
|
-
import { GlassCard as
|
|
14
|
-
import { Fragment as
|
|
15
|
-
import { useParams as
|
|
16
|
-
import { AlertTriangle as
|
|
15
|
+
import { useMemo as ce, useState as w } from "react";
|
|
16
|
+
import { GlassCard as le, PagePurpose as ue } from "@burdenoff/fe-libs/ui";
|
|
17
|
+
import { Fragment as T, jsx as E, jsxs as D } from "react/jsx-runtime";
|
|
18
|
+
import { useParams as de } from "react-router";
|
|
19
|
+
import { AlertTriangle as fe, ArrowLeft as pe, CheckCircle as me, Clock as he, Edit as ge, ExternalLink as O, Plug as k, PlugZap as A, RefreshCw as j, Save as M, Server as N, Settings as P, Trash2 as F, Wrench as I, XCircle as L } from "lucide-react";
|
|
17
20
|
import { toast as R } from "sonner";
|
|
18
21
|
//#region src/botlit/pages/MCPServerDetailPage.tsx
|
|
19
22
|
function z(e, t) {
|
|
@@ -21,16 +24,16 @@ function z(e, t) {
|
|
|
21
24
|
return typeof n == "string" && n !== "" ? n : void 0;
|
|
22
25
|
}
|
|
23
26
|
var B = ({ isNew: B }) => {
|
|
24
|
-
let { serverId: V } =
|
|
27
|
+
let { serverId: V } = de(), { navigateTo: H } = e(), _e = c(), { data: U, loading: ve, refetch: W } = i(B ? void 0 : V), { data: G } = re(B ? void 0 : V), { data: K } = ne(B ? void 0 : V), [ye, be] = ee(), [xe, Se] = ae(), [Ce, we] = te(), [Te, Ee] = ie(), [De, Oe] = oe(), [ke, q] = w(!1), [Ae, J] = w(!1), [Y, X] = w({
|
|
25
28
|
name: "",
|
|
26
29
|
description: "",
|
|
27
30
|
transport: "HTTP_JSON",
|
|
28
31
|
baseUrl: "",
|
|
29
32
|
authMethod: "NONE",
|
|
30
33
|
secretRefId: ""
|
|
31
|
-
}), [Z,
|
|
34
|
+
}), [Z, je] = w(null), Q = ce(() => G.find((e) => e.name === Z) ?? null, [G, Z]), Me = async () => {
|
|
32
35
|
if (!(!Y.name || !Y.baseUrl)) try {
|
|
33
|
-
let e = await
|
|
36
|
+
let e = await ye({
|
|
34
37
|
name: Y.name,
|
|
35
38
|
type: Y.transport,
|
|
36
39
|
config: {
|
|
@@ -44,15 +47,15 @@ var B = ({ isNew: B }) => {
|
|
|
44
47
|
} catch (e) {
|
|
45
48
|
R.error(e instanceof Error ? e.message : "Failed to connect MCP server");
|
|
46
49
|
}
|
|
47
|
-
},
|
|
50
|
+
}, Ne = async () => {
|
|
48
51
|
if (V) try {
|
|
49
|
-
await
|
|
52
|
+
await Te(V) ? R.success("MCP server is reachable") : R.error("MCP server did not respond"), W();
|
|
50
53
|
} catch (e) {
|
|
51
54
|
R.error(e instanceof Error ? e.message : "Failed to test MCP connection");
|
|
52
55
|
}
|
|
53
|
-
},
|
|
56
|
+
}, Pe = async () => {
|
|
54
57
|
if (!(!V || !Y.name)) try {
|
|
55
|
-
await
|
|
58
|
+
await xe({
|
|
56
59
|
serverId: V,
|
|
57
60
|
input: {
|
|
58
61
|
name: Y.name,
|
|
@@ -67,13 +70,13 @@ var B = ({ isNew: B }) => {
|
|
|
67
70
|
} catch (e) {
|
|
68
71
|
R.error(e instanceof Error ? e.message : "Failed to update MCP server");
|
|
69
72
|
}
|
|
70
|
-
},
|
|
73
|
+
}, Fe = async () => {
|
|
71
74
|
if (V) try {
|
|
72
|
-
await
|
|
75
|
+
await Ce(V), v() && b("success"), R.success("MCP server disconnected"), H("mcp");
|
|
73
76
|
} catch (e) {
|
|
74
77
|
v() && b("error"), R.error(e instanceof Error ? e.message : "Failed to disconnect MCP server");
|
|
75
78
|
}
|
|
76
|
-
},
|
|
79
|
+
}, Ie = () => {
|
|
77
80
|
U && (X({
|
|
78
81
|
name: U.name,
|
|
79
82
|
description: n(U) ?? "",
|
|
@@ -88,9 +91,9 @@ var B = ({ isNew: B }) => {
|
|
|
88
91
|
case "MEDIUM": return "warning";
|
|
89
92
|
default: return "success";
|
|
90
93
|
}
|
|
91
|
-
},
|
|
94
|
+
}, Le = async (e, t) => {
|
|
92
95
|
try {
|
|
93
|
-
await
|
|
96
|
+
await De({
|
|
94
97
|
toolId: e,
|
|
95
98
|
input: { riskLevel: t }
|
|
96
99
|
}), R.success("Tool risk level updated");
|
|
@@ -98,32 +101,32 @@ var B = ({ isNew: B }) => {
|
|
|
98
101
|
R.error(e instanceof Error ? e.message : "Failed to update tool risk level");
|
|
99
102
|
}
|
|
100
103
|
};
|
|
101
|
-
return B ? /* @__PURE__ */
|
|
104
|
+
return B ? /* @__PURE__ */ E(l, {
|
|
102
105
|
title: "Add MCP Server",
|
|
103
106
|
description: "Connect a new Model Context Protocol server",
|
|
104
|
-
actions: /* @__PURE__ */
|
|
107
|
+
actions: /* @__PURE__ */ D("div", {
|
|
105
108
|
className: "flex gap-2",
|
|
106
|
-
children: [/* @__PURE__ */
|
|
109
|
+
children: [/* @__PURE__ */ E(u, {
|
|
107
110
|
variant: "outline",
|
|
108
111
|
onClick: () => H("mcp"),
|
|
109
112
|
children: "Cancel"
|
|
110
|
-
}), /* @__PURE__ */
|
|
111
|
-
leftIcon: /* @__PURE__ */
|
|
112
|
-
onClick:
|
|
113
|
-
isLoading:
|
|
113
|
+
}), /* @__PURE__ */ E(u, {
|
|
114
|
+
leftIcon: /* @__PURE__ */ E(M, { size: 16 }),
|
|
115
|
+
onClick: Me,
|
|
116
|
+
isLoading: be.loading,
|
|
114
117
|
disabled: !Y.name || !Y.baseUrl,
|
|
115
118
|
children: "Connect"
|
|
116
119
|
})]
|
|
117
120
|
}),
|
|
118
|
-
children: /* @__PURE__ */
|
|
121
|
+
children: /* @__PURE__ */ E("div", {
|
|
119
122
|
className: "max-w-2xl space-y-6",
|
|
120
|
-
children: /* @__PURE__ */
|
|
123
|
+
children: /* @__PURE__ */ D(d, { children: [/* @__PURE__ */ E(m, { children: /* @__PURE__ */ E(h, { children: "Server Configuration" }) }), /* @__PURE__ */ D(f, {
|
|
121
124
|
className: "space-y-4",
|
|
122
125
|
children: [
|
|
123
|
-
/* @__PURE__ */
|
|
126
|
+
/* @__PURE__ */ E(S, {
|
|
124
127
|
label: "Server Name",
|
|
125
128
|
required: !0,
|
|
126
|
-
children: /* @__PURE__ */
|
|
129
|
+
children: /* @__PURE__ */ E(C, {
|
|
127
130
|
placeholder: "e.g., GitHub MCP Server",
|
|
128
131
|
value: Y.name,
|
|
129
132
|
onChange: (e) => X({
|
|
@@ -132,9 +135,9 @@ var B = ({ isNew: B }) => {
|
|
|
132
135
|
})
|
|
133
136
|
})
|
|
134
137
|
}),
|
|
135
|
-
/* @__PURE__ */
|
|
138
|
+
/* @__PURE__ */ E(S, {
|
|
136
139
|
label: "Description",
|
|
137
|
-
children: /* @__PURE__ */
|
|
140
|
+
children: /* @__PURE__ */ E(se, {
|
|
138
141
|
placeholder: "What capabilities does this server provide?",
|
|
139
142
|
value: Y.description,
|
|
140
143
|
onChange: (e) => X({
|
|
@@ -144,12 +147,12 @@ var B = ({ isNew: B }) => {
|
|
|
144
147
|
rows: 3
|
|
145
148
|
})
|
|
146
149
|
}),
|
|
147
|
-
/* @__PURE__ */
|
|
150
|
+
/* @__PURE__ */ D("div", {
|
|
148
151
|
className: "grid grid-cols-2 gap-4",
|
|
149
|
-
children: [/* @__PURE__ */
|
|
152
|
+
children: [/* @__PURE__ */ E(S, {
|
|
150
153
|
label: "Transport",
|
|
151
154
|
required: !0,
|
|
152
|
-
children: /* @__PURE__ */
|
|
155
|
+
children: /* @__PURE__ */ D("select", {
|
|
153
156
|
className: "flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm",
|
|
154
157
|
value: Y.transport,
|
|
155
158
|
onChange: (e) => X({
|
|
@@ -157,27 +160,27 @@ var B = ({ isNew: B }) => {
|
|
|
157
160
|
transport: e.target.value
|
|
158
161
|
}),
|
|
159
162
|
children: [
|
|
160
|
-
/* @__PURE__ */
|
|
163
|
+
/* @__PURE__ */ E("option", {
|
|
161
164
|
value: "HTTP_JSON",
|
|
162
165
|
children: "HTTP JSON"
|
|
163
166
|
}),
|
|
164
|
-
/* @__PURE__ */
|
|
167
|
+
/* @__PURE__ */ E("option", {
|
|
165
168
|
value: "JSON_RPC",
|
|
166
169
|
children: "JSON RPC"
|
|
167
170
|
}),
|
|
168
|
-
/* @__PURE__ */
|
|
171
|
+
/* @__PURE__ */ E("option", {
|
|
169
172
|
value: "SSE",
|
|
170
173
|
children: "Server-Sent Events"
|
|
171
174
|
}),
|
|
172
|
-
/* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ E("option", {
|
|
173
176
|
value: "CUSTOM",
|
|
174
177
|
children: "Custom"
|
|
175
178
|
})
|
|
176
179
|
]
|
|
177
180
|
})
|
|
178
|
-
}), /* @__PURE__ */
|
|
181
|
+
}), /* @__PURE__ */ E(S, {
|
|
179
182
|
label: "Auth Method",
|
|
180
|
-
children: /* @__PURE__ */
|
|
183
|
+
children: /* @__PURE__ */ D("select", {
|
|
181
184
|
className: "flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm",
|
|
182
185
|
value: Y.authMethod,
|
|
183
186
|
onChange: (e) => X({
|
|
@@ -185,19 +188,19 @@ var B = ({ isNew: B }) => {
|
|
|
185
188
|
authMethod: e.target.value
|
|
186
189
|
}),
|
|
187
190
|
children: [
|
|
188
|
-
/* @__PURE__ */
|
|
191
|
+
/* @__PURE__ */ E("option", {
|
|
189
192
|
value: "NONE",
|
|
190
193
|
children: "None"
|
|
191
194
|
}),
|
|
192
|
-
/* @__PURE__ */
|
|
195
|
+
/* @__PURE__ */ E("option", {
|
|
193
196
|
value: "API_KEY",
|
|
194
197
|
children: "API Key"
|
|
195
198
|
}),
|
|
196
|
-
/* @__PURE__ */
|
|
199
|
+
/* @__PURE__ */ E("option", {
|
|
197
200
|
value: "OAUTH",
|
|
198
201
|
children: "OAuth"
|
|
199
202
|
}),
|
|
200
|
-
/* @__PURE__ */
|
|
203
|
+
/* @__PURE__ */ E("option", {
|
|
201
204
|
value: "CUSTOM_HEADER",
|
|
202
205
|
children: "Custom Header"
|
|
203
206
|
})
|
|
@@ -205,10 +208,10 @@ var B = ({ isNew: B }) => {
|
|
|
205
208
|
})
|
|
206
209
|
})]
|
|
207
210
|
}),
|
|
208
|
-
/* @__PURE__ */
|
|
211
|
+
/* @__PURE__ */ E(S, {
|
|
209
212
|
label: "Base URL",
|
|
210
213
|
required: !0,
|
|
211
|
-
children: /* @__PURE__ */
|
|
214
|
+
children: /* @__PURE__ */ E(C, {
|
|
212
215
|
placeholder: "e.g., https://mcp.example.com",
|
|
213
216
|
value: Y.baseUrl,
|
|
214
217
|
onChange: (e) => X({
|
|
@@ -217,9 +220,9 @@ var B = ({ isNew: B }) => {
|
|
|
217
220
|
})
|
|
218
221
|
})
|
|
219
222
|
}),
|
|
220
|
-
Y.authMethod !== "NONE" && /* @__PURE__ */
|
|
223
|
+
Y.authMethod !== "NONE" && /* @__PURE__ */ E(S, {
|
|
221
224
|
label: "Secret Reference ID",
|
|
222
|
-
children: /* @__PURE__ */
|
|
225
|
+
children: /* @__PURE__ */ E(C, {
|
|
223
226
|
placeholder: "e.g., secret-mcp-github",
|
|
224
227
|
value: Y.secretRefId,
|
|
225
228
|
onChange: (e) => X({
|
|
@@ -231,288 +234,297 @@ var B = ({ isNew: B }) => {
|
|
|
231
234
|
]
|
|
232
235
|
})] })
|
|
233
236
|
})
|
|
234
|
-
}) :
|
|
237
|
+
}) : ve ? /* @__PURE__ */ E(l, {
|
|
235
238
|
title: "Loading...",
|
|
236
|
-
children: /* @__PURE__ */
|
|
237
|
-
}) : U ? /* @__PURE__ */
|
|
238
|
-
title: /* @__PURE__ */
|
|
239
|
+
children: /* @__PURE__ */ E("div", { className: "h-96 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" })
|
|
240
|
+
}) : U ? /* @__PURE__ */ E(l, {
|
|
241
|
+
title: /* @__PURE__ */ D("div", {
|
|
239
242
|
className: "flex items-center gap-3",
|
|
240
243
|
children: [
|
|
241
|
-
/* @__PURE__ */
|
|
244
|
+
/* @__PURE__ */ E(u, {
|
|
242
245
|
variant: "ghost",
|
|
243
246
|
size: "icon",
|
|
244
247
|
onClick: () => H("mcp"),
|
|
245
|
-
children: /* @__PURE__ */
|
|
248
|
+
children: /* @__PURE__ */ E(pe, { size: 20 })
|
|
246
249
|
}),
|
|
247
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ E("div", {
|
|
248
251
|
className: "p-2 rounded-lg bg-action-primary-bg/10",
|
|
249
|
-
children: t(U.status) ? /* @__PURE__ */
|
|
252
|
+
children: t(U.status) ? /* @__PURE__ */ E(A, { className: "h-6 w-6 text-status-success-text" }) : /* @__PURE__ */ E(k, { className: "h-6 w-6 text-text-secondary" })
|
|
250
253
|
}),
|
|
251
|
-
/* @__PURE__ */
|
|
254
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ D("div", {
|
|
252
255
|
className: "flex items-center gap-2",
|
|
253
|
-
children: [/* @__PURE__ */
|
|
254
|
-
}), /* @__PURE__ */
|
|
256
|
+
children: [/* @__PURE__ */ E("span", { children: U.name }), /* @__PURE__ */ E(_, { status: U.status })]
|
|
257
|
+
}), /* @__PURE__ */ E("p", {
|
|
255
258
|
className: "text-sm font-normal text-text-secondary",
|
|
256
259
|
children: n(U)
|
|
257
260
|
})] })
|
|
258
261
|
]
|
|
259
262
|
}),
|
|
260
|
-
actions: /* @__PURE__ */
|
|
263
|
+
actions: /* @__PURE__ */ D("div", {
|
|
261
264
|
className: "flex gap-2",
|
|
262
|
-
children: [/* @__PURE__ */
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
265
|
+
children: [/* @__PURE__ */ E(s, {
|
|
266
|
+
permission: o.MCP_TEST,
|
|
267
|
+
children: /* @__PURE__ */ E(u, {
|
|
268
|
+
variant: "outline",
|
|
269
|
+
leftIcon: /* @__PURE__ */ E(j, { size: 16 }),
|
|
270
|
+
onClick: Ne,
|
|
271
|
+
isLoading: Ee.loading,
|
|
272
|
+
children: "Test"
|
|
273
|
+
})
|
|
274
|
+
}), ke ? /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E(u, {
|
|
269
275
|
variant: "outline",
|
|
270
276
|
onClick: () => q(!1),
|
|
271
277
|
children: "Cancel"
|
|
272
|
-
}), /* @__PURE__ */
|
|
273
|
-
leftIcon: /* @__PURE__ */
|
|
274
|
-
onClick:
|
|
275
|
-
isLoading:
|
|
278
|
+
}), /* @__PURE__ */ E(u, {
|
|
279
|
+
leftIcon: /* @__PURE__ */ E(M, { size: 16 }),
|
|
280
|
+
onClick: Pe,
|
|
281
|
+
isLoading: Se.loading,
|
|
276
282
|
children: "Save"
|
|
277
|
-
})] }) : /* @__PURE__ */
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
+
})] }) : /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E(s, {
|
|
284
|
+
permission: o.MCP_UPDATE,
|
|
285
|
+
children: /* @__PURE__ */ E(u, {
|
|
286
|
+
variant: "outline",
|
|
287
|
+
leftIcon: /* @__PURE__ */ E(ge, { size: 16 }),
|
|
288
|
+
onClick: Ie,
|
|
289
|
+
children: "Edit"
|
|
290
|
+
})
|
|
291
|
+
}), Ae ? /* @__PURE__ */ D("div", {
|
|
283
292
|
className: "flex gap-2",
|
|
284
|
-
children: [/* @__PURE__ */
|
|
293
|
+
children: [/* @__PURE__ */ E(u, {
|
|
285
294
|
variant: "outline",
|
|
286
295
|
size: "sm",
|
|
287
296
|
onClick: () => J(!1),
|
|
288
297
|
children: "Cancel"
|
|
289
|
-
}), /* @__PURE__ */
|
|
298
|
+
}), /* @__PURE__ */ E(u, {
|
|
290
299
|
variant: "destructive",
|
|
291
300
|
size: "sm",
|
|
292
301
|
onClick: () => {
|
|
293
|
-
y("medium"),
|
|
302
|
+
y("medium"), Fe();
|
|
294
303
|
},
|
|
295
|
-
isLoading:
|
|
304
|
+
isLoading: we.loading,
|
|
296
305
|
children: "Confirm"
|
|
297
306
|
})]
|
|
298
|
-
}) : /* @__PURE__ */
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
307
|
+
}) : /* @__PURE__ */ E(s, {
|
|
308
|
+
permission: o.MCP_DELETE,
|
|
309
|
+
children: /* @__PURE__ */ E(u, {
|
|
310
|
+
variant: "destructive",
|
|
311
|
+
leftIcon: /* @__PURE__ */ E(F, { size: 16 }),
|
|
312
|
+
onClick: () => J(!0),
|
|
313
|
+
children: "Delete"
|
|
314
|
+
})
|
|
303
315
|
})] })]
|
|
304
316
|
}),
|
|
305
|
-
children: /* @__PURE__ */
|
|
317
|
+
children: /* @__PURE__ */ D("div", {
|
|
306
318
|
className: "space-y-6",
|
|
307
319
|
children: [
|
|
308
|
-
/* @__PURE__ */
|
|
309
|
-
icon: /* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ E(ue, {
|
|
321
|
+
icon: /* @__PURE__ */ E(N, { size: 18 }),
|
|
310
322
|
children: "This is one connected MCP server and everything it exposes to your agents — its health, the tools and resources it provides, and its connection settings. Check that it is healthy and that the right tools are available, then your agents can call them (subject to your tool policies) to take real actions."
|
|
311
323
|
}),
|
|
312
|
-
/* @__PURE__ */
|
|
324
|
+
/* @__PURE__ */ D("div", {
|
|
313
325
|
className: "grid grid-cols-2 md:grid-cols-4 gap-4",
|
|
314
326
|
children: [
|
|
315
|
-
/* @__PURE__ */
|
|
327
|
+
/* @__PURE__ */ D(le, {
|
|
316
328
|
treatment: "glass",
|
|
317
329
|
glow: !0,
|
|
318
330
|
className: "p-6 text-center",
|
|
319
331
|
children: [
|
|
320
|
-
/* @__PURE__ */
|
|
332
|
+
/* @__PURE__ */ E("div", {
|
|
321
333
|
className: "p-3 rounded-full bg-action-primary-bg/10 w-fit mx-auto mb-2",
|
|
322
334
|
children: ((e) => {
|
|
323
335
|
switch (e) {
|
|
324
|
-
case "CONNECTED": return /* @__PURE__ */
|
|
325
|
-
case "CONNECTING": return /* @__PURE__ */
|
|
336
|
+
case "CONNECTED": return /* @__PURE__ */ E(me, { className: "h-5 w-5 text-status-success-text" });
|
|
337
|
+
case "CONNECTING": return /* @__PURE__ */ E(fe, { className: "h-5 w-5 text-status-warning-text" });
|
|
326
338
|
case "ERROR":
|
|
327
|
-
case "DISCONNECTED": return /* @__PURE__ */
|
|
328
|
-
default: return /* @__PURE__ */
|
|
339
|
+
case "DISCONNECTED": return /* @__PURE__ */ E(L, { className: "h-5 w-5 text-status-error-text" });
|
|
340
|
+
default: return /* @__PURE__ */ E(he, { className: "h-5 w-5 text-text-secondary" });
|
|
329
341
|
}
|
|
330
342
|
})(U.status)
|
|
331
343
|
}),
|
|
332
|
-
/* @__PURE__ */
|
|
344
|
+
/* @__PURE__ */ E("p", {
|
|
333
345
|
className: "text-lg font-bold capitalize text-text-primary",
|
|
334
346
|
children: U.status.toLowerCase()
|
|
335
347
|
}),
|
|
336
|
-
/* @__PURE__ */
|
|
348
|
+
/* @__PURE__ */ E("p", {
|
|
337
349
|
className: "text-sm text-text-secondary",
|
|
338
350
|
children: "Health Status"
|
|
339
351
|
})
|
|
340
352
|
]
|
|
341
353
|
}),
|
|
342
|
-
/* @__PURE__ */
|
|
354
|
+
/* @__PURE__ */ E(d, { children: /* @__PURE__ */ D(f, {
|
|
343
355
|
className: "pt-6 text-center",
|
|
344
|
-
children: [/* @__PURE__ */
|
|
356
|
+
children: [/* @__PURE__ */ E("p", {
|
|
345
357
|
className: "text-3xl font-bold text-text-primary",
|
|
346
358
|
children: G.length
|
|
347
|
-
}), /* @__PURE__ */
|
|
359
|
+
}), /* @__PURE__ */ E("p", {
|
|
348
360
|
className: "text-sm text-text-secondary",
|
|
349
361
|
children: "Tools Available"
|
|
350
362
|
})]
|
|
351
363
|
}) }),
|
|
352
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ E(d, { children: /* @__PURE__ */ D(f, {
|
|
353
365
|
className: "pt-6 text-center",
|
|
354
|
-
children: [/* @__PURE__ */
|
|
366
|
+
children: [/* @__PURE__ */ E("p", {
|
|
355
367
|
className: "text-3xl font-bold text-text-primary",
|
|
356
368
|
children: K.length
|
|
357
|
-
}), /* @__PURE__ */
|
|
369
|
+
}), /* @__PURE__ */ E("p", {
|
|
358
370
|
className: "text-sm text-text-secondary",
|
|
359
371
|
children: "Resources"
|
|
360
372
|
})]
|
|
361
373
|
}) }),
|
|
362
|
-
/* @__PURE__ */
|
|
374
|
+
/* @__PURE__ */ E(d, { children: /* @__PURE__ */ D(f, {
|
|
363
375
|
className: "pt-6 text-center",
|
|
364
|
-
children: [/* @__PURE__ */
|
|
376
|
+
children: [/* @__PURE__ */ E("p", {
|
|
365
377
|
className: "text-3xl font-bold text-text-primary",
|
|
366
|
-
children: U.lastConnectedAt ?
|
|
367
|
-
}), /* @__PURE__ */
|
|
378
|
+
children: U.lastConnectedAt ? a(U.lastConnectedAt) : "Never"
|
|
379
|
+
}), /* @__PURE__ */ E("p", {
|
|
368
380
|
className: "text-sm text-text-secondary",
|
|
369
381
|
children: "Last Connected"
|
|
370
382
|
})]
|
|
371
383
|
}) })
|
|
372
384
|
]
|
|
373
385
|
}),
|
|
374
|
-
/* @__PURE__ */
|
|
386
|
+
/* @__PURE__ */ D(d, { children: [/* @__PURE__ */ E(m, { children: /* @__PURE__ */ D(h, {
|
|
375
387
|
className: "flex items-center gap-2",
|
|
376
|
-
children: [/* @__PURE__ */
|
|
377
|
-
}) }), /* @__PURE__ */
|
|
388
|
+
children: [/* @__PURE__ */ E(N, { size: 18 }), "Connection Details"]
|
|
389
|
+
}) }), /* @__PURE__ */ D(f, { children: [/* @__PURE__ */ D("div", {
|
|
378
390
|
className: "grid grid-cols-2 md:grid-cols-4 gap-6",
|
|
379
391
|
children: [
|
|
380
|
-
/* @__PURE__ */
|
|
392
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
381
393
|
className: "text-sm text-text-secondary",
|
|
382
394
|
children: "Transport"
|
|
383
|
-
}), /* @__PURE__ */
|
|
395
|
+
}), /* @__PURE__ */ E(g, {
|
|
384
396
|
variant: "outline",
|
|
385
397
|
className: "capitalize mt-1",
|
|
386
398
|
children: U.type.toLowerCase().replace("_", " ")
|
|
387
399
|
})] }),
|
|
388
|
-
/* @__PURE__ */
|
|
400
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
389
401
|
className: "text-sm text-text-secondary",
|
|
390
402
|
children: "Base URL"
|
|
391
|
-
}), /* @__PURE__ */
|
|
403
|
+
}), /* @__PURE__ */ E("p", {
|
|
392
404
|
className: "font-medium text-sm truncate",
|
|
393
405
|
children: r(U) ?? "—"
|
|
394
406
|
})] }),
|
|
395
|
-
/* @__PURE__ */
|
|
407
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
396
408
|
className: "text-sm text-text-secondary",
|
|
397
409
|
children: "Auth Method"
|
|
398
|
-
}), /* @__PURE__ */
|
|
410
|
+
}), /* @__PURE__ */ E(g, {
|
|
399
411
|
variant: "outline",
|
|
400
412
|
className: "capitalize mt-1",
|
|
401
413
|
children: (z(U.config, "authMethod") ?? "NONE").toLowerCase().replace("_", " ")
|
|
402
414
|
})] }),
|
|
403
|
-
/* @__PURE__ */
|
|
415
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
404
416
|
className: "text-sm text-text-secondary",
|
|
405
417
|
children: "Last Tested"
|
|
406
|
-
}), /* @__PURE__ */
|
|
418
|
+
}), /* @__PURE__ */ E("p", {
|
|
407
419
|
className: "font-medium",
|
|
408
|
-
children: U.lastErrorAt ?
|
|
420
|
+
children: U.lastErrorAt ? a(U.lastErrorAt) : "Never"
|
|
409
421
|
})] })
|
|
410
422
|
]
|
|
411
|
-
}), U.errorMessage && /* @__PURE__ */
|
|
423
|
+
}), U.errorMessage && /* @__PURE__ */ D("div", {
|
|
412
424
|
className: "mt-4 p-3 bg-status-error-bg-subtle rounded-lg text-sm text-status-error-text",
|
|
413
425
|
children: [
|
|
414
|
-
/* @__PURE__ */
|
|
426
|
+
/* @__PURE__ */ E("strong", { children: "Error:" }),
|
|
415
427
|
" ",
|
|
416
428
|
U.errorMessage
|
|
417
429
|
]
|
|
418
430
|
})] })] }),
|
|
419
|
-
/* @__PURE__ */
|
|
431
|
+
/* @__PURE__ */ D("div", {
|
|
420
432
|
className: "grid grid-cols-12 gap-6",
|
|
421
|
-
children: [/* @__PURE__ */
|
|
433
|
+
children: [/* @__PURE__ */ E("div", {
|
|
422
434
|
className: "col-span-5",
|
|
423
|
-
children: /* @__PURE__ */
|
|
435
|
+
children: /* @__PURE__ */ D(d, {
|
|
424
436
|
className: "h-full",
|
|
425
|
-
children: [/* @__PURE__ */
|
|
437
|
+
children: [/* @__PURE__ */ D(m, { children: [/* @__PURE__ */ D(h, {
|
|
426
438
|
className: "flex items-center gap-2",
|
|
427
439
|
children: [
|
|
428
|
-
/* @__PURE__ */
|
|
440
|
+
/* @__PURE__ */ E(I, { size: 18 }),
|
|
429
441
|
"Tools (",
|
|
430
442
|
G.length,
|
|
431
443
|
")"
|
|
432
444
|
]
|
|
433
|
-
}), /* @__PURE__ */
|
|
445
|
+
}), /* @__PURE__ */ E(p, { children: "Available tools from this MCP server" })] }), /* @__PURE__ */ E(f, {
|
|
434
446
|
className: "p-0",
|
|
435
|
-
children: G.length > 0 ? /* @__PURE__ */
|
|
447
|
+
children: G.length > 0 ? /* @__PURE__ */ E("div", {
|
|
436
448
|
className: "divide-y divide-border-subtle max-h-96 overflow-auto",
|
|
437
|
-
children: G.map((e) => /* @__PURE__ */
|
|
449
|
+
children: G.map((e) => /* @__PURE__ */ D("button", {
|
|
438
450
|
type: "button",
|
|
439
451
|
className: `w-full text-left p-4 hover:bg-accent transition-colors ${Q?.id === e.id ? "bg-accent" : ""}`,
|
|
440
|
-
onClick: () =>
|
|
441
|
-
children: [/* @__PURE__ */
|
|
452
|
+
onClick: () => je(e.name),
|
|
453
|
+
children: [/* @__PURE__ */ D("div", {
|
|
442
454
|
className: "flex items-center justify-between gap-2",
|
|
443
|
-
children: [/* @__PURE__ */
|
|
455
|
+
children: [/* @__PURE__ */ E("p", {
|
|
444
456
|
className: "font-medium truncate",
|
|
445
457
|
children: e.name
|
|
446
|
-
}), /* @__PURE__ */
|
|
458
|
+
}), /* @__PURE__ */ E(g, {
|
|
447
459
|
variant: $(e.riskLevel),
|
|
448
460
|
className: "shrink-0",
|
|
449
461
|
children: e.riskLevel
|
|
450
462
|
})]
|
|
451
|
-
}), /* @__PURE__ */
|
|
463
|
+
}), /* @__PURE__ */ E("p", {
|
|
452
464
|
className: "text-sm text-text-secondary line-clamp-1",
|
|
453
465
|
children: e.description
|
|
454
466
|
})]
|
|
455
467
|
}, e.id))
|
|
456
|
-
}) : /* @__PURE__ */
|
|
468
|
+
}) : /* @__PURE__ */ D("div", {
|
|
457
469
|
className: "p-8 text-center text-text-secondary",
|
|
458
|
-
children: [/* @__PURE__ */
|
|
470
|
+
children: [/* @__PURE__ */ E(I, { className: "h-8 w-8 mx-auto mb-2 opacity-50" }), /* @__PURE__ */ E("p", { children: "No tools available" })]
|
|
459
471
|
})
|
|
460
472
|
})]
|
|
461
473
|
})
|
|
462
|
-
}), /* @__PURE__ */
|
|
474
|
+
}), /* @__PURE__ */ E("div", {
|
|
463
475
|
className: "col-span-7",
|
|
464
|
-
children: Q ? /* @__PURE__ */
|
|
476
|
+
children: Q ? /* @__PURE__ */ D(d, {
|
|
465
477
|
className: "h-full",
|
|
466
|
-
children: [/* @__PURE__ */
|
|
478
|
+
children: [/* @__PURE__ */ E(m, { children: /* @__PURE__ */ D("div", {
|
|
467
479
|
className: "flex items-start justify-between gap-4",
|
|
468
|
-
children: [/* @__PURE__ */
|
|
480
|
+
children: [/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E(h, { children: Q.name }), /* @__PURE__ */ E(p, { children: Q.description })] }), /* @__PURE__ */ E(g, {
|
|
469
481
|
variant: $(Q.riskLevel),
|
|
470
482
|
children: Q.riskLevel
|
|
471
483
|
})]
|
|
472
|
-
}) }), /* @__PURE__ */
|
|
484
|
+
}) }), /* @__PURE__ */ D(f, {
|
|
473
485
|
className: "space-y-4",
|
|
474
|
-
children: [/* @__PURE__ */
|
|
475
|
-
/* @__PURE__ */
|
|
486
|
+
children: [/* @__PURE__ */ D("div", { children: [
|
|
487
|
+
/* @__PURE__ */ E("p", {
|
|
476
488
|
className: "text-sm font-medium mb-2",
|
|
477
489
|
children: "Risk Level"
|
|
478
490
|
}),
|
|
479
|
-
/* @__PURE__ */
|
|
491
|
+
/* @__PURE__ */ D("select", {
|
|
480
492
|
className: "flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm",
|
|
481
493
|
value: Q.riskLevel,
|
|
482
|
-
disabled:
|
|
483
|
-
onChange: (e) => void
|
|
494
|
+
disabled: Oe.loading || !_e(o.MCP_UPDATE),
|
|
495
|
+
onChange: (e) => void Le(Q.id, e.target.value),
|
|
484
496
|
children: [
|
|
485
|
-
/* @__PURE__ */
|
|
497
|
+
/* @__PURE__ */ E("option", {
|
|
486
498
|
value: "LOW",
|
|
487
499
|
children: "Low — safe read/notify actions"
|
|
488
500
|
}),
|
|
489
|
-
/* @__PURE__ */
|
|
501
|
+
/* @__PURE__ */ E("option", {
|
|
490
502
|
value: "MEDIUM",
|
|
491
503
|
children: "Medium — state-changing actions"
|
|
492
504
|
}),
|
|
493
|
-
/* @__PURE__ */
|
|
505
|
+
/* @__PURE__ */ E("option", {
|
|
494
506
|
value: "HIGH",
|
|
495
507
|
children: "High — destructive or sensitive actions"
|
|
496
508
|
})
|
|
497
509
|
]
|
|
498
510
|
}),
|
|
499
|
-
/* @__PURE__ */
|
|
511
|
+
/* @__PURE__ */ E("p", {
|
|
500
512
|
className: "text-xs text-text-secondary mt-1",
|
|
501
513
|
children: "Agents can only invoke tools up to the maximum risk level allowed by your workspace tool policies."
|
|
502
514
|
})
|
|
503
|
-
] }), /* @__PURE__ */
|
|
515
|
+
] }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
504
516
|
className: "text-sm font-medium mb-2",
|
|
505
517
|
children: "Input Schema"
|
|
506
|
-
}), /* @__PURE__ */
|
|
518
|
+
}), /* @__PURE__ */ E("div", {
|
|
507
519
|
className: "p-3 bg-bg-sunken rounded-lg font-mono text-xs overflow-auto max-h-96",
|
|
508
|
-
children: /* @__PURE__ */
|
|
520
|
+
children: /* @__PURE__ */ E("pre", { children: JSON.stringify(Q.inputSchema, null, 2) })
|
|
509
521
|
})] })]
|
|
510
522
|
})]
|
|
511
|
-
}) : /* @__PURE__ */
|
|
523
|
+
}) : /* @__PURE__ */ E(d, {
|
|
512
524
|
className: "h-full",
|
|
513
|
-
children: /* @__PURE__ */
|
|
525
|
+
children: /* @__PURE__ */ E(f, {
|
|
514
526
|
className: "h-full flex items-center justify-center",
|
|
515
|
-
children: /* @__PURE__ */
|
|
527
|
+
children: /* @__PURE__ */ E(x, {
|
|
516
528
|
illustration: "onboarding",
|
|
517
529
|
title: "Select a tool",
|
|
518
530
|
description: "Choose a tool from the list to view its details"
|
|
@@ -521,66 +533,66 @@ var B = ({ isNew: B }) => {
|
|
|
521
533
|
})
|
|
522
534
|
})]
|
|
523
535
|
}),
|
|
524
|
-
K.length > 0 && /* @__PURE__ */
|
|
536
|
+
K.length > 0 && /* @__PURE__ */ D(d, { children: [/* @__PURE__ */ D(m, { children: [/* @__PURE__ */ E(h, { children: "Resources" }), /* @__PURE__ */ E(p, { children: "Available resources exposed by this server" })] }), /* @__PURE__ */ E(f, { children: /* @__PURE__ */ E("div", {
|
|
525
537
|
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
526
|
-
children: K.map((e) => /* @__PURE__ */
|
|
538
|
+
children: K.map((e) => /* @__PURE__ */ D("div", {
|
|
527
539
|
className: "p-4 border border-border-subtle rounded-lg hover:bg-accent/50 transition-colors",
|
|
528
|
-
children: [/* @__PURE__ */
|
|
540
|
+
children: [/* @__PURE__ */ D("div", {
|
|
529
541
|
className: "flex items-start justify-between",
|
|
530
|
-
children: [/* @__PURE__ */
|
|
542
|
+
children: [/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
531
543
|
className: "font-medium",
|
|
532
544
|
children: e.name
|
|
533
|
-
}), /* @__PURE__ */
|
|
545
|
+
}), /* @__PURE__ */ E("p", {
|
|
534
546
|
className: "text-sm text-text-secondary",
|
|
535
547
|
children: e.description
|
|
536
|
-
})] }), /* @__PURE__ */
|
|
548
|
+
})] }), /* @__PURE__ */ E(O, {
|
|
537
549
|
size: 14,
|
|
538
550
|
className: "text-text-secondary"
|
|
539
551
|
})]
|
|
540
|
-
}), /* @__PURE__ */
|
|
552
|
+
}), /* @__PURE__ */ D("div", {
|
|
541
553
|
className: "mt-2 flex items-center gap-2",
|
|
542
|
-
children: [/* @__PURE__ */
|
|
554
|
+
children: [/* @__PURE__ */ E(g, {
|
|
543
555
|
variant: "outline",
|
|
544
556
|
className: "text-xs font-mono",
|
|
545
557
|
children: e.mimeType || "unknown"
|
|
546
|
-
}), /* @__PURE__ */
|
|
558
|
+
}), /* @__PURE__ */ E("span", {
|
|
547
559
|
className: "text-xs text-text-secondary truncate",
|
|
548
560
|
children: e.uri
|
|
549
561
|
})]
|
|
550
562
|
})]
|
|
551
563
|
}, e.uri))
|
|
552
564
|
}) })] }),
|
|
553
|
-
/* @__PURE__ */
|
|
565
|
+
/* @__PURE__ */ D(d, { children: [/* @__PURE__ */ E(m, { children: /* @__PURE__ */ D(h, {
|
|
554
566
|
className: "flex items-center gap-2",
|
|
555
|
-
children: [/* @__PURE__ */
|
|
556
|
-
}) }), /* @__PURE__ */
|
|
567
|
+
children: [/* @__PURE__ */ E(P, { size: 18 }), "Metadata"]
|
|
568
|
+
}) }), /* @__PURE__ */ E(f, { children: /* @__PURE__ */ D("div", {
|
|
557
569
|
className: "grid grid-cols-2 md:grid-cols-4 gap-6 text-sm",
|
|
558
570
|
children: [
|
|
559
|
-
/* @__PURE__ */
|
|
571
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
560
572
|
className: "text-text-secondary",
|
|
561
573
|
children: "Created"
|
|
562
|
-
}), /* @__PURE__ */
|
|
574
|
+
}), /* @__PURE__ */ E("p", {
|
|
563
575
|
className: "font-medium",
|
|
564
|
-
children:
|
|
576
|
+
children: a(U.createdAt)
|
|
565
577
|
})] }),
|
|
566
|
-
/* @__PURE__ */
|
|
578
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
567
579
|
className: "text-text-secondary",
|
|
568
580
|
children: "Updated"
|
|
569
|
-
}), /* @__PURE__ */
|
|
581
|
+
}), /* @__PURE__ */ E("p", {
|
|
570
582
|
className: "font-medium",
|
|
571
|
-
children:
|
|
583
|
+
children: a(U.updatedAt)
|
|
572
584
|
})] }),
|
|
573
|
-
/* @__PURE__ */
|
|
585
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
574
586
|
className: "text-text-secondary",
|
|
575
587
|
children: "Last Connected"
|
|
576
|
-
}), /* @__PURE__ */
|
|
588
|
+
}), /* @__PURE__ */ E("p", {
|
|
577
589
|
className: "font-medium",
|
|
578
|
-
children: U.lastConnectedAt ?
|
|
590
|
+
children: U.lastConnectedAt ? a(U.lastConnectedAt) : "Never"
|
|
579
591
|
})] }),
|
|
580
|
-
/* @__PURE__ */
|
|
592
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
581
593
|
className: "text-text-secondary",
|
|
582
594
|
children: "Credentials"
|
|
583
|
-
}), /* @__PURE__ */
|
|
595
|
+
}), /* @__PURE__ */ E(g, {
|
|
584
596
|
variant: U.credentialsHash ? "success" : "secondary",
|
|
585
597
|
children: U.credentialsHash ? "Configured" : "None"
|
|
586
598
|
})] })
|
|
@@ -588,13 +600,13 @@ var B = ({ isNew: B }) => {
|
|
|
588
600
|
}) })] })
|
|
589
601
|
]
|
|
590
602
|
})
|
|
591
|
-
}) : /* @__PURE__ */
|
|
603
|
+
}) : /* @__PURE__ */ E(l, {
|
|
592
604
|
title: "Server Not Found",
|
|
593
|
-
children: /* @__PURE__ */
|
|
605
|
+
children: /* @__PURE__ */ E(x, {
|
|
594
606
|
illustration: "empty-generic",
|
|
595
607
|
title: "Server Not Found",
|
|
596
608
|
description: "This MCP server doesn't exist.",
|
|
597
|
-
action: /* @__PURE__ */
|
|
609
|
+
action: /* @__PURE__ */ E(u, {
|
|
598
610
|
onClick: () => H("mcp"),
|
|
599
611
|
children: "Back to MCP Servers"
|
|
600
612
|
})
|