@inkeep/agents-manage-ui 0.22.11 → 0.23.0

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