@inkeep/agents-manage-ui 0.24.1 → 0.24.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 (274) 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 +147 -171
  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 +3 -3
  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_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  75. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
  78. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-preview/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  82. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +3 -3
  84. package/.next/standalone/agents-manage-ui/.next/server/chunks/1613.js +14 -0
  85. package/.next/standalone/agents-manage-ui/.next/server/chunks/{5109.js → 3468.js} +2 -2
  86. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/chunks/4653.js +196 -0
  88. package/.next/standalone/agents-manage-ui/.next/server/chunks/5262.js +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/chunks/5450.js +2 -2
  90. package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/chunks/6035.js +1 -0
  92. package/.next/standalone/agents-manage-ui/.next/server/chunks/6721.js +4 -4
  93. package/.next/standalone/agents-manage-ui/.next/server/chunks/6747.js +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/chunks/707.js +4 -0
  95. package/.next/standalone/agents-manage-ui/.next/server/chunks/7988.js +2 -2
  96. package/.next/standalone/agents-manage-ui/.next/server/chunks/8526.js +1 -0
  97. package/.next/standalone/agents-manage-ui/.next/server/chunks/8884.js +1 -4
  98. package/.next/standalone/agents-manage-ui/.next/server/chunks/9122.js +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/chunks/9128.js +1 -0
  100. package/.next/standalone/agents-manage-ui/.next/server/chunks/9222.js +4080 -0
  101. package/.next/standalone/agents-manage-ui/.next/server/chunks/{1524.js → 9234.js} +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  103. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  106. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/static/chunks/{16631-6c857871fa924141.js → 16631-e313c6f18339824b.js} +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/static/chunks/17022-540bbf991b193531.js +1 -0
  109. package/.next/standalone/agents-manage-ui/.next/static/chunks/18726-cd04df960a499e08.js +1 -0
  110. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-d77f86e28c8ac7aa.js +1 -0
  111. package/.next/standalone/agents-manage-ui/.next/static/chunks/23364-08749556f2446cad.js +1 -0
  112. package/.next/standalone/agents-manage-ui/.next/static/chunks/{79423-ed95cf583a063427.js → 23650-279b019c0d10672a.js} +3 -3
  113. package/.next/standalone/agents-manage-ui/.next/static/chunks/36551-09ba51a7603b6640.js +1 -0
  114. package/.next/standalone/agents-manage-ui/.next/static/chunks/48869-3adeab47774071e4.js +1 -0
  115. package/.next/standalone/agents-manage-ui/.next/static/chunks/{30721-9fe13c117a9408a9.js → 67132-6a36ac852bc82474.js} +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/70613-cb7a1ac35bddb6bf.js +1 -0
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/78225-5445b2afb05249db.js +1 -0
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/85232-22a9d60836ca811e.js +1 -0
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/86507-340cc6112e9218de.js +2 -0
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/87193-3d26f0490b9b0a29.js +25 -0
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/{68637-2ab8e9a5394e8525.js → 96982-3db869dc9ca83c87.js} +2 -2
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading-deaaaaef5d47014d.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-fdbebdb8c3371c73.js → page-9b08f45294a2041b.js} +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/loading-7c6d3a56c46ab4e4.js +1 -0
  125. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/loading-deaaaaef5d47014d.js +1 -0
  126. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-633b2ccbc49cb865.js +1 -0
  127. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-31799b84d22395a9.js +1 -0
  128. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-4f45e4faafd17dea.js +1 -0
  129. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-f4a38461a135be91.js +1 -0
  130. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-7c6d3a56c46ab4e4.js +1 -0
  131. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-5debce906045b390.js +1 -0
  132. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-689b7881ec533096.js +1 -0
  133. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-2551beb91f3aa6e6.js → page-2affd4f21c17e73d.js} +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-7c6d3a56c46ab4e4.js +1 -0
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-089d6e9a7adc24d0.js +1 -0
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-9b370b3ff69e1891.js +1 -0
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-c3bd0a85e2c23715.js +1 -0
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-637284cef2f03cfa.js +1 -0
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-7c6d3a56c46ab4e4.js +1 -0
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-effcc7ad7a251c11.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-accc8e5a5d324305.js +1 -0
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-9ab6b0b2810d46ab.js +1 -0
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/layout-1a97adf59dd6a2fe.js +1 -0
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-00d3bd4e0e0283ca.js +1 -0
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-d9421c0fe814f7ee.js +1 -0
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-deaaaaef5d47014d.js +1 -0
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-c7df640ea2699c60.js +1 -0
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-19309f8dea87d91d.js +1 -0
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-60d99eca498e8ca9.js +1 -0
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/{page-d7f81fb8018ccb8f.js → page-3b222f3ae3101ba8.js} +1 -1
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-4e07cce32c8cfa4c.js +1 -0
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-6201459e626dfd90.js +1 -0
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/error-f9cda97c25875770.js +1 -0
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-7c6d3a56c46ab4e4.js +1 -0
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-76b7b5622c4726f8.js +1 -0
  156. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-2494491bcdc2dd72.js +1 -0
  157. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/not-found-1a97adf59dd6a2fe.js +1 -0
  158. package/.next/standalone/agents-manage-ui/package.json +2 -2
  159. package/.next/standalone/packages/agents-core/package.json +1 -1
  160. package/package.json +5 -5
  161. package/src/app/[tenantId]/page.tsx +1 -1
  162. package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +3 -5
  163. package/src/app/[tenantId]/projects/[projectId]/agents/new/page.tsx +1 -3
  164. package/src/app/[tenantId]/projects/[projectId]/agents/page.tsx +1 -5
  165. package/src/app/[tenantId]/projects/[projectId]/api-keys/page.tsx +1 -5
  166. package/src/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.tsx +3 -9
  167. package/src/app/[tenantId]/projects/[projectId]/artifacts/new/page.tsx +3 -5
  168. package/src/app/[tenantId]/projects/[projectId]/artifacts/page.tsx +3 -5
  169. package/src/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.tsx +3 -9
  170. package/src/app/[tenantId]/projects/[projectId]/components/new/page.tsx +3 -5
  171. package/src/app/[tenantId]/projects/[projectId]/components/page.tsx +3 -5
  172. package/src/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.tsx +1 -7
  173. package/src/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.tsx +1 -3
  174. package/src/app/[tenantId]/projects/[projectId]/credentials/new/page.tsx +3 -4
  175. package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.tsx +3 -9
  176. package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.tsx +1 -3
  177. package/src/app/[tenantId]/projects/[projectId]/credentials/page.tsx +1 -3
  178. package/src/app/[tenantId]/projects/[projectId]/layout.tsx +4 -7
  179. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.tsx +3 -7
  180. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.tsx +3 -5
  181. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout.tsx +1 -4
  182. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.tsx +1 -3
  183. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/page.tsx +1 -3
  184. package/src/app/[tenantId]/projects/[projectId]/settings/page.tsx +3 -8
  185. package/src/app/[tenantId]/projects/page.tsx +1 -1
  186. package/src/app/api/data-components/[dataComponentId]/generate-preview/route.ts +4 -7
  187. package/src/app/api/signoz/conversations/[conversationId]/route.ts +3 -6
  188. package/src/components/agent/agent.tsx +3 -3
  189. package/src/components/agent/playground/chat-widget.tsx +2 -2
  190. package/src/components/agent/playground/playground.tsx +2 -2
  191. package/src/components/agent/sidepane/metadata/metadata-editor.tsx +4 -4
  192. package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +22 -4
  193. package/src/components/artifact-components/delete-artifact-component-confirmation.tsx +7 -1
  194. package/src/components/artifact-components/form/artifact-component-form.tsx +64 -41
  195. package/src/components/credentials/credential-tools-list.tsx +5 -4
  196. package/src/components/credentials/views/credential-form.tsx +1 -1
  197. package/src/components/credentials/views/edit-credential-form.tsx +112 -70
  198. package/src/components/data-components/delete-data-component-confirmation.tsx +7 -1
  199. package/src/components/data-components/form/data-component-form.tsx +87 -64
  200. package/src/components/data-components/preview/component-preview-generator.tsx +7 -0
  201. package/src/components/mcp-servers/form/mcp-server-form.tsx +51 -8
  202. package/src/components/mcp-servers/selection/mcp-server-selection.tsx +3 -3
  203. package/src/components/ui/info-card.tsx +7 -5
  204. package/src/features/agent/domain/deserialize.ts +2 -2
  205. package/src/features/agent/domain/serialize.ts +13 -4
  206. package/src/hooks/use-auto-prefill-id-zustand.ts +2 -2
  207. package/src/hooks/use-auto-prefill-id.ts +2 -2
  208. package/src/hooks/use-node-editor.ts +18 -1
  209. package/src/lib/actions/artifact-components.ts +0 -1
  210. package/src/lib/actions/credentials.ts +0 -1
  211. package/src/lib/actions/data-components.ts +0 -1
  212. package/src/lib/actions/tools.ts +6 -4
  213. package/src/lib/utils/generate-id.ts +1 -1
  214. package/src/lib/utils/id-utils.ts +4 -0
  215. package/.next/standalone/agents-manage-ui/.next/server/chunks/2584.js +0 -14
  216. package/.next/standalone/agents-manage-ui/.next/server/chunks/526.js +0 -1
  217. package/.next/standalone/agents-manage-ui/.next/server/chunks/5478.js +0 -4080
  218. package/.next/standalone/agents-manage-ui/.next/server/chunks/6503.js +0 -1
  219. package/.next/standalone/agents-manage-ui/.next/server/chunks/7733.js +0 -1
  220. package/.next/standalone/agents-manage-ui/.next/server/chunks/7848.js +0 -1
  221. package/.next/standalone/agents-manage-ui/.next/server/chunks/8038.js +0 -196
  222. package/.next/standalone/agents-manage-ui/.next/static/chunks/1499-20f18a3858daee94.js +0 -1
  223. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-f8b0d86a8303f4c3.js +0 -1
  224. package/.next/standalone/agents-manage-ui/.next/static/chunks/20982-49c49e2dfe9b7055.js +0 -2
  225. package/.next/standalone/agents-manage-ui/.next/static/chunks/24994-975eb584d5b2438a.js +0 -1
  226. package/.next/standalone/agents-manage-ui/.next/static/chunks/35250-5a05e05770ea8f06.js +0 -1
  227. package/.next/standalone/agents-manage-ui/.next/static/chunks/39438-3324f04d95405812.js +0 -1
  228. package/.next/standalone/agents-manage-ui/.next/static/chunks/44251-15d8824c35b7ca83.js +0 -1
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/47259-95ea98b229d39774.js +0 -1
  230. package/.next/standalone/agents-manage-ui/.next/static/chunks/48949-692c5f8265558813.js +0 -1
  231. package/.next/standalone/agents-manage-ui/.next/static/chunks/58124-080a600083669e79.js +0 -1
  232. package/.next/standalone/agents-manage-ui/.next/static/chunks/63569-33a7ac3e7076968e.js +0 -1
  233. package/.next/standalone/agents-manage-ui/.next/static/chunks/63969-591c2e039348bc39.js +0 -1
  234. package/.next/standalone/agents-manage-ui/.next/static/chunks/6481-def23a19cb7832d7.js +0 -1
  235. package/.next/standalone/agents-manage-ui/.next/static/chunks/74206-85aa3065dce9dc8a.js +0 -1
  236. package/.next/standalone/agents-manage-ui/.next/static/chunks/76125-82ebb14b304cfe0b.js +0 -25
  237. package/.next/standalone/agents-manage-ui/.next/static/chunks/78225-17ad3e82fb563fc9.js +0 -1
  238. package/.next/standalone/agents-manage-ui/.next/static/chunks/92160-0e9ba9d3fc9f7a53.js +0 -1
  239. package/.next/standalone/agents-manage-ui/.next/static/chunks/94167-1d0eb19e0f384370.js +0 -1
  240. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading-9bfadd2bfe02c9c2.js +0 -1
  241. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/loading-5c7849713f85ab22.js +0 -1
  242. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/loading-9bfadd2bfe02c9c2.js +0 -1
  243. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-bc76e9554c5d2341.js +0 -1
  244. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-4c5fb257a6233694.js +0 -1
  245. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-5158b01426eb0f32.js +0 -1
  246. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-75c72891b2f2923c.js +0 -1
  247. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-5c7849713f85ab22.js +0 -1
  248. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-4cae1de757715499.js +0 -1
  249. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-528fffe4fc232ff4.js +0 -1
  250. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-5c7849713f85ab22.js +0 -1
  251. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-05a78b9d37131b1a.js +0 -1
  252. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-d238c502f632f4e0.js +0 -1
  253. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-3655f333086c211d.js +0 -1
  254. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-20579bf7a4fb87d3.js +0 -1
  255. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-5c7849713f85ab22.js +0 -1
  256. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-f109a80577d83568.js +0 -1
  257. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-07db6760153791ce.js +0 -1
  258. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-9eafe11017316482.js +0 -1
  259. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/layout-0f84ce3202492bc1.js +0 -1
  260. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-b52db9884e7955e1.js +0 -1
  261. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-5b25bf3f3967c268.js +0 -1
  262. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-9bfadd2bfe02c9c2.js +0 -1
  263. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-d970759f74621cfe.js +0 -1
  264. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-57be5eb54ad97e11.js +0 -1
  265. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-11cfe0365b56c6b2.js +0 -1
  266. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-73c7ac508b857ff8.js +0 -1
  267. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-bb2b8d64b23cf563.js +0 -1
  268. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/error-a4c58861fad98c65.js +0 -1
  269. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-5c7849713f85ab22.js +0 -1
  270. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-cf6f4f3394d4813d.js +0 -1
  271. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-d83e519e9bcc6269.js +0 -1
  272. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/not-found-4fc170fc11e5aaec.js +0 -1
  273. /package/.next/standalone/agents-manage-ui/.next/static/{TwV2TGtXdOiFkslre7D-k → 4HTfKGfjXenctXjz8hNi9}/_buildManifest.js +0 -0
  274. /package/.next/standalone/agents-manage-ui/.next/static/{TwV2TGtXdOiFkslre7D-k → 4HTfKGfjXenctXjz8hNi9}/_ssgManifest.js +0 -0
