@stigmer/react 0.0.43 → 0.0.45

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.
Files changed (83) hide show
  1. package/execution/ArtifactContentRenderer.d.ts +58 -0
  2. package/execution/ArtifactContentRenderer.d.ts.map +1 -0
  3. package/execution/ArtifactContentRenderer.js +163 -0
  4. package/execution/ArtifactContentRenderer.js.map +1 -0
  5. package/execution/ArtifactPreviewModal.d.ts +3 -2
  6. package/execution/ArtifactPreviewModal.d.ts.map +1 -1
  7. package/execution/ArtifactPreviewModal.js +11 -62
  8. package/execution/ArtifactPreviewModal.js.map +1 -1
  9. package/execution/ExecutionPhaseBadge.js +1 -1
  10. package/execution/ExecutionPhaseBadge.js.map +1 -1
  11. package/execution/MessageThread.d.ts.map +1 -1
  12. package/execution/MessageThread.js +21 -2
  13. package/execution/MessageThread.js.map +1 -1
  14. package/execution/SetupProgress.d.ts +35 -0
  15. package/execution/SetupProgress.d.ts.map +1 -0
  16. package/execution/SetupProgress.js +65 -0
  17. package/execution/SetupProgress.js.map +1 -0
  18. package/execution/ToolCallGroup.d.ts.map +1 -1
  19. package/execution/ToolCallGroup.js +9 -1
  20. package/execution/ToolCallGroup.js.map +1 -1
  21. package/execution/ToolCallItem.js +8 -3
  22. package/execution/ToolCallItem.js.map +1 -1
  23. package/execution/artifact-utils.d.ts +50 -0
  24. package/execution/artifact-utils.d.ts.map +1 -1
  25. package/execution/artifact-utils.js +67 -5
  26. package/execution/artifact-utils.js.map +1 -1
  27. package/execution/index.d.ts +6 -1
  28. package/execution/index.d.ts.map +1 -1
  29. package/execution/index.js +3 -1
  30. package/execution/index.js.map +1 -1
  31. package/index.d.ts +4 -4
  32. package/index.d.ts.map +1 -1
  33. package/index.js +2 -2
  34. package/index.js.map +1 -1
  35. package/mcp-server/ApprovalPolicyGeneratorPanel.d.ts +34 -0
  36. package/mcp-server/ApprovalPolicyGeneratorPanel.d.ts.map +1 -0
  37. package/mcp-server/ApprovalPolicyGeneratorPanel.js +55 -0
  38. package/mcp-server/ApprovalPolicyGeneratorPanel.js.map +1 -0
  39. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  40. package/mcp-server/McpServerDetailView.js +101 -2
  41. package/mcp-server/McpServerDetailView.js.map +1 -1
  42. package/mcp-server/index.d.ts +8 -0
  43. package/mcp-server/index.d.ts.map +1 -1
  44. package/mcp-server/index.js +4 -0
  45. package/mcp-server/index.js.map +1 -1
  46. package/mcp-server/useDiscoverCapabilities.d.ts +59 -0
  47. package/mcp-server/useDiscoverCapabilities.d.ts.map +1 -0
  48. package/mcp-server/useDiscoverCapabilities.js +77 -0
  49. package/mcp-server/useDiscoverCapabilities.js.map +1 -0
  50. package/mcp-server/useMcpServerCredentials.d.ts +63 -0
  51. package/mcp-server/useMcpServerCredentials.d.ts.map +1 -0
  52. package/mcp-server/useMcpServerCredentials.js +64 -0
  53. package/mcp-server/useMcpServerCredentials.js.map +1 -0
  54. package/mcp-server/useTriggerApprovalPolicySession.d.ts +42 -0
  55. package/mcp-server/useTriggerApprovalPolicySession.d.ts.map +1 -0
  56. package/mcp-server/useTriggerApprovalPolicySession.js +111 -0
  57. package/mcp-server/useTriggerApprovalPolicySession.js.map +1 -0
  58. package/package.json +4 -4
  59. package/session/__tests__/useSessionConversation.test.js +223 -2
  60. package/session/__tests__/useSessionConversation.test.js.map +1 -1
  61. package/session/useSessionConversation.d.ts +8 -1
  62. package/session/useSessionConversation.d.ts.map +1 -1
  63. package/session/useSessionConversation.js +77 -6
  64. package/session/useSessionConversation.js.map +1 -1
  65. package/src/execution/ArtifactContentRenderer.tsx +376 -0
  66. package/src/execution/ArtifactPreviewModal.tsx +22 -114
  67. package/src/execution/ExecutionPhaseBadge.tsx +1 -1
  68. package/src/execution/MessageThread.tsx +35 -3
  69. package/src/execution/SetupProgress.tsx +120 -0
  70. package/src/execution/ToolCallGroup.tsx +15 -1
  71. package/src/execution/ToolCallItem.tsx +10 -3
  72. package/src/execution/artifact-utils.ts +88 -4
  73. package/src/execution/index.ts +9 -0
  74. package/src/index.ts +16 -0
  75. package/src/mcp-server/ApprovalPolicyGeneratorPanel.tsx +164 -0
  76. package/src/mcp-server/McpServerDetailView.tsx +428 -2
  77. package/src/mcp-server/index.ts +15 -0
  78. package/src/mcp-server/useDiscoverCapabilities.ts +117 -0
  79. package/src/mcp-server/useMcpServerCredentials.ts +108 -0
  80. package/src/mcp-server/useTriggerApprovalPolicySession.ts +161 -0
  81. package/src/session/__tests__/useSessionConversation.test.tsx +355 -2
  82. package/src/session/useSessionConversation.ts +104 -9
  83. 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":"AAYA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAK/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,2CAmE1B"}
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 })), capabilities && capabilities.tools.length > 0 && (_jsx(ToolsSection, { tools: capabilities.tools })), capabilities && capabilities.resourceTemplates.length > 0 && (_jsx(ResourceTemplatesSection, { templates: capabilities.resourceTemplates })), 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 })] }));
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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"}
@@ -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"}
@@ -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
@@ -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"}