@inkeep/agents-manage-ui 0.26.1 → 0.27.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 (243) 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 +199 -199
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +7 -7
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +15 -15
  6. package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +8 -8
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
  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]/external-agents/[externalAgentId]/edit/page.js +2 -2
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -2
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  87. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  89. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +10 -10
  92. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-preview/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js.nft.json +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  98. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +7 -7
  100. package/.next/standalone/agents-manage-ui/.next/server/chunks/{4376.js → 1483.js} +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/chunks/1566.js +1 -0
  102. package/.next/standalone/agents-manage-ui/.next/server/chunks/{7165.js → 2160.js} +1 -1
  103. package/.next/standalone/agents-manage-ui/.next/server/chunks/3067.js +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/chunks/3468.js +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/server/chunks/4558.js +1 -1
  106. package/.next/standalone/agents-manage-ui/.next/server/chunks/4608.js +2 -2
  107. package/.next/standalone/agents-manage-ui/.next/server/chunks/4629.js +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/server/chunks/4775.js +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/server/chunks/5392.js +14 -0
  110. package/.next/standalone/agents-manage-ui/.next/server/chunks/5458.js +1 -0
  111. package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
  112. package/.next/standalone/agents-manage-ui/.next/server/chunks/5787.js +196 -0
  113. package/.next/standalone/agents-manage-ui/.next/server/chunks/5793.js +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/server/chunks/6737.js +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/chunks/7010.js +1 -0
  116. package/.next/standalone/agents-manage-ui/.next/server/chunks/7565.js +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/server/chunks/7916.js +1 -0
  118. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  120. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  122. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  125. package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-4a1d4c948fa31107.js +1 -0
  126. package/.next/standalone/agents-manage-ui/.next/static/chunks/{31030-5934019cfc8cb254.js → 14187-cc3fd1c90d38ddef.js} +1 -1
  127. package/.next/standalone/agents-manage-ui/.next/static/chunks/16631-1b7fdb4431f30490.js +123 -0
  128. package/.next/standalone/agents-manage-ui/.next/static/chunks/{21078.054dafe1b55fb320.js → 21078.32b5d97ee64dda4b.js} +1 -1
  129. package/.next/standalone/agents-manage-ui/.next/static/chunks/{23113.3fede21b6eaf9227.js → 23113.536c8c9bea4a8c7b.js} +4 -4
  130. package/.next/standalone/agents-manage-ui/.next/static/chunks/2416-cfff29b28c217ccf.js +1 -0
  131. package/.next/standalone/agents-manage-ui/.next/static/chunks/25200-2b76cc18361fa58b.js +1 -0
  132. package/.next/standalone/agents-manage-ui/.next/static/chunks/{95926-f6acf9933512734b.js → 27747-c0d04833f4851356.js} +1 -1
  133. package/.next/standalone/agents-manage-ui/.next/static/chunks/{47199-6dbd2190fc527d1a.js → 32072-8fc2be06163181ac.js} +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/static/chunks/44341-459871afa12cd37c.js +1 -0
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/{47065.0698d6a9ad9c4eca.js → 47065.2f3b7f0aaf81f83f.js} +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/56167-267033876431fab5.js +1 -0
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/71546-840d5584b7894bd0.js +1 -0
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/77700-160a2e85ffa6dbc3.js +1 -0
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/{88831-cc7c54f946c90858.js → 88831-184f3ffcba8295bb.js} +1 -1
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/{89814.bd648f5875e206d6.js → 89814.9992418c03ef6af2.js} +4 -4
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/{9521.a325d7b909bdaf88.js → 9521.354c888ed22abb07.js} +1 -1
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-b7141ed5f8a77eb9.js → page-1231e77e66beb21b.js} +1 -1
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-f9134d7a48cd0972.js → page-5672e24d1d31274b.js} +1 -1
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-3799960632279030.js +1 -0
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/{page-d5bc2158bed826dc.js → page-e81c4e25a6617c58.js} +1 -1
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-40fcdfec6b0447d2.js +1 -0
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-4f8e61428f394910.js +1 -0
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-43dd4a3ae38c8eb1.js +1 -0
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-16e165f559ef3131.js → page-c22b10f1cadf9d10.js} +1 -1
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-fa5a254c8a76eaa2.js +1 -0
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-984321197f47e001.js → page-6aaf894e2e480bb8.js} +1 -1
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-93c4cdb48ccffc01.js +1 -0
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-1a56e7ec8b9b2289.js +1 -0
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-4391c292624d801b.js +1 -0
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-67505a9888f7c31c.js +1 -0
  156. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-679cd6ca7dadaf0c.js → page-29b9c253151304c4.js} +1 -1
  157. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-b7010b52a1a58cb4.js +1 -0
  158. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-9d93fc373fba9f35.js +1 -0
  159. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-b56c24923670119d.js +1 -0
  160. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-6b298f2c1917edee.js +1 -0
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-0da1362bb966d879.js +1 -0
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-baee0631b8f2d789.js → page-aecbdd4d66a32efb.js} +1 -1
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-97ad4c58ba209b90.js → page-8f10eb8d6c489191.js} +1 -1
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-22de5b7b4e6aaf93.js → page-b50af7f7fc063f80.js} +1 -1
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-7abd4edcd4a9ae2c.js +1 -0
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-a8555bbb118f5e6e.js +1 -0
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-4385ee094122399e.js +1 -0
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/{page-4f5f509425b1d0ea.js → page-d1c4fe8a8b28a743.js} +1 -1
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-2c79d0ac495bebf8.js +1 -0
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/{d834c995-f79913da716f009c.js → d834c995-8cb74a5eed854312.js} +1 -1
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-c7f22f43be63d6fd.js → webpack-1185dbe047280553.js} +1 -1
  172. package/.next/standalone/agents-manage-ui/.next/static/css/931594c58db54400.css +1 -0
  173. package/.next/standalone/agents-manage-ui/package.json +1 -1
  174. package/.next/standalone/packages/agents-core/package.json +2 -1
  175. package/package.json +4 -4
  176. package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +1 -0
  177. package/src/app/[tenantId]/projects/[projectId]/agents/new/page.tsx +2 -3
  178. package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.tsx +4 -4
  179. package/src/components/agent/agent.tsx +53 -1
  180. package/src/components/agent/configuration/edge-types.tsx +2 -0
  181. package/src/components/agent/configuration/node-types.tsx +34 -2
  182. package/src/components/agent/node-library/node-library.tsx +1 -0
  183. package/src/components/agent/nodes/placeholder-node.tsx +5 -2
  184. package/src/components/agent/nodes/team-agent-node.tsx +60 -0
  185. package/src/components/agent/sidepane/nodes/function-tool-node-editor.tsx +28 -25
  186. package/src/components/agent/sidepane/nodes/team-agent-node-editor.tsx +159 -0
  187. package/src/components/agent/sidepane/nodes/team-agent-selector/loading.tsx +26 -0
  188. package/src/components/agent/sidepane/nodes/team-agent-selector/team-agent-item.tsx +38 -0
  189. package/src/components/agent/sidepane/nodes/team-agent-selector/team-agent-selector.tsx +110 -0
  190. package/src/components/agent/sidepane/sidepane.tsx +23 -1
  191. package/src/components/api-keys/api-key-display.tsx +1 -1
  192. package/src/components/api-keys/form/api-key-form.tsx +1 -1
  193. package/src/components/api-keys/form/api-key-update-form.tsx +1 -1
  194. package/src/components/artifact-components/form/artifact-component-form.tsx +1 -1
  195. package/src/components/credentials/views/edit-credential-form.tsx +1 -1
  196. package/src/components/credentials/views/generic-auth-form.tsx +6 -5
  197. package/src/components/credentials/views/nango-providers-grid.tsx +1 -13
  198. package/src/components/data-components/form/data-component-form.tsx +1 -1
  199. package/src/components/data-components/preview/component-preview-generator.tsx +70 -53
  200. package/src/components/mcp-servers/form/mcp-server-form.tsx +1 -1
  201. package/src/components/ui/sidebar.tsx +1 -1
  202. package/src/features/agent/domain/deserialize.ts +55 -2
  203. package/src/features/agent/domain/serialize.ts +153 -13
  204. package/src/lib/actions/agent-full.ts +24 -0
  205. package/src/lib/api/agent-full-client.ts +18 -0
  206. package/src/lib/types/agent-full.ts +2 -0
  207. package/src/lib/types/team-agents.ts +5 -0
  208. package/src/lib/utils/team-agent-utils.ts +32 -0
  209. package/.next/standalone/agents-manage-ui/.next/server/chunks/122.js +0 -196
  210. package/.next/standalone/agents-manage-ui/.next/server/chunks/3086.js +0 -1
  211. package/.next/standalone/agents-manage-ui/.next/server/chunks/3137.js +0 -14
  212. package/.next/standalone/agents-manage-ui/.next/server/chunks/6109.js +0 -1
  213. package/.next/standalone/agents-manage-ui/.next/server/chunks/653.js +0 -1
  214. package/.next/standalone/agents-manage-ui/.next/server/chunks/7537.js +0 -1
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-41037a3262960f92.js +0 -1
  216. package/.next/standalone/agents-manage-ui/.next/static/chunks/16631-f92fdc7f74df3e1e.js +0 -123
  217. package/.next/standalone/agents-manage-ui/.next/static/chunks/16887-528540c5b265fc13.js +0 -1
  218. package/.next/standalone/agents-manage-ui/.next/static/chunks/2173-e5e0c4f24a8e0c46.js +0 -1
  219. package/.next/standalone/agents-manage-ui/.next/static/chunks/27854-c9d9d59f8de29ed4.js +0 -1
  220. package/.next/standalone/agents-manage-ui/.next/static/chunks/37775-7406a92cbd39daef.js +0 -1
  221. package/.next/standalone/agents-manage-ui/.next/static/chunks/50127-83157505921c89db.js +0 -1
  222. package/.next/standalone/agents-manage-ui/.next/static/chunks/8515-8a6bb9b1af63dc60.js +0 -1
  223. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-b0b409e0d879bf3c.js +0 -1
  224. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-8141ebc086c4e8cc.js +0 -1
  225. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-172f0be9de89cc0f.js +0 -1
  226. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-30e656b3c0eb6c84.js +0 -1
  227. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-ebb650d4f36d73c4.js +0 -1
  228. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-2bd7c36e74bc6c4a.js +0 -1
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-9430afc1b74ecef2.js +0 -1
  230. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-a63d4b5df3460d68.js +0 -1
  231. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-6da4e0dc3c76645f.js +0 -1
  232. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-6572a90cd3cb51bb.js +0 -1
  233. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-33a0e22b08c72216.js +0 -1
  234. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-1d139f2e776d666e.js +0 -1
  235. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-097db4d419336446.js +0 -1
  236. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-69e44e2331b90339.js +0 -1
  237. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-9d4fe2c46f1ea437.js +0 -1
  238. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-2b07e2fff50589f3.js +0 -1
  239. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-2b47946997ff7507.js +0 -1
  240. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-ce49c29e3bf4049e.js +0 -1
  241. package/.next/standalone/agents-manage-ui/.next/static/css/40728d39bb342f02.css +0 -1
  242. /package/.next/standalone/agents-manage-ui/.next/static/{7r2zCPzpVSsXFd1vvyJK8 → Bj-8vYnHAeOR5g8hC8_xi}/_buildManifest.js +0 -0
  243. /package/.next/standalone/agents-manage-ui/.next/static/{7r2zCPzpVSsXFd1vvyJK8 → Bj-8vYnHAeOR5g8hC8_xi}/_ssgManifest.js +0 -0
