@inkeep/agents-manage-ui 0.33.1 → 0.34.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 (295) hide show
  1. package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
  2. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +11 -11
  3. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +3 -3
  4. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +4 -4
  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.js.nft.json +1 -1
  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/(with-react-flow-provider)/[agentId]/page.js +2 -2
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page.js.nft.json +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/new/page.js +2 -2
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/new/page.js.nft.json +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/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.js.nft.json +1 -1
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js.nft.json +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js.nft.json +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +2 -2
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +2 -2
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js.nft.json +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js.nft.json +1 -1
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -2
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js.nft.json +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js.nft.json +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js.nft.json +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  88. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
  91. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  94. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  97. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js.nft.json +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.html +2 -2
  101. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.rsc +2 -2
  102. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  103. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  106. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  108. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  111. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +20 -21
  112. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_full.segment.rsc +20 -21
  113. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -12
  114. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  115. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  117. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +24 -14
  118. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  122. package/.next/standalone/agents-manage-ui/.next/server/app/page.js.nft.json +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +11 -11
  125. package/.next/standalone/agents-manage-ui/.next/server/chunks/1310.js +1 -1
  126. package/.next/standalone/agents-manage-ui/.next/server/chunks/1696.js +2 -2
  127. package/.next/standalone/agents-manage-ui/.next/server/chunks/2480.js +1 -0
  128. package/.next/standalone/agents-manage-ui/.next/server/chunks/2536.js +3 -3
  129. package/.next/standalone/agents-manage-ui/.next/server/chunks/2544.js +1 -0
  130. package/.next/standalone/agents-manage-ui/.next/server/chunks/2877.js +1 -1
  131. package/.next/standalone/agents-manage-ui/.next/server/chunks/3047.js +19 -19
  132. package/.next/standalone/agents-manage-ui/.next/server/chunks/3246.js +1 -1
  133. package/.next/standalone/agents-manage-ui/.next/server/chunks/4001.js +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/server/chunks/4158.js +1 -1
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/472.js +1 -0
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/5161.js +1 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/chunks/5258.js +1 -0
  138. package/.next/standalone/agents-manage-ui/.next/server/chunks/5649.js +2 -2
  139. package/.next/standalone/agents-manage-ui/.next/server/chunks/5923.js +1 -0
  140. package/.next/standalone/agents-manage-ui/.next/server/chunks/5992.js +1 -1
  141. package/.next/standalone/agents-manage-ui/.next/server/chunks/6174.js +3 -3
  142. package/.next/standalone/agents-manage-ui/.next/server/chunks/6448.js +3 -3
  143. package/.next/standalone/agents-manage-ui/.next/server/chunks/7412.js +1 -1
  144. package/.next/standalone/agents-manage-ui/.next/server/chunks/8012.js +2 -2
  145. package/.next/standalone/agents-manage-ui/.next/server/chunks/8764.js +1 -1
  146. package/.next/standalone/agents-manage-ui/.next/server/chunks/9783.js +10 -0
  147. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  148. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  149. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  150. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +2 -2
  151. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  152. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/10249-35ca3f6d163c6435.js +1 -0
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/{10597-967562041dac48f8.js → 10597-dc29b292247c40e4.js} +3 -3
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/10856-18e8a30665a753e6.js +1 -0
  156. package/.next/standalone/agents-manage-ui/.next/static/chunks/12239-41c6d91b08c95885.js +1 -0
  157. package/.next/standalone/agents-manage-ui/.next/static/chunks/{20568-4bb3d14871146a4c.js → 20568-5fc64339f0bccd3f.js} +2 -2
  158. package/.next/standalone/agents-manage-ui/.next/static/chunks/{23147-7718d86a86601d33.js → 23147-a22c6aebc0404811.js} +1 -1
  159. package/.next/standalone/agents-manage-ui/.next/static/chunks/25378-49aa01acc09a61eb.js +7 -0
  160. package/.next/standalone/agents-manage-ui/.next/static/chunks/27689-2b788aa516f2b9b7.js +1 -0
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/{33929-73f07388f3894911.js → 33929-fcfba412c567ac0d.js} +1 -1
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/{34186-8fe22838f769bc44.js → 34186-eb277f11ae07c10d.js} +1 -1
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/{34461.3d791ae160fd67e7.js → 34461.e175065084634078.js} +1 -1
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/{36c0bed7-b40aaac4df8bb3c8.js → 36c0bed7-2c2b02163e330804.js} +1 -1
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/41823-a43ed1a9b44054b2.js +2 -0
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/46673-f904d4ce6e7a0611.js +433 -0
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/47873-0d732a0280826d36.js +1 -0
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/58607-022b2c5fa3fe2540.js +14 -0
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/{68408-ddf0cb91b8c559f7.js → 68408-6e1bdcc01ab1ee9c.js} +1 -1
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/80714-1819fc79697be609.js +1 -0
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/{93510-e1cc49010e4a6c94.js → 82751-968456b3939ef0bb.js} +4 -4
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/{88873-5a3c9f95e73c33f8.js → 88873-a9d99f8a00ac4988.js} +2 -2
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/90385-261e3d5036d1b7c2.js +20 -0
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/94876-fa1f4c688bc7a3d6.js +1 -0
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/{95653-177eac276e159b4b.js → 95653-2d2153b54a08b675.js} +1 -1
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/97382-5302d42918f17d92.js +11 -0
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/{98060.47c76ea85572562b.js → 98060.7065b8aefe084397.js} +5 -5
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/{page-8e1901a3c39c7164.js → page-25b7f0f6aba0fec1.js} +1 -1
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/{loading-b7f12d0337954bb6.js → loading-493151d798f222be.js} +1 -1
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/new/page-b495d69a4cbf07d5.js +1 -0
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{credentials/new/page-f620e858d1ff5971.js → agents/loading-e08930d930e48e44.js} +1 -1
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-89529c58684c0bb3.js +1 -0
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-f34f800d12824bfa.js +1 -0
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-024603db6ee3d6d0.js +1 -0
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{agents/loading-f620e858d1ff5971.js → artifacts/loading-e08930d930e48e44.js} +1 -1
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-8515f0ca91bf27bc.js +1 -0
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-c9d2d24a0e1f4160.js +1 -0
  188. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-5901738ca9b08dfb.js → page-0386d069997f14b6.js} +1 -1
  189. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{artifacts/loading-f620e858d1ff5971.js → components/loading-e08930d930e48e44.js} +1 -1
  190. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-9f657c018a1b4dcc.js +1 -0
  191. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-6d1b0237673a72ab.js → page-ce1437143a72e89e.js} +1 -1
  192. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-4d5a8f7feb859a84.js +1 -0
  193. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-fa2672e6af1414e8.js +1 -0
  194. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{components/loading-f620e858d1ff5971.js → credentials/new/page-e08930d930e48e44.js} +1 -1
  195. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-9bb4ccbf88622381.js +1 -0
  196. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-64c47869f3865339.js +1 -0
  197. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-b004fa2c702d7286.js +1 -0
  198. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-75b95f621696afab.js +1 -0
  199. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-650cc4ab17747737.js +1 -0
  200. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-0f3ac3855c17242f.js → page-9c016d6a7b8a23a0.js} +1 -1
  201. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-0b093c1959cd8ce3.js +1 -0
  202. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{layout-b7f12d0337954bb6.js → layout-493151d798f222be.js} +1 -1
  203. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-36d98743facf01cd.js +1 -0
  204. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-7c581fb4e4011881.js → page-e26d65170d031a64.js} +1 -1
  205. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/page-a0dbb3d387ee1783.js +1 -0
  206. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-cf7d05b5f590cad1.js → page-70005ac3d11e9227.js} +1 -1
  207. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-6f8ea8a476f6db50.js +2 -0
  208. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-314971be9c5ebcca.js → page-afbc67ff9258dd75.js} +2 -2
  209. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-e08930d930e48e44.js +1 -0
  210. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-dee1720068f4cf96.js +1 -0
  211. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-a9b61f1fc7182e49.js +1 -0
  212. package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-832b0311655e0a56.js → webpack-b52f8e19bed46341.js} +1 -1
  213. package/.next/standalone/agents-manage-ui/.next/static/css/9777a62adc40d976.css +1 -0
  214. package/.next/standalone/agents-manage-ui/package.json +2 -1
  215. package/.next/standalone/packages/agents-core/package.json +1 -1
  216. package/package.json +5 -4
  217. package/src/app/[tenantId]/projects/[projectId]/page.tsx +2 -6
  218. package/src/app/globals.css +35 -0
  219. package/src/app/layout.tsx +5 -11
  220. package/src/components/agent/agent.tsx +1 -0
  221. package/src/components/agent/configuration/edge-types.tsx +9 -6
  222. package/src/components/agent/configuration/model-options.tsx +8 -0
  223. package/src/components/agent/configuration/node-types.tsx +2 -3
  224. package/src/components/agent/edges/agent-to-agent-edge.tsx +10 -9
  225. package/src/components/agent/edges/default-edge.tsx +22 -25
  226. package/src/components/agent/edges/self-loop-edge.tsx +3 -5
  227. package/src/components/agent/nodes/base-node.tsx +3 -3
  228. package/src/components/agent/nodes/function-tool-node.tsx +5 -3
  229. package/src/components/agent/nodes/mcp-node.tsx +22 -10
  230. package/src/components/agent/nodes/sub-agent-node.tsx +5 -4
  231. package/src/components/agent/ship/ship-modal.tsx +8 -3
  232. package/src/components/agent/sidepane/edges/edge-editor.tsx +29 -4
  233. package/src/components/agent/sidepane/metadata/metadata-editor.tsx +1 -2
  234. package/src/components/agent/sidepane/nodes/model-selector.tsx +68 -7
  235. package/src/components/agents/delete-agent-confirmation.tsx +2 -3
  236. package/src/components/form/json-schema-builder.tsx +13 -11
  237. package/src/components/projects/delete-project-confirmation.tsx +1 -2
  238. package/src/components/sidebar-nav/app-sidebar-provider.tsx +25 -0
  239. package/src/components/sidebar-nav/{sidebar-nav.tsx → app-sidebar.tsx} +23 -8
  240. package/src/components/sidebar-nav/project-switcher.tsx +1 -1
  241. package/src/components/theme-toggle.tsx +1 -1
  242. package/src/components/traces/filters/agent-filter.tsx +3 -3
  243. package/src/components/traces/traces-overview.tsx +4 -5
  244. package/src/components/ui/dropdown-menu.tsx +1 -1
  245. package/src/components/ui/radio-group.tsx +2 -2
  246. package/src/features/agent/domain/serialize.ts +2 -2
  247. package/src/features/agent/state/use-agent-store.ts +85 -105
  248. package/src/features/agent/state/use-monaco-store.ts +136 -117
  249. package/src/hooks/use-did-update.ts +25 -0
  250. package/src/hooks/use-project-data.ts +1 -2
  251. package/src/lib/ai/model-factory.ts +65 -3
  252. package/src/lib/utils/throttle.ts +13 -0
  253. package/.next/standalone/agents-manage-ui/.next/server/chunks/2417.js +0 -10
  254. package/.next/standalone/agents-manage-ui/.next/server/chunks/3360.js +0 -1
  255. package/.next/standalone/agents-manage-ui/.next/server/chunks/3862.js +0 -1
  256. package/.next/standalone/agents-manage-ui/.next/server/chunks/703.js +0 -1
  257. package/.next/standalone/agents-manage-ui/.next/server/chunks/7338.js +0 -1
  258. package/.next/standalone/agents-manage-ui/.next/server/chunks/7389.js +0 -1
  259. package/.next/standalone/agents-manage-ui/.next/static/chunks/10249-28a5ddd483b77013.js +0 -1
  260. package/.next/standalone/agents-manage-ui/.next/static/chunks/10856-cb54476984e85898.js +0 -1
  261. package/.next/standalone/agents-manage-ui/.next/static/chunks/25378-b4421fae612ca066.js +0 -7
  262. package/.next/standalone/agents-manage-ui/.next/static/chunks/27689-105ca41283c265b8.js +0 -1
  263. package/.next/standalone/agents-manage-ui/.next/static/chunks/3358-87aee7bd085f9e1e.js +0 -1
  264. package/.next/standalone/agents-manage-ui/.next/static/chunks/39407-14bad650f45bab6d.js +0 -1
  265. package/.next/standalone/agents-manage-ui/.next/static/chunks/41823-8a86b0d2d563c3ec.js +0 -2
  266. package/.next/standalone/agents-manage-ui/.next/static/chunks/6203-317b5e71f4070775.js +0 -14
  267. package/.next/standalone/agents-manage-ui/.next/static/chunks/82342-15533826e8807320.js +0 -433
  268. package/.next/standalone/agents-manage-ui/.next/static/chunks/85660-e270a37a64ad6955.js +0 -1
  269. package/.next/standalone/agents-manage-ui/.next/static/chunks/90385-ba6ea2cb76f05539.js +0 -20
  270. package/.next/standalone/agents-manage-ui/.next/static/chunks/94876-396fe008771f6947.js +0 -1
  271. package/.next/standalone/agents-manage-ui/.next/static/chunks/97382-1fe7e70464e22c44.js +0 -11
  272. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/new/page-f84e0245cdaa3336.js +0 -1
  273. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-72b70de8f5bbe686.js +0 -1
  274. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-c04dcf5690df6dc1.js +0 -1
  275. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-924dd70479546d32.js +0 -1
  276. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-58327ad66d0554d6.js +0 -1
  277. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-83911e0d7d6a87f0.js +0 -1
  278. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-5cad40e010b903ea.js +0 -1
  279. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-bf7f0c322b965360.js +0 -1
  280. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-4ad8ba0c7749e1b2.js +0 -1
  281. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-72ca8dc38fc4d37e.js +0 -1
  282. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-7932aa96ff49f084.js +0 -1
  283. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-2edfdb53894e672f.js +0 -1
  284. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-f09ed006181c8d52.js +0 -1
  285. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-8a096c1fab528420.js +0 -1
  286. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-2df751a4d3858d60.js +0 -1
  287. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-e988975acc3e9311.js +0 -1
  288. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/page-7fcecb98958fd65a.js +0 -1
  289. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-cbbcfea7f6810b46.js +0 -2
  290. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-f620e858d1ff5971.js +0 -1
  291. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-0686dc795631f36d.js +0 -1
  292. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-e5e90301d9937d90.js +0 -1
  293. package/.next/standalone/agents-manage-ui/.next/static/css/a6159611e4980ef8.css +0 -1
  294. /package/.next/standalone/agents-manage-ui/.next/static/{_OxZWOKWcNN8T1uQqSFEB → BHphaI_uYPDwyiFIuec8K}/_buildManifest.js +0 -0
  295. /package/.next/standalone/agents-manage-ui/.next/static/{_OxZWOKWcNN8T1uQqSFEB → BHphaI_uYPDwyiFIuec8K}/_ssgManifest.js +0 -0
