@inkeep/agents-manage-ui 0.22.11 → 0.23.0
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 +135 -126
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +13 -13
- 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 +2 -2
- 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.js.nft.json +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.js.nft.json +1 -1
- 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]/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 +1 -1
- 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 +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- 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 +8 -8
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js.nft.json +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 +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1674.js +3 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1735.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/174.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2263.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2437.js +7 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{6007.js → 4629.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4839.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{5922.js → 4999.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{7165.js → 5395.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5450.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5734.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{4177.js → 5831.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{4662.js → 7437.js} +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7714.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7848.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7988.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{6129.js → 7990.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9973.js +3 -0
- 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/1175-a9386e1195a4d8c5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-0f3bd90a602ad30b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1499-20f18a3858daee94.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/19317-031cfdbe64ae32fe.js +7 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-911f825fe8c207f2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/21635-09953f3f17f77ca4.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{23624-6eacc9668906f9e7.js → 37775-eeaab573593358e7.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/49717-c3caecdba1246d8f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{49858-ecb979ad338f8e90.js → 49858-7e18c65ea9efae5d.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/55244-84901b87c4a2322e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{60918-e760029d67c39984.js → 57912-eb70bb5c37117904.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/66030-6542a249844c5b64.js +20 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{58893-8a39b19b048120f0.js → 71134-8e178109c76d09fc.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/88211-4e7159211556d4e5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{64438-2c5f9dad5610028e.js → 92160-0e9ba9d3fc9f7a53.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/94834-069bed84e5ed469f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-eaa329dba90d4871.js → page-cf8f2bdb7a398f3b.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-acbe879896d74230.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-f208a7cd97ca4a18.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-ffa65b87c9e89814.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-d8f21c7d4d1f0ef5.js → page-b0dee2e07315a690.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-6b7ae2c0de022070.js → page-7b022ae14cc6f009.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-498862303609060b.js → page-5d43977fa39b9d09.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-6e3049b8e02b286e.js → page-31b4ed0109610720.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-fcfa4e76f5d01416.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-87bd7af117b8eaaf.js → page-671d77590f885d96.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/{page-e7da33aa8328ba70.js → page-7aa13f9f9e3ecd38.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-7f6f912f63407439.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-20e36d57eed3bf81.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-07db6760153791ce.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-999993785c893de0.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-fa678e7bc12be499.js → page-b52db9884e7955e1.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-3bd9a94596c3e487.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-efcf07e2a4c53d17.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-46c87c0a5dc7f704.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-3313972fd508f287.js → page-e28f06543dbd4077.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/{page-130484743447356a.js → page-d7f81fb8018ccb8f.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-f443a6af27e49307.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/{page-a8d46be97874f040.js → page-b1eb42d38c77a2fb.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-7f6263a3a992876c.js +1 -0
- package/.next/standalone/agents-manage-ui/package.json +4 -4
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/addepar.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/adobe-workfront.svg +5 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/adp-run.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/autotask.svg +11 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/avoma.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/bullhorn.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/clerk.svg +5 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/cursor.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/datacandy.svg +23 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/datto-rmm.svg +14 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/dayforce.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/fairing.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/fillout.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/float.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/folk.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/google-workspace-admin.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/heap.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/hover.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/instantly.svg +1 -1
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/itglue.svg +8 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/jazzhr.svg +20 -8
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/jobber.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/jobdiva.svg +24 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/jumpcloud.svg +4 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/kintone.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/mcp-dynamic.svg +36 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/microsoft-excel.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/pax8.svg +16 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/paycor.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/pipedream.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/private-api-bearer.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/recruitee.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/roller.svg +10 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/sellsy.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/skio.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/snapchat.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/snipe-it.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/tailscale.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/webex.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/yotpo.svg +1 -0
- package/.next/standalone/agents-manage-ui/public/assets/provider-icons/zoho-calendar.svg +1 -0
- package/.next/standalone/packages/agents-core/package.json +3 -3
- package/package.json +7 -7
- package/public/assets/provider-icons/addepar.svg +1 -0
- package/public/assets/provider-icons/adobe-workfront.svg +5 -0
- package/public/assets/provider-icons/adp-run.svg +1 -0
- package/public/assets/provider-icons/autotask.svg +11 -0
- package/public/assets/provider-icons/avoma.svg +1 -0
- package/public/assets/provider-icons/bullhorn.svg +1 -0
- package/public/assets/provider-icons/clerk.svg +5 -0
- package/public/assets/provider-icons/cursor.svg +1 -0
- package/public/assets/provider-icons/datacandy.svg +23 -0
- package/public/assets/provider-icons/datto-rmm.svg +14 -0
- package/public/assets/provider-icons/dayforce.svg +1 -0
- package/public/assets/provider-icons/fairing.svg +1 -0
- package/public/assets/provider-icons/fillout.svg +1 -0
- package/public/assets/provider-icons/float.svg +1 -0
- package/public/assets/provider-icons/folk.svg +1 -0
- package/public/assets/provider-icons/google-workspace-admin.svg +1 -0
- package/public/assets/provider-icons/heap.svg +1 -0
- package/public/assets/provider-icons/hover.svg +1 -0
- package/public/assets/provider-icons/instantly.svg +1 -1
- package/public/assets/provider-icons/itglue.svg +8 -0
- package/public/assets/provider-icons/jazzhr.svg +20 -8
- package/public/assets/provider-icons/jobber.svg +1 -0
- package/public/assets/provider-icons/jobdiva.svg +24 -0
- package/public/assets/provider-icons/jumpcloud.svg +4 -0
- package/public/assets/provider-icons/kintone.svg +1 -0
- package/public/assets/provider-icons/mcp-dynamic.svg +36 -0
- package/public/assets/provider-icons/microsoft-excel.svg +1 -0
- package/public/assets/provider-icons/pax8.svg +16 -0
- package/public/assets/provider-icons/paycor.svg +1 -0
- package/public/assets/provider-icons/pipedream.svg +1 -0
- package/public/assets/provider-icons/private-api-bearer.svg +1 -0
- package/public/assets/provider-icons/recruitee.svg +1 -0
- package/public/assets/provider-icons/roller.svg +10 -0
- package/public/assets/provider-icons/sellsy.svg +1 -0
- package/public/assets/provider-icons/skio.svg +1 -0
- package/public/assets/provider-icons/snapchat.svg +1 -0
- package/public/assets/provider-icons/snipe-it.svg +1 -0
- package/public/assets/provider-icons/tailscale.svg +1 -0
- package/public/assets/provider-icons/webex.svg +1 -0
- package/public/assets/provider-icons/yotpo.svg +1 -0
- package/public/assets/provider-icons/zoho-calendar.svg +1 -0
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/page.tsx +1 -1
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.tsx +3 -1
- package/src/app/[tenantId]/projects/[projectId]/credentials/page.tsx +12 -2
- package/src/components/agent/playground/chat-widget.tsx +1 -2
- package/src/components/credentials/credential-item.tsx +4 -4
- package/src/components/icons/provider-icon.tsx +17 -5
- package/src/components/mcp-servers/form/mcp-server-form.tsx +89 -16
- package/src/components/mcp-servers/selection/mcp-server-selection.tsx +1 -4
- package/src/components/mcp-servers/view-mcp-server-details.tsx +60 -32
- package/src/components/traces/timeline/timeline-wrapper.tsx +1 -1
- package/src/components/traces/traces-overview.tsx +1 -1
- package/src/hooks/use-nango-connect.ts +41 -2
- package/src/hooks/use-oauth-login.ts +199 -87
- package/src/lib/__tests__/provider-icons-sync.test.ts +47 -0
- package/src/lib/mcp-tools/nango.ts +7 -3
- package/src/lib/provider-icons.ts +610 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1040.js +0 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/272.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5797.js +0 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6212.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8124.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8762.js +0 -7
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8764.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9943.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1175-9259b947ca7c4ea8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/11847-5c70397d9c56a2e6.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-568379333edf0653.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/26154-3d8c754a1c657e74.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/26999-8c9c5e5ec54db482.js +0 -20
- package/.next/standalone/agents-manage-ui/.next/static/chunks/38249-f530c1a1527a3b8f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/62092-ae9394efd9c69e92.js +0 -7
- package/.next/standalone/agents-manage-ui/.next/static/chunks/68266-1f459b102467a36a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/68430-1140499bac28d9c1.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/92775-85a0732a5fe07d43.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-f8a7cad48c44798c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-f86b894a9a598760.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-6f51de616424c594.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-64e97334e48377c5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-850547d8687ba3be.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-971671d11f2e3e44.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-4a9720fe172c379b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-8ebed60fdc1a1a0e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-138db92933a30700.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-c9ecf7ebb6c93491.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-bf1c6af9f4dbdcd2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-745365ab9a0293b9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-d34e8072d8ae9c64.js +0 -1
- package/src/components/credentials/credentials-list.tsx +0 -36
- /package/.next/standalone/agents-manage-ui/.next/static/{E4B0sSy6IuTwgipmBgqq6 → 15IqxRY0y-hZsa9_h7Uol}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{E4B0sSy6IuTwgipmBgqq6 → 15IqxRY0y-hZsa9_h7Uol}/_ssgManifest.js +0 -0
|
@@ -135,7 +135,6 @@ export function ChatWidget({
|
|
|
135
135
|
chatActivities,
|
|
136
136
|
dataComponentLookup = {},
|
|
137
137
|
}: ChatWidgetProps) {
|
|
138
|
-
console.log('dataComponentLookup', dataComponentLookup);
|
|
139
138
|
const { PUBLIC_INKEEP_AGENTS_RUN_API_URL, PUBLIC_INKEEP_AGENTS_RUN_API_BYPASS_SECRET } =
|
|
140
139
|
useRuntimeConfig();
|
|
141
140
|
const stopPollingTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
@@ -268,7 +267,7 @@ export function ChatWidget({
|
|
|
268
267
|
{
|
|
269
268
|
get: (_, componentName) => {
|
|
270
269
|
const matchingComponent = Object.values(dataComponentLookup).find(
|
|
271
|
-
(component) => component.name === componentName
|
|
270
|
+
(component) => component.name === componentName && !!component.preview?.code
|
|
272
271
|
);
|
|
273
272
|
|
|
274
273
|
if (!matchingComponent) {
|
|
@@ -99,11 +99,11 @@ export function CredentialItem({
|
|
|
99
99
|
createdAt,
|
|
100
100
|
tenantId,
|
|
101
101
|
projectId,
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
}: {
|
|
103
|
+
id: Credential['id'];
|
|
104
|
+
createdAt: Credential['createdAt'];
|
|
104
105
|
tenantId: string;
|
|
105
106
|
projectId: string;
|
|
106
|
-
providerForIcon: string;
|
|
107
107
|
}) {
|
|
108
108
|
const linkPath = `/${tenantId}/projects/${projectId}/credentials/${id}`;
|
|
109
109
|
|
|
@@ -113,7 +113,7 @@ export function CredentialItem({
|
|
|
113
113
|
<ItemCardLink href={linkPath}>
|
|
114
114
|
<ItemCardTitle className="text-md">
|
|
115
115
|
<div className="flex items-center gap-3 min-w-0">
|
|
116
|
-
<ProviderIcon provider={
|
|
116
|
+
<ProviderIcon provider={id} size={24} className="flex-shrink-0" />
|
|
117
117
|
<span className="truncate">{id}</span>
|
|
118
118
|
</div>
|
|
119
119
|
</ItemCardTitle>
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import Image from 'next/image';
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import type { IconComponentProps } from '@/components/ui/svg-icon';
|
|
6
|
+
import { getProviderIcon } from '@/lib/provider-icons';
|
|
6
7
|
|
|
7
8
|
interface ProviderIconProps extends Omit<IconComponentProps, 'children'> {
|
|
8
9
|
provider: string;
|
|
@@ -16,11 +17,10 @@ interface ProviderIconProps extends Omit<IconComponentProps, 'children'> {
|
|
|
16
17
|
/**
|
|
17
18
|
* Get the local provider icon URL from assets
|
|
18
19
|
*/
|
|
19
|
-
const getLocalIconUrl = (provider: string): string => {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return `/assets/provider-icons/${normalizedProvider}.svg`;
|
|
20
|
+
const getLocalIconUrl = (provider: string): string | null => {
|
|
21
|
+
const iconName = getProviderIcon(provider);
|
|
22
|
+
if (!iconName) return null;
|
|
23
|
+
return `/assets/provider-icons/${iconName}.svg`;
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -56,6 +56,18 @@ export function ProviderIcon({
|
|
|
56
56
|
const [imageError, setImageError] = useState(false);
|
|
57
57
|
|
|
58
58
|
const iconUrl = getLocalIconUrl(provider);
|
|
59
|
+
|
|
60
|
+
// If no matching icon found, show fallback immediately
|
|
61
|
+
if (!iconUrl) {
|
|
62
|
+
return (
|
|
63
|
+
<div
|
|
64
|
+
className={`inline-flex items-center justify-center ${className || ''}`}
|
|
65
|
+
style={{ width: size, height: size }}
|
|
66
|
+
>
|
|
67
|
+
{fallback || createTextFallback(provider, size)}
|
|
68
|
+
</div>
|
|
69
|
+
);
|
|
70
|
+
}
|
|
59
71
|
|
|
60
72
|
return (
|
|
61
73
|
<div
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { zodResolver } from '@hookform/resolvers/zod';
|
|
4
|
-
import { MCPTransportType } from '@inkeep/agents-core/client-exports';
|
|
4
|
+
import { detectAuthenticationRequired, MCPTransportType } from '@inkeep/agents-core/client-exports';
|
|
5
5
|
import { nanoid } from 'nanoid';
|
|
6
6
|
import { useRouter } from 'next/navigation';
|
|
7
7
|
import { useForm } from 'react-hook-form';
|
|
@@ -10,6 +10,8 @@ import { GenericInput } from '@/components/form/generic-input';
|
|
|
10
10
|
import { GenericSelect } from '@/components/form/generic-select';
|
|
11
11
|
import { Button } from '@/components/ui/button';
|
|
12
12
|
import { Form } from '@/components/ui/form';
|
|
13
|
+
import { InfoCard } from '@/components/ui/info-card';
|
|
14
|
+
import { useOAuthLogin } from '@/hooks/use-oauth-login';
|
|
13
15
|
import type { Credential } from '@/lib/api/credentials';
|
|
14
16
|
import { createMCPTool, updateMCPTool } from '@/lib/api/tools';
|
|
15
17
|
import type { MCPTool } from '@/lib/types/tools';
|
|
@@ -40,7 +42,7 @@ const defaultValues: MCPToolFormData = {
|
|
|
40
42
|
},
|
|
41
43
|
},
|
|
42
44
|
imageUrl: '', // Initialize as empty string to avoid uncontrolled/controlled warning
|
|
43
|
-
credentialReferenceId: '
|
|
45
|
+
credentialReferenceId: 'oauth',
|
|
44
46
|
};
|
|
45
47
|
|
|
46
48
|
export function MCPServerForm({
|
|
@@ -61,6 +63,11 @@ export function MCPServerForm({
|
|
|
61
63
|
},
|
|
62
64
|
});
|
|
63
65
|
|
|
66
|
+
const { handleOAuthLogin } = useOAuthLogin({
|
|
67
|
+
tenantId,
|
|
68
|
+
projectId,
|
|
69
|
+
});
|
|
70
|
+
|
|
64
71
|
const { isSubmitting } = form.formState;
|
|
65
72
|
|
|
66
73
|
// Helper function to filter active tools against available tools
|
|
@@ -73,6 +80,51 @@ export function MCPServerForm({
|
|
|
73
80
|
|
|
74
81
|
const onSubmit = async (data: MCPToolFormData) => {
|
|
75
82
|
try {
|
|
83
|
+
// handle oauth login
|
|
84
|
+
if (data.credentialReferenceId === 'oauth') {
|
|
85
|
+
const toolId = nanoid();
|
|
86
|
+
|
|
87
|
+
const isAuthenticationRequired = await detectAuthenticationRequired({
|
|
88
|
+
serverUrl: data.config.mcp.server.url,
|
|
89
|
+
toolId,
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
if (!isAuthenticationRequired) {
|
|
93
|
+
toast.error(
|
|
94
|
+
'This MCP server does not support OAuth authentication. Please select a different credential.'
|
|
95
|
+
);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const mcpToolData = {
|
|
100
|
+
id: toolId,
|
|
101
|
+
name: data.name,
|
|
102
|
+
config: {
|
|
103
|
+
type: 'mcp' as const,
|
|
104
|
+
mcp: {
|
|
105
|
+
server: {
|
|
106
|
+
url: data.config.mcp.server.url,
|
|
107
|
+
},
|
|
108
|
+
transport: {
|
|
109
|
+
type: data.config.mcp.transport.type,
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
credentialReferenceId: null,
|
|
114
|
+
imageUrl: data.imageUrl,
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const newTool = await createMCPTool(tenantId, projectId, mcpToolData);
|
|
118
|
+
|
|
119
|
+
handleOAuthLogin({
|
|
120
|
+
toolId: newTool.id,
|
|
121
|
+
mcpServerUrl: data.config.mcp.server.url,
|
|
122
|
+
toolName: data.name,
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
76
128
|
// Transform form data to API format
|
|
77
129
|
const transformedData = {
|
|
78
130
|
...data,
|
|
@@ -142,20 +194,41 @@ export function MCPServerForm({
|
|
|
142
194
|
label="Image URL (optional)"
|
|
143
195
|
placeholder="https://example.com/icon.png or data:image/png;base64,..."
|
|
144
196
|
/>
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
value:
|
|
155
|
-
label:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
197
|
+
|
|
198
|
+
<div className="space-y-3">
|
|
199
|
+
<GenericSelect
|
|
200
|
+
control={form.control}
|
|
201
|
+
selectTriggerClassName="w-full"
|
|
202
|
+
name="credentialReferenceId"
|
|
203
|
+
label="Credential"
|
|
204
|
+
placeholder="Select a credential"
|
|
205
|
+
options={[
|
|
206
|
+
{ value: 'oauth', label: 'OAuth' },
|
|
207
|
+
{ value: 'none', label: 'No Authentication' },
|
|
208
|
+
...credentials.map((credential) => ({
|
|
209
|
+
value: credential.id,
|
|
210
|
+
label: credential.id,
|
|
211
|
+
})),
|
|
212
|
+
]}
|
|
213
|
+
/>
|
|
214
|
+
<InfoCard title="How this works">
|
|
215
|
+
<div className="space-y-2">
|
|
216
|
+
<p>
|
|
217
|
+
Select <code className="bg-background px-1.5 py-0.5 rounded border">OAuth</code> to
|
|
218
|
+
authenticate with the MCP server's OAuth flow, which will start after you click
|
|
219
|
+
"Create".
|
|
220
|
+
</p>
|
|
221
|
+
<p>
|
|
222
|
+
Select{' '}
|
|
223
|
+
<code className="bg-background px-1.5 py-0.5 rounded border">
|
|
224
|
+
No Authentication
|
|
225
|
+
</code>{' '}
|
|
226
|
+
to skip authentication (i.e. none required or add a credential later).
|
|
227
|
+
</p>
|
|
228
|
+
<p>Or select from the existing credentials you have already created.</p>
|
|
229
|
+
</div>
|
|
230
|
+
</InfoCard>
|
|
231
|
+
</div>
|
|
159
232
|
|
|
160
233
|
{mode === 'update' && (
|
|
161
234
|
<ActiveToolsSelector
|
|
@@ -31,9 +31,6 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
|
|
|
31
31
|
const { handleOAuthLogin } = useOAuthLogin({
|
|
32
32
|
tenantId,
|
|
33
33
|
projectId,
|
|
34
|
-
onError: () => {
|
|
35
|
-
setLoadingServerId(undefined);
|
|
36
|
-
},
|
|
37
34
|
});
|
|
38
35
|
|
|
39
36
|
const handleSelectPrebuiltServer = async (server: PrebuiltMCPServer) => {
|
|
@@ -65,7 +62,7 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
|
|
|
65
62
|
toast.success(`${server.name} MCP server created successfully`);
|
|
66
63
|
router.push(`/${tenantId}/projects/${projectId}/mcp-servers/${newTool.id}`);
|
|
67
64
|
} else {
|
|
68
|
-
handleOAuthLogin(newTool.id);
|
|
65
|
+
handleOAuthLogin({toolId: newTool.id, mcpServerUrl: server.url, toolName: server.name});
|
|
69
66
|
}
|
|
70
67
|
} catch (error) {
|
|
71
68
|
console.error('Failed to create prebuilt MCP server:', error);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { Lock, LockOpen, Pencil } from 'lucide-react';
|
|
3
|
+
import { AlertCircle, Lock, LockOpen, Pencil } from 'lucide-react';
|
|
4
4
|
import Link from 'next/link';
|
|
5
5
|
import { Badge } from '@/components/ui/badge';
|
|
6
6
|
import { ExternalLink } from '@/components/ui/external-link';
|
|
@@ -69,6 +69,12 @@ export function ViewMCPServerDetails({
|
|
|
69
69
|
});
|
|
70
70
|
};
|
|
71
71
|
|
|
72
|
+
const isExpired = (expiresAt: string | Date | null | undefined): boolean => {
|
|
73
|
+
if (!expiresAt) return false;
|
|
74
|
+
const expirationDate = typeof expiresAt === 'string' ? new Date(expiresAt) : expiresAt;
|
|
75
|
+
return expirationDate < new Date();
|
|
76
|
+
};
|
|
77
|
+
|
|
72
78
|
const getStatusBadgeVariant = (status: string) => {
|
|
73
79
|
switch (status) {
|
|
74
80
|
case 'healthy':
|
|
@@ -157,27 +163,42 @@ export function ViewMCPServerDetails({
|
|
|
157
163
|
</div>
|
|
158
164
|
</div>
|
|
159
165
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
<
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
e
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
166
|
+
{/* Status and Transport Type */}
|
|
167
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
168
|
+
<div className="space-y-2">
|
|
169
|
+
<ItemLabel>Status</ItemLabel>
|
|
170
|
+
<ItemValue className="items-center">
|
|
171
|
+
{tool.status === 'needs_auth' ? (
|
|
172
|
+
<Badge
|
|
173
|
+
variant="outline"
|
|
174
|
+
className="text-xs bg-amber-50 dark:bg-amber-900/20 text-amber-700 dark:text-amber-400 border-amber-200 dark:border-amber-800 cursor-pointer hover:bg-amber-100 dark:hover:bg-amber-900/30 hover:border-amber-300 dark:hover:border-amber-700 transition-colors"
|
|
175
|
+
onClick={(e) => {
|
|
176
|
+
e.preventDefault();
|
|
177
|
+
e.stopPropagation();
|
|
178
|
+
handleOAuthLogin({
|
|
179
|
+
toolId: tool.id,
|
|
180
|
+
mcpServerUrl: tool.config.mcp.server.url,
|
|
181
|
+
toolName: tool.name,
|
|
182
|
+
});
|
|
183
|
+
}}
|
|
184
|
+
>
|
|
185
|
+
Click to Login
|
|
186
|
+
</Badge>
|
|
187
|
+
) : (
|
|
188
|
+
<Badge className="uppercase" variant={getStatusBadgeVariant(tool.status)}>
|
|
189
|
+
{tool.status}
|
|
190
|
+
</Badge>
|
|
191
|
+
)}
|
|
192
|
+
</ItemValue>
|
|
193
|
+
</div>
|
|
194
|
+
{(tool.config as any).mcp.transport && (
|
|
195
|
+
<div className="space-y-2">
|
|
196
|
+
<ItemLabel>Transport Type</ItemLabel>
|
|
197
|
+
<ItemValue>
|
|
198
|
+
{<Badge variant="code">{(tool.config as any).mcp.transport.type}</Badge>}
|
|
199
|
+
</ItemValue>
|
|
200
|
+
</div>
|
|
201
|
+
)}
|
|
181
202
|
</div>
|
|
182
203
|
|
|
183
204
|
{/* Last Error */}
|
|
@@ -191,19 +212,13 @@ export function ViewMCPServerDetails({
|
|
|
191
212
|
{/* Server URL */}
|
|
192
213
|
<div className="space-y-2">
|
|
193
214
|
<ItemLabel>Server URL</ItemLabel>
|
|
194
|
-
{tool.config.type === 'mcp' &&
|
|
215
|
+
{tool.config.type === 'mcp' && (
|
|
216
|
+
<CopyableSingleLineCode code={tool.config.mcp.server.url} />
|
|
217
|
+
)}
|
|
195
218
|
</div>
|
|
196
219
|
|
|
197
|
-
{/*
|
|
220
|
+
{/* Credential Name and Expires At */}
|
|
198
221
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
199
|
-
{(tool.config as any).mcp.transport && (
|
|
200
|
-
<div className="space-y-2">
|
|
201
|
-
<ItemLabel>Transport Type</ItemLabel>
|
|
202
|
-
<ItemValue>
|
|
203
|
-
{<Badge variant="code">{(tool.config as any).mcp.transport.type}</Badge>}
|
|
204
|
-
</ItemValue>
|
|
205
|
-
</div>
|
|
206
|
-
)}
|
|
207
222
|
<div className="space-y-2">
|
|
208
223
|
<ItemLabel>Credential</ItemLabel>
|
|
209
224
|
<ItemValue className="items-center">
|
|
@@ -228,6 +243,19 @@ export function ViewMCPServerDetails({
|
|
|
228
243
|
)}
|
|
229
244
|
</ItemValue>
|
|
230
245
|
</div>
|
|
246
|
+
{tool.expiresAt && (
|
|
247
|
+
<div className="space-y-2">
|
|
248
|
+
<div className="flex items-center gap-2">
|
|
249
|
+
<ItemLabel>Credential Expires At</ItemLabel>
|
|
250
|
+
{isExpired(tool.expiresAt) && <AlertCircle className="h-4 w-4 text-amber-500" />}
|
|
251
|
+
</div>
|
|
252
|
+
<ItemValue>
|
|
253
|
+
{formatDate(
|
|
254
|
+
typeof tool.expiresAt === 'string' ? tool.expiresAt : tool.expiresAt.toISOString()
|
|
255
|
+
)}
|
|
256
|
+
</ItemValue>
|
|
257
|
+
</div>
|
|
258
|
+
)}
|
|
231
259
|
</div>
|
|
232
260
|
|
|
233
261
|
{/* Active Tools */}
|
|
@@ -107,7 +107,7 @@ function EmptyTimeline({
|
|
|
107
107
|
<ExternalLink
|
|
108
108
|
className="text-amber-700 dark:text-amber-300 dark:hover:text-amber-200 ml-0 mt-1"
|
|
109
109
|
iconClassName="text-amber-700 dark:text-amber-300 dark:group-hover/link:text-amber-200"
|
|
110
|
-
href={`${DOCS_BASE_URL}/
|
|
110
|
+
href={`${DOCS_BASE_URL}/get-started/traces`}
|
|
111
111
|
>
|
|
112
112
|
View traces setup guide
|
|
113
113
|
</ExternalLink>
|
|
@@ -310,7 +310,7 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
310
310
|
<ExternalLink
|
|
311
311
|
className="text-amber-700 dark:text-amber-300 dark:hover:text-amber-200"
|
|
312
312
|
iconClassName="text-amber-700 dark:text-amber-300 dark:group-hover/link:text-amber-200"
|
|
313
|
-
href={`${DOCS_BASE_URL}/
|
|
313
|
+
href={`${DOCS_BASE_URL}/get-started/traces`}
|
|
314
314
|
>
|
|
315
315
|
traces setup guide
|
|
316
316
|
</ExternalLink>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import Nango, { type OnConnectEvent } from '@nangohq/frontend';
|
|
3
|
+
import Nango, { type AuthOptions, type AuthSuccess, type OnConnectEvent } from '@nangohq/frontend';
|
|
4
4
|
import { useCallback } from 'react';
|
|
5
5
|
import { useRuntimeConfig } from '@/contexts/runtime-config-context';
|
|
6
|
+
import { createProviderConnectSession } from '@/lib/mcp-tools/nango';
|
|
6
7
|
|
|
7
8
|
type OpenNangoConnectOptions = {
|
|
8
9
|
sessionToken: string;
|
|
@@ -40,5 +41,43 @@ export function useNangoConnect() {
|
|
|
40
41
|
[PUBLIC_NANGO_SERVER_URL, PUBLIC_NANGO_CONNECT_BASE_URL]
|
|
41
42
|
);
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
const openNangoConnectHeadless = useCallback(
|
|
45
|
+
async ({ mcpServerUrl, providerUniqueKey, providerDisplayName }: { mcpServerUrl: string, providerUniqueKey: string, providerDisplayName: string }): Promise<AuthSuccess> => {
|
|
46
|
+
const providerName = 'mcp-generic';
|
|
47
|
+
const connectSessionToken = await createProviderConnectSession({
|
|
48
|
+
providerName,
|
|
49
|
+
uniqueKey: providerUniqueKey,
|
|
50
|
+
displayName: providerDisplayName,
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const nango = new Nango({
|
|
54
|
+
host: PUBLIC_NANGO_SERVER_URL || undefined,
|
|
55
|
+
connectSessionToken,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
try {
|
|
59
|
+
const authOptions: AuthOptions = {
|
|
60
|
+
detectClosedAuthWindow: true,
|
|
61
|
+
params: {
|
|
62
|
+
mcp_server_url: mcpServerUrl,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const result = await nango.auth(providerUniqueKey, authOptions);
|
|
67
|
+
|
|
68
|
+
return result;
|
|
69
|
+
} catch (error) {
|
|
70
|
+
if (error instanceof Error) {
|
|
71
|
+
throw new Error(`Nango headless auth failed: ${error.message}`);
|
|
72
|
+
}
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
[PUBLIC_NANGO_SERVER_URL]
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
openNangoConnect,
|
|
81
|
+
openNangoConnectHeadless,
|
|
82
|
+
};
|
|
44
83
|
}
|