@inkeep/agents-manage-ui 0.26.0 → 0.26.2
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/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
- package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +115 -115
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +15 -15
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/190.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2107.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2411.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2804.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3067.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3228.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3468.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4376.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4488.js +196 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4558.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4608.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4629.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4775.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{6426.js → 5013.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5600.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6295.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6495.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6757.js +14 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6786.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7711.js +11 -11
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8876.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-41037a3262960f92.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{16631-6020bdaf3d69b1d9.js → 16631-4a330f0eb85bd16e.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/25051-60133bfb6688ca68.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{95926-f6acf9933512734b.js → 27747-c0d04833f4851356.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/3568-ccdec1b6e9a2217f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/44341-459871afa12cd37c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{70442-94aea0f6c1033fb3.js → 57196-1f7592bb989976d2.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/63736-40bd21fac907cb54.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/6974-16087027359b6d00.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{72652-6d8231193d77f28d.js → 72652-6e31c6f0bd7a749e.js} +5 -5
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{88831-cc7c54f946c90858.js → 88831-184f3ffcba8295bb.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{22092-5269a70e49e3af8f.js → 94167-e9e2c910cda50b04.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-f374bc0542d9dbbb.js → page-349cc15b60e33d67.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-9c835eb7f0df9a84.js → page-1ee3fe9fe777b85a.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-93a80dceb493af14.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-0c8de55640a596d8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-fced6e7495cd5e63.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-80d7c90f118c90ea.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-a4975b62e8371f80.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-1114ce74bb17d1b5.js → page-80a315c374bdfde2.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-e7ab8b5e8a7a7113.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-57fec45cde97c613.js → page-8c8a8971a2436cff.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-b116c3e53afda314.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-c755c1479d27041f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-0ee79a72954c4def.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-67505a9888f7c31c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-48f8bb52dcf4374b.js → page-9a7af8be7bd5aaa0.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-f3069e141dc0cf37.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-3278140eed942315.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-c7a8266b7316091f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-f15c5bff0f71f796.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-1275a6cf1a6b8891.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-f8c4f9ed89402fd7.js → page-89ed0ab40a5bd2b4.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-61aed4f7402f2cc7.js → page-8bc6f211cc366345.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-be51c3c184753a55.js → page-78ee214eed9eb4ef.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-7abd4edcd4a9ae2c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-0c509f0a4b20f8d2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-28fc047c1f42a3a1.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-5f0cadd56b24dfab.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{d834c995-72666c5916d3b86e.js → d834c995-5d602f9f843afec0.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/931594c58db54400.css +1 -0
- package/.next/standalone/agents-manage-ui/package.json +1 -1
- package/.next/standalone/packages/agents-core/package.json +1 -1
- package/package.json +4 -4
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.tsx +4 -4
- package/src/components/agent/sidepane/nodes/function-tool-node-editor.tsx +28 -25
- package/src/components/api-keys/api-key-display.tsx +1 -1
- package/src/components/api-keys/form/api-key-form.tsx +1 -1
- package/src/components/api-keys/form/api-key-update-form.tsx +1 -1
- package/src/components/artifact-components/form/artifact-component-form.tsx +1 -1
- package/src/components/credentials/views/edit-credential-form.tsx +1 -1
- package/src/components/credentials/views/generic-auth-form.tsx +6 -5
- package/src/components/credentials/views/nango-providers-grid.tsx +1 -13
- package/src/components/data-components/form/data-component-form.tsx +1 -1
- package/src/components/data-components/preview/component-preview-generator.tsx +70 -53
- package/src/components/mcp-servers/form/mcp-server-form.tsx +103 -103
- package/src/components/mcp-servers/selection/mcp-server-selection.tsx +1 -1
- package/src/components/ui/sidebar.tsx +1 -1
- package/src/hooks/use-nango-connect.ts +1 -1
- package/src/lib/actions/tools.ts +23 -0
- package/src/lib/data/prebuilt-mcp-servers.ts +12 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2219.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3569.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6035.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6309.js +0 -184
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6494.js +0 -13
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7307.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7925.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7990.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8469.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8631.js +0 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-e897defc4ea6529d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/28161-8907a0ddd57c9725.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/33506-c3c255ef1ca5dbce.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/35025-83835a157669ac8e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/37775-7406a92cbd39daef.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/71558-7b6ec11458389227.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-0a1adfa13c7f559b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-c149877a076c2277.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-22c17b18ea6a43de.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-f3cc3cca0cbfb058.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-8c7ed627ba679f2e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-37bd92c0b92a9f16.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-e010cad0edd989d0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-36d9cc0e7bde71f1.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-ac7e63283e4301d5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-6da4e0dc3c76645f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-e04dbf9bb1ff63aa.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-16599a69b42e6e0a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-3569c752ba7f4068.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-b7ac4ee349ce6a8f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-b8b3a81226b74006.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-9d4fe2c46f1ea437.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-01f6ae3b2b7f0aa4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-92b7376321fecd2b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-fb3d1f647cbd8e0e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/40728d39bb342f02.css +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{1yCVhZ6o1ekGgXPCq_w7f → s5gi5htEgmtgz62EelVZG}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{1yCVhZ6o1ekGgXPCq_w7f → s5gi5htEgmtgz62EelVZG}/_ssgManifest.js +0 -0
|
@@ -113,7 +113,7 @@ export function GenericAuthForm({
|
|
|
113
113
|
|
|
114
114
|
const renderField = (field: FieldConfig) => {
|
|
115
115
|
const isPrivateKey = field.key === 'private_key';
|
|
116
|
-
const label =
|
|
116
|
+
const label = field.label;
|
|
117
117
|
|
|
118
118
|
if (field.component === 'textarea') {
|
|
119
119
|
return (
|
|
@@ -122,6 +122,7 @@ export function GenericAuthForm({
|
|
|
122
122
|
control={form.control}
|
|
123
123
|
name={field.key}
|
|
124
124
|
label={label}
|
|
125
|
+
isRequired={field.required}
|
|
125
126
|
placeholder={field.placeholder}
|
|
126
127
|
className={isPrivateKey ? 'font-mono text-sm min-h-[120px]' : 'min-h-[80px]'}
|
|
127
128
|
/>
|
|
@@ -136,6 +137,7 @@ export function GenericAuthForm({
|
|
|
136
137
|
control={form.control}
|
|
137
138
|
name={field.key}
|
|
138
139
|
label={label}
|
|
140
|
+
isRequired={field.required}
|
|
139
141
|
type={field.type}
|
|
140
142
|
placeholder={field.placeholder}
|
|
141
143
|
disabled={loading}
|
|
@@ -146,7 +148,7 @@ export function GenericAuthForm({
|
|
|
146
148
|
};
|
|
147
149
|
|
|
148
150
|
const renderSection = (section: FormSection, index: number) => (
|
|
149
|
-
<div key={index} className="space-y-
|
|
151
|
+
<div key={index} className="space-y-8">
|
|
150
152
|
{section.title && (
|
|
151
153
|
<div>
|
|
152
154
|
<h3 className="text-lg font-medium">{section.title}</h3>
|
|
@@ -155,7 +157,6 @@ export function GenericAuthForm({
|
|
|
155
157
|
)}
|
|
156
158
|
</div>
|
|
157
159
|
)}
|
|
158
|
-
|
|
159
160
|
{section.fields.map(renderField)}
|
|
160
161
|
</div>
|
|
161
162
|
);
|
|
@@ -175,10 +176,10 @@ export function GenericAuthForm({
|
|
|
175
176
|
</div>
|
|
176
177
|
|
|
177
178
|
<Form {...form}>
|
|
178
|
-
<form onSubmit={form.handleSubmit(handleSubmit)} className="space-y-
|
|
179
|
+
<form onSubmit={form.handleSubmit(handleSubmit)} className="space-y-8">
|
|
179
180
|
{formConfig.sections.map(renderSection)}
|
|
180
181
|
|
|
181
|
-
<div className="flex gap-3
|
|
182
|
+
<div className="flex gap-3">
|
|
182
183
|
<Button type="submit" disabled={loading}>
|
|
183
184
|
{loading ? 'Creating Credential...' : 'Create Credential'}
|
|
184
185
|
</Button>
|
|
@@ -15,10 +15,9 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/comp
|
|
|
15
15
|
|
|
16
16
|
interface NangoProvidersGridProps {
|
|
17
17
|
providers: ApiProvider[];
|
|
18
|
-
error: string | null;
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
export function NangoProvidersGrid({ providers
|
|
20
|
+
export function NangoProvidersGrid({ providers }: NangoProvidersGridProps) {
|
|
22
21
|
const [searchQuery, setSearchQuery] = useState('');
|
|
23
22
|
const { tenantId, projectId } = useParams<{
|
|
24
23
|
tenantId: string;
|
|
@@ -85,17 +84,6 @@ export function NangoProvidersGrid({ providers, error }: NangoProvidersGridProps
|
|
|
85
84
|
return providersWithSearchText.filter((provider) => provider.searchText.includes(query));
|
|
86
85
|
}, [providersWithSearchText, searchQuery]);
|
|
87
86
|
|
|
88
|
-
if (error) {
|
|
89
|
-
return (
|
|
90
|
-
<div className="text-center p-8">
|
|
91
|
-
<p className="text-destructive">{error}</p>
|
|
92
|
-
<Button variant="outline" onClick={() => window.location.reload()} className="mt-4">
|
|
93
|
-
Try Again
|
|
94
|
-
</Button>
|
|
95
|
-
</div>
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
87
|
return (
|
|
100
88
|
<div className="space-y-6">
|
|
101
89
|
{/* Search bar */}
|
|
@@ -16,6 +16,15 @@ import { Textarea } from '@/components/ui/textarea';
|
|
|
16
16
|
import { updateDataComponent } from '@/lib/api/data-components';
|
|
17
17
|
import { DynamicComponentRenderer } from './dynamic-component-renderer';
|
|
18
18
|
|
|
19
|
+
const StyledTabsTrigger = (props: React.ComponentProps<typeof TabsTrigger>) => {
|
|
20
|
+
return (
|
|
21
|
+
<TabsTrigger
|
|
22
|
+
{...props}
|
|
23
|
+
className="bg-transparent data-[state=active]:border-primary dark:data-[state=active]:border-primary h-full rounded-none border-0 border-b-2 border-transparent data-[state=active]:shadow-none data-[state=active]:text-primary data-[state=active]:bg-transparent uppercase font-mono text-xs mt-0.5 pt-2"
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
27
|
+
|
|
19
28
|
interface ComponentPreviewGeneratorProps {
|
|
20
29
|
tenantId: string;
|
|
21
30
|
projectId: string;
|
|
@@ -166,15 +175,20 @@ export function ComponentPreviewGenerator({
|
|
|
166
175
|
return (
|
|
167
176
|
<div className="space-y-4">
|
|
168
177
|
<div className="flex items-center justify-between">
|
|
169
|
-
<div>
|
|
170
|
-
<h3 className="text-
|
|
178
|
+
<div className="space-y-2">
|
|
179
|
+
<h3 className="text-md font-medium">Component Preview</h3>
|
|
171
180
|
<p className="text-sm text-muted-foreground">
|
|
172
|
-
Generate a React/Tailwind component based on your schema
|
|
181
|
+
Generate a React/Tailwind component based on your schema.
|
|
173
182
|
</p>
|
|
174
183
|
</div>
|
|
175
184
|
<div className="flex gap-2">
|
|
176
185
|
{!hasPreview && (
|
|
177
|
-
<Button
|
|
186
|
+
<Button
|
|
187
|
+
onClick={() => generatePreview()}
|
|
188
|
+
disabled={isGenerating}
|
|
189
|
+
size="sm"
|
|
190
|
+
className="gap-2"
|
|
191
|
+
>
|
|
178
192
|
{isGenerating ? (
|
|
179
193
|
<>
|
|
180
194
|
<Loader2 className="h-4 w-4 animate-spin" />
|
|
@@ -192,7 +206,12 @@ export function ComponentPreviewGenerator({
|
|
|
192
206
|
<>
|
|
193
207
|
<Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen}>
|
|
194
208
|
<PopoverTrigger asChild>
|
|
195
|
-
<Button
|
|
209
|
+
<Button
|
|
210
|
+
variant="outline"
|
|
211
|
+
size="sm"
|
|
212
|
+
disabled={isDeleting || isGenerating}
|
|
213
|
+
className="gap-2 font-mono uppercase"
|
|
214
|
+
>
|
|
196
215
|
{isGenerating ? (
|
|
197
216
|
<>
|
|
198
217
|
<Loader2 className="h-4 w-4 animate-spin" />
|
|
@@ -221,28 +240,27 @@ export function ComponentPreviewGenerator({
|
|
|
221
240
|
className="mt-2 min-h-[100px]"
|
|
222
241
|
/>
|
|
223
242
|
</div>
|
|
224
|
-
<div className="flex gap-2">
|
|
243
|
+
<div className="flex justify-end gap-2">
|
|
225
244
|
<Button
|
|
226
245
|
size="sm"
|
|
227
|
-
|
|
246
|
+
variant="outline"
|
|
247
|
+
onClick={() => {
|
|
228
248
|
setIsPopoverOpen(false);
|
|
229
|
-
await generatePreview(regenerateInstructions || undefined);
|
|
230
249
|
setRegenerateInstructions('');
|
|
231
250
|
}}
|
|
232
|
-
disabled={isGenerating}
|
|
233
|
-
className="flex-1"
|
|
234
251
|
>
|
|
235
|
-
|
|
252
|
+
Cancel
|
|
236
253
|
</Button>
|
|
237
254
|
<Button
|
|
238
255
|
size="sm"
|
|
239
|
-
|
|
240
|
-
onClick={() => {
|
|
256
|
+
onClick={async () => {
|
|
241
257
|
setIsPopoverOpen(false);
|
|
258
|
+
await generatePreview(regenerateInstructions || undefined);
|
|
242
259
|
setRegenerateInstructions('');
|
|
243
260
|
}}
|
|
261
|
+
disabled={isGenerating}
|
|
244
262
|
>
|
|
245
|
-
|
|
263
|
+
{regenerateInstructions ? 'Apply Changes' : 'Regenerate'}
|
|
246
264
|
</Button>
|
|
247
265
|
</div>
|
|
248
266
|
</div>
|
|
@@ -267,58 +285,57 @@ export function ComponentPreviewGenerator({
|
|
|
267
285
|
)}
|
|
268
286
|
</div>
|
|
269
287
|
</div>
|
|
270
|
-
|
|
271
288
|
{isGenerating && streamingCode && (
|
|
272
289
|
<Streamdown
|
|
273
290
|
isAnimating
|
|
274
291
|
className="[&_[data-code-block-header=true]]:hidden [&_pre]:bg-muted/40!"
|
|
275
292
|
>{`\`\`\`jsx\n${streamingCode}\`\`\``}</Streamdown>
|
|
276
293
|
)}
|
|
277
|
-
|
|
278
294
|
{isGenerating && !streamingCode && (
|
|
279
295
|
<Card className="p-6">
|
|
280
|
-
<div className="flex flex-
|
|
281
|
-
<Loader2 className="h-
|
|
282
|
-
<p className="text-sm text-muted-foreground">Generating component preview...</p>
|
|
296
|
+
<div className="flex flex-row items-center justify-center gap-2">
|
|
297
|
+
<Loader2 className="h-4 w-4 animate-spin text-muted-foreground/50" />
|
|
298
|
+
<p className="text-sm text-muted-foreground/70">Generating component preview...</p>
|
|
283
299
|
</div>
|
|
284
300
|
</Card>
|
|
285
301
|
)}
|
|
286
|
-
|
|
287
302
|
{hasPreview && !isGenerating && isComplete && preview && (
|
|
288
|
-
<
|
|
289
|
-
<
|
|
290
|
-
<
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
<Card className="p-6">
|
|
296
|
-
<DynamicComponentRenderer code={previewCode} props={previewData} />
|
|
297
|
-
</Card>
|
|
298
|
-
</TabsContent>
|
|
299
|
-
<TabsContent value="code">
|
|
300
|
-
<CodeEditor
|
|
301
|
-
value={previewCode}
|
|
302
|
-
onChange={(newCode) => {
|
|
303
|
-
if (!preview) return;
|
|
304
|
-
const updatedPreview = { ...preview, code: newCode };
|
|
305
|
-
setPreview(updatedPreview);
|
|
306
|
-
onPreviewChanged?.(updatedPreview);
|
|
307
|
-
}}
|
|
308
|
-
language="jsx"
|
|
309
|
-
className="max-h-[500px]"
|
|
310
|
-
/>
|
|
311
|
-
</TabsContent>
|
|
312
|
-
<TabsContent value="data">
|
|
313
|
-
<JsonEditor
|
|
314
|
-
value={stringifiedData}
|
|
315
|
-
onChange={handleDataChange}
|
|
316
|
-
className="max-h-[500px]"
|
|
317
|
-
/>
|
|
318
|
-
</TabsContent>
|
|
319
|
-
</Tabs>
|
|
320
|
-
)}
|
|
303
|
+
<Card className="px-2 py-4 pt-0">
|
|
304
|
+
<Tabs defaultValue="preview" className="w-full">
|
|
305
|
+
<TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-2">
|
|
306
|
+
<StyledTabsTrigger value="preview">Preview</StyledTabsTrigger>
|
|
307
|
+
<StyledTabsTrigger value="code">Code</StyledTabsTrigger>
|
|
308
|
+
<StyledTabsTrigger value="data">Sample Data</StyledTabsTrigger>
|
|
309
|
+
</TabsList>
|
|
321
310
|
|
|
311
|
+
<TabsContent value="preview">
|
|
312
|
+
<div className="p-4">
|
|
313
|
+
<DynamicComponentRenderer code={previewCode} props={previewData} />
|
|
314
|
+
</div>
|
|
315
|
+
</TabsContent>
|
|
316
|
+
<TabsContent value="code">
|
|
317
|
+
<CodeEditor
|
|
318
|
+
value={previewCode}
|
|
319
|
+
onChange={(newCode) => {
|
|
320
|
+
if (!preview) return;
|
|
321
|
+
const updatedPreview = { ...preview, code: newCode };
|
|
322
|
+
setPreview(updatedPreview);
|
|
323
|
+
onPreviewChanged?.(updatedPreview);
|
|
324
|
+
}}
|
|
325
|
+
language="jsx"
|
|
326
|
+
className="max-h-[500px] border-0 shadow-none"
|
|
327
|
+
/>
|
|
328
|
+
</TabsContent>
|
|
329
|
+
<TabsContent value="data">
|
|
330
|
+
<JsonEditor
|
|
331
|
+
value={stringifiedData}
|
|
332
|
+
onChange={handleDataChange}
|
|
333
|
+
className="max-h-[500px] border-0 shadow-none"
|
|
334
|
+
/>
|
|
335
|
+
</TabsContent>
|
|
336
|
+
</Tabs>
|
|
337
|
+
</Card>
|
|
338
|
+
)}
|
|
322
339
|
{!hasPreview && !isGenerating && !isComplete && (
|
|
323
340
|
<InfoCard>
|
|
324
341
|
<p className="text-sm text-muted-foreground">No preview generated</p>
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { zodResolver } from '@hookform/resolvers/zod';
|
|
4
|
-
import {
|
|
5
|
-
import { detectAuthenticationRequired, MCPTransportType } from '@inkeep/agents-core/client-exports';
|
|
4
|
+
import { MCPTransportType } from '@inkeep/agents-core/client-exports';
|
|
6
5
|
import { useRouter } from 'next/navigation';
|
|
7
6
|
import { useState } from 'react';
|
|
8
7
|
import { useForm } from 'react-hook-form';
|
|
@@ -15,10 +14,11 @@ import { Dialog, DialogTrigger } from '@/components/ui/dialog';
|
|
|
15
14
|
import { Form } from '@/components/ui/form';
|
|
16
15
|
import { InfoCard } from '@/components/ui/info-card';
|
|
17
16
|
import { useOAuthLogin } from '@/hooks/use-oauth-login';
|
|
18
|
-
import { deleteToolAction } from '@/lib/actions/tools';
|
|
17
|
+
import { deleteToolAction, detectOAuthServerAction } from '@/lib/actions/tools';
|
|
19
18
|
import type { Credential } from '@/lib/api/credentials';
|
|
20
19
|
import { createMCPTool, updateMCPTool } from '@/lib/api/tools';
|
|
21
20
|
import type { MCPTool } from '@/lib/types/tools';
|
|
21
|
+
import { generateId } from '@/lib/utils/id-utils';
|
|
22
22
|
import { ActiveToolsSelector } from './active-tools-selector';
|
|
23
23
|
import { type MCPToolFormData, mcpToolSchema } from './validation';
|
|
24
24
|
|
|
@@ -88,14 +88,14 @@ export function MCPServerForm({
|
|
|
88
88
|
try {
|
|
89
89
|
// handle oauth login
|
|
90
90
|
if (data.credentialReferenceId === 'oauth') {
|
|
91
|
-
const
|
|
91
|
+
const result = await detectOAuthServerAction(data.config.mcp.server.url);
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
93
|
+
if (!result.success) {
|
|
94
|
+
toast.error(result.error || 'Failed to detect OAuth support');
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
97
|
|
|
98
|
-
if (!
|
|
98
|
+
if (!result.data) {
|
|
99
99
|
toast.error(
|
|
100
100
|
'This MCP server does not support OAuth authentication. Please select a different credential.'
|
|
101
101
|
);
|
|
@@ -103,7 +103,7 @@ export function MCPServerForm({
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
const mcpToolData = {
|
|
106
|
-
id:
|
|
106
|
+
id: generateId(),
|
|
107
107
|
name: data.name,
|
|
108
108
|
config: {
|
|
109
109
|
type: 'mcp' as const,
|
|
@@ -165,7 +165,7 @@ export function MCPServerForm({
|
|
|
165
165
|
|
|
166
166
|
const handleDelete = async () => {
|
|
167
167
|
if (!tool) return;
|
|
168
|
-
|
|
168
|
+
|
|
169
169
|
setIsDeleting(true);
|
|
170
170
|
try {
|
|
171
171
|
// Don't revalidate to avoid Next.js trying to refetch the deleted resource on current page
|
|
@@ -186,107 +186,107 @@ export function MCPServerForm({
|
|
|
186
186
|
<Dialog open={isDeleteOpen} onOpenChange={setIsDeleteOpen}>
|
|
187
187
|
<Form {...form}>
|
|
188
188
|
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
<GenericSelect
|
|
204
|
-
control={form.control}
|
|
205
|
-
selectTriggerClassName="w-full"
|
|
206
|
-
name="config.mcp.transport.type"
|
|
207
|
-
label="Transport type"
|
|
208
|
-
placeholder="Select transport type"
|
|
209
|
-
options={[
|
|
210
|
-
{
|
|
211
|
-
value: MCPTransportType.streamableHttp,
|
|
212
|
-
label: 'Streamable HTTP',
|
|
213
|
-
},
|
|
214
|
-
{ value: MCPTransportType.sse, label: 'Server-Sent Events (SSE)' },
|
|
215
|
-
]}
|
|
216
|
-
/>
|
|
217
|
-
<GenericInput
|
|
218
|
-
control={form.control}
|
|
219
|
-
name="imageUrl"
|
|
220
|
-
label="Image URL (optional)"
|
|
221
|
-
placeholder="https://example.com/icon.png or data:image/png;base64,..."
|
|
222
|
-
/>
|
|
223
|
-
|
|
224
|
-
<div className="space-y-3">
|
|
189
|
+
<GenericInput
|
|
190
|
+
control={form.control}
|
|
191
|
+
name="name"
|
|
192
|
+
label="Name"
|
|
193
|
+
placeholder="MCP server"
|
|
194
|
+
isRequired
|
|
195
|
+
/>
|
|
196
|
+
<GenericInput
|
|
197
|
+
control={form.control}
|
|
198
|
+
name="config.mcp.server.url"
|
|
199
|
+
label="URL"
|
|
200
|
+
placeholder="https://api.example.com/mcp"
|
|
201
|
+
isRequired
|
|
202
|
+
/>
|
|
225
203
|
<GenericSelect
|
|
226
204
|
control={form.control}
|
|
227
205
|
selectTriggerClassName="w-full"
|
|
228
|
-
name="
|
|
229
|
-
label="
|
|
230
|
-
placeholder="Select
|
|
206
|
+
name="config.mcp.transport.type"
|
|
207
|
+
label="Transport type"
|
|
208
|
+
placeholder="Select transport type"
|
|
231
209
|
options={[
|
|
232
|
-
{
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
})),
|
|
210
|
+
{
|
|
211
|
+
value: MCPTransportType.streamableHttp,
|
|
212
|
+
label: 'Streamable HTTP',
|
|
213
|
+
},
|
|
214
|
+
{ value: MCPTransportType.sse, label: 'Server-Sent Events (SSE)' },
|
|
238
215
|
]}
|
|
239
216
|
/>
|
|
240
|
-
<
|
|
241
|
-
<div className="space-y-2">
|
|
242
|
-
<p>
|
|
243
|
-
Select <code className="bg-background px-1.5 py-0.5 rounded border">OAuth</code> to
|
|
244
|
-
authenticate with the MCP server's OAuth flow, which will start after you click
|
|
245
|
-
"Create".
|
|
246
|
-
</p>
|
|
247
|
-
<p>
|
|
248
|
-
Select{' '}
|
|
249
|
-
<code className="bg-background px-1.5 py-0.5 rounded border">
|
|
250
|
-
No Authentication
|
|
251
|
-
</code>{' '}
|
|
252
|
-
to skip authentication (i.e. none required or add a credential later).
|
|
253
|
-
</p>
|
|
254
|
-
<p>Or select from the existing credentials you have already created.</p>
|
|
255
|
-
</div>
|
|
256
|
-
</InfoCard>
|
|
257
|
-
</div>
|
|
258
|
-
|
|
259
|
-
{mode === 'update' && (
|
|
260
|
-
<ActiveToolsSelector
|
|
217
|
+
<GenericInput
|
|
261
218
|
control={form.control}
|
|
262
|
-
name="
|
|
263
|
-
label="
|
|
264
|
-
|
|
265
|
-
description="Select which tools should be enabled for this MCP server"
|
|
219
|
+
name="imageUrl"
|
|
220
|
+
label="Image URL (optional)"
|
|
221
|
+
placeholder="https://example.com/icon.png or data:image/png;base64,..."
|
|
266
222
|
/>
|
|
267
|
-
)}
|
|
268
223
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
224
|
+
<div className="space-y-3">
|
|
225
|
+
<GenericSelect
|
|
226
|
+
control={form.control}
|
|
227
|
+
selectTriggerClassName="w-full"
|
|
228
|
+
name="credentialReferenceId"
|
|
229
|
+
label="Credential"
|
|
230
|
+
placeholder="Select a credential"
|
|
231
|
+
options={[
|
|
232
|
+
{ value: 'oauth', label: 'OAuth' },
|
|
233
|
+
{ value: 'none', label: 'No Authentication' },
|
|
234
|
+
...credentials.map((credential) => ({
|
|
235
|
+
value: credential.id,
|
|
236
|
+
label: credential.id,
|
|
237
|
+
})),
|
|
238
|
+
]}
|
|
239
|
+
/>
|
|
240
|
+
<InfoCard title="How this works">
|
|
241
|
+
<div className="space-y-2">
|
|
242
|
+
<p>
|
|
243
|
+
Select <code className="bg-background px-1.5 py-0.5 rounded border">OAuth</code>{' '}
|
|
244
|
+
to authenticate with the MCP server's OAuth flow, which will start after you click
|
|
245
|
+
"Create".
|
|
246
|
+
</p>
|
|
247
|
+
<p>
|
|
248
|
+
Select{' '}
|
|
249
|
+
<code className="bg-background px-1.5 py-0.5 rounded border">
|
|
250
|
+
No Authentication
|
|
251
|
+
</code>{' '}
|
|
252
|
+
to skip authentication (i.e. none required or add a credential later).
|
|
253
|
+
</p>
|
|
254
|
+
<p>Or select from the existing credentials you have already created.</p>
|
|
255
|
+
</div>
|
|
256
|
+
</InfoCard>
|
|
257
|
+
</div>
|
|
258
|
+
|
|
259
|
+
{mode === 'update' && (
|
|
260
|
+
<ActiveToolsSelector
|
|
261
|
+
control={form.control}
|
|
262
|
+
name="config.mcp.toolsConfig"
|
|
263
|
+
label="Tools"
|
|
264
|
+
availableTools={tool?.availableTools || []}
|
|
265
|
+
description="Select which tools should be enabled for this MCP server"
|
|
266
|
+
/>
|
|
279
267
|
)}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
268
|
+
|
|
269
|
+
<div className="flex w-full justify-between">
|
|
270
|
+
<Button type="submit" disabled={isSubmitting}>
|
|
271
|
+
{mode === 'update' ? 'Save' : 'Create'}
|
|
272
|
+
</Button>
|
|
273
|
+
{mode === 'update' && tool && (
|
|
274
|
+
<DialogTrigger asChild>
|
|
275
|
+
<Button type="button" variant="destructive-outline">
|
|
276
|
+
Delete Server
|
|
277
|
+
</Button>
|
|
278
|
+
</DialogTrigger>
|
|
279
|
+
)}
|
|
280
|
+
</div>
|
|
281
|
+
</form>
|
|
282
|
+
</Form>
|
|
283
|
+
{isDeleteOpen && tool && (
|
|
284
|
+
<DeleteConfirmation
|
|
285
|
+
itemName={tool.name || 'this MCP server'}
|
|
286
|
+
isSubmitting={isDeleting}
|
|
287
|
+
onDelete={handleDelete}
|
|
288
|
+
/>
|
|
289
|
+
)}
|
|
290
|
+
</Dialog>
|
|
291
291
|
);
|
|
292
292
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { generateId } from '@/lib/utils/id-utils';
|
|
4
3
|
import { useRouter } from 'next/navigation';
|
|
5
4
|
import { useState } from 'react';
|
|
6
5
|
import { toast } from 'sonner';
|
|
@@ -12,6 +11,7 @@ import { useOAuthLogin } from '@/hooks/use-oauth-login';
|
|
|
12
11
|
import type { Credential } from '@/lib/api/credentials';
|
|
13
12
|
import { createMCPTool } from '@/lib/api/tools';
|
|
14
13
|
import type { PrebuiltMCPServer } from '@/lib/data/prebuilt-mcp-servers';
|
|
14
|
+
import { generateId } from '@/lib/utils/id-utils';
|
|
15
15
|
import { PrebuiltServersGrid } from './prebuilt-servers-grid';
|
|
16
16
|
|
|
17
17
|
interface MCPServerSelectionProps {
|
|
@@ -356,7 +356,7 @@ function SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
356
356
|
data-slot="sidebar-content"
|
|
357
357
|
data-sidebar="content"
|
|
358
358
|
className={cn(
|
|
359
|
-
'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',
|
|
359
|
+
'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent',
|
|
360
360
|
className
|
|
361
361
|
)}
|
|
362
362
|
{...props}
|
|
@@ -68,7 +68,7 @@ export function useNangoConnect() {
|
|
|
68
68
|
return result;
|
|
69
69
|
} catch (error) {
|
|
70
70
|
if (error instanceof Error) {
|
|
71
|
-
throw new Error(`
|
|
71
|
+
throw new Error(`Authentication failed: ${error.message}`);
|
|
72
72
|
}
|
|
73
73
|
throw error;
|
|
74
74
|
}
|
package/src/lib/actions/tools.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
'use server';
|
|
6
6
|
|
|
7
|
+
import { detectAuthenticationRequired } from '@inkeep/agents-core/client-exports';
|
|
7
8
|
import { revalidatePath } from 'next/cache';
|
|
8
9
|
import { deleteMCPTool, fetchMCPTools } from '../api/tools';
|
|
9
10
|
import { ApiError } from '../types/errors';
|
|
@@ -73,3 +74,25 @@ export async function deleteToolAction(
|
|
|
73
74
|
};
|
|
74
75
|
}
|
|
75
76
|
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Detect if an MCP server requires OAuth authentication
|
|
80
|
+
*/
|
|
81
|
+
export async function detectOAuthServerAction(serverUrl: string): Promise<ActionResult<boolean>> {
|
|
82
|
+
try {
|
|
83
|
+
const requiresAuth = await detectAuthenticationRequired({
|
|
84
|
+
serverUrl,
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
success: true,
|
|
89
|
+
data: requiresAuth,
|
|
90
|
+
};
|
|
91
|
+
} catch (error) {
|
|
92
|
+
return {
|
|
93
|
+
success: false,
|
|
94
|
+
error: error instanceof Error ? error.message : 'Failed to detect OAuth support',
|
|
95
|
+
code: 'oauth_detection_failed',
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -226,6 +226,12 @@ const getBaseMCPServers = (isDark: boolean): PrebuiltMCPServer[] => [
|
|
|
226
226
|
transport: MCPTransportType.streamableHttp,
|
|
227
227
|
imageUrl: 'https://www.prisma.io/docs/img/favicon.png',
|
|
228
228
|
},
|
|
229
|
+
{
|
|
230
|
+
id: 'ramp',
|
|
231
|
+
name: 'Ramp',
|
|
232
|
+
url: 'https://mcp.ramp.com/mcp',
|
|
233
|
+
transport: MCPTransportType.streamableHttp,
|
|
234
|
+
},
|
|
229
235
|
{
|
|
230
236
|
id: 'rube',
|
|
231
237
|
name: 'Rube',
|
|
@@ -275,6 +281,12 @@ const getBaseMCPServers = (isDark: boolean): PrebuiltMCPServer[] => [
|
|
|
275
281
|
transport: MCPTransportType.streamableHttp,
|
|
276
282
|
imageUrl: 'https://stytch.com/favicon.ico',
|
|
277
283
|
},
|
|
284
|
+
{
|
|
285
|
+
id: 'supabase',
|
|
286
|
+
name: 'Supabase',
|
|
287
|
+
url: 'https://mcp.supabase.com/mcp',
|
|
288
|
+
transport: MCPTransportType.streamableHttp,
|
|
289
|
+
},
|
|
278
290
|
{
|
|
279
291
|
id: 'telnyx',
|
|
280
292
|
name: 'Telnyx',
|