@truefoundry/trueforge-ui 0.3.0-rc.0 → 0.3.0-rc.10
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/CHANGELOG.md +191 -0
- package/README.md +35 -12
- package/dist/AgentCodeSnippets-RJBB4DDE.js +89 -0
- package/dist/AgentCodeSnippets-RJBB4DDE.js.map +1 -0
- package/dist/AgentMetricChart-UPGSJ2WP.js +15 -0
- package/dist/AgentOverview-U5WIQXZN.js +169 -0
- package/dist/AgentOverview-U5WIQXZN.js.map +1 -0
- package/dist/AgentSessionEventTimeline-GRGIQTRE.js +88 -0
- package/dist/AgentSessionEventTimeline-GRGIQTRE.js.map +1 -0
- package/dist/AgentSessionEventTimelineChart-GNF4VOUT.js +591 -0
- package/dist/AgentSessionEventTimelineChart-GNF4VOUT.js.map +1 -0
- package/dist/AgentSessions-5OTF2BUW.js +323 -0
- package/dist/AgentSessions-5OTF2BUW.js.map +1 -0
- package/dist/{ConnectorSettings-FXQ5B7TN.js → ConnectorSettings-HDKGLDCY.js} +163 -125
- package/dist/ConnectorSettings-HDKGLDCY.js.map +1 -0
- package/dist/{DockLayout-LBNQJZNF.js → DockLayout-D2FPQCAL.js} +11 -10
- package/dist/{DockLayout-LBNQJZNF.js.map → DockLayout-D2FPQCAL.js.map} +1 -1
- package/dist/DrawerLayout-HUV7RAWL.js +186 -0
- package/dist/DrawerLayout-HUV7RAWL.js.map +1 -0
- package/dist/{ModelSettings-4L4LOQJA.js → ModelSettings-VNQ7HPKH.js} +23 -27
- package/dist/ModelSettings-VNQ7HPKH.js.map +1 -0
- package/dist/OpenUiFenceBlock-KPZFLUSC.js +9 -0
- package/dist/OpenUiFenceBlock-KPZFLUSC.js.map +1 -0
- package/dist/{SandboxSettings-Z4ZG6ZX4.js → SandboxSettings-ZLXGMFBF.js} +18 -20
- package/dist/SandboxSettings-ZLXGMFBF.js.map +1 -0
- package/dist/SchedulesPage-QKYI2Z3A.js +15 -0
- package/dist/SchedulesPage-QKYI2Z3A.js.map +1 -0
- package/dist/{SettingsBuilder-WF7ZWKQW.js → SettingsBuilder-RVVYXOJW.js} +27 -23
- package/dist/SettingsBuilder-RVVYXOJW.js.map +1 -0
- package/dist/ShellRouteSync-SJXFKUAJ.js +390 -0
- package/dist/ShellRouteSync-SJXFKUAJ.js.map +1 -0
- package/dist/SidebarLayout-KYA76FQ7.js +330 -0
- package/dist/SidebarLayout-KYA76FQ7.js.map +1 -0
- package/dist/{SkillSettings-3EPPC3IT.js → SkillSettings-7OHT7FPI.js} +25 -21
- package/dist/SkillSettings-7OHT7FPI.js.map +1 -0
- package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js → TrueForgeUIWithRouter-LKG4XLW6.js} +14 -10
- package/dist/{TrueForgeUIWithRouter-NZ4FGPE4.js.map → TrueForgeUIWithRouter-LKG4XLW6.js.map} +1 -1
- package/dist/{WidgetLayout-3QZ357FL.js → WidgetLayout-W2RGGOQ3.js} +17 -13
- package/dist/WidgetLayout-W2RGGOQ3.js.map +1 -0
- package/dist/chunk-2GIZY3JJ.js +1062 -0
- package/dist/chunk-2GIZY3JJ.js.map +1 -0
- package/dist/chunk-2QTH6JHX.js +217 -0
- package/dist/chunk-2QTH6JHX.js.map +1 -0
- package/dist/{chunk-FJ5RSSMA.js → chunk-3ZW74FHC.js} +118 -164
- package/dist/chunk-3ZW74FHC.js.map +1 -0
- package/dist/chunk-67ZO7Z2W.js +184 -0
- package/dist/chunk-67ZO7Z2W.js.map +1 -0
- package/dist/{chunk-CFLVPV5M.js → chunk-7AAO4UDQ.js} +8 -2
- package/dist/chunk-7AAO4UDQ.js.map +1 -0
- package/dist/{chunk-B52K63AW.js → chunk-CG75X77Q.js} +2 -2
- package/dist/chunk-DJUFS2BW.js +27 -0
- package/dist/chunk-DJUFS2BW.js.map +1 -0
- package/dist/chunk-DPPOEFBD.js +517 -0
- package/dist/chunk-DPPOEFBD.js.map +1 -0
- package/dist/chunk-EPAL2HD5.js +1629 -0
- package/dist/chunk-EPAL2HD5.js.map +1 -0
- package/dist/chunk-GG23N2GW.js +15018 -0
- package/dist/chunk-GG23N2GW.js.map +1 -0
- package/dist/chunk-JCL3Q7RW.js +587 -0
- package/dist/chunk-JCL3Q7RW.js.map +1 -0
- package/dist/chunk-JKEBMGLH.js +682 -0
- package/dist/chunk-JKEBMGLH.js.map +1 -0
- package/dist/chunk-KSGNKS2D.js +296 -0
- package/dist/chunk-KSGNKS2D.js.map +1 -0
- package/dist/{chunk-WREC7D54.js → chunk-PCI6VMB5.js} +268 -48
- package/dist/chunk-PCI6VMB5.js.map +1 -0
- package/dist/chunk-PQ7VWBQQ.js +121 -0
- package/dist/chunk-PQ7VWBQQ.js.map +1 -0
- package/dist/chunk-RDXBMTP5.js +32 -0
- package/dist/chunk-RDXBMTP5.js.map +1 -0
- package/dist/chunk-T6QQV5LK.js +238 -0
- package/dist/chunk-T6QQV5LK.js.map +1 -0
- package/dist/chunk-Y6S4OVVQ.js +16 -0
- package/dist/chunk-Y6S4OVVQ.js.map +1 -0
- package/dist/{createTrueFoundryServer-B72bU-J7.d.ts → createTrueFoundryServer-B_FYhSdn.d.ts} +18 -4
- package/dist/index.d.ts +1287 -46
- package/dist/index.js +266 -63
- package/dist/index.js.map +1 -1
- package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +590 -11
- package/dist/plugins/trueforge-agent-server-adapter/index.js +607 -204
- package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +10 -8
- package/dist/ConnectorSettings-FXQ5B7TN.js.map +0 -1
- package/dist/DrawerLayout-Q6UK4VMI.js +0 -159
- package/dist/DrawerLayout-Q6UK4VMI.js.map +0 -1
- package/dist/ModelSettings-4L4LOQJA.js.map +0 -1
- package/dist/OpenUiFenceBlock-6UIIAVBX.js +0 -9
- package/dist/SandboxSettings-Z4ZG6ZX4.js.map +0 -1
- package/dist/SettingsBuilder-WF7ZWKQW.js.map +0 -1
- package/dist/ShellRouteSync-T4WLY57Q.js +0 -172
- package/dist/ShellRouteSync-T4WLY57Q.js.map +0 -1
- package/dist/SidebarLayout-3WZ3CVON.js +0 -256
- package/dist/SidebarLayout-3WZ3CVON.js.map +0 -1
- package/dist/SkillSettings-3EPPC3IT.js.map +0 -1
- package/dist/WidgetLayout-3QZ357FL.js.map +0 -1
- package/dist/chunk-36KOSC2J.js +0 -567
- package/dist/chunk-36KOSC2J.js.map +0 -1
- package/dist/chunk-3S6KHO7H.js +0 -2121
- package/dist/chunk-3S6KHO7H.js.map +0 -1
- package/dist/chunk-7L63OK3O.js +0 -91
- package/dist/chunk-7L63OK3O.js.map +0 -1
- package/dist/chunk-CFLVPV5M.js.map +0 -1
- package/dist/chunk-FJ5RSSMA.js.map +0 -1
- package/dist/chunk-OSV3HI5M.js +0 -6891
- package/dist/chunk-OSV3HI5M.js.map +0 -1
- package/dist/chunk-WQULF5AT.js +0 -460
- package/dist/chunk-WQULF5AT.js.map +0 -1
- package/dist/chunk-WREC7D54.js.map +0 -1
- package/dist/chunk-YIWUG6MC.js +0 -101
- package/dist/chunk-YIWUG6MC.js.map +0 -1
- package/dist/chunk-ZXOADNF3.js +0 -75
- package/dist/chunk-ZXOADNF3.js.map +0 -1
- /package/dist/{OpenUiFenceBlock-6UIIAVBX.js.map → AgentMetricChart-UPGSJ2WP.js.map} +0 -0
- /package/dist/{chunk-B52K63AW.js.map → chunk-CG75X77Q.js.map} +0 -0
|
@@ -7,39 +7,45 @@ import {
|
|
|
7
7
|
auiInputClass,
|
|
8
8
|
useMCPAuth,
|
|
9
9
|
useToasterOptional
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-GG23N2GW.js";
|
|
11
|
+
import "./chunk-T6QQV5LK.js";
|
|
11
12
|
import {
|
|
12
|
-
Icon
|
|
13
|
-
|
|
14
|
-
} from "./chunk-FJ5RSSMA.js";
|
|
13
|
+
Icon
|
|
14
|
+
} from "./chunk-3ZW74FHC.js";
|
|
15
15
|
import {
|
|
16
|
+
getErrorMessage,
|
|
16
17
|
useCatalogServer
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-2GIZY3JJ.js";
|
|
19
|
+
import "./chunk-M6MHLVSO.js";
|
|
20
|
+
import "./chunk-CG75X77Q.js";
|
|
19
21
|
import {
|
|
20
22
|
cn
|
|
21
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-JCL3Q7RW.js";
|
|
22
24
|
|
|
23
25
|
// src/containers/SettingsBuilder/ConnectorSettings.tsx
|
|
24
|
-
import { useCallback, useEffect as
|
|
26
|
+
import { useCallback, useEffect as useEffect3, useMemo, useState as useState3 } from "react";
|
|
25
27
|
|
|
26
28
|
// src/containers/SettingsBuilder/AddMcpServerForm.tsx
|
|
27
|
-
import { useState } from "react";
|
|
29
|
+
import { useEffect, useState } from "react";
|
|
28
30
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
29
31
|
var AUTH_OPTIONS = [
|
|
30
|
-
{ value: "dcr", label: "OAuth" },
|
|
31
32
|
{ value: "none", label: "None" },
|
|
32
|
-
{ value: "header", label: "API Key" }
|
|
33
|
+
{ value: "header", label: "API Key" },
|
|
34
|
+
{ value: "dcr", label: "OAuth" }
|
|
33
35
|
];
|
|
34
36
|
var inputClassName = auiInputClass("h-11 shadow-sm");
|
|
35
37
|
var RequiredMark = () => /* @__PURE__ */ jsx("span", { className: "ml-0.5 text-failure-bg", "aria-hidden": true, children: "*" });
|
|
36
|
-
var AddMcpServerForm = ({ open, onOpenChange,
|
|
38
|
+
var AddMcpServerForm = ({ open, onOpenChange, onSubmit, connector, busy = false, error }) => {
|
|
37
39
|
const [name, setName] = useState("");
|
|
38
40
|
const [url, setUrl] = useState("");
|
|
39
41
|
const [description, setDescription] = useState("");
|
|
40
42
|
const [authType, setAuthType] = useState("dcr");
|
|
41
43
|
const [apiKey, setApiKey] = useState("");
|
|
42
44
|
const [headerName, setHeaderName] = useState("");
|
|
45
|
+
const isEditing = connector !== void 0;
|
|
46
|
+
const nameInputClassName = auiInputClass(
|
|
47
|
+
`h-11 shadow-sm ${isEditing ? "cursor-not-allowed bg-secondary-bg/60 text-text-secondary opacity-40" : ""}`
|
|
48
|
+
);
|
|
43
49
|
const resetForm = () => {
|
|
44
50
|
setName("");
|
|
45
51
|
setUrl("");
|
|
@@ -48,11 +54,21 @@ var AddMcpServerForm = ({ open, onOpenChange, onAdd, busy = false, error }) => {
|
|
|
48
54
|
setApiKey("");
|
|
49
55
|
setHeaderName("");
|
|
50
56
|
};
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
if (!open) return;
|
|
59
|
+
setName(connector?.name ?? "");
|
|
60
|
+
setUrl(connector?.url ?? "");
|
|
61
|
+
setDescription(connector?.description ?? "");
|
|
62
|
+
setAuthType(connector?.auth.type ?? "dcr");
|
|
63
|
+
setApiKey("");
|
|
64
|
+
setHeaderName(connector?.auth.type === "header" ? connector.auth.headerName ?? "" : "");
|
|
65
|
+
}, [connector, open]);
|
|
51
66
|
const handleOpenChange = (nextOpen) => {
|
|
52
67
|
if (!nextOpen) resetForm();
|
|
53
68
|
onOpenChange(nextOpen);
|
|
54
69
|
};
|
|
55
|
-
const
|
|
70
|
+
const hasApiKey = !!apiKey.trim() || connector?.auth.type === "header";
|
|
71
|
+
const isValid = !!name.trim() && !!description.trim() && !!url.trim() && (authType !== "header" || hasApiKey);
|
|
56
72
|
const handleSubmit = async (event) => {
|
|
57
73
|
event.preventDefault();
|
|
58
74
|
if (!isValid || busy) return;
|
|
@@ -62,7 +78,7 @@ var AddMcpServerForm = ({ open, onOpenChange, onAdd, busy = false, error }) => {
|
|
|
62
78
|
...headerName.trim() ? { headerName: headerName.trim() } : {}
|
|
63
79
|
} : { type: authType };
|
|
64
80
|
try {
|
|
65
|
-
await
|
|
81
|
+
await onSubmit({
|
|
66
82
|
name: name.trim(),
|
|
67
83
|
url: url.trim(),
|
|
68
84
|
description: description.trim(),
|
|
@@ -78,8 +94,8 @@ var AddMcpServerForm = ({ open, onOpenChange, onAdd, busy = false, error }) => {
|
|
|
78
94
|
{
|
|
79
95
|
open,
|
|
80
96
|
onOpenChange: handleOpenChange,
|
|
81
|
-
title: "Add MCP server",
|
|
82
|
-
description: "Point at a remote MCP endpoint. It then behaves like any other connector.",
|
|
97
|
+
title: isEditing ? "Edit MCP server" : "Add MCP server",
|
|
98
|
+
description: isEditing ? "Update how this connector authenticates." : "Point at a remote MCP endpoint. It then behaves like any other connector.",
|
|
83
99
|
contentSized: true,
|
|
84
100
|
headerIcon: /* @__PURE__ */ jsx(
|
|
85
101
|
"span",
|
|
@@ -103,12 +119,14 @@ var AddMcpServerForm = ({ open, onOpenChange, onAdd, busy = false, error }) => {
|
|
|
103
119
|
type: "text",
|
|
104
120
|
required: true,
|
|
105
121
|
value: name,
|
|
122
|
+
readOnly: isEditing,
|
|
123
|
+
"aria-disabled": isEditing,
|
|
106
124
|
onChange: (event) => {
|
|
107
125
|
setName(event.target.value);
|
|
108
126
|
},
|
|
109
127
|
placeholder: "analytics-postgres-mcp",
|
|
110
|
-
autoFocus:
|
|
111
|
-
className:
|
|
128
|
+
autoFocus: !isEditing,
|
|
129
|
+
className: nameInputClassName
|
|
112
130
|
}
|
|
113
131
|
)
|
|
114
132
|
] }),
|
|
@@ -189,14 +207,14 @@ var AddMcpServerForm = ({ open, onOpenChange, onAdd, busy = false, error }) => {
|
|
|
189
207
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
190
208
|
/* @__PURE__ */ jsxs("label", { htmlFor: "mcp-server-api-key", className: "mb-1.5 block text-sm font-medium text-text-primary", children: [
|
|
191
209
|
"API key",
|
|
192
|
-
/* @__PURE__ */ jsx(RequiredMark, {})
|
|
210
|
+
connector?.auth.type === "header" ? /* @__PURE__ */ jsx("span", { className: "font-normal text-text-secondary", children: " (leave blank to keep current)" }) : /* @__PURE__ */ jsx(RequiredMark, {})
|
|
193
211
|
] }),
|
|
194
212
|
/* @__PURE__ */ jsx(
|
|
195
213
|
"input",
|
|
196
214
|
{
|
|
197
215
|
id: "mcp-server-api-key",
|
|
198
216
|
type: "password",
|
|
199
|
-
required:
|
|
217
|
+
required: connector?.auth.type !== "header",
|
|
200
218
|
value: apiKey,
|
|
201
219
|
onChange: (event) => {
|
|
202
220
|
setApiKey(event.target.value);
|
|
@@ -229,7 +247,7 @@ var AddMcpServerForm = ({ open, onOpenChange, onAdd, busy = false, error }) => {
|
|
|
229
247
|
] }),
|
|
230
248
|
/* @__PURE__ */ jsxs("div", { className: "mt-6 space-y-3", children: [
|
|
231
249
|
error ? /* @__PURE__ */ jsx("p", { className: "text-failure-bg text-sm", children: error }) : null,
|
|
232
|
-
/* @__PURE__ */ jsx(Button, { type: "submit", size: "
|
|
250
|
+
/* @__PURE__ */ jsx(Button.Primary, { type: "submit", size: "large", disabled: !isValid || busy, className: "w-full shrink-0", children: isEditing ? "Save" : "Add" })
|
|
233
251
|
] })
|
|
234
252
|
] })
|
|
235
253
|
}
|
|
@@ -245,7 +263,7 @@ var AUTH_TYPE_LABELS = {
|
|
|
245
263
|
};
|
|
246
264
|
|
|
247
265
|
// src/containers/SettingsBuilder/ConnectorDetails.tsx
|
|
248
|
-
import { useEffect, useLayoutEffect, useRef, useState as useState2 } from "react";
|
|
266
|
+
import { useEffect as useEffect2, useLayoutEffect, useRef, useState as useState2 } from "react";
|
|
249
267
|
import { Fragment as Fragment2, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
250
268
|
function ExpandableDescription({ text }) {
|
|
251
269
|
const contentRef = useRef(null);
|
|
@@ -319,6 +337,7 @@ var ConnectorDetails = ({
|
|
|
319
337
|
connector,
|
|
320
338
|
onBack,
|
|
321
339
|
onConnectorRefreshed,
|
|
340
|
+
onEdit,
|
|
322
341
|
onDisconnect,
|
|
323
342
|
busy = false
|
|
324
343
|
}) => {
|
|
@@ -328,7 +347,7 @@ var ConnectorDetails = ({
|
|
|
328
347
|
const [toolsLoading, setToolsLoading] = useState2(true);
|
|
329
348
|
const [toolsError, setToolsError] = useState2(null);
|
|
330
349
|
const [refreshingAfterAuth, setRefreshingAfterAuth] = useState2(false);
|
|
331
|
-
|
|
350
|
+
useEffect2(() => {
|
|
332
351
|
let cancelled = false;
|
|
333
352
|
setTools([]);
|
|
334
353
|
setToolsError(null);
|
|
@@ -383,13 +402,14 @@ var ConnectorDetails = ({
|
|
|
383
402
|
}
|
|
384
403
|
),
|
|
385
404
|
/* @__PURE__ */ jsxs2("div", { className: "min-w-0 flex-1", children: [
|
|
386
|
-
/* @__PURE__ */
|
|
387
|
-
|
|
405
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2", children: [
|
|
406
|
+
/* @__PURE__ */ jsx2("h4", { className: "text-lg font-semibold text-text-primary", children: connector.name }),
|
|
407
|
+
/* @__PURE__ */ jsx2("span", { className: "inline-flex items-center rounded-full border border-border bg-secondary-bg/40 px-2 py-0.5 text-xs font-medium text-text-secondary", children: AUTH_TYPE_LABELS[connector.auth.type] ?? AUTH_TYPE_LABELS.none }),
|
|
388
408
|
/* @__PURE__ */ jsxs2(
|
|
389
409
|
"span",
|
|
390
410
|
{
|
|
391
411
|
className: cn(
|
|
392
|
-
"flex items-center gap-1.5 text-xs font-medium",
|
|
412
|
+
"flex items-center gap-1.5 rounded-full border border-border bg-secondary-bg/40 px-2 py-0.5 text-xs font-medium",
|
|
393
413
|
connector.authenticated ? "text-success-bg" : "text-text-primary"
|
|
394
414
|
),
|
|
395
415
|
children: [
|
|
@@ -405,29 +425,30 @@ var ConnectorDetails = ({
|
|
|
405
425
|
connector.authenticated ? "Connected" : "Not authenticated"
|
|
406
426
|
]
|
|
407
427
|
}
|
|
408
|
-
)
|
|
409
|
-
/* @__PURE__ */ jsxs2("span", { className: "text-text-secondary", children: [
|
|
410
|
-
"\xB7 ",
|
|
411
|
-
connector.description
|
|
412
|
-
] })
|
|
428
|
+
)
|
|
413
429
|
] }),
|
|
414
|
-
/* @__PURE__ */ jsx2("
|
|
430
|
+
/* @__PURE__ */ jsx2("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1 text-sm", children: /* @__PURE__ */ jsx2("span", { className: "text-text-secondary", children: connector.description }) })
|
|
415
431
|
] }),
|
|
416
|
-
|
|
417
|
-
Button,
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
432
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2", children: [
|
|
433
|
+
/* @__PURE__ */ jsxs2(Button.Secondary, { size: "small", type: "button", disabled: busy, onClick: onEdit, children: [
|
|
434
|
+
/* @__PURE__ */ jsx2(Icon, { name: "pencil", className: "size-3" }),
|
|
435
|
+
"Edit"
|
|
436
|
+
] }),
|
|
437
|
+
connector.auth.type === "dcr" && !connector.authenticated ? /* @__PURE__ */ jsx2(
|
|
438
|
+
Button.Secondary,
|
|
439
|
+
{
|
|
440
|
+
size: "small",
|
|
441
|
+
type: "button",
|
|
442
|
+
disabled: busy || connecting,
|
|
443
|
+
onClick: () => {
|
|
444
|
+
void handleAuthorize(connector.id, (isSuccess) => {
|
|
445
|
+
if (isSuccess) void refreshAfterAuthentication();
|
|
446
|
+
});
|
|
447
|
+
},
|
|
448
|
+
children: connecting ? "Connecting\u2026" : "Connect"
|
|
449
|
+
}
|
|
450
|
+
) : connector.auth.type === "dcr" && !connector.requiresAuth ? /* @__PURE__ */ jsx2(Button.Secondary, { size: "small", type: "button", disabled: busy, onClick: onDisconnect, children: "Disconnect" }) : null
|
|
451
|
+
] })
|
|
431
452
|
] }),
|
|
432
453
|
/* @__PURE__ */ jsx2("section", { className: "mt-6", "aria-labelledby": "connector-tools-heading", children: toolsLoading ? /* @__PURE__ */ jsx2("div", { className: "rounded-xl border border-dashed border-border p-6 text-center text-sm text-text-secondary", children: "Loading tools\u2026" }) : toolsError ? /* @__PURE__ */ jsxs2("div", { className: "rounded-xl border border-failure-bg/30 bg-failure-bg/10 p-6 text-center text-sm text-failure-bg", children: [
|
|
433
454
|
toolsError,
|
|
@@ -473,6 +494,7 @@ var ConnectorSettings = () => {
|
|
|
473
494
|
const [busy, setBusy] = useState3(false);
|
|
474
495
|
const [catalog, setCatalog] = useState3([]);
|
|
475
496
|
const [addMcpServerFormOpen, setAddMcpServerFormOpen] = useState3(false);
|
|
497
|
+
const [editingConnector, setEditingConnector] = useState3(null);
|
|
476
498
|
const [connectorAwaitingKey, setConnectorAwaitingKey] = useState3(null);
|
|
477
499
|
const [selectedConnector, setSelectedConnector] = useState3(null);
|
|
478
500
|
const [apiKey, setApiKey] = useState3("");
|
|
@@ -513,7 +535,7 @@ var ConnectorSettings = () => {
|
|
|
513
535
|
setLoading(false);
|
|
514
536
|
}
|
|
515
537
|
}, [connectorCatalog]);
|
|
516
|
-
|
|
538
|
+
useEffect3(() => {
|
|
517
539
|
void refresh();
|
|
518
540
|
}, [refresh]);
|
|
519
541
|
const normalizedQuery = query.trim().toLowerCase();
|
|
@@ -595,35 +617,27 @@ var ConnectorSettings = () => {
|
|
|
595
617
|
apiKey: apiKey.trim(),
|
|
596
618
|
...entry.auth.type === "header" && entry.auth.headerName ? { headerName: entry.auth.headerName } : {}
|
|
597
619
|
};
|
|
598
|
-
|
|
599
|
-
const existingConnector = existing?.isConfigured ? existing.connector : void 0;
|
|
600
|
-
if (existingConnector) {
|
|
601
|
-
await connectorCatalog.updateConnector({
|
|
602
|
-
id: existingConnector.id,
|
|
603
|
-
name: existingConnector.name,
|
|
604
|
-
description: existingConnector.description,
|
|
605
|
-
url: existingConnector.url,
|
|
606
|
-
auth
|
|
607
|
-
});
|
|
608
|
-
} else {
|
|
609
|
-
await createFromCatalog(entry, auth);
|
|
610
|
-
}
|
|
620
|
+
await createFromCatalog(entry, auth);
|
|
611
621
|
closeApiKeyModal();
|
|
612
622
|
setTimeout(() => {
|
|
613
623
|
toaster?.showSuccess({
|
|
614
|
-
title: `${entry.name}
|
|
624
|
+
title: `${entry.name} connected`
|
|
615
625
|
});
|
|
616
626
|
}, 100);
|
|
617
627
|
}, setFormError).catch(() => {
|
|
618
628
|
});
|
|
619
629
|
};
|
|
620
|
-
const
|
|
630
|
+
const handleMcpServerSubmit = async (draft) => {
|
|
621
631
|
setFormError(null);
|
|
622
632
|
await runMutation(async () => {
|
|
623
|
-
|
|
633
|
+
if (editingConnector) {
|
|
634
|
+
await connectorCatalog.updateConnector({ id: editingConnector.id, ...draft });
|
|
635
|
+
} else {
|
|
636
|
+
await connectorCatalog.createConnector({ ...draft });
|
|
637
|
+
}
|
|
624
638
|
}, setFormError);
|
|
625
639
|
setTimeout(() => {
|
|
626
|
-
toaster?.showSuccess({ title: `${draft.name} added` });
|
|
640
|
+
toaster?.showSuccess({ title: `${draft.name} ${editingConnector ? "updated" : "added"}` });
|
|
627
641
|
}, 0);
|
|
628
642
|
};
|
|
629
643
|
const handleDisconnect = (connector) => {
|
|
@@ -658,7 +672,30 @@ var ConnectorSettings = () => {
|
|
|
658
672
|
}
|
|
659
673
|
),
|
|
660
674
|
/* @__PURE__ */ jsxs3("div", { className: "min-w-0 flex-1", children: [
|
|
661
|
-
/* @__PURE__ */
|
|
675
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
|
|
676
|
+
/* @__PURE__ */ jsx3("h5", { className: "truncate text-sm font-medium text-text-primary", children: connector.name }),
|
|
677
|
+
/* @__PURE__ */ jsx3("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxs3(
|
|
678
|
+
"span",
|
|
679
|
+
{
|
|
680
|
+
className: cn(
|
|
681
|
+
"flex items-center gap-1.5 rounded-full border border-border bg-secondary-bg/40 px-2 py-0.5 text-xs font-medium",
|
|
682
|
+
connector.authenticated ? "text-success-bg" : "text-text-primary"
|
|
683
|
+
),
|
|
684
|
+
children: [
|
|
685
|
+
/* @__PURE__ */ jsx3(
|
|
686
|
+
"span",
|
|
687
|
+
{
|
|
688
|
+
className: cn(
|
|
689
|
+
"h-1.5 w-1.5 rounded-full",
|
|
690
|
+
connector.authenticated ? "bg-success-bg" : "bg-primary-button-bg"
|
|
691
|
+
)
|
|
692
|
+
}
|
|
693
|
+
),
|
|
694
|
+
connector.authenticated ? "Connected" : "Added"
|
|
695
|
+
]
|
|
696
|
+
}
|
|
697
|
+
) })
|
|
698
|
+
] }),
|
|
662
699
|
/* @__PURE__ */ jsx3("p", { className: "mt-0.5 line-clamp-2 text-sm text-text-secondary sm:truncate", children: connector.description })
|
|
663
700
|
] })
|
|
664
701
|
] });
|
|
@@ -674,45 +711,24 @@ var ConnectorSettings = () => {
|
|
|
674
711
|
children: [
|
|
675
712
|
/* @__PURE__ */ jsx3("div", { className: "flex min-w-0 flex-1 items-center gap-3", children: content }),
|
|
676
713
|
/* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
|
|
677
|
-
/* @__PURE__ */
|
|
678
|
-
|
|
714
|
+
/* @__PURE__ */ jsxs3(
|
|
715
|
+
Button.Secondary,
|
|
679
716
|
{
|
|
680
|
-
|
|
681
|
-
"flex items-center gap-1.5 rounded-full border border-border bg-secondary-bg/40 px-2 py-0.5 text-xs font-medium",
|
|
682
|
-
connector.authenticated ? "text-success-bg" : "text-text-primary"
|
|
683
|
-
),
|
|
684
|
-
children: [
|
|
685
|
-
/* @__PURE__ */ jsx3(
|
|
686
|
-
"span",
|
|
687
|
-
{
|
|
688
|
-
className: cn(
|
|
689
|
-
"h-1.5 w-1.5 rounded-full",
|
|
690
|
-
connector.authenticated ? "bg-success-bg" : "bg-primary-button-bg"
|
|
691
|
-
)
|
|
692
|
-
}
|
|
693
|
-
),
|
|
694
|
-
connector.authenticated ? "Connected" : "Added"
|
|
695
|
-
]
|
|
696
|
-
}
|
|
697
|
-
) }),
|
|
698
|
-
connector.auth.type === "header" ? /* @__PURE__ */ jsxs3(
|
|
699
|
-
Button,
|
|
700
|
-
{
|
|
701
|
-
variant: "secondary",
|
|
702
|
-
size: "sm",
|
|
717
|
+
size: "small",
|
|
703
718
|
type: "button",
|
|
704
719
|
disabled: busy,
|
|
705
720
|
onClick: (event) => {
|
|
706
721
|
event.stopPropagation();
|
|
707
|
-
|
|
708
|
-
|
|
722
|
+
setFormError(null);
|
|
723
|
+
setEditingConnector(connector);
|
|
724
|
+
setAddMcpServerFormOpen(true);
|
|
709
725
|
},
|
|
710
726
|
children: [
|
|
711
|
-
/* @__PURE__ */ jsx3(Icon, { name: "
|
|
712
|
-
"
|
|
727
|
+
/* @__PURE__ */ jsx3(Icon, { name: "pencil", className: "size-3" }),
|
|
728
|
+
"Edit"
|
|
713
729
|
]
|
|
714
730
|
}
|
|
715
|
-
)
|
|
731
|
+
),
|
|
716
732
|
/* @__PURE__ */ jsx3(Icon, { name: "chevron-right", className: "size-4" })
|
|
717
733
|
] })
|
|
718
734
|
]
|
|
@@ -744,10 +760,9 @@ var ConnectorSettings = () => {
|
|
|
744
760
|
/* @__PURE__ */ jsxs3("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
745
761
|
/* @__PURE__ */ jsx3("span", { className: "hidden text-xs text-text-secondary sm:inline", children: AUTH_TYPE_LABELS[entry.auth.type] ?? AUTH_TYPE_LABELS.none }),
|
|
746
762
|
/* @__PURE__ */ jsx3(
|
|
747
|
-
Button,
|
|
763
|
+
Button.Secondary,
|
|
748
764
|
{
|
|
749
|
-
|
|
750
|
-
size: "sm",
|
|
765
|
+
size: "small",
|
|
751
766
|
type: "button",
|
|
752
767
|
disabled: busy,
|
|
753
768
|
onClick: () => {
|
|
@@ -762,26 +777,45 @@ var ConnectorSettings = () => {
|
|
|
762
777
|
entry.id
|
|
763
778
|
);
|
|
764
779
|
};
|
|
765
|
-
const isReplacingKey = useMemo(() => {
|
|
766
|
-
return connectorAwaitingKey !== null && connectors.ordered.some(
|
|
767
|
-
(item) => item.isConfigured && item.connector.id === connectorAwaitingKey.id
|
|
768
|
-
);
|
|
769
|
-
}, [connectorAwaitingKey, connectors.ordered]);
|
|
770
780
|
if (selectedConnector) {
|
|
771
|
-
return /* @__PURE__ */
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
781
|
+
return /* @__PURE__ */ jsxs3(Fragment3, { children: [
|
|
782
|
+
/* @__PURE__ */ jsx3(
|
|
783
|
+
ConnectorDetails_default,
|
|
784
|
+
{
|
|
785
|
+
connector: selectedConnector,
|
|
786
|
+
busy,
|
|
787
|
+
onBack: () => {
|
|
788
|
+
setSelectedConnector(null);
|
|
789
|
+
},
|
|
790
|
+
onConnectorRefreshed: handleConnectorRefreshed,
|
|
791
|
+
onEdit: () => {
|
|
792
|
+
setFormError(null);
|
|
793
|
+
setEditingConnector(selectedConnector);
|
|
794
|
+
setAddMcpServerFormOpen(true);
|
|
795
|
+
},
|
|
796
|
+
onDisconnect: () => {
|
|
797
|
+
handleDisconnect(selectedConnector);
|
|
798
|
+
}
|
|
782
799
|
}
|
|
783
|
-
|
|
784
|
-
|
|
800
|
+
),
|
|
801
|
+
/* @__PURE__ */ jsx3(
|
|
802
|
+
AddMcpServerForm_default,
|
|
803
|
+
{
|
|
804
|
+
open: addMcpServerFormOpen,
|
|
805
|
+
onOpenChange: (open) => {
|
|
806
|
+
setAddMcpServerFormOpen(open);
|
|
807
|
+
if (!open) {
|
|
808
|
+
setEditingConnector(null);
|
|
809
|
+
setFormError(null);
|
|
810
|
+
}
|
|
811
|
+
},
|
|
812
|
+
onSubmit: handleMcpServerSubmit,
|
|
813
|
+
connector: editingConnector ?? void 0,
|
|
814
|
+
busy,
|
|
815
|
+
error: formError
|
|
816
|
+
}
|
|
817
|
+
)
|
|
818
|
+
] });
|
|
785
819
|
}
|
|
786
820
|
const hasMatches = matchingConnected.length > 0 || availableConnectors.length > 0;
|
|
787
821
|
return /* @__PURE__ */ jsxs3(Fragment3, { children: [
|
|
@@ -792,12 +826,12 @@ var ConnectorSettings = () => {
|
|
|
792
826
|
/* @__PURE__ */ jsxs3("div", { className: "flex gap-2", children: [
|
|
793
827
|
/* @__PURE__ */ jsx3("div", { className: "flex-1", children: /* @__PURE__ */ jsx3(SearchInput_default, { query, setQuery, placeholder: "Search connectors" }) }),
|
|
794
828
|
/* @__PURE__ */ jsxs3(
|
|
795
|
-
Button,
|
|
829
|
+
Button.Secondary,
|
|
796
830
|
{
|
|
797
|
-
variant: "secondary",
|
|
798
831
|
type: "button",
|
|
799
832
|
onClick: () => {
|
|
800
833
|
setFormError(null);
|
|
834
|
+
setEditingConnector(null);
|
|
801
835
|
setAddMcpServerFormOpen(true);
|
|
802
836
|
},
|
|
803
837
|
children: [
|
|
@@ -846,7 +880,7 @@ var ConnectorSettings = () => {
|
|
|
846
880
|
onOpenChange: (open) => {
|
|
847
881
|
if (!open) closeApiKeyModal();
|
|
848
882
|
},
|
|
849
|
-
title:
|
|
883
|
+
title: `Connect ${connectorAwaitingKey?.name ?? "connector"}`,
|
|
850
884
|
description: connectorAwaitingKey?.url,
|
|
851
885
|
contentSized: true,
|
|
852
886
|
className: "md:max-w-xl",
|
|
@@ -894,8 +928,8 @@ var ConnectorSettings = () => {
|
|
|
894
928
|
formError ? /* @__PURE__ */ jsx3("p", { className: "text-failure-bg text-sm", children: formError }) : null
|
|
895
929
|
] }),
|
|
896
930
|
/* @__PURE__ */ jsxs3("footer", { className: "flex justify-end gap-2 border-t border-border px-5 py-4", children: [
|
|
897
|
-
/* @__PURE__ */ jsx3(Button, {
|
|
898
|
-
/* @__PURE__ */ jsx3(Button, { type: "submit", disabled: !apiKey.trim() || busy, children:
|
|
931
|
+
/* @__PURE__ */ jsx3(Button.Ghost, { type: "button", onClick: closeApiKeyModal, disabled: busy, children: "Cancel" }),
|
|
932
|
+
/* @__PURE__ */ jsx3(Button.Primary, { type: "submit", disabled: !apiKey.trim() || busy, children: "Connect" })
|
|
899
933
|
] })
|
|
900
934
|
] })
|
|
901
935
|
}
|
|
@@ -906,9 +940,13 @@ var ConnectorSettings = () => {
|
|
|
906
940
|
open: addMcpServerFormOpen,
|
|
907
941
|
onOpenChange: (open) => {
|
|
908
942
|
setAddMcpServerFormOpen(open);
|
|
909
|
-
if (!open)
|
|
943
|
+
if (!open) {
|
|
944
|
+
setEditingConnector(null);
|
|
945
|
+
setFormError(null);
|
|
946
|
+
}
|
|
910
947
|
},
|
|
911
|
-
|
|
948
|
+
onSubmit: handleMcpServerSubmit,
|
|
949
|
+
connector: editingConnector ?? void 0,
|
|
912
950
|
busy,
|
|
913
951
|
error: formError
|
|
914
952
|
}
|
|
@@ -920,4 +958,4 @@ var ConnectorSettings_default = ConnectorSettings;
|
|
|
920
958
|
export {
|
|
921
959
|
ConnectorSettings_default as default
|
|
922
960
|
};
|
|
923
|
-
//# sourceMappingURL=ConnectorSettings-
|
|
961
|
+
//# sourceMappingURL=ConnectorSettings-HDKGLDCY.js.map
|