@@ -3,6 +3,7 @@
3
3
  import { zodResolver } from '@hookform/resolvers/zod';
4
4
  import { CredentialStoreType } from '@inkeep/agents-core/client-exports';
5
5
  import { useRouter } from 'next/navigation';
6
+ import { useState } from 'react';
6
7
  import { useForm } from 'react-hook-form';
7
8
  import { toast } from 'sonner';
8
9
  import { z } from 'zod';
@@ -10,10 +11,13 @@ import { CredentialToolsList } from '@/components/credentials/credential-tools-l
10
11
  import { GenericInput } from '@/components/form/generic-input';
11
12
  import { GenericKeyValueInput } from '@/components/form/generic-key-value-input';
12
13
  import { Button } from '@/components/ui/button';
14
+ import { DeleteConfirmation } from '@/components/ui/delete-confirmation';
15
+ import { Dialog, DialogTrigger } from '@/components/ui/dialog';
13
16
  import { Form } from '@/components/ui/form';
14
17
  import { InfoCard } from '@/components/ui/info-card';
15
18
  import { Input } from '@/components/ui/input';
16
19
  import { Label } from '@/components/ui/label';
20
+ import { deleteCredentialAction } from '@/lib/actions/credentials';
17
21
  import { type Credential, updateCredential } from '@/lib/api/credentials';
