@stigmer/react 0.0.43 → 0.0.44
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/execution/ArtifactContentRenderer.d.ts +58 -0
- package/execution/ArtifactContentRenderer.d.ts.map +1 -0
- package/execution/ArtifactContentRenderer.js +163 -0
- package/execution/ArtifactContentRenderer.js.map +1 -0
- package/execution/ArtifactPreviewModal.d.ts +3 -2
- package/execution/ArtifactPreviewModal.d.ts.map +1 -1
- package/execution/ArtifactPreviewModal.js +11 -62
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/ExecutionPhaseBadge.js +1 -1
- package/execution/ExecutionPhaseBadge.js.map +1 -1
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +21 -2
- package/execution/MessageThread.js.map +1 -1
- package/execution/SetupProgress.d.ts +35 -0
- package/execution/SetupProgress.d.ts.map +1 -0
- package/execution/SetupProgress.js +65 -0
- package/execution/SetupProgress.js.map +1 -0
- package/execution/ToolCallGroup.d.ts.map +1 -1
- package/execution/ToolCallGroup.js +9 -1
- package/execution/ToolCallGroup.js.map +1 -1
- package/execution/ToolCallItem.js +8 -3
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/artifact-utils.d.ts +50 -0
- package/execution/artifact-utils.d.ts.map +1 -1
- package/execution/artifact-utils.js +67 -5
- package/execution/artifact-utils.js.map +1 -1
- package/execution/index.d.ts +6 -1
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +3 -1
- package/execution/index.js.map +1 -1
- package/index.d.ts +4 -4
- package/index.d.ts.map +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/mcp-server/ApprovalPolicyGeneratorPanel.d.ts +34 -0
- package/mcp-server/ApprovalPolicyGeneratorPanel.d.ts.map +1 -0
- package/mcp-server/ApprovalPolicyGeneratorPanel.js +55 -0
- package/mcp-server/ApprovalPolicyGeneratorPanel.js.map +1 -0
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +101 -2
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/index.d.ts +8 -0
- package/mcp-server/index.d.ts.map +1 -1
- package/mcp-server/index.js +4 -0
- package/mcp-server/index.js.map +1 -1
- package/mcp-server/useDiscoverCapabilities.d.ts +59 -0
- package/mcp-server/useDiscoverCapabilities.d.ts.map +1 -0
- package/mcp-server/useDiscoverCapabilities.js +77 -0
- package/mcp-server/useDiscoverCapabilities.js.map +1 -0
- package/mcp-server/useMcpServerCredentials.d.ts +63 -0
- package/mcp-server/useMcpServerCredentials.d.ts.map +1 -0
- package/mcp-server/useMcpServerCredentials.js +64 -0
- package/mcp-server/useMcpServerCredentials.js.map +1 -0
- package/mcp-server/useTriggerApprovalPolicySession.d.ts +42 -0
- package/mcp-server/useTriggerApprovalPolicySession.d.ts.map +1 -0
- package/mcp-server/useTriggerApprovalPolicySession.js +111 -0
- package/mcp-server/useTriggerApprovalPolicySession.js.map +1 -0
- package/package.json +4 -4
- package/session/__tests__/useSessionConversation.test.js +223 -2
- package/session/__tests__/useSessionConversation.test.js.map +1 -1
- package/session/useSessionConversation.d.ts +8 -1
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +77 -6
- package/session/useSessionConversation.js.map +1 -1
- package/src/execution/ArtifactContentRenderer.tsx +376 -0
- package/src/execution/ArtifactPreviewModal.tsx +22 -114
- package/src/execution/ExecutionPhaseBadge.tsx +1 -1
- package/src/execution/MessageThread.tsx +35 -3
- package/src/execution/SetupProgress.tsx +120 -0
- package/src/execution/ToolCallGroup.tsx +15 -1
- package/src/execution/ToolCallItem.tsx +10 -3
- package/src/execution/artifact-utils.ts +88 -4
- package/src/execution/index.ts +9 -0
- package/src/index.ts +16 -0
- package/src/mcp-server/ApprovalPolicyGeneratorPanel.tsx +164 -0
- package/src/mcp-server/McpServerDetailView.tsx +428 -2
- package/src/mcp-server/index.ts +15 -0
- package/src/mcp-server/useDiscoverCapabilities.ts +117 -0
- package/src/mcp-server/useMcpServerCredentials.ts +108 -0
- package/src/mcp-server/useTriggerApprovalPolicySession.ts +161 -0
- package/src/session/__tests__/useSessionConversation.test.tsx +355 -2
- package/src/session/useSessionConversation.ts +104 -9
- package/styles.css +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface ApprovalPolicyGeneratorPanelProps {
|
|
2
|
+
/** The execution ID to stream. */
|
|
3
|
+
readonly executionId: string;
|
|
4
|
+
/** Called when the user clicks the close/dismiss button. */
|
|
5
|
+
readonly onClose: () => void;
|
|
6
|
+
/** Called once when the execution reaches a terminal phase. */
|
|
7
|
+
readonly onComplete?: () => void;
|
|
8
|
+
/** Additional CSS classes for the root container. */
|
|
9
|
+
readonly className?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Inline panel that streams the approval policy generation execution.
|
|
13
|
+
*
|
|
14
|
+
* Composes {@link useExecutionStream}, {@link MessageThread}, and
|
|
15
|
+
* {@link ExecutionProgress} to show real-time agent progress: thinking,
|
|
16
|
+
* tool calls, generated YAML, and applied changes.
|
|
17
|
+
*
|
|
18
|
+
* When the execution reaches a terminal phase, the `onComplete`
|
|
19
|
+
* callback fires once so the parent can refetch the MCP server to
|
|
20
|
+
* display newly applied policies.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* {result && (
|
|
25
|
+
* <ApprovalPolicyGeneratorPanel
|
|
26
|
+
* executionId={result.executionId}
|
|
27
|
+
* onClose={() => setResult(null)}
|
|
28
|
+
* onComplete={() => refetch()}
|
|
29
|
+
* />
|
|
30
|
+
* )}
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function ApprovalPolicyGeneratorPanel({ executionId, onClose, onComplete, className, }: ApprovalPolicyGeneratorPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
//# sourceMappingURL=ApprovalPolicyGeneratorPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApprovalPolicyGeneratorPanel.d.ts","sourceRoot":"","sources":["../../src/mcp-server/ApprovalPolicyGeneratorPanel.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,iCAAiC;IAChD,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,GACV,EAAE,iCAAiC,2CA6EnC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef } from "react";
|
|
4
|
+
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
6
|
+
import { useExecutionStream } from "../execution/useExecutionStream";
|
|
7
|
+
import { MessageThread } from "../execution/MessageThread";
|
|
8
|
+
import { ExecutionProgress } from "../execution/ExecutionProgress";
|
|
9
|
+
import { isTerminalPhase } from "../execution/execution-phases";
|
|
10
|
+
/**
|
|
11
|
+
* Inline panel that streams the approval policy generation execution.
|
|
12
|
+
*
|
|
13
|
+
* Composes {@link useExecutionStream}, {@link MessageThread}, and
|
|
14
|
+
* {@link ExecutionProgress} to show real-time agent progress: thinking,
|
|
15
|
+
* tool calls, generated YAML, and applied changes.
|
|
16
|
+
*
|
|
17
|
+
* When the execution reaches a terminal phase, the `onComplete`
|
|
18
|
+
* callback fires once so the parent can refetch the MCP server to
|
|
19
|
+
* display newly applied policies.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* {result && (
|
|
24
|
+
* <ApprovalPolicyGeneratorPanel
|
|
25
|
+
* executionId={result.executionId}
|
|
26
|
+
* onClose={() => setResult(null)}
|
|
27
|
+
* onComplete={() => refetch()}
|
|
28
|
+
* />
|
|
29
|
+
* )}
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function ApprovalPolicyGeneratorPanel({ executionId, onClose, onComplete, className, }) {
|
|
33
|
+
const { execution, phase, isStreaming, error, reconnect } = useExecutionStream(executionId);
|
|
34
|
+
const isComplete = isTerminalPhase(phase);
|
|
35
|
+
const completeFiredRef = useRef(false);
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (isComplete && onComplete && !completeFiredRef.current) {
|
|
38
|
+
completeFiredRef.current = true;
|
|
39
|
+
onComplete();
|
|
40
|
+
}
|
|
41
|
+
}, [isComplete, onComplete]);
|
|
42
|
+
return (_jsxs("div", { className: cn("flex flex-col overflow-hidden rounded-lg border border-border bg-background", className), children: [_jsxs("div", { className: "flex items-center justify-between border-b border-border px-4 py-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SparklesIcon, { className: "size-4 text-muted-foreground" }), _jsx("h4", { className: "text-sm font-medium text-foreground", children: "Generating Approval Policies" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [execution && (_jsx(ExecutionProgress, { execution: execution, className: "text-xs" })), _jsx("button", { type: "button", onClick: onClose, className: "rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground", "aria-label": "Close panel", children: _jsx(CloseIcon, { className: "size-4" }) })] })] }), _jsx("div", { className: "flex-1 overflow-hidden", children: error ? (_jsxs("div", { className: "flex flex-col items-center gap-2 p-6 text-center", children: [_jsx("p", { className: "text-sm text-destructive", children: error.message }), _jsx("button", { type: "button", onClick: reconnect, className: "rounded-md bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground hover:bg-primary/90", children: "Retry" })] })) : (_jsx(MessageThread, { executions: [], activeStreamExecution: execution })) }), isComplete && (_jsx("div", { className: "border-t border-border px-4 py-3", children: _jsx("p", { className: "text-xs text-muted-foreground", children: phase === ExecutionPhase.EXECUTION_COMPLETED
|
|
43
|
+
? "Approval policies have been generated and applied. The detail view will refresh to show the changes."
|
|
44
|
+
: "Policy generation did not complete successfully. You can retry from the detail page." }) }))] }));
|
|
45
|
+
}
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
// Inline SVG icons
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
function SparklesIcon({ className }) {
|
|
50
|
+
return (_jsx("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41" }) }));
|
|
51
|
+
}
|
|
52
|
+
function CloseIcon({ className }) {
|
|
53
|
+
return (_jsx("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "m4 4 8 8M12 4l-8 8" }) }));
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=ApprovalPolicyGeneratorPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApprovalPolicyGeneratorPanel.js","sourceRoot":"","sources":["../../src/mcp-server/ApprovalPolicyGeneratorPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpServerDetailView.d.ts","sourceRoot":"","sources":["../../src/mcp-server/McpServerDetailView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"McpServerDetailView.d.ts","sourceRoot":"","sources":["../../src/mcp-server/McpServerDetailView.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAY/F,MAAM,WAAW,wBAAwB;IACvC,kDAAkD;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjE,yDAAyD;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EACH,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,SAAS,GACV,EAAE,wBAAwB,2CAkL1B"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useEffect, useRef } from "react";
|
|
3
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
5
|
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
6
6
|
import { ValidationState } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/status_pb";
|
|
7
7
|
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
8
8
|
import { useMcpServer } from "./useMcpServer";
|
|
9
|
+
import { useDiscoverCapabilities } from "./useDiscoverCapabilities";
|
|
10
|
+
import { useMcpServerCredentials } from "./useMcpServerCredentials";
|
|
11
|
+
import { useTriggerApprovalPolicySession } from "./useTriggerApprovalPolicySession";
|
|
12
|
+
import { ApprovalPolicyGeneratorPanel } from "./ApprovalPolicyGeneratorPanel";
|
|
13
|
+
import { serializeMcpServerYaml } from "../library/serialize-resource-yaml";
|
|
9
14
|
import { ErrorMessage } from "../error/ErrorMessage";
|
|
15
|
+
import { EnvVarForm } from "../environment/EnvVarForm";
|
|
10
16
|
import { VisibilityToggle } from "../library/VisibilityToggle";
|
|
11
17
|
/**
|
|
12
18
|
* Read-only detail view for an MCP Server integration.
|
|
@@ -32,6 +38,11 @@ import { VisibilityToggle } from "../library/VisibilityToggle";
|
|
|
32
38
|
*/
|
|
33
39
|
export function McpServerDetailView({ org, slug, onResourceLoad, onVisibilityChange, isVisibilityPending, className, }) {
|
|
34
40
|
const { mcpServer, isLoading, error, refetch } = useMcpServer(org, slug);
|
|
41
|
+
const credentials = useMcpServerCredentials(org, mcpServer ?? null);
|
|
42
|
+
const discovery = useDiscoverCapabilities();
|
|
43
|
+
const policySession = useTriggerApprovalPolicySession();
|
|
44
|
+
const [showCredentialForm, setShowCredentialForm] = useState(false);
|
|
45
|
+
const [policyPanelExecutionId, setPolicyPanelExecutionId] = useState(null);
|
|
35
46
|
const onResourceLoadRef = useRef(onResourceLoad);
|
|
36
47
|
onResourceLoadRef.current = onResourceLoad;
|
|
37
48
|
useEffect(() => {
|
|
@@ -39,6 +50,57 @@ export function McpServerDetailView({ org, slug, onResourceLoad, onVisibilityCha
|
|
|
39
50
|
onResourceLoadRef.current?.({ name: mcpServer.metadata.name, id: mcpServer.metadata.id });
|
|
40
51
|
}
|
|
41
52
|
}, [mcpServer]);
|
|
53
|
+
const handleDiscoverClick = useCallback(async () => {
|
|
54
|
+
if (!mcpServer?.metadata?.id)
|
|
55
|
+
return;
|
|
56
|
+
if (!credentials.isReady) {
|
|
57
|
+
setShowCredentialForm(true);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
await discovery.discover(mcpServer.metadata.id);
|
|
62
|
+
refetch();
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// error state is managed by the hook
|
|
66
|
+
}
|
|
67
|
+
}, [mcpServer, credentials.isReady, discovery, refetch]);
|
|
68
|
+
const handleCredentialSubmit = useCallback(async (values, options) => {
|
|
69
|
+
try {
|
|
70
|
+
if (options.saveForFuture) {
|
|
71
|
+
await credentials.saveCredentials(values);
|
|
72
|
+
credentials.refetch();
|
|
73
|
+
}
|
|
74
|
+
setShowCredentialForm(false);
|
|
75
|
+
if (mcpServer?.metadata?.id) {
|
|
76
|
+
if (options.saveForFuture) {
|
|
77
|
+
await discovery.discover(mcpServer.metadata.id);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
await discovery.discover(mcpServer.metadata.id, values);
|
|
81
|
+
}
|
|
82
|
+
refetch();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// error state is managed by the hooks
|
|
87
|
+
}
|
|
88
|
+
}, [credentials, mcpServer, discovery, refetch]);
|
|
89
|
+
const handleGenerateApprovalPolicies = useCallback(async () => {
|
|
90
|
+
if (!mcpServer)
|
|
91
|
+
return;
|
|
92
|
+
try {
|
|
93
|
+
const yaml = serializeMcpServerYaml(mcpServer);
|
|
94
|
+
const result = await policySession.trigger(yaml, org, slug);
|
|
95
|
+
setPolicyPanelExecutionId(result.executionId);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// error state is managed by the hook
|
|
99
|
+
}
|
|
100
|
+
}, [mcpServer, org, slug, policySession]);
|
|
101
|
+
const handlePolicyPanelComplete = useCallback(() => {
|
|
102
|
+
refetch();
|
|
103
|
+
}, [refetch]);
|
|
42
104
|
if (isLoading)
|
|
43
105
|
return _jsx(LoadingSkeleton, { className: className });
|
|
44
106
|
if (error)
|
|
@@ -49,10 +111,12 @@ export function McpServerDetailView({ org, slug, onResourceLoad, onVisibilityCha
|
|
|
49
111
|
const status = mcpServer.status;
|
|
50
112
|
const specAudit = status?.audit?.specAudit;
|
|
51
113
|
const capabilities = status?.discoveredCapabilities;
|
|
114
|
+
const toolApprovals = spec?.defaultToolApprovals ?? [];
|
|
115
|
+
const hasDiscoveredTools = capabilities != null && capabilities.tools.length > 0;
|
|
52
116
|
return (_jsxs("div", { className: cn("flex flex-col gap-6", className), children: [status?.validationState === ValidationState.invalid &&
|
|
53
117
|
status.validationMessage && (_jsx(ValidationBanner, { message: status.validationMessage })), _jsx(Header, { server: mcpServer, createdAt: specAudit?.createdAt ? timestampDate(specAudit.createdAt) : null, updatedAt: specAudit?.updatedAt ? timestampDate(specAudit.updatedAt) : null, lastDiscoveredAt: capabilities?.lastDiscoveredAt
|
|
54
118
|
? timestampDate(capabilities.lastDiscoveredAt)
|
|
55
|
-
: null, onVisibilityChange: onVisibilityChange, isVisibilityPending: isVisibilityPending }), spec?.serverType.case && (_jsx(ServerConfigSection, { serverType: spec.serverType })),
|
|
119
|
+
: null, onVisibilityChange: onVisibilityChange, isVisibilityPending: isVisibilityPending }), _jsx(DiscoverySection, { isDiscovering: discovery.isDiscovering, discoveryError: discovery.error, onDiscover: handleDiscoverClick, onClearDiscoveryError: discovery.clearError, hasDiscoveredTools: hasDiscoveredTools, showCredentialForm: showCredentialForm, credentialVariables: credentials.missingVariables, isSavingCredentials: credentials.isSaving, onCredentialSubmit: handleCredentialSubmit, onCredentialCancel: () => setShowCredentialForm(false), credentialsLoading: credentials.isLoading }), spec?.serverType.case && (_jsx(ServerConfigSection, { serverType: spec.serverType })), hasDiscoveredTools && (_jsx(ToolsSection, { tools: capabilities.tools })), capabilities && capabilities.resourceTemplates.length > 0 && (_jsx(ResourceTemplatesSection, { templates: capabilities.resourceTemplates })), toolApprovals.length > 0 && (_jsx(ApprovalPoliciesSection, { policies: toolApprovals })), hasDiscoveredTools && (_jsx(GenerateApprovalPoliciesSection, { hasPolicies: toolApprovals.length > 0, isTriggering: policySession.isTriggering, triggerError: policySession.error, onGenerate: handleGenerateApprovalPolicies, onClearError: policySession.clearError })), policyPanelExecutionId && (_jsx(ApprovalPolicyGeneratorPanel, { executionId: policyPanelExecutionId, onClose: () => setPolicyPanelExecutionId(null), onComplete: handlePolicyPanelComplete })), spec?.envSpec && Object.keys(spec.envSpec.data).length > 0 && (_jsx(EnvSpecSection, { data: spec.envSpec.data })), spec && spec.tags.length > 0 && _jsx(TagsSection, { tags: spec.tags })] }));
|
|
56
120
|
}
|
|
57
121
|
// ---------------------------------------------------------------------------
|
|
58
122
|
// Internal section components
|
|
@@ -96,6 +160,26 @@ function TagsSection({ tags }) {
|
|
|
96
160
|
return (_jsx(Section, { title: `Tags (${tags.length})`, children: _jsx("div", { className: "flex flex-wrap gap-1.5 p-3", children: tags.map((tag) => (_jsx("span", { className: "rounded-full bg-muted px-2.5 py-0.5 text-xs font-medium text-muted-foreground", children: tag }, tag))) }) }));
|
|
97
161
|
}
|
|
98
162
|
// ---------------------------------------------------------------------------
|
|
163
|
+
// Discovery section
|
|
164
|
+
// ---------------------------------------------------------------------------
|
|
165
|
+
function DiscoverySection({ isDiscovering, discoveryError, onDiscover, onClearDiscoveryError, hasDiscoveredTools, showCredentialForm, credentialVariables, isSavingCredentials, onCredentialSubmit, onCredentialCancel, credentialsLoading, }) {
|
|
166
|
+
return (_jsxs("section", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wider text-muted-foreground", children: "Discovery" }), _jsx("button", { type: "button", onClick: onDiscover, disabled: isDiscovering || credentialsLoading, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium", "border border-border bg-background text-foreground", "hover:bg-accent hover:text-accent-foreground", "disabled:pointer-events-none disabled:opacity-50"), children: isDiscovering ? (_jsxs(_Fragment, { children: [_jsx(DiscoverSpinner, {}), "Discovering..."] })) : hasDiscoveredTools ? (_jsxs(_Fragment, { children: [_jsx(RefreshIcon, { className: "size-3.5" }), "Re-discover"] })) : (_jsxs(_Fragment, { children: [_jsx(DiscoverIcon, { className: "size-3.5" }), "Discover Tools"] })) })] }), discoveryError && (_jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2", children: [_jsx(WarningIcon, { className: "mt-0.5 size-3.5 shrink-0 text-destructive" }), _jsx("p", { className: "flex-1 text-xs text-destructive", children: discoveryError.message }), _jsx("button", { type: "button", onClick: onClearDiscoveryError, className: "shrink-0 text-xs text-destructive/70 hover:text-destructive", "aria-label": "Dismiss error", children: "Dismiss" })] })), showCredentialForm && credentialVariables.length > 0 && (_jsx("div", { className: "rounded-lg border border-border p-4", children: _jsx(EnvVarForm, { title: "Credentials Required", description: "Enter the credentials needed to connect to this MCP server. Toggle \"Save for future runs\" to persist them in your personal environment, or leave it off to use them for this discovery only.", variables: credentialVariables, onSubmit: (values, options) => onCredentialSubmit(values, options), onCancel: onCredentialCancel, isSubmitting: isSavingCredentials, className: "w-full max-w-md" }) })), !hasDiscoveredTools && !isDiscovering && (_jsx("p", { className: "text-xs text-muted-foreground", children: "No tools discovered yet. Click \"Discover Tools\" to connect to this MCP server and list its available tools and resources." }))] }));
|
|
167
|
+
}
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
// Approval policies section
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
171
|
+
function ApprovalPoliciesSection({ policies, }) {
|
|
172
|
+
return (_jsx(Section, { title: `Approval Policies (${policies.length})`, children: _jsx("div", { className: "flex flex-col divide-y divide-border", children: policies.map((policy) => (_jsxs("div", { className: "px-3 py-2.5", children: [_jsxs("div", { className: "flex items-baseline gap-2", children: [_jsx("code", { className: "font-mono text-sm font-medium text-foreground", children: policy.toolName }), _jsx(ShieldIcon, { className: "size-3 text-amber-500 dark:text-amber-400" })] }), policy.message && (_jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: policy.message }))] }, policy.toolName))) }) }));
|
|
173
|
+
}
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
// Generate approval policies section
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
function GenerateApprovalPoliciesSection({ hasPolicies, isTriggering, triggerError, onGenerate, onClearError, }) {
|
|
178
|
+
return (_jsxs("section", { className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wider text-muted-foreground", children: "AI-Generated Policies" }), _jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: hasPolicies
|
|
179
|
+
? "Regenerate approval policies using AI to classify each tool's risk level."
|
|
180
|
+
: "Automatically generate approval policies for the discovered tools using AI." })] }), _jsx("button", { type: "button", onClick: onGenerate, disabled: isTriggering, className: cn("inline-flex shrink-0 items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium", "bg-primary text-primary-foreground", "hover:bg-primary/90", "disabled:pointer-events-none disabled:opacity-50"), children: isTriggering ? (_jsxs(_Fragment, { children: [_jsx(DiscoverSpinner, {}), "Starting..."] })) : (_jsxs(_Fragment, { children: [_jsx(SparklesIcon, { className: "size-3.5" }), hasPolicies ? "Regenerate Policies" : "Generate Policies"] })) })] }), triggerError && (_jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2", children: [_jsx(WarningIcon, { className: "mt-0.5 size-3.5 shrink-0 text-destructive" }), _jsx("p", { className: "flex-1 text-xs text-destructive", children: triggerError.message }), _jsx("button", { type: "button", onClick: onClearError, className: "shrink-0 text-xs text-destructive/70 hover:text-destructive", "aria-label": "Dismiss error", children: "Dismiss" })] }))] }));
|
|
181
|
+
}
|
|
182
|
+
// ---------------------------------------------------------------------------
|
|
99
183
|
// Shared layout primitives
|
|
100
184
|
// ---------------------------------------------------------------------------
|
|
101
185
|
function Section({ title, children, }) {
|
|
@@ -135,4 +219,19 @@ function CheckIcon({ className }) {
|
|
|
135
219
|
function WarningIcon({ className }) {
|
|
136
220
|
return (_jsxs("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "M8 1.5 1 14h14L8 1.5Z" }), _jsx("path", { d: "M8 6v3.5" }), _jsx("circle", { cx: "8", cy: "11.5", r: "0.5", fill: "currentColor", stroke: "none" })] }));
|
|
137
221
|
}
|
|
222
|
+
function DiscoverIcon({ className }) {
|
|
223
|
+
return (_jsxs("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("circle", { cx: "7", cy: "7", r: "4.5" }), _jsx("path", { d: "m10.5 10.5 3 3" })] }));
|
|
224
|
+
}
|
|
225
|
+
function RefreshIcon({ className }) {
|
|
226
|
+
return (_jsxs("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "M2.5 8a5.5 5.5 0 0 1 9.36-3.92" }), _jsx("path", { d: "M13.5 8a5.5 5.5 0 0 1-9.36 3.92" }), _jsx("path", { d: "M12 2v3h-3" }), _jsx("path", { d: "M4 14v-3h3" })] }));
|
|
227
|
+
}
|
|
228
|
+
function ShieldIcon({ className }) {
|
|
229
|
+
return (_jsx("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "M8 1.5 2.5 4v4c0 3.31 2.35 6.4 5.5 7 3.15-.6 5.5-3.69 5.5-7V4L8 1.5Z" }) }));
|
|
230
|
+
}
|
|
231
|
+
function SparklesIcon({ className }) {
|
|
232
|
+
return (_jsx("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41" }) }));
|
|
233
|
+
}
|
|
234
|
+
function DiscoverSpinner() {
|
|
235
|
+
return (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", className: "animate-spin", "aria-hidden": "true", children: _jsx("path", { d: "M8 2a6 6 0 1 0 6 6" }) }));
|
|
236
|
+
}
|
|
138
237
|
//# sourceMappingURL=McpServerDetailView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpServerDetailView.js","sourceRoot":"","sources":["../../src/mcp-server/McpServerDetailView.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"McpServerDetailView.js","sourceRoot":"","sources":["../../src/mcp-server/McpServerDetailView.tsx"],"names":[],"mappings":"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"}
|
package/mcp-server/index.d.ts
CHANGED
|
@@ -16,4 +16,12 @@ export { useMcpServerSetup, toServerKey } from "./useMcpServerSetup";
|
|
|
16
16
|
export type { UseMcpServerSetupReturn, SubmitMcpEnvVarsOptions, McpServerSetupEntry, McpServerSetupPhase, McpServerSetupState, } from "./useMcpServerSetup";
|
|
17
17
|
export { McpServerDetailView } from "./McpServerDetailView";
|
|
18
18
|
export type { McpServerDetailViewProps } from "./McpServerDetailView";
|
|
19
|
+
export { useDiscoverCapabilities } from "./useDiscoverCapabilities";
|
|
20
|
+
export type { UseDiscoverCapabilitiesReturn } from "./useDiscoverCapabilities";
|
|
21
|
+
export { useMcpServerCredentials } from "./useMcpServerCredentials";
|
|
22
|
+
export type { UseMcpServerCredentialsReturn } from "./useMcpServerCredentials";
|
|
23
|
+
export { useTriggerApprovalPolicySession } from "./useTriggerApprovalPolicySession";
|
|
24
|
+
export type { UseTriggerApprovalPolicySessionReturn, TriggerApprovalPolicyResult, } from "./useTriggerApprovalPolicySession";
|
|
25
|
+
export { ApprovalPolicyGeneratorPanel } from "./ApprovalPolicyGeneratorPanel";
|
|
26
|
+
export type { ApprovalPolicyGeneratorPanelProps } from "./ApprovalPolicyGeneratorPanel";
|
|
19
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,YAAY,EACV,qCAAqC,EACrC,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,YAAY,EAAE,iCAAiC,EAAE,MAAM,gCAAgC,CAAC"}
|
package/mcp-server/index.js
CHANGED
|
@@ -7,4 +7,8 @@ export { McpToolSelector } from "./McpToolSelector";
|
|
|
7
7
|
export { McpServerConfigPanel } from "./McpServerConfigPanel";
|
|
8
8
|
export { useMcpServerSetup, toServerKey } from "./useMcpServerSetup";
|
|
9
9
|
export { McpServerDetailView } from "./McpServerDetailView";
|
|
10
|
+
export { useDiscoverCapabilities } from "./useDiscoverCapabilities";
|
|
11
|
+
export { useMcpServerCredentials } from "./useMcpServerCredentials";
|
|
12
|
+
export { useTriggerApprovalPolicySession } from "./useTriggerApprovalPolicySession";
|
|
13
|
+
export { ApprovalPolicyGeneratorPanel } from "./ApprovalPolicyGeneratorPanel";
|
|
10
14
|
//# sourceMappingURL=index.js.map
|
package/mcp-server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAMpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
|
|
2
|
+
import type { EnvVarInput } from "@stigmer/sdk";
|
|
3
|
+
export interface UseDiscoverCapabilitiesReturn {
|
|
4
|
+
/**
|
|
5
|
+
* Trigger server-side MCP discovery for the given MCP server.
|
|
6
|
+
*
|
|
7
|
+
* When `runtimeEnv` is provided, the values are passed directly to
|
|
8
|
+
* the backend as one-time credentials (not persisted to any
|
|
9
|
+
* environment). When omitted, the backend resolves credentials from
|
|
10
|
+
* the user's personal environment.
|
|
11
|
+
*
|
|
12
|
+
* Blocks until discovery completes (~30s timeout).
|
|
13
|
+
*
|
|
14
|
+
* @param mcpServerId - System-generated ID of the MCP server (metadata.id).
|
|
15
|
+
* @param runtimeEnv - Optional one-time environment variables for discovery.
|
|
16
|
+
* @returns The updated McpServer with populated discovered_capabilities.
|
|
17
|
+
*/
|
|
18
|
+
readonly discover: (mcpServerId: string, runtimeEnv?: Record<string, EnvVarInput>) => Promise<McpServer>;
|
|
19
|
+
/** `true` while a discovery RPC is in flight. */
|
|
20
|
+
readonly isDiscovering: boolean;
|
|
21
|
+
/** Error from the most recent failed discovery, or `null`. */
|
|
22
|
+
readonly error: Error | null;
|
|
23
|
+
/** Clear the error state. */
|
|
24
|
+
readonly clearError: () => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Action hook for triggering server-side MCP server capability discovery.
|
|
28
|
+
*
|
|
29
|
+
* Calls the `discoverCapabilities` RPC which delegates to the agent-runner
|
|
30
|
+
* via a Temporal workflow. The RPC blocks until discovery completes
|
|
31
|
+
* (typically 5-15 seconds, ~30s timeout).
|
|
32
|
+
*
|
|
33
|
+
* Supports two modes:
|
|
34
|
+
* - **Save for future** (default): Credentials are saved to the personal
|
|
35
|
+
* environment first, then `discover(id)` is called without `runtimeEnv`.
|
|
36
|
+
* - **One-time use**: `discover(id, runtimeEnv)` passes credentials
|
|
37
|
+
* directly to the backend. They are used for this discovery only and
|
|
38
|
+
* not persisted to any environment.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* const { discover, isDiscovering, error } = useDiscoverCapabilities();
|
|
43
|
+
* const { refetch } = useMcpServer(org, slug);
|
|
44
|
+
*
|
|
45
|
+
* // Save for future: credentials already in personal environment
|
|
46
|
+
* async function handleDiscoverSaved() {
|
|
47
|
+
* await discover(mcpServer.metadata.id);
|
|
48
|
+
* refetch();
|
|
49
|
+
* }
|
|
50
|
+
*
|
|
51
|
+
* // One-time use: pass credentials directly
|
|
52
|
+
* async function handleDiscoverTemporary(values: Record<string, EnvVarInput>) {
|
|
53
|
+
* await discover(mcpServer.metadata.id, values);
|
|
54
|
+
* refetch();
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function useDiscoverCapabilities(): UseDiscoverCapabilitiesReturn;
|
|
59
|
+
//# sourceMappingURL=useDiscoverCapabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDiscoverCapabilities.d.ts","sourceRoot":"","sources":["../../src/mcp-server/useDiscoverCapabilities.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAExF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,WAAW,6BAA6B;IAC5C;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAQ,EAAE,CACjB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,KACrC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,iDAAiD;IACjD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,uBAAuB,IAAI,6BAA6B,CA+CvE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useState } from "react";
|
|
3
|
+
import { create } from "@bufbuild/protobuf";
|
|
4
|
+
import { DiscoverCapabilitiesInputSchema } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
|
|
5
|
+
import { useStigmer } from "../hooks";
|
|
6
|
+
import { toError } from "../internal/toError";
|
|
7
|
+
/**
|
|
8
|
+
* Action hook for triggering server-side MCP server capability discovery.
|
|
9
|
+
*
|
|
10
|
+
* Calls the `discoverCapabilities` RPC which delegates to the agent-runner
|
|
11
|
+
* via a Temporal workflow. The RPC blocks until discovery completes
|
|
12
|
+
* (typically 5-15 seconds, ~30s timeout).
|
|
13
|
+
*
|
|
14
|
+
* Supports two modes:
|
|
15
|
+
* - **Save for future** (default): Credentials are saved to the personal
|
|
16
|
+
* environment first, then `discover(id)` is called without `runtimeEnv`.
|
|
17
|
+
* - **One-time use**: `discover(id, runtimeEnv)` passes credentials
|
|
18
|
+
* directly to the backend. They are used for this discovery only and
|
|
19
|
+
* not persisted to any environment.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* const { discover, isDiscovering, error } = useDiscoverCapabilities();
|
|
24
|
+
* const { refetch } = useMcpServer(org, slug);
|
|
25
|
+
*
|
|
26
|
+
* // Save for future: credentials already in personal environment
|
|
27
|
+
* async function handleDiscoverSaved() {
|
|
28
|
+
* await discover(mcpServer.metadata.id);
|
|
29
|
+
* refetch();
|
|
30
|
+
* }
|
|
31
|
+
*
|
|
32
|
+
* // One-time use: pass credentials directly
|
|
33
|
+
* async function handleDiscoverTemporary(values: Record<string, EnvVarInput>) {
|
|
34
|
+
* await discover(mcpServer.metadata.id, values);
|
|
35
|
+
* refetch();
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function useDiscoverCapabilities() {
|
|
40
|
+
const stigmer = useStigmer();
|
|
41
|
+
const [isDiscovering, setIsDiscovering] = useState(false);
|
|
42
|
+
const [error, setError] = useState(null);
|
|
43
|
+
const clearError = useCallback(() => setError(null), []);
|
|
44
|
+
const discover = useCallback(async (mcpServerId, runtimeEnv) => {
|
|
45
|
+
setIsDiscovering(true);
|
|
46
|
+
setError(null);
|
|
47
|
+
try {
|
|
48
|
+
const runtimeEnvMap = {};
|
|
49
|
+
if (runtimeEnv) {
|
|
50
|
+
for (const [key, input] of Object.entries(runtimeEnv)) {
|
|
51
|
+
runtimeEnvMap[key] = {
|
|
52
|
+
value: input.value,
|
|
53
|
+
isSecret: input.isSecret ?? false,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const input = create(DiscoverCapabilitiesInputSchema, {
|
|
58
|
+
mcpServerId,
|
|
59
|
+
...(Object.keys(runtimeEnvMap).length > 0 && {
|
|
60
|
+
runtimeEnv: runtimeEnvMap,
|
|
61
|
+
}),
|
|
62
|
+
});
|
|
63
|
+
const result = await stigmer.mcpServer.discoverCapabilities(input);
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
const wrapped = toError(err);
|
|
68
|
+
setError(wrapped);
|
|
69
|
+
throw wrapped;
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
setIsDiscovering(false);
|
|
73
|
+
}
|
|
74
|
+
}, [stigmer]);
|
|
75
|
+
return { discover, isDiscovering, error, clearError };
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=useDiscoverCapabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDiscoverCapabilities.js","sourceRoot":"","sources":["../../src/mcp-server/useDiscoverCapabilities.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,uDAAuD,CAAC;AAExG,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AA6B9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EACH,WAAmB,EACnB,UAAwC,EACpB,EAAE;QACtB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,aAAa,GAAyD,EAAE,CAAC;YAC/E,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtD,aAAa,CAAC,GAAG,CAAC,GAAG;wBACnB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;qBAClC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,+BAA+B,EAAE;gBACpD,WAAW;gBACX,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI;oBAC3C,UAAU,EAAE,aAAa;iBAC1B,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,MAAM,OAAO,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { EnvVarInput } from "@stigmer/sdk";
|
|
2
|
+
import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
|
|
3
|
+
import type { EnvVarFormVariable } from "../environment/EnvVarForm";
|
|
4
|
+
export interface UseMcpServerCredentialsReturn {
|
|
5
|
+
/**
|
|
6
|
+
* Variables required by the MCP server that are missing from the
|
|
7
|
+
* user's personal environment. Empty when all variables are present
|
|
8
|
+
* or the server has no `env_spec`.
|
|
9
|
+
*
|
|
10
|
+
* Suitable as direct input to {@link EnvVarForm}.
|
|
11
|
+
*/
|
|
12
|
+
readonly missingVariables: EnvVarFormVariable[];
|
|
13
|
+
/** `true` when all required credentials are available. */
|
|
14
|
+
readonly isReady: boolean;
|
|
15
|
+
/** `true` while the personal environment is being fetched. */
|
|
16
|
+
readonly isLoading: boolean;
|
|
17
|
+
/** Error from the personal environment fetch, or `null`. */
|
|
18
|
+
readonly error: Error | null;
|
|
19
|
+
/**
|
|
20
|
+
* Save the provided credentials to the user's personal environment.
|
|
21
|
+
* Creates the personal environment if it doesn't exist yet.
|
|
22
|
+
*/
|
|
23
|
+
readonly saveCredentials: (values: Record<string, EnvVarInput>) => Promise<void>;
|
|
24
|
+
/** `true` while a save operation is in flight. */
|
|
25
|
+
readonly isSaving: boolean;
|
|
26
|
+
/** Re-check the personal environment. */
|
|
27
|
+
readonly refetch: () => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Checks the user's personal environment against an MCP server's
|
|
31
|
+
* `env_spec` and provides a mechanism to save missing credentials.
|
|
32
|
+
*
|
|
33
|
+
* Designed for the discovery flow on the MCP server detail page:
|
|
34
|
+
* before triggering discovery, the UI needs to ensure all required
|
|
35
|
+
* environment variables (API keys, tokens) are present. This hook
|
|
36
|
+
* computes the missing set and exposes `saveCredentials` to persist
|
|
37
|
+
* them.
|
|
38
|
+
*
|
|
39
|
+
* Unlike {@link useMcpServerSetup} which manages multi-server setup
|
|
40
|
+
* for session creation, this hook is scoped to a single server and
|
|
41
|
+
* always persists to the personal environment (no one-time option).
|
|
42
|
+
*
|
|
43
|
+
* Pass `null` for `mcpServer` while loading.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* const { missingVariables, isReady, saveCredentials, isSaving } =
|
|
48
|
+
* useMcpServerCredentials("acme", mcpServer);
|
|
49
|
+
*
|
|
50
|
+
* if (!isReady) {
|
|
51
|
+
* return (
|
|
52
|
+
* <EnvVarForm
|
|
53
|
+
* variables={missingVariables}
|
|
54
|
+
* onSubmit={(values) => saveCredentials(values)}
|
|
55
|
+
* isSubmitting={isSaving}
|
|
56
|
+
* hideSaveToggle
|
|
57
|
+
* />
|
|
58
|
+
* );
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function useMcpServerCredentials(org: string | null, mcpServer: McpServer | null): UseMcpServerCredentialsReturn;
|
|
63
|
+
//# sourceMappingURL=useMcpServerCredentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMcpServerCredentials.d.ts","sourceRoot":"","sources":["../../src/mcp-server/useMcpServerCredentials.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAGxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,6BAA6B;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IAChD,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,KAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,6BAA6B,CAkC/B"}
|