@inkeep/agents-manage-ui 0.26.0 → 0.26.2

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