18
22
  import { setNangoConnectionMetadata } from '@/lib/mcp-tools/nango';
19
23
 
@@ -55,6 +59,8 @@ export function EditCredentialForm({
55
59
  initialFormData,
56
60
  }: EditCredentialFormProps) {
57
61
  const router = useRouter();
62
+ const [isDeleteOpen, setIsDeleteOpen] = useState(false);
63
+ const [isDeleting, setIsDeleting] = useState(false);
58
64
 
59
65
  const form = useForm({
60
66
  resolver: zodResolver(editCredentialFormSchema),
@@ -97,79 +103,115 @@ export function EditCredentialForm({
97
103
  await handleUpdateCredential(data);
98
104
  };
99
105
 
106
+ const handleDelete = async () => {
107
+ setIsDeleting(true);
108
+ try {
109
+ const result = await deleteCredentialAction(tenantId, projectId, credential.id);
110
+ if (result.success) {
111
+ setIsDeleteOpen(false);
112
+ toast.success('Credential deleted.');
113
+ router.push(`/${tenantId}/projects/${projectId}/credentials`);
114
+ } else {
115
+ toast.error(result.error);
116
+ }
117
+ } finally {
118
+ setIsDeleting(false);
119
+ }
120
+ };
121
+
100
122
  return (
101
- <Form {...form}>
102
- <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
103
- {/* Credential Details Section */}
104
- <div className="space-y-8">
105
- <GenericInput
106
- control={form.control}
107
- name="name"
108
- label="Name"
109
- placeholder="e.g., production-api-key"
110
- disabled={true}
111
- />
112
-
113
- {/* Credential Type Display */}
114
- <div className="space-y-3">
115
- <Label>Credential type</Label>
116
- <Input type="text" disabled={true} value={getCredentialType(credential)} />
117
- {getCredentialType(credential) === 'Bearer Auth' && (
118
- <InfoCard title="How this works">
119
- <p>
120
- When your agent connects to the MCP server, this API key will be automatically
121
- sent as an authentication header:
122
- </p>
123
- <p className="my-2">
124
- <code className="bg-background px-1.5 py-0.5 rounded border">
125
- Authorization: Bearer your-api-key-here
126
- </code>
127
- </p>
128
- <p>This ensures secure access to the server's tools and data.</p>
129
- </InfoCard>
123
+ <Dialog open={isDeleteOpen} onOpenChange={setIsDeleteOpen}>
124
+ <Form {...form}>
125
+ <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
126
+ {/* Credential Details Section */}
127
+ <div className="space-y-8">
128
+ <GenericInput
129
+ control={form.control}
130
+ name="name"
131
+ label="Name"
132
+ placeholder="e.g., production-api-key"
133
+ disabled={true}
134
+ />
135
+
136
+ {/* Credential Type Display */}
137
+ <div className="space-y-3">
138
+ <Label>Credential type</Label>
139
+ <Input type="text" disabled={true} value={getCredentialType(credential)} />
140
+ {getCredentialType(credential) === 'Bearer Auth' && (
141
+ <InfoCard title="How this works">
142
+ <p>
143
+ When your agent connects to the MCP server, this API key will be automatically
144
+ sent as an authentication header:
145
+ </p>
146
+ <p className="my-2">
147
+ <code className="bg-background px-1.5 py-0.5 rounded border">
148
+ Authorization: Bearer your-api-key-here
149
+ </code>
150
+ </p>
151
+ <p>This ensures secure access to the server's tools and data.</p>
152
+ </InfoCard>
153
+ )}
154
+ </div>
155
+
156
+ {/* Metadata / Headers Section */}
157
+ {credential.type === CredentialStoreType.nango && (
158
+ <div className="space-y-3">
159
+ <GenericKeyValueInput
160
+ control={form.control}
161
+ name="metadata"
162
+ label="Headers (optional)"
163
+ keyPlaceholder="Header name (e.g., X-API-Key)"
164
+ valuePlaceholder="Header value"
165
+ />
166
+ <InfoCard title="How this works">
167
+ <p className="mb-2">
168
+ Add extra headers to be included with authentication requests.
169
+ </p>
170
+ <p>
171
+ Examples:{' '}
172
+ <code className="bg-background px-1.5 py-0.5 rounded border mx-1">
173
+ User-Agent
174
+ </code>
175
+ <code className="bg-background px-1.5 py-0.5 rounded border mx-1">
176
+ X-API-Key
177
+ </code>
178
+ <code className="bg-background px-1.5 py-0.5 rounded border mx-1">
179
+ Content-Type
180
+ </code>
181
+ </p>
182
+ </InfoCard>
183
+ </div>
130
184
  )}
185
+
186
+ {/* MCP Servers Using This Credential */}
187
+ <CredentialToolsList
188
+ tools={credential.tools}
189
+ tenantId={tenantId}
190
+ projectId={projectId}
191
+ />
131
192
  </div>
132
193
 
133
- {/* Metadata Section */}
134
- {credential.type === CredentialStoreType.nango && (
135
- <div className="space-y-3">
136
- <GenericKeyValueInput
137
- control={form.control}
138
- name="metadata"
139
- label="Metadata (optional)"
140
- keyPlaceholder="Header name (e.g., X-API-Key)"
141
- valuePlaceholder="Header value"
142
- />
143
- <div className="text-xs text-muted-foreground p-3 bg-muted/30 rounded-md">
144
- <p className="mb-2">
145
- Add extra headers to be included with authentication requests.
146
- </p>
147
- <p>
148
- Examples:{' '}
149
- <code className="bg-background px-1.5 py-0.5 rounded border mx-1">
150
- User-Agent
151
- </code>
152
- <code className="bg-background px-1.5 py-0.5 rounded border mx-1">X-API-Key</code>
153
- <code className="bg-background px-1.5 py-0.5 rounded border mx-1">
154
- Content-Type
155
- </code>
156
- </p>
157
- </div>
158
- </div>
159
- )}
160
-
161
- {/* MCP Servers Using This Credential */}
162
- <CredentialToolsList tools={credential.tools} tenantId={tenantId} projectId={projectId} />
163
- </div>
164
-
165
- <div className="flex gap-3 pt-4">
166
- {credential.type === CredentialStoreType.nango && (
167
- <Button type="submit" disabled={isSubmitting}>
168
- Save
169
- </Button>
170
- )}
171
- </div>
172
- </form>
173
- </Form>
194
+ <div className="flex w-full justify-between">
195
+ {credential.type === CredentialStoreType.nango && (
196
+ <Button type="submit" disabled={isSubmitting}>
197
+ Save
198
+ </Button>
199
+ )}
200
+ <DialogTrigger asChild>
201
+ <Button type="button" variant="secondary">
202
+ Delete Credential
203
+ </Button>
204
+ </DialogTrigger>
205
+ </div>
206
+ </form>
207
+ </Form>
208
+ {isDeleteOpen && (
209
+ <DeleteConfirmation
210
+ itemName={credential.id || 'this credential'}
211
+ isSubmitting={isDeleting}
212
+ onDelete={handleDelete}
213
+ />
214
+ )}
215
+ </Dialog>
174
216
  );
175
217
  }
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { useParams } from 'next/navigation';
3
+ import { useParams, useRouter } from 'next/navigation';
4
4
  import { useState } from 'react';
5
5
  import { toast } from 'sonner';
6
6
  import { DeleteConfirmation } from '@/components/ui/delete-confirmation';
@@ -10,17 +10,20 @@ interface DeleteDataComponentConfirmationProps {
10
10
  dataComponentId: string;
11
11
  dataComponentName?: string;
12
12
  setIsOpen: (isOpen: boolean) => void;
13
+ redirectOnDelete?: boolean;
13
14
  }
14
15
 
15
16
  export function DeleteDataComponentConfirmation({
16
17
  dataComponentId,
17
18
  dataComponentName,
18
19
  setIsOpen,
20
+ redirectOnDelete = false,
19
21
  }: DeleteDataComponentConfirmationProps) {
20
22
  const { tenantId, projectId } = useParams<{
21
23
  tenantId: string;
22
24
  projectId: string;
23
25
  }>();
26
+ const router = useRouter();
24
27
  const [isSubmitting, setIsSubmitting] = useState(false);
25
28
 
26
29
  const handleDelete = async () => {
@@ -30,6 +33,9 @@ export function DeleteDataComponentConfirmation({
30
33
  if (result.success) {
31
34
  setIsOpen(false);
32
35
  toast.success('Component deleted.');
36
+ if (redirectOnDelete) {
37
+ router.push(`/${tenantId}/projects/${projectId}/components`);
38
+ }
33
39
  } else {
34
40
  toast.error(result.error);
35
41
  }
@@ -2,12 +2,14 @@
2
2
 
3
3
  import { zodResolver } from '@hookform/resolvers/zod';
4
4
  import { useRouter } from 'next/navigation';
5
+ import { useState } from 'react';
5
6
  import { useForm } from 'react-hook-form';
6
7
  import { toast } from 'sonner';
7
8
  import { GenericInput } from '@/components/form/generic-input';
8
9
  import { GenericTextarea } from '@/components/form/generic-textarea';
9
10
  import { JsonSchemaInput } from '@/components/form/json-schema-input';
10
11
  import { Button } from '@/components/ui/button';
12
+ import { Dialog, DialogTrigger } from '@/components/ui/dialog';
11
13
  import { ExternalLink } from '@/components/ui/external-link';
12
14
  import { Form } from '@/components/ui/form';
13
15
  import { useAutoPrefillId } from '@/hooks/use-auto-prefill-id';
@@ -17,6 +19,7 @@ import {
17
19
  } from '@/lib/actions/data-components';
18
20
  import type { DataComponent } from '@/lib/api/data-components';
19
21
  import { formatJsonField } from '@/lib/utils';
22
+ import { DeleteDataComponentConfirmation } from '../delete-data-component-confirmation';
20
23
  import { ComponentPreviewGenerator } from '../preview/component-preview-generator';
21
24
  import { defaultValues } from './form-configuration';
22
25
  import { type DataComponentFormData, dataComponentSchema } from './validation';
@@ -44,6 +47,7 @@ export function DataComponentForm({
44
47
  id,
45
48
  initialData,
46
49
  }: DataComponentFormProps) {
50
+ const [isDeleteOpen, setIsDeleteOpen] = useState(false);
47
51
  const form = useForm<DataComponentFormData>({
48
52
  resolver: zodResolver(dataComponentSchema),
49
53
  defaultValues: formatFormData(initialData),
@@ -87,71 +91,90 @@ export function DataComponentForm({
87
91
  };
88
92
 
89
93
  return (
90
- <Form {...form}>
91
- <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
92
- <GenericInput
93
- control={form.control}
94
- name="name"
95
- label="Name"
96
- placeholder="ListOrders"
97
- description={
98
- <>
99
- This name is used to identify the component in chat widget integration.{' '}
100
- <ExternalLink
101
- href="https://docs.inkeep.com/typescript-sdk/structured-outputs/data-components#frontend-integration"
102
- target="_blank"
103
- >
104
- Learn more
105
- </ExternalLink>
106
- </>
107
- }
108
- isRequired
109
- />
110
- <GenericInput
111
- control={form.control}
112
- name="id"
113
- label="Id"
114
- placeholder="my-data-component"
115
- disabled={!!id}
116
- description={
117
- id
118
- ? ''
119
- : 'Choose a unique identifier for this component. Using an existing id will replace that component.'
120
- }
121
- isRequired
122
- />
123
- <GenericTextarea
124
- control={form.control}
125
- name="description"
126
- label="Description"
127
- placeholder="Display a list of user orders with interactive options"
128
- className="min-h-[80px]"
129
- isRequired
130
- />
131
- <JsonSchemaInput
132
- control={form.control}
133
- name="props"
134
- label="Props (JSON schema)"
135
- placeholder="Enter a valid JSON Schema..."
136
- isRequired
137
- />
138
-
139
- {id && (
140
- <ComponentPreviewGenerator
141
- tenantId={tenantId}
142
- projectId={projectId}
143
- dataComponentId={id}
144
- existingPreview={initialData?.preview || null}
145
- onPreviewChanged={(preview) => {
146
- form.setValue('preview', preview);
147
- }}
94
+ <Dialog open={isDeleteOpen} onOpenChange={setIsDeleteOpen}>
95
+ <Form {...form}>
96
+ <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
97
+ <GenericInput
98
+ control={form.control}
99
+ name="name"
100
+ label="Name"
101
+ placeholder="ListOrders"
102
+ description={
103
+ <>
104
+ This name is used to identify the component in chat widget integration.{' '}
105
+ <ExternalLink
106
+ href="https://docs.inkeep.com/typescript-sdk/structured-outputs/data-components#frontend-integration"
107
+ target="_blank"
108
+ >
109
+ Learn more
110
+ </ExternalLink>
111
+ </>
112
+ }
113
+ isRequired
114
+ />
115
+ <GenericInput
116
+ control={form.control}
117
+ name="id"
118
+ label="Id"
119
+ placeholder="my-data-component"
120
+ disabled={!!id}
121
+ description={
122
+ id
123
+ ? ''
124
+ : 'Choose a unique identifier for this component. Using an existing id will replace that component.'
125
+ }
126
+ isRequired
127
+ />
128
+ <GenericTextarea
129
+ control={form.control}
130
+ name="description"
131
+ label="Description"
132
+ placeholder="Display a list of user orders with interactive options"
133
+ className="min-h-[80px]"
134
+ isRequired
135
+ />
136
+ <JsonSchemaInput
137
+ control={form.control}
138
+ name="props"
139
+ label="Props (JSON schema)"
140
+ placeholder="Enter a valid JSON Schema..."
141
+ isRequired
148
142
  />
149
- )}
150
143
 
151
- <Button type="submit" disabled={isSubmitting}>
152
- Save
153
- </Button>
154
- </form>
155
- </Form>
144
+ {id && (
145
+ <ComponentPreviewGenerator
146
+ tenantId={tenantId}
147
+ projectId={projectId}
148
+ dataComponentId={id}
149
+ existingPreview={initialData?.preview || null}
150
+ onPreviewChanged={(preview) => {
151
+ form.setValue('preview', preview);
152
+ }}
153
+ />
154
+ )}
155
+
156
+ <div className="flex w-full justify-between">
157
+ <Button type="submit" disabled={isSubmitting}>
158
+ Save
159
+ </Button>
160
+ {id && (
161
+ <DialogTrigger asChild>
162
+ <Button type="button" variant="secondary">
163
+ Delete Component
164
+ </Button>
165
+ </DialogTrigger>
166
+ )}
167
+ </div>
168
+ </form>
169
+ </Form>
170
+ {isDeleteOpen && id && (
171
+ <DeleteDataComponentConfirmation
172
+ dataComponentId={id}
173
+ dataComponentName={form.getValues('name')}
174
+ setIsOpen={setIsDeleteOpen}
175
+ redirectOnDelete={true}
176
+ />
177
+ )}
178
+ </Dialog>
156
179
  );
157
180
  }
@@ -8,6 +8,7 @@ import { CodeEditor } from '@/components/form/code-editor';
8
8
  import { JsonEditor } from '@/components/form/json-editor';
9
9
  import { Button } from '@/components/ui/button';
10
10
  import { Card } from '@/components/ui/card';
11
+ import { InfoCard } from '@/components/ui/info-card';
11
12
  import { Label } from '@/components/ui/label';
12
13
  import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';
13
14
  import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
@@ -317,6 +318,12 @@ export function ComponentPreviewGenerator({
317
318
  </TabsContent>
318
319
  </Tabs>
319
320
  )}
321
+
322
+ {!hasPreview && !isGenerating && !isComplete && (
323
+ <InfoCard>
324
+ <p className="text-sm text-muted-foreground">No preview generated</p>
325
+ </InfoCard>
326
+ )}
320
327
  </div>
321
328
  );
322
329
  }
@@ -1,17 +1,21 @@
1
1
  'use client';
2
2
 
3
3
  import { zodResolver } from '@hookform/resolvers/zod';
4
+ import { generateId } from '@/lib/utils/id-utils';
4
5
  import { detectAuthenticationRequired, MCPTransportType } from '@inkeep/agents-core/client-exports';
5
- import { nanoid } from 'nanoid';
6
6
  import { useRouter } from 'next/navigation';
7
+ import { useState } from 'react';
7
8
  import { useForm } from 'react-hook-form';
8
9
  import { toast } from 'sonner';
9
10
  import { GenericInput } from '@/components/form/generic-input';
10
11
  import { GenericSelect } from '@/components/form/generic-select';
11
12
  import { Button } from '@/components/ui/button';
13
+ import { DeleteConfirmation } from '@/components/ui/delete-confirmation';
14
+ import { Dialog, DialogTrigger } from '@/components/ui/dialog';
12
15
  import { Form } from '@/components/ui/form';
13
16
  import { InfoCard } from '@/components/ui/info-card';
14
17
  import { useOAuthLogin } from '@/hooks/use-oauth-login';
18
+ import { deleteToolAction } from '@/lib/actions/tools';
15
19
  import type { Credential } from '@/lib/api/credentials';
16
20
  import { createMCPTool, updateMCPTool } from '@/lib/api/tools';
17
21
  import type { MCPTool } from '@/lib/types/tools';
@@ -54,6 +58,8 @@ export function MCPServerForm({
54
58
  projectId,
55
59
  }: MCPServerFormProps) {
56
60
  const router = useRouter();
61
+ const [isDeleteOpen, setIsDeleteOpen] = useState(false);
62
+ const [isDeleting, setIsDeleting] = useState(false);
57
63
 
58
64
  const form = useForm({
59
65
  resolver: zodResolver(mcpToolSchema),
@@ -82,7 +88,7 @@ export function MCPServerForm({
82
88
  try {
83
89
  // handle oauth login
84
90
  if (data.credentialReferenceId === 'oauth') {
85
- const toolId = nanoid();
91
+ const toolId = generateId();
86
92
 
87
93
  const isAuthenticationRequired = await detectAuthenticationRequired({
88
94
  serverUrl: data.config.mcp.server.url,
@@ -146,7 +152,7 @@ export function MCPServerForm({
146
152
  } else {
147
153
  const newTool = await createMCPTool(tenantId, projectId, {
148
154
  ...transformedData,
149
- id: nanoid(),
155
+ id: generateId(),
150
156
  });
151
157
  toast.success('MCP server created successfully');
152
158
  router.push(`/${tenantId}/projects/${projectId}/mcp-servers/${newTool.id}`);
@@ -157,9 +163,29 @@ export function MCPServerForm({
157
163
  }
158
164
  };
159
165
 
166
+ const handleDelete = async () => {
167
+ if (!tool) return;
168
+
169
+ setIsDeleting(true);
170
+ try {
171
+ // Don't revalidate to avoid Next.js trying to refetch the deleted resource on current page
172
+ const result = await deleteToolAction(tenantId, projectId, tool.id, false);
173
+ if (result.success) {
174
+ setIsDeleteOpen(false);
175
+ toast.success('MCP server deleted.');
176
+ router.push(`/${tenantId}/projects/${projectId}/mcp-servers`);
177
+ } else {
178
+ toast.error(result.error || 'Failed to delete MCP server.');
179
+ }
180
+ } finally {
181
+ setIsDeleting(false);
182
+ }
183
+ };
184
+
160
185
  return (
161
- <Form {...form}>
162
- <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
186
+ <Dialog open={isDeleteOpen} onOpenChange={setIsDeleteOpen}>
187
+ <Form {...form}>
188
+ <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
163
189
  <GenericInput
164
190
  control={form.control}
165
191
  name="name"
@@ -240,10 +266,27 @@ export function MCPServerForm({
240
266
  />
241
267
  )}
242
268
 
243
- <Button type="submit" disabled={isSubmitting}>
244
- {mode === 'update' ? 'Save' : 'Create'}
245
- </Button>
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>
279
+ )}
280
+ </div>
246
281
  </form>
247
282
  </Form>
283
+ {isDeleteOpen && tool && (
284
+ <DeleteConfirmation
285
+ itemName={tool.name || 'this MCP server'}
286
+ isSubmitting={isDeleting}
287
+ onDelete={handleDelete}
288
+ />
289
+ )}
290
+ </Dialog>
248
291
  );
249
292
  }
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { nanoid } from 'nanoid';
3
+ import { generateId } from '@/lib/utils/id-utils';
4
4
  import { useRouter } from 'next/navigation';
5
5
  import { useState } from 'react';
6
6
  import { toast } from 'sonner';
@@ -39,7 +39,7 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
39
39
  try {
40
40
  // Transform prebuilt server data to MCPToolFormData format
41
41
  const mcpToolData = {
42
- id: nanoid(),
42
+ id: generateId(),
43
43
  name: server.name,
44
44
  config: {
45
45
  type: 'mcp' as const,
@@ -62,7 +62,7 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
62
62
  toast.success(`${server.name} MCP server created successfully`);
63
63
  router.push(`/${tenantId}/projects/${projectId}/mcp-servers/${newTool.id}`);
64
64
  } else {
65
- handleOAuthLogin({toolId: newTool.id, mcpServerUrl: server.url, toolName: server.name});
65
+ handleOAuthLogin({ toolId: newTool.id, mcpServerUrl: server.url, toolName: server.name });
66
66
  }
67
67
  } catch (error) {
68
68
  console.error('Failed to create prebuilt MCP server:', error);
@@ -4,7 +4,7 @@ import { ChevronDown } from 'lucide-react';
4
4
  import { Button } from './button';
5
5
 
6
6
  interface InfoCardProps {
7
- title: string;
7
+ title?: string;
8
8
  Icon?: LucideIcon;
9
9
  children: React.ReactNode;
10
10
  }
@@ -12,10 +12,12 @@ interface InfoCardProps {
12
12
  export function InfoCard({ title, Icon, children }: InfoCardProps) {
13
13
  return (
14
14
  <div className="text-xs text-gray-800 dark:text-muted-foreground p-3 bg-gray-100/80 dark:bg-sidebar rounded-md">
15
- <div className="flex items-center gap-2 mb-2">
16
- {Icon && <Icon className="w-3 h-3 text-muted-foreground" />}
17
- <p className="font-medium text-foreground font-mono uppercase">{title}</p>
18
- </div>
15
+ {title && (
16
+ <div className="flex items-center gap-2 mb-2">
17
+ {Icon && <Icon className="w-3 h-3 text-muted-foreground" />}
18
+ <p className="font-medium text-foreground font-mono uppercase">{title}</p>
19
+ </div>
20
+ )}
19
21
  {children}
20
22
  </div>
21
23
  );
@@ -1,6 +1,6 @@
1
+ import { generateId } from '@/lib/utils/id-utils';
1
2
  import type { Edge, Node } from '@xyflow/react';
2
3
  import * as dagre from 'dagre';
3
- import { nanoid } from 'nanoid';
4
4
  import { EdgeType } from '@/components/agent/configuration/edge-types';
5
5
  import {
6
6
  agentNodeSourceHandleId,
@@ -205,7 +205,7 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
205
205
  if ('canUse' in agent && agent.canUse && agent.canUse.length > 0) {
206
206
  for (const canUseItem of agent.canUse) {
207
207
  const toolId = canUseItem.toolId;
208
- const toolNodeId = nanoid();
208
+ const toolNodeId = generateId();
209
209
  const relationshipId = canUseItem.agentToolRelationId;
210
210
 
211
211
  const tool = data.tools?.[toolId] || data.functionTools?.[toolId];