@@ -1,10 +1,11 @@
1
1
  import { BaseEdge, EdgeLabelRenderer, type EdgeProps, getBezierPath } from '@xyflow/react';
2
2
  import { ArrowRight, ArrowRightLeft } from 'lucide-react';
3
3
  import { AnimatedCircle } from '@/components/agent/edges/default-edge';
4
- import type { A2AEdgeData } from '../configuration/edge-types';
4
+ import { cn } from '@/lib/utils';
5
+ import type { A2AEdgeData, AnimatedEdge } from '../configuration/edge-types';
5
6
 
6
- interface AgentToAgentEdgeProps extends EdgeProps {
7
- data?: A2AEdgeData;
7
+ interface AgentToAgentEdgeProps extends Omit<EdgeProps, 'data'> {
8
+ data: AnimatedEdge & A2AEdgeData;
8
9
  }
9
10
 
10
11
  export function AgentToAgentEdge({
@@ -17,13 +18,12 @@ export function AgentToAgentEdge({
17
18
  data,
18
19
  selected,
19
20
  }: AgentToAgentEdgeProps) {
20
- const relationships = data?.relationships || {
21
+ const relationships = data.relationships || {
21
22
  transferTargetToSource: false,
22
23
  transferSourceToTarget: false,
23
24
  delegateTargetToSource: false,
24
25
  delegateSourceToTarget: false,
25
26
  };
26
- const delegating = data?.delegating;
27
27
 
28
28
  const hasDelegate = relationships.delegateTargetToSource || relationships.delegateSourceToTarget;
29
29
  const hasTransfer = relationships.transferTargetToSource || relationships.transferSourceToTarget;
@@ -88,13 +88,14 @@ export function AgentToAgentEdge({
88
88
  const delegateMarkerEnd =
89
89
  hasDelegate && relationships.delegateSourceToTarget ? getMarker(!!selected) : undefined;
90
90
 
91
- const className =
92
- selected || delegating ? '!stroke-primary' : '!stroke-border dark:!stroke-muted-foreground';
93
-
91
+ const className = cn(
92
+ data.status && 'edge-delegating',
93
+ data.status === 'inverted-delegating' && 'edge-delegating-inverted'
94
+ );
94
95
  return (
95
96
  <>
96
97
  {/* Animated circles based on delegating direction */}
97
- {delegating && <AnimatedCircle edgePath={edgePath} inverted={delegating === 'inverted'} />}
98
+ <AnimatedCircle edgePath={edgePath} status={data.status} />
98
99
 
99
100
  {/* Render transfer path (solid line) */}
100
101
  {hasTransfer && (
@@ -2,24 +2,23 @@
2
2
 
3
3
  import { BaseEdge, type EdgeProps, getBezierPath } from '@xyflow/react';
4
4
  import { type FC, useEffect, useRef } from 'react';
5
+ import { cn } from '@/lib/utils';
6
+ import type { AnimatedEdge } from '../configuration/edge-types';
5
7
 
6
- type DefaultEdgeProps = EdgeProps & {
7
- data?: {
8
- delegating: boolean | 'inverted';
9
- };
10
- };
11
-
12
- export const AnimatedCircle: FC<{ edgePath: string; inverted: boolean }> = ({
13
- edgePath,
14
- inverted,
15
- }) => {
8
+ export const AnimatedCircle: FC<{ edgePath: string } & AnimatedEdge> = ({ edgePath, status }) => {
16
9
  const ref = useRef<SVGAnimateElement>(null);
17
10
 
18
11
  // Without this useEffect, the animation won't start when this component is rendered dynamically.
19
12
  // biome-ignore lint/correctness/useExhaustiveDependencies: We need restart animation when invert is changed
20
13
  useEffect(() => {
21
14
  ref.current?.beginElement();
22
- }, [inverted]);
15
+ }, [status]);
16
+
17
+ if (!status) {
18
+ return;
19
+ }
20
+
21
+ const isInvertedDelegating = status === 'inverted-delegating';
23
22
 
24
23
  return (
25
24
  <circle fill="var(--primary)" r="6">
@@ -27,9 +26,8 @@ export const AnimatedCircle: FC<{ edgePath: string; inverted: boolean }> = ({
27
26
  ref={ref}
28
27
  dur="2s"
29
28
  path={edgePath}
30
- fill="freeze"
31
- {...(inverted && {
32
- pathLength: '1',
29
+ fill={isInvertedDelegating ? 'remove' : 'freeze'}
30
+ {...(isInvertedDelegating && {
33
31
  keyPoints: '1;0',
34
32
  keyTimes: '0;1',
35
33
  })}
@@ -38,6 +36,10 @@ export const AnimatedCircle: FC<{ edgePath: string; inverted: boolean }> = ({
38
36
  );
39
37
  };
40
38
 
39
+ interface DefaultEdgeProps extends Omit<EdgeProps, 'data'> {
40
+ data?: AnimatedEdge;
41
+ }
42
+
41
43
  export function DefaultEdge({
42
44
  id,
43
45
  sourceX,
@@ -47,9 +49,8 @@ export function DefaultEdge({
47
49
  sourcePosition,
48
50
  targetPosition,
49
51
  label,
50
- selected,
51
52
  markerEnd,
52
- data,
53
+ data = {},
53
54
  }: DefaultEdgeProps) {
54
55
  const [edgePath] = getBezierPath({
55
56
  sourceX,
@@ -60,24 +61,20 @@ export function DefaultEdge({
60
61
  targetPosition,
61
62
  });
62
63
 
63
- const className =
64
- selected || data?.delegating
65
- ? '!stroke-primary'
66
- : '!stroke-border dark:!stroke-muted-foreground';
67
-
68
64
  return (
69
65
  <>
70
66
  {/* Animated circles based on delegating direction */}
71
- {data?.delegating && (
72
- <AnimatedCircle edgePath={edgePath} inverted={data.delegating === 'inverted'} />
73
- )}
67
+ <AnimatedCircle edgePath={edgePath} status={data.status} />
74
68
  <BaseEdge
75
69
  id={id}
76
70
  path={edgePath}
77
71
  label={label}
78
72
  markerEnd={markerEnd}
79
73
  style={{ strokeWidth: 2 }}
80
- className={className}
74
+ className={cn(
75
+ data.status && 'edge-delegating',
76
+ data.status === 'inverted-delegating' && 'edge-delegating-inverted'
77
+ )}
81
78
  />
82
79
  </>
83
80
  );
@@ -2,8 +2,8 @@ import { BaseEdge, EdgeLabelRenderer, type EdgeProps, type Node, useStore } from
2
2
  import { RefreshCw } from 'lucide-react';
3
3
  import type { A2AEdgeData } from '../configuration/edge-types';
4
4
 
5
- interface SelfLoopEdgeProps extends EdgeProps {
6
- data?: A2AEdgeData;
5
+ interface SelfLoopEdgeProps extends Omit<EdgeProps, 'data'> {
6
+ data: A2AEdgeData;
7
7
  }
8
8
 
9
9
  const getNodePositionById = (nodeId: string): ((state: { nodes: Node[] }) => Node | undefined) => {
@@ -15,7 +15,7 @@ export function SelfLoopEdge({ source, data, selected }: SelfLoopEdgeProps) {
15
15
 
16
16
  if (!sourceNode) return null;
17
17
 
18
- const relationships = data?.relationships || {
18
+ const relationships = data.relationships || {
19
19
  transferTargetToSource: false,
20
20
  transferSourceToTarget: false,
21
21
  delegateTargetToSource: false,
@@ -75,7 +75,6 @@ export function SelfLoopEdge({ source, data, selected }: SelfLoopEdgeProps) {
75
75
  {/* Render transfer path (solid line) */}
76
76
  {hasTransfer && (
77
77
  <BaseEdge
78
- className={`${selected ? '!stroke-primary' : '!stroke-border dark:!stroke-muted-foreground'}`}
79
78
  path={transferPath}
80
79
  style={{
81
80
  strokeWidth: 2,
@@ -88,7 +87,6 @@ export function SelfLoopEdge({ source, data, selected }: SelfLoopEdgeProps) {
88
87
  {/* Render delegate path (dashed line) */}
89
88
  {hasDelegate && (
90
89
  <BaseEdge
91
- className={`${selected ? '!stroke-primary' : '!stroke-border dark:!stroke-muted-foreground'}`}
92
90
  path={hasTransfer ? delegatePath : transferPath}
93
91
  style={{
94
92
  strokeDasharray: '5,5',
@@ -9,11 +9,11 @@ export const BaseNode: FC<BaseNodeProps> = ({ className, isSelected, ...props })
9
9
  <div
10
10
  className={cn(
11
11
  'relative rounded-lg border bg-card text-card-foreground',
12
- // React Flow displays node elements inside of a `NodeWrapper` component,
13
- // which compiles down to a div with a the class `react-flow__node`.
12
+ // React Flow displays node elements inside a `NodeWrapper` component,
13
+ // which compiles down to a div with a class `react-flow__node`.
14
14
  // When a node is selected, the class `selected` is added to the
15
15
  // `react-flow__node` element. This allows us to style the node when it
16
- isSelected ? 'ring-2 ring-primary' : 'hover:ring-2 hover:ring-gray-700/5',
16
+ isSelected && 'ring-2 ring-primary',
17
17
  className
18
18
  )}
19
19
  // tabIndex={0}
@@ -19,6 +19,7 @@ export function FunctionToolNode(props: NodeProps & { data: FunctionToolNodeData
19
19
  const nodeErrors = getNodeErrors(functionToolId);
20
20
  const hasErrors = hasNodeErrors(functionToolId);
21
21
  const isDelegating = data.status === 'delegating';
22
+ const isInvertedDelegating = data.status === 'inverted-delegating';
22
23
  const isExecuting = data.status === 'executing';
23
24
  return (
24
25
  <div className="relative">
@@ -27,7 +28,8 @@ export function FunctionToolNode(props: NodeProps & { data: FunctionToolNodeData
27
28
  className={cn(
28
29
  'rounded-4xl min-w-40 max-w-xs',
29
30
  hasErrors && 'ring-2 ring-red-300 border-red-300',
30
- isExecuting && 'node-executing'
31
+ isExecuting && 'node-executing',
32
+ isInvertedDelegating && 'node-delegating-inverted'
31
33
  )}
32
34
  >
33
35
  <BaseNodeHeader className="mb-0 py-3">
@@ -38,9 +40,9 @@ export function FunctionToolNode(props: NodeProps & { data: FunctionToolNodeData
38
40
  </div>
39
41
  <BaseNodeHeaderTitle className="flex-1 truncate">{name}</BaseNodeHeaderTitle>
40
42
  </div>
41
- {description?.trim() ? (
43
+ {description && (
42
44
  <p className="text-xs text-muted-foreground line-clamp-2 pl-7">{description}</p>
43
- ) : null}
45
+ )}
44
46
  </div>
45
47
  {hasErrors && (
46
48
  <ErrorIndicator errors={nodeErrors} className="absolute -top-2 -right-2 w-6 h-6" />
@@ -1,4 +1,5 @@
1
1
  import { type NodeProps, Position } from '@xyflow/react';
2
+ import type { FC, ReactNode } from 'react';
2
3
  import { getActiveTools } from '@/app/utils/active-tools';
3
4
  import { MCPToolImage } from '@/components/mcp-servers/mcp-tool-image';
4
5
  import { Badge } from '@/components/ui/badge';
@@ -11,6 +12,21 @@ import { Handle } from './handle';
11
12
 
12
13
  const TOOLS_SHOWN_LIMIT = 4;
13
14
 
15
+ export const TruncateBadge: FC<{ children: ReactNode }> = ({ children }) => {
16
+ return (
17
+ <Badge
18
+ variant="code"
19
+ className={cn(
20
+ 'text-2xs text-gray-700 dark:text-gray-300',
21
+ // Add ellipsis for long names
22
+ 'truncate block max-w-full'
23
+ )}
24
+ >
25
+ {children}
26
+ </Badge>
27
+ );
28
+ };
29
+
14
30
  export function MCPNode(props: NodeProps & { data: MCPNodeData }) {
15
31
  const { data, selected } = props;
16
32
  const { toolLookup, agentToolConfigLookup, edges } = useAgentStore((state) => ({
@@ -77,6 +93,7 @@ export function MCPNode(props: NodeProps & { data: MCPNodeData }) {
77
93
 
78
94
  const toolBadges = getToolDisplay();
79
95
  const isDelegating = data.status === 'delegating';
96
+ const isInvertedDelegating = data.status === 'inverted-delegating';
80
97
  const isExecuting = data.status === 'executing';
81
98
  const hasErrors = data.status === 'error';
82
99
  return (
@@ -85,22 +102,17 @@ export function MCPNode(props: NodeProps & { data: MCPNodeData }) {
85
102
  className={cn(
86
103
  'rounded-4xl min-w-40 min-h-13 max-w-3xs',
87
104
  hasErrors && 'ring-2 ring-red-300 border-red-300',
88
- isExecuting && 'node-executing'
105
+ isExecuting && 'node-executing',
106
+ isInvertedDelegating && 'node-delegating-inverted'
89
107
  )}
90
108
  >
91
109
  <BaseNodeHeader className="flex items-center justify-between gap-2">
92
110
  <MCPToolImage imageUrl={imageUrl} name={name} size={24} className="flex-shrink-0" />
93
111
  <BaseNodeHeaderTitle>{name}</BaseNodeHeaderTitle>
94
112
  </BaseNodeHeader>
95
- <BaseNodeContent>
96
- {toolBadges.map((label, index) => (
97
- <Badge
98
- key={index}
99
- variant="code"
100
- className="px-2 text-2xs text-gray-700 dark:text-gray-300 flex-shrink-0"
101
- >
102
- {label}
103
- </Badge>
113
+ <BaseNodeContent className="flex-row gap-2 flex-wrap">
114
+ {toolBadges.map((label) => (
115
+ <TruncateBadge key={label}>{label}</TruncateBadge>
104
116
  ))}
105
117
  </BaseNodeContent>
106
118
  <Handle id={mcpNodeHandleId} type="target" position={Position.Top} isConnectable />
@@ -1,6 +1,7 @@
1
1
  import { type NodeProps, Position } from '@xyflow/react';
2
2
  import { Bot, Component, Library, type LucideIcon } from 'lucide-react';
3
3
  import { useMemo } from 'react';
4
+ import { TruncateBadge } from '@/components/agent/nodes/mcp-node';
4
5
  import { AnthropicIcon } from '@/components/icons/anthropic';
5
6
  import { GoogleIcon } from '@/components/icons/google';
6
7
  import { OpenAIIcon } from '@/components/icons/openai';
@@ -33,9 +34,7 @@ const ListSection = ({
33
34
  </div>
34
35
  <div className="flex flex-wrap gap-2">
35
36
  {items?.map((name) => (
36
- <Badge key={name} className="text-xs" variant="code">
37
- {name}
38
- </Badge>
37
+ <TruncateBadge key={name}>{name}</TruncateBadge>
39
38
  ))}
40
39
  </div>
41
40
  </div>
@@ -72,6 +71,7 @@ export function SubAgentNode(props: NodeProps & { data: AgentNodeData }) {
72
71
  [data?.artifactComponents, artifactComponentLookup]
73
72
  );
74
73
  const isDelegating = status === 'delegating';
74
+ const isInvertedDelegating = status === 'inverted-delegating';
75
75
  const isExecuting = status === 'executing';
76
76
  return (
77
77
  <div className="relative">
@@ -81,7 +81,8 @@ export function SubAgentNode(props: NodeProps & { data: AgentNodeData }) {
81
81
  className={cn(
82
82
  isDefault && 'rounded-tl-none',
83
83
  hasErrors && 'ring-2 ring-red-300 border-red-300',
84
- isExecuting && 'node-executing'
84
+ isExecuting && 'node-executing',
85
+ isInvertedDelegating && 'node-delegating-inverted'
85
86
  )}
86
87
  style={{ width: NODE_WIDTH }}
87
88
  >
@@ -82,8 +82,7 @@ const shipModalTabItems: TabItem[] = [
82
82
  ];
83
83
 
84
84
  export const ShipModal: FC<{ buttonClassName: string }> = ({ buttonClassName }) => {
85
- const params = useParams();
86
- const { tenantId, projectId } = params;
85
+ const { tenantId, projectId } = useParams();
87
86
  return (
88
87
  <Dialog>
89
88
  <DialogTrigger asChild>
@@ -92,7 +91,13 @@ export const ShipModal: FC<{ buttonClassName: string }> = ({ buttonClassName })
92
91
  Ship
93
92
  </Button>
94
93
  </DialogTrigger>
95
- <DialogContent className="max-w-full! w-7xl" position="top" showCloseButton={false}>
94
+ <DialogContent
95
+ className="max-w-full! w-7xl"
96
+ position="top"
97
+ showCloseButton={false}
98
+ onWheel={(e) => e.stopPropagation()} // to make scroll work on the widgets
99
+ onTouchMove={(e) => e.stopPropagation()} // to make scroll work on the widgets
100
+ >
96
101
  <DialogHeader>
97
102
  <div className="flex items-center justify-between w-full gap-2">
98
103
  <DialogTitle>Talk to your agent</DialogTitle>
@@ -20,6 +20,8 @@ type RelationshipOptionProps = {
20
20
  checked: boolean;
21
21
  };
22
22
 
23
+ const REMOVE_DELEGATION_OPTION_ID = 'none';
24
+
23
25
  function RelationshipOption({ id, label, onCheckedChange, checked }: RelationshipOptionProps) {
24
26
  return (
25
27
  <div className="flex items-start gap-3">
@@ -47,6 +49,7 @@ type RelationshipSectionProps = {
47
49
  checkedValues: A2AEdgeData['relationships'];
48
50
  useRadio?: boolean;
49
51
  onRadioChange?: (value: string) => void;
52
+ defaultRadioValue?: string;
50
53
  };
51
54
 
52
55
  function RelationshipSection({
@@ -58,12 +61,23 @@ function RelationshipSection({
58
61
  checkedValues,
59
62
  useRadio = false,
60
63
  onRadioChange,
64
+ defaultRadioValue,
61
65
  }: RelationshipSectionProps) {
62
66
  const getRadioValue = () => {
63
67
  const checkedOption = options.find(
64
- (opt) => checkedValues?.[opt.id as keyof A2AEdgeData['relationships']]
68
+ (opt) =>
69
+ (!defaultRadioValue || opt.id !== defaultRadioValue) &&
70
+ checkedValues?.[opt.id as keyof A2AEdgeData['relationships']]
65
71
  );
66
- return checkedOption?.id || '';
72
+ if (checkedOption) {
73
+ return checkedOption.id;
74
+ }
75
+ // If no option is checked, return defaultRadioValue if it exists in options
76
+ if (defaultRadioValue) {
77
+ const defaultOption = options.find((opt) => opt.id === defaultRadioValue);
78
+ return defaultOption ? defaultRadioValue : '';
79
+ }
80
+ return '';
67
81
  };
68
82
 
69
83
  return (
@@ -210,7 +224,10 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
210
224
  delegateTargetToSource: false,
211
225
  };
212
226
 
213
- if (value) {
227
+ if (value === REMOVE_DELEGATION_OPTION_ID) {
228
+ newRelationships.delegateSourceToTarget = false;
229
+ newRelationships.delegateTargetToSource = false;
230
+ } else if (value) {
214
231
  if (isSelfLoop && value === 'delegateSourceToTarget') {
215
232
  newRelationships.delegateSourceToTarget = true;
216
233
  newRelationships.delegateTargetToSource = true;
@@ -218,7 +235,6 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
218
235
  newRelationships[value as keyof A2AEdgeData['relationships']] = true;
219
236
  }
220
237
  }
221
-
222
238
  updateRelationships(newRelationships);
223
239
  };
224
240
 
@@ -285,6 +301,10 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
285
301
  </div>
286
302
  ),
287
303
  },
304
+ {
305
+ id: REMOVE_DELEGATION_OPTION_ID,
306
+ label: <div className="my-0.5 leading-[22px]">None</div>,
307
+ },
288
308
  ]
289
309
  : [
290
310
  {
@@ -315,6 +335,10 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
315
335
  </div>
316
336
  ),
317
337
  },
338
+ {
339
+ id: REMOVE_DELEGATION_OPTION_ID,
340
+ label: <div className="my-0.5 leading-[22px]">None</div>,
341
+ },
318
342
  ];
319
343
 
320
344
  return (
@@ -337,6 +361,7 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
337
361
  checkedValues={selectedEdge.data?.relationships as A2AEdgeData['relationships']}
338
362
  useRadio={true}
339
363
  onRadioChange={handleDelegateRadioChange}
364
+ defaultRadioValue={REMOVE_DELEGATION_OPTION_ID}
340
365
  />
341
366
  <Separator />
342
367
  <div className="flex justify-end">
@@ -53,9 +53,8 @@ const ExecutionLimitInheritanceInfo = () => {
53
53
  };
54
54
 
55
55
  function MetadataEditor() {
56
- const params = useParams();
56
+ const { agentId, tenantId, projectId } = useParams();
57
57
  const metadata = useAgentStore((state) => state.metadata);
58
- const { agentId, tenantId, projectId } = params;
59
58
  const { id, name, description, contextConfig, models, stopWhen, prompt, statusUpdates } =
60
59
  metadata;
61
60
  const { PUBLIC_INKEEP_AGENTS_RUN_API_URL } = useRuntimeConfig();
@@ -39,7 +39,9 @@ export function ModelSelector({
39
39
  canClear = true,
40
40
  }: ModelSelectorProps) {
41
41
  const [open, setOpen] = useState(false);
42
- const [showCustomInput, setShowCustomInput] = useState<'openrouter' | 'gateway' | null>(null);
42
+ const [showCustomInput, setShowCustomInput] = useState<
43
+ 'openrouter' | 'gateway' | 'nim' | 'custom' | null
44
+ >(null);
43
45
  const [customModelInput, setCustomModelInput] = useState('');
44
46
 
45
47
  const selectedModel = useMemo(() => {
@@ -57,6 +59,14 @@ export function ModelSelector({
57
59
  const modelName = value.replace('gateway/', '');
58
60
  return { value, label: modelName, prefix: 'gateway/' };
59
61
  }
62
+ if (value.startsWith('nim/')) {
63
+ const modelName = value.replace('nim/', '');
64
+ return { value, label: modelName, prefix: 'nim/' };
65
+ }
66
+ if (value.startsWith('custom/')) {
67
+ const modelName = value.replace('custom/', '');
68
+ return { value, label: modelName, prefix: 'custom/' };
69
+ }
60
70
  return { value, label: `${value} (custom)` };
61
71
  }
62
72
  return null;
@@ -153,7 +163,9 @@ export function ModelSelector({
153
163
  if (
154
164
  modelValue.includes('/') &&
155
165
  !modelValue.startsWith('openrouter/') &&
156
- !modelValue.startsWith('gateway/')
166
+ !modelValue.startsWith('gateway/') &&
167
+ !modelValue.startsWith('nim/') &&
168
+ !modelValue.startsWith('custom/')
157
169
  ) {
158
170
  // Could be openrouter format, let user decide or add logic here
159
171
  }
@@ -175,6 +187,20 @@ export function ModelSelector({
175
187
  );
176
188
  })()}
177
189
  </CommandEmpty>
190
+ {/* Custom OpenAI-compatible */}
191
+ <CommandGroup heading="Custom OpenAI-compatible">
192
+ <CommandItem
193
+ className="flex items-center justify-between cursor-pointer text-foreground"
194
+ value="__custom__"
195
+ onSelect={() => {
196
+ setShowCustomInput('custom');
197
+ setOpen(false);
198
+ setCustomModelInput('');
199
+ }}
200
+ >
201
+ Custom OpenAI-compatible ...
202
+ </CommandItem>
203
+ </CommandGroup>
178
204
  {/* LLM Gateway options */}
179
205
  <CommandGroup heading="LLM Gateway">
180
206
  <CommandItem
@@ -199,6 +225,17 @@ export function ModelSelector({
199
225
  >
200
226
  Vercel AI Gateway ...
201
227
  </CommandItem>
228
+ <CommandItem
229
+ className="flex items-center justify-between cursor-pointer text-foreground"
230
+ value="__nim__"
231
+ onSelect={() => {
232
+ setShowCustomInput('nim');
233
+ setOpen(false);
234
+ setCustomModelInput('');
235
+ }}
236
+ >
237
+ NVIDIA NIM ...
238
+ </CommandItem>
202
239
  </CommandGroup>
203
240
  {/* Predefined models */}
204
241
  {Object.entries(modelOptions).map(([provider, models]) => (
@@ -236,12 +273,20 @@ export function ModelSelector({
236
273
  <div className="text-sm font-medium">
237
274
  {showCustomInput === 'openrouter'
238
275
  ? 'OpenRouter Model ID'
239
- : 'Vercel AI Gateway Model ID'}
276
+ : showCustomInput === 'gateway'
277
+ ? 'Vercel AI Gateway Model ID'
278
+ : showCustomInput === 'nim'
279
+ ? 'NVIDIA NIM Model ID'
280
+ : 'Custom Model ID'}
240
281
  </div>
241
282
  <div className="text-xs text-muted-foreground">
242
283
  {showCustomInput === 'openrouter'
243
284
  ? 'Examples: anthropic/claude-3-5-sonnet, meta-llama/llama-3.1-405b-instruct'
244
- : 'Examples: openai/gpt-4o, anthropic/claude-3-5-sonnet'}
285
+ : showCustomInput === 'gateway'
286
+ ? 'Examples: openai/gpt-4o, anthropic/claude-3-5-sonnet'
287
+ : showCustomInput === 'nim'
288
+ ? 'Examples: nvidia/llama-3.3-nemotron-super-49b-v1.5, nvidia/nemotron-4-340b-instruct'
289
+ : 'Examples: my-custom-model, llama-3-custom, custom-finetuned'}
245
290
  </div>
246
291
  <div className="flex gap-2 items-center">
247
292
  <input
@@ -249,14 +294,24 @@ export function ModelSelector({
249
294
  placeholder={
250
295
  showCustomInput === 'openrouter'
251
296
  ? 'anthropic/claude-3-5-sonnet'
252
- : 'openai/gpt-4o'
297
+ : showCustomInput === 'gateway'
298
+ ? 'openai/gpt-4o'
299
+ : showCustomInput === 'nim'
300
+ ? 'nvidia/llama-3.3-nemotron-super-49b-v1.5'
301
+ : 'my-custom-model'
253
302
  }
254
303
  value={customModelInput}
255
304
  onChange={(e) => setCustomModelInput(e.target.value)}
256
305
  onKeyDown={(e) => {
257
306
  if (e.key === 'Enter' && customModelInput.trim()) {
258
307
  const prefix =
259
- showCustomInput === 'openrouter' ? 'openrouter/' : 'gateway/';
308
+ showCustomInput === 'openrouter'
309
+ ? 'openrouter/'
310
+ : showCustomInput === 'gateway'
311
+ ? 'gateway/'
312
+ : showCustomInput === 'nim'
313
+ ? 'nim/'
314
+ : 'custom/';
260
315
  onValueChange?.(`${prefix}${customModelInput.trim()}`);
261
316
  setShowCustomInput(null);
262
317
  setCustomModelInput('');
@@ -273,7 +328,13 @@ export function ModelSelector({
273
328
  onClick={() => {
274
329
  if (customModelInput.trim()) {
275
330
  const prefix =
276
- showCustomInput === 'openrouter' ? 'openrouter/' : 'gateway/';
331
+ showCustomInput === 'openrouter'
332
+ ? 'openrouter/'
333
+ : showCustomInput === 'gateway'
334
+ ? 'gateway/'
335
+ : showCustomInput === 'nim'
336
+ ? 'nim/'
337
+ : 'custom/';
277
338
  onValueChange?.(`${prefix}${customModelInput.trim()}`);
278
339
  setShowCustomInput(null);
279
340
  setCustomModelInput('');
@@ -17,11 +17,10 @@ export function DeleteAgentConfirmation({
17
17
  agentName,
18
18
  setIsOpen,
19
19
  }: DeleteAgentConfirmationProps) {
20
- const params = useParams();
21
- const { tenantId, projectId } = params as {
20
+ const { tenantId, projectId } = useParams<{
22
21
  tenantId: string;
23
22
  projectId: string;
24
- };
23
+ }>();
25
24
  const [isSubmitting, setIsSubmitting] = useState(false);
26
25
 
27
26
  const handleDelete = async () => {
@@ -19,7 +19,6 @@ import {
19
19
  fieldsToJsonSchema,
20
20
  findFieldById,
21
21
  type JsonSchemaStateData,
22
- jsonSchemaStore,
23
22
  parseFieldsFromJson,
24
23
  Types,
25
24
  type TypeValues,
@@ -27,6 +26,7 @@ import {
27
26
  useJsonSchemaStore,
28
27
  } from '@/features/agent/state/json-schema';
29
28
  import { cn } from '@/lib/utils';
29
+ import { useDidUpdate } from '@/hooks/use-did-update';
30
30
  import { ArrayIcon, BooleanIcon, EnumIcon, NumberIcon, ObjectIcon, StringIcon } from '../../icons';
31
31
 
32
32
  const INDENT_PX = 24;
@@ -235,18 +235,20 @@ export const JsonSchemaBuilder: FC<{ value: string; onChange: (newValue: string)
235
235
  // biome-ignore lint/correctness/useExhaustiveDependencies: run only on mount
236
236
  useEffect(() => {
237
237
  setFields(parseFieldsFromJson(value));
238
- return () => {
239
- const root: FieldObject = {
240
- id: '__root__',
241
- type: 'object',
242
- properties: jsonSchemaStore.getState().fields,
243
- };
244
- const schema = fieldsToJsonSchema(root);
245
- const serialized = JSON.stringify(schema, null, 2);
246
- onChange(serialized);
247
- };
248
238
  }, []);
249
239
 
240
+ // Calls only on update to avoid race condition with above useEffect
241
+ useDidUpdate(() => {
242
+ const root: FieldObject = {
243
+ id: '__root__',
244
+ type: 'object',
245
+ properties: fields,
246
+ };
247
+ const schema = fieldsToJsonSchema(root);
248
+ const serialized = JSON.stringify(schema, null, 2);
249
+ onChange(serialized);
250
+ }, [fields, onChange]);
251
+
250
252
  return (
251
253
  <>
252
254
  <Table>
@@ -20,8 +20,7 @@ export function DeleteProjectConfirmation({
20
20
  setIsOpen,
21
21
  isOpen,
22
22
  }: DeleteProjectConfirmationProps) {
23
- const params = useParams();
24
- const { tenantId } = params as { tenantId: string };
23
+ const { tenantId } = useParams<{ tenantId: string }>();
25
24
  const [isSubmitting, setIsSubmitting] = useState(false);
26
25
 
27
26
  const handleDelete = async () => {