@@ -0,0 +1,110 @@
1
+ import { type Node, useReactFlow } from '@xyflow/react';
2
+ import { useParams } from 'next/navigation';
3
+ import { useEffect, useState } from 'react';
4
+ import { toast } from 'sonner';
5
+ import { fetchAgents } from '@/lib/api/agent-full-client';
6
+ import type { Agent } from '@/lib/types/agent-full';
7
+ import { NodeType } from '../../../configuration/node-types';
8
+ import { EmptyState } from '../empty-state';
9
+ import { TeamAgentSelectorLoading } from './loading';
10
+ import { TeamAgentItem } from './team-agent-item';
11
+
12
+ interface TeamAgentSelectorState {
13
+ agents: Agent[];
14
+ isLoading: boolean;
15
+ error: string | null;
16
+ }
17
+
18
+ const useFetchAvailableAgents = (): TeamAgentSelectorState => {
19
+ const [agents, setAgents] = useState<Agent[]>([]);
20
+ const [isLoading, setIsLoading] = useState(true);
21
+ const [error, setError] = useState<string | null>(null);
22
+ const { tenantId, projectId, agentId } = useParams<{
23
+ tenantId: string;
24
+ projectId: string;
25
+ agentId: string;
26
+ }>();
27
+
28
+ useEffect(() => {
29
+ const loadAgents = async () => {
30
+ try {
31
+ setIsLoading(true);
32
+ setError(null);
33
+ const response = await fetchAgents(tenantId, projectId);
34
+ // Filter out the current agent to prevent self-selection
35
+ const filteredAgents = agentId
36
+ ? response.data.filter((agent) => agent.id !== agentId)
37
+ : response.data;
38
+ setAgents(filteredAgents);
39
+ } catch (err) {
40
+ const errorMessage = err instanceof Error ? err.message : 'Failed to load agents';
41
+ setError(errorMessage);
42
+ toast.error(errorMessage);
43
+ } finally {
44
+ setIsLoading(false);
45
+ }
46
+ };
47
+
48
+ loadAgents();
49
+ }, [tenantId, projectId, agentId]);
50
+
51
+ return { agents, isLoading, error };
52
+ };
53
+
54
+ export function TeamAgentSelector({ selectedNode }: { selectedNode: Node }) {
55
+ const { updateNode } = useReactFlow();
56
+ const { tenantId, projectId } = useParams<{
57
+ tenantId: string;
58
+ projectId: string;
59
+ }>();
60
+ const { agents, isLoading, error } = useFetchAvailableAgents();
61
+
62
+ const handleSelect = (agent: Agent) => {
63
+ updateNode(selectedNode.id, {
64
+ type: NodeType.TeamAgent,
65
+ data: {
66
+ id: agent.id,
67
+ name: agent.name,
68
+ description: agent.description,
69
+ relationshipId: null, // Will be set after saving to database
70
+ },
71
+ });
72
+ };
73
+
74
+ if (isLoading) {
75
+ return <TeamAgentSelectorLoading title="Select team agent" />;
76
+ }
77
+
78
+ if (error) {
79
+ return (
80
+ <EmptyState
81
+ message="Something went wrong."
82
+ actionText="Create agent"
83
+ actionHref={`/${tenantId}/projects/${projectId}/agents/new`}
84
+ />
85
+ );
86
+ }
87
+
88
+ if (!agents?.length) {
89
+ return (
90
+ <EmptyState
91
+ message="No agents found."
92
+ actionText="Create agent"
93
+ actionHref={`/${tenantId}/projects/${projectId}/agents/new`}
94
+ />
95
+ );
96
+ }
97
+
98
+ return (
99
+ <div>
100
+ <div className="space-y-2">
101
+ <h3 className="text-sm font-medium mb-2">Select team agent</h3>
102
+ <div className="flex flex-col gap-2 min-w-0 min-h-0">
103
+ {agents.map((agent: Agent) => (
104
+ <TeamAgentItem key={agent.id} agent={agent} onClick={handleSelect} />
105
+ ))}
106
+ </div>
107
+ </div>
108
+ </div>
109
+ );
110
+ }
@@ -7,7 +7,11 @@ import type { ArtifactComponent } from '@/lib/api/artifact-components';
7
7
  import type { Credential } from '@/lib/api/credentials';
