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