@inkeep/agents-manage-ui 0.11.3 → 0.12.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 +230 -248
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +6 -6
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
- 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]/api-keys/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
- 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_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]/graphs/[graphId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/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_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_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 +1 -1
- 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 +9 -9
- 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 +6 -6
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1670.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/189.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{4702.js → 1933.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2539.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2749.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{2411.js → 2903.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2916.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3082.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/320.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{8835.js → 3468.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5517.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6212.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6351.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/694.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{3981.js → 7503.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7511.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7577.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8048.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8321.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8449.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9892.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
- 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/1122-8db1ba2ae3171a66.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1278-51b8dfa15b83a027.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1558-436164db937a531a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{2706-8d6852e4f38c2068.js → 2706-4fe94ba08fad72de.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/2860-23cac986bdbc6f0d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/3241-a114b4dae45882c2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/384-a114b4dae45882c2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/4420-1006bcd3841d18ce.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{4805.deb96c6337ad6922.js → 4805.2bcf78beb7261189.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/5016-5212df5572c00450.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/5200-a92c33fc465d2ed6.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/5397-82d7c4a0c636b60e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/5622-a114b4dae45882c2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{4169.808bb74a234140c9.js → 6550.bb60e05a00a6253b.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-84a6a1036d4ad8b9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7210-ed4b9b414a7bf114.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7394-b444a34c3232ffe7.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7674-b1c4e03f250a7863.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7775-ec1fa275bc3e6717.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7994-95135bda825a0b62.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/8003-a114b4dae45882c2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/8197-a41c5aa502a71e0c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/error-9b1788d15a572652.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-a77bea18c2ec4ddf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/error-f4e04a252a003510.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-fef4d7d7fd7b8092.js → page-bd3483f62fc4cfa6.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/error-8e7ee0b452e16bf3.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-f16e83f5a76314a9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-fef4d7d7fd7b8092.js → page-bd3483f62fc4cfa6.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-ab237a58ec5484e3.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/error-0d5c117cb7d999c9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-2d27034d4d63c5b8.js → page-43fa3e7cf1f000d9.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/error-9499695753aa33ec.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-f16e83f5a76314a9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/{page-2d27034d4d63c5b8.js → page-43fa3e7cf1f000d9.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-2f2f306471f494fb.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-c8a3cd07bfba729e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/error-409d41bd0525f22f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-7917e532e48d68bc.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-f16e83f5a76314a9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-bf4c5ee1fcd0a1f8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-38d3932163173796.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-f6d7e7f8ecab1e3c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/error-8da8330295a84328.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/loading-2868de136b155d0e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page-d6f01d6d7fe69cea.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/error-9cf04dc4aab414a2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-f16e83f5a76314a9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/new/page-0d87ce40bb16c1de.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-e16634fbbf6ba350.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-cfad1fad7222b283.js → page-c1587a84a6de6faa.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-653ca9c1d193612c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-2868de136b155d0e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-e7510fbf0b60102e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-d6e247dbe00dedc9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/error-9be350c37252135d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-ab0436aa700f67d5.js → page-1ad1329e9cb6ef07.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/{page-6eb122638434c9cf.js → page-597f4ccaf9557e60.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-b9deaa2fcd232705.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-64699c02792faa9e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/error-d0668aab86c9a04e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-f16e83f5a76314a9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-f8a28b248b84c95c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/{layout-e0349a2e97646204.js → layout-113eab9fed572fa2.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-2e00dfb974dac679.js → webpack-b20dc8e12f728891.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/e970895dc785a75c.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]/mcp-servers/new/page.tsx +2 -6
- package/src/components/mcp-servers/mcp-tool-image.tsx +4 -1
- package/src/components/mcp-servers/mcp-tool-item.tsx +9 -14
- package/src/components/mcp-servers/selection/mcp-server-selection.tsx +130 -0
- package/src/components/mcp-servers/selection/prebuilt-server-card.tsx +74 -0
- package/src/components/mcp-servers/selection/prebuilt-servers-grid.tsx +45 -0
- package/src/components/mcp-servers/view-mcp-server-details.tsx +9 -56
- package/src/hooks/use-oauth-login.ts +81 -0
- package/src/lib/data/prebuilt-mcp-servers.ts +340 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2133.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2309.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/544.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5616.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1269-01d206587f84136b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1695-26fd09355931b936.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/318-2d04832794761666.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/6531-98b5e4b4f232d04e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/6550-51aa7da8be9d90a5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7143-b3731044529a566f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-074e34f38369470a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/8805-d6e6305219ee0332.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/929-cc251a7a8ca04af8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/9405-c4290c8d28641514.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/error-b22d546388b6a169.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-342913575ce3d3d4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/error-f1418a11c66d8096.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/error-30269bcc821d7de1.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-025ec4e3a5810eca.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-017ada6e50411751.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/error-cc0a7cc2ba09d619.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/error-4a78192429f3c345.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-025ec4e3a5810eca.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-9cc88cb8c7b1fc20.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-d8adb95f3270c27c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/error-5b18b7681b225d13.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-bfa2ae8536d8bb5f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-025ec4e3a5810eca.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-b89dcddfdd2f1c10.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-1e8b415d4dbe6ce9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-58d11ac42f61ecd4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/error-d27f590d22f3cd9f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/loading-12ce25d0058e6441.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page-c49abd7e45c6621e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/error-1e7c86f68b47b503.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-025ec4e3a5810eca.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/new/page-0343ee5133a2c717.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-b28487f6ca95d30f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-7e0d6905b3917360.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-12ce25d0058e6441.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-76a29c75d1416a1d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-e68478e4a7416619.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/error-9d26f57bd40146a2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-924004e316c0e468.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-622e36e5b334e5c9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/error-324c9117b5e03634.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-025ec4e3a5810eca.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-7e49dc1eb2150661.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/35104f76c2884833.css +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{KoBJ9LsM4YjnplSYXwd-F → 5x4YI62SrSI7BFnjIZTQf}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{KoBJ9LsM4YjnplSYXwd-F → 5x4YI62SrSI7BFnjIZTQf}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { MCPToolImage } from '@/components/mcp-servers/mcp-tool-image';
|
|
4
|
+
import { CardTitle } from '@/components/ui/card';
|
|
5
|
+
import {
|
|
6
|
+
ItemCardContent,
|
|
7
|
+
ItemCardHeader,
|
|
8
|
+
ItemCardRoot,
|
|
9
|
+
ItemCardTitle,
|
|
10
|
+
} from '@/components/ui/item-card';
|
|
11
|
+
import type { PrebuiltMCPServer } from '@/lib/data/prebuilt-mcp-servers';
|
|
12
|
+
|
|
13
|
+
// URL Display Component with ellipsis
|
|
14
|
+
function URLDisplay({ url }: { url: string }) {
|
|
15
|
+
return (
|
|
16
|
+
<div className="rounded py-1 min-w-0">
|
|
17
|
+
<code className="text-sm text-muted-foreground block truncate">{url}</code>
|
|
18
|
+
</div>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface PrebuiltServerCardProps {
|
|
23
|
+
server: PrebuiltMCPServer;
|
|
24
|
+
onSelect: (server: PrebuiltMCPServer) => void;
|
|
25
|
+
isLoading?: boolean;
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function PrebuiltServerCard({
|
|
30
|
+
server,
|
|
31
|
+
onSelect,
|
|
32
|
+
isLoading = false,
|
|
33
|
+
disabled = false,
|
|
34
|
+
}: PrebuiltServerCardProps) {
|
|
35
|
+
const handleClick = () => {
|
|
36
|
+
if (!isLoading && !disabled) {
|
|
37
|
+
onSelect(server);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<ItemCardRoot
|
|
43
|
+
className={`h-full min-w-0 transition-shadow ${
|
|
44
|
+
disabled
|
|
45
|
+
? 'opacity-50 cursor-not-allowed'
|
|
46
|
+
: 'cursor-pointer hover:shadow-md hover:bg-accent/50'
|
|
47
|
+
}`}
|
|
48
|
+
onClick={handleClick}
|
|
49
|
+
>
|
|
50
|
+
<ItemCardHeader>
|
|
51
|
+
<ItemCardTitle className="text-md">
|
|
52
|
+
<div className="flex items-center gap-3">
|
|
53
|
+
<MCPToolImage
|
|
54
|
+
imageUrl={server.imageUrl}
|
|
55
|
+
name={server.name}
|
|
56
|
+
provider={server.name}
|
|
57
|
+
size={24}
|
|
58
|
+
className="mt-0.5 flex-shrink-0"
|
|
59
|
+
/>
|
|
60
|
+
<div className="flex-1 min-w-0">
|
|
61
|
+
<CardTitle className="text-base truncate font-medium">{server.name}</CardTitle>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</ItemCardTitle>
|
|
65
|
+
</ItemCardHeader>
|
|
66
|
+
|
|
67
|
+
<ItemCardContent>
|
|
68
|
+
<div className="space-y-3 min-w-0">
|
|
69
|
+
<URLDisplay url={server.url} />
|
|
70
|
+
</div>
|
|
71
|
+
</ItemCardContent>
|
|
72
|
+
</ItemCardRoot>
|
|
73
|
+
);
|
|
74
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { type PrebuiltMCPServer, usePrebuiltMCPServers } from '@/lib/data/prebuilt-mcp-servers';
|
|
4
|
+
import { PrebuiltServerCard } from './prebuilt-server-card';
|
|
5
|
+
|
|
6
|
+
interface PrebuiltServersGridProps {
|
|
7
|
+
onSelectServer: (server: PrebuiltMCPServer) => void;
|
|
8
|
+
loadingServerId?: string;
|
|
9
|
+
searchQuery?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function PrebuiltServersGrid({
|
|
13
|
+
onSelectServer,
|
|
14
|
+
loadingServerId,
|
|
15
|
+
searchQuery = '',
|
|
16
|
+
}: PrebuiltServersGridProps) {
|
|
17
|
+
const prebuiltMCPServers = usePrebuiltMCPServers();
|
|
18
|
+
const filteredServers = prebuiltMCPServers.filter(
|
|
19
|
+
(server) =>
|
|
20
|
+
server.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
|
|
21
|
+
server.url.toLowerCase().includes(searchQuery.toLowerCase())
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
if (filteredServers.length === 0) {
|
|
25
|
+
return (
|
|
26
|
+
<div className="text-center py-12">
|
|
27
|
+
<p className="text-muted-foreground">No servers found matching "{searchQuery}".</p>
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
|
34
|
+
{filteredServers.map((server) => (
|
|
35
|
+
<PrebuiltServerCard
|
|
36
|
+
key={server.id}
|
|
37
|
+
server={server}
|
|
38
|
+
onSelect={onSelectServer}
|
|
39
|
+
isLoading={loadingServerId === server.id}
|
|
40
|
+
disabled={!!loadingServerId && loadingServerId !== server.id}
|
|
41
|
+
/>
|
|
42
|
+
))}
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
@@ -5,11 +5,9 @@ import Link from 'next/link';
|
|
|
5
5
|
import { Badge } from '@/components/ui/badge';
|
|
6
6
|
import { ExternalLink } from '@/components/ui/external-link';
|
|
7
7
|
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
|
|
8
|
-
import {
|
|
8
|
+
import { useOAuthLogin } from '@/hooks/use-oauth-login';
|
|
9
9
|
import type { MCPTool } from '@/lib/types/tools';
|
|
10
|
-
|
|
11
10
|
import { cn } from '@/lib/utils';
|
|
12
|
-
import { getOAuthLoginUrl } from '@/lib/utils/mcp-urls';
|
|
13
11
|
import { getToolTypeAndName } from '@/lib/utils/mcp-utils';
|
|
14
12
|
import { Button } from '../ui/button';
|
|
15
13
|
import { CopyableMultiLineCode } from '../ui/copyable-multi-line-code';
|
|
@@ -53,7 +51,14 @@ export function ViewMCPServerDetails({
|
|
|
53
51
|
tenantId: string;
|
|
54
52
|
projectId: string;
|
|
55
53
|
}) {
|
|
56
|
-
const {
|
|
54
|
+
const { handleOAuthLogin } = useOAuthLogin({
|
|
55
|
+
tenantId,
|
|
56
|
+
projectId,
|
|
57
|
+
onFinish: () => {
|
|
58
|
+
window.location.reload();
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
|
|
57
62
|
const formatDate = (dateString: string) => {
|
|
58
63
|
return new Date(dateString).toLocaleDateString('en-US', {
|
|
59
64
|
year: 'numeric',
|
|
@@ -99,50 +104,6 @@ export function ViewMCPServerDetails({
|
|
|
99
104
|
return <div className={cn('flex w-full text-sm', className)}>{children}</div>;
|
|
100
105
|
};
|
|
101
106
|
|
|
102
|
-
// Handle OAuth login for MCP tools that need authentication
|
|
103
|
-
const handleOAuthLogin = (toolId: string) => {
|
|
104
|
-
try {
|
|
105
|
-
// Get the OAuth URL and open in popup window
|
|
106
|
-
const oauthUrl = getOAuthLoginUrl({
|
|
107
|
-
INKEEP_AGENTS_MANAGE_API_URL,
|
|
108
|
-
tenantId,
|
|
109
|
-
projectId,
|
|
110
|
-
id: toolId,
|
|
111
|
-
});
|
|
112
|
-
const popup = window.open(
|
|
113
|
-
oauthUrl,
|
|
114
|
-
'oauth-popup',
|
|
115
|
-
'width=600,height=700,scrollbars=yes,resizable=yes,status=yes,location=yes'
|
|
116
|
-
);
|
|
117
|
-
|
|
118
|
-
// Listen for OAuth success message from popup
|
|
119
|
-
const handleMessage = (event: MessageEvent) => {
|
|
120
|
-
if (event.data.type === 'oauth-success' && event.data.toolId === toolId) {
|
|
121
|
-
// Clean up listener
|
|
122
|
-
window.removeEventListener('message', handleMessage);
|
|
123
|
-
// Refresh the page to show updated tool status
|
|
124
|
-
window.location.reload();
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
if (popup) {
|
|
129
|
-
window.addEventListener('message', handleMessage);
|
|
130
|
-
|
|
131
|
-
// Fallback: Monitor popup for closure
|
|
132
|
-
const checkClosed = setInterval(() => {
|
|
133
|
-
if (popup.closed) {
|
|
134
|
-
clearInterval(checkClosed);
|
|
135
|
-
window.removeEventListener('message', handleMessage);
|
|
136
|
-
// Only refresh if we didn't already get the success message
|
|
137
|
-
window.location.reload();
|
|
138
|
-
}
|
|
139
|
-
}, 1000);
|
|
140
|
-
}
|
|
141
|
-
} catch (error) {
|
|
142
|
-
console.error('OAuth login failed:', error);
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
|
|
146
107
|
let provider: string | undefined;
|
|
147
108
|
try {
|
|
148
109
|
provider = getToolTypeAndName(tool).type;
|
|
@@ -195,14 +156,6 @@ export function ViewMCPServerDetails({
|
|
|
195
156
|
</ItemValue>
|
|
196
157
|
</div>
|
|
197
158
|
</div>
|
|
198
|
-
{tool.imageUrl && (
|
|
199
|
-
<div className="space-y-2">
|
|
200
|
-
<ItemLabel>Image URL</ItemLabel>
|
|
201
|
-
<ItemValue>
|
|
202
|
-
{tool.imageUrl.startsWith('data:image/') ? 'Base64 encoded image' : tool.imageUrl}
|
|
203
|
-
</ItemValue>
|
|
204
|
-
</div>
|
|
205
|
-
)}
|
|
206
159
|
|
|
207
160
|
<div className="space-y-2">
|
|
208
161
|
<ItemLabel>Status</ItemLabel>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { useRouter } from 'next/navigation';
|
|
2
|
+
import { toast } from 'sonner';
|
|
3
|
+
import { useRuntimeConfig } from '@/contexts/runtime-config-context';
|
|
4
|
+
import { getOAuthLoginUrl } from '@/lib/utils/mcp-urls';
|
|
5
|
+
|
|
6
|
+
interface UseOAuthLoginProps {
|
|
7
|
+
tenantId: string;
|
|
8
|
+
projectId: string;
|
|
9
|
+
onFinish?: (toolId: string) => void;
|
|
10
|
+
onError?: (error: Error) => void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function useOAuthLogin({ tenantId, projectId, onFinish, onError }: UseOAuthLoginProps) {
|
|
14
|
+
const router = useRouter();
|
|
15
|
+
const { INKEEP_AGENTS_MANAGE_API_URL } = useRuntimeConfig();
|
|
16
|
+
|
|
17
|
+
const handleOAuthLogin = (toolId: string) => {
|
|
18
|
+
try {
|
|
19
|
+
// Get the OAuth URL and open in popup window
|
|
20
|
+
const oauthUrl = getOAuthLoginUrl({
|
|
21
|
+
INKEEP_AGENTS_MANAGE_API_URL,
|
|
22
|
+
tenantId,
|
|
23
|
+
projectId,
|
|
24
|
+
id: toolId,
|
|
25
|
+
});
|
|
26
|
+
const popup = window.open(
|
|
27
|
+
oauthUrl,
|
|
28
|
+
'oauth-popup',
|
|
29
|
+
'width=600,height=700,scrollbars=yes,resizable=yes,status=yes,location=yes'
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
// Listen for OAuth success message from popup
|
|
33
|
+
const handleMessage = (event: MessageEvent) => {
|
|
34
|
+
if (event.data.type === 'oauth-success' && event.data.toolId === toolId) {
|
|
35
|
+
// Clean up listener
|
|
36
|
+
window.removeEventListener('message', handleMessage);
|
|
37
|
+
|
|
38
|
+
// Call custom success handler or default behavior
|
|
39
|
+
if (onFinish) {
|
|
40
|
+
onFinish(toolId);
|
|
41
|
+
} else {
|
|
42
|
+
// Default: navigate to server details page
|
|
43
|
+
router.push(`/${tenantId}/projects/${projectId}/mcp-servers/${toolId}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
if (popup) {
|
|
49
|
+
window.addEventListener('message', handleMessage);
|
|
50
|
+
|
|
51
|
+
// Fallback: Monitor popup for closure
|
|
52
|
+
const checkClosed = setInterval(() => {
|
|
53
|
+
if (popup.closed) {
|
|
54
|
+
clearInterval(checkClosed);
|
|
55
|
+
window.removeEventListener('message', handleMessage);
|
|
56
|
+
|
|
57
|
+
// Call custom success handler or default behavior
|
|
58
|
+
if (onFinish) {
|
|
59
|
+
onFinish(toolId);
|
|
60
|
+
} else {
|
|
61
|
+
// Default: navigate to server details page
|
|
62
|
+
router.push(`/${tenantId}/projects/${projectId}/mcp-servers/${toolId}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}, 1000);
|
|
66
|
+
}
|
|
67
|
+
} catch (error) {
|
|
68
|
+
console.error('OAuth login failed:', error);
|
|
69
|
+
const errorObj = error instanceof Error ? error : new Error('OAuth login failed');
|
|
70
|
+
|
|
71
|
+
if (onError) {
|
|
72
|
+
onError(errorObj);
|
|
73
|
+
} else {
|
|
74
|
+
// Default error handling
|
|
75
|
+
toast.error('OAuth login failed. Please try again.');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
return { handleOAuthLogin };
|
|
81
|
+
}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import { MCPTransportType } from '@inkeep/agents-core/client-exports';
|
|
2
|
+
import { useTheme } from 'next-themes';
|
|
3
|
+
|
|
4
|
+
export interface PrebuiltMCPServer {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
url: string;
|
|
8
|
+
transport: (typeof MCPTransportType)[keyof typeof MCPTransportType];
|
|
9
|
+
imageUrl?: string;
|
|
10
|
+
isOpen?: boolean; // this means MCP server doesn't need a key, so we can quick-create
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const getBaseMCPServers = (isDark: boolean): PrebuiltMCPServer[] => [
|
|
14
|
+
{
|
|
15
|
+
id: 'apify',
|
|
16
|
+
name: 'Apify',
|
|
17
|
+
url: 'https://mcp.apify.com',
|
|
18
|
+
transport: MCPTransportType.streamableHttp,
|
|
19
|
+
imageUrl: 'https://apify.com/img/apify-logo/logomark-32x32.svg',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: 'asana',
|
|
23
|
+
name: 'Asana',
|
|
24
|
+
url: 'https://mcp.asana.com/sse',
|
|
25
|
+
transport: MCPTransportType.sse,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 'atlassian',
|
|
29
|
+
name: 'Atlassian',
|
|
30
|
+
url: 'https://mcp.atlassian.com/v1/sse',
|
|
31
|
+
transport: MCPTransportType.sse,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: 'buildkite',
|
|
35
|
+
name: 'Buildkite',
|
|
36
|
+
url: 'https://mcp.buildkite.com/mcp',
|
|
37
|
+
transport: MCPTransportType.streamableHttp,
|
|
38
|
+
imageUrl: 'https://buildkite.com/_astro/buildkite-mark.D56ywXpU.svg',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: 'canva',
|
|
42
|
+
name: 'Canva',
|
|
43
|
+
url: 'https://mcp.canva.com/mcp',
|
|
44
|
+
transport: MCPTransportType.streamableHttp,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'carbon-voice',
|
|
48
|
+
name: 'Carbon Voice',
|
|
49
|
+
url: 'https://mcp.carbonvoice.app',
|
|
50
|
+
transport: MCPTransportType.streamableHttp,
|
|
51
|
+
imageUrl: 'https://static.wixstatic.com/shapes/e97c23_633874d233a944aea7b424ae16e9efec.svg',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 'close',
|
|
55
|
+
name: 'Close (CRM)',
|
|
56
|
+
url: 'https://mcp.close.com/mcp',
|
|
57
|
+
transport: MCPTransportType.streamableHttp,
|
|
58
|
+
imageUrl:
|
|
59
|
+
'https://cdn.prod.website-files.com/61717799a852418a278cfa9b/68793d8479790aec5ed95512_close-logo-color-atom.svg',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'cloudflare-docs',
|
|
63
|
+
name: 'Cloudflare Docs',
|
|
64
|
+
url: 'https://docs.mcp.cloudflare.com/sse',
|
|
65
|
+
transport: MCPTransportType.sse,
|
|
66
|
+
isOpen: true,
|
|
67
|
+
imageUrl: 'https://www.cloudflare.com/favicon.ico',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 'cloudflare-observability',
|
|
71
|
+
name: 'Cloudflare Observability',
|
|
72
|
+
url: 'https://observability.mcp.cloudflare.com/sse',
|
|
73
|
+
transport: MCPTransportType.sse,
|
|
74
|
+
imageUrl: 'https://www.cloudflare.com/favicon.ico',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: 'cloudflare-workers',
|
|
78
|
+
name: 'Cloudflare Workers Bindings',
|
|
79
|
+
url: 'https://bindings.mcp.cloudflare.com/sse',
|
|
80
|
+
transport: MCPTransportType.sse,
|
|
81
|
+
imageUrl: 'https://www.cloudflare.com/favicon.ico',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: 'cloudinary',
|
|
85
|
+
name: 'Cloudinary (Asset Management)',
|
|
86
|
+
url: 'https://asset-management.mcp.cloudinary.com/sse',
|
|
87
|
+
transport: MCPTransportType.sse,
|
|
88
|
+
imageUrl: 'https://cloudinary.com/wp-content/uploads/sites/6/2020/09/favicon-32x32-1.png',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: 'deepwiki',
|
|
92
|
+
name: 'DeepWiki',
|
|
93
|
+
url: 'https://mcp.deepwiki.com/mcp',
|
|
94
|
+
transport: MCPTransportType.streamableHttp,
|
|
95
|
+
imageUrl: 'https://deepwiki.org/apple-icon.png?a4f658907db0ab87',
|
|
96
|
+
isOpen: true,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
id: 'dodo-payments',
|
|
100
|
+
name: 'Dodo Payments',
|
|
101
|
+
url: 'https://mcp.dodopayments.com/sse',
|
|
102
|
+
transport: MCPTransportType.sse,
|
|
103
|
+
imageUrl:
|
|
104
|
+
'https://docs.dodopayments.com/mintlify-assets/_mintlify/favicons/dodopayments/O4gqzjfBTOvqqqpw/_generated/favicon/favicon-32x32.png',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 'egnyte',
|
|
108
|
+
name: 'Egnyte',
|
|
109
|
+
url: 'https://mcp-server.egnyte.com/sse',
|
|
110
|
+
transport: MCPTransportType.sse,
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
id: 'fireflies',
|
|
114
|
+
name: 'Fireflies',
|
|
115
|
+
url: 'https://api.fireflies.ai/mcp',
|
|
116
|
+
transport: MCPTransportType.streamableHttp,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: 'globalping',
|
|
120
|
+
name: 'Globalping',
|
|
121
|
+
url: 'https://mcp.globalping.dev/mcp',
|
|
122
|
+
transport: MCPTransportType.streamableHttp,
|
|
123
|
+
imageUrl: 'https://globalping.io/icons/favicon-32x32.png',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: 'huggingface',
|
|
127
|
+
name: 'Hugging Face',
|
|
128
|
+
url: 'https://huggingface.co/mcp?login',
|
|
129
|
+
transport: MCPTransportType.streamableHttp,
|
|
130
|
+
imageUrl: 'https://huggingface.co/front/assets/huggingface_logo-noborder.svg',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: 'instant',
|
|
134
|
+
name: 'Instant (InstantDB)',
|
|
135
|
+
url: 'https://mcp.instantdb.com/mcp',
|
|
136
|
+
transport: MCPTransportType.streamableHttp,
|
|
137
|
+
imageUrl: 'https://www.instantdb.com/img/icon/logo-512.svg',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: 'intercom',
|
|
141
|
+
name: 'Intercom',
|
|
142
|
+
url: 'https://mcp.intercom.com/mcp',
|
|
143
|
+
transport: MCPTransportType.streamableHttp,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'invideo',
|
|
147
|
+
name: 'Invideo',
|
|
148
|
+
url: 'https://mcp.invideo.io/sse',
|
|
149
|
+
transport: MCPTransportType.sse,
|
|
150
|
+
isOpen: true,
|
|
151
|
+
imageUrl: isDark
|
|
152
|
+
? 'https://web-assets.invideo.io/favicons/prod/white_favicon.ico'
|
|
153
|
+
: 'https://web-assets.invideo.io/favicons/prod/black_favicon.ico',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
id: 'jam-dev',
|
|
157
|
+
name: 'Jam.dev',
|
|
158
|
+
url: 'https://mcp.jam.dev/mcp',
|
|
159
|
+
transport: MCPTransportType.streamableHttp,
|
|
160
|
+
imageUrl: 'https://jam.dev/favicon.ico?cache-bust=2',
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
id: 'linear',
|
|
164
|
+
name: 'Linear',
|
|
165
|
+
url: 'https://mcp.linear.app/mcp',
|
|
166
|
+
transport: MCPTransportType.streamableHttp,
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
id: 'monday',
|
|
170
|
+
name: 'Monday',
|
|
171
|
+
url: 'https://mcp.monday.com/sse',
|
|
172
|
+
transport: MCPTransportType.sse,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: 'needle',
|
|
176
|
+
name: 'Needle',
|
|
177
|
+
url: 'https://mcp.needle-ai.com/mcp',
|
|
178
|
+
transport: MCPTransportType.streamableHttp,
|
|
179
|
+
imageUrl: 'https://needle.app/images/favicon.png',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
id: 'neon',
|
|
183
|
+
name: 'Neon',
|
|
184
|
+
url: 'https://mcp.neon.tech/mcp',
|
|
185
|
+
transport: MCPTransportType.streamableHttp,
|
|
186
|
+
imageUrl: 'https://neon.com/favicon/favicon.png',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: 'netlify',
|
|
190
|
+
name: 'Netlify',
|
|
191
|
+
url: 'https://netlify-mcp.netlify.app/mcp',
|
|
192
|
+
transport: MCPTransportType.streamableHttp,
|
|
193
|
+
imageUrl: 'https://www.netlify.com/favicon/apple-touch-icon.png',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
id: 'notion',
|
|
197
|
+
name: 'Notion',
|
|
198
|
+
url: 'https://mcp.notion.com/mcp',
|
|
199
|
+
transport: MCPTransportType.streamableHttp,
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
id: 'octagon-agents',
|
|
203
|
+
name: 'Octagon Agents (Market Intel)',
|
|
204
|
+
url: 'https://mcp.octagonagents.com/mcp',
|
|
205
|
+
transport: MCPTransportType.streamableHttp,
|
|
206
|
+
imageUrl:
|
|
207
|
+
'https://cdn.prod.website-files.com/67e20964923f8dc825a5dbd0/67e20964923f8dc825a5dc20_favico.png',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
id: 'paypal',
|
|
211
|
+
name: 'PayPal',
|
|
212
|
+
url: 'https://mcp.paypal.com',
|
|
213
|
+
transport: MCPTransportType.streamableHttp,
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
id: 'pipeboard-meta-ads',
|
|
217
|
+
name: 'Pipeboard – Meta Ads',
|
|
218
|
+
url: 'https://mcp.pipeboard.co/meta-ads-mcp',
|
|
219
|
+
transport: MCPTransportType.streamableHttp,
|
|
220
|
+
imageUrl: 'https://pipeboard.co/favicon.ico',
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
id: 'prisma',
|
|
224
|
+
name: 'Prisma',
|
|
225
|
+
url: 'https://mcp.prisma.io/mcp',
|
|
226
|
+
transport: MCPTransportType.streamableHttp,
|
|
227
|
+
imageUrl: 'https://www.prisma.io/docs/img/favicon.png',
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
id: 'rube',
|
|
231
|
+
name: 'Rube',
|
|
232
|
+
url: 'https://rube.app/mcp',
|
|
233
|
+
transport: MCPTransportType.streamableHttp,
|
|
234
|
+
imageUrl: 'https://rube.app/favicon.ico',
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
id: 'semgrep',
|
|
238
|
+
name: 'Semgrep',
|
|
239
|
+
url: 'https://mcp.semgrep.ai/mcp',
|
|
240
|
+
transport: MCPTransportType.streamableHttp,
|
|
241
|
+
imageUrl: 'https://semgrep.dev/build/assets/favicon-CIx-xpG_.svg',
|
|
242
|
+
isOpen: true,
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
id: 'sentry',
|
|
246
|
+
name: 'Sentry',
|
|
247
|
+
url: 'https://mcp.sentry.dev',
|
|
248
|
+
transport: MCPTransportType.streamableHttp,
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
id: 'simplescraper',
|
|
252
|
+
name: 'Simplescraper',
|
|
253
|
+
url: 'https://mcp.simplescraper.io/mcp',
|
|
254
|
+
transport: MCPTransportType.streamableHttp,
|
|
255
|
+
imageUrl: 'https://simplescraper.io/favicon.ico',
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
id: 'square',
|
|
259
|
+
name: 'Square',
|
|
260
|
+
url: 'https://mcp.squareup.com/sse',
|
|
261
|
+
transport: MCPTransportType.sse,
|
|
262
|
+
imageUrl:
|
|
263
|
+
'https://pw-renderer-production-c.squarecdn.com/c94e4b9deb6727292b842f0dc29355f408487bf2/_svelte/favicon.ico',
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
id: 'stripe',
|
|
267
|
+
name: 'Stripe',
|
|
268
|
+
url: 'https://mcp.stripe.com',
|
|
269
|
+
transport: MCPTransportType.streamableHttp,
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
id: 'stytch',
|
|
273
|
+
name: 'Stytch',
|
|
274
|
+
url: 'https://mcp.stytch.dev/mcp',
|
|
275
|
+
transport: MCPTransportType.streamableHttp,
|
|
276
|
+
imageUrl: 'https://stytch.com/favicon.ico',
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
id: 'telnyx',
|
|
280
|
+
name: 'Telnyx',
|
|
281
|
+
url: 'https://api.telnyx.com/v2/mcp',
|
|
282
|
+
transport: MCPTransportType.streamableHttp,
|
|
283
|
+
imageUrl: 'https://www.telnyx.com/favicon.ico',
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
id: 'thoughtspot',
|
|
287
|
+
name: 'ThoughtSpot',
|
|
288
|
+
url: 'https://agent.thoughtspot.app/mcp',
|
|
289
|
+
transport: MCPTransportType.streamableHttp,
|
|
290
|
+
imageUrl:
|
|
291
|
+
'https://developers.thoughtspot.com/docs/icons/icon-48x48.png?v=3959c799205dc2ce6e1f1d93fd74d630',
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
id: 'vercel',
|
|
295
|
+
name: 'Vercel',
|
|
296
|
+
url: 'https://mcp.vercel.com',
|
|
297
|
+
transport: MCPTransportType.streamableHttp,
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
id: 'waystation',
|
|
301
|
+
name: 'WayStation',
|
|
302
|
+
url: 'https://waystation.ai/mcp',
|
|
303
|
+
transport: MCPTransportType.streamableHttp,
|
|
304
|
+
imageUrl: 'https://waystation.ai/images/logo.svg',
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
id: 'webflow',
|
|
308
|
+
name: 'Webflow',
|
|
309
|
+
url: 'https://mcp.webflow.com/sse',
|
|
310
|
+
transport: MCPTransportType.sse,
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
id: 'wix',
|
|
314
|
+
name: 'Wix',
|
|
315
|
+
url: 'https://mcp.wix.com/sse',
|
|
316
|
+
transport: MCPTransportType.sse,
|
|
317
|
+
imageUrl: 'https://wix.com/favicon.ico',
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
id: 'zapier',
|
|
321
|
+
name: 'Zapier',
|
|
322
|
+
url: 'https://mcp.zapier.com/api/mcp/mcp',
|
|
323
|
+
transport: MCPTransportType.streamableHttp,
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
id: 'zine',
|
|
327
|
+
name: 'Zine',
|
|
328
|
+
url: 'https://www.zine.ai/mcp',
|
|
329
|
+
transport: MCPTransportType.streamableHttp,
|
|
330
|
+
imageUrl: 'https://www.zine.ai/_next/image?url=%2Fimages%2Fzine-logo.png&w=64&q=75',
|
|
331
|
+
},
|
|
332
|
+
];
|
|
333
|
+
|
|
334
|
+
// Custom hook to get theme-aware MCP servers
|
|
335
|
+
export function usePrebuiltMCPServers(): PrebuiltMCPServer[] {
|
|
336
|
+
const { resolvedTheme } = useTheme();
|
|
337
|
+
const isDark = resolvedTheme === 'dark';
|
|
338
|
+
|
|
339
|
+
return getBaseMCPServers(isDark);
|
|
340
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2133,exports.ids=[2133],exports.modules={437:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(89892).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},2100:(a,b,c)=>{c.d(b,{q:()=>d});function d(a,[b,c]){return Math.min(c,Math.max(b,a))}},25773:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(89892).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},41404:(a,b,c)=>{c.d(b,{In:()=>aE,LM:()=>aH,PP:()=>aL,UC:()=>aG,VF:()=>aK,WT:()=>aD,ZL:()=>aF,bL:()=>aB,l9:()=>aC,p4:()=>aJ,q7:()=>aI,wn:()=>aM});var d=c(14450),e=c(42791),f=c(2100),g=c(13254),h=c(98145),i=c(90890),j=c(2102),k=c(46029),l=c(61263),m=c(36117),n=c(12996),o=c(84479),p=c(2959),q=c(61101),r=c(6118),s=c(98848),t=c(24503),u=c(19975),v=c(62007),w=c(82087),x=c(22190),y=c(79130),z=c(5784),A=c(59111),B=[" ","Enter","ArrowUp","ArrowDown"],C=[" ","Enter"],D="Select",[E,F,G]=(0,h.N)(D),[H,I]=(0,j.A)(D,[G,p.Bk]),J=(0,p.Bk)(),[K,L]=H(D),[M,N]=H(D),O=a=>{let{__scopeSelect:b,children:c,open:e,defaultOpen:f,onOpenChange:g,value:h,defaultValue:i,onValueChange:j,dir:l,name:m,autoComplete:n,disabled:q,required:r,form:s}=a,t=J(b),[v,w]=d.useState(null),[x,y]=d.useState(null),[z,B]=d.useState(!1),C=(0,k.jH)(l),[F,G]=(0,u.i)({prop:e,defaultProp:f??!1,onChange:g,caller:D}),[H,I]=(0,u.i)({prop:h,defaultProp:i,onChange:j,caller:D}),L=d.useRef(null),N=!v||s||!!v.closest("form"),[O,P]=d.useState(new Set),Q=Array.from(O).map(a=>a.props.value).join(";");return(0,A.jsx)(p.bL,{...t,children:(0,A.jsxs)(K,{required:r,scope:b,trigger:v,onTriggerChange:w,valueNode:x,onValueNodeChange:y,valueNodeHasChildren:z,onValueNodeHasChildrenChange:B,contentId:(0,o.B)(),value:H,onValueChange:I,open:F,onOpenChange:G,dir:C,triggerPointerDownPosRef:L,disabled:q,children:[(0,A.jsx)(E.Provider,{scope:b,children:(0,A.jsx)(M,{scope:a.__scopeSelect,onNativeOptionAdd:d.useCallback(a=>{P(b=>new Set(b).add(a))},[]),onNativeOptionRemove:d.useCallback(a=>{P(b=>{let c=new Set(b);return c.delete(a),c})},[]),children:c})}),N?(0,A.jsxs)(ax,{"aria-hidden":!0,required:r,tabIndex:-1,name:m,autoComplete:n,value:H,onChange:a=>I(a.target.value),disabled:q,form:s,children:[void 0===H?(0,A.jsx)("option",{value:""}):null,Array.from(O)]},Q):null]})})};O.displayName=D;var P="SelectTrigger",Q=d.forwardRef((a,b)=>{let{__scopeSelect:c,disabled:e=!1,...f}=a,h=J(c),j=L(P,c),k=j.disabled||e,l=(0,i.s)(b,j.onTriggerChange),m=F(c),n=d.useRef("touch"),[o,q,s]=az(a=>{let b=m().filter(a=>!a.disabled),c=b.find(a=>a.value===j.value),d=aA(b,a,c);void 0!==d&&j.onValueChange(d.value)}),t=a=>{k||(j.onOpenChange(!0),s()),a&&(j.triggerPointerDownPosRef.current={x:Math.round(a.pageX),y:Math.round(a.pageY)})};return(0,A.jsx)(p.Mz,{asChild:!0,...h,children:(0,A.jsx)(r.sG.button,{type:"button",role:"combobox","aria-controls":j.contentId,"aria-expanded":j.open,"aria-required":j.required,"aria-autocomplete":"none",dir:j.dir,"data-state":j.open?"open":"closed",disabled:k,"data-disabled":k?"":void 0,"data-placeholder":ay(j.value)?"":void 0,...f,ref:l,onClick:(0,g.mK)(f.onClick,a=>{a.currentTarget.focus(),"mouse"!==n.current&&t(a)}),onPointerDown:(0,g.mK)(f.onPointerDown,a=>{n.current=a.pointerType;let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),0===a.button&&!1===a.ctrlKey&&"mouse"===a.pointerType&&(t(a),a.preventDefault())}),onKeyDown:(0,g.mK)(f.onKeyDown,a=>{let b=""!==o.current;a.ctrlKey||a.altKey||a.metaKey||1!==a.key.length||q(a.key),(!b||" "!==a.key)&&B.includes(a.key)&&(t(),a.preventDefault())})})})});Q.displayName=P;var R="SelectValue",S=d.forwardRef((a,b)=>{let{__scopeSelect:c,className:d,style:e,children:f,placeholder:g="",...h}=a,j=L(R,c),{onValueNodeHasChildrenChange:k}=j,l=void 0!==f,m=(0,i.s)(b,j.onValueNodeChange);return(0,v.N)(()=>{k(l)},[k,l]),(0,A.jsx)(r.sG.span,{...h,ref:m,style:{pointerEvents:"none"},children:ay(j.value)?(0,A.jsx)(A.Fragment,{children:g}):f})});S.displayName=R;var T=d.forwardRef((a,b)=>{let{__scopeSelect:c,children:d,...e}=a;return(0,A.jsx)(r.sG.span,{"aria-hidden":!0,...e,ref:b,children:d||"▼"})});T.displayName="SelectIcon";var U=a=>(0,A.jsx)(q.Z,{asChild:!0,...a});U.displayName="SelectPortal";var V="SelectContent",W=d.forwardRef((a,b)=>{let c=L(V,a.__scopeSelect),[f,g]=d.useState();return((0,v.N)(()=>{g(new DocumentFragment)},[]),c.open)?(0,A.jsx)($,{...a,ref:b}):f?e.createPortal((0,A.jsx)(X,{scope:a.__scopeSelect,children:(0,A.jsx)(E.Slot,{scope:a.__scopeSelect,children:(0,A.jsx)("div",{children:a.children})})}),f):null});W.displayName=V;var[X,Y]=H(V),Z=(0,s.TL)("SelectContent.RemoveScroll"),$=d.forwardRef((a,b)=>{let{__scopeSelect:c,position:e="item-aligned",onCloseAutoFocus:f,onEscapeKeyDown:h,onPointerDownOutside:j,side:k,sideOffset:o,align:p,alignOffset:q,arrowPadding:r,collisionBoundary:s,collisionPadding:t,sticky:u,hideWhenDetached:v,avoidCollisions:w,...x}=a,B=L(V,c),[C,D]=d.useState(null),[E,G]=d.useState(null),H=(0,i.s)(b,a=>D(a)),[I,J]=d.useState(null),[K,M]=d.useState(null),N=F(c),[O,P]=d.useState(!1),Q=d.useRef(!1);d.useEffect(()=>{if(C)return(0,y.Eq)(C)},[C]),(0,m.Oh)();let R=d.useCallback(a=>{let[b,...c]=N().map(a=>a.ref.current),[d]=c.slice(-1),e=document.activeElement;for(let c of a)if(c===e||(c?.scrollIntoView({block:"nearest"}),c===b&&E&&(E.scrollTop=0),c===d&&E&&(E.scrollTop=E.scrollHeight),c?.focus(),document.activeElement!==e))return},[N,E]),S=d.useCallback(()=>R([I,C]),[R,I,C]);d.useEffect(()=>{O&&S()},[O,S]);let{onOpenChange:T,triggerPointerDownPosRef:U}=B;d.useEffect(()=>{if(C){let a={x:0,y:0},b=b=>{a={x:Math.abs(Math.round(b.pageX)-(U.current?.x??0)),y:Math.abs(Math.round(b.pageY)-(U.current?.y??0))}},c=c=>{a.x<=10&&a.y<=10?c.preventDefault():C.contains(c.target)||T(!1),document.removeEventListener("pointermove",b),U.current=null};return null!==U.current&&(document.addEventListener("pointermove",b),document.addEventListener("pointerup",c,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",c,{capture:!0})}}},[C,T,U]),d.useEffect(()=>{let a=()=>T(!1);return window.addEventListener("blur",a),window.addEventListener("resize",a),()=>{window.removeEventListener("blur",a),window.removeEventListener("resize",a)}},[T]);let[W,Y]=az(a=>{let b=N().filter(a=>!a.disabled),c=b.find(a=>a.ref.current===document.activeElement),d=aA(b,a,c);d&&setTimeout(()=>d.ref.current.focus())}),$=d.useCallback((a,b,c)=>{let d=!Q.current&&!c;(void 0!==B.value&&B.value===b||d)&&(J(a),d&&(Q.current=!0))},[B.value]),ab=d.useCallback(()=>C?.focus(),[C]),ac=d.useCallback((a,b,c)=>{let d=!Q.current&&!c;(void 0!==B.value&&B.value===b||d)&&M(a)},[B.value]),ad="popper"===e?aa:_,ae=ad===aa?{side:k,sideOffset:o,align:p,alignOffset:q,arrowPadding:r,collisionBoundary:s,collisionPadding:t,sticky:u,hideWhenDetached:v,avoidCollisions:w}:{};return(0,A.jsx)(X,{scope:c,content:C,viewport:E,onViewportChange:G,itemRefCallback:$,selectedItem:I,onItemLeave:ab,itemTextRefCallback:ac,focusSelectedItem:S,selectedItemText:K,position:e,isPositioned:O,searchRef:W,children:(0,A.jsx)(z.A,{as:Z,allowPinchZoom:!0,children:(0,A.jsx)(n.n,{asChild:!0,trapped:B.open,onMountAutoFocus:a=>{a.preventDefault()},onUnmountAutoFocus:(0,g.mK)(f,a=>{B.trigger?.focus({preventScroll:!0}),a.preventDefault()}),children:(0,A.jsx)(l.qW,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:h,onPointerDownOutside:j,onFocusOutside:a=>a.preventDefault(),onDismiss:()=>B.onOpenChange(!1),children:(0,A.jsx)(ad,{role:"listbox",id:B.contentId,"data-state":B.open?"open":"closed",dir:B.dir,onContextMenu:a=>a.preventDefault(),...x,...ae,onPlaced:()=>P(!0),ref:H,style:{display:"flex",flexDirection:"column",outline:"none",...x.style},onKeyDown:(0,g.mK)(x.onKeyDown,a=>{let b=a.ctrlKey||a.altKey||a.metaKey;if("Tab"===a.key&&a.preventDefault(),b||1!==a.key.length||Y(a.key),["ArrowUp","ArrowDown","Home","End"].includes(a.key)){let b=N().filter(a=>!a.disabled).map(a=>a.ref.current);if(["ArrowUp","End"].includes(a.key)&&(b=b.slice().reverse()),["ArrowUp","ArrowDown"].includes(a.key)){let c=a.target,d=b.indexOf(c);b=b.slice(d+1)}setTimeout(()=>R(b)),a.preventDefault()}})})})})})})});$.displayName="SelectContentImpl";var _=d.forwardRef((a,b)=>{let{__scopeSelect:c,onPlaced:e,...g}=a,h=L(V,c),j=Y(V,c),[k,l]=d.useState(null),[m,n]=d.useState(null),o=(0,i.s)(b,a=>n(a)),p=F(c),q=d.useRef(!1),s=d.useRef(!0),{viewport:t,selectedItem:u,selectedItemText:w,focusSelectedItem:x}=j,y=d.useCallback(()=>{if(h.trigger&&h.valueNode&&k&&m&&t&&u&&w){let a=h.trigger.getBoundingClientRect(),b=m.getBoundingClientRect(),c=h.valueNode.getBoundingClientRect(),d=w.getBoundingClientRect();if("rtl"!==h.dir){let e=d.left-b.left,g=c.left-e,h=a.left-g,i=a.width+h,j=Math.max(i,b.width),l=window.innerWidth-10,m=(0,f.q)(g,[10,Math.max(10,l-j)]);k.style.minWidth=i+"px",k.style.left=m+"px"}else{let e=b.right-d.right,g=window.innerWidth-c.right-e,h=window.innerWidth-a.right-g,i=a.width+h,j=Math.max(i,b.width),l=window.innerWidth-10,m=(0,f.q)(g,[10,Math.max(10,l-j)]);k.style.minWidth=i+"px",k.style.right=m+"px"}let g=p(),i=window.innerHeight-20,j=t.scrollHeight,l=window.getComputedStyle(m),n=parseInt(l.borderTopWidth,10),o=parseInt(l.paddingTop,10),r=parseInt(l.borderBottomWidth,10),s=n+o+j+parseInt(l.paddingBottom,10)+r,v=Math.min(5*u.offsetHeight,s),x=window.getComputedStyle(t),y=parseInt(x.paddingTop,10),z=parseInt(x.paddingBottom,10),A=a.top+a.height/2-10,B=u.offsetHeight/2,C=n+o+(u.offsetTop+B);if(C<=A){let a=g.length>0&&u===g[g.length-1].ref.current;k.style.bottom="0px";let b=Math.max(i-A,B+(a?z:0)+(m.clientHeight-t.offsetTop-t.offsetHeight)+r);k.style.height=C+b+"px"}else{let a=g.length>0&&u===g[0].ref.current;k.style.top="0px";let b=Math.max(A,n+t.offsetTop+(a?y:0)+B);k.style.height=b+(s-C)+"px",t.scrollTop=C-A+t.offsetTop}k.style.margin="10px 0",k.style.minHeight=v+"px",k.style.maxHeight=i+"px",e?.(),requestAnimationFrame(()=>q.current=!0)}},[p,h.trigger,h.valueNode,k,m,t,u,w,h.dir,e]);(0,v.N)(()=>y(),[y]);let[z,B]=d.useState();(0,v.N)(()=>{m&&B(window.getComputedStyle(m).zIndex)},[m]);let C=d.useCallback(a=>{a&&!0===s.current&&(y(),x?.(),s.current=!1)},[y,x]);return(0,A.jsx)(ab,{scope:c,contentWrapper:k,shouldExpandOnScrollRef:q,onScrollButtonChange:C,children:(0,A.jsx)("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:z},children:(0,A.jsx)(r.sG.div,{...g,ref:o,style:{boxSizing:"border-box",maxHeight:"100%",...g.style}})})})});_.displayName="SelectItemAlignedPosition";var aa=d.forwardRef((a,b)=>{let{__scopeSelect:c,align:d="start",collisionPadding:e=10,...f}=a,g=J(c);return(0,A.jsx)(p.UC,{...g,...f,ref:b,align:d,collisionPadding:e,style:{boxSizing:"border-box",...f.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});aa.displayName="SelectPopperPosition";var[ab,ac]=H(V,{}),ad="SelectViewport",ae=d.forwardRef((a,b)=>{let{__scopeSelect:c,nonce:e,...f}=a,h=Y(ad,c),j=ac(ad,c),k=(0,i.s)(b,h.onViewportChange),l=d.useRef(0);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:e}),(0,A.jsx)(E.Slot,{scope:c,children:(0,A.jsx)(r.sG.div,{"data-radix-select-viewport":"",role:"presentation",...f,ref:k,style:{position:"relative",flex:1,overflow:"hidden auto",...f.style},onScroll:(0,g.mK)(f.onScroll,a=>{let b=a.currentTarget,{contentWrapper:c,shouldExpandOnScrollRef:d}=j;if(d?.current&&c){let a=Math.abs(l.current-b.scrollTop);if(a>0){let d=window.innerHeight-20,e=Math.max(parseFloat(c.style.minHeight),parseFloat(c.style.height));if(e<d){let f=e+a,g=Math.min(d,f),h=f-g;c.style.height=g+"px","0px"===c.style.bottom&&(b.scrollTop=h>0?h:0,c.style.justifyContent="flex-end")}}}l.current=b.scrollTop})})})]})});ae.displayName=ad;var af="SelectGroup",[ag,ah]=H(af);d.forwardRef((a,b)=>{let{__scopeSelect:c,...d}=a,e=(0,o.B)();return(0,A.jsx)(ag,{scope:c,id:e,children:(0,A.jsx)(r.sG.div,{role:"group","aria-labelledby":e,...d,ref:b})})}).displayName=af;var ai="SelectLabel";d.forwardRef((a,b)=>{let{__scopeSelect:c,...d}=a,e=ah(ai,c);return(0,A.jsx)(r.sG.div,{id:e.id,...d,ref:b})}).displayName=ai;var aj="SelectItem",[ak,al]=H(aj),am=d.forwardRef((a,b)=>{let{__scopeSelect:c,value:e,disabled:f=!1,textValue:h,...j}=a,k=L(aj,c),l=Y(aj,c),m=k.value===e,[n,p]=d.useState(h??""),[q,s]=d.useState(!1),t=(0,i.s)(b,a=>l.itemRefCallback?.(a,e,f)),u=(0,o.B)(),v=d.useRef("touch"),w=()=>{f||(k.onValueChange(e),k.onOpenChange(!1))};if(""===e)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,A.jsx)(ak,{scope:c,value:e,disabled:f,textId:u,isSelected:m,onItemTextChange:d.useCallback(a=>{p(b=>b||(a?.textContent??"").trim())},[]),children:(0,A.jsx)(E.ItemSlot,{scope:c,value:e,disabled:f,textValue:n,children:(0,A.jsx)(r.sG.div,{role:"option","aria-labelledby":u,"data-highlighted":q?"":void 0,"aria-selected":m&&q,"data-state":m?"checked":"unchecked","aria-disabled":f||void 0,"data-disabled":f?"":void 0,tabIndex:f?void 0:-1,...j,ref:t,onFocus:(0,g.mK)(j.onFocus,()=>s(!0)),onBlur:(0,g.mK)(j.onBlur,()=>s(!1)),onClick:(0,g.mK)(j.onClick,()=>{"mouse"!==v.current&&w()}),onPointerUp:(0,g.mK)(j.onPointerUp,()=>{"mouse"===v.current&&w()}),onPointerDown:(0,g.mK)(j.onPointerDown,a=>{v.current=a.pointerType}),onPointerMove:(0,g.mK)(j.onPointerMove,a=>{v.current=a.pointerType,f?l.onItemLeave?.():"mouse"===v.current&&a.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,g.mK)(j.onPointerLeave,a=>{a.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:(0,g.mK)(j.onKeyDown,a=>{(l.searchRef?.current===""||" "!==a.key)&&(C.includes(a.key)&&w()," "===a.key&&a.preventDefault())})})})})});am.displayName=aj;var an="SelectItemText",ao=d.forwardRef((a,b)=>{let{__scopeSelect:c,className:f,style:g,...h}=a,j=L(an,c),k=Y(an,c),l=al(an,c),m=N(an,c),[n,o]=d.useState(null),p=(0,i.s)(b,a=>o(a),l.onItemTextChange,a=>k.itemTextRefCallback?.(a,l.value,l.disabled)),q=n?.textContent,s=d.useMemo(()=>(0,A.jsx)("option",{value:l.value,disabled:l.disabled,children:q},l.value),[l.disabled,l.value,q]),{onNativeOptionAdd:t,onNativeOptionRemove:u}=m;return(0,v.N)(()=>(t(s),()=>u(s)),[t,u,s]),(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(r.sG.span,{id:l.textId,...h,ref:p}),l.isSelected&&j.valueNode&&!j.valueNodeHasChildren?e.createPortal(h.children,j.valueNode):null]})});ao.displayName=an;var ap="SelectItemIndicator",aq=d.forwardRef((a,b)=>{let{__scopeSelect:c,...d}=a;return al(ap,c).isSelected?(0,A.jsx)(r.sG.span,{"aria-hidden":!0,...d,ref:b}):null});aq.displayName=ap;var ar="SelectScrollUpButton",as=d.forwardRef((a,b)=>{let c=Y(ar,a.__scopeSelect),e=ac(ar,a.__scopeSelect),[f,g]=d.useState(!1),h=(0,i.s)(b,e.onScrollButtonChange);return(0,v.N)(()=>{if(c.viewport&&c.isPositioned){let a=function(){g(b.scrollTop>0)},b=c.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[c.viewport,c.isPositioned]),f?(0,A.jsx)(av,{...a,ref:h,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=c;a&&b&&(a.scrollTop=a.scrollTop-b.offsetHeight)}}):null});as.displayName=ar;var at="SelectScrollDownButton",au=d.forwardRef((a,b)=>{let c=Y(at,a.__scopeSelect),e=ac(at,a.__scopeSelect),[f,g]=d.useState(!1),h=(0,i.s)(b,e.onScrollButtonChange);return(0,v.N)(()=>{if(c.viewport&&c.isPositioned){let a=function(){let a=b.scrollHeight-b.clientHeight;g(Math.ceil(b.scrollTop)<a)},b=c.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[c.viewport,c.isPositioned]),f?(0,A.jsx)(av,{...a,ref:h,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=c;a&&b&&(a.scrollTop=a.scrollTop+b.offsetHeight)}}):null});au.displayName=at;var av=d.forwardRef((a,b)=>{let{__scopeSelect:c,onAutoScroll:e,...f}=a,h=Y("SelectScrollButton",c),i=d.useRef(null),j=F(c),k=d.useCallback(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return d.useEffect(()=>()=>k(),[k]),(0,v.N)(()=>{let a=j().find(a=>a.ref.current===document.activeElement);a?.ref.current?.scrollIntoView({block:"nearest"})},[j]),(0,A.jsx)(r.sG.div,{"aria-hidden":!0,...f,ref:b,style:{flexShrink:0,...f.style},onPointerDown:(0,g.mK)(f.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(e,50))}),onPointerMove:(0,g.mK)(f.onPointerMove,()=>{h.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(e,50))}),onPointerLeave:(0,g.mK)(f.onPointerLeave,()=>{k()})})});d.forwardRef((a,b)=>{let{__scopeSelect:c,...d}=a;return(0,A.jsx)(r.sG.div,{"aria-hidden":!0,...d,ref:b})}).displayName="SelectSeparator";var aw="SelectArrow";d.forwardRef((a,b)=>{let{__scopeSelect:c,...d}=a,e=J(c),f=L(aw,c),g=Y(aw,c);return f.open&&"popper"===g.position?(0,A.jsx)(p.i3,{...e,...d,ref:b}):null}).displayName=aw;var ax=d.forwardRef(({__scopeSelect:a,value:b,...c},e)=>{let f=d.useRef(null),g=(0,i.s)(e,f),h=(0,w.Z)(b);return d.useEffect(()=>{let a=f.current;if(!a)return;let c=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(h!==b&&c){let d=new Event("change",{bubbles:!0});c.call(a,b),a.dispatchEvent(d)}},[h,b]),(0,A.jsx)(r.sG.select,{...c,style:{...x.Qg,...c.style},ref:g,defaultValue:b})});function ay(a){return""===a||void 0===a}function az(a){let b=(0,t.c)(a),c=d.useRef(""),e=d.useRef(0),f=d.useCallback(a=>{let d=c.current+a;b(d),function a(b){c.current=b,window.clearTimeout(e.current),""!==b&&(e.current=window.setTimeout(()=>a(""),1e3))}(d)},[b]),g=d.useCallback(()=>{c.current="",window.clearTimeout(e.current)},[]);return d.useEffect(()=>()=>window.clearTimeout(e.current),[]),[c,f,g]}function aA(a,b,c){var d,e;let f=b.length>1&&Array.from(b).every(a=>a===b[0])?b[0]:b,g=c?a.indexOf(c):-1,h=(d=a,e=Math.max(g,0),d.map((a,b)=>d[(e+b)%d.length]));1===f.length&&(h=h.filter(a=>a!==c));let i=h.find(a=>a.textValue.toLowerCase().startsWith(f.toLowerCase()));return i!==c?i:void 0}ax.displayName="SelectBubbleInput";var aB=O,aC=Q,aD=S,aE=T,aF=U,aG=W,aH=ae,aI=am,aJ=ao,aK=aq,aL=as,aM=au},67048:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(89892).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},82087:(a,b,c)=>{c.d(b,{Z:()=>e});var d=c(14450);function e(a){let b=d.useRef({value:a,previous:a});return d.useMemo(()=>(b.current.value!==a&&(b.current.previous=b.current.value,b.current.value=a),b.current.previous),[a])}}};
|