8
8
  import type { DataComponent } from '@/lib/api/data-components';
9
9
  import { SidePane as SidePaneLayout } from '../../layout/sidepane';
10
- import type { AgentToolConfigLookup, SubAgentExternalAgentConfigLookup } from '../agent';
10
+ import type {
11
+ AgentToolConfigLookup,
12
+ SubAgentExternalAgentConfigLookup,
13
+ SubAgentTeamAgentConfigLookup,
14
+ } from '../agent';
11
15
  import { edgeTypeMap } from '../configuration/edge-types';
12
16
  import {
13
17
  type AgentNodeData,
@@ -16,6 +20,7 @@ import {
16
20
  type MCPNodeData,
17
21
  NodeType,
18
22
  nodeTypeMap,
23
+ type TeamAgentNodeData,
19
24
  } from '../configuration/node-types';
20
25
  import EdgeEditor from './edges/edge-editor';
21
26
  import { EditorLoadingSkeleton } from './editor-loading-skeleton';
@@ -27,6 +32,8 @@ import { FunctionToolNodeEditor } from './nodes/function-tool-node-editor';
27
32
  import { MCPServerNodeEditor } from './nodes/mcp-node-editor';
28
33
  import { MCPSelector } from './nodes/mcp-selector/mcp-selector';
29
34
  import { SubAgentNodeEditor } from './nodes/sub-agent-node-editor';
35
+ import { TeamAgentNodeEditor } from './nodes/team-agent-node-editor';
36
+ import { TeamAgentSelector } from './nodes/team-agent-selector/team-agent-selector';
30
37
 
31
38
  interface SidePaneProps {
32
39
  selectedNodeId: string | null;
@@ -38,6 +45,7 @@ interface SidePaneProps {
38
45
  artifactComponentLookup: Record<string, ArtifactComponent>;
39
46
  agentToolConfigLookup: AgentToolConfigLookup;
40
47
  subAgentExternalAgentConfigLookup: SubAgentExternalAgentConfigLookup;
48
+ subAgentTeamAgentConfigLookup: SubAgentTeamAgentConfigLookup;
41
49
  credentialLookup: Record<string, Credential>;
42
50
  }
43
51
 
@@ -51,6 +59,7 @@ export function SidePane({
51
59
  artifactComponentLookup,
52
60
  agentToolConfigLookup,
53
61
  subAgentExternalAgentConfigLookup,
62
+ subAgentTeamAgentConfigLookup,
54
63
  credentialLookup,
55
64
  }: SidePaneProps) {
56
65
  const selectedNode = useNodesData(selectedNodeId || '');
@@ -125,6 +134,18 @@ export function SidePane({
125
134
  case NodeType.ExternalAgentPlaceholder: {
126
135
  return <ExternalAgentSelector selectedNode={selectedNode as Node} />;
127
136
  }
137
+ case NodeType.TeamAgent: {
138
+ return (
139
+ <TeamAgentNodeEditor
140
+ selectedNode={selectedNode as Node<TeamAgentNodeData>}
141
+ subAgentTeamAgentConfigLookup={subAgentTeamAgentConfigLookup}
142
+ errorHelpers={errorHelpers}
143
+ />
144
+ );
145
+ }
146
+ case NodeType.TeamAgentPlaceholder: {
147
+ return <TeamAgentSelector selectedNode={selectedNode as Node} />;
148
+ }
128
149
  case NodeType.MCPPlaceholder: {
129
150
  return <MCPSelector selectedNode={selectedNode as Node} />;
130
151
  }
@@ -162,6 +183,7 @@ export function SidePane({
162
183
  agentToolConfigLookup,
163
184
  credentialLookup,
164
185
  subAgentExternalAgentConfigLookup,
186
+ subAgentTeamAgentConfigLookup,
165
187
  ]);
166
188
 
167
189
  const showBackButton = useMemo(() => {
@@ -38,7 +38,7 @@ export function ApiKeyDisplay({ apiKey, open, onClose }: ApiKeyDisplayProps) {
38
38
  </AlertDialogHeader>
39
39
  {apiKey && (
40
40
  <div className="min-w-0">
41
- <div className="space-y-6">
41
+ <div className="space-y-8">
42
42
  <div className="min-w-0">
43
43
  <div className="flex items-center justify-between mb-2">
44
44
  <div className="text-sm font-medium">API Key</div>
@@ -95,7 +95,7 @@ export function ApiKeyForm({
95
95
 
96
96
  return (
97
97
  <Form {...form}>
98
- <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-6">
98
+ <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
99
99
  <GenericInput
100
100
  control={form.control}
101
101
  name="name"
@@ -122,7 +122,7 @@ export function ApiKeyUpdateForm({
122
122
 
123
123
  return (
124
124
  <Form {...form}>
125
- <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-6">
125
+ <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
126
126
  <GenericInput
127
127
  control={form.control}
128
128
  name="name"
@@ -140,7 +140,7 @@ export function ArtifactComponentForm({
140
140
  </Button>
141
141
  {id && (
142
142
  <DialogTrigger asChild>
143
- <Button type="button" variant="secondary">
143
+ <Button type="button" variant="destructive-outline">
144
144
  Delete Artifact
145
145
  </Button>
146
146
  </DialogTrigger>
@@ -199,7 +199,7 @@ export function EditCredentialForm({
199
199
  </Button>
200
200
  )}
201
201
  <DialogTrigger asChild>
202
- <Button type="button" variant="secondary">
202
+ <Button type="button" variant="destructive-outline">
203
203
  Delete Credential
204
204
  </Button>
205
205
  </DialogTrigger>
@@ -113,7 +113,7 @@ export function GenericAuthForm({
113
113
 
114
114
  const renderField = (field: FieldConfig) => {
115
115
  const isPrivateKey = field.key === 'private_key';
116
- const label = `${field.label}${field.required ? ' *' : ''}`;
116
+ const label = field.label;
117
117
 
118
118
  if (field.component === 'textarea') {
119
119
  return (
@@ -122,6 +122,7 @@ export function GenericAuthForm({
122
122
  control={form.control}
123
123
  name={field.key}
124
124
  label={label}
125
+ isRequired={field.required}
125
126
  placeholder={field.placeholder}
126
127
  className={isPrivateKey ? 'font-mono text-sm min-h-[120px]' : 'min-h-[80px]'}
127
128
  />
@@ -136,6 +137,7 @@ export function GenericAuthForm({
136
137
  control={form.control}
137
138
  name={field.key}
138
139
  label={label}
140
+ isRequired={field.required}
139
141
  type={field.type}
140
142
  placeholder={field.placeholder}
141
143
  disabled={loading}
@@ -146,7 +148,7 @@ export function GenericAuthForm({
146
148
  };
147
149
 
148
150
  const renderSection = (section: FormSection, index: number) => (
149
- <div key={index} className="space-y-4">
151
+ <div key={index} className="space-y-8">
150
152
  {section.title && (
151
153
  <div>
152
154
  <h3 className="text-lg font-medium">{section.title}</h3>
@@ -155,7 +157,6 @@ export function GenericAuthForm({
155
157
  )}
156
158
  </div>
157
159
  )}
158
-
159
160
  {section.fields.map(renderField)}
160
161
  </div>
161
162
  );
@@ -175,10 +176,10 @@ export function GenericAuthForm({
175
176
  </div>
176
177
 
177
178
  <Form {...form}>
178
- <form onSubmit={form.handleSubmit(handleSubmit)} className="space-y-6">
179
+ <form onSubmit={form.handleSubmit(handleSubmit)} className="space-y-8">
179
180
  {formConfig.sections.map(renderSection)}
180
181
 
181
- <div className="flex gap-3 pt-4">
182
+ <div className="flex gap-3">
182
183
  <Button type="submit" disabled={loading}>
183
184
  {loading ? 'Creating Credential...' : 'Create Credential'}
184
185
  </Button>
@@ -15,10 +15,9 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/comp
15
15
 
16
16
  interface NangoProvidersGridProps {
17
17
  providers: ApiProvider[];
18
- error: string | null;
19
18
  }
20
19
 
21
- export function NangoProvidersGrid({ providers, error }: NangoProvidersGridProps) {
20
+ export function NangoProvidersGrid({ providers }: NangoProvidersGridProps) {
22
21
  const [searchQuery, setSearchQuery] = useState('');
23
22
  const { tenantId, projectId } = useParams<{
24
23
  tenantId: string;
@@ -85,17 +84,6 @@ export function NangoProvidersGrid({ providers, error }: NangoProvidersGridProps
85
84
  return providersWithSearchText.filter((provider) => provider.searchText.includes(query));
86
85
  }, [providersWithSearchText, searchQuery]);
87
86
 
88
- if (error) {
89
- return (
90
- <div className="text-center p-8">
91
- <p className="text-destructive">{error}</p>
92
- <Button variant="outline" onClick={() => window.location.reload()} className="mt-4">
93
- Try Again
94
- </Button>
95
- </div>
96
- );
97
- }
98
-
99
87
  return (
100
88
  <div className="space-y-6">
101
89
  {/* Search bar */}
@@ -159,7 +159,7 @@ export function DataComponentForm({
159
159
  </Button>
160
160
  {id && (
161
161
  <DialogTrigger asChild>
162
- <Button type="button" variant="secondary">
162
+ <Button type="button" variant="destructive-outline">
163
163
  Delete Component
164
164
  </Button>
165
165
  </DialogTrigger>
@@ -16,6 +16,15 @@ import { Textarea } from '@/components/ui/textarea';
16
16
  import { updateDataComponent } from '@/lib/api/data-components';
17
17
  import { DynamicComponentRenderer } from './dynamic-component-renderer';
18
18
 
19
+ const StyledTabsTrigger = (props: React.ComponentProps<typeof TabsTrigger>) => {
20
+ return (
21
+ <TabsTrigger
22
+ {...props}
23
+ className="bg-transparent data-[state=active]:border-primary dark:data-[state=active]:border-primary h-full rounded-none border-0 border-b-2 border-transparent data-[state=active]:shadow-none data-[state=active]:text-primary data-[state=active]:bg-transparent uppercase font-mono text-xs mt-0.5 pt-2"
24
+ />
25
+ );
26
+ };
27
+
19
28
  interface ComponentPreviewGeneratorProps {
20
29
  tenantId: string;
21
30
  projectId: string;
@@ -166,15 +175,20 @@ export function ComponentPreviewGenerator({
166
175
  return (
167
176
  <div className="space-y-4">
168
177
  <div className="flex items-center justify-between">
169
- <div>
170
- <h3 className="text-lg font-semibold">Component Preview</h3>
178
+ <div className="space-y-2">
179
+ <h3 className="text-md font-medium">Component Preview</h3>
171
180
  <p className="text-sm text-muted-foreground">
172
- Generate a React/Tailwind component based on your schema
181
+ Generate a React/Tailwind component based on your schema.
173
182
  </p>
174
183
  </div>
175
184
  <div className="flex gap-2">
176
185
  {!hasPreview && (
177
- <Button onClick={() => generatePreview()} disabled={isGenerating} className="gap-2">
186
+ <Button
187
+ onClick={() => generatePreview()}
188
+ disabled={isGenerating}
189
+ size="sm"
190
+ className="gap-2"
191
+ >
178
192
  {isGenerating ? (
179
193
  <>
180
194
  <Loader2 className="h-4 w-4 animate-spin" />
@@ -192,7 +206,12 @@ export function ComponentPreviewGenerator({
192
206
  <>
193
207
  <Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen}>
194
208
  <PopoverTrigger asChild>
195
- <Button variant="outline" disabled={isDeleting || isGenerating} className="gap-2">
209
+ <Button
210
+ variant="outline"
211
+ size="sm"
212
+ disabled={isDeleting || isGenerating}
213
+ className="gap-2 font-mono uppercase"
214
+ >
196
215
  {isGenerating ? (
197
216
  <>
198
217
  <Loader2 className="h-4 w-4 animate-spin" />
@@ -221,28 +240,27 @@ export function ComponentPreviewGenerator({
221
240
  className="mt-2 min-h-[100px]"
222
241
  />
223
242
  </div>
224
- <div className="flex gap-2">
243
+ <div className="flex justify-end gap-2">
225
244
  <Button
226
245
  size="sm"
227
- onClick={async () => {
246
+ variant="outline"
247
+ onClick={() => {
228
248
  setIsPopoverOpen(false);
229
- await generatePreview(regenerateInstructions || undefined);
230
249
  setRegenerateInstructions('');
231
250
  }}
232
- disabled={isGenerating}
233
- className="flex-1"
234
251
  >
235
- {regenerateInstructions ? 'Apply Changes' : 'Regenerate'}
252
+ Cancel
236
253
  </Button>
237
254
  <Button
238
255
  size="sm"
239
- variant="outline"
240
- onClick={() => {
256
+ onClick={async () => {
241
257
  setIsPopoverOpen(false);
258
+ await generatePreview(regenerateInstructions || undefined);
242
259
  setRegenerateInstructions('');
243
260
  }}
261
+ disabled={isGenerating}
244
262
  >
245
- Cancel
263
+ {regenerateInstructions ? 'Apply Changes' : 'Regenerate'}
246
264
  </Button>
247
265
  </div>
248
266
  </div>
@@ -267,58 +285,57 @@ export function ComponentPreviewGenerator({
267
285
  )}
268
286
  </div>
269
287
  </div>
270
-
271
288
  {isGenerating && streamingCode && (
272
289
  <Streamdown
273
290
  isAnimating
274
291
  className="[&_[data-code-block-header=true]]:hidden [&_pre]:bg-muted/40!"
275
292
  >{`\`\`\`jsx\n${streamingCode}\`\`\``}</Streamdown>
276
293
  )}
277
-
278
294
  {isGenerating && !streamingCode && (
279
295
  <Card className="p-6">
280
- <div className="flex flex-col items-center justify-center space-y-4">
281
- <Loader2 className="h-8 w-8 animate-spin text-primary" />
282
- <p className="text-sm text-muted-foreground">Generating component preview...</p>
296
+ <div className="flex flex-row items-center justify-center gap-2">
297
+ <Loader2 className="h-4 w-4 animate-spin text-muted-foreground/50" />
298
+ <p className="text-sm text-muted-foreground/70">Generating component preview...</p>
283
299
  </div>
284
300
  </Card>
285
301
  )}
286
-
287
302
  {hasPreview && !isGenerating && isComplete && preview && (
288
- <Tabs defaultValue="preview" className="w-full">
289
- <TabsList>
290
- <TabsTrigger value="preview">Preview</TabsTrigger>
291
- <TabsTrigger value="code">Code</TabsTrigger>
292
- <TabsTrigger value="data">Sample Data</TabsTrigger>
293
- </TabsList>
294
- <TabsContent value="preview">
295
- <Card className="p-6">
296
- <DynamicComponentRenderer code={previewCode} props={previewData} />
297
- </Card>
298
- </TabsContent>
299
- <TabsContent value="code">
300
- <CodeEditor
301
- value={previewCode}
302
- onChange={(newCode) => {
303
- if (!preview) return;
304
- const updatedPreview = { ...preview, code: newCode };
305
- setPreview(updatedPreview);
306
- onPreviewChanged?.(updatedPreview);
307
- }}
308
- language="jsx"
309
- className="max-h-[500px]"
310
- />
311
- </TabsContent>
312
- <TabsContent value="data">
313
- <JsonEditor
314
- value={stringifiedData}
315
- onChange={handleDataChange}
316
- className="max-h-[500px]"
317
- />
318
- </TabsContent>
319
- </Tabs>
320
- )}
303
+ <Card className="px-2 py-4 pt-0">
304
+ <Tabs defaultValue="preview" className="w-full">
305
+ <TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-2">
306
+ <StyledTabsTrigger value="preview">Preview</StyledTabsTrigger>
307
+ <StyledTabsTrigger value="code">Code</StyledTabsTrigger>
308
+ <StyledTabsTrigger value="data">Sample Data</StyledTabsTrigger>
309
+ </TabsList>
321
310
 
311
+ <TabsContent value="preview">
312
+ <div className="p-4">
313
+ <DynamicComponentRenderer code={previewCode} props={previewData} />
314
+ </div>
315
+ </TabsContent>
316
+ <TabsContent value="code">
317
+ <CodeEditor
318
+ value={previewCode}
319
+ onChange={(newCode) => {
320
+ if (!preview) return;
321
+ const updatedPreview = { ...preview, code: newCode };
322
+ setPreview(updatedPreview);
323
+ onPreviewChanged?.(updatedPreview);
324
+ }}
325
+ language="jsx"
326
+ className="max-h-[500px] border-0 shadow-none"
327
+ />
328
+ </TabsContent>
329
+ <TabsContent value="data">
330
+ <JsonEditor
331
+ value={stringifiedData}
332
+ onChange={handleDataChange}
333
+ className="max-h-[500px] border-0 shadow-none"
334
+ />
335
+ </TabsContent>
336
+ </Tabs>
337
+ </Card>
338
+ )}
322
339
  {!hasPreview && !isGenerating && !isComplete && (
323
340
  <InfoCard>
324
341
  <p className="text-sm text-muted-foreground">No preview generated</p>
@@ -272,7 +272,7 @@ export function MCPServerForm({
272
272
  </Button>
273
273
  {mode === 'update' && tool && (
274
274
  <DialogTrigger asChild>
275
- <Button type="button" variant="secondary">
275
+ <Button type="button" variant="destructive-outline">
276
276
  Delete Server
277
277
  </Button>
278
278
  </DialogTrigger>
@@ -356,7 +356,7 @@ function SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {
356
356
  data-slot="sidebar-content"
357
357
  data-sidebar="content"
358
358
  className={cn(
359
- 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',
359
+ 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent',
360
360
  className
361
361
  )}
362
362
  {...props}
@@ -1,4 +1,3 @@
1
- import { generateId } from '@/lib/utils/id-utils';
2
1
  import type { Edge, Node } from '@xyflow/react';
3
2
  import * as dagre from 'dagre';
4
3
  import { EdgeType } from '@/components/agent/configuration/edge-types';
@@ -9,9 +8,11 @@ import {
9
8
  functionToolNodeHandleId,
10
9
  mcpNodeHandleId,
11
10
  NodeType,
11
+ teamAgentNodeTargetHandleId,
12
12
  } from '@/components/agent/configuration/node-types';
13
13
  import type { FullAgentDefinition } from '@/lib/types/agent-full';
14
14
  import { formatJsonField } from '@/lib/utils';
15
+ import { generateId } from '@/lib/utils/id-utils';
15
16
 
16
17
  interface TransformResult {
17
18
  nodes: Node[];
@@ -101,6 +102,7 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
101
102
  const nodes: Node[] = [];
102
103
  const edges: Edge[] = [];
103
104
  const createdExternalAgentNodes = new Set<string>();
105
+ const createdTeamAgentNodes = new Set<string>();
104
106
 
105
107
  const subAgentIds: string[] = Object.keys(data.subAgents);
106
108
  for (const subAgentId of subAgentIds) {
@@ -319,12 +321,14 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
319
321
  for (const targetSubAgent of sourceAgent.canDelegateTo) {
320
322
  let targetSubAgentId: string;
321
323
  let isTargetExternal: boolean;
324
+ let isTargetTeamAgent: boolean;
322
325
  let headers: Record<string, string> | undefined;
323
326
  let relationshipId: string | undefined;
324
327
 
325
328
  if (typeof targetSubAgent === 'object' && 'externalAgentId' in targetSubAgent) {
326
329
  targetSubAgentId = targetSubAgent.externalAgentId;
327
330
  isTargetExternal = true;
331
+ isTargetTeamAgent = false;
328
332
  headers = targetSubAgent.headers ?? undefined;
329
333
  relationshipId = targetSubAgent.subAgentExternalAgentRelationId;
330
334
 
@@ -370,12 +374,61 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
370
374
  },
371
375
  };
372
376
  edges.push(edge);
377
+ } else if (typeof targetSubAgent === 'object' && 'agentId' in targetSubAgent) {
378
+ // Handle team agent delegation
379
+ targetSubAgentId = targetSubAgent.agentId;
380
+ isTargetExternal = false;
381
+ isTargetTeamAgent = true;
382
+ headers = targetSubAgent.headers ?? undefined;
383
+ relationshipId = targetSubAgent.subAgentTeamAgentRelationId;
384
+
385
+ // Create team agent node if it doesn't exist
386
+ if (!createdTeamAgentNodes.has(targetSubAgentId)) {
387
+ const teamAgent = data.teamAgents?.[targetSubAgentId];
388
+ if (teamAgent) {
389
+ const teamAgentNode: Node = {
390
+ id: targetSubAgentId,
391
+ type: NodeType.TeamAgent,
392
+ position: { x: 0, y: 0 },
393
+ data: {
394
+ id: targetSubAgentId,
395
+ name: teamAgent.name,
396
+ description: teamAgent.description,
397
+ relationshipId,
398
+ tempHeaders: headers,
399
+ },
400
+ };
401
+ nodes.push(teamAgentNode);
402
+ createdTeamAgentNodes.add(targetSubAgentId);
403
+ }
404
+ }
405
+
406
+ // Create edge from source agent to team agent
407
+ const edge: Edge = {
408
+ id: `edge-${sourceSubAgentId}-${targetSubAgentId}`,
409
+ type: EdgeType.A2ATeam, // Use same edge type as external agents
410
+ source: sourceSubAgentId,
411
+ sourceHandle: agentNodeSourceHandleId,
412
+ target: targetSubAgentId,
413
+ targetHandle: teamAgentNodeTargetHandleId,
414
+ selected: false,
415
+ data: {
416
+ relationships: {
417
+ transferTargetToSource: false,
418
+ transferSourceToTarget: false,
419
+ delegateTargetToSource: false,
420
+ delegateSourceToTarget: true,
421
+ },
422
+ },
423
+ };
424
+ edges.push(edge);
373
425
  } else {
374
426
  targetSubAgentId = targetSubAgent;
375
427
  isTargetExternal = false;
428
+ isTargetTeamAgent = false;
376
429
  }
377
430
 
378
- if (!isTargetExternal && data.subAgents[targetSubAgentId]) {
431
+ if (!isTargetExternal && !isTargetTeamAgent && data.subAgents[targetSubAgentId]) {
379
432
  // Special handling for self-referencing edges
380
433
  const isSelfReference = sourceSubAgentId === targetSubAgentId;
381
434
  const pairKey = isSelfReference