@burdenoff/microfe-botmanor 2026.819.1 → 2026.821.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/botlit/hooks/useMCPServers.js +60 -49
- package/dist/botlit/hooks/useMCPServers.js.map +1 -1
- package/dist/botlit/pages/MCPServerDetailPage.js +295 -238
- package/dist/botlit/pages/MCPServerDetailPage.js.map +1 -1
- package/dist/generated/wspace-operations.js +45 -29
- package/dist/generated/wspace-operations.js.map +1 -1
- package/dist/generated/wspace-types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCPServerDetailPage.js","names":[],"sources":["../../../src/botlit/pages/MCPServerDetailPage.tsx"],"sourcesContent":["/**\n * MCP Server Detail Page\n * @module botlit/pages\n */\n\nimport type { FC } from 'react';\nimport { useMemo, useState } from 'react';\nimport { useParams } from 'react-router';\nimport { useBotlit } from '../providers/BotlitProvider';\nimport { isNative, nativeImpact, nativeNotify } from '../../utils/nativeBridge';\nimport {\n ArrowLeft,\n Server,\n Plug,\n PlugZap,\n Wrench,\n Settings,\n Save,\n RefreshCw,\n AlertTriangle,\n CheckCircle,\n XCircle,\n Clock,\n ExternalLink,\n Edit,\n Trash2,\n} from 'lucide-react';\nimport { PagePurpose, GlassCard } from '@burdenoff/fe-libs/ui';\nimport { PageLayout } from '../components/PageLayout';\nimport { Card, CardHeader, CardTitle, CardContent, CardDescription } from '../components/Card';\nimport { Button } from '../components/Button';\nimport { Input, Textarea, FormField } from '../components/Input';\nimport { StatusBadge, Badge } from '../components/Badge';\nimport { EmptyState } from '../components/EmptyState';\nimport { toast } from 'sonner';\nimport {\n useMCPServer,\n useMCPTools,\n useMCPResources,\n useCreateMCPServer,\n useUpdateMCPServer,\n useDeleteMCPServer,\n useTestMCPConnection,\n isMCPServerHealthy,\n mcpServerDescription,\n mcpServerEndpoint,\n type MCPToolRecord,\n} from '../hooks';\nimport { formatRelativeTime, MISSING_VALUE } from '../utils/formatters';\nimport type { MCPTransport, MCPAuthMethod } from '../types';\n\ninterface MCPServerDetailPageProps {\n isNew?: boolean;\n}\n\n/** Reads a string the UI stored on the connection's free-form config. */\nfunction configString(\n config: Record<string, unknown> | undefined,\n key: string\n): string | undefined {\n const value = config?.[key];\n return typeof value === 'string' && value !== '' ? value : undefined;\n}\n\nexport const MCPServerDetailPage: FC<MCPServerDetailPageProps> = ({ isNew }) => {\n const { serverId } = useParams();\n const { navigateTo } = useBotlit();\n const { data: server, loading, refetch } = useMCPServer(isNew ? undefined : serverId);\n const { data: tools } = useMCPTools(isNew ? undefined : serverId);\n const { data: resources } = useMCPResources(isNew ? undefined : serverId);\n const [connectServer, connectResult] = useCreateMCPServer();\n const [updateServer, updateResult] = useUpdateMCPServer();\n const [deleteServer, deleteResult] = useDeleteMCPServer();\n const [testConnection, testResult] = useTestMCPConnection();\n\n const [isEditing, setIsEditing] = useState(false);\n const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);\n\n const [formData, setFormData] = useState({\n name: '',\n description: '',\n transport: 'HTTP_JSON' as MCPTransport,\n baseUrl: '',\n authMethod: 'NONE' as MCPAuthMethod,\n secretRefId: '',\n });\n\n const [selectedToolName, setSelectedToolName] = useState<string | null>(null);\n const selectedTool = useMemo(\n () => tools.find((tool) => tool.name === selectedToolName) ?? null,\n [tools, selectedToolName]\n );\n\n const handleCreate = async () => {\n if (!formData.name || !formData.baseUrl) return;\n try {\n const created = await connectServer({\n name: formData.name,\n type: formData.transport,\n config: {\n url: formData.baseUrl,\n description: formData.description,\n authMethod: formData.authMethod,\n secretRefId: formData.secretRefId || undefined,\n },\n });\n toast.success(`Connected \"${created.name}\"`);\n navigateTo(`mcp/${created.id}`);\n } catch (err) {\n toast.error(err instanceof Error ? err.message : 'Failed to connect MCP server');\n }\n };\n\n const handleTestConnection = async () => {\n if (!serverId) return;\n try {\n const ok = await testConnection(serverId);\n if (ok) {\n toast.success('MCP server is reachable');\n } else {\n toast.error('MCP server did not respond');\n }\n void refetch();\n } catch (err) {\n toast.error(err instanceof Error ? err.message : 'Failed to test MCP connection');\n }\n };\n\n const handleUpdate = async () => {\n if (!serverId || !formData.name) return;\n try {\n await updateServer({\n serverId,\n input: {\n name: formData.name,\n // `config` is replaced wholesale by the service — resend every field\n // the form owns so an edit never drops the endpoint or auth settings.\n config: {\n url: formData.baseUrl,\n description: formData.description,\n authMethod: formData.authMethod,\n secretRefId: formData.secretRefId || undefined,\n },\n },\n });\n toast.success('MCP server updated');\n void refetch();\n setIsEditing(false);\n } catch (err) {\n toast.error(err instanceof Error ? err.message : 'Failed to update MCP server');\n }\n };\n\n const handleDelete = async () => {\n if (!serverId) return;\n try {\n await deleteServer(serverId);\n if (isNative()) void nativeNotify('success');\n toast.success('MCP server disconnected');\n navigateTo('mcp');\n } catch (err) {\n if (isNative()) void nativeNotify('error');\n toast.error(err instanceof Error ? err.message : 'Failed to disconnect MCP server');\n }\n };\n\n const startEditing = () => {\n if (!server) return;\n setFormData({\n name: server.name,\n description: mcpServerDescription(server) ?? '',\n transport: server.type as MCPTransport,\n baseUrl: mcpServerEndpoint(server) ?? '',\n authMethod: (configString(server.config, 'authMethod') ?? 'NONE') as MCPAuthMethod,\n secretRefId: configString(server.config, 'secretRefId') ?? '',\n });\n setIsEditing(true);\n };\n\n const getHealthIcon = (status?: string) => {\n switch (status) {\n case 'CONNECTED':\n return <CheckCircle className=\"h-5 w-5 text-status-success-text\" />;\n case 'CONNECTING':\n return <AlertTriangle className=\"h-5 w-5 text-status-warning-text\" />;\n case 'ERROR':\n case 'DISCONNECTED':\n return <XCircle className=\"h-5 w-5 text-status-error-text\" />;\n default:\n return <Clock className=\"h-5 w-5 text-text-secondary\" />;\n }\n };\n\n if (isNew) {\n return (\n <PageLayout\n title=\"Add MCP Server\"\n description=\"Connect a new Model Context Protocol server\"\n actions={\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" onClick={() => navigateTo('mcp')}>\n Cancel\n </Button>\n <Button\n leftIcon={<Save size={16} />}\n onClick={handleCreate}\n isLoading={connectResult.loading}\n disabled={!formData.name || !formData.baseUrl}\n >\n Connect\n </Button>\n </div>\n }\n >\n <div className=\"max-w-2xl space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Server Configuration</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <FormField label=\"Server Name\" required>\n <Input\n placeholder=\"e.g., GitHub MCP Server\"\n value={formData.name}\n onChange={(e) => setFormData({ ...formData, name: e.target.value })}\n />\n </FormField>\n\n <FormField label=\"Description\">\n <Textarea\n placeholder=\"What capabilities does this server provide?\"\n value={formData.description}\n onChange={(e) => setFormData({ ...formData, description: e.target.value })}\n rows={3}\n />\n </FormField>\n\n <div className=\"grid grid-cols-2 gap-4\">\n <FormField label=\"Transport\" required>\n <select\n className=\"flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm\"\n value={formData.transport}\n onChange={(e) =>\n setFormData({ ...formData, transport: e.target.value as MCPTransport })\n }\n >\n <option value=\"HTTP_JSON\">HTTP JSON</option>\n <option value=\"JSON_RPC\">JSON RPC</option>\n <option value=\"SSE\">Server-Sent Events</option>\n <option value=\"CUSTOM\">Custom</option>\n </select>\n </FormField>\n\n <FormField label=\"Auth Method\">\n <select\n className=\"flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm\"\n value={formData.authMethod}\n onChange={(e) =>\n setFormData({ ...formData, authMethod: e.target.value as MCPAuthMethod })\n }\n >\n <option value=\"NONE\">None</option>\n <option value=\"API_KEY\">API Key</option>\n <option value=\"OAUTH\">OAuth</option>\n <option value=\"CUSTOM_HEADER\">Custom Header</option>\n </select>\n </FormField>\n </div>\n\n <FormField label=\"Base URL\" required>\n <Input\n placeholder=\"e.g., https://mcp.example.com\"\n value={formData.baseUrl}\n onChange={(e) => setFormData({ ...formData, baseUrl: e.target.value })}\n />\n </FormField>\n\n {formData.authMethod !== 'NONE' && (\n <FormField label=\"Secret Reference ID\">\n <Input\n placeholder=\"e.g., secret-mcp-github\"\n value={formData.secretRefId}\n onChange={(e) => setFormData({ ...formData, secretRefId: e.target.value })}\n />\n </FormField>\n )}\n </CardContent>\n </Card>\n </div>\n </PageLayout>\n );\n }\n\n if (loading) {\n return (\n <PageLayout title=\"Loading...\">\n <div className=\"h-96 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg\" />\n </PageLayout>\n );\n }\n\n if (!server) {\n return (\n <PageLayout title=\"Server Not Found\">\n <EmptyState\n illustration=\"empty-generic\"\n title=\"Server Not Found\"\n description=\"This MCP server doesn't exist.\"\n action={<Button onClick={() => navigateTo('mcp')}>Back to MCP Servers</Button>}\n />\n </PageLayout>\n );\n }\n\n return (\n <PageLayout\n title={\n <div className=\"flex items-center gap-3\">\n <Button variant=\"ghost\" size=\"icon\" onClick={() => navigateTo('mcp')}>\n <ArrowLeft size={20} />\n </Button>\n <div className=\"p-2 rounded-lg bg-action-primary-bg/10\">\n {isMCPServerHealthy(server.status) ? (\n <PlugZap className=\"h-6 w-6 text-status-success-text\" />\n ) : (\n <Plug className=\"h-6 w-6 text-text-secondary\" />\n )}\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <span>{server.name}</span>\n <StatusBadge status={server.status} />\n </div>\n <p className=\"text-sm font-normal text-text-secondary\">\n {mcpServerDescription(server)}\n </p>\n </div>\n </div>\n }\n actions={\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n leftIcon={<RefreshCw size={16} />}\n onClick={handleTestConnection}\n isLoading={testResult.loading}\n >\n Test\n </Button>\n {isEditing ? (\n <>\n <Button variant=\"outline\" onClick={() => setIsEditing(false)}>\n Cancel\n </Button>\n <Button\n leftIcon={<Save size={16} />}\n onClick={handleUpdate}\n isLoading={updateResult.loading}\n >\n Save\n </Button>\n </>\n ) : (\n <>\n <Button variant=\"outline\" leftIcon={<Edit size={16} />} onClick={startEditing}>\n Edit\n </Button>\n {showDeleteConfirm ? (\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => setShowDeleteConfirm(false)}>\n Cancel\n </Button>\n <Button\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => {\n nativeImpact('medium');\n void handleDelete();\n }}\n isLoading={deleteResult.loading}\n >\n Confirm\n </Button>\n </div>\n ) : (\n <Button\n variant=\"destructive\"\n leftIcon={<Trash2 size={16} />}\n onClick={() => setShowDeleteConfirm(true)}\n >\n Delete\n </Button>\n )}\n </>\n )}\n </div>\n }\n >\n <div className=\"space-y-6\">\n <PagePurpose icon={<Server size={18} />}>\n This is one connected MCP server and everything it exposes to your agents — its health,\n the tools and resources it provides, and its connection settings. Check that it is healthy\n and that the right tools are available, then your agents can call them (subject to your\n tool policies) to take real actions.\n </PagePurpose>\n\n {/* Health Status */}\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-4\">\n <GlassCard treatment=\"glass\" glow className=\"p-6 text-center\">\n <div className=\"p-3 rounded-full bg-action-primary-bg/10 w-fit mx-auto mb-2\">\n {getHealthIcon(server.status)}\n </div>\n <p className=\"text-lg font-bold capitalize text-text-primary\">\n {server.status.toLowerCase()}\n </p>\n <p className=\"text-sm text-text-secondary\">Health Status</p>\n </GlassCard>\n <Card>\n <CardContent className=\"pt-6 text-center\">\n <p className=\"text-3xl font-bold text-text-primary\">{tools.length}</p>\n <p className=\"text-sm text-text-secondary\">Tools Available</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6 text-center\">\n <p className=\"text-3xl font-bold text-text-primary\">{resources.length}</p>\n <p className=\"text-sm text-text-secondary\">Resources</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6 text-center\">\n <p className=\"text-3xl font-bold text-text-primary\">\n {server.lastConnectedAt ? formatRelativeTime(server.lastConnectedAt) : 'Never'}\n </p>\n <p className=\"text-sm text-text-secondary\">Last Connected</p>\n </CardContent>\n </Card>\n </div>\n\n {/* Connection Details */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Server size={18} />\n Connection Details\n </CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-6\">\n <div>\n <p className=\"text-sm text-text-secondary\">Transport</p>\n <Badge variant=\"outline\" className=\"capitalize mt-1\">\n {server.type.toLowerCase().replace('_', ' ')}\n </Badge>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Base URL</p>\n <p className=\"font-medium text-sm truncate\">\n {mcpServerEndpoint(server) ?? MISSING_VALUE}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Auth Method</p>\n <Badge variant=\"outline\" className=\"capitalize mt-1\">\n {(configString(server.config, 'authMethod') ?? 'NONE')\n .toLowerCase()\n .replace('_', ' ')}\n </Badge>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Last Tested</p>\n <p className=\"font-medium\">\n {server.lastErrorAt ? formatRelativeTime(server.lastErrorAt) : 'Never'}\n </p>\n </div>\n </div>\n {server.errorMessage && (\n <div className=\"mt-4 p-3 bg-status-error-bg-subtle rounded-lg text-sm text-status-error-text\">\n <strong>Error:</strong> {server.errorMessage}\n </div>\n )}\n </CardContent>\n </Card>\n\n {/* Tools Catalog */}\n <div className=\"grid grid-cols-12 gap-6\">\n <div className=\"col-span-5\">\n <Card className=\"h-full\">\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Wrench size={18} />\n Tools ({tools.length})\n </CardTitle>\n <CardDescription>Available tools from this MCP server</CardDescription>\n </CardHeader>\n <CardContent className=\"p-0\">\n {tools.length > 0 ? (\n <div className=\"divide-y divide-border-subtle max-h-96 overflow-auto\">\n {tools.map((tool: MCPToolRecord) => (\n <button\n key={tool.name}\n type=\"button\"\n className={`w-full text-left p-4 hover:bg-accent transition-colors ${\n selectedTool?.name === tool.name ? 'bg-accent' : ''\n }`}\n onClick={() => setSelectedToolName(tool.name)}\n >\n <p className=\"font-medium\">{tool.name}</p>\n <p className=\"text-sm text-text-secondary line-clamp-1\">\n {tool.description}\n </p>\n </button>\n ))}\n </div>\n ) : (\n <div className=\"p-8 text-center text-text-secondary\">\n <Wrench className=\"h-8 w-8 mx-auto mb-2 opacity-50\" />\n <p>No tools available</p>\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n\n <div className=\"col-span-7\">\n {selectedTool ? (\n <Card className=\"h-full\">\n <CardHeader>\n <CardTitle>{selectedTool.name}</CardTitle>\n <CardDescription>{selectedTool.description}</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {/* Input Schema */}\n <div>\n <p className=\"text-sm font-medium mb-2\">Input Schema</p>\n <div className=\"p-3 bg-bg-sunken rounded-lg font-mono text-xs overflow-auto max-h-96\">\n <pre>{JSON.stringify(selectedTool.inputSchema, null, 2)}</pre>\n </div>\n </div>\n </CardContent>\n </Card>\n ) : (\n <Card className=\"h-full\">\n <CardContent className=\"h-full flex items-center justify-center\">\n <EmptyState\n illustration=\"onboarding\"\n title=\"Select a tool\"\n description=\"Choose a tool from the list to view its details\"\n />\n </CardContent>\n </Card>\n )}\n </div>\n </div>\n\n {/* Resources */}\n {resources.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Resources</CardTitle>\n <CardDescription>Available resources exposed by this server</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n {resources.map(\n (resource: {\n uri: string;\n name: string;\n description?: string | null;\n mimeType?: string | null;\n }) => (\n <div\n key={resource.uri}\n className=\"p-4 border border-border-subtle rounded-lg hover:bg-accent/50 transition-colors\"\n >\n <div className=\"flex items-start justify-between\">\n <div>\n <p className=\"font-medium\">{resource.name}</p>\n <p className=\"text-sm text-text-secondary\">{resource.description}</p>\n </div>\n <ExternalLink size={14} className=\"text-text-secondary\" />\n </div>\n <div className=\"mt-2 flex items-center gap-2\">\n <Badge variant=\"outline\" className=\"text-xs font-mono\">\n {resource.mimeType || 'unknown'}\n </Badge>\n <span className=\"text-xs text-text-secondary truncate\">{resource.uri}</span>\n </div>\n </div>\n )\n )}\n </div>\n </CardContent>\n </Card>\n )}\n\n {/* Metadata */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Settings size={18} />\n Metadata\n </CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-6 text-sm\">\n <div>\n <p className=\"text-text-secondary\">Created</p>\n <p className=\"font-medium\">{formatRelativeTime(server.createdAt)}</p>\n </div>\n <div>\n <p className=\"text-text-secondary\">Updated</p>\n <p className=\"font-medium\">{formatRelativeTime(server.updatedAt)}</p>\n </div>\n <div>\n <p className=\"text-text-secondary\">Last Connected</p>\n <p className=\"font-medium\">\n {server.lastConnectedAt ? formatRelativeTime(server.lastConnectedAt) : 'Never'}\n </p>\n </div>\n <div>\n <p className=\"text-text-secondary\">Credentials</p>\n <Badge variant={server.credentialsHash ? 'success' : 'secondary'}>\n {server.credentialsHash ? 'Configured' : 'None'}\n </Badge>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MCPServerDetailPage.js","names":[],"sources":["../../../src/botlit/pages/MCPServerDetailPage.tsx"],"sourcesContent":["/**\n * MCP Server Detail Page\n * @module botlit/pages\n */\n\nimport type { FC } from 'react';\nimport { useMemo, useState } from 'react';\nimport { useParams } from 'react-router';\nimport { useBotlit } from '../providers/BotlitProvider';\nimport { isNative, nativeImpact, nativeNotify } from '../../utils/nativeBridge';\nimport {\n ArrowLeft,\n Server,\n Plug,\n PlugZap,\n Wrench,\n Settings,\n Save,\n RefreshCw,\n AlertTriangle,\n CheckCircle,\n XCircle,\n Clock,\n ExternalLink,\n Edit,\n Trash2,\n} from 'lucide-react';\nimport { PagePurpose, GlassCard } from '@burdenoff/fe-libs/ui';\nimport { PageLayout } from '../components/PageLayout';\nimport { Card, CardHeader, CardTitle, CardContent, CardDescription } from '../components/Card';\nimport { Button } from '../components/Button';\nimport { Input, Textarea, FormField } from '../components/Input';\nimport { StatusBadge, Badge } from '../components/Badge';\nimport { EmptyState } from '../components/EmptyState';\nimport { toast } from 'sonner';\nimport {\n useMCPServer,\n useMCPTools,\n useMCPResources,\n useCreateMCPServer,\n useUpdateMCPServer,\n useUpdateMCPTool,\n useDeleteMCPServer,\n useTestMCPConnection,\n isMCPServerHealthy,\n mcpServerDescription,\n mcpServerEndpoint,\n type MCPToolRecord,\n} from '../hooks';\nimport type { McpToolRiskLevel } from '../../generated/wspace-types';\nimport { formatRelativeTime, MISSING_VALUE } from '../utils/formatters';\nimport type { MCPTransport, MCPAuthMethod } from '../types';\n\ninterface MCPServerDetailPageProps {\n isNew?: boolean;\n}\n\n/** Reads a string the UI stored on the connection's free-form config. */\nfunction configString(\n config: Record<string, unknown> | undefined,\n key: string\n): string | undefined {\n const value = config?.[key];\n return typeof value === 'string' && value !== '' ? value : undefined;\n}\n\nexport const MCPServerDetailPage: FC<MCPServerDetailPageProps> = ({ isNew }) => {\n const { serverId } = useParams();\n const { navigateTo } = useBotlit();\n const { data: server, loading, refetch } = useMCPServer(isNew ? undefined : serverId);\n const { data: tools } = useMCPTools(isNew ? undefined : serverId);\n const { data: resources } = useMCPResources(isNew ? undefined : serverId);\n const [connectServer, connectResult] = useCreateMCPServer();\n const [updateServer, updateResult] = useUpdateMCPServer();\n const [deleteServer, deleteResult] = useDeleteMCPServer();\n const [testConnection, testResult] = useTestMCPConnection();\n const [updateTool, updateToolResult] = useUpdateMCPTool();\n\n const [isEditing, setIsEditing] = useState(false);\n const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);\n\n const [formData, setFormData] = useState({\n name: '',\n description: '',\n transport: 'HTTP_JSON' as MCPTransport,\n baseUrl: '',\n authMethod: 'NONE' as MCPAuthMethod,\n secretRefId: '',\n });\n\n const [selectedToolName, setSelectedToolName] = useState<string | null>(null);\n const selectedTool = useMemo(\n () => tools.find((tool) => tool.name === selectedToolName) ?? null,\n [tools, selectedToolName]\n );\n\n const handleCreate = async () => {\n if (!formData.name || !formData.baseUrl) return;\n try {\n const created = await connectServer({\n name: formData.name,\n type: formData.transport,\n config: {\n url: formData.baseUrl,\n description: formData.description,\n authMethod: formData.authMethod,\n secretRefId: formData.secretRefId || undefined,\n },\n });\n toast.success(`Connected \"${created.name}\"`);\n navigateTo(`mcp/${created.id}`);\n } catch (err) {\n toast.error(err instanceof Error ? err.message : 'Failed to connect MCP server');\n }\n };\n\n const handleTestConnection = async () => {\n if (!serverId) return;\n try {\n const ok = await testConnection(serverId);\n if (ok) {\n toast.success('MCP server is reachable');\n } else {\n toast.error('MCP server did not respond');\n }\n void refetch();\n } catch (err) {\n toast.error(err instanceof Error ? err.message : 'Failed to test MCP connection');\n }\n };\n\n const handleUpdate = async () => {\n if (!serverId || !formData.name) return;\n try {\n await updateServer({\n serverId,\n input: {\n name: formData.name,\n // `config` is replaced wholesale by the service — resend every field\n // the form owns so an edit never drops the endpoint or auth settings.\n config: {\n url: formData.baseUrl,\n description: formData.description,\n authMethod: formData.authMethod,\n secretRefId: formData.secretRefId || undefined,\n },\n },\n });\n toast.success('MCP server updated');\n void refetch();\n setIsEditing(false);\n } catch (err) {\n toast.error(err instanceof Error ? err.message : 'Failed to update MCP server');\n }\n };\n\n const handleDelete = async () => {\n if (!serverId) return;\n try {\n await deleteServer(serverId);\n if (isNative()) void nativeNotify('success');\n toast.success('MCP server disconnected');\n navigateTo('mcp');\n } catch (err) {\n if (isNative()) void nativeNotify('error');\n toast.error(err instanceof Error ? err.message : 'Failed to disconnect MCP server');\n }\n };\n\n const startEditing = () => {\n if (!server) return;\n setFormData({\n name: server.name,\n description: mcpServerDescription(server) ?? '',\n transport: server.type as MCPTransport,\n baseUrl: mcpServerEndpoint(server) ?? '',\n authMethod: (configString(server.config, 'authMethod') ?? 'NONE') as MCPAuthMethod,\n secretRefId: configString(server.config, 'secretRefId') ?? '',\n });\n setIsEditing(true);\n };\n\n const riskBadgeVariant = (\n riskLevel: McpToolRiskLevel\n ): 'default' | 'success' | 'warning' | 'destructive' => {\n switch (riskLevel) {\n case 'HIGH':\n return 'destructive';\n case 'MEDIUM':\n return 'warning';\n case 'LOW':\n default:\n return 'success';\n }\n };\n\n const handleUpdateToolRisk = async (toolId: string, riskLevel: McpToolRiskLevel) => {\n try {\n await updateTool({ toolId, input: { riskLevel } });\n toast.success('Tool risk level updated');\n } catch (err) {\n toast.error(err instanceof Error ? err.message : 'Failed to update tool risk level');\n }\n };\n\n const getHealthIcon = (status?: string) => {\n switch (status) {\n case 'CONNECTED':\n return <CheckCircle className=\"h-5 w-5 text-status-success-text\" />;\n case 'CONNECTING':\n return <AlertTriangle className=\"h-5 w-5 text-status-warning-text\" />;\n case 'ERROR':\n case 'DISCONNECTED':\n return <XCircle className=\"h-5 w-5 text-status-error-text\" />;\n default:\n return <Clock className=\"h-5 w-5 text-text-secondary\" />;\n }\n };\n\n if (isNew) {\n return (\n <PageLayout\n title=\"Add MCP Server\"\n description=\"Connect a new Model Context Protocol server\"\n actions={\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" onClick={() => navigateTo('mcp')}>\n Cancel\n </Button>\n <Button\n leftIcon={<Save size={16} />}\n onClick={handleCreate}\n isLoading={connectResult.loading}\n disabled={!formData.name || !formData.baseUrl}\n >\n Connect\n </Button>\n </div>\n }\n >\n <div className=\"max-w-2xl space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Server Configuration</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <FormField label=\"Server Name\" required>\n <Input\n placeholder=\"e.g., GitHub MCP Server\"\n value={formData.name}\n onChange={(e) => setFormData({ ...formData, name: e.target.value })}\n />\n </FormField>\n\n <FormField label=\"Description\">\n <Textarea\n placeholder=\"What capabilities does this server provide?\"\n value={formData.description}\n onChange={(e) => setFormData({ ...formData, description: e.target.value })}\n rows={3}\n />\n </FormField>\n\n <div className=\"grid grid-cols-2 gap-4\">\n <FormField label=\"Transport\" required>\n <select\n className=\"flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm\"\n value={formData.transport}\n onChange={(e) =>\n setFormData({ ...formData, transport: e.target.value as MCPTransport })\n }\n >\n <option value=\"HTTP_JSON\">HTTP JSON</option>\n <option value=\"JSON_RPC\">JSON RPC</option>\n <option value=\"SSE\">Server-Sent Events</option>\n <option value=\"CUSTOM\">Custom</option>\n </select>\n </FormField>\n\n <FormField label=\"Auth Method\">\n <select\n className=\"flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm\"\n value={formData.authMethod}\n onChange={(e) =>\n setFormData({ ...formData, authMethod: e.target.value as MCPAuthMethod })\n }\n >\n <option value=\"NONE\">None</option>\n <option value=\"API_KEY\">API Key</option>\n <option value=\"OAUTH\">OAuth</option>\n <option value=\"CUSTOM_HEADER\">Custom Header</option>\n </select>\n </FormField>\n </div>\n\n <FormField label=\"Base URL\" required>\n <Input\n placeholder=\"e.g., https://mcp.example.com\"\n value={formData.baseUrl}\n onChange={(e) => setFormData({ ...formData, baseUrl: e.target.value })}\n />\n </FormField>\n\n {formData.authMethod !== 'NONE' && (\n <FormField label=\"Secret Reference ID\">\n <Input\n placeholder=\"e.g., secret-mcp-github\"\n value={formData.secretRefId}\n onChange={(e) => setFormData({ ...formData, secretRefId: e.target.value })}\n />\n </FormField>\n )}\n </CardContent>\n </Card>\n </div>\n </PageLayout>\n );\n }\n\n if (loading) {\n return (\n <PageLayout title=\"Loading...\">\n <div className=\"h-96 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg\" />\n </PageLayout>\n );\n }\n\n if (!server) {\n return (\n <PageLayout title=\"Server Not Found\">\n <EmptyState\n illustration=\"empty-generic\"\n title=\"Server Not Found\"\n description=\"This MCP server doesn't exist.\"\n action={<Button onClick={() => navigateTo('mcp')}>Back to MCP Servers</Button>}\n />\n </PageLayout>\n );\n }\n\n return (\n <PageLayout\n title={\n <div className=\"flex items-center gap-3\">\n <Button variant=\"ghost\" size=\"icon\" onClick={() => navigateTo('mcp')}>\n <ArrowLeft size={20} />\n </Button>\n <div className=\"p-2 rounded-lg bg-action-primary-bg/10\">\n {isMCPServerHealthy(server.status) ? (\n <PlugZap className=\"h-6 w-6 text-status-success-text\" />\n ) : (\n <Plug className=\"h-6 w-6 text-text-secondary\" />\n )}\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <span>{server.name}</span>\n <StatusBadge status={server.status} />\n </div>\n <p className=\"text-sm font-normal text-text-secondary\">\n {mcpServerDescription(server)}\n </p>\n </div>\n </div>\n }\n actions={\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n leftIcon={<RefreshCw size={16} />}\n onClick={handleTestConnection}\n isLoading={testResult.loading}\n >\n Test\n </Button>\n {isEditing ? (\n <>\n <Button variant=\"outline\" onClick={() => setIsEditing(false)}>\n Cancel\n </Button>\n <Button\n leftIcon={<Save size={16} />}\n onClick={handleUpdate}\n isLoading={updateResult.loading}\n >\n Save\n </Button>\n </>\n ) : (\n <>\n <Button variant=\"outline\" leftIcon={<Edit size={16} />} onClick={startEditing}>\n Edit\n </Button>\n {showDeleteConfirm ? (\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => setShowDeleteConfirm(false)}>\n Cancel\n </Button>\n <Button\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => {\n nativeImpact('medium');\n void handleDelete();\n }}\n isLoading={deleteResult.loading}\n >\n Confirm\n </Button>\n </div>\n ) : (\n <Button\n variant=\"destructive\"\n leftIcon={<Trash2 size={16} />}\n onClick={() => setShowDeleteConfirm(true)}\n >\n Delete\n </Button>\n )}\n </>\n )}\n </div>\n }\n >\n <div className=\"space-y-6\">\n <PagePurpose icon={<Server size={18} />}>\n This is one connected MCP server and everything it exposes to your agents — its health,\n the tools and resources it provides, and its connection settings. Check that it is healthy\n and that the right tools are available, then your agents can call them (subject to your\n tool policies) to take real actions.\n </PagePurpose>\n\n {/* Health Status */}\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-4\">\n <GlassCard treatment=\"glass\" glow className=\"p-6 text-center\">\n <div className=\"p-3 rounded-full bg-action-primary-bg/10 w-fit mx-auto mb-2\">\n {getHealthIcon(server.status)}\n </div>\n <p className=\"text-lg font-bold capitalize text-text-primary\">\n {server.status.toLowerCase()}\n </p>\n <p className=\"text-sm text-text-secondary\">Health Status</p>\n </GlassCard>\n <Card>\n <CardContent className=\"pt-6 text-center\">\n <p className=\"text-3xl font-bold text-text-primary\">{tools.length}</p>\n <p className=\"text-sm text-text-secondary\">Tools Available</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6 text-center\">\n <p className=\"text-3xl font-bold text-text-primary\">{resources.length}</p>\n <p className=\"text-sm text-text-secondary\">Resources</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-6 text-center\">\n <p className=\"text-3xl font-bold text-text-primary\">\n {server.lastConnectedAt ? formatRelativeTime(server.lastConnectedAt) : 'Never'}\n </p>\n <p className=\"text-sm text-text-secondary\">Last Connected</p>\n </CardContent>\n </Card>\n </div>\n\n {/* Connection Details */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Server size={18} />\n Connection Details\n </CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-6\">\n <div>\n <p className=\"text-sm text-text-secondary\">Transport</p>\n <Badge variant=\"outline\" className=\"capitalize mt-1\">\n {server.type.toLowerCase().replace('_', ' ')}\n </Badge>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Base URL</p>\n <p className=\"font-medium text-sm truncate\">\n {mcpServerEndpoint(server) ?? MISSING_VALUE}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Auth Method</p>\n <Badge variant=\"outline\" className=\"capitalize mt-1\">\n {(configString(server.config, 'authMethod') ?? 'NONE')\n .toLowerCase()\n .replace('_', ' ')}\n </Badge>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Last Tested</p>\n <p className=\"font-medium\">\n {server.lastErrorAt ? formatRelativeTime(server.lastErrorAt) : 'Never'}\n </p>\n </div>\n </div>\n {server.errorMessage && (\n <div className=\"mt-4 p-3 bg-status-error-bg-subtle rounded-lg text-sm text-status-error-text\">\n <strong>Error:</strong> {server.errorMessage}\n </div>\n )}\n </CardContent>\n </Card>\n\n {/* Tools Catalog */}\n <div className=\"grid grid-cols-12 gap-6\">\n <div className=\"col-span-5\">\n <Card className=\"h-full\">\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Wrench size={18} />\n Tools ({tools.length})\n </CardTitle>\n <CardDescription>Available tools from this MCP server</CardDescription>\n </CardHeader>\n <CardContent className=\"p-0\">\n {tools.length > 0 ? (\n <div className=\"divide-y divide-border-subtle max-h-96 overflow-auto\">\n {tools.map((tool: MCPToolRecord) => (\n <button\n key={tool.id}\n type=\"button\"\n className={`w-full text-left p-4 hover:bg-accent transition-colors ${\n selectedTool?.id === tool.id ? 'bg-accent' : ''\n }`}\n onClick={() => setSelectedToolName(tool.name)}\n >\n <div className=\"flex items-center justify-between gap-2\">\n <p className=\"font-medium truncate\">{tool.name}</p>\n <Badge variant={riskBadgeVariant(tool.riskLevel)} className=\"shrink-0\">\n {tool.riskLevel}\n </Badge>\n </div>\n <p className=\"text-sm text-text-secondary line-clamp-1\">\n {tool.description}\n </p>\n </button>\n ))}\n </div>\n ) : (\n <div className=\"p-8 text-center text-text-secondary\">\n <Wrench className=\"h-8 w-8 mx-auto mb-2 opacity-50\" />\n <p>No tools available</p>\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n\n <div className=\"col-span-7\">\n {selectedTool ? (\n <Card className=\"h-full\">\n <CardHeader>\n <div className=\"flex items-start justify-between gap-4\">\n <div>\n <CardTitle>{selectedTool.name}</CardTitle>\n <CardDescription>{selectedTool.description}</CardDescription>\n </div>\n <Badge variant={riskBadgeVariant(selectedTool.riskLevel)}>\n {selectedTool.riskLevel}\n </Badge>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {/* Risk Level */}\n <div>\n <p className=\"text-sm font-medium mb-2\">Risk Level</p>\n <select\n className=\"flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm\"\n value={selectedTool.riskLevel}\n disabled={updateToolResult.loading}\n onChange={(e) =>\n void handleUpdateToolRisk(\n selectedTool.id,\n e.target.value as McpToolRiskLevel\n )\n }\n >\n <option value=\"LOW\">Low — safe read/notify actions</option>\n <option value=\"MEDIUM\">Medium — state-changing actions</option>\n <option value=\"HIGH\">High — destructive or sensitive actions</option>\n </select>\n <p className=\"text-xs text-text-secondary mt-1\">\n Agents can only invoke tools up to the maximum risk level allowed by your\n workspace tool policies.\n </p>\n </div>\n\n {/* Input Schema */}\n <div>\n <p className=\"text-sm font-medium mb-2\">Input Schema</p>\n <div className=\"p-3 bg-bg-sunken rounded-lg font-mono text-xs overflow-auto max-h-96\">\n <pre>{JSON.stringify(selectedTool.inputSchema, null, 2)}</pre>\n </div>\n </div>\n </CardContent>\n </Card>\n ) : (\n <Card className=\"h-full\">\n <CardContent className=\"h-full flex items-center justify-center\">\n <EmptyState\n illustration=\"onboarding\"\n title=\"Select a tool\"\n description=\"Choose a tool from the list to view its details\"\n />\n </CardContent>\n </Card>\n )}\n </div>\n </div>\n\n {/* Resources */}\n {resources.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Resources</CardTitle>\n <CardDescription>Available resources exposed by this server</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n {resources.map(\n (resource: {\n uri: string;\n name: string;\n description?: string | null;\n mimeType?: string | null;\n }) => (\n <div\n key={resource.uri}\n className=\"p-4 border border-border-subtle rounded-lg hover:bg-accent/50 transition-colors\"\n >\n <div className=\"flex items-start justify-between\">\n <div>\n <p className=\"font-medium\">{resource.name}</p>\n <p className=\"text-sm text-text-secondary\">{resource.description}</p>\n </div>\n <ExternalLink size={14} className=\"text-text-secondary\" />\n </div>\n <div className=\"mt-2 flex items-center gap-2\">\n <Badge variant=\"outline\" className=\"text-xs font-mono\">\n {resource.mimeType || 'unknown'}\n </Badge>\n <span className=\"text-xs text-text-secondary truncate\">{resource.uri}</span>\n </div>\n </div>\n )\n )}\n </div>\n </CardContent>\n </Card>\n )}\n\n {/* Metadata */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Settings size={18} />\n Metadata\n </CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-6 text-sm\">\n <div>\n <p className=\"text-text-secondary\">Created</p>\n <p className=\"font-medium\">{formatRelativeTime(server.createdAt)}</p>\n </div>\n <div>\n <p className=\"text-text-secondary\">Updated</p>\n <p className=\"font-medium\">{formatRelativeTime(server.updatedAt)}</p>\n </div>\n <div>\n <p className=\"text-text-secondary\">Last Connected</p>\n <p className=\"font-medium\">\n {server.lastConnectedAt ? formatRelativeTime(server.lastConnectedAt) : 'Never'}\n </p>\n </div>\n <div>\n <p className=\"text-text-secondary\">Credentials</p>\n <Badge variant={server.credentialsHash ? 'success' : 'secondary'}>\n {server.credentialsHash ? 'Configured' : 'None'}\n </Badge>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|
|
@@ -954,8 +954,10 @@ var N = e`
|
|
|
954
954
|
query ListMCPTools($connectionId: ID!) {
|
|
955
955
|
listMCPTools(connectionId: $connectionId) {
|
|
956
956
|
description
|
|
957
|
+
id
|
|
957
958
|
inputSchema
|
|
958
959
|
name
|
|
960
|
+
riskLevel
|
|
959
961
|
}
|
|
960
962
|
}
|
|
961
963
|
`, I = e`
|
|
@@ -1022,11 +1024,25 @@ e`
|
|
|
1022
1024
|
mutation RefreshMCPTools($connectionId: ID!) {
|
|
1023
1025
|
refreshMCPTools(connectionId: $connectionId) {
|
|
1024
1026
|
description
|
|
1027
|
+
id
|
|
1025
1028
|
inputSchema
|
|
1026
1029
|
name
|
|
1030
|
+
riskLevel
|
|
1027
1031
|
}
|
|
1028
1032
|
}
|
|
1029
|
-
|
|
1033
|
+
`;
|
|
1034
|
+
var B = e`
|
|
1035
|
+
mutation UpdateMCPTool($id: ID!, $input: UpdateMCPToolInput!) {
|
|
1036
|
+
updateMCPTool(id: $id, input: $input) {
|
|
1037
|
+
description
|
|
1038
|
+
id
|
|
1039
|
+
inputSchema
|
|
1040
|
+
name
|
|
1041
|
+
riskLevel
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
`;
|
|
1045
|
+
e`
|
|
1030
1046
|
mutation RefreshMCPResources($connectionId: ID!) {
|
|
1031
1047
|
refreshMCPResources(connectionId: $connectionId) {
|
|
1032
1048
|
description
|
|
@@ -1036,7 +1052,7 @@ e`
|
|
|
1036
1052
|
}
|
|
1037
1053
|
}
|
|
1038
1054
|
`;
|
|
1039
|
-
var
|
|
1055
|
+
var V = e`
|
|
1040
1056
|
query GetPolicy($id: ID!) {
|
|
1041
1057
|
getPolicy(id: $id) {
|
|
1042
1058
|
bucketId
|
|
@@ -1057,7 +1073,7 @@ var B = e`
|
|
|
1057
1073
|
workspaceId
|
|
1058
1074
|
}
|
|
1059
1075
|
}
|
|
1060
|
-
`,
|
|
1076
|
+
`, H = e`
|
|
1061
1077
|
query ListPolicies($filters: PolicyFilterInput, $pagination: PaginationInput) {
|
|
1062
1078
|
listPolicies(filters: $filters, pagination: $pagination) {
|
|
1063
1079
|
bucketId
|
|
@@ -1078,7 +1094,7 @@ var B = e`
|
|
|
1078
1094
|
workspaceId
|
|
1079
1095
|
}
|
|
1080
1096
|
}
|
|
1081
|
-
`,
|
|
1097
|
+
`, U = e`
|
|
1082
1098
|
mutation CreatePolicy($input: CreatePolicyInput!) {
|
|
1083
1099
|
createPolicy(input: $input) {
|
|
1084
1100
|
bucketId
|
|
@@ -1099,7 +1115,7 @@ var B = e`
|
|
|
1099
1115
|
workspaceId
|
|
1100
1116
|
}
|
|
1101
1117
|
}
|
|
1102
|
-
`,
|
|
1118
|
+
`, W = e`
|
|
1103
1119
|
mutation UpdatePolicy($id: ID!, $input: UpdatePolicyInput!) {
|
|
1104
1120
|
updatePolicy(id: $id, input: $input) {
|
|
1105
1121
|
bucketId
|
|
@@ -1120,11 +1136,11 @@ var B = e`
|
|
|
1120
1136
|
workspaceId
|
|
1121
1137
|
}
|
|
1122
1138
|
}
|
|
1123
|
-
`,
|
|
1139
|
+
`, G = e`
|
|
1124
1140
|
mutation DeletePolicy($id: ID!) {
|
|
1125
1141
|
deletePolicy(id: $id)
|
|
1126
1142
|
}
|
|
1127
|
-
`,
|
|
1143
|
+
`, K = e`
|
|
1128
1144
|
query GetPromptTemplate($id: ID!) {
|
|
1129
1145
|
getPromptTemplate(id: $id) {
|
|
1130
1146
|
bucketId
|
|
@@ -1174,7 +1190,7 @@ e`
|
|
|
1174
1190
|
}
|
|
1175
1191
|
}
|
|
1176
1192
|
`;
|
|
1177
|
-
var
|
|
1193
|
+
var q = e`
|
|
1178
1194
|
query ListPromptTemplates($filters: PromptTemplateFilterInput, $pagination: PaginationInput) {
|
|
1179
1195
|
listPromptTemplates(filters: $filters, pagination: $pagination) {
|
|
1180
1196
|
bucketId
|
|
@@ -1198,7 +1214,7 @@ var K = e`
|
|
|
1198
1214
|
workspaceId
|
|
1199
1215
|
}
|
|
1200
1216
|
}
|
|
1201
|
-
`,
|
|
1217
|
+
`, J = e`
|
|
1202
1218
|
mutation CreatePromptTemplate($input: CreatePromptTemplateInput!) {
|
|
1203
1219
|
createPromptTemplate(input: $input) {
|
|
1204
1220
|
bucketId
|
|
@@ -1222,7 +1238,7 @@ var K = e`
|
|
|
1222
1238
|
workspaceId
|
|
1223
1239
|
}
|
|
1224
1240
|
}
|
|
1225
|
-
`,
|
|
1241
|
+
`, Y = e`
|
|
1226
1242
|
mutation UpdatePromptTemplate($id: ID!, $input: UpdatePromptTemplateInput!) {
|
|
1227
1243
|
updatePromptTemplate(id: $id, input: $input) {
|
|
1228
1244
|
bucketId
|
|
@@ -1246,7 +1262,7 @@ var K = e`
|
|
|
1246
1262
|
workspaceId
|
|
1247
1263
|
}
|
|
1248
1264
|
}
|
|
1249
|
-
`,
|
|
1265
|
+
`, X = e`
|
|
1250
1266
|
mutation DeletePromptTemplate($id: ID!) {
|
|
1251
1267
|
deletePromptTemplate(id: $id)
|
|
1252
1268
|
}
|
|
@@ -1276,11 +1292,11 @@ e`
|
|
|
1276
1292
|
}
|
|
1277
1293
|
}
|
|
1278
1294
|
`;
|
|
1279
|
-
var
|
|
1295
|
+
var Z = e`
|
|
1280
1296
|
mutation RenderPromptTemplate($id: ID!, $variables: JSON) {
|
|
1281
1297
|
renderPromptTemplate(id: $id, variables: $variables)
|
|
1282
1298
|
}
|
|
1283
|
-
`,
|
|
1299
|
+
`, Q = e`
|
|
1284
1300
|
query GetRetrievalProfile($id: ID!) {
|
|
1285
1301
|
getRetrievalProfile(id: $id) {
|
|
1286
1302
|
bucketId
|
|
@@ -1315,7 +1331,7 @@ var X = e`
|
|
|
1315
1331
|
workspaceId
|
|
1316
1332
|
}
|
|
1317
1333
|
}
|
|
1318
|
-
`,
|
|
1334
|
+
`, $ = e`
|
|
1319
1335
|
query ListRetrievalProfiles($filters: RetrievalProfileFilterInput, $pagination: PaginationInput) {
|
|
1320
1336
|
listRetrievalProfiles(filters: $filters, pagination: $pagination) {
|
|
1321
1337
|
bucketId
|
|
@@ -1349,7 +1365,7 @@ var X = e`
|
|
|
1349
1365
|
workspaceId
|
|
1350
1366
|
}
|
|
1351
1367
|
}
|
|
1352
|
-
`,
|
|
1368
|
+
`, te = e`
|
|
1353
1369
|
mutation CreateRetrievalProfile($input: CreateRetrievalProfileInput!) {
|
|
1354
1370
|
createRetrievalProfile(input: $input) {
|
|
1355
1371
|
bucketId
|
|
@@ -1384,7 +1400,7 @@ var X = e`
|
|
|
1384
1400
|
workspaceId
|
|
1385
1401
|
}
|
|
1386
1402
|
}
|
|
1387
|
-
`,
|
|
1403
|
+
`, ne = e`
|
|
1388
1404
|
mutation UpdateRetrievalProfile($id: ID!, $input: UpdateRetrievalProfileInput!) {
|
|
1389
1405
|
updateRetrievalProfile(id: $id, input: $input) {
|
|
1390
1406
|
bucketId
|
|
@@ -1419,11 +1435,11 @@ var X = e`
|
|
|
1419
1435
|
workspaceId
|
|
1420
1436
|
}
|
|
1421
1437
|
}
|
|
1422
|
-
`,
|
|
1438
|
+
`, re = e`
|
|
1423
1439
|
mutation DeleteRetrievalProfile($id: ID!) {
|
|
1424
1440
|
deleteRetrievalProfile(id: $id)
|
|
1425
1441
|
}
|
|
1426
|
-
`,
|
|
1442
|
+
`, ie = e`
|
|
1427
1443
|
query GetSkill($id: ID!) {
|
|
1428
1444
|
getSkill(id: $id) {
|
|
1429
1445
|
bucketId
|
|
@@ -1448,7 +1464,7 @@ var X = e`
|
|
|
1448
1464
|
workspaceId
|
|
1449
1465
|
}
|
|
1450
1466
|
}
|
|
1451
|
-
`,
|
|
1467
|
+
`, ae = e`
|
|
1452
1468
|
query ListSkills($filters: SkillFilterInput, $pagination: PaginationInput) {
|
|
1453
1469
|
listSkills(filters: $filters, pagination: $pagination) {
|
|
1454
1470
|
bucketId
|
|
@@ -1473,7 +1489,7 @@ var X = e`
|
|
|
1473
1489
|
workspaceId
|
|
1474
1490
|
}
|
|
1475
1491
|
}
|
|
1476
|
-
`,
|
|
1492
|
+
`, oe = e`
|
|
1477
1493
|
mutation CreateSkill($input: CreateSkillInput!) {
|
|
1478
1494
|
createSkill(input: $input) {
|
|
1479
1495
|
bucketId
|
|
@@ -1498,7 +1514,7 @@ var X = e`
|
|
|
1498
1514
|
workspaceId
|
|
1499
1515
|
}
|
|
1500
1516
|
}
|
|
1501
|
-
`,
|
|
1517
|
+
`, se = e`
|
|
1502
1518
|
mutation UpdateSkill($id: ID!, $input: UpdateSkillInput!) {
|
|
1503
1519
|
updateSkill(id: $id, input: $input) {
|
|
1504
1520
|
bucketId
|
|
@@ -1523,7 +1539,7 @@ var X = e`
|
|
|
1523
1539
|
workspaceId
|
|
1524
1540
|
}
|
|
1525
1541
|
}
|
|
1526
|
-
`,
|
|
1542
|
+
`, ce = e`
|
|
1527
1543
|
mutation DeleteSkill($id: ID!) {
|
|
1528
1544
|
deleteSkill(id: $id)
|
|
1529
1545
|
}
|
|
@@ -1535,13 +1551,13 @@ e`
|
|
|
1535
1551
|
}
|
|
1536
1552
|
}
|
|
1537
1553
|
${t}`;
|
|
1538
|
-
var
|
|
1554
|
+
var le = e`
|
|
1539
1555
|
query GetStorePackageBySlug($slug: String!) {
|
|
1540
1556
|
getStorePackageBySlug(slug: $slug) {
|
|
1541
1557
|
...StorePackageFields
|
|
1542
1558
|
}
|
|
1543
1559
|
}
|
|
1544
|
-
${t}`,
|
|
1560
|
+
${t}`, ue = e`
|
|
1545
1561
|
query ListStorePackages($filters: StorePackageFilterInput, $pagination: PaginationInput) {
|
|
1546
1562
|
listStorePackages(filters: $filters, pagination: $pagination) {
|
|
1547
1563
|
...StorePackageFields
|
|
@@ -1555,25 +1571,25 @@ e`
|
|
|
1555
1571
|
}
|
|
1556
1572
|
}
|
|
1557
1573
|
${n}`;
|
|
1558
|
-
var
|
|
1574
|
+
var de = e`
|
|
1559
1575
|
query ListInstalledPackages($filters: InstalledPackageFilterInput!, $pagination: PaginationInput) {
|
|
1560
1576
|
listInstalledPackages(filters: $filters, pagination: $pagination) {
|
|
1561
1577
|
...InstalledPackageFields
|
|
1562
1578
|
}
|
|
1563
1579
|
}
|
|
1564
|
-
${n}`,
|
|
1580
|
+
${n}`, fe = e`
|
|
1565
1581
|
mutation InstallPackage($input: InstallPackageInput!) {
|
|
1566
1582
|
installPackage(input: $input) {
|
|
1567
1583
|
...InstalledPackageFields
|
|
1568
1584
|
}
|
|
1569
1585
|
}
|
|
1570
|
-
${n}`,
|
|
1586
|
+
${n}`, pe = e`
|
|
1571
1587
|
mutation UpdateInstalledPackage($id: ID!, $input: UpdateInstalledPackageInput!) {
|
|
1572
1588
|
updateInstalledPackage(id: $id, input: $input) {
|
|
1573
1589
|
...InstalledPackageFields
|
|
1574
1590
|
}
|
|
1575
1591
|
}
|
|
1576
|
-
${n}`,
|
|
1592
|
+
${n}`, me = e`
|
|
1577
1593
|
mutation UninstallPackage($id: ID!) {
|
|
1578
1594
|
uninstallPackage(id: $id)
|
|
1579
1595
|
}
|
|
@@ -1586,6 +1602,6 @@ e`
|
|
|
1586
1602
|
}
|
|
1587
1603
|
${n}`;
|
|
1588
1604
|
//#endregion
|
|
1589
|
-
export { a as CreateA2ARegistryEntryDocument, A as CreateBotlitLlmProviderDocument, l as CreateBucketDocument, h as CreateChannelConnectorDocument, v as CreateChannelRouteDocument, S as CreateExecutionDocument, E as CreateKnowledgeBaseDocument, L as CreateMcpConnectionDocument,
|
|
1605
|
+
export { a as CreateA2ARegistryEntryDocument, A as CreateBotlitLlmProviderDocument, l as CreateBucketDocument, h as CreateChannelConnectorDocument, v as CreateChannelRouteDocument, S as CreateExecutionDocument, E as CreateKnowledgeBaseDocument, L as CreateMcpConnectionDocument, U as CreatePolicyDocument, J as CreatePromptTemplateDocument, te as CreateRetrievalProfileDocument, oe as CreateSkillDocument, s as DeleteA2ARegistryEntryDocument, d as DeleteBucketDocument, _ as DeleteChannelConnectorDocument, y as DeleteChannelRouteDocument, z as DeleteMcpConnectionDocument, G as DeletePolicyDocument, X as DeletePromptTemplateDocument, re as DeleteRetrievalProfileDocument, ce as DeleteSkillDocument, r as GetA2ARegistryEntryDocument, f as GetChannelConnectorDocument, b as GetExecutionDocument, w as GetKnowledgeBaseDocument, N as GetMcpConnectionDocument, V as GetPolicyDocument, K as GetPromptTemplateDocument, Q as GetRetrievalProfileDocument, ie as GetSkillDocument, le as GetStorePackageBySlugDocument, fe as InstallPackageDocument, i as ListA2ARegistryEntriesDocument, c as ListBucketsDocument, p as ListChannelConnectorsDocument, m as ListChannelRoutesDocument, x as ListExecutionsDocument, de as ListInstalledPackagesDocument, C as ListKnowledgeBasesDocument, T as ListKnowledgeDocumentsDocument, M as ListLlmModelsDocument, k as ListLlmProvidersDocument, P as ListMcpConnectionsDocument, I as ListMcpResourcesDocument, F as ListMcpToolsDocument, H as ListPoliciesDocument, q as ListPromptTemplatesDocument, $ as ListRetrievalProfilesDocument, ae as ListSkillsDocument, ue as ListStorePackagesDocument, O as RebuildKnowledgeBaseIndexDocument, Z as RenderPromptTemplateDocument, ee as TestMcpConnectionDocument, me as UninstallPackageDocument, o as UpdateA2ARegistryEntryDocument, u as UpdateBucketDocument, g as UpdateChannelConnectorDocument, pe as UpdateInstalledPackageDocument, D as UpdateKnowledgeBaseDocument, j as UpdateLlmProviderDocument, R as UpdateMcpConnectionDocument, B as UpdateMcpToolDocument, W as UpdatePolicyDocument, Y as UpdatePromptTemplateDocument, ne as UpdateRetrievalProfileDocument, se as UpdateSkillDocument };
|
|
1590
1606
|
|
|
1591
1607
|
//# sourceMappingURL=wspace-operations.js.map
|